GBALdr 0.1 beta 5 Released

Discussion in 'GBAtemp & Scene News' started by Opium, Apr 26, 2007.

  1. poloman

    poloman GBAtemp Regular

    Member
    1
    Jan 30, 2007
    great app - just bought a 3-in-1 - cant wait till it arrives now!
     
  2. Mewgia

    Mewgia drifter

    Member
    2
    Dec 16, 2006
    United States
    Boston, MA
    @m2pt5: I *think* that if you use eepinator on a slot-1 card (it's DLDI patchable) there an option for backing up gba sram to fat. That should work, I'll test it later.

    [EDIT] Yes, it works. I backed up my gba save file using my DS-X. I dunno why this didn't make the front page, people have been asking for a gba save backup homebrew for ages, and a DLDI compatible DS save backup tool is awesome as well. eepinator is THE definitive save backup tool, it's effin' awesome.
     
  3. OSW

    OSW Wii King

    Former Staff
    3
    Oct 30, 2006

    Kool stuff man!
     
  4. scrawl

    scrawl GBAtemp Regular

    Member
    2
    Jun 27, 2006
    Here are some additional skins for GBALdr.

    Click on the images to download the skin:

    [​IMG]

    [​IMG]
     
  5. cory1492

    cory1492 GBAtemp Maniac

    Member
    3
    Jun 23, 2005
    Canada
    Home, WhereElse?
    Again, nice skins scrawl [​IMG]

    Thanks for the compliments too guys, I'm glad you all like it... it is always a boon when others like something you thought up.

    The dumping code was essentially added this early to assist in debugging write errors to the 3in1, and amounts to this (note that readGBA is used elsewhere now, as well):
    CODE#define ROMBASE 0x08000000
    #define ROMSIZE 0x02000000

    void readGBA(uint32 address, u8* dest, uint32 length)
    {
    uint32 i;
    u16* pData = (u16*)dest;
    for(i=0;i>1]=*(u16*)(address+i);
    }
    }

    void doDump(void)
    {
    FILE* fp;
    uint32 address = ROMBASE;
    char buf[512] = {};
    uint32 count = 0;

    clearScreen(SUB_SC);
    _tprintf(SUB_SC, WHITE, "Dumping ROM to dump.gba\n");
    fp = fopen ( "dump.gba", "wb" );
    if (fp == NULL)
    {
    _tprintf(SUB_SC, RED, "Error Opening File!\n");
    while(1) {};
    }

    while(address < (ROMBASE+ROMSIZE))
    {
    readGBA(address, (u8*) buf, 512);
    fwrite(buf, 512, 1, fp);
    address += 512;
    count++;
    if (count == 6553)
    {
    _tprintf(SUB_SC, BLUE, ".");
    count = 0;
    }
    }
    _tprintf(SUB_SC, BLUE, ".\n");
    fclose (fp);
    }
    I intend to utilize the progress bar (with default colors/text), but end of cart detection is kind of pointless since we already know exactly how big the 3in1 is (and detecting it earlier may well avoid the problem of finding errors). If you have something better I should paste in, I'd be happy to add it, though commercial cart dumping is simply an intended side effect of adding the gbadump code before 3in1 is actually detected. So far save dumping only handles the SRAM found in 3in1, so it dumps it in 4k chunks.

    BTW: thanks for the news post Opium [​IMG] It is good enough to be news... [​IMG] [​IMG]
     
  6. moshii

    moshii GBAtemp Regular

    Member
    1
    Jun 6, 2006
    函館
    cory1492>

    I'll give you the routine to detect the cart size once I've cleaned it up...

    When writing the cart to the flash cart does your code fill the whole address space with what's expected to be there or is it just zero'd out?
     
  7. -EX-

    -EX- Racer

    Banned
    1
    Aug 16, 2006
    Tokyo
  8. FAST6191

    FAST6191 Techromancer

    pip Reporter
    24
    Nov 21, 2005
    United Kingdom
  9. H8TR

    H8TR GBAtemp Advanced Fan

    Member
    2
    Oct 22, 2006
    Canada
    t-Dot
    I love this program. It's just like Bigboss's but with a GUI. Thanks cory1492.
     
  10. cory1492

    cory1492 GBAtemp Maniac

    Member
    3
    Jun 23, 2005
    Canada
    Home, WhereElse?
    BigBoss had a big hand in making this app go too... he did a bunch of behind the scenes testing while I was working on it and contributed the initial flashing and SRAM code from his program, not to mention some server space. I could list off the people who all knowingly and unknowingly had a hand in making it, but they should be in the info file with the app.
     
  11. poloman

    poloman GBAtemp Regular

    Member
    1
    Jan 30, 2007
    in awe of all the work going on!

    can someone tell me if im being stupid here......

    using eepinator, i hope to copy the saves off my legit gba cartridges, then using the GBALdr, copy ROM images onto the 3 in 1, along with my save files.

    is that possible with this software combo? and do i need to patch the ROMs using the ez software?
     
  12. cory1492

    cory1492 GBAtemp Maniac

    Member
    3
    Jun 23, 2005
    Canada
    Home, WhereElse?
    Should be. GBALdr allows you to "import" .sav files into 3in1 SRAM, wherever you got them from (so it doesn't initially have to be named the same as the game or anything odd, you just have to flash the game to 3in1 before importing a save file). I have never used eepinator to figure it out myself, though (most of the gba carts I have here have dead batteries anyway).

    Updated to beta 6, now it will boot to DS mode if ds.gba homebrew header is detected (specifically gamecode "PASS"), as well as a couple other fixes related to odd size files (like heretic with retail 1.0 wad). The ds.gba booter in this is slightly better than R4 and EZ5 in that there should be no corrupt sound/button controls/graphics in heretic.
    gbaldr_0.1beta6.zip
     
  13. poloman

    poloman GBAtemp Regular

    Member
    1
    Jan 30, 2007
    great news! thanks for clearing that up.

    have downloaded the latest beta and am eagerly awaiting the 3in1!

    edit - cant work out if the roms need patching - off to look through the long thread but if anyone knows the quick answer....
     
  14. -EX-

    -EX- Racer

    Banned
    1
    Aug 16, 2006
    Tokyo
    Yes, you need to patch roms with EZ4 client.
     
  15. poloman

    poloman GBAtemp Regular

    Member
    1
    Jan 30, 2007
    cool - thanks -EX-. just found some good threads over on the ez forums
     
  16. moshii

    moshii GBAtemp Regular

    Member
    1
    Jun 6, 2006
    函館
    What I meant is this ... if you read past the end of the cart you don't get zero's...
    As far as I can see the logic in 3-in-1 doesn't handle this effect.

    Edit; btw Detecting the size of the cart isn't 3 lines of code, it's a bit more complex than read from 0x0800 0000 n times. [​IMG]
     
  17. cory1492

    cory1492 GBAtemp Maniac

    Member
    3
    Jun 23, 2005
    Canada
    Home, WhereElse?
    Trying to read past 32MB is kind of pointless, since it is the max width of the specified bus (and anything past that overflows into GBA backup address range on the DS). That said, on commercial carts you usually get mirrors, nulls or 0xFF past the end of the chip. If there was some form of in game protection that checked the data past the chip size it would probably have to be patched out on pretty much every GBA flash cart out there (I have never heard of one at any rate that emulates per game the actual size of the original flash chip, they all pretty much bankswitch the ROM to base GBA bus).

    BTW: I was just bugging you (aka: kidding around). Even simple dumping code is more than 3 lines though, and the screenshot you showed probably uses a lot more than 3 lines just to put the text on the screen.

    poloman: it's in the readme, along with a link IIRC.
     
  18. Bloodiator

    Bloodiator Newbie

    Newcomer
    1
    Nov 23, 2006
    Greece
    is there a way to use the gbaldr with the opera memory expansion pack?
     
  19. -EX-

    -EX- Racer

    Banned
    1
    Aug 16, 2006
    Tokyo
    No, with your mom.
     
  20. cory1492

    cory1492 GBAtemp Maniac

    Member
    3
    Jun 23, 2005
    Canada
    Home, WhereElse?
    Opera was designed to specifically NOT work like a GBA cart. It has no flash memory, no saver memory and only 8MB of RAM which is at a fixed address (which cannot be used to load regular GBA files). Without any modification it is is only useful for DS homebrew that specifically uses it, and opera itself - I won't even speculate on whether or not it could be modified to do anything other than what it is intended to do (and in the end it would probably be cheaper and simpler to get something like 3in1 anyway).
     
Loading...