DOSBox-X release 0.82.9 2018-09-01 14:00
joncampbell123
released this
01 Sep 21:29
·
13341 commits
to master
since this release
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