• Updated 2023-07-12: Hello, Guest! Welcome back, and be sure to check out this follow-up post about our outage a week or so ago.

OS 9 on iBook G4 (Findings)

iMac600

Well-known member
I'd like to introduce you to my iBook. It was from a school, and needed a lot of attention. I rebuilt it last year. It's a nice little machine, and I have often thought about using it as a distraction free machine for my writing. It's a first generation iBook G4 (PowerBook6,3) with an 800MHz G4 processor.



Say Hello, iBook.

However, I always thought about how it would be rather nice to write in Mac OS 9, simply because of its simplicity. I have a Pismo that runs OS 9 rather well, but it's a heavy machine and is nowhere near as small and nimble as the iBook. The problem is that the iBook G4 doesn't run OS 9. I know the most obvious solution would be to find an iBook G3, but I have only come across one iBook G3 in my time, and it had a bad GPU. They're simply not as common as the iBook G4 - at least not in my neck of the woods.

I started hacking away at OS 9 to find out just what prevents it from booting.

OS 9 Hard Disk Drivers

Apple disabled the ability to format a partition and install OS 9 Drivers on newer hardware. Thankfully, this one is easy to overcome. I connected the iBook in FireWire Target Disk Mode to my PowerBook G3 and formatted the iBook's drive from within Panther on the PowerBook, making sure to check "Install OS 9 Disk Drivers".

Once that was done, I connected the iBook G4 in Target Disk Mode to my MacBook Pro running OS X Mavericks and transferred the contents of the OS9General.dmg image (for Power Mac G4 Mirrored Drive Doors machines) to the iBook's hard disk.

As always with Classic operating systems, don't forget to make sure the System Folder is blessed.

Mac OS ROM

Here's where we start to get our hands dirty. With the iBook still connected to the MacBook Pro, I opened the Mac OS ROM from the OS 9 system folder in Hex Fiend.

Be aware that this is written based on the ROM taken from the OS9General.dmg (Mirrored Drive Doors) version. Other versions of the ROM may be different or have different values.

First thing - and this is important - is to write the byte count down somewhere. If this changes, you will have problems. Of course it will inevitably change since we are adding some data to the ROM, but I'll show you how to correct this further down.



In the very first line, you will see the "COMPATIBLE" tags. In the case of the Mac OS ROM included with the OS9General.dmg system, there is only one value - MacRISC. In order to make this ROM detectable as a valid bootable system to the iBook (which is a MacRISC3 system), we need to add those as compatible systems. For good measure, I added both MacRISC3 (DDR-based G4s?) and MacRISC4 (G5-based).



Next, you need to scroll down to the tag. You're looking for a line that looks like:

Code:
   2dup " macrisc" $= r> or >r
Immediately after the $gt;r, I added the following (and spaces are important):

Code:
   2dup " macrisc3" $= r> or >r   2dup " macrisc4" $= r> or >r
The idea here is to add those same additional models MacRISC3 and MacRISC4 as we added between the COMPATIBLE tags above, only here they're included in the "2dup" strings.



With these changes, the modified ROM will fail with a Checksum Error. To avoid this, you need to change the abort after checksum error to clear. It's possible another 5-letter command will work here too, but I used clear simply because it works.



Finally, after making the above modifications, the byte count of the ROM will have changed. Scroll down to the closing tag. After this tag is a large number of spaces (represented in hex as zeroes) for unused space in the ROM. Now, remember in the first step that you wrote down the byte count? What I did was delete some of these until the byte count matched exactly what I initially started with. Don't delete large blocks as pictured, delete them one by one. I only highlighted it to show the empty space.



Save the ROM and close Hex Fiend. If you're working in Target Disk Mode like I am, make sure you eject the OS 9 drive properly! Failing to do so will likely damage or fail to write the changes to the ROM file you just edited. I did this at least 5 or 6 times before I remembered to eject properly every single time.

The Result?

After making the modifications to the Mac OS ROM above, I restarted the machine with the Option key held down to enter the Startup Manager. Unlike before, the OS 9 drive and system folder is detectable as a valid boot device.



Attempting to boot from it, we get the familiar Happy Mac and the Mac OS 9.2 welcome screen.



However, a few seconds later, almost exactly as it would switch to "Starting Up..." and display the progress bar as it loads extensions, the system crashes with an Error Type 102. Disabling Extensions has no effect.



This is as far as I have come in my research and endeavour to make OS 9 boot on the iBook G4. I haven't investigated further yet, and so I'm not sure where to proceed from here. It looks like this overcomes the hurdle of actually making a newer Mac identify OS 9 as a valid operating system, but doesn't address the incompatibilities associated with booting up on the unsupported hardware.

On some machines, like the iMac G4 (15-inch Early 2003) that shipped with OS X but contain the same or very similar hardware (including SDRAM memory and USB 1.1) as the previous generation OS 9 compatible iMac G4s, this may be all that's needed to push them over the line, but I can't be sure since I don't have the hardware to test it myself.

Perhaps someone is willing to take this information and run with it. I'd be very curious to see what the community can do with it, if anything.

Cheers,

~ Mic.

 

iMac600

Well-known member
I'm very pleased to report that it appears we have some success here! :D

CC_333 tested the above modifications in an attempt to boot OS 9 on an OS X-only Mac - in this case an iMac G4 - and had some positive news to report:

SUCCESS!!!
The video is stuck at 256 colors, but it definitely works. I'll see about getting some drivers installed. The installation I used is pretty bare, so I don't think it has any.
With the ROM modification, OS 9 was able to start up on this machine, albeit without full video acceleration. (UPDATE: Thousands of colours also works correctly.)

Hopefully this overcomes the challenge of letting an unsupported Mac see a Mac OS 9 system folder as a valid bootable system. However it's yet to be seen whether this will prove beneficial toward the aim of running OS 9 on newer hardware, or whether it's only a small accomplishment with many larger challenges still to come, although I suspect the latter. My knowledge on this subject is limited and I haven't even begun to investigate where to go from here, but perhaps this will become more of a team effort as others more knowledgeable in the area of system software chip in their theories and findings.

At least, I sure hope so. :)

Cheers,

~ Mic.

 

CC_333

Well-known member
Yes, me to!

As for graphics, I was able to get Thousands of colors instead of 256 somehow, but I did try installing the elusive Nvidia drivers for OS 9 version 3.5.1 for the MDD, and I don't think they'll work because this particular model of iMac has a GeForce 4 MX GPU, and OS 9's drivers are for the GeForce 2 series (as far as I know). Perhaps they can be hacked to include rudimentary support for the GeForce 4? Their not crashing anything, so that's positive.

Also, I had forgotten I had an AirPort Extreme card in there, and, as expected, OS 9 didn't see it. Perhaps someone can figure out a driver for that as well?

Anyway, I think this is a very important milestone we have here!

c

 

iMac600

Well-known member
As for graphics, I was able to get Thousands of colors instead of 256 somehow, but I did try installing the elusive Nvidia drivers for OS 9 version 3.5.1 for the MDD, and I don't think they'll work because this particular model of iMac has a GeForce 4 MX GPU, and OS 9's drivers are for the GeForce 2 series (as far as I know). Perhaps they can be hacked to include rudimentary support for the GeForce 4? Their not crashing anything, so that's positive.

The iMac (17-inch Flat Panel) from 2002 is listed as an OS 9 compatible machine, and that has a GeForce4 MX in it. That particular version used the Mac OS ROM v9.5.1 which I also have. The difference appears to be that the later iMac G4s use DDR for the video memory where as the earlier ones don't.

Perhaps I'll attempt to apply the modification to that version of the ROM, load up an appropriate version of OS 9 and see if I can get some video acceleration working. I have the NetBoot9 image around here somewhere that appears to be a fairly driver-complete version of the system.

As for OS 9 on a G5 based system... well, I can't discourage anyone from dreaming big. :lol: I think with the difficulty in making it run on some G4 based systems though, the idea of G5 being supported is still rather out there. One step at a time, I say.

 

Anonymous Freak

Well-known member
I have the 2002 iMac G4 with GeForce 4MX graphics that boots OS 9 natively. Note that as it was a "released after Mac OS 9.2.2" model, and I don't have the restore disc. But the NetBoot image that is/was on Apple's website boots it fine, so I imaged that to a hard drive, and added back the missing pieces from a "standard" 9.2.2 system. Works like a charm.

 

ScutBoy

Well-known member
Come on chaps, my Quad G5 would like to boot OS 9 natively one day :D
My Quad G5 would like to boot BeOS, but I'd really rather find a DayStar Genesis for that. The BeBox is cool, but a little slow these days :)

 

iMac600

Well-known member
I can confirm a moderately successful boot on my iMac G4 (15-inch USB 2.0). As expected, the video is limited to 256 colours, there's no sound and no AirPort wireless. I'm running OS 9.2.2 with Mac OS ROM 10.2.1. I've tried applying the Apple nVidia Driver Update with no change.

So while it works, it's far from perfect.





Also, I'm more than aware that this iMac G4 needs to be cleaned.

 

CC_333

Well-known member
I have an update!

I have found that when I set the color depth inside Mac OS X to, say, Millions of colors, it persists when I boot into OS 9, so we can adjust the display parameters somewhat, albeit not from within OS 9. I haven't tried this with resolutions, but I don't see why that wouldn't work as well.

Also, I hadn't tested for sound, but I will look into that. Is it possible the Special MDD version of OS 9 will have enhanced support for these things?

I think I have that version, so I'll have to test.

Also, the Nvidia drivers you used are outdated (version 3.0). If you have the means to find it, I suggest you try version 3.5 of the drivers instead.

I have them if you would like me to send you a copy (is this against the rules?)

c

 

Anonymous Freak

Well-known member
Now I'm curious if it would be possible to do this on an Aluminum PowerBook G4... (Specifically the 867 MHz 12" G4, which is remarkably similar to the iBook G4 innards-wise.)

 

CC_333

Well-known member
Well, I modified a copy of Mac OS ROM 10.2.1 (as per iMac600's instructions) in the hopes that it could boot an Aluminum PowerBook.

No such luck, but it still boots the iMac!

It's possible that the newer ROM could boot slightly newer machines other than the PowerBooks, though.

We'll keep trying!

c

 

CC_333

Well-known member
Nothing new on my end. Most of my machines are either far too new, or already support native OS 9 booting.

I have v. 10.2.1 if anybody's willing to test.

Anyway, I've been thinking about the failure on my 17" Aluminum Powerbook. Perhaps there is some sort of PRAM variable that could be adjusted?

It also seems to me almost as if the Mac OS ROM is failing when it tries loading the ROM into RAM and executing.

Ideas?

I'll play around with it and see what happens...

c

 
Top