Skip to content

v1.1.0

Latest

Choose a tag to compare

@dividebysandwich dividebysandwich released this 01 Oct 19:44
· 3 commits to main since this release

What's new

SC-55 emulation

image

Rust-DOS now emulates the SoundCanvas with an implementation written in pure Rust. The ROMs are not shipped with the program, instead the user is prompted whether they want to download them from archive.org. This is the same mechanism as with the AWE32.

TsengLabs ET4000 support

image

machine=svga_et4000 is now a real Tseng ET4000AX with 1 MB and a Sierra HiColor DAC

  • Chip registers:
    • the unlock sequence at ports 3BFh/3D8h;
    • the bank register at 3CDh, with separate read and write banks;
    • the extended display registers: start address up to 1 MB, row overflow bits and the clock select for the higher-resolution timings.
  • Memory: the 1 MB is the VGA's own planes, enlarged to 256 KB each. The VGA's latches and write modes keep working in every mode, and a 16-colour mode can use more than 64 KB per plane, which 1024x768 needs.
  • Tseng BIOS modes through INT 10h:
    • 16 colours: 800x600 and 1024x768;
    • 256 colours: 640x350, 640x400, 640x480, 800x600 and 1024x768;
    • text: 132x25, 132x28, 132x44, 80x60 and 100x40.
  • HiColor: 32K and 64K colours at 320x200, 640x350/400/480 and 800x600. Programs reach it through the DAC's hidden command register or Tseng's INT 10h AX=10F0h–10F2h calls.
  • VESA: VBE 1.2: modes 100h–105h plus the 15- and 16-bit modes, through a banked 64 KB window. There is no linear frame buffer, no 24/32-bit colour and no VBE 2.0 functions.

VRR Frame Pacing

With the new vrr setting on, each frame is shown when the emulated video card would draw it, so a VRR display runs at the game's own rate. On a 144 Hz test display that measured 70.09 Hz in VGA text mode and 59.94 Hz in 640×480.

How to turn it on: vrr=true in [emulator], --vrr on the command line, or "Variable refresh rate" on the settings Display page. It is off by default. VRR must also be enabled for the display and for windows in the graphics driver or desktop (for example sway's adaptive_sync on).

Note: The libretro core and the web build are unchanged, because RetroArch and the browser do their own pacing.

Write overlay

image
  • Any folder drive can take -overlay DIR, and DOSBox's MOUNT C DIR -t overlay works too. Imported DOSBox profiles keep their overlay folder.
  • Files are copied into the overlay folder when first written. Deleted files are listed in .rust-dos-deleted inside it.
  • Booted Windows 3.x/95 shared disks write their changes into the overlay as well.
  • New and imported profiles get overlay=true, so changes go to saves/<profile>/<drive letter> next to the games folder. Existing profiles are unchanged until you add overlay=true.
  • R on the Games page asks first, then deletes that folder, taking the game back to its install state.

ZIP/7z as drives

  • ZIP, 7z and DOSBox Pure .dosz archives mount as drives. Stored zip files are read in place; compressed files are decompressed in memory on first open.
  • An archive whose files are all in one folder uses that folder as the drive's root.
  • An archive holding just a disk or CD image mounts the image.
  • A .dosz stacks over the parent archive it names.
  • Without an overlay an archive drive is read-only; game profiles always give their archives one.
  • Dropping or loading an archive now creates a profile that plays it in place, instead of unpacking it. Games unpacked before keep their folders.
  • The RetroAchievements hashing and the drives now share one zip reader. Hashing now reads through the libretro VFS too, so it also works for Android saf:// content.

Manuals and extras viewer

image
  • With a game's profile defined, it is possible to set [game] manual=path|Title to specify the manual. Any files in games/<profile>.extras, are also used as manual, for example PDFs or PNG/JPEG/GIF pictures.
  • Ctrl+Shift+M opens the running game's manuals; M on the Games page opens any game's. The game pauses while one is open.
  • Keys: PgUp/PgDn turn pages, the arrows scroll, +/- zoom (whole page, width, 150%, 200%), Esc goes back. Ins in the list adds a file to the profile.
  • The position in the manual is remembered during play so you can get back to the same page immediately.
  • On desktop the page is drawn at the window's own resolution, so small print stays readable. In the libretro core it is drawn into the game's picture, with the same aspect correction.
  • The browser build has no manuals: it has no host files to read them from.
  • GAME-PACKAGES.md contains instructions on how to include manuals with your game.

VFS support

  • The libretro core can now run content from Android's file picker (saf:// and content:// paths) through RetroArch's VFS.

Mouse Capture

  • Automatic mouse cursor capture support
  • Also works with games with different movement scaling (F117, etc)
  • Ctrl+Alt added as shortcut to release mouse, like in VMWare

Dosbox compatibility

  • Rust-Dos now imports dosbox and dosbox-pure packages: Inside it expects either a dosbox.conf at the package's root, or GAME.conf next to GAME.zip

Miscellaneous

  • DOS HIGH support (defaults to on, see Emulation settings tab)

Bugfixes

  • Fixed black screen in 3dfx emulation in OpenGL mode
  • Fixed protected mode programs crashing with DPMI=off when more than 64MB RAM was configured