DOSBox-X

Émulateur v2025.02.01

DOSBox-X est un émulateur open-source spécialisé dans l’exécution d’applications et jeux MS-DOS, d’IBM PC (jusqu’à Windows 98) et de PC-98, avec un support étendu des cartes graphiques 3Dfx Voodoo. Fork de DOSBox, il se distingue par une configuration plus flexible et une précision accrue, idéale pour les environnements historiques ou les développements DOS.

Sur macOS, il fonctionne principalement sur les modèles Intel (à partir de High Sierra) et propose des builds compatibles avec SDL 1 et 2. Bien que des versions pour Apple Silicon soient mentionnées sur le site officiel, leur disponibilité et leur stabilité ne sont pas confirmées. L’émulateur cible aussi bien les jeux DOS que les logiciels Windows 3.x/9x, avec des fonctionnalités avancées comme l’émulation IDE, le clipboard ou le support multimédia. Une documentation détaillée et une communauté active (via Wiki et GitHub) accompagnent son utilisation.

Dernière mise à jour :

Plateformes

Architecture

Mac OS X - macOS Mac OS X - macOS Intel x86 Intel x86 Apple Silicon Apple Silicon 64 bits 64 bits SDL Library SDL Library

Téléchargement et liens

Historique des versions

v08.31
  • Nouveautés majeures :

    • Ajout du support pour le montage de disques virtuels TeleDisk (.td0).
  • Corrections importantes :

    • Correction des codes de statut INT 13h pour les erreurs de lecture/écriture de secteurs (retour précis des codes d'erreur comme seek failed, CRC/data error, etc., au lieu d'un code générique 0x04).
    • Correction de la gestion des savestates entre builds Windows/Linux (compatibilité des structures de données et gestion des chemins de montage).
    • Correction des erreurs de CHS (Cylinder-Head-Sector) pour les disquettes (utilisation correcte du format 8-bit au lieu du format disque dur 10-bit/6-bit).
    • Prise en compte des bytes-per-sector définis par le disque via INT 1Eh (au-delà des 512 octets par défaut), pour les disquettes.
    • Correction de l'affichage des labels de volume FAT (plus affichés comme des noms 8.3).
    • Correction de la refactorisation du code des sous-classes imageDisk (VFD, D88, NFD, etc.) dans des fichiers dédiés.
  • Améliorations techniques :

    • Correction de la gestion de l'environnement COMMAND.COM pour respecter la structure MCB-chain attendue.
    • Correction du débogueur (affichage des registres 16-bit pour les opérandes de taille byte, résolution des variables nommées dans les expressions).
    • Correction des offsets OpenGL pour le plein écran et les modeswitching.
    • Correction de la logique de stripping des noms de fichiers dans DOS_Execute().
    • Correction d'une crash sur les builds Win9x "lowend" liée à AttachConsole().
    • Correction d'un bug d'accès hors limites dans drive_virtual.cpp.
Changelog complet
2026.08.31: - Added support for mounting TeleDisk (.td0) floppy image files. (cimarronm) - Fixed prompting of working directory option (maron2000) - Relax sanity check of floppy image considering specially formatted disks (maron2000) - Disk sector I/O now returns typed INT 13h status codes instead of a catch-all error, and the INT 13h handler propagates the specific code (seek failed, controller failure, CRC/data error, etc.) into register AH on read/write errors rather than collapsing every failure to 0x04. Also fixes AH being left stale on write errors and a VFD fill-sector write that reported failure after succeeding. (cimarronm) - On non-MSC, only define MIN/MAX if not already defined (skitt) - Fixed FreeDOS XCOPY failed to copy files when destination directory was not specified (maron2000) - IMGMOUNT: Fixed a regression that didn't try loading IMGMAKE.IMG if no image was specified (maron2000) - Fixed a build error when FFmpeg is upgraded to FFmpeg 9 (maron2000) - Fixed freeze when savestate flagged file not found (rebb) - Fixed capture and savestate directory locations (maron2000) - Refactored the imageDisk subclasses into their own source files and headers (VFD, D88, NFD, empty drive, INT 13h passthrough, El Torito floppy, and MS-DOS block device), leaving the base imageDisk class and BIOS disk-list plumbing in bios_disk. (cimarronm) - Shell init: allocate the COMMAND.COM environment block after allocating the shell binary/PSP in both SHELL_Init() and CONFIGSHELL_Init(), so memory layout and ownership ordering match expected MCB-chain behavior. (cimarronm) - Debugger: fixed disassembler showing 16-bit register names for byte-sized operands. (cimarronm) - Fixed INT 13h CHS decoding for floppies, which incorrectly used the hard disk layout (10-bit cylinder / 6-bit sector) instead of the floppy layout (8-bit cylinder in CH / 8-bit sector in CL) on read, write, and get drive parameters. (cimarronm) - Fixed savestates written by a Windows build failing to load on Linux builds. The per-drive Opts struct in the DOS component held an unsigned long, which is 4 bytes on Windows and 8 on LP64 hosts, so the saved stream desynchronized and the load ran off the end of the component. Also fixed POD_Load_DOS_Mscdex looping forever on an out-of-range CD drive count, and mounted drive paths keeping their Windows path separators when a state is restored on a non-Windows host. (ozy24) - Fixed chs_write packing the high cylinder bits into the sector field of the synthesized MBR partition table, which corrupted the end-CHS entry for disks with an end cylinder above 255. (cimarronm) - Floppy INT 13h sector reads/writes now honor the bytes-per-sector code from the disk base table pointed to by INT 1Eh instead of assuming 512, allowing guests that reprogram INT 1Eh to access non-512 media. (cimarronm) - Debugger: Resolved named variables in expressions (zlatkok) - OpenGL: Fixed fullscreen and modeswitching positional offsets. (DieSkaarj) - Simplified the MCB filename-stripping logic in DOS_Execute(). (cimarronm) - Fixed FAT volume labels being displayed as 8.3 filenames. (cimarronm) - Fixed crash of Win9x lowend build at launch due to use of AttachConsole() function (maron2000) - Fixed a out-of-bounds array access bug in drive_virtual.cpp (maron2000)
v08.02
  • Nouveauté majeure :

    • Ajout d’un protocole expérimental ethnet pour l’émulation NE2000, permettant une configuration client-serveur entre instances (via localhost ou réseau local) pour simuler un LAN privé, avec une syntaxe similaire au commande ipx existante.
  • Améliorations techniques :

    • Correction des erreurs de rendu caractères et curseur souris en mode DOS/V japonais.
    • Optimisations de performance du pilote FAT (énumération de répertoires, création/lecture/écriture de fichiers).
    • Mise à jour du moteur sonore Nuked-OPL3-fast à la version 1.8-fast.3.
  • Corrections critiques :

    • Suppression des faux rapports d’opérandes mémoire illégales dans l’analyse des instructions (debugger).
    • Correction des fuites de handles dans les chemins d’erreur du pilote FAT (plus de fichiers ouverts en attente après une lecture de secteur tronquée).
    • Réorganisation des vérifications BPB (Boot Parameter Block) pour les disquettes, ajout d’une validation supplémentaire.
  • Compatibilité et fiabilité :

    • Prise en charge des sous-répertoires imbriqués pour le Z: drive.
    • Ajout des types de machines PC3270 et Olivetti (compatibilité matérielle étendue).
    • Correction du comportement du souris en mode PC-98 (INT 33h) pour refléter le comportement réel du pilote.
Changelog complet
2026.08.02 - Debugger: normalize 16-bit segmented offsets for address display/lookup and avoid false "[illegal]" memory operand reports in AnalyzeInstruction() (cimarronm) - Fixed character rendering and mouse cursor display in DOS/V Japanese mode. (nanshiki) - Fixed build error of OSFREE release builds (maron2000) - Added floppy BPB sanity check, and rearranged existing floppy BPB check code (maron2000) - Fixed window resizing (OpenGL, SDL2) (misty7666) - Updated Nuked-OPL3-fast to v1.8-fast.3 (tgies) - Added support for nested subdirectories in Z drive (maron2000) - Added experimental "ethnet" command and protocol for NE2000 emulation. Instead of using the pcap promiscious mode, which doesn't work over Wi-fi, a client server setup can be configured to emulate a private lan between instances of DOSBox-X either on localhost or on the local area network. The ethnet command is deliberately built so that client and server set up is the same command structure as the "ipx" command used to set up an IPX network in DOSBox and DOSBox-X. (joncampbell123) - FAT driver performance improvements, at least for directory enumeration, file creation, reading, and writing (joncampbell123). - Added PC3270 and Olivetti machine types (firevaran). - Fixed fatDrive error paths so truncated boot-sector reads no longer look like successful mounts, and early returns now close diskfile handles instead of leaking them. (cimarronm) - INT 33h: In PC-98 mode, do not maintain a hide/show display count to match real mouse driver behavior (nanshiki)
v07.02
  • Nouveautés majeures :

    • Ajout du support pour Nuked-CQM dans l'émulation de l'OPL (AdLib/Grace Note), améliorant la compatibilité avec certains jeux et logiciels musicaux.
  • Corrections importantes :

    • Résolution des incompatibilités entre les formats de savestates générés avec MSVC et MinGW (problème transplateforme).
    • Correction des erreurs de signe dans l'instruction PMULLW (x86), évitant des plantages ou comportements incorrects.
    • Correction de la taille du registre FPU_Reg_80 (FPU 80-bit), impactant la précision des calculs flottants.
    • Fix d'un crash au démarrage avec les manettes (joysticks) déclarant plus d'un interrupteur directionnel (hat switch).
    • Correction des problèmes d'impression (gestion des commandes ESC S, typographie DBCS, et avancée de position cellulaire).
    • Correction de la détection de géométrie des dossiers montés en tant que périphériques (ex: C: sous DOS).
  • Améliorations spécifiques à macOS :

    • Builds OSFREE disponibles en nightly pour macOS (version alternative optimisée pour les systèmes libres de restrictions).
    • Correction du rapport d'aspect ratio et de la taille de la fenêtre en revenant de plein écran (via D3D11).
    • Affichage explicite de "OSFREE" dans le titre et les messages d'aide pour distinguer les builds dédiés.
    • Fix d'un échec de boot possible depuis le menu "Boot from disk image".
    • Correction de l'affichage des boîtes de dialogue lors du montage d'ISO via le menu déroulant.
    • qcow2 : Utilisation de la CHS logique (BIOS) au lieu de la CHS physique (IDE) pour les disques montés avec des numéros de périphérique (meilleure compatibilité avec certains systèmes DOS).
Changelog complet
2026.07.02 - Prepare for release. This time release OSFREE first so that the normal version appears first on GitHub. - Fixed savestate format incompatibility between MSVC and MinGW builds. (AleWin32) - Fixed PMULLW signedness issues. (bachimusprime) - Fixed FPU_Reg_80 size (cimarronm) - gui/sdl_mapper: Fixed startup crash with joysticks reporting >1 hat switch (BoykoNeov) - Added Nuked-CQM support to OPL emulation. (maron2000) - macOS: Build OSFREE nightly builds (maron2000) - D3D11: Fix Aspect ratio and Window size was not reflected when returning from fullscreen mode (maron2000) - qcow2: Set logical (BIOS) CHS instead of physical (IDE) CHS when mounted with Drive numbers. (maron2000) - Debugger: fix F11 (trace into next instruction) collision being swallowed by Windows Terminal (AleWin32) - Show OSFREE in the title and help message to distinguish OSFREE builds. (maron2000) - Fixed possible boot failure when booted from "Boot from disk image" menu. (maron2000) - Fixed dialog box didn't show when an ISO was mounted via dropdown menu. (maron2000) - printer.cpp: Fixed various printer emulation issues (maron2000) Fixed handling of variable_length command Fixed a typo in ESC S command Skip DBCS processing for bit graphic data Fixed advancing cell position of DBCS characters - Fixed geometry detection of host folder converted drives (maron2000)