|
ForumsSega Master System / Mark III / Game GearSG-1000 / SC-3000 / SF-7000 / OMV |
Home - Forums - Games - Scans - Maps - Cheats - Credits Music - Videos - Development - Hacks - Translations - Homebrew |
Author | Message |
---|---|
|
ColecoVision MegaCart Bank Switching using WLA-DX Z80
Posted: Wed Apr 17, 2024 11:08 am
|
I have a problem switching Banks using the MegaCart mapper for ColecoVision. I don't know if I have set ORG correctly for this Mapper. And does the CoolEM emulator see this Mapper at all?
And an important question - does this mapper also work with SG-1000? Sample ColecoVision code skeleton - for example, I would like to switch SLOT $C000 to Bank 7 to load the screen's TileMap from it. If I move TileMap to $8000 or the first SLOT $C000, it obviously works, but trying to switch $C000 does not work. .DEFINE SLOT_0 $fff8 ; For 128K Megacart (for 256K one I start on $fff0 upto SLOT_15 at $ffff) .DEFINE SLOT_1 $fff9 .DEFINE SLOT_2 $fffa .DEFINE SLOT_3 $fffb .DEFINE SLOT_4 $fffc .DEFINE SLOT_5 $fffd .DEFINE SLOT_6 $fffe .DEFINE SLOT_7 $ffff ;---------------------- ld hl,SLOT_7 ; switching code call sel_slot ; switch C000 to Bank7 ;-------------------------- ; code in slot7 $c000 ;------------------- ld hl,SLOT_0 ; witching code call sel_slot ; switch C000 back to Bank0 ;------------------------ |
|
|
Posted: Wed Apr 17, 2024 12:07 pm |
What's the bank and page size on Colecovision? 8KB or 16KB? |
|
|
Posted: Wed Apr 17, 2024 1:25 pm Last edited by Maxim on Sun May 26, 2024 1:36 pm; edited 1 time in total |
It seems via https://forums.atariage.com/topic/216354-colecovision-megacart-faq/ that the megacart works by simply accessing memory in the $ffc0+ region to select corresponding 16KB banks into the single 16KB slot at $c000. The address accessed embeds the bank index, so I’d think of them more as bank select registers than slot numbers. The code you posted looks like a faithful conversion of the example code:
; For 128K Megacart (for 256K one I start on $fff0 upto SLOT_15 at $ffff)
SLOT_0: equ $fff8 SLOT_1: equ $fff9 SLOT_2: equ $fffa SLOT_3: equ $fffb SLOT_4: equ $fffc SLOT_5: equ $fffd SLOT_6: equ $fffe SLOT_7: equ $ffff ; At start of code ld hl,SLOT_0 ; Default slot of Megacart, but set again because user can do a Colecovision RESET call sel_slot ; My typical switching code ld hl,SLOT_3 call sel_slot ; Slot selection sel_slot: ld (slot),hl ld a,(hl) ret ; So… does the emulator you are using support it? I don’t know of any emulator supporting something like this for the SG-1000. |
|
|
Posted: Thu Apr 18, 2024 10:22 am |
Unfortunately, I do not know.
blueMSX supposedly should work with MegaCart CV, but it doesn't launch either. |
|