Skip to content

DSperate v3.0.6

Latest

Choose a tag to compare

@github-actions github-actions released this 31 Oct 02:18

DSperate v3.0.6

GPU 3D accuracy and stability update.

Features

  • Stylus speed in the menu: the controls page gains a STYLUS SPEED row for pad.stylus_speed.
  • Scanout buffers off CMA: where the display sits behind an IOMMU, the frontend allocates its scanout buffers from the system heap first, with udmabuf as a further source (DS_DMA_HEAP=udmabuf). On the RG DS Plus this ends the 1.3 s present stall when the second window's buffers did not fit in CMA.

Fixes

  • GPU 3D (lean raster): colours and texture coordinates now follow the DS's own per-row interpolation, so textures no longer shimmer against the CPU raster as the camera moves, and sprites and character shadows sit texel-exact. With MSAA on, sprite edges no longer bleed into the neighbouring column and the screen's last row and column are no longer softened.
  • Zoo Keeper: the ARM PLD instruction no longer raises an undefined-instruction exception, which froze the title screen.
  • IPC FIFO timing: an ARM9 word reaches the ARM7 at its send time, fixing a boot hang on a white screen (Picross DS, Korean release).
  • Electroplankton: a timer control overflow no longer breaks the Rec-Rec drumbeat loop.
  • Start-up under PipeWire: start-up runs as an ordinary task, so the real-time watchdog no longer kills DSperate with a bare signal 9 on slow clocks.
  • Two windows on SDL3: with video.dual_window, KMSDRM takes SDL's legacy path, which drives both panels, instead of crashing in the present.
  • Menu close: buttons and touches still held as the menu closes stay out of the game until released.
  • Crash dumps: a core no longer includes the guest memory's shared mappings, which made systemd-coredump take over a minute and froze the panels.
  • A30 build: the ARMv7 release builds again on its old sysroot.

Full changelog: v3.0.5...v3.0.6

Games run without BIOS or firmware dumps (built-in FreeBIOS and a generated firmware); a set dumped from your own DS unlocks the firmware boot and cycle-exact SWI timing. None is included.

Tarballs: linux-aarch64 is dynamically linked and stripped -- the one to package. linux-aarch64-static carries libstdc++/libgcc inside and keeps its debug symbols, for a device whose runtime is older than the build's, or for a backtrace.