JoeyLib 2.0
Find a file
2026-04-30 17:41:23 -05:00
assets MOD and SFX support. 2026-04-25 13:11:46 -05:00
examples Mass ASM optimization on IIgs. 2026-04-30 17:04:08 -05:00
include/joey Mass ASM optimization on IIgs. 2026-04-30 17:04:08 -05:00
make More speed! 2026-04-30 17:41:23 -05:00
scripts LOTS of optimizations for the IIgs. 2026-04-30 01:27:17 -05:00
src More speed! 2026-04-30 17:41:23 -05:00
toolchains LOTS of optimizations for the IIgs. 2026-04-30 01:27:17 -05:00
tools joeysprite tool working. Amiga and ST c2p moved to ASM. 2026-04-26 22:09:49 -05:00
.gitattributes MOD and SFX support. 2026-04-25 13:11:46 -05:00
.gitignore MOD and SFX support. 2026-04-25 13:11:46 -05:00
LICENSES.md JoeyLib 68k ASM code changed to GAS format to avoid vasm commerical license restrictions. 2026-04-26 21:03:06 -05:00
Makefile (Untested) Joystick support. Basic sprites. 2026-04-24 20:09:18 -05:00
README.md MOD and SFX support. 2026-04-25 13:11:46 -05:00

JoeyLib

A unified C game-development library targeting four early 16-bit platforms from a single codebase:

  • Apple IIgs (reference platform)
  • Commodore Amiga (A500 / 68000 baseline)
  • Atari ST (STF / 68000 baseline)
  • MS-DOS (386 / VGA, DJGPP)

The Apple IIgs defines the capability ceiling. Stronger platforms coast. Hot paths are hand-written assembly per port; the public API is C.

See docs/DESIGN.md for the full 1.0 design.

Quick start

git clone <repo> joeylib
cd joeylib
./toolchains/install.sh
# follow any non-free-tool placement instructions the script prints
source toolchains/env.sh
make

This builds libjoey.a for every target whose toolchain is installed, plus the example programs (hello, pattern, keys, joy, sprite, audio) for each.

Building for a single target

source toolchains/env.sh
make iigs
make amiga
make atarist
make dos

Repository layout

docs/                 design and reference documentation
include/joey/         public headers
src/core/             portable library code
src/codegen/          runtime sprite codegen (per-CPU emitters)
src/port/<plat>/      per-platform HAL implementations
src/shared68k/        assembly shared by Amiga and Atari ST
tools/joeyasset/      sprite and tile asset converter
tools/joeymod/        Protracker .MOD converter (passthrough or .NTP)
examples/             example programs
toolchains/           self-contained cross-build tools
make/                 per-target Makefile fragments
build/<plat>/         per-target build outputs

License

TBD.