I originally assigned mapper 268 for the Coolboy mapper, meaning the additional registers are at $6000, then just emulated Mindkids under the same mapper number, just having the mapper emulation respond to both $5000 and $6000. I have since come across carts for which this does not work, hence, I intend to assign mapper 268 submapper 1 to Mindkids.
One of these is a Chinese RPG (楚留香新传, Chǔliúxiāng xīn Zhuàn) running the Mindkids board in GNROM mode while using WRAM --- since the "lock" bit does not work in GNROM mode, WRAM writes to $6000 would inadvertently change the mapper configuration when responding at both $5000 and $6000.
There are Chinese RPGs from Hengedianzi that use the original Coolboy board as an oversize TNROM board (i.e. using the full eight bits of MMC3 registers 6 and 7 for 2 MiB of PRG-ROM space) with WRAM, even though the ASIC registers sit at $6000, by carefully using the WRAM Enable and Lock bits. They boot in the last 8 KiB bank of the first 512 KiB block, like a regular MMC3 would, then switch to 2 MiB mode using the following sequence that must be run from RAM at $000-$7FF:
Code: Select all
LDA #$00
STA $A001 ; Disable WRAM, so that writing to the Coolboy ASIC does not corrupt saved game
LDA #$00
STA $6000 ; clear outer bank offset and lower mask bits
LDA #$60
STA $6001 ; Enable PRG A19-A20
LDA #$80
STA $6003 ; Lock the Coolboy ASIC registers, so that WRAM writes do not change them
LDA #$80
STA $A001 ; Enable WRAM
JMP ($FFFC) ; Execute RESET Handler in the last 8 KiB bank, now in 2 MiB address space