Skip to content

v1.6.0

Choose a tag to compare

@dividebysandwich dividebysandwich released this 10 Oct 18:59
· 181 commits to main since this release

What's new

CHD CD images

  • Rust-DOS now reads CD images in MAME's compressed CHD format (.chd, as chdman createcd makes them). It reads both data and audio tracks, decompressing them as they are read.
  • CHD images work wherever other CD images do: mounted from the Drives page, opened directly, or in a game package's automount folder (d.chd).
  • A CHD is already compressed, so store it uncompressed inside a zip (zip -n .chd). That makes it the smallest CD image that uses no extra memory.

Windows 95 on the Rendition Vérité

  • Windows 95 now runs on the Vérité with Rendition's V1000 reference driver (2.1 beta 2), installed with Have Disk in Display Properties. It used to crash after the driver was installed (#15, reported by The-Solutor).
  • The driver's 2D microcode now runs on the emulated card, including fills, copies, one-bit images, text, brushes and clipping. Mode setting goes through the card's own CRTC, and the Bt485 RAMDAC provides the palette and hardware cursor.
  • The desktop, MS-DOS Prompts (windowed and full screen) and Paint were tested at 800x600 in High Color and at 640x480 in 256 colours and True Color.

NOTE: Direct3D and OpenGL under Windows are not supported yet.

Display, mouse and sound settings

  • Fixed aspect ratios (aspect): none (native pixels), 4:3, 5:4, 16:10 or 16:9. The picture expands to that shape without cropping, and 4:3 is the usual choice for DOS games. The old true/false values still work. (contributed by dosmax on the Vogons forums)
image
  • Mouse sensitivity (mouse_sensitivity): scales captured mouse movement from 0.1 to 10.0 (default 1.0). It has a slider in the settings window (contributed by dosmax on the Vogons forums)
image
  • Sound buffer and prebuffer (blocksize, prebuffer): set how much sound waits for the host's sound device. Smaller values make sound reduce latency; too low values make the sound crackle, in that case raise the values again. The defaults are 512 frames and 20 ms.
image

libretro core: 3dfx Voodoo with OpenGL

  • With 3dfx renderer set to OpenGL, the core now draws the 3dfx card with the frontend's OpenGL, as the Rust-DOS window does. That includes 3dfx OpenGL scale and 3dfx OpenGL antialiasing. It needs RetroArch's glcore or gl video driver; with any other driver, the software renderer draws the card as before.

Debug server

Three additions for scripts and LLM agents that drive the debug server, by @kibertoad:

  • Trace paging and counted traces (#18): GET /api/trace?since=N reads the trace oldest first in pages, with a next cursor and a dropped count of entries overwritten before they were read. POST /api/trace {"count":5000} records the next 5000 instructions and stops, so the ring keeps what ran right after a breakpoint.
  • Guarded memory writes (#19): PUT /api/memory takes "expect", the bytes that must be there for the write to happen. If they differ, nothing is written and the reply is 409. Every write reply now includes the bytes it replaced (old) and what reads back (new). Hex data can be written as 0xCD 0xAB.
  • Program start and exit stops (#20): POST /api/control/run {"command":"GAME.EXE","stop_at_entry":true} runs a command line and pauses at the program's first instruction. The {"program_start":true} and {"program_exit":true} breakpoints pause at every program's entry and after every program ends, with its exit code and whether it stayed resident or was aborted. /api/status shows the running program and how the last one ended.

3dfx improvements (contributed by dosmax on the Vogons forums)

  • Fixed the mouse in the 3dfx versions of Descent II
  • Separated constant-depth comparisons from interpolated-depth writes
  • Preserved framebuffer writes between identical triangle draws

Other changes and fixes

image
  • Fixed the planet palette in Jazz Jackrabbit: video BIOS calls that pass pointers are now translated for DPMI programs.
  • Fixed scroll jitter in Jazz Jackrabbit with VRR frame pacing.
  • Expanded the Tomb Raider instructions: the double/single buffering toggle and the keys specific to the PowerVR version.
  • The sound cards, DMA controller, savestates, host directories and the zip reader now live in their own crates. This allows the re-use of things like the GUS and SoundCanvas emulation written in pure Rust by other projects.
  • Windows builds now have the correct program icon.