docs: correct the analog-controller claim — BattleSphere uses the other ADC

The notes said the analog/driving controller has no released software that
reads it.  That was too broad.  BattleSphere and BattleSphere Gold DO
support an analog stick, proven from the ROMs -- but through a different
device than the one this release ships.

They sample the motherboard 8-bit ADC at $F17C00 (JERRY GPIO5, the
"Paddle Interface", ADC0844 at U16, fitted only to early boards) from a
JERRY Timer 1 ISR -- BattleSphere $83E75C, Gold $88059E -- round-robining
four channels into $1F9314..17.  Channels 2 and 3 feed the "Analog
Joystick Calibrator" screen ($827AA2) and GPU code at ROM 0x39FEA, gated
by Gameplay Options -> 2nd Controller: Analog Stick.  Club Drive writes
the same channel-select idiom at $811440 but never reads back.

Our device implements the TR10 bank-switching protocol on the $F14000 row
scan instead, which those titles never use -- so the narrow claim (no
released consumer of THIS protocol) stands, and the synthetic verification
is still the right description.  A corpus sweep of 822 images found only
those three referencing $F17C00 as an instruction operand.
This commit is contained in:
Joseph Mattiello committed 2026-08-19 19:12:22 -04:00
1 parent 3cbd7a9d60
commit f2d8457579
1 file changed
+15 -2
+15 -2
View File
@@ -179,8 +179,21 @@ The campaign itself lands in **v4.0.0**.
opt-in enhancement to compress it is tracked as #498 for v3.5.0.
- Voice audio over the modem is not emulated (#485) — the real JVM carried
voice modem-to-modem, bypassing the console entirely.
- The analog/driving controller has no released software that reads it;
verification is synthetic and labelled as such.
- The analog/driving controller implements the TR10 bank-switching protocol
on the `$F14000` joystick matrix. No released title is known to read *that*
protocol, so its verification is the synthetic register-level suite in
`test/tools/analog_decode_test.c`.
Analog-capable software does exist, but it targets different hardware:
**BattleSphere** and **BattleSphere Gold** sample the *motherboard* 8-bit
ADC at `$F17C00` — JERRY GPIO5, the "Paddle Interface", an ADC0844 fitted
only to early Jaguar boards and deleted from production silicon. They round-
robin four channels from a JERRY Timer 1 handler and consume two of them in
an "Analog Joystick Calibrator" screen and in GPU code, gated behind
*Gameplay Options → 2nd Controller: Analog Stick*. Club Drive writes the
same channel-select without ever reading it back. That interface is **not
emulated** — we return `0x0000` where an ADC-less console returns `0xFF` —
and is tracked separately.
## Downloads