0.76.0 Release Notes

Installation instructions:

Table of Contents

1. Summary

This release introduces significant enhancements to the quality of audio emulation (GUS, built-in MIDI, PC speaker), improved support for PowerPC and POWER8 architectures, and a healthy mix of usability, documentation, code quality improvements.

Enjoy! :)

2. New Features in Detail

2.1. Gravis UltraSound emulation improvements

Using headphones is highly recommended!

GUS emulatorSample (FLAC)
Old implementation
New implementation (with improvements)

Sample from Rise of the Triad (1995). For other comparisons see: link

Several changes have been made to the GUS emulation resulting in (sometimes) audible differences, as follows:

We recommend using GUS emulation for the handful of DOS games that natively support the GUS's multi-voice feature. For a list of these games, see: GUS Native games.

For more details about DOSBox Staging's GUS support and enhancements, see: GUS Enhancements.

For information about constant-power panning, see pages 7 and 8: BBC R&D White Paper.

2.2. Add new built-in GLSL shaders

Two high-quality shaders that emulate the visual look of an analog CRT monitor are now included:

Jazz Jackrabbit

Jazz Jackrabbit (Holiday Hare 1995 Edition) - showcasing crt-fakelottes-flat.

2.3. Add Built-in MIDI support via FluidSynth

We've integrated FluidSynth 2.x, a powerful and accurate MIDI synthesizer, to directly support MIDI playback. This means you no longer need to use an external MIDI synthesizer (but it's still possible, of course).

Configure your game to use General MIDI (GM) output on port 330 and update your DOSBOX Staging config as follows to start using it:

[midi]
mididevice = fluidsynth
mpu401     = intelligent

[fluidsynth]
soundfont = my-favourite-soundfont.sf2

Emulator will look for a soundfont file in "soundfonts" directory within your configuration directory and additionally in platform-specific directories (e.g. /usr/share/soundfonts/ on Linux).

User can also use absolute path to a soundfont or path relative to current working directory (for bundling .sf2 files in game directories).

Fine-grained MIDI Level Controls

Some SoundFonts can be "louder" than others, such as Timbres of Heaven. You can provide an optional volume-scalar percentage after the SF2 filename, such as:

soundfont = timbres_of_heaven.sf2 20

This will reduce the SoundFont's volume to 20%.

Most games that play MIDI music provide an in-game volume adjustment, however, some games may not save your settings while others may not even allow this adjustment. For these games, use the mixer FSYNTH command to set your desired MIDI output volume either in your startup batch file or the [autoexec] section in the game's config file, e.g.:

C:\>mixer FSYNTH 33
"What soundfont should I use?"

This is very much a matter of personal opinion. We compiled a list with some good choices for DOS gaming on our wiki.

Linux users: if you have fluid-soundfont installed on your OS, it will be picked automatically as default.

2.4. Add integer scaling (pixel-perfect) option for OpenGL output

Integer scaling (AKA "Pixel Perfect mode) is now also available via OpenGL.

You can test integer scaling by changing output option:

These two options behave pretty much the same, except Linux users can enjoy resizable window with output = openglpp.

Examples running fullscreen on 1080p display:

The Lost Vikings

The Lost Vikings (1993) with integer scaling.

Epic Pinball

Epic Pinball (1993) with integer scaling.

Tip: integer scaling works best for games that use square pixels; most DOS games use non-square pixels (often using resolution 320x200 / PAR 5:6) - for those titles sharp‑bilinear scaling (DOSBox Staging default setting) works better.

This video essay by Displaced Gamers provides a great explanation: DOS Gaming Aspect Ratio - 320x200

output=openglpp option with windowresolution=resizable is also a good choice for using DOS applications in text mode as it produces sharp text (but sacrifices proper DOS font aspect ratio):

Turbo Pascal used in window mode

2.5. Dynamic recompilation for PowerPC and POWER8 (ppc64le)

Roughly two years ago jmarsh of the vogons.org forums published a feature-complete dynamic recompilation patch supporting the PowerPC (32-bit) architecture. This was quickly expanded by the community to support the POWER8 (64-bit) architecture as well. Both patches (with slight improvements) were merged to DOSBox Staging.

Shoutout to AmigaOS community for help with thoroughly testing this significant PowerPC contribution! :)

2.6. Quick-edit and find your configuration file

It can be cumbersome to edit and find your default dosbox-staging.conf file. You might not know where it's located or it might be hidden away due to certain OS settings.

These two command-line options can help:

2.7. Add LS command

The ls (list directory contents) command is widely available across Unix-based operating systems. Most users of modern OSes are likely to have it in their muscle memory rather than DOS's dir command.

This is a very simple implementation resembling the default operation of GNU ls:

example: dir /w /p Above: Windows 3.11 listed using dir /w /p - not enough space to show all files, hard to distinguish between files and directories.

Below: The same directory listed using ls - more efficient utilization of space in 80x25 DOS text mode, easier to read. example: ls

2.8. Rapid DC-offset correction for the emulated PC speaker

Audio speakers work by pushing and pulling their diaphragm at a rate equal to the audio's frequency.

Physical PC speakers can sometimes be left in a pushed-out or pulled-in state through constant voltage, called DC-offset, which typically isn't a problem on real hardware. However in DOSBox, the PC Speaker's offset samples mix with those from other audio sources such as the Sound Blaster or Adlib, which can:

This new configuration option, zero_offset under the [speaker] section, defaults to 'auto'. It's enabled for non-Windows systems and disabled on Windows as some of its audio drivers appear to attempt their own DC offset correction.

example: offset correction

Above: the game has left the PC speaker in an offset position, which is detected and silently "wound down" in a fraction of a second.

For more details about this change, see: #480

For a discussion about Windows 10 performing DC-offset correction, see: #625

2.9. Audio pop and click prevention

Some games generate audio pops or clicks during startup. We've added two changes to reduce these occurences:

2.10. Splash screen and help banner verbosity control

The splash screen and its delay, as well as the blue help banner, can now be skipped using the startup_verbosity setting in the [dosbox] section in the conf file. The verbosity can be set as follows:

By default, the verbosity is set to auto, which is either low when an executable or directory is passed on the command-line or high when DOSBox Staging is started without initial commands.

For a visual depiction of the options, see: #477

2.11. Revise help messages for mount and imgmount commands

These commands are usually thoroughly documented in the manual, but having usage examples at your fingertips is more convenient. Help can be invoked by passing one of the following parameters: /? (DOS style), or -h, --help (GNU style).

example: mount help

Revised help messages provide usage examples, common parameter description, and use a limited set of colours to improve readability.

Read more in: #729

2.12. Improve Telnet-mode handling for Modem emulation

For those hosting a BBS behind a Telnet interface, you can now pre-configure your serial port in Telnet-mode with the telnet:1 argument, as follows:

[serial]
serial1 = modem telnet:1 listenport:2323

For those dialling BBSs hosted behind a Telnet interface, use the following dial-prefix: AT+NET1DT. In general, the +NET1 or +NET0 AT-command will enable or disable Telnet-mode, respectively.

This change brings Telnet-mode in-line with the Hayes multi-character command specification, which should be compatible with existing BBS software.

example: large-modem-transfer

Above: When telnet-mode is set according to the remote BBS's needs, you will experience fast and corruption-free transfers.

For more background about this change, see: #582

2.13. Fix setting file timestamp

DOS function 5701h "Set File Time/Date" was implemented.

This corrects a long-standing emulation issue when it comes to date handling of files created in DOS (e.g. when files are being unpacked from an archive). This fixes some game installers and other software that checks file modification times.

2.14. Case-insensitive paths handling

Paths passed to commands mount, imgmount, and audio track paths in .cue and .ins files are now treated as case-insensitive, regardless of the operating system.

Fixes numerous issues with running DOS games on Linux or FreeBSD. This change alone corrects the vast majority of Windows-only DOS game releases on GOG or Steam (such as e.g. Settlers II, Redneck Rampage, or Mortal Kombat series) - users no longer need to manually adjust the paths after unpacking games from Windows installer. This should significantly improve the quality of Lutris installers as well.

2.15. Revise default keyboard shortcuts

The default keyboard shortcuts were revised to avoid triggering conflicting OS default shortcuts. We've only changed those that that were not typically used by general users.

The list of new default shortcuts are:

Keymapper received tiny usability improvements as well: it displays the keyboard shortcut (binding) for the selected action.

2.16. Monochrome palette colour setting

When emulating monochrome displays (Hercules or CGA/monochrome), the default colour palette can now be selected in the configuration file.

This feature was backported to 0.75.2 release; read more.

2.17. The raw mouse input setting

User can now bypass the operating system's mouse acceleration and sensitivity settings. This works in fullscreen or when the mouse is captured in window mode.

This feature was backported to 0.75.2 release; read more.

2.18. 10-axis controller support

Old joysticks compatible with DOS games can be emulated using modern 10-axis controllers (like DualShock or Xbox controllers).

This feature was backported to 0.75.1 release; read more.

2.19. Log memory base address

The base memory address of DOS's emulated memory region is now logged to the console to help some users of external software, such as 'Cheat Engine'.

This feature was backported to 0.75.1 release; read more.

3. Bugfixes

Some notable bugfixes:

4. Known issues

5. Removed features

6. Notes for Developers

warnings graph

When the project started we inherited 1411 warnings from DOSBox; as of November 2020 the builds are finally clean, so it's easier to make sure we do not introduce new warnings :).

7. Changes merged from upstream projects

8. Contributors

During DOSBox Staging 0.76 development period we merged 1035 commits, including 55 commits originating from the DOSBox project.

DOSBox Staging Maintainers:

Patryk Obara, kcgen, nemo93

DOSBox Staging Contributors:

Affonso Amendola, Bernard Cafarelli, cfoesch, ClassicHasClass, David Heidelberg, drfiemost, Edward Betts, Erlotinib, Expack3, Feignint, Jonathan Campbell, MasterO2, NicknineTheEagle, Nikos Chantziaras, Robert de Rooy, Troy Campbell, Tyrell Sassen, Vladimir Serbinenko, Wengier

DOSBox Contributors (SVN r4336:r4392):

Harekiet, jmarsh, Jonathan Campbell, NewRisingSun, Qbix, ripsaw8080

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

Creative Commons License Creative Commons License Creative Commons License
Content on this site is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.
DOSBox Staging is licensed under a GNU GPL version 2 or later.