awesome-romhacking
awesome-romhacking copied to clipboard
An awesome list of epic resources related to romhacking for various games and consoles.
Awesome Romhacking
A list of resources for all your romhacking needs!

Romhacking is the practice of editing a video game's code β located in its read-only memory, or ROM β in order to modify the game.
Legend: π§ = for Linux, π = for Mac, πͺ = for Windows, πΈ = paid software
Contents
- Where to Start
- Subfields
- Consoles
- Prominent Games
- Tools
- Assembly (ASM) Languages
- General Communities
Where to Start
- Getting Started - Romhacking Dot Net's page for beginners looking to get started with the various subfields of romhacking.
- The Definitive Guide to Romhacking for Complete Beginners - A guide to romhacking that covers the basics of what romhacking is.
Fundamental Concepts
- Big Endian vs. Little Endian - An article on the concept of endianness.
- Hexadecimal - A YouTube video explaining number bases, binary, and hexadecimal.
- Introduction to Programming Logic - A short description of the basic mindset behind programming logic.
- What is Debugging? - An explanation of debugging and the general debugging process.
Advanced Concepts
- Binary translation - A Wikipedia page describing static binary translation, which is what static recompilations are.
- Data Representation - Harvard computer science course notes explaining how computers internally process data.
- N64: Recompiled - A description of how recomps work for ROMs.
- Reverse Engineering - An article about reverse engineering and decompilation, which can be applied to ROMs.
- Reversing: Secrets of Reverse Engineering - A book about practices, strategies, and rationale for reverse engineering.
Subfields
Text Editing and Translation
Graphics Editing
Music Editing
Level Editing
Cheat Codes
- Action Replay Code Types - A document describing the parts and technical meanings of Action Replay codes.
Consoles
Game Boy
Game Boy Advance
- GBATEK - More than everything you'll need to know about the hardware and software of the GBA, DS, and (to an extent) the 3DS.
- FAST6196's GBA and DS Romhacking Guide (2016 Edition) - A thorough overview of GBA and DS romhacking with helpful examples.
Nintendo Entertainment System
Nintendo 3DS
Nintendo 64
Nintendo DS
- The Ultimate Nintendo DS Romhacking Guide - A thread on GBATemp that goes over basic DS romhacking. Note that it uses some outdated tools.
- Nitro Studio 2 Deluxe - An all-in-one tool for editing music and sound effects in .sdat files. πͺ
Nintendo GameCube
PlayStation
PlayStation 2
PlayStation 3
PlayStation Portable
Sega Dreamcast
Sega Game Gear
Sega Genesis
Sega Master System
Sega Saturn
Super Nintendo Entertainment System
Wii
Wii U
Xbox
Xbox 360
Prominent Games
Doom series
- Doomworld - A forum for Doom discussion, including documentation and help with creating mods.
PokΓ©mon series
- A Beginners Guide to Hacking Gen 3 PokΓ©mon Games With Decomps - A guide with resources for hacking PokΓ©mon with decompilations.
- Pokecommunity Forums - A forum for sharing, discussing, and providing information on making PokΓ©mon romhacks.
- r/PokemonROMhacks - A large subreddit for discussing and making PokΓ©mon romhacks.
Metroid series
- Metroid Construction - The hub for Metroid hacking and resources.
Super Mario 64
- Pannenkoek - A Super Mario 64 YouTuber who makes in-depth technical explainer videos about the game's workings.
- Kaze - A Super Mario 64 YouTuber who creates mods and has optimized the entire source code.
Mario series
- New Super Mario Bros. Editor (NSMBE) - The main tool for modding New Super Mario Bros. (DS). πͺ
- New Super Mario Bros. Hacking Domain (NSMBHD) - A forum for discussing everything about New Super Mario Bros. (DS) romhacking.
- Super Mario World Central - A community all about Super Mario World, but also may be relevant to other SNES hacking.
Super Smash Bros. series
The Legend of Zelda: Ocarina of Time
Tools
Patchers
- beat - Creates and applies BPS patches, a format which is a spiritual successor to the IPS format. πͺ
- Lunar IPS - Creates and applies IPS patches. πͺ
- Online ROM Patcher - An online app for applying patches of various formats. π§ππͺ
- XDelta - An app for creating and applying .xdelta patches. πͺ
Hex Editors
- Hex Workshop - A hex editor with many integrated tools, but doesn't do much more than free hex editors can do. πͺπΈ
- HxD - A classic hex editor for disk, RAM, and file editing. πͺ
- ImHex - A newer, modular hex editor for reverse engineering and programming, with features suited to romhacking. π§ππͺ
- WindHex32 - A hex editor with romhacking features, especially ones targeted for SNES games. πͺ
Debugging Emulators
- BGB - A Game Boy and Game Boy Color debugging emulator. πͺ
- FCEUX - An NES and Famicom Disk System emulator including features for romhackers. π§ππͺ
- NO$GBA - The "gold standard" emulator for working with GBA and DS games. πͺ
Reverse Engineering Frameworks
- Ghidra - Free and open-source software by the National Security Agency for reverse-engineering binaries. π§ππͺ
- IDA Free - The free (and thus limited) version of IDA Pro, used for reverse engineering and development. π§ππͺ
- IDA Pro - The fully-featured version of IDA Free. π§ππͺπΈ
Graphics Editors
- Crystal Tile 2 - Contains many tools for DS hacking, but is also helpful as a general tile editor. πͺ
Translation
- Kuriimu2 - A "general purpose game translation project manager" for making fan translations. π§ππͺ
Assembly (ASM) Languages
6502
Used by the NES.
65816
Used by the SNES.
68000
Used by the Genesis.
- 68000 Assembly Programming for the Sega Genesis - A detailed introduction to 68000 assembly.
ARM
Used by the GBA, DS, and 3DS.
MIPS
Used by the PS1 and PS2.
PowerPC
Used by the GameCube, Wii, Wii U, and Xbox 360.
- Basic ASM - An introduction to assembly using PowerPC.
x86
Used by the original Xbox.
Z80
Used by the Master System and Game Gear; the Game Boy uses a modified version called GBZ80.
General Communities
- Romhack Dot Ing (RHDI) - A central site for sharing and finding romhacks, which also contains the hacks and utilities from the former hub romhacking.net.
- Romhack Hispano - A romhacking community for Spanish speakers.
- GameHacking.org - A site dedicated to storing and creating cheat codes; includes a Discord server.
- GBATemp Forums - A large gaming forum with subgroups about romhacking on various consoles. There's a lot of valuable information here.
- Game Banana - A place to find (and upload) all sorts of game mods.
- r/romhacking - A small subreddit about creating and playing romhacks.
Contributing
Contributions of any kind welcome, just follow the guidelines!