Mac OS 9 Discussion > Mac OS 9, Hacks & Upgrades

ROM toolkit


Hi everyone. This is a reproduction of my post to the CDG5 mailing list. I have written the easy ROM-hacking command line toolkit that I promised recently. Anyone who wants to peer inside their favourite Mac OS ROM, and maybe modify it a bit, should give this a go! Questions and ideas welcome. I hope to follow up with a built-in library of tested patches that can be applied to any image.

Hi all,

My pure-Python ROM toolkit is ready!

Install with: 'python3 -m pip install tbxi' Invoke with: 'python3 -m tbxi' or just 'tbxi'

Documentation to come, plus some support for tbxi resource forks.

The 'tbxi' script can strip a NewWorld ROM image (or an OldWorld one) down to the level of ROM resources, then build it back up again.

You can place an executable patch in the source tree to have it applied to a given file before that file is used for a build. The patch acts as a simple stdin/stdout filter. It should have a base name that glob-matches the target file, and the extension '.patch' or '.patch.*' (e.g. ''). (Before a patch is executed, you are prompted for a 'y' at the command prompt; work around this with 'yes | tbxi').

Rudimentary Macintosh metadata is attached to the output to make it bootable, either via an '.idump' file or in a BinHex blob.

My hope is to unleash the tinkering instincts of our forumgoing friends.



I just stumbled across this post. I took a preliminary look at the code and am trying to get a better handle for what is possible with this.

Initially, I thought this was designed to run on the physical machine containing the ROM, but since the compilation / runtime instructions are nothing like what would be used on a Pre-OS X Mac, am I correct in assuming this tool is meant to be run on a modern operating system and pointed to an extracted ROM file?

Reading a bit further on how you describe the MacOS startup process, it sounds like (on more recent Macs), much or all of the ROM is replaced at load time. Does this mean that the tool could be used to create a minimalistic ROM image (just enough that is able to get the OS to load) so that emulators (like SheepShaver) would have less of an issue with the IP challenge of including a full machine ROM? Does such a ROM image already exist somewhere?

Finally, there are at least a couple open source projects focused on building a toolbox compatibility layer (like WINE) such that Mac software can be run without the OS. Does this tool identify the toolbox hooks that are exposed?

they used it to change or add drivers to the ROM.

Thank You for sharing this very interesting project. Can you please make a how to for dummies?
Can you please put all this scripts attached into a single stuffit file?
Can this scripts run on Mac Python 2.3 for Mac Os 9?


[0] Message Index

Go to full version