Rom Hacking?

Discussion in 'NDS - ROM Hacking and Translations' started by playallday, Jul 4, 2008.

  1. playallday
    OP

    playallday Group: GBAtemp Ghost

    Member
    3,773
    9
    May 23, 2008
    Canada
    [@N@[)@
    I want to get into DS Rom Hacking but I'm a n00b at it. So what programs do I need (a GUI is a nice is a big +). I'm in to programing a little (a lot of java, and some C#) so I know how some thing work.

    I want to hacks sort of like Apache Thunder hacks.

    Thanks if you reply!

    P.S. Sorry if I'm breaking any rules (like asking how to rom hack)
    P.P.S. I Google before I ask so don't get mad.
     
  2. Wabsta

    Wabsta you fight like a dairy farmer

    Member
    2,498
    69
    Apr 25, 2008
    Netherlands
    SCUMM Bar
    DSlazy, for unpacking the rom, extractors for unpacking the unpacked files could be helpfull..
    And ofcourse, a hex editor [​IMG]
     
  3. pedroion

    pedroion GBAtemp Regular

    Member
    136
    3
    May 16, 2008
    Brazil
    What and how you want to hack?
     
  4. playallday
    OP

    playallday Group: GBAtemp Ghost

    Member
    3,773
    9
    May 23, 2008
    Canada
    [@N@[)@
    Maybe some Mario games, just small hacks not to big.
     
  5. FAST6191

    FAST6191 Techromancer

    pip Reporter
    22,998
    8,701
    Nov 21, 2005
    GUI apps do not really exist yet (there is a NSMB level editor, deufeufeu made some stuff for some of his projects and there is a couple of FF3 tools when it comes to the DS and the GBA does not fair much better: http://www.romhacking.net/?category=&P...itle=&desc= ).

    Others have mentioned the file system and I agree. Unlike most other cart systems which have the binary and files all together the DS has files able to be distinguished from each other.
    There are multiple apps for this including
    ndstool (command line tool which is part of devkitpro and has the .net using frontends DSlazy and DSBuff, my signature on rom ripping has links and batch files to use it). Some carts/roms do not play well with it though.
    NDSTS: made by the same guy as GBATA. Only able to extract and replace same size files.
    Nitroexplorer (probably the best alternative to ndstool and co). Made by treeki (same guy as the NSMB editor)
    NDSHV: site has been down for ages but made by Vinpire if you want to go looking.
    And you can alter it yourself:
    http://nocash.emubase.de/gbatek.htm#dscart...roromfilesystem

    At the most basic form this enables swapping of files (see undubs and early ripping of roms to fit on small carts as well as the wifi hacks) but it forms the basis of all DS hacking.
    Furthermore the files themselves often have similar file systems/layouts (usually a 4 character identifier followed by size and location of useful data) so you can usually hack them (if you are lucky someone will have already figured out the format). Of course not all formats are documented (and those that are can be changed or incomplete: early NARC (a format a bit tar files that can store just about anything) files/documentation did not have directories accounted for and so did not work so well when directories appeared).

    Oh and the rom hacking stuff in my sig/stickied at the top of the forum should help get you some links at least.

    As for mario (NSMB) the text is basic unicode (I did some hacks way back) and the levels have an editor:
    http://www.romhacking.net/?category=&P...itle=&desc=

    Other mario games can be a bit harder as they favour compression (mainly bios compatible LZ but it can be a pain to work with).
     
  6. RupeeClock

    RupeeClock Colors 3D Snivy!

    Member
    6,377
    853
    May 15, 2008
    I've tried hacking New Super Mario Bros, the editor works.
    The interface needs some development though.

    [​IMG]
     
  7. playallday
    OP

    playallday Group: GBAtemp Ghost

    Member
    3,773
    9
    May 23, 2008
    Canada
    [@N@[)@
    Well I got the ndstool.exe file but when I open it up it closes in less then a 1 sec.

    EDIT: It looks like I'm going to use DSLazy.
     
  8. chuckstudios

    chuckstudios Putting the pro in procrastination

    Member
    896
    0
    Jul 19, 2006
    United States
    North Carolina, USA
     
  9. playallday
    OP

    playallday Group: GBAtemp Ghost

    Member
    3,773
    9
    May 23, 2008
    Canada
    [@N@[)@
    Thanks.

    I think I'll use DSLazy, Just that is has a GUI (sort-of).
     
  10. playallday
    OP

    playallday Group: GBAtemp Ghost

    Member
    3,773
    9
    May 23, 2008
    Canada
    [@N@[)@
    Hey FAST6191 (or anyone) whats the hex editor you use?
     
  11. arctic_flame

    arctic_flame GBAtemp ATMEGA8 Fan

    Member
    2,840
    0
    Nov 4, 2006
    England land
    There are many.

    I use Hex workshop (Not free) and bless (free)
     
  12. playallday
    OP

    playallday Group: GBAtemp Ghost

    Member
    3,773
    9
    May 23, 2008
    Canada
    [@N@[)@
    I just downloaded Hex Editor Neo Free, Is it a any good for DS stuff?
     
  13. mazzolatore

    mazzolatore Member

    Newcomer
    13
    0
    May 29, 2008
    Italy
    IMHO the best hex editors are Translhextion and Windhex.
    Install them together. [​IMG]
     
  14. playallday
    OP

    playallday Group: GBAtemp Ghost

    Member
    3,773
    9
    May 23, 2008
    Canada
    [@N@[)@
    I can't find "IMHO" anywhere [​IMG]
     
  15. FAST6191

    FAST6191 Techromancer

    pip Reporter
    22,998
    8,701
    Nov 21, 2005
    I have several hex editors I use. I posted them a few times elsewhere but can not seem to find it quickly
    As for the already mentioned:
    http://www.romhacking.net/?category=13&amp...itle=&desc=

    Hex Workshop (older version), features a lot of manipulation options (byte flipping and boolean logic especially). Although it is not brilliant and lacks a few features I like from other editors it is the workhorse for any rom hacking work. http://www.bpsoft.com/
    crystaltile2 has a hex editor with support for tables and stuff like shiftJIS is inbuilt. http://gbatemp.net/index.php?showtopic=81767&hl=
    HxD http://www.mh-nexus.de/hxd/
    tinyhexer (now dead but every download site seems to have it).
    notepad++ (simple editor) http://notepad-plus.sourceforge.net/
    x-ways (search for xways forensics) http://www.x-ways.net/winhex/index-m.html
    hex editors from romhacking.net if I need to use a table file (here it is take your pick really, there are several and each works)
    xvi32 (freeware, fairly simple but a solid app). http://www.chmaas.handshake.de/delphi/free...xvi32/xvi32.htm

    Also I use spreadsheet apps as they have awesome hex manipulation abilities (ability to set up crude algorithms and run analysis) for rom hacking.

    I also test out new hex editors all the time when I come across them.
     
  16. Sp33der

    Sp33der GBAtemp Fan

    Member
    435
    1
    May 31, 2008
    Netherlands
    Look at www.romhacking.net - they got a 'Getting Started'

    and yea i use WindHex
     
  17. mazzolatore

    mazzolatore Member

    Newcomer
    13
    0
    May 29, 2008
    Italy
    http://en.wiktionary.org/wiki/IMHO [​IMG] [​IMG]
     
  18. playallday
    OP

    playallday Group: GBAtemp Ghost

    Member
    3,773
    9
    May 23, 2008
    Canada
    [@N@[)@
    One last thing, when the rom boots up what file (ie, "banner", "header", "y7", etc) does it load 1st?

    And how do I edit iplUS_banner.nbfc and iplUS_banner.nbfp?
     
  19. FAST6191

    FAST6191 Techromancer

    pip Reporter
    22,998
    8,701
    Nov 21, 2005
    Until you get into the specifics there are two processors in the DS: the ARM7 similar to the GBA one (slightly faster in DS mode and slightly slower than the original GBA in GBA mode) and the ARM9 (generally considered the main processor).

    In DS roms the ARM9 is more or less the workhorse while the ARM7 does the low end stuff/ is just an API app of sorts (they are so similar between roms that they can be swapped, see ARM7 swapping for some cards).
    DS homebrew tends to utilise the ARM7 more though so if you read the guide to homebrew coding there will be a shift in focus.

    The y7/y9 stuff is overlays. Although a somewhat archaic concept these days for general purpose computing they are basically small apps that get loaded and placed over (hence overlay) a given memory section to do less used things (although it is not done in such a way saves are a good example: you do not have to save every second so it does not matter if you have a small delay while loading the save code).
    ARM7 are never used (I have never seen anything other than 0 byte files) while ARM9 are used occasionally (there is no rhyme or reason as to when they are used; I have seen puzzle games use them extensively while big RPGs have none).
    On the subject of processors the nocash docs/gbatek/no$gba docs (gbatek is the main name) linked above (and again here: http://nocash.emubase.de/gbatek.htm ) have loads on this sort of thing in far more detail than most people will ever need.

    The banner and header files are just that (gbatek again has the layout).

    Regarding what to latch onto when hacking cracker made a bunch of cheat guides (before DSATM was made) that are worth a read. Be warned though that some carts (more specifically their patching mechanisms) do not take kindly to having things changed/sizes altered (although there is usually somewhere that can be used).
     
  20. cracker

    cracker Nyah!

    Member
    3,139
    405
    Aug 24, 2005
    United States
    To add to what FAST said: The manuals I wrote used an old method that I used when I didn't know nearly as much about how the DS system operated. I have come a long way since then and should really write a new *proper* manual since the old methods left much to be desired. [​IMG] If you enjoy hacking it might entertain you some still. [​IMG]