Hardware Modifying the GBC mode in a GBA

  • Thread starter Thread starter Paar
  • Start date Start date
  • Views Views 3,171
  • Replies Replies 6

Paar

Member
Newcomer
Joined
Feb 25, 2012
Messages
8
Reaction score
1
Trophies
0
XP
131
Country
Hi,

as many of you surely know the GBA enters the GBC mode when a GBC game is inserted.

There are some GBA enhanced GBC games that open new gameplay options when inserted into a GBA - for example Zelda: Oracle of Ages or Zelda: Oracle of Seasons. Those game will make access to a new shop with additional rings and the color palette will switch, so the colors appear brighter and washed out (that's because Nintendo wanted to be it playable on the darker GBA screen, the one that wasn't backlit or frontlit).

My question is - how the identification of the GBA works? How does the game know that it's inserted into a GBA? Is it done by hardware of software?

I would like to mod one of my old GBA's with the backlit screens so when it enters the GBC mode it identifies itself as GBC. Is it possible?

That way I could play those "enhanced" games on the backlit screen and enjoy darker palette. I tried to use cheatcode with a Gameshark cartridge but the connection is loose and sometimes, when I move the GBA, the game just freezes and I need to restart the entire console.

Thanks.
 
Or you could come the other way and get it to use the GBC palettes but with the GBA enhancements.
Here are some codes for Shantae
http://www.romhacking.net/forum/index.php?topic=16827.10
I will have to do a search but I am pretty sure that one also exists for the Zelda Oracles games.

Those would typically be the main three games people care about (not many got GBA enhancements after all).

Anyway the identification is simple enough, though it is software so you will need a gameshark of a flash cart to run the modified ROM. http://problemkaputt.de/pandocs.htm#cgbregisters has some more if you want to go technical.

Alternatively the GB/GBC emulators available for the GBA are pretty good.
 
That's the problem. I didn't want to use a cheatcode device as the games are unstable with it. Such a device is just too large and sticks from the GBA SP like a big tumor. It's enought just to change your position when playing, wiggle the device a little without noticing and lose the contact with the game.

I know that what I want to do is probably something that hasn't been done before. I would like to mod the GBA so it would function like a GBC. The question is if it something that the CPU is responsible for or is it the BIOS?

I found out that the GBA recognition depends on the B register of the CPU. When the B=$01, the game assumes that it's inserted in a GBA. When the B=$00, the game assumes that it's inserted in a GBC.

Now what would theoretically need to be done to make such a game think that it's inserted in a GBC, when it's actually inserted in a GBA?
 
  • Like
Reactions: cearp
If memory serves you would need to have the GBA's copy of the GBC BIOS be the same as the GBC one, and with electronics of that vintage it is likely to be all burned into hardware rather than some nice software mod. Far easier to have some means of running modified ROMs and modify those instead, or use an emulator on the GBA with a GBA flash cart.
 
I'm not giving up yet. Do you know where is the BIOS saved? I mean physically. I cannot find any hardware documentation that would mention something about it.
 
http://reinerziegler.de/GBA/gba.htm#great GBA hardware

this site got plenty information about game boy (it got more guides to make a flashcart than other stuff but still plenty of information.

following a link on that site it shows this:

http://www.cs.rit.edu/~tjh8300/CowBite/CowBiteSpec.htm#Memory Map

0x0 - 0x00003FFF contain the BIOS, which is executable but not readable. Any attempt to read in the area from 0x0 to 0x1FFFFFFF will result in failure; what you will see on a read is the current prefetched instruction (the instruction after the instruction used to view the memory area), thus giving the appearance that this area of memory consists of a repeating byte pattern.

which probably means you are out of luck to customize the bios..

also this picture from gba sp, doesnt show where the ROM is located, which i think its built inside the cpu..
UTH1282_BOARD.gif
 
It really looks like the BIOS is integrated in the IC together with the CPU. Interchanging the components from a GBC is out of option then.

But there are other options.

1. It could be possible to integrate the Gameshark PCB to a GBA case. It's not very elegant solution but should guarantee a stability when playing a game.
2. A simple modchip could solve this, just sending the required information to the game at the startup. The problem is I never programmed an IC and I have yet to fully understand how the GBA works internally.

I'm sure I'll come up with something.
 

Site & Scene News

Popular threads in this forum