If you’ve been reading my blog for a while, you might remember back in 2012 when I changed the startup sound on my Power Mac G3 (Blue and White). That was a fun introduction to the Forth programming language. I had to reverse-engineer just enough of Apple’s firmware update script to understand what was going on.
Recently, Aidan Halpin, a reader of this site, asked me if I could do the same kind of startup sound customization on his iMac. This particular iMac is officially known as the “iMac (Slot Loading)” and has a model identifier of PowerMac2,1. As you can guess from the name, it has a slot-loading CD-ROM drive unlike the original iMac that had a laptop-style tray-loading drive. By the way, Aidan’s iMac is special because it has a PowerPC G4 processor soldered onto the logic board instead of the original G3.
He sent me Apple’s last firmware update for this model: iMac Firmware Update 4.1.9. I went to work looking at the update contents to see if I could figure out how to modify the chime the same way I did with my Power Mac G3. I thought it would be fun to take everyone along for a ride and show exactly what was involved in changing the sound. And of course, this post wouldn’t be complete without also sharing the code for the utility I created to inject the new chime into the firmware update file.
This is an insane amount of work for something that doesn’t really matter in the end. I love it.
I was wondering if I could change the Death Chime on my iMac, but looking into it I’ve discovered that since the iMac Apple has eliminated the Death Chime in favor of beep codes to indicate different errors.
That’s a shame, I guess. Not that I ever heard it due to an actual error, but still…
If I had the skills to feel confident in doing that without risking bricking my only mac and the machine I just finally received as a gift this year, I’d do this to switch the Power Mac G4 in my retro-hobby corner from the F sharp chord that Apple eventually settled on to the original C major chord from the Quadra 700.
Something about the F sharp chord just feels wrong, out of tune, or off key when I also have the C major version floating around my memory. I think it’s just because I find F sharp chords less pleasant to listen to than C major chords and my brain has strong opinion on “canonical versions”.
(Something I struggle with when trying to form an un-biased opinion on whether I like a new version of a song I’ve already heard another version of.)
I have the same concerns for lots of hardware I own.
In general it’s disappointing that hardware is brickable. While rare, it still shouldn’t be a permanent failure mode.. I was once impacted by a hard disk recall, where a firmware bug required new firmware to get flashed, but those affected by this bug had bricked drives that could only get flashed by mailing them to a tech.
We really need universal standards to do this. We actually have standards like like JTAG IEEE 1149.7 and it would be great if these were consistently adhered to in consumer products. But it’s not useful when manufacturers do something proprietary and you can’t count on being able to use it.
This is amazing to me mostly because I had read for literally decades that such a hack was impossible, or near-impossible. I’m thoroughly impressed