Hacker News new | ask | show | jobs
by badsectoracula 2254 days ago
Note that i've mainly tried 86box, which is a PCem fork (but AFAIK it is kept in sync with PCem and the main difference is a nicer GUI for Windows and that it provides nightly builds optimized for various CPUs).

For DOS games, DOSBox is generally the better and -especially- faster choice with the main exception being mid80s games that assumed a 4.77MHz CPU (you can still play them on DOSBox but you need to fiddle around with the cycles and even then it assumes 1 cycle = 1 instruction, whereas PCem counts cycles correctly and also it takes into consideration the graphics card performance whereas DOSBox draws things as fast as it can).

For Windows games, assuming you cannot run them in modern Windows, it is basically the best choice - assuming you have a really fast PC, otherwise you'll get sound stuttering and slowdowns (with my AMD Ryzen 7 3700X i can emulate a Pentium 75Hz -mostly- fine but anything above that starts to cause sound to stutter).

Though in my experience 99% of the Windows games out there will work in modern Windows with something like dgVoodoo2, a framecapping tool like RTSS and perhaps adjusting the compatibility options. It might take some fiddling here and there. Notable exception being mid-2000s games with DRM.

3 comments

Was reading the PCem forums to figure out how to share files with the host. It seems disk images or getting networking up is necessary (which is not uncommon for similar emulating programs).

One thing I really like about DOSBOX, is how ordinary folders in the host can be mapped to drives in the guest OS. I wish pcem has something similar. This can make creating files with ancient software more convenient (e.g. new retro games).

My approach is to transfer files to the emulated machine by creating an ISO with WinCDEmu (which integrates with Explorer and file managers that can use shell extensions like Total Commander) and mounting that ISO and then transfer files out of the emulated machine by opening the disk image with 7zip (with the machine turned off, of course).

For older machines and some other emulators i've written a tool to create floppy disk images from a list of files:

http://runtimeterror.com/tools/fat12img/

(though that can only do 1.44MB floppies, meaning that it only works with an emulated 286 and above)

You could borrow bximage from Bochs too to generate them easily :D.

Or in a Unix platform, with just dd and vnconfig under OpenBSD or kpartx under Linux.

    >dd if=/dev/zero of=a.img bs=1440k count=1

    >vnconfig vnd0 a.img

    >newfs_msdos -F 12 /dev/rvnd0c

    >vnconfig -u vnd0

    >file a.img
a.img: x86 boot sector

That's under OpenBSD, under Linux is similar.

As far as i can tell bximage can only create empty images, which isn't what i was after (86box, the fork of PCem i am using, has a command to generate empty images too). What i wrote about was creating floppy image files with files inside them.

Also i'm using Windows and wanted a GUI tool.

A new option if you have a spare raspberry Pi and want to skip all the linux and just have a DOS prompt is dosbian: https://cmaiolino.wordpress.com/dosbian/ He's adding a lot of user friendly features to help with setup and loading. Looks really promising so far!
If you use Linux DOSEmu will run much faster.
Is dosemu maintained in any form or shape?
A 2nd version on the going, and the 1.x branch boots current FreeDOS just fine.

It's the fastest and most secure way to run DOS except the native one. No, I tried Qemu+KVM+FreeDOS, and is not as good.

It's apparently a fork, and really actively developed: https://dosemu2.github.io/dosemu2/

PCem and the like do have some advantages, such as emulating specific hardware, or not being limited to running in x86/amd64.