Modding a GBA to behave like a real GBC

Paar

Newb
Hi,

there's something that's bugging me lately.

As many of you surely know, there are some GBC games that are "GBA enhanced" - when you put them to a GBA, they will make access to an additional content and swap to a brighter color palette so the image is nicely visible on the original GBA.

To my knowledge there are four of those enhanced games:

- The Legend of Zelda: Oracle of Ages
- The Legend of Zelda: Oracle of Seasons
- Wendy: Every Witch Way
- Shantae

Anyway, additional content is nice. But the birghter color palette is not, especially when you're playing on a GBA SP AGS-101 (the one with the better screen) or Gameboy Player (on Gamecube). The colors look washed out in comparion to the original colors.

What I want to do - I want to play those games in their original colors on a GBA SP AGS-101/GBP without using a cheat device such as Gameshark. I have one and I tried to play the Zelda: Oracle of Seasons with it and it works (the cheat codes already exist, see the discussion on Gamehacking.org). There is one problem: the contact with the cartridge is loose and sometimes the game freezes when I unknowingly touch the device while playing. So it's not very practical and certainly not ergonomical as the device is rather large and uncomfortable too.

This is how the detection works (from GbdevWiki):

"Detecting CGB (and GBA) functions CGB hardware can be detected by examing the CPU accumulator (A-register) directly after startup. A value of 11h indicates CGB (or GBA) hardware, if so, CGB functions can be used (if unlocked, see above). When A=11h, you may also examine Bit 0 of the CPUs B-Register to separate between CGB (bit cleared) and GBA (bit set), by that detection it is possible to use 'repaired' color palette data matching for GBA displays."

I made some research and it appears that whether the B register is filled with 0 or 1 depends on the BIOS. I thought that I could swap the BIOS module with a one from a broken Gameboy Color, but unfortunately the BIOS is embedded in the CPU chip. You even cannot update the BIOS as it's read-only.

My question is - is it possible to make some kind of modchip that would force a game to think it's inserted in a GBC when it's actually inserted in a GBA? What would be needed to make it work?
 
I suppose it's possible to do (with a FPGA maybe?). It reminds me of changing the bootlogo on a GB, where you have to pass different values to the CPU (once those of the original logo and once those of the custom logo):
https://www.youtube.com/watch?v=rtNZGbpxl8k

It may be easier to buy (or make) a flashcart and use roms that are modified to always display the GBC color palette. That way you won't have to do complicated hardware modifications.
 
That's very interesting. I think that what I want could work like this, just the other way around - I need to take a signal from the CPU, modify it and send it to the game.

That video... Is it your mod?
 
I'll try to contact the author of the mod. Maybe he would know what to do to make it work. I'll post my findings here if I'll make some progress.
 
So I am assuming this is bypassing any palette options you set at boot? If not, you can just set the palette with button combos.

The best way to tackle this would probably be to mod the roms themselves and flash them to a cart if the GBA overrides palette control. Unfortunately since this is built into the hardware itself you would likely need an FPGA and some serious knowledge of digital logic to trick the GBA.

Sounds like a lot of work. You may just want to use an emulator or a clone console like a GB Boy Color.
 
Back
Top