Reliving the 90s through Video Games

A few days ago 3D Realms (used to be Apogee Software) released a bundle of most of their old DOS games in a form that runs on modern Windows. I grew up playing the shareware versions of Commander Keen, Monster Bash, and a couple others they made so I bought the anthology figuring it would be fun to actually beat them finally, even though they’re only advertising Linux-compatibility sometime in the future.

The first thing I discovered when I launched one of the games was that Windows 7 compatibility is based on running the games through DOSBox. That’s not surprising and I’ve actually resurrected old shareware through DOSBox before, but it made me realize how easy it would be to set up the emulator to run on Linux myself. I probably spent more time Friday night cleaning up their installed files (the DOSBox runtime was included in every single game directory) and rewriting the config files and launch scripts to run on Linux than I did actually playing games.

First item of note: Dosbox can be extracted to be in just the root directory of the games anthology to save a couple hundred megabytes of disk space. Instead of:
Anthology
    Commander Keen - Galaxy
        Dosbox
    Commander Keen - Vorticons
        Dosbox
    ...

flatten the structure to:
Anthology
    Dosbox
    Commander Keen - Galaxy
    Commander Keen - Vorticons
    ...

For that move to work two things need to be updated: the .conf files used to initialize DOSBox and the .bat launch scripts.

Old launch script:
@echo off
cd "Commander Keen - Vorticons\dosbox"
start dosbox -conf "..\KEEN VORTICONS.conf" -noconsole -c
exit

That won’t work now because that’s not where DOSBox is, and changing into the directory of DOSBox doesn’t make sense if the installation isn’t associated with a specific game. My rewritten script is:
@echo off
start Dosbox\dosbox -conf "Commander Keen - Vorticons\KEEN VORTICONS.conf" -noconsole -c
exit

I called the dosbox executable directly by relative path instead of going to its directory, then I updated the relative path to the .conf file.

The .conf file is rather large, so I’ll only include the portion I changed (which was near the bottom). Old:
[autoexec]
# Lines in this section will be run at startup.
# You can put your MOUNT lines here.

@echo off
Mount C ".."
C:
cls
...

This is code that executes after DOSBox is launched. In this case it’s setting the C:\ drive to be “..” then running a menu for launching the different chapters of the game. The “..” path won’t work because we’re no longer changing directory to an embedded DOSBox folder, so to be consistent with the new launch script change it to:
[autoexec]
# Lines in this section will be run at startup.
# You can put your MOUNT lines here.

@echo off
Mount C "Commander Keen - Vorticons"
C:
cls
...

You can also change general DOSBox configuration details in the conf file, such as setting it to default to not fullscreen.

The other effect of changing the .conf files is that if you have DOSBox installed the games can now be run directly from the Anthology folder with a command like:
dosbox -conf "Commander Keen - Vorticons/KEEN VORTICONS.conf" -noconsole -c
Having that command work was actually the inspiration to modify the .conf scripts because I deleted all the dosbox folders before copying all the games to my Linux machine. It was only later I realized that I could update the bat scripts to support the new conf, which means that if I boot my laptop into Windows I can run the games from the same place and have all my save data available.

For convenience I’ve made bash scripts to launch the games:
#!/bin/sh
cd `dirname $0`
dosbox -conf "Commander Keen - Vorticons/KEEN VORTICONS.conf" -noconsole -c

To the Mün and back

I got into Kerbal Space Program last weekend. I’ve known of it for a good while, but I wasn’t doing anything else so I grabbed the demo. A few hours later (after making it to the Mun having only done the rocket building and flying tutorials) I bought the full game and built some absurdly large rockets (there are some bigger tanks/engines in the full game) that didn’t exactly fly well. I also tried to dock two ships together and ended up spending all my fuel and leaving two pods of Kerbals stranded in orbit.

On Monday I figured I should probably start from scratch and build up to doing fancy stuff, so I: orbited a satellite, did a couple suborbital manned flights to test my abort mode (trying not to kill and Kerbals this time), then orbited some Kerbals in two capsules to try docking. It turns out that if you understand the docking interface and orbital mechanics it’s really not hard, though I did accidentally jettison my service module from one capsule before docking so I had to switch control to the other one and rescue them.

Having proved I could dock I decided to build a space station to use for refueling rockets after getting to orbit. Orbiting the space station core was easy. Orbiting a full tank of fuel required actually building a decent rocket, not just strapping boosters on till it got to orbit. I did eventually get some fuel modules up to the station, but I used the second largest tank instead of the largest.

The next task was to map the Mun (the closest moon to planet Kerbin), so I downloaded the mapsat plugin and built a munar satellite. That worked so well that I went ahead and put a satellite around Minmus (the tiny second moon of Kerbin) too.

Great, I could get to the Mun but could I land safely? I built a rover. It got to the Mun, but landed on the dark side and I’d forgotten to inclue either headlights or solar panels, so I had limited time before my power ran out. I ended up just pretending it was flat and trying to drive to an anomaly the mapsat had picked up. Didn’t go so well: I ramped off the side of a crater, spun end over end a few times, then scattered rover bits across a large area.

Having learned a few things that are good to have on a rover, I redesigned it a bit and tried again. I then had to learn to drive the thing safely. By the time I got where I was going I’d lost seven of my eight extra fuel tanks to crashes, and I’d broken off all four of my floodlights. This was the first anomaly I explored to (illuminated by my headlights):

That showed I could land on the Mun, next challenge: getting Kerbals there safely. I swapped the rover with a capsule (no lander) and I could orbit it around the Mun just fine, time to add a lander. Except sticking a lander in the middle of my stack made the rocket payload much heavier and taller, so tweaking my rocket till I could actualy get it into orbit took hours. Even worse, I had to separate from the lander and dock with it before I could use my transfer stage, and because my rocket only almost got me into orbit I had to frantically do that so I could quickly use my transfer stage to achieve low Kerbin orbit. Once I finally managed to do that in time, I discovered that I’d messed up my transfer stage and had to do some redesign and fly it again. This is what I finally ended up with at launch (the stats panel is Kerbal Engineer, the only addon I have besides the mapsat):

By this point, it was like 4 am, but I had my rocket and I was going to try it. Turns out I’d overdone my transfer stage by a bit, so I had absolutely no trouble getting to the Mun. Also, my lander had many times as much power as it needed. Since I’d (yet again) forgotten to check the sun position before burning to land I ended up on the dark side of the Mun, but I landed safely. I was ten degrees west of the anomaly I’d wanted to land at, but I still had plenty of fuel so I waited for daylight and flew east. Unfortunately, I didn’t judge how much fuel it would take to land and I ran out a bit off the ground. I’d stopped my horizontal movement and I was level, but the crash took out both landing fuel tanks on one side, thankfully without harming the ascent stage. I also was close enough to the anomaly (a Mun arch) that a Kerbal in a jetpack could make it there:

My lander is in the distance, and there’s little white dot on top of the arch that’s Jebediah Kerman.

As it turned out, my ascent stage also had far more power than I actually needed, but it had no RCS thrusters so using it as the active ship for docking didn’t quite work out. After bumping the command module at a very low relative velocity, I switched ships, docked, and transferred the two Kerbals from the lander back into the command module. I even still had plenty of fuel in the transfer stage to get home safely (only Jebediah is out of the capsule because it was 5:45 am and I was feeling lazy):

I did lose two capsules worth of Kerbals (6 Kerbals total) in launch mishaps when the rocket stack collapsed due to excessive thrust (the capsule doesn’t do well when a rocket engine at full thrust collides with it), but in all other failure modes my abort rockets were able to separate the capsule safely.

Overall, I’m enjoying this game and am very much looking forward to seeing what it’s like when they finish it. In the mean time, I’ve got another moon to visit then a round trip to Duma (Mars) to plan.

Misc update

I finally booted my laptop back to Linux, and it’s so much more usable now! I’ve been using Windows Vista since Christmas because I was gaming on my laptop and because I got itunes gift cards and I have itunes installed in windows. The problem I had was that I couldn’t access my file server from windows (it’s a linux server). I figured Samba hadn’t started or something last time I took updates and rebooted the server, so I tried SSHing in from my phone, then realized that I could just use my laptop, so I switched it to Ubuntu. Now Firefox is responsive, I don’t get pop-ups from MS Security Essentials, and the screensaver comes on consistently. In other words: this is a major improvement.

I never did figure out why my server wasn’t showing up on the network list in windows. Before my laptop was finished booting I tried typing in the IP address directly in windows explorer and that worked, but the network browser still won’t find it.

I uploaded the last of the rocket videos:

I ended up trimming off all the extra video of it hanging in the tree. There are a couple spots where you can see my dad and I walking around under it, but it was more long and drawn out than interesting.

The other video I produced this week was in skyrim:

I found a dragon that had a ledge behind it, so I snuck on to the ledge and stabbed it with my daggers for the sneak attack bonus. Unfortunately, I hadn’t improved my offhand dagger with blacksmithing so I didn’t actually one-shot the dragon. I finished it off using my bow when it landed – I haven’t fought many dragons as a melee character but I remember my mage getting bitten and killed when I got close.

It took me probably fifteen minutes to get into position for that attack because every time the dragon detected me it would fly up and breathe frost on me so I’d have to reload a save. Also, to get onto the ledge I had to find a spot to climb the mountain so I could jump down on it. This was the dragon on the mountain south of Riften.

I just realized I didn’t have a category for Games: Skyrim. I guess I really haven’t been blogging much since it came out.

Today I finally sat down and timed a solve of my 7-cube: 30 minuntes 56.77 seconds. That beats my previous time of 63 minutes by far, but I need to do a few more solves for a 3 of 5 average (technically they should all be in one sitting, but at 30 min per solve that’s not happening). I also did a few 3-cube solves and managed a 34.99 second solve, which is my new record for the method I’m using to solve it. I was trying to solve my rubik’s cube while on my exercise bike, but I was both slowing down on the bike and messing up algorithms so I gave up. If I’d had better light maybe it would have been an interesting challenge, perhaps tomorrow.