Jump to content


Photo

Internal floppy drive on iMac G3 - Firmware downgrade


  • Please log in to reply
87 replies to this topic

#1 max1zzz

max1zzz
  • 68000
  • LocationSurrey, England

Posted 28 May 2013 - 07:05 PM

Hey, I was working on a project involving putting a iMac G3 Rev.A board in a xbox 360 case and someone happend to tell me that the iMac G3 Rev A / B / C acutualy had a port on the board for a internal floppy drive, a bit of googleing brought up this: viewtopic.php?f=29&t=17920
So it seems it is perfectly possible, but is disabled in newer firmware versions.

So, is there any way to downgrade the firmware? (besides just desoldering the flash chip and re writeing it, which although i have the kit to remove the chip, i don't have anything that could reprogram it)

I would love to be able to do this, just to be able to load floppies into something that looks like a xbox 360 ;)

thanks in advance
-max1zz
68K: Plus, LC, LCII, IIci, Perf 450, Perf 630, Duo 230
PPC: Perf 6200, PM 8600, PB 1400, G3 DT x2, G3 B/W, iBook G3 500, iMac G3 SL, G4 Sawtooth, G4 QS, iMac G4 700, PB G4, PM G5, Xserve G4 Trayload
Intel: Early '08 MBP

#2 olePigeon

olePigeon
  • 68LC040

Posted 28 May 2013 - 07:09 PM

dougg3 wrote a program to flash his B&W G3, maybe it can be used to flash your iMac to an earlier ROM?

#3 max1zzz

max1zzz
  • 68000
  • LocationSurrey, England

Posted 28 May 2013 - 07:18 PM

oh, now thats intresting, do you happen to have a link to it?
68K: Plus, LC, LCII, IIci, Perf 450, Perf 630, Duo 230
PPC: Perf 6200, PM 8600, PB 1400, G3 DT x2, G3 B/W, iBook G3 500, iMac G3 SL, G4 Sawtooth, G4 QS, iMac G4 700, PB G4, PM G5, Xserve G4 Trayload
Intel: Early '08 MBP

#4 olePigeon

olePigeon
  • 68LC040

Posted 29 May 2013 - 03:26 PM

Nope. I'd suggest PMing dougg3.

#5 max1zzz

max1zzz
  • 68000
  • LocationSurrey, England

Posted 29 May 2013 - 04:07 PM

ok, will do that then

Then all i need to do is actually hunt down the firmware, hopefully there are some old updaters out there somewhare
68K: Plus, LC, LCII, IIci, Perf 450, Perf 630, Duo 230
PPC: Perf 6200, PM 8600, PB 1400, G3 DT x2, G3 B/W, iBook G3 500, iMac G3 SL, G4 Sawtooth, G4 QS, iMac G4 700, PB G4, PM G5, Xserve G4 Trayload
Intel: Early '08 MBP

#6 dougg3

dougg3
  • 6502

Posted 30 May 2013 - 02:05 AM

Just thought I'd post what I sent to max1zzz in PM so it'll be around for future reference...

I didn't actually write a new program, I just modified the B&W G3's firmware updater. As long as we can find an older iMac firmware updater for the same model (which includes a firmware version before the floppy was disabled), it should be possible. I had to do a similar thing to the blue and white G3 firmware updater. If it's anything like the B&W G3 updater, it has a "whitelist" of known firmware versions it's allowed to update. I think if we find out the current firmware version, we can add it to the whitelist and then the older firmware updater will think it is allowed to "update" the newer firmware, thus replacing it with the older version.

It's worth a shot!

#7 markyb86

markyb86
  • 68000
  • LocationAurora, OH, USA

Posted 30 May 2013 - 03:01 AM

Took a little digging (an hour or so) but I seem to have found the 1.0 firmware over at this site
http://www.themacint...htplustoo.shtml

Made sure it was an active link, and at this present moment it still downloads. Good luck guys.

#8 dougg3

dougg3
  • 6502

Posted 30 May 2013 - 05:15 AM

Nice find, markyb86! That firmware update is in the exact same format as my Blue and White G3's firmware updater. I'm trying to go back in time to see if I can figure out which firmware version initially added the floppy incompatibility. Here's a MacFixit article dated April 14, 1999 that says the "iMac Firmware Update" broke the floppy compatibility, but they don't mention a version:

after installing the iMac Firmware Update, these drives will no longer work. Apparently, the update removes the needed floppy disk drivers.


Then I found a couple of more articles:

Apple posts iMac Firmware Update 1.0 and iMac Update 1.1 (dated December 18, 1998)
Apple Posts iMac Firmware Update 1.2 (dated February 1, 1999)

So the discovery of the floppy breaking was definitely reported after version 1.2. We just have to hope that the problem also didn't exist in firmware update 1.0 :-) Otherwise the only fix would be to find an original iMac that never had any firmware updates installed and dump its firmware, then put it into a firmware update file.

Hopefully downgrading doesn't have any adverse effects--there's always that risk! I'll look at the updater and see if I can force it to allow installing over newer firmware (I'd assume max1zzz's computer currently has Firmware Update 1.2 installed?)

There are three known firmware versions that iMac Firmware Update 1.0 from markyb86's link knows about:

Apple iMac Open Firmware 3.0.f8 built on 08/06/98 at 12:04:16
Apple iMac Open Firmware 3.0.b2 built on 09/17/98 at 15:19:23
Apple iMac Open Firmware 3.0.f3 built on 12/02/98 at 10:25:41

I'm not sure if 3.0.f3 is the version it installs or not...I'd have to do more checking later.

#9 max1zzz

max1zzz
  • 68000
  • LocationSurrey, England

Posted 30 May 2013 - 10:33 AM

so i guess i don't need to send you the one i have now? (it's firmware updater 1.0 and seems to have the 3.0.f3 firmware)

And i'm pretty sure it should be working in firmware 1.0, since it was reported working in a feb 1999 copy of macaddict, and as far as i am aware all the firmwares, except 1.2 are dated from before then, so hopefully should work :)

And yes, my imac is on version 1.2 of the firmware
68K: Plus, LC, LCII, IIci, Perf 450, Perf 630, Duo 230
PPC: Perf 6200, PM 8600, PB 1400, G3 DT x2, G3 B/W, iBook G3 500, iMac G3 SL, G4 Sawtooth, G4 QS, iMac G4 700, PB G4, PM G5, Xserve G4 Trayload
Intel: Early '08 MBP

#10 dougg3

dougg3
  • 6502

Posted 30 May 2013 - 02:15 PM

OK, all we need to do take the 1.2 firmware's version string and put it into the 1.0 updater's data fork replacing one of the strings of the firmwares it knows it can update. Then you can run the 1.0 updater and hopefully that will trick it into thinking it can install the 1.0 firmware.

I will work on it later tonight and get a patched updater file to you...

#11 max1zzz

max1zzz
  • 68000
  • LocationSurrey, England

Posted 30 May 2013 - 02:34 PM

Awesome, thanks again mate ;)

just prepping the imac, got the socket soldered in and am gonna give it a clean install of 8.5 (since it is currently is on 9.2.2, which afaik won't run of firmware revision 1.0, and anyway, it is in German and i can't understand any of it....)

gonna be fun to see if this works ;)
68K: Plus, LC, LCII, IIci, Perf 450, Perf 630, Duo 230
PPC: Perf 6200, PM 8600, PB 1400, G3 DT x2, G3 B/W, iBook G3 500, iMac G3 SL, G4 Sawtooth, G4 QS, iMac G4 700, PB G4, PM G5, Xserve G4 Trayload
Intel: Early '08 MBP

#12 olePigeon

olePigeon
  • 68LC040

Posted 30 May 2013 - 04:05 PM

Let us know how it works out. :)

#13 max1zzz

max1zzz
  • 68000
  • LocationSurrey, England

Posted 30 May 2013 - 10:51 PM

hmm don't know if you have had a chance to look at modifying the updater yet dougg3, but i decided to have a dive into the updaters with resorcerer, more specifically looking at the data fork (not expecting to find anything, as i have never done this kind of modifiaction myself...), and near the end there is what seems to be a list of firmwares:
Apple iMac Open Firmware 3.0.f8 built on 08/06/98 at 12:04:16 Apple iMac Open Firmware 3.0.b2 built on 09/17/98 at 15:19:23Apple iMac Open Firmware 3.0.f3 built on 12/02/98 at 10:25:41 so i took a look in the 1.2 updater and sure enough near the end:
Apple iMac Open Firmware 3.0.f8 built on 08/06/98 at 12:04:16 Apple iMac Open Firmware 3.0.b2 built on 09/17/98 at 15:19:23 Apple iMac Open Firmware 3.0.f3 built on 12/02/98 at 10:25:41 Apple iMac Open Firmware 3.0.f9 built on 02/03/99 at 16:45:21 Apple iMac Open Firmware 3.0.f10 built on 03/05/99 at 21:14:19 Apple iMac Open Firmware 3.0.f1 built on 04/01/99 at 16:47:10
so presumabley that is the firmware whitelists? the thing that is throwing me is that firmware updater 1.0 has firmware 3.0.f3 in that list, which is firmware update 1.0?

or i could be compleatley wrong, as i say, i am no expert
68K: Plus, LC, LCII, IIci, Perf 450, Perf 630, Duo 230
PPC: Perf 6200, PM 8600, PB 1400, G3 DT x2, G3 B/W, iBook G3 500, iMac G3 SL, G4 Sawtooth, G4 QS, iMac G4 700, PB G4, PM G5, Xserve G4 Trayload
Intel: Early '08 MBP

#14 dougg3

dougg3
  • 6502

Posted 31 May 2013 - 12:31 AM

I'm just now ready to take a look at it...yep, that's the "whitelist" I'm talking about.

I'm *thinking* that the very last entry matches the firmware version string that it actually installs, but I'm not sure. Is your currently-installed firmware version 3.0.f1? I don't know if there's an easy way to find it, but I think if you run CopyROMs it will dump that firmware into a 4 MB file (four repetitions of the 1 MB firmware) and the version will be a string in it somewhere. It might actually be a good idea to dump your current firmware anyway, just so in case something goes bad we might be able to reflash your chip with the entire contents of what used to be on it (I have a Willem programmer, we could probably figure it out).

Since the original firmware update 1.0 came out in December 18, 1998, and all the rest of the firmwares after 3.0.f3 in the 1.2 list are dated after that date, I'm pretty sure the very last entry in the 1.0 whitelist is the version that it actually installs (and same with the 1.2 whitelist) -- so you probably have version 3.0.f1 currently installed, since that's the latest version in the 1.2 list.

What I would do is replace the very first entry in the 1.0 whitelist ("Apple iMac Open Firmware 3.0.f8 built on 08/06/98 at 12:04:16") with the very last entry in the 1.2 whitelist ("Apple iMac Open Firmware 3.0.f1 built on 04/01/99 at 16:47:10"). Be sure to leave the NULL byte in place that's directly after it, and don't change the size of the data fork at all. Just replace existing characters.

I can whip it up and send you the file in a sec...this is getting exciting! (P.S. it's weird that 3.0.f1 is actually newer than 3.0.f10...I wonder if they meant to call it 3.0.f11...but it's a good thing they did it that way because it would have lengthened the string and made it more difficult to patch)

Edit: here's the link to the patched updater program:
https://www.dropbox.... ... ngrade.cpt

Extract it (it's a Compact Pro archive) and it'll give you a new iMac Firmware Updater program. Copy the contents of the 1.0 disk image to a folder on your hard drive, but replace the updater application with the one I just bundled, and run it. It should allow it to install the 1.0 firmware over the 1.2 firmware...

#15 max1zzz

max1zzz
  • 68000
  • LocationSurrey, England

Posted 31 May 2013 - 12:54 AM

I'm pretty sure what I have installed is 3.0.f2, I will cheack that tommrow morning (as I have packed up the iMac for the night, it's in multiple prices atm)

Anyhow, I will grab copyroms tommrow and dump the firmware and see what's on it, if it is f2 rather than f1 it's a simple enough patch

I'm pretty excited about this aswell, gonna be pretty cool if this works, just sucks I will have to wait till the morning to find out....
68K: Plus, LC, LCII, IIci, Perf 450, Perf 630, Duo 230
PPC: Perf 6200, PM 8600, PB 1400, G3 DT x2, G3 B/W, iBook G3 500, iMac G3 SL, G4 Sawtooth, G4 QS, iMac G4 700, PB G4, PM G5, Xserve G4 Trayload
Intel: Early '08 MBP

#16 dougg3

dougg3
  • 6502

Posted 31 May 2013 - 01:03 AM

Good luck! I'll be excited to hear how it goes. Sorry about not being able to help you until now, it's just that I work during the day :-)

You'll probably have to change the date string to match too. I think it compares against the entire string, so hopefully CopyROMs will let you get the string out of it. Alternatively, I can decode the update file from 1.2 and see what version it actually provides. I might do that...

Edit: Actually, if you open up the "iMac Firmware 3.0" file with a text editor, you can kind of see what firmware it installs, I think:

1.2 says "BuildVersion=0x000013F2" -- matches up with 3.0f2?

1.0 says "BuildVersion=0x000012F3" -- matches up with 3.0f3?

I'm thinking maybe the 1.0 update included its own firmware version in the whitelist, but the 1.2 update didn't...I'd be curious if an iMac with 1.0 firmware allows you to rerun the 1.0 updater over and over again. I bet it does.

#17 dougg3

dougg3
  • 6502

Posted 31 May 2013 - 02:08 AM

One last update:

I decoded the firmware included with 1.2 and you're right, the 1.2 firmware is 3.0f2. Unfortunately the firmware appears to be compressed even after decoding it, so I'm having a hard time extracting the full date. It's something like "04/23/99 at 14:31:0something". The last digit might be 3, but I'm not sure. I think you can see the full string if you boot into Open Firmware. Otherwise, just bruteforce the last digit 0-9 ;-)

#18 max1zzz

max1zzz
  • 68000
  • LocationSurrey, England

Posted 31 May 2013 - 09:40 AM

the 1.2 updated dose indeede seem to be f2, take at the "fmwr" resorce in the 1.2 updater, this is what you get:
Apple iMac Open Firmware 3.0.f2 built on 04/23/99 at 14:31:03 oddly the 1.0 updater dosen't have this resorce

anyway, i'm gonna dl copyroms and see if i can read the firmware off the imac to get a confirmation of the firmware version
68K: Plus, LC, LCII, IIci, Perf 450, Perf 630, Duo 230
PPC: Perf 6200, PM 8600, PB 1400, G3 DT x2, G3 B/W, iBook G3 500, iMac G3 SL, G4 Sawtooth, G4 QS, iMac G4 700, PB G4, PM G5, Xserve G4 Trayload
Intel: Early '08 MBP

#19 max1zzz

max1zzz
  • 68000
  • LocationSurrey, England

Posted 31 May 2013 - 10:48 AM

well, i have good news and bad,
the good news is that after modifing the updater with the f2 string it ran fine
but, it reboots, i don't get the progress bar and it boots back up and tells me there was a problem and the firmware was not updated.
68K: Plus, LC, LCII, IIci, Perf 450, Perf 630, Duo 230
PPC: Perf 6200, PM 8600, PB 1400, G3 DT x2, G3 B/W, iBook G3 500, iMac G3 SL, G4 Sawtooth, G4 QS, iMac G4 700, PB G4, PM G5, Xserve G4 Trayload
Intel: Early '08 MBP

#20 max1zzz

max1zzz
  • 68000
  • LocationSurrey, England

Posted 31 May 2013 - 11:41 AM

sucess! imac g3 reading a 800kb floppy disc!

the odd thing, i don't think it downgraded the firmware....
gonna grab a second cpu card and see what happens.....

EDIT:
now, you know what. i think we just wasted allot of time....
new cpu card, boot into 8.1, floppy drive works
boot into 9.2.2, it dosen't....

firmware on the card is 1.2

however, i did forget to remove the updater from startup items, so it could have done something to the firmware on the card, but both report 3.0.f2....
68K: Plus, LC, LCII, IIci, Perf 450, Perf 630, Duo 230
PPC: Perf 6200, PM 8600, PB 1400, G3 DT x2, G3 B/W, iBook G3 500, iMac G3 SL, G4 Sawtooth, G4 QS, iMac G4 700, PB G4, PM G5, Xserve G4 Trayload
Intel: Early '08 MBP




0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users