Media
Leaked Doom (1997)
1998Leaked Doom and DoomWads
(Video)
!DoomII was one application that just played the game on the RPC, and I made work on the A5000, added sound, network and the ability to run in the Desktop. The !DoomWads application lets you launch the game with a selection of options, including configuring the network. The Wad selector lets you see a selection of Wad files together with their help. The game can run in the desktop or full screen, and even has an iconbar option. The sound was worked by loading some standard SoundChannels modules and playing them as normal, then killing them off if memory pressure became too high. Networking worked over Econet, Serial and IP. And this ran (at a push) on an A5000. Though Eddie's original version of Doom did work, it was clearly unfinished. The amount that I managed to hook up and make work showed that it was really close to being releasable.
The video demonstrates the different parts of the DoomWads application and the way in which you can launch the game. The PWAD selector has the ability to display the help or launch the game, similar to how I made Doom+ work later. The game plays as you expect, and at the end I demonstrate how the sound modules have been organised to play different samples.
Doom+ (1999)
1999Christmas pressie release
(Video)
Ok, it's not great snow, but it was kinda fun!
The Christmas release was sent out to the beta testers on Christmas day 1999.
It didn't see a wider release after that though. The snow feature can be enabled
with -snow
in later versions - if it gets released.
Hexen (2024)
2024Early startup graphics
(Video)
Initially the game was very slow to start up. Partially this was from having some optimisations turned off, and partially from running with heavy instrumentation in RISC OS Pyromaniac. That it starts up at all is actually quite amazing - RISC OS Pyromaniac was never meant to run this sort of thing.
We get a crash at the end, due to the screen mode requested being unavailable.
2024Early game play
(Video)
Once the game was able to select a mode and start, it did actually run in RISC OS Pyromaniac with all the instrumentation enabled. It's very slow - about 3 seconds per frame - but it's working.
There's a bunch of debug now and then as a read from zero page is performed within the sound calls.
2024Improved resolution over the 1999 release
(Full size image)
The original Hexen, like Heretic and Doom before it, had a limit of 1280x1280 for its rendering. This was almost entirely down to how pixels on the virtual 320x200 screen were rendered - the menus, status bar and message text. This is one of the earlier images showing that we could use larger modes - 1366x768.
2024RISC OS Pyromaniac at 3.7 FPS
(Video)
Getting the game working at a sensible speed wasn't too hard once the system limitations had been worked around. From the early, very slow startup, the RISC OS Pyromaniac game was able to be run at almost 4 frames per second in 640x480. That's pretty neat. Not playable, but good enough to be sure that this is working.
2024RISC OS Pyromaniac runs the front end
(Video)
The front end needed to be able to launch the game properly as well, so testing of that within RISC OS Pyromaniac found lots of problems easily. Putting the higher resolution together with running from the desktop and we can see here that the game is able to be started and loads up in 1366x768. It's only about 1 frame per second at that resolution, but it's quite clearly working.
The startup screen hadn't quite been fixed to clear properly or centre the image, but that was quickly fixed.
2024Rock 4C+ runs Hexen
(Video)
Running the game on the Rock 4C+ at 1920x1080 and seeing a full rate 35 frames per second was really, really nice. Albeit I struggled with the camera and keyboard to play well... it's pretty awesome.
2024RPCEmu gameplay, with music
(Video)
Once the MP3 music was added, the whole experience was so much more. The sound in Hexen had stood out at the time, because it included many more environmental effects. But adding the music takes it to another level. I'd not really had the MIDI music in the past, as it ate CPU cycles that the game could be using, but now with the faster machines it's far more practical to play MP3 music in the background.
2024Different character classes
(Full size image)
Playing the game with the priest or the mage is significantly different to playing with the fighter. Not just because your strength and armour is less on those classes - you also get much more powerful magic to compensate.
2024Different weapons are available to different classes
(Video)
Clearly a homage to Raiders Of The Lost Ark, just going around firing this weapon at even the powerful baddies is a lot of fun.
2024PolyObjects allow walls to move
(Video)
PolyObjects allow the game to have moving elements that weren't possible with the standard Doom engine. The ability to rotate walls gives a much better experience whilst playing and allows for more interesting map design.
2024Testing through the CI system
(Asciinema)
All the components that make up Hexen get built automatically when they are pushed to the Git server. Some, like the front end and the game, are run to make sure that they work as well. To do this, they are sent to the RISC OS Build service and run short scripts to exercise parts of their execution.
This example shows the build and test process being triggered from the command line, running the game. The game runs for 10 seconds and then exits. If there's a problem, it'll report an error and the test will fail.
Heretic (2024)
2024Early startup screen
(Video)
The Heretic startup tried to be as faithful to the original game as possible. As such, I had originally selected a 80x25 text mode for the game. This had the gap rows in it, which made it look ugly, but it was the right resolution so that was ok. Nobody would really care about the startup screen anyhow.
But the startup was so slow. Whilst the way it drew the the screen worked well on DOS systems of the day, it was very poor for even the RISC OS of 1999. Plus, of course, a low resolution, 16 colour mode would never work on some systems, so this would have to be replaced anyhow.
The initialisation does work here, but we crash on trying to call the support module, which isn't there yet.
2024Game is starting to run properly
(Video)
The demos for Heretic aren't great, but they do exercise the game with real movement and action. Here we're seeing the startup of the game - looking a little better, but still pretty ropey - and then the demos start up. The frame rate ticker and graph shows we're getting about 3.2 frames per second in RISC OS Pyromaniac.
2024Cleaned up statup screen
(Video)
The new startup screen is much more faithful to the original startup in the DOS version, with the text mode graphical elements being drawn properly as shadows, and the progress bar looking much smoother.
It will rarely be seen, but it matches what I wanted from the original.
2024Running at different resolutions
(Full size image)
Like Hexen, Heretic runs at higher resolution than previously. Even if in RISC OS Pyromaniac it only runs quite slowly.
(Full size image)
And, of course, we can also use lower resolutions. Here we have RPCEmu running the game, with a resolution of 80x60. It might not actually be a good experience, but you can run it.
2024Testing through the CI system
(Full size image)
The builds takes about 2 minutes, and the tests take about 5 minutes. They run a few of the different binaries with different combinations of options and check the results are as expected.
(Full size image)
When the tests run we use the built binaries from the earlier stage. The shareware WAD is downloaded from my repository server, then both it and the application are sent to the RISC OS Build service, along with test scripts to run it. These start the game up and request that it runs for a short period.
You can see here the startup text output. It looks a little odd in places,
with only parts of words displayed - for example you'll see
R_InitTables
followed by Plan
, which looks odd.
This is because the text has been scrolled up -
the R_InitTables
has
replaced the prior line, and the next line is meant to say
R_InitPlanes
. Because the characters are mostly the same,
the only part that needs replacing is the Plan
part.
2024RPCEmu gameplay, with music
(Video)
Backporting the MP3 music to Heretic was really simple, and meant that we got the same experience as with Hexen.
Doom+ (2024)
2024First run of Doom+ made 32bit
(Video)
The Doom+ 32bit conversion is more involved because there's more assembler code - not too much more, but enough. Additionally, the video system is rather different to Heretic and Hexen because of the addition of the in-desktop gameplay. That complicates makes the code quite different and thus harder to merge changes back.
This first run in the desktop shows how the game was able to be made work - without any of the other enhancements from the later games. Plus the game is quite playable on the iconbar. Not that it's all that sensible to do so, but you can and that's all that matters.
2024Anaglyph (3D glasses) Doom
(Video)
Back in the early 2000s I played with adding the anaglyph 3D rendering to the Doom engine. It's not complicated to do, but it fiddly to get the maths good enough to give the right effect. The original version back then was very poor. The updated version in the recent builds is looking significantly better, and actually works very well with the red-cyan glasses.