Modifying the GBC mode in a GBA

Discussion in 'GBA - Hardware, Devices and Utilities' started by Paar, Apr 11, 2015.

  1. Paar
    OP

    Paar Newbie

    Newcomer
    8
    1
    Feb 25, 2012
    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.
     
  2. FAST6191

    FAST6191 Techromancer

    pip Reporter
    23,865
    9,777
    Nov 21, 2005
    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.
     
  3. Paar
    OP

    Paar Newbie

    Newcomer
    8
    1
    Feb 25, 2012
    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?
     
    cearp likes this.
  4. FAST6191

    FAST6191 Techromancer

    pip Reporter
    23,865
    9,777
    Nov 21, 2005
    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.
     
  5. Paar
    OP

    Paar Newbie

    Newcomer
    8
    1
    Feb 25, 2012
    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.
     
  6. migles

    migles Mei the sexiest bae

    Member
    GBAtemp Patron
    migles is a Patron of GBAtemp and is helping us stay independent!

    Our Patreon
    7,073
    4,755
    Sep 19, 2013
    Saint Kitts and Nevis
    my dad works for nintendo.
    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

    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..
    [​IMG]
     
  7. Paar
    OP

    Paar Newbie

    Newcomer
    8
    1
    Feb 25, 2012
    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.