Forums

Sega Master System / Mark III / Game Gear
SG-1000 / SC-3000 / SF-7000 / OMV
Home - Forums - Games - Scans - Maps - Cheats - Credits
Music - Videos - Development - Hacks - Translations - Homebrew

View topic - ColecoVision MegaCart Bank Switching using WLA-DX Z80

Reply to topic
Author Message
  • Joined: 23 Sep 2021
  • Posts: 100
  • Location: Poland
Reply with quote
ColecoVision MegaCart Bank Switching using WLA-DX Z80
Post 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
;------------------------


  View user's profile Send private message Visit poster's website
  • Joined: 10 Dec 2009
  • Posts: 115
Reply with quote
Post Posted: Wed Apr 17, 2024 12:07 pm
siudym wrote
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
;------------------------


What's the bank and page size on Colecovision?
8KB or 16KB?
  View user's profile Send private message Visit poster's website
  • Site Admin
  • Joined: 19 Oct 1999
  • Posts: 14749
  • Location: London
Reply with quote
Post Posted: Wed Apr 17, 2024 1:25 pm
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.
  View user's profile Send private message Visit poster's website
  • Joined: 23 Sep 2021
  • Posts: 100
  • Location: Poland
Reply with quote
Post 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.
  View user's profile Send private message Visit poster's website
Reply to topic



Back to the top of this page

Back to SMS Power!