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

PowerMac G4 ROM dump (maybe 1MB?)

aquabox

Member
I cannot find it from Google or DuckDuckGo to search "powermac g4 rom dump", maybe there's no rom dumps from PowerMac G4?
 

aquabox

Member
I know, I forgot to ask someone like extracted ROM and a dev-tree-dump for PowerMac G4, I don't think if I am wrong. :rolleyes:
Also, Is joevt gonna extracting every roms or dev-tree-dump maybe? I don't have PowerMac G4 extracted ROM at all. :confused:
 

joevt

Well-known member
Also, Is joevt gonna extracting every roms or dev-tree-dump maybe? I don't have PowerMac G4 extracted ROM at all. :confused:
Can't extract the ROM without having the Mac.

I think most every Old World ROM has been previously extracted (Internet archive, Macintosh garden, Macintosh repository, github.com/sentient06/MacROMan).

Power Express / PM9700 (077d.39f1, 7c31.43a6?, 7c31.53b6?, b710.2f22?) and Kansas (9f2b.07cf) have bad checksums though.

MacROMan has the classic macOS New World ROM files but not actual New World ROM dumps. Classic macOS New World ROM files (type: txbi) don't have Open Firmware. How does Sheep Shaver use it to boot Mac OS 9.1? Well, booting Mac OS 9 doesn't require Open Firmware. The txbi files do have Open Firmware code because they are normally loaded by Open Firmware but I guess Sheep Shaver skips that? The files downloaded from GitHub will be missing the txbi/chrp type/creator codes. Use GetFileInfo to check and SetFile to set the type/creator code.

Some New World ROMs (all 1 MiB in size) are extracted at:
https://forums.macrumors.com/thread...l-work-in-a-beige-power-macintosh-g3.2303689/
Search for "rom dump" in that first post for lists and links.
Code:
1999.7ff0 B&W G3
2001.7ff0 G4 Sawtooth
2001.7ff0 G4 Gigabit
2001.7ff0 iMac
2002.7ff0 G4 Mirrored Drive Doors
2003.7ff0 G4 FW 800
2004.7ff0 iBook G4
2004.8002 G5
2005.7ff0 PowerBook G4 DLSD
2005.7ff0 Mac Mini G4
2005.8002 G5 Quad

For PowerPC Old World ROMs, only the first 3 MiB of the 4 MiB files has a checksum. The last 1 MiB contains Open Firmware and some other stuff.

I don't know how to checksum New World ROMs. The New World ROM dumps include nvram so there's no point checksumming the entire file.

I haven't looked at what can be extracted from New World ROM firmware updaters. Do they include the entire ROM or just some parts?
 

dougg3

Well-known member
There are smaller sections inside the 1 MB flash of New World ROMs that have their own Adler-32 checksums. I dealt with this and explained it in my blog post about customizing the iMac startup chime.

In summary: the firmware updaters are forth scripts that contain new data to flash to several of these sections. For example, in the iMac Slot Loading, the section names in the update script are sbb, srec, sboot, ssys, stst, and snv. I would assume you could use the updaters to recreate a ROM image with every section supplied by the update file intact. I don't know if there are any other factory-programmed sections other than NVRAM that aren't touched by the update file though...
 

NJRoadfan

Well-known member
Mac-On-Linux doesn't require ROM dumps from New World machines either. Plus it can natively boot OS X. I think it has its own Open Firmware interpreter built-in, but it has been a long time since I've played with it...... 20 years...yeah its been awhile. Is Samuel Rydh still around?
 

Arbee

Well-known member
This is a fun subject, because QEMU doesn't use the boot ROM at all, and most people consider the "Mac OS ROM" file in the System folder to be the "New World ROM". Those files are not at all interesting if you're looking to emulate the machines from the ground up with the real OF, as both joevt and myself are. Fortunately someone who dumped a lot of boards for MAME had a Bondi iMac G3 and an iMac G4 and was able to desolder and dump the firmware (doing it from OF works equally well, but when you have a hot air rework station every SMT chip looks like fair game).

As with the 68K Macs, it turns out that at least some OF ROMs were shared across machines but it's early days on figuring out to what extent because of the nvram section. The iMac G3 (slot-load pre-May 2000) updater, the iBook updater, and the PowerMac G4 AGP Graphics updater all contain the same data, for instance.

I have a set of Python programs that build a 1 MB ROM from the early-format firmware update files (tray-load iMac G3s) and a C program that extracts the later ones. ROMs extracted from the updates don't contain the mini-nub (stub debugger) but that isn't used unless something goes really wrong with the machine.
 
Top