Update Joey Projects Status

Scott Duensing 2025-05-06 11:52:28 -05:00
parent a4dd9e3ace
commit 7537f4c510

@ -1,128 +1,128 @@
**JoeyLib** is just one of a suite of projects that make up the entire **JoeyLib** ecosystem. The current components are: **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. - **JoeyLib**: the programming library itself.
- [**JoeyDev**](https://skunkworks.kangaroopunch.com/skunkworks/joeydev): an IDE for managing and developing **JoeyLib**-based projects. - [**JoeyDev**](https://forge.duensing.digital/Public_Skunkworks/joeydev): an IDE for managing and developing **JoeyLib**-based projects.
- [**JoeyBuild**](https://skunkworks.kangaroopunch.com/skunkworks/joeybuild): a virtual machine based build server that works with **JoeyDev** to perform the builds for all the supported targets. - [**JoeyBuild**](https://forge.duensing.digital/Public_Skunkworks//joeybuild): a virtual machine based build server that works with **JoeyDev** to perform the builds for all the supported targets.
### Why so complicated? ### 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. 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 ### Current Status & Future Plans
(These lists will improve and update as time goes on!) (These lists will improve and update as time goes on!)
#### JoeyLib #### JoeyLib
(See JoeyBuild below for planned and future targets.) (See JoeyBuild below for planned and future targets.)
* General: * General:
* Simplify joey.h using the "backend" concept used by JoeyBuild - _In Progress_ * Simplify joey.h using the "backend" concept used by JoeyBuild - _In Progress_
* New vector image format - _In Progress_ * New vector image format - _In Progress_
* Networking support - _Planned_ * Networking support - _Planned_
* Configuration tool for controllers and networking - _Planned_ * Configuration tool for controllers and networking - _Planned_
* Compressed data files - _Planned_ * Compressed data files - _Planned_
* Abstracted file system (for consoles) - _Planned_ * Abstracted file system (for consoles) - _Planned_
* Mouse support - _Planned_ * Mouse support - _Planned_
* Rework tilemap API - _Planned_ * Rework tilemap API - _Planned_
* Partial display updates - _Planned_ * Partial display updates - _Planned_
* Improved graphics primitives clipping - _Planned_ * Improved graphics primitives clipping - _Planned_
* Flood fill fixes - _Planned_ * Flood fill fixes - _Planned_
* Patterened / dithered drawing and filling - _Planned_ * Patterened / dithered drawing and filling - _Planned_
* Improved palette API - _Planned_ * Improved palette API - _Planned_
* Support for more colors via IIgs-style SCBs - _Planned_ * Support for more colors via IIgs-style SCBs - _Planned_
* Better keyboard support for things like adventure games - _Planned_ * Better keyboard support for things like adventure games - _Planned_
* Apple IIgs Backend: * Apple IIgs Backend:
* Compiled Sprites - _Planned_ * Compiled Sprites - _Planned_
* Sound effects - _Planned_ * Sound effects - _Planned_
* Additional / Multiple Controller Support - _Planned_ * Additional / Multiple Controller Support - _Planned_
* Move more graphics primitives (fill, circles, ellipses, etc.) into ASM - _Planned_ * Move more graphics primitives (fill, circles, ellipses, etc.) into ASM - _Planned_
* SDL / SDL2 Backend: * SDL / SDL2 Backend:
* Merge SDL 1.2 and SDL 2 backends for easier maintenance. * Merge SDL 1.2 and SDL 2 backends for easier maintenance.
* Improved window resizing - _Planned_ * Improved window resizing - _Planned_
* Multiple Controller Support - _Planned_ * Multiple Controller Support - _Planned_
#### JoeyDev #### JoeyDev
* Host Platforms: * Host Platforms:
* Linux: * Linux:
* x86 64 bit - **_Working_** * x86 64 bit - **_Working_**
* ARM 64 bit - _In Progress_ * ARM 64 bit - _In Progress_
* Moden Macintosh: * Moden Macintosh:
* x86 64 bit - _In Progress_ * x86 64 bit - _In Progress_
* ARM 64 bit - _In Progress_ * ARM 64 bit - _In Progress_
* Windows: * Windows:
* x86 64 bit - _In Progress_ * x86 64 bit - _In Progress_
* ARM 64 bit - _In Progress_ * ARM 64 bit - _In Progress_
* Features: * Features:
* Project Management: * Project Management:
* Create Projects - **_Working_** * Create Projects - **_Working_**
* Load Projects - **_Working_** * Load Projects - **_Working_**
* Save Projects - **_Working_** * Save Projects - **_Working_**
* Manage Projects - **_Working_** * Manage Projects - **_Working_**
* "Cooking" Raw Game Data - **_Working_** * "Cooking" Raw Game Data - **_Working_**
* Build Server Management - **_Working_** * Build Server Management - **_Working_**
* Building Projects - _In Progress_ * Building Projects - _In Progress_
* Code / Text Editor - _In Progress_ * Code / Text Editor - _In Progress_
* Vector Art Editor - _In Progress_ * Vector Art Editor - _In Progress_
* Bitmap Art Editor - _Planned_ * Bitmap Art Editor - _Planned_
* Sound Editor - _Planned_ * Sound Editor - _Planned_
* Music Editor - _Planned_ * Music Editor - _Planned_
* In-IDE Application Testing - _Planned_ * In-IDE Application Testing - _Planned_
* Emulated Target Application Testing - _Planned_ * Emulated Target Application Testing - _Planned_
* Online Help - _In Progress_ * Online Help - _In Progress_
#### JoeyBuild #### JoeyBuild
* Project Types: * Project Types:
* "Application" projects (games, demos, apps, etc.) - **_Working_** * "Application" projects (games, demos, apps, etc.) - **_Working_**
* "JoeyLib" projects (working on JoeyLib itself) - _In Progress_ * "JoeyLib" projects (working on JoeyLib itself) - _In Progress_
* Targets: * Targets:
* Apple IIgs: * Apple IIgs:
* 65816 - **_Working_** * 65816 - **_Working_**
* Microsoft Windows: * Microsoft Windows:
* XP and later: * XP and later:
* x86 32 bit - **_Working_** * x86 32 bit - **_Working_**
* x86 64 bit - **_Working_** * x86 64 bit - **_Working_**
* ARM 64 bit - _Future_ * ARM 64 bit - _Future_
* 9x: * 9x:
* x86 32 bit - _Planning_ * x86 32 bit - _Planning_
* 3.x * 3.x
* x86 32 bit - _Planning_ * x86 32 bit - _Planning_
* Apple Macintosh: * Apple Macintosh:
* Modern MacOS: * Modern MacOS:
* x86 32 bit - **_Working_** * x86 32 bit - **_Working_**
* x86 64 bit - **_Working_** * x86 64 bit - **_Working_**
* ARM 64 bit - **_Working_** * ARM 64 bit - **_Working_**
* Classic MacOS: * Classic MacOS:
* 68k - _Planning_ * 68k - _Planning_
* PPC - _Planning_ * PPC - _Planning_
* DOS: * DOS:
* x86 32 bit - _Planning_ * x86 32 bit - _Planning_
* BeOS / Haiku: * BeOS / Haiku:
* x86 32 bit - _In Progress_ * x86 32 bit - _In Progress_
* x86 64 bit - _In Progress_ * x86 64 bit - _In Progress_
* IBM OS/2: * IBM OS/2:
* x86 32 bit - _Future_ * x86 32 bit - _Future_
* Raspberry Pi: * Raspberry Pi:
* ARM 32 bit (Linux) - _In Progress_ * ARM 32 bit (Linux) - _In Progress_
* ARM 64 bit (Linux) - _In Progress_ * ARM 64 bit (Linux) - _In Progress_
* ARM 32 bit (Bare Metal) - _Planning_ * ARM 32 bit (Bare Metal) - _Planning_
* ARM 64 bit (Bare Metal) - _Planning_ * ARM 64 bit (Bare Metal) - _Planning_
* Atari ST: * Atari ST:
* 68k - _Future_ * 68k - _Future_
* Commodore Amiga: * Commodore Amiga:
* 68k - _Future_ * 68k - _Future_
* Acorn: * Acorn:
* ARM (RISC OS) - _Future_ * ARM (RISC OS) - _Future_
* Android: * Android:
* ARM 64 bit - _Future_ * ARM 64 bit - _Future_
* iOS: * iOS:
* ARM 64 bit - _Future_ * ARM 64 bit - _Future_
**Status Descriptions:** **Status Descriptions:**
* **Working**: Implemented, functional. May need cleanup or a few features. * **Working**: Implemented, functional. May need cleanup or a few features.
* **In Progress**: Implemented, not entirely functional. Needs work. * **In Progress**: Implemented, not entirely functional. Needs work.
* **Planning**: Researched, implementation details worked out. Needs coded. * **Planning**: Researched, implementation details worked out. Needs coded.
* **Future**: Target is known to be able to support JoeyLib. Needs research. * **Future**: Target is known to be able to support JoeyLib. Needs research.