dosbox-x/CHANGELOG
2020-07-30 15:20:07 -04:00

4215 lines
213 KiB
Plaintext

0.83.4
- Add and enable the setting "usescancodes=auto"
by default to fix issues with non-US keyboards
on SDL1 builds. (Wengier)
- Added code pages 808, 850, 852, 853, 855, 857,
858, 869, 872 for host to guest codepage mapping
on mounted local or overlay drives. (Wengier)
- Fixed inputting of ASCII character 224 and 240
in Windows SDL2 or MinGW builds. (Wengier)
- Fixed possible DPMI error when running Windows
98 installation from the DOSBox-X shell without
using a batch file. (Wengier)
- Fixed a bug in the FAT driver that can cause
a byte to get lost if writing up to the end of
a cluster, which seems to be behind the
corruption with program group files when running
Windows for Workgroups 3.11 from DOSBox-X shell.
[https://github.com/joncampbell123/dosbox-x/issues/1758#issuecomment-665193066]
- Unknown INT 2Fh calls are now debug output, not
an error.
- Added VESA BIOS mode 68h alias as indicated on
the Vogons forum.
- Fixed handling of config commands with spaces
when the "shell configuration as commands"
setting is enabled (quotes are needed in such
cases). Also added "Config options as commands"
toggle menu (under "DOS") to enable/disable the
feature from menu. It is disabled by default to
avoid name clash with other programs. (Wengier)
- Added "Enable quick reboot" toggle menu (under
"DOS") so that when enabled, DOS restart calls
will reboot the emulated DOS (integrated or
guest DOS) instead of the virtual machine in
DOSBox-X. Also, you could change the default
setting for this by setting the new "quick
reboot" config option in "dos" section (Wengier)
- Added new "Reboot guest system" menu item (under
"Main") to reboot the kernel of the integrated
DOS or the guest DOS directly. The previous menu
item "Reset guest system" has been renamed to
"Reset virtual machine" which will restart the
virtual machine in DOSBox-X instead. (Wengier)
- Added "Reported DOS version" sub-menu (under
"DOS") to dynamically change the reported DOS
version (including 3.3, 5.0, 6.22, 7.1). This
may enable/disable long filename (LFN) support
with the default "lfn=auto" setting. (Wengier)
- LS is now an external command appearing on drive
Z: as LS.COM instead of a builtin shell command.
This avoids name clash with game "Links LS 97"
which has the main executable named LS.EXE. Also
fixed minor issues in this command. (Wengier)
- Fixed the game "Disney's Duck Tales: the Quest
for Gold" not able to start. (Wengier)
- Improved Configuration GUI's handling of "4dos"
and "config" sections. Also added the "Save..."
button just before the "Close" button. (Wengier)
- Added "euro" config option (in [render] section)
to display Euro symbol instead of the specified
ASCII character in any codepage. (Wengier)
- PC-98 CG MMIO writes fixed to limit writes only
to the user-defined areas, same as the IO writes.
This fixes "Niko Niko" that appears to write a
few too many 0xE1 bytes when filling text
attribute RAM and into the CG MMIO region.
- With -winrun command-line option or the setting
"startcmd=true" (Windows only), you can now
directly launch Windows programs on mounted local
or overlay drives to run on the host. The option
"startwait=false" can be used to disable waiting
for Windows programs after started. (Wengier)
- Added START command to run commands on Windows
host system. The /MAX, /MIN, /HID options can
be used to run the specified program maximized,
minimized, or hidden (they can be shortened to
+, -, _ respectively). This command is disabled
by default, but can be enabled by either the
"startcmd" config option (in [dos] section) or
the -winrun command-line option (which will also
enable the CLIP$ device for Windows clipboard
support). START will run commands listed in the
"startincon" config option (separated by space)
in the Windows Command Prompt and wait for a key
press before exiting. (Wengier)
- Added SHELL= option to the [config] section in
dosbox-x.conf to specify an alternative shell,
e.g. "SHELL=4DOS.COM". (Wengier)
- Added built-in 4DOS 8.00 shell for 4DOS features
and capabilities. There is now a [4dos] section
in the dosbox-x.conf file to act as the 4DOS.INI
config file if you use this shell. (Wengier)
- Added "Quick right mouse button copy/paste" menu
item toggle to allow quick Windows clipboard copy
and paste via the right mouse button without any
key modifier that may have been specified by the
config option "clip_key_modifier". (Wengier)
- Fixed mounting a directory with command-line like
"dosbox-x .", and fixed mounting disk images with
spaces via the "Drive" menu on Windows. (Wengier)
- IMGMOUNT now assumes "-fs none" automatically if
a drive number is specified instead of a drive
letter. Moreover, it will assume the image file
name "IMGMAKE.IMG" if no filename is specified by
the user. Also improved the command's handling of
El Torito floppy drives, e.g. you can use option
"-bootcd d" instead of "-el-torito d". (Wengier)
- IMGMAKE warning replaced to indicate a general
incompatibility between MS-DOS/SCANDISK and
cluster sizes 64KB or larger.
- IMGMAKE command will now use the image file name
"IMGMAKE.IMG" if no file name is specified (either
in the mounted local directory or in the DOSBox-X
program directory if the current directory is not
a local directory). The command now also supports
a -force option to force overwrite the image file
if it already exists. Furthermore, IMGMAKE will
delete the generated image file if an error occurs
during the image file creation. (Wengier)
0.83.3
- IMGMAKE can now generate FAT12, FAT16, and FAT32
filesystems. New option "-fat" is added to select
the filesystem for the disk image.
- Fixed command-line like "./dosbox-x /dir/app.bat"
not able to launch the specified program (Wengier)
- Fixed bug in DIR command's /P option which might
cause it to not work properly. (Wengier)
- The default key modifier for the Windows clipboard
copy & paste via the right mouse button feature is
now "shift" instead of "disabled". (Wengier)
- Single-stepping in the debugger with the 286 and
8086 normal cores now works correctly when stepping
over instructions with a segment prefix.
- Pentium MMX instructions now only available for
Pentium MMX or higher. Fixed the bug that allowed
MMX instructions for Pentium and lower if programs
ignored the CPUID feature bits. Also fixed Pentium
MMX instructions so that they work in both 16-bit
real mode and 32-bit protected mode to match how
they work in real hardware (joncampbell123)
- Updated DOSBox-X's implementation for Pentium MMX
instructions to latest version by kekko (Wengier)
- DOSBox-X will try to automatically run the program
with LOADFIX if the error message "Packed file is
corrupt" is detected. (Wengier)
- MOUNT command can now mount a drive to the UNC
root path in the form \\ComputerName\SharedFolder
on Windows systems. (Wengier)
- Improved the HX-DOS build package to make it fully
automated: all required HX DOS Extender files will
be included in the package, and dosbox-x.exe can
now be run directly in a real DOS system without
external requirements. (Wengier)
- Fixed incorrect frame rate reported by 3Dfx Voodoo
emulation (rderooy, backported from DOSBox SVN).
- Added the "Boot from disk image" menu item (A:, C:,
and D: drives only) in the "Drive" menu to boot the
specified disk image directly in Windows. (Wengier)
- Support for converting mouse wheel movements into
keyboard presses like arrow keys, configurable by
the option "mouse_wheel_key" (default is 0 which
disables this feature). When set to 1, mouse wheel
movements are converted to up/down arrows. Setting
it to 2 or 3 converts such movements to left/right
arrows or PageUp/PageDn keys respectively. (Wengier)
- Support for reloading the keyboard mapper file with
the config -set command. (Wengier)
- IMGMOUNT command without parameters will show disk
names for drive-number only mounts. (Wengier)
- IMGMOUNT can now autodetect DOS <= 3.21 harddisk
geometry with MFM sector images (rderooy & Wengier)
- IMGMOUNT -fs none fixed to use same geometry detect
function that FAT filesystem mounting uses.
- Added suppprt for mounting overlay drives using MOUNT
command with "-t overlay" option. Backported from
DOSBox SVN and adopted for DOSBox-X with additional
features such as long filename and PC-98 support, it
allows the users to redirect new and changed file(s)
to a different location transparently. (Wengier)
- Cleaned up the DPI awareness auto-detection code to
allow Visual Studio builds to again run on Windows 7.
Meanwhile, MinGW builds (either SDL1 or SDL2 version)
are still required for Windows XP systems. (Wengier)
- Updated Nuked OPL3 to latest version 1.8 for accurate
OPL3 emulation (Wengier)
- Added AUTOTYPE command to perform scripted keyboard
entry into a running DOS program or game. Ported from
DOSBox-staging, it can be used to reliably skip intro,
provide input to answer initial startup or config
questions, or conduct a simple demo. (Wengier)
- Added code page 866 (Cyrillic Russian) to support
host to guest code page mapping (tuffnatty)
- Mouse buttons (left, middle, right) can now be mapped
to keys in the keyboard mapper. (Wengier)
- Support for mounting .cue files with MP3/OGG/WAV/FLAC
compressed audio tracks. (Wengier)
- Rewrote the Windows installer for DOSBox-X, as well as
the building script for the installer. All required
build tools including the Inno Setup Compiler are now
provided in the repository and will be automatically
called by the building script. (Wengier)
- Added config option "mapperfile_sdl2" for SDL2 builds.
SDL1 and SDL2 builds of DOSBox-X can not use the same
mapper file, or they will likely malfunction. Adding
this option allows SDL1 and SDL2 builds of DOSBox-X
to work with the same dosbox-x.conf file. (Wengier)
- Added GUI menu option under "DOS" to change the long
filename setting (enable, disable, or auto). (Wengier)
- Improvements and fixes to the save/load state feature:
It now supports Sound Blaster Goldplay mode;
It now saves PC-98 FM interrupt state so that reloading
state does not cause hung music;
It is also fixed not to crash when used within a guest
operting system (when the DOS kernel has been shut down
using the BOOT command);
It now supports memory size up to 1000MB;
It will save and verify the DOSBox-X version and build.
States saved by DOSBox-X in one platform (e.g. 64-bit
Windows) may not work in another (e.g. 32-bit Linux).
The GUI menu will show if the save slot is empty, and if
not the program name of save state will be displayed.
- Re-ported and improved the save state feature for saving
and loading states with support for up to 10 save slots.
They can be selected from the "Capture" menu. (Wengier)
- Added COUNTRY command to set country code for country-
specific date and time formats. For example, the command
"COUNTRY 61" sets the country code to 61 (International
English) which uses the DD-MM-YYYY date format instead
of the default (U.S.) MM-DD-YYYY date format. (Wengier)
- DOS 440Dh IOCTL function 67h (get access flag) added to
allow FDISK.EXE to determine FAT filesystem type. Also
implemented function 40h (set device parameters) and
function 46h (set volume serial number). (Wengier)
- Unknown DOS 440Dh IOCTLs warnings now indicate whether
triggered by call or query.
- S3 VESA BIOS mode number for 1024x768 32bpp changed to
avoid conflict with Windows 95 S3 driver and 800x600
16bpp mode.
- FAT driver no longer mounts FAT32 volumes unless the
DOS version is 7.1 or higher, and it no longer mounts
FAT16B LBA volumes unless the DOS version is 7.0 or
higher. These are to mimic the MS-DOS behavior.
- Fixed FAT driver not to attempt to mount partitions that
have nothing to do with the FAT filesystem (such as
type 0Dh and extended LBA partition tables). Also fixed
the FAT driver to not assume partition start sector 63
if it cannot identify a partition to use.
- Added code to FAT driver to identify telltale pattern
left by Microsoft FDISK when a partition is created (but
not yet formatted) and reject.
0.83.2
- Added help messages for some supported commands. (Wengier)
- Added phone book support for the emulated modem. There is
a new phonebookfile= option in the [serial] section. The
phone book file entries need to be in the format of:
"<dummy number> <hostname/ip:port>" e.g.
5551234 cavebbs.homeip.net:23
- Implemented the missing EMS subfunctions 52h and 59h by
porting the patch that adds them (Wengier)
- Fixed issues with the "config -wcd -all" command and other
updates to the CONFIG command (Wengier)
- Added [config] section in dosbox-x.conf to resemble DOS's
CONFIG.SYS file. It currently supports REM, BREAK, NUMLOCK,
FCBS, FILES, DOS, DEVICE/DEVICEHIGH, INSTALL/INSTALLHIGH,
SET and LASTDRIVE commands. The file CONFIG.SYS will appear
on the Z: drive, similar to AUTOEXEC.BAT file. The [config]
section can be bypassed with the -noconfig command-line
option or with the secure mode enabled (Wengier)
- Moved PC-98 related config options (starting with "pc-98 ")
from [dosbox] and [dos] sections to its own [pc98] section.
These options in existing dosbox-x.conf/dosbox.conf files
will be automatically redirected to the [pc98] section from
the other sections when DOSBox-X starts (Wengier)
- The user directory DOSBox-X uses has been changed to use the
DOSBox-X directory (e.g. from ~/.dosbox to ~/.config/dosbox-x
on Linux platform). It will be read *after* the dosbox-x.conf
file in the current directory (Wengier)
- Config option "dpi aware" now supports the "auto" setting
to auto-decide on the best setting for the platform. This
fixes very small window issue on high DPI devices such as
Microsoft Surface tablets. (Wengier)
- Added DTASEG, DTAOFF, and PSPSEG as hex value constants to
the debugger interface to aid in debugging DOS programs.
- New command-line option -helpdebug added to list debug-
related command-line options. The standard -? / -h / -help
command-line option will no longer list them (Wengier)
- Implemented LFN support for FAT driver, so that it is now
possible to view directory list, create or open files and
directories etc with long filenames on FAT12/16/32 drives
just like on mounted local drives.
- FAT driver cleaned up and fixed to avoid edge cases that
can corrupt directory entries and leave lost clusters
on the disk, also fixed to always report root directory
as a directory through the GetFileAttribute INT 21h call,
needed by MOVE.EXE and XCOPY.EXE to work properly.
- IMGMOUNT auto geometry detection will assume LBA disk
and fake C/H/S geometry if the disk is 4GB or larger,
the MBR lacks executable code, or the first partition
is Windows 98-style LBA FAT16 or FAT32.
- IMGMOUNT now assumes ISO type by default if the image file
extension is .iso/.cue/.bin/.mdf. No need for "-t iso" in
this case; but (if appliable) it can be overridden by for
example "-t hdd". (Wengier)
- IMGMOUNT command (no parameters) now lists mounted FAT/ISO
drives and mounted drive numbers, also SUBST command (no
parameters) now lists mounted local drives (Wengier)
- INT AH=36h fixed to convert free space but maintain a
cluster size (bytes/sector * sectors/cluster) that is less
than 64KB to avoid divide by 0 crashes with FORMAT.COM /S
- Added FAT32 free/total disk space API for FAT driver, and
updated INT 21h AX=7303h to call it. FAT driver now provides
FAT32 extended disk free/total through FAT32 API and 2GB
limited free/total through INT 21h AH=36h for older DOS
programs. Shell DIR command updated to use FAT32 free space
API to show free space even on FAT32 partitions larger than
2GB, but only if the DOS version is set to 7.1 or higher.
- Added FAT32 INT21h and IOCTLs needed by MS-DOS 7.1/Windows 98
versions of SCANDISK.EXE and FORMAT.COM, such as DOS functions
for "FAT32 extended" absolute disk read and write.
- Improved FAT32 support to the FAT driver, including direct
support for FAT32 drives in the DOSBox-X command shell. Files,
directories and volume labels on FAT32 drives can be listed,
read from or written to just like on FAT12/16 drives.
- Added DOS IOCTL read/write logical device track functions so
that FORMAT.COM is able to verify and modify the partition table
to successfully format a hard drive image. Also added stub to
DOS IOCTL "format device track" for FORMAT.COM.
- You can now force unmount a drive and then mount it to a new
directory in one command, e.g. "MOUNT C C:\DOS -U" (Wengier)
- REN command can now rename directories (in addition to files) on
FAT drives just like on local drives (Wengier)
- Several improvements to DEL command, such as a new /F option to
force delete of read-only files, and improved handling when the
argument is a directory (Wengier)
- LS command added to list directory contents. It does not support
all options as in Unix/Linux platform (Wengier)
- DIR /O & /OG supported in addition to /ON|/OE|/OS|/OD options.
Options such as /-O & /-A can be used to override /O, /A etc if
they are specified in the DIRCMD environment varaible (Wengier)
- DIR and VOL commands now display real serial numbers for mounted
local drives (Windows only) and FAT drives (Wengier)
- Fixed SYS command not working properly (Wengier)
- DOS kernel INT 21h function Set File Attribute no longer
allows changing volume label attributes and fixes directory
attributes in order to prevent filesystem corruption.
This prevents Windows 95 Setup from creating WINBOOT.INI
and then changing it into a directory with the call.
- FAT driver bugs fixed where a newly created zero length file
combined with a lseek() can corrupt filesytem structures
(root directory and/or the second FAT table). This fixes
filesystem corruption when running Windows 95 install.
- Enabled printer emulation for non-Windows OSes (Linux,
Mac OS X, etc.). FreeType2 is required to enable
printer emulation at compile time.
- Added command-line option "-o" for MOUNT command so that
it can be specified whether to report mounted local drives
as remote (network) drives. It is "auto" by default just
like the virtual drive Z:.
- Added config option "drive z is remote" in dosbox-x.conf
to report drive Z: as a remote (network) drive. It is
"auto" by default, which will try to prevent SCANDISK.EXE
from Windows 9x installs to scan and "repair" drive Z:
which is not backed by a disk filesystem.
- Fixed clip_key_modifier setting not working when it is
set to alt, ctrl or shift in the SDL2 build. (Wengier)
- Sending "Ctrl+Alt+Del" key from the menu will now reset
the system within DOSBox-X when the intergrated DOS or a
real DOS booted from a disk image is active. (Wengier)
- PC speaker output fixed not to timeout and stop rendering
unless the PC speaker output is not emitting anything
audible anyway (Fix for Sopwith 1 and 2).
- Added ALIAS command to define or display aliases.
- "HELP command" now works the same as "command /?" for
supported internal commands. (Wengier)
- Improved handling of quotes in some commands. (Wengier)
- Added -set command-line option to change config options.
It can be specified multiple times for multiple options,
overriding any options in the config file. For example,
the command "dosbox-x.exe -set machine=pc98" will force
DOSBox-X to start in PC-98 mode. (Wengier)
- Re-added full drive menu items for the Windows platform.
The "Boot from drive" item (A:, C: and D: drives only)
should work in other platforms too. The BOOT command is
also improved to allow e.g. "BOOT A:" to work. (Wengier)
- INT 10h vector now points into VGA BIOS as a workaround
for DOS programs that use vector location as part of
their EGA/VGA detection. This fixes blink attribute
and EGA/VGA detection failure with SuperCalc 3 and
SuperCalc 4. This option, enabled by default, can be
disabled or enabled from dosbox-x.conf.
- Improved long filename (LFN) and SetFileAttr/GetFileAttr
support for PC-98 mode. (Wengier)
- Added config option "lfn" to enable/disable long filename
(LFN) support. With default setting of "auto", LFN support
is enabled if the reported DOS version is at least 7.0.
- Added config option "automountall" (default: false) to
automatically mount all available Windows drives (Wengier)
- The copy & paste Windows clipboard text via the right
mouse button feature now has support for PC-98 mode too
in addition to other modes. (Wengier)
- MPU401 IRQ fixed to properly default to 2 or 9 in IBM
PC/XT/AT mode depending on the "enable slave pic" config
option (rderooy)
- Fluidsynth defaults fixed for better more reliable audio
streaming on Linux and Mac OS X (Wengier and rderooy)
- Improved support for FluidSynth MIDI device by porting
code from DOSBox ECE. Set "mididevice=fluidsynth" along
with other required options such as "fluid.soundfont"
in dosbox-x.conf to use it. The previous config setting
"mididevice=synth" is still supported for alternative
implementation of FluidSynth. (Wengier)
0.83.1
- Sound Blaster emulation fixed to better handle Goldplay
mode detection false positive in 1994 demoscene demo
myth_dw.zip when using Sound Blaster Pro setting in
the demo. The initial state before music starts is
like Goldplay mode, but when music actually starts the
DMA programmed to normal state without restarting
DMA playback.
- dosbox-x.conf is now recognized as the default config
file name in addition to dosbox.conf. The sample config
file "dosbox.reference.conf" has been renamed to
"dosbox-x.reference.conf" as well (Wengier)
- Tandy DAC output fixed to slowly ramp last sample to
zero DC sample (128) when switched off. This fixes
loud popping (DC offset) problems with Tandy DAC
sound effects in Prince of Persia. This new behavior
also seems to match real Tandy 1000 hardware according
to video captures of it's audio/video outputs while
playing Prince of Persia on it.
- Tandy/PCjr 3-voice fixed to respond to I/O port 0xC0
regardless of 8-bit or 16-bit I/O (fixes Prince of
Persia).
- Write-protecting a disk image in IMGMOUNT and BOOT
commands now supported by putting a leading colon (:)
before the image file name. Works with disk swapping;
e.g. "BOOT :C:\DISK1.IMG C:\DISK2.IMG" only write-
protects C:\DISK1.IMG but not C:\DISK2.IMG. The new
config option "leading colon write protect image" can
be used to disable or enable this behavior (Wengier)
- Support for changing DOSBox-X internal time (Wengier)
- Support for pipes (|), e.g. "DIR | MORE" should now
work as expected; it is recommended to set the %TEMP%
(or %TMP%) environment variable to a writable directory
inside DOSBox-X before using pipes (Wengier)
- Improved redirections using "<" or ">" (Wengier)
- Improved Ctrl+C handling in some commands (Wengier)
- Improved Tab completion in the command shell (Wengier)
- Improved -get & -set options for the CONFIG command,
e.g. support for config options with spaces (Wengier)
- Improved REN (or RENAME) command to support wildcards
(* and ?) in the source and/or target files (Wengier)
- Some improvements to commands like MORE & VER (Wengier)
- Added BREAK, VERIFY and TRUENAME commands as in a real
DOS system. Type "[command] /?" for help info (Wengier)
- Implemented FOR command to run a specified command for
each file in a set of files. Also added LFNFOR command
to control whether to use long filenames in the FOR
command as in MS-DOS 7+ (Wengier)
- Implemented ATTRIB command to view and set attributes
of files or directories (Wengier)
- Added emulation of R (readonly) attribute bit for
Linux and Unix systems through the user-writable
file mode bits of the filesystem.
- Fixed PC DOS 2000 crash during installation.
- PC speaker: Mode 3 (square wave) and a counter value
of 1 produces a low frequency square wave. Ulrasonic
frequencies do not begin until count == 2. This fixes
helicopter noises in Paratrooper.
- Fixed PC speaker emulation to allow higher PC speaker
frequencies (10x the value of pcrate) to reduce
hiss/noise/aliasing noise that occurs when games
program ultrasonic frequencies into the counter to
"silence" the speaker. "Titus the Fox Marrakech and
Back" should no longer have audible hissing noises
between beeps when the game is using the PC speaker.
- Increased DOS device limit, to avoid E_Exit() crash
if all LPT and COM devices are enabled along with
the new CLIP$ device.
- Minimum MCB free default changed to better reflect
a typical MS-DOS setup with minimal to no drivers.
This should result in a report of 600K-ish memory
free, which is equivalent to Windows 95 without
anything loaded except COMMAND.COM.
- DIR command now supports /S (search all directories)
as well as /A, /AS, /A-S, /AH, /A-H, /AR, /A-R, /AA,
/A-A options for file attribute support; Note that
DIR /A shows all files and directories whereas DIR
alone (without /A) shows all except system/hidden
ones as in a real DOS system (Wengier)
- DIR command now shows the real free disk space on
local drives. It is possible to limit this free space
for certain programs with the -freesize option of
MOUNT command. A new config option "freesizecap" is
added to change the behavior of this option (Wengier)
- DIR command fixed to show the volume label of the
drive you are listing, instead of always the current
drive (rderooy)
- Various improvements to DEL and COPY commands, e.g.
fixed the DEL /P option having no effect, and "DEL ."
deleted all files in the current directory silently;
the COPY command now asks for confirmation before
overwriting files, and it now supports /Y and /-Y
options to change this behavior, which can also be
set from the COPYCMD environment variable. (Wengier)
- Added or fixed help information and/or error messages
for some commands. (Wengier)
- Added support for DOS programs to communicate
with the clipboard in Windows builds. If the
"dos clipboard device enable" setting in
dosbox-x.conf is set to "true" or "full", a DOS
device (default name: CLIP$) will be added to
allow bidirectional communications with the
clipboard (e.g. "DIR >CLIP$" will write the
output to the clipboard, and "TYPE CLIP$" will
show the clipboard contents). Alternatively,
you can set it to "read" or "write" to allow
only read or write access for security reasons.
The DOS device name can also be changed with
the "dos clipboard device name" setting in
dosbox-x.conf. (Wengier)
- Added support for using the right mouse button
to copy and paste from the Windows clipboard; the
config option "clip_key_modifier" can be used to
change the keyboard modifier such as none, alt, ctrl,
shift, or disable this feature (default). (Wengier)
- Updated the PasteClipboard feature in SDL1 build
to support Unicode text translations; also fixed this
feature not working in SDL2 build. The config option
"clip_paste_speed" is added to speed up or slow down
the pasting speed for different DOS programs (Wengier)
- Support for DOSLIB2's w95sysrg/w95sysrs utils to
get/set system registry location in DOS 7+. (Wengier)
- Long filename support added, adapted from
the vDosPlus project. It will be enabled with
an initial DOS version of 7.0 or higher. (Wengier)
- Corrected return value when using option to
fake the installation of SHARE. (Allofich)
- Added code to EMS emulation to print specific
debug information when a PC-98 specific call is
made to remap segment B000h to either system
memory or video memory. I do not have enough
test cases or a setup to test what really happens,
so it will remain a debug message for now.
- Added dosbox-x.conf option to allow emulation of a
DOS environment that lacks ANSI.SYS. NOTE: The
option has no effect in PC-98 mode.
- INT 2Fh now responds to AX=1A00h which is an installation
check to report whether ANSI.SYS is resident.
- Added INT 21h debug logging for file I/O and general
INT 21h usage [patch by ognjenmi]. Added enables for
the logging which are off by default since the INT 21h
and file I/O logging are fairly noisy under normal
usage.
0.83.0
- Added mt32.romdir dosbox.conf configuration option
for users who store the MT32 ROMs elsewhere other
than the current working directory.
- Configuration GUI settings menu is now vertically
divided to ensure that it fits on the screen even
if the window is at minimum size.
- PC-98 GDC status fixed to follow the explicit
definition of one bit as hblank and the other
as vsync instead of carrying over VGA port 3DAh
style logic of hblank/vblank vs vsync. This
fixes the BPS logo scanline effects in PC-98
game 'frontier-universe-bps-neo-kobe-pc98-ia'
- Added dosbox.conf option to select between two
known behaviors in PC-98 mode regarding the PC
speaker and the PIT timer. The default behavior
follows the newer hardware, the alternate setting
is for older games written against the PC-9801
behavior.
- Added dosbox.conf option nocachedir which, when
set, instructs MOUNT to automatically act as if
-nocachedir were given.
- Linux/X11 SDL1 builds fixed not to issue resize
commands to the window to avoid fighting the
window manager. This prevents "spastic resizing"
under Gnome 3 in Centos 8.
- Source tree now includes build script for Linux
users who prefer Clang/LLVM over GCC.
0.82.26
- Debugger console window fixed to choose a smaller
default size in Windows builds.
- Debugger console window now resizes properly
in Windows builds.
- Using F10 (step over) in the debugger to step
over INT 21h when a breakpoint for INT 21h is
set now works correctly, instead of letting the
instruction pointer "stick" there without moving.
- Debugger interface now shows (running/watching)
while RUNWATCH is active.
- Debugger interface now correctly shows (running)
status when F5 is used to resume emulation.
- Debugger toggle reverts back to debugger interface
instead of running state if triggered during a
RUNWATCH command.
- Fixed RUWNATCH command, which was broken by another
fix sometime back designed to stop PIC event
processing while in the debugger.
- Debugger interface fixed to keep the SDL event
handling going during the "pager" routine to
prevent Windows from graying out the main window
as "not responding" in Windows 7/8/10.
- Direct3D support has been fixed to properly render
pixel shaders again that were already written for
other forks.
- Added "Rescan all drives" menu command and mapper
shortcut (Issue #1379 requested by saintfrater)
0.82.25
- Added 1920x1440 4:3 HD VESA BIOS mode and increased
scaler limits to support it.
- VESA BIOS emulation now rejects video modes that
exceed the render scaler architecture's limits,
to avoid frozen screens if set. However, VESAMOED.COM
warns the user, so if the user ignores the warning,
VESA BIOS emulation will allow user-defined modes
that exceed the limits anyway.
- VESAMOED.COM will now warn you if the custom mode
you modified exceeds the render scaler's limits.
- VGA emulation now reports render scaler limits
in the logfile at startup, if debug logging is
enabled.
- Render scaler code now logs a warning when it
rejects a video mode that exceeds the render
scaler limits.
- S3 emulation now allows 16MB of video memory.
- Due to continuous problems with DOS games and a
very long VESA modelist, the defaults for VESA
BIOS options in dosbox.conf have been changed to
limit the modelist to something a late 1990s
VESA BIOS would list. New defaults include a
maximum resolution of 1280x1024, the removal of
4bpp 16-color packed, unusual video modes,
"High Definition" TV broadcast modes, and the
extra explicitly defined 24bpp modes to complement
VBE1.2 32bpp modes. Those options remain
changeable and all limits can be lifted with
settings in dosbox.conf if wanted.
- Allow using "" in the debugger to specify that
a hex value should be used rather than the
contents of the flag with that name. Allows
hex values of AC, AF, CF and DF to be directly
specified. (Allofich)
- 25.COM, 28.COM, and 50.COM now have different
versions for VGA, EGA, and other IBM compatible
video machines. 28.COM now correctly sets 28 lines
for machine=ega. CGA/MDA/Hercules/etc. still use
INT AX=3h for 25.COM.
- Change 25.COM to use INT 10h AX=1114h (8x16) instead
of INT 10h AX=3 (set 80x25 mode).
- INT 10h AX=1111h (8x14) and AX=1113h (8x8), related
to 28.COM and 50.COM, now range check the current
cursor row against number of rows to keep it on
screen.
- Fixed ADDKEY "full" command not turning on the
full core when used with a delay. (Allofich)
- INT 10h AX=101Ah Get Video DAC color-page state fixed
to restore display after blanking it due to Attribute
Controller read and write operations. This fixes
IBM PC compatible MS-DOS game "Blue Force".
- Debugger: "VGA AC" now shows AC disable bits as well
as the internal state indicating whether the last
byte written to 3C0h was handled as the index.
0.82.24
- FDC emulation now allows READ command to look for
sector numbers that are out of range in order to
support booter games that read out of range sector
numbers as part of their copy protection.
- Windows SDL1 window resizing fixed to avoid snapping
and jumping issues when the window is sized down
to the point the menu bar doubles or triples in
height due to menu item wrapping.
- FDC clear DMA terminal count automatically (with a
warning printed to the log) at beginning of FDC
read/write (PC-98 booter game Star Cruiser).
- FDC DMA read/write failure now causes FDC to signal
an error, and the debug output will say so.
- FDC debug output now shows motor bits in the correct
order, not backwards
- CONFIG.COM and MIXER.COM are now registered only at
DOS kernel startup, to resolve their disappearance
after RE-DOS or guest system reset.
- Some OpenGL cleanup and fixes for when compiling for
Mac OS X Catalina.
- Shell startup now prints the actual mapper binding
(whatever it is) for the Host key instead of assuming
F12/F11.
- "Ro" key in PC-98 mode in the mapper interface now
clarifies that it is Ro / _ since the shift state is
the underscore.
- Shell startup code fixed to show F11 for Windows and
F12 for other platforms properly instead of always
showing F11.
- Added BOOT option --pc98-graphics to start up with
graphics layer enabled in order to run HDI images
using QMOUSE and games that expect NEC MOUSE.COM
behavior of showing graphics layer on driver init.
- BOOT now hides graphics layer on startup in PC-98 mode
to reflect real hardware.
- INT 33h mouse emulation now enables graphics layer
on mouse startup and INT 33h AX=0 to imitate NEC
MOUSE.COM behavior seen on real PC-98 hardware. This is
needed for some Orange House games that assume this
behavior, without which the graphics are invisible.
- INT 33h define range functions now include separate
range correction for text mode vs graphics mode.
- Help sections in Configuration GUI have been improved,
they are now easier to browse and read. (aybe)
- CONFIG: added description for 'securemode' (aybe).
- Integer properties are now correctly saved when
they have been changed in configuration GUI (aybe).
- Some scenarios with command history could display
garbage characters from previous/next command (aybe).
- Fixed all hard disk images created by IMGMAKE having
VHD footers. (Allofich)
- Windows Visual Studio solution: (aybe)
- cleaned and clarified project properties for projects
- removed configurations that didn't make sense
- fixed broken debugging
- consolidated to use single versions of SDK and IDE
- enabled faster builds (multi-processor compilation)
- fixed broken builds, e.g. ARM, ARM64
0.82.23
- Serial and parallel file output now disable stdio
buffering so that output is more immediately
accessible to the user.
- Added file output to serial port emulation.
- Parallel port emulation now support both dev: and
file: to specify that LPTx output go to a file,
not necessarily a device by name.
- Fixed bug that capped vmemsizekb to 8KB.
- BIOS bootup screen now shows correct text for CPU
type instead of "? CPU" when cputype=auto.
- PC-98 256-color mode fixed to ignore doublescan
and 200-line bits of the GDC to match real hardware
behavior. This fixes display problems with
"Alone in the Dark"
- BOOT command will now always set 640x200 8-color
graphics mode when booting PC-98 disk images,
to match the apparent behavior of real hardware.
- PC-98 hardware apparently allows writing port 6Ah
to jump directly to 256-color mode from 8-color
mode, update DOSBox-X emulation to allow it.
This fixes the PC-9821 port of "Alone in the Dark".
- Slow CGA memory access handler now wraps to 16KB
correctly, and resolves a segfault that can happen
if the last 16KB is accessed by the guest if
vmemsizekb=16.
- vmemsize default is now -1, which means to pick a
video memory size automatically.
- Added PC-98 INT 1Bh AH=03h SCSI BIOS command, which
allows FreeDOS98 to boot.
- INT 33h emulation fixed not to reset mouse min/max
range if the new video mode is a VESA BIOS SVGA
mode (not a standard VGA mode). Some games seem to
define the mouse min/max range AND THEN set the
VESA BIOS mode, not the other way around.
- INT 33h define range functions now apply rounding
to the max range if the range is close to the
dimensions of the screen, for games like Daggerfall
that set the cursor maximum range to values close to,
but not exactly, the dimensions of the VGA screen.
- INT 33h define range functions updated to accept max
ranges for mapping host to guest if set just after
video modeset or if those INT 33h functions are called
when no mouse buttons are down.
- INT 10h AH=4Fh AL=08h (Set DAC width) now correctly
set AL=4Fh to indicate the call is supported.
- VGA DAC palette writes are now ALWAYS masked to 6-bit
unless 8-BIT DAC mode is ON and enabled. This fixes
palette problems with Amulets and Armor.
- VGA DAC 6/8-bit palette management code simplified
- Added dosbox.conf option to instruct DOSBox-X to leave
the PC speaker clock gate enabled if set, for games
that use that PIT output as a time source. Setting
the option to "true" allows "Bàoxiào sānguózhì", a game
with strange and elaborate timing code, to run without
hanging at the second title screen.
- VGA port 3DAh "undefined bits" setting changed to 0x04
to accomodate "Blues Brothers"
- Configuration GUI: If the settings are scrollable,
tabbing between fields will now auto-scroll to the
field and make it visible.
- In the configuration GUI, scroll wheel input no longer
changes the window focus.
- Set CPU cycles dialog box layout fixed.
- Added 'skip encoding unchanged frames' option to
dosbox.conf. If set, AVI video capture will skip
video frame compression if the frame has not changed
from the previous frame. Option is off by default
at this time in case it causes any issues with users
and their video editing software.
0.82.22
- Added Normal2x render scalers so that 'force scaler'
for 1x2 or 2x1 scalefactors works and you can scale
up 320x200/640x200 VGA modes and 640x200 CGA modes
by 2x.
- Main window titlebar now reflects whether or
not the debugger interface is active.
- Debugger interface now flushes terminal input
upon entering the debugger, so that keyboard
input prior to entering the debugger is ignored.
- Debugger mapper shortcut and menu item are now
a toggle. Selecting once will enter the debugger
and selecting again will resume emulation.
- cycles=max now displays cycle percentage correctly
instead of showing e.g. 100 cyc/ms
- (Allofich) Note and ignore INT 33, AX=53C1 call
for the Logitech CyberMan.
- Fixed odd code addition that disabled (through
the configuration) XMS, EMS, and UMB when
booting a guest OS. This fixes a problem where
those services are not available when rebooting
back into the DOSBox-X shell from a guest OS.
- CGA 640x200 and MCGA 640x480 modes fixed to
have proper refresh rate when machine=mcga,
instead of 140Hz.
- MCGA horizontal active display register
encodes N - 1, not N, according to real
hardware register dumps.
- INT 10h modes 2 and 3 updated set MCGA CRTC
write protect bit, to match real PS/2 hardware
behavior, and to unlock CRTC registers during
mode set.
- PC-98 VSYNC interrupt now fires at vertical
retrace start (as documented) instead of at
active display end behavior borrowed from
DOSBox VGA emulation. This fixes "Tonight"
by Swat.
- Fixed mistake that placed N88 ROM BASIC stub
(something specific to PC-98) in memory even
in IBM PC/XT/AT emulation mode.
- Fixed some callback slot leaks that can cause
DOSBox-X to run out of callback slots if you
reset the guest system too much.
- Fixed invalid callback and errant interrupt
handling during BIOS reset delay that happens
if you use the keyboard shortcut to trigger
system reset.
- XMS emulation resets global enable and local
enable state on XMS emulation startup to fix
crashes related to inability to control A20 gate
after system reset or DOS kernel restart.
- Debugger "SM" command now accepts segment:offset
syntax for memory location to write.
- Fixed INT 21h AH=65h bug that returns DBCS table
for AH=4h that should return filename uppercase
table.
- Configuration GUI property settings are now
shown in a single column wide list with scrolling.
- In the configuration GUI, help dialogs will now
present the help text as a scrollable region if
there is too much to fit on screen.
- dosbox.conf mixer rate will now accept any
sample rate from 4KHz to 192KHz instead of only
fixed specific sample rates.
- cascade interrupt ignore in service setting now
accepts true, false, and auto. "auto" is now the
default, and will choose true or false depending
on machine type for correct emulation either way.
It should no longer be necessary to add
"cascade interrupt ignore in service=true" to
your dosbox.conf every time you want to run a
PC-98 game properly.
- PC-98 FM board emulation will now load SOUND.ROM
into segment CC00h if available, if FM board
emulation is enabled.
- PC-98 INT 18h AH=30h updated to return AH=05h
AL=00h BH=00h if success, AH=00h AL=01h BH=01h
if failure. This is needed to get Puyo Puyo 2
to work, which for some reason fails if a call
to set 15KHz mode works.
- PC-98 LIO and SOUND BIOS entry points, while
still not implemented, have been updated to
print the name of the call according to an
online reference.
- DOS FCB rename now supports renaming the
volume label as MS-DOS does.
- Fixed bug that prevented proper DOS FCB rename
if the FCB used to rename is extended.
- FAT filesystem driver updated to also store
updated volume label in the boot sector of the
partition, as per MS-DOS FAT standards.
- FCB create can now be used to set a FAT
filesystem label. MS-DOS LABEL.EXE works
correctly now.
- FAT filesystem driver now allows LABEL command
to change the FAT volume label of mounted disk
images.
- DOS kernel updated to support basic FCB methods
of deleting/setting the volume label, at least
on local folder mounts.
- DOS kernel will now return the volume label of
FAT filesystems mounted from disk images.
- LABEL setting code fixed not to treat label as
if an 8.3 filename.
- LABEL is no longer a builtin shell command and
appears on drive Z: as LABEL.COM
- LABEL reimplemented to imitate MS-DOS behavior
with regard to how it handles the command line.
- File I/O checking and cleanup (Allofich)
- Integrated commits from mainline (Allofich)
- Handle errant IRQs as a real BIOS does. Also
remove r3263 workaround, as it's no longer
needed.
- Fix flag behavior of several shift/rotate
instructions, cause exceptions and fix
potential 'pop ss' problems
- Add support for Print Screen key and
interrupt. In-game screenshot feature
of Descent and Descent 2 now works.
0.82.21
- Reduced title bar size of the Configuration GUI.
- Fixed sizing and positions of some Help menu dialog
boxes in the Configuration GUI.
- Configuration GUI issues with help text and word
wrap running off the edge of the window have been
fixed.
- INT 21h AX=3702h AVAILDEV returns DL=FFh to match
MS-DOS behavior.
- Added INT 21h AX=6523h, for Microsoft software
that uses it after prompting the user for a Y/N
answer such as FORMAT.COM and FDISK.EXE
- PC-98 MS-DOS kernel now writes fake INT 1Bh device
list to 60:6C to satisfy certain games that need
it for their "master disk" detection.
- Fixed FAT driver bug that caused the allocation
of an extra cluster if writing a file that is
exactly a multiple of the cluster size long.
- FAT driver now assigns current date/time when
creating directories.
- Increased the DTA segment size of the DOS FAT driver
to fix problems with directory searches corrupting
adjacent memory.
- Disk Parameter Block linked list now terminates
with next pointer at FFFF:FFFF instead of 0000:0000
to match general DOS pattern and satisfy some
PC-98 games that enumerate the list.
- INT AH=52h List of Lists now points to the Disk
Parameter Block as well, which allows some PC-98
games that enumerate the list to work.
- Video parameter list and table at BIOS DATA AREA
40:A8 added to MCGA mode, to match real PS/2 MCGA
hardware.
- FAT driver now updates the Disk Parameter
Block when activated, and provides as much
from the FAT filesystem as possible. It is now
possible to run Microsoft MS-DOS 6.22
SCANDISK.EXE on a drive letter attached from
a disk image.
- Disk Parameter Block is now the proper full
size. The limited 9 bytes/block hackery has
been removed.
- Added INT 25h/INT 26h emulation for FAT drives
mounted with IMGMOUNT.
- Fake disk paramter table fixed to indicate one
reserved sector.
- Fixed INT 25h/INT 26h to return an error rather than
silently fail with success. Emulation of these calls
exist currently only as stubs and, according to
source comments, as a workaround for MicroProse
installers. For disk diagnostic software like
Microsoft ScanDisk it is better to signal an error
until INT 25h/INT 26h are fully implemented.
- Added dosbox.conf option to control whether INT 10h
VESA BIOS function AX=4F00h (Get SVGA information)
zeros the entire 256-byte or 512-byte structure or
not. Turning the option off (no zeroing) allows
"Get Saddam!" to run with SVGA and VESA BIOS
extensions enabled without crashing. The developer
calls INT AX=4F00h but does not provide enough
storage space for the full 256 byte structure,
only enough for the base structure defined by VESA.
- INT 2Fh updated to explicitly mention SMARTDRV or
DBLSPACE if values of AX are known to match their
API.
- VESA BIOS modelist now includes S3 OEM video modes
as documented by the RBIL, and needed by Line Wars II.
- OpenGL output now clears 3 frames instead of 2 after
mode change to deal with nVidia hardware that
reportedly triple buffers OpenGL rendering in
Windows.
- INT 21h fixed to always enable the A20 gate through
HIMEM.SYS if dosbox.conf indicates a configuration where
XMS is enabled, the HMA is enabled, and DOS is loaded
high (DOS=HIGH), which is the default configuration
for DOSBox-X.
- XMS emulation fixed not to allow conventional memory
block addresses (source or dest) if it extends past
the 1MB+64KB-16 range normally accessible from real
mode, as per Microsoft XMS test program.
- XMS emulation fixed to disallow XMS block move/copy
with an odd length byte count, per Microsoft XMS
specification.
- XMS emulation no longer allows freeing a XMS block
handle that is still locked, as per Microsoft XMS
specification and testing software.
- Enhance existing INT 68h fix for "PopCorn" by adding
a dosbox.conf option to always keep INT 68h NULL,
so that it's possible to run the game in machine
configurations other than CGA.
- EGA/VGA: Fix "dynamic parameter save area" pointer,
to make sure it's initialized to zero properly.
This is needed to run "Get Saddam!" in VGA mode
without crashing.
- INT 10h AH=12h BL=10h no longer responds in
machine=mcga mode, which allows Thexder to run in
256-color mode properly when emulating MCGA.
- Added code to silence the PC speaker, if it was left
on at reset, at BIOS POST.
- Added pause at BIOS POST (after reset), with
dosbox.conf option to control, so that screen contents
at reset can be seen.
- Writes to unmapped 0xE0000-0xE7FFF in PC-98 mode no
longer print a "write to ROM" warning. PC-98 games
and software like to zero that region whether or not
the 4th bitplane is enabled.
- PC speaker emulation now takes into consideration
the case when the 8254 timer has been given a control
word without a counter value, in which case no sound
is to be emitted until a control word is written.
This fixes "Titus the Fox: To Marrakech and Back"
when the game fails to detect Adlib (OPL2) hardware.
- Adlib polling hack no longer needed.
- Floppy controller emulation fixed to support sector
sizes other than 512 bytes per sector.
- Floppy controller fixed to always set "seek completed"
status bit after seek/calibrate, not just when the
head hits track 0 (programming mistake).
- PC-98 40-column text mode is now supported.
- Integrated commits from mainline (Allofich)
- In the mapper, display disabled items or events
with no binding in grey.
- Implemented BIOS beep sound for ASCII character 7
- Return failure for INT 13 format calls if the
drive is inactive.
0.82.20
- Dynamic core IMUL instruction mistake fixed,
signed multiply works properly again.
- PC-98 graphics emulation fixed to render only the
number of active display lines programmed into
the GDC instead of matching the text layer. This
fixes the status bar at the bottom of the screen
in "First Queen" and "First Queen II".
- Normal CPU core fixed not to immediately process
interrupts on STI but to wait a little bit so that
a STI + CLI sequence does not cause interrupt
processing, according to real Intel 486 behavior.
- Unknown interrupts in PC-98 mode are now routed by
the DOS kernel through it's segment (60h) and back
to the BIOS through a JMP instruction. It appears
some TSRs for PC-98 determine whether or not
interrupts are in use by whether or not the segment
value is pointing at the DOS kernel (segment 60h).
- Re-added a20=fast by popular demand, though a20=mask
is still the default. a20=fast emulates the A20 gate
the way a virtual 8086 mode monitor does where only
the first 64KB past 1MB is remapped rather than
gating bit 20 of all addresses. Note that a20=fast
also matches the A20 gate behavior in DOSBox SVN.
- Bringing up the SDL drawn menus and then resizing the
window no longer "freezes" the display in SDL2 builds.
- IDE emulation now minimally emulates PC-98 I/O port
arrangement in PC-98 mode.
- Running a build that draws it's own menus, setting
output=opengl, and hiding the menus no longer causes
lag redrawing the screen every time the mouse cursor
moves.
- Memory limit is now 3.5GB for 64-bit builds and 1GB for
32-bit builds.
- Maximum memory limit is now 3.5GB, code fixed to better
enforce the limit.
- Mixer and VGA capture code fixed to signal error if the
memory address exceeds the amount of system memory.
The general design of DOSBox-X memory I/O means that if
physical memory writes are made beyond system memory,
DOSBox-X will write out of bounds and segfault.
- DOSBox Integration device now offers the program inside
to capture the VGA output, for automated testing.
- DOSBox Integration device now offers reading emulator
time (PIC_FullIndex()) and setting a watchdog timer
that triggers an NMI unless reset. Intended for use
with automated testing.
- Debugger INTHAND command now works properly in protected
mode.
- DOSBox Integration Device now provides an interface for
code within to listen to the mixer output (to hear
itself) for automated testing purposes.
- Gravis Ultrasound emulation fixed not to run or compute
voices and ramps if the DAC enable bit is not set.
- Gravis Ultrasound emulation now offers a hack to ignore
writes to the Active Channel register if the DAC is active
and rendering audio (Ice Fever demoscene hack).
- SDL drawn menus fixed not to interact or draw while 3Dfx
emulation is using OpenGL, to prevent it from disturbing
the OpenGL context for 3Dfx emulation.
- NMI interrupt handling fixes to resolve instruction pointer
corruption if NMI interrupt triggered while a CPU core is
executing instructions (i.e. triggered by I/O handler).
- DOSBox-X integration device now provides an interface to
trigger IRQ and NMI signals.
- Integrated commits from mainline (Allofich)
- Improve disk image mounting: cycle disks only for the
drive being mounted.
- FAT drive fixes and improvements. Identify floppy format,
and support filesystems that use only part of the disk.
Fixes Make Your Own Murder Party and Music/Pinball
Construction Set.
- Return correct error code for verify sectors function
when an invalid drive is specified. Fixes Hugo Troll game
installers.
- Prefer ncurses above curses (on some systems, these are
still different packages)
- Give a warning at startup if dpi scaling is detected.
- Show segment override on XLAT instruction.
- Change scan3x to be LINE LINE DARK instead of LINE DARK
DARK. This matches pictures of scanlines better and doubles
the brightness as the old implementation was rather dark.
- Make it possible to compile without PNG support.
- Report when a -conf file can not be loaded.
- When searching CD-ROM directory entries, strip trailing
period of extension-less filenames after stripping file
version number and separator. Fixes disc check in Air Power.
- Add Unit Number and Bytes Per Sector fields for DPB
entries. Fixes Air Power installer and Windows 3 Virtual
Memory dialog.
- Reset write ops after drawing text in EGA graphics modes,
consistent with EGA/VGA BIOS. Fixes Fun School 3.
- Make Allocation Info work for CD-ROM drives. Fixes Bureau
13 installer.
- Prevent double-loading of CD-ROM images.
- Don't generate sound after DMA is masked at end of single
cycle transfer. Prevents issues with some games.
- Use right field when dealing with joysticks.
- Check for both read-only modes when writing files to drive
- Correct one-off error in paging table size compare for
when not using USE_FULL_TLB
- Make CMOS equipment list startup display mode bits differ
from BIOS on EGA/VGA. Fixes Sauro.
- Implement port 62h with timer 2 output for CGA and
Hercules machine types; fixes Frank Bruno's Boxing and Math
Maze.
- Acknowledge mouse interrupt before entering user routine;
fixes sound stutter during mouse movement in Eye of the
Beholder III and Casino Tournament of Champions. Clear
button counters in the mouse driver reset function;
prevents unintended skipping of intro in MechWarrior and
others.
- Correct relative track length in subchannel data for
CD-ROM images; fixes speech audio cutting off too soon in
Casino Tournament of Champions.
- Reset followed by switch to UART mode should take some
time; fixes MPU detection in F29 Retaliator and Hover Force.
- Ignore unrequested data in intelligent mode; fixes Roland
sound in Krusty's Fun House.
- Repair double slash in configfile location on Macs. Add
some protection against a NULL dirp.
- Fix loading of configfiles specified with -conf but
present in the userdir with -userconf present.
- Fix up DOS_Drive_Cache::GetShortName.
- Change multi-remain to repeat last parsed value for
non-string types if the next value is empty and of the same
type as the last. Use this to add an optional parameter to
sensitivity which controls the y axis. When optional
parameter is missing, x and y axis have the same value.
Change limits on sensitivity to allow for negative values
so the Mouse Y-axis can be inversed.
- Correct bug related to signedness.
- Improve prefetch and simple cores to not switch to normal
core on trap execution. Fixes the demo version of
Prehistorik 2 and similar cases that use the trap flag and
prefetch tricks.
- Check lengths before adding C-style strings together.
- Fix unmounting of complex drives where parts were left and
file pointers were kept open.
- Stop storing raw modrm value. Should save an instruction
on each get_modrm call.
- Strip leading = from value. Can happen if you execute
"irq =5".
- Don't remove bytes from autoexec.bat when changing
settings from autoexec.bat, but replace them instead. This
way the location stays valid.
- Let dynamic core recompile interrupt instructions in
non-debug builds. Can help software with many INTs, such as
compiled BASIC, run faster.
- Add logic in mouse driver to ignore button events that
are out of sequence. Fixes International Rugby Challenge
when clicking to lock the mouse.
- Use a more compatible offset for DOS redirected interrupt
vector. Works around a null pointer bug in the notes dropdown
list of Jack the Ripper.
- Reqrite pop_ev so it can trigger pagefaults again. Fixes
Win 3.11.
- Fix uninitialized access to some isoDrive fields. Pause audio
before switching. Use right subunit with multiple CDs on one
drive letter.
- Move all stack alignment operations into one place and
some optimalisations to RISC x64 dynamic core.
- Merged in MAME sound from mainline, except for Tandy sound.
0.82.19
- Prefetch core fixed up, made more aggressive, and string
instructions (REP MOVSW) cause more prefetch. "Stereotype"
demoscene production can run again.
- DOSBox Integration device now allows ISA DMA read/write
injection.
- 8237 DMA emulation now supports PC-98 "auto bank increment"
functions, which automatically increments the DMA page number
on DMA wraparound. Sim City 2000 needs this to play it's
digitized sound effects properly.
- 8237 DMA emulation now enforces read/write mode provided by
guest. If the DMA is configured for reading from system
memory, then attempts to WRITE to memory via DMA must fail.
Just like real hardware.
- 8237 DMA block transfer cleanup, de-duplication.
- 8237 DMA block cleanup allows implementation of 8/16-bit DMA,
forwards and backwards.
- PC-98 keyboard corrections (not yet verified to be accurate
to hardware though) to solve problems where holding a key
while running a program that is slow to respond to input
can overrun the buffer and fail to handle additional input.
- VGA BIOS size changed to 0x4000 (16KB), because 0x3800
is not liked by Windows 3.0.
- Font vector is now INT 44h for PCjr and Tandy emulation,
INT 43h otherwise as documented in the RBIL.
- Graph key (PC-98 mode) no longer registers as keyboard
input to INT 18h. EDIT.COM's menu is now usable.
- PC-98 INT 18h AH=02h fixed to return the correct keyboard
status byte as documented
- Local directory filesystem support now applies timestamp
before closing the file handle, which should help with
timestamps even if the filename is not directly valid
on the host operating system or filesystem.
- DOSBox Integration Device moved to I/O port DB28h-DB2Bh
in PC-98 mode to avoid conflicts with DMA controller
registers.
- DMA controller is now completely disabled in IBM PCjr mode
(machine=pcjr) to match real hardware.
- COPY command now copies file date/time as well.
- INT 2Fh AX=1600h no longer logs an error as unimplemented.
(Allofich)
- COPY.EXE removed, so that the built-in COPY command can work.
- PC98UTIL fixed to re-enable the text layer after the BIOS call
for /24khz and /31khz options.
- PC-98 INT 18h AH=30h now allows setting the 480-line mode.
- (PC-98) Port 6Ah command 40h/41h, CRT vs Plasma/LCD mode,
added.
- PC98UTIL.COM now updates the menu item for PC-98 GDC clock
speed when changing GDC clock speed.
- Added to PC98UTIL.COM the /24khz and /31khz switches to change
hsync rate.
- Updated PC-98 graphics plane emulation to more properly
handle the 5MHz GDC mode, and the IM bit in the GDC parameter
RAM.
- INT 18h AH=30h and AH=42h mode set fixed to update CPU and
display pages correctly.
- INT 18h AH=30h (PC-98 mode) now permits graphics layer changes.
- INT 18h AH=30h (PC-98 mode) now permits changing hsync rate.
- INT 18h AH=31h (PC-98 mode) now uses BIOS data area to
return hsync rate (24KHz vs 31KHz)
- INT 18h AH=42h (PC-98 mode) now uses BIOS data area to
determine 5MHz GDC instead of internal state to better emulate
actual hardware behavior.
- PC-98 text console output now fills both cells of doublewide
characters on the text layer.
- PC-98 port 6Ah now handles command 82h/83h and 84h/85h which
allow the guest to reprogram the GDC clock frequency (2.5MHz
or 5MHz). This is necessary to handle strange Windows 3.1
behavior where entering a DOS program fullscreen causes
Windows 3.1 to reprogram your GDC to run at 5MHz regardless of
the BIOS (or dosbox.conf) setting.
- PC-98 port 68h now supports command 0Eh/0Fh to enable display.
- Integrated commits from mainline (Allofich)
- Lower the influence of the aspect table correction
trick when using high scale factors (320x200 => 2000x1200).
- Correction done to Hercules video height parameter.
- The mapper now uses the wrapper as well
- Fix the possible/suggested values for integer
properties.
- Do less to update the frequency of an active SB
DMA transfer. Fixes sound in Tempest 2000.
- Add missing --disable-fpu-x64 option
- Use clock_gettime when available instead of the
obsolete ftime.
- Allow CRTC read/write access on all mirror ports for
non-VGA machine types. Fixes Tandy and EGA display in
International Hockey booter.
- Handle "copy H*.txt file.txt" correctly
- Fix detection of always_inline attribute with MinGW 4.9.2
- Introduce mount -pr to mount paths relative to last
loaded configuration file.
- Use normal teletype function for non-ANSI output so the
default attribute 7 applies only to graphics modes and
existing attributes are not changed in text modes.
- Improve compatibility of internal mouse driver with
respect to video mode changes and hiding the pointer, and
handle font reloading as a kind of mode change. Also fix
unlocked mouse pointer to recognize the full range of
tweaked/fontloaded text modes.
- Bring OS2 port up to date.
- Ignore/remove single % in batchfiles.
(Fixes B13Demo batchfiles on PC Gamer cover disc 1995-08)
- Clear incomplete Sound Blaster DSP command at reset,
fixes Romancing Prince.
- Add some more cases to the Alt-Tab detection.
- Add alternate font tables and associated loading logic
in video BIOS, allowing correct gaps between "wide"
characters (e.g. m,w,M,W,T,Z,0) in all VGA machine types.
- Update all related BIOS memory values and CRTC registers
when loading fonts.
- Improve support for MDA emulation in the vgaonly machine
type, as it is the only way the video BIOS can make use
of the 14-line alternate symbols.
- Be compatible by setting the INT 43h vector to the first
half of the 8-line font table for standard text modes.
- Move VESA mode table and OEM string before font tables
in the video ROM, which is a more compatible ordering.
- Add opl3gold option to oplmode setting. With this option
the Adlib Gold music can be selected in Dune. Only music
without effects is supported. FM volume control does work.
- Add hardware text mode cursor support.
- Rework FCB_ParseName
-- Remove special code for . and .. as it was wrong
-- Continue reading the input string, when the max length
of the field has been reached (123456789.12345 is read and
returned as 12345678.123)
-- Strip spaces before and after reading the separators.
-- The drive is always parsed (if present), it doesn't
depend on the existence of said drive.
-- Fix parsing of .EXE and other extension only names
-- Always clear out current block and record size.
- Correct AX and BX, they contain information on the
existence of the drives specified in the FCBs in the
execute block
- Rework the parsing of arguments into the FCBs
- Use full mask; fixes label search on FAT drives.
- Don't write past the terminator in the DTA name field
when setting search results. This is what DOS does, and
writing junk after the terminator was not good in any case.
Fixes file listing in the 16-bit version of Galaxy Player.
- Improve rename support for when renaming files (in a
folder) on a drive different from the current one.
- Improve internal ANSI support to adapt to currently
displayed columns and rows. Fixes original Infocom
interpreters when using something other than 80x25.
- Handle double-quoted values and quoted values in
dosbox.conf files.
- Speed up GetHexValue.
- Restore 1,2,3,4,5 as run 5,500,1000,5000,10000
instructions.
- Change BIOS equipment list to indicate DMA not
supported on PCjr machine type, which fixes PCjr
detection in old versions of Ancient Art of War.
- Correct some offsets in the DTA for FCB-based search
results. Fixes DIR listing in COMMAND.COM from MS-DOS
and file info in XTree Gold.
- Prevent a multiplication overflow and more accuracy
by using floats for attack rate loop
- Set record size to 128 if it is 0 in the FCB when
calling any FCB read/write function
- Fixes for acad 10:
- Add missing reference counting when the file is
already open when calling FCB_Open, so that acad, which
uses FCBs and normal handles on the same file, works
better.
- Remove FCBs being added to the PSP filetable and
rewrite most functions to support this change. This way
acad won't run out of temporary (fcb) files when low on
memory.
- More flexible setting of version with "VER" command.
- Fix screen clearing when setting mode 0xA on PCjr
machine type.
- Fill DTA for FCB search results more like real DOS,
fixing hang in SETUP.EXE and MSDOSD.EXE from Windows V1.01.
- Add support for mode 8 row copy/fill. Fixes Tandy
GW-BASIC interpreter SCREEN 3 scrolling/clearing.
- Map inactive video memory regions as empty rather than
filled with RAM. Fixes later version of Sargon 3 on color
machine types.
Set color modes (to the extent that they can be) on the
Hercules machine type if the BIOS equipment list is not set
to monochrome. Fixes missing text in Victory Road.
- Graphics mode text drawing improvements:
-Font source according to machine type.
-Use compatible method of determining fill attribute for
textmode screen scrolling in teletype function.
- Prevent DOS buffered input function from hanging in an
infinite loop when redirected input reads a linefeed or
reaches EOF.
- EXEC improvements, mostly for the load-but-do-not-execute
function.
- Stop writing uninitialized junk into first shell's command
tail at startup.
- Support writing palette register data to dynamic save area
if pointer is non-zero on mode changes. Fixes CV 2.2.
- Be more compatible by converting tabs to spaces in the DOS
console device rather than in the video BIOS teletype function.
- Make the internal program for loading ROM images a bit
smarter about what it can/will load. Also provide for BASIC
in ROM to support IBM BASIC interpreters.
- Correct page count/size for CGA graphics modes. Fixes RS-2
on the CGA machine type.
- Raise lower limit of cycles in autodetermine mode to
improve stability.
- Fix for 256 color encoding in zmbv.dll codec
- Rework ListMidi so it can be more easily added to more
backends.
- Implement mixer /listmidi for coremidi.
- Increase size of SysEx buffer to support Sierra's Yamaha
FB-01 driver.
- Add improved breakpoint handling to the debugger
- Rewrite the order of the debug help list so the keys come
last
- Clip to boundaries when there are no suggeted values for
Prop_int
- Implement an obscure behavior of the VGA DAC. Fixes wrong
colors in Planet Soccer/Football.
- Use default attribute behavior of ANSI.SYS in the console
device. Fixes scrolling issues. Anything that wants non-ANSI
behavior may not display as intended with the internal DOS,
same as real DOS when ANSI.SYS is loaded.
- Lower default adlib volume with 2.5dB, based on
measurements
- Add experimental name support to configmidi for coremidi
- Add support for selectig midi devices by name to win32
midi
- Make IRQ generation in Write_MCR consistent with
ComputeInterrupts when op2 changes.
- Update mixer volume calculations for the SBPRO 1 and 2 and
the SB16, based on measurements.
- Repair a logic error in cycle max calculation
- Introduce a random sleep period, which activates after 3
short sleeps in one frame.
- Adjustments to cycle ratio computation.
- Process repeated reset commands without delay. Fixes MPU
detection in several games. Correct ACK for reset: entirely
absent with dumb setting (mpu401=uart), and also absent when
returning to intelligent mode from UART mode.
- Allow for direct changing of 4op chaining without having
to rewrite the algorithm mode.
- Enable core inlining by default on configure/make build
system
- Limit amount of polls per second a bit on MAC OS X, as it
was quite high otherwise.
- Add basic support for INT 13 call 15. Used by Korean
Powerdolls to detect harddrive.
- Add ALSA MIDI 0xA0 and improve unhandled message
reporting a bit.
- Support rarely used FCB feature: open file with search
mask. Fixes Buckaroo Banzai.
- ANSI emulation is activated for the session when an
escape sequence is encountered other than those used by
internal messages. Fixes LucasArts setup programs provided
that ANSI emulation is not activated.
- Flag handling for normal core: zero and sign flags for
integer multiply instructions.
- Strip spaces properly.
- Improve disk serial number DOS functions.
- Only add return to buffer if it already contains data,
which fixes extra return in generated autoexec.bat.
- Lock default label of HDD local drive mounts. Fixeslabel
changing to the host drive label when resetting cache on
the Windows platform.
- Fix echo off being written twice. Attempt to make the
line endings in the generated autoexec.bat all DOS-style.
- Take length in consideration before moving the echo off
upwards.
- Fix ExpandDot not caring about the size of the buffer.
(vogons topic 59658)
- Be less specific about the jump instruction when
identifying a video BIOS.
- Return an error for generic block device request on
unmounted floppy drives.
- No Sound Blaster IRQ generating when masking the IRQ
channel.
- Improvements for IOCTL generic block device request
- Make Media ID table relative to DPB table. Fixes
Hattrick by Ikarion.
- Support some installer disk detection methods: block
device count, and specific MBR/boot sector contents.
Fixes (original) SimCity, Amberstar, and later MicroProse
installers.
- Fix GetLabel() for the virtual drive.
- Integrated a commit from mainline:
#3860 "Use PCJr specific method to clear the video RAM.
Also don't scroll at unspecified video page.
Fixes issues with KQ1 and KQ2."
- PEGC emulation will now print a warning if the guest
application or OS attempts to use 256-color planar mode.
- PC-98 PEGC 256-color linear framebuffer is not mapped by
default anymore, except when 256-color mode and the enable
bit set, to match real hardware.
- PC-98 PEGC 256-color emulation fixed not to respond to
MMIO registers related to 256-color planar mode according
to real hardware behavior. 256-color planar mode support
is planned in the future.
- Remove old dynamic x86 core. Dynamic core is exclusively
dynrec now.
0.82.18
- Added debugger command "VGA CRTC" for the CRTC section of
VGA emulation.
- Added debugger command "VGA DAC" for the DAC and "VGA DACPAL"
command to view the VGA color palette.
- Added debugger command "VGA GC" for the graphics controller
section of VGA emulation.
- Added debugger command "VGA SEQ" for the sequencer section
of VGA emulation.
- Added debugger commands "VGA DRAW" and "VGA AC" to view
drawing and attribute controller state in the VGA emulation.
- Integrated commits from mainline (Allofich)
- CD audio status now returns zero start and end times
when no track is playing. Fixes "The Manhole".
- Add "ADDLOG" debug command to manually add a message
to the log.
- "Strip off leading zeroes from the IP", a fix for
the serial modem.
- Add a small delay when raising the Sound Blaster
8-bit IRQ to emulate the slowness of the DSP, fixes
Llamatron 2012 and Lemmings 3D.
- Add ability to set debugger breakpoint on AL values.
- The SB DMA callback now ignores previously selected,
but not currently selected, DMA channels. Fixes Visual
Player 2 with SB16.
- Minor cleanup to joystick code.
- PSG noise channel emulation (PC-98 FM board) apparently
broke on Mac OS X due to type promotion by Clang/LLVM.
Modified the code to behave as originally intended, to
restore the PSG noise channel on Mac OS X.
- Added debugger command "DOS FNKEY" to view PC-98 scan code
escape mapping.
- PC-98 EGC ROP 9Ch added, apparently used by Windows 3.1
CALC.EXE
- PC-98 INT DCh CL=0Ch/CL=0Dh AX=01h through AX=28h added,
which allows individual function/edit keys to be read or
modified.
- Dynrec dynamic core is now default even on 32-bit builds.
Dynx86 dynamic core is still an option at this time if you
compile from source.
- PC-98 INT DCh CL=0Fh AX=0h/1h added.
- PC-98 INT DCh CL=0Ch/CL=0Dh added AX=0 handling as well.
- PC-98 INT DCh emulation now support INT DCh CL=0Ch/CL=0Dh
AX=FFh so that some programs (including SEDIT.EXE) can set,
re-define, and restore the function key row.
- PC-98 MS-DOS emulation now injects escape codes from a table
for the function keys instead of hard-coded as it does on
real MS-DOS.
- PC-98 MS-DOS emulation now supports Shift+Fn (shift+Function)
to inject shortcuts into the CON device.
- PC-98 MS-DOS now accepts CTRL+F8 to clear the screen.
- PC-98 MS-DOS function key row now accepts CTRL+F7 to toggle
between none, function keys, and shortcuts.
- PC-98 INT 18h AH=42h display area setup now cancels pending
vsync interrupt. This fixes display issues with Quarth when
interrupting the game's demo mode to enter the main menu.
- PC-98 emulation now emulates port 6Ah command that controls
128KB/256KB VRAM wraparound.
- INT DCh CL=10h AH=04h through AH=09h added.
- INT DCh CL=10h AH=03h call to set cursor position (backdoor for
ESC = ANSI code) added.
- Added parsing for ESC M / ESC D and ESC E in the DOS ANSI driver.
- New debugger "VGA" command added to view additional emulator
state.
- Debugger input bar (at the bottom) fixed to position correctly,
mistake in the code that caused it fixed.
- PC98 debugger command now supports viewing text, graphics, CG,
GRCG, and EGC state.
- New debugger command "PC98" to view PC-98 emulation state in
the debugger.
- New debugger command "EMU" added to view additional emulator
state.
- Debugger data view now shows linear and physical memory address
for the memory address you're viewing when the CPU is in
protected mode. The physical memory address display is useful
when 386 paging is enabled.
- Debugger command "SM" now accept B: W: and D: prefixes to
write BYTE, WORD, and DWORD values to memory.
- Debugger command "SR" now accept multiple pairs of registers
and values in one command.
- Debugger commands "EV" and "SM" will no longer hang DOSBox-X
on invalid (unrecognized) input.
- Added "EV" debugger command to allow viewing CPU registers
at the command line, including CPU registers not shown
in one of the windows of the debugger UI.
- Debugger will now explicitly tell you if it does not
recognize the command.
- Debugger fixed not to leave your command uppercased on the
command line if it does not recognize it.
- Debugger "SR" command updated to allow setting upper/lower
halves of AX/BX/CX/DX, additional CPU flags and the whole
flags register.
- Added INP/OUTP commands to debugger to aid debugging
I/O ports.
- 8086 and 286 cores now emulate a known bug where an
instruction with multiple prefixes that is interrupted
will resume at only the most recent prefix.
- PC-98 planar emulation optimized and cleaned up.
- Configuration GUI no longer crashes at startup if run
from the command line using the --startui or --startgui
command line options.
- Configuration GUI fixed not to allow multiple instances
of the same settings window.
- Emulator speed controls added, if for any reason you'd
want to play a game faster or slower.
- Configuration GUI AUTOEXEC editor fixed so that
"Append History" button actually works.
- Fixed configuration GUI to show keyboard options instead
of the mapper interface when you click the "Keyboard"
button.
- "Show details" menu option now also enables the realtime
percentage display.
- Mac OS X builds fixed to use older convertRectToScreen
function instead of convertPointToScreen, which allows
others to compile DOSBox-X on Mac OS X versions older than
Mojave (despite Apple documentation claiming that
convertPointToScreen was added in 10.12).
- Shift and Alt key modifier handling within the configuration
GUI now works properly in SDL2 builds.
- Fixed prefetch queue emulation to allow 8086, 80186, and
286 CPU types to run with prefetch queue without crashing.
- CPU type selection menu will now cause guest to reboot
if new cpu type is incompatible with the BIOS prologue
and epilogue code that was generated at startup, to
avoid crashes.
- PC-98 NEC copyright string option now also installs
another set of data in another location in the BIOS,
that Windows 2.1 checks for.
- Minimum MCB free value now has a higher default value in
PC-98 mode to reflect the fact the platform usually has
more loaded into lower memory at runtime. You are allowed
to specify a lower value in dosbox.conf for anything that
needs more memory.
- GUS and Sound Blaster environment variable installation
is now quiet, does not echo the variable on screen at
startup.
- INT 21h country-specific info now returns correct info
for PC-98 mode.
- INT 21h DBCS lead table now contains correct values in
PC-98 mode.
- Added more PC-98 EGC raster opcode emulation. The PC-98
version of Windows 3.1 now displays properly without
issues, except for line drawing.
- Added INT 10h VESA BIOS function AH=08h "SET DAC WIDTH"
so that, when enabled, DOS applications can switch the
DAC from 6-bit to 8-bit.
- Added basic 256-color mode emulation to PC-98 mode.
Linear framebuffer, needed by PC-98 ports of DOOM and
Wolfenstein 3D, is implemented. Bank switching, needed
by a few PC-98 games, is implemented.
- MPU-401 emulation now accepts dosbox.conf option "mpubase"
to control the base I/O port of the MPU-401 interface.
The option can be set to "0" to tell DOSBox-X to pick the
best default. Works in either IBM PC or NEC PC-98 mode.
See dosbox-x.reference.conf for more details.
- Fixed Sound Blaster 16 mixer IRQ/DMA select registers
to work in PC-98 mode as they apparently do on real
hardware.
- Sound Blaster 16 and Adlib emulation now available in
NEC PC-98 mode. I/O port mapping is based on a real
SB16 card for PC-98 and some documentation. Only OPL3
emulation is supported for Adlib. sbtype must be set
to sb16.
- NEC PC-98 emulation mode now emulates DMA controller.
- Gravis Ultrasound emulation now allows game to read back
the channel's Pan Pot register.
- Sound Blaster 16 now implements 0xF9/0xFA fully, even if
the RAM contents they expose are not fully implemented.
- Sound Blaster DSP command E2h (DMA identification/test)
code cleaned up and simplified.
0.82.17
- Fixed yellowish tint of tv3x scaler on SDL1 builds of
Mac OS X.
- Fixed hq2x/hq3x and the various sai render scalers to
render correctly on SDL1 builds of Mac OS X (where the
odd BGRA color order is used). Prior to this fix the
scaler output had a very strong yellow tint (missing
or misrendered blue channel).
- Fixed basic scaler template code to render correct RGBA
colors in SDL1 builds for Mac OS X.
- New grayscale scaler option, to emulate monochrome VGA
monitors (frank-deng)
- Menu handling cleanup from within Pause loop, including
Mac OS X menu problems when invoking pause from the
menu bar.
- Shell welcome text fixed to show consistent first line in
both IBM PC and PC-98 mode.
- Pause mode fixed to handle mouse input while paused, so that
SDL drawn menus (on Linux or HX DOS) continue to work while
paused.
- Added dosbox.conf option (off by default) to add the
NEC PC-98 copyright string at E800:0DD8 for games and
applications that require it.
- Debugger can now show guest MS-DOS kernel MCB chain if you
boot an MS-DOS floppy or hard disk image using
BOOT --boothax msdos. For use with MS-DOS 3.3 or higher
including the real mode MS-DOS environment of Windows 95.
WARNING: Use boothax msdos ONLY with real mode MS-DOS, do
not use with the protected mode environment (desktop) of
Windows 95 especially a DOS VM within Windows. Use with
MS-DOS and a DOS extender (DOS4GW, etc) should be OK.
- Added "--boothax <mode>" option to BOOT command. At this
time <mode> is limited to "msdos" to instruct the emulation
to intercept specific INT 21h calls to locate the MS-DOS
kernel's List of List and MCB chain structures for use with
the debugger.
- "TV" scaler updated to render dimmer alternate scanlines
in CGA graphics modes (frank-deng)
- Direct3D output no longer leaves DOS screen frozen when
Direct3D device is "lost" (such as hitting CTRL+ALT+DEL
to bring up the Windows C+A+D screen).
- Page fault handling on by default now for dynamic core,
DOS games and Windows 3.1 seem to handle it OK.
- Page fault handling no longer use non-recursive page fault
method with dynamic core, no matter what. It's too unreliable.
- PC-98 mode now switches PIT Timer 2 clock gate ON by default
to satisfy delay loops in Sunsoft "Photo Genic" and allow it
to run. Note that PIT Timer 2 drives the baud rate clock of
the RS-232C port.
- IDE emulation bug fixed that prevented BIOS to IDE
geometry translation when BIOS head count == 255. This
fix also allows Windows 95 to use it's IDE driver with
>= 4GB hard drives instead of running in MS-DOS compatibility
mode.
- Disk image support fixed to allow 4GB or larger hard disk
images to work again.
- FPU x86 core no longer calls E_Exit if the FPU stack
overflows or underflows.
- Updated build-debug scripts to accept "32" on the command
line as a sign to compile 32-bit (i686) on a 64-bit (x86_64)
system. You will need a multilib-capable GCC and 32-bit
libraries installed on your system for this to work.
- SDL2 OpenGL fixed color order issue
- OpenGL is now supported in SDL2 builds.
- Changed MPU-401 reset duration (DOSBox SVN).
0.82.16
- SDL1 support fixed to gracefully handle a case where,
under Windows XP, with a audio device that is not cycling
any audio DMA, DOSBox-X can hang on shutdown.
- SDL drawn menus now shift and adjust popup menu position
to ensure the popup is entirely within the screen in cases
where the window is too small. Redraw issues related to
that (overlapping item and popup menus) have been fixed.
Minimum window resolution has been reduced to 500x300,
enough to permit EGA 640x350 displays without a black
border.
- Fixed INT 18h AH=13h not to automatically show the cursor
(PC-98 fix), which fixes the visible blinking cursor
problem during games.
- VS2017 project files can now compile DOSBox-X to run on
ARM versions of Windows RT (driver1998)
- Local filesystem support fixed to sanitize DOS dates
before applying them to files on the host filesystem
so that invalid dates within DOSBox-X do not make invalid
dates on the host filesystem.
- VS2017 project files can now compile DOSBox-X to run on
ARM64 versions of Windows 10 (driver1998)
- Fixed FAT driver progamming mistake (inherited from
DOSBox SVN) that used the Windows 95 "Created" date/time
stamp rather than the original MS-DOS "Modified" date/time
stamp field.
- FAT driver now allows setting file date/time properly
on create or INT 21h call to set date/time, and updates
date/time on close after writing the file. Copy a file
to a disk image should preserve the date, and new files
created on the disk image should no longer have the
date/time stamp Jan 1st, 1980 12:00:00 AM midnight.
- Configuration GUI now allows user to exit dialog boxes
and windows by hitting the ESC key.
- Entering the mapper UI on Mac OS X will now hide all but
the Host Key button on the touch bar. Entering the
Configuration GUI will hide all buttons.
- If DOSBox-X is run on a platform where the GUI provides
a menu resource, bringing up the mapper will replace the
main menu with a mapper-specific menu until you exit the
mapper. Same for the configuration GUI.
- Mapper now allows user to exit by hitting ESC key three
times in a row.
- Windows MinGW builds now properly support and enable the
Direct3D output
- Mac OS X builds now contain the correct version number in
the application plist. Using the Finder's Information window
on the compiled application bundle will now show correct
version information.
- SDL1 builds fixed to always compile with internal SDL_net
library instead of public library on the system
- Mac OS X SDL1 builds fixed to always clip the desktop
dimensions against the available video modes provided
by the system to avoid problems with the 1080i/1080p
modes listed in the System Preferences dialog and older
HDTV LCD TVs with lower than 1920x1080 native resolution.
- "unmask keyboard on int 16 read" option is on by default,
to allow DOSBox-X to keep the keyboard working with
Windows 3.11 Windows for Workgroups.
- Added multi-monitor support and detection for Mac OS X.
- Fixed problem on multi-monitor Linux/X11 setups where going
fullscreen on the primary monitor leaves the non-fullscreen
window sticking out on the adjacent monitor.
- Windows SDL1 builds fixed so that on multi-monitor setups,
going fullscreen will fill the monitor the window is
placed on.
- Added support for multi-monitor and DPI determination for
Microsoft Windows.
- SDL1 and SDL2 builds now examine multi-monitor setups and
so that they can go fullscreen properly on one monitor
instead of going fullscreen across all monitors, in
Linux/X11.
- SDL1 OpenGL code fixed not to leave a blank space at the
top of the screen when going fullscreen (if the menus are
SDL drawn menus).
- SDL1 library modified to center cursor properly no matter
where on the overall desktop the fullscreen window exists.
- Multi-monitor and fullscreen support added for Linux/X11
versions of SDL1 DOSBox-X.
- For non-x86 targets, or x86 targets where the user prefers
not to use the x86 FPU core, code has been added to emulate
the FPU instructions and registers using the "long double"
data type for full 80-bit precision. This fixes 3D glitches
in "Explora" though it still doesn't pass the Intel i387
test program.
- PC-98 INT 18h AH=04h: Added software delay to slow down some
older PC-98 games that poll keyboard/mouse while animating
cutscenes. The games seem to be timed around the assumption
that this call has some delay to it. This fixes problems with
"Shangrlia" by Elf corporation and animation that runs way
too fast.
0.82.15
- Incorporated x86 FPU emulation from DOSBox SVN to improve FPU
precision at least on x86 and x86_64 targets.
- PC-98 port 6Ah fixed not to allow setting EGC enable unless
another EGC enable bit has been set, as specified in the PC-9801
bible.
- SVGA mode 0x10A (text mode) fixed to display properly instead
of only the top half.
- BIOS keyboard handling fixed in PC-98 mode so that Shift+Ro
types an underscore as expected.
- SVGA emulation (Tseng ET4000 and S3) fixed to reflect real
hardware behavior where BYTE/WORD/DWORD VGA bits in the CRTC
are ignored in SVGA modes.
- Added "debug page flip" and "debug retrace poll" options to
the menu.
- Added "Swap Floppy" and "Swap CD" commands to the menu.
- INT 2Eh (MS-DOS command interpreter interrupt) fixed so that
the segment value of the interrupt vector matches the PSP
segment of COMMAND.COM. Some DOS applications rely on that
segment value as a starting point to enumerate the MCB
chain.
- PC speaker emulation fixed not to print "queue overrun"
messages if the game or demo is attempting to use the PC
speaker while pcspeaker=off.
- PC speaker emulation fixed to improve accuracy and to ensure
the square wave is synchronized to the 8254 PIT output.
This change appears to have improved sound quality with
PWM "digitized speech" output.
- 8254 emulation fixed to improve overall accuracy
- 8254 PIT timer emulation fixed not to report writes to PIT 0
Timer counters if the game is writing the same value
repeatedly.
- 8254 PIT timer connected to PC speaker now handles new counter
value without causing full reset of the square wave (mode 3),
which allows DOSBox-X to pass all tests in DOSLIB.
- Added dosbox.conf option to control bus speed (and therefore
I/O delay) of the C-BUS in PC-98 mode. Added defaults
appropriate to PC-98 mode according to bus speeds documented
for PC-98.
- Timer clock gate emulation fixed to work properly in PC-98
mode as well as IBM PC mode, when the PC speaker clock is
enabled or disabled. This includes resetting the counter
on the 8254 when the clock gate (trigger pin) is turned off
[DOSLIB test TPCRAPI6.EXE]
- Introductory text now indicates whether the build was
compiled against SDL1 or SDL2 (emendelson)
- Windows SDL1 builds now remember window position even when
entering/leaving fullscreen mode.
- "Restart DOSBox-X" menu and command code removed.
- Linux/X11 window focus fixup. The change in 0.82.14 broke
main window focus handling entirely by forgetting to check
for the "window manager" window handle.
0.82.14
- Windows builds, if run on Windows 7 or higher, will now direct
the task bar preview to show only the part of the window
containing the DOS screen.
- SDL1 Mac OS X builds fixed to remember window position even
if going to or from fullscreen mode.
- Fixed mistakes with SDL2 surface output that caused serious
UI problems with fullscreen mode and fullresolution=original.
- Fixed problems with SDL1 Mac OS X and the window/dock menu
filling up with multiple windows that have long ceased to
exist.
- SDL1 Mac OS X startup code replaced with startup code from
SDL2 in order to run from main() cleanly instead of running
SDL_main from an OS X event callback. This also fixes the
problem of an unresponsive menu on startup if run from the
terminal.
- SDL1 Mac OS X builds fixed not to destroy and recreate the
window every time it is resized.
- SDL1 Mac OS X builds fixed to keep the window position
stable every time you resize or do anything to trigger
window recreation. Resizing the window no longer causes it
to re-center to your screen.
- SDL initializion fixed not to bail out on startup if
DOSBox-X is unable to initialize SDL1 CD-ROM support (ccawley2011)
- Segfault fixed (NULL pointer de-reference) that
occurs when running DOSBox SVN on anything older than
Mojave. DOSBox-X was not affected but the fix was applied
just the same because the possibility is there.
- Configuration GUI fixed to fade out with the right color
RGBA order on Mac OS X.
- Mac OS X SDL1 builds fixed to ignore mouse movement that
occurs outside the window, unless any buttons are held
down.
- Mac OS X RGBA color order error with output=opengl fixed.
EGA/CGA/MDA/Hercules/etc. modes should display properly
now on OS X with OpenGL output.
- SDL1 builds for Mac OS X now use the full Application
menu generated by SDL1 instead of just an About command.
- SDL1 builds under Mac OS X now support the "touch bar"
on Macbook Pro and offer a few basic shortcuts,
including a few that the touch bar makes much more
inconvenient to use since the function key row is
virtual on the touch bar instead of physical.
- SDL1 builds under Mac OS X now offer a few basic
DOSBox-X shortcuts if you command-click or double-tap
the application icon in the dock.
- Added support for taskbar extensions offered by
Windows 7 and higher that allow DOSBox-X to put
additional buttons in the preview pane that appears
when you hover over DOSBox-X in the taskbar.
- Centos 7 SDL1 builds (Linux X11) can now go fullscreen
properly, instead of making the user input devices
unusable running in an endless loop.
- Windows builds now include Mapper and Configuration GUI
commands in the system menu.
0.82.13
- Mac OS X SDL2 builds now use the native OS X menu
system instead of the "SDL drawn" menus.
- Mac OS X SDL1 builds now default to the OpenGL
output (if compiled with OpenGL support). Under
recent versions of OS X, OpenGL output gives
better performance than surface (CGBitmap) based
display.
- SDL2 builds now have working XBRZ scaler support.
- Mac OS X SDL2 builds updated to completely ignore
touch events, because SDL2 sees the touchpad on
Macbooks as a touchscreen. Prior to this fix, the
DOSBox-X UI was unusable due to mixed input events
from both the touchpad and the mouse input from the
touchpad.
- SDL1 High DPI support for Mac OS X users with Retina
displays.
- SDL1 fix for display problems (blank windows) on Mac
OS X 10.14.x (Mojave).
- Windows builds (compiled with VS2017) now have working
MT32 (Munt) emulation.
- Adjusting CPU cycles with F12 + - / F12 + + (Increment
and Decrement Cycles shortcuts) now updates cpu cycles
property. This fixes a problem where adjusting the cycle
count then changing the CPU core caused DOSBox-X to reset
the cycle count back to the original value.
- Linux/X11 support fixed not to assume XRandR extensions
are present, but to instead ask the X11 server first.
- Simple scaler rendering has altered the RENDER start line
state so that detection of a changed line triggers a block
of rendering without compare within a limited count before
checking again. This means a reduced CPU load with scalers
because it only detects frame changes every line before
changes detected, and then on average every 12th line
when running the scaler code. Hopefully this helps the
Raspberry Pi keep up with DOS gaming better.
- Simple scalers now offer compile-time (not run-time)
option to omit per-pixel compare in scaler and process
the entire scanline instead as a performance adjustment
for slower and embedded systems.
- Video debug menu added. First item is one that blanks the
display to test screen updating.
- Simple scalers (normal 2x-5x and SAI) revised to process
changes and scaler rendering in larger blocks for possible
performance improvement.
- Simple scalers fixed to properly compare all pixels to
detect changes properly, instead of only the first 4-8
pixels.
- EGA/VGA text rendering combined to reduce code copypasta
and reduce bugs.
- VGA 16-color planar modes now obey CRTC byte/word/dword
bits.
0.82.12
- MinGW HX DOS builds fixed to accept mouse input properly
even beyond the 640x480 of the original SDL window
dimensions. HX DOS seems to use the original dimensions
of the window even if the window is maximized, thus the
mouse input issue.
- Configuration GUI fixed not to restore (unmaximize)
the window, it's unnecessary.
- New build scripts for Mac OS X, MinGW, and MinGW HX-DOS,
under build-scripts in the source tree, to help make
DOSBox-X releases more timely and consistent.
- MinGW HX DOS builds now use WS_POPUP style instead
of WS_OVERLAPPED to avoid window caption redraw
glitches when in Windows XP.
- MinGW HX DOS builds fixed to force the SDL window
maximized at all times. Mapper and Configuration GUI
interfaces fixed not to call on Windows to SW_RESTORE
the window, in order to keep it maximized.
- Steel Gun Nyan PIT/Timer hack revised so that polling
the timer does not cause an interrupt storm. This
fixes "God of Thunder" MS-DOS game where entering or
leaving a house causes the Adlib music to play
REALLY FAST during the transition effect.
- Dynrec core ported from DOSBox SVN (Daniel-Trevitz)
- Configuration GUI will pack settings closer together
if the window/screen size is below 800x600.
- Configuration GUI fixed to size dialog boxes as
large as needed to show all options, to allow tabbing
between options, to show a focus rectangle on the
items.
- Configuration GUI top level windows no longer show
inactive title bar whenever you access a menu.
- About dialog in configuration GUI updated to
reflect that this is DOSBox-X in 2018, not
DOSBox in 2014.
- Configuration GUI now works with touchscreens in
SDL2 builds.
- INT 33h fixed to regard cursor as hidden if hidden
for at least 100ms, which fixes host cursor flickering
when running the built-in FreeDOS EDIT.COM program.
- Mouse input and guest pointer integration limited
to send input only if within the display region or
within a 10% border around the display region.
- SDL2 tapping the SDL drawn menu bar (on a touch
screen) no longer triggers mouse click in the
guest application (bugfix).
- SDL2 Linux/X11 hack, added to compensate for bugs
in SDL2 v2.0.5 regarding Linux/X11 touchscreen
events, removed. SDL2 v2.0.9 fixed it.
- Linux/X11 SDL2 builds will now encourage the user
to update the SDL2 library installation if
SDL2 library v2.0.5 is installed.
- Fullscreen mode fixed in SDL2 builds.
- Fixed configuration GUI fade out/in effect after
exiting mapper GUI bug.
- Configuration GUI now available and working in
SDL2 builds as well as SDL1.
- SDL2 builds now have a working "Fit aspect ratio"
option.
- SDL1 fullscreen mode fixed to use either the desktop
size or the desired output size, and fallback to
non-fullscreen on failure, to fix a segfault that
would otherwise happen.
- CONFIG -set sdl showmenu= now changes menu visibility.
- CONFIG -set render scaler= fixed to apply changes
to scaler and force setting, and update menu items,
instead of ignoring it.
- CONFIG -set render aspect= now keeps menu synchronized
with setting.
0.82.11
- SDL GUI fixed to make fade/sepia effect fit the
actual display rectangle instead of filling the
window.
- PC-98 BIOS keyboard handling now returns capitals
for A-Z if SHIFT xor CAPS LOCK is engaged.
- PC-98 BIOS keyboard handling now uses modifier bits
of keyboard bitmap to process scan codes, hackish
IBM PC/AT data area status handling in PC-98 mode
removed.
- PC-98 BIOS keyboard emulation now maps numeric keypad
to produce the correct keyboard input to the console
and games. This fixes games that rely on the numeric
keypad and the DOS console driver
- Command line parsing fixed to add any BAT, COM, and
EXE file references given at DOSBox-X's command line
to the autoexec.bat file run at startup.
- BOOT command bug fixed that made it impossible to
specify both disk images and the --debug and --force
options.
- Debug output fixed to make it easier to break into
the debugger even during a flood of debug output.
- Added dosbox.conf option to enable/disable the
PC-98 bus mouse interface
- PC-98 boot disks with 128 bytes/sector boot sectors
now load 4 sectors instead of 2. Seems to be
required by some games.
- INT 13h read/write functions fixed to refuse the
command if the floppy disk has a sector size too
large for the implementation (such as a PC-98
disk image mounted in IBM PC mode with 1024 bytes
per sector).
- INT 13h AH=2 (read sector) updated to return disk
change error on first read after disk change, to
match real BIOS behavior.
- Floppy emulation now tracks "disk change" signal.
- PIC event handling fixed, IRQ breakpoints now stop
at the beginning of the interrupt handler.
- MPU-401 MIDI default IRQ is now IRQ 6 in PC-98 mode,
to match factory default setting.
- MPU-401 MIDI IRQ masked by default in PC-98.
- PC-98 port BFDB implemented, which allows control
of the mouse interrupt rate.
- Eliminated mouse periodic interrupt hack, the mouse
interrupt on PC-98 is periodic when enabled.
- 256-byte/sector hard disk images fixed to ensure the
proper boot drive identifier is presented for MS-DOS
when booting a hard disk image.
- Added IMGMOUNT -o partidx=N option. N is an integer
value that indicates which partition to mount, counting
up from zero. This allows mounting disk images that
the FAT driver otherwise can't identify which partition
to mount.
- New general -o name=value option for IMGMOUNT, to pass
various options to the FAT driver.
- Update Metal Force mouse hack to become a more general
"fire interrupt on Port C write" with a dosbox.conf
option to enable. This fixes the requirement to move
the mouse constantly for "Amaranth" when enabled.
- Add to cascade interrupt hacks by offering an option
to ignore the "in service" bit of the PIC for the
cascade interrupt, while still tracking it for
the DOS game or interrupt. Handy for PC-98 games
that check the cascade "in service" bit before
acting on the interrupt (IRQ 8-15).
- DOS kernel fixed to limit it's private area and
UMB region to avoid overlapping the PC-98 SOUND
BIOS.
- PC-98 SOUND BIOS dummy stub added for games that
call into it.
- Emulator hanging problem fixed when inputs are
processed while running at a very low cycle count.
- Added PC-98 LIO BIOS list and stub for games that
require it.
- Timer and PIC updated to emulate Mode 3 Square Wave
output through the IRR register. Needed for Steel
Gun Nyan.
- PC-98 INT 18h fixed to reenable and process any
keyboard data waiting when the DOS game or application
calls INT 18h to read keyboard input. This fixes
keyboard problems with Quarth.
- PC-98 FDC BIOS emulation no longer reprograms the
timer interrupt, but uses an alternate hack to
avoid divide by zero fault with Ys II.
- PC-98 GDC command to read back cursor position
added.
- PC-98 DOS CON device emulation now maintains ANSI
attribute byte at 60:11D as documented.
- BOOT now hides hardware cursor when booting a guest
OS in PC-98 mode.
- INT 1Dh vector now points at segment FD80 to satisfy
some games that autodetect PC-98 vs other platforms.
- INT 18h AH=42 implement display "bank" bit for games
that need it.
- PC-98 text scroll region implemented (I/O ports
76h-7Ah even).
- PC-98 CRTC mode set regarding 20/25-line mode fixed
to update line height, text vertical position/height,
and cursor shape.
- PC-98 emulation of text height/vertical position
registers 70h-74h even added.
- PC-98 text hardware cursor fixed to cover both halves
of doublewide characters if cursor positioned on left
half, to match real hardware.
- Fixed music/interrupt slowdown whenever I/O and INT 10h
BIOS emulation is involved.
- PC-98 minimal (non-functional at this time) printer
port emulation added, as well as system configuration
port.
- PC-98 CG memory region fixed to match real hardware
behavior, responding to A4000-A4FFF.
- FAT filesystem driver now supports 2048 bytes per
sector filesystems.
- FAT filesystem driver logical/physical sector matching
fixed to improve flexibility.
- Fixed crash that occurs if you maximize the window
and then adjust scalers to produce output that is
larger than the maximized window.
- INT 33h emulation now offers hiding the host cursor
if the guest has provided an interrupt subroutine
for the mouse driver to call, since it usually means
the DOS game wishes to draw the cursor itself.
- INT 33h emulation now offers hiding the host cursor
if the guest is polling the cursor position, to
better support guest/host integration with DOS games
that draw their own cursor.
- AUX and PS/2 emulation no longer allowed if machine
type is PCjr.
- PS/2 mouse emulation fixed to disable itself if the
slave PIC needed for IRQ 12 is not present.
- INT 33h pointer integration improved to support some
additional DOS games, and to handle DeluxePaint II
enhanced.
- IMGMOUNT now supports NFD disk images.
- DOSBox Integration Device now available for PC-98.
- Added support for T98Next NHD hard disk images.
- Added support for T98Next NFD R1 disk images.
- Fixed crash with VGA BIOS allocation if video memory
allows the full modelist to overflow the available
ROM space.
- SDL2 mapper redraw issue resolved.
- Added dosbox.conf option to determine whether INT 10h
VESA BIOS emulation points at the modelist in ROM or
copies the modelist into the DOS application's info
structure when asked.
0.82.10
- PC-98 INT 1Bh floppy emulation now fakes success for
calls to format track.
- Initial keyboard pause fixed
- PC-98 INT 1Bh floppy disk BIOS call now resets timer
interval per call. This fixes Ys II after disk swap.
- BIOS fixed to put normal "unhandled INT call" handler
for INT 0-7 even in PC-98 mode to avoid confusion
between game crashes and unknown INT calls.
- VFD image support fixed to properly handle disk images
where a sector is marked with fill byte 0xFF and the
data field is 0xFFFFFFFF, which means the sector contents
are all 0xFF.
- DOSBox-X now supports T98 NFD disk images (R0).
- BIOS data area now properly reports a high-resolution
CRT display.
- INT DCh AH=1 CL=10h added, which is apparently a print
string function.
- BIOS data area now reports 188+ user-definable CG slots,
which makes GAJET happy.
- FDI image support fixed to read the header instead of
treating it as a plain disk image with 4096 of junk.
- PC-98 character generator is now accessible through both
I/O ports A1h-A9h and through memory-mapped I/O range
A4000-A401F. This fixes missing text in Eve Burst Error.
- Gravis Ultrasound emulation will no longer log GUS reset
writes in cases where the same value is being written
repeatedly, to reduce log clutter. Some demoscene
productions have music routines that trigger GUS reset
repeatedly without changing the register.
- Added "gus master volume" setting to deal with games or
demoscene productions where the music is too loud and clipping.
- Added "Pause with interrupts". When enabled, the CPU is directed
into a CALLBACK_Idle() loop to halt the game's main
logic while allowing interrupts to run. This is useful
for recording the game or demo's music because most DOS
games/demos run the music and sound effects from interrupt
handlers instead of the main loop.
- Audio/video capture fixed to render audio even if muted,
instead of rendering garbage to the capture file when
audio is muted.
- Experimental Emscripten + Node target (not reliable yet).
- Added option to control how unhandled IRQs are dealt with.
One option, mask_isr, is derived from em-dosbox.
- Code added to read the screen dimensions in Linux/X11,
either through XRandR or through the base X11 API.
- Code added to read and store the dimensions, size, and
DPI (Dots per Inch) of the screen.
- Fixed bug that enabled IBM style APM BIOS in PC-98 mode.
- For PC-98 mode, PIC emulation by default (but controllable
through dosbox.conf) now initializes the PIC at startup to
return the ISR (interrupt in-service) register instead of
the IRR (interrupt request) register. This fixes FM
music problems with Blackbird by Vivian caused by a
programming mistake in the FM interrupt handler.
- PIC emulation now accepts a dosbox.conf option not to mark
the cascade interrupt as in service, for troublesome games.
- VESA BIOS emulation now supports a packed 16-color (4bpp)
mode as seen on a Toshiba Libretto (Chips & Tech) system.
The packed format is different than the normal planar 16-color
SVGA modes seen on most systems.
- INT 33h no longer reports relative mouse motion unless the
user captures the cursor.
- Fixed EGA 16-color display modes (M_EGA) to honor CGA and
Hercules compatible mapping modes (bits 0 and 1 of the
CRTC mode control) and limit memory display to 8KB or 16KB
accordingly. This fixes the mode select screen in the game
"Prehistorik 2".
- Removed Sound Blaster goldplay mode + sample accurate mode
warning, goldplay mode no longer has issues with sample
accurate mode.
- Mixer "sample accurate" mode fixed to work again.
- Windows SDL1 builds fixed to work around Windows SDK-level API
limitation that normally prevents Win32 applications from
fully receiving WM_KEYDOWN events for the left/right shift
keys independently. Left and right shift keys are now fully
usable on Windows builds (i.e. for use with pinball games).
- INSTALL.MD guide and test files (Aybe)
- CONFIG -get now populates %CONFIG% environment variable with
configuration setting (follow DOSBox SVN behavior)
0.82.9
- "Always on top" mode is now available for Mac OS X builds.
- PS/2 mouse emulation fixed not to send relative mouse motion
unless mouse cursor is captured.
- Shell no longer provides MEM.COM if machine=pc98 or cputype=8086.
MEM.COM is not compatible with either case.
- INT 10h emulation will now set the S3 LFB enable bit for VESA
SVGA modes, unless machine=vesa_nolfb was specified.
- VGA emulation revised to report possible known problems with
Windows 3.1 with regard to LFB base address or memalias setting.
- VGA emulation fixed to emit warning if memalias=24, for S3 LFB,
if machine=svga_s3, to inform the user that the configuration is
known to cause the Windows 3.x driver to crash.
- VGA emulation will no longer report S3 linear framebuffer address
unless machine=svga_s3. The LFB address doesn't matter for anything
other than SVGA S3 emulation.
- S3 emulation will now automatically disable PCI VGA emulation if
constraints prevent DOSBox-X from setting a linear framebuffer
address aligned to 32MB (as required for PCI emulation).
- VGA emulation fixed to pick a more appropriate linear framebuffer
(S3) address if memalias is set to a value below 32.
- Added dosbox.conf option "pci vga" to control whether the VGA
emulation appears as a PCI or ISA device.
- ROM BIOS now forces reported RAM down to make room for BIOS
alias at top of memory instead of throwing an E_Exit error.
- Fixed Hercules emulation (and MDA) so that the Hercules palette
is always enforced. This fixes a bug where switching to HGC
graphics mode resulted in monochrome blue/black graphics instead
of the intended white/green/amber color expected.
- Added MDA emulation (machine=mda). It functions like
machine=hercules minus the graphics mode and Hercules-specific
extensions to the base MDA card.
- DOSBox shell no longer accepts dosbox.conf settings as commands
by default, unless enabled in dosbox.conf. Typing "cycles" will
no longer show cycle count. The dosbox.conf setting allows the
user to enable it again i.e. for compatibility with DOSBox SVN.
This is to prevent dosbox.conf settings from polluting the
available commands at the shell and conflicting with shell and
executable names.
- EGA emulaton fixed to obey Color Plane Enable register in
16-color planar modes.
- Fixed BIOS model byte to report PS/2 model 30 correctly when
machine=mcga, to allow certain DOS games to detect MCGA that way.
- CGA mode/color select registers are readable on MCGA, fix 3D8-3D9h
to reflect that.
- INT 10h fixed to properly allow/deny AH=10h, AH=11h, and AH=12h calls
according to machine= type instead of mistakes that blocked too many
calls.
- CGA composite mode should not be available when machine=mcga.
- Fixed INT 10h to report MCGA color display if machine=mcga.
- MCGA (IBM PS/2 Multi-Color Graphics Adapter) emulation added.
- bitop C++11 self-test disabled for Microsoft Visual Studio builds.
Microsoft's compiler can't handle them for some reason.
- Added DOSLIB DSXMENU.EXE to the built-in executable list.
DSXMENU.EXE allows DOS CONFIG.SYS style menus to be set up to
run commands based on menu selection.
- PC-98 ANSI emulation fixed to use the number of rows on the screen,
not cursor position, to range-clip ANSI cursor positioning.
- Added code to have DX-CAPTURE wait 3 seconds (or until ENTER/SPACE
is pressed) after the program exits, before stopping capture.
- DOSBox-X menus now allow runtime selection of capture format
(AVI+ZMBV or MPEG-TS H.264). Changing while capturing will stop/start
capture correctly.
- Added switches to DX-CAPTURE to allow specifying audio, multitrack audio,
and video as well.
- DX-CAPTURE shell command added. The command to run is specified
after DX-CAPTURE and DX-CAPTURE will start video capture, run the
program, then stop capture when the program exits.
- VGA/SVGA emulation fixed to enforce 256KB (64KB planar) wraparound
when emulating stock VGA modes (not SVGA/VESA BIOS). Some
demoscene productions rely on the 256KB wraparound when showing
scrolling credits.
- Gravis Ultrasound emulation now uses I/O callout system, with
I/O port handling to emulate ISA bus 10-bit decoding (but with
consideration of GUS MAX 7xx registers) so that GUS I/O ports
are visible every 1000h I/O ports. A demoscene production was
found that relies on an alias of GUS ports at 5xxxh rather than
using the I/O ports directly.
- Mouse emulation no longer sends motion to serial and PC-98 mouse
emulation unless mouse cursor has been captured.
- Mouse emulation fixed to set sensitivity and mickey count even if
int33=false on mouse emulation reset.
- Debugger fixed to paginate commands with a lot of output, including
HELP, PIC, and various commands to dump interrupts and GDT/IDT tables.
- CPU core no longer triggers Double Fault if Divide Overflow
occurs within Divide Overflow. This is needed for bizarre anti-debugger
obfuscated code seen in a demoscene production, where the program
wraps the demo in a mini-filesystem emulated by trapping INT 21h.
- cputype= dosbox.conf setting fixed to allow selecting between
new 486 emulation (cputype=486) and old 486 emulation (cputype=486old).
The "old" 486 core emulates older 486 CPUs that differ significantly
from the newer 486 CPUs that inherited features from the Pentium.
- IRQ hack setting for GUS and Sound Blaster is now a list so that
multiple hacks can be specified, but in a way that is backwards
compatible with existing dosbox.conf files.
- IRQ hack option for Gravis Ultrasound added.
- INT 20h emulation fixed to work with demoscene productions that
call INT 20h in a way that the interrupt frame wraps around the
64KB limit of the stack.
- XMS emulation now has a dosbox.conf setting to control the number
of XMS handles available.
- Added INT 33h option not to round mouse cursor coordinates to text
cell boundaries in text mode. Some demoscene productions were found
that detects mouse movement, but reads initial position from text mode
before switching to graphics.
- Removed IRQ0 error measurement hack, to match DOSBox SVN. This fixes
timing problems with some demoscene productions. The error measurement
hack was apparently added for Microsoft Flight simulator, but has not
been needed since and has been causing timing issues since.
- Fixed INT 10h VGA save state function to program the Attribute Controller
properly so that the screen is not left blank after the call.
- 8042 keyboard emulation now initializes port 60h to 0xAA on hardware
reset and initialization. Some DOS games and demoscene productions
need something with bit 7 set in the register at startup in order not
to act as if a key was immediately pressed.
- Add printer emulation from Daum's branch of DOSBox, add FreeType 2.9.1
to go with it (Alex/AT)
- Add keyboard type setting, for use in future development.
- PCjr emulation fixed to emulate PC/XT style NMI mask at port A0h
rather than emulate the secondary PIC.
- Code of Conduct revised to make it clear that forks/derivatives CAN
have their own Code of Conduct but that it only applies to that fork
or derivative version. No forking DOSBox-X, changing the code of
conduct, and enforcing it on anyone outside your fork.
- CPU normal core fixed to clear ZF flag after MUL when cputype=8086,
which fixes problems with MSD.EXE mis-detecting the CPU as a NEC V20.
- Fixed PCjr emulation not to allow UMB (upper memory blocks) since
that seems to cause stability issues with emulation. Also, PCjr
does not have UMB as far as I know.
- Fixed PCjr not to re-read port 60h from IRQ1 handler.
- Fixed PCjr not to emulate INT 15h keyboard hook.
- PCjr keyboard emulation fixed to trigger NMI and reflect to IRQ1
the way it actually works on IBM PCjr systems, which also fixes
keyboard control issues with the PCjr version of "Pitfall".
- configure.ac now provides an option for compiler optimization (Yksoft1)
- Code of Conduct, initial version, added to source tree
- PC-98 palette save/load state
- CPU, memory, VGA palette and attribute controller save/load state
- DOS SHELL now implements INT 0x2E to allow DOS programs to invoke
shell commands through COMMAND.COM (borrowed from DOSBox SVN).
- Added dosbox.conf option to control the physical memory address of the
S3 SVGA linear framebuffer.
- Save/load state system added, currently very minimal and experimental.
- Appveyor XML added to source tree (Allofich)
- Fixed *most* SDL2 refresh problems.
- Sound Blaster Pro mixer volume fixed to return reserved bits SET rather
than CLEAR. Some demoscene productions detect Sound Blaster Pro by whether
these bits remain set when written. This fix allows them to detect Sound
Blaster Pro as Sound Blaster Pro.
- VGA emulation fixed not to add 2 scanlines twice, which fixes VGA vertical
timing and scanline count and fixes the scroller in "Inconexia".
- Gravis Ultrasound emulation now prints a warning if the game/demo attempts
a DMA transfer while leaving the DMA channel masked.
- Fixed Gravis Ultrasound emulation to mask DRAM peek/poke I/O to the 1MB
offered by the card, which fixes GUS problems with a demoscene production
that has random values in DRAM address bits 23-20.
- Added dosbox.conf option that, if set, lets Gravis Ultrasound emulation
start a DMA transfer if the game/demo is polling the DMA control register
when DMA is unmasked and DMA terminal count has not occured, which helps
some demoscene productions.
- Added "PIC unmask IRQ" option for Gravis Ultrasound emulation.
- Gravis Ultrasound emulation now has a dosbox.conf setting to initialize
the hardware at startup as if ULTRINIT had been run.
- Added dosbox.conf option for VESA BIOS emulation that, if set, instructs
non-LFB modes to report 64KB windows but map 128KB from the start of
the window, which helps (but does not fully solve) some Demoscene
productions with redraw problems handling non-LFB as if LFB.
- Fixed ET4000 emulation to support the hretrace "wobble" needed for
"Copper"
- VGA DAC/attribute controller behavior updated to reflect actual behavior
as seen on an IBM PS/2 VGA model, as well as almost any SVGA clone.
- VGA DAC behavior unique to Tseng ET4000 implemented when machine=svga_et4000.
256-color mode on the ET4000 seems to map the low 4 bits through the
attribute controller and, if enabled, the upper 4 bits through the
color select register. Note this behavior is REQUIRED for the
"copper" demo to display properly.
- VGA palette, DAC, and attribute controller emulation updated to
reflect actual VGA behavior, including the way that 256-color mode
is mapped through the attribute controller.
- Sierra highcolor DAC can now be enabled for any VGA/SVGA emulation
- Cleanup and reorganization of scaler, aspect ratio handling (Alex/AT)
- MinGW config.h builds fixed to enable Direct3D (Alex/AT)
- Build fixes for SDL1 and Linux and extended functions (JP Cimalando)
- Fixed ALSA MIDI mistake preventing the creation of subscription
ports (JP Cimalando)
- Previous release broke SVGA 16-color planar modes by masking video
memory to 64KB planar boundaries at all times, fixed code to do so
only for non-VESA modes. 1024x768 16-color mode works again.
- Fixed user-defined VESA BIOS modes to validate the required video
memory against the available memory on the emulated SVGA hardware.
- VESA BIOS modelist generaton moved into it's own function. Modelist
is regenerated upon editing/deletion of modes.
- VESA BIOS modes added as suggested by hail-to-the-ryzen
- VESA BIOS emulation now allows scriptable editing, deletion, and
mode renaming of VESA BIOS modes for use with picky DOS games and
demoscene productions that assume mode numbers.
- Added VESA BIOS mode 0x136 as an alias for 320x200x16bpp mode
- Enhancements to GFX_CaptureMouse and CaptureMouseNotify added
- Fixed scaler change detection to use sizeof(int) properly than assume
a certain byte count
- Fixed undefined sse2_available reference issue in certain builds
0.82.8
- New xBRZ scaler (with bilinear mode) (Alexat)
- Fixed aspect ratio correction to use the ratio given by VGA emulation
instead of assuming 4:3
- output=surface and xBRZ now permit filling the window just like
output=opengl and output=direct3d
- Added critical section around Windows SDL 1.x resize code to solve
the remaining 0.5% probability that resizing the window causes move
and resize to stop working in Windows 10.
- INT 10h AH=10h now ignores AL=3 in PCjr mode.
- Fixed keyboard handler bug in PCjr mode that caused some CPU
register corruption and general crashiness in games.
- Improved shell: (Aybe, Joncampbell123)
- Ctrl+Left and Ctrl+Right permits word-navigation.
- Added emulation of 'Ins' key behavior.
- Num Lock, Caps Lock, Scroll Lock are now synchronized at startup
and when DOSBox-X window gains focus again (Windows). (Aybe)
- Added visual feedback to Hat/D-pad buttons in mapper. (Aybe)
- Added documentation for 'dir' command sorting switches. (Aybe)
- Menu 'Show console' is now checked with '-console' (SDL1). (Aybe)
- Improved joystick support (see README.joystick): (Aybe)
- Added deadzone and response for joystick axes.
- Axes can be remapped for devices with questionable layout.
- User-settable deadzones for joystick bindings in mapper,
mappings like WSAD keys to axes is less frustrating.
- Improved mouse integration (Aybe):
- Now by default DOSBox-X does not emulate mouse movement when the mouse
is not locked. This gives a consistent experience when compared to host OS.
For the old behavior, use [sdl] mouse_emulation=always.
- Added visual or auditive feedback about auto-lock state (Windows).
This feature can be switched off, use [sdl] autolock_feedback=none.
- Added CAPMOUSE program for capturing/releasing mouse from command line. (Aybe)
0.82.7
- Mac OS X builds now honor showmenu=false by leaving the
stock SDL menu in place at startup.
- Default minimum MCB free/base is now 0x100, to sidestep
unknown unstable DOS application behavior when DOS
applications are loaded at around segment 0x800.
This also puts DOSBox-X at parity with the base memory
behavior of DOSBox SVN.
- Add dosbox.conf option to set Sound BIOS enable
bit in non-volatile RAM (PC-98) that tells older
PC-98 games the FM card is present (Yksoft)
- BOOT updated to boot D88 except for 2D format which
is generally used by PC-88 disk images.
- Added D88 disk image support
- CMake files added (Aybe)
- PIC timing updated to use "double" float type for
more precision, but as a typedef for future support
as a compile time option.
- Removed geometry checks from INT 1Bh FDC functions,
to allow non-uniform disks to work.
- MinGW builds now allowed to use Direct3D.
- Direct3D output fixed to use the same texture
coordinate, window fitting, and positioning
logic as OpenGL.
- Update zlib and libpng libraries in-tree.
- Fixed VFD disk image support to correctly signal
failure to detect geometry, to avoid divide by
zero crash with FAT driver.
- showmenu= now taken into consideration whether to
show the menu bar at startup
- Fixed get_item() E_Exit crash if menus asked to
show from dosbox.conf
- SDL drawn menus fixed to integrate with Direct3D
output on Windows.
- PC-98 mode can now boot floppy disk images where the
boot sector is 128 or 256 bytes/sector despite
track 1 and higher having 1024 bytes/sector.
- General codebase cleanup, compiler warning cleanup.
- Enable XInput support on Windows (Aybe)
- Fixed SDL drawn menus to use std::vector properly,
not to hold onto iterators while resizing the vector
and popping things off the top.
- PC-98 INT 1Bh "read id" floppy disk call fixed to
cycle through sector numbers. Some bootable PC-98
games use "MEGDOS" which polls this BIOS call before
attempting to read the disk. If the sector numbers
never cycle, "MEGDOS" will not attempt to read the
disk.
- Fixed bug that prevented some menu options (such as
"aspect ratio") from working if still in the BIOS or
booted into a guest OS.
- PC-98 mode fixed to ignore "mainline compatible mapping".
That mapping mode refers to DOSBox SVN which never
supported PC-98 mode anyway.
- Fix PC-98 INT 1Bh "test read" call, which then allows
"cherry bomb" to run.
- Remove geometry checks in PC-98 INT 1Bh BIOS call, so
that FDD images with odd sector sizes can work.
- ROM BIOS now automatically occupies E8000-FFFFF instead
of F0000-FFFFF when in PC-98 mode.
- Most 128 byte/sector FDD images appear to jump to
E800:0002. I'm guessing that's ROM BASIC, so add a
callback at that location to catch these boot disks
and show a message instead of allowing the boot
sector to jump to nothing and crash.
- PC-98 BOOT fixed to check for and support booting from
FDD images where track 0 contains 128 byte/sector
boot sectors.
- PC-98 INT 1Bh support fixed to support reading/writing
sector sizes other than the one sector size reported
by the image. It is now possible to read the other
sector sizes from an FDD/VFD image.
- Fixed somewhat serious bug that, when compiled against
Microsoft C++, causes the AVI writer to use the 32-bit
lseek() function instead of the 64-bit lseek64() function.
Prior to this fix, AVI captures would begin to corrupt
themselves after growing past 2GB in size.
- Cleanup code, fix compiler warnings, typecast problems,
C/C++ conformance problems as reported by GCC 4.8,
GCC 7.3.0 (MinGW), Visual Studio 2017, and Clang/LLVM
on Mac OS X.
- FM Towns machine type stub, for anyone interested in
forking DOSBox-X to implement FM Towns emulation.
- Code cleanup, refactor, according to compiler warnings.
- SDL drawn menus fixed to copy Direct3D backbuffer to
the SDL surface when popup occurs. This allows the
menus to overlap the Direct3D display correctly.
- Fixed Direct3D output so that when composing the next
frame in the backbuffer, it also copies the SDL drawn
menu from the SDL surface in order to keep it on
screen.
- Direct3D output updated to follow SDL clip rectangle
struct, in the same exact manner as the OpenGL output.
This also permits the Direct3D output to correctly size
itself and leave space at the top for the SDL drawn
menus.
- Fixed dynamic core entry point to push/pop EBP because
debug builds need the compiler to track the stack frame.
- Updated in-tree zlib and libpng libraries to the latest
provided by both projects.
- Fixed VFD (FDD) disk image support to signal to FAT driver
properly an error if it could not determine a geometry.
- Fixed code breakage with SDL2 that prevented compilation
with Munt (MT32) emulation enabled. SDL2 builds now allow
MT32 emulation.
- Mac OS X builds now compile against the in-tree zlib and
libpng libraries for consistency.
- MinGW builds now compile against the MinGW provided zlib
and the in-tree libpng library for consistency.
- Enabled MinGW builds to use Direct3D and Direct3D shaders.
- Added code to auto-detect the VirtualBox display driver
in Windows build, because OpenGL output doesn't work
in Windows XP under VirtualBox. The change will switch
the default output to "surface" if VirtualBox is detected,
else will retain the "opengl" default. This change applies
only to MinGW builds and not HX DOS or main VS2017 builds.
- Added PC-98 INT DCh emulation for function call that
writes a char to the screen, allowing Eve Burst Error
to clear the function row
- Added command line option to allow skipping the 1-second
wait in the BIOS startup screen.
- SDL2 builds now support use of the SDL drawn menu with
a touchscreen device.
- Fixed up SDL2 support code to compile correctly on
Mac OS X.
- Fixed up SDL2 compilation to automatically use the
SDL2 library on the system, or if that is not available,
use the SDL2 library in-tree. There are no plans to make
modifications to the in-tree SDL2 code.
- Added code to read and discard OpenGL error code before
creating font texture, to avoid false failure handling.
This fixes font rendering on Windows MinGW builds when
output=opengl.
- OpenGL SDL drawn menus fixed to ensure the menu contents
have been redrawn at least twice. One for each OpenGL
buffer because DOSBox-X uses the double-buffered mode.
- SDL drawn menus implemented for output=opengl. The menu
bar in Linux builds is now available in OpenGL mode.
- SDL drawn menus fixed to redraw only when state changes,
and to clean up menu drawing code.
- US keyboards can now enter the "Ro" key in PC-98 mode.
Default binding is set up to map the Windows Menu key
as Ro in PC-98 mode.
- VGA option change code fixed to trigger scaler redraw
correctly. Changing video modes or changing between
8/9-pixel VGA text no longer leaves artifacts on the
screen.
- Added code to force redrawing additional frames when
output=opengl, in order to correct a bug with Linux/X11
and MesaGL where the first OpenGL buffer swap after
SDL_SetVideoMode() is misplaced when the window size
changes.
- Renderer SSE line comparison fixed to use correct sizeof()
of the integer type during compare.
- Renderer fixed not to use SSE and non-SSE line comparision
at the same time, if SSE was enabled at compile time.
- Fixed in-tree SDL 1.x library to allow DOSBox-X to disable
auto-refresh of the window in Linux/X11 after SDL_SetVideoMode
to prevent visible flickering when resizing the window.
- Conditional support for Direct3D (9) output enabled for
MinGW builds, if the MinGW headers are available (yksoft1).
Option is disabled by default.
- Configuration GUI dialog box widened to accomodate buttons
that were previously cut off on the right.
- Replace E_Exit() with LOG_MSG() for key codes from the mapper
that a keyboard scan code generator does not recognize. This
fixes E_Exit() crashes if typing certain keys on a Japanese
keyboard with no equivalent in IBM PC/AT mode.
- Added code to double the size of the menu and menu items if
the window is 1280x800 or larger, for users with high
definition laptop displays and screens.
- Enforce minimum window size of 640x400 if the menu bar is
visible and DOSBox-X is drawing them, to make sure the menus
are accessible on screen.
- Removed auto-scalar-size code when output=surface that was
causing problems when resizing the window.
- Do not show "screenshot" menu item if screenshot support not
available at compile time.
- Remove "always on top" for anything but Windows at this time.
- Disable "Show debugger" option on Linux and Mac OS X if no
console attached to STDIN/STDOUT/STDERR.
- Disable "Show console" option on Linux and Mac OS X since
the console is not under our control.
- Windows "Always on top" fixed to remember selection and
enforce it between SDL_SetVideoMode and fullscreen entry/exit.
- Windows builds fixed NOT to change window Z-order on the
screen when updating the window on SDL_SetVideoMode.
- HX DOS builds fixed to keep window maximized at all times
to fill the otherwise unused space on the screen since
HXGUI only supports one window.
- Menu framework support for any other platform (including
Linux) added. The menus are drawn by DOSBox-X itself
using the 8x16 VGA font. This also gives SDL 2.x builds
a working menu. These menus are used if no other platform
specific menus are available. These menus are NOT AVAILABLE
at this time if output=opengl.
- Cycle count edit dialog box fixed to immediately place
keyboard focus in the text field, and to process
ENTER and ESCAPE keyboard input as OK and CANCEL
button input. You can type a new cycles count without
having to click on the text field first.
- Menu framework and mapper fixed so that menus always
reflect the mapper binding in the menu.
- Windows SDL 1.x fixed async hack to properly destroy
and shut down the parent window again.
- Fixed output=opengl crash on Mac OS X.
- Menu framework support for Mac OS X NSMenu objects added.
This gives DOSBox-X the same useful menu on Mac OS X
instead of the useless default menu SDL 1.x offers.
- Menu framework support for Windows win32 menu resources
added. The Windows menu is now generated at runtime,
the static IDR_MENU resource is no longer used.
- New platform independent menu framework added. Menus
that were once Windows-only are now available on
any other platform including Linux and Mac OS X.
- In-tree SDL 1.x library fixed to #define a special
variable that the code now requires to compile
SDL 1.x builds. The option to use your host SDL 2.x
library is left open.
- C++11 is now mandatory to compile DOSBox-X
0.82.6
- Resizing the window in SDL 1.x Windows builds
fixed to work correctly in the latest build
(1803) of Windows 10. Prior to this fix, resizing
the window on that build would quickly hit a deadlock
that prevented the user from moving or resizing the
window again after that point.
- PC-98 dosbox.conf option added to select between
accurate key/shift mapping, vs an alternate mapping
appropriate for US keyboards (Yksoft1)
- SDL 1.x for Linux/X11 modified to differentiate
Ro and Yen keys despite X11 xkbmap apparently
mapping both to the backslash. The keymap is
queried to detect the scancodes at startup
in order to return the correct SDLK constant.
- SDL 1.x and DOSBox-X mapper code updated to
correctly map Ro, Yen, @ ^ ; : keys on a JP
keyboard in Windows and Linux.
- PC-98 keyboard BIOS handling updated to generate
ASCII codes according to PC-98 layout, instead
of by US keyboard layout.
- Mapper updated to support @ (at sign) key,
^ (caret) key, and a few other keys that
exist on JP keyboards.
- "Hold" modifier for mapper bindings fixed.
It is now possible to tap the key again to
release the hold.
- VHD differencing disk support added (Shane32)
- INT 18h AH=0Ah updated to support 20-line
text mode. Some games use the 20-line text
mode to space the text out vertically.
Such games will display correctly now.
- INT 18h now maintains text layer state
in BIOS data area byte 0x53C, just as
the actual BIOS does.
- Added PC-98 INT 18h function AH=0Ah and
AH=0Bh to support BIOS calls that enable
"Simple Graphics" mode. This fixes
problems with other games having vertical
lines over the graphics, even though
these games do not appear to use the
simple graphics at all. (yksoft1)
- Added support for PC-98 "Simple Graphics"
mode of text layer attribute bit 4. When
enabled, the attribute bit 4 changes
meaning from vertical line to a bit
indicating that the 8-bit character is
a low resolution 2x4 bitmap to be
displayed in the text layer. This fixes
score and status display in Carat.
- PC-98 INT 18h now implements AH=31h to
report CRTC, text and graphics state and
24khz/31khz video mode selection. This
fix allows some games including Touhou
Project to pace it's gameplay correctly
in either video mode.
- MinGW HX DOS builds default to host key
F12 again
- PC-98 mode now offers selection between
24khz and 31khz video modes (yksoft1)
- KEYB.COM fixed to load only the fonts the
ROM BIOS has allocated. This fixes a guest
system crash if using KEYB.COM with
machine=ega
- Moved host key to F11 for Windows. F12 is
already taken by some internal debugging
voodoo within Windows itself.
- DOSBox-X codebase now strongly encourages
compilation with C++11, will become
required soon.
- BOOT command fixed to make it possible to
IMGMOUNT multiple floppies to drive 1, and
boot from another disk in drive 0. This
should enable the use of DOSBox-X with
PC-98 games that expect to boot from drive
A and the user to rotate through floppies
in drive B.
- IMGMOUNT fixed to support mounting with no
filesystems and multiple disk images, and
using the "swap floppy" command to rotate
through them.
- Added options to BOOT command that allows
specifying multiple disk images and an option
that says to swap disk images only through
one drive.
- VHD dynamic support added (shane32)
- INT 10 AH=9 background color fixed in 256-color
VGA modes.
- Intro text updated to reflect new default
key bindings.
- Mapper shortcuts not in common use now exist
without any default binding, and most existing
default bindings are now associated with the
"host" key.
- Added 4th modifier "host" key to the mapper.
This "host" key is F12 by default. The intent
is to eventually move most mapper shortcuts
to some combination of F12 and another key,
rather than many shortcuts scattered over the
keyboard. Existing dosbox mapper files should
continue to work.
- Renderer and 32bpp VGA display code fixed to
reorder RGBA order for correct display on Intel
Mac OS X systems. Mac OS X, on Intel systems,
uses a strange BGRA 32bpp format that requires
some adjustment on our part to display correctly.
- Added more 24bpp INT 10h VESA BIOS modes.
- Removed per-sector debug messages from VFD/FDD
image support code.
0.82.5 (04/18/2018)
- Expanded memory manager memory copy fixed to
enable A20 gate temporarily so that the copy
works correctly.
- PC-98 FM board emulation now defaults to IRQ 12
instead of IRQ 3. A lot of PC-98 games seem to
have a strong preference for that IRQ with regard
to FM music.
- PC-98 reset I/O port (F0h) fixed to emulate CPU
reset according to the SHUT0 and SHUT1 state set
by the guest. Normally writing port F0h is a
signal to reset but SHUT0 and SHUT1 can be set to
indicate alternate behavior. This fixes VEMM486.EXE
(an expanded memory manager) and allows it to run,
since this manager appears to reset by port F0h
then resume execution normally. Prior to this fix,
booting a MS-DOS disk image that loads VEMM486.EXE
at startup yielded nothing but an infinite reboot
loop.
- XMS and EMS emulation fixed not to leave A20 gate
enabled unless EMS emulation is set to EMM386 and
dosbox.conf is set to run the system in virtual
8086 mode. There are plenty of DOS games that
malfunction if loaded too low in memory with the
A20 gate enabled.
- PC-98 mouse emulation, at the 8255 level, now uses
new C++ abstraction that seems to work fairly well
even with the common PC-98 MOUSE.COM driver.
- "BOOT" command in PC-98 mode updated to no longer
require the --force switch. Booting MS-DOS from a
hard disk or floppy disk image in PC-98 mode is
generally functional now.
- Added PC-98 SCSI/SASI hard disk emulation, and fixed
BOOT to enable booting PC-98 MS-DOS from a hard drive
(HDI image)
- FAT driver fixed to read/write logical sectors vs
actual drive sectors and removed geometry remapping
hack.
- FAT driver fixed to avoid memory corruption that
may occur if reading a partition table from a drive
that has more than 512 bytes/sector.
- .BAT file parsing fixed to handle BAT files not
in the current directory (yksoft1)
- Fixed floppy controller emulation bug that failed
to advance sectors during multi-sector read/write.
- Fixed floppy emulation bug that prevented seeking.
The "head" would get stuck at track 0 and never move.
- Dynamic core allows running with paging enabled again,
IF dosbox.conf says to allow it (yksoft1)
- DOS file I/O functions AH=3Fh and AH=40h updated to
reflect undocumented MS-DOS behavior that silently
truncates read/written byte count if the offset
and byte count reach beyond the end of a 64KB segment.
This fixes some demoscene productions that read 64KB-1
bytes but apparently rely on this behavior to avoid
display errors.
- FluidSynth fixes and API updates. DOSBox-X no longer
uses a private API within FluidSynth. (heftig)
- Added dosbox.conf option to control the size of the
DOS "Swappable Data Area" which is said to help with
shelling and task swapping in WordPerfect 5.x and 6.x
- Added "minimum mcb free", and set minimum mcb segment to
value same or similar to DOSBox SVN. The "free" option
directs DOSBox-X to allocate memory before that segment
value to fill memory.
- Fixed COMMAND.COM PSP segment to correctly identify it's
resident size in memory.
- COMMAND.COM in the DOSBox shell now allocates itself
normally instead of from a special segment so that it
appears normally in the MCB allocation chain.
- BIOS now clears it's stack before booting the DOS shell.
- Fix Pause (CTRL+Pause or ALT+Pause) to release all keys
in the mapper so that CTRL, ALT, or Shift are not left
"stuck" when emulation resumes.
- Initial host keyboard recognition, and base framework
for general keyboard language/layout handling. Keyboard
layout recognition added for Windows and Linux/X11.
- Fixed 350-line INT 10h VESA modes not to apply EGA mode
adjustments, which fixes display distortion.
- INT 10h VESA modes 720x480 and 848x480 fixed.
- Fixed INT 10h VESA emulation to round up bytes/scanline
so that 4bpp planar modes display properly.
- Fixed INT 10h VESA mode 1400x1050 16-color (4bpp planar)
mode to resolve overlapping mode number.
- Pulled in VGA vtotal + 2 fix from DOSBox SVN
- Pulled in EGA display mode fixes from DOSBox SVN to fix
EGA graphics emulation.
- Fixed INT 10h AH=1Ch (save/restore VGA state) to handle
VGA attribute controller properly so that the display is
not left blank.
- PC-98 GDC emulation fixed to handle START DISPLAY properly
by un-blanking the display (fixes "Ellena")
- Fixed possible format string vulnerabilities (gnustomp)
- Added menu options to enable/disable EGC and GRCG
emulation (yksoft1)
- Added options to enable/disable EGC and GRCG emulation
(to emulate older hardware).
- Added PC-98 BIOS function to read 8x16 character bitmaps,
which fixes "Power Dolls 2"
- BIOS now reports 16-color and EGC graphics. Some games
that check the BIOS for capabilities may now begin to
use 16-color graphics and EGC functions.
- Added PC-98 INT 18h function to read character font.
This also resolves garbled text in TH01.
- PC-98 GDC emulation now uses cursor specification
(line per character row) to determine whether graphics
are doubled vertically or not. Several PC-98 games
switch between 200-line (doubled) and 400-line graphics
by programming the GDC directly, rather than through
the BIOS.
- Added various video-related BIOS variables to the data
in PC-98 mode.
- GDC RESET/SYNC debug text updated to indicate which GDC
is undergoing the RESET/SYNC.
- Debugger "LOG" command (CPU execution logging) fixed to
automatically stop logging when the BIOS begins the
POST routine after system reset. The user who invoked
"LOG" probably cares more about what happened up to the
game crash, fault and reset rather than normal BIOS startup.
- BIOS now properly unmasks the PC-98 cascade IRQ, which
allows IRQ 8-15 to function, including the mouse (IRQ13)
- Debugger interface now indicates whether 80386 paging is
enabled or not at any time.
- Help text updates to reflect DOSBox-X changes (Shane32)
- BIOS INT 13h emulation updated to support up to 4 hard
drives (Shane32)
- IMGMOUNT and BOOT code cleanup (Shane32)
- IMGMOUNT RAM drive support: Additional fixes and geometry
work done, and some hangs resolved (Shane32)
- CPU emulation fixed to allow setting a breakpoint on
ANY interrupt of a specific number, not just software
interrupts. It is now possible to use BPINT to break
upon hardware (IRQ) interrupts.
- DOS kernel fixed to drop to the debugger if the MCB
(memory control block) chain is corrupted, so that
the corrupted state can be examined. When the debugger
continues execution, a full restart of the DOS kernel
is run. If DOSBox-X was compiled without the debugger,
then the normal E_Exit() path is still taken.
- Added debugger command to show, and modify, the state
of the PIC (interrupt controller).
- Added debugger command to view or change the A20 gate.
- Added debugger command to view the state of EMS, memory
handles, allocation, and EMS page frame mapping.
- Added debugger command to view the state of XMS, memory
handles, and allocation.
- Added debugger command to view the layout of the ROM
BIOS region (0xF0000-0xFFFFF) chosen by emulation.
- DOS kernel now logs kernel allocations, which can be
seen in the debugger using the "DOS KERN" command.
- Added "RUN" command as an alternative to hitting F5.
- Added "RUNWATCH" to the debugger, so that watching the
system run in the debugger is possible.
- Debugger data window can now be used to view memory in
segmented, virtual (through paging), and physical (bus
address) modes.
- Debugger window data and code view windows now indicate
regions of memory that are beyond the end of the segment.
- Debugger window data and code view windows now indicate
regions of memory that are paged out (will cause a page
fault if accessed)
- PC-98 A20 gate I/O port F6h fixed to work properly as an
enable or disable, rather than just an enable. The PC-98
version of HIMEM.SYS no longer complains about not being
able to control the A20 gate.
- IMGMOUNT RAM drive support: Ramdrive bug fixes and changed
drive limits from ATA limits to BIOS/MBR (Shane32)
- INT 21h fixed to use BIOS INT 1Ch to read date and time in
PC-98 mode. Arrowgun now runs properly.
- Fixed EMS emulation not to claim XMS memory (and zero BIOS
extended memory size) if EMS emulation is in EMS board mode
(and therefore not allocating extended memory through HIMEM.SYS).
- PC-98 INT 1Fh extended memory copy implemented. DOS games in
PC-98 mode can now use this API to access extended memory.
- Fixed HIMEM.SYS emulation in PC-98 mode to zero BIOS extended
memory values when claiming extended memory.
- PC-98 mode now sets BIOS data area values correctly regarding
conventional and extended memory.
- Added rudimentary emulation of non-volatile RAM at the
trailing edge of text RAM (A3FE0-A3FFF).
- PC-98 mode now adds additional BIOS data values at boot time
so that guest OSes like PC-98 MS-DOS can see the floppy drive,
see keyboard input, and determine the boot drive properly.
It is now possible to boot MS-DOS in PC-98 mode.
- Added rudimentary PC-98 INT 1Bh BIOS interrupt, at least for
floppy disk emulation.
- Cleanup and formatting enhancements to IMGMOUNT ramdisk (Shane32)
- DOS CON emulation in PC-98 mode now emulates two additional
ANSI escapes to clear the screen that are specific to NEC's
MS-DOS implementation, which fixes text layer problems with
Rusty.
- PC-98 GDC dip switch 2-8 emulation fixed. It was backwards.
This may break existing dosbox.conf configurations, apologies
in advance.
- Added -xms option to LOADFIX command. When given, the command
consumes extended memory instead of conventional memory.
- HIMEM.SYS emulation fixed to behave more like Microsoft's
HIMEM.SYS implementation regarding global & local A20 gate
control.
- Mac OS X builds fixed to work from the user's home directory
if run from the Finder, instead of trying to operate at the
root of the filesystem as directed by the Finder.
- Mac OS X builds now put the FREECG98.BMP file inside of the
.app bundle, and fall back to it if not found in the current
directory.
- RPM builds now install FREECG98.BMP in /usr/share/dosbox-x
and refer to it if not in your local directory, in order to
better provide PC-98 emulation.
- PC-98 BOOT command: Loading addresses and CPU register layout
updated to match actual hardware behavior, in which the boot
sector is loaded at just under 128KB.
- Build updates to support compiling for Windows with MinGW.
- BOOT now accepts a --debug switch that causes DOSBox-X to break into
the debugger when the boot sector begins to execute.
- BOOT now accepts a --force switch to override the PC-98 lockout,
if the user wants to better understand why I locked it out in PC-98 mode.
- PC-98 support now supports reading font from FONT.ROM, if available.
- Code, data, and output now respond to arrow, page up/down and
home/end keys as a user would normally expect.
- Arrow and page up/down keyboard input now goes to active window
instead of mapping directly to any specific window.
- Debugger interface now has the concept of an "active" window, and
the title bar of each window hilights if it is active.
- Debugger interface now hides the "variables" window by default.
- Fixed window "titles" in debugger interface to fill the terminal
line they're on and use ncurses horizontal line character which
on modern systems looks better than hyphens.
- Removed one line padding around data window in debugger interface.
- Debugger interface redesigned to permit more flexible layout
- Debugger interface no longer crashes when terminal window is sized
down too small (when there is no room for the output window)
- EMM386 (ems) emulation fixed to always turn on the A20 gate when
the DOS application requests to map pages into the EMS page frame.
This fixes crashes with Creative's Sound Blaster 16 installer when
run with the A20 gate turned off.
0.82.4 (02/28/2018)
- Updated ramdisk formatting code to better match FAT12/FAT16
specifications and limits (Shane32)
- Menu items related to Gravis Ultrasound, Glide emulation, Innova SID,
and other IBM PC-specific options are now grayed out in PC-98 mode.
- Updated Windows menus to gray out CPU core and type options that
are invalid. Selecting a prefetch CPU type while core dynamic is
no longer possible, and selecting dynamic core while using a
prefetch cpu type is no longer possible.
- CPU type submenu in Windows updated to reflect all types supported
by DOSBox-X including 8086 and 286 cores.
- Fixed E_Exit() crash on Windows in PDCurses endwin() that only
happens if you had never brought up the debugger console window.
- Minor oddities with OPNA stereo panning resolved.
- Sound Blaster, Adlib, and PC-98 FM emulation now reset state
correctly when the reset signal is given to avoid stuck notes.
- Fixed BIOS logo in PC-98 mode to properly reset the graphics mode
so that the logo is visible.
- Added Windows menu items to control PC-98 GDC speed, 4-partition enable,
200-line "scanline" effect enable, and PIT timer clock control.
- Added "Restart DOS" command to the Windows menu, with code to
allow it only if at the initial DOS shell.
- Added "multi-track WAV" command to the Windows menu, under Capture
- Added "reset system" command to the Windows menu
- "Restart" menu command updated to clarify that it restarts DOSBox-X entirely.
- OpenGL HQ output removed.
- Commands to force driver (DirectX or WINDIB) removed.
- Default disk I/O limit raised to more reasonable speeds.
- FM code borrowed from Neko Project II now compiles on Mac OS X
- IMGMOUNT now supports mounting a RAM drive (using -t ram) (Shane32)
- Direct3D fullscreen aspect ratio fixes, especially for
monitors with a 5:4 aspect ratio (such as 1280x1024) (Shane32)
- "Show menu" in Windows builds system menu is now a toggle
to show/hide the menu bar (Shane32)
- Fixed broken color palette with CGA composite and EGA
machine emulation. Composite CGA and machine=ega displays
properly again.
- According to documentation, IBM PC and PC-98 use different
initial PC speaker frequencies. Update the code to match.
- 8254 I/O port alias at 3FD9h-3FDFh added, which is needed
for several PC-98 games that program the PC speaker
frequency through those ports instead of through 71h-77h
- New Intel 8255 emulation. PC-98 system 8255 emulation
now uses this emulation, along with PC speaker emulation.
- Fixed XMS memory copy functions to enable the A20
gate so extended memory copies work correctly whether
or not the DOS application in question made the call
with A20 enabled. This fixes crashes and memory
corruption while installing Windows 3.1 using SETUP.EXE.
- "CLS" now sends the proper ANSI escapes to clear the
console in PC-98 mode.
- BIOS logo in PC-98 fixed to clear graphics RAM and
set graphics back to 8-color digital mode when booting
to DOS. This should fix palette errors and color issues
with older PC-98/PC-88 games that use the 8-color
graphics modes.
- Added PC-98 INT 1Ch timer interval BIOS function,
and timer countdown routine in IRQ 0.
- Windows builds now incorporate pdcurses and enable
the debugger interface (bulletshot60)
- DOSBox-X now tracks the systemwide keyboard layout
on Windows, and acts on user changes to the keyboard
and language in the system.
- Removed hack code in SDL 1.x that sets DOSBox-X's
keyboard layout to the US layout even if the host
uses anything else.
- Fix CPU cycles count increment not to nag you to use
core=dynamic if a) dynamic core is not available or
b) you're already using dynamic core.
- Added dynamic core back, it seems to be very stable
again.
- PC-98 FM board now allows changing the base I/O port
and IRQ (interrupt) line used by the card.
- PC-98 mode now supports joystick emulation. Joystick
input is mapped through the DOSBox mapper to the
PC-98 FM board where DOS games expect to see it.
- Added dosbox.conf option to select which PC-98 FM
board to emulate.
- Fixed PC-98 FM code to enable the ADPCM and Rhythm
FM channels.
- Re-ported Neko Project II FM board emulation, this
time keeping the code intact and keeping the separate
board emulations intact for PC-98 mode.
- VGA palette errors with Crystal Dream II fixed.
- PC-98 FM synthesis fixed not to initialize itself
again when rebooting, which fixes a problem with
garbled FM synthesis after rebooting.
- Removed some now-unnecessary SDL Video quit/init
calls from Windows builds.
- machine=pc98 now starts entire emulation in PC-98
mode instead of booting up in IBM PC mode and
switching to PC-98 mode.
- Initial "BIOS" startup screen now operates in
PC-98 mode when machine=pc98.
- Prefetch core debug code now disabled at compile
time. Seems to be stable so far.
- Prefetch core now emulates partial load of the
prefetch buffer on miss, and completing the buffer
fill on hit, to better emulate (probable) 80486
behavior.
- 486_prefetch is now a valid cputype setting, despite
the setting having existed for years in the source
code. Prior to this fix, 486_prefetch was ignored.
0.82.3 (02/13/2018)
- Removed DOSBox SVN-style "fast" A20 gate emulation.
Recent changes make it infeasible to keep. "fast" is
now mapped to "mask" mode.
- RAM aliasing is now always on, even if memalias is not
set, in order to help enforce A20 gate behavior, and
to fix emulator crashes when a non-aliased RAM page
is referenced through an alias.
- Cleanup and rewrite of prefetch core, to make the code
cleaner and more readable and maintainable.
- DOS file I/O updated to apply a proper delay rather
than the old DOSBox SVN code's cycle count dependent
method. The delay by default will slow disk I/O down
to mid 1990's IDE PIO speeds, which can resolve issues
with MS-DOS demoscene or game executables that can
malfunction when disk I/O is too fast.
- PIC code updated to enforce a proper IRQ delay on ALL
IRQ signals, which fixes issues with MS-DOS executables
that have race conditions between their code and their
interrupt handlers.
- DOS Shell now shows the full intro text only at first
run, instead of every shell invocation.
- Use FCB record size of 128 bytes if the FCB record size
is zero (from DOSBox SVN).
- PC speaker fix not to generate a continuous tone if
the PIT timer was set to mode 0. This fixes issues with
many early 1990s demoscene executables leaving the PC
speaker enabled (BEEEEEEP).
- Register DEBUGBOX.COM at DOS environment start instead
of boot, which allows the command to work again.
- EXE loader sets stack pointer (SS:SP) into PSP segment
(from DOSBox SVN)
- EXE loader fixed to use the larger of the minimum and
maximum memory sizes listed in the EXE header, which
fixes some demoscene executables with a minimum size
larger than maximum.
- VGA DAC (palette) emulation updated to better match
actual SVGA chipset (Paradise SVGA) behavior, which
fixes some VGA palette errors in some demoscene
productions.
- Added -nocachedir option to internal MOUNT command, to
disable directory caching for a local folder mounted
to a drive letter. When mounted this way, changes on
the host filesystem are immediately visible in the
guest DOS environment.
- Added -ro and -rw options to internal MOUNT command, to
allow mounting local folders to a drive letter as a
read-only volume.
- MIDI Fluidsynth fixed to initialize and free state properly
so that switching to and from Fluidsynth doesn't cause
a segfault or crash.
- MPU-401 fixed to allow changes to MIDI configuration from
CONFIG.COM.
- DOS filename handling fixed to maintain ASCII conversion
to uppercase, while not converting Shift-JIS double-byte
characters in PC-98 mode. This fixes Shift-JIS filename
corruption when the trailing byte can be mistaken for
lowercase ASCII a to z.
- Windows fixes to keep menu bar items updated with
DOSBox-X state.
- Remove WM_DROPFILES handling, for now. The code remains
to allow re-enabling later.
- SDL 1.x builds fixed to process only WM_COMMAND (menu
bar) and WM_SYSCOMMAND (system menu) events so that
the general chatter in modern Windows system does not
drown out the messages. This fixes issues where the
menu bar doesn't work on some systems.
- SDL 1.x builds fixed to handle menu bar input using
SDL's WM events instead of fighting with SDL's message
pump to receive menu events. This fixes potential
issues with losing menu bar events.
- dosbox.conf reference included with Windows builds
now uses MS-DOS line endings so that the file can be
edited in NOTEPAD.EXE
- New dosbox.conf option to control whether the menu is
shown by default in Windows builds.
- titlebar= SDL dosbox.conf option, to allow showing a more
user friendly name for the program instead of just using
the EXE name.
- E_Exit() on Windows now displays the message using
MessageBox() in addition to sending to STDERR, so that
Windows users see the error even if they are running
it from the desktop instead of the command line.
- PC-98 EGC bit shifter emulation fixed to correctly support
ascending and descending bit shifting in either direction.
This fixes screen shake emulation errors with Touhou Project
TH04 and TH05.
- Linux/X11 fixes to SDL 1.x to better match and compare
Visuals (descriptions of the screen) since X11 libraries
don't seem to use the same pointer values for the same
Visuals.
- ALT+TAB or loss of focus from fullscreen in Windows now
restores the window instead of minimizing it.
- 3Dfx OpenGL will hide the minimize and maximize buttons
in Windows while active.
- Windows menu bar items are now grayed out when 3Dfx OpenGL
emulation is active (items that cannot be used at that time).
- Fix Windows system menu to always keep "show menu".
- GFX rendering fixed not to render any output while 3Dfx
OpenGL emulation is active.
- 3Dfx OpenGL bug fixes to properly restore the DOS console
when the 3Dfx card is de-initialized and the game returns
to the DOS prompt.
- Linux/X11 window output fixed to keep the window on the
screen even when switching between OpenGL and non-OpenGL,
and when setting the SDL video mode.
- Remove some init hacks and SDL forced reinitialized hacks,
so that the window is stable on the screen.
- Added code to do more OpenGL state initialization (both
output=opengl and when initializing 3Dfx OpenGL emulation)
to make more consistent output.
- 3Dfx voodoo OpenGL based emulation fixed to switch out of
fullscreen mode IF DOSBox-X was fullscreen at the time the
card is initialized.
- 3Dfx voodoo OpenGL based emulation no longer allows fullscreen
mode, and does everything it can to prevent window resizing.
- Linux/X11 disable XRandR, XV, and X modeset functions. Do not
change monitor resolution.
- MPU-401 MIDI emulation fixed to look at all conductor message
bytes for code 0xFC (ALL END) instead of just the first byte.
This fixes hangs in games that send additional bytes prior to
0xFC and then expect the MPU-401 to signal 0xFC back when the
games are waiting for music to stop.
- Fix DOS CON driver not to signal data ready for PC-98 scan
codes that have no corresponding ANSI code. Tapping numeric
keypad keys during the title screen in Touhou Project should
no longer cause the game to pause waiting for keyboard input
when going into demo mode.
- Fix DOS CON driver to signal data ready for buffered escape
code.
- Fix PC-98 keyboard emulation not to apply IBM PC "extended"
keyboard scancode filtering.
- Window maximization does not count as a user resize preference.
- Fix Windows builds to enable DirectSerial, Direct LPT, modem,
emulation.
- New mapper shortcut to restore the window's original size.
- Fix bug with SHL instruction and OF flag, which corrects some
games and their decompression routines.
- Fullscreen (monitor) modesetting removed. DOSBox-X either runs
in a window, or scales up to fill the monitor, but will not change
the monitor resolution.
- Resize handling fixed to differentiate user resize verses resize
caused by DOSBox-X changing the window dimensions.
- Linux/X11 fixes to avoid flickering when resizing the window, and
to avoid redrawing unless necessary.
- Window resize management, to scale/arrange the output to fit the
window (for output= surface, opengl, direct3d)
- Enable resizing again, except when the GUI or mapper is active.
- Fix Linux/X11 to always take resize events, instead of ignoring
all further resize events just because one resize event is forever
"pending"
- Linux/X11 builds now track the size of the window on the desktop,
to keep track of resizing and maximizing.
0.82.2 (01/29/2018)
- Linux builds no longer enable window resizing. The ability to
resize will be added back when the emulator can better handle
the user resizing the window.
- Windows and Linux now have synchronized build date and version
strings.
- Codebase begin transition to C++11
- The Windows maximize button no longer triggers fullscreen mode.
- Direct3D, OpenGL, and Surface outputs updated to fill the window
in Windows builds when the window is maximized. If aspect
correction is enabled, the Direct3D and OpenGL outputs will
scale the DOS screen (with pillarbox/letterbox padding) to the
correct aspect ratio and center within the maximized window.
- Fixed minor memory leak in MT32 (MUNT) synthesizer usage.
- Fixed uninitialized state issues with DMA channel 4 (cascade).
- IMGMOUNT now allows mounting the El Torito bootable floppy image
of a CD-ROM drive as a drive letter and accessible (read only)
filesystem. The FAT filesystem driver was fixed to support working
from sources other than a direct file.
- PC-98 mode fixed not to register certain built-in commands and
binaries to drive Z:\ that are not compatible with PC-98 mode.
MEM.EXE in particular uses IBM PC-specific techniques to gather
it's information, and is therefore incompatible with PC-98 mode.
This can be verified from the source code as MEM.EXE was evidently
borrowed from the FreeDOS project.
- EGA emulation (machine=ega) fixed to render 8bpp (256-color mode)
instead of full 32bpp VGA output. EGA video output is limited to
64-color (6-bit) by the design of the video connector (2-bit R/G/B)
therefore the full precision of 32bpp is not needed. This will also
benefit video capture as the reduced color bit depth will result
in smaller AVI files when recording gameplay.
- Added code to correctly detect 15-bit highcolor vs 16-bit highcolor
display format support, despite SDL falsely indicating 16-bit
color in both cases, which fixes incorrect colors on 15-bit display
modes.
- Fix up VGA DAC/palette mapping to display the emulator screen
properly on 16-bit true color displays. Fixed off-by-one shift
mistake in the DOSBox-X render scaler code that caused
green and purple tints to colors on 16-bit true color displays.
- Add "Show menu bar" command to the Windows "system menu" so that
the menu bar can be brought back after selecting "hide menu bar".
- Losing window focus while fullscreen no longer leaves the emulator
window blank.
- Maximize/restore fullscreen cleanup.
- Removed DDRAW output.
- Fix FAT filesystem driver to clear "success" flag at all failure
return points. This fixes problems where unrecognizeable FAT
filesystems are nonetheless presented as a drive letter with
garbled filenames, when IMGMOUNT should have displayed an error
instead.
- Fix FAT filesystem driver to allow PC-98 HDI images to load that
have headcount == 0 in the BPB.
- Fix Adlib emulation not to register a mapper handler if emulation
will jump to PC-98 mode, and fix mapper handler to check if Adlib
emulation is loaded to avoid segfault.
- Add "recording" volume to control the loudness of the audio going
out to capture (WAV, AVI, etc.)
- Separate mixer rendering from master volume. Apply master volume
at the sound card only, leave audio at full volume for recording
(WAV, AVI, etc. capture).
- dosbox.conf and command line option to log CON driver output to
a file. Anything written to STDOUT/CON by a DOS application is
logged this way.
- --time-limit <n> command line option to put a time limit on the
emulator, in seconds.
- Keyboard shortcut for the mapper UI no longer leaves keys "stuck"
in the guest to cause problems when you exit the mapper UI.
- Fixed code mistake that caused OpenGL NB output when dosbox.conf
specified output=opengl
- Mapper layout fixes:
- Shortcut buttons (on the right hand side of the UI) fixed to
become two columns wide if the button text won't fit in one
column.
- Some shortcut button titles shortened.
- Mapper UI updated to show which bindings are being activated by
hilighting buttons in the UI.
- Mapper UI modifier buttons indicate status through hilighting.
- Mapper UI joystick buttons and axes now use hilighting to indicate
that there is input from the device.
- Mapper fix for 4-axis joysticks that may count zero buttons, and
then crash (divide by zero) when the user pushes a button on the
joystick device.
- BIOS emulation now allows you to specify binary blobs to execute
in the guest system as part of startup. One can be specified to
execute just after CPU reset/power-on, and the other just before
booting to the DOS shell. THE BINARY BLOBS EXECUTE IN THE GUEST
ENVIRONMENT AND NOT AS ARBITRARY CODE ON YOUR HOST. This option
is provided for both automated testing and for the curious who
may want to venture into low level ASM hacking.
- INTRO.COM fixed to accept keyboard input correctly in both
PC-98 and IBM PC mode. You can now browse the help text properly
in either mode.
- DOS shell fixed to accept DOSKEY-like input in both IBM PC and
PC-98 mode (including arrow keys, F3, tab completion, etc.)
- DOS CON emulation now provides function keys (F1-F10) in PC-98 mode.
- DOS CON emulation fixed to process PC-98 BIOS codes and generate
PC-98 ANSI escapes as real hardware normally does.
- Mapper no longer shows two sets of the shortcuts (one overlaid
over the keyboard), registration bug fixed.
- PC-98 keyboard interrupt handler now handles CTRL key and
passes most keys as-is down through INT 18h now.
- Removed non-recursive page fault option. It is now always on,
except for internal cases where it needs to be off for callback
instructions to do their work properly.
- Removed dynamic x86 core. It is old and unmaintained code that
is incompatible with the non-recursive page fault system.
- IRQ cascade interrupt fixes and cleanup.
- BAT files given on the command line fixed to occur AFTER the
registration of ULTRASND and BLASTER environment variables.
- PC-98: DOS CON emulation fixed to decode Shift-JIS itself,
with consideration that some proprietary double-byte encodings
yield single-wide characters. DOS program using NEC's proprietary
box/line drawing characters this way should display properly now.
- DOSBox shell "greeting" now displays a proper box in PC-98 mode
instead of framing the text in rows and columns of Katakana. (basic2004)
0.82.1 (12/25/2017)
- Windows builds no longer redirect stdout and stderr to
stdout.txt and stderr.txt. This also fixes problems
with crashing or hanging when run from Program Files.
- Windows releases compiled by TheGreatCodeholio again.
- SDL 1.x and SDL 2.x support in the same branch, selectable
by configuration option or VS2017 build target.
- SC400 emulation fixes
- Mac OS X pixel format fix to avoid corrupt graphics (Martin Lindhe)
- MT32 emulation now explains what ROM images it's looking for,
instead of just stating that it can't find the ROM images.
- Direct3D shaders from Daum (alex)
- NukeOPL OPL emulation
- Basic (experimental) NEC PC-98 emulation (machine=pc98)
- CG (character generator) emulation will need ANEX86.BMP
or FREECG98.BMP
- Some uninitialized state fixes
- FDI, FDD floppy disk support (especially PC-98 games)
- HDI hard disk support (especially PC-98 games)
- DOS FAT filesystem driver: added many sanity, size,
sector size and overrun checks.
- Floppy and hard disk image support now supports sector
sizes other than 512 bytes per sector (up to 1024).
- DOS FAT filesystem driver can now handle FAT filesystems
formatted with 256, 512, or 1024 bytes per sector.
- INT 29h route output to CON driver in PC-98 mode so
games can clear the screen with ANSI codes (Touhou Project).
- NEC PC-98 support for proprietary ANSI codes to clear
screen and show/hide function key row.
- NEC PC-98 FM emulation (borrowed/ported from Project Neko II).
- MPU-401 now emulates relative tempo change commands.
- When mounting folders as a drive letter, filenames are
now translated between guest and host according to the
MS-DOS code page. This allows DOS games to use extended
characters in a way that does not cause invalid filenames
on the host. The host is always assumed to support unicode.
Windows builds will use wide char (UTF-16) host names and
Linux/Mac OS X builds will use UTF-8.
- Code page translation for 437 (US MS-DOS) and 932 (PC-98 Shift-JIS).
- Emulate DOS console function key row in PC-98 mode.
- PC-98 EGC graphics emulation (minimal)
- PC-98 CG support for custom fonts (RAM portion)
- PC-98 EGC minimal ROP emulation
- PC-98 select between 2.5MHZ and 5MHz GDC (for games that demand one or the other)
- Aspect ratio menu item in Windows works correctly now
- Capture menu works correctly now
- Removed "overlay" output
- Fix Direct3D and OpenGL output to enable linear interpolation (smoothing)
- Fixed "double aspect ratio" issue with OpenGL output
- Linux builds compiled against SDL 1.x and running against PulseAudio
no longer hang/crash after some random amount of time (threading conflict)
- PC-98 minimal mouse emulation
- VGA doublescan=false fixed to display correctly, especially with scalers
- SDL 1.x Windows builds fixed to process mouse motion FIRST before
mouse buttons so that guest pointer integration with Windows 3.1
works properly.
- SDL 1.x Windows builds now enforce a 60Hz cap on mouse motion
detection because recent versions of Windows have some latency
when SDL repositions the mouse cursor. This fixes random
erratic jumps in mouse motion when playing games that respond
to mouse movement.
- SDL 2.x fix touchscreen interaction on Windows
- SDL 2.x mapper now responds to touchscreen as well as mouse.
- DOSBox Integration device no longer enables it's ISA PnP device
by default.
- SDL 2.x fix Windows 3.1 "double-click" accidents by ignoring
"mouse" events faked by Windows from the touchscreen.
- "Paper white" HGC/CGA monochrome palette (basic2004)
- CMS (GameBlaster) frequency correction (basic2004)
- SID frequency correction (basic2004)
- Maximize button in Windows now consistently triggers fullscreen mode
- SDL 2.x builds now use a different mapper file name to
avoid conflicts with SDL 1.x builds. SDL scan codes are
completely different between the two.
- Windows builds now include WinPCAP support and NE2000 emulation.
- MOUNT / IMGMOUNT convert backslash to forward slash in path on Linux to
allow dosbox.conf files from Windows to work on Linux.
- DOSBox-X officially no longer targets Windows XP.
Unofficially third party builds may support Windows XP.
- MPU-401 emulation now allows you to choose the IRQ, if desired.
- Windows builds now include reference dosbox.conf so that you
have a list of all options.
- IMGMOUNT and FAT filesystem support now check partition type
field to ensure that the partition chosen is a FAT filesystem.
- IMGMOUNT no longer requires -size parameter if mounting
a HDI disk image.
- IMGMOUNT and FAT filesystem driver updated to support both
IBM PC MBR (master boot record) and PC-98 IPL1 partition
tables.
- Fixed UMB memory selection not to overlap the EMS page frame.
- EMS updated to sit at E000h in IBM PC mode and D000h in PC-98 mode.
- Mapper interface now shows additional buttons for handlers
registered after initial emulator setup phase.
- Mapper fixed to load/save or apply default keybindings for
handlers registered after initial emulator setup phase.
- Mapper fixes now reveal "capture OPL", "hercules palette"
options as well. The fixes also allow the default key
bindings for those functions to work.
- "CTTY NUL" no longer causes DOSBox-X to hang.
- MOUNT now supports use of -q to suppress message when
successfully unmounting a drive.
9/21/2017
Pentium Pro instruction set implementation
https://github.com/joncampbell123/dosbox-x/pull/305
MMX instruction set recompiler for core=dynamic
https://github.com/joncampbell123/dosbox-x/pull/290
0.74
- Several small game specific fixes/hacks/support. (Offensive,
Roadhog, GTA installer, Kingdom O' Magic soundcard detection,
Pirate booter, Armored Fist installer)
- Add the S3-specific 640x480 256 color mode. (fixes regression in "Wooden
Ships and Iron Men" and "I Have No Mouth And I Must Scream")
- Fix a stack overflow that could crash DOSBox.
- Add fake microphone input. (fixes Talking Parrot)
- Modify adlib turn off code, so that it doesn't turn off in
cases where the same sound is repeated over and over again.
- Several small fixes to the CDROM audio code. (HOMM2, Redneck
Rampage and others)
- Several improvements to the CDROM emulation code. (fixes Alpha
Storm and GT Racing 97)
- Some small CPU fixes that might fix something.
- Handle opcode 0xff subcode 7 as invalid instruction. (fixes dif-2 & others)
- Some hercules fixes. (Testdrive)
- Improve support for blanked parts that wrap around to the start of
the screen. (fixes Magic Circle demo and Sid&Al)
- Remove old OPL cores as the new ones seem to work very nicely.
- Modify movie recording code so that the movies aren't corrupt when
you exit dosbox without stopping the movie.
- Change RGB3x scaler to look more pretty.
- Improve initial register values compatility of the GUS.
- Added autodetection for Gameblaster. (games can find it now)
- Change render preferences a bit to be more compatible with Windows 7.
- Add DOS fixes to terminate program. (fixes Fortune Teller)
- Add FFREEP. (fixes Trucks)
- Improve FPU ST80 in C mode when writing zero. (fixes Antigok)
- Add special int10 scanline function. (fixes mz700 and probably lots
of games that mess with them)
- Fix scrolling in rarely used video modes. (fixes Orphee)
- Modify game specific hacks a bit so that Kick off 3 works again.
- Lots of fixes to the INT10 video parameter table. (Seven spirits
of ra and others)
- Add VGA blanking in machine=vgaonly. (used by Alien Carnage)
- CGA, PCJr, Tandy: Add video blanking, change display start latch
timing, sync pulse width correction.
- PCJr, Tandy: implement vertical retrace interrupt.
- PCJr, CGA: line-by-line video emulation.
- PCJr: support on-screen change of color modes 4medium to 16low. (used
by Ghostbusters booter)
- Hercules: Add green and amber monochrome support.
- All machines: only update the video timing when needed. (Jungle Hunt,
others that synchronize to the video screen might profit)
- Several small DOS fixes.
- Some UMB related fixes. (The Legacy without UMB)
- Fix version number of DSP for SB 1.5. (fixes a few games)
- Several VGA emulation improvements. (Allertone football manager)
- Some Tandy fixes. (Mech Warrior)
- Small improvements and fixes to the OPL emulation.
- Add low level Tandy DAC emulation.
- Some EMS fixes. (fixes Mortal Kombat and others)
- Change SoundBlaster DSP reset mechanism, add sb irq acknowledge logic.
(fixes stmik-based applications)
- Some interrupt pointer location modifications. (fixes Tinker Tales)
- Some fixes to the BOOT code. (fixes Last Mission)
- Respect write-only file information. (fixes Champions of Zulala)
- Some RTC fix. (fixes Tully Bodine and others)
- Improve mouse emulation to work better with Water World.
- Hopefully fix the translation of the configuration file.
- Speed up and fixes for the recompiler core. (pitfall2 pcjr)
- Change memory start location. (fixes 7th Guest installer)
- Several fixes to the batch file handling. (Shift and
use the typed first %0 instead of the parsed %0)
- Improve file redirection and redirected line ends. (fixes
Phantasmagoria 2 DOS installer)
- Fix compilation with new MAC os X version.
- Add 16C550A FIFO support to the serial port emulation.
- Improve modem emulation to get higher speeds.
- Change default samplerates to 44100, blocksize to 1024 and prebuffer to 20,
so that hopefully certain soundcards produce more fluent sound playback.
- Add some rarely used, but for some games critical flags to
the internal commands.
- Add -userconf flag, so that the userspecific configuration can
easily be used together with -conf configfile.
- Improve internal timing with repeating timers (especially with
the dynamic core).
0.73
- Add two new opl2+opl3 emulators. (better speed, different implementation
approach)
- Improved DRO recording/better file structure.
- Add EGA emulation.
- Add special vga machine mode. Supports more of the exotic tricks like
changing the palette during screen updates, 9x16 fonts etc.
- Added special machine modes for the following svga cards:
- S3
- Paradise
- Tseng
- Fix problems with the vga split line feature.
- Improve vesa emulation.
- Add optional selection of old vesa mode for games that don't work
with certain vesa features.
- Improve video BIOS emulation to behave more like a real bios.
- Fixes for emulated 4bpp graphics modes.
- Fixes to paging system.
- Various fixes and improvements for the recompiling core.
- Add arm backend for the recompiling core.
- Add some mscdex quirks when dealing with files that are exactly 8.3 long.
- Small fixes to batch file handling.
- Small fixes to the XMS memory handling.
- Various fixes for aligned memory on hosts that want it.
- Various improvements to the mouse.
- Fixes and small speed ups to the debugger.
- Fix and improve lot's of compilation problems. (curses detection,
GCC 3.4 and GCC 4.X fixes)
- Added some basic auto keyboard layout handling. (windows only currently)
- Add basic support for evdev keyboard driver.
- Various fixes to the timer. (improve mode 2 timer changes,
implement mode 1, improve gate2 handling)
- Add audio extraction and mci audio support. Should enable CDROM audio
for Vista and adds volume control.
- Improve the directory cache speed a lot, especially with mounting slow
media like network paths.
- Various fixes to the create temporary file call.
- Don't keep batchfiles open during execution. Allows rewriting of the
active batchfile. (menu programs use this trick sometimes)
- Fix problems with filenames with 2 extensions.
- Add some more lowlevel dos tables.
- Fixes to hercules emulation.
- Fix flag handling for special case of ROR.
- Make the batchfile handling in regard to IF more flexible.
- Fixes to scrolling/panning feature.
- Add prefetch queue emulation.
- Make the emulated cpu type selectable. This is mainly the
identification commands and the way paging works.
- Some special EMS functionality added. (OS handles, zero-page handling)
- Improve support for EMS when booting a different OS.
- Improve cdrom speed detection by games.
- Improve stability of cycle guessing code, when there is background
activity.
- Fix various mscdex and cdrom detection schemes.
- Added Coremidi support on Mac OS X.
- Improve support for DOS devices when used to detect the existance
of directories in various ways.
- Add IRQ 2 emulation on VRET. (ega only)
- Added video parameter table and video state functionality.
- Increase default freespace to 250 MB.
- Some fixes to the fat filesystem handling for disk images.
- Some soundblaster fixes and command additions.
- Fix mixer 16bit direct transfers on bigendian hosts.
0.72
- Fixed unitialized variable in joystick. (Fixes crashes on Vista and
Mac OS X)
- Some bugfixes and speedups to the 64 bit recompiling core.
- Fixed sign flag on soundblaster dma transfers (Space Quest 6 intro)
- Fixed a bug in keyboard layout processing code and fixed certain
layouts.
- Fixed Dreamweb.
- Improved speed unlocking when running cycles=max.
- Fixed a crash related to the tab completion in the shell.
- Improved aspect correction code. Should now be like how a real monitor
handles it.
- Fixed a bug in the xms status report code. (Blake Stone 1.0 shareware)
- Added a lot more keyboard layouts.
- Fix crash related to changing the scaler before a screen was created.
- Hopefully fixed compilation on *bsd.
- Enabled auto cpu core selection for recompiling core as well.
- Made the used joystick selectable when 4axis is specified.
- Added some hints for inexperienced DOS users to the shell.
0.71
- Add a new recompiling cpu core, which should be easier to port.
- Add 64 bit version of the recompiling core.
- Add mipsel 32 bit version of the recompiling core.
- Fix a few small problems with FCBs. (fixes Jewels of darkness and
cyrus chess)
- Raise some more exceptions. (fixes vbdos)
- Fix a few problems with the dynamic core. (fixes Inner Words,
Archmimedean Dynasty and others)
- Improve/Fix fallback code for certain graphics cards.
- Fix a few cd audio related bugs.
- Add an undocumented MSCDEX feature. (Fixes Ultimate Domain)
- Fix some pcspeaker mode. (fixes Test Drive and similar games)
- Improve dos keyinput handling. (fixes Wing Commander 3 exit dialog)
- Remove Exit condition on fully nested mode. (fixes some demo)
- Add image file size detection.
- Add/Fix some ansi codes. (fixes PC Larn and certain versions of
infocom games)
- Several general DOS fixes. (fixes nba95, hexit and various other games)
- Add some valid input checks. (fixes 3d body adventure and similar
games)
- Fix digital joystick centering problem.
- Reenable textmode 54 and 55.
- Fix a pelmask problem with univbe 5.0 lite. (fixes Panzer General)
- Fix minor mixer underflow.
- Some general image and bios disk emulation fixes.
- Hopefully fix compilation on BSD and darwin.
- Try using ioctl cdrom access by default if possible.
- Fix some svga detection routine. (fixes Grandest Fleet 2 and Bobby Fischer
Teaches Chess)
- You can now close DOSBox using the status window in win32.
- Add support for NX enabled systems.
- Fix a casting error which only showed with certain compilers. (fixes
various games under mac os x and 64 bit linux)
- Improve timer and add gate 2 support. (fixes various games and
joystick problems)
- Improve mouse. Add undocumented backdoor. (fixes Last half of Darkness,
PC-BLOX and others)
- Add/improve support for ~ and ~username in all commands.
- Fix a font problem with the pcjr/tandy. (fixes personal deskmate 2)
- Change dma routine a bit. (fixes ticks in sound in various games)
- Allow read-only diskimages to be booted. (fixes various booter
games)
- Add basic hidden file support on cdrom images. (fixes Player
Manager 2)
- Add some rarely used functionality to the int10 mode setup. (fixes
WW2 Battles of the South pacific)
- Add ability to force scaler usage.
- Speed up flag generation and make it more 386-like.
- Some colourful feedback in the mapper.
- General code cleanup.
0.70
- Improve register handling and support with XMS.
- Fix some issues with deleting open files.(windows only issue)
- Add dummy LPT1 class. (windows only issue)
- Improve some of the internal dos commands. (choice, copy and shift)
- Improve ROM area. (for games that use it for random numbers or
overwrite it as some sort of detection thing)
- Improve compatibility of dynamic core by making it handle certain
pagefaults earlier.
- Move internal dos tables around so we have more umb memory.
- Add some dos tables.
- Dynamic core supports io exceptions.
- Move some interrupt handlers to XT Bios locations.
- Add a dynamic fpu on x86.
- Improve fpu on non-x86.
- Trapflag gets strict priority over hardware IRQs.
- Trapflag support for the dynamic core.
- Add dummy TRx handling.
- Fix a few rarely used character functions.
- Improve auto cycle guessing code.
- Improve and extend the joystick support.
- Add autofire support.
- Improve the mapper so you can map keys to the joystick and vice versa.
- A few game specific video card fixes.
- Fix some 64 bit cpu bugs.
- Add support for certain cdrom detection schemes.
- Improve HSG/Red Book support.
- Improve MSCDEX.
- Improve dynamic core support under intel macs.
- Add basic support for clipper programs.
- Add support for different keyboard layouts.
- Add auto core guessing.
- Fix a few flags bugs.
- Fix a few small cpu bugs.
- Improve soundblaster detection rate by various programs.
- Improve EMS emulation. (allow mapping of non standard regions)
- Improve keyboard input codes on various OS-es.
- Fix problems with filenames having stackdata in them.
- Changed a few basic operations in DOSBox so they take emulated time.
- Improve dos ioctl functions.
- Extend cpu core so they are capable of detecting and raising a few
more exception types.
- Improve DOS functions when dealing with virtual drive.
- Improve FAT drives.
- Better handling of volume-labels in file functions.
- Image disk cycling capability. (prompt)
- Try to reduce the impact of using an analog joystick.
- Several measures to avoid code invalidation on certain types
of self modification in the dynamic core.
- Add dynamic core memory function inlining.
- A few small mouse improvements. (some games are using things they
shouldn't)
- Add nullmodem emulation.(h-a-l-9000)
- Some small cga and hercules fixes.
- Add more scalers (hq2x/hq3x/sai). (Kronuz)
- Change configuration file loading support. It now supports
multiple configuration files.
- Make dynamic core capable of running some win32s programs.
- Fix and add some rare soundblaster modes. (Srecko)
- Better soundblaster mixer controls. (Srecko)
- Make soundblaster installation under windows much easier.
- Add device control channel handling.
- GEMMIS support (ems under windows).
- Support more colours in win 3. (vasyl)
- Don't show unmounted drives in windows filemanager.
- Fix some bugs in the int13 handler.
- Simulate some side-effects of bios interrupt handlers on flags.
- Add IPX functions needed by netbios.
- Make ports take emulated time.
- Tabcompletion is now aware of the CD command.
- Add suppport for the dac pel mask.
- Fixes to hercules emulation, better detection and bank switching.
- Fixes to tandy emulation, 640x200x16 mode and different sizes bank.
- EGA/VGA memory changes detection for faster rendering.
- Gus 16 bit fixes.
- Many timer improvements.
- Some pcjr fixes.
- Some booter fixes.
- Many small fixes.
0.65
- Fixed FAT writing.
- Added some more missing DOS functions.
- Improved PIC so that it actually honours irq 2/9.
- Improved intelligent MPU-401 mode so that more games work with it.
- Some mouse fixes.
- Changed DMA transfers a bit so they bypass the paging tables.
- Added S3 XGA functionality.
- Improved paging so that read and write faults are handled differently.
- Rewrote exception handling a bit (no exception 0x0B with dos4gw anymore).
- Added IO exceptions in all but the dynamic core.
- Some ems improvements.
- Added midi-device selection code for the windows hosts.
- Fix crashes/segfaults related to the disabling of the pcspeaker.
- Added some more FILES=XX detection tricks.
- Fixed some vga detection schemes.
- Fixed screenshot corruption when using -noconsole in a read-only directory.
- Fix wrong scaled screenshots.
- Added some hidden file functions when using diskimages. (helps with cdrom
detection schemes)
- Fixed a bug in the mixer code, that muted the music in certain games.
- Added an assembly fpu core.
- Made the shell more flexible for batch files.
- Check for unaligned memory acces fixes hangups on ARM processors.
- Some 64 bit fixes.
- Added code to change configuration at runtime.
- Improved ADPCM emulation.
- Fixed a few cpu instructions.
- Always report vesa 2.0 and fix some colour issues with vesa games.
- Fix video mode 0x06 and 0x0a.
- Improvements to the joystick emulation. 4 buttons are supported as well.
- Add VCPI emulation for Origin games.
- Fixed a lot of things in the boot code. Most booters work now.
- Lots of improvements to the IPX emulation.
- Rewritten modem emulation. Should work with more games.
- Improvements to the dos memory managment routines.
- Add UMB (upper memory blocks) support.
- Emulate the pause key.
- Improve Composite CGA mode emulation.
- Lots of vga compatibility changes.
- Improved support for chained video modes.
- Improved mode and palette handling in cga modes.
- Mount accepts ~ now.
- Added a few of the EGA RIL functions.
- Added TandyDAC emulation.
- OS/2 support.
- Improved and speed up the dynamic cpu core.
- Fix some errors in the CD-ROM emulation layer.
- Added an automatic work-around for some graphics chipsets.
- Add PCjr support.
- Allow mousedriver to be replaced. Fixes a few games that come with their
own (internal) driver.
- Improved dynamic cpu core so it can handle pagefaults and some obscure
types of self-modifying code.
- Added -noautoexec switch to skip the contents of [autoexec] in the
configuration file.
- Improved v86 mode emulation (mainly for Strike Commander).
- Improved timer behavior.
- Improved extended keyboard support.
- Enhanced and added several DOS tables.
- Made core_full endian safe.
- Made pagefaults endian safe.
- Add support for moviecapturing
- Add support for 15/16/32 bit videomodes.
- Add some more VESA modi (4 bit).
- Add 1024x768 output.
- Changed screenrendering so it only draws changes to the screen.
- Allow remapping of the EMS page when the dma transfer was started from
the page frame
- Made EMS and DMA work together when playing from a mapped memory page.
- Renamed several configuration options, so that they are unique.
- Merged mpu and intelligent into one option.
- Merged fullfixed and fullresolution.
- Extended keys should be handled better.
- F11 and F12 work.
- Compilation fixes for various platforms.
- Fix a few crashes when giving bad input.
- Removed interp2x and added few new scalers.
- Reintroduce the lockfree mouse. (autolock=false)
- Add a larger cache for the dynamic cpu core.
- Improved soundblaster DSP, so it gets detected by creative tools.
- Lots of bugfixes.
- Even more bugfixes.
0.63
- Fixed crash with keymapper (ctrl-f1) and output=surface.
- Added unmounting.
- Fixed multiple issues with drive labels.
- Fixed most if not all FILES=XX problems.
- Added redirection in the shell.
- Fixed crashes with subst.
- Fixed multiple crashes with the drive images support.
- Added a missing fpu instruction.
- Fixed some cpu and fpu instructions.
- Fixed a small bug related to font loading.
- Rewrote the devices support.
- Added capslock/numlock checks on startup.
- Fixed wave writing.
- A few internal DOS fixes.
- Timer fixes for the hybrid loader.
- Some small soundblaster fixes.
- The drive cache can now be cleared by a keycombo. (CTRL-F4)
- A few keyboard fixes.
- Compilation fixes on various platforms.
- Quite some debugger improvements.
- Fixed dir only showing files after the first run on cdrom drives.
- Added some cdrom detection checks.
- Enabled insert in the shell. (Easier editing of commands)
- Changed order in which executables appear with tab-completion.
- Fixed some issues with raw opl recording and using a slightly different
format
0.62
- Added blinking support in the shell and some color fixes.
- Fixed commandline parsing when .bat files involved (fixes -exit)
- Fixed issues with tabs in commandline not being processed correctly.
- Cleaned/improved shutdown sequence.
- Added some more bios functions (wait and delay functions).
- Made our XMS driver conform the specs better. (c2woody)
- Added support for some more ems functions.
- Added intelligent mpu401 emulation. (Srecko)
- Added soundblaster 16 emulation.
- Rewrote GUS emulation to sound more authentic.
- Improved pc speaker emulation.
- Added an internal (programmable) mixer.
- Added support a few soundblaster/adlib detection routines.
- Fixed lot's of bugs related to DMA transfers.
- Added interpolating prebuffering mixer routines.
- Added recording of OPL commands and raw midi.
- Fixed some bugs with the wave recording.
- Changed sensitivity settings of the mouse.
- Added ps2 mouse-emulation in bios interrupts (c2woody).
- Fixed some bugs with mouse emulation limits.
- Fixed a bug with an unterminated string in the drivelabel.
- Changed file search routines a bit to be more compatible.
- Added support for attribute-searching with fcb's.
- Added basic SDA.
- Added TPA and DIB.
- Added Lot's of missing dos tables (c2woody).
- Changed psp and dta functions to use dta.
- Returned filename in ds:dx in create-random-file (c2woody).
- Fixed a bug with date and time used on open files.
- Some mscdex fixes.
- Added the -version switch, which makes dosbox report its version.
- Added a keymapper.
- Added basic IPX emulation.
- Added cdrom iso support and floppy images support.
- Added the possibity to boot another dos version.
- Added Serial passthrough support (win32 only).
- Added the possibility to pause dosbox.
- Changed OpenGL so that it is initialized only when used.
- Make dosbox run at higher priority when active and lower when inactive.
- Added direct draw output support (win32 only).
- Added current running program to title bar.
- Rewrote video emulation to support new scalers.
- Added new graphics scalers like advmame3x,tv2x.
- Added a support for a few anti-debugger tricks.
- Improved the handling of the tab-key.
- Improved support for the numeric keyboard.
- Fixed a few cpu opcodes.
- Added cpu core simple (for lowerend machines)
- Fixed some nasty bugs in the dynamic cpu core.
- Added a few (rarely used) fpu opcodes.
- Fixed various issues with GCC 3.4.
- Many internal timer improvements (PIT and PIC).
- Added some more PIC commands (c2woody).
- Added BCD counting to the timers.
- Fix some vesa functions.
- Add some basic support for 132x25 and 132x45 textmodes.
- Improved Tandy emulation a lot.
- Lowered cpu usage when dosbox is idle.
- Allow virtualisation of some basic IO-ports (c2woody).
0.61
- Added a beta dynamic cpu for x86 hosts (very unstable)
- Added opengl and hardware overlay display output
- Rewrote the vga screen updates to go in lines
- Added paging and v86 support to cpu emulation
- Added a config option to simulate a certain type of machine
- Added hercules graphics emulation
- Made CGA/TANDY modes more compatible
- Updated textmode drawing routines to support blinking colors
- Fixed VESA set page function that was documented wrong
- Fixed some wrongly emulated cpu opcodes.
- improved exception handling
- debugger: fixes; logging of gdt,lgt,idt, new commands(Fizzban)
- fixed some mscdex issues (drive letter header error, added get directory entry)
- added/fixed some bios funcs
- added some rarely used xms functions (thanks c2woody!)
- implemented GUS emulation
- Added 16-bit DMA support (for GUS and eventually SB16)
- Fixed many small bugs in filehandling routines
- Many small FPU fixes (c2woody/Fizzban)
- Some keyboard improvements (pharlab games)
- Some Timer and cmos/rtc fixes (Mirek/Srecko/Others)
- Lot's of mouse fixes (Help from various people)
- Enabled internal modem
- Made the DOS parsing routines a bit more flexible
- Added Subst (Srecko)
- Added cdrom ioctl support for linux (prompt)
- Many internal DOS fixes: memory/files/datastructures.
- Got some help from c2woody in allowing more than 1 irq being served
- Disabled DPMI (not needed anymore. DOSBox handles almost every extender)
- Search configfile in $HOME directory if none present in current directory
- Added another way to switch to protected mode. (Thanks Morten Eriksen!)
- Fixed some odd badly documented behaviour with PSP/DTA
- Added some warnings on opening of readonly files in writemode(DOS default).
- Many shell enhanchements
- Fixed a win32 specific bug dealing with filenames starting with a "."
- Fixed some bugs with the directory structure: not found/can't save errors
0.60
- rewrote memory system for future paging support
- fixed several EMS and XMS bugs and rewrite for new memory system
- added some support for tandy video modes
- added MAME Tandy 3 voice emulation
- added MAME CMS/GameBlaster emulation
- added serial port emulation with virtual tcp/ip modem (somewhat buggy)
- sound blaster emulation is now sb pro 2.0 compatible
- added basic support for 32-bit protected mode
- VGA now tries to emulate an S3 Trio 64 card with 2 MB
- VESA 2.0 support for some 256 color modes
- rewrote large piece of video bios code for better compatibility
- added support for the not inheritance flags.
- created functions for creating child psp.
- updated errorcodes of findfirst (thanks Mirek!)
- rewrote loggingsystem to generate less warnings
- added dos protected mode interface (dpmi)
- added cdrom label support
- improved cdrom audio playing
- fixed and improved directory cache
- debugger shows selector- and cpu mode info
- added SELINFO (selector information) command to debugger
- added reference counting for dos files
- added tab-completion
- added basic fpu support.
- fixed several bugs with case sensitive filesystems.
- added more shell commands and improved their behaviour.
- mouse improvements.
- real time clock improvements.
- DMA fixes.
- Improved .BAT file support.
0.58
- fixed date and time issues with fcbs
- added more commands to the internal Shell
- corrected config system when a old configfile was used
- fixed cga put and get pixel
- fixed some vga register getting reset to wrong values
- improved support for foreign keyboards
- improved joystick support
- made dosbox multithreaded again
- lot's of soundblaster fixes
- dma fixes
- cdrom support
- midi support
- added scale2x
- reenabled screenshot support
- joystick support fixes
- mouse improvements
- support for writing wavefiles
- added directory cache and longfilename support (longfilenames will be mangled)
- mouse fixes
- date and time updates at z:\
- added (partial) direct disk support. (works probably only if directory is mounted under a:\)
- added support for env variables. (must be set before starting dosbox: DOSBOX_SECTION_PROPERTY=value
like DOSBOX_SBLASTER_IRQ=1)
0.57
- added support for command /C
- fixed all fcb-write functions
- fixed fcb-parseline
- added debugger under linux/freebsd
- added debugger memory breakpoints and autolog function (heavy debug)
- added loadfix.com program that eats up memory (default 64kb)
Usage : loadfix [-option] [programname] [parameters]...
Example: loadfix mm2 (Allocates 64kb and starts executable mm2)
loadfix -32 mm2 (Allocates 32kb and starts executable mm2)
loadfix -128 (Allocates 128kb)
loadfix -f (frees all previous allocated memory)
- added echoing of characters for input function
- added support for backspace for input function
- added partial support for int10:01 set cursortype
- fixed most of the problems/bugs with character input.
- fixed allocationinfo call.(darksun series)
- improved dos support for non-existant functions
- Split screen support
- prefix 66 67 support
- rewrote timingscheme so 1000 hz timers don't cause problems anymore
- update adlib emulation
- fixed some isues with the mouse (double clicks and visible when it shouldn't be)
- improved mouse behaviour (mickey/pixel rate) and detection routines.
- basic ansi.sys support
- Disney sound system emulation
- rewrote upcase/lowcase functions so they work fine with gcc3.2
- SHELL: added rename and delete
- added support for command /C. Fixed crashes in the shell
- fixed various bugs when exiting dosbox
- fixed a bug in XMS
- fixed a bug with the joystick when pressing a button
- create nicer configfiles.
- bios_disk function improved.
- trapflag support
- improved vertical retrace timing.
- PIT Timer improvements and many bug fixes
- Many many bug fixes to the DOS subsystem
- Support for memory allocation strategy
- rewrote cpu mainloop to act more like a real cpu
0.56
- added support for a configclass/configfile
- added support for writing out the configclass into a configfile
- removed the language file and made it internal
- added support for writing the language file (will override the internal one)
- improved mousesupport
- updated readme
- support for screenshots
- some cpu-bug fixes
- dma changes
- Real Sound support
- EMM fixes and new functions.
- VGA fixes
- new wildcompare
- support for size and disktype at mount.
- added new debugger functionalities: start/trace into INTs, write processor status log,
step over rep and loop instructions, breakpoint support without using INT 03 (heavy debugging switch)
- Added more cpu instructions and changed the string operations.
- Added classes for most of the internal dos structures.
- Rewrote most of the fcb calls to use normal dos calls.
0.55
- fixed the errors/warnings in prefix_66.h and prefix_66_of.h (decimal too large becomming unsigned).
- fixed compilation error on FreeBSD when #disable_joystick was defined
- int10_writechar has been updated to move the cursor position.
- changed the basedir routines to use the current working dir instead of argv[0]. This will fix and brake things :)
- illegal command, now displays the command
- wildcmp updated to be case insensitive
- added fcb:open,close,findfirst, findnext.
- fixed rename in drive_local
- added new features to the debugger: breakpoint support / data view / command line
- partial support of list of lists (dos info block)
- full emm 3.2 support
- partial emm 4.0 support
- fixes to graphics core fonts (text in sierra games is now correct)
- improved support for user mousehandlers
- fixed EGA graphics
- fixed VGA graphics
- fixed write with size 0
- changed memory management.
- fixed and cleaned up the cpu flags.
- changed interrupt handler.
- speeded up the graphics.
- speeded up the cpu-core
- changed dma
- improved dma streams from emm memory
- added some cga videomodes
- added more funtions to the keyboard handler