A disassembly of one of my favorite Game Boy games. A first-pass over every function of code has been completed, but there are still plenty of improvements to be made to make the code more intelligible and usable. Feel free to contribute.
- Install rgbds
- Either run
make all
orbuild.bat
, depending on your preference. - The assembled game and a BGB compatible
.sym
file will appear in theout
folder.
The resultant file should have this hash: md5: 9639948ad274fa15281f549e5f9c4d87
- Fork this repository (if you please).
- Make something better. Perhaps start by doing something like:
- Checking the issue tracker.
- Giving a function or variable a (better) name.
- Properly defining a RAM address (eg. labelName: ds 1).
- Turning a magic number into a constant.
- Turning a raw pointer (eg. $4242) into a proper label (eg. enemyAI_squeek).
- Adding a missing label.
- Adding informative comments.
- etc.
- Verify that your changes still result in a byte-for-byte identical game.
- Submit a pull request.
Please refrain from moving any chunk of code into a separate file without first discussing it in the issue tracker.
If you have questions or comments, please drop by the #metroid-ii channel on the MetConst Discord.
Subject to change.
docs
- Assorted notes regarding the game's formats and structureout
- Output directory for the build processscripts
- Various scripts to extra data from the gamepatches
- Basic modifications to improve or change the game.SRC
- Top level source codeSRC/data
- General data that hasn't been or can't be categorized elsewhereSRC/gfx
- Generic tile dataSRC/maps
- Level data banks, along with the associated enemy data and door scriptsSRC/ram
- Definitions/declarations for VRAM, SRAM, WRAM, and HRAM.SRC/tilesets
- Tile graphics, metatile definitions, and collision tables for each tileset
- mgbdis - The disassember used to create this project.
- PJ's Bank Logs - A rather extensive, but unbuildable, disassembly of the game.
- MetConst Wiki - Some of the information here is outdated.
- M2 Music Tools - A song extractor written by kkzero.
- LA DX Disassembly - A disassembly project of another game that also uses rgbds.