MyHouse

I don't play a lot of computer games, but some three decades ago I did play rather a lot of Doom. I guess it started with Wolfenstein 3D and proceeded from there. Weirdly, as computer graphics got more and more powerful, I got less and less interested. I played the hell out of Wolfenstein and Doom and Doom II, but did not bother with Doom 3 or anything after that.

This week, I read about MyHouse, a Doom II mod.

./myhouse.png

It sounded really interesting, so I decided to give it a try. I downloaded the mod file, but I still needed Doom II.

I mean, I have the DOS game from 30 years ago

./doom2.jpg

but I don't think that does me much good. Where do I put the floppy?

I started by downloading GZDoom 4.10.0 for Ubuntu. I am on a Debian 12 box and Ubuntu is based on Debian, so odds are good this will work. Alas, installing it failed

sudo dpkg -i ~/Downloads/gzdoom_4.10.0_amd64.deb

It is linked against libflac8, but Debian 12 has libflac12.

I faked it with a symlink

sudo ln -s libFLAC.so.12 libFLAC.so.8

and that worked in the sense that the game then worked, but APT was still upset. I had a broken package and it wasn't letting it go. I guess I'm going to have to install GZDoom from source. ¯\_(ツ)_/¯

sudo dpkg --remove gzdoom

I installed all of the claimed dependencies

sudo apt install g++ make cmake libsdl2-dev git zlib1g-dev \
libbz2-dev libjpeg-dev libfluidsynth-dev libgme-dev libopenal-dev \
libmpg123-dev libsndfile1-dev libgtk-3-dev timidity nasm \
libgl1-mesa-dev tar libsdl1.2-dev libglew-dev

First, build ZMusic

mkdir GZDoom
cd GZDoom

git clone https://github.com/coelckers/ZMusic.git
mkdir ZMusic/build
cd ZMusic/build
cmake -DCMAKE_BUILD_TYPE=Release ..
cmake --build .
sudo make install

Now build gzdoom

cd ~/GZDoom
unzip ~/Downloads/gzdoom-g4.10.0.zip
cd gzdoom-g4.10.0

mkdir build
cd build
a='' && [ "$(uname -m)" = x86_64 ] && a=64
c="$(lscpu -p | grep -v '#' | sort -u -t , -k 2,4 | wc -l)" ; [ "$c" -eq 0 ] && c=1
if [ -d ../fmodapi44464linux ]; then
f="-DFMOD_LIBRARY=../fmodapi44464linux/api/lib/libfmodex${a}-4.44.64.so \
-DFMOD_INCLUDE_DIR=../fmodapi44464linux/api/inc"; else
f='-UFMOD_LIBRARY -UFMOD_INCLUDE_DIR'; fi
cmake .. -DCMAKE_BUILD_TYPE=Release $f

Hm. It complains about libvpx.

sudo apt install libvpx-dev
cmake .. -DCMAKE_BUILD_TYPE=Release $f
make -j$c

Alright! Put doom1.wad, doom2.wad, and myhouse.pk3 in ~/.config/gzdoom/

Now ./gzdoom plays Doom and ./gzdoom -iwad doom2.wad -file myhouse.pk3 plays MyHouse. Let's go!

./myhouse3.png

Naw, that doesn't look creepy at all. Go ahead!