DOSBox
DOSBox is an emulator program which emulates an IBM PC compatible computer running a DOS operating system. Many IBM PC compatible graphics and sound cards are also emulated. This means that original DOS programs (including PC games) are provided with an environment in which they can run correctly, even though modern computers have dropped support for the old environment.
DOSBox 0.74 opening screen | |
Developer(s) | Peter "Qbix" Veenstra, Sjoerd "Harekiet" van der Berg, Tommy "fanskapet" Frössman, Ulf "Finster" Wohlers |
---|---|
Initial release | July 22, 2002[1][2] |
Stable release | 0.74-3 (June 26, 2019[3]) [±] |
Preview release | SVN r4336 (April 12, 2020[4][5][6]) [±] |
Written in | C++[7] |
Operating system | Windows, macOS, Linux, Android, Chrome OS (Gentoo Linux), AROS, AmigaOS 4, Amiga, BeOS, FreeBSD, OpenBSD, MorphOS, OS/2, RISC OS, Solaris 10, Wii (Homebrew Channel required) |
Available in | English (but supports alternate keyboard layouts) |
Type | Virtual machine, emulator |
License | GNU General Public License |
Website | www |
History
DOSBox is free software written primarily in C++ and distributed under the GNU General Public License. DOSBox has been downloaded more than 34 million times since its release on SourceForge in 2002.[8]
A number of usability enhancements have been added to DOSBox beyond the core function of emulating DOS. The added features include virtual hard drives, peer-to-peer networking, screen capture and screencasting from the emulated screen.
More than nine years have passed between 2010's 0.74 and the 2019's latest version 0.74-3, "a security release" made in the absence of version 0.75, which "should have been released by now, but some bugs took a lot longer than expected".[9] But throughout these years development has been ongoing in the SVN version. Forks such as DOSBox SVN Daum and DOSBox SVN-lfn provide additional features, which include support for save states and long filenames (LFN), while others such as DosBox-X add emulation for Japanese systems like the NEC PC-98 and increase compatibility with various Demoscene productions.[10]
A number of vintage DOS games have been commercially re-released to run on modern operating systems by encapsulating them inside DOSBox.
Features
DOSBox is a command-line program, configured either by a set of command-line arguments or by editing a plain text configuration file. For ease of use, several graphical front-ends have been developed by the user community.[11]
A popular feature of DOSBox is its ability to capture screenshots and record gameplay footage. The video is compressed using the lossless Zip Motion Block Video codec.[12] In its uncompressed state the footage is almost an exact replica of the actual program. The video recording feature was added in version 0.65. In earlier versions, one had to rely on custom modifications and a third-party screen recorder to record video, but the quality and emulator performance was generally very poor.[13]
The DOSBox project has a policy of not adding features that aren't used by DOS games if they take significant effort to implement, are likely to be a source of bugs or portability problems or impact performance. Perhaps the most common hardware feature of DOS-era PCs that the official version of DOSBox doesn't emulate is the parallel port that was used to connect printers. As an alternative, the PrintScreen function of modern OSs can be used to capture the output of DOSBox. For similar reasons, no support for long filenames and Ctrl-Break is added into official versions, though support for them is available in some unofficial enhanced SVN builds.
Hardware emulation
DOSBox is a full CPU emulator, capable of running DOS programs that require the CPU to be in real mode or protected mode.[14] Other similar programs, such as DOSEMU or VDMs for Windows and OS/2, provide compatibility layers and rely on virtualization capabilities of the 386 family processors. Since DOSBox can emulate its CPU by interpretation, the environment it emulates is completely independent of the host CPU.[14] On systems which provide the i386 instruction set, however, DOSBox can use dynamic instruction translation to accelerate execution several times faster than interpretive CPU emulation. The emulated CPU speed of DOSBox is also manually adjustable by the user to accommodate the speed of the systems for which DOS programs were originally written.[15]
DOSBox can emulate a wide range of graphics and sound hardware. Graphics emulation includes text mode, Hercules, CGA (including some composite modes and the 160x100x16 tweaked modes), Tandy, EGA, VGA (including Mode X and other tweaks), VESA, and full S3 Trio 64 emulation.[14] Sound hardware that can be emulated includes the PC speaker (played back through the host's standard sound output, not its physical internal PC speaker), AdLib, Gravis Ultrasound, Tandy, Creative Music System/GameBlaster, Sound Blaster 1.x/2.0/Pro/16, and Disney Sound Source. MIDI output through an emulated MPU-401 interface is available to use MIDI synthesizers available through the Windows operating system, such as an MT-32 connected to the PC. MT-32/CM-32L emulation is included in unofficial enhanced builds,[10] but not in the official source code repository due to need for copyrighted ROM images. Storage is handled by mapping (either through the configuration file or through a command within the emulator) a drive letter in the emulator to a directory, image file, floppy disk drive, or CDROM drive on the host. A permanently mapped Z: drive stores DOSBox commands and startup scripts.
Emulation of Voodoo cards is in development as of October 2010.[16] This should give not only support for games that use the Glide API, but also provide Direct3D support to Win9x guests.
DOSBox, unlike many other emulators, can simulate peer-to-peer or Internet/Intranet networking. This includes modem simulation over TCP/IP, allowing for DOS modem games to be played over modern LANs or the Internet, and IPX network tunneling, which allows for old IPX DOS multiplayer games to be played as UDP/IP over modern LANs or the Internet. Win32 and Linux specific builds support direct serial port access. Some third-party patches also allow DOSBox to emulate an NE2000-class network interface card as a passthrough to the host computer's own network card, essentially allowing full internet connectivity (for example, using Windows 3.1 and Trumpet Winsock) and web browsing using programs such as Netscape Navigator, although this is more of a curiosity than a useful feature.
DOSBox is capable of timing-compatible implementation of the serial ports, which can allow older hardware and software dependent on serial port timing to function; however, some USB devices that are supported by the host OS can act as a replacement for older serial port devices when using the emulator.
OS emulation
DOSBox provides a high level emulation of the DOS and BIOS interrupts, and contains its own internal DOS-like shell. This means that it can be used without owning a license to any real DOS operating system. Most commands that are typically used in installer batch files are supported, but many of the more advanced commands of later DOS versions (e.g. post-Windows 98 DOS shells) are not. In addition to its internal shell, it also supports running image files of games and software originally intended to start without any operating system. The DOS emulation enables DOSBox to mount folders of the host OS as virtual drives.
It can also boot disk images with real DOS environments (e.g. MS-DOS, PC DOS, DR-DOS or FreeDOS) as well as other operating systems. Since DOSBox is not optimized for this mode of operation, booting any real OS inside DOSBox entails the loss of the use of directory-based virtual hard drives and some other enhancements that aren't directly compatible with the way real operating systems access hardware. For the kinds of hardware (such as disk drive controllers and computer mice) that are almost always accessed by DOS-based games through DOS, the BIOS or a software driver rather than through direct access to hardware registers, DOSBox generally provides no hardware-level emulation. This means that the direct use of copy-protected physical media or of floppy disks in non-standard formats is generally not possible within DOSBox.
Ports
DOSBox uses the SDL library and has been ported to many operating systems. A port for Microsoft Xbox (called DosXbox) was released in 2004. Using the HX DOS Extender, it can even run in DOS.[19] The source code has also been forked to provide compatibility on a number of non-x86 PC computer platforms, including the Palm OS, PlayStation Portable, Android, iOS,[20] Symbian, Maemo, BlackBerry PlayBook, Wii(Require Homebrew Channel with Homebrew Browser installed), Amiga,[21] and the GP2X, on various computing architectures including PowerPC, SPARC, MIPS and ARM. DOSBox is included in the software repositories of many Linux distributions such as Fedora, Debian, and Ubuntu. There is also a port to Google Native Client called NaClBox,[22][23] a port to Java applets called jDosbox,[24] and a port of jDosBox to GWT (using the Canvas element) called jsDOSBox.[25]
There is a port of DOSBox that can run in a modern browser called Em-DOSBox. It uses Emscripten to compile its C/C++ source code to JavaScript or WebAssembly, and Emscripten's port of SDL 2 so graphics, input, and sound work in a browser.
DOSBox and the Wine compatibility layer
Starting with version 1.3.12, the developers of the Wine compatibility layer have begun the process of integrating DOSBox into Wine to facilitate running DOS programs that are not supported natively by the Wine Virtual DOS machine (winevdm).[26]
Usage
Commercial deployment
id Software has used DOSBox to re-release vintage games such as Wolfenstein 3D and Commander Keen on Valve's Steam. In the process, it was reported they violated the program's license, the GNU GPL; the breach, which was reported as an oversight, was promptly resolved.[27][28] Activision Blizzard has also used it to re-release Sierra Entertainment's DOS games. LucasArts used it to re-release Star Wars: Dark Forces for modern machines on Steam. 2K Games producer Jason Bergman stated the company used DOSBox for Steam re-releases of certain parts of the X-Com series.[29] GOG.com uses DOSBox for some of their DOS releases.[30] Bethesda Softworks recommends DOSBox and provides a link to the DOSBox website on the downloads page for The Elder Scrolls: Arena and The Elder Scrolls II: Daggerfall.[31][32] Bethesda also included DOSBox with both games in The Elder Scrolls Anthology release. 3D Realms also recommends DOSBox and, like Bethesda Softworks, provides a link to the DOSBox website on their downloads page.[33]
Electronic Arts uses DOSBox for some of their classic games on their Origin client like Wing Commander III, Crusader: No Remorse, and SimCity 2000.
dBase LLC utilizes DOSBox in their dbDOS product since 2012.
Non-commercial notable uses
As of 23 December 2014, the Internet Archive hosts thousands of PC games that can be played in a browser, using the Em-DOSBox port.[34][35][36] The collection is provided for "scholarship and research purposes only".[37]
See also
Similar software
- Rpix86 - A DOS emulator for the Raspberry Pi.
- DOSEMU
- Virtual DOS machine
- vDOS[38] - A DOS emulator designed for the running the more "serious" DOS apps (not games) on 64-bit NT systems (effectively a replacement for NTVDM on modern systems).
- Comparison of platform virtualization software
Misc.
- Category:Games commercially released with DOSBox
- Legacy mode
- List of DOS games
- Category:DOS games
References
- "Project of the Month, May 2009". SourceForge. Archived from the original on November 17, 2009. Retrieved January 17, 2013.
- "Project of the Month, January 2013". SourceForge. Archived from the original on February 22, 2013. Retrieved January 17, 2013.
- https://sourceforge.net/projects/dosbox/files/dosbox/0.74-3/ SourceForge Binaries Available (Release Version)
- "SVN changelog (DOSBox Home web)".
- "DOSBox Wiki - SVN Builds Info". Dosbox.com.
- "EmuCR Compiled Binaries - DOSBox official & unofficial builds".
- "p/dosbox/code-0 - Revision 4006: /dosbox/trunk". SourceForge. Retrieved February 9, 2017.
- "Download Statistics". Retrieved August 8, 2017.
- "DOSBox 0.74-3 has been released!". "DOSBox". June 26, 2019. Retrieved July 3, 2019.
- "SVN Builds". DOSBox. December 1, 2012. Retrieved January 8, 2012.
- "DOSBox Frontends". DOSBox. December 15, 2008. Retrieved January 3, 2009.
- "DosBox Capture Codec". March 9, 2008. Retrieved January 3, 2009.
- bakkelun (March 7, 2008). "Recording video from DosBox". Archived from the original on December 11, 2008. Retrieved January 3, 2009.
- Qbix (April 30, 2008). "Interview with Qbix" (Interview). Interviewed by Classic Dos Games. Archived from the original on February 1, 2020. Retrieved January 3, 2009.
- Hoffman, Chris (October 5, 2015). "How To Use DOSBox To Run DOS Games and Old Apps". How-To Geek. Retrieved February 9, 2017.
- http://kingofgng.com/eng/2010/10/20/3dfx-voodoo-graphic-cards-emulation-coming-to-dosbox/
- https://www.dosbox.com/DOSBoxManual.html
- Commands - DOSBoxWiki
- japheth (July 25, 2013). "HX DOS Extender". Archived from the original on October 13, 2014. Retrieved December 30, 2013.
- FAST Intelligence. "DOSpad, DOSBox for iOS". Retrieved February 5, 2013.
- NovaCoder. "DOSBoxRTG, DOSBox for Amiga". Retrieved January 9, 2020.
- NaClBox. "NaClBox homepage". Retrieved February 5, 2013.
- Endagdet (May 12, 2011). "NaClBox brings DOS-based gaming to Chrome along with sweet, sweet nostalgia". Retrieved February 5, 2013.
- danoon2 and co. "jDosBox homepage". Archived from the original on April 18, 2014. Retrieved May 7, 2013.
- Kevin O'Dwyer. "jsDOSBox homepage".
- "Wine 1.3.12 Brings Initial DOSBox Integration". January 21, 2011. Retrieved August 26, 2011.
- "Are id Software and Valve Thieves?". Softpedia. August 6, 2007. Retrieved January 3, 2009.
- Purchese, Rob (August 7, 2007). "id sorts GPL Steam issue". Eurogamer. Retrieved January 3, 2009.
- Bergman, Jason (September 4, 2008). "Comments-morning discussion". Shacknews. Retrieved January 3, 2009.
- "Our Thanks". GOG.com. Retrieved January 3, 2009.
- "The Elder Scrolls Official Site - The Elder Scrolls: Arena". Bethesda Softworks. Retrieved March 3, 2011.
- "The Elder Scrolls Official Site - The Elder Scrolls: Daggerfall". Bethesda Softworks. Retrieved March 3, 2011.
- "3D Realms Site: Master Download Page". 3D Realms. Retrieved November 5, 2009.
- Ohlheiser, Abby (January 5, 2015). "You can now play nearly 2,400 MS-DOS video games in your browser". Washington Post. Retrieved January 8, 2015.
- Each New Boot a Miracle by Jason Scott (December 23, 2014)
- collection:softwarelibrary_msdos in the Internet Archive (2014-12-29)
- "Internet Archive's Terms of Use, Privacy Policy, and Copyright Policy". archive.org. December 31, 2014. Retrieved January 8, 2015.
Access to the Archive’s Collections is provided at no cost to you and is granted for scholarship and research purposes only.
- "vDos".
External links
Wikimedia Commons has media related to DOSBox. |
- Official website
- "Official DOSBox forum". Very Old Games On New Systems (VOGONS). Archived from the original on February 1, 2020. Retrieved September 19, 2016.
- "Interview with Qbix (a developer of DOSBox)". Classic DOS Games. April 30, 2008. Archived from the original on February 1, 2020. Retrieved September 19, 2016.
- "DOSBox 0.73, interview with the developers". King of Ghouls and Ghosts (GNG). June 10, 2009.
- "DOSBox SVN variants that do support printing". Unofficial variants downloader. Archived from the original on June 7, 2020. Retrieved April 11, 2019.