Releases: joncampbell123/dosbox-x
Releases · joncampbell123/dosbox-x
DOSBox-X 0.82.25 2020-01-01 10:44
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.
DOSBox-X 0.82.24 2019-11-30 18:14
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
DOSBox-X 0.82.23 2019-10-31 23:14
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.
DOSBox-X 0.82.22 2019-09-30 20:03
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.
- Handle errant IRQs as a real BIOS does. Also
DOSBox-X 0.82.22 2019-09-14 13:32 BETA
0.82.22 (next)
- 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
- Handle errant IRQs as a real BIOS does. Also
DOSBox-X 0.82.21 2019-08-31 16:05
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.
- In the mapper, display disabled items or events
DOSBox-X 0.82.21 2019-08-27 21:39 BETA
0.82.21 (next)
- 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.
- In the mapper, display disabled items or events
DOSBox-X 0.82.20 2019-07-31 23:17
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.
- Improve disk image mounting: cycle disks only for the
Many thanks to @Allofich for additional bug fixes and backported patches from DOSBox SVN!
DOSBox-X 0.82.19 2019-05-31 22:09
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.
- Add missing reference counting when the file is
- 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...
- Lower the influence of the aspect table correction
DOSBox-X 0.82.18 2019-04-27 22:25
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: 3834, 3839, 3840, 3843,
3845, 3849, 3850, 3853 (Allofich) - 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.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.