bootleg pokemon cart fun

so I bought a bootleg copy of pokemon emerald off ebay. hoped for a legit cart, but the bootleg turrned out to be a lot more useful. when I asked for a refund from the seller, and asked if the cart was at least reflashable, he refused to give a full refund, unless i could figure out how to flash a different save file to it, since he had no info on how it actually worked. so that started a fun project of figuring out how it did its thing

end result

  • cart is reflashable, and 16mb
  • uses sram, but not for long term storage. which is weird
  • rom is weirdly patched to write sram to the rom at 0xfc0000 after the game does its save routine
  • I am not skilled in arm asm to figure out how exactly, but it does.
  • typing a writeup drunk us hard
  • cart has a relatively well labeled place to add a sram battery, making it easy to turn in to a 16mb+sram flash cart
  • detail of how i found this out will be here later.... with pictures!

    first, I dumped rom and flash with gba exploader using my nds and acekard. got a 32mb rom, and 128k sram. which is weird, sinc ethe game is 16mb, and the sram was seemingly random, not looking like an emerald save. erasing or reflashing the save did absolutely nothing when running on my gba after. old save was still there somehow. also gba exploader couldnt write the flash, which was mildly upsetting.

    looked at the rom, and it was 2 sets of the same 16mb. which when compared with a real dump of emerald, looked similar, except some random small differences, and a lot of new stuff at the end. after being confused for a while, i noticed the end did look like an emerald sav i looked at earlier. so i fired up just the rom in an emulator, and it loaded the save i had on the cart. so save is stored on flash! yay! it makes sense! but is weird....

    since i don't know where to start trying to write a gba cart in ds homebrew, I just brought out a cart flasher I bough to backup my blue save. my first apporach was stupid, just pasting a emerald save at random points in the end of the rom based on similar structures of its save. sucsessfully corrupted the file first try, which is promising

    eventually resorted to math, and tried putting it at 0xfc0000, and boom. win. now i can put a 386 shiny save on bootleg carts for more moneys!!! jk. i dont care enough to put that much effort into this.

    but wait!

    since i can flash the cart, and it uses sram, i should be able to use it as a flash cart, right? since it is one anyway, right? flashed mother 1+2, and it worked, but without saving. which makes sense. since the game expects a actually working sram

    looking at the board, there are two big holes, one labled +, and the other -. what could this be? easily labled battery points? only one way to find out

    pic of win

    tools

    details on how to turn one of these carts into a usable flash cart. more useful instructions coming soon. maybe...

    basically, you open it up, and solder the battery in. then flash it with whatever awesome homebrews you have