News: 11 March 2016 - Forum Rules

Author Topic: Hacking and Translating Nintendo DS Games  (Read 3427 times)

Bob Liu

  • Sr. Member
  • ****
  • Posts: 253
    • View Profile
Hacking and Translating Nintendo DS Games
« on: May 03, 2014, 05:46:30 pm »
Sorry for creating topics every now and then but I just want to gather information about various systems that I may be interested in translating games for in the future. I remember people saying that DS games are easier to translate than other systems, I am just wondering how so. Also is the general process of translating much different than Game Boy or Game Gear games and can you relative search to find text, thanks guys.

Scio

  • Full Member
  • ***
  • Posts: 155
    • View Profile
Re: Hacking and Translating Nintendo DS Games
« Reply #1 on: May 03, 2014, 06:25:35 pm »
Read this:
http://filetrip.net/nds-downloads/utilities/download-gba-and-ds-rom-hacking-guide-2012-preview-2-f30026.html
(Click Download File on the right, then Manual Download)

Bottom line, the NDS has a filesystem (so it's more akin to a PC), and most of the file formats used have been reverse-engineered. What helps even more is that developers usually adhered to the standards present in Nintendo's SDK, so it's harder to find a game with a custom format (at least for text and graphics). Also there are no banks to deal with.

FAST6191

  • Hero Member
  • *****
  • Posts: 3529
    • View Profile
Re: Hacking and Translating Nintendo DS Games
« Reply #2 on: May 03, 2014, 06:29:21 pm »
Easier.
Give or take the occasional memory issue (you have to have files in memory) you can expand the file as far as the pointers for it allow (technically into the gigabytes -- you often have 32 bits for an address and size, though you will probably hit other limits long before then).
You have a file system, I press rebuild and it puts it all back together and usually just works (a few games might need to be put back together properly or otherwise stick all their files in a single archive)
You have a file system, it is full of known file names/extensions, file names that often tell you exactly what a given file does and gives you the whole bit of data without worrying something else is somewhere else (though you can have several files to make up one concept-- palettes, the image data and the animations can all be separate, though they are usually named similarly).

Harder.
You have a file system which makes basic tracing techniques harder ( http://www.romhacking.net/documents/361/ <- for the GBA, which is a very similar system to the DS. DS tracing is not so nice as that as you get to watch read functions, though there is usually only one read function for a game). There are still ways, some of them technically even nicer than normal tracing, but it is not a case of adding a breakpoint for a read on a cart memory area.
You have more power so compression is common, formats can be more complex and you can end up with a lot more to edit. Compression is common but there are common compression techniques (the BIOS even has support for several methods) so there is that. Complex formats often mean you can do what you want and more to edit means more room to play in.
The assembly for the system might be harder in some ways. However in others it has more options which means you do not necessarily have to chain together things and do all sorts of binary manipulation.

Theoretically you could treat it like a GB/GBA/game gear but when you have a file system it tends to pay to use it. However yeah give or take compression relative search still works, you still get to play with tile editors and you still get to figure out pointer systems (though here they are often file level rather than tied more closely to the memory layout).

If you want the best of both worlds, save for the file system*, then the GBA is probably what you want to be looking at. It has basically unlimited space (GBA carts address 32 megabytes in every card, most games are not above 16 and are often more like 8 to 12 megabytes), there are no mappers/cart handlers to get in the way (give or take relatively easier solved things like pokemon clocks and boktai solar sensors) so memory addressing is easy, the power and complexity of CPU is mostly there (if you count the BIOS you even have a divide function).

*I find it hard to understate how nice having a file system is for hacking.

Bob Liu

  • Sr. Member
  • ****
  • Posts: 253
    • View Profile
Re: Hacking and Translating Nintendo DS Games
« Reply #3 on: May 04, 2014, 10:32:21 am »
Thanks guys, glad to know it's similar to what I have worked with so far. I'll have a look at that document and see what it says.