1
0
Fork 0
No description
Find a file
2019-12-01 18:26:01 +01:00
.github Update allowed warnings limits 2019-11-29 06:27:14 +01:00
contrib Contribute a static-opus builder 2019-11-28 09:41:43 +01:00
docs Merge branch 'svn/trunk' 2019-10-03 23:44:48 +02:00
include Break compilation to test GitHub badges 2019-12-01 18:09:00 +01:00
scripts Use make's output-sync to prevent log corruption 2019-11-26 04:48:16 +01:00
src Remove unused private field in device_EMM 2019-11-29 06:27:14 +01:00
visualc_net Remove conversion sources from the VisualStudio project 2019-11-12 08:17:09 +01:00
.gitignore Refactor the build and list-packages scripts 2019-11-24 15:16:44 +01:00
.pylint Allow maximum-issues to be set via command-line 2019-11-24 15:16:44 +01:00
acinclude.m4 Refinements of commit 4291, so that precission can be specified as well and less fixed defines are used 2019-11-19 16:16:06 +00:00
AUTHORS Update authors 2010-04-20 12:51:03 +00:00
autogen.sh Allow less beautiful version numbers. 2007-02-04 10:46:34 +00:00
ChangeLog <erge 0.74-2 documentation changes into trunk 2018-08-31 17:43:09 +00:00
configure.ac Play into subsequent track(s) if playback length exceeds the the current track 2019-11-24 17:34:54 +01:00
COPYING Update year and address of FSF 2019-01-25 14:09:58 +00:00
INSTALL Document the project in README.md 2019-11-28 13:38:12 +01:00
Makefile.am Simplify package listing script and standardize workflows 2019-11-02 07:36:49 -07:00
NEWS <erge 0.74-2 documentation changes into trunk 2018-08-31 17:43:09 +00:00
README <erge 0.74-2 documentation changes into trunk 2018-08-31 17:43:09 +00:00
README.md Test badges sans links 2019-12-01 18:26:01 +01:00
THANKS Updated 2010-05-09 11:07:51 +00:00
VERSION <erge 0.74-2 documentation changes into trunk 2018-08-31 17:43:09 +00:00

dosbox-staging

![](https://img.shields.io/github/workflow/status/dreamer/dosbox-staging/Linux builds?label=Linux%20builds) ![](https://img.shields.io/github/workflow/status/dreamer/dosbox-staging/Windows builds?label=Windows%20builds) ![](https://img.shields.io/github/workflow/status/dreamer/dosbox-staging/macOS builds?label=macOS%20builds)

This repository attempts to modernize the DOSBox project by using current development practices and tools, fixing issues, adding features that better support today's systems, and sending patches upstream. Read more at Vogons thread.

Summary of differences compared to upstream:

dosbox-staging DOSBox
Version control Git SVN
Language C++11 C++031
CI Yes No
Static analysis Yes2,3 No
Dynamic analysis Yes No
Automated regression tests No (planned)4 No
SDL 1.2 (2.0 WIP)5 1.2

Codecs supported for CD Digital Audio emulation (loading CD music via cue sheets):

dosbox-staging DOSBox
Opus Yes (libopus) No
OGG/Vorbis Yes (built-in) Yes - SDL_sound 1.2 (libvorbis)6,
MP3 Yes (built-in) Yes - SDL_sound 1.2 (libmpg123)6,
FLAC Yes (built-in) No§
WAV Yes (built-in) Yes - SDL_sound 1.2 (internal)7,
AIFF No Yes - SDL_sound 1.2 (internal)7,

- SDL 1.2 is not actively maintained any more.
† - 22.05 kHz, 44.1 kHz, 48 kHz; mono, stereo
‡ - 44.1 kHz stereo only
§ - SDL_sound supports it, but the feature might be broken or DOSBox does not indicate support.

Build instructions

Linux, macOS, MSYS2, MinGW, other OSes

Read INSTALL file for a general summary about dependencies and configure options. Read build.md for the comprehensive compilation guide.

$ git clone https://github.com/dreamer/dosbox-staging.git
$ cd dosbox-staging
$ ./autogen.sh
$ ./configure
$ make

You can also use a helper script ./scripts/build.sh, that performs builds for many useful scenarios (LTO, FDO, sanitizer builds, many others).

Visual Studio (2019 or newer)

First, you need to setup vcpkg to install build dependencies. Once vcpkg is installed and bootstrapped, open PowerShell, and run:

PS> .\vcpkg integrate install
PS> .\vcpkg install libpng sdl1 sdl1-net opusfile

These two steps will ensure that MSVC finds and links all dependencies.

Start Visual Studio, open file: visualc_net\dosbox.sln and build all projects (Ctrl+Shift+B).

Interop with SVN

This repository is (deliberately) NOT git-svn compatible, this is a pure Git repo.

Commits landing in SVN upstream are imported to this repo in a timely manner, to the branches matching svn/* pattern, e.g. svn/trunk. You can safely use those branches to rebase your changes, and prepare patches using Git format-patch for sending upstream (it is easier and faster, than preparing patches manually).

Git tags matching pattern svn/* are pointing to the commits referenced by SVN "tag" paths at the time of creation.

Additionally, we attach some optional metadata to the commits imported from SVN in the form of Git notes. To fetch them, run:

$ git fetch origin "refs/notes/*:refs/notes/*"