Write GBA roms using Nintendo DS?

Discussion in 'GBA - Console and Game Discussions, Help and Tips' started by mammastuffing, Aug 25, 2015.

  1. mammastuffing
    OP

    mammastuffing GBAtemp Regular

    Member
    107
    25
    Aug 7, 2015
    Hi!

    I've been looking around for some homebrew software for the Nintendo DS that let's me write a ROM to a GBA flash cart. I'm not a 100% sure but I do believe there are flash carts where you flash ROMS via a PC with a writer, such as EZ Writer for EZ flashcarts?

    Anyways; seeing as there are homebrews for dumping GBA roms, is there any for writing roms to a cartridge?

    Thanks
     


  2. migles

    migles Mei the sexiest bae

    Member
    6,899
    4,632
    Sep 19, 2013
    Saint Kitts and Nevis
    my dad works for nintendo.
    there is gba xploader, which works with ez 3 in 1, and some others.. but i heard reports of people warning to dont use with a ez IV or other flascarts..
    you can try it, but it may replace the loader on the cart or something, and you can't use it again..
     
  3. mammastuffing
    OP

    mammastuffing GBAtemp Regular

    Member
    107
    25
    Aug 7, 2015
    I don't think xploader is what I'm looking for...

    I've used Rudolphs tool to dump my GBA roms using my Nintendo DS. I need a similar tool with the capability to write roms as well. The reason is I have two bootleg GBA games which have a flash memory integrated and the roms on the memory seem to be corrupt. I need to replace the roms on the flash chip with proper ones.

    I'd prefer not having to buy a hardware flasher or building one.


    ** EDIT

    Nevermind, I found what you were refering to. When Googling it I found something else. :) I'll look into it.

    Thanks
     
    Last edited by mammastuffing, Aug 25, 2015
  4. FAST6191

    FAST6191 Techromancer

    pip Reporter
    23,493
    9,311
    Nov 21, 2005
    The only carts with the ability to be written by a DS code device are

    The various expansion packs. Most will opt for the EZ 3 in 1, however various m3 expansion packs are supported by various tools as well. Rudolph's GBA exploader is the main tool people will use if their flash cart does not have native support (the EZteam released the source code/libraries so various people could do it).

    The Flash Advance cartridges via http://code.google.com/p/fas1/

    The EZ4 technically can be fiddled with by some of the same tools as the 3 in 1 but it has a nasty habit of overwriting the EZ4 loader section seemingly at random -- some people used it fine for years, others thought "I will try it while I wait for my miniSD to turn up" and saw it overwritten. There are kind of ways you can try to get the loader back on but they are not reliable in fixing things ( http://filetrip.net/nds-downloads/flashcart-files/download-ez4-bootstrap-collection-1-0-f27581.html is the collection and should have a link to the other files as well). Without the loader you can continue to use the EZ4 with the tools so it is not a complete brick but it is for this reason that the party line is don't use such tools with the EZ4.

    I know of nothing else that can be written to in this manner. Theoretically most devices could be written (some of the PC to flash cart stuff might be troubled) but they would need the read and write protocols to be either released or reverse engineered, now several older GBA flash carts have had this done (see programs like littlewriter) but nobody has yet ported it to DS code outside the FAS1 thing I linked above. http://reinerziegler.de/GBA/gba.htm is some good reading if you do want to go further into that.
     
    cearp likes this.
  5. mammastuffing
    OP

    mammastuffing GBAtemp Regular

    Member
    107
    25
    Aug 7, 2015
    I've been looking into the FAS1 programmer and been trying to modify the code to enable flashing of a generic cart (with a flash memory, and not a rom). No luck though, mainly because it seems most of it needs to be rewritten as a lot of the dependencies seem to be missing. Guessing it's because it's a very old project. So I haven't even been able to make a build yet and don't really have time to disect all of the code and rebuilding it.

    So a faster solution would probably be, as mentioned earlier, using an Arduino.

    I've been looking at this Arduino dumper which seems simple enough to reproduce: http://douevenknow.us/post/68126856498/arduino-based-gba-rom-dumper-part-1

    I'm a bit curious though about the WR pin of the GBA cartridges. Is this ever used by the GBA? I figured when being produced the ROM's were preprogrammed before they were soldered, but did they program the cart using that pin?
     
  6. FAST6191

    FAST6191 Techromancer

    pip Reporter
    23,493
    9,311
    Nov 21, 2005
    GBA carts could be RAM (as in full RAM, not just SRAM) or ROM and I imagine that was used for RAM. Outside of dev hardware then what it might have officially been used for on the GBA I have no idea, the DS has option paks, the RAM for the browser and more besides and I imagine they thought something like that might have happened for the GBA as well (the NES, SNES, GB, GBC and N64 all use various things like mappers, special chips, ram expansions, memory bank controllers and whatever the N64 did to enhance the stock hardware, fortunately for us the only things that ultimately did that* went a different path http://problemkaputt.de/gbatek.htm#gbacartioportgpio ). The actual ROM chip themselves were mask ROM as far as I am aware, or at least definitely not programmed in situ.

    *flash carts did use bank switching/page mapping of a sort, including in homebrew, and I have to investigate those Shrek Videos one day ( http://www.ebay.co.uk/itm/Shrek-2-G...-Headphones-/121779757829?hash=item1c5aa3a305 ) to see what they actually did but everything else was straight mapped within 32 megs of ROM.

    I do not know what fas1 was built with. Devkitpro/devkitarm did change quite a few things in the later revisions so you might be better off going back in versions there if it was that -- most additions in newer versions are not going to trouble you for a simple flash cart bothering program, if you were doing crazy graphics handling and whatever else then yeah do upgrade but for something like this stick with what works.

    I should probably also link http://files.darkfader.net//gba/files/cartridge.txt though I am not sure what an old vhdl snippet will do for you here.
     
  7. mammastuffing
    OP

    mammastuffing GBAtemp Regular

    Member
    107
    25
    Aug 7, 2015
    How is writing done to the EEPROM/SRAM? Isn't the WR pin used for saving e.t.c.? I feel it would make sense in a mass production not to program in situ. However for the bootlegs I feel it would make more sense that they had blank cartridges that they flashed and stuck a low quality sticker on. The reason I'm looking for a solution like this is because I have two bootleg copies of Zelda Minish Cap with a MSP55LV128 flash chip where I need to reflash proper copies because I believe they're corrupt. Background is in old thread https://gbatemp.net/threads/zelda-minish-cap-cant-save-fake.394481/.

    I'm pretty sure my cartridges were programmed in situ. Mainly because the address select pins are not in order of the MSP55LV128 chip, this can be seen in the enclosed image. So when the GBA is requesting data it's probably not continuous data on the chip, but data is rather fetched randomly all over but the GBA get's what is expected as the data has been programmed in that order.

    connections.jpg

    Yeah, you may have a point there. Although I think I'll have a go with the arduino before getting into FAS1 again.
     
    Last edited by mammastuffing, Oct 6, 2015
  8. FAST6191

    FAST6191 Techromancer

    pip Reporter
    23,493
    9,311
    Nov 21, 2005
    I have never really had to consider the save dumping at pin level for the GBA, the DS was slightly different and used it for a few things (the pokewalker for example) but the GBA stuff for me was all about software ( http://problemkaputt.de/gbatek.htm#gbacartbackupids does well for the software, waitstates and whatever else which I have dealt far more with). I guess I could grab a multimeter and pin stuff out as well as contemplate it but it would just be me running through what I discover.
     
  9. Kues

    Kues Member

    Newcomer
    33
    7
    Jul 4, 2015
    United States
    This whole thread is about the exact subject I opened a thread about. I was looking for a .nds program to reflash the bootleg games. I have seen at least two videos of people saying they used bootlegs to do this with old fire linker to reflash a bootleg GBA game since most bootleg GBA games are just really cheaply made flash carts.





    on the first one you see that clear blue you can when you buy wholesale bootlegs and the 2nd video is the off light gray that most bootlegs come in.

    Edit: Their comments in the description and the youtube comments is where they say they reflashed bootlegs
     
    Last edited by Kues, Oct 14, 2015
  10. mammastuffing
    OP

    mammastuffing GBAtemp Regular

    Member
    107
    25
    Aug 7, 2015
    Only question is how they did it. Probably not DS software. Feels like if it existed it should've been available here, unless they made it and kept it to themselves. I'm new to the whole DS/3DS/GBA scene and haven't done any homebrew programming so to me it feels like it's gonna be a big project. Therefore I feel it'd be an easier solution for me to build a custom hardware flasher but right now I don't have that much spare time unfortunately.

    Have you been able to contact any of the guys who posted the videos?

    ** Edit **

    Found this on reddit:
    https://www.reddit.com/r/Gameboy/comments/2qvjk3/i_made_flappy_bird_for_game_boy_advance_someone/

    In the comments, he says he flashed it using something like a Fire linker to flash the bootleg.
     
    Last edited by mammastuffing, Oct 14, 2015
  11. Kues

    Kues Member

    Newcomer
    33
    7
    Jul 4, 2015
    United States
    I contacted one of them and they said they used the software from here https://sites.google.com/site/gggddfdgju/home

    I told them I have an xrom linker and they responded saying to use the 512 USB.zip found on that site. This is how one of them did it but I never heard back from the other guy.

    If it can be done with a normal linker like fire linker or xrom linker then I imagine it's possible to make something for the DS to do it, right?
     
  12. mammastuffing
    OP

    mammastuffing GBAtemp Regular

    Member
    107
    25
    Aug 7, 2015
    Did you have any luck with the xrom linker and the software?

    I managed to compile the Fas1 flasher yesterday and also managed to read the cartridge so I could dump it. So I'll continue to try some things out with the Fas1 flasher and get back here if I have any success.
     
  13. Hucz

    Hucz Member

    Newcomer
    17
    0
    Feb 28, 2012
    Canada
    any luck?
     
  14. Sliter

    Sliter GBAtemp Psycho!

    Member
    3,036
    800
    Dec 7, 2013
    Brazil
    ᕕ( ᐛ )ᕗ
    Wait I got it right, it's possible to reflash bootleg games
    ( would be nice if we could with original ones hahah you know, these games that no one want ...)
    Well, for the minish cap I think the save doesn't work because the cart structure, right ? if you flash something like a pokemon RS game/hack or other battery saving one it could work?
    I'm really interested on this because of translations, hacks and games impossible to find e3e
     
  15. FAST6191

    FAST6191 Techromancer

    pip Reporter
    23,493
    9,311
    Nov 21, 2005
    Depends entirely upon the means used to make the bootleg/clone/whatever.

    Some will be custom boards from the ground up (the old competition games are a good example and http://bennvenn.myshopify.com/collections/frontpage/products/gba-flash-cart is a newer one).
    Some seem to be old NOR flash carts.
    Some seem to be the GBA sized EZ3 in 1 just with a different shell or label
    Some seem to be the GBA sized EZ3 in 1 with various legs snipped or write protect enabled at circuit level.
    Some seem to be a hacked up original game ( http://gbatemp.net/threads/is-this-a-legit-pal-copy-of-ninja-cop-ninja-five-o.390496/ )

    Save type really does not matter if you have a flash cart -- other than supercards which have something else the patching that every GBA flash cart (or the DS program managing it) has done to ROMs is to convert save types. Custom hardware (tilt sensors, real time clock, solar sensors, blood glucose...) does get in the way, fortunately there are few and far between so we have solutions to most of the things that matter http://gbatemp.net/threads/buying-a-gba-flash-cart-in-2013.341203/page-18#post-4756995

    Oh and as I am too lazy to edit the earlier post this morning then the shrek videos I mentioned above were finally dumped and analysed a few weeks after that (or the results were written up) http://gbatemp.net/threads/undumped-gba-shrek-videos-analysed.404837/

    Anyway this is all somewhat academic as the solution to your problem is buy a flash cart -- they are reasonably cheap and it will be so much less hassle in the long run.
     
    Sliter likes this.
  16. Sliter

    Sliter GBAtemp Psycho!

    Member
    3,036
    800
    Dec 7, 2013
    Brazil
    ᕕ( ᐛ )ᕗ
    I see hmm ...
    well flashcard really are the easiest but I can't say the cheapest because the dollar is so high here :B lol (well if compare to a new sealed game, it's cheaper XD)

    One thing interesting of re-flashing bootlegs or placing a new rom on an original board is interesting for recycling .. I mean .. there are a game is hard you to have (mother 3, for example) and that old no-one-want-this-game can be used to make you have the physical copy, instead of just throwing in the trash really is a nice idea XD
    sad is that people do this for piracy xp of this I mean : make profit fooling the others, like the guy of golden sun on the post you shown .. why no not tell " flashed gba game"? it's like selling refurbished as new thing (and this happens a lot here :B)
    but no clue if new rom to replace from an original card wold be cheaper or where to find xp
     
    Last edited by Sliter, Jan 9, 2016
  17. mammastuffing
    OP

    mammastuffing GBAtemp Regular

    Member
    107
    25
    Aug 7, 2015
    I never managed to use the DS for flashing. Although I know that at least some bootlegs are possible to reflash (Like the Flappy Bird example).

    My main problem was that I wasn't able to get full control of the gba pins. Haven't any time to look any further into it.

    I think the easiest solution to "reflash" bootlegs would be to use a hardware flasher. Something like this http://bennvenn.myshopify.com/collections/frontpage/products/reader-writer-gen2 (not sure how the support is within the software to flash bootlegs).
    If not you could use this Arduino shield and either use the available library or write your own software https://www.insidegadgets.com/projects/gameboy-cart-shield/
     
    Sliter likes this.
  18. Kues

    Kues Member

    Newcomer
    33
    7
    Jul 4, 2015
    United States
    I was successfully able to reflash many of my bootlegs with homebrew/rom hacks using XRom flasher and an old windows XP laptop. 1/3rd of the bootlegs were easy to reflash 64Mb carts. 1/3rd were EPROM's that are not rewrightable and the other 1/3rd seem like they are flash but are not recognizable by the program.
     
    Sliter likes this.
  19. mammastuffing
    OP

    mammastuffing GBAtemp Regular

    Member
    107
    25
    Aug 7, 2015
    The X-Rom flasher is connected to the link port on the GBA correct? And the software on your computer sends a multiboot file to the GBA?
     
  20. Kues

    Kues Member

    Newcomer
    33
    7
    Jul 4, 2015
    United States
    yeah, that's what made me think it would be possible from the beginning to use a DS since it's already using the GBA as the actual flasher
     
    Sliter likes this.