fix(attract): restore all remainder-driven cycles
The same raw Div32 pattern used by the item animation appears in every nested idle phase: after division by 32, 40, or 16, the binary copies the remainder from CX:BX before the second division. Readable C and Rust used quotients for targets, word quads, the record strip, and the four-point chase, turning short repeating chases into slow one-shot progressions. Use `%32/2`, `%32/4`, `%40/4`, and `%16/4` for those cycles alongside the already corrected `%144/8` items. Preserve the first-cycle phase-zero delay, then repeat each incremental overlay state exactly. Add C and Rust coverage at phase activation, reversal, deactivation, and wrap boundaries. Test Plan: - raw instruction review at `1000:01b7-063b` -- all remainder transfers confirmed - `cargo test --workspace --all-targets --all-features` -- 125 passed - `cargo clippy --workspace --all-targets --all-features -- -D warnings` -- passed - `bash original/tools/test_reconstructed_c.sh` -- passed - `python3 original/tools/audit_reconstruction.py --require-complete` -- passed with zero incomplete or unclassified units - `cargo run -- --simulate attract --step 145 --screenshot /tmp/tdkpin-attract-remainder.png` -- passed; visually inspected at 640x460 - `rumdl check --flavor commonmark RECONSTRUCTION.md CHANGELOG.md` -- passed - `git diff --cached --check` -- passed
This commit is contained in:
@@ -53,9 +53,10 @@ and this project adheres to
|
||||
previously impossible Pascal-order C interpretation of a 328x202 blit.
|
||||
- Restore the original idle/attract timer animation: target and word-quad
|
||||
chases, magnetic flashes, five-record strip, four-point chase, DAT801-809
|
||||
item progression on exact `(tick % 144) / 8` phases, and the circular
|
||||
`WELCOME TO THE MACHINE` BITMAP500 marquee. Move gameplay item frames to
|
||||
their exact `(123,300)` destination.
|
||||
item progression, and the circular `WELCOME TO THE MACHINE` BITMAP500
|
||||
marquee. Each nested phase uses the binary's remainder first: `%32/2`,
|
||||
`%32/4`, `%40/4`, `%16/4`, and `%144/8`. Move gameplay item frames to their
|
||||
exact `(123,300)` destination.
|
||||
- Match central score/event side effects: every stored collision candidate
|
||||
clears its ball slot's capture age, Tilt suppresses all score and rule-record
|
||||
mutations, and active multiball doubles points before permanent Double can
|
||||
|
||||
Reference in New Issue
Block a user