VOGONS


New DOS/32A version 26

Topic actions

First post, by techweenie

User metadata
Rank Newbie
Rank
Newbie

I use real DOS on real hardware in 2026 because I can. I also host and participate in LAN parties with that hardware. Pure DOS gaming presents a world of challenges, some of which are easier to solve than others. The biggest challenge plaguing my group of friends was performance in BUILD engine games like Duke 3D and Redneck Rampage. I spent tremendous effort to enable write combining, optimize memory management, and replace components of DOS with faster and more modern equivalents. None of it helped the BUILD games until I stumbled across a paragraph somewhere on the web talking about HDPMI32. I grabbed a copy and low and behold it worked! But my tweaking didn't stop there.

I've known about DOS/32A for a long time, and my research indicated it could further improve performance and stability. I swapped all the compatible games over to it only to find LFB write combining stopped working with BUILD again. WTF. Many hours of diagnosis later I discovered the 9.1.x series removed HDPMI32 compatibility for some DOSBox related reason. Well I don't care about DOSBox, I'm on real DOS. So I began to investigate.

DOS/32A developed diverging code paths after 7.1, each with valuable improvements. The 8.00 release contains some performance optimizations, while the 9.1 branch introduced bug fixes and SSE support. Wanting the best of both worlds, I had ChatGPT analyze everything and provide a report of what it would take to restore HDPMI32 detection and merge the enhancements. Turns out that was all rather trivial. What was not trivial was getting it to compile correctly on modern 64 bit Windows and pass testing in DOSBox-X.

Today, I'm happy to announce the first stable release of DOS/32A, version 26.0. It properly detects HDPMI32, which restores LFB WC in BUILD games. For reference, that's a +20fps gain in Redneck Rampage on my system. This is an ongoing project and further improvements can be made by modernizing the ancient code. This project is entirely executed by ChatGPT, and I do not claim any credit for the work. The initial version 26.0 is just adaptation and merging of original hand written source code. Later point releases will be partial AI rewrites using modern code techniques.

https://github.com/calculatetech/dos32a

I know many of you don't trust AI code, and that's fine. But at the end of the day I solved a real world problem most of you probably didn't know existed. Take it or leave it.

Reply 1 of 11, by aVd

User metadata
Rank Member
Rank
Member

Hi, @techweenie,
Where are the prebuild DOS binaries?

And one more question. There were some problems with old original DOS/32A extender tools while removing and replacing some DOS extender's stubs (I don't recall exactly what it was). Is this problem now resolved?

SvarDOS fan :: artificial "intelligence" bots - not a fan at all :: say NO to systemd :: is freeware a lie, when human freedom is a fundamental lie? :: f00ck €u!

Reply 2 of 11, by techweenie

User metadata
Rank Newbie
Rank
Newbie

The compiled files will be added today.

I'm not aware of specific replacement issues. If you can provide examples I'll see what I can do. There are a few games that crash with 9.1.2 and I'll be working on fixing those.

Reply 3 of 11, by aVd

User metadata
Rank Member
Rank
Member

Ok, I have to search on the i-net for that specific problem. I read about it long time ago. IIRC the problem was related to one of those two-letters-named utilities (SB.EXE, I think), which removes the original DOS extender stubs from the executables and then binds DOS32/A stubs. If I manage to find the source with the information about this problem, I will write back.

SvarDOS fan :: artificial "intelligence" bots - not a fan at all :: say NO to systemd :: is freeware a lie, when human freedom is a fundamental lie? :: f00ck €u!

Reply 4 of 11, by aVd

User metadata
Rank Member
Rank
Member

I found it. Actually the information about SB.EXE bug is on the forum: Re: Replacing DOS/4GW with DOS32A (workaround is given on page 2 of the same thread).

SvarDOS fan :: artificial "intelligence" bots - not a fan at all :: say NO to systemd :: is freeware a lie, when human freedom is a fundamental lie? :: f00ck €u!

Reply 5 of 11, by techweenie

User metadata
Rank Newbie
Rank
Newbie
aVd wrote on Today, 13:52:

I found it. Actually the information about SB.EXE bug is on the forum: Re: Replacing DOS/4GW with DOS32A (workaround is given on page 2 of the same thread).

aVd, thank you very much for your help. I confirmed the same bug still exists in 26.0, and GPT was able to identify and fix the problem. IndyCar Racing II now works with DOS/32A and will be supported in the 26.1 release.

Version 26.0 is released on GitHub. It contains all the same flaws as the old versions aside from the restored HDPMI32 detection.

Reply 6 of 11, by aVd

User metadata
Rank Member
Rank
Member

And I thank you for your will to fix the DOS/32A, since its original author abandoned it. I had a bad experience with the DOS/32A version 9.1.2a while trying to replace DOS/4GW stub in TR1 executables for some early 3D accelerator cards and some of them didn't work for unknown reasons. I don't know how good are those a.i. chatbots in programming, but I hope they can fix some bugs in code created by humans without further breaking it. I'm waiting for your version 26.1.

SvarDOS fan :: artificial "intelligence" bots - not a fan at all :: say NO to systemd :: is freeware a lie, when human freedom is a fundamental lie? :: f00ck €u!

Reply 7 of 11, by techweenie

User metadata
Rank Newbie
Rank
Newbie

I will see if TR1 fixes are feasible for 26.1. I was hoping to support Death Rally, but it uses PMODE/W and the PMW1 executable format is not supported by DOS/32A. It now detects and blocks that format. I recall having issues with Terminal Velocity and 9.1.2, but that game is working fine now. Descent works great, much smoother than DOS/4GW. I'll compile a list of games with support status sooner or later. I've got a regression on id Tech games holding back 26.1 right now. Will have an update soon.

Reply 8 of 11, by aVd

User metadata
Rank Member
Rank
Member

The problem with TR1 was with some of the executables for the 3D accelerator video cards of the time (3dfx Voodoo, 3dfx Rush, Matrox Mystique, Rendition Verite, S3 ViRGE...), but I can't recall which ones. IIRC the software renderer executable (TOMB.EXE) works fine with DOS/32A stub v.9.1.2.

SvarDOS fan :: artificial "intelligence" bots - not a fan at all :: say NO to systemd :: is freeware a lie, when human freedom is a fundamental lie? :: f00ck €u!

Reply 9 of 11, by techweenie

User metadata
Rank Newbie
Rank
Newbie

I have most of those cards, so I can test. May not make it to 26.1 though as that's rather involved.

Reply 10 of 11, by leileilol

User metadata
Rank l33t++
Rank
l33t++

smartdrv

bam, build games are fast, no "ai" needed

apsosig.png
long live PCem
FUCK "AI". It is a tool of fascism. We do not need it. We do not use it.

Reply 11 of 11, by aVd

User metadata
Rank Member
Rank
Member
techweenie wrote on Today, 17:25:

I have most of those cards, so I can test. May not make it to 26.1 though as that's rather involved.

Great! Mind that there's also PowerVR PCX1 and PCX2 executables for TR1, but I don't have these video cards.

SvarDOS fan :: artificial "intelligence" bots - not a fan at all :: say NO to systemd :: is freeware a lie, when human freedom is a fundamental lie? :: f00ck €u!