A Game Boy ROM disassembler that generates RGBDS-compatible assembly code with support for symbol files and image extraction.
mgbdis is a Game Boy ROM disassembler that converts binary game ROMs into human-readable assembly code compatible with the RGBDS assembler. It solves the problem of accurately disassembling Game Boy games, where code and data are interleaved, by supporting symbol files to define code blocks and data regions.
Retro gaming enthusiasts, homebrew developers, and researchers analyzing or modifying classic Game Boy and Game Boy Color games.
Developers choose mgbdis for its tight integration with the RGBDS ecosystem, support for symbol files to improve disassembly accuracy, and built-in image extraction capabilities for game graphics.
Game Boy ROM disassembler with RGBDS compatible output
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Outputs assembly code specifically designed for reassembly with RGBDS v0.8.0 or later, ensuring seamless compatibility with the standard Game Boy development toolchain, as stated in the README.
Leverages .sym files to define code, data, text, and image blocks, which helps overcome the SM83 CPU's variable-length instruction challenges and improves disassembly accuracy for modding and preservation.
Converts tile data to PNG images and includes makefile rules to rebuild them using rgbgfx, simplifying the process of analyzing and modifying game graphics, as demonstrated in the image examples.
Creates a makefile to rebuild the original ROM from the disassembly, automating verification and reducing manual steps for developers, as mentioned in the usage instructions.
The README explicitly admits mgbdis is 'slow on large ROMs,' which can hinder efficiency in extensive game analysis or batch processing scenarios.
Accurate disassembly relies heavily on external .sym files; without them, instruction alignment issues are common, and generating symbols requires using separate tools like the Beaten Dying Moon emulator, adding complexity.
Only supports Game Boy and Game Boy Color ROMs, making it unsuitable for other retro systems or modern platforms, which limits its utility in broader reverse engineering projects.