Skip to content

Releases: joncampbell123/dosbox-x

DOSBox-X release 0.82.11 2018-11-21 23:00

22 Nov 06:50
Compare
Choose a tag to compare

0.82.11

  • SDL GUI fixed to make fade/sepia effect fit the
    actual display rectangle instead of filling the
    window.
  • PC-98 BIOS keyboard handling now returns capitals
    for A-Z if SHIFT xor CAPS LOCK is engaged.
  • PC-98 BIOS keyboard handling now uses modifier bits
    of keyboard bitmap to process scan codes, hackish
    IBM PC/AT data area status handling in PC-98 mode
    removed.
  • PC-98 BIOS keyboard emulation now maps numeric keypad
    to produce the correct keyboard input to the console
    and games. This fixes games that rely on the numeric
    keypad and the DOS console driver
  • Command line parsing fixed to add any BAT, COM, and
    EXE file references given at DOSBox-X's command line
    to the autoexec.bat file run at startup.
  • BOOT command bug fixed that made it impossible to
    specify both disk images and the --debug and --force
    options.
  • Debug output fixed to make it easier to break into
    the debugger even during a flood of debug output.
  • Added dosbox.conf option to enable/disable the
    PC-98 bus mouse interface
  • PC-98 boot disks with 128 bytes/sector boot sectors
    now load 4 sectors instead of 2. Seems to be
    required by some games.
  • INT 13h read/write functions fixed to refuse the
    command if the floppy disk has a sector size too
    large for the implementation (such as a PC-98
    disk image mounted in IBM PC mode with 1024 bytes
    per sector).
  • INT 13h AH=2 (read sector) updated to return disk
    change error on first read after disk change, to
    match real BIOS behavior.
  • Floppy emulation now tracks "disk change" signal.
  • PIC event handling fixed, IRQ breakpoints now stop
    at the beginning of the interrupt handler.
  • MPU-401 MIDI default IRQ is now IRQ 6 in PC-98 mode,
    to match factory default setting.
  • MPU-401 MIDI IRQ masked by default in PC-98.
  • PC-98 port BFDB implemented, which allows control
    of the mouse interrupt rate.
  • Eliminated mouse periodic interrupt hack, the mouse
    interrupt on PC-98 is periodic when enabled.
  • 256-byte/sector hard disk images fixed to ensure the
    proper boot drive identifier is presented for MS-DOS
    when booting a hard disk image.
  • Added IMGMOUNT -o partidx=N option. N is an integer
    value that indicates which partition to mount, counting
    up from zero. This allows mounting disk images that
    the FAT driver otherwise can't identify which partition
    to mount.
  • New general -o name=value option for IMGMOUNT, to pass
    various options to the FAT driver.
  • Update Metal Force mouse hack to become a more general
    "fire interrupt on Port C write" with a dosbox.conf
    option to enable. This fixes the requirement to move
    the mouse constantly for "Amaranth" when enabled.
  • Add to cascade interrupt hacks by offering an option
    to ignore the "in service" bit of the PIC for the
    cascade interrupt, while still tracking it for
    the DOS game or interrupt. Handy for PC-98 games
    that check the cascade "in service" bit before
    acting on the interrupt (IRQ 8-15).
  • DOS kernel fixed to limit it's private area and
    UMB region to avoid overlapping the PC-98 SOUND
    BIOS.
  • PC-98 SOUND BIOS dummy stub added for games that
    call into it.
  • Emulator hanging problem fixed when inputs are
    processed while running at a very low cycle count.
  • Added PC-98 LIO BIOS list and stub for games that
    require it.
  • Timer and PIC updated to emulate Mode 3 Square Wave
    output through the IRR register. Needed for Steel
    Gun Nyan.
  • PC-98 INT 18h fixed to reenable and process any
    keyboard data waiting when the DOS game or application
    calls INT 18h to read keyboard input. This fixes
    keyboard problems with Quarth.
  • PC-98 FDC BIOS emulation no longer reprograms the
    timer interrupt, but uses an alternate hack to
    avoid divide by zero fault with Ys II.
  • PC-98 GDC command to read back cursor position
    added.
  • PC-98 DOS CON device emulation now maintains ANSI
    attribute byte at 60:11D as documented.
  • BOOT now hides hardware cursor when booting a guest
    OS in PC-98 mode.
  • INT 1Dh vector now points at segment FD80 to satisfy
    some games that autodetect PC-98 vs other platforms.
  • INT 18h AH=42 implement display "bank" bit for games
    that need it.
  • PC-98 text scroll region implemented (I/O ports
    76h-7Ah even).
  • PC-98 CRTC mode set regarding 20/25-line mode fixed
    to update line height, text vertical position/height,
    and cursor shape.
  • PC-98 emulation of text height/vertical position
    registers 70h-74h even added.
  • PC-98 text hardware cursor fixed to cover both halves
    of doublewide characters if cursor positioned on left
    half, to match real hardware.
  • Fixed music/interrupt slowdown whenever I/O and INT 10h
    BIOS emulation is involved.
  • PC-98 minimal (non-functional at this time) printer
    port emulation added, as well as system configuration
    port.
  • PC-98 CG memory region fixed to match real hardware
    behavior, responding to A4000-A4FFF.
  • FAT filesystem driver now supports 2048 bytes per
    sector filesystems.
  • FAT filesystem driver logical/physical sector matching
    fixed to improve flexibility.
  • Fixed crash that occurs if you maximize the window
    and then adjust scalers to produce output that is
    larger than the maximized window.
  • INT 33h emulation now offers hiding the host cursor
    if the guest has provided an interrupt subroutine
    for the mouse driver to call, since it usually means
    the DOS game wishes to draw the cursor itself.
  • INT 33h emulation now offers hiding the host cursor
    if the guest is polling the cursor position, to
    better support guest/host integration with DOS games
    that draw their own cursor.
  • AUX and PS/2 emulation no longer allowed if machine
    type is PCjr.
  • PS/2 mouse emulation fixed to disable itself if the
    slave PIC needed for IRQ 12 is not present.
  • INT 33h pointer integration improved to support some
    additional DOS games, and to handle DeluxePaint II
    enhanced.
  • IMGMOUNT now supports NFD disk images.
  • DOSBox Integration Device now available for PC-98.
  • Added support for T98Next NHD hard disk images.
  • Added support for T98Next NFD R1 disk images.
  • Fixed crash with VGA BIOS allocation if video memory
    allows the full modelist to overflow the available
    ROM space.
  • SDL2 mapper redraw issue resolved.
  • Added dosbox.conf option to determine whether INT 10h
    VESA BIOS emulation points at the modelist in ROM or
    copies the modelist into the DOS application's info
    structure when asked.

DOSBox-X release 0.82.11 2018-11-13 23:00 BETA

14 Nov 06:38
Compare
Choose a tag to compare
  • Emulator hanging problem fixed when inputs are
    processed while running at a very low cycle count.
  • Added PC-98 LIO BIOS list and stub for games that
    require it.
  • Timer and PIC updated to emulate Mode 3 Square Wave
    output through the IRR register. Needed for Steel
    Gun Nyan.
  • PC-98 INT 18h fixed to reenable and process any
    keyboard data waiting when the DOS game or application
    calls INT 18h to read keyboard input. This fixes
    keyboard problems with Quarth.
  • Added dosbox.conf settings to enable Auto EOI mode
    in PC-98 mode. DOS game behavior suggests that
    the platform may use Auto EOI.
  • PC-98 FDC BIOS emulation no longer reprograms the
    timer interrupt, but uses an alternate hack to
    avoid divide by zero fault with Ys II.
  • PC-98 GDC command to read back cursor position
    added.
  • PC-98 DOS CON device emulation now maintains ANSI
    attribute byte at 60:11D as documented.
  • BOOT now hides hardware cursor when booting a guest
    OS in PC-98 mode.
  • INT 1Dh vector now points at segment FD80 to satisfy
    some games that autodetect PC-98 vs other platforms.
  • INT 18h AH=42 implement display "bank" bit for games
    that need it.
  • PC-98 text scroll region implemented (I/O ports
    76h-7Ah even).
  • PC-98 CRTC mode set regarding 20/25-line mode fixed
    to update line height, text vertical position/height,
    and cursor shape.
  • PC-98 emulation of text height/vertical position
    registers 70h-74h even added.
  • PC-98 text hardware cursor fixed to cover both halves
    of doublewide characters if cursor positioned on left
    half, to match real hardware.
  • Fixed music/interrupt slowdown whenever I/O and INT 10h
    BIOS emulation is involved.
  • PC-98 minimal (non-functional at this time) printer
    port emulation added, as well as system configuration
    port.
  • PC-98 CG memory region fixed to match real hardware
    behavior, responding to A4000-A4FFF.
  • FAT filesystem driver now supports 2048 bytes per
    sector filesystems.
  • FAT filesystem driver logical/physical sector matching
    fixed to improve flexibility.
  • Fixed crash that occurs if you maximize the window
    and then adjust scalers to produce output that is
    larger than the maximized window.
  • INT 33h emulation now offers hiding the host cursor
    if the guest has provided an interrupt subroutine
    for the mouse driver to call, since it usually means
    the DOS game wishes to draw the cursor itself.
  • INT 33h emulation now offers hiding the host cursor
    if the guest is polling the cursor position, to
    better support guest/host integration with DOS games
    that draw their own cursor.
  • AUX and PS/2 emulation no longer allowed if machine
    type is PCjr.
  • PS/2 mouse emulation fixed to disable itself if the
    slave PIC needed for IRQ 12 is not present.
  • INT 33h pointer integration improved to support some
    additional DOS games, and to handle DeluxePaint II
    enhanced.
  • IMGMOUNT now supports NFD disk images.
  • DOSBox Integration Device now available for PC-98.
  • Added support for T98Next NHD hard disk images.
  • Added support for T98Next NFD R1 disk images.
  • Fixed crash with VGA BIOS allocation if video memory
    allows the full modelist to overflow the available
    ROM space.
  • SDL2 mapper redraw issue resolved.
  • Added dosbox.conf option to determine whether INT 10h
    VESA BIOS emulation points at the modelist in ROM or
    copies the modelist into the DOS application's info
    structure when asked.

DOSBox-X release 0.82.10 2018-11-03 23:00

04 Nov 05:52
Compare
Choose a tag to compare

0.82.10

  • PC-98 INT 1Bh floppy emulation now fakes success for
    calls to format track.
  • Initial keyboard pause fixed
  • PC-98 INT 1Bh floppy disk BIOS call now resets timer
    interval per call. This fixes Ys II after disk swap.
  • BIOS fixed to put normal "unhandled INT call" handler
    for INT 0-7 even in PC-98 mode to avoid confusion
    between game crashes and unknown INT calls.
  • VFD image support fixed to properly handle disk images
    where a sector is marked with fill byte 0xFF and the
    data field is 0xFFFFFFFF, which means the sector contents
    are all 0xFF.
  • DOSBox-X now supports T98 NFD disk images (R0).
  • BIOS data area now properly reports a high-resolution
    CRT display.
  • INT DCh AH=1 CL=10h added, which is apparently a print
    string function.
  • BIOS data area now reports 188+ user-definable CG slots,
    which makes GAJET happy.
  • FDI image support fixed to read the header instead of
    treating it as a plain disk image with 4096 of junk.
  • PC-98 character generator is now accessible through both
    I/O ports A1h-A9h and through memory-mapped I/O range
    A4000-A401F. This fixes missing text in Eve Burst Error.
  • Gravis Ultrasound emulation will no longer log GUS reset
    writes in cases where the same value is being written
    repeatedly, to reduce log clutter. Some demoscene
    productions have music routines that trigger GUS reset
    repeatedly without changing the register.
  • Added "gus master volume" setting to deal with games or
    demoscene productions where the music is too loud and clipping.
  • Added "Pause with interrupts". When enabled, the CPU is directed
    into a CALLBACK_Idle() loop to halt the game's main
    logic while allowing interrupts to run. This is useful
    for recording the game or demo's music because most DOS
    games/demos run the music and sound effects from interrupt
    handlers instead of the main loop.
  • Audio/video capture fixed to render audio even if muted,
    instead of rendering garbage to the capture file when
    audio is muted.
  • Experimental Emscripten + Node target (not reliable yet).
  • Added option to control how unhandled IRQs are dealt with.
    One option, mask_isr, is derived from em-dosbox.
  • Code added to read the screen dimensions in Linux/X11,
    either through XRandR or through the base X11 API.
  • Code added to read and store the dimensions, size, and
    DPI (Dots per Inch) of the screen.
  • Fixed bug that enabled IBM style APM BIOS in PC-98 mode.
  • For PC-98 mode, PIC emulation by default (but controllable
    through dosbox.conf) now initializes the PIC at startup to
    return the ISR (interrupt in-service) register instead of
    the IRR (interrupt request) register. This fixes FM
    music problems with Blackbird by Vivian caused by a
    programming mistake in the FM interrupt handler.
  • PIC emulation now accepts a dosbox.conf option not to mark
    the cascade interrupt as in service, for troublesome games.
  • VESA BIOS emulation now supports a packed 16-color (4bpp)
    mode as seen on a Toshiba Libretto (Chips & Tech) system.
    The packed format is different than the normal planar 16-color
    SVGA modes seen on most systems.
  • INT 33h no longer reports relative mouse motion unless the
    user captures the cursor.
  • Fixed EGA 16-color display modes (M_EGA) to honor CGA and
    Hercules compatible mapping modes (bits 0 and 1 of the
    CRTC mode control) and limit memory display to 8KB or 16KB
    accordingly. This fixes the mode select screen in the game
    "Prehistorik 2".
  • Removed Sound Blaster goldplay mode + sample accurate mode
    warning, goldplay mode no longer has issues with sample
    accurate mode.
  • Mixer "sample accurate" mode fixed to work again.
  • Windows SDL1 builds fixed to work around Windows SDK-level API
    limitation that normally prevents Win32 applications from
    fully receiving WM_KEYDOWN events for the left/right shift
    keys independently. Left and right shift keys are now fully
    usable on Windows builds (i.e. for use with pinball games).
  • INSTALL.MD guide and test files (Aybe)
  • CONFIG -get now populates %CONFIG% environment variable with
    configuration setting (follow DOSBox SVN behavior)

DOSBox-X release 0.82.9 2018-09-01 14:00

01 Sep 21:29
Compare
Choose a tag to compare

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 dem...
Read more

DOSBox-X beta 0.82.8 2018-07-15 16:00

15 Jul 23:10
Compare
Choose a tag to compare
Pre-release
  • VGA DAC emulation cleanup, and accuracy fixes. Attribute controller, pel mask, and palette now operate in the way they actually work on real hardware.
  • VGA DAC emulation alternate behavior for Tseng ET4000 emulation, based on what actual ET4000 hardware does with the Attribute Controller, Pel mask, color select, and palette. Note that this behavior is required for COPPER.EXE to do it's line-fading technique properly.
  • machine=svga_et4000 emulation now also supports the hretrace "wobble" technique in COPPER.EXE
  • Added option to map SVGA non-linear framebuffer modes with a 128KB window starting from the 64KB bank-switching window, to help with a few demoscene productions that seem to have problems rendering past the 64KB bank without properly bank switching.
  • Gravis Ultrasound emulation now has an option to start emulation with the GUS wavetable, IRQ already started and running (as if ULTRINIT) which is needed for some demoscene productions.
  • Added "pic unmask irq" for Gravis Ultrasound.
  • Added hack for Gravis Ultrasound (disabled by default) where polling the DMA control register can check and re-trigger GUS DMA. For use with demoscene productions that have broken GUS support when uploading samples to the GUS.
  • Fixed Gravis Ultrasound emulation to mask the DRAM address (wraparound) to 1MB when the DOS game/demo peeks/pokes samples into RAM without DMA. This fixes "Acme Mental Masturbation" demo which seems to upload samples directly this way where bits 23-20 of the DRAM address are garbage or meaningless.
  • Fix VGA vertical timing bug where vtotal += 2 was applied twice.
  • Fixed Sound Blaster Pro mixer emulation to leave undefined bits set, not cleared. This fixes some demoscene productions that rely on set reserved bits to detect Sound Blaster Pro.
  • Fixed refresh and screen update problems with SDL2 builds.
  • Refactoring and cleanup of SDL output modes, separation into separate files (Alexat)
  • New load/save state framework. Currently (at this build) loads/saves system RAM, video RAM, and CPU state. THIS FRAMEWORK IS VERY EXPERIMENTAL AND IS NOT GUARANTEED TO WORK WITH MORE THAN A HANDFUL OF GAMES. Mapper shortcuts are hostkey+F1 to save, hostkey+F2 to load. Hostkey is F12, except on Windows, where hostkey is F11.

DOSBox-X beta 0.82.8 2018-07-05 09:00

05 Jul 16:07
ac0aa13
Compare
Choose a tag to compare
Pre-release

This is a beta release.

This has fixes for mouse integration, and consolidation of aspect ratio scaling along with other minor fixes.

DOSBox-X release 0.82.8 2018-07-01 10:00

01 Jul 17:00
Compare
Choose a tag to compare

0.82.8

  • New xBRZ scaler (with bilinear mode) (Alexat)
  • Fixed aspect ratio correction to use the ratio given by VGA emulation
    instead of assuming 4:3
  • output=surface and xBRZ now permit filling the window just like
    output=opengl and output=direct3d
  • Added critical section around Windows SDL 1.x resize code to solve
    the remaining 0.5% probability that resizing the window causes move
    and resize to stop working in Windows 10.
  • INT 10h AH=10h now ignores AL=3 in PCjr mode.
  • Fixed keyboard handler bug in PCjr mode that caused some CPU
    register corruption and general crashiness in games.
  • Improved shell: (Aybe, Joncampbell123)
    • Ctrl+Left and Ctrl+Right permits word-navigation.
    • Added emulation of 'Ins' key behavior.
  • Num Lock, Caps Lock, Scroll Lock are now synchronized at startup
    and when DOSBox-X window gains focus again (Windows). (Aybe)
  • Added visual feedback to Hat/D-pad buttons in mapper. (Aybe)
  • Added documentation for 'dir' command sorting switches. (Aybe)
  • Menu 'Show console' is now checked with '-console' (SDL1). (Aybe)
  • Improved joystick support (see README.joystick): (Aybe)
    • Added deadzone and response for joystick axes.
    • Axes can be remapped for devices with questionable layout.
    • User-settable deadzones for joystick bindings in mapper,
      mappings like WSAD keys to axes is less frustrating.
  • Improved mouse integration (Aybe):
    • Now by default DOSBox-X does not emulate mouse movement when the mouse
      is not locked. This gives a consistent experience when compared to host OS.
      For the old behavior, use [sdl] mouse_emulation=always.
    • Added visual or auditive feedback about auto-lock state (Windows).
      This feature can be switched off, use [sdl] autolock_feedback=none.
  • Added CAPMOUSE program for capturing/releasing mouse from command line. (Aybe)

DOSBox-X release 0.82.7 2018-06-01 13:05

01 Jun 20:06
Compare
Choose a tag to compare

0.82.7

  • Mac OS X builds now honor showmenu=false by leaving the
    stock SDL menu in place at startup.
  • Default minimum MCB free/base is now 0x100, to sidestep
    unknown unstable DOS application behavior when DOS
    applications are loaded at around segment 0x800.
    This also puts DOSBox-X at parity with the base memory
    behavior of DOSBox SVN.
  • Add dosbox.conf option to set Sound BIOS enable
    bit in non-volatile RAM (PC-98) that tells older
    PC-98 games the FM card is present (Yksoft)
  • BOOT updated to boot D88 except for 2D format which
    is generally used by PC-88 disk images.
  • Added D88 disk image support
  • CMake files added (Aybe)
  • PIC timing updated to use "double" float type for
    more precision, but as a typedef for future support
    as a compile time option.
  • Removed geometry checks from INT 1Bh FDC functions,
    to allow non-uniform disks to work.
  • MinGW builds now allowed to use Direct3D.
  • Direct3D output fixed to use the same texture
    coordinate, window fitting, and positioning
    logic as OpenGL.
  • Update zlib and libpng libraries in-tree.
  • Fixed VFD disk image support to correctly signal
    failure to detect geometry, to avoid divide by
    zero crash with FAT driver.
  • showmenu= now taken into consideration whether to
    show the menu bar at startup
  • Fixed get_item() E_Exit crash if menus asked to
    show from dosbox.conf
  • SDL drawn menus fixed to integrate with Direct3D
    output on Windows.
  • PC-98 mode can now boot floppy disk images where the
    boot sector is 128 or 256 bytes/sector despite
    track 1 and higher having 1024 bytes/sector.
  • General codebase cleanup, compiler warning cleanup.
  • Enable XInput support on Windows (Aybe)
  • Fixed SDL drawn menus to use std::vector properly,
    not to hold onto iterators while resizing the vector
    and popping things off the top.
  • PC-98 INT 1Bh "read id" floppy disk call fixed to
    cycle through sector numbers. Some bootable PC-98
    games use "MEGDOS" which polls this BIOS call before
    attempting to read the disk. If the sector numbers
    never cycle, "MEGDOS" will not attempt to read the
    disk.
  • Fixed bug that prevented some menu options (such as
    "aspect ratio") from working if still in the BIOS or
    booted into a guest OS.
  • PC-98 mode fixed to ignore "mainline compatible mapping".
    That mapping mode refers to DOSBox SVN which never
    supported PC-98 mode anyway.
  • Fix PC-98 INT 1Bh "test read" call, which then allows
    "cherry bomb" to run.
  • Remove geometry checks in PC-98 INT 1Bh BIOS call, so
    that FDD images with odd sector sizes can work.
  • ROM BIOS now automatically occupies E8000-FFFFF instead
    of F0000-FFFFF when in PC-98 mode.
  • Most 128 byte/sector FDD images appear to jump to
    E800:0002. I'm guessing that's ROM BASIC, so add a
    callback at that location to catch these boot disks
    and show a message instead of allowing the boot
    sector to jump to nothing and crash.
  • PC-98 BOOT fixed to check for and support booting from
    FDD images where track 0 contains 128 byte/sector
    boot sectors.
  • PC-98 INT 1Bh support fixed to support reading/writing
    sector sizes other than the one sector size reported
    by the image. It is now possible to read the other
    sector sizes from an FDD/VFD image.
  • Fixed somewhat serious bug that, when compiled against
    Microsoft C++, causes the AVI writer to use the 32-bit
    lseek() function instead of the 64-bit lseek64() function.
    Prior to this fix, AVI captures would begin to corrupt
    themselves after growing past 2GB in size.
  • Cleanup code, fix compiler warnings, typecast problems,
    C/C++ conformance problems as reported by GCC 4.8,
    GCC 7.3.0 (MinGW), Visual Studio 2017, and Clang/LLVM
    on Mac OS X.
  • FM Towns machine type stub, for anyone interested in
    forking DOSBox-X to implement FM Towns emulation.
  • Code cleanup, refactor, according to compiler warnings.
  • SDL drawn menus fixed to copy Direct3D backbuffer to
    the SDL surface when popup occurs. This allows the
    menus to overlap the Direct3D display correctly.
  • Fixed Direct3D output so that when composing the next
    frame in the backbuffer, it also copies the SDL drawn
    menu from the SDL surface in order to keep it on
    screen.
  • Direct3D output updated to follow SDL clip rectangle
    struct, in the same exact manner as the OpenGL output.
    This also permits the Direct3D output to correctly size
    itself and leave space at the top for the SDL drawn
    menus.
  • Fixed dynamic core entry point to push/pop EBP because
    debug builds need the compiler to track the stack frame.
  • Updated in-tree zlib and libpng libraries to the latest
    provided by both projects.
  • Fixed VFD (FDD) disk image support to signal to FAT driver
    properly an error if it could not determine a geometry.
  • Fixed code breakage with SDL2 that prevented compilation
    with Munt (MT32) emulation enabled. SDL2 builds now allow
    MT32 emulation.
  • Mac OS X builds now compile against the in-tree zlib and
    libpng libraries for consistency.
  • MinGW builds now compile against the MinGW provided zlib
    and the in-tree libpng library for consistency.
  • Enabled MinGW builds to use Direct3D and Direct3D shaders.
  • Added code to auto-detect the VirtualBox display driver
    in Windows build, because OpenGL output doesn't work
    in Windows XP under VirtualBox. The change will switch
    the default output to "surface" if VirtualBox is detected,
    else will retain the "opengl" default. This change applies
    only to MinGW builds and not HX DOS or main VS2017 builds.
  • Added PC-98 INT DCh emulation for function call that
    writes a char to the screen, allowing Eve Burst Error
    to clear the function row
  • Added command line option to allow skipping the 1-second
    wait in the BIOS startup screen.
  • SDL2 builds now support use of the SDL drawn menu with
    a touchscreen device.
  • Fixed up SDL2 support code to compile correctly on
    Mac OS X.
  • Fixed up SDL2 compilation to automatically use the
    SDL2 library on the system, or if that is not available,
    use the SDL2 library in-tree. There are no plans to make
    modifications to the in-tree SDL2 code.
  • Added code to read and discard OpenGL error code before
    creating font texture, to avoid false failure handling.
    This fixes font rendering on Windows MinGW builds when
    output=opengl.
  • OpenGL SDL drawn menus fixed to ensure the menu contents
    have been redrawn at least twice. One for each OpenGL
    buffer because DOSBox-X uses the double-buffered mode.
  • SDL drawn menus implemented for output=opengl. The menu
    bar in Linux builds is now available in OpenGL mode.
  • SDL drawn menus fixed to redraw only when state changes,
    and to clean up menu drawing code.
  • US keyboards can now enter the "Ro" key in PC-98 mode.
    Default binding is set up to map the Windows Menu key
    as Ro in PC-98 mode.
  • VGA option change code fixed to trigger scaler redraw
    correctly. Changing video modes or changing between
    8/9-pixel VGA text no longer leaves artifacts on the
    screen.
  • Added code to force redrawing additional frames when
    output=opengl, in order to correct a bug with Linux/X11
    and MesaGL where the first OpenGL buffer swap after
    SDL_SetVideoMode() is misplaced when the window size
    changes.
  • Renderer SSE line comparison fixed to use correct sizeof()
    of the integer type during compare.
  • Renderer fixed not to use SSE and non-SSE line comparision
    at the same time, if SSE was enabled at compile time.
  • Fixed in-tree SDL 1.x library to allow DOSBox-X to disable
    auto-refresh of the window in Linux/X11 after SDL_SetVideoMode
    to prevent visible flickering when resizing the window.
  • Conditional support for Direct3D (9) output enabled for
    MinGW builds, if the MinGW headers are available (yksoft1).
    Option is disabled by default.
  • Configuration GUI dialog box widened to accomodate buttons
    that were previously cut off on the right.
  • Replace E_Exit() with LOG_MSG() for key codes from the mapper
    that a keyboard scan code generator does not recognize. This
    fixes E_Exit() crashes if typing certain keys on a Japanese
    keyboard with no equivalent in IBM PC/AT mode.
  • Added code to double the size of the menu and menu items if
    the window is 1280x800 or larger, for users with high
    definition laptop displays and screens.
  • Enforce minimum window size of 640x400 if the menu bar is
    visible and DOSBox-X is drawing them, to make sure the menus
    are accessible on screen.
  • Removed auto-scalar-size code when output=surface that was
    causing problems when resizing the window.
  • Do not show "screenshot" menu item if screenshot support not
    available at compile time.
  • Remove "always on top" for anything but Windows at this time.
  • Disable "Show debugger" option on Linux and Mac OS X if no
    console attached to STDIN/STDOUT/STDERR.
  • Disable "Show console" option on Linux and Mac OS X since
    the console is not under our control.
  • Windows "Always on top" fixed to remember selection and
    enforce it between SDL_SetVideoMode and fullscreen entry/exit.
  • Windows builds fixed NOT to change window Z-order on the
    screen when updating the window on SDL_SetVideoMode.
  • HX DOS builds fixed to keep window maximized at all times
    to fill the otherwise unused space on the screen since
    HXGUI only supports one window.
  • Menu framework support for any other platform (including
    Linux) added. The menus are drawn by DOSBox-X itself
    using the 8x16 VGA font. This also gi...
Read more

DOSBox-X BETA 2018-05-18 17:00

19 May 00:00
Compare
Choose a tag to compare
Pre-release
  • Added PC-98 INT DCh emulation for function call that
    writes a char to the screen, allowing Eve Burst Error
    to clear the function row
  • Added command line option to allow skipping the 1-second
    wait in the BIOS startup screen.
  • SDL2 builds now support use of the SDL drawn menu with
    a touchscreen device.
  • Fixed up SDL2 support code to compile correctly on
    Mac OS X.
  • Fixed up SDL2 compilation to automatically use the
    SDL2 library on the system, or if that is not available,
    use the SDL2 library in-tree. There are no plans to make
    modifications to the in-tree SDL2 code.
  • Added code to read and discard OpenGL error code before
    creating font texture, to avoid false failure handling.
    This fixes font rendering on Windows MinGW builds when
    output=opengl.
  • OpenGL SDL drawn menus fixed to ensure the menu contents
    have been redrawn at least twice. One for each OpenGL
    buffer because DOSBox-X uses the double-buffered mode.
  • SDL drawn menus implemented for output=opengl. The menu
    bar in Linux builds is now available in OpenGL mode.
  • SDL drawn menus fixed to redraw only when state changes,
    and to clean up menu drawing code.
  • US keyboards can now enter the "Ro" key in PC-98 mode.
    Default binding is set up to map the Windows Menu key
    as Ro in PC-98 mode.
  • VGA option change code fixed to trigger scaler redraw
    correctly. Changing video modes or changing between
    8/9-pixel VGA text no longer leaves artifacts on the
    screen.
  • Added code to force redrawing additional frames when
    output=opengl, in order to correct a bug with Linux/X11
    and MesaGL where the first OpenGL buffer swap after
    SDL_SetVideoMode() is misplaced when the window size
    changes.
  • Renderer SSE line comparison fixed to use correct sizeof()
    of the integer type during compare.
  • Renderer fixed not to use SSE and non-SSE line comparision
    at the same time, if SSE was enabled at compile time.
  • Fixed in-tree SDL 1.x library to allow DOSBox-X to disable
    auto-refresh of the window in Linux/X11 after SDL_SetVideoMode
    to prevent visible flickering when resizing the window.
  • Conditional support for Direct3D (9) output enabled for
    MinGW builds, if the MinGW headers are available (yksoft1).
    Option is disabled by default.
  • Configuration GUI dialog box widened to accomodate buttons
    that were previously cut off on the right.
  • Replace E_Exit() with LOG_MSG() for key codes from the mapper
    that a keyboard scan code generator does not recognize. This
    fixes E_Exit() crashes if typing certain keys on a Japanese
    keyboard with no equivalent in IBM PC/AT mode.
  • Added code to double the size of the menu and menu items if
    the window is 1280x800 or larger, for users with high
    definition laptop displays and screens.
  • Enforce minimum window size of 640x400 if the menu bar is
    visible and DOSBox-X is drawing them, to make sure the menus
    are accessible on screen.
  • Removed auto-scalar-size code when output=surface that was
    causing problems when resizing the window.
  • Do not show "screenshot" menu item if screenshot support not
    available at compile time.
  • Remove "always on top" for anything but Windows at this time.
  • Disable "Show debugger" option on Linux and Mac OS X if no
    console attached to STDIN/STDOUT/STDERR.
  • Disable "Show console" option on Linux and Mac OS X since
    the console is not under our control.
  • Windows "Always on top" fixed to remember selection and
    enforce it between SDL_SetVideoMode and fullscreen entry/exit.
  • Windows builds fixed NOT to change window Z-order on the
    screen when updating the window on SDL_SetVideoMode.
  • HX DOS builds fixed to keep window maximized at all times
    to fill the otherwise unused space on the screen since
    HXGUI only supports one window.
  • Menu framework support for any other platform (including
    Linux) added. The menus are drawn by DOSBox-X itself
    using the 8x16 VGA font. This also gives SDL 2.x builds
    a working menu. These menus are used if no other platform
    specific menus are available. These menus are NOT AVAILABLE
    at this time if output=opengl.
  • Cycle count edit dialog box fixed to immediately place
    keyboard focus in the text field, and to process
    ENTER and ESCAPE keyboard input as OK and CANCEL
    button input. You can type a new cycles count without
    having to click on the text field first.
  • Menu framework and mapper fixed so that menus always
    reflect the mapper binding in the menu.
  • Windows SDL 1.x fixed async hack to properly destroy
    and shut down the parent window again.
  • Fixed output=opengl crash on Mac OS X.
  • Menu framework support for Mac OS X NSMenu objects added.
    This gives DOSBox-X the same useful menu on Mac OS X
    instead of the useless default menu SDL 1.x offers.
  • Menu framework support for Windows win32 menu resources
    added. The Windows menu is now generated at runtime,
    the static IDR_MENU resource is no longer used.
  • New platform independent menu framework added. Menus
    that were once Windows-only are now available on
    any other platform including Linux and Mac OS X.
  • In-tree SDL 1.x library fixed to #define a special
    variable that the code now requires to compile
    SDL 1.x builds. The option to use your host SDL 2.x
    library is left open.
  • C++11 is now mandatory to compile DOSBox-X

DOSBox-X menu rewrite WIP BETA 2018-05-13 13:16

13 May 20:17
Compare
Choose a tag to compare

0.82.7 (next)

  • Added code to force redrawing additional frames when
    output=opengl, in order to correct a bug with Linux/X11
    and MesaGL where the first OpenGL buffer swap after
    SDL_SetVideoMode() is misplaced when the window size
    changes.
  • Renderer SSE line comparison fixed to use correct sizeof()
    of the integer type during compare.
  • Renderer fixed not to use SSE and non-SSE line comparision
    at the same time, if SSE was enabled at compile time.
  • Fixed in-tree SDL 1.x library to allow DOSBox-X to disable
    auto-refresh of the window in Linux/X11 after SDL_SetVideoMode
    to prevent visible flickering when resizing the window.
  • Conditional support for Direct3D (9) output enabled for
    MinGW builds, if the MinGW headers are available (yksoft1).
    Option is disabled by default.
  • Configuration GUI dialog box widened to accomodate buttons
    that were previously cut off on the right.
  • Replace E_Exit() with LOG_MSG() for key codes from the mapper
    that a keyboard scan code generator does not recognize. This
    fixes E_Exit() crashes if typing certain keys on a Japanese
    keyboard with no equivalent in IBM PC/AT mode.
  • Added code to double the size of the menu and menu items if
    the window is 1280x800 or larger, for users with high
    definition laptop displays and screens.
  • Enforce minimum window size of 640x400 if the menu bar is
    visible and DOSBox-X is drawing them, to make sure the menus
    are accessible on screen.
  • Removed auto-scalar-size code when output=surface that was
    causing problems when resizing the window.
  • Do not show "screenshot" menu item if screenshot support not
    available at compile time.
  • Remove "always on top" for anything but Windows at this time.
  • Disable "Show debugger" option on Linux and Mac OS X if no
    console attached to STDIN/STDOUT/STDERR.
  • Disable "Show console" option on Linux and Mac OS X since
    the console is not under our control.
  • Windows "Always on top" fixed to remember selection and
    enforce it between SDL_SetVideoMode and fullscreen entry/exit.
  • Windows builds fixed NOT to change window Z-order on the
    screen when updating the window on SDL_SetVideoMode.
  • HX DOS builds fixed to keep window maximized at all times
    to fill the otherwise unused space on the screen since
    HXGUI only supports one window.
  • Menu framework support for any other platform (including
    Linux) added. The menus are drawn by DOSBox-X itself
    using the 8x16 VGA font. This also gives SDL 2.x builds
    a working menu. These menus are used if no other platform
    specific menus are available. These menus are NOT AVAILABLE
    at this time if output=opengl.
  • Cycle count edit dialog box fixed to immediately place
    keyboard focus in the text field, and to process
    ENTER and ESCAPE keyboard input as OK and CANCEL
    button input. You can type a new cycles count without
    having to click on the text field first.
  • Menu framework and mapper fixed so that menus always
    reflect the mapper binding in the menu.
  • Windows SDL 1.x fixed async hack to properly destroy
    and shut down the parent window again.
  • Fixed output=opengl crash on Mac OS X.
  • Menu framework support for Mac OS X NSMenu objects added.
    This gives DOSBox-X the same useful menu on Mac OS X
    instead of the useless default menu SDL 1.x offers.
  • Menu framework support for Windows win32 menu resources
    added. The Windows menu is now generated at runtime,
    the static IDR_MENU resource is no longer used.
  • New platform independent menu framework added. Menus
    that were once Windows-only are now available on
    any other platform including Linux and Mac OS X.
  • In-tree SDL 1.x library fixed to #define a special
    variable that the code now requires to compile
    SDL 1.x builds. The option to use your host SDL 2.x
    library is left open.
  • C++11 is now mandatory to compile DOSBox-X