Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How does one modify an old school NES game? [closed]

Tags:

nintendo

I sometimes see modified NES games, and I'd like to try my hand. What tools are used to accomplish this? Is there some magic repository of source code sitting around somewhere that I don't know about? My question is, what is step one to modifying any arbitrary NES game? (If step one is something like 'get your head on straight', then please give me steps one through three.)

Thank you

like image 842
Walrus the Cat Avatar asked Jun 09 '12 00:06

Walrus the Cat


2 Answers

What you're talking about is called "ROM hacking."

Now you'll want to be careful here because there are serious legal issues (note, I am not a lawyer): For one, to hack a game, you need to find a ROM image of the game you're trying to hack. There are sites that provide downloads for these, but I will not link to one. You're on your own here. The other issue is that a hacked game would count as an infringing derivative work. In practice, however, the game companies mostly ignore the ROM hacking scene.

Legal issues aside, these are the essentials for ROM hacking:

  • A ROM image of the game you want to hack (see the warning above).
  • An emulator. In theory you could write your hack to a cartridge and play it on an NES, but that assumes you still have an NES, so emulators are the next best thing. Note that emulators are perfectly legal (it's the ROMs that aren't); for NES ROM hacking and homebrew development, I would recommend FCEUX. It has a built-in memory viewer and an excellent debugger.
  • A hex editor. I recommend HexEdit. As of now, it's freeware. Sorry, it's for Windows only.
  • A tile editor, for editing graphics. I recommend YY-CHR. Again, it's Windows only.

Romhacking.net hosts other useful tools as well.

like image 151
BenW Avatar answered Jan 03 '23 14:01

BenW


You'll need the ROM image and a disassembler or just a good old hex editor. It will be HARD unless you know the target architecture well. Many a time on these old systems they coded around corners to make things fit in the tiny amount of storage available. This will lead to some very odd "side effecty" code which you could find tricky to understand.

My advice, create a game from scratch as a "cover version" in a modern language using modern hardware, you won't have to worry about only having 4kb RAM!

like image 35
Jeff Watkins Avatar answered Jan 03 '23 15:01

Jeff Watkins