SDL Now Supports DOS
Key point
SDL's DJGPP-based DOS port has been merged into main.
Details
A DJGPP-based DOS port has been added to SDL and merged into main. This change is classified as a 3.6.0 feature.
The port is not just a bare-bones level of functionality — it broadly covers the following areas:
- Video: VGA, VESA 1.2+ framebuffer, 8-bit palette, page flipping, state restoration
- Audio: Sound Blaster 16/Pro/1.x support, IRQ-based DMA handling
- Input: PS/2 keyboard, INT 33h mouse, BIOS joystick
- Threading/Timer: cooperative scheduling,
uclock()-based PIT timer - Filesystem/Build:
GetBasePath,GetPrefPath, CMake cross-compilation toolchain, DJGPP CI
During implementation, DJGPP's seek/read issues were worked around to eliminate SDL_LoadWAV misbehavior and delays, and the audio path was tuned to reduce IRQ reentrancy and stuttering. The fullscreen black screen issue was related to INDEX8 mode selection, and was ultimately fixed by reorganizing the mode order.
However, audio recording, SDL_LoadObject, and native implementations of SDL_TIME are missing, and testing on real hardware was limited. Nevertheless, it passed 46 checks and was merged.
This summary was generated automatically by AI. Check the original for the author's claims and context. Copyright belongs to the original author.
Our guide explains how the AI works. Report summary errors, attribution issues, or removal requests via Contact.