A "retro" C game development library, developed with Watcom C targeting MS-DOS and VGA Mode 13h.
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
TEST
.gitignore
DGL.C
DGL.H
DGLBLIT.C
DGLBLIT.H
DGLBLITA.ASM
DGLCLIP.C
DGLCLIP.H
DGLCMN.H
DGLDRAW.C
DGLDRAW.H
DGLDRAWA.ASM
DGLERROR.H
DGLEVENT.C
DGLEVENT.H
DGLFIXP.C
DGLFIXP.H
DGLGFX.C
DGLGFX.H
DGLKBRD.C
DGLKBRD.H
DGLKEYS.H
DGLMATH.C
DGLMATH.H
DGLMOUSE.C
DGLMOUSE.H
DGLMTX33.H
DGLPAL.C
DGLPAL.H
DGLPCX.C
DGLPCX.H
DGLRECT.H
DGLUTIL.C
DGLUTIL.H
DGLVEC2.H
MAKEFILE
README.md

README.md

libDGL

libDGL is a "retro coding" C library aimed at MS-DOS VGA Mode 13h game development. It targets 486 DX2 systems as a baseline for performance.

The project is developed with Watcom C 10.0b and Borland Turbo Assembler 4.0.

Why?

Because it's fun.

If you were looking for something for "retro" MS-DOS game development that is fully featured, really performant and bug-tested that's ready right now, have a look at Allegro 3.x or possibly 4.x depending on what hardware you're targetting.

Status

This library is currently under early development and is lacking many things and probably chock-full of bugs.

Done / Mostly Done

  • Primitive drawing support
  • Text rendering
  • Blitting
  • Graphics clipping
  • Keyboard input
  • Mouse input
  • Input device (keyboard/mouse) events
  • PCX loading/saving
  • Math library (general helpers, 2D vector, 3x3 matrix)
  • Fixed point math
  • Basic error handling / results

TODO

  • Scaled/rotated blitting support
  • Blending
  • "Mode 7" like support
  • Custom font loading (BIOS-like format?)
  • Joystick / Gravis GamePad support
  • PC speaker sounds
  • Sound Blaster compatible sound/music
  • Gravis Ultrasound compatible sound/music
  • Sine/cosine lookup table optimizations
  • BMP, LBM, GIF image loading (and saving?)
  • Simple immediate mode GUI

Building

You can use WMAKE to build using the included MAKEFILE.

To build the library:

> wmake target_config=debug build           ; debug build

> wmake target_config=release build         ; release build

Will output DGL.LIB in the project directory.

To build and run the (incomplete) test suite, look under the "TEST" directory. There you will find a separate MAKEFILE which assumes that you are running wmake from that directory and that DGL.LIB has already been built.

> cd test
test> wmake run                                 ; run test suite
test> wmake debug                               ; run through WD debugger