Back to home page

DOS ain't dead

Forum index page

Log in | Register

Back to the forum
Board view  Mix view

HX DOS Extender 2.17+ with modern sound card support (Announce)

posted by KormaX(R), 23.10.2017, 16:19

For the honour of DOS!

I hope you someone will read this, cause I have some news about the HX.DOS.Box (jokisownmayd) workaround for emulating ancient sound hardware. Actually I have found HX.DOS last year thanks to this thread. I started to experiment with it but for a long time I couldn't share really useful experiences. I use DR-DOS on a modern computer (Dell Inspiron 15 with HDA chipset) so this runtime is still the only way for me to get sounds other than PC speaker for the old programs, which don't have a native support for my circuitry, and, well I can mention only four DOS programs having that (QuickView, MPXPlay, Quake II, Hexen II). But it was a hard and long time to find really good configurations. So now I have a guide to get good quality sound without lagging. Note that it works on my hardware with my Caldera DR-DOS kernel, UMBPCI memory management and MS-HIMEM (also works with Jemm and Quarterdeck too, but those are inefficient for me because of other reasons). So nothing garantees it for other configs, but there are ways to get it work and it has some logic in the deep, and I think **************** is useful. So:

1. I have the DOSBox sound mixer's sampling rate to 4800 and the blocksize is set up to 4096. This is far larger than what you offer in the links, and for a long time I didn't even try it, but it works. I think the thing is: find the balance between the sampling rate and the block size so you can eliminate the beeping backgound generated with lower quality but still have constant and undistorted sounds. It's not as flexible as running DOSBox on Windows, but you can find working methods. Also the sound is less laggy than on lower sapmling rates, and really good. The probability to experience sound glitches (including lag) is also reduced.

2. I normally use extra procecces on the video. Modern scaling methods for example especially advmame2x or 2xsai, but it depends on the program itself. For World Wrestling Federation for example I use advmame3x. This radically reduces the amount and also the probability of the sound lags.

3. I found that if a sound glitch occure (lag or distortion) refreshing the screen output somehow makes HX.DOS to readjust stuff and restores the good sound. This can be done by modifying the games resolution or switching between the monitors (I use my laptop with an external CRT). If none of them is possible you can still adjust DOSBox' framedrop rate in fly, which less effective but works.

I have a theory of this. I think the problem originates from the HX.DOS multithread support. It probably divides the CPU cycles depending on multiple circumstances, but how it is divided may effect the syncronizing hardware outputs generated by different threads. In my theory, the thread containing significantly more calculations has a large probability to be laggy relative to other ones. I think the soundcard emulation are subject to this. By making the video output generation more "heavy" we make it's weight closer to that of sound output generation, thus the sound output gets less chance to late relative to the now similarly heavy video process. Also a different way of dividing the CPU cycles causes the sound distortion. By refreshing the vidio output we cause some necessary readjusting, thus the cycles are re-divided, maybe with the proper result. This is just a theory but this is the only frame I could explain to myself why the above method works. But it works

DOS isn't about why. It's about why not.


Complete thread:

Back to the forum
Board view  Mix view
15892 Postings in 1470 Threads, 269 registered users, 95 users online (0 registered, 95 guests)
DOS ain't dead | Admin contact
RSS Feed
powered by my little forum