DOSBox-X

  • Logos
    Logo de macOS
  • Logos
    logo intel
  • Logos
    Logo Apple Silicon
  • Logos
    Logo 64 bits
  • Logos
    Le logo de la bibliothèque SDL
Version
2024.10.01
Mise à jour
Formule Homebrew
brew install dosbox-x

Reprise de l'émulateur original DosBox incluant le support du 3Dfx et permettant d'installer un Windows jusqu'au 98 et émulant même le PC-98. Les sources, compatibles SDL 1 et 2, sont disponibles. Une build pour processeurs Intel est disponible sur le GitHub officiel. Le build OSX Intel demande au minimum High Sierra (10.13).

Un ancien build OSX officiel connu demandant 10.11 minimum est le 20160219. Sinon nous vous proposons au choix un build de la version 0.82.2 ou de la version 0.82.4 compatibles OSX 10.10. Très proche de DOSBox, retrouvez nos articles sur ce dernier concernant son utilisation et sa configuration, très semblable.

Changelog

Changelog

2024.10.01

  • Allow the ".inst" extension for CUE sheets. (Allofich)
  • Add SET /FIRST, a DOSBox-X extension, that takes the specified
    variable if it exists and moves it to the front of the environment
    block. (joncampbell123).
  • SET command processing has been cleaned up and streamlined.
    Added /ERASE command line switch to clear the environment
    block (DOSBox-X extension). (joncampbell123).
  • VESA BIOS: Add new option to adjust reported linear framebuffer
    address by a specific number of pixels. This is needed by
    "Out of Control" by Contract which for whatever reason,
    will always draw to the LFB base minus 128 bytes. This option
    makes it possible to correct the demo graphics. (joncampbell123).
  • Gravis Ultrasound: Officially, registers 0x0-0xF, the voice
    control registers, are documented to have a 0x0-0xF write and
    0x80-0x8F read alias. Unofficially, according to the behavior
    of 1997 demo "Out of Control" by Contract, all GUS registers
    have a N and (N+0x80) alias, or at least register 0x4C, and
    you can read them back from either index. Or else the demo
    fails to detect the GUS. So add this alias, but only if
    enabled in dosbox.conf. Real hardware testing is required to
    know if the actual GUS behaves this way and which versions.
    (joncampbell123).
  • Move the INT 3 default vector to well within the initial 16
    bytes of the DOS kernel, away from the List of Lists and SFT.
    The previous placement caused certain versions of Windows 3.2
    (yes, the Chinese version) to crash on startup. (joncampbell123).
  • When using the running program to name screenshots and such,
    filter out all invalid characters so that Windows users can
    take snapshots even if junk characters are there (joncampbell123).
  • DOS FAT driver: If INT 13h reports disk change, adapt floppy
    disk geometry to new disk image according to media byte. This
    allows DS_BLISS to present it's 720K fake floppy even if the
    user initially mounted a 1.44MB floppy to drive A: (joncampbell123).
  • INT 10 mode list: Add "pitch" parameter. If nonzero, the value
    (in pixels) is how to program the pixels per scanline when
    setting the mode.
  • VESAMOED: Add -pitch option to control the pitch (pixels per
    scanline). The intent is to work around DOS games that assume
    nonstandard pixels per scanline by allowing the VESA BIOS mode
    to use a different one. For example, Line Wars II has an S3
    acceleration mode that uses 800x600, but for whatever reason,
    assumes the video mode is 1024 pixels per scanline, and will
    render garbled graphics if that is not the case. (joncampbell123).
  • S3 emulation: Follow S3 Trio64 documentation and mask the Linear
    Window Position bits according to the size of the memory. You
    can only place it on a multiple of the memory size. This silences
    warnings caused by Line Wars II which appears to modify only the
    upper byte but not the lower when modifying this register, which
    then leaves 0xA0 in the lower half. That lower half would be
    ignored for 1MB or larger video memory sizes. (joncampbell123).
  • S3 XGA emulation: Add XGA acceleration for 4bpp packed 16-color
    SVGA modes. A CAD package has S3 support drivers that use the
    16-color 4bpp packed modes and expects XGA acceleration to work.
    (joncampbell123).
  • Add "-o int13" option to IMGMOUNT to direct the FAT driver to do
    all disk I/O through INT 13h instead of directly. This is intended
    for certain demoscene productions that apparently like to make
    files appear out of thin air by intercepting INT 13h floppy disk
    I/O and then asking MS-DOS to run something from it. Hack for
    "DS_BLISS" demo. (joncampbell123).
  • Fixed crash when a language file is loaded on a Windows host with
    US keyboard (maron2000)
  • Added Added sharp-bilinear Direct3D shader (RibShark)
  • Pass output dimensions to Direct3D shaders (RibShark)
  • Fixed BPB of floppy images made by IMGMAKE command (maron2000)
  • Fixed timestamp of volume label changed by LABEL command (maron2000)
  • Fixed pathname issues when mounting differencial VHD images (maxpat78)
  • Corrected relative/absolute track offset in subchannel data for
    CD-ROM images (RibShark).
  • Fixed particular dead keys were not working to input characters
    with diacritics (maron2000).
  • Enabled "Edit and Continue" option for debug builds of Visual Studio
    Intel builds (aybe).
  • Updated libchdr to latest (treloret).
  • Fixed icon in Gnome dock bar (FredBezies).
  • add option "[dos] automount drive directories" for Windows builds,
    this will mount existing drive directories from C to Y drive (aybe).
  • fix off-center and off-screen window after entering the
    configuration tool while using TTF output mode (aybe).
  • add menu item for centering window "Video/Center window" (aybe).
  • Fixed update-version-number script to patch all *.iss files, not
    just the specific one it did before, to ensure future releases have
    correct version numbers. (joncampbell123).
  • Updated Nuked-OPL3 code to nukeykt/Nuked-OPL3@cfedb09 (StevenSYS)
  • Updated SDL2 library to 2.30.4 (maron2000)
  • Fixed TTF mode didn't change to graphic mode when machine = Hercules
    (maron2000)
  • Configuration tool: (aybe)
    • more Windows 3.1 look'n'feel (themes w/ host dark mode detection)
    • enhance main window layout, it is now visible in its entirety
    • fix layout issues, off by one in rectangle drawing functions
    • fix 'list iterators incompatible' when pressing the Tab key
    • properties/help: sorted alphabetically, mouse wheel scrollable
    • remove few rendundant labels, adjust names of some others
    • retain 'show advanced options' state throughout session
  • SVN r4483: Fix compilation in Visual Studio 2008 (Allofich)
  • DOSBox Staging: Decouple CMS and OPL emulations (Allofich)

2024.07.01

  • Correct Hercules InColor memory emulation. Read and write planar
    behavior was incorrect due to a misunderstanding of available
    documentation. (joncampbell123).
  • Hercules/MDA and InColor integration broke the Hercules blend mode
    render, fix the render so that adjacent lit pixels are brighter
    again. (joncampbell123).
  • Fix "VRD" debugger command bug that didn't properly render out the
    rest of the VGA display frame. (joncampbell123).
  • Fixed debugger mapper shortcut bug where entering the debugger
    completes the 1 ms "tick" early, effectively jumping emulator time
    up to start of the next ms. This might explain the mysterious cases
    where a program always fails to work unless you are debugging it.
    (joncampbell123).
  • Added debugger command "VRT" which resumes running the guest until
    vertical retrace. Added for programmers who wish to write something
    to screen and then see it show up. (joncampbell123).
  • Fix IMGMOUNT, when mounting FAT disk images, to provide the DPB the
    actual media id byte instead of assuming 0xF8 or 0xF0. INT AH=1Ch
    should now report the proper media id byte for any floppy format,
    instead of always reporting 0xF0 (1.44MB floppy). (joncampbell123).
  • Allow BOOT to load and execute the boot sector of a guest OS even if
    memory size is too small (in IBM PC emulation, less than 32KB of RAM).
    MS-DOS 1.x of course will crash if you try that because of the
    assumptions made in the boot sector, but it's there if you are feeling
    adventurous or are in an experimental mood (joncampbell123).
  • If memsize is 4KB, place the COMMAND.COM PSP segment in the private
    UMB area instead of the normal MCB allocation chain (joncampbell123).
  • DOS kernel will always allocate kernel memory from private UMB area
    if memory size < 16KB, in order to continue to work (joncampbell123).
  • DOS kernel will allocate from segment 0x60 instead of 0x70 if the
    memory size is less than 64KB. (joncampbell123).
  • files= and fcbs= default value now automatically scales according to
    available conventional memory (640KB or lower) in order for memsize 64KB
    or lower to free up or memory and run properly. (joncampbell123).
  • dosbox.conf files= and fcbs= settings have been changed to allow
    "0" as a value to mean choose a reasonable default. (joncampbell123).
  • Fix bug where DOS kernel crashes on startup because of the initial
    stack pointer set by BIOS startup that points past available memory
    when memsize is 64KB or less. (joncampbell123).
  • If minimum mcb free is not set and memory size is less than 256KB,
    automatically set minimum mcb free to minimum mcb segment, in order
    to release more available memory within the limited space (joncampbell123).
  • Do not enable XMS emulation if system memory size is 1MB or less. (joncampbell123)
  • DOS drive cache: When listing a directory, defer the filename sort until
    the entire list is built. This improves directory listing performance
    in directories with many files. (joncampbell123).
  • INT 10h, if instructed, will now use the video parameter table to set
    standard VGA modes instead of internal logic. (joncampbell123).
  • Removed erroneous VGA display compensation code for certain EGA/VGA
    registers that really only caused incorrect display of the EGA 640x350
    4-color mode. (joncampbell123).
  • Corrected EGA and VGA video parameter tables by copying the parameters
    from actual IBM EGA VGA ROM BIOS images. They should be 100% correct
    now. (joncampbell123).
  • Corrected register values and video rendering of machine=EGA 640x350
    mode when emulating 64KB of RAM. This should fix rendering and display
    issues with EGA 640x350 4-color emulation. Also corrected INT 10h
    character printing functions to filter the color attribute value for
    640x350 4-color mode so the DOS prompt does not have alternating
    colors, in the same manner the real IBM EGA BIOS does. (joncampbell123).
  • Fix BIOS screen to use CGA 640x200 2-color mode if machine=ega with
    less than 128KB of video ram, or machine=ega200, instead of showing
    a garbled 640x350 display. (joncampbell123).
  • Fix memory buffer overrun with machine=ega that can occur with
    640x350 mode and less than 256KB of video RAM. (joncampbell123).
  • The DOSBox clipboard API (via INT 2Fh) is now disabled by default, because
    some programs use it's presence to detect whether they are running under
    Windows. This fixes a program where Norton Desktop 1.0 does not use it's
    "graphical" text UI elements because it thinks it's running within a
    Windows DOS box. (joncampbell123).
  • Remove unnecessary and useless Win32 fcntl() on some memory typecast
    to int which is causing a segfault whenever a ZIP file is mounted
    as a drive with an overlay filesystem atop it. (joncampbell123)
  • Update caption control feature to use equivalent APIs on Mac OS. (joncampbell123)
  • Add dosbox.conf and menu option to control whether the DOSBox-X window
    can be seen in screen captures in Windows 7/8/10/11. Windows 11 "Recall"
    is very concerning and users might not want their DOS gaming to be
    part of it's memory. (joncampbell123).
  • Correct EGA switch readback from port 3C2h to reflect a value of 0x8
    instead of 0x9 when machine=ega200 (joncampbell123).
  • Correct BIOS data area value that holds the "EGA switches" to reflect
    200-line EGA "emulation" when machine=ega200. Value 0x08 instead of 0x09
    (joncampbell123).
  • Correct mode parameters for CGA 640x200 2-color mode when using
    machine=ega200 so that it displays correctly. (joncampbell123)
  • DOS kernel: Remove fixed hacks for SFT and dynamically allocate the
    second SFT table for the last N - 5 file handles. Add code to zero
    SFT table memory to ensure that random data doesn't cause issues.
    Windows 3.1 is still perfectly fine with it, so the SFT table update
    and cleanup is complete. (joncampbell123).
  • DOS kernel: Move the magic "CON" strings into the first SFT and
    mimic the 5 default open file handles that every DOS process starts
    with: CON CON CON AUX PRN. Windows 3.1 is still happy with it, which
    is good. (joncampbell123).
  • DOS kernel: Put the CON driver somewhere else because allowing it
    to overlap the SFT is messy. Fix SFT generation to match the way that
    MS-DOS 5.0 does it where the first table is always 5 entries and the
    second table is always N - 5 entries. Cleanup the DOS memory allocation
    a bit. So far, Windows 3.1 doesn't have a problem with it. (joncampbell123).
  • DOS kernel: Interrupt handler IRET was accidentally placed within
    the SFT table, move it up to resolve the conflict. (joncampbell123).
  • Local DOS drive support: On Windows, if the guest is attempting to
    create a hidden file, make sure to call the right APIs to create a
    hidden file on the host. Not only is this needed to create a hidden
    file, but if the guest tries to create a hidden file and the file
    already exists as a hidden file, the file creation needs to succeed.
    Fix for "Facts of Life" by Witan because the demo creates a hidden
    WITAN.92 every time it is run (joncampbell123).
  • XMS: Add dosbox.conf option to XMS driver to switch on flat real mode
    when a) the XMS driver initializes and/or b) when the XMS driver is
    called on to move/copy memory. (joncampbell123).
  • INT 21h: If a DOS program frees a memory block, and then resizes the
    freed memory block, reassign ownership of that block to the program
    as if allocated. This is apparently canonical MS-DOS behavior. Added
    dosbox.conf option to control whether resizing a freed block silently
    assigns ownership (default setting) or whether it returns an error.
    DOS resize memory function for the most part DID assign ownership but
    not in the case where the size of the MCB was exactly the size requested
    to resize to. (joncampbell123).
  • Sound Blaster: Fix bug where "force autoinit" prevented Sound Blaster
    playback from working at all, fix for "Jump" by Public NMI (joncampbell123).
  • Debugger UI now shows PIC_FullIndex() and whether or not the CPU is
    in the HLT state. Single stepping does not do anything when the CPU is
    in the HLT state, so at least let the user know (joncampbell123).
  • Keyboard controller (IBM PC): Cancel the IRQ signal upon reading I/O
    port 60h. The reason for the IRQ, the pending data, was just read, so
    now there is no point in keeping the IRQ signal up. This fixes Escape
    key problems with "Cronologia" by Cascada that causes part 3 "Time"
    to immediately exit and continue to the credits. Part 1 and 2 are not
    affected by the pending IRQ because those parts mask IRQ 1 and poll
    the keyboard controller directly. (joncampbell123).
  • Fix complexity test code to determine when Odd/Even mode is enabled
    in all cases and to resolve a problem with garbled scrolling text
    in the "Vectorballs" part of "Unreal" (joncampbell123).
  • M_EGA display mode now applies CRTC BYTE/WORD/DWORD shift to display
    start address, same as M_VGA, to ensure correct display when demos
    and games set the CRTC to non-BYTE modes. This fixes page flipping
    flickering during the "Vectorballs" part of "Unreal" by Future Crew.
    (joncampbell123).
  • Update Configuration GUI to use radio buttons for selection, meaning the
    circular buttons that resemble those in Windows, not the check boxes.
    The GUI toolkit had them all along, the Configuration GUI was using
    check boxes for that for some reason. (joncampbell123).
  • Linux ALSA MIDI output: Any attempt to send RESET or other Fx commands
    to the ALSA library causes a segfault in the ALSA library. Revise the
    code to send without crashing. (joncampbell123).
  • Linux ALSA MIDI output: Add code to list and enumerate the MIDI sequencer
    devices available so the user can use it to determine what magic numbers
    to put into the midiconfig setting, especially if the user wants to send
    MIDI to an external synthesizer. (joncampbell123).
  • Suddenly Mac OS 14 and XCode consider the "id" and "int" datatypes
    different and assigning or returning one to the other is now a compiler
    error. Add typecast to enable compile on latest XCode. (joncampbell123)
  • INT 33 mouse emulation: Add dosbox.conf options to force a specific
    coordinate system for the DOS game with respect to host/guest mouse
    cursor integration (getting the DOS cursor to match the host cursor
    within the window). Add dosbox.conf option where additional adjustments
    are available. The maximum x/y and max-adjust options are ideal for
    Lemmings 2, which uses INT 33h in a way that confuses the automatic
    range detection code used to synchronize cursor position and therefore
    needs this option, and the first Lemmings as well. (joncampbell123).
  • PIT timer: Fix restart_counter(), the delay computation was completely
    backwards. This is particularly important where it concerns programs
    that use the PIT to detect the rate at which the Pentium time stamp
    (RDTSC) advances as the previous code caused wildly inaccurate measurements
    and bad timing (GRUB bootloader, the Microsoft CD-ROM boot "press a key
    to boot from CD" message). (joncampbell123).
  • IDE: Make sure to set feature/error register to 0x01 when the guest
    soft or hard resets the IDE devices through the controller. The Linux
    kernel uses a soft/hard reset on startup to detect PATA devices and
    if it does not see the correct value after reset, it will either ignore
    the device or complain about diagnostic failure and cautiously talk to
    the primary IDE hard drive while ignoring any ATAPI CD-ROM emulation.
    This allows the Linux kernel to boot and see the CD-ROM drive. (joncampbell123).
  • IDE: Do not clear registers unnecessarily when finishing IDENTIFY DEVICE.
  • The BOOT command now supports El Torito "no emulation" booting from a
    CD-ROM drive, which is needed to boot install CDs for Windows XP, Linux,
    etc. or Linux-based live CDs. Note that at this time, BOOT only supports
    "no emulation" and IMGMOUNT only supports "floppy emulation" (joncampbell123).
  • INT 13h extensions: If a read was interrupted by an error, update the
    block transfer count so the caller knows (joncampbell123).
  • DOS: Move version parsing farther up, so that the initial DOS version
    can affect memory layout and tables as needed. (joncampbell123)
  • DOS DPB and FAT driver: If the DOS version is 4.0 or higher, write a
    DOS 4.0+ compatible DPB structure (as DOSBox-X already has been doing
    since forking from DOSBox). If the DOS version is lower than 4.0,
    write an MS-DOS 3.30 compatible DPB structure. This allows Popful Mail
    to run without getting into an infinite loop scanning the DPB linked list
    when [dos] section ver=3 30 (MS-DOS 3.30), aside from the fact that the
    game will also run without this change if you set ver=4 0 since the game
    appears to be aware of the change in structure between MS-DOS 3.30 and
    MS-DOS 4.0, though for whatever reason the game refuses to run on
    MS-DOS 5.0 or higher. (joncampbell123).
  • IDE: Silently ignore SET FEATURES command 0x03. Any negative response
    to feature 0x03 causes the Linux kernel to reject the IDE device.
    (joncampbell123)
  • Add support for PIT timer 0 mode 4. Linux kernel 6.1.29 compiled in
    "tickless" mode uses mode 4 instead of mode 0 as a delay timeout. Prior
    to this fix, the Linux kernel would switch into tickless mode and then
    nothing would happen because IRQ 0 would never fire again. See also Linux
    kernel source code, drivers/clocksource/i8253.c function pit_set_oneshot()
    to see what I mean. (joncampbell123)
  • Windows 95 S3 driver behavior suggests that S3 16-color VESA modes
    0x202 to 0x208 are NOT planar modes, but packed modes. Change modes to
    M_PACKED4 and update modelist building to allow that range even if the
    dosbox.conf is configured not to list 4bpp packed VESA modes. This fixes
    Windows 95 S3 driver 16-color modes 800x600, 1024x768, 1280x1024.
    Noted: Windows 95 is the last version of Windows to support 4bpp packed.
    Windows 98 and higher refuses to support it and the Display settings
    will not allow you to select any 16-color mode other than the stock
    VGA 640x480 16-color planar mode. (joncampbell123)
  • Add --load-seg option to BOOT in case any PC-98 game boot floppy expects
    to be loaded somewhere other than the default. PC-98 game "Private School
    Adventure" will crash if loaded to segment 0x1FC0 but runs fine if booted
    with --load-seg 0x0FC0 instead. (joncampbell123)
  • Add dosbox.conf option to direct the EMS page frame segment, in a limited
    fashion, though only effective for PC-98 mode. PC-98 segment is still
    0xD000 by default, but apparently there are games that require the EMS
    page frame to exist at 0xC000. For these games, you can now set under the
    [dos] section "ems frame=C000". (joncampbell123)
  • Restored libslirp support for 32-bit MinGW CI builds which was temporarily
    dropped in 2024.03.01 release. Also since MinGW plans to gradually phase
    out 32-bit support, added code to manually build on our own. (maron2000)
  • Fixed build errors of Windows installers. Windows Vista support for standard
    installer is dropped to fix this issue. Vista users can either use the XP
    installer or portable builds instead. (maron2000)
  • Fixed compile error of speexdsp/fftwrap.c on gcc-14 (maron2000)
  • PC-98: Fixed US keyboard support for tilde (Shift+grave) key (maron2000)
  • Fixed DOSBox-X freezed when codepages regarding EGA18.CPX were set (maron2000)
  • Fixed CUE sheets of GOG games were rejected. Still requires "-t iso" or
    "-t cdrom" option for uncommon file extensions except ".CUE". (maron2000)
  • Added loongarch64 support (donmor)
  • Disable FP exceptions in a portable way (xry111, donmor)
  • Added "*.ccd" in file open dialog (maron2000)
  • Added CI builds for ARM mac (maron2000)
  • Bump tinyfiledialogs to ver 3.17.4 (maron2000)
  • Obtain geometry info of non-standard sized floppy from BPB (maron2000)
  • PC-98: Implemented int 18h ah=47h,48h,49h (nanshiki)
  • Added breakpoint type "Freeze memory" (Enmet)
  • Implemented seeking in MSCDEX
    (Imported from dosbox-staging/dosbox-staging#3516 authored by weirddan455)
  • Fixed built-in COPY command failed to obtain free space when reported DOS
    version is set to 7.1 (maron2000)
  • Fixed some file extensions in the filter list were ignored in the file open
    dialogs (maron2000)
  • Fixed mounting a non-FAT VHD image (maxpat78)
  • Fixed VHD geometry detection (maxpat78)
  • Fixed issue that IMGSWAP command did not work for CD drives. (maron2000)
  • Fixed loaded language file unexpectedly changes on launch. (maron2000)
  • Fixed reported size issues in builtin DIR command (maxpat78)
  • Added missing language file in Windows standard & XP installers. (maron2000)
  • Fixed a bug in IME character display on macOS Sonoma (nanshiki)
  • Fixed build errors of SDL1 code when built with gcc-14 (maron2000)
  • Fixed static link errors of libslirp >= 4.8.0 (maron2000)
  • PC-98: Added MEM command for PC-98 mode (maron2000)

2024.03.01

  • If an empty CD-ROM drive is attached to IDE emulation, return "Medium Not
    Present" instead of a read error, when asked to read. (joncampbell123).
  • Add "empty drive" CD-ROM image type "IMGMOUNT e: empty -t iso" as a way
    to emulate an empty CD-ROM drive with no disc in the drive. (joncampbell123).
  • Add "empty drive" floppy image type "IMGMOUNT 0 empty -t floppy -fs none"
    as a way to emulate a floppy drive with no disk in the drive. (joncampbell123).
  • Video debug overlay: Fix mouse integration misalignment when the video
    debug overlay is enabled while Windows is running (joncampbell123).
  • Video debug overlay: Fix segfault when enabled with 15/16bpp SVGA modes.
    (joncampbell123).
  • Video debug overlay: Fix bug where video debug failed to appear in SVGA
    15/16/24/32bpp display modes because of a design where the VGA drawing
    code points directly at video RAM except when drawing the hardware cursor.
    One symptom was that the video debug info on the side failed to appear at
    all, unless running in Windows and only within the vertical range of the
    mouse cursor. (joncampbell123).
  • Video debug overlay: Do not bother showing the Attribute Controller palette
    in 15/16/24/32bpp SVGA modes because it doesn't matter there and is not
    involved with how anything is displayed. (joncampbell123).
  • Video debug overlay: Fix debug info text to appear for 15/16/24/32bpp SVGA
    modes. (joncampbell123).
  • BOOT --bios no longer triggers a system reset VM event, but instead just
    jumps to the new BIOS image after DOS kernel shutdown. This is needed for
    hardware and resources to stay as they were when running the BIOS i.e.
    keeping any IDE devices configured within the DOS kernel intact so that the
    BIOS can find and use them. Prior to this change, all hardware was fully
    reset and unmapped prior to running the BIOS which made IDE emulation
    unusable with BIOS images. (joncampbell123).
  • BOOT --bios no longer immediately loads the new BIOS into memory, but instead
    loads and stores the image to a temporary buffer. The ROM image does not
    actually get mapped in until the DOS kernel and everything else has had a
    chance to shut down fully. (joncampbell123).
  • Fix BOOT --bios not to try to load PC-98 ITF firmware unless actually running
    in PC-98 mode (joncampbell123).
  • Write PC-98 keyboard translation table (non-shifted) in ROM BIOS and set the
    keyboard translation table pointer in the BIOS data area for "Nut Berry".
    This Nut Berry game also assumes lookup and translation tables exist at
    specific locations in the ROM BIOS, so put those tables there. The shift
    state table in BIOS has also been added, though at the moment, the tables
    are incomplete. (joncampbell123).
  • MegaZeux from the MS-DOS days had a 256-color tweakmode that worked on some
    popular SVGA chipsets of it's time though on others it does nothing but halve
    the display resolution of text mode. The basic idea is that it makes the VGA
    card latch two 4-bit outputs of the VGA text mode into one 8-bit value, thus,
    256 colors possible. Add support for this. However I am not sure whether this
    tweakmode is supported by S3 chipsets, so it is OFF by default and you will
    need to add "enable supermegazeux tweakmode=true" to the [video] section of
    your dosbox.conf to enable it. (joncampbell123).
  • Undo the "no partition offset" change. DOOM II for PC-9821 requires it to work
    else the page flipping fails and sprites and rendering flickers as you play.
    (joncampbell123).
  • Allow text layer to appear in PC-98 256-color mode. Even though I was unable
    to enable it on real hardware, "Shamat, The Holy Circlet" requires having
    the text layer visible on top of 640x400 256-color mode for the introductory
    scrolling text to appear on screen. So for now, just allow it. (joncampbell123).
  • The reason some PC-9821 games have been giving bad PITCH values (double the
    correct value) to the GDC in 256-color mode has been determined. They read
    port 9A0h to determine if the GDC is running at 5MHz or not. That port 9A0h
    index was not implemented and therefore gave the game the impression it was
    running at 5MHz when it was not, therefore the doubled PITCH value. This fix
    corrects the squeezed 256-color mode and allows it to appear properly.
    (joncampbell123).
  • IMGMOUNT: If the file extension is HDI, assume a hard disk image even if the
    image file is small enough to qualify as a floppy disk image. There is an
    HDI image of PC-98 game "D.O. Doki Doki Disk 8" that is 2.2MB, small enough
    to be mistaken as a 2.88MB IBM PC floppy disk and therefore fail to mount
    as an HDI image, this change fixes it. (joncampbell123, maron2000).
  • Emulate PEGC PC-98 linear framebuffer at both 0xF00000-0xF7FFFF (at 15MB
    memory mark) but also make it appear at top of memory below BIOS (normally
    at 0xFFF00000-0xFFF7FFFF). Some 32-bit PC-9821 CD-ROM MS-DOS games assume
    the top of memory alias and will fail to show anything on screen without
    it (unless, alternatively, the memalias setting is set to emulate 24 address
    lines like a 386SX). Now to figure out why these same games are programming
    a GDC PITCH value that's double what it should be... (joncampbell123).
  • PC-98 GDC scan offset no longer pays attention to scan offset of data
    partition in 256-color mode. Required to help fix broken 256-color graphics
    for some PC-98 CD-ROM games. (joncampbell123).
  • Refuse to enable ISA 15MB-16MB memory hole if memalias is set to 24 bits or
    less. Not only is it redundant to do that but it also causes the BIOS to
    immediately crash on startup. (joncampbell123).
  • IDE ATAPI CD-ROM emulation: In PC-98 mode when emulating a NEC CD-ROM drive,
    also limit sector reads to one CD-ROM sector per DRQ because the MS-DOS driver
    assumes that behavior. The driver will stall and error out if it requests a
    multi-sector read and the drive does NOT limit transfers to one sector at a
    time per IDE data transfer. This is in line with my experience writing the
    DOSLIB IDE testing program and laptops from the 1990s with IDE ATAPI CD-ROM
    drives, so it's understandable. (joncampbell123).
  • The reason the CD-ROM driver in PC-98 game HDI images refused to talk to our
    IDE CD-ROM emulation is... (drumroll) we didn't report ourself as an NEC
    CD-ROM drive when given the MMC INQUIRY command. Yes, really. The OAK CD-ROM
    driver in these HDI images really does care whether or the drive is an NEC
    brand drive. What a stupid reason not to talk to a CD-ROM drive. Add code to
    default to "NEC" "CD-ROM DRIVE" as the INQUIRY result if running in PC-98 mode.
    (joncampbell123).
  • Add basic rudimentary support for CloneCD (*.ccd *.img) images. It might not
    work with more complex arrangements but it is enough for most CD-ROM PC-98
    games so far. (joncampbell123).
  • libpng supports the pHYs PNG chunk which describes the pixel aspect ratio of
    the PNG image. libpng 1.6 has it, use it. Programs that support the information
    like FFMPEG will then display the PNG image with the correct aspect ratio.
    (joncampbell123). [https://github.com//issues/4754]
  • PC-98 mode: There is a 302KHz timer behind I/O ports 5Ch/5Eh that some MS-DOS
    drivers depend on for timing, particularly a popular IDE CD-ROM device driver
    in many PC-98 game HDI images. This change allows the driver to time out after
    about 5-10 seconds instead of an infinite hang. (joncampbell123)
  • Fix INT 10h to keep hardware CRTC I/O port synchronized with BIOS DATA area
    copy so that other parts of INT 10h called by SetVideoMode do not accidentally
    talk to the wrong I/O ports. This fixes corrupted INT 10 Mode F display
    (640x350 monochrome graphics mode). (joncampbell123).
  • Add DOS Int21 0x5D 0x00 - remote server call
    Inspired by FeeDOS inthndlr.c
    With this change it is possible use a plain dosbox-x to install and run
    Windows for Workgroups V3.11 as an IPX server on the pcap ne2000 interface
    offering a host directory for read and persistent write access to an
    MSDOS machine running a WfW 3.11 IPX network client.
    Please don't forget mounting with -nocachedir
    (Issue #4162)(Yogi-baer)
  • Fix missing keystroke SDLK_LESS on DE keyboard on Raspbian OS (Yogi-baer)
  • Fix crash when loading a language file without existing menu item "ttf_extcharset" (Yogi-baer)
  • Change ISA memory hole 512kb option from boolean to true/false/auto. (joncampbell123)
  • Add ISA memory hole 15mb option, make it true/false/auto.
    Auto means off for IBM compatible mode and on for PC-9821 compatible mode.
    This should allow some DOS games that depend on the linear framebuffer
    to work properly even if memsize=16 or higher. (joncampbell123)
  • MIDI: set minimum sysex delay when enabled (mistydemeo)
  • International support in LABEL, COPY, DEL builtin commands (maxpat)
  • Fix palette setting bugs due to SETCOLOR fix in 2023.10.06 release. (maron2000)
    Graphical glitches in Ultima VI(#4507), Chessmaster 3000(#4510), Wizardry VII(#4534)
    Crash Sid Meyer's Civilization I (#4511)
    TTF color settings regarding 'colors' option (#4579, #3318) and some more
  • Fix crash when mounting floppy/ISO images with no extension (maron2000)
  • Fix Intel macOS CI builds crashed on startup due to missing dylibs
    (Issue #4438)(maron2000)
  • Fix TTF mode didn't switch to graphics mode on certain types of machines
    such as tandy/pcjr.(Issue #4559)(maron2000)
  • Fix crash on switching to fullscreen when output=opengl (Intel macOS) (maron2000)
  • Update DXCapture shell command to support /O for OPL capture (AranVin...

2023.10.06

  • Add "VRD" debugger command to force redraw of the VGA screen.
  • Add VGA debug set commands to force a video start address and another
    to clear all debug settings.
  • Add "PITSYNC" option to VFRCRATE command. "VFRCRATE PITSYNC ON"
    directs the system timer interrupt to synchronize tick rate with
    vertical refresh rate of VGA emulation if the game or demo set
    the timer tick rate to a value close enough to vertical refresh.
    This is intended for games or demos that use the system timer for
    a vsync interrupt.
  • IMGMAKE: Fix bug where if -bat was specified, the generated .bat
    file would attempt to mount the .bat file, not the disk image.
  • IMGMAKE: If -nofs and -bat was specified, the generated .bat file
    will refer to "IMGMAKE 2" instead of "IMGMAKE C"
  • DOS FAT driver: When the guest sends in a new BIOS Parameter Block,
    recalculate the disk locations and FAT type properly instead of
    assuming that FORMAT.COM is using the same format already present.
  • DOS FAT driver: If the partition is unformatted and looks as if
    freshly written by FDISK, then instead of failing to mount, mount
    the partition instead as an unformatted partition and fail file
    I/O until a BPB is set and the partition formatted by FORMAT.COM.
    This matches MS-DOS behavior and it makes it possible to mount an
    image, FDISK it, restart, FORMAT.COM the unformatted partition,
    and end up with a working drive letter (just like MS-DOS). So far
    verified against MS-DOS 6.22 and Windows 98 versions of FDISK,
    FORMAT, SYS, and SCANDISK.
  • DOS FAT driver: Add options -o sectoff and -o sectlen to make it
    possible to manually specify the start and length of a partition.
    Future code will use this internally as well.
  • IMGMOUNT: Allow *: as a drive letter to mean automatically pick a
    drive letter.
  • Fix debugger to use toupper(), but only for ASCII range ncurses
    keycodes.
  • Timer PIT: If the guest writes the counter value while the counter
    gate is off, make sure the counter read back is the same value
    written regardless of gate status. Prior code returned the stale
    latched value of the counter as it was prior to shutting off the
    gate and writing the counter, causing timing issues.
  • Fix restoring minimized window on TTF output (Issue #4248) (maron2000)
  • Fix macos crash on launch when output=surface or auto (SDL2) (maron2000)
  • Update in-tree SDL2 library to ver 2.28.2 (maron2000)
  • Updated build tool for MinGW lowend builds required for the updated SDL2
    library. As a result, MinGW lowend builds are now able to enable debugger
    features. (maron2000)
  • Debugger RUN and RUNWATCH commands were broken, fix. Make sure debugger
    shortcut triggers execution to stop whether in RUN or RUNWATCH mode.
  • Fix SETCOLORS command didn't change color when output=ttf.(Issue #4503)
    Also fixed the values reported were wrong. (maron2000)
  • BIOS CMOS date/time functions will now idle the CPU 4 times after reading
    or setting the clock to allow interrupts, CPU time, and RTC clock ticks
    to proceed normally. This fixes "Pizza Tycoon" and allows it to continue
    past the initial logo. (joncampbell123)
  • Fix segfault when mounting hard disk images with no file extension
    (joncampbell123).

2023.09.01

  • Disable by default message confirmation after snapshot and AVI video
    capture, but leave the option there for those who want to enable it (joncampbell123).
  • Remove "LOG: Logging output has been disabled." output when -nolog
    is specified on the command line (joncampbell123).
  • Fix stuck Ins key problems by fixing a typo in src/ints/bios_keyboard.cpp.
    The code is supposed to clear the "Ins key down" flag, but instead cleared
    all bits EXCEPT "Ins key down" (joncampbell123).
  • NE2000 macaddr default is now "random", which instructs the NE2000
    hardware at startup to pick a random MAC address. (joncampbell123).
  • IPX: If NE2000 and IPX are enabled, and an IPX tunneling connection is
    active, and the user boots a guest OS, switch on a mode where all IPX
    packets going to and coming from the guest are re-routed through the
    IPX tunnel instead of to the NE2000 ethernet backend. This feature
    makes it possible to play IPX-based games in a guest OS like MS-DOS
    and Windows 95. (joncampbell123).
  • IPX: Add extension to server to allow clients to register their own
    MAC address instead of using the default MAC address given by their
    IP address and port number. The extension is designed so that if DOSBox-X
    is a client to another DOSBox fork's IPX tunneling server, it will
    be ignored and DOSBox-X will get the usual MAC address instead. This
    extension is required for guest OSes to be able to use the IPX protocol
    through the NE2000 card given upcoming code changes as they normally
    use the network card MAC address when picking an IPX address because
    the IPX interface is not available once booted into a guest OS. (joncampbell123).
  • IPX client: If both IPX and NE2000 emulation are enabled, IPX emulation
    will use the NE2000 card's MAC address instead. It will use the IPX
    server DOSBox-X extension to try. If it doesn't work, then the normal
    MAC address assignment is accepted without complaint. (joncampbell123).
  • NE2000: Add "nothing" backend. It receives nothing and send packets go
    nowhere. If no other backend is available, this backend is a fallback
    so that at least the NE2000 emulation can work. The other purpose of
    a nothing callback is to give NE2000 something to talk to for those
    who wish to use the upcoming IPX packet redirection to link DOS and
    Windows games over the IPX client or server connection to other
    instances of DOSBox. (joncampbell123)
  • Added record function to capture NE2000 network traffic to a
    pcap/Wireshark file in the capture directory. (joncampbell123)
  • Fixed bug where guest VM reset causes the CMOS to stop ticking for
    exactly the amount of time it was running before reset. (joncampbell123)
  • Added alarm interrupt function to RTC CMOS emulation (joncampbell123)
  • Reverted DOS to using the BIOS_DATA tick count for time and the cached
    copy of date it keeps internally, rather than always calling INT 1Ah.
    It turns out that is how DOS actually behaves, which is also why it is
    possible for the DOS and CMOS RTC to diverge. Fix CMOS emulation to
    allow get/set time and to run in emulation time, not real time, though
    the clock starts from the host time. (joncampbell123)
  • Fixed VHD disk image calculation of footer position and, thus, of newly
    allocated block position. (maxpat78)
  • Enhanced Dynamic and Differencing VHD support #4273 (maxpat78)
  • Imported IBM Music Feature Card support from DOSBox Staging. (Allofich)
  • Fix IMGMAKE large size image error on MinGW builds (maron2000)
  • Set usescancodes=true when non-US keyboards are detected. (Linux / MacOS
    builds) (maron2000)
  • Fix day of week detection (INT 21h function 0x2Ah). (maron2000)
  • Refine KEYB and CHCP command (maron2000)
  • Use segment descriptor's big flag (if present) when disassembling code in
    the debugger code view (cimarronm)
  • Add decoding of rdmsr/wrmsr instructions to disassembler (cimarronm)
  • Fix disassembly for far jmp/call decoding (cimarronm)
  • Fix memory limits on expand-down segment descriptors (cimarronm)
  • Bump tinyfiledialog to ver 3.13.3 (maron2000)
  • Fix mouse column limit on text mode (issue #4353) (maron2000)
  • Fix Blocek launching failure (issue #4385) (maron2000)
  • Bump in-tree FreeType library to ver 2.13.1 (maron2000)
  • Enable debugger function for MinGW builds (maron2000)

2023.05.01

  • IMGMAKE will choose LBA partition types for 2GB or larger disk
    images, but the user can also use -chs and -lba options to override
    that choice. The CHS or LBA partition types do matter because it
    affects which version of INT 13h is used by Windows 98/ME to boot up
    and, if drive C: is in compatibility mode, at all times. (joncampbell123)
  • PC-98 256-color mode will also trigger the auto mode of "render on
    demand" for performance reasons because per-scanline raster effects
    are very unlikely in that case, as will MDA and Hercules machine
    types. (joncampbell123)
  • When the DOS IDLE API is enabled (by default), limit STI+HLT to
    occur on INT 28h only once after any call to read the CON device
    or call to BIOS INT 16h to read the keyboard. This fixes stalls
    and sluggish input problems with programs that like to call INT 28h
    often like the Pacific C compiler PPD IDE interface. (joncampbell123).
  • Hercules InColor machine type: Fixed attribute and RAMFONT handling
    of 48K RAMFONT mode and added planar text rendering. (joncampbell123).
  • Write BIOS data area fields for number of rows, char height, etc.
    for MCGA machine type in addition to EGA/VGA machine types because
    IBM technical references suggest it's there for MCGA as well.
    This also resolves an issue where with the MCGA machine type, INT 10h
    failed to print any text to screen whatsoever. (joncampbell123).
  • Render on demand (Staging calls it "lazy rendering") now defaults
    to "auto" and allows an "auto" setting. The auto setting will
    turn it off for standard VGA modes and will turn it on for SVGA
    modes where per scanline raster effects are very unlikely to
    occur. This may provide a performance boost for DOS games in SVGA
    modes and the Windows desktop (joncampbell123).
  • CGA 320x200 4-color mode is now rendered using the M_EGA render
    code for EGA/VGA machine types to better reflect real hardware.
    (joncampbell123).
  • Fix bug where setting doublescan=false for anything other than
    the VGA machine type would break CGA graphics modes.
    (joncampbell123).
  • Fix video debug overlay calculations of source video mode for
    CGA graphics modes. (joncampbell123).
  • CGA 640x200 2-color mode and MCGA 640x480 2-color mode are no
    longer rendered as M_CGA2 for EGA/VGA machine types. The reason
    is that at the hardware level they are really just IBM standard
    tweaked versions of the EGA/VGA 16-color modes with additional
    bits for the interleave emulation and can be properly emulated
    with the M_EGA renderer. M_CGA2 is still used for the CGA and
    MCGA machine types for those modes. The DCGA DOS/V mode has been
    carefully made into it's own render mode instead of part of the
    M_CGA2 case. (joncampbell123).
  • Fixed refcount -1 error and abort when multiple floppies are
    attached to a floppy drive and the "Swap floppy" mapper shortcut
    is used at least once (joncampbell123).
  • Hercules palette selection now provides a "dark gray" color
    mapping to match the green, amber, or gray palette selection of
    the user (joncampbell123)
  • Fix Hercules vs MDA attribute handling of "dark gray" background
    color when hardware blink is disabled. (joncampbell123)
  • Added RAMFONT emulation to Hercules Plus machine type, fixed code
    to allow Hercules Plus text mode to draw farther than the first 4KB
    of RAM if RAMFONT enabled. (joncampbell123)
  • DOS kernel: Fix programming mistake that allocated perhaps a bit
    too much DOS kernel memory for the "List of Lists" info block.
    Fix the sizes of the info block and other structures to make sure
    specific kernel structures are placed at fixed addresses because
    later Microsoft software for MS-DOS checks those values.
    (joncampbell123)
  • Serial port: Add multiplier: setting as requested to enable
    faster than 115200 baud rates. (joncampbell123)
  • Fix mistakes in CPUID emulation that threw a #UD exception for
    specific cases where EAX was not recognized by particular CPU
    types. (joncampbell123)
  • Fix RTC clock emulation to correctly signal IRQ8 interrupt for
    both periodic tick and update-ended events. Prior to this fix,
    only periodic tick events were reported even if the bit was set
    to enable update-ended. (joncampbell123)
  • Fix serial and AUX PS/2 mouse emulation to not send relative
    motion unless mouse captured, to make it consistent with the
    BIOS PS/2 mouse emulation (joncampbell123)
  • FAT driver: Major performance boost is possible by eliminating
    unnecessary code that re-reads the entire directory when looking
    up or changing one particular directory entry. (joncampbell123).
  • CMOS registers: Fix code to allow getting and setting time,
    fix year vs century registers to work properly. (joncampbell123).
  • BIOS INT 1Ah: Fix functions to get and set time and date
    instead of faking on read and ignoring set. Use the CMOS
    registers. (joncampbell123).
  • DOS INT 21h: Fix date and time functions to call the BIOS for
    time instead of trying to fake it only at the DOS level. This
    includes allowing INT 21h to change the date/time using the
    BIOS. (joncampbell123).
  • DOS shell: Make TIME actually use INT 21h to set time instead of
    directly modifying the BIOS timer tick count in the BDA.
    (joncampbell123).
  • Increased PIC event queue size, there are corner cases especially
    with Windows XP that can occasionally overrun the queue.
    (joncampbell123).
  • Updated IBM PC keyboard emulation to correctly encode Pause and
    Print Screen key scan codes when shift, alt, and ctrl are held
    down. This makes it possible to type "Alt+SysRq" for programs
    that expect it, including SoftICE. (joncampbell123).
  • NE2000 emulation: Looking at recent Bochs source code, ne2k.cc
    appears to have downgraded the "IMR write, reserved bit set"
    message from BX_PANIC to BX_ERROR. Update the same in DOSBox-X
    so that Windows 2000 no longer crashes the emulator with E_Exit()
    when probing the NE2000 hardware. (joncampbell123).
  • INT 33h mouse services: Add "Get General Driver Information"
    function for Microsoft Word 5.5 (joncampbell123).
  • INT 33h mouse services: Render cursorType == 2 (graphics cursor)
    as if text cursorType == 0 if the current mode is text mode.
    Microsoft Word 5.5 always calls functions to set text AND graphics
    cursor regardless of whether the actual mode is graphics or not.
    This fix allows the cursor to show correctly as the block cursor
    it wanted in text mode instead of a moving hardware blinking cursor.
    (joncampbell123).
  • Fixed S3 XGA emulation bitmap rendering to correctly handle
    8/16/32-bit pixel transfer I/O and update comments to reflect
    the 32-bit byte aligned transfer mode of the Trio chipset.
    This fixes incorrectly drawn radio buttons and 16x16 icons
    in Windows NT 3.5, Windows NT 3.51, Windows NT 4.0, and
    Windows 2000. (joncampbell123).
  • Fixed keyboard emulation so that upon the keyboard reset command
    FFh, the keyboard does the reset process and THEN sends back
    bytes 0xAA (power on/reset OK) and 0x00 (interface self-test).
    This resolves the issue where Windows NT 3.1 pauses at startup and
    does not resume booting until you press a key on the keyboard.
    This also resolves the issue where Windows NT 3.5 keyboard and
    mouse input stops working completely if you press a key on the
    keyboard. (joncampbell123).
  • Add Hercules InColor emulation of MDA vs CGA attribute select,
    and make sure it obeys the blink setting (joncampbell123)
  • Change Hercules/MDA text output to render 9 pixels per char
    if the char9 setting is on, to match the 9x14 character cell
    that those cards emit to the screen. The user can always turn
    it back off to get the 8x14 text they're probably accustomed
    to in other DOSBox forks. (joncampbell123)
  • Render output fixed to never double pixels vertically on render
    if the machine type is emulating VGA and the Doublescan option
    is enabled, in order to help resolve SVGA text mode issues
    reported by ThomasKjoernes (joncampbell123)
  • Add InColor CRTC registers and add code to emulate the planar
    bitplane operations. Microsoft Flight Simulator 3.0 renders
    correctly now. (joncampbell123)
  • Update Hercules InColor code to render the same 64-color EGA
    palette as machine=ega. (joncampbell123)
  • Correct machine=hercules text rendering flaw that prevented
    the bright attribute (bit 3/7) from working, making all text
    output the same normal brightness. (joncampbell123)
  • Add expected data structures and signatures to VGA ROM BIOS at
    C000:0000 if machine type selects ATI emulation (joncampbell123).
  • Add ATI machine types, which at this time, is just a placeholder
    for development to go in that direction over time for those
    machine types. (joncampbell123)
  • Added "machine=hercules_plus" and "machine=hercules_incolor" as
    stubs to be developed on going forward to emulate the HGC+ and
    InColor cards. Note that InColor will require the MCH_HERC case
    to generate 64-color EGA-like output going forward even if the
    documented stratup state still emulates the MDA-like monochrome
    attributes. (joncampbell123)
  • SDL2: Stop checking for compiler flags that make it an error to
    declare variables after statements in a function or any other
    terrible sins that would offend old C89 standard compilers.
    DOSBox-X is never going to compile for a C standard that old.
    Furthermore this check is preventing compilation on ARM-based
    Macbooks for some reason, though not Intel based Macbooks.

Auteur(s)

Auteur
joncampbell123

Autres émulateurs de la catégorie

  • iDOS

    Dernière mise à jour:
    Version 2.1
  • Clock Signal (CLK)

    Dernière mise à jour:
    Version 2024-10-19
  • Wine

    Dernière mise à jour:
    Version 9.20
  • MAME

    Dernière mise à jour:
    Version 0.271
  • UTM

    Dernière mise à jour:
    Version 4.5.4
  • 86Box

    Dernière mise à jour:
    Version 4.2.1
  • QEMU

    Dernière mise à jour:
    Version 9.1
  • RetroArch

    Dernière mise à jour:
    Version 1.19.1
  • Parallels Desktop

    Dernière mise à jour:
    Version 20.1