• 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.

Easter Egg Image Centris/Quadra 610/650

benibb

Member
Hello Dear Forum

I reverse engineered how the IIci easter egg image is stored in ROM and created a Python script that extracts the image from ROM files.

I ran it over a bunch of Macintosh ROMs to see if there are other, yet unknown, easter egg images.

Apart from the already known easter egg image "Regin of Terror" on the Quadra 700/900/950, I found an image on the Centris and Quadra 610/650. The image unfortunatley is a bit lame, as it only contains text, but as far as I can tell it is not online documented and I guess threfore a "discovery".

I think the easter is triggered by holding down ESC + l + f + w on boot.
(Similar as the other Quadra easter eggs that are triggered by holding down ESC + s + e + t on boot.)

Now I wanted to ask the forum members that own a Quadra/Centris 610/650 to try out the easter egg to confirm my assumptions.


Thanks for your help!

PS: I want to do a write up later on of the process I went through with reverse engineering.
 

tecneeq

Well-known member
Now I wanted to ask the forum members that own a Quadra/Centris 610/650 to try out the easter egg to confirm my assumptions.
Pulled out a Quadra 650, tried ESC + l + f + w on boot, nothing happens except that keyboard and mouse don't register in MacOS. Reboot doesn't change it. Once i zap the PRAM with Command-Option-P-R it's working again.
Same with ESC + s + e + t.

How confident are we that ESC + s + e + t should work on a Q650?
 

slomacuser

Well-known member
Yes the Quadra 950, 900 and 700 have different boot beep and a picture of "reign of terror" in ROM

Quadra.jpg

With this control panel below you can change the boot beep and also clicking on the v1.3 it opens "regin of terror" picture thats hidden in ROM. Never tried on Q650 tho ...

 

benibb

Member
I checked the code again and i still think the key codes that are checked are ESC + L + F + W... Have you maybe tried I insted of L...
Or there is a check upfront I did not took into account.

Another test you could try is to start the debugger (use the interrupt switch) and jump to the address (0x4084F19C) that draws the the easter egg picture.
This is done by entering G for "Go" a space and the address in hex:
"G 4084F19C"

As the location of the easter egg routine is the same on Centris and Quadra ROMs, this should work on both systems.

If this does not work, we can check if the bytes at the draw routine are the same. This can also be done with the debugger with the command DM (dump memory) a space and the address:
"DM 4084F19C"

The bytes I have in the Quadra ROM there are somethiong like this:
4084F19C 48 E7 18 3A 9E FC 00 40 2C 4F 24 55 61 00 01 0E
4084F1AC 48 6A FF 8C A8 A2 61 00 00 CC 67 60 2F 08 22 50
4084F1BC 2F 29 00 06 2F 29 00 02 22 4F 2F 08 20 2A FF 90
4084F1CC 2F 09 90 A9 00 04 E2 48 48 40 E2 48 48 40 D1 99

BTW, here are the md5 checksums of the files I analyzed:
Centris ROM 610/650: 94017d3dd800f1ac5aed2e10462fcd45
Quadra ROM 610/650: 69489153dde910a69d5ae6de5dd65323

Many thanks for the help!
 

tecneeq

Well-known member
"G 4084F19C"

PXL_20221025_185222658.jpg
PXL_20221025_185228931.jpg
Works.

"DM 4084F19C"

The bytes I have in the Quadra ROM there are somethiong like this:
4084F19C 48 E7 18 3A 9E FC 00 40 2C 4F 24 55 61 00 01 0E
4084F1AC 48 6A FF 8C A8 A2 61 00 00 CC 67 60 2F 08 22 50
4084F1BC 2F 29 00 06 2F 29 00 02 22 4F 2F 08 20 2A FF 90
4084F1CC 2F 09 90 A9 00 04 E2 48 48 40 E2 48 48 40 D1 99
PXL_20221025_185925512.jpg
Matches.

I wonder why the keyboard shortcut doesn't work.:unsure:
 

benibb

Member
:D great!!!

the draw routine seems to be fine...

maybe the issue is, that there is a check upfont the check routine I missed...

or we could also quickly check the bytes of the check routine, to see if it matches the one I looked at.
could you dump it for me?

DM 4084f154

mine looks like this

4084F154 08 38 00 05 01 7A 67 30 70 02 41 FA 00 30 72 3C
4084F164 D2 B8 01 6A B2 B8 01 6A 6D 1E 43 F8 01 74 D2 E8
4084F174 00 02 34 10 05 11 67 EC 08 38 00 05 01 7A 67 08
4084F184 4A 98 51 C8 FF E0 4E 75 70 00 4E 75 00 05 00 04
4084F194 00 03 00 00 00 05 00 01 48 E7 18 3A 9E FC 00 40
 

Phipli

Well-known member
Just to provide a second data point, Esc+l+f+w caused my 650 to hang during boot and didn't show an easteregg.

Is it like the IIci one and date specific, or did a late change in the ROM break it?
 

Phipli

Well-known member
Update seconds later!

It works! So the issue was I was running a PPC upgrade, it worka fine if I boot from the 040.

Excellent work @benibb

IMG_20221025_211010.jpg
 
Last edited:

benibb

Member
nice!!! thank you all so much for verifying this so quickly!

i'll finish my write-up and will add a link in this thread.
 

benibb

Member
Hi Everyone, I got the write-up together, you can check it out on my new page: https://nerdprojects.ch/projects/iici-easteregg-hunt/

@tecneeq Did you get the easter egg going? Or do you have maybe also a PPC upgrade installed? I though another source of error could be the keycodes, that might be diffrent for german keyboards. But I checked my keyboard, which has a swiss german layout and it seems to have the correct keycodes for ESC + l + f + w.

Here are all the images I could extract as PNG and the original data as PICT.
iici.png
quadra_700-950.png
centris_quadra_650.png

You find the scripts on my github: https://github.com/nerdprojects/macintosh-rom-easteregg-hunt

Thanks again for your help, veryfing this!
 

Attachments

  • easteregg-images.zip
    123.4 KB · Views: 2

cheesestraws

Well-known member
Hi Everyone, I got the write-up together, you can check it out on my new page: https://nerdprojects.ch/projects/iici-easteregg-hunt/

(parenthetically, following from your writeup's comment about the label TODEEPSHIT: the "other" name for the system error handler is the Deep Shit Handler, which is the reason why the resource that stores the information for the happy mac and other boxes that use the system error handler is DSAT, which IIRC stands for Deep Shit Alert Table).

(also, be careful equating A-traps with syscalls; they're very similar but not entirely the same, and it can be confusing to think of them as the same when you're running under stuff like A/UX which also has UNIX-style syscalls.)
 

tecneeq

Well-known member
@tecneeq Did you get the easter egg going? Or do you have maybe also a PPC upgrade installed? I though another source of error could be the keycodes, that might be diffrent for german keyboards. But I checked my keyboard, which has a swiss german layout and it seems to have the correct keycodes for ESC + l + f + w.
I did not, and i'm not sure what i do wrong.
My Quadra 650 has no upgrades, it's a plain old 68040.
I have 136MB of RAM, and it takes a lot of time to check it at boot time. Pressing ESC + l + f + w causes the keyboard to become unresponsive. I have to unplug it (ADB is hotplugable, right? RIGHT?) to get control back.
During a warm reboot the keyboard stays responsive, but no easteregg either.
I'm using a M0487, Apple Keyboard II, German layout. I think i might have something different to test in storage.

Open for suggestions.:cry:
 

Phipli

Well-known member
ADB is hotplugable, right? RIGHT?
I assume form the caps you already know, but no, it isn't. It isn't instant death, but there is a risk. Plus the mouse speed drops to the default :)

Mine has 136 MB too. Absolute pain!

Mind you, it was worse when I had 264MB in it! But it wouldn't overclock with my big simms in it.
 
Top