Table of Contents
JoeyLib is just one of a suite of projects that make up the entire JoeyLib ecosystem. The current components are:
- JoeyLib: the programming library itself.
- JoeyDev: an IDE for managing and developing JoeyLib-based projects.
- JoeyBuild: a virtual machine based build server that works with JoeyDev to perform the builds for all the supported targets.
Why so complicated?
Cross-compiling for numerous platforms from a single system is not something that is easy to configure. Along the way, I've tried several different techniques to help get people up and running with JoeyLib and none of them have been as easy as I'd like. Instead of requiring people to use a particular Linux distro and attempt to troubleshoot all the required toolchains, the current setup allows developers to work from their preferred OS with a friendly GUI-based IDE. All the messy compiler infrastructure is handled by Kangaroo Punch. Or, if you prefer, you can run your own build VM on your system using the JoeyBuild scripts.
Current Status & Future Plans
(These lists will improve and update as time goes on!)
JoeyLib
(See JoeyBuild below for planned and future targets.)
- General:
- Simplify joey.h using the "backend" concept used by JoeyBuild - In Progress
- New vector image format - In Progress
- Networking support - Planned
- Configuration tool for controllers and networking - Planned
- Compressed data files - Planned
- Abstracted file system (for consoles) - Planned
- Mouse support - Planned
- Rework tilemap API - Planned
- Partial display updates - Planned
- Improved graphics primitives clipping - Planned
- Flood fill fixes - Planned
- Patterened / dithered drawing and filling - Planned
- Improved palette API - Planned
- Support for more colors via IIgs-style SCBs - Planned
- Better keyboard support for things like adventure games - Planned
- Apple IIgs Backend:
- Compiled Sprites - Planned
- Sound effects - Planned
- Additional / Multiple Controller Support - Planned
- Move more graphics primitives (fill, circles, ellipses, etc.) into ASM - Planned
- SDL / SDL2 Backend:
- Merge SDL 1.2 and SDL 2 backends for easier maintenance.
- Improved window resizing - Planned
- Multiple Controller Support - Planned
JoeyDev
- Host Platforms:
- Linux:
- x86 64 bit - Working
- ARM 64 bit - In Progress
- Moden Macintosh:
- x86 64 bit - In Progress
- ARM 64 bit - In Progress
- Windows:
- x86 64 bit - In Progress
- ARM 64 bit - In Progress
- Linux:
- Features:
- Project Management:
- Create Projects - Working
- Load Projects - Working
- Save Projects - Working
- Manage Projects - Working
- "Cooking" Raw Game Data - Working
- Build Server Management - Working
- Building Projects - In Progress
- Code / Text Editor - In Progress
- Vector Art Editor - In Progress
- Bitmap Art Editor - Planned
- Sound Editor - Planned
- Music Editor - Planned
- In-IDE Application Testing - Planned
- Emulated Target Application Testing - Planned
- Online Help - In Progress
- Project Management:
JoeyBuild
- Project Types:
- "Application" projects (games, demos, apps, etc.) - Working
- "JoeyLib" projects (working on JoeyLib itself) - In Progress
- Targets:
- Apple IIgs:
- 65816 - Working
- Microsoft Windows:
- XP and later:
- x86 32 bit - Working
- x86 64 bit - Working
- ARM 64 bit - Future
- 9x:
- x86 32 bit - Planning
- 3.x
- x86 32 bit - Planning
- XP and later:
- Apple Macintosh:
- Modern MacOS:
- x86 32 bit - Working
- x86 64 bit - Working
- ARM 64 bit - Working
- Classic MacOS:
- 68k - Planning
- PPC - Planning
- Modern MacOS:
- DOS:
- x86 32 bit - Planning
- BeOS / Haiku:
- x86 32 bit - In Progress
- x86 64 bit - In Progress
- IBM OS/2:
- x86 32 bit - Future
- Raspberry Pi:
- ARM 32 bit (Linux) - In Progress
- ARM 64 bit (Linux) - In Progress
- ARM 32 bit (Bare Metal) - Planning
- ARM 64 bit (Bare Metal) - Planning
- Atari ST:
- 68k - Future
- Commodore Amiga:
- 68k - Future
- Acorn:
- ARM (RISC OS) - Future
- Android:
- ARM 64 bit - Future
- iOS:
- ARM 64 bit - Future
- Apple IIgs:
Status Descriptions:
- Working: Implemented, functional. May need cleanup or a few features.
- In Progress: Implemented, not entirely functional. Needs work.
- Planning: Researched, implementation details worked out. Needs coded.
- Future: Target is known to be able to support JoeyLib. Needs research.