JoeyLib 2.0
| assets | ||
| examples | ||
| include/joey | ||
| make | ||
| scripts | ||
| src | ||
| toolchains | ||
| tools | ||
| .gitattributes | ||
| .gitignore | ||
| LICENSES.md | ||
| Makefile | ||
| README.md | ||
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.