Disassembler for Power Macintosh ROMs.
You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Maxim Poliakovski 4e75ac0f3c Fix detokenizer for OF 1.x images. 8 months ago
database BEIGEv3_DB: annotate Cuda Manager. 1 year ago
PowerRomDasm.py Use main script's path to locate the database directory. 1 year ago
README.md Create README.md 2 years ago
detok.py Fix detokenizer for OF 1.x images. 8 months ago
detok_of.py Fix detokenizer for OF 1.x images. 8 months ago
extractdict.py Add OpenFirmware detokenizer. 2 years ago
mactraps.py PDMDB: annotate SlotMgrInit module. 1 year ago



An attempt to disassemble a Power Macintosh ROM using widely available disassemblers will likely lead to disappointing results. While some state-of-the-art disassemblers employ various heurictics for distinguishing embedded data from executable code, a lot of additional manual work still need to be done to produce a nice disassembly. Additionally, Power Macintosh ROMs contain code for several CPU architectures (68k, PowerPC, FCode) so a multi-architecture disassembler is required for telling all this stuff apart.

The purpose of this repository is to provide a tool for producing a nice disassembly for the existing Power Macintosh ROM dumps annotated with various symbols like function names, entry points etc. The resulting text dump can be used for easier debugging of MacOS system software and emulator development.


The following components are required to run PowerRomDasm:


python3 PowerRomDasm.py --rom_path=[path to a Power Macintosh ROM dump] --start=0 --end=0x300