Skip to content

0.80.0 release notes

Release date: 2022-12-21

Summary

ReelMagic DOS games are now playable thanks to the efforts of Jon Dennis, Chris Guthrie, and Joseph Whittaker, with testing and feedback from Vogons users Uka, DonutKing, and Vetz. Mouse emulation has been improved and now supports up to six independent mice, enabling split-screen play in games like The Settlers and The Settlers II. More settings, including video, audio, and mixer effects, can now be changed on the fly. Following macOS, high DPI support on multi-display setups now comes to Windows. A new --working-dir command line flag allows DOSBox Staging to launch from a specific working directory. Repo packagers should note that sdl2_image is now a dependency.

Read on for all the details!

How to upgrade

Get started by downloading the latest version and updating your configuration file:

Downloads

Upgrade your configuration file

  1. Launch the new release.
  2. At theZ:\> prompt, run config -wc to write the new configuration file.

Note

  • Existing settings will be retained, but extraneous comments will be dropped.

  • Starting with version 0.80, the configuration file is written in the language in which DOSBox Staging was started.

  • To write an English configuration file, launch with the -lang en command-line flag (to start DOSBox Staging in English) and then (re-)write your configuration file.

New features

ReelMagic support

DOS ReelMagic games are now playable thanks to Jon Dennis’s patch with help from Chris Guthrie and Joseph Whittaker.

See the [reelmagic] section in your configuration file to enable this. We suggest only enabling ReelMagic emulation on an as-needed basis.

Return to Zork (1995) — introduction

Jon plans to add DMA support (primarily used by the ReelMagic Windows 3.1x driver and games) when time permits, but most ReelMagic games for DOS are already fully functional and playable.

Mouse improvements

Dedicated configuration section

The mouse configuration has been moved to its own section and additional options have been added. A tool called mousectl is available on Z: for more detailed per-interface mouse configuration.  

Dual mouse gaming

Multiple physical mice can now be mapped to specific emulated mouse interfaces, enabling two-player split-screen gaming (The Settlers and The Settlers II) using two USB mice on a single computer.

See the wiki article for more details.

The Settlers II (1996) — showcasing dual-mouse gaming in action

Improved support for third-party INT33 Windows mouse drivers

javispedro’s INT33 mouse driver for Windows 3.1x is fully supported and no longer requires the use of the separate DOS driver, except when booting from a disk image. The driver also resolves compatibility issues with seamless mouse integration and adds mouse wheel support.

See the wiki article for more details.

The title bar now displays some short help about the mouse, such as how it can be captured or released.

High DPI on Windows

Following macOS, high DPI support now comes to Windows: the DOSBox window should scale nicely along other programs, and retain correct dimensions when moving between monitors with different scaling factors set.

Note

This feature is currently experimental! If you notice any weird behaviour, please report it!

Ability to use local configs via Finder on macOS

A new --working-dir <path> command line parameter has been introduced to make it possible to launch DOSBox Staging using local configs from the Finder on macOS. Previously, you had to use DOSBox from the command line to achieve this.  

How to use it

Follow the steps indicated in the DMG package, as shown:

macOS DMG run-command tip

Simply copy the included Start DOSBox Staging.command to a folder that contains a local dosbox.conf and then open it (Start DOSBox Staging.command) in the Finder. DOSBox Staging will act as if started from that folder and will pick up the local config.  

Note

You might be asked to give DOSBox Staging access to the containing folder upon the first launch—just click OK if that dialog comes up.

General improvements

more.com command

The more command is now internally implemented (should be more user-friendly than the original DOS one), and its engine is used for displaying help messages longer than one screen.

more.com — Better and Improved™

On-the-fly changes

Several settings can be safely adjusted at runtime, including the output video settings, resolution, OpenGL shaders, audio devices, and mixer settings.

Reconfiguring audio on-the-fly — changing sound cards in a PC has never been easier!

Post-rendered screenshots

DOSBox has long provided the Ctrl+F5 hotkey to capture the emulated video card’s image prior to rendering.

DOSBox Staging 0.80 now pairs this with Alt+F5 (or Option+F5 on macOS) to capture the as-seen (post-rendered) image.

More bundled OpenGL shaders

The balance of usable shaders from Tyrells’ CRT shader collection, as well as GranMinigun’s interpolating Catmull–Rom spline shader have been added.

Launch DOSBox Staging with the --list-glshaders command-line argument to list the available OpenGL shaders. For example:

List of available GLSL shaders
------------------------------

Path '/usr/src/dosbox-staging/build/resources/glshaders' has:
        |- crt/aperture
        |- crt/caligari
        |- crt/easymode
        |- crt/easymode.tweaked
        |- crt/fakelottes
        |- crt/fakelottes.tweaked
        |- crt/geom
        |- crt/geom.tweaked
        |- crt/hyllian-updated
        |- crt/hyllian
        |- crt/lottes-fast
        |- crt/lottes-fast.subtle+gain
        |- crt/lottes
        |- crt/lottes.tweaked
        |- crt/mattias
        |- crt/pi-vertical
        |- crt/pi
        |- crt/yee64
        |- crt/yeetron
        |- crt/zfast
        |- crt/zfast-composite
        |- interpolation/catmull-rom
        |- interpolation/sharp
        |- scaler/advinterp2x
        |- scaler/advinterp3x
        |- scaler/advmame2x
        |- scaler/advmame3x
        |- scaler/rgb2x
        |- scaler/rgb3x
        |- scaler/scan2x
        |- scaler/scan3x
        |- scaler/tv2x
        `- scaler/tv3x
Full PR list of additions and improvements
  • Add --working-dir command line option (#2122)
  • Add a subset of OpenGL shaders from Tyrells’ repo (#2137)
  • Add direct support for Windows 3.1 seamless mouse driver by javispedro (#1996)
  • Add libraries to support TrueType font rendering (#2075)
  • Add more cleanup on audio device tear-down (#2099)
  • Add mouse related hints to title bar (#2062)
  • Add release drafter support files (#2036)
  • Add screenshots for rendered output #2073) (#2078)
  • Allow to cancel interactive mouse mapping with a keyboard (#2067)
  • Bump actions/cache from 2 to 3.0.11 (#2025)
  • Bump actions/download-artifact from 2 to 3 (#2028)
  • Bump actions/upload-artifact from 2 to 3 (#2026)
  • Bump fountainhead/action-wait-for-check from 1.0.0 to 1.1.0 (#2027)
  • Bump microsoft/setup-msbuild from 1.1 to 1.2 (#2123)
  • Bump microsoft/setup-msbuild from 1.2 to 1.3 (#2129)
  • Check file-descriptor dependency for Enet, slirp, and ManyMouse (#2108)
  • Cleanup a handful of build issues for clang 10.x and 11.x (#2096)
  • Cleanup issues in ReelMagic flagged by Coverity (#2084)
  • Cleanup overcomplicated data conversions in Unicode support (#2104)
  • Cleanup string IDs of DOS programs (#2064)
  • Compiler warning fix in ManyMouse library (#2076)
  • Contribute a script to convert from YouTube chapters to CD-DA (#2037)
  • Customise the looks of the macOS DMG distribution disk image (#2127)
  • Debloat the binary: use more heap storage and retire the software scalar (#2101)
  • Drop architecture spec from setup-msbuild GitHub action (#2124)
  • Enable DPI scaling on Windows (#2105)
  • Fix a couple CWE issues in ManyMouse (#2040)
  • Fix sentence starting with lower case in MOUNT command help (#2068)
  • Generate linker map file by default (#2103)
  • Implement MORE.COM command (#2020)
  • Import Jon Dennis’s ReelMagic emulation package #1112) (#2077)
  • Improve detection of atomics, testing of speexDSP, and cleanup README (#1992)
  • Improve interactive mouse mapping (#2065)
  • Improve management of audio devices (#2095)
  • Look for libXInput dependency (#2085)
  • Minor mouse enhancements (#2060)
  • Mouse mapper and configuration mechanism (#2000)
  • Refactor ReelMagic player with per-stream handle registration (#2086)
  • Refactor the ReelMagic audio FIFO class (#2090)
  • Simplifies file search in virtual drive (#2130)
  • Split contributed CD-DA scripts into fetch vs. cue functions (#2045)
  • Sync reSIDfp with upstream (#2092)
  • Update CI against latest deprecations and OS versions (#2031)
  • Update Tracy to v0.9 (#2069)
  • Update the build system wraps and automate CI action maintenance (#2024)
  • Update wraps and PVS Studio (#2097)
  • Use MORE engine for help output (#2079)
  • Use a sdd::unique_ptr to manage the video memory (#2116)
  • Use shared pointers to manage the virtual files (#2117)

Bug and regression fixes

  • The mixer’s effects (reverb, chorus, and crossfeed) can now be turned on and off at runtime via the mixer command.

  • FluidSynth’s specific reverb and chorus configuration settings are now applied and will replace the default values that were previously always applied.

  • The modem’s call now has a warm-up period where it will discard data. This fixes a bug noted in Duke Nukem 3D where it would fail its initial handshake on the first try.

Full PR list of bug and regression fixes
  • Adapt update-sources.sh script to UTF-8 locale (#2011)
  • Add modem call warm-up period (#2125)
  • Always use VFR presentation mode for text modes (#2139)
  • Avoid shifting negative DAC data in Sound Blaster (CWE-758) (#2115)
  • Capture the OpenGL screenshot using RGBA pixel format (#2143)
  • Change config -wc to write UTF-8 file (#1991)
  • Drop architecture spec from setup-msbuild GitHub action (#2124)
  • Fix FluidSynth reverb and chorus settings not applying (#2133)
  • Fix a memory leak in the keyboard layout class (#1985)
  • Fix assertion in mouse code for surface screen output (#2110)
  • Fix bitwise shift of negative in DOS date pack call (#2034)
  • Fix character D6 mapping in code page 3021 (Bulgarian MIK encoding) (#2094)
  • Fix several English strings too long to fit on screen (#1998)
  • Fix tab handling in MORE command (#2102)
  • Improve mixer.com CLI handling of volume and effect arguments (#2021)
  • Initialize the window’s canvas size during its setup phase (#2038)
  • Limit bit_views to 8-bit registers to avoid byte-order assumption (#1999)
  • MORE text output engine fixes (#2083)
  • Parse language options before writing the conf file (#2001)
  • Remove errorneous screen parameters check in mouse code (#2119)
  • Restore 0.79.1 mouse acceleration model in DOS driver (#2087)
  • Restore WheelHasMoved bit in DOS mouse driver to correct value (#2091)
  • Use non-throwing form of std::filesystem calls (#1995)

Translation improvements

Translations

  • German: up-to-date
  • Italian: up-to-date
  • Polish: up-to-date
  • Russian: up-to-date
  • French: not updated
  • Spanish: not updated
  • The title bar is now translatable.

  • The Brazilian ABNT2 slash and question mark keys are now handled.

  • Translations are now stored in UTF-8 and converted to the selected DOS codepage, dropping accents if needed, sometimes even performing crude transliterations (for Latin, Greek, and Cyrillic alphabets DOSBox shouldn’t display garbled messages anymore regardless which codepage is selected). This is especially important for languages where more than one incompatible encoding was used in the DOS era. All FreeDOS codepages are supported. Note that only DOSBox Staging’s own messages benefit from this feature.

Full PR list of documentation and translation changes
  • Adapt update-sources.sh script to UTF-8 locale (#2011)
  • Add Dutch tranlation of MOUSECTL (#2042)
  • Add Dutch translation of MORE (#2048)
  • Add handling for ABNT2 slash/question mark key (by rsribeiro) (#2082)
  • Add release drafter support files (#2036)
  • Clarify tandy and ibm5153 cga_colors config descriptions (#2074)
  • Cleanup string IDs of DOS programs (#2064)
  • Convert esc codes to ansi in src (#2008)
  • Delete obsolete translated msgs (#2058)
  • Fix character D6 mapping in code page 3021 (Bulgarian MIK encoding) (#2094)
  • Fix code page 30020 to UTF-8 mapping (#1988)
  • Fix code page 30020 to UTF-8 mapping (#1988)
  • Fix mistakes in switching to ansi text codes (#2017)
  • Fix some errors in the Italian (it-it) translation (#2029)
  • Fixed some ANSI escape codes in the Italian translation (#2013)
  • Fixup nl.txt to match nl.lng (#2010)
  • Improve build instructions (#2126)
  • Improve detection of atomics, testing of speexDSP, and cleanup README (#1992)
  • Minor Dutch translation updates (#2007)
  • Parse language options before writing the conf file (#2001)
  • Support for UTF-8 locale (2nd generation patch) (#1884)
  • Support for UTF-8 locale (2nd generation patch) (#1884)
  • Switch messages in MSG_Add from code page 437 to UTF-8 (#1984)
  • Switch messages in MSG_Add from code page 437 to UTF-8 (#1984)
  • Translate new message (#2032)
  • Update Dutch (nl) translation (#2100)
  • Update Dutch (nl) translation (#2141)
  • Update Italian (it-it) translation (#2005)
  • Update Italian (it-it) translation (#2041)
  • Update Italian (it-it) translation (#2055)
  • Update Italian (it-it) translation (#2072)
  • Update Italian (it-it) translation (#2088)
  • Update Polish (pl) translation (#1982)
  • Update Polish (pl) translation (#2070)
  • Update Polish (pl) translation (#2098)
  • Update Polish (pl) translation (#2118)
  • Update Polish (pl) translation, change ANSI escape codes to tags (#2012)
  • Update Russian (ru-RU) translation (#2120)
  • Various Dutch translation updates (#2016)

Documentation updates

The following wiki articles have been updated:

  • The new Dual Mouse Gaming page documents how to set up dual-mouse working in The Settlers and The Settlers II.

  • The Windows 3.1x page was updated with notes on how to set up the improved mouse driver, and more sound drivers.

  • The new Windows 3.0 page documents how to set up Windows 3.0’s video, sound, MIDI, mouse, and how to print to files.

  • The new Serial Ports page documents all of the serial port settings.

  • The Sound Cards page was overhauled with descriptions and configuration help for all supported sound devices.

  • The Tips & Tricks page was updated with how to generate DOSBox mountable CD-DA content from public domain or Creative Commons licensed YouTube chapters and playlists.

Contributors

The following commit authors, sponsors, supporters, and backers all invested their time or funds into the 0.80 release effort. Thank you!

Contributors are listed in alphabetic order.

0.80 commit authors

  • Burrito78
  • dreamer
  • drfiemost
  • FeralChild64
  • GranMinigun
  • javispedro
  • Jkapp76
  • johnnovak
  • jrdennisoss
  • Kappa971
  • kcgen
  • kklobe
  • LowLevelMahn
  • memononen
  • nemo93
  • NicknineTheEagle
  • rderooy
  • rsribeiro
  • tyrells

0.80 sponsors

Sponsors who donated more than 100 USD per month to the project:

  • Antti Peltola (1000 USD during the period)
  • Wengier Wu (380 USD during the period)

0.80 backers

Backers who donated more than 5 USD per month to the project:

  • Burrito78
  • Hannu Hartikainen
  • Hugo Locurcio

Thank you for considering supporting our work through a donation on GitHub Sponsors or Open Collective. Your contribution helps us purchase the necessary hardware and licenses to keep our project going.

Thank you

We are grateful for all community contributions as well as the original DOSBox project, upon which DOSBox Staging is based.