Anyone want to learn rom-hacking?

Interested in a rom-hacking series?


  • Total voters
    49

ekorz

Multi Boyz 4 Pi
Immortal
Multi Boyz
Joined
Aug 21, 2016
Messages
5,429
Reaction score
8,492
Location
Boston, MA
Hi, if you don’t know I’ve done some arcade rom-hacks. They’re in my signature! Often, hack ideas come up here, but it seems there aren’t many who want to try them, so I thought maybe I should help.

At this point I feel like what I’ve learned about rom-hacking is teachable. I was thinking about documenting the tools and process I use, but it’s a lot of work and not worth it if nobody would use it. So here is a quick poll to see if there’s interest.

Also worth noting that there’s a lot of room for improvement in both my tools and process, but it could get someone from zero-to-hacking easily, and probably some could get to intermediate patches or mods.

I’d look to cover:
-68000 specific (but the process works for any cpu)
-maybe some neo-geo specific stuff
-MAME docs/debugger/cheats
-Program hacks for sure, maybe gfx/sound
-breaking simple checksum security
-A python workflow that keeps me sane, but is much less about knowing python and more about keeping the patches somewhat organized
-not ghidra

I’m also not sure if/when I’ll get to it, but it’s been on my mind so I’d like to see if there’s interest. Thanks!
 
First time i heard of Ghidra, something you don't want to cover or something you're not able to?
Personally always interested in anything that demystifys MAME Docs/Debugger. Not sure if i would really be invested beyonde switching Sprites/Backgrounds/Sound but I'm somewhat curious if i would even understand the process behind breaking security.
 
First time i heard of Ghidra, something you don't want to cover or something you're not able to?
may I cover something? - during last ~6 months I've been using Ghidra for 3 different architectures - SH-4, PowerPC (X360 Xenon) and ARMv3.
in 2 cases of 3 (SH-4 and ARM) Ghidra produced totally messed decompiled code, until I fixed bugs and mistakes in Ghidra.
in case of PowerPC about half of if/else or switch/case decompiled code was wrong, because of bugs in conditional branches handling.
I think in total, I've spent more time on learning how Ghidra internals works and fixing them, than actually using it.
also worth mentioning UI/UX, it's simply terrible.

TLDR: use IDA Pro or other tools if possible. use Ghidra only if you have no any other choice.
 
may I cover something? - during last ~6 months I've been using Ghidra for 3 different architectures - SH-4, PowerPC (X360 Xenon) and ARMv3.
in 2 cases of 3 (SH-4 and ARM) Ghidra produced totally messed decompiled code, until I fixed bugs and mistakes in Ghidra.
in case of PowerPC about half of if/else or switch/case decompiled code was wrong, because of bugs in conditional branches handling.
I think in total, I've spent more time on learning how Ghidra internals works and fixing them, than actually using it.
also worth mentioning UI/UX, it's simply terrible.

TLDR: use IDA Pro or other tools if possible. use Ghidra only if you have no any other choice.
good point. though i won't be covering IDA Pro either :D

First time i heard of Ghidra, something you don't want to cover or something you're not able to?
Personally always interested in anything that demystifys MAME Docs/Debugger. Not sure if i would really be invested beyonde switching Sprites/Backgrounds/Sound but I'm somewhat curious if i would even understand the process behind breaking security.

The reason I won't spend any time with Ghidra is that it's a whole course in itself, and one which I haven't finished. It's also a completely unnecessary tool for 68000 hacking, which is the dominant processor for arcade games of the era I enjoy hacking.
 
I’m on board with learning from your resources. I have a sillier goal: I’d like to port Namco System 11/12 to an open source PS1 emulator.

I’m not educated enough on lower level hardware and emulation development; rom hacking would be a great gateway to get there.
 
I’m on board with learning from your resources. I have a sillier goal: I’d like to port Namco System 11/12 to an open source PS1 emulator.

I’m not educated enough on lower level hardware and emulation development; rom hacking would be a great gateway to get there.
MIPS is its own crazy animal but hey i can start you on some basics for sure
 
As a hardware/mechanical guy I'd really appreciate this.
I'd really love to learn the modifying software side of things.
 
I first learned a bit of ROM hacking from arcadecabinets.com youtube channel:
View: https://www.youtube.com/watch?v=CGNXFNogYpA

it's a great into for a complete beginner.

I don't do it often enough and I feel like every time I need to do some ROM hacking I end up having re-learn the tools from scratch.

Truth be old I'm not a fan and do it out of necessity for other projects but that might just be because I have a pretty shitty workflow that makes the process slow and painful. would love to see a guide from you on ROM hacking and maybe find a way to be more productive and enjoy the process more.
 
I first learned a bit of ROM hacking from arcadecabinets.com youtube channel:
View: https://www.youtube.com/watch?v=CGNXFNogYpA

it's a great into for a complete beginner.

I don't do it often enough and I feel like every time I need to do some ROM hacking I end up having re-learn the tools from scratch.

Truth be old I'm not a fan and do it out of necessity for other projects but that might just be because I have a pretty shitty workflow that makes the process slow and painful. would love to see a guide from you on ROM hacking and maybe find a way to be more productive and enjoy the process more.
I couldn't do any meaningfully large projects until I found a way to NOT do it completely by hand, like he seems to (here copying manually built opcodes from a text editor):

1763431812400.png

Manual entry of opcodes is really tedious and error prone, and ultimately fails if the original roms are split, byteswapped, or otherwise convoluted.

There are still plenty of slow and painful parts in what I do, but it allows me to keep things organized and automates the application of the patches.
 
1763524348604.png


...well someone isn't interested!

I will wait for the poll to actually close, but that's a lot more interest than I was expecting.

This morning I recorded my process while making a new freeplay patch, and I'll upload that and the resources somewhere soon. I guess we'll see if a video-recording is digestible and useful, and also if my thoughts are coherent enough for you all to follow...
 
Cool! One thing I’d definitely love to try is widescreen hacks for older 4:3 based games, I’m already delving into that with some Namco System 2X6 games but would like to try to do the same for Namco System 11 and 12 games :)
 
Back
Top