You are not logged in.

#26 2014-11-14 18:00:09

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

Re: Mac OS 9 on Unsupported Hardware

Mac OS 9 on Mac Mini?

You didn't think I was finished, did you?

As it turns out, the holdup with Mac OS 9 on the Mac Mini is likely the PowerPC 7447A processor. As MacTron pointed out over  in this thread on the Mac OS 9 Lives discussion forum, the Mac Mini's Logic Board is based around Apple's Intrepid northbridge, which is supported under Mac OS 9.

7447A processor upgrade cards were available from NewerTech and PowerLogix, and these upgrade cards were supported under Mac OS 9, albeit not directly out of the box. A promising development came in the form of this line from the NewerTech MAXPower 7447A and 7448 installation instructions PDF:

• Make sure the Mac OS version is 9.2.x (or higher) with the NVRAM OS 9 compatibility enabled. If the NVRAM patch for OS 9 was not applied, the Mac will freeze at a gray screen when trying to load Mac OS 9.

Which is exactly what the test rig is doing, as you can see in the post above.

What I need to find is the NVRAM fix for Mac OS 9 from the NewerTech Firmware Upgrade CD. This CD doesn't seem to be all that common however.

Thankfully, according to this document from PowerLogix, their PowerLogix Software CD also appears to contain the same NVRAM fixes for Mac OS 9, and their CD image is readily available from Other World Computing's website.


I'll be looking into the scripts included on the PowerLogix Software CD to see what the NVRAM fix includes, and then if possible, I'll attempt to apply these fixes on the Mac Mini and see if I can successfully boot that machine into Mac OS 9.2.2.



UPDATE

The issue that the PowerLogix / NewerTech software addresses is an inability for OS 9 to recognise the 7447 CPU. What the NVRAM patch does is changes the CPU version in Open Firmware to have the processor identify as an older CPU instead, such as a 7455.

These are the NVRAM commands that the PowerLogix OS 9 patch applies:

" /cpus/@0" find-package if drop " /cpus/@0" find-device 80010201 encode-int " cpu-version" property then

" /cpus/@1" find-package if drop " /cpus/@1" find-device 80010201 encode-int " cpu-version" property then

device-end \ PLX-OS9-PATCH

I found this doesn't exactly work. The cpu-version value remains the same when checked manually. So instead, I tried this command on the Mac Mini:

" /cpus/PowerPC,G4@0" find-package if drop " /cpus/PowerPC,G4@0" find-device 80010201 encode-int " cpu-version" property then

device-end \ PLX-OS9-PATCH

Which does change the cpu-version property successfully. Unfortunately, when attempting to boot into Mac OS 9, it remains stuck at that same grey screen. I even tried 80010303, which is the version of the 7455 CPU in the iBook G4, which I know boots successfully. Still nothing. Also yes, I did remember to remove the Multiprocessing extensions.



By the way, if anyone wants the list of PowerPC CPU PVRs (versions), here they are. Remember you can scroll in the code box. It's a fairly long list.

PowerPC 601_v0           PVR 00010001
PowerPC 601_v1           PVR 00010001
PowerPC 601_v2           PVR 00010002
PowerPC 601              (alias for 601_v2)
PowerPC 601v             (alias for 601_v2)
PowerPC MPC5xx           PVR 00020020
PowerPC RCPU             (alias for MPC5xx)
PowerPC MGT560           (alias for MPC5xx)
PowerPC MPC509           (alias for MPC5xx)
PowerPC MPC533           (alias for MPC5xx)
PowerPC MPC534           (alias for MPC5xx)
PowerPC MPC555           (alias for MPC5xx)
PowerPC MPC556           (alias for MPC5xx)
PowerPC MPC560           (alias for MPC5xx)
PowerPC MPC561           (alias for MPC5xx)
PowerPC MPC562           (alias for MPC5xx)
PowerPC MPC563           (alias for MPC5xx)
PowerPC MPC564           (alias for MPC5xx)
PowerPC MPC565           (alias for MPC5xx)
PowerPC MPC566           (alias for MPC5xx)
PowerPC 603              PVR 00030100
PowerPC MPC8240          (alias for 603)
PowerPC Vanilla          (alias for 603)
PowerPC 604              PVR 00040103
PowerPC ppc32            (alias for 604)
PowerPC ppc              (alias for 604)
PowerPC default          (alias for 604)
PowerPC 602              PVR 00050100
PowerPC 603e_v1.1        PVR 00060101
PowerPC 603e_v1.2        PVR 00060102
PowerPC 603e_v1.3        PVR 00060103
PowerPC 603e_v1.4        PVR 00060104
PowerPC 603e_v2.2        PVR 00060202
PowerPC 603e_v3          PVR 00060300
PowerPC 603e_v4          PVR 00060400
PowerPC 603e_v4.1        PVR 00060401
PowerPC 603e             (alias for 603e_v4.1)
PowerPC Stretch          (alias for 603e_v4.1)
PowerPC 603p             PVR 00070000
PowerPC 603e7v           PVR 00070100
PowerPC Vaillant         (alias for 603e7v)
PowerPC 603e7v1          PVR 00070101
PowerPC 603e7            PVR 00070200
PowerPC 603e7v2          PVR 00070201
PowerPC 603e7t           PVR 00071201
PowerPC 603r             (alias for 603e7t)
PowerPC Goldeneye        (alias for 603e7t)
PowerPC 750_v1.0         PVR 00080100
PowerPC 740e             PVR 00080100
PowerPC 740_v1.0         PVR 00080100
PowerPC 750e             PVR 00080200
PowerPC 750_v2.0         PVR 00080200
PowerPC 740_v2.0         PVR 00080200
PowerPC 740_v2.1         PVR 00080201
PowerPC 750_v2.1         PVR 00080201
PowerPC 740_v2.2         PVR 00080202
PowerPC 750_v2.2         PVR 00080202
PowerPC 750_v3.0         PVR 00080300
PowerPC 740_v3.0         PVR 00080300
PowerPC 750_v3.1         PVR 00080301
PowerPC 750              (alias for 750_v3.1)
PowerPC Typhoon          (alias for 750_v3.1)
PowerPC G3               (alias for 750_v3.1)
PowerPC 740_v3.1         PVR 00080301
PowerPC 740              (alias for 740_v3.1)
PowerPC Arthur           (alias for 740_v3.1)
PowerPC 750cx_v1.0       PVR 00082100
PowerPC 750cx_v2.0       PVR 00082200
PowerPC 750cx_v2.1       PVR 00082201
PowerPC 750cx_v2.2       PVR 00082202
PowerPC 750cx            (alias for 750cx_v2.2)
PowerPC 750cxe_v2.1      PVR 00082211
PowerPC 750cxe_v2.2      PVR 00082212
PowerPC 750cxe_v2.3      PVR 00082213
PowerPC 750cxe_v2.4      PVR 00082214
PowerPC 750cxe_v3.0      PVR 00082310
PowerPC 750cxe_v3.1      PVR 00082311
PowerPC 755_v1.0         PVR 00083100
PowerPC 745_v1.0         PVR 00083100
PowerPC 755_v1.1         PVR 00083101
PowerPC 745_v1.1         PVR 00083101
PowerPC 745_v2.0         PVR 00083200
PowerPC 755_v2.0         PVR 00083200
PowerPC 755_v2.1         PVR 00083201
PowerPC 745_v2.1         PVR 00083201
PowerPC 755_v2.2         PVR 00083202
PowerPC 745_v2.2         PVR 00083202
PowerPC 755_v2.3         PVR 00083203
PowerPC 745_v2.3         PVR 00083203
PowerPC 755_v2.4         PVR 00083204
PowerPC 745_v2.4         PVR 00083204
PowerPC 745_v2.5         PVR 00083205
PowerPC 755_v2.5         PVR 00083205
PowerPC 755_v2.6         PVR 00083206
PowerPC 745_v2.6         PVR 00083206
PowerPC 755_v2.7         PVR 00083207
PowerPC 745_v2.7         PVR 00083207
PowerPC 755_v2.8         PVR 00083208
PowerPC 755              (alias for 755_v2.8)
PowerPC Goldfinger       (alias for 755_v2.8)
PowerPC 745_v2.8         PVR 00083208
PowerPC 745              (alias for 745_v2.8)
PowerPC 750cxe_v2.4b     PVR 00083214
PowerPC 750cxe_v3.1b     PVR 00083311
PowerPC 750cxe           (alias for 750cxe_v3.1b)
PowerPC 750cxr           PVR 00083410
PowerPC 750cl_v1.0       PVR 00087200
PowerPC 750cl_v2.0       PVR 00087210
PowerPC 750cl            (alias for 750cl_v2.0)
PowerPC 750l_v2.0        PVR 00088200
PowerPC 750l_v2.1        PVR 00088201
PowerPC 750l_v2.2        PVR 00088202
PowerPC 750l_v3.0        PVR 00088300
PowerPC 750l_v3.2        PVR 00088302
PowerPC 750l             (alias for 750l_v3.2)
PowerPC LoneStar         (alias for 750l_v3.2)
PowerPC 604e_v1.0        PVR 00090100
PowerPC 604e_v2.2        PVR 00090202
PowerPC 604e_v2.4        PVR 00090204
PowerPC 604e             (alias for 604e_v2.4)
PowerPC Sirocco          (alias for 604e_v2.4)
PowerPC 604r             PVR 000a0101
PowerPC Mach5            (alias for 604r)
PowerPC 7400_v1.0        PVR 000c0100
PowerPC 7400_v1.1        PVR 000c0101
PowerPC 7400_v2.0        PVR 000c0200
PowerPC 7400_v2.1        PVR 000c0201
PowerPC 7400_v2.2        PVR 000c0202
PowerPC 7400_v2.6        PVR 000c0206
PowerPC 7400_v2.7        PVR 000c0207
PowerPC 7400_v2.8        PVR 000c0208
PowerPC 7400_v2.9        PVR 000c0209
PowerPC 7400             (alias for 7400_v2.9)
PowerPC Max              (alias for 7400_v2.9)
PowerPC G4               (alias for 7400_v2.9)
PowerPC 403GA            PVR 00200011
PowerPC 403GB            PVR 00200100
PowerPC 403GC            PVR 00200200
PowerPC 403              (alias for 403GC)
PowerPC 403GCX           PVR 00201400
PowerPC 401A1            PVR 00210000
PowerPC IOP480           PVR 00220000
PowerPC 401B2            PVR 00220000
PowerPC 401C2            PVR 00230000
PowerPC 401D2            PVR 00240000
PowerPC 401E2            PVR 00250000
PowerPC 401F2            PVR 00260000
PowerPC 401G2            PVR 00270000
PowerPC 401              PVR 00270000
PowerPC MPC8xx           PVR 00500000
PowerPC PowerQUICC       (alias for MPC8xx)
PowerPC MGT823           (alias for MPC8xx)
PowerPC MPC821           (alias for MPC8xx)
PowerPC MPC823           (alias for MPC8xx)
PowerPC MPC850           (alias for MPC8xx)
PowerPC MPC852T          (alias for MPC8xx)
PowerPC MPC855T          (alias for MPC8xx)
PowerPC MPC857           (alias for MPC8xx)
PowerPC MPC859           (alias for MPC8xx)
PowerPC MPC860           (alias for MPC8xx)
PowerPC MPC862           (alias for MPC8xx)
PowerPC MPC866           (alias for MPC8xx)
PowerPC MPC870           (alias for MPC8xx)
PowerPC MPC875           (alias for MPC8xx)
PowerPC MPC880           (alias for MPC8xx)
PowerPC MPC885           (alias for MPC8xx)
PowerPC G2               PVR 00810011
PowerPC MPC603           PVR 00810100
PowerPC G2HiP3           PVR 00810101
PowerPC MPC8250_HiP3     (alias for G2HiP3)
PowerPC MPC8255_HiP3     (alias for G2HiP3)
PowerPC MPC8260_HiP3     (alias for G2HiP3)
PowerPC MPC8264_HiP3     (alias for G2HiP3)
PowerPC MPC8265_HiP3     (alias for G2HiP3)
PowerPC MPC8266_HiP3     (alias for G2HiP3)
PowerPC MPC8349A         PVR 00830010
PowerPC MPC8347EAP       PVR 00830010
PowerPC MPC8343E         PVR 00830010
PowerPC MPC8347P         PVR 00830010
PowerPC MPC8347ET        PVR 00830010
PowerPC MPC8347E         (alias for MPC8347ET)
PowerPC MPC8347EP        PVR 00830010
PowerPC MPC8349          PVR 00830010
PowerPC MPC8349E         PVR 00830010
PowerPC MPC8349EA        PVR 00830010
PowerPC MPC8347EAT       PVR 00830010
PowerPC MPC8347EA        (alias for MPC8347EAT)
PowerPC MPC8347T         PVR 00830010
PowerPC MPC8347          (alias for MPC8347T)
PowerPC MPC8347AT        PVR 00830010
PowerPC MPC8347A         (alias for MPC8347AT)
PowerPC MPC8347AP        PVR 00830010
PowerPC MPC8343A         PVR 00830010
PowerPC MPC8343EA        PVR 00830010
PowerPC e300c1           PVR 00830010
PowerPC MPC8343          PVR 00830010
PowerPC e300c2           PVR 00840010
PowerPC e300c3           PVR 00850010
PowerPC e300             (alias for e300c3)
PowerPC MPC8378          PVR 00860010
PowerPC e300c4           PVR 00860010
PowerPC MPC8379E         PVR 00860010
PowerPC MPC8378E         PVR 00860010
PowerPC MPC8377E         PVR 00860010
PowerPC MPC8379          PVR 00860010
PowerPC MPC8377          PVR 00860010
PowerPC 740p             PVR 10080000
PowerPC 750p             PVR 10080000
PowerPC Conan/Doyle      (alias for 750p)
PowerPC Cobra            PVR 10100000
PowerPC 440EPX           PVR 200008d0
PowerPC 440GRX           PVR 200008d0
PowerPC 405D2            PVR 20010000
PowerPC x2vp4            PVR 20010820
PowerPC x2vp7            (alias for x2vp4)
PowerPC x2vp20           PVR 20010860
PowerPC x2vp50           (alias for x2vp20)
PowerPC 405GPa           PVR 40110000
PowerPC 405GPb           PVR 40110040
PowerPC 405CRa           PVR 40110041
PowerPC 405GPc           PVR 40110082
PowerPC 405GPd           PVR 401100c4
PowerPC 405GP            (alias for 405GPd)
PowerPC 405CRb           PVR 401100c5
PowerPC 405CRc           PVR 40110145
PowerPC 405CR            (alias for 405CRc)
PowerPC 405GPe           (alias for 405CRc)
PowerPC 440GPb           PVR 40120440
PowerPC 440GPc           PVR 40120481
PowerPC 440GP            (alias for 440GPc)
PowerPC STB03            PVR 40310000
PowerPC Npe4GS3          PVR 40b10000
PowerPC Npe405H          PVR 414100c0
PowerPC Npe405H2         PVR 41410140
PowerPC 405EZ            PVR 41511460
PowerPC Npe405L          PVR 416100c0
PowerPC 405D4            PVR 41810000
PowerPC 405              (alias for 405D4)
PowerPC STB04            PVR 41810000
PowerPC 405LP            PVR 41f10000
PowerPC 440EPa           PVR 42221850
PowerPC 440EPb           PVR 422218d3
PowerPC 440EP            (alias for 440EPb)
PowerPC 440GRa           PVR 422218d3
PowerPC 440GR            (alias for 440GRa)
PowerPC 405GPR           PVR 50910951
PowerPC 405EP            PVR 51210950
PowerPC STB25            PVR 51510950
PowerPC 440GXa           PVR 51b21850
PowerPC 440GXb           PVR 51b21851
PowerPC 440GXc           PVR 51b21892
PowerPC 440              PVR 51b21894
PowerPC 440GXf           PVR 51b21894
PowerPC 440GX            (alias for 440GXf)
PowerPC 440SP            PVR 53221850
PowerPC 440SP2           PVR 53221891
PowerPC 440SPE           PVR 53421890
PowerPC 750fx_v1.0       PVR 70000100
PowerPC 750fx_v2.0       PVR 70000200
PowerPC 750fx_v2.1       PVR 70000201
PowerPC 750fx_v2.2       PVR 70000202
PowerPC 750fl            PVR 70000203
PowerPC 750fx_v2.3       PVR 70000203
PowerPC 750fx            (alias for 750fx_v2.3)
PowerPC 750gx_v1.0       PVR 70020100
PowerPC 750gx_v1.1       PVR 70020101
PowerPC 750gl            PVR 70020102
PowerPC 750gx_v1.2       PVR 70020102
PowerPC 750gx            (alias for 750gx_v1.2)
PowerPC 440-Xilinx       PVR 7ff21910
PowerPC 7450_v1.0        PVR 80000100
PowerPC 7450_v1.1        PVR 80000101
PowerPC 7450_v1.2        PVR 80000102
PowerPC 7450_v2.0        PVR 80000200
PowerPC 7441_v2.1        PVR 80000201
PowerPC 7450_v2.1        PVR 80000201
PowerPC 7450             (alias for 7450_v2.1)
PowerPC Vger             (alias for 7450_v2.1)
PowerPC 7441_v2.3        PVR 80000203
PowerPC 7441             (alias for 7441_v2.3)
PowerPC 7451_v2.3        PVR 80000203
PowerPC 7451             (alias for 7451_v2.3)
PowerPC 7451_v2.10       PVR 80000210
PowerPC 7441_v2.10       PVR 80000210
PowerPC 7445_v1.0        PVR 80010100
PowerPC 7455_v1.0        PVR 80010100
PowerPC 7455_v2.1        PVR 80010201
PowerPC 7445_v2.1        PVR 80010201
PowerPC 7445_v3.2        PVR 80010302
PowerPC 7445             (alias for 7445_v3.2)
PowerPC 7455_v3.2        PVR 80010302
PowerPC 7455             (alias for 7455_v3.2)
PowerPC Apollo6          (alias for 7455_v3.2)
PowerPC 7455_v3.3        PVR 80010303
PowerPC 7445_v3.3        PVR 80010303
PowerPC 7455_v3.4        PVR 80010304
PowerPC 7445_v3.4        PVR 80010304
PowerPC 7447_v1.0        PVR 80020100
PowerPC 7457_v1.0        PVR 80020100
PowerPC 7457_v1.1        PVR 80020101
PowerPC 7447_v1.1        PVR 80020101
PowerPC 7457_v1.2        PVR 80020102
PowerPC 7457             (alias for 7457_v1.2)
PowerPC Apollo7          (alias for 7457_v1.2)
PowerPC 7447A_v1.0       PVR 80030100
PowerPC 7457A_v1.0       PVR 80030100
PowerPC Apollo7PM        (alias for 7457A_v1.0)
PowerPC 7447A_v1.1       PVR 80030101
PowerPC 7457A_v1.1       PVR 80030101
PowerPC 7447A_v1.2       PVR 80030102
PowerPC 7447A            (alias for 7447A_v1.2)
PowerPC 7457A_v1.2       PVR 80030102
PowerPC 7457A            (alias for 7457A_v1.2)
PowerPC MPC8641D         PVR 80040010
PowerPC e600             PVR 80040010
PowerPC MPC8641          PVR 80040010
PowerPC MPC8610          PVR 80040010
PowerPC 7448_v1.0        PVR 80040100
PowerPC 7448_v1.1        PVR 80040101
PowerPC 7448_v2.0        PVR 80040200
PowerPC 7448_v2.1        PVR 80040201
PowerPC 7448             (alias for 7448_v2.1)
PowerPC 7410_v1.0        PVR 800c1100
PowerPC 7410_v1.1        PVR 800c1101
PowerPC 7410_v1.2        PVR 800c1102
PowerPC 7410_v1.3        PVR 800c1103
PowerPC 7410_v1.4        PVR 800c1104
PowerPC 7410             (alias for 7410_v1.4)
PowerPC Nitro            (alias for 7410_v1.4)
PowerPC MPC8540_v10      PVR 80200010
PowerPC e500_v10         PVR 80200010
PowerPC MPC8540_v20      PVR 80200020
PowerPC MPC8541E_v10     PVR 80200020
PowerPC e500_v20         PVR 80200020
PowerPC e500v1           (alias for e500_v20)
PowerPC MPC8540_v21      PVR 80200020
PowerPC MPC8540          (alias for MPC8540_v21)
PowerPC MPC8541E_v11     PVR 80200020
PowerPC MPC8541E         (alias for MPC8541E_v11)
PowerPC MPC8541_v10      PVR 80200020
PowerPC MPC8541_v11      PVR 80200020
PowerPC MPC8541          (alias for MPC8541_v11)
PowerPC MPC8543_v10      PVR 80210010
PowerPC MPC8555_v10      PVR 80210010
PowerPC MPC8548_v10      PVR 80210010
PowerPC MPC8555E_v10     PVR 80210010
PowerPC MPC8543E_v10     PVR 80210010
PowerPC MPC8548E_v10     PVR 80210010
PowerPC e500v2_v10       PVR 80210010
PowerPC MPC8560_v10      PVR 80210010
PowerPC MPC8548_v11      PVR 80210011
PowerPC MPC8555E_v11     PVR 80210011
PowerPC MPC8555E         (alias for MPC8555E_v11)
PowerPC MPC8543E_v11     PVR 80210011
PowerPC MPC8548E_v11     PVR 80210011
PowerPC MPC8543_v11      PVR 80210011
PowerPC MPC8555_v11      PVR 80210011
PowerPC MPC8555          (alias for MPC8555_v11)
PowerPC MPC8548_v20      PVR 80210020
PowerPC MPC8545_v20      PVR 80210020
PowerPC MPC8560_v20      PVR 80210020
PowerPC MPC8543E_v20     PVR 80210020
PowerPC MPC8548E_v20     PVR 80210020
PowerPC e500v2_v20       PVR 80210020
PowerPC MPC8545E_v20     PVR 80210020
PowerPC MPC8547E_v20     PVR 80210020
PowerPC MPC8543_v20      PVR 80210020
PowerPC MPC8544E_v10     PVR 80210021
PowerPC MPC8544_v10      PVR 80210021
PowerPC MPC8543E_v21     PVR 80210021
PowerPC MPC8543E         (alias for MPC8543E_v21)
PowerPC e500v2_v21       PVR 80210021
PowerPC MPC8545_v21      PVR 80210021
PowerPC MPC8545          (alias for MPC8545_v21)
PowerPC MPC8533_v10      PVR 80210021
PowerPC MPC8560_v21      PVR 80210021
PowerPC MPC8560          (alias for MPC8560_v21)
PowerPC MPC8548E_v21     PVR 80210021
PowerPC MPC8548E         (alias for MPC8548E_v21)
PowerPC MPC8545E_v21     PVR 80210021
PowerPC MPC8545E         (alias for MPC8545E_v21)
PowerPC MPC8533E_v10     PVR 80210021
PowerPC MPC8543_v21      PVR 80210021
PowerPC MPC8543          (alias for MPC8543_v21)
PowerPC MPC8547E_v21     PVR 80210021
PowerPC MPC8547E         (alias for MPC8547E_v21)
PowerPC MPC8548_v21      PVR 80210021
PowerPC MPC8548          (alias for MPC8548_v21)
PowerPC MPC8544E_v11     PVR 80210022
PowerPC MPC8544E         (alias for MPC8544E_v11)
PowerPC MPC8567          PVR 80210022
PowerPC MPC8533_v11      PVR 80210022
PowerPC MPC8533          (alias for MPC8533_v11)
PowerPC MPC8544_v11      PVR 80210022
PowerPC MPC8544          (alias for MPC8544_v11)
PowerPC MPC8568          PVR 80210022
PowerPC MPC8568E         PVR 80210022
PowerPC MPC8567E         PVR 80210022
PowerPC e500v2_v22       PVR 80210022
PowerPC e500             (alias for e500v2_v22)
PowerPC e500v2           (alias for e500v2_v22)
PowerPC MPC8533E_v11     PVR 80210022
PowerPC MPC8533E         (alias for MPC8533E_v11)
PowerPC e500v2_v30       PVR 80210030
PowerPC MPC8572E         PVR 80210030
PowerPC MPC8572          PVR 80210030
PowerPC e500mc           PVR 80230020
PowerPC G2H4             PVR 80811010
PowerPC G2HiP4           PVR 80811014
PowerPC MPC8241          (alias for G2HiP4)
PowerPC MPC8245          (alias for G2HiP4)
PowerPC MPC8250          (alias for G2HiP4)
PowerPC MPC8250_HiP4     (alias for G2HiP4)
PowerPC MPC8255          (alias for G2HiP4)
PowerPC MPC8255_HiP4     (alias for G2HiP4)
PowerPC MPC8260          (alias for G2HiP4)
PowerPC MPC8260_HiP4     (alias for G2HiP4)
PowerPC MPC8264          (alias for G2HiP4)
PowerPC MPC8264_HiP4     (alias for G2HiP4)
PowerPC MPC8265          (alias for G2HiP4)
PowerPC MPC8265_HiP4     (alias for G2HiP4)
PowerPC MPC8266          (alias for G2HiP4)
PowerPC MPC8266_HiP4     (alias for G2HiP4)
PowerPC G2le             PVR 80820010
PowerPC G2GP             PVR 80821010
PowerPC G2leGP           PVR 80822010
PowerPC MPC5200_v11      PVR 80822011
PowerPC MPC5200_v12      PVR 80822011
PowerPC MPC52xx          (alias for MPC5200_v12)
PowerPC MPC5200          (alias for MPC5200_v12)
PowerPC MPC5200_v10      PVR 80822011
PowerPC MPC5200B_v20     PVR 80822011
PowerPC G2leGP1          PVR 80822011
PowerPC MPC5200B_v21     PVR 80822011
PowerPC MPC5200B         (alias for MPC5200B_v21)
PowerPC G2leGP3          PVR 80822013
PowerPC MPC82xx          (alias for G2leGP3)
PowerPC PowerQUICC-II    (alias for G2leGP3)
PowerPC MPC8247          (alias for G2leGP3)
PowerPC MPC8248          (alias for G2leGP3)
PowerPC MPC8270          (alias for G2leGP3)
PowerPC MPC8271          (alias for G2leGP3)
PowerPC MPC8272          (alias for G2leGP3)
PowerPC MPC8275          (alias for G2leGP3)
PowerPC MPC8280          (alias for G2leGP3)
PowerPC e200z5           PVR 81000000
PowerPC e200z6           PVR 81120000
PowerPC e200             (alias for e200z6)
PowerPC G2LS             PVR 90810010
PowerPC G2leLS           PVR a0822010

UPDATE 2

If I attempt to start Mac OS 9 from within Open Firmware (using boot hd:,\\:tbxi), I do manage to get some text output:

IMG_7389.jpg

If that's a little difficult to read, it says:

, checksum error
Loading ELF

DO-QUIESCE finished

Disregard the Checksum Error. It's because I've modified the ROM to add the additional MacRISC strings. It continues loading even after the checksum error. I can see that Quiesce is called from within the ROM to Open Firmware during startup, but I can't see what should be executing after it, nor do I know what any of it does.


Cheers,

iMic.

Last edited by iMic (2014-11-15 00:28:40)


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

Offline

#27 2014-11-14 22:10:46

Firebottle
Member
Registered: 2014-11-14
Posts: 3

Re: Mac OS 9 on Unsupported Hardware

I have one of those "OS-X only" iMacs, with the 800mhz CPU. It has open firmware 4.5.0f4

Here's my experience with this...

I tried the generic Mac OS ROM you posted on Nov 12th, and although my hard drive has OS 9 drivers, I can only boot into OS 9 if I type in the open firmware properties you specified on the previous page and boot back into OS X where I use Startup Disk to pick the Mac OS 9.2.2 system folder.

I noticed the 256kb of level 2 cache is disabled in OS 9 (Tattletech doesn't see it, Norton System Info benchmark reports slow memory accesses). Maybe the previous 800mhz model had a particular tweak to it's System Folder to enable it? Or is this the firmware's fault?

Also, when I decide to reboot back into Mac OS X using OS 9's startup disk control panel it seems the "compatible" property in open firmware is reset back to MacRISC3 and Power Macintosh only. This seems to prevent the Startup Disk from recognizing the OS 9 System Folder, despite the hacked ROM.

Then I have to type the open firmware commands in again...

Offline

#28 2014-11-14 22:17:04

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

Re: Mac OS 9 on Unsupported Hardware

When I installed this on my osx only iMac G4 1Ghz, I did the following:
1) Booted the iMac in FireWire Target Disk Mode (holding down 't')
2) Connected it to another OS9 supported machine (a pismo in this case)
3) Used Disk Utility on OS9 to format and partition the disk
4) Installed OS 9.1 onto one of the created partitions
5) Ran the updater for 9.2.1
6) Ran the updater for 9.2.2
7) Copied the generic Mac OS ROM posted earlier into the System Folder on the newly installed iMac drive.
8) Shut everything down and disconnected the two machines
9) Powered on the iMac G4

It then booted the 9.2.2 partition fine, no OF commands required.

Offline

#29 2014-11-14 23:55:25

Firebottle
Member
Registered: 2014-11-14
Posts: 3

Re: Mac OS 9 on Unsupported Hardware

I'm sure that does work... but changing the startup disk from OS 9 to OS X 10.4.11 changes parameters in open firmware and prevents booting into Mac OS 9.

It'd be nice to have both systems on one disk.

Offline

#30 2014-11-16 11:58:46

Firebottle
Member
Registered: 2014-11-14
Posts: 3

Re: Mac OS 9 on Unsupported Hardware

The nvedit trick posted on macos9lives makes it work now. I can boot back and forth between os9 and os x.

Although the level 2 cache is still disabled in os 9.

Last edited by Firebottle (2014-11-16 12:01:51)

Offline

#31 2014-11-16 12:59:56

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

Re: Mac OS 9 on Unsupported Hardware

Firebottle wrote:

The nvedit trick posted on macos9lives makes it work now. I can boot back and forth between os9 and os x.

Although the level 2 cache is still disabled in os 9.


It's a useful trick, that's for sure. Other than allowing the machine to boot into OS 9, it also allows the OS 9 System Folder to appear valid in OS X's Startup Disk preference pane and it allows Disk Utility to format volumes with the Mac OS 9 hard disk drivers. It's not something I'd recommend for machines with weak or dead PRAM batteries, or machines that have their NVRAM/PRAM reset often, but for everything else it's fine.


For reference, the nvedit trick:

chrisNova777 ( MacOS9Lives ) wrote:

if it is indeed the "macrisc3" string that enables/disables boot.. this info is contained in *the root node of the open firmware device tree* with property name "compatible"
can't we just overwrite this parameter in openfirmware nv-ram?? rather then having to change the 'mac os rom' ??....


The Mac OS ROM checks for MacRISC or MacRISC2 when determining whether the computer can start booting into Mac OS 9. Adding MacRISC or MacRISC2 to the compatible property will allow this check to pass without using a modified ROM.

In the second stage of the boot, the ROM checks to see whether the model identifier (so PowerBook4,3 for example) is listed as compatible in the ROM.

You can fix both of these issues in NVRAM without a modified ROM, like so:

dev /
" 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

To make it apply automatically with each boot:

nvedit

dev /
" 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

(Press Ctrl + C)

nvstore

setenv use-nvramrc? true

reset-all

Replace PowerBook4,3 with the model identifier of a Mac OS 9 compatible Mac. Take my iBook G4 for example. It's a PowerBook6,3, but because Mac OS 9 doesn't recognise that model, it crashes with an Error Type 102 on startup. If I tell the NVRAM that the computer is a PowerBook4,3 though (iBook G3), Mac OS 9 will start to boot successfully.

The reason I patched the Mac OS ROM is because if the NVRAM ever clears, the machine will be rendered unbootable until you re-enter these commands into the NVRAM.


I've noticed that we don't currently have a link to the thread over there. The MacOS9Lives forum has been extremely helpful throughout this project.

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


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

Offline

#32 2014-11-29 05:10:14

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

Re: Mac OS 9 on Unsupported Hardware

Posted this on the thread on macos9lives.com as well, but figured I would note here as well in case you don't see it over there. A script (easy editing in vi/TextEdit/etc) that can run from OS X (installed or a bootable CD/USB/etc) to setup nvramrc script vs having to type out the changes in their entirety in somewhat cumbersome open firmware interface:

#!/bin/sh
echo Enabling OS 9 booting...
echo "You may have to enter your password"
# Use nvram command to setup nvramrc with script to make open firmware changes
sudo nvram nvramrc='" /" select-dev
" PowerMac3,6" encode-string " model" property
" PowerMac3,6" encode-string " MacRISC" encode-string encode+ " MacRISC2" encode-string encode+ " MacRISC3" encode-string encode+ " Power Macintosh" encode-string encode+ " compatible" property
unselect
'
# Enable use of nvramrc on boot. Change to "false" if you want to disable again. Or just clear/reset nvram.
sudo nvram "use-nvramrc?"=true
echo done.

Have handy on a pen drive or hard drive you can access from OS X boot disk and you are on your way. Of course, "PowerMac3,6" will likely need to be changed as that is for a Power Mac G4.

Offline

#33 2014-11-29 18:15:40

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

Re: Mac OS 9 on Unsupported Hardware

I am attempting to try this on a 1.33 GHz PowerBook G4 12". using the firmware commands that iMic posted for "fooling" the OS to recognize the CPU. It seems to me that the PowerBook G4s aren't too different architecturally from their iBook counterparts (especially the 12" variants), so it should work.

Anyway, my finding so far: when I booted my install from a FireWire drive on my Pismo, I got the floppy with the blinking question mark (a somewhat unusual thing for a NewWorld system in my experience) and a blank grey screen when attempting the same thing on the G4. HOWEVER, when I applied the magic firmware commands, I got a cursor and the floppy/question mark icon! That seems very promising, because, as I have already noted, I have verified that it exhibits the same behavior on a truly supported machine.

Once I get the drive backed up on my alternate G4 (I have two, and I want to leave the better one alone as I sometimes use it at school), I will copy the OS 9 install to there and see what happens.

I will update this post with my findings.

c

UPDATE 1: All I get is the floppy/blinking question mark, which suggests to me that something is wrong with the OS, even though it should work. Ideas?

UPDATE 2: SUCCESS!!!!!!
I'd post a picture, but I don't know how.

Anyway, sound appears to be operational, but video is stuck at 256 colors. System Profiler properly recognizes the machine as a PowerBook6,4 with a 1333 MHz PowerPC G4, and it also correctly identifies the RAM as PC2700 DDR. There's no AirPort capabilities (as expected), and I'm having trouble with ethernet (though I'm sure that's just my setup).

I cannot boot without reentering the OF commands, however. Any fixes for that?

This is exciting!

UPDATE 3: I tried booting an A1106 (PowerBook G4 15") using the same methods and files, and all it did was bomb out after a long pause at the startup screen. That alone is incredible however, since it never would've gotten that far if not for all the efforts made here.  I'm sure it's some trivial thing preventing it from working, but it's beyond my abilities to fix at the moment.

Last edited by cc333 (2014-11-29 20:53:44)


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

#34 2014-11-29 18:56:30

max1zzz
Member
Registered: 2014-05-18
Posts: 207
Website

Re: Mac OS 9 on Unsupported Hardware

Although I can't say whats wrong, I can give a little insight into the Floppy/question mark icon on the new world machines. From my observations it appears that this means the Mac OS ROM file has been loaded off the HDD but for some reason the boot process has bailed. Sometimes you can connect another hdd at this point and it will boot just fine off it.

Offline

#35 2014-11-29 20:07:01

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

Re: Mac OS 9 on Unsupported Hardware

Regarding not having to enter the open firmware.. Modified Mac OS ROM should have taken care of it. Otherwise, either instructions on how to setup a scrip in open firmware or modify the shell script I posted with your mac model of choice and apply/run from within OS X to setup the open firmware script from in Mac OS X vs having to do it inside open firmware directly.

Offline

#36 2014-11-29 23:35:58

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

Re: Mac OS 9 on Unsupported Hardware

OK, I'll just start a new post here, as it's just easier.

I have successfully booted an A1052 PowerBook G4 17" to Mac OS 9, so now we can safely assume that the 15" with the same modification would work as well (I had one, but I gave it away <kicks self> ).

It behaves similarly to the 12", with the same lack of supported video (it had that strangeness that iMic had with his iBook initially with the phantom display causing the main one to go small. However, since multiple discrete monitors are supported on this model, it was an easy fix: just disable mirroring). I'm happy to report that sound is working here as well.

So, as it stands, we can add these machines to our list of machines which are "supported" and successfully booted by this hacked Mac OS ROM file.

I would try the FW800 MDD if I had one, but perhaps someone else here can?

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

#37 2014-12-01 18:13:14

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

Re: Mac OS 9 on Unsupported Hardware

cc333 wrote:

OK, I'll just start a new post here, as it's just easier.

I have successfully booted an A1052 PowerBook G4 17" to Mac OS 9, so now we can safely assume that the 15" with the same modification would work as well (I had one, but I gave it away <kicks self> ).

It behaves similarly to the 12", with the same lack of supported video (it had that strangeness that iMic had with his iBook initially with the phantom display causing the main one to go small. However, since multiple discrete monitors are supported on this model, it was an easy fix: just disable mirroring). I'm happy to report that sound is working here as well.

So, as it stands, we can add these machines to our list of machines which are "supported" and successfully booted by this hacked Mac OS ROM file.

Consider it done! I saw the photos and it looks to run really nicely on the PowerBook, apart from that hiccup with the video.

I'd like to at some point start building a table of machines that can boot into Mac OS 9 and machines that fail so we have a central location of information to work from.



I would try the FW800 MDD if I had one, but perhaps someone else here can?

I'm looking to see if we can get some members from other forums - notably MacOS9Lives - to test machines like the MDD FW800 if someone here doesn't have one we can test first.

Heads up cc333 - I think your link over in the other forum thread is broken. The one that says "Check out this thread for the full story..." leads to EveryMac. wink



Fun With Video Drivers

Now we dive straight back into the fun stuff. I started considering ways to make Mac OS 9 support different colour modes on the iBook's internal display. I'm not focused on hardware video acceleration at the moment, but being able to switch between 256/Thousands/Millions of colours would be extremely handy.

I figure that a reasonable starting place is the Mac OS ROM as there's a lot of display data in there. The resource EDID inside the ROM appears to contain Display EDIDs for some iMacs and AppleVision displays, but I see no reference to entries resembling those of portable devices there.


Another possibility was attempting to load the ATI Radeon 9200 video driver to provide limited support for the R200-based Mobility Radeon 9200. I figured that the drivers from ATI must contain a list of device identifiers somewhere in the code, and sure enough:

  • ATI Extension - Inside Resource Fork, resources INIT, MkTD

  • ATI Monitor - Inside Data Fork

  • ATI Resource Manager - Inside Data Fork

  • ATI ROM Xtender - Inside Data and Resource Forks


The closest matches were entries with device IDs for the ATY,R200Parent, ATY,R200i_A and ATY,R200i_B. For comparison the iBook G4 video processor identifies as ATY,ViaParent for the processor itself, ATY,Via_A for the internal display controller and ATY,Via_B for the external display port.

By changing the device IDs in the ATI extensions (making sure to modify the string character length byte before each entry accordingly) like so:

  • ATY,R200Parent [14 Chars, Hex 0E]  ->  ATY,ViaParent [13 Chars, Hex 0D]

  • ATY,R200i_A [11 Chars, Hex 0B]  ->  ATY,Via_A [9 Chars, Hex 09]

  • ATY,R200i_B [11 Chars, Hex 0B]  ->  ATY,Via_B [9 Chars, Hex 09]


I was able to produce a number of different outcomes, but none of them good. As the system attempts to load ATI Extension on startup, it crashes with an Illegal Instruction. With some further tweaking the system crashed again, but this time with a Bus Error. I don't know whether it is talking to the device or not. If it is communicating with the Radeon, then it's failing in the process.

This is occurring at a point where MacsBug could take over to provide some limited debugging functionality, which I may have to attempt next.

Even if it simply isn't possible to make these drivers work with the Mobility Radeon 9200, the research could still be useful when it comes to modifying the video driver to support full ATI Radeon 9200s, like those in the Apple eMac and Mac mini, or even in other graphics drivers, like NVIDIA's GeForce 4 MX driver for the video processor in the iMac G4.


EDIT: Never attempt to edit complex data when tired. The ATI Extension isn't a driver at all, it's the menu bar tool for controlling some features of the graphics hardware. It seems that the driver is the ATI ROM Xtender extension, which is where I should have been editing.

Last edited by iMic (2014-12-02 06:47:10)


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

Offline

#38 2014-12-02 04:20:24

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

Re: Mac OS 9 on Unsupported Hardware

I've posted the correct link, so that shouldn't be a problem anymore.

I'd also like to say that, for some reason, the PowerBook 12" has suddenly started working in millions of colors. Why is this?

It's been completely wiped and only has OS 9 installed (no OS X of any kind is installed), so I haven't switched it to Millions via that method.

Also, were there ever any OS 9-compatible Macs with Nvidia Geforece Go 5200 (or something vaguely similar)?

If not, it seems someone will have to disassemble the regular Nvidia drivers, somehow ascertain how the chipset works, and write a new driver from scratch. Not a trivial endeavor!

That being said, it seems to work just fine otherwise (I'm posting this from it, as a matter of fact!). It'd be nice to get Airport Extreme working, though, but we have the same lack-of-drivers issue as with the video chipset.

Oh, well.

EDIT: Sleep isn't working either. Perhaps looking through the Energy Saver control panel with ResEdit will turn something up? I'll go try it out, even though I don't really know what to look for (maybe it simply needs the particular model identifier added to its built in list of compatible machines, if it has one?).

c

Last edited by cc333 (2014-12-02 04:26:59)


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

#39 2014-12-02 06:10:06

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

Re: Mac OS 9 on Unsupported Hardware

Update: Some limited success with the Mobility Radeon 9200. Modifying the ATY,Bugsy entries in the resource and data forks of the ATI ROM Xtender extension to ATY,Via_A has allowed the internal display to successfully be identified by the system. As a result, the operating system now correctly detects the amount of VRAM (32MB) and the vendor ID (1002). It also correctly identifies the panel as an iBook display, allowing for mode switching between all available resolutions and colours.

IMG_7462.jpg


Which means that 256 colour games are now playable.

IMG_7459.jpg


It's not all fantastic news though. The computer still thinks that a second display is connected, and occasionally it will set the phantom display as the default. I have temporarily resolved the issue using a series of Open Firmware commands that breaks the ATY,Via_B device for the second display, forcing the machine to always use the internal display.

The downside to this fix, other than having to rely on Open Firmware tweaks, is that the modification doesn't execute correctly when loaded automatically via nvstore / setenv use-nvramrc. It simply says it can't find the device, but if you manually enter the commands into Open Firmware it executes successfully. Presumably it attempts to execute the script and make modifications to the ATY,Via_B device early in the boot, before the ATI Radeon has activated and added its devices to the device tree, and so it fails to run.

With all of that said, this is a step forward in the project. I suspect that desktop machines that don't split their video data to separate internal and external devices, like the Mac mini's Radeon 9200 (ATY,RockHopper2), could be made to work quite easily with this method.

I still haven't looked at nVidia's drivers to see how they compare, but I'm hoping to see if the GeForce 4 MX in the unsupported iMac G4s can be made to work with the GeForce 4 MX drivers that were used for machines like the QuickSilver and MDD.



cc333 wrote:

I've posted the correct link, so that shouldn't be a problem anymore.

No problem at all, was looking at the pictures of the PowerBook and happened to notice it when I was scrolling through. smile


cc333 wrote:

I'd also like to say that, for some reason, the PowerBook 12" has suddenly started working in millions of colors. Why is this?

It's been completely wiped and only has OS 9 installed (no OS X of any kind is installed), so I haven't switched it to Millions via that method.

It seems the colour modes are stored in Open Firmware. If the machine ever ran at 256 colours before, it'll remember that setting and OS 9 will continue to use it. I remember when I booted from an older OS 9 install CD, the machine was limited to 256 colours and that setting was stored in the NVRAM. When I booted from a later OS 9 install, it was still limited to 256 colours until I reset the NVRAM, at which point it started working at Millions of colours.

In other words, possibly something funny happening in the NVRAM/Open Firmware side of things.


cc333 wrote:

Also, were there ever any OS 9-compatible Macs with Nvidia Geforece Go 5200 (or something vaguely similar)?

If not, it seems someone will have to disassemble the regular Nvidia drivers, somehow ascertain how the chipset works, and write a new driver from scratch. Not a trivial endeavor!

That being said, it seems to work just fine otherwise (I'm posting this from it, as a matter of fact!).

I don't believe the GeForce FX Go 5200 was ever used in a Mac OS 9 compatible machine, but according to this article over at LowEndMac, the desktop GeForce FX 5200 was compatible with Mac OS 9 to some extent. At least enough to provide some basic frame buffer functionality and the ability to select resolutions and switch colours.

Depending on how different the GeForce FX 5200 and GeForce FX Go 5200 are, it may be possible to use those drivers with some modifications to achieve some level of functionality with PowerBook GPU. As I demonstrated above, it was possible to do this with the Mobility Radeon 9200 and the desktop Radeon 9200 drivers, so it's not outside of the realm of possibility for the nVidia GPUs either.

EDIT: Looks like the limited GeForce FX 5200 support is simply a case of no driver loading at all, in which case it wouldn't be any better than the current situation of having only one resolution and colour mode. If there were a driver compatible with an NV30 based nVidia card, it could still be possible to achieve some basic functionality, but I don't believe there were any OS 9 compatible NV30 cards. Still, I haven't looked at the internals of the latest nVidia drivers yet, so I haven't a clue what to expect.


cc333 wrote:

It'd be nice to get Airport Extreme working, though, but we have the same lack-of-drivers issue as with the video chipset.

Oh, well.

It certainly would be, but I'm not optimistic at this point. The earlier 802.11b AirPort cards were essentially rebranded Lucent WaveLAN cards, while the newer 802.11g AirPort Extreme cards are based on Broadcom chipsets. They're similar in name only, which leads me to believe that any attempts at producing a compatible driver will be a ground-up effort rather than some simple tweaks with ResEdit or a Hex Editor.


cc333 wrote:

EDIT: Sleep isn't working either. Perhaps looking through the Energy Saver control panel with ResEdit will turn something up? I'll go try it out, even though I don't really know what to look for (maybe it simply needs the particular model identifier added to its built in list of compatible machines, if it has one?).

I haven't looked into sleep and power management yet, actually. I'll make a note to look into it at some point.

Last edited by iMic (2014-12-02 06:42:04)


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

Offline

#40 2014-12-02 07:35:15

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

Re: Mac OS 9 on Unsupported Hardware

That's great news regarding the ATI Radeon 9200! The 17" 1.33 GHz PowerBook uses a Radeon 9600, which is probably somehat similar enough that a similar hack might work (and it also doesn't have that phantom display problem, even though it still exists, because the PowerBook supports discrete multiple monitors).

Noted about the NV30-based cards. Perhaps it's possible that a similar hack as with the ATI drivers to the Nvidia ones will have a similar effect?

Also, agreed about the Airport Extreme card. Is it true that may Broadcom chipsets are fairly well documented, with reference drivers readily available?

At least on Powerbooks with PC card slots (15" and 17" models), we can use a WaveLAN or some such without issues, if only as a stopgap measure (the PC card slot appears to be functional, but I have yet to test it to confirm this). Writing drivers and such are far beyond my current abilities, but I can come up with ideas and make educated guesses about how it could be done.

Keep up the good work!!

EDIT: Just a side note: what do the "Login" and "Panels" system files do, exactly? I know they're probably related to Multiple Users somehow, but there's lots of neat settings dialogs that don't seem to be accessible. Is it possible to execute one of these?

c

Last edited by cc333 (2014-12-02 07:58:29)


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

#41 2014-12-02 09:21:26

volvo242gt
Member
From: Duvall, WA
Registered: 2014-05-22
Posts: 406
Website

Re: Mac OS 9 on Unsupported Hardware

Hmmm, maybe the 9700/9800 driver would work?  After all, I do have a desktop ATI Radeon 9800 Pro in my DA.  Works fine under 9.2.2...

Anyway, keep up the work, guys...

-J


68K: Q650 48/1.2G/CD
modern: Mac Pro 2.8GHz 8-core 6GB/500G/DVD-RW, A1150 MBP 2GHz CD, 2GB/80G/DVD-RW
Pre-Mac: ][+, //e
other: iPhone 6s 128GB Space Gray

Offline

#42 2014-12-02 12:19:34

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

Re: Mac OS 9 on Unsupported Hardware

cc333 wrote:

That's great news regarding the ATI Radeon 9200! The 17" 1.33 GHz PowerBook uses a Radeon 9600, which is probably somehat similar enough that a similar hack might work (and it also doesn't have that phantom display problem, even though it still exists, because the PowerBook supports discrete multiple monitors).


I want to talk about this for a moment, and I'll come back to the rest.

I know why this issue occurs now!


Video Cards with Macintosh compatible ROMs have a property that's created in the Device Tree under the graphics card entries when the card is executed called driver,AAPL,MacOS,PowerPC. This property contains the driver information for the card, which the Mac OS then loads on startup. The Mac OS ROM checks for the presence of this property, and if it finds driver information there, it loads normally. Card fully supported. No issues.

Our computers, having shipped with Mac OS X, have graphics card ROMs that don't contain OS 9 compatible video drivers in the firmware. Therefore, the driver,AAPL,MacOS,PowerPC property is not created. The Mac OS ROM doesn't find it, and so the video cards are activated in almost a generic form - they work, but the OS has no control over them. If the video card has multiple outputs - such as the internal display and external monitor port on an iBook or PowerBook - the Mac OS will simply activate both ports. It doesn't matter if you have extensions to drive your graphics card, since the check for this property occurs even earlier in the boot process than the point where extensions are loaded.


So, how can I resolve this, or can it be resolved at all? Well, I'm about to test for this now. If it can be resolved, it'll be a difficult one. I'll provide more information as it becomes available.


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

Offline

#43 2014-12-04 20:12:34

galgot
Member
Registered: 2014-07-31
Posts: 40

Re: Mac OS 9 on Unsupported Hardware

Hi!
Just installed 9.2.2 on a 17' A1013. Work Ok , but sticked in 256 colours for now and no sound.
Will put 10.4 on the other partition.

Offline

#44 2014-12-04 22:55:42

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

Re: Mac OS 9 on Unsupported Hardware

galgot: So that's like the first gen of Aluminum PowerBook? I wonder why there's no sound? I got sound on every machine I've tested so far (I think you can update the Apple Audio Extension to version 2.2 or later, as iMic says earlier in this thread, to get sound).

Let's keep testing!

I'd test the Mac Mini, but I only have Intel models (so obviously not doable).

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

#45 2014-12-05 02:54:25

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

Re: Mac OS 9 on Unsupported Hardware

Some findings, but nothing new.

After discovering how to make an OF script that would enter the SheepShaver generic video driver into the iBook's memory, it looked promising for a successful boot. However, attempting to use that generic driver resulted in the same grey screen with no video output that I'd been experiencing when I tried to disable the hack entirely. Attempting to use the ATI Fcode from a Radeon 9200 resulted in the machine being unable to boot at all, not because the Fcode was incompatible, but because the OF script would freeze the system as it tried to load.

I looked at the Mac Mini as well, suspecting that it may have been a video driver issue that was preventing OS 9 from booting on that machine, but there's no such driver in the firmware of the Mini's Radeon 9200, so that can't be the reason it's freezing at a grey screen.


We're starting to hit a dead end here. Unlike Mac OS X, earlier versions of the OS are extremely dependent on drivers, settings and fcode in the computer's firmware to operate completely, and newer OS X-only machines simply lack all of this. That's why later iMac G4s with the GeForce 4 MX are unsupported under Mac OS 9. Not because OS 9 lacks the necessary extensions, but because half of that driver would have been stored on the card itself, and Apple removed all of it from the OS X-only models.

It's also why flashing the firmware from a FW400 MDD onto a FW800 yields better results for booting OS 9 than simply using the tweaked ROM to bypass the model check. The older firmware, when flashed onto the newer machine, provides the support for OS 9 at the firmware level that was stripped out of the newer model.


I know some have the expectation that we'll be able to produce fully functioning OS 9 systems that run on newer hardware. Without someone that has an intimate knowledge of the hardware and the ability to produce system extensions for Mac OS 9, this will never be the case. Almost every effort being made is to produce something that's "good enough" with what we already have, and we're already stretching these drivers and extensions fairly thin when modifying them to work on other devices they were never built to run on in the first place.


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

Offline

#46 2014-12-05 03:02:26

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

Re: Mac OS 9 on Unsupported Hardware

iMic wrote:

Some findings, but nothing new.

It's also why flashing the firmware from a FW400 MDD onto a FW800 yields better results for booting OS 9 than simply using the tweaked ROM to bypass the model check. The older firmware, when flashed onto the newer machine, provides the support for OS 9 at the firmware level that was stripped out of the newer model.


Hi.. Been following even though I do not have a MacBook or other PowerPC Mac to test with beyond the FW400 and FW800 MDDs I have. Maybe not high priority but I picked out the above from your post... Curious what you mean or what you have seen/encountered regarding the FW800?  I have not been using your modified Mac OS ROM file but been testing with the simple OF firmware tweak to report MacRISC/MacRISC2 to the os and noticed no difference in the FW400 vs FW800 (booting from the same hard drive in fact as I swap the drive between the real OS 9 box (FW400) and FW800 for testing. Did I miss something someone reported as an issue?

Offline

#47 2014-12-05 03:15:16

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

Re: Mac OS 9 on Unsupported Hardware

blemk wrote:

Hi.. Been following even though I do not have a MacBook or other PowerPC Mac to test with beyond the FW400 and FW800 MDDs I have. Maybe not high priority but I picked out the above from your post... Curious what you mean or what you have seen/encountered regarding the FW800?  I have not been using your modified Mac OS ROM file but been testing with the simple OF firmware tweak to report MacRISC/MacRISC2 to the os and noticed no difference in the FW400 vs FW800 (booting from the same hard drive in fact as I swap the drive between the real OS 9 box (FW400) and FW800 for testing. Did I miss something someone reported as an issue?


I don't believe there's an issue. Someone I discussed this with suggested that flashing the FW800 firmware was still the better option, but didn't explain why, so I assumed that there was some downside to using my method.

However, if it's working well for you, that's great to know. We've had surprisingly little feedback about the FW800 MDD, so it's good to know that it seems to work fine.



Update

I renamed the ATI ROM Xtender extension to ATI Via_A and created a second version of the extension called ATI Via_B with the values hex edited for that device. So Mac OS 9 now loads two separate extensions, one for the ATY,Via_A and one for the ATY,Via_B.

What did this achieve? No more false second display issue. The ability to switch between 640 x 480, 800 x 600 and 1024 x 768. The ability to switch between 256 Grays, 256 Colours, Thousands of Colours and Millions of Colours. All on the ATI Mobility Radeon 9200 under Mac OS 9. The iBook still lacks hardware acceleration, but it's now capable of running the majority of Classic Mac OS software without issue.

With no Open Firmware commands. This machine is booting up completely under its own power.

Its energy consumption is rather high however. Running SimCity 2000, a relatively simple game for the hardware it's running on, forces the computer to start draining energy as fast as the battery / power adapter can supply it.


What Works

  • Video (Frame Buffer, Resolution & Colour Mode Switching)

  • Sound (Including Volume Control Keys)

  • Ethernet Networking

  • Battery / Power Status

  • USB (1.1 Speed)

  • FireWire 400

  • Internal ATA (Hard Drive & CD/DVD-ROM/RW)

  • Processor ID (Model, Variable Clock Speed Range)

  • Power Button (Displays Shut Down/Restart/Etc)


Not Working

  • Hardware Video Acceleration (No 2D Accel. No 3D/OpenGL)

  • Brightness Control & Keys (This did work before, not sure why it doesn't now.)

  • Sleep Mode (Black Screen, Doesn't Wake requiring Hard Reboot)

  • AirPort Extreme (No 802.11g Broadcom Driver)


Uncertain / Untested

  • Internal Modem

  • External Video Out (Mini-VGA)

Last edited by iMic (2014-12-05 04:46:04)


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

Offline

#48 2014-12-05 07:32:19

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

Re: Mac OS 9 on Unsupported Hardware

If you were able to hack the video driver to allow color depth/resolution changes, then it should be possible to somehow "trick" the accelerator software to work, no?

I think you'll be famous for this! You are the first (known) person ever to actually boot OS 9 on an unsupported Macintosh!!

Incidentally, on all the machines I've tested on, there's no sleep ability AT ALL. When I select the Sleep command in the Special menu, I get a dialog stating that the software isn't installed, offering me the option of shutting down or cancelling the command. It's probably related to your issues.

So, it seems to me that our priorities should be to:

  1. Get Energy Saving features (sleeping, etc.) working properly

  2. Get hardware video acceleration working

  3. Optionally get AirPort Extreme to be supported somehow (or use a WaveLAN-compatible PCMCIA card on machines equipped with a PC Card slot in the interim)

And this will give us a perfectly usable machine that would be functionally indistinguishable from a supported Mac (such as an iBook G3, for instance).

To then make it better, we could:

  1. Figure out how to enable FW800 on the (formerly) OS X-only MDD

  2. Determine if USB 2.0 is possible (or any other modern thing)

  3. Adding SATA support (shouldn't be too difficult; maybe we could figure out a rudimentary TRIM diver so it can also support SSDs)

  4. Get it booting on a G5!

Alas, I fear that most of this is beyond our collective abilities.

One never knows, though. Until now, it was thought that even BOOTING these machines with OS 9 was impossible, so I'm sure it's all doable somehow.

c

Last edited by cc333 (2014-12-05 07:32:55)


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

#49 2014-12-05 17:38:19

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

Re: Mac OS 9 on Unsupported Hardware

OS 9 does not know how to drive USB 2.0 or FW800 because of the differences in protocol negotiation. You'd need to write new extensions.

OS 9-bootable SATA cards make it look like another SCSI bus to OpenFirmware, usually (the Sonnet SATA cards, for example). The problem you'll have is that this kind of thing is completely internal to the card. Please remember that even on the last of the quads the SATA controller was still only SATA I.

TRIM should be possible, but only if you have direct access to the controller (see above), and you need to know what blocks on the filesystem are not in use. Not trivial, but not completely ridiculous to implement.

The G5 issues are both initializing the processor, and dealing with instructions that OS 9 uses but the G5 doesn't have. Instructions like mcrxr, for example, are implemented by the OS X kernel, not by the processor. Furthermore, the G5 is going to howl and cook without proper power management (especially if you ever tried it on a liquid cooled system), and you can forget about the PCIe systems since OS 9 won't know what to do with the bus controller. I think the G5 *will* be impossible to support.

Offline

#50 2014-12-05 17:39:49

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

Re: Mac OS 9 on Unsupported Hardware

One last note on the SATA issue: since only the G5 series had built-in SATA, and since I am very certain the G5 is far too different to boot OS 9 with just hacks like this, I would not spend my time on it; if you have a G4 system with an OS 9 bootable SATA card, it will "just work."

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.