Screenshots
Example Usage
cd disassembly && make
There are also a number of options available to control the formatting and instruction style of the generated assembly code. You can view these by running:
./mgbdis.py -h
## Symbol Files
Symbol files allow you to indicate where code, data, test and image data blocks are in the ROM.
The instructions of the Game Boy CPU (SM83) have different lengths, and data can be interleaved with code in the ROM, so it is not possible to always accurately identify where an instruction starts and stops. Defining code blocks in a symbol file can help to avoid problems with mgbdis trying to disassemble in the middle of an instruction.
If you do not have a symbol file, you can try generating one with my Game Boy emulator - [Beaten Dying Moon](https://mattcurrie.com/bdm/). You can either use the web demo, or there are builds available for Windows and macOS. It can generate a symbol file with code block definitions based on the the addresses of the instructions that have actually been executed while you have been playing the game, avoiding instruction alignment issues.
To use a symbol file with mgbdis, it should exist in the same directory as the ROM and have the same
See also
Angr
Open Source
Python binary analysis framework supporting both static and dynamic symbolic execution (concolic exe…
NebulaFD
Free
A work in progress, reimagined decompiler for Clickteam Fusion.…
APKTool
Open Source
Kali
Tool for reverse engineering Android APK files. Decodes resources to their original form, rebuilds d…
wxapkg
Free
跨平台微信小程序反编译 GUI 工具,.wxapkg 文件扫描 + 解密 + 解包工具…
NTRGhidra
Open Source
A Nintendo DS binary loader for Ghidra…
GDB with pwndbg
Open Source
Kali
GDB (GNU Debugger) enhanced with pwndbg plugin for exploit development and reverse engineering. Adds…