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: 1
  • scripts.zip
    10 KB · Views: 0
  • Like
Reactions: phunguss

phipli

Tinkerer
Sep 23, 2021
322
227
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.
 
  • Like
Reactions: phunguss