• Please review our updated Terms and Rules here

Doom8088: Doom on a 286 / 8088

Frenkel

Member
Joined
Jan 1, 2022
Messages
46
New version
No textures and no status bar, but sprites are cached and the lookup tables are in memory all the time.
Benchmarking is possible by running DOOM8088.EXE -timedemo demo3.

P.S. I haven't run it on a real computer.
 

Attachments

  • doom8088.png
    doom8088.png
    7.8 KB · Views: 28

Frenkel

Member
Joined
Jan 1, 2022
Messages
46
The release has been updated. It now includes optimized versions for 286 and 386 processors. It also includes a 32-bit version.
When I run timedemo 3 in DOSBox, only the 8088 version optimized for space can run the whole demo without crashing due to memory issues :(
(BTW, the 32-bit version can also run the whole demo, because it can use more memory than the 16-bit versions.)
 

Frenkel

Member
Joined
Jan 1, 2022
Messages
46
GCC for 8088 jokes about compiling Doom with gcc-ia16.
Well, I got it working. In DOSBox at 50000 cycles I get 50 fps with gcc-ia16, 40 with Watcom.

Here's a video of Doom8088 on a real 386SX running at 20 MHz.
 

1ST1

Veteran Member
Joined
Oct 21, 2014
Messages
1,486
Location
near frankfurt/m, germany
Pretty cool, but even on a compared to 8088/8086 very fast machine like 386SX-20 it still does not run smooth. Wouldn't it make sense to shrink the graphics to CGA 320x200 and then see what happens on a real 8088/8086 machine? There are some "fast" ones, like Olivetti M24SP, M240 which have 8086 at 10 Mhz...
 

Frenkel

Member
Joined
Jan 1, 2022
Messages
46
Right now it uses a back buffer that's copied to the screen every frame. I first want to see if using Mode X and double buffering improves the frame rate before I try CGA graphics.
 

VileR

Veteran Member
Joined
Jul 21, 2011
Messages
645
Location
Israel
FastDOOM has already implemented quite a few CGA modes (and text modes), amongst a rather big list. Maybe that could help out?

That port sure has some cool features. If you're running a secondary Hercules card, you can even set it to display the automap on the mono monitor while you play on the other one. :biggrin:
 

Frenkel

Member
Joined
Jan 1, 2022
Messages
46
Sure, it's just the 160x100 16 color mode, but with a different character.
 

Frenkel

Member
Joined
Jan 1, 2022
Messages
46
To celebrate 40 years of PCjr, here's a quick hack of Doom8088 with 160x200 16 color PCjr graphics.

It's running in DOSBox with machine=pcjr and cycles=3000.

 

VERAULT

Veteran Member
Joined
Jan 30, 2012
Messages
7,945
Location
Connecticut, USA
First off I applaud this. Secondly, I know this is just one of those "I got doom running on a...." Scenarios. But at the same time, if this was a game released at the time it would have been completely laughed at as its unplayable and unwatchable.
 

rmay635703

Veteran Member
Joined
May 29, 2003
Messages
614
Location
Wisconsin
First off I applaud this. Secondly, I know this is just one of those "I got doom running on a...." Scenarios. But at the same time, if this was a game released at the time it would have been completely laughed at as it’s unplayable and unwatchable.
Did people completely laugh at the thousands of 256 color VGA games that offered a terrible backwards compatible mode for CGA+ pcspeaker?

If doom was setup to self compile targeting your particular machine so it was playable on older systems it would be a sucks to be you if you were running it on a PCJR when the recommended system was a 386dx.


And in 1987 it would have been a triumph, amazing what a couple years does.

Also the frame rate was good, a little more work on the colors and the game would have been fine in 16 colors
 

VERAULT

Veteran Member
Joined
Jan 30, 2012
Messages
7,945
Location
Connecticut, USA
Did people completely laugh at the thousands of 256 color VGA games that offered a terrible backwards compatible mode for CGA+ pcspeaker?
Most of those games still looked fine and playable. I know I ran CGA into the mid 90's on my IBM XT.

I dont think this would have ever been a triumph. ITs a marvel and interesting but you cant play the game looking like that. Look at the first 3d games with solid colors like stunts from 1990 or Star fox on the Super Nintendo. they were playable only with vga level resolution/colors or better.
 
Last edited:

Plasma

Veteran Member
Joined
Nov 7, 2005
Messages
1,983
Did people completely laugh at the thousands of 256 color VGA games that offered a terrible backwards compatible mode for CGA+ pcspeaker?

If doom was setup to self compile targeting your particular machine so it was playable on older systems it would be a sucks to be you if you were running it on a PCJR when the recommended system was a 386dx.


And in 1987 it would have been a triumph, amazing what a couple years does.

Also the frame rate was good, a little more work on the colors and the game would have been fine in 16 colors
It will not run anywhere that fast on a real PCjr. DOSBox at 3000 cycles = 3 MIPS.
 

Eudimorphodon

Veteran Member
Joined
May 9, 2011
Messages
6,732
Location
Upper Triassic
It will not run anywhere that fast on a real PCjr. DOSBox at 3000 cycles = 3 MIPS.

Which to be clear is somewhere around 15-20 times as fast as a real PCjr.

To celebrate 40 years of PCjr, here's a quick hack of Doom8088 with 160x200 16 color PCjr graphics.

For this are you just treating the 160 4-bit pixels per line as 80 8-bit pixels and the color choices/"dither patterns" are just "accidental", or was there some attempt to actually map things a little more sensibly?
 

Frenkel

Member
Joined
Jan 1, 2022
Messages
46
GBADoom and Doom8088 render 120x128 pixels + a 240x32 status bar to a 240x160 buffer. This quick hack takes every third byte of that buffer and writes it to 0xb800, etc. This way you get 80 columns. To not end up with a bunch of vertical lines, the bytes for the odd lines are rotated 4 bits.
So yeah "accidental".

You only need to change 1 byte to change the graphics mode to 320x200 4 colors or 640x200 2 colors, the memory layout is the same.
 

Frenkel

Member
Joined
Jan 1, 2022
Messages
46
I've decreased the horizontal resolution from 120 to 60 pixels and I've made some performance improvements, but now it crashes sometimes because it's trying to divide by zero.

Here are two videos of Doom8088 running in 86box emulating a 286 @ 25 MHz.


 
Top