Hardware Modifying the GBC mode in a GBA

Paar

Member
OP
Newcomer
Joined
Feb 25, 2012
Messages
8
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.
 

FAST6191

Techromancer
Editorial Team
Joined
Nov 21, 2005
Messages
36,798
Trophies
3
XP
28,321
Country
United Kingdom
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.
 

Paar

Member
OP
Newcomer
Joined
Feb 25, 2012
Messages
8
Trophies
0
XP
131
Country
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

FAST6191

Techromancer
Editorial Team
Joined
Nov 21, 2005
Messages
36,798
Trophies
3
XP
28,321
Country
United Kingdom
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.
 

Paar

Member
OP
Newcomer
Joined
Feb 25, 2012
Messages
8
Trophies
0
XP
131
Country
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.
 

migles

All my gbatemp friends are now mods, except for me
Member
Joined
Sep 19, 2013
Messages
8,033
Trophies
0
Location
Earth-chan
XP
5,299
Country
China
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
 

Paar

Member
OP
Newcomer
Joined
Feb 25, 2012
Messages
8
Trophies
0
XP
131
Country
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

General chit-chat
Help Users
  • No one is chatting at the moment.
    BakerMan @ BakerMan: @salazarcosplay yeah cod's still up