VOGONS


Reply 180 of 950, by RaVeN-05

User metadata
Rank Oldbie
Rank
Oldbie

Re: FastDoom. A new Doom port for DOS, optimized to be as fast as possible for 386/486 personal computers!

Fallen Star Features:

I was a games programmer at Epyx in 1987. We developed a vertical sync hack that enabled us to switch between CGA 4-color palettes on-the-fly, at the same scan line in each frame. That allowed us to use both CGA palettes in the same scene. Check out Epyx' California Games, where CGA synchronous palette switching gave the Hackey Sack game a blue sky at the top of the frame, combined with green grass at the bottom.

probably possible change palette on fly =)?

anyway use link , there is so many hacks to gain better graphic on CGA =)

https://www.youtube.com/user/whitemagicraven
https://go.twitch.tv/whitemagicraventv

Reply 181 of 950, by ViTi95

User metadata
Rank Member
Rank
Member

CGA doesn't have a genuine monochrome mode, Mode 5 still outputs colors when connected to a RGBI monitor (which it's what I'm currently developing for). I guess it's possible to change the palette mid-rendering, as everything is stored in the backbuffer first, and then processed and converted to the CGA vram in a single pass. The main problem here is that I don't know how much performance will be lost with that palette changes. The card I'm using barely gets 20 fps with a fast Pentium III, and around 12 fps with a 486DX-50. Another problem is that multi-color hacks reduce the effective resolution to 160x200, and that is a problem because fonts will look really bad in that resolution. I'll see what can be done, first I wan't to finish basic CGA 320x200 4 colors and EGA 320x200 16 colors support.

@trixster I've been testing the Mode 13h with my 486DX-50, sometimes is faster and others is slower, depends on the video card used. I gain ~2 fps with a VLB Cirrus Logic GD-5426, and loss ~1.5 fps with a ISA OTI-087X. This mode is better when the cpu, caches and memory are fast (my 486DX-50 is pretty problematic with RAM, it only works with very loose timings). I will only include support for high resolution in this mode due to these requirements, and because Mode Y is much faster with low and potato detail modes. Video cards that "hate" Mode Y will also benefit from this mode (for example the Cyrix MediaGX, Rendition Veritè and maybe some other ones)

https://www.youtube.com/@viti95

Reply 183 of 950, by VileR

User metadata
Rank l33t
Rank
l33t
ViTi95 wrote on 2021-04-30, 17:39:

CGA doesn't have a genuine monochrome mode, Mode 5 still outputs colors when connected to a RGBI monitor (which it's what I'm currently developing for).

Mode 6 is genuinely monochrome on RGBI, you'll just have to use pattern dithering. If you pretend that it's mode 4 or 5 (i.e. you write the exact same data), the four "palette" colors become 0%, 50%, 50%, 100% white. Of course the two 50% shades aren't exactly distinguishable, but you can go for 0%,25%,50%,100% instead.

Another problem is that multi-color hacks reduce the effective resolution to 160x200, and that is a problem because fonts will look really bad in that resolution.

If by multi-color hacks you mean composite video, the horizontal resolution actually depends on your color choices. It's prefectly possible to make fonts appear quite decent (see my Keen hacks for some examples - the Doom fonts may be even easier, since they have black outlines, which can prevent unseemly artifacts).
I'd be happy to help with that. But of course, systems capable of running DOOM with a genuine CGA (including a composite output) aren't exactly a common realistic target.

[ WEB ] - [ BLOG ] - [ TUBE ] - [ CODE ]

Reply 184 of 950, by MrFlibble

User metadata
Rank Oldbie
Rank
Oldbie
MrFlibble wrote on 2021-04-19, 17:37:
Thanks! […]
Show full quote
ViTi95 wrote on 2021-04-13, 23:09:

@MrFlibble I will check that bug, and see if i can correct it for a bugfix release.

Thanks!

UPD: I can report that the demos in the Phase 1 IWAD (the Ultimate Doom counterpart; I'm testing the version from here) work fine. Maybe it's a feature of the map where the Phase 2 demo was recorded, not complying with vanilla standards.

UPD2: Yep, it's definitely the map (MAP15). I just warped there and here's what I got in the same area where the demo would freeze:
dosbox_027.png

For consistency's sake I decided to check how that map and demo work with the vanilla DOOM2.EXE, and installed the GOG version (which I believe has an unmodified original DOS binary), and it does not have any problem with playing the MAP15 demo. So the issue is with something in FastDoom after all.

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

Reply 185 of 950, by ViTi95

User metadata
Rank Member
Rank
Member

@MrFibble thanks for testing again, I'll add the issue to GitHub and try to fix it. There are lot's of changes in the Doom engine, and I'm pretty sure I've broken something inside.

I've also implemented EGA 320x200 16 colors mode, it's slower than CGA due to the chunky to planar conversion. My Trident Paradise PEGA-1A does some funky things to the sound card in my Pentium III, still don't why, maybe it's too slow. There is also some color problems that I have to fix, writing each plane at a time is fast but creates color artifacts when the video card is slow.

https://www.youtube.com/watch?v=TZp-Gnwm8_8

And maybe i'll add Hercules video card support, having a backbuffer simplifies developing new modes a lot.

https://www.youtube.com/@viti95

Reply 186 of 950, by RaVeN-05

User metadata
Rank Oldbie
Rank
Oldbie

Also on EGA having turn on or off option for change dithering and normal will be very cool to see =) (dither will e better if possible to use 640x400 or higher resolution while keeping game at virtual 320x200 resolution)

I don't know technical details on CGA, but let me dream )))

Probably its possible to draw twice or third times instead of one single draw with changing palette, imagine so frequent inline (single pass) change palette commands - i think it slow down .

But if draw entire screen at one palette and change palette to other combination and draw in parts of screen where you need to put lacked colors?

i think also good idea on just look at how FPS games looks like, a way they work that released before DOOM. Especially id Software Wolfenstein 3D, HowerTank, Catacombs 3D, source of earlier exist.

That was a very cool source port, and fantastic nostalgic feelings, that was a very very interesting experience , thank you =)

https://www.youtube.com/user/whitemagicraven
https://go.twitch.tv/whitemagicraventv

Reply 187 of 950, by ShK

User metadata
Rank Newbie
Rank
Newbie
trixster wrote on 2021-04-29, 10:59:

Can't believe i've only just seen this thread. This is a game-changer for the PC BridgeBoard in my Amiga 3000. Amazing work, FastDoom is superb.

FastDoom runs relative nicely also on the Amiga 2000's PC-Task4 program, which is a PC emulator software. 😀

https://youtu.be/uRZEt2zC9_s

Reply 188 of 950, by MrFlibble

User metadata
Rank Oldbie
Rank
Oldbie
ViTi95 wrote on 2021-05-01, 10:05:

I've also implemented EGA 320x200 16 colors mode, it's slower than CGA due to the chunky to planar conversion. My Trident Paradise PEGA-1A does some funky things to the sound card in my Pentium III, still don't why, maybe it's too slow. There is also some color problems that I have to fix, writing each plane at a time is fast but creates color artifacts when the video card is slow.

That EGA mode looks pretty nice!

RaVeN-05 wrote on 2021-05-01, 10:29:

Also on EGA having turn on or off option for change dithering and normal will be very cool to see =) (dither will e better if possible to use 640x400 or higher resolution while keeping game at virtual 320x200 resolution)

My thought exactly, but how would dithering affect performance in a game like Doom?

BTW, here's an interesting thing I found recently: in DOS games created with ACKNEX 3D GameStudio (a proprietary German 3D game construction kit) there's a feature called "motion blur", which essentially renders the scene at a lower resolution, but only when the player character is moving or turning. When the scene is static it reverts to full detail. This gives a decent performance boost without the game looking permanently ugly/low-res like Duke Nukem 3D on low detail setting for example.

Oh, and I keep forgetting to ask: how is Gravis Ultrasound support implemented in FastDoom? I know that the original DOS sound systems were proprietary and not included with the source code release, and when testing the Freed∞m IWAD with vanilla DOOM2.EXE I also tried out the opposite: vanilla DOOM2.WAD with FDOOM.EXE 0.8. Both were set to use Gravis Ultrasound for sound effects and music, and FastDoom's music seems to sound much better, and the sounds "deeper" with a slight reverb.

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

Reply 189 of 950, by ViTi95

User metadata
Rank Member
Rank
Member

FastDoom uses the Apogee Sound System, which is different and I guess better than DMX. It's the same sound library that uses ROTT and Duke Nukem 3D. I've been researching the library it's used for Gravis Ultrasound support (GF1_OSF.lib) but I don't know exactly where it comes from. It's different than the SDK ones available from Gravis. If some one can give some information on this topic, any help is very welcome.

https://github.com/viti95/FastDoom/issues/5

https://www.youtube.com/@viti95

Reply 190 of 950, by ViTi95

User metadata
Rank Member
Rank
Member

And finally Hercules Graphics Card is supported. The original resolution of 320x200 is upscaled to 640x400, and then dithered using ordered dithering with a 4x4 Bayer matrix. I tried to implement a Sierra Lite dithering, but was too slow (although it looked incredible). My MCE2VGA doesn't support this mode very well, I will try next time with my IBM 5151.

https://www.youtube.com/watch?v=V6bGwLqzEe4

https://www.youtube.com/@viti95

Reply 194 of 950, by ripsaw8080

User metadata
Rank DOSBox Author
Rank
DOSBox Author

With Hercules done it shouldn't be hard to also do CGA mode 6... and then maybe use EGA palette reduction as basis for composite CGA, or perhaps that goes too far with an effective resolution of only 160x200...

However, I wonder if the original 35 FPS cap, being half of the 70 Hz VGA refresh, have any bearing on CGA/EGA at 60 Hz and Hercules at 50 Hz?

Reply 195 of 950, by ViTi95

User metadata
Rank Member
Rank
Member

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 computers.

https://www.youtube.com/watch?v=InNNSd1peWk

Mode Y: 16'429 fps
Mode 13H: 19'431 fps (18% faster)

@ripsaw8080 I've implemented 640x200 CGA B&W for the next release ^^. CGA composite is a problem for now, as I don't have any CGA video card that has composite output. Doom doesn't depend on the refresh rate, so both 50 Hz and 60 Hz modes work fine.

https://www.youtube.com/@viti95

Reply 197 of 950, by appiah4

User metadata
Rank l33t++
Rank
l33t++

I had little interest in this project so far but fdoom13h would probably make Doom 1 very playable on my U5S-33, so now I'm looking forward to a stable release!

Retronautics: A digital gallery of my retro computers, hardware and projects.

Reply 199 of 950, by ViTi95

User metadata
Rank Member
Rank
Member

Aaaaand 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/d … tDoom_0.8.1.zip

https://www.youtube.com/@viti95