With all the talk of a possible ‘rocky’ earth like planet making the news, I thought it would be fun to seek out a really ancient (ha!) OpenGL program that did a basic simulation of our solar system. Â I am of course talking about ssytem.
Back in the late 90’s I have to admit that this was pretty incredible to look at! Â Although it was using OpenGL in software only, and to be honest the best and more stable way to use ssystem was on Windows of all things.
Microsoft had a deal with SGI around the 1993 timeline, and after the release of Windows NT 3.1 they were able to work out a deal to bring Windows NT to the SGI MIPS computers platform in exchange from OpenGL being made available on Windows NT. Â SGI couldn’t see a way to monetize NT on their hardware and the port never actually shipped, evidence of it however is present in the leaked Windows NT 4.0 source code. Â However OpenGL would prove very import for Microsoft as workstation style graphics could now run on ‘prosumer’ grade OS Windows NT 3.5, and eventually there was even a runtime for Windows 95!
All the old websites, and archives of ssystem have been wiped out, however I did find a copy of the source code for version 1.6 on a HPUX site of all places.
With a filename tracked down, I was able to locate in archvie.org a partial backup of the main site here:Â http://www1.las.es/~amil/ssystem/english.html
So I thought I could start there. Â Ssystem needs the GLUT toolkit and I found a ‘pre-configured’ version 3.7 that Microsoft Visual C++ 6.0 can build on the command line here. Naturally with all the textures, it does rely on the IJG JPEG library (libjpeg) and I used version 6b as ssystem itself dates from 1999.
There was a bit of work to be done with the source code, as I had to massage it to compile with Visual C++, lots of missing headers, and there were some collisions in the lex for parsing the config file, but they were trivial to clean up. Â After a bit of going back and forth with a seemingly defective pre-built version of GLUT, re-building it myself got it to link a working executable:
Of course in this day & age, any machine these days has hardware OpenGL acceleration so it is pretty trivial to run this program.
The artifacts in the picture were common at the time, and it’s how I remember it all those years ago so I’m not to worried about it.
I tried to compile with Visual C++ 4.0 however when trying to link I got this error:
Microsoft (R) 32-Bit Incremental Linker Version 3.00.5270
Copyright (C) Microsoft Corp 1992-1995. All rights reserved.
init.obj : error LNK2001: unresolved external symbol _glBindTexture
ssystem.obj : error LNK2001: unresolved external symbol _glBindTexture
stars.obj : error LNK2001: unresolved external symbol _glBindTexture
init.obj : error LNK2001: unresolved external symbol _glGenTextures
astrolib.exe : fatal error LNK1120: 2 unresolved externals
NMAKE : fatal error U1077: ‘link’ : return code ‘0x19’
I’m not sure why, as I re-compiled with Visual C++ 6.0 and I get a working executable. Â More bizarre if I try to link the objects that were compiled with Visual C++ 4.0 with Visual C++ 6.0 it also fails in the same way.
I’ve placed in everything I could find into this archive:Â ssystem-1.6.7zÂ including a pre-compiled version, and the high resolution images. Â Along the way I also did find a backup of the siteÂ http://www.wam.umd.edu/~kamelkev/SsystemÂ which actually has a much smaller download of ssystem 1.6 asÂ ssystem-1.6.zipÂ You may need to play with ssystem.conf to get a more respectable display. Â I have also tweeked it to work find on my machine, using the highest values I could get away with, without running over the 2GB per process limit on 32bit processes.
Let’s also not forget the SETI crazy of the 1990’s.
Hey, I’m not able to download http://vpsland.superglobalmegacorp.com/install/WindowsNT4.0-i386/games/ssystem-1.6.7z
It needs a login.
hit cancel and it’ll give you an error page. the username is user, but the password changes. right now it’s “fattruck11” but it will change.
Sorry but it’s to stop automated systems from deciding that my NetHack for Windows CE is a virus, and getting me blacklisted.
It still builds and runs on modern linux and gcc, which is kinda amazing! I started with Makefile.gcc and just had to hack it to link -lGL and -lGLU instead -f -lMesaGL and -lMesaGLU and to use a modern -march instead of -m486.
..instead of -lMesa&c.
wow that’s cool! I’ve been hunting for higher resolution textures, and bumping up the detail levels… It really looks amazing!
I guess I could try modern GCC on Windows, or even a modern version of Visual C++, but I kind of like using old crap on modern machines.
DJGPP port with MesaFX? Didn’t look at the source so not sure if that’s a truly viable option, but would be interesting.
This was one of the first OpenGL programs I remember being able to run on Linux & Windows in the late 90’s…. so I would imagine it should be possible. I do recall that I ran it with Mesa back when it was ONLY software, and getting a slide show on a 486……