First post, by crazii
- Rank
- Oldbie
Background: I was obsessed in retro pc gaming for a long time. Having been tried most vm/emulators from virtualpc, bochs, vmware series, virtualbox, to pcem and 86box, I came to the conclusion that an retro pc rig or laptop gives the best experience.
Now my idea is not changed, but I found the second best choice, wine and DOSBox combo on Linux. I tested wine back around 2006, playing StarCraft and war3 but it might have compatibility problems so I haven't tried it till last year.
The wine version I used was 10.7 right before it switched to pure win64+ wow64 emulation, the first releases of win64-only versions have performance issues for old games but it's now been fixed.
Wine gives me the best "native", non-vm/emu-aware experience, with most of my win9x collections works well. With dxvk/proton, steam now can support a large amount of PC games on Linux, so with a modern PC, Linux could a better choice for retro gaming and modern PC gaming.
1. Wine drives passed to DOSBox
The key of the experience is that wine can pass it's emulated drive/partition to DOSBox, when you double click a DOS exe located in wine virtual drive, e.g. D:\, the games is also runs at D:\ in Dosbox. This provided a unified environment. This is also convenient for DOS installers.
2.CD images
When using CDEmu (a Linux virtual CD software like daemon-tools) to mount a CD image, wine will auto add it to it's virtual drive list, and also pass it to DOSBox when running a DOS program.
So here is how you play DOS game with a cd-image:
Double click a iso or cue, then double click a DOS exe.
pretty much like the good old way, without any emulation-aware setup or operations, e.g. a DOSBox front end, or per-game .conf with different imgmount in [autoexec] sections, or emulator menu operations. Personally I think those extra operations break the retro experience. And, for win9x games, no extra vm windows, no slow mouse cursor movement either.
CDEmu also support playing CD music. When you create a virtual CD drive and play a DOS game, you can have music. the music is not played by DOSBox as usual, but by CDEmu. DOSBox just send ioctl command to a "CD drive", which is emulated by CDEmu.
The problem is wine doesn't send "-t cdrom" and "usecd 0" to DOSBox, but that can be fixed by a patch to wine's WineVDM (Wine-Virtual-DOS-Machine, but don't get confused, it's just a DOSBox launcher.)
3.Themes and icons
Chicago95 (https://github.com/grassmunk/chicago95) is an excellent win95 theme (xfce needed).
Icoextact (https://github.com/jlu5/icoextract) provides generating icon previews for a PE exe.
These are recommended if you want a retro gaming dedicated setup.
I also made some changes to icoextact so that it can generate icons for .desktop shortcut (like a .lnk with icon), and an extra tool to create .desktop shortcut with a proper icon for DOSMZ/winpe exes.
4. DOSBox startup logo
It doesn't really matter much. It just doesn't feel like retro to me. There can be some patch to WineVDM to read wine registry for a string key to launch an alternative DOSBox fork, e.g. DOSBox-X with "fastbios" conifg.
Or you can compile a no-logo build of DOSBox. With respect for the DOSBox team, you can keep it for your own but don't release that modified source/binary to the public.
5.3DFX/Glide
Wine supports nGlide well, so it just works as normal win9x games.
I was also working on a fork of openglide (Another Openglide fork) last year, hope to bring complete glide3x support to Linux, it was mostly tested on wine, the Linux part is broken and not complete yet.
DOSBox-X support glide pass-through in Linux, but I haven't tested it yet.
I'm now typing on my phone so it's not feeling good, and I will update more details tomorrow with my PC, if anyone is interested.
--UPDATE--
Here is how it looks on my TP t540p, Manjaro XFCE, with a limited number games (most of them can be get form GOG.COM) installed:
This laptop still fit for daily network use and lightweight compiling.
I have tested the setup on another NUC with Manjaro, and my desktop pc with Gentoo too.
Toshiba Satellite Pro 4300 - YMF744, Savage IX
Toshiba Satellite 2805-S501 - YMF754, GeForce 2Go
IBM Thinkpad A21p - CS4624, Mobility Radeon 128
main: Intel NUC11PHKi7C Phantom Canyon: i7-1165G7 RTX2060 64G 2T760PSDD