Skip to content

v1.0.0

Latest

Choose a tag to compare

@dividebysandwich dividebysandwich released this 30 Sep 21:25
· 36 commits to main since this release

What's new

Win95 Direct3D support with S3 Virge and Virge/VX emulation

image

Play Direct3D games inside Windows 95 with the S3 Virge or the Virge/VX using the official S3 drivers. Performance has not been optimized yet.

File exchange with Windows 95

image

A booted Windows 95 can now exchange files with host folders in both directions.

  • Folder as a CD (host to Windows, any time): mount a folder on the CD-ROM drive letter, from Ctrl-F12 or MOUNT E ~/stuff -t cdrom.
    • Windows shows contents with the host's long file names; DOS sees 8.3 names.
    • Files are read from the host only when Windows reads them, so a large folder does not take up memory.
    • The disc is a snapshot. Ctrl+F4 or R on the Drives page puts it in again with what the folder holds now. In the test, a file added on the host showed up after that.
    • A booted system now always has a CD-ROM drive, even with no CD mounted, so a disc can be "inserted" later. boot_cdrom=false in [emulator] switches that off.
  • Folder as a hard disk (both directions): a folder mounted as a hard disk on D: to Y: becomes an extra hard disk when the system boots. C: stays 80h and D: becomes 81h.
    • It is a 2 GB FAT16 disk, built in memory from the folder's files with their long names.
    • When Windows shuts down, what it created, changed or deleted on the disk goes back into the folder.
    • S on the Drives page (or POST /api/drive/sync) copies new and changed files while Windows runs, but deletes nothing, since Windows may not have written everything yet. Quitting rust-dos while Windows runs does the same copy.
    • If a file was changed on both sides, the host's version stays and Windows' version is saved next to it as name (from guest).ext.
    • Windows' Recycle Bin isn't copied, and a folder mounted -ro is never written back.
    • A DOS editor that saves a file under its short name still updates the original long-named file.
    • Save states and rewind take this disk back along with the rest of the system, including in a later run.

Some restrictions apply:

  • Timing: changes made on the host while Windows runs only appear on the hard disk at its next boot.
  • Size: the folder can hold at most 1536 MB, because the disk is kept in memory.
  • Unmounting: a shared drive can't be unmounted while the system runs.
  • Opting out: -noshare keeps a D:-Y: folder for the built-in DOS only, and -share shares C: too.

AWE32 support

image

The SoundBlaster wavetable classic is now supported. The wavetable ROM is not included, but will be downloaded automatically after user confirmation.
NOTE: Choose for nostalgia reasons or if that's the only wavetable card supported by your program. For most users GravisUltrasound is recommended over AWE32.

Printer support

image

Printer output in DOS can now be sent to PDF, PNG, a text file, or passed on to the host printer.

"Auto" cycle setting

Unlike Dosbox-X and dosbox-staging, Rust-DOS now implements a control loop that monitors your game's actual render framerate and determines the ideal cycle value automatically. This makes the "auto" setting provide playable cycle counts both for very old games like F117 by Microprose, and newer games like Doom and Descent.

Boot mounted images

image

Mounted images can now be booted at any time, and also through the UI which now has a boot button and an auto-boot setting.

Bugfixes and other changes

  • Fixed recompiler leaking throwaway blocks due to deadline misses. Note that it should be normal for the "Code cache" value on the stats page to grow, but that growth should slow down over time.
  • Midnight Commander now works in DOS mode
  • Larger memory configurations have been added

Performance improvements

The recompiler performance in protected mode and the Voodoo emulation performance have seen significant improvements in previous versions that either rival or greatly surpass other DOS emulators. However the normal "interpreter" mode, used for realmode DOS programs, was still a bit behind.

I am happy to report that this has now been fixed and Rust-DOS is now also leading the pack there. This is great news for low-power systems like raspberry pi.

Benchmark Rust-DOS v0.9.0 Rust-DOS v1.0.0 dosbox-staging DOSBox-X
bench.com (real mode) 6.4 s 3.95 s 5.1 s 4.9 s
Heretic timedemo (protected mode) 31.2 s 21.6 s 23.5 s 22.5 s

(lower is better)

  • BENCH.COM: Rust-DOS is now about 1.6x faster than before, 1.3x faster than dosbox-staging and 1.2x faster than DOSBox-X.
  • Heretic: Rust-DOS is now about 1.45x faster than before and about 1.05–1.09x faster than both DOSBox builds.
  • The recompiler got a little faster too: Heretic with core=auto went from 4.65 s to 4.50 s

Why 1.0 already?

Rust-DOS is arguably not finished. However the majority of DOS games thrown at it just work, and while Windows support still has a lot of room to grow, the move to v1.0.0 is meant to signal to users that the software is indeed ready to be used, instead of a prototype or mere proof-of-concept.

There will of course be both bugfixes and new features coming down the road.