- 
                Notifications
    
You must be signed in to change notification settings  - Fork 2.4k
 
Description
Hello SDL3 team and community,
First of all, thank you for your incredible work on SDL. It's a cornerstone of the cross-platform development world.
I'm writing to you with a proposal and to open a discussion about supporting older operating systems and toolchains in SDL3.
I understand that maintaining support for legacy platforms can be a significant burden and often conflicts with adopting modern APIs and language features. However, there is a niche but passionate community (in retro-gaming, legacy system maintenance, and education) that greatly benefits from having a modern library like SDL on older systems.
To demonstrate both the need and the feasibility, I've been working on two projects:
- SDL3Lite: A lightweight, API-compatible implementation of SDL3, written in C++98 for maximum portability. It targets Windows 95+ and old Linux distributions (Debian 3+).
 - LDL (Little Directmedia Layer): A broader cross-platform media library inspired by SDL's philosophy, supporting even more legacy graphics APIs like DirectDraw, Direct3D 5, and 3dfx Glide.
 
You can see the projects, build instructions, and screenshots here:
SDL3Lite
LDL
My work proves that it's technically possible. The screenshots show SDL_Renderer, OpenGL 1.2/3.3 contexts, and texture loading working on these old platforms.
My question to you is: Would you be open to the idea of finding a way to make SDL3 itself more friendly to such porting efforts?
I'm not suggesting to halt progress or compromise SDL3's modern features. Instead, perhaps we could explore:
- Conditional Compilation: Could key modern C++ features be hidden behind macros, allowing a "legacy mode"?
 - Modularity: Could platform-specific code for ancient systems be moved into separate, optional modules?
 - C Language Compatibility: To emphasize my commitment to portability, I want to state that I am fully ready to abandon C++ and develop a compatible layer purely in C. The language is not a principle for me; the goal of maximum portability is what matters most.
 - Documentation of Dependencies: A clear map of which SDL modules require which modern OS/compiler features.
 
I am fully aware of the maintenance cost. I am not just asking "if you can do it"; I am offering my help and expertise gained from my LDL and SDL3Lite projects to assist in such an endeavor. I am ready to contribute code, testing, and long-term maintenance for these legacy paths.
Thank you for your time and consideration. I look forward to hearing your thoughts.
Sincerely,
Jordan.