This is the first preview release of version 1.0 of DOSBox Pure.
A year has passed since the last release 0.9.9 and over 200 changes big and small have been implemented. Thank you for waiting and please test this release and provide feedback as we work towards a release we can call 1.0. Feedback is welcome here as well as on Discord.
Main New Features
Add OpenGL renderer for 3dfx Voodoo (273144a) (#519)
This feature brings a massive performance jump for emulating the 3dfx Voodoo card across all platforms where RetroArch supports OpenGL, which of course includes mobile platforms. While performance can be two to five times faster, the image can also be scaled up to higher resolutions (2x up to 8x). Here are two videos made by @PoloniumRain to show off how well it looks and runs:
3dfx Voodoo with OpenGL on Android | Forsaken in 4K |
Besides the OpenGL rendering, the 3dfx Voodoo emulation has gotten various improvements and bug fixes like gamma correction (controlled by a core option) and switching the default chip setup to a 8MB RAM model which has much better compatibility with Windows 95/98 games. Unreal engine based games like Deus Ex and Diablo 2 for example now both run correctly with the 3dfx renderer.
Action Wheel (#477)
The action wheel feature opens a radial menu while holding a button. An action can then be selected via analog stick or mouse movement after which the wheel closes again. This is similar to a "weapon wheel" in many modern action games played with a gamepad.
Auto Skipping Text Console
Commit b9d0b23 introduced skipping ahead to the next video mode change when using the auto start feature. This means pressing RIGHT twice while in the start menu will enable "Skip showing the text console" while continued pressing RIGHT will activate skipping a number of frames. Many DOS games like DOOM will show some startup procedure in the text console which can now easily be automatically skipped by setting "Skip showing the text console", no need to figure out exactly how many frames it takes.
Shift Gamepad Mapping While Holding a Button
The issue #521 caused implementation of a new "Port #X While Holding" action that can be mapped to a button on the gamepad. While such a button is held down, the entire mapping of the gamepad is shifted to act like Port #X. Therefore multiple sets of inputs can be made accessible to a single gamepad.
Enhanced Aspect Ratio Correction Options
Throughout issue #512, various enhancements to the Aspect Ratio Correction core option were implemented. The available options are now as follows:
Setting | Description |
---|---|
Off | Pixels are drawn as square pixels |
On (single-scan) | Aspect ratio is performed entirely by the frontend |
On (double-scan when applicable) | On certain DOS video modes, depending on the graphics emulation, lines or columns will be doubled by the emulation. This can improve the accuracy of things like CRT shaders or output to a real CRT monitor. |
Padded to 4:3 (single-scan) | Add borders to force the output to be 4:3 (to output to a real CRT monitor or switching full screen to an abnormal resolution) |
Padded to 4:3 (double-scan when applicable) | Force 4:3 and also perform line or column doubling |
Smaller Additions
- Add 'Disable D: Hard Disk (use only CD-ROM)' choice to "Free Space on D: in OS" core option (#308)
- Add core option to set a maximum limit to the emulated CPU speed when running with auto adjusting cycles (ff213d5)
- Command-line mounting with relative paths were made relative to the loaded content (mount/imgmount) (59a20b1)
- When loading a .conf file directly don't mount C: with a save file (#557)
- Added file system date and time modification support (5a03d35)
- Add -dump option to shell
CONFIG
program (writes the current config to C:\DBOXCONF.TXT) (5c1f2c8) - Add bare bones
XCOPY
implementation (as needed by some game installers) (3c0d751) - Increased max resolution from 1280x1024 to 1600x1200 (4c5cb55)
- Add 'Refresh List' option to bootable OS list when needed (#495)
- For multi threaded 3dfx emulation, scale the number of threads based on the number of host CPU cores (#300)
- Add "Discard Changes to D:" choice to "Free Space on D: in OS" core option (#463)
- Pass host keyboard LED state (num-lock, caps-lock, scroll-lock) to emulation if available (98d103b)
- New core option for enabling Tandy Sound Device even when running without Tandy Graphics Adapter emulation (890ee72)
- Performance improvement of saving and loading (0d593d0)
- Lower default CPU cycle values for games with release date earlier than 1985 (1451d40)
- Improve support for the 'Auto Load State' option of RetroArch (#506)
- Draw bottom tab panel in On-Screen-Keyboard (but fade in/out depending on cursor distance (fcd4fc1)
- Reduce popping of sound output on startup with a tiny fade-in effect (1fb9a3e)
- Support specifying command line arguments in
AUTOBOOT.DBP
file (#531) - In start menu, show mount status and image name right aligned if the name is wider than the screen (ea7b947)
- Avoid low-end device freezing for a long time while caching the ZIP structure (b6310d3)
- Always list CD/disk images in start menu opened while running a game (for easy disk swapping) (38328de)
- Use touch optimized mouse input mode by default on platforms that most likely have a touch screen over a physical mouse (1c4accc)
- Don't write files into the save file when the content fully matches the underlying file system (1b2e004)
- Show a message instead of ending DOS when using the exit command unless the shutdown core option is set (5392d93)
- Implement
SUBST
command to support any kind of source drive (#479)
SUBST X: [Y:]PATH - Assign PATH from Y: to drive X:
SUBST X: /D - Delete substituted drive X:
Fixes
- In Gamepad Mapper, change order of B, A, Y, X to match order of buttons in RetroArch (#454)
- Make cursor movement speed on the on-screen keyboard screen be resolution independent (#445)
- Memory padding fix needed for the game "Queen: The Eye" (#496)
- Fix crash when using
REMOUNT
command on drive beyond D: (640452c) - Fix releasing of pause and printscreen keys not being handled (185cebd)
- Fix freeze when shutting down or restarting after the PAUSE key has been pressed while on the DOS command line (a99ae56)
- Fix segmentation faults on Raspberry Pi 5 (#488)
- Avoid unintentional clearing of mouse input binds (#490)
- Fixes vertical black lines appearing in some games (i.e. Carmageddon) (#156)
- Fix mouse in touchpad mode emitting two mouse clicks when tapping while in the on-screen menu or keyboard (7515d8f)
- Invalidate ZIP seek cache when ZIP file is modified (fixes crashing otherwise) (8fddc81)
- Avoid potential freeze during shutdown in text mode applications and games (88144c8)
- Fix sound font output crashing on Android (#491)
- Fixed DOS file handling bug which makes Win 3.11 installation work again (3ffc2dd)
- Fix potential crash when directly loading floppy or hard disk image content file (a5a6cb7)
- Fix negative seeking in raw files, this fixes OGG playback from files on disk (#356)
- Don't show warning 'Loaded into different program type' when loading a save state during a booted operating system (92acb08)
- Fix skipping initial frames freezing the core when booting an installed operating system (e547067)
- Fix loading CUE sheet with multiple BIN files with pregaps (ddd7dd1)
- Fix crash on recent RetroArch versions when pressing multimedia keys (i.e. "Volume Up") (#524)
- Fix crash when restarting the core after loading a CD ISO without a data track (955e9c1)
- Fix possible crashes with frontends that don't support RETRO_ENVIRONMENT_GET_PERF_INTERFACE (5d6ab81)
- Fix localDrive not listing '.' and '..' entries when using certain Linux file systems (f6294f3)
- Fixed swapping of disks under Windows 95/98 sometimes not getting recognized by the emulated OS (f160e1b)
- Fix key next to left-shift not working on ISO keyboards (14f676a)