Drop-In G4 CPU transplant: To G3 B/W from G4 Yikes possible?

Elosha

New Tinkerer
Aug 14, 2025
10
10
3
Europe
Hey there,

I got
  • a G3 B/W logicboard (dunno which rev)
  • a G4 socketed CPU (taken from a G4 Yikes)
from e-waste.

1. Seems I managed to modify the G3 board to work with ATX PSUs directly. However when the board tries to boot, it beeps 4 times. Accourding to lookup tables, this seems to be a firmware error, right?

2. I don't have a G3 to verify what this means. Has anyone already dropped a G4 CPU into a G3 with success?

3. My guess was this might be related to the G4 being unknown to the firmware. Is this true?

4. Means I would need to flash the FW – are there options in software via OF prompt, or would I need to desolder and burn the chip directly?

Thanks for sharing your experience!
 

joevt

Tinkerer
Mar 5, 2023
228
93
28
The firmware updaters from PowerLogix and Sonnet for G4 upgrades do not appear to be in the form of an Open Firmware script so they cannot be applied from Open Firmware.
https://www.sonnettech.com/support/kb/kb.php?cat=317&expand=_a3&action=b153#b153

Apple's Firmware Updater (to upgrade to 3.1.1f4) "Power Mac G3 (Blue & White) Firmware Update 1.1" does have an Open Firmware script.

I suppose one could decipher the patches from the G4 upgrade software, and apply the changes to the Apple Firmware Updater script.

The Sonnet firmware patchers and unpatchers are resources in a file called PMG4ROMUtility.rsrc in the Mac OS X firmware updater app. Use derez to dump them all. I don't know what the format of the patchers is.

Code:
cd "/Volumes/Updates/Third Party System Software/Sonnet/Sonnet Firmware Updater 3.1"
derez -useDF "Sonnet Firmware Updater.app/Contents/Resources/PMG4ROMUtility.rsrc" > "/tmp/PMG4ROMUtility.r"
derez -p -only xxxx -useDF "Sonnet Firmware Updater.app/Contents/Resources/PMG4ROMUtility.rsrc" 2>&1 | perl -pe 's/.*derez - Skipping //' > "/tmp/PMG4ROMUtility.list.txt"
derez -useDF "Sonnet Firmware Remover.app/Contents/Resources/PMG4ROMUtility.rsrc" > "/tmp/PMG4ROMUtilityRemover.r"
derez -p -only xxxx -useDF "Sonnet Firmware Remover.app/Contents/Resources/PMG4ROMUtility.rsrc" 2>&1 | perl -pe 's/.*derez - Skipping //' > "/tmp/PMG4ROMUtilityRemover.list.txt"
bbdiff "/tmp/PMG4ROMUtility.r" "/tmp/PMG4ROMUtilityRemover.r"
bbdiff "/tmp/PMG4ROMUtility.list.txt" "/tmp/PMG4ROMUtilityRemover.list.txt"

/tmp/PMG4ROMUtilityRemover.r and /tmp/PMG4ROMUtility.r are identical.
/tmp/PMG4ROMUtilityRemover.list.txt and /tmp/PMG4ROMUtility.list.txt are identical.

These are all the supported patchers in the Sonnet patcher:
Code:
'Ptch' (128, "AGP 4.28f1 Patch").
'Ptch' (129, "QS 4.24f1 Patch").
'Ptch' (130, "QS 4.33f2 Patch").
'Ptch' (131, "AGP 4.25f1 Patch").
'Ptch' (132, "TiBook 4.29f1 Patch").
'Ptch' (133, "Cube 4.19f1 Patch").
'Ptch' (134, "Quicksilver 4.23f1 Patch").
'Ptch' (135, "Quicksilver 4.21f2 Patch").
'Ptch' (136, "Quicksilver 4.46f2 Patch").
'Ptch' (137, "MDD 4.48f2 Patch").
'Ptch' (138, "MDD 4.57f1 Patch").
'Ptch' (139, "MDD 4.60f1 Patch").
'Ptch' (140, "MDD 4.63f1 Patch").
'Ptch' (141, "MDD 4.65f3 Patch").
'Ptch' (142, "QS 4.44f1 Patch").
'Ptch' (143, "B&W 1.11f4 Patch").
'Ptch' (144, "Yikes 1.12f2 Patch").
'Ptch' (148, "AGP 4.28f1 Patch").
'Ptch' (149, "QS 4.24f1 Patch").
'Ptch' (150, "QS 4.33f2 Patch").
'Ptch' (151, "AGP 4.25f1 Patch").
'Ptch' (152, "TiBook 4.29f1 Patch").
'Ptch' (153, "Cube 4.19f1 Patch").
'Ptch' (154, "Quicksilver 4.23f1 Patch").
'Ptch' (155, "Quicksilver 4.21f2 Patch").
'Ptch' (156, "Quicksilver 4.46f2 Patch").
'Ptch' (157, "MDD 4.48f2 Patch").
'Ptch' (158, "MDD 4.57f1 Patch").
'Ptch' (159, "MDD 4.60f1 Patch").
'Ptch' (160, "MDD 4.63f1 Patch").
'Ptch' (161, "MDD 4.65f3 Patch").
'Ptch' (162, "QS 4.44f1 Patch").
'Ptch' (163, "B&W 1.11f4 Patch").
'Ptch' (164, "Yikes 1.12f2 Patch").

I have a patched and unpatched version of the B&W G3 firmware, so we know what's supposed to get patched and it may help decipher the format of the Ptch resources. I suppose you don't need the Ptch resource since we have the final result of the patch but it would be nice to know that the patched firmware that I have is from the result of applying the Ptch resource.

I've attached some scripts for calculating checksums, compressing/decompressing lzss data, etc.
 

Attachments

  • B&W G3 firmwares and updaters.zip
    2.3 MB · Views: 3
  • scripts.zip
    10 KB · Views: 2
  • Like
Reactions: phunguss

phipli

Tinkerer
Sep 23, 2021
324
228
43
Hey there,

I got
  • a G3 B/W logicboard (dunno which rev)
  • a G4 socketed CPU (taken from a G4 Yikes)
from e-waste.

1. Seems I managed to modify the G3 board to work with ATX PSUs directly. However when the board tries to boot, it beeps 4 times. Accourding to lookup tables, this seems to be a firmware error, right?

2. I don't have a G3 to verify what this means. Has anyone already dropped a G4 CPU into a G3 with success?

3. My guess was this might be related to the G4 being unknown to the firmware. Is this true?

4. Means I would need to flash the FW – are there options in software via OF prompt, or would I need to desolder and burn the chip directly?

Thanks for sharing your experience!
Apple put a check in the firmware on the B&W G3 that checks if the CPU is a G4 (they knew they were on the way ahead of time). It blocks booting if it detects one.

Processor upgrade manufacturers made firmware patches that fixed this, but you need to install them before you swap out the G3 for a G4, so I suspect you'll need to borrow a G3 to move this project forward.

Interestingly the same block doesn't exist in Beige G3s, so you can actually just drop a G4 from a Yikes straight into a Beige G3 and it usually works.

Edit - joevt got there before me and with more detail :)

Easiest solution would be to buy a cheap G3 from eBay (even just a slow one from a Beige), set the bus and multiplier jumpers to something that it supports like 66MHz bus and 233MHz CPU, then boot, apply one of the CPU upgrade patches, shut down, insert the G4 and set the jumpers for it, then carry on with your G4.
 

phipli

Tinkerer
Sep 23, 2021
324
228
43
I picked up a B&W G3 with a sonnet G4 in it and it did not boot. But that G4 CPU worked fine in a beige G3. I thought I had tried the patching, but I don't recall. Lot of jumper settings to play with.
Hum, so a little bit of info on the Sonnet cards - they actually ignore the CPU clock multiplier and just do their own thing, so that wouldn't matter, although the bus speed would, and compatibility might need checking for that to make sure they rated the specific part to 100MHz.

If we assume that, given it was in the B&W, it did work at some point, then that (the bus speed) shouldn't be the issue. My expectation is that either the socket is dirty, or the logic board / PSU has another issue in the B&W. If you ever do get around to looking at it again, start a thread here and we can run through the symptoms and see if we can work out what it is. It isn't the CPU whatever it is, given it works in the beige!

First thing to try is remove all but one stick of RAM and spray contact cleaner in the RAM slots and CPU socket. On, and based on personal experience of a non-working B&W I bought, make sure the heatsink is fitted correctly.