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

Pre-Thanksgiving Activities

Last weekend Talore learned to use my laptop.

Learned to use it for heat that is. She first lay down beside it so the exhaust was pointed at her, then she moved over onto the keyboard. She’s walked on it before but never really stopped on it. Since then I’ve been keeping a blanket on the corner of my desk for her, but I really need to get a large flat pillow or something to put there. She didn’t consistently sleep on the cat bed when it was on my desk; I think she didn’t like the sides being there when there was flat space all around it.

When she moved to the keyboard I was playing Commander Keen (using DOS Box on linux), so you can kind of see that on the screen. Keen is a series of old DOS games that I played as a kid. I’m considering submitting it to Calvin for an episode of ezmode tv, but the first level is really easy and he didn’t go very far in the last video I watched. Perhaps I’ll give him keen4 with a save to the fish level, or even keen4 in general, though I’d have to go play through it again. I do at least still remember most of the keen 1 levels (not that I beat them all easily).

Talore being on the laptop wasn’t a problem. The problem was a combination of her feeding pattern being messed up (I don’t give her more food when her bowl is half full) and the cable in front of my laptop. I hadn’t fed her earlier in the day, but I didn’t remember to feed her by the time she was hungry (she didn’t make enough of a fuss to remind me). The texture on the cord (ipod cords are kind of rubbery) was probably what interested her besides the location of it, but I eventually turned around and saw that she’d chewed through it in four or five places. She got squirted for that and has still gone back to it several times since then (prompting more use of the water gun). Hopefully she won’t decide that any other cables are so inviting.

Speaking of chewing on things, Talore occasionally bites at my watch band. For a long time I figured she was just biting it for the texture since part of it has a leather texture, but now I’m wondering if she thinks it’s like her collar. I put the collar on her when my apartment door will be open (generally as I’m leaving for work) and I take it off her when I get back, but sometimes she finds someplace out of convenient reach to sit when I’m leaving and I don’t put it on her. She is always happy to have it removed (and have her neck rubbed), and since she generally bites my watch band hard then pulls hard perhaps she thinks I’d like my watch removed. She doesn’t always bite on the leather, and she bites it at random times (being woken up by Talore tugging at my watch was a surprise). At any rate, my watch band doesn’t have a clasp that releases by pulling on it (the collar is designed to release if she catches it on something) so she’s not likely to get it free any time soon.

I have family visiting for Thanksgiving, so I trimmed the tips of Talore’s claws. I wasn’t trying to make them stay dulled for a long time, but I didn’t think everyone else would be so tolerant of being prodded with fully sharpened claws. She didn’t struggle at all while I was clipping them, but she did seem to find scratching at the post a bit awkward at first. She also is now unable to easily snag toys with one paw, but that sometimes just makes her chase them more.