Victor here! Awesome coverage of FastDoom, I really love all the time and effort you've put in this video. I ended up watching it in tears because it means a lot to me. Also thanks @vswitchzero for including the shoutout to all developers that have helped in the project. BTW, to all of you who are watching this video, put in the comments what functionality you would like to see in FastDoom :D
Thanks so much for all the hard work you have put into this project and all the others who have contributed as well! It's an amazing accomplishment and I really look forward to what FastDoom has in store in the future 😃👍
I'd like to see the 350 line mode of VGA used in FastDoom (175 if double scan is set in registers). Could give an extra 1FPS on a 386. It exists in the VGA standard to emulate EGA modes for backward compatibility, but you can use those timings with 256 colors (it's basically the same as the 400/200 line mode from total count and pixel clock standpoint, but with inverted sync to tell the monitor to stretch the picture).
It's like when I was a kid the game every kid wanted to play with GTA Vice City, and when I was 10 I had it on PC and I played it on integrated graphics on the lowest settings at 640x480, probably at 15-20fps and I didn't care.
@@EpicSqu1rrel Yeah, I saved up my allowance for over a year to build my own 486 (Cyrix DX2-80). Seeing the game run in its full glory for the first time was an almost spiritual experience...honestly in the top 10 or 20 best moments of my life lol Cheers.
Oh yes, this brings back memories. 386SX-16 and a Trident TVGA ISA graphics card, SPEAKER.EXE for sound. I played for months and months, even more so after I discovered IDKFA and his cousins ;) IDDQD is still melted into my brain...
I would love to hear an interview with Carmack to talk about all these optimizations and his opinion on them and how they effect the game. Amazing work on this video!
I admit that I haven't watched it all, so I do not know if he tackles your question but if you search "lex fridman carmack" you will find a 5hr interview with the legend that is Carmack.
As a kid back then I didn't even know there was such a thing was better performance, at least not until I started building my own systems. First x86 we had as a family was a 386, and any slideshow or framerate issues have not managed to lodge themselves into my memory. All computers had DOOM back then, I remember playing it even on the receptionist's computer at my mom's workplace when they didn't need to use it.
I remember not only having a second hand 386 but only having 4mb of ram and having to do autoexec.bat magic to be able to free enough memory to play Doom/Doom 2, and also remember a later level with lots of demon heads and that was not a slideshow but like a disney movie render, many seconds per frame, very unplayable.
True, I was playing Doom 2 at like 10-15fps apparently on my 486 sx25mhz and didnt know it until i saw it run on my friends pentium. Couldnt go back to that after but enjoyed it without issues before that. I also shrunk the screen for better performance.
32x port was my first experience and part of what made that 160 dollar add-on very much worth it to me ...I wouldn't get my first pc until 2003 so I had no clue I was missing angles or levels...just enabled god mode and chainsawed the heck out of everything!
@@Dormat25 At least you didn't need a mushroom on the SNES. And a slight overclock was all it took to improve the performance. And it included PC level layout not the cut down Jaguar layout.
Another great video. I can still remember when Doom came out and I had 486DX2/66 VLB system. I thought I had died and gone to heaven. Fast forward 30 years and Doom is running smoothly on systems no one thought possible. You just have to tip your hat to the Vintage Computer community and all the ingenuity out there. It is really amazing!
I recall back in high-school reading about a speed-optimized version of Quake to get it running on older hardware so even a 486 could run it smoothly. One of the methods it used to do this was the option to turn off perspective correction for world geometry. Unfortunately, I don't recall the name, but if you can find it and do a video on it, that'd be great.
ACKSHUALLY :^) it's more like multiplying and dividing by a power of 2. You don't have to enter in SHL 5 times to multiply by 32. You can just do SHL EAX, 5 or whatever
@@sharoyveduchi A bit shift is a lot faster since no actual calculation takes place, it just moves all the zeroes and ones to the left/right by n times
SNES Doom was my first experience with Doom. I don't even remember where I got the red cart from, as a kid. Now after playing Doom on a PC well over 2 decades its astounding how bad it looks, but back then it looked and ran pretty amazing for the time, I felt. I played on the lower difficulties mostly, as it was plenty challenging.
When you said textmode, my first thought went to the old text adventure games. "You enter the room. A monster approaches you from the left. Enter next command." Hahaha
I tried fast Doom on an OG 33Mhz Intel 486 DX. I managed to get the performance up to a lower end 50mhz 486 without resorting to shrinking the screen size or halfling the resolution. And since my board allowed me to overclock the 33 to 40Mhz, it performs very similar to a DX2, but that's also because I had some L2 cache to help with that. Back in the day, 33Mhz was enough to get a decent experience but Fast Doom definitely had features I wish existed in the 90s, because then, I only had a 25Mhz SX.
I understand that pain all too well. The family computer from December 1992 to January 1997 was a Pionex 486sx25 with 4mb of RAM from Sam's wholesale. We got DOOM in fall of 1994 and two months or so later dad came home with DOOM 2 and very shortly after getting DOOM 2 dad doubled the memory to 8mb for us. That extra 4mb of RAM made a huge difference and DOOM 2 level 16 and level 30 no longer froze. I will NEVER forget when we FINALLY got the Pentium 133 in January 1997 and experiencing that MASSIVE performance jump and could finally use the plasma rifle and BFG without killing the game.
LEA, SHL, and SHR are all x86 assembly instructions. lea - Load effective address shl, shr - Shift Left, Shift Right Basically that Green CPU is really good at accessing memory and doing bitwise operations on values in that memory.
Oh, back the in the day I wrote a ModeX pixel*pixel scrolling RPG engine in Quickbasic. One of the most important parts of writing that was figuring out how I could reduce the port access to switch planes. I eventually figured out how to do the entire screen largely without a bunch of extra multiplications and divides, and I could do the entire background for one plane in one go. Talking about potato mode reminded me of that.
yeah, i/o instructions were significantly slower in anything above 286, which was weird, since even the oldest home computers like commodore64 etc. had memory mapped i/o, but 8086+ didn't. but then again, intel did not create the 808x to begin with.
This is amazing! Also it's kinda hilarious how development on the DOOM engine continues to this day in two very different directions. Optimizing it for 386/486 vs. pushing the most advanced DOOM source port to its absolute limits with games like Selaco and some other notable game mods/TCs. Also, potato mode kinda reminds me of POOM (Pico-8 DOOM Demake...it's quite impressive! And Pico-8 runs at 128x128.)
Shl, shift left, shr, shift right. Assembly code guesses. If you shift a number to the left, you multiply by 2. Shift to the right you divide by two. Makes sense, 15 shifted to the left (decimal) multiples by 10 to give 150. Shift to the right, 15 becomes 1.5 or divides by 10. Remember assembly tends to work on base 2.
John Carmack himself said, after Quake was released, that Doom could be much faster with his newer coding knowledge. Nice to see others picking up that part!
I hope someone tries using precalculated PVS like quake, this is mostly low level optimizations, which are interesting, but high level optimizations can be very valuable as well.
OTOH if you look at the numbers here, fastdoom isn't that much faster though. Sure in some cases, but on higher end hardware and best settings the difference is smaller. I love this work and think he did a great job, but as you can see the game was quite well optimized already. Another thing one could optimize is the footprint of the assets with modern codecs.
@@chickenfarmer209 I was big into Lan with a group and we didn't play those for reasons I can't quite remember. I think they were better single player.
Awesome video. My first PC was a used 386DX and yep, it was postage stamp window in low detail for much of the game (well the Shareware version) for me. I even disabled music and listed to Rage Against the Machine or Therapy instead lol. Man it was hardcore. But I did occasionally stop in a room, go full screen, and hit the high Detail toggle, just to look in awe at the graphics. What a time. What a game.
Cool video dude. Quite the effort you put on it. I saw the page about fastdoom on vogons I think. I thought is just a slimed down doom port. But it is much more. I will have to try fastdoom on my 486 sx 25 and sx2 50 with isa video cards.
I was a student that "ran" the AutoCAD systems in our drafting/architecture class, and we had a cursed mix of 386es and Pentiums. I setup deathmatch, and the 386es were the handicap boxes... I personally had a 486SX25. This would have been so nice back in the day.
2:40 I guess my 486SX-20 wasn’t popular then! It did run Doom, I think our brains back then filled in the missing frames 😅 I got the opportunity to talk with John Romero at a recent convention in the UK, he said they called the SX line of 486’s internally as “suxs” to go along with its lacklustre performance back in the day 😂
A 20MHz SX is indeed pretty rare and hard to find these days. There is even a 16MHz 486 SX that was found in a limited number of OEM systems. Most 486 boards have a minimum bus frequency of 25MHz, so it's not easy to run them without overclocking them. Some older ISA boards with a crystal socket can be adapted for them though. Thanks for watching!
I ran Doom on an Intel 486DX 33MHz overclocked to 40MHz with a 1MB VLB Cirrus Logic VGA card. It wasn't terrible but wasn't ideal either. This port would have been amazing back in those days.
the vga speed problems were a very mixed bag, back then. although, vlb did ensure faster transfer speeds, it didn't meant better actual speed in doom. there were a lot of vlb cards that performed like crap, and some isa that performed very well, due to having buffer chips, so being able to respond to read/writes much faster. the problem was that they were expensive and you had no clue which cards were which, until you bought them and tried them.
12:55 For someone that is not familiar with programming, that's a great start! I would recommend writing more of BASIC or anything relatively easy you can get your hands on, it's a lot of fun! Anyway thanks for sharing, awesome video 😁
I seriously did not remember that Doom was such a 486 dependent game. I'm old now and my memory of that era has faded. It's really easy to forget that Doom was such a beefy game looking back from today.
486s were extremely common and quite cheap by the time doom released in 1993 so a large percentage of PC owners would have been able to run the game and probably didn't notice how cpu heavy it was. Top end 386s were still being sold but with pentiums coming out in 1993 most stores had switched over to selling 486SXs and SLCs as their main budget systems. It's not uncommon to find magazine ads from 1993 for sub $600 486 systems and it was possible to upgrade an older system to a 486 for just $200 by getting a new motherboard and cpu.
@@dgmt1 Makes sense, I grew up poor and have a disability so when I got a new PC it was because family spoiled me with one every so many years, and I didn't realize how spoiled I was until I look back at what the prices would be for what I had at the time. So yeah, I definitely had more than a good enough PC back then, but the timeline of things is a blur for me now.
I've been using zDoom for years now to get my Doom fix, great to see so much effort going on at the other end of the scale. I originally played Doom on a 486SLC-33 and could only dream of the frame rates these tweaks are capable of!
Cool, I'll have to try this. Back in the day I played doom on an sx25, I was happy, your benches say I should have been otherwise😬 standards were differnt back then.
@@SeeJayPlayGames well not everyone had the latest stuff. First pentiums also had the division bug. I got my first 486sx33 in late 1994 or so. First pentium in 1996. Before 1994 had to work with a b&w 8088.
@@miasmator i get that, and I actually gave the first Pentium a miss because I had heard about the bug. The 90s saw so much development and I spent so much on technology that I think I actually messed up my future. AKA present. So don't be so jealous.
Great topic. So many videos about Doom show modern Doom ports with upgraded textures. Few show the original Doom and fewer still talk about how difficult it was to run it. Our first family computer was a Pentium 133 in 1996, so Doom was no problem. Sometimes I would run Doom II's Icon of Sin level in god mode to see how long it would take to crash (a few hours). But everyone else we knew were running older computers from 1990-93, so couldn't run Doom properly. Basically only rich people could run Doom at full capacity when it was new. I was lucky to have a Pentium but still had to wait until 1996 to play at all. Then the cycle kept going with Quake... would crash in a few minutes. Hopefully one day computers will plateau such that the best games are affordable to everyone when new, rather than having to wait years.
> Basically only rich people could run Doom at full capacity when it was new I upgraded my 286-16 to a 486DX33 in 1993 for around $200. I came from a working class family, as did all my friends, and most of us had part-time jobs to pay for any hobbies like computers. We were definitely not rich and yet pretty much all of us had at least 486s by around 1993~1995. >Hopefully one day computers will plateau such that the best games are affordable to everyone when new, rather than having to wait years. The notion that you needed an ultra expensive PC to play modern games was false in the 80s and 90s and is still false in the 2020s. A budget mid-tier system in 2024 will run pretty much anything; it just won't do it at 4k. I built a i7-9700k system with a GTX1070 in 2019 for around $800 and it can still play pretty much any game in 2024 at 1080p. My current system (ryzen 5 6700 + GTX4060) was also sub $1000 yet can play everything at 1440p. Even at the extreme end an i7-4790k+GTX1060 will still run a fairly high percentage of games yet only costs $200-300. Keep in mind most games are playable on a steam deck which is not even close to the power of any of these systems.
We have access to much better development tools than in the past. Unless you were an absolute genius, it was impossible to reach 90% efficiency in the past, 50% would be considered good. But today, it's actually possible to reach 90 even if you're not a genius.
@@vswitchzero Yeah back in the day I went nuts wondering why I didn't get much improvement on a 386DX when I Overclocked 33 to 40mhz and upgraded from 16k to 64k. That was my first introduction to chip counterfeiting! Luckily I had some 32k hanging around and figured it out. :D
My introduction to doom was a 40 MHz AMD 386. With 20 MB of RAM, as well as an added coprocessor, it actually works really well. The FPU makes the difference.
Back in the mid 90's I played through Doom on my 386DX40 which had a really good ISA graphics card (can't remember exactly what it was now) and fast system memory. It was actually fine, very playable. On some of the later levels with millions of mobs I switched it to blocky mode to keep it running well.
This version of Doom is also the preferred version to play on the AO486 core on the MiSTer FPGA system which creates a Tseng ET4000, 486SX-50, SB16, MIDI 330 PC.
I was going to say, this seems ideal for AO486. I wonder how much of the optimization work might also be applicable to ARMv4, used by the GBA. The port of prboom already runs quite a lot better than the original retail copy of the game did, and perhaps fastdoom can run better still.
LEA, SHL, SHR are Assembly Language instructions abbreviating “Load Effective Address”, “Shift Left”, & “Shift Right” respectively. Doom IIRC uses fixed point for floating point numbers, so it will use the latter two instructions a LOT to do its mathematics calculations. - ex game programmer
I first played on a 386dx40 with a tseng 8900 isa graphics card. I was blissfully unaware of how crap it ran until i went over to a friend's house a week later. He had a brand new Gateway 2000 DX2/50 and a sound blaster, and I was amazed that the gun swung back and forth when moving. Luckily within a few months I was able to upgrade to a 486 DX2/66 and made my Doom playing much more enjoyable.
I bought the Kingston Turbo chip to replace my DX-40 to run Doom faster. It was a drop in AMD 586 upgrade for 486 motherboards. It helped a little. I upgraded to a AMD K6 the next year in 1996.
Me and all my Amiga friends bought 486s within a couple of months of Doom coming out. We didn't spend anything like $5000-$6000, even including VGA monitors. Pretty sure I got a DX33 as the sweet spot between fast enough to run Doom properly and not too expensive. From memory we spent less than $1000 and that's Australian dollars. We all bought generic beige boxes from mom-and-pop PC shops.
I played DooM on a 386DX-40 with 128KB L2 cache and a Tseng ET4000. I did not notice any drawbacks, and had no idea as a kid how much of a high-performance spec this was for a 386-class machine.
So many really cool Doom and other retro projects going on. I have Doom Resurrection for the Sega 32x and that aims to do a lot of these same optimizations and options for that system. People getting Doom running all over the place and really well in some cases.
1:48 Installed a 68060 in a non-zif socket a few weeks ago. I never aged so many years in such a little timespan. And worse then installing the new CPU was removing the old one. ^^
@@MoultrieGeek Upgrading a 040 turbocard for the Amiga with a 060. What a difference. ^^ But I will never remove that 060 again, at least not without proper tools. They exist but are almost impossible to find nowadays. So I had to work with the things available to me and so I chose two slot covers for PC-slots and used them to push the CPU out of the socket by wedging one below each end of the CPU and slowly lift the old CPU out of the socket. That was already difficult on the old 040, but the 060 has a row of pins more, making it even more difficult to remove it without proper tools.
@@andrejrockshox No, Motorola 68k is a whole different breed of CPUs and not compatible with Intels x86. It was used in many computers of the 80s and 90s like the Amiga, Atari ST and several Macintosh models.
I have come to see the wisdom of leaving vertical mouse motion enabled in doom. You can get a nice speed boost if you push the mouse forward while moving with a button/key press at the same time. This can make it easier to make jumps across gaps. I have played more than enough games with full mouse look that I no longer have unwanted vertical movement so I have no need to turn it off. Not sure if the speed boost is better than just running but I have problems with holding shift to run so it works for me but may not be good for others
A tuned 386DX-40 with l2 cache and a fast ISA passive card got the stock game definitely playable back in 90s. Hi details with perhaps just reduced window by 2 steps. That's how I played the game back then.
I'm kind of surprised about this. I figured all doom development was in windows these days. The CMS sounds like the speaker wires are frayed or something. lol I also remember I didn't have a sound card so I had to use PC speaker. But I had wintex 3.4 or something like that. These days, slade is the modern wintex. Ironically I feel like slade still misses features that wintex had. Anyway......I found the PC speaker sounds. Extracted them and put them in a new WAD file after extensively modifying (randomly) them in a hex editor. The sounds I got out of that were beyond strange. It sounded like the most alien things you've ever heard of. Also the sounds didn't stop. It was more or less constant. Apparently the length of the file isn't how long the sound is like with WAV.
I played it on the smallest screen and I might be wrong but I think it was on 286. It was small and slow but it was soooo unbelievably magical! (I think I was 10 or 11 years old:)) Such a great game!
Thanks very much! :) .. It's a Cherry G84-4100 space saver PS/2 keyboard. The layout definitely takes some getting used to, but it's perfect for the limited space on my bench table and has a nice feel.
If only I still had my 386 DX 20... That thing could barely run Doom (I think its 64K of cache helped it a lot), but man, did I have some fun with it ! ISA graphics and Sound Blaster 2.0 - the "low" mode would certainly have alleviated bus contention.
Funny how entity culling is still used in games like Minecraft. Overall a very impressive project. My uncle was an electrical engineer and was into PC's so our family got some of his older ones whenever he upgraded, so I had access to 386 and 486 machines through the 90s, but I don't really recall playing Doom on the family PC for some reason, and perhaps it was due to the poor performance. Lots of Ports of Call, Civ1, Red Baron and Wolfenstein though. Oh, and Larry 😏 I wonder if games were open source back then, that FastDoom would've become a thing soon after the initial release. Or if the effects of optimization would've stifled hardware sales.
It was interesting when I learned about games running at 15-fps since I never would have thought that would be satisfactory, however that is the threshold for what can be considered smooth enough whether for 3D graphics or FMV. 50% faster 22.5 or 24-fps was my initial benchmark in the 90s for 3D games since films never looked jerky at that frame rate. Mostly from there it went into the video standard of 30-fps which isn't half bad as a locked performance standard. In the hindsight of the 90s there was some Anaglyph 3D and VR HMD use which more often than not had half the performance of standard game viewing, meaning you'd need at least double the minimum performance to have it work properly Ie. 30-fps just to do 15-fps.
I played Wolfenstein before until a friend showed me Doom on his 386/33. I thought there wasbt anything better. By now I remember though how the weapons while walking were appear to be "floating". But we didnt care, it was just amazing to play :D
Which was also really interesting: Episode 4 - already e4m1 - had so much lower framerate than the other episodes. I had to painfully see that on a friend with a 386. Episode 4 was literally unplayable.
Good point! I noticed this too on older hardware. Not sure what it is about episode 4. Doom 2s maps were much larger and struggled compared to the original Doom episodes as well I’ve noticed.
speaking about maximising performances on i386 and i486 was of course the choice of a graphic card.. if i remember well Tseng labs ET4000 isa and ET6000 were nicely boosting performances compared to other vendors devices.
I got ripped off with a "486" SLC-33 back in the Doom days. Basically a 386 with a few 486-style extensions. It ran terribly. I eventually upgraded to a 486-DX2-80 and it was an entirely different experience. Even the final levels of Doom II were playable and relatively smooth!
It just hit me that it was INSANE that Doom didn't have a proper options menu for players to turn off the effects, visplane drawing etc. Considering how difficult it was to run...
I spent many a happy lunch hour playing Doom with fellow enthusiasts at work on a coax network we set up for it so we wouldn't spam the corporate network with IPX broadcasts.
I had i386-SX (20 Mhz or 40 with "turbo") and had 4mb RAM with trident 8900 vcard. No soundcard though. I played both Doom and Doom2 on it with limiting window to 320x240 and it was playable at least and I finished both games :) I even played Warcraft 1 on thaty PC ) Fun times ) Also I can personally attest to that Windows 95 OSR 2 can be installed on i386 SX with 4Mb RAM and 170Mb HDD. Installation itself took 5 hours but after that it even worked :)
"I've heard stories of people beating the game on hardware that couldn't do much better than a few FPS." My friend, I played DOOM and DOOM II start to finish several times on a cobbled-together 486SLC-33 in a little bitty window in low detail mode. I can't stress how big a deal DOOM was to us 90s kids, and how desperate we were to play it. If you had a 486 DX2 in 1993, you were a god! And your parents were probably rich.
Victor here! Awesome coverage of FastDoom, I really love all the time and effort you've put in this video. I ended up watching it in tears because it means a lot to me. Also thanks @vswitchzero for including the shoutout to all developers that have helped in the project.
BTW, to all of you who are watching this video, put in the comments what functionality you would like to see in FastDoom :D
Thanks so much for all the hard work you have put into this project and all the others who have contributed as well! It's an amazing accomplishment and I really look forward to what FastDoom has in store in the future 😃👍
I'd like to see the 350 line mode of VGA used in FastDoom (175 if double scan is set in registers). Could give an extra 1FPS on a 386. It exists in the VGA standard to emulate EGA modes for backward compatibility, but you can use those timings with 256 colors (it's basically the same as the 400/200 line mode from total count and pixel clock standpoint, but with inverted sync to tell the monitor to stretch the picture).
Brutal FastDOOM! :D
I kid, I kid.
Rotating overlaid automap like in Duke Nukem 3D and Doom8088 ;)
I'd like some "BrutalDoom emulation"... some of the gory stuff but somehow built into the engine so that its reasonably fast enough on old systems.
I first played on a 386SX-16. Smallest screen, low detail. I didn't care one bit. I was 10, so still thought it was awesome.
SAME !
i first played on that too at a friends when i was 14 before i finally got a 486DX2-66 quite some time later, it ran great! good times!
It's like when I was a kid the game every kid wanted to play with GTA Vice City, and when I was 10 I had it on PC and I played it on integrated graphics on the lowest settings at 640x480, probably at 15-20fps and I didn't care.
@@EpicSqu1rrel Yeah, I saved up my allowance for over a year to build my own 486 (Cyrix DX2-80). Seeing the game run in its full glory for the first time was an almost spiritual experience...honestly in the top 10 or 20 best moments of my life lol
Cheers.
Oh yes, this brings back memories. 386SX-16 and a Trident TVGA ISA graphics card, SPEAKER.EXE for sound. I played for months and months, even more so after I discovered IDKFA and his cousins ;) IDDQD is still melted into my brain...
I would love to hear an interview with Carmack to talk about all these optimizations and his opinion on them and how they effect the game. Amazing work on this video!
This! I hope someone makes this happen.
I admit that I haven't watched it all, so I do not know if he tackles your question but if you search "lex fridman carmack" you will find a 5hr interview with the legend that is Carmack.
As a kid back then I didn't even know there was such a thing was better performance, at least not until I started building my own systems. First x86 we had as a family was a 386, and any slideshow or framerate issues have not managed to lodge themselves into my memory.
All computers had DOOM back then, I remember playing it even on the receptionist's computer at my mom's workplace when they didn't need to use it.
I remember not only having a second hand 386 but only having 4mb of ram and having to do autoexec.bat magic to be able to free enough memory to play Doom/Doom 2, and also remember a later level with lots of demon heads and that was not a slideshow but like a disney movie render, many seconds per frame, very unplayable.
True, I was playing Doom 2 at like 10-15fps apparently on my 486 sx25mhz and didnt know it until i saw it run on my friends pentium. Couldnt go back to that after but enjoyed it without issues before that. I also shrunk the screen for better performance.
Really drives home how profound an accomplishment the SNES doom port was.
The various console ports of that generation were pretty impressive
It was pretty impressive indeed, but it wasn't quite 'proper' Doom, it ran on an entirely different engine specifically made for that port.
32x port was my first experience and part of what made that 160 dollar add-on very much worth it to me ...I wouldn't get my first pc until 2003 so I had no clue I was missing angles or levels...just enabled god mode and chainsawed the heck out of everything!
10 frames per second might be an accomplishment, just not one that was worthwhile imo
@@Dormat25 At least you didn't need a mushroom on the SNES. And a slight overclock was all it took to improve the performance.
And it included PC level layout not the cut down Jaguar layout.
A wonderful salute to the great Carmack. Think of all he accomplished in so little time! For the first time too!
Another great video. I can still remember when Doom came out and I had 486DX2/66 VLB system. I thought I had died and gone to heaven. Fast forward 30 years and Doom is running smoothly on systems no one thought possible. You just have to tip your hat to the Vintage Computer community and all the ingenuity out there. It is really amazing!
I recall back in high-school reading about a speed-optimized version of Quake to get it running on older hardware so even a 486 could run it smoothly. One of the methods it used to do this was the option to turn off perspective correction for world geometry. Unfortunately, I don't recall the name, but if you can find it and do a video on it, that'd be great.
6:45
*LEA* Load Effective Address (calculate address offset)
*SHL* Shift Left (integer multiply by 2)
*SHR* Shift Right (integer divide by 2)
ACKSHUALLY :^)
it's more like multiplying and dividing by a power of 2. You don't have to enter in SHL 5 times to multiply by 32. You can just do SHL EAX, 5 or whatever
@@sharoyveduchi Indeed. I didn't want to overload people with (pardon the pun) too much information. 🙂
@@sharoyveduchi A bit shift is a lot faster since no actual calculation takes place, it just moves all the zeroes and ones to the left/right by n times
Potato looks like the SNES version but playable
SNES Doom was my first experience with Doom. I don't even remember where I got the red cart from, as a kid. Now after playing Doom on a PC well over 2 decades its astounding how bad it looks, but back then it looked and ran pretty amazing for the time, I felt. I played on the lower difficulties mostly, as it was plenty challenging.
@johndoe7270 It's an achievement that's for sure. With the Snes mouse it's a little more playable but still best to avoid.
@@Retro-Hamer The lack of circle strafing was my biggest gripe. Now I'm curious about the mouse. I knew of it but thought it was for Mario paint.
@johndoe7270 Several games used it, including Lemmings 2
now i need to experience that version😅
A very interesting watch! Thanks for taking the time to do all the testing and configuration.
I'd heard of FastDoom but didn't really know what it was actually about, this video is an excellent overview. Thanks!
Thanks so much, Rees!
I wish it was a thing when I was playing Doom on my 386DX-40 :)
Or my SX-33... awesome video!
Yeah, same. I only had a 25mhz 486SX. We definitely had to get used to the low res mode.
Right?
Although I do think it made me a better player once I started playing multiplayer from a more powerful system.
Doom was the reason why I overclocked my 486SX 25 to 40Mhz
Adding a coprocessor to a 386 or to 486 SX will make a huge difference.
When you said textmode, my first thought went to the old text adventure games. "You enter the room. A monster approaches you from the left. Enter next command."
Hahaha
TELL DOOMTURTLE LEFT 30
TELL DOOMTURTLE FIRE
that was only a little before my time but I do remember some text games.
PULL TRIGGER
> you don't have it
FIRE GUN
> you can't do that
FIRE WEAPON
> you can't do that
ASFAWIRGHAERHAERH
DoomRL has a text mode similar to rogue
"burninate the thatched-roof cottages"
upgrade from a 386 they said! haha! all I had to do was wait 30 years and a patch came out for me.
I tried fast Doom on an OG 33Mhz Intel 486 DX. I managed to get the performance up to a lower end 50mhz 486 without resorting to shrinking the screen size or halfling the resolution. And since my board allowed me to overclock the 33 to 40Mhz, it performs very similar to a DX2, but that's also because I had some L2 cache to help with that. Back in the day, 33Mhz was enough to get a decent experience but Fast Doom definitely had features I wish existed in the 90s, because then, I only had a 25Mhz SX.
I understand that pain all too well. The family computer from December 1992 to January 1997 was a Pionex 486sx25 with 4mb of RAM from Sam's wholesale. We got DOOM in fall of 1994 and two months or so later dad came home with DOOM 2 and very shortly after getting DOOM 2 dad doubled the memory to 8mb for us. That extra 4mb of RAM made a huge difference and DOOM 2 level 16 and level 30 no longer froze. I will NEVER forget when we FINALLY got the Pentium 133 in January 1997 and experiencing that MASSIVE performance jump and could finally use the plasma rifle and BFG without killing the game.
LEA, SHL, and SHR are all x86 assembly instructions.
lea - Load effective address
shl, shr - Shift Left, Shift Right
Basically that Green CPU is really good at accessing memory and doing bitwise operations on values in that memory.
Oh, back the in the day I wrote a ModeX pixel*pixel scrolling RPG engine in Quickbasic. One of the most important parts of writing that was figuring out how I could reduce the port access to switch planes. I eventually figured out how to do the entire screen largely without a bunch of extra multiplications and divides, and I could do the entire background for one plane in one go. Talking about potato mode reminded me of that.
yeah, i/o instructions were significantly slower in anything above 286, which was weird, since even the oldest home computers like commodore64 etc. had memory mapped i/o, but 8086+ didn't. but then again, intel did not create the 808x to begin with.
This is amazing! Also it's kinda hilarious how development on the DOOM engine continues to this day in two very different directions. Optimizing it for 386/486 vs. pushing the most advanced DOOM source port to its absolute limits with games like Selaco and some other notable game mods/TCs.
Also, potato mode kinda reminds me of POOM (Pico-8 DOOM Demake...it's quite impressive! And Pico-8 runs at 128x128.)
Shl, shift left, shr, shift right.
Assembly code guesses.
If you shift a number to the left, you multiply by 2.
Shift to the right you divide by two.
Makes sense, 15 shifted to the left (decimal) multiples by 10 to give 150.
Shift to the right, 15 becomes 1.5 or divides by 10.
Remember assembly tends to work on base 2.
The gamers nexus style performance charts while talking about early computers and Doom is amazing. Need more videos like this.
As a fan of Gamers Nexus, that means a lot! Thanks for watching! 😁
Very cool! Wish I had this back in the day for my 486/33 laptop!
a Laptop back in those days ... must be very frustrating spending a couple of thousands for a Laptop and then not able to play doom in full glory :D
Thanks very much for watching! 😁
John Carmack himself said, after Quake was released, that Doom could be much faster with his newer coding knowledge. Nice to see others picking up that part!
I hope someone tries using precalculated PVS like quake, this is mostly low level optimizations, which are interesting, but high level optimizations can be very valuable as well.
OTOH if you look at the numbers here, fastdoom isn't that much faster though. Sure in some cases, but on higher end hardware and best settings the difference is smaller. I love this work and think he did a great job, but as you can see the game was quite well optimized already. Another thing one could optimize is the footprint of the assets with modern codecs.
Heretic was so under rated, great game for its time.
Lan was a blast on it.
did you play descent? Or duke nukem3d? I was obsessed with DN, even bought the level design handbook. Probably still have it at my parents house.
@@chickenfarmer209 I was big into Lan with a group and we didn't play those for reasons I can't quite remember. I think they were better single player.
@@chickenfarmer209 Descent 🥰
It had actually great AI and the enemies were MODELS. Quake was not the first one :P
This is crazy! What a wonderful endeavor thanks for running the numbers 🎉
Awesome video. My first PC was a used 386DX and yep, it was postage stamp window in low detail for much of the game (well the Shareware version) for me. I even disabled music and listed to Rage Against the Machine or Therapy instead lol. Man it was hardcore. But I did occasionally stop in a room, go full screen, and hit the high Detail toggle, just to look in awe at the graphics. What a time. What a game.
Cool video dude. Quite the effort you put on it. I saw the page about fastdoom on vogons I think. I thought is just a slimed down doom port. But it is much more. I will have to try fastdoom on my 486 sx 25 and sx2 50 with isa video cards.
I was a student that "ran" the AutoCAD systems in our drafting/architecture class, and we had a cursed mix of 386es and Pentiums. I setup deathmatch, and the 386es were the handicap boxes...
I personally had a 486SX25.
This would have been so nice back in the day.
I appreciated the developer shoutout!
2:40 I guess my 486SX-20 wasn’t popular then! It did run Doom, I think our brains back then filled in the missing frames 😅 I got the opportunity to talk with John Romero at a recent convention in the UK, he said they called the SX line of 486’s internally as “suxs” to go along with its lacklustre performance back in the day 😂
A 20MHz SX is indeed pretty rare and hard to find these days. There is even a 16MHz 486 SX that was found in a limited number of OEM systems. Most 486 boards have a minimum bus frequency of 25MHz, so it's not easy to run them without overclocking them. Some older ISA boards with a crystal socket can be adapted for them though. Thanks for watching!
I ran Doom on an Intel 486DX 33MHz overclocked to 40MHz with a 1MB VLB Cirrus Logic VGA card. It wasn't terrible but wasn't ideal either. This port would have been amazing back in those days.
the vga speed problems were a very mixed bag, back then. although, vlb did ensure faster transfer speeds, it didn't meant better actual speed in doom. there were a lot of vlb cards that performed like crap, and some isa that performed very well, due to having buffer chips, so being able to respond to read/writes much faster. the problem was that they were expensive and you had no clue which cards were which, until you bought them and tried them.
12:55 For someone that is not familiar with programming, that's a great start! I would recommend writing more of BASIC or anything relatively easy you can get your hands on, it's a lot of fun!
Anyway thanks for sharing, awesome video 😁
Thanks very much! 🙂👍
Thanks for introducing me to this source port. This is such a cool project.
this is awesome, thank you for making this video! its cool to see doom for everything even if it couldnt in the first place
Thanks so much for watching! 🙂👍
Great video!
I seriously did not remember that Doom was such a 486 dependent game. I'm old now and my memory of that era has faded. It's really easy to forget that Doom was such a beefy game looking back from today.
486s were extremely common and quite cheap by the time doom released in 1993 so a large percentage of PC owners would have been able to run the game and probably didn't notice how cpu heavy it was. Top end 386s were still being sold but with pentiums coming out in 1993 most stores had switched over to selling 486SXs and SLCs as their main budget systems. It's not uncommon to find magazine ads from 1993 for sub $600 486 systems and it was possible to upgrade an older system to a 486 for just $200 by getting a new motherboard and cpu.
@@dgmt1 Makes sense, I grew up poor and have a disability so when I got a new PC it was because family spoiled me with one every so many years, and I didn't realize how spoiled I was until I look back at what the prices would be for what I had at the time. So yeah, I definitely had more than a good enough PC back then, but the timeline of things is a blur for me now.
I've been using zDoom for years now to get my Doom fix, great to see so much effort going on at the other end of the scale. I originally played Doom on a 486SLC-33 and could only dream of the frame rates these tweaks are capable of!
Cool, I'll have to try this. Back in the day I played doom on an sx25, I was happy, your benches say I should have been otherwise😬 standards were differnt back then.
Watching you play makes me want to download og doom on my ROG. I just recently saw masters of Orion on steam and it is still an amazing game.
Amazing work!
Genuinely couldn't believe this ran acceptably on my Pocket386 (386SX-40 8MB RAM) with a few of the options tweaked - what an amazing project!
After all these years we are still talking about doom!!!! awesome
So doom need 486 DX66 to run full potential? That was top of the line computer back then! Not to mention a VLB graphics card. Expensive!
First Pentium was released March 22, 1993. Doom was released December 10, 1993. So to say a 486DX2/66 was "top" of the line is slightly inaccurate.
@@SeeJayPlayGames well not everyone had the latest stuff. First pentiums also had the division bug. I got my first 486sx33 in late 1994 or so. First pentium in 1996. Before 1994 had to work with a b&w 8088.
@@miasmator i get that, and I actually gave the first Pentium a miss because I had heard about the bug. The 90s saw so much development and I spent so much on technology that I think I actually messed up my future. AKA present. So don't be so jealous.
Thanks for showing this off; I hadn’t heard of fastdoom!
Great topic. So many videos about Doom show modern Doom ports with upgraded textures. Few show the original Doom and fewer still talk about how difficult it was to run it.
Our first family computer was a Pentium 133 in 1996, so Doom was no problem. Sometimes I would run Doom II's Icon of Sin level in god mode to see how long it would take to crash (a few hours).
But everyone else we knew were running older computers from 1990-93, so couldn't run Doom properly. Basically only rich people could run Doom at full capacity when it was new.
I was lucky to have a Pentium but still had to wait until 1996 to play at all.
Then the cycle kept going with Quake... would crash in a few minutes.
Hopefully one day computers will plateau such that the best games are affordable to everyone when new, rather than having to wait years.
> Basically only rich people could run Doom at full capacity when it was new
I upgraded my 286-16 to a 486DX33 in 1993 for around $200. I came from a working class family, as did all my friends, and most of us had part-time jobs to pay for any hobbies like computers. We were definitely not rich and yet pretty much all of us had at least 486s by around 1993~1995.
>Hopefully one day computers will plateau such that the best games are affordable to everyone when new, rather than having to wait years.
The notion that you needed an ultra expensive PC to play modern games was false in the 80s and 90s and is still false in the 2020s. A budget mid-tier system in 2024 will run pretty much anything; it just won't do it at 4k. I built a i7-9700k system with a GTX1070 in 2019 for around $800 and it can still play pretty much any game in 2024 at 1080p. My current system (ryzen 5 6700 + GTX4060) was also sub $1000 yet can play everything at 1440p. Even at the extreme end an i7-4790k+GTX1060 will still run a fairly high percentage of games yet only costs $200-300. Keep in mind most games are playable on a steam deck which is not even close to the power of any of these systems.
Cool breakdown. I use fastdoom on an old raspberry pi with dosbian and it works great there too.
I have a ibm ps2 model 70 25mhz combined with a xga graphic card. Running fast doom around 25fps low detail. Totally playable 👌
Please never call it X, it's Twitter and will always be Twitter
Agreed! :)
x :P
Personally, I call it garbage.
Boomer vibes are strong with this one.
@@garypinholster1962 You don't even know what that means
We have access to much better development tools than in the past. Unless you were an absolute genius, it was impossible to reach 90% efficiency in the past, 50% would be considered good. But today, it's actually possible to reach 90 even if you're not a genius.
Increasing cache had a massive impact.
True! I forgot to mention in the video that this 486 board had been upgraded from 256KB to 512KB.
@@vswitchzero Yeah back in the day I went nuts wondering why I didn't get much improvement on a 386DX when I Overclocked 33 to 40mhz and upgraded from 16k to 64k. That was my first introduction to chip counterfeiting! Luckily I had some 32k hanging around and figured it out. :D
*chuckles in X3D*
@@Wahinies Completely different animal, there was no l1 only the off chip "l2" while x3d is l3 and internal to the chip just like the l1 and l2.
I ran doom on a 386DX40 and it ran smoothly. In fact the m,anual for Doom specified a SX as the minimum system requirement.
Carmack would be proud
Lucky enough to have a sound card 😂
Ponder that for a while ❤❤❤
I love ports like this one, great job everyone
My introduction to doom was a 40 MHz AMD 386. With 20 MB of RAM, as well as an added coprocessor, it actually works really well. The FPU makes the difference.
Just found your channel WTF you are amazing
Thanks so much 😁
Back in the mid 90's I played through Doom on my 386DX40 which had a really good ISA graphics card (can't remember exactly what it was now) and fast system memory. It was actually fine, very playable. On some of the later levels with millions of mobs I switched it to blocky mode to keep it running well.
9:35 decino released a whole video on the partial invisibility effect today
Decino videos are awesome, thanks to them I understood much better the inner workings of Doom and it's quirks
This version of Doom is also the preferred version to play on the AO486 core on the MiSTer FPGA system which creates a Tseng ET4000, 486SX-50, SB16, MIDI 330 PC.
I was going to say, this seems ideal for AO486. I wonder how much of the optimization work might also be applicable to ARMv4, used by the GBA. The port of prboom already runs quite a lot better than the original retail copy of the game did, and perhaps fastdoom can run better still.
LEA, SHL, SHR are Assembly Language instructions abbreviating “Load Effective Address”, “Shift Left”, & “Shift Right” respectively. Doom IIRC uses fixed point for floating point numbers, so it will use the latter two instructions a LOT to do its mathematics calculations.
- ex game programmer
I first played on a 386dx40 with a tseng 8900 isa graphics card. I was blissfully unaware of how crap it ran until i went over to a friend's house a week later. He had a brand new Gateway 2000 DX2/50 and a sound blaster, and I was amazed that the gun swung back and forth when moving.
Luckily within a few months I was able to upgrade to a 486 DX2/66 and made my Doom playing much more enjoyable.
I bought the Kingston Turbo chip to replace my DX-40 to run Doom faster. It was a drop in AMD 586 upgrade for 486 motherboards. It helped a little. I upgraded to a AMD K6 the next year in 1996.
Me and all my Amiga friends bought 486s within a couple of months of Doom coming out. We didn't spend anything like $5000-$6000, even including VGA monitors. Pretty sure I got a DX33 as the sweet spot between fast enough to run Doom properly and not too expensive. From memory we spent less than $1000 and that's Australian dollars. We all bought generic beige boxes from mom-and-pop PC shops.
yeah, doom was essentially the death of every other home computer, except for the pc.
$3900 AUD for a complete 486-DX2 66 system 1994 dollars and a perfectly Classic Amiga 2000 thrown out instead of being kept.
I played DooM on a 386DX-40 with 128KB L2 cache and a Tseng ET4000. I did not notice any drawbacks, and had no idea as a kid how much of a high-performance spec this was for a 386-class machine.
So many really cool Doom and other retro projects going on.
I have Doom Resurrection for the Sega 32x and that aims to do a lot of these same optimizations and options for that system.
People getting Doom running all over the place and really well in some cases.
13:54 - That is some Chunky E1M1!
14:35 - And this is just CHUNKY Doom!
1:48 Installed a 68060 in a non-zif socket a few weeks ago. I never aged so many years in such a little timespan. And worse then installing the new CPU was removing the old one. ^^
I can imagine. The 060 was a rare and expensive beast indeed, the king of the 68K world. What did you install it in, Amiga?
is that IBM PC compatible? did you solder it?
@@andrejrockshox68060 is very much not going into an IBM-compatible.
And he didn't solder it, he put it in a socket.
@@MoultrieGeek Upgrading a 040 turbocard for the Amiga with a 060. What a difference. ^^
But I will never remove that 060 again, at least not without proper tools. They exist but are almost impossible to find nowadays. So I had to work with the things available to me and so I chose two slot covers for PC-slots and used them to push the CPU out of the socket by wedging one below each end of the CPU and slowly lift the old CPU out of the socket. That was already difficult on the old 040, but the 060 has a row of pins more, making it even more difficult to remove it without proper tools.
@@andrejrockshox No, Motorola 68k is a whole different breed of CPUs and not compatible with Intels x86. It was used in many computers of the 80s and 90s like the Amiga, Atari ST and several Macintosh models.
FPS on post code analyzer LMAO so fucking cool. I remember upgrading my 5x86-133 from ISA to VLB and was overwhelmed by the new smoothness ;)
If only this was a thing 30 years ago!
I have come to see the wisdom of leaving vertical mouse motion enabled in doom. You can get a nice speed boost if you push the mouse forward while moving with a button/key press at the same time. This can make it easier to make jumps across gaps. I have played more than enough games with full mouse look that I no longer have unwanted vertical movement so I have no need to turn it off. Not sure if the speed boost is better than just running but I have problems with holding shift to run so it works for me but may not be good for others
I played and beat Quake 1 on a dx-2/80 with 8mb RAM back in the day. I can imagine people doing the same to beat DOOM a year or two prior.
I tried (and failed) to play quake on my DX-33 back in the day. Shortly after I got a P-166 with a Voodoo 1 which was a massive upgrade!
A tuned 386DX-40 with l2 cache and a fast ISA passive card got the stock game definitely playable back in 90s. Hi details with perhaps just reduced window by 2 steps. That's how I played the game back then.
Damnit, now I'm going to have to get some really slow hardware out of storage to test this myself!
There is one more thing you can do. OC CPU. 😊
Young me (and his 386 DX40) is really eating this up!
Doom was the last new video game i played. I discovered MIDI sequencing and that was it!
Great video! I wonder if this'll work for my Pentium 133...
I'm kind of surprised about this. I figured all doom development was in windows these days. The CMS sounds like the speaker wires are frayed or something. lol I also remember I didn't have a sound card so I had to use PC speaker. But I had wintex 3.4 or something like that. These days, slade is the modern wintex. Ironically I feel like slade still misses features that wintex had. Anyway......I found the PC speaker sounds. Extracted them and put them in a new WAD file after extensively modifying (randomly) them in a hex editor. The sounds I got out of that were beyond strange. It sounded like the most alien things you've ever heard of. Also the sounds didn't stop. It was more or less constant. Apparently the length of the file isn't how long the sound is like with WAV.
Thanks for watching! That’s very interesting about the PC speaker sounds. Always something very nostalgic about PC speaker audio 😁
@@vswitchzero lol for the most part no. I hated it and was tempted to cut it off many times. Especially after I got a sound blaster.
I played it on the smallest screen and I might be wrong but I think it was on 286. It was small and slow but it was soooo unbelievably magical! (I think I was 10 or 11 years old:))
Such a great game!
Doom requires a 386 to run.
Great video, as always vswitchzero! BTW, forgot to ask you, what's the keyboard you're using? Looks very nice, must be a pleasure to type on.
Thanks very much! :) .. It's a Cherry G84-4100 space saver PS/2 keyboard. The layout definitely takes some getting used to, but it's perfect for the limited space on my bench table and has a nice feel.
It's funny... Potato mode does not offend me all that much! EGA and CGA mode... I draw the line! (cool to see though)
I actually really like potato mode. The extra-wide pixels give it an Atari vibe.
It wasn't shown in this video but there's also a monochrome mode if you want some of the original details but still hate being able to see.
If only I still had my 386 DX 20... That thing could barely run Doom (I think its 64K of cache helped it a lot), but man, did I have some fun with it !
ISA graphics and Sound Blaster 2.0 - the "low" mode would certainly have alleviated bus contention.
Oh hey, I think I have that same cherry keyboard. Good taste!
Funny how entity culling is still used in games like Minecraft. Overall a very impressive project. My uncle was an electrical engineer and was into PC's so our family got some of his older ones whenever he upgraded, so I had access to 386 and 486 machines through the 90s, but I don't really recall playing Doom on the family PC for some reason, and perhaps it was due to the poor performance. Lots of Ports of Call, Civ1, Red Baron and Wolfenstein though. Oh, and Larry 😏
I wonder if games were open source back then, that FastDoom would've become a thing soon after the initial release. Or if the effects of optimization would've stifled hardware sales.
Wild - I'd completely forgotten that my old 486 didn't need a cooling fan!
It was interesting when I learned about games running at 15-fps since I never would have thought that would be satisfactory, however that is the threshold for what can be considered smooth enough whether for 3D graphics or FMV.
50% faster 22.5 or 24-fps was my initial benchmark in the 90s for 3D games since films never looked jerky at that frame rate. Mostly from there it went into the video standard of 30-fps which isn't half bad as a locked performance standard.
In the hindsight of the 90s there was some Anaglyph 3D and VR HMD use which more often than not had half the performance of standard game viewing, meaning you'd need at least double the minimum performance to have it work properly Ie. 30-fps just to do 15-fps.
IIRC, I played the Doom 1 shareware just fine on our 386dx40 using the Low Detail mode. On a 13" monitor of course.
I played Wolfenstein before until a friend showed me Doom on his 386/33. I thought there wasbt anything better. By now I remember though how the weapons while walking were appear to be "floating". But we didnt care, it was just amazing to play :D
Which was also really interesting: Episode 4 - already e4m1 - had so much lower framerate than the other episodes. I had to painfully see that on a friend with a 386. Episode 4 was literally unplayable.
Good point! I noticed this too on older hardware. Not sure what it is about episode 4. Doom 2s maps were much larger and struggled compared to the original Doom episodes as well I’ve noticed.
speaking about maximising performances on i386 and i486 was of course the choice of a graphic card.. if i remember well Tseng labs ET4000 isa and ET6000 were nicely boosting performances compared to other vendors devices.
A FastDoom version for the Amiga would be nice
The CMS option reminds me of when you picked up a Doomguy toy in Doom 2016.
Haha so true!
That's interesting, I didn't know about fastdoom!
I got ripped off with a "486" SLC-33 back in the Doom days. Basically a 386 with a few 486-style extensions. It ran terribly.
I eventually upgraded to a 486-DX2-80 and it was an entirely different experience. Even the final levels of Doom II were playable and relatively smooth!
It just hit me that it was INSANE that Doom didn't have a proper options menu for players to turn off the effects, visplane drawing etc. Considering how difficult it was to run...
I spent many a happy lunch hour playing Doom with fellow enthusiasts at work on a coax network we set up for it so we wouldn't spam the corporate network with IPX broadcasts.
Great video and an absolute nostalgia dive. I’ll make you a deal. I will subscribe if you promise to never say “very unique” again.
Deal! 😁 .. thanks for watching!
I’ve watched some of your previous videos. You make excellent content! Looking forward to watching all of them and your next vid.
I had i386-SX (20 Mhz or 40 with "turbo") and had 4mb RAM with trident 8900 vcard. No soundcard though. I played both Doom and Doom2 on it with limiting window to 320x240 and it was playable at least and I finished both games :) I even played Warcraft 1 on thaty PC ) Fun times ) Also I can personally attest to that Windows 95 OSR 2 can be installed on i386 SX with 4Mb RAM and 170Mb HDD. Installation itself took 5 hours but after that it even worked :)
The flat textures option is very reminiscent of the SNES version of DOOM which used the same technique.
"I've heard stories of people beating the game on hardware that couldn't do much better than a few FPS."
My friend, I played DOOM and DOOM II start to finish several times on a cobbled-together 486SLC-33 in a little bitty window in low detail mode. I can't stress how big a deal DOOM was to us 90s kids, and how desperate we were to play it. If you had a 486 DX2 in 1993, you were a god! And your parents were probably rich.