First post, by keen
Dosbox? PCem? Bochs? What means of emulating DOS era graphics cards do you guys recommend in 2020? Which one is the best?
Dosbox? PCem? Bochs? What means of emulating DOS era graphics cards do you guys recommend in 2020? Which one is the best?
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.
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.
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.
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
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//
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
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.