Repository navigation
SAGA register intake: SAGA-specific registers - #18
Merged
Merged
Conversation
Add the SAGA register documentation (HTML, 93 pages) verbatim to sources/official/saga-registers/ and the converter tools/intake/sagaregs.py, which generates 12 files in core/saga-registers/: the SAGA-specific rows of index.htm (OCS, ECS and AGA empty, plus the SAGA addresses the original also marks as classic), without the Atari section. The converter applies a listed set of corrections (typos in addresses and descriptions, $DFF3EC is writable) and adds, with source tags, what the original lacks: PIP 2 and the 32x32 pointer sprite from ApolloLib, the Arne volume range, channels 0-3 = Paula, and the board IDs. Open questions are listed in core/saga-registers/index.md. Point AGENTS.md, CONTRIBUTING.md and the chip folders to the new folder. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
WDrijver, 2026-11-04: $DFF3EC is SAGA Control 1 (OCS mode, PAL zoom, zoom mode, scanlines), write-only. $DFF3EE is SAGA Control 2 (zoom shift X and Y in pixels, positive integers), read and write. Add both as corrections and drop the SCREEN SHIFT open question. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
WDrijver, 2026-11-04: from Core 12500 the 32x32x8-bit hardware sprite pointer replaces the old 16x16 pointer, and it has only 50 % semi-transparency, no real alpha. Describe both generations with their core ranges and drop the pointer open question. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
WDrijver, 2026-11-04: a PIP supports 8-bit indexed, R5G6B5, 1R5G5B5, YUV888 and YUV444, not 24- or 32-bit. With format bit 8 set, the transparent colour is fixed: index $FF in 8-bit, red and blue at maximum (purple) in 15- and 16-bit. ApolloLib still marks YUV as unsupported; that is an ApolloLib error. Drop the PIP format open question. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
WDrijver, 2026-11-04: SAGA supports the 8 classic sprites, as on the classic Amiga. Only bits 0-7 of clxdat0-7 refer to real sprites. Drop the sprites 8-15 open question. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
WDrijver, 2026-11-04: every write-only register at $DFF000-$DFF1FF reads back at the same offset in $DFE000-$DFE1FF. State the rule in the index, chunky-plane and pointer files, and narrow the open question to the write-only registers from $DFF200 up. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
BigGun (Apollo chat, 2026-11-04, relayed by WDrijver): the SAGA Copper can do 32-bit moves; the first word has its high bit set; SAGA mode needs the SAGA bit in FMODE; without it the Copper writes only $DFF0xx and $DFF1xx. Describe the three-word form in colour-ports.md and the FMODE note in the index, and narrow the Copper open question. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
BigGun is Gunnar, the core developer (WDrijver, 2026-11-04). Tag the Copper facts (G) and add core-developer to the basis of the files that use them. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Gunnar (G, 2026-11-04): the Copper is gated to $DFF0xx and $DFF1xx unless the SAGA bit in FMODE is set; with it set, the Copper can write every SAGA register up to $DFF4FF, with 16- and 32-bit moves. Drop the Copper open question. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
WDrijver, 2026-11-04: for Arne, Isabelle and Maggie, the library calls are preferred to direct register access; a best practice, not a forced rule. ApolloLib for Arne and Isabelle until their official library is released; maggie.library (github.com/RMortenB/MaggieLibrary, golden source) for Maggie. Add core/best-practices/prefer-library-calls-for-saga-chips.md, put the rule in the generated register files and the chip index files. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
WDrijver, 2026-11-04: only $DFF0xx and $DFF1xx have read-back shadows at $DFExxx. The write-only registers from $DFF200 up can't be read back. State it in the index and drop the read-back open question. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Gunnar (BigGun), 2026-11-04: Arne's period coding is compatible with Paula and runs at the same clock. State it in arne-channels.md (period 65 = 54.6 kHz with the PAL clock), and narrow the open question to the minimum period and the "about 66 kHz" in core/saga-audio-arne/registers.md. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
WDrijver
added a commit
that referenced
this pull request
Nov 4, 2026
…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>
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.
Document intake (CONTRIBUTING.md section 11) of the SAGA register documentation.
What this PR does
sources/official/saga-registers/, the 93 HTML pages copied verbatim from ApolloClaudedocs/hardware/sagadoc.tools/intake/sagaregs.py, standard library only. CI runs it with--check, like the PRM converter.core/saga-registers/. All areorigin: official,status: draft, owner WDrijver,applies_to.core: "Core 12000+".index.mdchunky-plane.mdcolour-ports.mdpip.mdpointer.mddisplay-control.mdsprite-collision.mdarne-channels.md$DFF400 + n × $10, CTRL/LEN/VOL/PERarne-dma-and-interrupts.mdmaggie-3d.mdinput.mdsystem.mdScope (agreed 2026-11-04)
index.htmis the current table;saga.htmis not used. The Atari section is skipped.$DFF1D0/$DFF1D2pointer position,$DFF20A/$DFF20CDB9).Corrections applied by the converter (the original should be fixed the same way)
$DFFAA0→$DFF4A0;$DFF4C4C→$DFF4CC;$DFF21c→$DFF21C.$DFF3ECis W, not R (WDrijver).$DFF400 + n × $10and fails if one doesn't fit.Added from other sources, tagged (SRC) or WDrijver
$DFF3B0–$DFF3C2, colour port$DFF37C. ApolloLib is leading, as agreed.$DFE1D0/$DFE1D2;$DFD000, palette at$DFF3A8/$DFF3AA.$00–$FFper side, and the LEN unit for 16-bit stereo (ApolloLib);$03/$04/$05/$07/$08, Salamander and Phoenix (WDrijver); legacy V2 IDs from the ApolloOS source.ApolloLib version: the converter uses ApolloLib from ApolloCrossDev
Projects/ApolloLib(commit 2dfaa5c). The copy in ApolloClaudedocs/toolchain/_ApolloLibis older and describes a 16x16 planar pointer at$DFF800instead; that is listed as an open question.Answers added during review (2026-11-04)
$DFF3EC: write-only, SAGA Control 1 (OCS mode, PAL zoom, zoom mode, scanlines). Source: WDrijver.$DFF3EE: read and write, SAGA Control 2 (zoom shift X and Y in pixels, positive integers). Source: WDrijver.$01,$02,$03, YUV888$06, YUV444$0E; not$04/$05;$FFin 8-bit, purple (red and blue at maximum) in 15- and 16-bit;$DFF0xx/$DFF1xxread back at$DFE0xx/$DFE1xx;$DFF200up has a read-back shadow.$DFF0xx/$DFF1xx;$DFF4FF, with 16- and 32-bit moves.core/best-practices/prefer-library-calls-for-saga-chips.md. Source: WDrijver.Still open
$48/$50": vector offset or vector number, and at which level (inindex.md).Conflicts with existing knowledge base files (not resolved here)
core/saga-audio-arne/registers.md(TuKo1982, measured) says the high-quality rate caps at about 66 kHz. The original says 56 kHz, and period 65 gives 54.6 kHz.Other changes
AGENTS.mdtask table andCONTRIBUTING.md: point tocore/saga-registers/.saga-video-isabelle,saga-audio-arne,saga-3d-maggie) link to the generated files.core/saga-audio-arne/registers.md: the channel base addresses are now documented..github/CODEOWNERS: regenerated.Structural choice to review
The generated files are in one new folder,
core/saga-registers/, instead of the chip folders, because:registers.mdfiles;Knowledge base files relied on
core/saga-audio-arne/registers.mdcore/saga-3d-maggie/registers.mdos/libraries/maggie-library.mdhardware/index.md🤖 Generated with Claude Code