VOGONS


First post, by Diane

User metadata
Rank Newbie
Rank
Newbie

Hi everyone!

I've wanted to make games for Windows 9x and MS-DOS for a while. I have some development tools and software development kits (SDKs), but I haven't got very far besides configuring them and compiling some examples.

So far, I have found 10-year-old forums telling people to give up and use modern platforms, and several inaccessible links. I would like to ask what environment or setup you would recommend to begin with.
I've read that SDL 1.0 and OpenGL 1.1 are supported by Windows 98. Currently, I have MSVC 6.0 installed along with GLUT 3.7.2.

However, before I start making anything, does anyone know of a better option, such as a build of FreeGLUT 3.8.0 for MSVC 6.0?

Thanks in advance!

Reply 1 of 13, by leileilol

User metadata
Rank l33t++
Rank
l33t++

SDL 1.2 with MinGW GCC 4.7.2 can work with Windows 95, though you'll have to build your own sdl library because the dlls out there fell for the ol' newer-compiler-regresses-old-platforms trick (one of the ways for the foot in the door towards 'just use modern' condescending apathy).

For MS-DOS there's still DJGPP (32-bit = 386+ only) and the two OpenWatcoms.

apsosig.png
long live PCem
FUCK "AI"

Reply 2 of 13, by wbahnassi

User metadata
Rank Oldbie
Rank
Oldbie

Depends on how low-level you want to go. Do you want to build your own codebase or use another ready one?
If you want to build your own, then for MS-DOS you can target 16-bit (e.g. MS C or Turbo C) or 32-bit (DJGPP, OpenWatcom and DOS4GW).

For Win95, I'd go with DirectX3 for 2D as the earliest usable version (DDraw).. If you want to do serious 3D stuff, I recommend DirectX7 but now you are pushing outside the comfort zone of Win95 and more into Win98 as min requirement. DX programming is a cakewalk compared to MS DOS thanks to hardware abstraction. Just load your artwork and go blitting!

These are my personal choices.. I don't quite see the point of the GL stuff since my recollection of the old times is that driver support for OpenGL was rarely on par to DX.. plus I'm not a big fan of the OpenGL programming model (extensions and all).

Turbo XT 12MHz, 8-bit VGA, Dual 360K drives
Intel 386 DX-33, Speedstar 24X, SB 1.5, 1x CD
Intel 486 DX2-66, CL5428 VLB, SBPro 2, 2x CD
Intel Pentium 90, Matrox Millenium 2, SB16, 4x CD
HP Z400, Xeon 3.46GHz, YMF-744, Voodoo3, RTX2080Ti

Reply 3 of 13, by RetroPCCupboard

User metadata
Rank Oldbie
Rank
Oldbie

I have the same interest. I have bought pretty much every common game development book of the era.

For MS-DOS I think the book that's considered one of the best is Michael Abrash's Graphics Programming Black Book. It is now available for free online with author's blessing (though I do have the physical copy):

E Book format:
https://github.com/jagregory/abrash-black-book

Pdf format:
https://web.archive.org/web/20190706123029/ht … -book/184404919

Another author, whose books start in DOS and extend into Win9x is Andre LaMothe.

Personally, I would start with one of these books and follow along with the same dev tools.

Reply 4 of 13, by BinaryDemon

User metadata
Rank Oldbie
Rank
Oldbie

I would guess most people still coding for DOS are doing it on modern systems with DosBox and ideally testing builds on real hardware at some point. That's the approach I use with coding in Basic, but maybe that doesnt work for other languages.

Reply 5 of 13, by RetroPCCupboard

User metadata
Rank Oldbie
Rank
Oldbie
BinaryDemon wrote on 2026-04-01, 12:13:

I would guess most people still coding for DOS are doing it on modern systems with DosBox and ideally testing builds on real hardware at some point. That's the approach I use with coding in Basic, but maybe that doesnt work for other languages.

That certainly makes sense from a productivity standpoint. Period correct hardware is slower to compile code, and you don't have access to tools like the DOSBox Debugger or the help of more modern compilers and debuggers.

I believe the Planet X3 game was mostly developed on DOSBox, but periodically tested on real hardware.

Reply 6 of 13, by gerry

User metadata
Rank l33t
Rank
l33t

programming games specifically for MSDOS is possible with older tools like Quick Basic, Turbo Pascal, DJGPP and various libraries that still exist if you look around.

Programming games for windows 9x is a bit more like "modern dev" in the sense of using a GUI and having (potentially) libraries that use directx or opengl - just early versions of that. You can find examples in VB, VC, Delphi and lots more (even old 'game dev' tools like blitz basic might still have some old version around)

"give up and use modern platforms" is oft said, i get it too - if we're making a game we want people to play it. the good news is that dosbox makes MSDOS a kind of "platform" that anyone can enjoy. A game made for windows 9x has a chance of working even on Win11 but also has a chance of not working at all, i think 9x is fast becoming the smallest "audience" in the microsoft OS lineup simply because it's enthusiast only (gog, steam etc took care of most people wanting to play old games on new systems)

Reply 7 of 13, by bakemono

User metadata
Rank Oldbie
Rank
Oldbie

A lot of dev tools are bad on purpose. With OpenGL it's really not that big a deal to make something that runs on Win95/NT and modern dystopian Windows at the same time. You can support a wide range of video cards as well. Open a window and get a GL 1.x context. Use wglGetProcAddress to try and resolve the functions you need for GL 3.x and beyond, like wglCreateContextAttribsARB. If that fails then you stick with 1.x. Otherwise you open a new window and set it up for OpenGL 3/4 and close the first window. Then when it comes to rendering, in GL 1.x mode you use glMatrixMode, glLight, and stuff like that, or in GL 3+ mode you use glUniformMatrix and the shader code takes care of it.

GBAJAM 2024 submission on itch: https://90soft90.itch.io/wreckage

Reply 8 of 13, by Jo22

User metadata
Rank l33t++
Rank
l33t++
gerry wrote on 2026-04-01, 13:10:

programming games specifically for MSDOS is possible with older tools like Quick Basic, Turbo Pascal, DJGPP and various libraries that still exist if you look around.

Hi! SDL and Allegro are supported on DOS, for example.
The emulators SNES 9x, ZSNES and Meka have DOS ports, for example.
The indie games SRB/SRB2 and Sonic Project Mettrix have DOS ports, too.
They are from the mid-2000s, so pretty recent by DOS standards.

gerry wrote on 2026-04-01, 13:10:

Programming games for windows 9x is a bit more like "modern dev" in the sense of using a GUI and having (potentially) libraries that use directx or opengl - just early versions of that. You can find examples in VB, VC, Delphi and lots more (even old 'game dev' tools like blitz basic might still have some old version around)

I remember that the DirectX 7 SDK has support for Visual Basic Classic! 😃
So it's possible to progeam in Visual Studio 6, for example.

Edited.

"Time, it seems, doesn't flow. For some it's fast, for some it's slow.
In what to one race is no time at all, another race can rise and fall..." - The Minstrel

//My video channel//

Reply 9 of 13, by Diane

User metadata
Rank Newbie
Rank
Newbie

Thanks for the reply everyone :))
They seem very useful for a "beginner".

wbahnassi wrote on 2026-04-01, 03:41:
Depends on how low-level you want to go. Do you want to build your own codebase or use another ready one? If you want to build y […]
Show full quote

Depends on how low-level you want to go. Do you want to build your own codebase or use another ready one?
If you want to build your own, then for MS-DOS you can target 16-bit (e.g. MS C or Turbo C) or 32-bit (DJGPP, OpenWatcom and DOS4GW).

For Win95, I'd go with DirectX3 for 2D as the earliest usable version (DDraw).. If you want to do serious 3D stuff, I recommend DirectX7 but now you are pushing outside the comfort zone of Win95 and more into Win98 as min requirement. DX programming is a cakewalk compared to MS DOS thanks to hardware abstraction. Just load your artwork and go blitting!

These are my personal choices.. I don't quite see the point of the GL stuff since my recollection of the old times is that driver support for OpenGL was rarely on par to DX.. plus I'm not a big fan of the OpenGL programming model (extensions and all).

I'd preferably use an existing codebase, but I admit it would be interesting to make one myself.
I am interested in both 3D and 2D, but DirectX is not my target since I also wanna compile in GNU/Linux and more modern systems without re-making the whole thingy.

OpenGL seems like the most reliable option so far.

So far I just wanna learn for this moment to entertain myself and learn more programming, since a commercial game needs a ton of work to get launched.

Reply 10 of 13, by gerry

User metadata
Rank l33t
Rank
l33t
Jo22 wrote on 2026-04-01, 17:56:

Hi! SDL and Allegro are supported on DOS, for example.
The emulators SNES 9x, ZSNES and Meka have DOS ports, for example.

I remember those, though i think i only used snes9x a few times as used zsnes on windows more even back then, i remember Meka though as one of the best, i think there was a master system emulator called massage and when i found Meka it was such a great emulator, with its unique feature rich gui. I still use it now sometimes, the 'mekaw' windows version

I remember that the DirectX 7 SDK has support for Visual Basic Classic! 😃
So it's possible to progeam in Visual Studio 6, for example.

yes, old VB had some game programmers back then, but even just using windows forms and gdi could be ok for lighter fun games

Diane wrote on 2026-04-01, 19:26:
I'd preferably use an existing codebase, but I admit it would be interesting to make one myself. I am interested in both 3D and […]
Show full quote

I'd preferably use an existing codebase, but I admit it would be interesting to make one myself.
I am interested in both 3D and 2D, but DirectX is not my target since I also wanna compile in GNU/Linux and more modern systems without re-making the whole thingy.

OpenGL seems like the most reliable option so far.

So far I just wanna learn for this moment to entertain myself and learn more programming, since a commercial game needs a ton of work to get launched.

that's a good goal, trying something commercial seems to lead to unity or similar and a need for pre fabricated media, mobile version and lots more. Free from the need to get a "return" you can do anything you want, creatively

Reply 11 of 13, by jmarsh

User metadata
Rank Oldbie
Rank
Oldbie

Sounds like you want to look at the Quake 2 or 3 source code, or even Return to Castle Wolfenstein. They're all windows + openGL games and the source packages built "out of the box" using compilers of the time.

Reply 12 of 13, by marxveix

User metadata
Rank Oldbie
Rank
Oldbie

Another question. I have not used glut to build something, but i did try glut 3.7.6 and some versions of freeglut, only to get old sgi demos to start. Now they work and older versions are working faster, than newer, but older has some problems with view of the sgi opengl 1.1 demos. Files that where needed: opengl.dll, glut.dll and glu.dll. I am just asking what version is the best for windows 9x and glut/freeglut (glut32.dll/glut.dll/freeglut)? Right now i am using freeglut 2.40.

Best ATi Rage3 drivers for 3DCIF / Direct3D / OpenGL / DVD : ATi RagePro drivers and software
30+MiniGL / OpenGL Win 9x dll files for all ATi Rage3 cards : Re: ATi RagePro OpenGL files

Reply 13 of 13, by leileilol

User metadata
Rank l33t++
Rank
l33t++
jmarsh wrote on Yesterday, 13:37:

Sounds like you want to look at the Quake 2 or 3 source code, or even Return to Castle Wolfenstein. They're all windows + openGL games and the source packages built "out of the box" using compilers of the time.

i should warn the q3 and rtcw code expects later MSVCs than 6.

apsosig.png
long live PCem
FUCK "AI"