VOGONS


Reply 300 of 329, by ViTi95

User metadata
Rank Member
Rank
Member

In the 0.8 release I made a mistake in an optimization that caused the buttons to behave incorrectly, I'm pretty sure that the fix made the game a little bit slower. Anyway the loss in performance is less than 1%, so it shouldn't be much noticeable.

Reply 301 of 329, by Nemo1985

User metadata
Rank Oldbie
Rank
Oldbie

I see, thank you for the precious clarification, I thought to go ahead and keep using the v0.8 but since you said so I will use the latest version.

If you don't mind I will do some further tests comparing the speed from v0.8.1 to 0.8.7

Last edited by Nemo1985 on 2021-08-30, 20:55. Edited 1 time in total.

Reply 302 of 329, by Oetker

User metadata
Rank Oldbie
Rank
Oldbie
ViTi95 wrote on 2021-08-25, 20:40:
The LUT idea works very well for dithering the B&W modes, since it avoids lot's of branches, so I guess it's also a good idea fo […]
Show full quote
leileilol wrote on 2021-08-24, 22:34:

...

The LUT idea works very well for dithering the B&W modes, since it avoids lot's of branches, so I guess it's also a good idea for 4-color and 16-color modes. For now I won't be doing anything very specific for CGA/EGA modes, since most of the 8-bit ISA cards aren't able to sustain good framerate with the 320x200 resolution. I guess it's possible to implement a dithered version for the 640x200 EGA resolution, since the loss of resolution won't be as noticeable, but again it will be slow as hell (EGA cards are insanely slow).

For now the roadmap is this one:

  • Add support for new sound cards (AC97, Game Blaster, Tandy 3-voice, OPL2LPT, IBM PS/1 DAC, ... ?)
  • Re-enable hardware mixing on Gravis Ultrasound cards (disabled 7/24/95 on the Apogee Sound System), original code is missing
  • Add support for some obscure video cards (IBM PGC, IBM 8514, TIGA, ... ?)
  • Fix CGA 320x200x4 mode (ugly as f***)
  • Speed-up new video modes (CGA, EGA, Hercules,...) since they are updating the whole screen every frame (use partial update as in 13h and VBE2 modes).
  • Fix FreeDoom 2 MAP15
  • Add SIGIL support

Also the development process will slow down a little bit, my girlfriend broke up with me some weeks ago and I'll spend some time on getting better.

16 bit mixing would be nice, the ASS might already do that for SB16 like in Build engine games, but Windows Sound System or AudioDrive support would be cool. Does the fact that you're using ASS also mean the game hangs on SB16 when using MIDI output with high sample rates?

Also best wishes with your personal situation...

Reply 303 of 329, by Nemo1985

User metadata
Rank Oldbie
Rank
Oldbie

I did the test just with Amd 5x86

photo_2021-08-30_23-18-35.jpg
Filename
photo_2021-08-30_23-18-35.jpg
File size
7.08 KiB
Views
746 views
File license
Public domain

Apparently the v0.8.4 is the fastest, but the difference is minimal at best.

Reply 304 of 329, by ViTi95

User metadata
Rank Member
Rank
Member
Nemo1985 wrote on 2021-08-30, 21:20:

I did the test just with Amd 5x86
photo_2021-08-30_23-18-35.jpg
Apparently the v0.8.4 is the fastest, but the difference is minimal at best.

I guess the performance differences are in the margin of error. Sometimes the OpenWatcom compiler generates different executables even with minimal changes (and by minimal I mean reordering code or adding new code for a new video mode), and those executables have differences in performance. I've been trying to avoid this problem but haven't found any solution to make it more "stable".

Oetker wrote on 2021-08-30, 20:44:

16 bit mixing would be nice, the ASS might already do that for SB16 like in Build engine games, but Windows Sound System or AudioDrive support would be cool. Does the fact that you're using ASS also mean the game hangs on SB16 when using MIDI output with high sample rates?

Also best wishes with your personal situation...

By default i'm using 16-bit audio mixing, using the command line "-8bitsound" you can force the library to use 8-bit audio mixing (like the original). I guess the game shouldn't crash with the SB16+MIDI combination since the audio rate is fixed at 11KHz (8KHz with the "-lowsound" parameter).

BTW I'm still learning how to program sound cards, it's much much harder than any other aspect in DOS game development. I expect to add support for more sound cards, but it's going to take some time. Now I understand why did id Software / Paul Radek had so many problems with the sound code.

Reply 306 of 329, by BitWrangler

User metadata
Rank l33t
Rank
l33t

720x348 😀

2017: Basement full of ancient PC stuff, starting to go through it. 2021: Still starting, heh, many setbacks. So what's this BitWrangler guy's deal ??? >>> Taming the pile, specs to target?

Reply 307 of 329, by Gmlb256

User metadata
Rank Oldbie
Rank
Oldbie
ViTi95 wrote on 2021-08-30, 22:08:
Oetker wrote on 2021-08-30, 20:44:

16 bit mixing would be nice, the ASS might already do that for SB16 like in Build engine games, but Windows Sound System or AudioDrive support would be cool. Does the fact that you're using ASS also mean the game hangs on SB16 when using MIDI output with high sample rates?

Also best wishes with your personal situation...

By default i'm using 16-bit audio mixing, using the command line "-8bitsound" you can force the library to use 8-bit audio mixing (like the original). I guess the game shouldn't crash with the SB16+MIDI combination since the audio rate is fixed at 11KHz (8KHz with the "-lowsound" parameter).

BTW I'm still learning how to program sound cards, it's much much harder than any other aspect in DOS game development. I expect to add support for more sound cards, but it's going to take some time. Now I understand why did id Software / Paul Radek had so many problems with the sound code.

The issues with SB16 + MIDI only happens when the same card does both stuff. There's a workaround for crashing problems that happens on certain SB16 revisions and it's called SBMPU401 which all that is does is just disable the SB16 MPU-401 interrupt (both SB16 MPU-401 and SB IRQ are shared). The "Wave Blaster" driver found on ASS has also this workaround implemented. Unfortunately this won't solve the stuttering issues with high sample rates.

Implementing WSS for ASS shouldn't be a big deal except for the initialization code. A notable thing for WSS is that no high DMA is used for 16-bit mixing.

Hope that your current situation gets better...

Reply 308 of 329, by ViTi95

User metadata
Rank Member
Rank
Member

I've implemented ordered dithering (2x2) for the EGA 640x200 16 color mode. Still needs refinement, but I guess the result isn't that bad. This is a video running under DosBox-X, this weekend i'll test it on real hardware 😁

Edit: I did a mistake tonight (very late), here's the good one

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

Previous video was the EGA 320x200 version:

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

Edit 2: For simple comparison, here is the intro screen of Doom II

Attachments

  • fdoome_000.png
    Filename
    fdoome_000.png
    File size
    22.07 KiB
    Views
    485 views
    File comment
    Doom II intro screen, ordered dithering 2x2
    File license
    CC-BY-4.0
Last edited by ViTi95 on 2021-09-03, 14:28. Edited 2 times in total.

Reply 309 of 329, by Bondi

User metadata
Rank Member
Rank
Member

Really nice port, ViTi95. Covox support made my day.
Is there a chance to add Sound Blaster direct mode (no DMA) support? In particuar this could be useful for PCMCIA sound cards that lack DMA.
Here is what SB hardware programming guide has to say about it

direct mode.png
Filename
direct mode.png
File size
36.49 KiB
Views
550 views
File license
Fair use/fair dealing exception

PCMCIA Sound Cards chart

Reply 310 of 329, by ViTi95

User metadata
Rank Member
Rank
Member
Bondi wrote on 2021-09-03, 05:56:
Really nice port, ViTi95. Covox support made my day. Is there a chance to add Sound Blaster direct mode (no DMA) support? In par […]
Show full quote

Really nice port, ViTi95. Covox support made my day.
Is there a chance to add Sound Blaster direct mode (no DMA) support? In particuar this could be useful for PCMCIA sound cards that lack DMA.
Here is what SB hardware programming guide has to say about it
direct mode.png

I guess it's easy to implement, works very similar to Covox. Will add it to the todo list 😁

  010h       Direct DAC, 8-bit                                       SB
COMMAND->SAMPLEBYTE

DESCRIPTION
Outputs single sample.

PROCEDURE
a) Send Direct DAC, 8-bit command (010h) and sample
b) Wait for correct timing

NOTES
ю Direct mode maximum sample rate is 23KHz.

SEE ALSO
020h Direct ADC, 8-bit

Reply 311 of 329, by Bondi

User metadata
Rank Member
Rank
Member
ViTi95 wrote on 2021-09-03, 09:08:
I guess it's easy to implement, works very similar to Covox. Will add it to the todo list :D […]
Show full quote
Bondi wrote on 2021-09-03, 05:56:
Really nice port, ViTi95. Covox support made my day. Is there a chance to add Sound Blaster direct mode (no DMA) support? In par […]
Show full quote

Really nice port, ViTi95. Covox support made my day.
Is there a chance to add Sound Blaster direct mode (no DMA) support? In particuar this could be useful for PCMCIA sound cards that lack DMA.
Here is what SB hardware programming guide has to say about it
direct mode.png

I guess it's easy to implement, works very similar to Covox. Will add it to the todo list 😁

  010h       Direct DAC, 8-bit                                       SB
COMMAND->SAMPLEBYTE

DESCRIPTION
Outputs single sample.

PROCEDURE
a) Send Direct DAC, 8-bit command (010h) and sample
b) Wait for correct timing

NOTES
ю Direct mode maximum sample rate is 23KHz.

SEE ALSO
020h Direct ADC, 8-bit

Cool! 😁

PCMCIA Sound Cards chart

Reply 312 of 329, by ViTi95

User metadata
Rank Member
Rank
Member

Well I wasn't wrong when I said the EGA video cards are slow. This is on a Trident ISA 8-bit VGA card (my MCE2VGA has stopped working so I cannot use an EGA card, this is the closest one)

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

Reply 313 of 329, by ViTi95

User metadata
Rank Member
Rank
Member

Another update, I've checked that is possible to extend the CGA 160x100 16 color mode on VGA cards to 160x200 or even 160x400. I've never seen this before, but I think it's a pretty good mode. On a Trident ISA 8-bit VGA card is possible to update the whole sceen at more than 40 fps (with a fast cpu at 160x200), and doesn't have the problem of being planar.

It should be possible to do the same with EGA cards, but the final resolution whould be 160x175 or 160x350.

https://youtu.be/XfxqMl9hmYc

Edit: just discovered that the 160x400 mode is not usable, since it requires 64Kb of vram and the text buffer goes from 0xB8000 to 0xBFFFF (32Kb), so only half of the screen is filled 🙁

Reply 314 of 329, by ViTi95

User metadata
Rank Member
Rank
Member

Small update, just a video of FastDoom running on a real CGA card in 160x100 mode (16 colors). Since this card also includes a parallel port, I decided to test if the card was able to play at decent framerates with COVOX sound enabled.

https://youtu.be/_6Jft32G3ls

Reply 316 of 329, by ViTi95

User metadata
Rank Member
Rank
Member

If you want to get the all the textures in a reduced color format, the easy way is to extract them with SLADE and then palettize those textures with GIMP. It allows you to define custom color tables, so it's possible to reduce the color to whatever palette you want. But if you wan't something scripted to convert whatever WAD you want, there is a python library (omgifol) that allows extracting the information from the WAD, and then you can postprocess the textures with something like PIL or another image processing library.

Reply 318 of 329, by trixster

User metadata
Rank Newbie
Rank
Newbie

Hi,

When i run FDoom (or FDoon13H or any of the other modes) the game launches, will play the opening demo and then automatically quite back to DOS with a timedemo result. This is happening now even if I havent started the game with the timedemo command... any ideas why this might be happening? There's nothing obvious I can see in fdoom.cfg