DOSBox

From Wikipedia, the free encyclopedia - View original article

DOSBox
DOSBox icon.png
DOSBox screenshot.png
DOSBox 0.74 running on Windows Vista
Original author(s)Peter Veenstra, Sjoerd van der Berg, wd, h-a-l-9000
Developer(s)DOSBox Team
Initial releaseJuly 22, 2002; 12 years ago (2002-07-22)[1][2]
Stable release0.74 (May 12, 2010; 4 years ago (2010-05-12) [3]) [±]
Preview releaseSVN r3871 (October 15, 2014; 13 days ago (2014-10-15) [4][5][6]) [±]
Written inC, C++
Operating systemAROS, AmigaOS 4, Amiga, Android, BeOS, FreeBSD, GNU/Linux, Mac OS X, MorphOS, OS/2, RISC OS, Solaris 10, Windows
Available inEnglish (but supports alternate keyboards)
TypeEmulator
LicenseGNU General Public License
Websitewww.dosbox.com
 
Jump to: navigation, search
DOSBox
DOSBox icon.png
DOSBox screenshot.png
DOSBox 0.74 running on Windows Vista
Original author(s)Peter Veenstra, Sjoerd van der Berg, wd, h-a-l-9000
Developer(s)DOSBox Team
Initial releaseJuly 22, 2002; 12 years ago (2002-07-22)[1][2]
Stable release0.74 (May 12, 2010; 4 years ago (2010-05-12) [3]) [±]
Preview releaseSVN r3871 (October 15, 2014; 13 days ago (2014-10-15) [4][5][6]) [±]
Written inC, C++
Operating systemAROS, AmigaOS 4, Amiga, Android, BeOS, FreeBSD, GNU/Linux, Mac OS X, MorphOS, OS/2, RISC OS, Solaris 10, Windows
Available inEnglish (but supports alternate keyboards)
TypeEmulator
LicenseGNU General Public License
Websitewww.dosbox.com

DOSBox is emulator software that emulates (loosely: "simulates") an IBM PC compatible computer running the older operating system, MS-DOS. Many IBM PC compatible graphics and sound cards are also emulated. This means that original MS-DOS programs are provided an environment in which they can run correctly on many modern computers running a variety of operating systems. DOSBox is especially intended for use with old PC games. DOSBox is free software written primarily in C++ and distributed under the GNU General Public License.

DOSBox can run old MS-DOS software on modern computers which would not work otherwise, because of incompatibilities between the older software and modern hardware and operating systems.

A number of usability enhancements have been added to DOSBox beyond emulating MS-DOS. The added features include virtual hard drives, peer-to-peer networking, still image capture and video capture from the emulated screen.

Some unofficial variations on DOSBox such as SVN Daum and DOSBox-X provide additional features, which may include for example support for save states and long filenames (LFN), among others.[7] A number of vintage DOS games have been re-released by current video game development companies to run on modern computers by using DOSBox in the release.

Features[edit]

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.[8]

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.[9] 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.[10]

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, and/or impact performance. Probably 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 most printers, since very few games can make use of a printer, though users can just PrintScreen output of DOSBox, and print a page of it using normal image software on Windows or other operating systems (some DOS-type business applications like VP-Info that run on DOSBox can switch printer output to a text file which can be printed from Windows). For similar reasons, support for long filenames (LFN) and Ctrl-Break are also not added into the official versions, though LFN support is available in some unofficial enhanced SVN builds.

Hardware emulation[edit]

DOSBox is a full CPU emulator, capable of running DOS programs that require the CPU to be in either real mode or protected mode.[11] 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, it is independent of its host CPU.[11] However, on systems which provide the i386 instruction set, DOSBox can use dynamic instruction translation, which results in execution several times faster than interpretive CPU emulation.


DOSBox is capable of emulating many types 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.[11] 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 if the host is equipped with a physical MIDI-Out connector or a suitable software MIDI synthesizer. (MT-32/CM-32L emulation is included in unofficial enhanced builds,[7] 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. This should give not only support for games that use the Glide API, but also provide Direct3D support to Win9x guests.

A component that differentiates DOSBox from other emulators is its ability to 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. Certain 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, albeit with little real world utility other than as a curiosity.

DOSBox is capable of timing-compatible implementation of the serial ports, and can run older hardware and software dependent on such; 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[edit]

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 MS-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 (MS-DOS, PC DOS, DR-DOS, FreeDOS, etc.) as well as other operating systems, including CP/M-86, Windows 3.1, and Windows 95. 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 and/or through the BIOS and/or through 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 from DOSBox.

Configuration[edit]

The DOSBox installer under Windows creates shorthand links to launch DOSBox options, console mode, noconsole mode, recordings, and keyboard mappings. DOSBox can automatically handle most host keyboard and mouse events, and also offers to define special mappings, e.g., Ctrl-Alt-Del or the Ctrl-F10 "host key" to release a mouse captured in the guest VDM cannot be used directly in the guest. Another example is to emulate a QWERTY-layout in the guest with a QWERTZ-keyboard in the host, or vice versa, if the DOSBox default for the host does not work in an old application.

Under Windows the DOSBox console window shows stdout and stderr text messages for a running guest VDM. The DOSBox noconsole shorthand link uses command line option -noconsole to disable this console window, redirecting any console messages to host files stdout and stderr.[12]

The options shorthand link allows to edit the (per user) DOSBox configuration, an ordinary text file with sections for the emulated machine, video, sound, and so on. The [autoexec] section is executed as AUTOEXEC.BAT after showing the DOSBox intro message. The [autoexec] section could CLS the intro message, query or set the emulated VER (default: 5.00 as in Windows NT 5.x VDMs), MOUNT folders or devices as DOS drives (e.g., mount a a:\ -t floppy), IMGMOUNT an ISO image, switch the current drive from DOSBox Z: to a mounted C:, set the PATH, etc. Special DOSBox commands allow to manipulate configuration options within a guest VDM, there is no corresponding virtual CONFIG.SYS file.

The optional first argument of DOSBox in a shorthand link or on the command line can give a host directory or file. This has the same effect as explicitly mounting the host folder as drive C: in the guest VDM, switch to this drive, and start the DOS-executable file. Command line option -exit can automatically terminate DOSBox after this executable file. Command line options -c something or -c "make it so" can specify commands run before this executable file, e.g., set environment variables.

This approach covers many common scenarios without editing configuration files, and it allows to share one DOSBox configuration file with several DOS applications. For applications supporting their own command line arguments such as DEBUG a DOSbox command line option -c "c:\debug arguments" can be used.

Command line option -securemode disables the [autoexec] section in the configuration, and does not offer to MOUNT host folders within the guest VDM.[12]

Ports[edit]

DOSBox uses the SDL library and has been ported to many operating systems including AmigaOS, Microsoft Windows, Mac OS X v10.3 or later (for example, Boxer),[13] Linux, KolibriOS, eComStation, RISC OS, BeOS, FreeBSD and others. A port for Microsoft Xbox (called DosXbox) was released in 2004. Using the HX DOS Extender, it can even run in DOS.[14] 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,[15] Symbian, Maemo, BlackBerry PlayBook, Wii, 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,[16][17] a port to Java applets called jDosbox,[18] and a port of jDosBox to GWT (using the Canvas element) called jsDOSBox.[19]

DOSBox and the Wine compatibility layer[edit]

The developers of the Wine compatibility layer (a program which allows users to run some Windows programs in other operating systems with which Wine is compatible), have begun the process of integrating DOSBox into Wine, so as to facilitate running DOS programs that are not supported natively by the Wine Virtual DOS machine (winevdm).[20]

Commercial deployment[edit]

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 issue, which was reported as an oversight, was promptly resolved.[21][22] 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.[23] GOG.com uses DOSBox for some of their DOS releases.[24] 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.[25][26] 3D Realms also recommends DOSBox and, like Bethesda Softworks, provides a link to the DOSBox website on their downloads page.[27]

See also[edit]

References[edit]

  1. ^ "Project of the Month, May 2009". SourceForge. Retrieved 2013-01-17. 
  2. ^ "Project of the Month, January 2013". SourceForge. Retrieved 2013-01-17. 
  3. ^ http://sourceforge.net/projects/dosbox/files/dosbox/0.74/ SourceForge Binaries Available (Release Version)
  4. ^ "DOSBox Wiki - SVN Builds Info". Dosbox.com. 
  5. ^ "EmuCR Compiled Binaries - DOSBox official & unofficial builds". 
  6. ^ "SVN changelog (DOSBox Home web)". 
  7. ^ a b "SVN Builds". DOSBox. 2012-12-01. Retrieved 2012-01-08. 
  8. ^ "DOSBox Frontends". DOSBox. 2008-12-15. Retrieved 2009-01-03. 
  9. ^ "DosBox Capture Codec". 2008-03-09. Retrieved 2009-01-03. 
  10. ^ bakkelun (2008-03-07). "Recording video from DosBox". Retrieved 2009-01-03. 
  11. ^ a b c Qbix (2008-04-30). Interview with Qbix. Interview with Classic Dos Games. Retrieved 2009-01-03. 
  12. ^ a b "Usage". DOSBoxWiki. Retrieved 2013-01-14. 
  13. ^ "Boxer: The DOS game emulator that’s fit for your Mac". Boxerapp.com. Retrieved 2012-10-19. 
  14. ^ japheth (2013-07-25). "HX DOS Extender". Retrieved 2013-12-30. 
  15. ^ FAST Intelligence. "DOSpad, DOSBox for iOS". Retrieved 2013-02-05. 
  16. ^ NaCLBox. "NaCLBox homepage". Retrieved 2013-02-05. 
  17. ^ Endagdet (2011-05-12). "NaClBox brings DOS-based gaming to Chrome along with sweet, sweet nostalgia". Retrieved 2013-02-05. 
  18. ^ danoon2 and co. "jDosBox homepage". 
  19. ^ Kevin O'Dwyer. "jsDOSBox homepage". 
  20. ^ "Wine 1.3.12 Brings Initial DOSBox Integration". 2011-01-21. Retrieved 2011-08-26. 
  21. ^ "Are id Software and Valve Thieves?". Softpedia. 2007-08-06. Retrieved 2009-01-03. 
  22. ^ Purchese, Rob (2007-08-07). "id sorts GPL Steam issue". Eurogamer. Retrieved 2009-01-03. 
  23. ^ Bergman, Jason (2008-09-04). "Comments-morning discussion". Shacknews. Retrieved 2009-01-03. 
  24. ^ "Our Thanks". GOG.com. Retrieved 2009-01-03. 
  25. ^ "The Elder Scrolls Official Site - The Elder Scrolls: Arena". Bethesda Softworks. Retrieved 2011-03-03. 
  26. ^ "The Elder Scrolls Official Site - The Elder Scrolls: Daggerfall". Bethesda Softworks. Retrieved 2011-03-03. 
  27. ^ "3D Realms Site: Master Download Page". 3D Realms. Retrieved 2009-11-05. 

External links[edit]