All Projects → dosbox-staging → Dosbox Staging

dosbox-staging / Dosbox Staging

Licence: gpl-2.0
DOS/x86 emulator focusing on ease of use

Projects that are alternatives of or similar to Dosbox Staging

Pcjs
The original IBM PC and other machine emulations in JavaScript
Stars: ✭ 171 (-58.5%)
Mutual labels:  x86, dos, emulator
pac-man-emulator
🕹 An emulator for the Pac-Man arcade machine (Zilog Z80 CPU) for Win/Mac/*nix and Xbox One.
Stars: ✭ 20 (-95.15%)
Mutual labels:  emulator, sdl2
qemu-android-x86-runner
Quick Start on How to Run Android x86 in QEMU
Stars: ✭ 102 (-75.24%)
Mutual labels:  emulator, x86
emu
cybozu labs youth 7th
Stars: ✭ 50 (-87.86%)
Mutual labels:  emulator, x86
mamesaver
Mamesaver is a mame emulated screensaver - get all the good ol' games playing their demo modes while you procrastinate and enjoy!
Stars: ✭ 26 (-93.69%)
Mutual labels:  emulator, games
x86e
A simple x86 emulator, debugger, and editor in JavaScript.
Stars: ✭ 89 (-78.4%)
Mutual labels:  emulator, x86
ts-c99-compiler
ANSI C 16bit Compiler + NASM Assembler + Intel 8086 / 80186 + X87 emulator written entirely in TypeScript
Stars: ✭ 78 (-81.07%)
Mutual labels:  emulator, x86
FutureDOS
A futuristic DOS
Stars: ✭ 46 (-88.83%)
Mutual labels:  dos, x86
speljongen
gameboy emulator written in c++
Stars: ✭ 15 (-96.36%)
Mutual labels:  emulator, sdl2
blues
Blues Brothers, Jukebox Adventure & Prehistorik 2 engine reimplementation (SDL2)
Stars: ✭ 28 (-93.2%)
Mutual labels:  games, sdl2
PokemonBattleEngine
A C# library that can emulate Pokémon battles.
Stars: ✭ 92 (-77.67%)
Mutual labels:  emulator, games
another js
Another World/Out of This World (HTML5)
Stars: ✭ 46 (-88.83%)
Mutual labels:  games, dos
mach.d
Library for the D programming language.
Stars: ✭ 27 (-93.45%)
Mutual labels:  games, sdl2
IBMulator
The IBM PS/1 emulator.
Stars: ✭ 62 (-84.95%)
Mutual labels:  emulator, x86
dflat20
D-Flat Windowing System (SAA/CUA Interface) Version 20
Stars: ✭ 42 (-89.81%)
Mutual labels:  dos, x86
gameboyGO
Gameboy emulator in go
Stars: ✭ 24 (-94.17%)
Mutual labels:  emulator, sdl2
Anese
Another NES Emulator - written for fun & learning - first implementation of wideNES
Stars: ✭ 323 (-21.6%)
Mutual labels:  sdl2, emulator
shiromino
A fast-paced puzzle game with roots in the arcade.
Stars: ✭ 28 (-93.2%)
Mutual labels:  games, sdl2
third
Third, a small Forth compiler for 8086 DOS
Stars: ✭ 67 (-83.74%)
Mutual labels:  dos, x86
FEX
A fast usermode x86 and x86-64 emulator for Arm64
Stars: ✭ 650 (+57.77%)
Mutual labels:  emulator, x86

DOSBox Staging

GPL-2.0-or-later Chat

This repository attempts to modernize the DOSBox codebase by using current development practices and tools, fixing issues, and adding features that better support today's systems.

Build status

Linux x86_64 build status Linux other build status Windows build status macOS build status

Code quality status

Coverity status LGTM grade

Summary of differences compared to upstream

For developers

DOSBox Staging DOSBox
Version control Git SVN
Language C++14 C++031
SDL >= 2.0.2 1.2
Buildsystem Meson or Visual Studio 2019 Autotools or Visual Studio 2003
CI Yes No
Static analysis Yes2,3,4 No
Dynamic analysis Yes No
clang-format Yes No
Development builds Yes No
Unit tests Yes5 No
Automated regression tests WIP No

Feature differences

DOSBox Staging does not support audio playback using physical CDs. Using CD Digital Audio emulation (loading CD music via cue sheets or mounting ISO images) is preferred instead.

Codecs supported for CD-DA emulation:

DOSBox Staging DOSBox SVN
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 (built-in)7,*
AIFF No Yes - SDL_sound 1.2 (built-in)7,*

*- SDL 1.2 was last updated 2013-08-17 and SDL_sound 2008-04-20
† - 8/16/24 bit-depth, 22.05/44.1/48 kHz, and mono or stereo
‡ - 44.1 kHz stereo only
§ - Broken or unsupported in either SDL_sound or DOSBox

Other differences:

DOSBox Staging DOSBox SVN
Pixel-perfect mode Yes (output=openglpp or output=texturepp) N/A
Resizable window Experimental (windowresolution=resizable) N/A
Relative window size N/A windowresolution=X%
OPL emulators compat, fast, mame, nuked8 compat, fast, mame
CGA/mono support Yes (machine=cga_mono)9 Only CGA with colour
Wayland support Experimental (use SDL_VIDEODRIVER=wayland) N/A
Modem phonebook file Yes (phonebookfile=<name>) N/A
Autotype command Yes10 N/A
Startup verbosity Yes11 N/A
GUS enhancements Yes12 N/A
Raw mouse input Yes (raw_mouse_input=true) N/A
FluidSynth MIDI Yes13 (FluidSynth 2.x) Only external synths
MT-32 emulator Yes (libmt32emu 2.4.2) N/A

*- Requires original ROM files

Stable release builds

Linux, Windows, macOS

Test builds / development snapshots

Links to the newest builds

Build instructions

Read BUILD.md for the comprehensive compilation guide.

Linux, macOS

Install build dependencies appropriate for your OS:

# Fedora
sudo dnf install ccache gcc-c++ meson alsa-lib-devel libpng-devel \
                 SDL2-devel SDL2_net-devel opusfile-devel fluidsynth-devel
# Debian, Ubuntu
sudo apt install ccache build-essential meson libasound2-dev libpng-dev \
                 libsdl2-dev libsdl2-net-dev libopusfile-dev libfluidsynth-dev
# Arch, Manjaro
sudo pacman -S ccache gcc meson alsa-lib libpng sdl2 sdl2_net opusfile \
               fluidsynth
# openSUSE
sudo zypper install ccache gcc gcc-c++ meson alsa-devel libpng-devel \
                    libSDL2-devel libSDL2_net-devel opusfile-devel \
                    fluidsynth-devel libmt32emu-devel
# macOS
xcode-select --install
brew install ccache meson libpng sdl2 sdl2_net opusfile fluid-synth

Instructions for creating an optimised release build:

git clone https://github.com/dosbox-staging/dosbox-staging.git
cd dosbox-staging
meson setup -Dbuildtype=release build
ninja -C build
./build/dosbox

Windows - Visual Studio (2019 or newer)

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

PS:\> .\vcpkg integrate install
PS:\> .\vcpkg install --triplet x64-windows libpng sdl2 sdl2-net opusfile fluidsynth

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

Start Visual Studio and open file: vs\dosbox.sln. Make sure you have x64 selected as the solution platform. Use Ctrl+Shift+B to build all projects.

Windows (MSYS2), macOS (MacPorts), Haiku, others

Instructions for other build systems and operating systems are documented in BUILD.md. Links to OS-specific instructions: MSYS2, MacPorts, Haiku.

Imported branches, community patches, old forks

Commits landing in SVN upstream are imported to this repo in a timely manner, see branch svn/trunk.

  • svn/* - branches from SVN
  • forks/* - code for various abandoned DOSBox forks
  • vogons/* - community patches posted on the Vogons forum

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 in the form of Git notes. To fetch them, run:

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

For some historical context of why this repo exists you can read Vogons thread, (1, 2)

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].