joeylib2/README.md

62 lines
1.4 KiB
Markdown

# 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 `examples/hello` program 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/joeytool/ asset pipeline and packaging
examples/ example programs
toolchains/ self-contained cross-build tools
make/ per-target Makefile fragments
build/<plat>/ per-target build outputs
```
## License
TBD.