viti95 Posted May 8, 2021 (edited) 16 hours ago, Blzut3 said: Man, Doom is so burned into my brain I can still see a full color image in there. XD Honestly I didn't expect dithering to look that good. Now even more curious if it would be technically feasible to support -left/-right on a single machine using dual head? Before I figured maybe it would only be useful for throwing the automap up or something like that. I think in dual head the Hercules card has limited resolution? Or is that only the case when paired with CGA? I guess it's possible to implement dual head Hercules + other video modes. The Hercules base address it's 0xB0000 for it's first video page, and it only uses 32Kb of memory in 640x400 mode. Because of this you lose access to the second video page, but having a backbuffer for rendering avoids this problem. Automap in realtime it's doable since the game renders first and then the automap it's generated on top. @roboticmehdi2 well i've tested the same IWAD and found that the bug happens with real hardware but not in DosBox-X. Sigh. Will fix it for the next release. Thanks for reporting the issue. Edited May 9, 2021 by viti95 1 Share this post Link to post
viti95 Posted May 19, 2021 New comparison between Mode Y and Mode 13h on a slow 486 processor (Cyrix Cx486DX @33MHz, Cirrus Logic VLB video card). This result surprised me, didn't expected it. Now I understand why Heretic feels smoother than Doom on some 486 computers. https://www.youtube.com/watch?v=InNNSd1peWk Mode Y: 16'429 fps Mode 13H: 19'431 fps (18% faster) 2 Share this post Link to post
viti95 Posted May 24, 2021 Finally new release!! FastDoom 0.8.1 New video modes!! VGA Mode 13h (320x200 256 colors, without page flipping). Same mode as Heretic/Hexen. Only high detail mode is implemented, but it's usually faster than the original Mode Y. Recomended for fast 486 processors and upwards CGA (320x200 4 colors). Ugly, needs a better conversion algorithm. Requires a fast CPU. Based on Mode 13h CGA (640x200 monochrome, ordered dithering 2x2). Requires a fast CPU. Based on Mode 13h EGA (320x200 16 colors, page flipped, 128Kb VRAM minimum). SLOW, most ISA 8-bit EGA video cards can't update fullscreen at decent framerates. Based on Mode 13h Hercules (640x400 monochrome, ordered dithering 2x2). Requires a fast CPU. Based on Mode 13h Added basic IWAD selector on bootup (if multiple IWADs are detected) Fixed Super Shotgun animation As always more optimizations. Now text modes are much faster Fixed multiple bugs Removed color correction parameter "-fixcolors" for 16 color modes. Easier to use https://github.com/viti95/FastDoom/releases/download/0.8.1/FastDoom_0.8.1.zip 5 Share this post Link to post
viti95 Posted May 30, 2021 (edited) Another dev update, some video cards really like VBE 2.0 modes rather than mode 13h. This is a simple test with an ATI Rage II PCI and a Pentium III 550MHz: Mode 13h: 177.133 fps Mode VBE2: 300.277 fps (69.5% faster) This mode is giving me lot's of problems and system crashes, any help would be really appreciated (https://github.com/viti95/FastDoom/commits/VBE2) Edited May 30, 2021 by viti95 4 Share this post Link to post
zokum Posted May 31, 2021 I think Quake has decent VBE 2.0 support. I remember this being slightly faster on my P100 back in the day. No idea if this is part of the released source code, but could be worth a look? It also had support for many other interesting unchained modes. Would be interesting to see Doom in 320*400. Aspect ratio should be fairly easy to keep correct and you would get a lot more details. The classic 640*400 is another good one. 0 Share this post Link to post
viti95 Posted June 8, 2021 (edited) Forgot to post it here, FastDoom 0.8.2 has been released! Small update, just a big bugfix (Ultimate Doom switches weren't working right) and new VESA 2.0 modes implemented. They are usually a little bit faster on VLB and PCI video cards. You can grab it here: https://github.com/viti95/FastDoom/releases/tag/0.8.2 On 5/31/2021 at 10:34 AM, zokum said: I think Quake has decent VBE 2.0 support. I remember this being slightly faster on my P100 back in the day. No idea if this is part of the released source code, but could be worth a look? It also had support for many other interesting unchained modes. Would be interesting to see Doom in 320*400. Aspect ratio should be fairly easy to keep correct and you would get a lot more details. The classic 640*400 is another good one. For now my idea is to support only 320x200 8-bit color resolution, as the idea is only to make Doom run well on every old system and add support for more hardware. Thanks for the idea of using the Quake source code, i've not used it because OpenWatcom is very different compared to DJGPP, but give me a good idea of how VBE2 works! EDIT: New video! The Rendition Verite V2200 loves this new mode. Mode Y: 14.446 fps Mode 13h: 59.150 fps (409% faster, seems to have applied VSync by hardware and locked to 60fps. FastDoom VSync option was disabled) Mode VBE2 (LFB, PM): 305.446 fps (2114% faster, just wow) Edited June 8, 2021 by viti95 3 Share this post Link to post
xttl Posted June 9, 2021 On 5/19/2021 at 9:02 PM, viti95 said: New comparison between Mode Y and Mode 13h on a slow 486 processor (Cyrix Cx486DX @33MHz, Cirrus Logic VLB video card). This result surprised me, didn't expected it. Now I understand why Heretic feels smoother than Doom on some 486 computers. Lol, I remember back in the day a game reviewer in a local magazine theorized that Raven added some optimizations to the engine in Heretic since it was smoother on the reviewer's system than Doom 2, and even congratulated them for this supposed feat. I always thought that was bullshit (I knew the engine was *older* than in Doom 2, and on my system there wasn't really any noticeable difference in scenes of similar complexity), but this explains it well. (also, isn't the LoS algorithm used by eg. enemies looking for the player faster in <=v1.2 as well, after all? only learned about that one years later...) 1 Share this post Link to post
AnotherGrunt Posted June 21, 2021 @viti95 VESA 2.0 modes? Hmm. What about adding direct-render for linear framebuffer modes? 0 Share this post Link to post
viti95 Posted June 22, 2021 16 hours ago, AnotherGrunt said: @viti95 VESA 2.0 modes? Hmm. What about adding direct-render for linear framebuffer modes? That's one of the ideas i'll try to implement in FastDoom, don't know how will it perform. I'm pretty sure that fuzzy rendering will be slower, as reading data from the video card is slow. But could be faster in general as it avoids writing to the backbuffer. My 2 cents is that it will be faster if there isn't much overdraw in the scene. Anyway first i've to fix some bugs that were introduced in the 0.8 release (mostly crashes and some switches not working properly) 0 Share this post Link to post
neozeed Posted July 16, 2021 I just found this by accident and WOW viti95 this is amazing, the holy grail of MDA,CGA,EGA DOOM! Also props for using the Duke3d sound engine totally sidesteps the DMX issues! VESA is problematic... don't kill yourself too bad, when doing q2dos I did a simple vesa2 flat buffer and it worked great. for me. on new nvidia (well new then) cards. but everyone and their brother cried about how everything else didn't work, especially dosbox. the advantage of q2 is that I was using MSVC/GCC so it was trivial but the vesa code to watcom will need help. or port the audio from tasm/watcom to gas/gcc.. I dont know which is less painful tbh. but wow I have this running on dosbox with EGA in EGA and it looks like the c64 port we always needed... lol but thanks! I almost feel confident like I can downport all kinds of crap to cga/ega 'just because'. 2 Share this post Link to post
zokum Posted July 16, 2021 Someone made a portrait mode Doom called Toom. Since portrait mode CRT screens were a thing back in the 90s this might be one of those wacky modes your ports could support. And if it had real-time detection of the screen being tilted over, that would be awesome. The port was inspired by youtuber LGR covering such a monitor from the 90s and lamenting the lack of a suitable Doom port.https://hackaday.com/2021/07/11/but-does-it-run-toom/ 1 Share this post Link to post
Dark Pulse Posted July 16, 2021 3 hours ago, zokum said: Someone made a portrait mode Doom called Toom. Since portrait mode CRT screens were a thing back in the 90s this might be one of those wacky modes your ports could support. And if it had real-time detection of the screen being tilted over, that would be awesome. The port was inspired by youtuber LGR covering such a monitor from the 90s and lamenting the lack of a suitable Doom port.https://hackaday.com/2021/07/11/but-does-it-run-toom/ Not only that, he made a video on it. 3 Share this post Link to post
zokum Posted July 18, 2021 I saw the video, it was great and this seemed to be within the realm of interesting gfx modes fast doom supports. 0 Share this post Link to post
viti95 Posted July 20, 2021 (edited) I think I can replicate the idea of Toom in an easy way. Having a backbuffer for the new modes really simplifies this idea, it's possible to transpose the backbuffer and scale to a 320x400 VGA planar or similar resolution. I know, the aspect ratio will be wrong and it'll look stretched, but this way I don't have to modify all the code and assets just for this mode. I'll do some testing, since there are multiple resolutions available for planar VGA: Quote GFX_MODEX Mode-X will work on any VGA card, and provides a range of different 256-color tweaked resolutions. Stable mode-X resolutions: Square aspect ratio: 320x240 Skewed aspect ratio: 256x224, 256x240, 320x200, 320x400, 320x480, 320x600, 360x200, 360x240, 360x360, 360x400, 360x480 These have worked on every card/monitor that I've tested. Unstable mode-X resolutions: Square aspect ratio: 360x270, 376x282, 400x300 Skewed aspect ratio: 256x200, 256x256, 320x350, 360x600, 376x308, 376x564, 400x150, 400x600 Edit: Done, now I need to optimize the algorithm Edited July 20, 2021 by viti95 : New vertical mode implemented 3 Share this post Link to post
Dark Pulse Posted July 20, 2021 12 hours ago, viti95 said: I think I can replicate the idea of Toom in an easy way. Having a backbuffer for the new modes really simplifies this idea, it's possible to transpose the backbuffer and scale to a 320x400 VGA planar or similar resolution. I know, the aspect ratio will be wrong and it'll look stretched, but this way I don't have to modify all the code and assets just for this mode. I'll do some testing, since there are multiple resolutions available for planar VGA: Edit: Done, now I need to optimize the algorithm Bit squished on the HUD, as one would expect, but damn is that neat to see. 0 Share this post Link to post
viti95 Posted July 28, 2021 (edited) @Dark Pulse I've added another version for vertical monitors that doesn't do the scaling process (faster, VGA planar 320x350), the aspect ratio is a little bit off but at least is pixel perfect. I'm currently on a vacation so I can't test it on real hardware, I'll upload a new version when I come back. Also the development process will slow down a little bit, my girlfriend broke up with me, and I'll spend some time on getting better. 2 Share this post Link to post
Redneckerz Posted July 28, 2021 4 hours ago, viti95 said: I'm currently on a vacation so I can't test it on real hardware, I'll upload a new version when I come back. Also the development process will slow down a little bit, my girlfriend broke up with me, and I'll spend some time on getting better. I am sorry to hear this Viti. Take your time and perhaps slay a demon or two along the way :) 2 Share this post Link to post
Dark Pulse Posted July 28, 2021 9 hours ago, viti95 said: I'm currently on a vacation so I can't test it on real hardware, I'll upload a new version when I come back. Also the development process will slow down a little bit, my girlfriend broke up with me, and I'll spend some time on getting better. Taking care of yourself is always more important than projects. If you're not the type for whom working on stuff would keep your mind preoccupied from thinking about it, then step back a bit and get your head right. Breakups suck, but there are plenty of other people out there. 2 Share this post Link to post
viti95 Posted September 3, 2021 (edited) A small update for the next release, EGA 640x200 16 colors (ordered dithered 2x2). Has some room for improvement. This is running on DosBox-X, this weekend I will try it on real hardware (expect it to be really slow on 8-bit ISA EGA cards). And this is running on a real ISA 8-bit Trident VGA card (my MCE2VGA has stopped working so this is the closest I can get) Edited September 3, 2021 by viti95 14 Share this post Link to post
RetroGamer02 Posted September 24, 2021 I love FastDoom it majorly helps Doom run on my low end i486 machine. =) Can't wait for the next release! 3 Share this post Link to post
Nikku4211 Posted September 25, 2021 Wait, is the framerate still capped at 35? I'd like to be able to play Doom at the superior 70 fps. 0 Share this post Link to post
drfrag Posted September 25, 2021 That EGA mode looks good and seems it's pretty fast too, AFAIK that trident card was extremely slow. 0 Share this post Link to post
Gibbon Posted September 25, 2021 1 hour ago, Nikku4211 said: Wait, is the framerate still capped at 35? I'd like to be able to play Doom at the superior 70 fps. Has it in the top right. Between 31-33.6 0 Share this post Link to post
Noiser Posted September 25, 2021 That EGA footage is fantastic, I'm looking forward for the next release! 0 Share this post Link to post
viti95 Posted September 26, 2021 (edited) On 9/25/2021 at 12:04 PM, Nikku4211 said: Wait, is the framerate still capped at 35? I'd like to be able to play Doom at the superior 70 fps. You can unlock the framerate but there isn't any kind of interpolation between frames. I still have to implement this. On 9/25/2021 at 12:24 PM, drfrag said: That EGA mode looks good and seems it's pretty fast too, AFAIK that trident card was extremely slow. It still requires a very fast cpu to run properly, maybe a 486DX-100 or better. The dithering process it's very optimized with precalculated LUTs for the colormap, but the chunky to planar conversion is the main problem (no wonder why Commodore Amiga had so many problems to run Doom properly). And yeah, the 8-bit ISA EGA/VGA cards don't help, they are slow as hell On 9/24/2021 at 5:06 AM, RetroGamer02 said: I love FastDoom it majorly helps Doom run on my low end i486 machine. =) Can't wait for the next release! The next release will have some pretty cool new features, the 640x200 16 color EGA dithered mode, a CGA 160x100 16 color mode and a new native VGA 160x200 16 color mode. Also support for Sound Blaster Direct Mode, which works fine with PCMCIA cards (no DMA support). The new VGA mode has never been used anywhere, doing some research I was able to hack the 80x25 text mode to generate 200 scanlines. This results in a 80x200 resolution, but using half-width characters it's possible to double the horizontal resolution to 160x200. This mode is very fast even for 8-bit ISA VGA cards, as the memory layout is chunky, and only 16Kb of VRAM has to be updated each frame. Edited September 27, 2021 by viti95 6 Share this post Link to post
viti95 Posted September 30, 2021 Small update, just a video of FastDoom running on the CGA 160x100 (16 color) mode. This mode is very fast on CGA cards, even for an 8-bit ISA card. It's even possible to use video+sound on the same card (CGA cards usually include a parallel port) 9 Share this post Link to post
AnotherGrunt Posted October 3, 2021 So I have a small feature request/bug report. There is a bug in FDOOM (at least in VGA/VESA versions): No HUD in automap mode. Usually, I play DOOM in fullscreen mode and highest windows size (aka without HUD) and most source ports have a way of letting player know how much health and ammo he has. In vanilla 1.9 I use fast double-tap TAB key just to look at statistics but in FDOOM there is no other way than just make player window smaller. Would it be possible to just draw player's avatar in full windows size (to keep it fast), something like this?: And then just have statistics bound on key and write them on screen while key pressed. I personally like minimalism and fast gameplay so I think just having DOOM-face to roughly know how much HP is left is just enough and it shall be fast to render. 0 Share this post Link to post
drfrag Posted October 3, 2021 Hey i did that in RUDE (showing the mugshot only) but on the other side of the screen. 0 Share this post Link to post
viti95 Posted October 3, 2021 Well I had to disable the HUD in the biggest screen size automap because it was causing lot's of troubles with the new backbuffer modes (13h, VESA, etc.). Maybe I should add a screen size that enables fullscreen rendering and add a little bit of information. What would you think it would be the best HUD for fullscreen? 0 Share this post Link to post
AnotherGrunt Posted October 4, 2021 17 hours ago, viti95 said: What would you think it would be the best HUD for fullscreen? I see V_DrawPatchDirect() defined in v_video.c (BTW: Can I borrow it?). It would be sin not to use it. Use it like the floppy icon. Just one patch, updated as needed. 0 Share this post Link to post