Thanks jt! Haha, no kidding, it's a mess!
I've streamlined the whole process now though -- I made a utility in C++ that automatically does all the encoding/decoding/checksumming. You give it the G3 Firmware file from Apple's update, a raw 16-bit big-endian 44.1 kHz sound, and it does the rest. I ended up writing code for Adler-32, Ascii85, and Apple's IMA 4:1 audio compression. Whew! So now I just run that utility on a computer, copy the generated firmware file over to the G3, use BBEdit Lite to put the file's contents into the data fork of the old G3 Firmware file (it has a resource fork too and I think it probably needs to keep it), and run the firmware updater. Works fine. I just tested it with the Quadra 700 hidden secret chime and it works great!
I think my phone's microphone doesn't do a great job of recording the sound. There's a small chance my IMA 4:1 encoding isn't 100% correct, but I'm pretty sure it's fine...
I'm running into a problem where sometimes the G3 just shuts itself off randomly and sometimes it doesn't want to boot at all--no chime at all and the thing just sits there. I think it's heat-related because yesterday it didn't act up at all, and today the weather got a lot hotter and suddenly it was acting up. I added some thermal paste between the heatsink and CPU (there was already a pad on it though) and hopefully that'll help out, but it's making me nervous because I really don't want it to shut itself off in the middle of a firmware update. I'm opening the case and blowing a fan on the CPU during my firmware updates now as a precaution. Don't worry though -- it's not related to the firmware hacking. It's some kind of hardware issue.
I've streamlined the whole process now though -- I made a utility in C++ that automatically does all the encoding/decoding/checksumming. You give it the G3 Firmware file from Apple's update, a raw 16-bit big-endian 44.1 kHz sound, and it does the rest. I ended up writing code for Adler-32, Ascii85, and Apple's IMA 4:1 audio compression. Whew! So now I just run that utility on a computer, copy the generated firmware file over to the G3, use BBEdit Lite to put the file's contents into the data fork of the old G3 Firmware file (it has a resource fork too and I think it probably needs to keep it), and run the firmware updater. Works fine. I just tested it with the Quadra 700 hidden secret chime and it works great!
I think my phone's microphone doesn't do a great job of recording the sound. There's a small chance my IMA 4:1 encoding isn't 100% correct, but I'm pretty sure it's fine...
I'm running into a problem where sometimes the G3 just shuts itself off randomly and sometimes it doesn't want to boot at all--no chime at all and the thing just sits there. I think it's heat-related because yesterday it didn't act up at all, and today the weather got a lot hotter and suddenly it was acting up. I added some thermal paste between the heatsink and CPU (there was already a pad on it though) and hopefully that'll help out, but it's making me nervous because I really don't want it to shut itself off in the middle of a firmware update. I'm opening the case and blowing a fan on the CPU during my firmware updates now as a precaution. Don't worry though -- it's not related to the firmware hacking. It's some kind of hardware issue.