JoeyLib is the low-level porting library that isolates the game code from the target platform's hardware. Using standard ANSI C and JoeyLib allows a single codebase to run on the following targets:
Apple IIgs
x86 & x64 Windows
x86 & x64 macOS
x86 & x64 Linux
Future targets:
Atari ST
Amiga (including CDTV and CD32)
Raspbian
Pi Bare Metal
Android
iOS
DOS
Acorn?
With the Apple IIgs being the most limited of the supported platforms, much of JoeyLib was designed with it in mind.
Features:
4-bit color (16 colors, default palette is the EGA Palette)
4-bits per pixel
Back buffered rendering
Basic drawing primitives
High-speed tile blitting
Custom memory management
Custom image format support (and conversion tools)
MOD music
Sound effects
Joystick/Gamepad/Keyboard input
Future Features:
Multiple controllers
Mouse input
Networking
Full IDE
Interested? Visit the JoeyLib page at the Skunkworks!