Hacker News new | past | comments | ask | show | jobs | submit login
Nintendo GBA and DS ROM hacking guide (2016) (gbatemp.net)
146 points by kiisupai 8 months ago | hide | past | favorite | 34 comments

The 3DS hacking scene is still pretty active. Great form factor devices, fully jailbroken. Guide is pretty easy to follow at 3ds.hacks.guide :)

I've got mine as the best form-factor emulation station (for older games) you could imagine :).

+1 it's worth it for the NSUI [0] alone. The 3DS, especially the New 3DSXL is the best handheld to play NES/SNES/GB/C/A games, pixel perfect!

0, https://3ds.eiphax.tech/nsui

> The 3DS, especially the New 3DSXL is the best handheld to play NES/SNES/GB/C/A games, pixel perfect!

For me at least, I think the Steam Deck has it beat these days, although I'll admit I miss the smaller form factor sometimes.

If you're into the kind of emulation where the 3DS is a contender, the Steam Deck is miles behind so many other options.

There's a cottage industry of retro emulation machines that all have much better battery life, more faithful control schemes, etc.

The Steam Deck shines because of all the other things it can do, but those mostly come at a cost to how great of a retro emulation handheld it is.

Love my New 2DS XL with cfw, but the best form factor for me for those you mentioned is the Miyoo Mini.

I have it in my pocket all the time and put has save states, fast forward and low power standby with instant power on.

I can play it in short busts whenever I have a few minutes spare instead of using my phone.

I recently beat Pokémon Emerald for the first time thanks to this and I'm further through dk county than I've ever been

Any starting point for steam dock. A run emulation now. Just treat those rom as well roy and start to hack from that I supposed.

Btw that is 6 years ago or starting 7. No need of any update?

Guessing you meant to ask "any starting point for steamdeck running emulation now" or something like that.

If so, I'd recommend EmuDeck [1]. It took me about 10 minutes to set up and has emulators for essentially every platform you could want. (Just need to have roms.) Also, it's open source [2].

[1] - https://www.emudeck.com [2] - https://github.com/dragoonDorise/EmuDeck

I'd never heard of NSUI, this looks awesome!

Is it true that 3DS hardware supports Genesis games (as seen in the screenshot)? I'd love to know the story there. Was Sega involved? How does it works in hardware, since the Genesis has 68k/Z80 CPUs, and the DS family uses ARMs?

Only GBA and NDS games can run natively on 3DS hardware. Everything else is software emulation.

Thanks that makes more sense. I must have misunderstood the blurb at the top.

For gba games it's hard to beat the anberic 351p. Almost the same exact size as the gba with the same screen size

I've got a GBA with a backlight mod and a flash cart. Flash carts are a game changer (pun intended) if you've got original hardware. I love systems like the Anberic but if you've got original hardware flash carts are the way to go.

Very comprehensive resource for someone trying to get into rom hacking in general.

The GBATEK specification [0] mentioned several times in the guide (not limited to the GBA, it also covers Nintendo DS, DSi and 3DS) feels like a real treasure trove of technical data.

[0] https://problemkaputt.de/gbatek.htm

That page was written by Martin Korth (aka nocash) as he developed the no$gba emulator. He has a similar page for the PlayStation 1 [1] and prior to that he wrote one for the original Gameboy [2]; both have since been forked and maintained by other people [3]. He is currently homeless and accepting donations, so if anybody finds these pages useful consider donating.

[1]: https://problemkaputt.de/psx-spx.htm

[2]: https://problemkaputt.de/pandocs.htm

[3]: https://psx-spx.consoledev.net/ https://gbdev.io/pandocs/

Damn. I registered No$CPC in high school.

This appears to be a phenomenal document containing a lot of fascinating info on ROM hacking in general - while the document does explicitly appear to cover GBA and DS most specifically (at 300+ pages, I could only skim through it, here) - it covers surprisingly fundamental basics about game development, emulation and core programming concepts.

This will be a document I'll keep around for the foreseeable future. Amazing work.

Back in the '80s there was a lot of save game file hacking going on. My buddy and I would look at save game files for all the hot fun games in the hex editor and try to figure out what values we could change. Bard's Tale had a fairly simple layout, which we painstakingly figured out by, for example, using one item and seeing which values decremented. BTII or III, can't remember, went to some length to prevent this easy hacking of the save state. By the 1990s it was common for save game files to be obfuscated in various ways, making the process much more of a pain in the ass.

Yeah I definitely agree, wasting time figuring out how to get to the save and apply your changes is the worst obstacle there, in most cases the saves are encrypted and have a check sum applied. Although I've found some games that allow you access the save data without messing around with this stuff, mainly the Shin Megami Tensei line of JRPG games in my experience.

Granted, the saves are binary blobs but once you find the value you want you can find an entire struct of data along side it. There are tools like imHex which help the process and help you define the structure of the save file. It's become a common project of mine to save hack and then build a save editor when I'm confident my changes work.

These days it's far easier to read/edit the memory of running programs than the serialized data saved to disk in save files.

Well; isn’t that why a lot of traditional ROM hacks historically (at least in the SEGA Genesis/MD hacking scene I was involved with) used savestates as rudimentary ROM hacks? EG - hasn’t it been easier to manipulate data in runtime memory, eg in a savestate; than within the ROM?

Asking because I don’t actually know, I’m just recalling a lot of my early ROM hacking, and indeed discoveries in ROMs, by manipulating memory and savestate rather than the ROM itself.

Savestate hacking used to be easier because everything in a savestate is uncompressed and raw. Tile graphics, level layouts, palettes, sprite mappings, etc.

To hack a ROM you need to know how to decompress the data, and then recompress your changes. A given game might use multiple compression formats.

I couldn't tell you without a specific example, but I would suspect distributing an edited ROM would be much easier than save state hacking.

In a general sense, I suspect the latter is more popular because it's not illegal to modify/distribute save state data; ROMs certainly can be.

They distribute delta binary patches on the form of IPS formats.

Which gives me even less reason for why they would distribute modified ephemeral data vs source data to alter game logic.

Obviously, if you want all 151 Pokemon captured, you would do that through a save state. But if you want increased chances of capturing Pidgey, it would certainly be easier to distribute a ROM (or delte, in this case) with those new ratios baked in.

We used to break into the monitor for research sometimes too. Great times, no real OS in the way either.

This is a surprisingly well written /book/. Thanks for the link.

I used to do game save file hacking on palmOS as a teen. Was a hoot. Eventually turned to full blown “cracking” of software. That was a fun hobby.

I'm working on a project to use 3DS devices as a Terminal and IoT device with RTMES as the OS. Still in pretty early stage (aka nothing to see here) but used 3DS's are cheaper then RPI's have wireless, a Screen a keyboard (touchscreen), infrared, microphone and speaker and even a UPS (battery) plus two different Cores, so it is a pretty powerfull Device for stuff like that.

Is there any URL we can switch the top link to, that contains some of this information but doesn't do an automatic file download as https://gbatemp.net/download/gba-and-ds-rom-hacking-guide.33... does? (Those make annoying links for frontpage submissions, even when the content is good.)

Seems like just taking out the word download after the slash does the trick:


The info isn't embedded on the page, but the download button for the PDF is unforced but available

Edit: Looks like this thread has the info from the PDF embedded:


Glad to have been of service - thank you for maintaining this forum so well

Yeah, even just a(n automatic) "[pdf]" in these submission titles would help. Or the site could just not force download since most browsers can natively read PDFs, etc.

I dislike them myself and actually tried looking for one but the only alternative I found was scribd, which would require a login to download (even more annoying).

Open to hear any good suggestions for PDF hosting.

Your efforts are much appreciated and good content even more so!

Applications are open for YC Winter 2024

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact