The Tale of My Retrocomputing Infrastructure

My Mastodon bio reads as follows:

Computer science teacher and former software developer. Free software, self-hosting and home automation enthusiast. Nerdy in various other ways.

Among the "Nerdy in various other ways", there is my somewhat recent hobby of retrocomputing.

Now, when I look at the kind of things that people share online in the retrocomputing community, I see a lot of seriously old stuff, like people playing around with a Commodore 64 or an early PC with an Intel 386 processor running Windows 3.1. As for me, my retrocomputing interest mostly stems from nostalgia, and since I am not that ancient, the technological era I am mostly nostalgic about is the late 90s and the early 2000s. Ergo, my retrocomputing hobby happens on a computer from circa 2003 that dual-boots Windows 98 and Windows XP. Windows 95 and 98 are the operating systems of my childhood, and Windows XP is the main operating system of my teenage years (I say "main" because I have also played with early versions of Ubuntu during that period). The computer I use is solidly from the Windows XP era, but from a time when Windows 98 drivers were still being provided for new hardware, so it is perfect for its use.

That machine was donated to me not quite 3 years ago. This is actually my second blog post mentioning that computer, after I Used Netscape Composer in 2024, which gained some traction on Hacker News at the time. I had originally only installed Windows 98 on it, until I decided to add Windows XP about 2 years later. For the anecdote, I had decided to install XP on a separate hard drive, to make sure it would not overwrite Windows 98's bootloader on its drive's MBR. It did anyway. Fortunately, I was able to fix it.

One of the convenient things about Windows 98 is that it's "not that old". This might be a laughable statement to people born in the 2000s who are young adults by now (like my students, most of which are younger than the first iPhone at this point). What I mean by that is that operating system is kind of from the beginning of our current "computer era". I didn't know that before diving into retrocomputing, but Windows 98 actually supports dual monitors and HD resolutions! My retro machine shares two LCD monitors with a modern-day computer (it turns out I lack nostalgia for big heavy clunky CRT monitors, although I do own a CRT television to use with retro consoles, strictly for Duck Hunt compatibility).

More importantly, Windows 98 is from a time where network cards and even broadband internet access were already around.

The Lego Island Subplot

Bear with me while I go on a bit of a tangent, as there is a specific story from a few weeks ago that inspired this blog post.

As a teacher, I enjoy time off during March break. Around the middle of March break this year, I decided to sit in front of my retro computer to play Lego Island, a memorable computer game from my childhood that I had already installed a while back. Unfortunately, when I tried to launch the game, I was presented with a blue screen instead. No big deal, I thought, until I tried to reboot Windows and it wouldn't. It would display a "Windows Protection Error" instead. I was able to boot in DOS mode and use the scanreg command to restore the registry, which fixed the issue. I tried all sorts of things to run the game, to no avail, and had to restore the registry several more times. What I hadn't realized, though, is that restoring the registry using scanreg creates a new restore point, and there are only 5 "slots" available. Therefore, old restore points get deleted. So eventually, I lost all good versions of the registry to go back to!

At that point, I decided to reinstall Windows 98 instead of trying to fix the issue. To avoid any Windows installation shenanigans, I first disconnected the power to the other hard drive (the one hosting Windows XP). For some reason, the Windows 98 installer was refusing to do the kind of "soft" reinstall that keeps most files and installed software intact. It was saying my hard drive had some kind of compression enabled? "No big deal, I will just format and then run the install again", I thought.

And there went the rest of my March break.

I had SO MANY issues setting everything up again. Mostly driver issues, the main of which was finding all the right drivers. I didn't remember it being that hard when I first installed Windows 98 on that machine 3 years ago. Since then, I added a Creative Sound Blaster card that I bought off eBay last summer because I needed a game port for a Gravis GamePad Pro that I had found at a thrift store. I don't remember having much trouble making that card work last summer, but this time, I couldn't seem, for the life of me, to find the correct driver. I tried installing the wrong driver a couple of times, breaking the system again. I ended up reinstalling more than once to make sure that I would leave the system in the cleanest state possible. It turns out that determinism might not have been fully present in the Windows 98 era: on multiple reinstalls, while installing the exact same software and drivers, I ran into different sets of problems. I eventually developed the habit of creating a registry restore point before attempting about anything, and immediately after any registry restore.

After all that, when I finally got to the point of trying to run Lego Island again, I ran into the same issue. It turns out the actual problem was trying to run the game from an optical drive labeled F:. The game works fine from D: and E:, but not beyond.

You know what? Maybe I'm not that nostalgic anymore.

Back to the Main Plotline

Anyway, when I first set up my retro computer, I needed to figure out a way to transfer files between it and my modern-age computers. Burning CDs was a feasible option, but inconvenient and wasteful. I obviously don't have any other computer with a floppy drive. I briefly considered USB drives, but making them work on Windows 98 seemed to be a hassle. Transferring files over the network seemed to be the most practical option. And as I was saying earlier, Windows 98 is from a time when network cards were already around, and it supports them well.

Perhaps unsurprisingly given how old the protocol is, FTP works perfectly fine between a modern-day server and Windows 98. Maybe not modernly secured FTP (I haven't tried), but an unencrypted FTP connection works flawlessly. That was not my first idea, though. I first decided to use HTTP to transfer files to my retro machine. I have a home server running Proxmox, so I spun up a Debian virtual machine on it for the purpose of running Apache. However, I found HTTP downloads to be a little slow on Windows 98, plus that solution didn't allow me to transfer files from that machine. So I ended up installing an FTP server on the same virtual machine and using the Apache server to transfer an antique version of FileZilla Client to the machine.

Sidenote: there is actually a native FTP client on Windows 98, which I could maybe have used from the start, but I had forgotten about it at the time.

Of course, before being able to use the network, Windows 98 needs the network card driver installed. For this, I did actually end up burning a CD, using the only other computer I own with a functioning optical drive, my good ole' Lenovo Thinkpad T430 that I bought refurbished back in 2016 (that laptop might not be too far from qualifying as a "vintage" device in its own right at this point, but mine has an SSD and runs a recent version of Debian). So, to summarize, my full solution involves using a CD as a "bootstrap" to install the network card driver, then accessing a web page on my LAN to download FileZilla, and finally using FileZilla for all later file transfers.

After the "Lego Island Subplot", I decided I didn't want to have to search for old drivers and vintage software whenever I would need to reinstall again. So I decided that I needed to keep everything neatly sorted into directories on my FTP server. Unfortunately, the virtual machine that hosts my FTP server has very little storage, so I ended up creating a shared directory named retro on my NAS (which is actually an external hard drive connected to openmediavault), which I mounted on the FTP server using NFS. Therefore, the FTP server now acts as an "insecure" bridge to that directory on the NAS. There are ways to connect directly to a modern NAS from Windows 98 (such as enabling SMBv1 on the NAS), but I would rather not attempt that.

In my retro directory, I created the following tree:

├── bootable_images
├── games
├── applications
├── drivers
│   ├── 98
│   └── XP
├── system_utilities
│   ├── 98
│   ├── 98andXP
│   └── XP
└── transfer

It is now much faster to set everything up after a reinstall.

Time for a Ghost Story! 👻

Before ghosting acquired its current meaning of abruptly cutting off communication with someone, there was Norton Ghost. And just like "Kleenex" is synonymous with all brands of facial tissues (at least in North America), and like my mom probably still uses the name "Kodak" for any standalone photo camera, the verb to ghost is still used by IT professionals even when using software that does not have Ghost in its name at all. In that context, ghosting refers to the act of copying the whole content of a storage device or partition, either by doing a direct clone of the file system to another device, or by creating a "disk image". These days, I "ghost" using Clonezilla (I also "google" using DuckDuckGo, but that might just be me).

So, after I decided that I did not want to have to search for all my vintage software after future reinstalls, I decided I would actually not have to reinstall Windows 98 on that machine again. To achieve this, I downloaded a bootable image of Clonezilla 3.1.3, which is old enough to have a 32-bit version, and burned it to a CD. By booting to this CD, I was able to create an image of my hard drive and upload it to a dedicated clonezilla directory on my NAS using SMB. This way, next time I have to reinstall Windows 98, I can just boot from that Clonezilla CD again and restore the image from my NAS. Sadly, I was not able to do the same with my Windows XP installation, as the imaging process stayed stuck on the same disk block for hours (which might indicate that the disk is dying). At least Windows XP should be less of a hassle to reinstall if it ever comes to that. And I will still be able to download everything I need from my neatly organized retro directory on my NAS!