A "retro" C game development library, developed with Watcom C targeting MS-DOS and VGA Mode 13h.
Go to file
2018-04-30 18:23:39 -04:00
TEST organize test code a bit better 2018-04-30 18:23:39 -04:00
.gitignore update gitignore 2018-04-28 12:06:59 -04:00
DGL.C many updates. moved project over to watcom 2018-04-28 11:30:53 -04:00
DGL.H many updates. moved project over to watcom 2018-04-28 11:30:53 -04:00
DGLBLIT.C many updates. moved project over to watcom 2018-04-28 11:30:53 -04:00
DGLBLIT.H many updates. moved project over to watcom 2018-04-28 11:30:53 -04:00
DGLBLITA.ASM revert experimental stuff that didn't really work better anyway. oops 2018-04-28 12:06:48 -04:00
DGLCLIP.C many updates. moved project over to watcom 2018-04-28 11:30:53 -04:00
DGLCLIP.H many updates. moved project over to watcom 2018-04-28 11:30:53 -04:00
DGLCMN.H many updates. moved project over to watcom 2018-04-28 11:30:53 -04:00
DGLDRAW.C many updates. moved project over to watcom 2018-04-28 11:30:53 -04:00
DGLDRAW.H many updates. moved project over to watcom 2018-04-28 11:30:53 -04:00
DGLDRAWA.ASM many updates. moved project over to watcom 2018-04-28 11:30:53 -04:00
DGLERROR.H many updates. moved project over to watcom 2018-04-28 11:30:53 -04:00
DGLFIXP.C many updates. moved project over to watcom 2018-04-28 11:30:53 -04:00
DGLFIXP.H many updates. moved project over to watcom 2018-04-28 11:30:53 -04:00
DGLGFX.C many updates. moved project over to watcom 2018-04-28 11:30:53 -04:00
DGLGFX.H many updates. moved project over to watcom 2018-04-28 11:30:53 -04:00
DGLKBRD.C many updates. moved project over to watcom 2018-04-28 11:30:53 -04:00
DGLKBRD.H many updates. moved project over to watcom 2018-04-28 11:30:53 -04:00
DGLKEYS.H many updates. moved project over to watcom 2018-04-28 11:30:53 -04:00
DGLMATH.C many updates. moved project over to watcom 2018-04-28 11:30:53 -04:00
DGLMATH.H many updates. moved project over to watcom 2018-04-28 11:30:53 -04:00
DGLMOUSE.C many updates. moved project over to watcom 2018-04-28 11:30:53 -04:00
DGLMOUSE.H many updates. moved project over to watcom 2018-04-28 11:30:53 -04:00
DGLMTX33.H many updates. moved project over to watcom 2018-04-28 11:30:53 -04:00
DGLPAL.C many updates. moved project over to watcom 2018-04-28 11:30:53 -04:00
DGLPAL.H many updates. moved project over to watcom 2018-04-28 11:30:53 -04:00
DGLPCX.C many updates. moved project over to watcom 2018-04-28 11:30:53 -04:00
DGLPCX.H many updates. moved project over to watcom 2018-04-28 11:30:53 -04:00
DGLRECT.H many updates. moved project over to watcom 2018-04-28 11:30:53 -04:00
DGLUTIL.C many updates. moved project over to watcom 2018-04-28 11:30:53 -04:00
DGLUTIL.H many updates. moved project over to watcom 2018-04-28 11:30:53 -04:00
DGLVEC2.H many updates. moved project over to watcom 2018-04-28 11:30:53 -04:00
MAKEFILE organize test code a bit better 2018-04-30 18:23:39 -04:00
README.md organize test code a bit better 2018-04-30 18:23:39 -04:00

libDGL

libDGL is a "retro coding" C library aimed at MS-DOS VGA Mode 13h game development. It is developed with DJGPP with 486 DX2 systems as a baseline target 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
  • 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
  • Input device (keyboard/mouse/joystick) events
  • 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