VOGONS


First post, by Frenkel

User metadata
Rank Newbie
Rank
Newbie

To celebrate Doom's 30th anniversary, here's a port of Doom for 16-bit DOS computers: Doom8088.

Doom was originally designed in 1993 for 32-bit DOS computers with 4 MB of RAM. It's mostly written in C code with very little assembly code. It has been ported to all kinds of systems. Usually these systems are 32-bit or more and have a flat memory model.
Doom8088 is a port for PCs with a 16-bit processor like an 8088 or a 286, with 1 MB of RAM and with VGA or MCGA graphics. It's based on GBADoom.

To make it work on a 16-bit processor with 1 MB of RAM, some sacrifices had to be made. This means only Doom 1 Episode 1 is supported (expect E1M6), no texture mapped floors and ceilings, no light diminishing, no music, no saving and loading, no multiplayer, no PWADs, no mouse and joystick support. One fixed resolution, PC speaker sound effects, rotating overlaid automap, only demo3 is in sync.

Doom8088 and RealDOOM., "one of the most important milestone in Doom porting ever" 😜

Reply 1 of 10, by rasteri

User metadata
Rank Oldbie
Rank
Oldbie

oh hey how did I miss this!

what a cool project

Reply 2 of 10, by MrFlibble

User metadata
Rank Oldbie
Rank
Oldbie

I watched the gameplay video, and I think this version would greatly benefit from lower-resolution sprites and textures designed specifically for it. There is a project for making an Amiga game based on Doom code (or, at least, it was originally based on Doom code, IIRC) and using Freed∞m graphics as a base:
https://pixelglass.org/#grind

You can see that the project eventually came to use heavily modified graphics that work better with the target resolution.

Here's a video where it still uses mostly Freed∞m graphics:
https://www.youtube.com/watch?v=lhW3y62sFF0

What I want to say here is that I'd love Doom8088 to have a similar dedicated IWAD that could actually look like its own thing, rather than just heavily pixelated version of Doom (not to diminish the overall impressive quality of this project anyway).

DOS Games Archive | Free open source games | RGB Classic Games

Reply 3 of 10, by Jo22

User metadata
Rank l33t++
Rank
l33t++

To be honest, I'm not much of an FPS fan myself, but I think this achievement is impressive nevertheless. 😎👍

Doom engine was being popular for its countless WADs, I remember.
There had been games of other genres that used WAD format to create their own 2.5D environment.

If there's anything I can recommend it's considering to include 80186 instructions and see how it goes.
XT owners could install an Vx0 processor to make use of this, if there is anything to gain in performance.
If two pre-compiled binaries are being available (8088, 186), it simplifies things for the user.

Anyway, just an idea. Not a very creative one, I admit. 😅 Just came to mind because of Win 3 VGA driver, which also is using a few 186/286 instructions.

"Time, it seems, doesn't flow. For some it's fast, for some it's slow.
In what to one race is no time at all, another race can rise and fall..." - The Minstrel

//My video channel//

Reply 4 of 10, by Frenkel

User metadata
Rank Newbie
Rank
Newbie

The compiler that I use, gcc-ia16, supports 80186, 80188, 80286, 8086, 8088, V20, V30 and V30MZ.
For now I make releases for the 8088 and 80286. And separate builds for Mode Y and Mode 13h.
For fun and testing purposes there's also a Mode Y build for 386 computers, compiled with DJGPP.

Reply 5 of 10, by rasteri

User metadata
Rank Oldbie
Rank
Oldbie

Haha it works great on my 5150.

(by "great" I mean something like 0.5FPS)

Reply 6 of 10, by appiah4

User metadata
Rank l33t++
Rank
l33t++

I will need to run this on my 286/16 and see how many FPS I get.

Reply 7 of 10, by Frenkel

User metadata
Rank Newbie
Rank
Newbie

There are two ways to see the frame rate:

There's the benchmark way: run Doom8088 with the command line argument -timedemo demo3. This will run demo3 as fast as it can and at the end it will show the frames per second.

Another option is the IDRATE cheat: Instead of the ammo count, the status bar will show the frames per second. Divide this number by 10 to get the real frames per second. So when it says 349, the true frames per second is 34.9, which is the maximum by the way.

Reply 9 of 10, by ltning

User metadata
Rank Member
Rank
Member
Frenkel wrote on 2024-06-24, 07:09:

For now I make releases for the 8088 and 80286. And separate builds for Mode Y and Mode 13h.

What kind of performance can I expect on a 24mhz/0ws 286 with an et4k/w32i? Is there a measurable or even noticeable difference between the 808x and 80286 builds (both running on a 286)?

I need to give this a go as soon as I am done copying all my other games over to the machine :D

The Floppy Museum - on a floppy, on a 286: http://floppy.museum
286-24/4MB/ET4kW32/GUS+SBPro2
386DX-40/20MB/CL5434 ISA/GUSExtreme
486BL-100/32MB/ET4kW32p VLB/GUSPnP/AWELegacy

~ love over gold ~

Reply 10 of 10, by Frenkel

User metadata
Rank Newbie
Rank
Newbie

I ran some benchmarks in 86Box emulating a 286 at 25 MHz and it turns out the differences between the 8088 and 286 builds are minimal.
For example Mode Y 286 results in 10.845 frames per second and 8088 results in 10.549 fps.