vivisect | mgbdis | |
---|---|---|
1 | 6 | |
901 | 226 | |
1.0% | - | |
6.9 | 4.5 | |
6 days ago | 9 months ago | |
Python | Python | |
Apache License 2.0 | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
vivisect
-
Introduction into game hacking
Check out vivisect, it might be what you're looking for: https://github.com/vivisect/vivisect
mgbdis
-
Exploring the Gameboy Memory Bank Controller (2020)
Game Boy disassembler: https://github.com/mattcurrie/mgbdis
You can compile the ROM's back with rgbds: https://github.com/gbdev/rgbds
Here you can see how bank switching works.
-
My GB studio said a file was missing so I reinstalled GB studio but now none of my projects open
You can get images out of it. Find the image locations in the ROM with a tool like YY-CHR, then annotate that location in the disassembler (like https://github.com/mattcurrie/mgbdis).
-
How to get game files?
By a search on Google, I found this link: https://github.com/mattcurrie/mgbdis
- mattcurrie/mgbdis: Game Boy ROM disassembler with RGBDS compatible output
-
Ghidra - Editing Gameboy ROM for Analogue Pocket
I didn't use Ghidra, I only used mgbdis to create a disassembly. Patched it and then reassemble it.
-
ROM Hacking Guide
You make it sound like there's a machine you can put a Game Boy ROM into and get out a disassembly, which is kinda true (https://github.com/mattcurrie/mgbdis) but it doesn't automatically split out data blocks or anything like that - it just tries to crawl the ROM and disassemble any code it can find. It's certainly not "effectively no additional work" than making targeted alterations to the binary and documenting your work.
And that's before you get to platforms where most if not all games are written in C - I question whether a mere disassembly of a game like Pokemon Emerald would even be useful to anyone, whereas the pokeemerald decompilation (https://github.com/pret/pokeemerald) is clearly useful but was a heck of a lot more work to produce.
> That's a hurdle, but not an insurmountable one... unless the system didn't even support banking. (Are there any systems that didn't?)
Depends what you mean by "support". I don't think any system has a built-in mapper - they just assign a chunk of memory space to the cartridge bus, and if your game is larger than that chunk of memory space you include a mapper on the cartridge. Nintendo provided standard mappers for machines like the NES and Game Boy because it's very hard to include a substantial game in the wedge of memory space you get on the processors in those machines, whereas only one game on the Genesis/Megadrive needed one.
What are some alternatives?
verifydump - A tool for verifying that .chd/.rvz disc images match Redump Datfiles
gb-studio - A quick and easy to use drag and drop retro game creator for your favourite handheld video game system
miasm - Reverse engineering framework in Python
pokered - Disassembly of Pokémon Red/Blue
OSX-KVM - Run macOS on QEMU/KVM. With OpenCore + Monterey + Ventura + Sonoma support now! Only commercial (paid) support is available now to avoid spammy issues. No Mac system is required.
rgbds - Rednex Game Boy Development System - An assembly toolchain for the Nintendo Game Boy and Game Boy Color
pwndbg - Exploit Development and Reverse Engineering with GDB Made Easy
apkleaks - Scanning APK file for URIs, endpoints & secrets.
plasma - Plasma is an interactive disassembler for x86/ARM/MIPS. It can generates indented pseudo-code with colored syntax.
PyBoy - Game Boy emulator written in Python
PINCE - Reverse engineering tool for linux games