VOGONS


First post, by keen

User metadata
Rank Newbie
Rank
Newbie

Dosbox? PCem? Bochs? What means of emulating DOS era graphics cards do you guys recommend in 2020? Which one is the best?

Reply 1 of 7, by Jorpho

User metadata
Rank l33t++
Rank
l33t++

Different emulators are suitable for different purposes – though Bochs certainly has very little practical utility.

Is there something specific you are trying to do that requires particularly accurate emulation of certain "DOS era graphics cards"? Generally all you really need is support for VBE and sometimes 3dfx.

Reply 2 of 7, by keen

User metadata
Rank Newbie
Rank
Newbie
Jorpho wrote on 2020-11-09, 00:17:

Different emulators are suitable for different purposes – though Bochs certainly has very little practical utility.

Is there something specific you are trying to do that requires particularly accurate emulation of certain "DOS era graphics cards"? Generally all you really need is support for VBE and sometimes 3dfx.

I was thinking about getting into DOS programming and wanted to know if supporting graphics cards was necessary because I read that some games require one.

Reply 3 of 7, by leileilol

User metadata
Rank l33t++
Rank
l33t++

DOSBox's S3 Trio64 and Tseng ET3000/4000 emulation are high level implementations which make them suitable for end user convenience.

PCem has a very wide variety of DOS-era video cards emulated (along with their timings), all depends on specific BIOSes. A lot of the exotic DOS era cards are in there, as well as a few Win95-era cards that DirectX likes. If you want to write a niche plantronics game, that's a good place to start. If you also want to write a niche s3d toolkit (ViRGE 3D) game, that's also a good place to start.

there's also MAME. sort of. when it's not arcades, it's zoidberg. There's not that many popular arcades using 90s PC hardware, so it's not as ironed out as their Playstation emulation for example.

apsosig.png
long live PCem

Reply 4 of 7, by Jorpho

User metadata
Rank l33t++
Rank
l33t++
keen wrote on 2020-11-09, 00:37:

I was thinking about getting into DOS programming and wanted to know if supporting graphics cards was necessary because I read that some games require one.

If you write a DOS game for a specific graphics card, then you will be severely limiting your potential audience. You will also probably be making the task of programming much more difficult, as documentation for more specific graphics cards is likely to be harder to come by.

VBE came into existence precisely because it made it easier to support a wide variety of graphics hardware with less effort.
https://en.wikipedia.org/wiki/VESA_BIOS_Extensions

Reply 5 of 7, by Jo22

User metadata
Rank l33t++
Rank
l33t++
keen wrote on 2020-11-09, 00:37:
Jorpho wrote on 2020-11-09, 00:17:

Different emulators are suitable for different purposes – though Bochs certainly has very little practical utility.

Is there something specific you are trying to do that requires particularly accurate emulation of certain "DOS era graphics cards"? Generally all you really need is support for VBE and sometimes 3dfx.

I was thinking about getting into DOS programming and wanted to know if supporting graphics cards was necessary because I read that some games require one.

In the DOS era, many graphics standards existed.
So it depends on which genre/era/time frame you're intetested in.
For mid-late 90s or early 2000s games, VBE is what you should look for.
For the ancient stuff, CGA/EGA and plain VGA might be relevant.

Alternatively, you can use third-party graphics libraries.
There used to be a plethora of them fir QuickBadic 4.5x and VBDOS, for example.

On Borland compilers (Turbo C, Turbo Pascal), a lot if BGI drivers were available.
With them, a single application can support many graphics standards,
including oddballs such as M24, Hercules InColor, PC3270 etc etc.

"Time, it seems, doesn't flow. For some it's fast, for some it's slow.
In what to one race is no time at all, another race can rise and fall..." - The Minstrel

//My video channel//

Reply 6 of 7, by superfury

User metadata
Rank l33t++
Rank
l33t++

UniPCemu has accurate emulation of MDA/CGA/EGA(although EGA untested for a while)/VGA/ET3000/ET4000 at the cycle level with CRT emulation(no effects like shaders supported, though). PCem seems to come close with regards(line-based rendering like Dosbox) to cycle-accuracy, but afaik no other emulates handles it at the single cycle-level(though at the cost of speed). Although UniPCemu's bottleneck is mostly CPU speed(~400KIPS in IPS clocking mode at the most atm). So XT-style performance at most atm. Unfortunately pretty much all optimizations like Bochs are already implemented(while keeping it portable and cycle-accurate). Current bottleneck seems to be mainly memory accesses(for instruction fetching).

Author of the UniPCemu emulator.
UniPCemu Git repository
UniPCemu for Android, Windows, PSP, Vita and Switch on itch.io

Reply 7 of 7, by surrodox2001

User metadata
Rank Newbie
Rank
Newbie

If you're talking about emulating old graphics standards like Plantronics or something like SuperEGA, your only viable options is to look at x86 emulators that do full emulation like 86box, pcem and others. But if you're talking about something like vbe then something like dosbox might suffice, but the former is better in terms of card selection.