Boot screens reverse engineered for most SGI systems

tyfighter

New member
Jul 12, 2020
5
10
3
I posted this on the irixnet forums as well, so just duplicating here.

I'm not sure why I did this, or if anyone would even be interested. I've been sitting on some of it for a couple of years, but here goes nothing.
SGI systems as you all know boot into a high-resolution graphics mode and display a boot screen image before proceeding into IRIX.
Most of these boot screens just have a logo for the system name, but I got to wondering how many difference screens there were.
Digging into the various PROM images, I was able to figure out how these screens were drawn. They're not really images in the boom PROMs, but rather data for drawing images.

EDIT: I put up the source code here: https://github.com/tyfighter/sgibootscreen

Also, if any of these are inaccurate, definitely let me know. *And* if you know of any others, I'd be happy to take a look into any other boot PROMs.

So, without further ado.

  1. MG1 (Grinch) - The MP to GIO Bus conversion board for the Crimson for adding in either Entry or Express Graphics. This bootscreen would be for Express, since it's 1280x1024 (because Entry can only do 1024x768).
    mg1.png
  2. VGX - The second generation high-end graphics option for the Power Series/Crimson systems. Are these colors really correct?
    vgx.png
  3. Reality Engine for Crimson - The IRIX 6.2 installation media flashes the Reality Engine textport PROM with this new image, that actually says *Reality Engine*. This didn't exist when Reality Engine was initially released. It was just the same bright magenta image without the logo.
    reality_engine.png
  4. Reality Engine for Onyx - Found in the IO4 PROM.
    reality_engine_new.png
  5. Indigo
    indigo.png
  6. Indy
    indy.png
  7. Indigo2
    indigo2.png
  8. O2
    o2.png
  9. Octane
    octane.png
  10. Infinite Reality - This is from the IP35 PROM for Onyx4, but I checked the IO6 PROM for Onyx2 and it appears to be the same.
    infinite_reality.png
Will continue in next post.
 
Last edited:

tyfighter

New member
Jul 12, 2020
5
10
3
  1. Infinite Performance
    infinite_performance.png
  2. Ultimate Vision
    ultimate_vision.png
  3. Fuel
    fuel.png
  4. Tezro
    tezro.png
The Tezro image doesn't look right to me. It's the only one where the logo lettering is "fuzzy", but all the other images look fine using the same drawing method. It's all coming from the same IP35 PROM too, so nothing is really different.

That's all I have for now.
 

nuclear

New member
Jun 3, 2020
10
10
3
nuclear.mutantstargoat.com
No need to make the code "less embarassing" first, just share it. Sharing the code should be the default.

These are nice pictures, but the interesting part is in how they're drawn. What exactly does your code do? Do you extract the data from the ROM images? What kind of data are there? These are the interesting questions, and they're best answered by posting your code instead of just pictures.
 
  • Like
Reactions: Northsky

tyfighter

New member
Jul 12, 2020
5
10
3
I've cleaned up the source, but I think you'll be far less impressed with what it is than you might think: https://github.com/tyfighter/sgibootscreen
I had to whip up a Makefile because I use Visual Studio, and I knew it would be requested.

The vast majority of the work was done with IDA Pro, and this source is just a means to draw the images.
 
  • Like
Reactions: Elf and foetz

foetz

Member
Feb 19, 2019
66
29
18
No need to make the code "less embarassing" first, just share it. Sharing the code should be the default.

These are nice pictures, but the interesting part is in how they're drawn. What exactly does your code do? Do you extract the data from the ROM images? What kind of data are there? These are the interesting questions, and they're best answered by posting your code instead of just pictures.
that's a bit demanding, eh? what's the default is decided by the creator and only them. every share, to whatever extend, is welcome :)
 

nuclear

New member
Jun 3, 2020
10
10
3
nuclear.mutantstargoat.com
The vast majority of the work was done with IDA Pro, and this source is just a means to draw the images.
It's still interesting because through the code for each one you can see how the ROM data were structured. It's sort of documentation through code.

I assume the ip??.c files contain the raw dump of the relevant part of each ROM?
 

tyfighter

New member
Jul 12, 2020
5
10
3
It's still interesting because through the code for each one you can see how the ROM data were structured. It's sort of documentation through code.

I assume the ip??.c files contain the raw dump of the relevant part of each ROM?
Yep, and it's spread out to a number of other places as well. The fonts were common to almost all the ROMs; even though most of them aren't used for drawing the boot screens, I just left them in because some one might like the old terminal fonts.
 

Elf

Storybook
Feb 4, 2019
297
68
28
I was making it say some other things but unfortunately all the non-essential characters seem to have been stripped out of the fonts, or at least they did not make it into the source code. Talk about optimization :p
 

HAL

Administrator
Oct 22, 2019
13
3
3
great to see all those boot-screens...the Indigo2 labeled bootscreen belongs to the POWER Indigo2 though
 

tyfighter

New member
Jul 12, 2020
5
10
3
Thanks HAL, and indeed you are right. I had assumed they were all the same, and had just looked in the IP26 PROM.
I found the logos in the the IP22 and IP28 PROMs and indeed they are different. I updated the code for the new
logos, and pushed the changes to github.

  1. Indigo 2
    indigo2.png
  2. Indigo2 R10K
    indigo2r10k.png
 
  • Like
Reactions: Elf

About us

  • Silicon Graphics User Group (SGUG) is a community for users, developers, and admirers of Silicon Graphics (SGI) products. We aim to be a friendly hobbyist community for discussing all aspects of SGIs, including use, software development, the IRIX Operating System, and troubleshooting, as well as facilitating hardware exchange.

User Menu