VOGONS

Common searches


DOSBox-X branch

Topic actions

Reply 1700 of 1945, by TheGreatCodeholio

User metadata
Rank Oldbie
Rank
Oldbie
hail-to-the-ryzen wrote:

Is PIT mode 3 used by any PC games or past demos? I recall there was discussion on your github site about its use in the PC-98, and that mode=3 is also available on the PC (accurate emulation).

If you want to know exactly what the 8254 can do, look at the Intel datasheet.

DOSBox-X project: more emulation better accuracy.
DOSLIB and DOSLIB2: Learn how to tinker and hack hardware and software from DOS.

Reply 1701 of 1945, by TheGreatCodeholio

User metadata
Rank Oldbie
Rank
Oldbie

I have an issue open with a dump of ideas for test programs to write in DOSLIB that play with the 8254 and it's functions. Some have been written already.

DOSBox-X project: more emulation better accuracy.
DOSLIB and DOSLIB2: Learn how to tinker and hack hardware and software from DOS.

Reply 1702 of 1945, by hail-to-the-ryzen

User metadata
Rank Member
Rank
Member

Thank you for the detailed reply and for the doslib test programs. I will look at the datasheet carefully since I was trying to understand by merely reading the code differences. Now I recall that there was a dosbox-x issue open with Corncob 3d, I think it must have been tested in VGA code running in EGA mode, and whether the timer code changes will address that issue or others.

Reply 1703 of 1945, by TheGreatCodeholio

User metadata
Rank Oldbie
Rank
Oldbie

Corncob 3D requires VGA even though the main game uses EGA graphics mode.

I just found that I can eliminate the on-screen flickering by adding video memory delay. Apparently if your video memory is too fast Corncob 3D will flicker badly.

DOSBox-X project: more emulation better accuracy.
DOSLIB and DOSLIB2: Learn how to tinker and hack hardware and software from DOS.

Reply 1705 of 1945, by TheGreatCodeholio

User metadata
Rank Oldbie
Rank
Oldbie
hail-to-the-ryzen wrote:

That is great. I think Perfect General does the same in ega mode - I will try to test your fix there.

Excellent. For DOSBox-X try vmemdelay=1000

DOSBox-X project: more emulation better accuracy.
DOSLIB and DOSLIB2: Learn how to tinker and hack hardware and software from DOS.

Reply 1707 of 1945, by hail-to-the-ryzen

User metadata
Rank Member
Rank
Member

Confirmed that the vmemdelay of around 1000 is sufficient. It's also possible to cause the same issue and solve it in pcem by modifying its isa timing function. The issue led me to debug some issues in a dos source port of doom, and if you are interested in testing it with your latest code base, I can upload it.

Reply 1708 of 1945, by hail-to-the-ryzen

User metadata
Rank Member
Rank
Member

Was the Explora demo tested with 0.74 or built with fpu interpreter core? All cores show the rendering issue? And the video mode is the same in all tests? Was -x built with 32 and 64 bit?

Reply 1709 of 1945, by TheGreatCodeholio

User metadata
Rank Oldbie
Rank
Oldbie
hail-to-the-ryzen wrote:

Was the Explora demo tested with 0.74 or built with fpu interpreter core? All cores show the rendering issue? And the video mode is the same in all tests? Was -x built with 32 and 64 bit?

I got the same result using either normal or dynamic core. I generally do not test the full and simple cores.

The demo appears to use one specific video mode.

DOSBox-X project: more emulation better accuracy.
DOSLIB and DOSLIB2: Learn how to tinker and hack hardware and software from DOS.

Reply 1710 of 1945, by hail-to-the-ryzen

User metadata
Rank Member
Rank
Member

I should check, but that means DOSBox SVN compiles with both types of fpu emulation (x86 specific and the interpreter type).

Edit (from fpu.cpp):

#if C_FPU_X86
#include "fpu_instructions_x86.h"
#else
#include "fpu_instructions.h"
#endif

Reply 1711 of 1945, by TheGreatCodeholio

User metadata
Rank Oldbie
Rank
Oldbie

DOSBox-X eliminated the fpu_instructions_x86.h file.

I compiled DOSBox SVN with and without C_FPU_X86 and it didn't make any difference.

The fault is somewhere else.

DOSBox-X project: more emulation better accuracy.
DOSLIB and DOSLIB2: Learn how to tinker and hack hardware and software from DOS.

Reply 1713 of 1945, by TheGreatCodeholio

User metadata
Rank Oldbie
Rank
Oldbie
hail-to-the-ryzen wrote:

I reproduced the issue in a 32-bit custom build, but much of the video emulation in the build is like SVN.

Edit: did you test with early versions of dosbox-x?

I used the magic of git checkout to go back pretty far. It seems like the bug, whatever it is, has been there for a long time.

DOSBox-X project: more emulation better accuracy.
DOSLIB and DOSLIB2: Learn how to tinker and hack hardware and software from DOS.

Reply 1716 of 1945, by TheGreatCodeholio

User metadata
Rank Oldbie
Rank
Oldbie
hail-to-the-ryzen wrote:

I can reproduce with the normal core (DOSBox-X like), but it doesn't show the artifacts with core=full nor with a SVN like dynamic core.

Odd, on x86_64 Linux I see the artifacts no matter what core I select. Hm..

DOSBox-X project: more emulation better accuracy.
DOSLIB and DOSLIB2: Learn how to tinker and hack hardware and software from DOS.

Reply 1718 of 1945, by hail-to-the-ryzen

User metadata
Rank Member
Rank
Member
hail-to-the-ryzen wrote:
I should check, but that means DOSBox SVN compiles with both types of fpu emulation (x86 specific and the interpreter type). […]
Show full quote

I should check, but that means DOSBox SVN compiles with both types of fpu emulation (x86 specific and the interpreter type).

Edit (from fpu.cpp):

#if C_FPU_X86
#include "fpu_instructions_x86.h"
#else
#include "fpu_instructions.h"
#endif

Confirmed that building SVN with the non-x86 fpu emulation leads to the rendering artifacts in the demo EXPLORA. Built with O2 optimization. So, SVN has the same issue as DOSBox-X.

Disabled the x86 fpu emulation with this command:

./configure --disable-fpu-x86

Reply 1719 of 1945, by TheGreatCodeholio

User metadata
Rank Oldbie
Rank
Oldbie

Mind if I borrow the x86 FPU header from SVN?

DOSBox-X project: more emulation better accuracy.
DOSLIB and DOSLIB2: Learn how to tinker and hack hardware and software from DOS.