Repository navigation
First examples: SAGA PIP (ApolloPiP) and the SAGA hardware pointer (ApolloPointer) - #20
Merged
Merged
Conversation
Describe ApolloLib (ApolloCrossDev Projects/ApolloLib, commit ce1fcbf, after the merge of the two versions in ApolloCrossDev #16 and #17): how a project uses it, sound on Arne, pictures, PIP and the pointer, input, memory and blit routines, system and timing, and the serial debug output. toolchain/pitfalls/apollolib-known-bugs.md lists what reading the code found, among them the 320-pixel fall-through in ApolloShowPicture, the VBlank server of ApolloTimer that is never removed, and the takeover helpers without restore. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…Dev #18 ApolloCrossDev #18 fixed the bugs listed in apollolib-known-bugs.md and added ApolloTimerStop, ApolloRelease, ApolloPermit and ApolloEnable. Describe that version: the pitfall now lists what was fixed and the limits that remain; sound, picture, input, memory and system files follow the fixes, and the restore table names the new functions. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
examples/saga-pip-overlay-and-chroma-key.md takes the PIP part of ApolloCrossDev's SAGAPiP example (commit 5ad4035) as three compiling functions on ApolloLib, and lists the problems of the full example: no PIP palette, a window check that can't fail, BMB_ bits used as BMF_ flags, a hard-coded Workbench mode, and leaks on the error paths. CI: compile-snippets.sh adds -I$APOLLOLIB when set; the compile-examples job fetches ApolloCrossDev Projects/ApolloLib (sparse, same commit as the toolchain) so snippets can include ApolloCrossDev_Lib.h. ApolloLib files: ApolloShowPiP1/2 don't load an 8-bit PIP's palette (a regression from the older ApolloLib). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Correct the history: ApolloLoadPicture wrote the palette into the colour port chosen by picture->target until ApolloCrossDev commit 789cbcc (2026-06-16), which made palette an array for the pointer. SAGAPiP (2026-06-03) still relies on the old behaviour. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
ApolloCrossDev #19 made ApolloShowPiP1/2 load the 8-bit palette and fixed the SAGAPiP example. The example page now calls ApolloShowPiP1 without its own palette loop, and its "full example" section lists what #19 changed. The PIP palette moves from the remaining limits to the fixed bugs. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
examples/saga-pointer-sprite.md takes ApolloCrossDev's ApolloPointer example: SetPointerFromBMP and MovePointer on ApolloLib, compiling. It records the points of ApolloLoadPointer that the code works around: no return value and bLoaded never set, 24-bit BMPs accepted but not converted, the loaded BMP not freed, alpha read correctly only with endian set. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
ApolloCrossDev #20 renamed SAGAPiP to ApolloPiP, #21 fixed ApolloLoadPointer (result code, 24-bit, BMP freed). Cite commit ad7f0b4, rename the example everywhere (also in the SAGA register converter, and regenerate), simplify the pointer example to use the result code, and add the ApolloLoadPointer fixes to the ApolloLib files. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The first two files in
examples/, both from ApolloCrossDev examples at commit ad7f0b4. Contains #19's commits until #19 is merged; then only the examples and the CI change remain.examples/saga-pip-overlay-and-chroma-key.md(ApolloPiP, formerly SAGAPiP)kb:compile):ShowPiP1Overlay: an 8-bit PIP in front of the screen, palette index$FFtransparent;ShowPiP1Behind: a 16-bit PIP behind the screen, visible through purple;HidePiP1.ApolloShowPiP1loads the 8-bit palette itself.targetintopalette[2];$0A04;if (!&pipwindow);BMB_bits used asBMF_flags;examples/saga-pointer-sprite.md(ApolloPointer)kb:compile):SetPointerFromBMPreturns the result code ofApolloLoadPointer(ApolloLib b9891d9+);MovePointer.ApolloLoadPointer:bLoaded;endianset;ApolloLib and SAGA register files
ApolloLoadPointerfixes are recorded intoolchain/apollolib/picture.mdandapollolib-known-bugs.md.CI change
tools/compile-snippets.sh: adds-I$APOLLOLIBwhenAPOLLOLIBis set.compile-examplesjob: fetches ApolloCrossDevProjects/ApolloLib(sparse, about 480 KB) at the toolchain's commit, also on a cache hit.-Wall.Knowledge base files relied on
core/saga-registers/(SAGA register intake: SAGA-specific registers #18)toolchain/apollolib/(ApolloLib in toolchain/apollolib/, with its known bugs #19)🤖 Generated with Claude Code