I don't expect this to be quick and easy by any means.īut I can give you an update on what I have found and know. I haven't really given an update as I don't have any thing to show at this point.
I suspect there will be a lot of this may end up being written in assembly with a heft amount of C as well.Īt the very minimum, I hope to at least create some graphics card drivers out of this so that we can at least add a few newer cards to the list available in OS 9 and possibly even a few other drivers such as class complaint drivers for USB Audio. This is by no means a trivial task, and may end up going no-where, but it's something I for one am going to try to make happen. The CHRP script would need to be modified to load the toolbox, detect unsupported CPU's and load the enabler for them, then load the toolbox ROM, transfer control to that and allow it to continue booting.Īdditionally there may need to be extensions written that detect the various motherboard ASIC's and provide patches to the toolbox rom to make them work so that the machine can be fully supported. This rom is loaded via a CHRP script which i believe iMic, DieHard and some others (sorry if I left anyone's name off there that helped with that) have modified/worked with to get the machines running. The second ROM is the toolbox ROM and this is what has been modified so far to get some unsupported machines running. This is used to basically initialize all the hardware. One is the firmware ROM that would be within open frimware. And actually the switching to the new world ROM probably makes this a bit easier as there are actually two ROM's. This is functionality was introduced with system 7 so and is still supported on the new world ROM's. Starting there we get compatibility with everything officially supported by Apple.įrom there you start writing enablers for the various unsupported machines. What I would suggest is rolling back to the latest official Apple released ROM. There has been some great work done here already to get some machines to run existing ROM's by basically tricking the systems into a sort of backwards compatibility mode. The other side of it is the ROM, which is what I believe is where you would have concerns with backwards compatibility. Same thing for USB2, FW800, PCI-E, though because those are buses, a lot of additional hardware will not work there would be no drivers for those devices in OS 9, though if we get that far it would not be beyond the realm of reality to write drivers for some of those devices. From there you can take that knowledge and create extensions/drivers for OS 9.
Basically you can look through the various open source graphics drivers for the various *nix's to figure out how the hardware is addressed and works. Graphics card and bus architecture issues can be worked out through extensions.
The biggest issue is that of the hardware. It wouldn't be like Rosetta as that was technically an emulator/runtime that did instruction translation between the PPC instruction set and the X86 instruction set.