diff --git a/preview/dev/404.html b/preview/dev/404.html index 2fcaaba..bdb3659 100644 --- a/preview/dev/404.html +++ b/preview/dev/404.html @@ -486,6 +486,8 @@ + + @@ -526,6 +528,27 @@ +
  • + + + + + 0.82.0-RC + + + + +
  • + + + + + + + + + +
  • diff --git a/preview/dev/about/index.html b/preview/dev/about/index.html index 8d47c07..e2e71d0 100644 --- a/preview/dev/about/index.html +++ b/preview/dev/about/index.html @@ -508,6 +508,8 @@ + + @@ -548,6 +550,27 @@ +
  • + + + + + 0.82.0-RC + + + + +
  • + + + + + + + + + +
  • @@ -1461,7 +1484,6 @@

    Goals&
  • Deliver a consistent cross-platform experience.
  • Leverage upstream and community developments in DOSBox.
  • Encourage new contributors by removing barriers to entry.
  • -
  • Fix, clean up, and integrate notable community-developed patches.
  • Prioritise code quality to minimise technical debt and ease maintenance. This generally means following the Staging Coding Style Guide @@ -1471,7 +1493,7 @@

    Non-goalsDOSBox continues to support.

  • @@ -1485,8 +1507,7 @@

    Non-goalsQEMU, VirtualBox and the DOSBox-X and - DOSBox Pure forks. - This may change if the DOSBox Staging community wants it.

    + DOSBox Pure forks.

  • Pursue hardware accuracy above all else. If you’re after a more faithful diff --git a/preview/dev/get-involved/code-of-conduct/index.html b/preview/dev/get-involved/code-of-conduct/index.html index e01b7e1..b11e863 100644 --- a/preview/dev/get-involved/code-of-conduct/index.html +++ b/preview/dev/get-involved/code-of-conduct/index.html @@ -510,6 +510,8 @@ + + @@ -550,6 +552,27 @@ +

  • + + + + + 0.82.0-RC + + + + +
  • + + + + + + + + + +
  • diff --git a/preview/dev/get-involved/index.html b/preview/dev/get-involved/index.html index b61e3de..6c3f844 100644 --- a/preview/dev/get-involved/index.html +++ b/preview/dev/get-involved/index.html @@ -510,6 +510,8 @@ + + @@ -550,6 +552,27 @@ +
  • + + + + + 0.82.0-RC + + + + +
  • + + + + + + + + + +
  • diff --git a/preview/dev/getting-started/advanced-graphics-options/index.html b/preview/dev/getting-started/advanced-graphics-options/index.html index 9f187b4..9923811 100644 --- a/preview/dev/getting-started/advanced-graphics-options/index.html +++ b/preview/dev/getting-started/advanced-graphics-options/index.html @@ -508,6 +508,8 @@ + + @@ -548,6 +550,27 @@ +
  • + + + + + 0.82.0-RC + + + + +
  • + + + + + + + + + +
  • diff --git a/preview/dev/getting-started/beneath-a-steel-sky/index.html b/preview/dev/getting-started/beneath-a-steel-sky/index.html index d6a30c9..36a493e 100644 --- a/preview/dev/getting-started/beneath-a-steel-sky/index.html +++ b/preview/dev/getting-started/beneath-a-steel-sky/index.html @@ -508,6 +508,8 @@ + + @@ -548,6 +550,27 @@ +
  • + + + + + 0.82.0-RC + + + + +
  • + + + + + + + + + +
  • diff --git a/preview/dev/getting-started/enhancing-prince-of-persia/index.html b/preview/dev/getting-started/enhancing-prince-of-persia/index.html index ecaad86..c7f5136 100644 --- a/preview/dev/getting-started/enhancing-prince-of-persia/index.html +++ b/preview/dev/getting-started/enhancing-prince-of-persia/index.html @@ -508,6 +508,8 @@ + + @@ -548,6 +550,27 @@ +
  • + + + + + 0.82.0-RC + + + + +
  • + + + + + + + + + +
  • diff --git a/preview/dev/getting-started/introduction/index.html b/preview/dev/getting-started/introduction/index.html index fbf3df7..57abd45 100644 --- a/preview/dev/getting-started/introduction/index.html +++ b/preview/dev/getting-started/introduction/index.html @@ -508,6 +508,8 @@ + + @@ -548,6 +550,27 @@ +
  • + + + + + 0.82.0-RC + + + + +
  • + + + + + + + + + +
  • diff --git a/preview/dev/getting-started/next-steps/index.html b/preview/dev/getting-started/next-steps/index.html index cb6bb65..878b66b 100644 --- a/preview/dev/getting-started/next-steps/index.html +++ b/preview/dev/getting-started/next-steps/index.html @@ -508,6 +508,8 @@ + + @@ -548,6 +550,27 @@ +
  • + + + + + 0.82.0-RC + + + + +
  • + + + + + + + + + +
  • diff --git a/preview/dev/getting-started/passport-to-adventure/index.html b/preview/dev/getting-started/passport-to-adventure/index.html index 93ede9a..af402b8 100644 --- a/preview/dev/getting-started/passport-to-adventure/index.html +++ b/preview/dev/getting-started/passport-to-adventure/index.html @@ -508,6 +508,8 @@ + + @@ -548,6 +550,27 @@ +
  • + + + + + 0.82.0-RC + + + + +
  • + + + + + + + + + +
  • diff --git a/preview/dev/getting-started/setting-up-prince-of-persia/index.html b/preview/dev/getting-started/setting-up-prince-of-persia/index.html index 48c3b32..97044ed 100644 --- a/preview/dev/getting-started/setting-up-prince-of-persia/index.html +++ b/preview/dev/getting-started/setting-up-prince-of-persia/index.html @@ -508,6 +508,8 @@ + + @@ -548,6 +550,27 @@ +
  • + + + + + 0.82.0-RC + + + + +
  • + + + + + + + + + +
  • diff --git a/preview/dev/getting-started/star-wars-dark-forces/index.html b/preview/dev/getting-started/star-wars-dark-forces/index.html index 04ead31..3955fce 100644 --- a/preview/dev/getting-started/star-wars-dark-forces/index.html +++ b/preview/dev/getting-started/star-wars-dark-forces/index.html @@ -508,6 +508,8 @@ + + @@ -548,6 +550,27 @@ +
  • + + + + + 0.82.0-RC + + + + +
  • + + + + + + + + + +
  • diff --git a/preview/dev/index.html b/preview/dev/index.html index 5c8d110..19964bc 100644 --- a/preview/dev/index.html +++ b/preview/dev/index.html @@ -1080,6 +1080,8 @@

    + + @@ -1120,6 +1122,27 @@

    +
  • + + + + + 0.82.0-RC + + + + +
  • + + + + + + + + + +
  • diff --git a/preview/dev/releases/development-builds/index.html b/preview/dev/releases/development-builds/index.html index f5fa48b..625ad36 100644 --- a/preview/dev/releases/development-builds/index.html +++ b/preview/dev/releases/development-builds/index.html @@ -515,6 +515,8 @@ + + @@ -555,6 +557,27 @@ +
  • + + + + + 0.82.0-RC + + + + +
  • + + + + + + + + + +
  • @@ -1743,7 +1766,7 @@

    Development builds { set_ci_status("windows-msvc.yml", "windows", "Windows ¹") set_ci_status("macos.yml", "macos", "macOS ²") - set_ci_status("linux.yml", "linux", "Linux") + set_ci_status("linux.yml", "linux", "Linux ³") }) @@ -1754,8 +1777,8 @@

    Development buildsWindows, macOS, or Linux download pages.

    -

    Build artifacts are hosted on GitHub; you need to be logged in to download -them.

    +

    Build artifacts are hosted on GitHub; you need to be logged in to GitHub +to download them.

    @@ -1800,8 +1823,11 @@

    Development buildsInstallation notes

    Windows

    Windows executables in snapshot packages are not signed, therefore Windows 10 diff --git a/preview/dev/releases/linux/index.html b/preview/dev/releases/linux/index.html index a00e13c..0228412 100644 --- a/preview/dev/releases/linux/index.html +++ b/preview/dev/releases/linux/index.html @@ -18,7 +18,7 @@ - + @@ -509,16 +509,6 @@

    @@ -1632,6 +1655,29 @@

    Current stable version

    Check out the 0.81.2 release notes to learn about the changes and improvements introduced by this release.

    +

    If you’re new to DOSBox Staging, we highly recommend following the +Getting started guide.

    +

    0.82.0 release candidate

    +
    +

    Release candidate warning

    +

    Release candidates are intended for experienced early adopters willing to +help us stabilise the next DOSBox Staging version for the final release. +Regular users should download the current stable version +instead.

    +

    0.82.0-RC1

    + +

    Check out the 0.82.0-RC release notes to learn +about the changes and improvements introduced in this release.

    +
    +

    Hardware requirements

    +

    The latest release is compatible with macOS 10.15 (Catalina) or newer and +supports both 64-bit Intel and Apple silicon Macs.

    Homebrew

    The Homebrew package is compatible with macOS 10.14 (Mojave) or newer. Learn how to set up Homebrew @@ -1649,9 +1695,6 @@

    MacPortsHardware requirements

    -

    The latest release is compatible with macOS 10.15 (Catalina) or newer and -supports both 64-bit Intel and Apple silicon Macs.

    Development snapshot builds

    You can always see what’s cooking on the main branch! 😎 🍺

    These snapshot builds might be slow or unstable as they @@ -1679,7 +1722,6 @@

    macOS Sonoma 14 or earlierGatekeeper window

    -

    Explanation

    Apple’s Gatekeeper feature only permits the running of notarized software, one aspect of which involves developers making yearly payments to Apple.

    As DOSBox Staging is a volunteer effort, we were not in a position to make diff --git a/preview/dev/releases/release-notes/0.75.0-rc1/index.html b/preview/dev/releases/release-notes/0.75.0-rc1/index.html index 29d9364..3cc1ad2 100644 --- a/preview/dev/releases/release-notes/0.75.0-rc1/index.html +++ b/preview/dev/releases/release-notes/0.75.0-rc1/index.html @@ -515,6 +515,8 @@ + + @@ -555,6 +557,27 @@ +

  • + + + + + 0.82.0-RC + + + + +
  • + + + + + + + + + +
  • diff --git a/preview/dev/releases/release-notes/0.75.0/index.html b/preview/dev/releases/release-notes/0.75.0/index.html index 87cecee..ae860d6 100644 --- a/preview/dev/releases/release-notes/0.75.0/index.html +++ b/preview/dev/releases/release-notes/0.75.0/index.html @@ -515,6 +515,8 @@ + + @@ -555,6 +557,27 @@ +
  • + + + + + 0.82.0-RC + + + + +
  • + + + + + + + + + +
  • diff --git a/preview/dev/releases/release-notes/0.75.1/index.html b/preview/dev/releases/release-notes/0.75.1/index.html index feeb928..2751498 100644 --- a/preview/dev/releases/release-notes/0.75.1/index.html +++ b/preview/dev/releases/release-notes/0.75.1/index.html @@ -515,6 +515,8 @@ + + @@ -555,6 +557,27 @@ +
  • + + + + + 0.82.0-RC + + + + +
  • + + + + + + + + + +
  • diff --git a/preview/dev/releases/release-notes/0.75.2/index.html b/preview/dev/releases/release-notes/0.75.2/index.html index 997c092..aeb2d92 100644 --- a/preview/dev/releases/release-notes/0.75.2/index.html +++ b/preview/dev/releases/release-notes/0.75.2/index.html @@ -515,6 +515,8 @@ + + @@ -555,6 +557,27 @@ +
  • + + + + + 0.82.0-RC + + + + +
  • + + + + + + + + + +
  • diff --git a/preview/dev/releases/release-notes/0.76.0/index.html b/preview/dev/releases/release-notes/0.76.0/index.html index f5c56d0..bae966b 100644 --- a/preview/dev/releases/release-notes/0.76.0/index.html +++ b/preview/dev/releases/release-notes/0.76.0/index.html @@ -515,6 +515,8 @@ + + @@ -555,6 +557,27 @@ +
  • + + + + + 0.82.0-RC + + + + +
  • + + + + + + + + + +
  • diff --git a/preview/dev/releases/release-notes/0.77.0/index.html b/preview/dev/releases/release-notes/0.77.0/index.html index 106a6f7..27dfebb 100644 --- a/preview/dev/releases/release-notes/0.77.0/index.html +++ b/preview/dev/releases/release-notes/0.77.0/index.html @@ -515,6 +515,8 @@ + + @@ -555,6 +557,27 @@ +
  • + + + + + 0.82.0-RC + + + + +
  • + + + + + + + + + +
  • diff --git a/preview/dev/releases/release-notes/0.77.1/index.html b/preview/dev/releases/release-notes/0.77.1/index.html index 79ec0a4..c03f6cf 100644 --- a/preview/dev/releases/release-notes/0.77.1/index.html +++ b/preview/dev/releases/release-notes/0.77.1/index.html @@ -515,6 +515,8 @@ + + @@ -555,6 +557,27 @@ +
  • + + + + + 0.82.0-RC + + + + +
  • + + + + + + + + + +
  • diff --git a/preview/dev/releases/release-notes/0.78.0/index.html b/preview/dev/releases/release-notes/0.78.0/index.html index 8fcd4f6..2a2e097 100644 --- a/preview/dev/releases/release-notes/0.78.0/index.html +++ b/preview/dev/releases/release-notes/0.78.0/index.html @@ -515,6 +515,8 @@ + + @@ -555,6 +557,27 @@ +
  • + + + + + 0.82.0-RC + + + + +
  • + + + + + + + + + +
  • diff --git a/preview/dev/releases/release-notes/0.78.1/index.html b/preview/dev/releases/release-notes/0.78.1/index.html index 7ba40f3..b09e06b 100644 --- a/preview/dev/releases/release-notes/0.78.1/index.html +++ b/preview/dev/releases/release-notes/0.78.1/index.html @@ -515,6 +515,8 @@ + + @@ -555,6 +557,27 @@ +
  • + + + + + 0.82.0-RC + + + + +
  • + + + + + + + + + +
  • diff --git a/preview/dev/releases/release-notes/0.79.0/index.html b/preview/dev/releases/release-notes/0.79.0/index.html index 784b490..fd8bd96 100644 --- a/preview/dev/releases/release-notes/0.79.0/index.html +++ b/preview/dev/releases/release-notes/0.79.0/index.html @@ -515,6 +515,8 @@ + + @@ -555,6 +557,27 @@ +
  • + + + + + 0.82.0-RC + + + + +
  • + + + + + + + + + +
  • diff --git a/preview/dev/releases/release-notes/0.79.1/index.html b/preview/dev/releases/release-notes/0.79.1/index.html index a509790..1cff943 100644 --- a/preview/dev/releases/release-notes/0.79.1/index.html +++ b/preview/dev/releases/release-notes/0.79.1/index.html @@ -515,6 +515,8 @@ + + @@ -555,6 +557,27 @@ +
  • + + + + + 0.82.0-RC + + + + +
  • + + + + + + + + + +
  • diff --git a/preview/dev/releases/release-notes/0.80.0/index.html b/preview/dev/releases/release-notes/0.80.0/index.html index 5a2322b..2228fb6 100644 --- a/preview/dev/releases/release-notes/0.80.0/index.html +++ b/preview/dev/releases/release-notes/0.80.0/index.html @@ -515,6 +515,8 @@ + + @@ -555,6 +557,27 @@ +
  • + + + + + 0.82.0-RC + + + + +
  • + + + + + + + + + +
  • diff --git a/preview/dev/releases/release-notes/0.80.1/index.html b/preview/dev/releases/release-notes/0.80.1/index.html index dddb10e..0c9d41e 100644 --- a/preview/dev/releases/release-notes/0.80.1/index.html +++ b/preview/dev/releases/release-notes/0.80.1/index.html @@ -515,6 +515,8 @@ + + @@ -555,6 +557,27 @@ +
  • + + + + + 0.82.0-RC + + + + +
  • + + + + + + + + + +
  • diff --git a/preview/dev/releases/release-notes/0.81.0/index.html b/preview/dev/releases/release-notes/0.81.0/index.html index b7022bd..2ac0814 100644 --- a/preview/dev/releases/release-notes/0.81.0/index.html +++ b/preview/dev/releases/release-notes/0.81.0/index.html @@ -515,6 +515,8 @@ + + @@ -555,6 +557,27 @@ +
  • + + + + + 0.82.0-RC + + + + +
  • + + + + + + + + + +
  • diff --git a/preview/dev/releases/release-notes/0.81.1/index.html b/preview/dev/releases/release-notes/0.81.1/index.html index a364beb..7103ecc 100644 --- a/preview/dev/releases/release-notes/0.81.1/index.html +++ b/preview/dev/releases/release-notes/0.81.1/index.html @@ -515,6 +515,8 @@ + + @@ -555,6 +557,27 @@ +
  • + + + + + 0.82.0-RC + + + + +
  • + + + + + + + + + +
  • diff --git a/preview/dev/releases/release-notes/0.81.2/index.html b/preview/dev/releases/release-notes/0.81.2/index.html index 60effbf..7a3d0bc 100644 --- a/preview/dev/releases/release-notes/0.81.2/index.html +++ b/preview/dev/releases/release-notes/0.81.2/index.html @@ -15,7 +15,7 @@ - + @@ -515,6 +515,8 @@ + + @@ -553,6 +555,27 @@ + + +
  • + + + + + 0.82.0-RC + + + + +
  • + + + + + + + + @@ -1557,9 +1580,9 @@

    Thank you diff --git a/preview/dev/releases/release-notes/0.82.0-rc/index.html b/preview/dev/releases/release-notes/0.82.0-rc/index.html new file mode 100644 index 0000000..01e51ba --- /dev/null +++ b/preview/dev/releases/release-notes/0.82.0-rc/index.html @@ -0,0 +1,3493 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.82.0-RC - DOSBox Staging + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + + + + + + + + + + + + + + +
    + + + + + + + + + +
    + +
    + + + + +
    +
    + + + +
    +
    +
    + + + + + + + +
    +
    +
    + + + +
    +
    +
    + + + +
    +
    +
    + + + +
    +
    + + + + +

    0.82.0-RC release notes

    +

    Release date: 2024-08-20

    +
    +

    Release candidate notes

    +

    Welcome to the release candidate (RC) of DOSBox Staging 0.82.0!

    +

    What is a “release candidate”? You can think of it as a “sneak preview” of +our upcoming release before we complete our full round of internal +testing. As such, it might contain occasional bugs or regressions, but it +should be free of major problems.

    +

    Community feedback is crucial to discovering issues in any complex +software. The release candidate is intended for experienced early adopters +willing to help us stabilise DOSBox Staging for the final release. If you’ve +found any issue in the RC, please report it to us!

    +

    Regular users who prefer a straight-line progression from one release to +the next should wait for the stable release, which should come up to two +months after the release candidate.

    +
    +

    Summary

    +

    Just six short months after our monstre 0.81.0 release, we’re back with +another big one that adds Pentium MMX emulation, ESS Enhanced FM Audio, +numerous audio related enhancements, a large number of game compatibility +fixes, improved Windows 3.1x compatibility, experimental Windows ARM64 +support, and a lot more!

    +

    Read on to learn more!

    +

    Downloads

    +

    Start by downloading the 0.82.0-RC release candidate:

    +
    + +
    +

    For those upgrading from an earlier DOSBox Staging version, please follow the +upgrade instructions below.

    +

    First-time users and people migrating from other DOSBox variants should start +by reading the Getting started guide.

    +

    How to upgrade

    +

    Upgrading your primary configuration

    +

    Since config settings might be renamed, altered, or deprecated between +releases, it’s best to let DOSBox Staging write the new default primary config +on the first launch, then reapply your old settings manually.

    +

    Start by backing up your existing primary config. This is where to find +it on each platform:

    +
    +

    + + + + + + + + + + + + + + + + + + + + +
    WindowsC:\Users\%USERNAME%\AppData\Local\DOSBox\dosbox-staging.conf
    macOS~/Library/Preferences/DOSBox/dosbox-staging.conf
    Linux~/.config/dosbox/dosbox-staging.conf
    +
    +

    You can also execute DOSBox Staging with the --printconf option to have the +location of the primary config printed to your console.

    +

    After backing up the existing primary config, simply start the new version—a +new dosbox-staging.conf will be written containing the new defaults and +updated setting descriptions.

    +
    +

    Portable mode notes

    +

    In portable mode, dosbox-staging.conf resides in the same folder as your +DOSBox Staging executable. The migration steps for portable mode users are +as follows:

    +
      +
    • Unpack the new version into a new folder (this is important).
    • +
    • Create a new empty dosbox-staging.conf file in the new folder to + enable portable mode.
    • +
    • Launch the new version.
    • +
    +

    DOSBox Staging will write the new defaults to the empty +dosbox-staging.conf file. After this, you carry over your settings from +the old primary config manually.

    +
    +

    After upgrading

    +

    Look for deprecation warnings in the logs (in yellow or orange colour) and +update your configs accordingly.

    +

    Game compatibility fixes

    +
      +
    • +

      Fix regression in Command & Conquer: Red Alert where the emulator crashed + after playing the game for a while.

      +
    • +
    • +

      Fix regression in The Magic Candle 2: The Four and Forty where the + second MIDI sequence did not play.

      +
    • +
    • +

      Fix regression in Soltys where the Gravis UltraSound was not starting up + after the game auto-detected it.

      +
    • +
    • +

      Fix Dunkle Schatten 2 freezing after startup.

      +
    • +
    • +

      Fix distorted HUD issue in the 3dfx version of Archimedean Dynasty.

      +
    • +
    • +

      Fix the odd horizontal black lines appearing in the following + Synthetic Dimensions games:

      +
      +
        +
      • Chronicles of the Sword
      • +
      • Druid: Daemons of the Mind
      • +
      • Perfect Assassin
      • +
      +
      +
    • +
    • +

      Generically fix all Windows 3.1x games that complain about enabling file + sharing, asking the user to run SHARE.EXE. This fixes at least the + following games:

      +
      +
        +
      • Comix Zone
      • +
      • Garfield Caught in the Act
      • +
      • Microsoft Flight Simulator (v5.0, ATC Workshop)
      • +
      • Monopoly
      • +
      • Ultimate Yahtzee
      • +
      +
      +
    • +
    • +

      Fix the intro tune in Bumpy’s Arcade Fantasy using the wrong instruments + on the MT-32.

      +
    • +
    • +

      Fix the AdLib intro jingle not playing in Silmarlis games (e.g., Crystals of + Arborea, Ishar 1 & 2, Storm Master, Transantartica, etc.)

      +
    • +
    • +

      Fix flipped Sound Blaster Pro 2 output filter behaviour in Doom and + all games that toggle the filter programmatically.

      +
    • +
    +
    +Note +
      +
    • Add carry, sign, zero, and parity flags to integer division instructions (#3785)
    • +
    • Clean up some leaked file handles (#3673)
    • +
    • Fix decrementing of MPU-401 track and conductor counters (#3766)
    • +
    • Fix file open error in ISO Drive (#3804)
    • +
    • Fix programmatic toggling of the Sound Blaster Pro 2 output filter (#3815)
    • +
    • Fix regression in Voodoo 16-bit memory write (#3841)
    • +
    • Fix the GUS reset register’s startup behavior (#3755)
    • +
    • Implement File Locking (#3687)
    • +
    • Import missing S3 Trio64 XGA compare and fill routines from DOSBox-X (#3775)
    • +
    • Initialise the OPL operators per the AdLib v1.51 driver (#3772)
    • +
    • Integrate MMX emulation (#3426)
    • +
    • Move System File Table memory location (#3680)
    • +
    • Use inline memory routines for MMX (#3847)
    • +
    • Use linear 128 KB video memory pages for VESA modes (#3767)
    • +
    • Various MT-32 improvements & fix Bumpy’s Arcade Fantasy intro tune (#3729)
    • +
    +
    +

    Graphics

    +

    Remove the ‘openglnb’ output mode

    +

    The openglnb output mode for OpenGL with nearest-neighbour interpolation has +been removed (nb stood for “no bilinear”, which is a roundabout way to say +“nearest-neighbour interpolation”).

    +

    When using CRT shaders or any other shader, openglnb and opengl worked +exactly the same way—there was zero reason for preferring openglnb +over opengl.

    +

    The only legitimate use-case for openglnb was to get nearest-neighbour +interpolation with uneven pixels when not setting any shader explicitly. This +was a relic from the past from pre-shader times when you had to select between +two bad options when aspect-ratio correction was enabled: blurry output (with +bilinear filtering) or sharp output at the expense of uneven pixels (with +nearest-neighbour, or “no bilinear” interpolation). The much better current +solution in DOSBox Staging if you want the “sharp pixel” look is to use the +sharp shader.

    +

    If you really want to, you can still use nearest-neighbour interpolation +with the new nearest shader. But you’ll get far better results with +sharp, especially on 1080p displays.

    +

    The texturenb output mode remains available as a last resort fallback for +weak hardware with no functional OpenGL drivers.

    +

    New xBR upscaler shaders

    +

    A few of Hyllian’s xBR upscaling +shaders have been +added for those hell-bent on playing games with a fake high-resolution look:

    +
    +
      +
    • scaler/xbr-lv2-3d
    • +
    • scaler/xbr-lv2-noblend
    • +
    • scaler/xbr-lv3
    • +
    +
    +

    Voodoo fixes

    +

    16-bit memory writes have been fixed in our Voodoo emulation; this resolves +the distorted HUD issue in the 3dfx version of Archimedean Dynasty.

    +

    S3 Trio64 improvements

    +
      +
    • +

      Fixed the hardware cursor handling on the S3 Trio64 card; this fixes the display + corruption on exit issue in the Teddybear’s Revenge + demo by Eclipse.

      +
    • +
    • +

      Implemented the missing S3 Trio64 XGA compare and fill routines. This + lets you use version 1.70.04 of the S3 Trio64 drivers in Windows 3.1x + without issues and resolves graphical glitches in Windows 3.1x games that + use XGA features, such as the demo of Critical Mass. This change + improves general compatibility with games that use WinG as well.

      +
    • +
    • +

      Now we use linear 128 KB video memory pages for all VESA modes. Some games exploit + this low-level detail of some SVGA cards to access the video memory as a + single contiguous 128 KB memory block instead of manually flipping between + two 64 KB pages. This enhancement gets rid of the odd horizontal black lines + in the following Synthetic Dimensions games and possibly in other games and + demoscene productions too that use the same hack:

      +
      +
        +
      • Chronicles of the Sword
      • +
      • Druid — Daemons of the Mind
      • +
      • Perfect Assassin
      • +
      +
      +
    • +
    +
    +Full PR list of graphics-related changes +
      +
    • Add use_nearest_texture_filter shader pragma and nearest shader (#3852)
    • +
    • Check if hardware cursor is actually being enabled or disabled before setting VGA_LineDraw (#3725)
    • +
    • Fix assert failure from incorrectly mapping result of SDL_GL_SwapInterval() (#3844)
    • +
    • Fix regression in Voodoo 16-bit memory write (#3841)
    • +
    • Import missing S3 Trio64 XGA compare and fill routines from DOSBox-X (#3775)
    • +
    • Kill openglnb with fire 🔥🔥🔥🔥🔥 (#3672)
    • +
    • Minor vga_draw.cpp refactor (#3734)
    • +
    • Presentation mode, host rate & vsync cleanup (#3824)
    • +
    • Use linear 128 KB video memory pages for VESA modes (#3767)
    • +
    +
    +

    Sound

    +

    Multi-threaded audio processing

    +

    Some audio devices, such as the MT-32 and FluidSynth, were already running in +their own threads. We’ve taken this to the next level, and now the DOSBox +mixer itself has got its own dedicated thread, too. This greatly reduces and +often completely eliminates audio stuttering and glitches. The improvement is +especially noticeable in games that use the Roland MT-32 or FluidSynth for +MIDI music, the AdLib/OPL synth, the IBM Music Feature Card (IMFC), or Red +Book CD Audio.

    +

    For example, now you should get zero glitches in the intro of Eric the +Unready on the MT-32 when the game repeatedly switches between 320×200 +and 640×480 VGA modes.

    +

    We plan to take this approach even further in the following releases, with the +ultimate goal of achieving a 100% glitch-free, hardware-like audio experience.

    +

    ESS Enhanced FM Audio (ESFM) emulation

    +

    DOS audio connoisseurs, we have a real treat for you! We’ve added support for +emulating ESS Enhanced FM Audio, or ESFM, the +OPL3-compatible FM synth found on later ESS AudioDrive cards.

    +

    In “legacy mode”, ESFM is fully compatible with the Yamaha OPL3; on most +materials, it yields almost identical output (with the occasional subtle +difference). What sets it apart is its “native mode”, in which it +offers advanced synthesis features surpassing the capabilities of the OPL3 +chips. It bridges the gap between synthetic-sounding OPL music and +MIDI music that uses sampled real instruments—it definitely makes those +expensive external MIDI modules run for their money!

    +

    Unfortunately, since ESFM was released in 1995, only a handful of games +support “native mode,” but in the few that do, the results sound quite +spectacular!

    +
      +
    • +

      To run ESFM in “legacy mode”, use oplmode = esfm with any Sound Blaster + model and configure the game for Sound Blaster and AdLib/OPL as usual.

      +
    • +
    • +

      To use “native mode”, set sbtype = ess and configure the ESS Technology + ES1688, ES1788, ES1888 Enhanced FM Audio MIDI music driver in the game’s + setup utility (most games that support ESFM natively use the Miles Sound + System). For the digital audio driver, select the Sound Blaster Pro option + (ESS AudioDrive cards are Sound Blaster Pro compatible).

      +
    • +
    +

    Here’s a non-exhaustive list of games that support ESFM Enhanced FM music. If +you discover more, please let us know!

    +
    +
      +
    • 11th Hour, The
    • +
    • Advanced Civilization
    • +
    • Callahan’s Crosstime Saloon
    • +
    • Gene Machine, The
    • +
    • Heaven’s Dawn
    • +
    • Heroes of Might and Magic II
    • +
    • Magic Carpet 2
    • +
    • Settlers II, The
    • +
    • Shannara
    • +
    • Theme Hospital
    • +
    • WarCraft II
    • +
    • Z
    • +
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    GameAudio example
    Heroes of Might and Magic II — Title (ESFM)
    Heroes of Might and Magic II — Title (OPL)
    Heroes of Might and Magic II — In-game (ESFM)
    Heroes of Might and Magic II — In-game (OPL)
    The Settlers 2 — Track 5 (ESFM)
    The Settlers 2 — Track 5 (OPL)
    The Settlers 2 — Track 14 (ESFM)
    The Settlers 2 — Track 14 (OPL)
    The Gene Machine (ESFM)
    The Gene Machine (OPL)
    Heaven’s Dawn (ESFM)
    Heaven’s Dawn (OPL)
    +
    +

    The more adventurous among you can also try to “retrofit” the ESFM.MID +driver from Miles Sound System games that have it into earlier ones that +don’t.

    +

    Here’s how Discworld sounds with the ESFM driver from Heaven’s +Dawn—it’s pretty great, sounds almost like sample-based music!

    + + + + + + + + + + + + + + + + + +
    Discworld (ESFM)
    Discworld (OPL)
    +

    AdLib/OPL DC bias remover

    +

    Some games like Golden Eagle and Wizardry VI: Bane of the Cosmic Forge +play digitised music and sound effects using the OPL (AdLib) channels by rapidly +changing the volume in very crude steps, similar to how the Disney Sound System +and Covox LPT DAC operate.

    +

    We’ve introduced a new opl_remove_dc_bias config setting to the [sblaster] +section, eliminating these annoying pops in affected games.

    +

    Recommended audio settings for Wizardry VI: Bane of the Cosmic Forge when +configured for AdLib sound:

    +
    [sblaster]
    +sbtype = none
    +oplmode = opl2
    +opl_remove_dc_bias = true
    +opl_filter = lpf 2 5500
    +
    +[speaker]
    +pcspeaker = off
    +
    +[autoexec]
    +mixer opl 500
    +
    +

    Default to the ‘impulse’ PC speaker model

    +

    The impulse PC speaker model has been made the default option as it emulates +the iconic little speaker found in old PCs more faithfully and with fewer +overall issues.

    +

    The catch is that a small percentage of games have problems with it, so you +might need to revert to the legacy and less accurate discrete model on a +per-game basis.

    +

    Decouple CMS and AdLib/OPL emulation

    +

    The CMS (Creative Sound System or Game Blaster) and OPL (AdLib) +emulations have finally been decoupled. DOSBox always treated the emulation of +the CMS as “just another OPL option”, which was completely wrong as the AdLib +and the CMS use different sound chips and have nothing to do with each other.

    +

    This resulted in various complications, such as oplmode = opl2 always +enabling CMS emulation as well (probably to allow emulating early Sound +Blaster cards that featured both the OPL2 and CMS chips).

    +

    The new model allows the user to control the OPL and CMS emulations +separately:

    +
      +
    • oplmode only determines the type of OPL chip(s) to emulate. Valid values are none, opl2, dualopl2, opl3, and opl3gold.
    • +
    • The new cms config setting in the [sblaster] section controls whether to + emulate the CMS. Valid values are on and off.
    • +
    +
    +

    Warning

    +

    As usual, oplmode = cms is still accepted with a deprecation warning, +but you should update your configs to use the new model as we might remove +support for the legacy settings in the future.

    +
    +

    Sound Blaster Pro 2 output filter fix

    +

    Previously, toggling the analog output filter programmatically on the Sound +Blaster Pro 2 (sbtype = sbpro2) was flipped due to a coding error. You +can hear the difference in games that toggle the filter, such as Doom, when +configured for the SB Pro 2 and authentic output filter emulation is enabled +with sb_filter = auto.

    +

    AdLib/OPL improvements

    +

    The OPL (AdLib) chip is now initialised with the official AdLib v1.51 driver’s +startup values instead of the chip’s native power-on state. Most games don’t +care about this because they fully overwrite the card with whatever state they +need at startup, but this fixed the missing intro jingle in the following Silmarils +games:

    +
    +
      +
    • Boston Bomb Club
    • +
    • Bunny Bricks
    • +
    • Crystals of Arborea
    • +
    • Ishar 1
    • +
    • Ishar 2
    • +
    • Metal Mutant
    • +
    • Storm Master
    • +
    • Transantartica
    • +
    +
    +

    Further mixer improvements

    +
      +
    • +

      Fix lower-pitched audio bug when the emulated audio device’s sample rate + exceeds the host sample rate. E.g., if a program uses the maximum native + 45 454 Hz Sound Blaster rate and the host rate is 44 100 Hz.

      +
    • +
    • +

      Host sample rates can now be set continuously from 8000 Hz to 96 kHz. + This makes DOSBox Staging fully placebo and audio snake oil compliant! + 😎 🤘 + Also, by setting custom sample rates, you can capture audio at an emulated + device’s native rate without resampling.

      +
    • +
    • +

      blocksize can now be set to non-power-of-two values, too.

      +
    • +
    • +

      The nosound option now works better because it renders the audio and + progresses the audio frames rendered counters (e.g., FastTracker II now + plays the module even in “no sound” mode; previously, it was completely + stalled). Additionally, you can now capture the audio to a WAV file even in + “no sound” mode.

      +
    • +
    +

    Other audio improvements

    +
      +
    • +

      The Gravis UltraSound and Sound Blaster can coexist now when you run + ULTRINIT.EXE. This way, you can use the SB for digital sound effects and + GUS for MIDI music via ULTRAMID.EXE or MEGAEM.EXE in supported games.

      +
    • +
    • +

      Turn off the “cable delay” emulation MIDI for the MT-32. This fixes the + intro tune in Bumpy’s Arcade Fantasy, and probably other game startup + issues, too.

      +
    • +
    • +

      Use 16-bit integer rendering mode for the MT-32 which is more accurate to + the real hardware and much faster. Also, use “nice” partials mode and + render at libmt32’s 48 kHz “analog emulation” rate for improved + authenticity.

      +
    • +
    • +

      Map the Capture MIDI action to Ctrl+Alt+F6 by default + (Cmd+Option+F6 on macOS).

      +
    • +
    • +

      Reading audio data from physical CD-ROMs is now done in a separate thread, + which should eliminate latency and stuttering issues.

      +
    • +
    • +

      Windows CD-ROM audio is now routed through the DOSBox mixer, bringing it to + feature parity with Linux.

      +
    • +
    • +

      Fix no CD Audio issue on Windows if using a USB CD drive (SATA + drives worked fine).

      +
    • +
    • +

      The strength of the tiny reverb preset has been reduced by 25% as it + sounded too strong; now it simulates the natural reverberation of a domestic + room better.

      +
    • +
    +
    +Full PR list of sound-related changes +
      +
    • Add a simple DC bias remover for the OPL output (#3310)
    • +
    • Add support for ESS mixer registers (#3702)
    • +
    • Decouple CMS and OPL emulations (#3559)
    • +
    • ESFM emulation (#3614)
    • +
    • Fix CD audio support on physical USB drives on Windows (#3840)
    • +
    • Fix ESS mixer volume handling (#3705)
    • +
    • Fix Ring Buffer PrevIndex() wrapping behavior for non power of 2 size (#3813)
    • +
    • Fix Sound Blaster programmatic low-pass filter toggling behaviour (#3712)
    • +
    • Fix decrementing of MPU-401 track and conductor counters (#3766)
    • +
    • Fix programmatic toggling of the Sound Blaster Pro 2 output filter (#3815)
    • +
    • Fix the GUS reset register’s startup behavior (#3755)
    • +
    • Further mixer fixes and improvements mega PR #2 (#3756)
    • +
    • Improve sbtype and oplmode descriptions & clean up sblaster.cpp (#3566)
    • +
    • Improve tiny reverb preset for small-speaker emulation (#3867)
    • +
    • Initialise the OPL operators per the AdLib v1.51 driver (#3772)
    • +
    • Make the impulse PC speaker model the default (#3851)
    • +
    • Map ‘Capture MIDI action’ to Ctrl+Alt+F6 (Cmd+Opt+F6) by default (#3714)
    • +
    • Mirror the Adlib command port (388h) in the GUS (#3763)
    • +
    • Move mixer to a seperate thread (#3848)
    • +
    • Rework physical CDROM interface (#3591)
    • +
    • Show the mixer who’s boss 😎 (#3650)
    • +
    • Sync Nuked-OPL3 with upstream (#3818)
    • +
    • Various MT-32 improvements & fix Bumpy’s Arcade Fantasy intro tune (#3729)
    • +
    +
    +

    Input

    +
      +
    • +

      Fix hang on exiting DOSBox Staging after pressing the Pause key.

      +
    • +
    • +

      General keyboard handling accuracy improvements, allowing us to get rid of + the Ultima VIII game-specific hack.

      +
    • +
    +
    +Full PR list of input-related changes +
      +
    • Fix hang on exit after pressing the pause key (#3671)
    • +
    • Replace Ultima VIII keyboard hack with a proper solution (#3784)
    • +
    +
    +

    DOS integration

    +

    New MODE command

    +

    A new MODE command has been added to set the display mode of the DOS prompt +and the keyboard’s typematic rate. The command is loosely based on the +original MS-DOS MODE command, but it supports a lot more display modes.

    +

    Examples of setting a custom text mode:

    +
    mode 80x30
    +mode 80x43
    +mode 132x34
    +
    +

    Setting the fastest key repeat with the shortest repeat delay (everybody’s +favourite):

    +
    mode rate=32 delay=1
    +
    +

    Run mode /? to see the full list of options.

    +

    File sharing support

    +

    Certain Windows 3.1x programs that rely on SHARE.EXE or VSHARE.386 would +display an error on startup, complaining that SHARE.EXE has not been loaded. +This mostly affects office programs (e.g., Microsoft Office, Lotus Office, +Peachtree Complete Accounting, etc.), but also a few games.

    +

    The previous workaround was to rely on a small utility called FAKESHAR.COM +which, as the name implies, fakes that SHARE.EXE is running. This worked mostly +fine with games but could lead to data corruption when using application +programs.

    +

    We’ve added support for file sharing and locking, which means workarounds like +FAKESHAR.COM are no longer necessary. All Windows 3.1x games that complain +about SHARE.EXE not running should now work out-of-the-box. This fixes at +least the following games:

    +
    +
      +
    • Comix Zone
    • +
    • Garfield Caught in the Act
    • +
    • Microsoft Flight Simulator (v5.0, ATC Workshop)
    • +
    • Monopoly
    • +
    • Ultimate Yahtzee
    • +
    +
    +

    Improved physical CD-ROM mounting

    +

    Physical CD-ROM devices are now auto-detected when using the MOUNT +command—no more need to use the additional clunky -usecd parameter (this +has been removed).

    +

    For example:

    +
      +
    • Windows: mount d d:\ -t cdrom
    • +
    • Linux: mount d /mnt/cdrom -t cdrom
    • +
    +

    Other DOS integration improvements

    +
      +
    • +

      LOADFIX can now be used with batch files.

      +
    • +
    • +

      Fix improper handling of some special characters in shell history.

      +
    • +
    • +

      Improve redirection handling in the DOS shell. This helps with a few game + installers (e.g., running the B-Wing Add-On installer for X-Wing + corrupted the game files without this fix).

      +
    • +
    • +

      More accurate System File Table (SFT) emulation. This helps with some game + compatibility issues, e.g. Dunkle Shatten 2 was freezing without this fix.

      +
    • +
    • +

      The DEBUG and XCOPY commands from FreeDOS have been updated to their + latest versions.

      +
    • +
    +
    +Full PR list of DOS integration related changes +
      +
    • Add MODE command & various text mode improvements (#3741)
    • +
    • Allow loadfix to execute batch files (#3657)
    • +
    • Clean up some leaked file handles (#3673)
    • +
    • Do not hard exit when running SET /P (#3789)
    • +
    • Fix Windows 3.1 regression from SFT change (#3744)
    • +
    • Fix broken shell_history_file config option (std::weak_ptr version) (#3664)
    • +
    • Fix improper handling of some characters in shell history (#3791)
    • +
    • Fix shell history creation regression (#3485)
    • +
    • Fix shell redirection for appending to the end of a file (#3873)
    • +
    • Implement File Locking (#3687)
    • +
    • Improve redirection handling in the DOS shell (#3838)
    • +
    • Keep file handle instead of entry in FileReader (#3528)
    • +
    • MODE command fixes & improvements (#3853)
    • +
    • Move System File Table memory location (#3680)
    • +
    • Move environment functions to psp (+ other small changes) (#3093)
    • +
    • Replace use of stat in imgmount (#3465)
    • +
    • The great DOS_File/DOS_Drive Refactor (plus some timestamp improvements) (#3786)
    • +
    • Update bundled FreeDOS binaries (#3876)
    • +
    • Use native file I/O in local and overlay drive (#3765)
    • +
    • Use wrapping behavior on localFile seek position (#3779)
    • +
    +
    +

    General

    +

    Pentium MMX emulation

    +

    Finally, we’ve added Pentium MMX instruction set emulation to run late-90s +demoscene productions (e.g., heaven seven by +Exceed) and the odd game with +MMX-specific enhancements (e.g., Extreme Assault and Z.A.R.). And +yeah, now you can use the MMX-only real-time resonant filters in Impulse +Tracker, too 😎

    +

    You must enable MMX emulation explicitly by setting cputype = pentium_mmx in +your config. All normal and dynamic cores are supported on all platforms.

    +

    Simplified CPU cycles settings

    +

    The cycles setting has been a source of a lot of confusion, so we’ve +replaced it with a much simpler way to configure the emulated CPU speed +(believe it or not, there are over 20 valid cycles value permutations!)

    +

    The new streamlined CPU cycles settings are as follows:

    +
      +
    • cpu_cycles — Global or real mode only cycles setting.
    • +
    • cpu_cycles_protected — Optional protected mode only cycles setting.
    • +
    • cpu_throttle — Whether the CPU emulation should be dynamically throttled if your host CPU cannot keep up.
    • +
    +

    Please refer to the settings’ descriptions to learn more (e.g., run config -h +cpu_cycles from the DOS prompt).

    +

    Here are a few concrete examples:

    +

    Set fixed speed globally

    +

    This will roughly emulate the speed of the venerable i486DX2-66 in both real and protected mode. cpu_cycles_protected = auto means cpu_cycles controls the emulated CPU speed globally, both for real and protected mode.

    +
    [cpu]
    +cpu_cycles = 25000
    +cpu_cycles_protected = auto
    +
    +

    Different real and protected mode speeds with throttling

    +

    20k cycles for real mode programs, and 400k for protected mode. Throttling is enabled, so if your host machine can’t keep up, the actual number of emulated CPU cycles per millisecond will be dynamically lowered.

    +
    [cpu]
    +cpu_cycles = 20000
    +cpu_cycles_protected = 400000
    +cpu_throttle = on
    +
    +

    Max speed

    +

    This will make the CPU emulation run as fast as your computer can handle it. Pretty useful when compiling programs, rendering 3D images, or playing late ’90s 3D games at 640×480 or higher resolutions (as long as they can run glitch-free on very fast CPUs).

    +
    [cpu]
    +cpu_cycles = max
    +cpu_cycles_protected = max
    +
    +
    +

    Backward compatibility with cycles

    +

    The legacy cycles setting is still available for backward compatibility +with existing configs. When cycles is set, the new CPU settings are +simply ignored. Do note, however, that we might remove support for cycles +in the future; please start migrating your configs to the new settings +now.

    +
    +

    Revised CPU cycles defaults

    +
    +

    Summary of changes

    +
      +
    • +

      The default emulated CPU speed (cycles) setting for protected mode +programs has been changed from max to 60 000 cycles.

      +
    • +
    • +

      The real mode default of 3000 cycles is unchanged.

      +
    • +
    • +

      When “legacy cycles mode” is enabled by setting cycles explicitly, the + old “max cycles” protected mode default applies.

      +
    • +
    +
    +

    DOSBox traditionally defaulted to 3000 cycles for real mode programs, and “max +cycles” (as fast as your host CPU can go) for protected mode programs. 3000 +cycles for real mode is a good middle-of-the-road setting that gets most games +running (even if not optimally). The “max cycles” setting, on the other hand, +is quite problematic for a couple of reasons:

    +
      +
    • +

      A significant number of games crash, misbehave, or manifest subtle bugs when + the emulated CPU is “too fast”. In the early days of DOSBox, cycles = max + was not a problem because the much slower host CPUs from 10-20 years ago + acted as a “natural throttle” on the effective emulation speed. However, + many of those old speed-sensitive games that used to work with cycles = + max are now broken on today’s fast CPUs.

      +
    • +
    • +

      The max setting is not transferable across setups as it depends on the + host CPU’s speed. Games configured for cycles = max might work fine on + your particular machine, but they could break on your friend’s faster + computer or yours a few years later when you get your next CPU upgrade. + The max N% cycles setting (e.g., max 70%) is plagued by the same + problem.

      +
    • +
    • +

      cycles = max often causes audio glitches and drop-outs in games. It’s best + to use the lowest fixed cycles value that runs the game at an acceptable + speed (read more tips about that + here).

      +
    • +
    • +

      Some DOS programs really freak out when the emulated CPU is being + dynamically changed at runtime, which is what max tends to do.

      +
    • +
    +

    All in all, max for protected mode is not a good default in 2024, so we’ve +changed it to fixed 60 000 cycles, which is roughly equivalent to slow Pentium +speeds. As protected mode games started appearing in the early to mid-90s, +this should run the vast majority of games fairly optimally out-of-the-box.

    +

    ‘cputype’ normalisation

    +

    After introducing the pentium_mmx CPU type, we felt the need to clean up the +cputype options a bit and make them more logical:

    +
    +
      +
    • 386_slow has been renamed to 386
    • +
    • 386 has been renamed to 386_fast
    • +
    • 486_slow has been renamed to 486
    • +
    • pentium_slow has been renamed to pentium
    • +
    +
    +

    Please refer to the description of the cputype setting for further info +(e.g., execute config -h cputype from the DOS prompt).

    +

    The descriptions of all CPU settings have been extensively revised and now +include helpful hints, so it’s recommended that you familiarise yourself with +them (run config -h cpu to see the complete list of CPU settings).

    +
    +

    Warning

    +

    The old renamed cputype values are still accepted with a deprecation +warning, but you should update your configs to use the new values, as we +might remove support for the legacy settings in the future.

    +
    +

    Improved CONFIG command

    +

    The CONFIG command’s output is now paginated when you use it to display a +config setting’s description (e.g., config -h glshader of config -h +cpu_cycles). Previously you had to pipe the output through the MORE command +to paginate the output, which was a hassle (i.e., config -h glshader | +more).

    +

    The formatting and colouring of the CONFIG command’s output has also been +improved.

    +

    Configurable window title bar

    +

    You can now fully customise the information displayed in the emulator window’s +title bar.

    +

    For example, this configuration

    +
    [sdl]
    +window_titlebar = program=none version=detailed mouse=short
    +
    +

    yields the following to be displayed in the title bar:

    +
    DOSBox Staging 0.82.0-alpha (9fdba) - 3000 cycles/ms
    +
    +

    An animated audio/video capturing indicator and a pause indicator has also +been added.

    +

    Please refer to the window_titlebar setting’s description to learn about the +available options (e.g., run config -h window_titlebar from the DOS prompt).

    +

    Read-only directory mounts

    +

    The MOUNT command now accepts the -ro flag to create read-only +(write-protected) directory mounts (the IMGMOUNT command already had this +option).

    +

    For auto-mounts, you can specify readonly = true in the [drive] section of +the mount config file (see resources).

    +

    Additionally, the built-in Y drive has been made read-only by default (you +can change this in resources/drives/y.conf, of course, if you want to).

    +

    Experimental Windows ARM64 builds

    +

    We’re ready for the ARM revolution! 😎

    +

    Luckily, we already have a battle-tested dynamic ARM recompiler that we’ve +been using for the Apple Silicon macOS builds, so we started providing +experimental Windows ARM64 packages for devices such as the Snapdragon X +Elite.

    +

    The ARM64 packages can be downloaded from our development builds +page (requires a GitHub account).

    +

    We don’t provide any official support for the experimental Windows ARM64 +builds yet.

    +

    Other general improvements

    +
      +
    • +

      The IPX server has been moved into its own dedicated thread. + This should improve multi-player game performance, especially for the host + running the IPX server.

      +
    • +
    • +

      The IBM Extended Density Format (XDF) was used by IBM for software + distribution on 5.25” and 3.5” media. XDF image files were often provided by + IBM on CD-ROMs, bulletin boards, and FTP sites.

      +
    • +
    • +

      A more realistic implementation of the Time Stamp Counter (TSC) found on + Pentium and later CPUs, often used to determine the CPU clock. Now various + benchmark software should display more realistic CPU speeds (e.g., HWINFO + and SiSoft Sandra). Games don’t seem to be affected by this improvement.

      +
    • +
    • +

      Software-initiated reset requests now restart the emulator instead of + crashing it. The reset message has been improved and now includes a countdown + counter.

      +
    • +
    +
    +Full PR list of miscellaneous enhancements +
      +
    • Add IBM XDF floppy support (#3442)
    • +
    • Add carry, sign, zero, and parity flags to integer division instructions (#3785)
    • +
    • CONFIG command enhancements (#3667)
    • +
    • Config setting improvements and CONFIG command fixes (#3754)
    • +
    • Fix MMX crash on moralhardcandy (#3814)
    • +
    • Fix switch to dynamic core warning edge case (#3732)
    • +
    • Fix warning when using a high cycles value on a non-dynamic core (#3716)
    • +
    • Implement read-only mounting + make Y drive read-only by default (#3711)
    • +
    • Improve reset handler (#3696)
    • +
    • Improve the core and cputype setting descriptions (#3708)
    • +
    • Improve title bar and make it configurable (#3249)
    • +
    • Integrate MMX emulation (#3426)
    • +
    • Introduce a better way to set the CPU cycles with new defaults (#3681)
    • +
    • Make the Time Stamp Counter more realistic (#3471)
    • +
    • Move IPX server to a background thread (#3414)
    • +
    • Paginate the CONFIG command’s output (#3758)
    • +
    • Show memory read breakpoint with BPLIST (#3396)
    • +
    +
    +
    +Full PR list of miscellaneous fixes +
      +
    • Add DOS Files to shutdown step to avoid a crash when shutting down (#3801)
    • +
    • Allow running the INTRO built-in from subshells (#3665)
    • +
    • Avoid unnecessary new-lines (#3617)
    • +
    • CONFIG -h should only list visible setting values (#3753)
    • +
    • Fix ‘output’ and other ‘sdl’ settings not changeable in runtime (#3571)
    • +
    • Fix IPX ping value display (#3418)
    • +
    • Fix Reboot Handler crash (#3683)
    • +
    • Fix file open error in ISO Drive (#3804)
    • +
    • Make parameter addresses properly sized in ppc64le dynrec (fixes #3686) (#3718)
    • +
    • Use CreateFileW on Windows to create file in local_drive_create_file() (#3746)
    • +
    +
    +
    +Full PR list of documentation-related changes +
      +
    • Add bisecting notes to build documentation (#3816)
    • +
    • Add comment about PPC64 big-endian and running 32-bit BE code (#3827)
    • +
    • Add warning about CMake support being experimental (#3790)
    • +
    • Clarify build instructions for low memory targets (#3658)
    • +
    • Create .clang-tidy (#3423)
    • +
    • Remove -usecd and -listcd MOUNT parameters from INTRO and the README (#3625)
    • +
    • Simple documentation fixes (#3782)
    • +
    • Update Windows build guide (#3424)
    • +
    +
    +
    +Full PR list of project maintenance related changes +
      +
    • Add Debian package build scripts and workflow (#3809)
    • +
    • Advance vcpkg baseline to upgrade to SDL 2.30.0 (#3606)
    • +
    • Allow SDL wraps to be bypassed on macOS (#3483)
    • +
    • Audio cleanups (#3615)
    • +
    • Avoid the use of std::string_view::data() (#3542)
    • +
    • Basic CMake support (#3361)
    • +
    • Bump Coverity build from Clang 14 to Clang 15 (#3419)
    • +
    • Bump PVS Studio CI from Clang 14 to Clang 15 (#3437)
    • +
    • Bump vcpkg baseline and update to upstream libslirp v4.8.0 (#3761)
    • +
    • Callback code generation rework (#3748)
    • +
    • Centralize app_id handling (continuation) (#3854)
    • +
    • Change ppc64 to use correct POWERPC target (#3826)
    • +
    • Clean up macOS notarization script (#3408)
    • +
    • Cleanup a few warnings in cdrom_image.cpp (#3472)
    • +
    • Cleanup of using namespace (#3444)
    • +
    • Cleanup some missed C++ header conversions (#3412)
    • +
    • Create new cross compiler docker images and adjust workflows (#3678)
    • +
    • Do not auto-run DOSBox Staging after installing it on Windows (#3583)
    • +
    • DYN_LOG: Fix formatting type mismatch (#3869)
    • +
    • Eliminate excessive repeat heap calls during normal runtime (#3812)
    • +
    • Fix CDROM_Interface pointer ownership issue (#3634)
    • +
    • Fix MSVC CI builds (#3474)
    • +
    • Fix compilation warnings reported by g++ 14.1 (#3783)
    • +
    • Fix issue with replace() (#3533)
    • +
    • Fix macOS CI workflow (#3505)
    • +
    • Fix sed creating backup files ending with “-e” in macOS bundle (#3406)
    • +
    • Fix some PVS warnings (#3484)
    • +
    • Fix variables optimizing away when debugging MSClang builds (#3397)
    • +
    • Fix vcredist version for MSVC CI runner (#3480)
    • +
    • Ignore meson.build in VS tests project (#3422)
    • +
    • Introduce custom release notes drafter script & workflow (#3398)
    • +
    • Make GCC 11 / Ubuntu 22.04 the minimum build target (#3674)
    • +
    • Mass update copyright dates (#3584)
    • +
    • Migrate to C++20 (#3286)
    • +
    • Minor FPU cleanup (#3837)
    • +
    • More PVS warning fixes (#3494)
    • +
    • Pin CMake version for MSVC runner (#3598)
    • +
    • Reinstate creating the Windows installer package in CI (#3849)
    • +
    • Release drafter enhancements (#3546)
    • +
    • Remove Debian 10 support (#3534)
    • +
    • Remove GCC_LIKELY/GCC_UNLIKELY (#3293)
    • +
    • Search for numbered clang-format binaries in format-commit.sh (#3747)
    • +
    • Unicode API refactoring (#3797)
    • +
    • Unify use of prop->Set_values (#3572)
    • +
    • Update simde to 0.8.0 (#3522)
    • +
    • Update string_utils to use C++20 constructs (#3540)
    • +
    • Upgrade SIMDE to 0.8.2 (#3662)
    • +
    • Upgrade Windows CI setup-msbuild GitHub action (#3477)
    • +
    • Usage of integer types & disabling sign conversion warnings (#3631)
    • +
    • Use C++ system headers (#3284)
    • +
    • Use GitHub actions cache for vcpkg (#3503)
    • +
    • Use GitHub runners for macOS builds (#3384)
    • +
    +
    +
    +Full PR list of other changes +
      +
    • Allow the PVS-Studio workflow run in forked PRs (#3493)
    • +
    • Build Windows package for the ARM64 platform (#3823)
    • +
    • Don’t execute compile workflows on documentation and script changes (#3393)
    • +
    • Fix division regression by resetting flag type (#3795)
    • +
    • Fix fs_utils_tests for macOS and enable test runs on macOS CI (#3622)
    • +
    • Fix msys2 compilation error with cdrom_win32.cpp (#3676)
    • +
    • Introduce unittests for the Value class (#3369)
    • +
    • Minor fix to x87 64-bit memcpy (#3866)
    • +
    • Remove hard-coded version string from MSVC CI (#3736)
    • +
    • Upgrade deprecated Node.js 16 GitHub actions to latest (#3457)
    • +
    • website: Add NixOS install instructions (#3479)
    • +
    +
    +

    Localisation

    +
      +
    • Update Dutch, Italian, Polish, Portugese, and Spanish translations.
    • +
    • Use uncompressed CPI code page files instead of the compressed + FreeDOS-specific CPX format. This improves code page switching + performance, which was rather slow with low cpu_cycles settings.
    • +
    • Ensure all platform-specific translatable strings are visible to the + translators.
    • +
    +
    +Full PR list of localisation-related changes +
      +
    • Avoid false positive warnings in translations (#3610)
    • +
    • Further refinements to the Italian (it) translation (#3880)
    • +
    • Improve italian (it) translation (#3877)
    • +
    • Translations differ between platforms (#3579)
    • +
    • Update Dutch (nl) translation (#3874)
    • +
    • Update Italian (it) translation (#3871)
    • +
    • Update Polish (pl) translation (#3870)
    • +
    • Update Polish (pl) translation, minor help string fix (#3850)
    • +
    • Update Polish (pl) translation, minor string fixes (#3684)
    • +
    • Update Portuguese Translation (#3609)
    • +
    • Update Spanish translation (#3624)
    • +
    • Update italian (it) translation (#3751)
    • +
    • Use uncompressed CPI files instead of compressed CPX ones (#3413)
    • +
    +
    +

    Contributors

    +

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

    +

    Contributors are listed in alphabetic order.

    +

    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.

    +

    0.82 commit authors

    +
    +
      +
    • altiereslima
    • +
    • Arcnor
    • +
    • bluddy
    • +
    • classilla
    • +
    • dreamer
    • +
    • farsil
    • +
    • FeralChild64
    • +
    • ftortoriello
    • +
    • Grounded0
    • +
    • interloper98
    • +
    • japsmits
    • +
    • johnnovak
    • +
    • Kappa971
    • +
    • kcgen
    • +
    • keenanweaver
    • +
    • kklobe
    • +
    • LowLevelMahn
    • +
    • MeAreJeenius
    • +
    • rderooy
    • +
    • Ringdingcoder
    • +
    • shermp
    • +
    • stackErr-NameNotResolved
    • +
    • strikersix23
    • +
    • Torinde
    • +
    • weirddan455
    • +
    +
    +

    0.82 sponsors

    +
    +
      +
    • Antti Peltola
    • +
    +
    +

    0.82 supporters

    +
    +
      +
    • Wengier Wu
    • +
    +
    +

    0.82 backers

    +
    +
      +
    • BenBudr
    • +
    • Burrito78
    • +
    • Diduz
    • +
    • Florent Wagner
    • +
    • Hannu Hartikainen
    • +
    • Hugo Lucorcio
    • +
    • Robin Mattheussen
    • +
    +
    +

    Thank you

    +

    We are grateful for all the community contributions and the original DOSBox +project, on which DOSBox Staging is based.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    + + + + + + + + + + \ No newline at end of file diff --git a/preview/dev/releases/windows/index.html b/preview/dev/releases/windows/index.html index 018f019..0bdbd32 100644 --- a/preview/dev/releases/windows/index.html +++ b/preview/dev/releases/windows/index.html @@ -473,13 +473,40 @@ -
  • + +
  • + + + 0.82.0 release candidate + + + +
  • + +
  • + + + Hardware requirements + + + +
  • + +
  • + + + Legacy Windows support + + + +