62 lines
1.4 KiB
Markdown
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.
|