Extracting GBA things

Discussion in 'GBA - Game Development, ROM Hacks and Translations' started by Hatchetball, Dec 2, 2011.

Dec 2, 2011

Extracting GBA things by Hatchetball at 3:56 AM (12,665 Views / 0 Likes) 6 replies

  1. Hatchetball
    OP

    Member Hatchetball GBAtemp Fan

    Joined:
    Sep 26, 2010
    Messages:
    353
    Location:
    Mississippi
    Country:
    United States
    Hey all,
    Just have a few quick questions and figured this is the best place to ask them.

    I plan on taking a old GBA game and remaking a PC version of it using C++ with more features and a updated look.
    The problem I am having at the moment is cracking open this ROM to look at anything.

    I have no idea what game engine they (KONAMI) used to make this game, so that doesn't help much. Countless hours searching online tells me nothing either.
    Are there programs that will let me open up this .gba and extract the files? (Like how you can use Nitro Explorer to open up an .NDS rom and edit those files, how it lays them out in category so nicely...) I've had a lot of experience hacking into .NDS games, mainly Pokemon of course, but I skipped over GBA hacking. Also I've recently lost a large amount of hacking tools in a reformat.

    Scripts. Ok this game got basically no attention by anyone and is almost pointless to mention, because I highly doubt anyone other than me has played it and enjoyed it enough to do what I am going to do. - Anyways, Scripts:
    I need a way to extract and view the scripts.Not exactly edit them, woud be nice though, and would prolly save me a few months of coding.

    Graphics: I'd rather rip and revamp the old graphics so that the game still has the same feel to it, but looks much more 2011/2012, insted of 1999-looking.
    Music: Ripping the music out would be great as well.
    The coding is the most important part to me as all of the other things can be made custom and wouldn't be bothersome, just time consuming.
    I ask mostly because of the game itself. No one by now plays it, no one that I seen ever tried to hack it or edit it, and no research has lead me to any remakes that are still around or complete.

    Any names of programs would be great as I cannot find anything all-in one, using multiple programs is fine, but I just want to rip this rom open and get to work.

    The game is Dungeon Dice Monsters for GBA.
    I plan to use this project in my college finals at the end of next year for Computer Programming. (Game Design)
    Any help would be greatly appriciated!
    Thank you :D
     
  2. Biduleman

    Newcomer Biduleman Advanced Member

    Joined:
    May 3, 2006
    Messages:
    80
    Location:
    Qu├ębec
    Country:
    Canada
    Well, the script won't be straight C++, so I wouldn't think about it very much... For the sprites, Visual Boy Advance is great at ripping things. Spriters Ressources can help you on this one. For Sound, Audacity recording what's getting out of your sound card is your best bet.
     
  3. FAST6191

    Reporter FAST6191 Techromancer

    pip
    Joined:
    Nov 21, 2005
    Messages:
    21,746
    Country:
    United Kingdom
    GBA roms do not use a filesystem so no simple extraction is possible- if you did any extraction of files from DS binaries (as in ARM9.bin) then you might have something going if you have a nice rom but usually it boils down to more involved methods. First http://nocash.emubase.de/gbatek.htm - read it, bookmark it, learn it, love it as you will be spending a lot of time with it.

    The king of all methods is tracing http://www.romhackin.../documents/361/ (and several others have detailed things around here). This can find anything given time and effort. Several minor variations like using SWIs and such to see what things get DMAed from/to or if BIOS calls are used to handle the compression (common but the BIOS stuff is neither that fast nor all that easy to use from the developer side of things- alignment and such)

    Scripts by which I assume you mean text is easier. Assuming you are not facing compression (in which case see above) you get to use relative searching or simply figuring out the table (there can be several) and grabbing it. You might also try finding the pointers for the text (if any) and using them to pull the text from the rom (usually roms use the 08XXXXX-09XXXXX memory location (GBA roms are in memory and have three locations you can access them with different waitstates on each) so a list of values spaced equally is often a good thing to look at/for).

    Music- there is a GBA sound format kind of like the DS SDAT but it is not as common. http://belogic.com/gba/ , http://code.google.c.../downloads/list (a few other programs exist), the specs above, http://www.romhackin.../documents/462/ , search around here for some of the stuff Atrius did (see Golden Sun) and you say you are familiar with pokemon so browse around some of the pokemon sites for more.

    Graphics- scan with a tile editor (GBA and DS stuff is identical save for some of the really odd stuff on the DS but that is just extra), there are some tools that do compression searching for GBA graphics. Speaking of compression most GBA LZ is what was dubbed type 10 on the DS.

    Frankly though the above stuff (some aspects of tracing aside) is a parlour trick compared to what I imagine figuring out the game logic (as a rule AI on embedded systems for puzzle games (see something like go) is a nightmare for both the coder and the reverse engineer). Of course if you are going to implement your own AI that is fine (although unless this is a post grad thing designing AI for a game like this and a implementing it might be above and beyond what is called for- as it stands a reverse engineering project of this magnitude is quite advanced).

    Edit: I know this was just supposed to be a quick summary but it does not excuse forgetting to link http://www.coranac.c...nc/text/toc.htm (it covers some of the more interesting concepts in GBA coding.
     
  4. Hatchetball
    OP

    Member Hatchetball GBAtemp Fan

    Joined:
    Sep 26, 2010
    Messages:
    353
    Location:
    Mississippi
    Country:
    United States
    Thank you all for the highly useful information! I will use that info to my best in making this project happen.
    I would reallllllly like to see the original script, more so to use it as my example of how to recode this game, not to copy it.
    I've ripped a majority of the sprites myself using Visual Boy Advanced's emulators options, however there are SO many sprites involved that it will take days of work to get them all this way. (Monsters alone = 134 front and 134 back pictures, 1, 6-sided dice is unlike any other, so that's 134, 6-sided dice, all with different sides, there are like 80-100+ people to play against, animiations, etc...) Spriters Resource has like 8 sprites, the game contains thousands of sprites, they did not even try to get them all and they are a site dedicated to Spriting Resources LOL

    There are tons of things I want to do to this game, mainly adding in a large amount of new features and modes of gameplay, more monsters/dice, more levels of difficulty, more Boards, bigger Boards, Boss fights, etc.
    Various new features such as 4 player, with a few variants of 4 player.
    Like 2 vs 2, Elimination, Last Monster Standing, Boss's that have to be destroyed before you can attack your opponent, and a lot more.
    Actually this project is based around a new element that I want to add to the game, which is a key point of 4 player. Known as "Reborn" at this point, gives the players the ability to summon monsters from another player's Graveyard, who is no longer in the game/has been beaten and is entierly eliminated from the match, and use them as their own. An if you've ever played the game you'd know that you're limited to only being able to summon a maximum of 10 monsters, and you can only have 15 monsters in your "Dice Pool", leaving you 5 to roll with for different crests. Well with 4 opponents, you may lose 10 monsters fast, this feature is key to a better chance and may help a player strategically get the advantage over their opponent when they are about to lose.
    Thus, the title so far is "Dungeon Dice Monsters: Reborn"
    I may increase the Dice Pool to 20 or 25. Depending on how testing goes.
    I have been researching and studying this game for around 2 years now, playing it, testing new methods, and I'm very sure this can turn in to a strategic persons favorite.
    The 4 player board game lasted nearly 1 hour on a 19x19 board I made out of the original boards that were released, but for a computer game that's not bad, and will be highly shortened in a semi-fast-paced graphical game.
     
  5. FAST6191

    Reporter FAST6191 Techromancer

    pip
    Joined:
    Nov 21, 2005
    Messages:
    21,746
    Country:
    United Kingdom
    Ripping from an emulator is fine but if you have a nice debugging grade emulator there then why not figure out which calls (or perhaps more likely the numbers used to ultimately call the picture to the ram- the code will probably just use a number and relate it from there) do the deed and pervert them from there- it might still be a basic monster as far as stats go but the picture will not be. If the concept is troubling you think how you might tell a game to play the end credits music sequence in place of the first level one and rip that. I just hope you do not have much/any proper animation (simple sprite wobbles and such do not count) to deal with.
     
  6. Hatchetball
    OP

    Member Hatchetball GBAtemp Fan

    Joined:
    Sep 26, 2010
    Messages:
    353
    Location:
    Mississippi
    Country:
    United States
    Attack animations. Dice Rolling animations. Effect animations. Various other animations as well. lol - Which is not a big deal honestly, I was planning on entirely re-doing the animations of the monsters movement. I'm assuming they use a RNG script to generate the dice sides, as in what the dice will land on, which I will be doing either way.
    Since each monster has a different 6-sided die, working up a script that has all the "Crests" for each monster should be fine as long as I designate each die to each monster, then have the RNG script randomly choose which side of the die it will land on. I'd like to find a way to make the RNG go through a roll at least 9 different times for each 1 die/roll before showing the visual of the "Crest" the die lands on, to maximize randomness. In that, each player would roll 3 dice at the same time and collect the "Crests" or use them to Summon.

    However I really do not look forward to doing the effect or attack animations as each monster has a set attack with its own set visual effect when attacking.

    Either way on the sprite ripping, as long as I can avoid HEX, I'm ok with ripping picture by picture.
     
  7. billy881

    Newcomer billy881 Newbie

    Joined:
    Aug 21, 2015
    Messages:
    1
    Country:
    Greece
    hello Hatchetball do you still work on this project? i have you an offer pls pm me.
     

Share This Page