You are not logged in.

#1 2014-05-26 06:47:23

iMic
Administrator
From: Adelaide, Australia
Registered: 2014-05-12
Posts: 877
Website

Mac OS 9 on Unsupported Hardware

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.

IMG_3960.jpg

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 according to Apple, 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.

Screen_Shot_2014_01_09_at_12_56_23_am_10.jpg


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 and MacRISC4.

step1_2.jpg


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

2dup " macrisc" $= r> or >r

Immediately after the $gt;r, I added the following (and spaces are important):

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.

step2_3.jpg


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.

step3_4.jpg


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.

Screen_Shot_2014_01_09_at_12_58_41_am.jpg


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.

IMG_6068.jpg


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

IMG_6070.jpg


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.

IMG_6072.jpg


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,
~ iMic.


Resident Professor of Alternative Methodology
Faculty of Macintosh Restorations & Modifications - "It works, let's fix it!"

Offline

#2 2014-05-26 06:49:50

iMic
Administrator
From: Adelaide, Australia
Registered: 2014-05-12
Posts: 877
Website

Re: Mac OS 9 on Unsupported Hardware

UPDATE: 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. Apparently if you change the colours under OS X and then reboot into OS 9, it may retain the settings post reboot.

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

i_Mac1.jpg

i_Mac2.jpg

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


Resident Professor of Alternative Methodology
Faculty of Macintosh Restorations & Modifications - "It works, let's fix it!"

Offline

#3 2014-05-26 11:55:07

uniserver
Member
From: Sf, Mi
Registered: 2014-05-15
Posts: 955
Website

Re: Mac OS 9 on Unsupported Hardware

could maybe you need something like this, a custom 9.22, as in the MDD version?   
http://retromaccast.ning.com/photo/i-fo … xt=popular


#I Re-Cap √Mac √NeTX √Amiga Boards - A/B - PSU# (MacCaps.com)  Modern SCSI HD's - For Old Macs - Pre Cfg'd - 10k RPM! 73gb!! $50 + free shipping  -- Mac 128K Re-Ram kits (16 Chips) $35 + shipping, Floppy Issues?-> Bourns Filter Solution 128k - SE/30, $16 + shipping

Offline

#4 2014-05-27 07:34:51

iMic
Administrator
From: Adelaide, Australia
Registered: 2014-05-12
Posts: 877
Website

Re: Mac OS 9 on Unsupported Hardware

I would be interested in try that one out. Will have to see if I can get it at some point.


Resident Professor of Alternative Methodology
Faculty of Macintosh Restorations & Modifications - "It works, let's fix it!"

Offline

#5 2014-05-27 08:36:44

uniserver
Member
From: Sf, Mi
Registered: 2014-05-15
Posts: 955
Website

Re: Mac OS 9 on Unsupported Hardware

no problem you can have it here.

http://www.maccaps.com/MacCaps/DIY_Information.html
at the bottom.


#I Re-Cap √Mac √NeTX √Amiga Boards - A/B - PSU# (MacCaps.com)  Modern SCSI HD's - For Old Macs - Pre Cfg'd - 10k RPM! 73gb!! $50 + free shipping  -- Mac 128K Re-Ram kits (16 Chips) $35 + shipping, Floppy Issues?-> Bourns Filter Solution 128k - SE/30, $16 + shipping

Offline

#6 2014-05-27 11:33:55

iMic
Administrator
From: Adelaide, Australia
Registered: 2014-05-12
Posts: 877
Website

Re: Mac OS 9 on Unsupported Hardware

Just tried it with the OS install from that image. Still produces the same error type 102 as before.


Resident Professor of Alternative Methodology
Faculty of Macintosh Restorations & Modifications - "It works, let's fix it!"

Offline

#7 2014-05-27 13:31:26

iMic
Administrator
From: Adelaide, Australia
Registered: 2014-05-12
Posts: 877
Website

Re: Mac OS 9 on Unsupported Hardware

(11-11-14) The solution to Error Type 102 was actually much simpler. Scroll down to Post #17 for newer developments and Post #21 and #22 for information on how to patch the ROM to correct it. This post will remain here for reference only in case it is needed in the future.


-------


I have reason to believe that the OS is stalling on a resource within the System suitcase. If you open the System file with ResEdit and navigate to gusd (Open ID 1), you'll see some hex.

Based on what I can see at this link -> http://www.vintagebox.de/mac68k/macos_p2-en.html <- it's structured as follows:

'gusd' is not solely a hardware selector. The system checks here if the gestalt ID is present and loads the corresponding resources from 'gtbl'.


zhzFXvf.png


For example, you will see 0196 0025. 0196 is the Gestalt ID for New World Macs (Hex 0196 in decimal is 406, the Gestalt ID for New Worlds) and the 0025 when converted to decimal is 37. This is the identifier for the corresponding entry in the gtbl resource.


fYdGhFD.png


Go back and this time open the gtbl resource. Open resource ID 37. Inside are a bunch of lines of hex, apparently compatible machine identifiers. When booting up, Mac OS looks here first to see if the machine is on the list, and if it fails, then it kills the boot, throwing the Error Type 102.


ThouT1u.png

2KGyNEb.png
mKWRwKQ.png


Back in the days of loading OS 9.2 onto an unsupported older Mac, like a Power Mac 7600, software tweakers would add the missing lines to this GTBL list from older versions of Mac OS, like 9.1. The OS would then boot. I found this information from this link at Xlr8YourMac -> http://www.xlr8yourmac.com/OS9/os_9_2_1 … _mods.html. For archival purposes I'll mirror it below.

The question then is what are those entries in that GTBL resource? I'm trying to possibly break down the hex to see what it is, whether it's some kind of machine ID that's then matched with a value in the ROM or something else entirely. I have a feeling that each line is a separate entry (so 000A 0000 0000 BFE6 would be one machine entry). If we could figure out what this information means and how it is used to identify the hardware it's running on, we could potentially add an entry in there for newer machines like the iBook G4. It won't necessarily solve the common issues with sound, video, etc - but it may allow the OS to at least boot.


Some other links I found in my travels that may be useful:

The 6400 Zone - OS 9.2.x Info
Mac OS 8.1 with 68030 (Early info about GUSD and GTBL resources)
Hex to Decimal Converter (The one I used up until now)



And that post from Xlr8YourMac, posted here for reference. It refers to making OS 9.2 run on an older Mac, but it could be useful in tracking down what we're looking for here.

Without further ado...
Since my last message, I have both created a better patch and tested more thoroughly. I turned out I was all but one 'cfrg' call away. This has been tested by a number of users on the MacFixit forums, but all the standard disclaimers apply. I would rather folks post there about problems/questions rather than emailing me, so withholding my address might be a good idea.
Here's what you need to do after installing the 9.2.1 update. Procedures for accomplishing the install step have already been published, and I will not repeat them here. I have included a patcher that addresses the Update to Mac OS 9.2.1 install file, but it seems you must still change the 'mach' Gestalt of your machine too. And if you boot from another system (drive or cd), it makes the install procedure much easier, as you don't have to restart when the Installer finishes.

The second patcher I have included is the one that does the deed on the 9.2.1 system suitcase. After the 9.2.1 Updater is done running, either quit (or force quit if not booted off another system) and run the patch. I have noticed that it is rather flaky, which I can only attribute to ResCompare, but it does work. I up'd the amount of RAM it uses, so perhaps that will help. It also hangs the computer for a second or two before popping up the patch dialog, I believe this is because it is reading through the system suitcase, all 14.4 MB of it, so be patient. Again all disclaimers apply. Then reboot into 9.2.1 glory.


These are the steps to do the patch by hand. It isn't for those who haven't used ResEdit before (or who don't know how to convert Hex to decimal smile. But it isn't too hard.

Of course, you need a copy of the 9.1 System suitcase, and I would recommend doing the 9.2.1 update over a clean 9.1 install (that way you can always go back to your "working" 9.1 install in case of problems). And, as always, don't attempt to ResEdit a system suitcase that you are running off of.

With ResEdit

1) Open both the 9.1 and 9.2.1 System suitcases.

2) Copy the entire 'gusd' resource from the 9.1 System and paste it into the 9.2.1 system. Answer "yes" to the overwrite resources with same id dialog.

- The gusd is pretty much just a list of "supported" computers, and the info in 9.2.1 is a subset of 9.1, so this should retain FULL compatibility with 9.2. The machine ID start at hex word 00000008. It is a word long (in hex four characters are a word, with each character representing 4 bits of data). The very next word is the corresponding 'gtbl' entry, something you'll need later.

- If you want to go the extra mile, you can edit the second and third words of the resource , changing them to B78D 7253 (that's in hex). This seems to be a version code for 9.2.1 and is used in other resources as well--like the 'gtbl's. The fourth word is a list counter, telling how many items are in the list minus one. If you add or remove anything from the list, you need to increment/decrement this.

3) Open the gpch. This is the spot where SOME calls are made to the ptch routines for the rom stuff. I don't know for certain, but who cares?, it WILL work. If you check with ResCompare, you will see that the gpch resources that ARE IN 9.2 also ARE IN 9.1, and are changed. You will also notice that there are a lot of resources "missing" in 9.2. I simply copied all the missing ones from 9.1 and pasted them into the gpch resource window in the 9.2 System. You can command-click the resources and copy them all at once. The resource #s to move are: 123, 199, 222, 223, 246, 601, 602, 603, 645, 650, 655, 657, 658, 668, 750, 752, 1024.

- As for compatibility, well, I'm not sure what we're dealing with here. On one hand, the gpch could simply be a go-between that calls certain patches based on the machine...in that case, it is possible the patches for "old-world" are really in 9.2 and just need called. On the other hand, we may be only getting 9.1 support for these legacy machines. Either way, it boots, and only the very basic hardware features would not have been updated...no less than 9.1 perhaps better.

- I wouldn't recommend simply copying and pasting the entire 9.1 'gpch' into 9.2, as then any changes made in those other resources wouldn't get made...of course, an argument could be made that they are possibly "unnecessary" for legacy support. You could copy the 'gpch' in 9.2 and paste it over 9.1, replacing like IDs. (This would overwrite the old resources in 9.1, but not effect the "missing" ones.) Then you could copy the 'new' 'gpch' resource from 9.1 and paste it back into 9.2 overwriting the existing. This would be faster than perhaps command-clicking all the resources (or even having to know them for that matter).

4) The final step is a bit more involved, because it requires editing of the 'gtbl' for your machine. You can gleen your machine's Gestalt ID in decimal from the System Profiler app. You will need to know how and be able to convert this to hexadecimal. Open the 'gusd' resource and find your machine's 'mach' ID in hex. The next word is the 'gtbl' ID in hex. Convert it to decimal, open the 'gtbl' resource, and open that ID. This is a list of patches required for your machine in order to boot. I don't know if it is the COMPLETE list, however. Scroll down until you find a line with this data: 000E 0000 0000 004C. Insert the cursor at the end of that line and type: 000E 0000 0000 004F. You don't need to hit return or spaces, they will be added automatically. Now scroll back to the top and increment the list counter by one (remembering the list counter is the fourth word of the resource--actually you only need edit the 8th byte). You can also change the version number to B78D 7253 if you want.

- In my System, I changed ALL the 'gtbl' entries. You should be able to edit just the one for your system, though.

- When I was tracking down what my 7600 needed, I compared the 'gtbl's of the 7600 and Beige G3 in 9.1 (26 & 46). I found that the 7600 had five entries that the G3 didn't, four had FFFF as the third word and corresponded with 'gpch' entries. The fifth...well I never did figure out what it was, but it started with 000A. The G3 used three 'gpch's that the 7600 did not as well as three "unknowns", starting with 000A, 0009, & 0013. [I'd like to know what these are and where in the system to find them...any advice would be appreciated.] I then compared the Beige G3 'gtbl' from 9.1 with the same in 9.2.1. What I found is that there was only one addition and two missing. The addition was the 000E line. It turns out that corresponds to a new code fragment, 'cfrg', that loads the PowerPC DragLib. The two dropped lines were for 'gpch's; they also were used by the 7600 and are ones that get copied in from 9.1. I'm not sure that they are require or not, but when I yanked them from my 7600 'gtbl', the System wouldn't boot. They were 'gpch's 650 and 668. If anyone has a non-PCI PowerMac and would like to trace this route, feel free. I would bet that you'll find a lot of line entries that are NOT in the Beige G3, and in that case, until we find out what the A, B, 8, 9, 12, & 13 lines are, you're probably out of luck.

5) Save the System, close ResEdit, and put the file in the new 9.2.1 System Folder. Reboot. Hopefully if all goes well you'll be staring a the 9.2.1 Welcome splash with extensions loading.

I can also say that I am successfully using the XLR8 MACh Speed Control extension on my 7600 with a G3 upgrade.

So now that I have spent all this time figuring this out, I would appreciate a second (and a second chance smile on the soap box. Thanks to all on the MacFixit Forums in the "Instructions: Installtion on Pre-G3 or G3 Upgrade" thread. There were those who said "It can't be done.", "The rom patches don't exist.", yada yada yada. I don't know who these people were, but I'm glad they contributed their two cents of ignorance. Perhaps when contributing to a technical forum, if you don't KNOW something, don't say anything--your pessimistic intonations aren't conducive to the final goal. But this brings me to a second point: Apple lied. Well at least they weren't entirely honest. I'm sure we will never know the engineering answer as to whether or not Apple did in fact have support for the pre-G3 architectures in 9.2. Did they strip EVERYTHING out? Did I find EVERYTHING I needed to? Either way, it wouldn't have been too difficult for Apple to have released 9.2.1 as an unsupported upgrade to legacy machines. That would have been nice. However, it is obvious at least to me, Apple decided not to do that--and what could have been their motivation? Could it have been support? No, unsupported means just that. Could it have been that the parts weren't there? No, most would have been happy with the subsystem of 9.1. So simply I can see only one reason here...greed. Apple is trying to force users into an upgrade or suffer policy. I don't like that, and neither do many others. It isn't right, it isn't fair, and it just isn't in the spirit of Apple. I know that Apple wants to transition on OSX, but they need to do so by having users WANT what OSX offers not by handcuffing them to a sinking ship and offering a hacksaw. I'm already perturbed by the fact that Apple isn't helping the development of Darwin on legacy systems more...these systems, much like older PCs on Linux, have the power and architectures to run a unix OS very nicely. They may not deal so well with Aqua, but in many cases they make for nice servers and a myriad of other roles on a network. Apple has not provided a "server" machine since the Network Server line, so the way I see it, a 7600 is just as good in that role as a new G4 tower is--both can saturate a 100BT line...how much is too much?

Thanks go to Ben Ralston, kby, anavrin, and others on the MacFixit Forums in the "Re: Instructions: Installtion on Pre-G3 or G3 Upgrade" thread. I'd also like to thank MacFixit and XLR8 Your Mac for all they've done to help out hackers like myself. It's great to be able to get this kind of info.

Praises to Ryan Rempel, Thomas Tempelmann, & Quinn the Eskimo, gods who see fit to bring things to the Mac that Apple doesn't. I know I'm missing a lot of kudos, but these were just in my mind.


Resident Professor of Alternative Methodology
Faculty of Macintosh Restorations & Modifications - "It works, let's fix it!"

Offline

#8 2014-05-28 00:27:31

ClassicHasClass
Member
From: Electron Alley
Registered: 2014-05-26
Posts: 1,084
Website

Re: Mac OS 9 on Unsupported Hardware

Just an FYI: as my memory serves, error 102 is a "system is too old for this ROM." (Apple's table seems to agree.) I wonder if it thinks your Mac is a different model.

Offline

#9 2014-06-01 07:29:11

iMic
Administrator
From: Adelaide, Australia
Registered: 2014-05-12
Posts: 877
Website

Re: Mac OS 9 on Unsupported Hardware

It's entirely possible. I still haven't had any success decoding the information in the gtbl resource at this stage. Would be interesting to let a few more skilled individuals have a look over it to see if we can reach any kind of conclusion with this one.


Resident Professor of Alternative Methodology
Faculty of Macintosh Restorations & Modifications - "It works, let's fix it!"

Offline

#10 2014-07-31 00:30:07

Edgecrusherr
Member
Registered: 2014-07-30
Posts: 8

Re: Mac OS 9 on Unsupported Hardware

Great work iMic! Maybe you some how need to spoof the computer's identity via open firmware the same say LeopardAssist does to allow you to install 10.5 on unsupported Macs? http://leopardassist.sourceforge.net. I'd love to get OS 9 running on my iBook G4.

Offline

#11 2014-07-31 00:40:38

Mk.558
Member
Registered: 2014-07-08
Posts: 160

Re: Mac OS 9 on Unsupported Hardware

Three things:

1.) Keep up the good work! Many might thank you later.
2.) Apple screwed up by not making the Mac mini G4 OS 9 and Jaguar bootable. (I like Jaguar for doing certain stuff with older Mac OSs that require OS X on the host, yet still connect over AFP.)
3.) Are the PowerBook G4s flaky like the iBook G3s are? I had a PB G3 900MHz. The original logic board would NOT take a liking to 10.4.11. Only 10.4.0. It would crash, hang and go bonkers if 10.4.11 Update was applied. Also, FW was dead. Then the inevitable GPU mean man came knocking on the door. Somebody else replaced the LB -- I didn't want to even think about it. I think CC has it now, or had it.

I still miss it to a degree. The iMac G4 800 is a bit bulky, I miss the laptop.


SE/30 Cap Replacement http://tinyurl.com/mjf24zs
Classic Mac Networking v3.1 http://applefool.com/se30/
"Linux assumes you know exactly what you are doing." -oboedad55, ubuntuforums.org

Offline

#12 2014-07-31 01:37:55

macdrone
Member
From: Rainier, Or
Registered: 2014-05-25
Posts: 224

Re: Mac OS 9 on Unsupported Hardware

The ibook G4 have issues with the airport really. Not the GPU.  All the kernel panics I ever saw was with airport.  Random lock ups and all.  Not sure if it's logic board or card issue, but Bluetooth is fine just not airport.  I disable airport and the G4 iBooks are rock solid on 10.4.11

Offline

#13 2014-07-31 02:22:33

iMic
Administrator
From: Adelaide, Australia
Registered: 2014-05-12
Posts: 877
Website

Re: Mac OS 9 on Unsupported Hardware

Edgecrusherr wrote:

Great work iMic! Maybe you some how need to spoof the computer's identity via open firmware the same say LeopardAssist does to allow you to install 10.5 on unsupported Macs? http://leopardassist.sourceforge.net. I'd love to get OS 9 running on my iBook G4.

Very familiar with the inner workings of LeopardAssist. wink When I rewrote it and released LeopardAssist 3 earlier this year, I looked into the possibility of tweaking the firmware to have the machine identify as a different model. Unfortunately I haven't found anything in the iBook's Open Firmware or Device Tree that would allow me to mess around with the model identifiers at this stage. ( 17-12-14 IdentityTool now allows for the customisation of model identifiers. )


I haven't worked on this at all in the last few months, mainly focused on my classes and getting this site off the ground. I'm hoping to revisit it at some point in the near future, but it would be nice to have some more knowledgeable people looking into this as well. At the moment I'm probing around in the dark for anything that looks like it could possibly be a hurdle to completing a successful boot.



macdrone wrote:

The ibook G4 have issues with the airport really. Not the GPU.  All the kernel panics I ever saw was with airport.  Random lock ups and all.  Not sure if it's logic board or card issue, but Bluetooth is fine just not airport.  I disable airport and the G4 iBooks are rock solid on 10.4.11

Reliability is the main reason I'm using an iBook G4 for this attempt. If OS 9 could be made to run on a machine like the iBook G4, it would be a perfect machine for it. Compact, reliable and fast. The iBook G4 is nowhere near as prone to GPU failure as the iBook G3 (they moved the GPU toward the back of the Logic Board where it isn't as prone to flexing) and the common VREG chip failure is such an easy modification and fix. I'll document that fix for this site soon as well.

Features like the AirPort Extreme card wouldn't work and the USB ports would run at 1.1 speeds (I think?), but if all you're doing is running some OS 9 software, these don't tend to be deal breakers.

Last edited by iMic (2015-01-18 10:02:29)


Resident Professor of Alternative Methodology
Faculty of Macintosh Restorations & Modifications - "It works, let's fix it!"

Offline

#14 2014-07-31 05:17:04

cc333
Member
From: North S.F. Bay Area, CA
Registered: 2014-05-23
Posts: 562

Re: Mac OS 9 on Unsupported Hardware

This is incredible, and I'd love to see it continue onward!

And yes, Mk.558, I still have that machine. I haven't done much with it, but it's here.

You probably want OS 9 boot-ability, but I have a fine PB G4 12" which is quite similar, except it run at 1.33 GHz. I have tentatively promised it to someone else, but if that falls through and you're interested, we'll see how it goes..

c


Main Macs: Early '09 Mac Pro, Mid '12 MacBook Pro 13"
Secondary Macs: Early '08 Mac Pro, Mid '12 MacBook Pro 15"
Playthings: Mac SE/30, 3.0 GHz Mavericks-based HackServe, Many others....
Desired: Lisa, Kanga PowerBook G3, Apple IIc, Apple II, Spare parts, etc.

Offline

#15 2014-11-10 00:04:21

blemk
Member
Registered: 2014-11-09
Posts: 16

Re: Mac OS 9 on Unsupported Hardware

So, first post (should just introduce myself where appropriate)... But been following this thread and a few on other forums for some time and finally caved and purchased a MDD FW800 (and a board from a FW400 I was luck enough to find and put into the FW800 case) so I could run classic. Basically, purchased the machine strictly to run OS 9.2.2 as it was the last OS I ran on my Sonnet G3 upgraded Performance 6400/6500 back in 1997.

Reason I tell that story, as it might be related as 9.2.2 was not meant to run on that Mac (with G3 upgrade or not)... But back then there were a few tricks that later became part of a tool to run Mac OS 9.2.x on older Macs. The search for similar info led me to an interesting thread on another forum in the last few months that many of you may want to take a glance at:

http://macos9lives.com/smforum/index.php?topic=762.0

Figure it might be a good way to get both forums/threads working together. Yeah, I cheated and made the posts on each almost identical.


Update:
MacTron beat me to it -> http://macos9lives.com/smforum/index.php?topic=1967.0
Only had the Mac at home (incomplete, dead pram battery etc) for about 2 weeks and I am falling behind before I even get to start.

Last edited by blemk (2014-11-10 00:17:01)

Offline

#16 2014-11-10 23:53:05

iMic
Administrator
From: Adelaide, Australia
Registered: 2014-05-12
Posts: 877
Website

Re: Mac OS 9 on Unsupported Hardware

Great to see that MacOS9Lives is aware of this thread. Unfortunately I'm still stuck at the "error type 102" I was encountering earlier, and without all that much knowledge of how the OS 9 gusd and gtbl resources work or even where to start with them, I'm not entirely sure how to proceed.

That said, it already boots on an unsupported iMac G4 with this method, and by the sound of it a boot on the MDD FW800 may be achievable as well.


Resident Professor of Alternative Methodology
Faculty of Macintosh Restorations & Modifications - "It works, let's fix it!"

Offline

#17 2014-11-11 12:44:39

iMic
Administrator
From: Adelaide, Australia
Registered: 2014-05-12
Posts: 877
Website

Re: Mac OS 9 on Unsupported Hardware

Progress!

In addition to the existing modifications above, I decided to fake the model identifier for the machine to see if that's where it was getting stuck. Using an Open Firmware hack, I changed the machine's model identifier from PowerBook6,3 (iBook G4) to PowerBook4,3 (iBook G3/900). Like so:

dev /
.properties
" PowerBook4,3" encode-string " model" property
" PowerBook4,3" encode-string " MacRISC" encode-string encode+ " MacRiSC2" encode-string encode+ " MacRISC3" encode-string encode+ " Power Macintosh" encode-string encode+ " compatible" property
mac-boot

dev / and .properties sets the package to be modified and displays the current values. The following line sets the model property to that of another machine, in this case PowerBook4,3. The final line adds the compatible values that the Mac OS ROM looks for when booting. By default, the Mac OS ROM looks for MacRISC and MacRISC2, however I added MacRISC3 because my modified Mac OS ROM checks for MacRISC3 on boot - a vanilla unmodified Mac OS ROM wouldn't need MacRISC3 to be present.

After hitting return after mac-boot, the machine started booting up into Mac OS 9, and incredibly, the Error Type 102 error was cleared. Finally, we've reached the "Starting Up..." stage!


There are still some caveats. As soon as it starts loading extensions, the system crashes and drops into MacsBug. The next stage is to see whether it'll boot with extensions disabled.


UPDATE:

With extensions disabled, the boot makes it all the way up to where the desktop should be displayed. The machine then drops back into MacsBug with System error #15 = dsLoadErr at 1E0BAC4A. I'll continue probing around and see what I can find.


Resident Professor of Alternative Methodology
Faculty of Macintosh Restorations & Modifications - "It works, let's fix it!"

Offline

#18 2014-11-11 13:43:39

iMic
Administrator
From: Adelaide, Australia
Registered: 2014-05-12
Posts: 877
Website

Re: Mac OS 9 on Unsupported Hardware

Milestone Reached!

Using the method I outlined in the above post, I instead decided to try booting the iBook from an OS 9 iMac installation disc. With the disk in the drive, I replaced mac-boot with boot cd:,\\:tbxi and let the system attempt a startup.


IMG_7344.jpg


That is a minimal Mac OS 9 install running on an Apple iBook G4, model identifier PowerBook6,3 modified in Open Firmware to identify as a PowerBook4,3. No crashes during startup whatsoever. Mac OS ROM version 8.3.1. Machine ID according to OS 9 is 406.

However it's still extremely limited. The processor identifies in System Profiler as "Unknown type" with a reported CPU speed of 450MHz. All 640MB of physical memory is detected, and correctly identifies as PC2700U-25330. Ethernet is detected, but I haven't determined whether it's functional yet. USB devices are recognised and functional, likely at USB 1.1 speeds. FireWire is present and appears to be functional. Battery status appears to be detected and reporting correctly. Video is running with a limited colour palette and it doesn't seem like the sound is there either.

Interestingly, the internal hard drive is not detected. Seems OS 9 isn't overly thrilled about the internal IDE controller.


Keep in mind that this is currently running from a Mac OS 9 installation disc with almost no extensions, and one made for an iMac G3 at that. If I can install the system and activate additional extensions, the iBook may be a little more usable.

If success is encountered there, it'll then be a case of seeing where Mac OS checks for the model identifier (likely PowerBook4,3 somewhere in the system) and tweaking it so the system can boot without the need for Open Firmware commands.



UPDATE:

I've moved some of the extensions back into place and removed MacsBug from the installation (OS9General) on the internal hard drive. Now, the machine completes a full boot to the desktop. In addition to everything that was working above:

- The internal ATA controller is now recognised correctly, so the hard disk is detected and operating normally.

- According to Apple System Profiler, I also now have Millions of colours on the internal video controller, but I'm limited to 640 x 480 (Monitors control panel won't open as an extension is still missing).

- The PowerPC G4 processor is now correctly detected, including the minimum and maximum clock speed ranges (on this machine, it's 300MHz minimum and 800MHz maximum).



IMG_7345.jpg

IMG_7346.jpg

IMG_7347.jpg


I'll continue installing extensions and see if the situation improves. I also have some updated ATI extensions for Mac OS 9 that may be of use.


UPDATE 2: Updating to version 2.2 or later of the Apple Audio Extension has made the sound hardware start working successfully. The iBook G4 can now play sound under OS 9!


UPDATE 3: Almost everything is working correctly, or is at least usable. The machine does however still have one "small" issue. Whenever the machine boots, around the time it starts loading extensions, it switches to 640 x 480. Looking in the Monitors control panel shows that the machine is configured to run at 1024 x 768, but it doesn't seem to be working for some reason.

One theory I had and was able to confirm is that the machine seems to think a second display is connected, and this "phantom" display is only capable of a 640 x 480 resolution. Because it's mirroring the internal display, the internal display also defaults to 640 x 480.


IMG_7349.jpg

IMG_7350.jpg


I've tested this system with Mac OS ROM 9.8.1, 10.1.1 and 10.2.1 without any change. Interestingly it didn't seem to occur when booting from the iMac OS 9 installation disc, however that was also incapable of displaying Millions of colours.

Adding credence to the phantom display theory, I can temporarily work around the problem with a series of Open Firmware commands from the Screen Spanning Doctor website:

" /" select-dev
00000000 " graphic-options" get-my-property 2drop !

This forces the phantom display to behave as its own separate screen, without mirroring the internal display. This allows the internal display to run at its native resolution. As you can see, in the Monitors control panel, the second display is still believed to be present in this mode.


IMG_7351.jpg

IMG_7352.jpg

IMG_7353.jpg


If I could trace down the source of these problems within the system (including the model identifier check), I could eliminate the need for Open Firmware commands entirely and build a pre-imaged version of Mac OS 9 that would work on this machine. This would without a doubt be the most ideal scenario, since at the moment a loss of power to the NVRAM will clear the commands and render the system unusable until they're re-entered again.



Cheers,

iMic.


Resident Professor of Alternative Methodology
Faculty of Macintosh Restorations & Modifications - "It works, let's fix it!"

Offline

#19 2014-11-11 20:20:42

LCGuy
Administrator
From: Sydney, Australia
Registered: 2014-05-13
Posts: 807

Re: Mac OS 9 on Unsupported Hardware

This is awesome yikes Like you said last night....first iBook G4 in the world to boot OS 9. Way to go smile

Offline

#20 2014-11-11 20:43:47

ClassicHasClass
Member
From: Electron Alley
Registered: 2014-05-26
Posts: 1,084
Website

Re: Mac OS 9 on Unsupported Hardware

Wow! Very impressive!

Offline

#21 2014-11-11 21:20:41

iMic
Administrator
From: Adelaide, Australia
Registered: 2014-05-12
Posts: 877
Website

Re: Mac OS 9 on Unsupported Hardware

Milestone #2 Reached


I've managed to fix the Error Type 102 issue. What this means is Open Firmware commands are no longer required to boot into Mac OS 9.


The issue was extremely easy to fix, once I found it. If you open the Mac OS ROM with ResEdit, you'll see a resource called btbl. Open that up, select ID 0 and inside is a list of machine identifiers, for iMacs and Power Macs (PowerMacX,X IDs) and iBooks and PowerBooks (PowerBookX,X IDs), along with older machines ("MacRISC") and the Classic Environment ("Classic"). Once I added PowerBook6,3 (iBook G4) to the list, the computer made it past the machine check and booted into Mac OS 9.2 without any Open Firmware commands.


Screen_shot_2014_11_12_at_7_40_36_AM.png


It doesn't necessarily mean that OS 9 is easy to install on an unsupported system. The hard disk still needs to be formatted with the OS 9 Disk Drivers, and the System Folder still needs to be blessed. This can be done via Target Disk Mode to another, OS 9 capable Mac or by entering the Open Firmware commands above to add MacRISC and MacRISC2, then booting from an OS X install CD. OS 9 system folders will then be visible in Startup Disk and "Install OS 9 Disk Drivers" will appear as an option in Disk Utility.

Of course, if I could get the modified ROM onto a Mac OS 9.2 CD, chances are all you would need to do is insert the CD and do it from there. Easy! That'll be my next challenge.

What I hope to do is add some machine IDs for some Power Macs (MDD FW800), iMac G4s, iBooks and maybe PowerBooks as well. Once the ROM is cleaned up, if anyone's willing to do some testing on other machines, perhaps we can make this a group project.



UPDATE

There's another resource inside the Mac OS ROM called ntbl. I believe this may stand for name table. It contains all the names of the machines associated with the model identifier. For example, PowerMac1,1 becomes Power Mac G3 Series and so on. These are used around the system, in applications like System Profiler for example.


Screen_shot_2014_11_12_at_8_07_51_AM.png


This doesn't actually do anything for the performance or usability of the machine, but it's a nice touch that makes the modification a little more official. That and it's interesting to see a machine name in OS 9 that we would never have expected before. big_smile


IMG_7357.jpg



I am having some considerable difficulty writing additional models into the ROM however. It seems if you edit the table even slightly, even if the syntax is correct, the ROM won't boot the machine afterwards. I've even had instances where I copied a ROM to the iBook and had it boot, only for the machine to stop booting after a restart. I've even removed the model identifiers entirely and used the lowest common denominators - MacRISC, MacRISC2 and MacRISC3. Still no dice. The ROM simply doesn't like being edited. I'll revisit it when I'm not as tired perhaps.


Cheers,

iMic.

Last edited by iMic (2014-11-12 00:11:25)


Resident Professor of Alternative Methodology
Faculty of Macintosh Restorations & Modifications - "It works, let's fix it!"

Offline

#22 2014-11-12 13:03:58

iMic
Administrator
From: Adelaide, Australia
Registered: 2014-05-12
Posts: 877
Website

Re: Mac OS 9 on Unsupported Hardware

Milestone #3 Reached

I've managed to build a version of the Mac OS ROM that bypasses the compatibility table entirely. I achieved this by removing the individual model identifiers (eg. PowerBook4,3) and replaced them with generic classes of machines, so MacRISC, MacRISC2 and MacRISC3 for example. Compare the screenshot below with this image from the post above. You can see the btbl resource has been cut down considerably.


Screen_shot_2014_11_12_at_11_24_13_PM.png


This wasn't as simple as just replacing the strings. Making any changes to the entries resulted in the ROM being unable to boot. I discovered that this is due to the byte that comes immediately before the string. If you take a look at this image:


Screen_shot_2014_11_12_at_11_24_47_PM.png


You'll see I've highlighted a 08 immediately before the hex for the string MacRISC2. This number is the number of characters in the string. For MacRISC, this number would be 07 since MacRISC is 7 characters long. If you change it to MacRISC2, you need to increase the number to 08, or if you change it to PowerBook6,3, that byte needs to read 0C (12 in Hexadecimal), and so on.

With these modifications, I've been able to start the boot process on MacRISC, MacRISC2 and MacRISC3 machines without any issues. This creates the possibility of booting Mac OS 9.2 on a number of unsupported systems, such as iMac G4s and the MDD FW800, among others.

I'm still performing some testing at this stage, but I should have more updates here shortly.



(Yet Another) UPDATE

I thought, with the success of booting OS 9 on the iBook G4, that perhaps I'd try a couple of other machines. The only other machines I have are much newer and have dramatic architecture differences, but I thought I'd have some fun here.

So, how about a Mac Mini (Late 2005) with a 1.5GHz PowerPC 7447A (PowerMac10,2 MacRISC3)? With the Generic ROM, the system doesn't restrict a startup attempt. However, attempt to boot into Mac OS 9 and...


Mini1.jpg

Mini2.jpg

Mini3.jpg


...nothing to see here. Blank grey screen. Looks like the Mac Mini is too new.

So while we're being ridiculous here, how about a Power Mac G5 Quad? 2.5GHz x2 PowerPC 970MP (PowerMac11,2 MacRISC4). Like the Mini, the system isn't restricted from a startup attempt by the Generic ROM. So what happens if we attempt to boot Mac OS 9?


Power_Mac1.jpg

Power_Mac2.jpg

Power_Mac3.jpg


Oh. As soon as the machine even attempts to start loading the ROM, it crashes and produces video corruption all over the screen. If I restart and boot to Open Firmware, then attempt to boot from the Mac OS 9 drive from there, the output is a little more useful:


Power_Mac4.jpg


However, it's fairly clear that the Power Mac G5 is simply too modern to run Mac OS 9.2. This is something I need to restate. The modified Mac OS ROM doesn't restrict the ability to start loading Mac OS 9 on a machine, but that doesn't necessarily mean it'll start up. However as the iBook G4 proves, the modified ROM does allow OS 9 to start on some unsupported machines - especially those that have similar hardware to supported machines.


Cheers,

iMic.

Last edited by iMic (2014-11-12 14:10:48)


Resident Professor of Alternative Methodology
Faculty of Macintosh Restorations & Modifications - "It works, let's fix it!"

Offline

#23 2014-11-12 14:40:39

ClassicHasClass
Member
From: Electron Alley
Registered: 2014-05-26
Posts: 1,084
Website

Re: Mac OS 9 on Unsupported Hardware

What would make this most useful, I think, is to get it on systems faster than the base one. For the MDD, the faster systems are the G5s, so no joy. But for laptops, a 1.2GHz G4 would be a nice boost, especially the much more plentiful and durable early AlBooks or late-model iBooks.

I have a 1.33GHz iBook G4 sitting around doing nothing that I might toy with this on.

Offline

#24 2014-11-12 20:06:24

iMic
Administrator
From: Adelaide, Australia
Registered: 2014-05-12
Posts: 877
Website

Re: Mac OS 9 on Unsupported Hardware

Generic ROM

I've compiled all of the fixes in this thread into a Generic ROM, based off the Mac OS ROM version 10.2.1. The Generic ROM lacks any machine specific checks and is capable of initiating the startup process on any one of the following systems:

  • MacRISC -  Most OldWorld PowerPC Macintosh systems and possibly clones.

  • MacRISC2 - NewWorld PowerPC systems manufactured prior to the Mac OS X switch.

  • MacRISC3 - NewWorld PowerPC systems designed to only boot into Mac OS X.

  • MacRISC4 - PowerPC 970 "G5" based Macintosh computers.

  • Classic - The Mac OS X Classic Environment.

As evidenced above, this doesn't guarantee that Mac OS 9 will start on your particular hardware configuration, nor does it provide accurate hardware support. Machines like the Power Mac G4 MDD FireWire 800 and iMac G4 Flat Panel 17"/1GHz are likely to be supported for example, while machines like the Power Mac G5 are basically guaranteed not to work at all.

In addition, hardware support is more likely when you are running the most up-to-date versions of system extensions and drivers. Even some well known Mac OS 9 distributions, such as the common OS9General image, still use older versions of extensions like the Apple Audio Extension. Aim for the absolute latest disk you can. The Mac OS 9 Lives discussion forum was extremely helpful for tracking down the latest system software and fixes.


An alternate method is still required to format the drive in your Mac to include the Mac OS 9 disk drivers. You can do this by faking your machine identifier to include MacRISC / MacRISC2 in Open Firmware, like so...

dev /
.properties
" PowerBook4,3" encode-string " model" property
" PowerBook4,3" encode-string " MacRISC" encode-string encode+ " MacRiSC2" encode-string encode+ " MacRISC3" encode-string encode+ " Power Macintosh" encode-string encode+ " compatible" property
multi-boot

...making sure to replace PowerBook4,3 with your machines' ID, then booting from an OS X install disc (the option for Mac OS 9 disk drivers will then be visible in Disk Utility). Alternatively you can connect your machine to an older OS 9 supported Mac via FireWire Target Disk Mode and format the drive from there.


This Generic ROM can be distinguished from the standard version by the differences in its version numbers. Get Info will display the version as Mac OS CPU Software 5.9 (Generic), and System Profiler and About This Mac will display the version as Mac OS ROM 10.2.1 (Generic).


Download

https://app.box.com/s/c98w8ine81ublultkuwp (2.6MB .SIT Archive)

Please be aware that this is not a permanent link. I'll continue to update this thread once it has a more permanent home.


Resident Professor of Alternative Methodology
Faculty of Macintosh Restorations & Modifications - "It works, let's fix it!"

Offline

#25 2014-11-12 21:24:23

bbraun
Member
Registered: 2014-05-29
Posts: 1,064
Website

Re: Mac OS 9 on Unsupported Hardware

Awesome, I just booted up my 1Ghz iMac G4 in 9.2.2 with this.  Thanks!

Offline

Board footer

About ThinkClassic

ThinkClassic specialises in the maintenance, repair, restoration and modification of Vintage Apple and Macintosh computers. Ask questions and find answers about classic Apple desktops, laptops, accessories and peripherals.