dosbox-x/CHANGELOG

1053 lines
52 KiB
Plaintext

(next)
- 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