pkgsrc-WIP-changes archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

dosbox-staging: update to dosbox-staging-0.80.1



Module Name:	pkgsrc-wip
Committed By:	Yorick Hardy <yorickhardy%gmail.com@localhost>
Pushed By:	yhardy
Date:		Tue Mar 21 21:45:03 2023 +0200
Changeset:	5cca64db21538a46feb95ba551d5cb71ddbd6a70

Modified Files:
	dosbox-staging/Makefile
	dosbox-staging/PLIST
	dosbox-staging/distinfo
	dosbox-staging/patches/patch-meson.build
Added Files:
	dosbox-staging/patches/patch-src_hardware_vga__other.cpp
	dosbox-staging/patches/patch-src_libs_loguru_loguru.cpp
	dosbox-staging/patches/patch-src_libs_manymouse_x11__xinput2.c

Log Message:
dosbox-staging: update to dosbox-staging-0.80.1

0.80.1 release notes
====================

Release date: 2023-01-06

Summary

This maintenance release fixes minor issues with the mouse defaults, modem and Ethernet connection handling, and Meson
dependencies.

We are also happy to report that the high DPI improvements in the previous 0.80.0 release have been verified on Windows, meaning
that high DPI support is now functional on all platforms. Thanks to GranMinigun for this addition!

This maintenance release was made possible by everyone who tried 0.80.0, submitted bugs and pull requests, and tested the updates:
thank you!

Bug and regression fixes

  * The mouse will now be captured only after the first click inside the window. For users without a windowing environment, the
    previous capture-on-start behavior will remain unchanged.

  * The captured mouse will now be centered in the window upon release.

  * The softmodem now includes a brief warm-up period where it will drop initial unreliable data, similar to hardware modems. This
    allows Duke Nukem 3D to establish its data connection on the first attempt.

  * A potential slow memory leak related to closed Ethernet connections has been fixed.

  * A bug that caused the C: mount to become unlistable after launching DOSBox Staging with a command-line mount while using
    MORE.COM has been fixed.

  * The xinput2 library, an optional dependency of ManyMouse, can now be set via the Meson options. For more information, see
    meson_options.txt.

  * When compiling on ARM platforms, the SpeexDSP wrap will now correctly check if the host supports NEON instructions, and use
    them if available.

Full PR list of bug and regression fixes

  * Add Linux ARM CI jobs using containerized cross-compiler (#2193)
  * Add missing Windows 11 features to MORE command (#2142)
  * Bump Coverity to v2022.06 (#2162)
  * Bump actions/cache from 3.2.0 to 3.2.1 (#2152)
  * Bump actions/cache from 3.2.1 to 3.2.2 (#2165)
  * Center mouse cursor before releasing it (#2173)
  * Change mouse capture default to ‘onclick’ (#2172)
  * Check CLI arguments for directories using non-invasive test (#2148)
  * Cleanup some minor Coverity issues (#2179)
  * Fix CGA mono and Hercules intro banners (#2190)
  * Fix imprecise help string in MORE command (#2161)
  * Fix logging of some pre-EGA modes (#2187)
  * Fix remaining two CWEs involving unchecked return values (#2150)
  * Fix slirp/ne2000 warnings (#2182)
  * Improve logging of the current display mode (#2168)
  * Improve seamless mouse configuration entry description, mention the touchscreen (#2163)
  * Make the xinput2 library optional for ManyMouse (#2155)
  * Use extended ASCII check in MORE command (#2195)
  * Use presence of desktop environment in mouse capture states (#2181)

Translation improvements

This maintenance release includes updates to the Dutch, Italian, and Polish translations.

Full PR list of translation improvements

  * Update Dutch (nl) translation of MORE (#2164)
  * Update Italian (it-it) translation (#2166)
  * Update Polish (pl) translation (#2159)
  * Update Polish (pl) translation (#2186)
  * Update Polish (pl) translation, for 0.80.x only (#2194)

Contributors

The following commit authors, sponsors, supporters, and backers invested their time or funds into this maintenance release. Thank
you!

Commit authors

In alphabetic order:

  * FeralChild64
  * johnnovak
  * Kappa971
  * kcgen
  * NicknineTheEagle
  * rderooy
  * shermp
  * ThomasEricB

Sponsors

Sponsors who donated 100+ USD per month to the project:

  * Antti Peltola
  * Wengier Wu

Backers

Backers who donated 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 hardware and cover ongoing expenses to keep the project going.

Thank you

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

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

  * Linux
  * Windows
  * macOS

Upgrade your configuration file

 1. Launch the new release.
 2. At the Z:\> 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.

Your browser does not support the video element.

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.

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.

Mouse-related help in the title bar

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 any folder that contains a local dosbox.conf and then open it (Start
DOSBox Staging.command) in 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.

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.

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

Related improvements

  * 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 (2^nd generation patch) (#1884)
  * Support for UTF-8 locale (2^nd 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.

0.79.1 release notes
====================

Release date: 2022-09-30

Summary

We recommend repository maintainers move to 0.79.1, which should be much easier to package. Details in the Packaging fixes section
below.

We recommend users of our zip, dmg, and Windows installer packages upgrade from 0.79.0 to fix some audio and usability bugs.

This maintenance release was made possible by everyone who tried 0.79.0, submitted bugs and pull requests, and tested the updates:
thank you!

How to upgrade

Download and launch the latest version:

  * Linux (or Steam on Linux)
  * Windows
  * macOS

At theZ:\> prompt, run config -wc to write the new configuration file. Any existing settings will be retained, however, extraneous
comments will be dropped.

Fixes and regressions

  * Fixed a CD-DA playback regression in Might and Magic 6 when using multi-image mounts (kcgen)

  * Allowed the Esc key and window-close events to exit from the paused state (Wengier)

  * Fixed a bug that prevented automounted drives from being used by [autoexec] commands (kcgen)

  * Fixed an audio filter reset regression flagged in Blues Brothers: Jukebox Adventure (kcgen)

  * Fixed a 16-bit stereo DMA regression detected when using the Sound Blaster’s modern filter (kcgen)

Functionality refinements

  * Improved ability to pipe between applications by using Y: as a temporary path (Wengier)

  * Switched to warning-level logging for MIDI configuration issues (Michael Drueing)

  * Improved the lookup of resources when XDG variables aren’t set correctly (kcgen, Eli Schwartz)

  * Updated the Dutch language to use the US keyboard layout by default (Wengier)

  * Included Xbox compatible controller mapperfiles for 180+ games: conf, wiki (nemo93)

Translation improvements

  * Added Dutch translation (Robert de Rooy)
  * Fixed outdated content in German translation (Burrito78)
  * Synced Italian translation (Kappa971)

  * Dropped non-existant KEYB help messages from translation system (Wengier)

  * Replaced more escape codes with markup tags in the translations (Robert de Rooy)

  * Moved the mount type descriptions into the translation system (Wengier)

Wiki updates since 0.79.0

  * New Keymapper page with examples for those with Xbox controllers (nemo93)

  * New FAQ answering questions about audio settings, configuration files, video output, and other topics (nemo93)

  * Notable additions to the UniVBE, Special keys, Getting started, Suggested audio settings, Config examples, AUTOTYPE candidates,
    and Games with CD-DA, GUS and MIDI audio pages (nemo93)

Packaging fixes

  * Adjusted Meson’s FluidSynth dependency spec to match upstream’s packaging (Kirk Klobe)

  * Switched Meson to use SpeexDSP from the host first and fallback to wrap (kcgen)

  * Switched Meson to use shared (instead of static) libraries by default (kcgen)

  * Fixed installation of resources when using meson install (kcgen, Eli Schwartz)

Packagers will get shared libs and installed resources with these standard steps:

 meson setup --prefix /writable/install/path build
 meson install -C build

Thank you

Thanks to our financial contributors who allow us to purchase hardware, licenses, and other non-trivial expenses to keep the team
and project going.

To support our work, donate to our GitHub Sponsors or Open Collective.

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

0.79.0 release notes
====================

Release date: 2022-09-19

How to upgrade

Download and launch the latest version:

  * Linux (or Steam on Linux)
  * Windows
  * macOS

At the Z:\> prompt, run config -wc to write the new configuration file. Any existing settings will be retained, however, extraneous
comments will be dropped.

What you can expect

  * It should run everything that prior versions did.

  * The default settings will give you improved audio, refined graphical scaling and colour accuracy, more robust mouse handling,
    and a more usable shell.

  * There are new and some deprecated config settings: your console log will inform you with orange-coloured warning messages to
    help you.

  * For performance-demanding games that use max cycles, it should provide just as much performance (or a bit more) than prior
    versions.

  * International users: it should detect your language and keyboard layout on startup. We recommend reading the Localisation
    section for details.

  * Repo packagers: learn about bundled resource files and the updated Meson build settings.

Read on for all the details!

Audio improvements

AdLib Gold Surround Module emulation

The ultra-rare AdLib Gold surround sound daughterboard is now emulated, which makes it possible to finally enjoy the Dune
soundtrack in its full glory! That’s the only game in existence that makes use of the surround module.

The following config is recommended for Dune. The setup utility should auto-detect AdLib Gold and the surround module correctly
with these settings.

 [sblaster]
 sbtype = sb16
 oplmode = opl3gold

Sound card output filter emulation

Most DOS-era sound cards feature an output low-pass filter (and sometimes a high-pass filter too) that play an important role in
giving their sound its character. DOSBox Staging can now accurately emulate these analog output stage filters for all supported
sound devices.

Sound Blaster

For backward compatibility reasons, the sb_filter config parameter defaults to the newly introduced modern filter, which uses the
simple linear interpolation method of previous DOSBox versions. To turn on accurate analog output filter emulation, set the
sb_filter to auto. This will set the correct filters for each Sound Blaster model depending on the sb_type value. You can also set
a model-specific filter manually if you wish, e.g. this is how to use a Sound Blaster 16 but with Sound Blaster Pro filters:

 [sblaster]
 sbtype = sb16
 sb_filter = sbpro1

Some Sound Blaster models can toggle the filter on and off in software; you can force the filter to be always on by setting
sb_filter_always_on to true.

OPL and CMS filters are also accurately emulated; please refer to the descriptions of the opl_filter and cms_filter config
parameters for further details.

Small-speaker systems

Filters are enabled by default for all small-speaker audio systems (PC Speaker, PS/1 Audio, Tandy, and the various LPT DAC
options). Depending on the particular device, these filters either emulate the analog output filters of the original device, or the
sound coming out of a small band-limited speaker in an acoustic environment. Either way, the result is a more period-accurate and
pleasant listening experience, especially on headphones.

Small-speaker filters are controlled by the following config parameters:

  * lpt_dac_filter
  * pcspeaker_filter
  * ps1audio_dac_filter
  * ps1audio_filter
  * tandy_dac_filter
  * tandy_filter

Custom filters

Advanced users can specify custom filter settings for any of the supported sound devices. You can specify either a high-pass
filter, a low-pass filter, or both at the same time using the following format

TYPE ORDER FREQ [TYPE ORDER FREQ]

where TYPE can be hpf (high-pass) or lpf (low-pass), ORDER is the order of the filter from 1 to 16 (1^st order results in a 6dB per
octave slope, 2^nd order in a 12dB per octave slope, etc.), and FREQ is the filter’s cutoff frequency in Hz.

For example, to use a 2^nd order (12dB/oct) low-pass filter at 8 kHz for the Sound Blaster:

 sb_filter = lpf 2 8000

To use a 3^rd order (18dB/oct) high-pass filter at 120 Hz, and a 1^st order (6dB/oct) low-pass filter at 6.5 kHz for the PC
Speaker:

 pcspeaker_filter = hpf 3 120 lfp 1 6500

In addition to the sound devices mentioned above, you can use custom filters even with devices that don’t filter the output in the
original hardware (e.g. GUS, MT-32), and the FluidSynth virtual MIDI device via the following config parameters:

  * fsynth_filter
  * gus_filter
  * innovation_filter
  * mt32_filter

Crossfeed

Listening to audio material on headphones where certain sounds are only present in either the left or the right channel can be a
rather distracting and unpleasant experience. This is most noticeable on certain Dual OPL game soundtracks and tracker music (e.g.
MOD, XM, S3M, IT, etc.)

The new crossfeed feature remedies that; by enabling crossfeed in the [mixer] section, a certain percentage of the left channel is
mixed into the right, and vice versa. The default crossfeed strength is 40% which is a good general setting, but you can provide a
custom percentage value as well (e.g. crossfeed = 55).

The amount of crossfeed can be fine-tuned per individual channels via mixer commands; please type MIXER /? in the DOSBox prompt for
further details.

Reverb and chorus

Reverb

One of the most exciting new audio features is the ability to add reverb (the emulation of real acoustic spaces) and chorus effects
to any mixer channel. This can add a lot of atmosphere to dry-sounding synth soundtracks (typically OPL music) and elevate them to
a whole new level! Enabling reverb and chorus processing is especially useful for headphone-listening.

The quickest way to enable the reverb effect globally is to put reverb = on in the [mixer] config section. This will add reverb to
all synth channels (e.g. PC Speaker, OPL, CMS), and a lesser amount to digital audio channels (e.g. Sound Blaster, GUS). While the
default setting works well with most games, it’s highly recommended to experiment with the five available reverb presets to find
the optimal setting for each game:

  * tiny simulates the sound of a small integrated speaker in a domestic room. This preset is specifically tailored for
    small-speaker audio systems (PC Speaker, Tandy, PS/1 Audio, and LPT DAC devices).

  * small adds a subtle sense of space; it’s best suited for games that use a single synth (typically OPL) for both the music and
    the sound effects.

  * medium is the default preset; it’s a middle-of-the-road setting that works well with a wide variety of games.

  * large is a large hall-style reverb that is recommended for games that use separate audio channels for music and digital audio
    (e.g. OPL audio and Sound Blaster digital sound.)

  * huge is a stronger variant of the large hall preset which is ideal for slower-paced, atmospheric music.

Chorus

Another way to add a sense of space to the sound is by enabling the chorus effect. This adds stereo movement and increases the
perceived stereo width, which is especially noticeable on purely mono signals on headphones (e.g. PC Speaker or OPL2 music). To
enable it, just put chorus = on into the [mixer] config section, or select one of the three predefined chorus strength presets
(light, normal, and strong).

Similarly to crossfeed, per-channel reverb and chorus settings can be tweaked by mixer commands; please type MIXER /? in the DOSBox
prompt for details.

Audio examples

Naturally, you can combine chorus and reverb, and it’s not only possible to do so, but highly recommended for achieving the best
results! The below recordings showcase how crossfeed, reverb, chorus, and output stage filters can work in tandem to give old DOS
game soundtracks a new life.

The exact settings used for these recordings are documented on the wiki, along with suggested audio configs for many other games.
Make sure to check them out and experiment with the settings yourself!

Master compressor

An auto-levelling dynamic range compressor has been introduced to the master channel to ensure that the audio output never gets
distorted, no matter how high the volume levels are. This is on by default and is virtually transparent when the output is not
driven into clipping. However, purists can disable it by setting compressor to off, and then ensure correct non-clipping output
levels manually.

General mixer improvements

  * The mixer now uses a full 32-bit floating-point processing path internally, which means you can no longer overload individual
    mixer channels into clipping by using high per-channel volume settings. As long as the summed master output is not clipping,
    it’s guaranteed that nothing else will.

  * A fixed high-pass filter at 20 Hz has been introduced right before the final output that gets rid of any DC-offset and subsonic
    rumble globally.

  * The MIXER command has received an overhaul too. First of all, the status output looks better, and the following improvements
    have been made:

      - Now you can set reverb, chorus, and crossfeed levels per mixer channel; type MIXER /? in the DOSBox prompt for further
        details.

      - The FM channel has been renamed to OPL.

      - The SPKR channel has been renamed to PCSPEAKER.

      - The sample rate column has been removed (it served no useful purpose, and the displayed values were often technically
        correct but misleading).

  * For a high-level overview of the new mixer architecture, please refer to this diagram.

“One OPL mode to rule them all” 💍

NukedOPL has long been the default OPL mode in Staging. As it’s basically a bit-perfect emulation of the Yamaha YMF262 OPL3 chip,
and it runs fast enough even on low-end hardware such as the Raspberry Pi 4, all other less accurate OPL emulation modes have been
removed.

FluidSynth configuration changes

FluidSynth Reverb and Chorus

Due to the introduction of the new mixer-level reverb and chorus effects, the FluidSynth reverb and chorus config parameters have
been renamed to fsynth_reverb and fsynth_chorus, respectively.

To maintain backward compatibility with existing configurations, the FluidSynth reverb and chorus effects are enabled by default,
so all your SoundFonts will sound just like in previous DOSBox versions. If you enable the mixer-level reverb (or chorus) as well
(e.g. by putting reverb = on in the [mixer] section), you would get a second round of reverb (or chorus) processing on the
FluidSynth output. This is by design as it allows users the greatest level of control over customising SoundFonts (e.g. some would
sound best with the FluidSynth reverb only, some with both, etc.)

Note

In the SF2 format the reverb and chorus amounts are specified on a per-instrument basis, while the mixer-level effects are applied
“globally” to all instruments in the summed FluidSynth output. Therefore, what works best really depends on the particular
SoundFont in question and on individual user preference (see this discussion for further technical details).

Volume Scaling

Previously, it was possible to specify a percentage after the SoundFont’s name in the config to adjust its volume (e.g. soundfont =
way_too_loud.sf2 30). This was introduced as a workaround for certain loud SoundFonts that tended to clip the mixer channel
internally.

With the new floating-pointing mixer signal path, it’s no longer possible to drive any of the mixer channels into clipping,
therefore this workaround has been deprecated. Please use standard mixer commands to lower the volume of the FSYNTH channel if you
wish to do so.

ripa’s PC speaker patch

We’ve integrated ripa’s impulse-model PC speaker patch alongside DOSBox’s existing (discrete-model) PC speaker implementation,
which is still the default.

To use it, set the pcspeaker config setting to impulse (or go back to default with discrete).

James-F and VileRancour have mentioned in the linked thread that it generally improves the accuracy of square-wave effects, such as
in Commander Keen and Duke Nukem (2D). This patch also can produce sounds when none previously existed, such as in Wizball, as
noted by ripsaw8080.

For example, here’s Wizball using the settings below:

 [mixer]
 rate = 32000

 [speaker]
 pcspeaker = discrete

Note

There are some audible regressions and harmonics that still exist in some games, so that’s why this is an alternative and not the
default.

Parallel port DAC models: Disney, Covox, and Stereo-On-1

Those familiar with DOSBox know that these three devices are emulated with the universal disney = true setting.

Like sbtype, we wanted the model of LPT DAC to be configurable, and so Staging’s deprecated the disney setting in favour of lpt_dac
that takes any of the following:

  * disney, for the Disney Sound Source
  * covox, for the Covox Speech Thing
  * ston1, for the Stereo-on-1 DAC device
  * off/none, to disable the DAC (default)

This is paired with a corresponding filter setting, lpt_dac_filter, which approximates how the original device sounded. This means
that the Disney Sound Source (which included a little speaker inside it) will sound a lot like you might remember.

lpt_dac Examples (ModPlay Pro & Star Control II’s 8-bit Pkunk MOD)
disney  Your browser does not support the audio element.
covox   Your browser does not support the audio element.
ston1   Your browser does not support the audio element.

Like the other audio filters settings, the lpt_dac_filter can be toggled on, off, or customised.

Audio mute and pause

The audio stream can now be manually muted with Ctrl+F8 (or Cmd+F8 on macOS).

You can also mute the audio automatically when DOSBox Staging goes to the background with this config setting:

 [sdl]
 mute_when_inactive = true

Or you can pause emulation entirely when in the background with:

 [sdl]
 pause_when_inactive = true

Graphical improvements

Shader reload shortcut

As DOSBox Staging currently lacks a shader preset system, tweaking shader parameters can only be accomplished by making changes to
the shader source files themselves. Previously, you had to restart DOSBox to see the effects of such changes, which made
fine-tuning shaders quite cumbersome, to say the least.

Now you can just use the Ctrl+F2 shortcut (Cmd+F2 on macOS) to reload the current shader at any time. Progress! 😎

CGA palette override

Now it is possible to override the default, canonical interpretation of the 16-colour CGA/EGA RGBI palette. The feature overrides
the CGA colours in any CGA/EGA-like mode, so it even works in CGA/EGA modes with an emulated VGA or TGA (Tandy) graphics adapter.

Several presets have been included (e.g. Amiga and Atari ST colours for Sierra games, and various CGA/EGA monitor emulations), and
you can specify custom palettes as well. Make sure to check out the description of the cga_colors config parameter for the list of
available presets (you can read more about them here).

Defender of the Crown

tandy-warm emulates the colours as they appear on an actual Tandy monitor, which results in more subdued and pleasant colours. This
is especially apparent on the greens.

Gold Rush

The Amiga/Atari ST ports of Sierra AGI games feature a tweaked CGA palette with improved skin tones and sky colours.

Zak McKracken and the Alien Mindbenders

Now you can play the PC version of this classic adventure with Tandy sound and Commodore 64 colours!

Scaled image quality improvements

When the image is scaled by non-integer ratios (e.g. when aspect correction is enabled with the default sharp OpenGL shader),
previously the interpolation was performed in a gamma-incorrect way, leading to various unwanted artifacts. These were most
noticeable on checkerboard dither patterns (used frequently in EGA games), appearing as interference (moiré) patterns, and on
high-contrast antialiased text (e.g. regular black text on white background appeared bold).

macOS notes

All Mac browsers tend to display the below images with incorrect gamma on the built-in MacBook displays, which makes the “bad”
images look less wrong, and there are slight interference patterns on the “good” images. Please download the images and view them
in the Preview app instead, which displays them correctly.

High DPI on macOS

The backstory: DOSBox Staging uses OpenGL output with the sharp bilinear scaling shader to keep the picture crisp no matter how big
or small the image is, and minimise blurring on pixel transitions.

Due to the way macOS handles DPI scaling, the image was drawn at a much lower resolution, usually just a quarter of the window
size. Then it was stretched by the system, producing an unpleasantly mushy presentation. But we want our pixels to be so sharp they
could cut one’s eyes

Now DOSBox Staging can handle high DPI displays, be it Retina or not, so you and shaders alike can see all the (physical) pixels.

Please note that this is currently experimental: only macOS is currently supported, and we haven’t thoroughly tested multi-display
setups. Please report any weird behaviour! Support for Windows will come in the future, and for Linux, it is still uncertain. Also
note that due to the way rendering is currently implemented, you may observe lowered performance on higher resolution displays,
especially when running off integrated graphics. This might be remedied in the future as well.

Window transparency support

There might be situations where you want to place the DOSBox Staging window on top of another window while seeing both windows at
the same time. Indeed, you can now set the DOSBox Staging window as transparent, with a customised level of window transparency, so
that you can see the background window as well. There is a new config option transparency for this, whose valid values are between
0 (no transparency; default) to 90 (high transparency).

Transparent window

Frame presentation modes

DOSBox presents frames when new content is available, which means that sometimes the effective frame rate can vary between 0 FPS
(if the screen content isn’t changing) and as fast as the DOS vertical refresh (vblank) rate (typically up to ~70 Hz). We’ll call
this presentation mode Variable Frame Rate or VFR.

In addition to VFR, DOSBox Staging supports a Constant Frame Rate (CFR) presentation mode, which presents a constant frame rate
defined by the emulated DOS rate, as well as variations on both:

  * Synced CFR, which presents a constant frame rate but is synchronised with the host’s refresh rate. This presents only the most
    recently updated frame when the DOS rate exceeds the host rate.

  * Throttled VFR, which presents a variable frame rate up to the DOS rate throttled to the display’s rate. This presents only the
    most recently updated frame when the DOS rate exceeds the host rate.

By default, DOSBox Staging inspects runtime conditions and picks the optimal presentation mode.

Synced CFR mode selected due to vsync-enforced video drivers

Although typically not needed, power users might be interested in forcing a given mode or rate, which can be done using the
following config settings (which includes detailed descriptions in the conf):

 [sdl]
 presentation_mode = auto | cfr | vfr
 host_rate = auto | sdi | vrr | custom-rate

 [dosbox]
 dos_rate = default | host | custom-rate

DOS shell improvements

Piping from the DOS prompt or batch files

DOSBox did not support the piping operation previously, but DOSBox Staging now brings piping support as how it has worked in DOS
and most other operating systems. This allows two or more commands to communicate by passing the output text of one command to
another as its input text. For example, commands like ECHO Y | CHOICE will work, so that the Y option will be passed as the input
of CHOICE command. Chained piping is also supported, such as DIR | SORT | MORE for displaying sorted directory output one screen at
a time (provided that you have the SORT and MORE commands from MS-DOS or FreeDOS in your path). If the current directory and C:\
are both read-only, the environment variable %TEMP% (or %TMP%) needs to be set within DOS pointing to a writable directory so that
piping will work properly (e.g. SET TEMP=C:\TEMP).

File attribute support and ATTRIB command

File attributes contain information about how the files should be used, and in DOS these correspond to Archive (A), Read-only (R),
Hidden (H), and System (S) attributes. DOSBox Staging now adds support for file attributes through ATTRIB command (type ATTRIB /?
for more information about this command) or through DOS API that accesses to file attributes. For example, some game installers and
applications make use of file attributes. All file attributes are currently supported except for system and hidden attributes on
mounted local drives for non-Windows platforms.

ATTRIB command help

Default choices for the CHOICE command

The CHOICE command allows you to choose from a list of options, but sometimes you want to have some default choice if no selection
is made within the specific time period. DOSBox Staging now allows you to do this, by specifying the /T option which includes a
default choice and the time period in seconds. For example, CHOICE /C:ABC /T:B,2 will default to the choice B (among A, B, and C)
if no key press is made within 2 seconds.

Mount improvements

Physical CD-ROM mount support

Mounting physical CDs is now (re-)implemented in DOSBox Staging for better compatibility with games like Under a Killing Moon,
System Shock, and The Pandora Directive. The feature is supported in DOSBox SVN but was forced to be dropped from DOSBox Staging
earlier during the SDL2 migration process. We’ve brought it back by using the SDL1 CD support code as an external library, plus
restoring the main SDL CD interface from DOSBox.

To use the feature, execute the command mount -cd to list all CD drives and their numbers, and use -usecd NUMBER parameter to
specify a CD drive NUMBER, just like you would do in DOSBox SVN. Playing CD audio tracks from physical discs is also supported in
Windows as with DOSBox SVN.

Mount support for Physical CD

Read-only disk image mount support

You might have encountered the problem previously that you could not mount write-protected disk images, which happened simply
because DOSBox Staging required write access to mount disk images.

Sometimes the user may also want to mount a disk image in a read-only manner (so that the content in the disk image will not be
changed inside the emulator), even if the disk image itself is not write-protected. We have realised that in either case the
requirement for write access is not needed for mounting disk images, so we have added support for mounting them in a read-only
manner, either when the disk image files are read-only or when the -ro flag is specified by the users.

Z-drive customisation and directory support

The internal Z drive that is automatically mounted when you launch DOSBox Staging is now fully customisable, allowing users to add
their own files or programs to the drive by putting them in the drivez subdirectory inside the DOSBox Staging program directory.
Files already existing on the Z drive will be replaced by the user-provided ones, e.g. you can use your own MEM.COM or KEYB.COM
commands instead of the default ones on the Z drive. Moreover, support for one-level subdirectories has been added, allowing users
to better organise their files, resulting in a cleaner-looking Z drive. The drive’s contents can be refreshed via the RESCAN
command to reflect any changes made to it at the host OS level.

IMGMOUNT wildcard support

The IMGMOUNT command allows you to mount disk or CD images, but sometimes you may want to mount multiple images to a single drive,
swappable via a keyboard shortcut. Previously you had to specify the names of the all the image files one by one, even if they have
some patterns in common (like DISK1.IMG, DISK2.IMG, DISK3.IMG, etc). IMGMOUNT command now supports wildcards for mounting image
files, so that you can just specify a file pattern that matches all the image files that you want to include. For example, the
command IMGMOUNT a d:\*.img -t floppy will mount all image files with the IMG extension on D:\ as floppy images.

Mount images with wildcard

Automount of resource drives

Directories can now be automounted, provided the automount config setting is enabled (which it is, by default).

These automount directories are single-letter directories, a through y representing the mounted drive letter (where z is reserved
for DOSBox’s drive) placed inside a local drives/ directory, relative to the startup location. This drives/ directory can also be
placed in a scanned resource location, like your DOSBox config directory or the release package’s resources/ area.

Each drive can be customised with an accompanying <letter>.conf to define its mount type, label, and path. For example, to mount a
local drives/d/ directory as a D: CD-ROM with the label SIERRA, the accompanying d.conf would contain:

 [drive]
 type = cdrom
 label = SIERRA

A bundled Y: automount is provided in the release’s resources/ directory that bundles a couple FreeDOS 3^rd party tools (XCOPY.COM,
DELTREE.COM, DEBUG.COM) along with an accompanying y.conf to add it to the PATH.

Note

This feature doesn’t yet support image mounts, such as .img, .bin/cue, or .iso.

Localisation improvements

Code pages and keyboard layouts

The 20-year-old FreeDOS code pages (screen fonts) and keyboard layouts were updated to the latest versions, offering countless new
definitions for use. See the full list in the following documentation:

  * List of available code pages
  * List of available keyboard layouts

Some notable examples:

  * KEYB bg 3021 — sets a Bulgarian keyboard layout and code page, with Cyrillic characters encoded according to the MIK standard

  * KEYB cz489 867 — a so-called programmer keyboard layout (national characters available with Right Alt+0 - 9) for Czech and
    Slovak languages, with Kamenický character encoding - which was more popular than code page 852

  * KEYB de 858 — German keyboard, code page with EUR currency symbol

  * KEYB hu 3845 — Hungarian keyboard, CWI-2 character encoding

  * KEYB pl 668 — code page specially designed for the Polish language; places national characters on the same positions as
    standard code page 852 (so it is compatible with current software and text documents), but preserves more table drawing symbols

  * KEYB pl 667 — Mazovia encoding for Polish language, used mainly by older business software

Country support for different date, time, and decimal formats

The display formats for dates, times, and decimals were previously fixed to the United States style, but this is no longer the case
with this new version. Indeed, DOSBox Staging can now display date, time, and decimal formats according to the system locale and
country settings, and for example, in the Canadian French locale (country code 2) the date and time will be displayed as 2002-10-01
12:34 instead of 10-01-2002 12:34p as displayed in the United States locale (country code 1). There is a new config option country
which allows you to manually specify the country code for the date, time, and decimal formats.

Local language and keyboard layout detection improvements

On macOS and Windows systems, local languages now are more robustly detected and applied.

Note that these can still be manually set using the language and keyboardlayout config settings when needed, or via the KEYB
command as mentioned above.

Input improvements

Mouse-wheel emulation

The built-in mouse driver now provides a wheel support for application aware of CuteMouse extensions; examples include
Necromancer’s DOS Navigator and Mpxplay.

The original CuteMouse driver version 2.1 is also able to use the PS/2 mouse wheel, just start it with CTMOUSE /o.

Serial mice emulation

Numerous serial (COM port) mice are now emulated:

  * original Microsoft mouse with 2 buttons
  * Logitech mouse, with 3 buttons
  * wheel mouse with 3 buttons
  * Mouse Systems mouse (old mouse type, not compatible with the ones listed above), with 3 buttons

To enable serial mouse, user the SERIAL 1 mouse command (this will attach it to the COM1 port), or edit the [serial] section of the
configuration file. By default, DOSBox Staging tries to determine what kind of mouse the game or application expects.

With serial mouse emulation, Windows 1.01 is finally usable!

Windows 3.1 seamless mouse integration

It is now possible to have a seamless mouse integration using one of the following 3^rd party VMware-compatible Windows 3.1 mouse
drivers:

  * VBADOS by javispedro — this one requires a corresponding DOS mouse driver to be started; this driver also provides seamless
    mouse integration for a real DOS if booted inside DOSBox Staging

  * vmwmouse by NattyNarwhal — does not require any specific DOS driver and has experimental support for mouse wheel, but current
    version 0.1 has stability problems

For now, only the mouse is supported (no VMware directory sharing, etc.), only using VMware protocol (no VirtualBox-only drivers).
Windows 9x VMware mouse driver is not supported.

Joystick calibration hotkeys

Most DOS games that offer analog joystick control include some form of calibration. However, some games have poor or limited
calibration resulting in the joystick’s position drifting or being offset, despite calibration attempts.

To compensate for these rare cases, DOSBox Staging lets you adjust the joystick’s X and Y position parameters in real time by
enabling the use_joy_calibration_hotkeys setting in the [joystick] config section.

Once activated, you can tap Ctrl + arrow-keys or Alt + arrow-keys to adjust either the joystick’s scalar multiplier or absolute
offset position, respectively. These let you “counterbalance” calibration issues in real time.

Each tap of the hotkeys will log the calibration values for the given axis. For example:

 x_calibration = 0.576211,0.02
 y_calibration = 0.5474,-0.005

Once you’ve found the optimal settings for a game, the logged calibration values can be placed in the game’s local config file (so
the setting are only active for the affected game). Using the above as an example:

 [joystick]
 use_joy_calibration_hotkeys = false
 joy_x_calibration           = 0.576211,0.02
 joy_y_calibration           = 0.5474,-0.005

Note that you can disable the calibration hotkeys once you’ve found settings that work for a problematic game.

General improvements

Command-line setting of configuration options

Some people may want to temporarily run DOSBox Staging with specified config option(s), and in this new version you can do this
with the new -set command-line option when launching DOSBox Staging, instead of having to modify the configuration file before you
start DOSBox Staging.

For example, the user can temporarily run DOSBox Staging with the EMS memory disabled with the command line dosbox -set ems=false,
overriding the setting in the configuration file.

The -set option can be specified multiple times for different config options, similar to the -c option which can be used multiple
times to run multiple commands after DOSBox Staging starts.

Windows installer for Windows users

Previously, DOSBox Staging was only available as portable zip packages for Windows users, but this has changed in this new
version—as a Windows user you can now install DOSBox Staging more easily with the installer, which is especially recommended for
new and first-time users. When the installer is used, the installation process will be automated while allowing you to change
certain things like the installation folder, and you will be able to launch DOSBox Staging as soon as the installation ends. Shell
context menus can also be automatically added for a faster launch of DOSBox Staging from Windows Explorer.

Configurable modem connect speeds

The soft-modem’s reported connect speed can be customised using the serial port’s baudrate setting. for example:

 serial1 = modem baudrate:2400

Although this doesn’t change the underlying baud rate, it can help satisfy old modem software if it’s unable to handle (or parse)
the larger connect values.

Handling options for memory faults in buggy games

Extremely rare programming bugs 😉 in some DOS games (and programs) may cause them to accidentally write data beyond their allocated
memory region, similar to “painting outside the lines”. DOSBox is great at catching these instances: it flags the corruption and
quits, preventing the program from barreling on and possibly doing more harm such as writing corrupt save games, documents, and so
on.

DOSBox Staging defaults to this same behaviour, but adds the [dosbox] mcb_fault_strategy config setting:

mcb_fault_strategy                   Behaviour                                     How it affects the buggy game
deny               Report and quit as soon as a fault is         Game terminates, no risk of subsequent file corruption
                   detected (default)
repair             Report and repair up to 100 sequential faults Game continues, but may still be unstable if its developers
                                                                 expected the corruption
report             Report the corruption and carry on            Game continues, but risks further instability and file corruption
allow              Carry on without reporting                    Game continues, but risks further instability and file corruption

Only consider this if your game is prone to crashing with MCB chain corruption errors reported in the console log.

Developer-related improvements

Self-documenting bit twiddling with bit_view

We’ve implemented a bit_view C++ class using constant expressions to access a subset of a data-field’s bits, allowing them to be
read, written, assigned, flipped, cleared, and tested, without the need to for the usual twiddling operations.

Constructing a bit_view is similar to a C bitfield, however unlike C bitfields, bit_views are free from undefined behaviour and
have been proven using GCC’s and Clang’s undefined behaviour sanitisers.

There’s more detail and some code examples here.

Memory block and type size simplification

The emulated main memory (up to 64 MiB) and the video card’s memory (to up 8 MiB) are both now allocated statically to reduce
pressure on heap storage (#1714).

More progress has been made in reducing the use of large variables type-sizes down to purpose-fit sizes per the DOS/hardware
specification (typically 8 or 16-bit) (#1721).

Tracy profiler integration

The Tracy event profiler has been integrated into the build system and basic hooks are in place to log frames and tics. These are
only active (and not compiled in) unless Tracy is enabled.

It can be enabled at build-time with -Dtracy=true. Learn more about it, and how to build the server-side component here: #1749

Continuous integration MSYS2 workflow improvements

The MSYS2-based workflow has been brought in line with current best practices, which dramatically improved its build time and lead
to us now using it to generate the default Windows release binaries.

Release-package shell script

Release packages are now generated using a cross-platform POSIX-compliant shell script. With this logic moved into a script,
developers can now easily test the creation of a release package locally, which was previously impossible as that logic only lived
in a GitHub-syntax YAML.

Static analysis

The team continues to fix and address static analysis issues as flagged by various analysers. Here are our Coverity Scan metrics
to-date:

Coverity metrics)

Coverity graph)

Translation status

  * German: up-to-date
  * Italian: up-to-date
  * Polish: up-to-date
  * Russian: config sections up-to-date
  * French: not updated
  * Spanish: not updated

The 0.79.0 configuration file is also in UTF-8 format for the German, Italian, and Polish languages under the package’s resources/
translated-0.79-conf-files directory.

The messaging system now supports self-documenting markup syntax, which is much easier to read and maintain compared to the
previous ANSI escape sequences.

Notable fixes

  * Fixed Ultima Underworld issues with gaming (high polling rate) mice (#1722)

  * Fixed lockups and input issues with the debugger on macOS and Linux. Note that for those using the debugger on Linux, we
    recommend building it with SDL 2.0.18, because some input/interaction bugs exist when using newer SDL versions.

  * Fixed colours becoming very dim on newer Intel integrated GPUs due to Intel’s OpenGL drivers not properly handling the sRGB
    linear colour space.

  * Fixed a memory-read race condition present during the splash-image display, which also reduced start-up time by around 200 ms.

  * Fixed display of the low-resolution halfline VESA 2.0 mode used by Extreme Assault through the addition of a new vesa_mode
    config setting value, named halfline.

  * Named the macOS application “DOSBox Staging.app” per the macOS per Human Interface Guidelines.

  * Fixed a usability trap door when opening the mapper without mouse support: in these cases, the user was unable to exit the
    mapper. The mapper now only opens when mouse support is enabled.

Special thanks

  * John Novak for all the audio enhancements, mixer cleanup, shader improvements, and code reviews

  * FeralChild64 for the mouse overhaul, code page and layout cleanup and improvements, and code reviews

  * Wengier for the shell improvements, mount and CLI additions, and Windows installer

  * Antti Peltola for providing historic resources, documentation help, and project support

  * shermp for the MSYS2 cleanup, cross-platform packaging script and CI cleanup, ANSI markup system, and code reviews

  * Kirk Klobe for the debugger fixes, Tracy integration, and paging and memory system refinements

  * GranMinigun for the HiDPI additions, video chain fixes, and Russian translations

  * nemo93 for testing 400+ games on the Raspberry Pi

  * Kappa971 for the Italian and configuration file translations, and leading the translation effort

  * Burrito78 for the German translation

Contributors

Maintainers

  * kcgen
  * John Novak
  * FeralChild64
  * shermp
  * Wengier

Authors

  * kcgen
  * John Novak
  * FeralChild64
  * Wengier
  * shermp
  * Kirk Klobe
  * GranMinigun
  * Patryk Obara
  * ripsaw8080 (DOSBox maintainer)
  * NicknineTheEagle
  * David Reid (dr_lib author, 3^rd party dependency)
  * Leandro Nini (libresidfp author, 3^rd party dependency)
  * Jonathan Campbell (DOSBox-X maintainer)
  * Dean Beeler
  * ripa (DOSBox patch author)
  * Keenan Weaver
  * Dennis Lühring
  * IPeluchito
  * Otto Liljalaakso
  * Peter Ferrie
  * arrowgent
  * gulrak
  * hunterk

Translators

  * Burrito78 (German)
  * FeralChild64 (Polish)
  * GranMinigun (Russian)
  * Kappa971 (Italian)

Sponsors

  * Antti Peltola: 3,000 USD during the 0.79 development cycle
  * Wengier

Backers

  * Burrito78
  * Hugo Locurcio

Thank you to our financial contributors who allow us to purchase hardware, licenses, and other non-trivial expenses to keep the
team and project going.

To support our work, donate to our GitHub Sponsors or Open Collective.

Thank you

We are extremely grateful for all contributions, including the invaluable improvements merged in from the DOSBox project.

0.78.1 release notes
====================

Release date: 2022-01-07

How to upgrade

Download and launch the latest version:

  * Linux (or Steam on Linux)
  * Windows
  * macOS

At theZ:\> prompt, run config -wc to write the new configuration file. Any existing settings will be retained, however, extraneous
comments will be dropped.

Fixes and regressions

Maintenance changes to 0.78.1 are as follows (reported-by; fixed-by):

  * Fixed a crash when exiting fullscreen mode and also using OpenGL output (NicknineTheEagle; kcgen)

  * Fixed a crash and host input lockup when using SDL’s kmsdrm video driver (GranMinigun)

  * Fixed an early exit bug when using the -exit and -c exit command-line arguments (pheener and d10sfan, kcgen)

  * Fixed a memory leak when changing one or more serial port types at runtime (kcgen)

  * Fixed a regression that failed to apply aspect correction when using pixel-perfect output modes (Diduz; kcgen)

  * Fixed a regression that disabled the keyboard input when using the debugger (LowLevelMahn; kcgen)

  * Fixed a regression that impacted 32-bit performance on some Windows systems (RaymanXY; Kirk Klobe and kcgen)

  * Fixed a regression that causes a crash when opening UPX-compressed code-page files (FeralChild64; Wengier)

Functionality refinements

  * Improved the modem’s command-mode handling (NicknineTheEagle)

  * Corrected the modem’s DTR drop delay units from ms to hundredths of a second (NicknineTheEagle)

  * Reverted the allowance that let the VESA refresh rate use the host rate (RaymanXY; kcgen)

  * Allowed read-only image mounting for write-protected disk and floppy images (Burrito78; Wengier)

Documentation-related improvements

  * Updated the German messages and config file text (Burrito78)

  * Updated the Italian messages and config file text (Kappa971)

  * Fixed a documentation conflict describing the command line’s version flag (arrowgent)

  * Documented how to install gmock, a dependency added during 0.78.0, on Fedora (oturpe)

Development and packaging fixes

  * Fixed a compilation issue with Loguru on ARM32 using GCC 8 (rtissera; kcgen)

  * Fixed a compilation issue with older C++17 compilers missing std::filesystem support (jowtron; gulrak and kcgen)

  * Fixed a build tool-specific bug that exposed the UI when running gmock tests (oturpe and voyageur; brandonrobertz and kcgen)

Known issues

  * The MSYS2-built debugger will fail to open if launched from the Windows UI.

      - As a work-around, run it from within a command console.

      - Thanks to Sherman Perry for investigating this issue and isolating it

      - to the Windows Console API.
  * Audio might stutter on some Windows platforms. If your system is affected, adjust the mixer’s settings in your config file as
    follows:

     [mixer]
     blocksize = 1024
     prebuffer = 25

    Tip

    Run dosbox -editconf to open your config file.

    Thanks to Genju for reporting this regression and isolating the solution.

Thank you

We are extremely grateful for all contributions, including the invaluable improvements merged in from the DOSBox project.

0.78.0 release notes
====================

Release date: 2021-12-25

How to upgrade

Download and launch the latest version:

  * Linux (or Steam on Linux)
  * Windows
  * macOS

At the Z:\> prompt, run config -wc to write the new configuration file. Any existing settings will be retained, however, extraneous
comments will be dropped.

Significant changes

  * Added Universal binary for macOS, supporting x86-64 and ARM64 (Kirk Klobe) (#1240)

  * Added a workaround for vsync lag, which is useful for video outputs that enforce vsync (Kirk Klobe) (#1158)

  * Added window size and placement customizations (John Novak) (#1272)

  * Added full /help output text for the AUTOTYPE, BOOT, CALL, CHOICE, CLS, COPY, DIR, ECHO, EXIT, GOTO, HELP, IF, INTRO, KEYB, LS,
    MD/MKDIR, MEM, RD/RMDIR, REN/RENAME, RESCAN, SHIFT, SUBST, and TYPE commands (Wengier) (#1356)

  * Added MSYS2-based release builds and instuctions for those on Windows using MSYS2 (Sherman Perry) (#1443)

  * Merged PCjr composite patch by NewRisingSun. Thanks to JKapp76 for testing and feedback (NewRisingSun) (#1122)

  * Merged CGA composite improvement patch by reenigne, respectively. Thanks to JKapp76 for testing and feedback (reenigne) (#1157)

  * Added bash-shell completion. See contrib/linux/bash-completion/README for adding this to your shell (FeignInt) (#1200)

  * Added Loguru, a fast cross-platform logging subsystem. Logs are now time-stamped and warnings are now colorized (Kirk Klobe) (#
    1225)

  * Merged S3 video patch by s3freak. This adds more video modes and supports up to 8 MiB of video memory, vmemsize = 8, when using
    machine = svga_s3. Thanks to Zorix, Grounded0, Brandon Roberts, GranMinigun, Kirk Klobe, and nemo93 for testing (s3freak) (#
    1244)

  * Added configurable FluidSynth chorus and reverb settings. Thanks to GranMinigun for the extensive listening tests (kcgen) (#
    1268)

  * Added auto-exit. When an executable that’s passed on the command-line exits, then so too will the emulator. This is equivalent
    to manually adding the -exit command-line flag. Thanks to Burrito78 for testing (kcgen) (#1269)

  * Added layered and portable configuration file handling. Thanks to JKapp76, Grounded0, and Burrito78 for testing (kcgen)

  * Added ENet (reliable UDP) as an option for modem and null-modem transport, as well as SERIAL.COM for runtime serial-port
    configuration (Scott Duensing) (#1398)

  * Added support for virtual Ethernet and TCP/IP networking via slirp (Jookia) (#1419)

  * Added support for networking in Windows for Workgroups 3.11 from the shell. Previously networking in WfW was only possible when
    booting a real MS-DOS installation from a bootable HDD image (Wengier, nanshiki) (#1447)

  * Added IDE controller support, authored by joncampbell123 of the DOSBox-X project, for CD-ROM image-mounts, which is useful for
    CD-ROM based games that also happen to need a real DOS environment such as Revell’s car games, like European Racers
    (joncampbell123, Wengier) (#1451)

Bugfixes

  * Fixed 32-bit dynamic core crashes (Kirk Klobe) (#1205)

  * Fixed regression when setting windowresolution in the config file. Thanks to arrowgent for the report and testing (kcgen) (#
    1144)

  * Fixed hanging in Mortal Kombat Trilogy when joysticktype = none. Thanks to nemo93 for the report and GranMinigun for also
    testing (kcgen) (#1241)

  * Fixed regression during shutdown while using the ALSA sequencer. Thanks to AaronBPaden for the report and testing (kcgen) (#
    1362)

  * Fixed zero-offset PC Speaker issue on Windows 11. Thanks to ggpettas for reporting (kcgen) (#1389)

  * Fixed regression that broke video recording. Thanks to Grounded0 for reporting and testing (kcgen) (#1400)

  * Fixed ability to run an application-provided help.exe|com program. Thanks to SmilingSpectre for reporting (Wengier) (#1136)

  * Removed VESA modes 320×200×15/16/24, which were added late in the 90s and were not properly supported by some games
    (NicknineTheEagle) (#1457)

Translation updates

  * Italian (Kappa971)
  * German (Burrito78)
  * Russian (GranMinigun)

Translations (de, es, fr, it, pl, and ru) are included with the release package and can be selected using the two-letter country
code either via environment variable (LANG=de), config file ([dosbox] language = it), or command-line (-lang ru). See Section 14 in
the README file for more details.

Repository authors

To ensure authors are credited for their work, the project records authorship on all commits in the version control system,
including all works from the upstream DOSBox project, patch authors, and external projects.

    0.78 author      Lines changed
arrowgent            361
Brandon Roberts      1495
Burrito78            1882
Christer Solskogen   4
Dan Church           2
David Reid           6733
Eli Schwartz         6
GranMinigun          1204
Gregory Pakosz       1178
John Novak           668
Jookia               2296
Kappa971             2773
kcgen                63022
Kirk Klobe           1658
llm                  6
NicknineTheEagle     30
Patryk Obara         103
ripsaw8080           59
s3freak              648
Scott Duensing       7330
Sherman Perry        5408
Sjoerd van der Berg  28
Wengier              5430
Yann Collet          2438
ykhwong              7

During the 0.78 timeframe, DOSBox SVN commits r4466 through r4471 were merged to the project and authorship is reflected above.

Wiki authors

   0.78 wiki author     Lines changed
Alberto Salvia Novella  164
Burrito78               2
Grounded0               557
John Novak              12
Joshua Fern             30
kcgen                   243
Kirk Klobe              2
LowLevelMahn            14
MasterO2                395
nemo93                  5370
Tobias Gruetzmacher     5

Financial contributors

  * Antti Peltola: Project sponsor. His combined contribution of 4,000 USD spanning the 2021 period to maintainers and the project
    has allowed the team to add a dedicated Apple M1 build host. Thank you!

  * Burrito78: Project backer. Thank you!

To support our work, join the Open Collective.

Thank you

We are extremely grateful for all contributions, including the invaluable improvements merged in from the DOSBox project.

To see a diff of this commit:
https://wip.pkgsrc.org/cgi-bin/gitweb.cgi?p=pkgsrc-wip.git;a=commitdiff;h=5cca64db21538a46feb95ba551d5cb71ddbd6a70

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

diffstat:
 dosbox-staging/Makefile                            |   8 +-
 dosbox-staging/PLIST                               | 286 +++++++++++++++++++++
 dosbox-staging/distinfo                            |  11 +-
 dosbox-staging/patches/patch-meson.build           |  30 +--
 .../patches/patch-src_hardware_vga__other.cpp      |  13 +
 .../patches/patch-src_libs_loguru_loguru.cpp       |  14 +
 .../patch-src_libs_manymouse_x11__xinput2.c        |  12 +
 7 files changed, 354 insertions(+), 20 deletions(-)

diffs:
diff --git a/dosbox-staging/Makefile b/dosbox-staging/Makefile
index 52a6074371..39e92cd3e7 100644
--- a/dosbox-staging/Makefile
+++ b/dosbox-staging/Makefile
@@ -1,7 +1,7 @@
 # $NetBSD$
 
 GITHUB_PROJECT=	dosbox-staging
-GITHUB_TAG=	v0.77.1
+GITHUB_TAG=	v0.80.1
 DISTNAME=	${GITHUB_TAG}
 PKGNAME=	${GITHUB_PROJECT}-${DISTNAME:S,^v,,}
 CATEGORIES=	emulators
@@ -33,10 +33,16 @@ MESON_ARGS+=	-Duse_sdl2_net=true
 
 .include "../../audio/fluidsynth/buildlink3.mk"
 .include "../../audio/opusfile/buildlink3.mk"
+.include "../../audio/speexdsp/buildlink3.mk"
 .include "../../devel/SDL2/buildlink3.mk"
 .include "../../devel/libatomic/buildlink3.mk"
+BUILDLINK_API_DEPENDS.zlib+=	zlib>=1.2.11
+.include "../../devel/zlib/buildlink3.mk"
+.include "../../graphics/SDL2_image/buildlink3.mk"
 .include "../../graphics/hicolor-icon-theme/buildlink3.mk"
 .include "../../graphics/png/buildlink3.mk"
 .include "../../mk/curses.buildlink3.mk"
 .include "../../net/SDL2_net/buildlink3.mk"
+.include "../../net/libslirp/buildlink3.mk"
+.include "../../wip/iir1/buildlink3.mk"
 .include "../../mk/bsd.pkg.mk"
diff --git a/dosbox-staging/PLIST b/dosbox-staging/PLIST
index 7afa251399..c25e8fca29 100644
--- a/dosbox-staging/PLIST
+++ b/dosbox-staging/PLIST
@@ -5,6 +5,292 @@ share/applications/dosbox-staging.desktop
 share/doc/dosbox-staging/AUTHORS
 share/doc/dosbox-staging/README
 share/doc/dosbox-staging/THANKS
+share/dosbox-staging/drives/y.conf
+share/dosbox-staging/drives/y/dos/debug.com
+share/dosbox-staging/drives/y/dos/deltree.com
+share/dosbox-staging/drives/y/dos/xcopy.exe
+share/dosbox-staging/freedos-cpi/EGA.CPX
+share/dosbox-staging/freedos-cpi/EGA10.CPX
+share/dosbox-staging/freedos-cpi/EGA11.CPX
+share/dosbox-staging/freedos-cpi/EGA12.CPX
+share/dosbox-staging/freedos-cpi/EGA13.CPX
+share/dosbox-staging/freedos-cpi/EGA14.CPX
+share/dosbox-staging/freedos-cpi/EGA15.CPX
+share/dosbox-staging/freedos-cpi/EGA16.CPX
+share/dosbox-staging/freedos-cpi/EGA17.CPX
+share/dosbox-staging/freedos-cpi/EGA18.CPI
+share/dosbox-staging/freedos-cpi/EGA2.CPX
+share/dosbox-staging/freedos-cpi/EGA3.CPX
+share/dosbox-staging/freedos-cpi/EGA4.CPX
+share/dosbox-staging/freedos-cpi/EGA5.CPX
+share/dosbox-staging/freedos-cpi/EGA6.CPX
+share/dosbox-staging/freedos-cpi/EGA7.CPX
+share/dosbox-staging/freedos-cpi/EGA8.CPX
+share/dosbox-staging/freedos-cpi/EGA9.CPX
+share/dosbox-staging/freedos-keyboard/KEYBOARD.SYS
+share/dosbox-staging/freedos-keyboard/KEYBRD2.SYS
+share/dosbox-staging/freedos-keyboard/KEYBRD3.SYS
+share/dosbox-staging/freedos-keyboard/KEYBRD4.SYS
+share/dosbox-staging/glshaders/crt/aperture.glsl
+share/dosbox-staging/glshaders/crt/caligari.glsl
+share/dosbox-staging/glshaders/crt/easymode.glsl
+share/dosbox-staging/glshaders/crt/easymode.tweaked.glsl
+share/dosbox-staging/glshaders/crt/fakelottes.glsl
+share/dosbox-staging/glshaders/crt/fakelottes.tweaked.glsl
+share/dosbox-staging/glshaders/crt/geom.glsl
+share/dosbox-staging/glshaders/crt/geom.tweaked.glsl
+share/dosbox-staging/glshaders/crt/hyllian-updated.glsl
+share/dosbox-staging/glshaders/crt/hyllian.glsl
+share/dosbox-staging/glshaders/crt/lottes-fast.glsl
+share/dosbox-staging/glshaders/crt/lottes-fast.subtle+gain.glsl
+share/dosbox-staging/glshaders/crt/lottes.glsl
+share/dosbox-staging/glshaders/crt/lottes.tweaked.glsl
+share/dosbox-staging/glshaders/crt/mattias.glsl
+share/dosbox-staging/glshaders/crt/pi-vertical.glsl
+share/dosbox-staging/glshaders/crt/pi.glsl
+share/dosbox-staging/glshaders/crt/yee64.glsl
+share/dosbox-staging/glshaders/crt/yeetron.glsl
+share/dosbox-staging/glshaders/crt/zfast-composite.glsl
+share/dosbox-staging/glshaders/crt/zfast.glsl
+share/dosbox-staging/glshaders/interpolation/catmull-rom.glsl
+share/dosbox-staging/glshaders/interpolation/sharp.glsl
+share/dosbox-staging/glshaders/none.glsl
+share/dosbox-staging/glshaders/scaler/advinterp2x.glsl
+share/dosbox-staging/glshaders/scaler/advinterp3x.glsl
+share/dosbox-staging/glshaders/scaler/advmame2x.glsl
+share/dosbox-staging/glshaders/scaler/advmame3x.glsl
+share/dosbox-staging/glshaders/scaler/rgb2x.glsl
+share/dosbox-staging/glshaders/scaler/rgb3x.glsl
+share/dosbox-staging/glshaders/scaler/scan2x.glsl
+share/dosbox-staging/glshaders/scaler/scan3x.glsl
+share/dosbox-staging/glshaders/scaler/tv2x.glsl
+share/dosbox-staging/glshaders/scaler/tv3x.glsl
+share/dosbox-staging/mapperfiles/xbox/abreed.map
+share/dosbox-staging/mapperfiles/xbox/abreedta.map
+share/dosbox-staging/mapperfiles/xbox/actuas.map
+share/dosbox-staging/mapperfiles/xbox/aitd.map
+share/dosbox-staging/mapperfiles/xbox/aitd2.map
+share/dosbox-staging/mapperfiles/xbox/aitd3.map
+share/dosbox-staging/mapperfiles/xbox/aitdjack.map
+share/dosbox-staging/mapperfiles/xbox/aladdin.map
+share/dosbox-staging/mapperfiles/xbox/alienc.map
+share/dosbox-staging/mapperfiles/xbox/alienr.map
+share/dosbox-staging/mapperfiles/xbox/alientri.map
+share/dosbox-staging/mapperfiles/xbox/alphasto.map
+share/dosbox-staging/mapperfiles/xbox/alqadim.map
+share/dosbox-staging/mapperfiles/xbox/amok.map
+share/dosbox-staging/mapperfiles/xbox/another.map
+share/dosbox-staging/mapperfiles/xbox/batmanac.map
+share/dosbox-staging/mapperfiles/xbox/batmanf.map
+share/dosbox-staging/mapperfiles/xbox/bigredr.map
+share/dosbox-staging/mapperfiles/xbox/blam.map
+share/dosbox-staging/mapperfiles/xbox/blood.map
+share/dosbox-staging/mapperfiles/xbox/bluesb.map
+share/dosbox-staging/mapperfiles/xbox/bluesbja.map
+share/dosbox-staging/mapperfiles/xbox/bstone.map
+share/dosbox-staging/mapperfiles/xbox/bstone2.map
+share/dosbox-staging/mapperfiles/xbox/bthorne.map
+share/dosbox-staging/mapperfiles/xbox/cadillac.map
+share/dosbox-staging/mapperfiles/xbox/cataco3d.map
+share/dosbox-staging/mapperfiles/xbox/catapoc.map
+share/dosbox-staging/mapperfiles/xbox/chxquest.map
+share/dosbox-staging/mapperfiles/xbox/cite.map
+share/dosbox-staging/mapperfiles/xbox/ckeen1.map
+share/dosbox-staging/mapperfiles/xbox/clifd.map
+share/dosbox-staging/mapperfiles/xbox/coolspot.map
+share/dosbox-staging/mapperfiles/xbox/covertac.map
+share/dosbox-staging/mapperfiles/xbox/crusnreg.map
+share/dosbox-staging/mapperfiles/xbox/crusnrem.map
+share/dosbox-staging/mapperfiles/xbox/cyberm.map
+share/dosbox-staging/mapperfiles/xbox/d.map
+share/dosbox-staging/mapperfiles/xbox/dderby.map
+share/dosbox-staging/mapperfiles/xbox/dderby2.map
+share/dosbox-staging/mapperfiles/xbox/ddragon.map
+share/dosbox-staging/mapperfiles/xbox/ddragon2.map
+share/dosbox-staging/mapperfiles/xbox/ddragon3.map
+share/dosbox-staging/mapperfiles/xbox/descent.map
+share/dosbox-staging/mapperfiles/xbox/descent2.map
+share/dosbox-staging/mapperfiles/xbox/disc.map
+share/dosbox-staging/mapperfiles/xbox/dnukem.map
+share/dosbox-staging/mapperfiles/xbox/dnukem2.map
+share/dosbox-staging/mapperfiles/xbox/doom.map
+share/dosbox-staging/mapperfiles/xbox/doom2.map
+share/dosbox-staging/mapperfiles/xbox/drally.map
+share/dosbox-staging/mapperfiles/xbox/dstrike.map
+share/dosbox-staging/mapperfiles/xbox/duke3d.map
+share/dosbox-staging/mapperfiles/xbox/ecstatic.map
+share/dosbox-staging/mapperfiles/xbox/ecstatic2.map
+share/dosbox-staging/mapperfiles/xbox/eradicat.map
+share/dosbox-staging/mapperfiles/xbox/ewj.map
+share/dosbox-staging/mapperfiles/xbox/ewj2.map
+share/dosbox-staging/mapperfiles/xbox/exhumed.map
+share/dosbox-staging/mapperfiles/xbox/extremea.map
+share/dosbox-staging/mapperfiles/xbox/fadetb.map
+share/dosbox-staging/mapperfiles/xbox/fatalr.map
+share/dosbox-staging/mapperfiles/xbox/fb.map
+share/dosbox-staging/mapperfiles/xbox/fifa.map
+share/dosbox-staging/mapperfiles/xbox/fifa96.map
+share/dosbox-staging/mapperfiles/xbox/fifa97.map
+share/dosbox-staging/mapperfiles/xbox/firestrm.map
+share/dosbox-staging/mapperfiles/xbox/funtrack.map
+share/dosbox-staging/mapperfiles/xbox/fxfightr.map
+share/dosbox-staging/mapperfiles/xbox/gb2.map
+share/dosbox-staging/mapperfiles/xbox/gods.map
+share/dosbox-staging/mapperfiles/xbox/goldnaxe.map
+share/dosbox-staging/mapperfiles/xbox/gta.map
+share/dosbox-staging/mapperfiles/xbox/gtalond.map
+share/dosbox-staging/mapperfiles/xbox/heretic.map
+share/dosbox-staging/mapperfiles/xbox/hexen.map
+share/dosbox-staging/mapperfiles/xbox/hioctane.map
+share/dosbox-staging/mapperfiles/xbox/horde.map
+share/dosbox-staging/mapperfiles/xbox/hulkpant.map
+share/dosbox-staging/mapperfiles/xbox/humans.map
+share/dosbox-staging/mapperfiles/xbox/jazz.map
+share/dosbox-staging/mapperfiles/xbox/jbazooka.map
+share/dosbox-staging/mapperfiles/xbox/jdredd.map
+share/dosbox-staging/mapperfiles/xbox/jimpower.map
+share/dosbox-staging/mapperfiles/xbox/joemac.map
+share/dosbox-staging/mapperfiles/xbox/jstrike.map
+share/dosbox-staging/mapperfiles/xbox/jungbook.map
+share/dosbox-staging/mapperfiles/xbox/jurassic.map
+share/dosbox-staging/mapperfiles/xbox/krusty.map
+share/dosbox-staging/mapperfiles/xbox/lba.map
+share/dosbox-staging/mapperfiles/xbox/lba2.map
+share/dosbox-staging/mapperfiles/xbox/lionking.map
+share/dosbox-staging/mapperfiles/xbox/lollypop.map
+share/dosbox-staging/mapperfiles/xbox/lostv.map
+share/dosbox-staging/mapperfiles/xbox/lostv2.map
+share/dosbox-staging/mapperfiles/xbox/magicp.map
+share/dosbox-staging/mapperfiles/xbox/mars3d.map
+share/dosbox-staging/mapperfiles/xbox/mdk.map
+share/dosbox-staging/mapperfiles/xbox/megarac2.map
+share/dosbox-staging/mapperfiles/xbox/megarace.map
+share/dosbox-staging/mapperfiles/xbox/menace.map
+share/dosbox-staging/mapperfiles/xbox/microcsm.map
+share/dosbox-staging/mapperfiles/xbox/mk1.map
+share/dosbox-staging/mapperfiles/xbox/mk2.map
+share/dosbox-staging/mapperfiles/xbox/mk3.map
+share/dosbox-staging/mapperfiles/xbox/mktril.map
+share/dosbox-staging/mapperfiles/xbox/mm.map
+share/dosbox-staging/mapperfiles/xbox/mm2.map
+share/dosbox-staging/mapperfiles/xbox/moktar.map
+share/dosbox-staging/mapperfiles/xbox/moon.map
+share/dosbox-staging/mapperfiles/xbox/nba97.map
+share/dosbox-staging/mapperfiles/xbox/nbajamte.map
+share/dosbox-staging/mapperfiles/xbox/nfsse.map
+share/dosbox-staging/mapperfiles/xbox/nhl97.map
+share/dosbox-staging/mapperfiles/xbox/novas.map
+share/dosbox-staging/mapperfiles/xbox/oddworld.map
+share/dosbox-staging/mapperfiles/xbox/omf2097.map
+share/dosbox-staging/mapperfiles/xbox/panzakb.map
+share/dosbox-staging/mapperfiles/xbox/petesamp.map
+share/dosbox-staging/mapperfiles/xbox/pitfghtr.map
+share/dosbox-staging/mapperfiles/xbox/pop.map
+share/dosbox-staging/mapperfiles/xbox/pop2.map
+share/dosbox-staging/mapperfiles/xbox/prayfd.map
+share/dosbox-staging/mapperfiles/xbox/preh.map
+share/dosbox-staging/mapperfiles/xbox/preh2.map
+share/dosbox-staging/mapperfiles/xbox/primrage.map
+share/dosbox-staging/mapperfiles/xbox/pushover.map
+share/dosbox-staging/mapperfiles/xbox/quake.map
+share/dosbox-staging/mapperfiles/xbox/raiden.map
+share/dosbox-staging/mapperfiles/xbox/rallyc.map
+share/dosbox-staging/mapperfiles/xbox/raptor.map
+share/dosbox-staging/mapperfiles/xbox/rayman.map
+share/dosbox-staging/mapperfiles/xbox/redneck.map
+share/dosbox-staging/mapperfiles/xbox/redneck2.map
+share/dosbox-staging/mapperfiles/xbox/reloaded.map
+share/dosbox-staging/mapperfiles/xbox/rg97.map
+share/dosbox-staging/mapperfiles/xbox/rise.map
+share/dosbox-staging/mapperfiles/xbox/rise2.map
+share/dosbox-staging/mapperfiles/xbox/rott.map
+share/dosbox-staging/mapperfiles/xbox/scorchdp.map
+share/dosbox-staging/mapperfiles/xbox/screamr.map
+share/dosbox-staging/mapperfiles/xbox/screamr2.map
+share/dosbox-staging/mapperfiles/xbox/sf2.map
+share/dosbox-staging/mapperfiles/xbox/shadoww.map
+share/dosbox-staging/mapperfiles/xbox/shells.map
+share/dosbox-staging/mapperfiles/xbox/simparc.map
+share/dosbox-staging/mapperfiles/xbox/simpbvs.map
+share/dosbox-staging/mapperfiles/xbox/skynet.map
+share/dosbox-staging/mapperfiles/xbox/spacer.map
+share/dosbox-staging/mapperfiles/xbox/spearod.map
+share/dosbox-staging/mapperfiles/xbox/speedbl2.map
+share/dosbox-staging/mapperfiles/xbox/spidey.map
+share/dosbox-staging/mapperfiles/xbox/srally.map
+share/dosbox-staging/mapperfiles/xbox/ssf2t.map
+share/dosbox-staging/mapperfiles/xbox/stargunr.map
+share/dosbox-staging/mapperfiles/xbox/streetr.map
+share/dosbox-staging/mapperfiles/xbox/strife.map
+share/dosbox-staging/mapperfiles/xbox/superc.map
+share/dosbox-staging/mapperfiles/xbox/swdf.map
+share/dosbox-staging/mapperfiles/xbox/swiv3d.map
+share/dosbox-staging/mapperfiles/xbox/tbraider.map
+share/dosbox-staging/mapperfiles/xbox/term2.map
+share/dosbox-staging/mapperfiles/xbox/termfs.map
+share/dosbox-staging/mapperfiles/xbox/timec.map
+share/dosbox-staging/mapperfiles/xbox/timegate.map
+share/dosbox-staging/mapperfiles/xbox/timewar.map
+share/dosbox-staging/mapperfiles/xbox/tmnt.map
+share/dosbox-staging/mapperfiles/xbox/tmntarc.map
+share/dosbox-staging/mapperfiles/xbox/tmntman.map
+share/dosbox-staging/mapperfiles/xbox/trackatk.map
+share/dosbox-staging/mapperfiles/xbox/turric2.map
+share/dosbox-staging/mapperfiles/xbox/tvcd.map
+share/dosbox-staging/mapperfiles/xbox/tyrian.map
+share/dosbox-staging/mapperfiles/xbox/wacky.map
+share/dosbox-staging/mapperfiles/xbox/warriors.map
+share/dosbox-staging/mapperfiles/xbox/wcrew.map
+share/dosbox-staging/mapperfiles/xbox/whaven.map
+share/dosbox-staging/mapperfiles/xbox/whaven2.map
+share/dosbox-staging/mapperfiles/xbox/wilds.map
+share/dosbox-staging/mapperfiles/xbox/wipeout.map
+share/dosbox-staging/mapperfiles/xbox/wolf3d.map
+share/dosbox-staging/mapperfiles/xbox/wrallyf.map
+share/dosbox-staging/mapperfiles/xbox/wwfarc.map
+share/dosbox-staging/mapperfiles/xbox/wwfiyh.map
+share/dosbox-staging/mapperfiles/xbox/xenon2.map
+share/dosbox-staging/mapperfiles/xbox/xmcota.map
+share/dosbox-staging/mapping-freedos.org/CP_30000.TXT
+share/dosbox-staging/mapping-freedos.org/CP_30006.TXT
+share/dosbox-staging/mapping-freedos.org/CP_30034.TXT
+share/dosbox-staging/mapping-unicode.org/CP_437.TXT
+share/dosbox-staging/mapping-unicode.org/CP_737.TXT
+share/dosbox-staging/mapping-unicode.org/CP_775.TXT
+share/dosbox-staging/mapping-unicode.org/CP_850.TXT
+share/dosbox-staging/mapping-unicode.org/CP_852.TXT
+share/dosbox-staging/mapping-unicode.org/CP_855.TXT
+share/dosbox-staging/mapping-unicode.org/CP_856.TXT
+share/dosbox-staging/mapping-unicode.org/CP_857.TXT
+share/dosbox-staging/mapping-unicode.org/CP_860.TXT
+share/dosbox-staging/mapping-unicode.org/CP_861.TXT
+share/dosbox-staging/mapping-unicode.org/CP_862.TXT
+share/dosbox-staging/mapping-unicode.org/CP_863.TXT
+share/dosbox-staging/mapping-unicode.org/CP_864.TXT
+share/dosbox-staging/mapping-unicode.org/CP_865.TXT
+share/dosbox-staging/mapping-unicode.org/CP_866.TXT
+share/dosbox-staging/mapping-unicode.org/CP_869.TXT
+share/dosbox-staging/mapping-unicode.org/CP_874.TXT
+share/dosbox-staging/mapping-unicode.org/license.txt
+share/dosbox-staging/mapping-wikipedia.org/CP_1117.TXT
+share/dosbox-staging/mapping-wikipedia.org/CP_3021.TXT
+share/dosbox-staging/mapping-wikipedia.org/CP_3848.TXT
+share/dosbox-staging/mapping-wikipedia.org/CP_773.TXT
+share/dosbox-staging/mapping-wikipedia.org/CP_777.TXT
+share/dosbox-staging/mapping-wikipedia.org/CP_778.TXT
+share/dosbox-staging/mapping-wikipedia.org/CP_851.TXT
+share/dosbox-staging/mapping-wikipedia.org/CP_853.TXT
+share/dosbox-staging/mapping-wikipedia.org/CP_899.TXT
+share/dosbox-staging/mapping/ASCII.TXT
+share/dosbox-staging/mapping/MAIN.TXT
+share/dosbox-staging/translations/de.lng
+share/dosbox-staging/translations/en.lng
+share/dosbox-staging/translations/es.lng
+share/dosbox-staging/translations/fr.lng
+share/dosbox-staging/translations/it.lng
+share/dosbox-staging/translations/nl.lng
+share/dosbox-staging/translations/pl.lng
+share/dosbox-staging/translations/ru.lng
 share/icons/hicolor/16x16/apps/dosbox-staging.png
 share/icons/hicolor/22x22/apps/dosbox-staging.png
 share/icons/hicolor/24x24/apps/dosbox-staging.png
diff --git a/dosbox-staging/distinfo b/dosbox-staging/distinfo
index e698ee94e1..5397695c7f 100644
--- a/dosbox-staging/distinfo
+++ b/dosbox-staging/distinfo
@@ -1,7 +1,10 @@
 $NetBSD$
 
-RMD160 (dosbox-staging/v0.77.1.tar.gz) = 649e2939d0097e580f70ce29b7e41879a0b093c6
-SHA512 (dosbox-staging/v0.77.1.tar.gz) = fe5d6150a88f5c276aee5672f98c15b5ffee702fe9934919d3e78068efd1a85f08a8f04352bc6a8fe850324e33f3227340c59242db6cbae0475b12a58b749cac
-Size (dosbox-staging/v0.77.1.tar.gz) = 2622418 bytes
+BLAKE2s (dosbox-staging/v0.80.1.tar.gz) = 0266b34030cea80f70ddbe3d2a8c2cc519bcb7d0716f0c09243f5aa9ae22881d
+SHA512 (dosbox-staging/v0.80.1.tar.gz) = 8d28761e998c033b0cad5ca49c1a094d0ff2ca8a45183101c31805dda6a8e6861805739e723492329cab525af782849ec34ae97d29449d6c50e781475a011561
+Size (dosbox-staging/v0.80.1.tar.gz) = 3876041 bytes
 SHA1 (patch-contrib_linux_dosbox-staging.desktop) = 896b0b24f0a0cbb1de9c66e2a58c2303677b7dea
-SHA1 (patch-meson.build) = 19f54936ad9de1d956ca8377b4491ffa5ed89d60
+SHA1 (patch-meson.build) = 3dc04f828d8ef3009f39a594ebcb1471ed8885a1
+SHA1 (patch-src_hardware_vga__other.cpp) = 838e0cda7d3be3df6e7a0ad07862c9386bd442e9
+SHA1 (patch-src_libs_loguru_loguru.cpp) = 4c8af4985b0671de01ff65498509c5d3e72f2214
+SHA1 (patch-src_libs_manymouse_x11__xinput2.c) = dab082d934f3b6804e572515197b2cc0b8db5381
diff --git a/dosbox-staging/patches/patch-meson.build b/dosbox-staging/patches/patch-meson.build
index a720dd0d41..cd50e6aa89 100644
--- a/dosbox-staging/patches/patch-meson.build
+++ b/dosbox-staging/patches/patch-meson.build
@@ -2,23 +2,23 @@ $NetBSD$
 
 Install as "dosbox-staging" to avoid a conflict with emulators/dosbox.
 
---- meson.build.orig	2021-07-02 15:47:39.000000000 +0000
+--- meson.build.orig	2023-01-07 07:06:28.000000000 +0000
 +++ meson.build
-@@ -340,7 +340,7 @@ subdir('tests')
- # dosbox executable
- #
- version_file = vcs_tag(input : 'src/version.cpp.in', output : 'version.cpp')
--executable('dosbox', ['src/main.cpp', 'src/dosbox.cpp', version_file],
-+executable('dosbox-staging', ['src/main.cpp', 'src/dosbox.cpp', version_file],
-            dependencies : [atomic_dep, threads_dep, sdl2_dep] + internal_deps,
-            include_directories : incdir,
-            install : true)
-@@ -352,7 +352,7 @@ data_dir     = get_option('datadir')
- licenses_dir = data_dir / 'licenses' / 'dosbox-staging'
- doc_dir      = data_dir / 'doc' / 'dosbox-staging'
+@@ -34,7 +34,7 @@ data_dir = get_option('datadir')
+ licenses_dir = data_dir / 'licenses' / meson.project_name()
+ doc_dir = data_dir / 'doc' / meson.project_name()
  
 -install_man('docs/dosbox.1')
 +install_man('docs/dosbox-staging.1')
- install_data('COPYING', install_dir : licenses_dir)
- install_data('AUTHORS', 'README', 'THANKS', install_dir : doc_dir)
+ install_data('COPYING', install_dir: licenses_dir)
+ install_data('AUTHORS', 'README', 'THANKS', install_dir: doc_dir)
  
+@@ -864,7 +864,7 @@ if host_machine.system() == 'windows'
+ endif
+ 
+ executable(
+-    'dosbox',
++    'dosbox-staging',
+     dosbox_sources,
+     dependencies: internal_deps + third_party_deps,
+     include_directories: incdir,
diff --git a/dosbox-staging/patches/patch-src_hardware_vga__other.cpp b/dosbox-staging/patches/patch-src_hardware_vga__other.cpp
new file mode 100644
index 0000000000..72eef22c5c
--- /dev/null
+++ b/dosbox-staging/patches/patch-src_hardware_vga__other.cpp
@@ -0,0 +1,13 @@
+$NetBSD$
+
+--- src/hardware/vga_other.cpp.orig	2023-01-07 07:06:28.000000000 +0000
++++ src/hardware/vga_other.cpp
+@@ -569,7 +569,7 @@ static void update_cga16_color_pcjr()
+ 
+ 			auto to_linear_rgb = [=](const float v) -> uint8_t {
+ 				// Only operate on reasonably positive v-values
+-				if (!isnormal(v) || v <= 0.0f)
++				if (!std::isnormal(v) || v <= 0.0f)
+ 					return 0;
+ 				// switch to linear RGB space and scale to the 8-bit range
+ 				constexpr int max_8bit = UINT8_MAX;
diff --git a/dosbox-staging/patches/patch-src_libs_loguru_loguru.cpp b/dosbox-staging/patches/patch-src_libs_loguru_loguru.cpp
new file mode 100644
index 0000000000..c4b5652d1f
--- /dev/null
+++ b/dosbox-staging/patches/patch-src_libs_loguru_loguru.cpp
@@ -0,0 +1,14 @@
+$NetBSD$
+
+--- src/libs/loguru/loguru.cpp.orig	2023-01-07 07:06:28.000000000 +0000
++++ src/libs/loguru/loguru.cpp
+@@ -1145,6 +1145,9 @@ namespace loguru
+ 			#elif defined(__FreeBSD__)
+ 				long thread_id;
+ 				(void)thr_self(&thread_id);
++			#elif defined(__NetBSD__)
++				const auto native_id = pthread_self();
++				const auto thread_id = reinterpret_cast<uintptr_t>((void*)native_id);
+ 			#elif LOGURU_PTHREADS
+ 				const auto native_id = pthread_self();
+ 				// Warning, even within POSIX, return types and sizes vary:
diff --git a/dosbox-staging/patches/patch-src_libs_manymouse_x11__xinput2.c b/dosbox-staging/patches/patch-src_libs_manymouse_x11__xinput2.c
new file mode 100644
index 0000000000..ba3ddad7f1
--- /dev/null
+++ b/dosbox-staging/patches/patch-src_libs_manymouse_x11__xinput2.c
@@ -0,0 +1,12 @@
+$NetBSD$
+
+--- src/libs/manymouse/x11_xinput2.c.orig	2023-01-07 07:06:28.000000000 +0000
++++ src/libs/manymouse/x11_xinput2.c
+@@ -32,6 +32,7 @@
+ #include <stdlib.h>
+ #include <string.h>
+ #include <dlfcn.h>
++#include <sys/select.h>
+ #include <X11/extensions/XInput2.h>
+ 
+ /* 32 is good enough for now. */



Home | Main Index | Thread Index | Old Index