eharmon
Well-known member
Hey folks, I've been digging into Mac ROMs pretty extensively lately, and I've created a file template for Hex Fiend that can help you introspect and examine all types of Mac ROMs.
github.com
From the README:
Most interestingly, I think this might be the first implementation capable of parsing the Extended DeclROM, allowing you to see all pseudo-slot definitions on newer Macs, and the System ROM Resources. This makes it significantly easier to understand the layout for ROM hacks.
Unlike a real parser, this file template only works in Hex Fiend, but serves to allow for easy point-and-click drill down of data and selection and editing of key sections.
It could serve as a reference for anyone to implement a real parser/ROM hacking tool in a traditional language or make improvements to existing tools.
Some screenshots:
Resources in the PowerBook 160 System ROM:

Pseudo-Slot Extended DeclROM data:

Video modes from the 24AC Display Board:

GitHub - eharmon/rom_fiend: Macintosh ROM file template for Hex Fiend
Macintosh ROM file template for Hex Fiend. Contribute to eharmon/rom_fiend development by creating an account on GitHub.
From the README:
Supported Data Types
- Declaration ROM (DeclROM)
- NuBus and PDS peripherals on 68020+ Macs. Also used for System ROMs before 4.0 (most machines released before the PowerBook 160).
- These define plug-and-play parameters for devices, including memory mappings, driver support, and basic identification.
- Almost all data types are supported. Unsupported entries are marked with "TODO" in the Hex Fiend view.
- Extended DeclROM
- Board definitions in System ROMs after the PowerBook 160.
- This is a superset of the normal DeclROM, allowing for multiple data directories to be defined which are selected from on system boot.
- Supports the same data types as regular DeclROMs.
- System ROM Resources
- Toolbox resources including cursors, sounds, drivers, and some device support definitions.
Unsupported Data Types
- System ROM tables
- Used for some low-level hardware configuration.
- These are encoded inline with assembly and thus are difficult to parse with Hex Fiend without hardcoding per ROM
Most interestingly, I think this might be the first implementation capable of parsing the Extended DeclROM, allowing you to see all pseudo-slot definitions on newer Macs, and the System ROM Resources. This makes it significantly easier to understand the layout for ROM hacks.
Unlike a real parser, this file template only works in Hex Fiend, but serves to allow for easy point-and-click drill down of data and selection and editing of key sections.
It could serve as a reference for anyone to implement a real parser/ROM hacking tool in a traditional language or make improvements to existing tools.
Some screenshots:
Resources in the PowerBook 160 System ROM:

Pseudo-Slot Extended DeclROM data:

Video modes from the 24AC Display Board:
