The rewrite used a 375-millipixel impulse for both charging and release. The reconstructed key handlers use the setup scalar 15: every repeated Down keydown subtracts 15*50, and release subtracts a further 15*100 before clamping. Use 750-millipixel press increments and the 1,500-millipixel release impulse, then reproduce the randomized -3800 lower clamp and weak -2280 upper branch. Derive the ten launcher decoration frames from the original strict multiples of 750 and keep integration/gravity assertions separate from the immediate release state. Test Plan: - `cargo test --all-targets` -- passed, 60 tests - `cargo clippy --all-targets -- -D warnings` -- passed - `rumdl check tdkpin-rs/CHANGELOG.md tdkpin-rs/RECONSTRUCTION.md` -- passed - `git diff --cached --check` -- passed
2.8 KiB
2.8 KiB
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[Unreleased]
Fixed
- Restore launcher input to the setup scalar: each Down keydown subtracts 750
millipixels, release subtracts 1,500, then applies the recovered
-3800and-2280clamp/jitter branches and the ten original decoration thresholds. - Apply the original independent
1.03 - Random * 0.08X/Y velocity response after entering radius-bearing type-4 targets, preserving both motion and the subsequent shared PRNG sequence. - Check every player against the high-score table when their own last ball is
lost, prefill the original
TDK Pinball Playername, show the table before resuming the next player, and use the original signed-high/unsigned-low score ordering instead of selecting only the maximum score at whole-game end. - Preserve each player's complete rule-record state across turn changes instead of globally clearing wheel holes, top targets, 176 active/contact slots, selected effect, and multiball readiness on every drain.
- Store lock-hole and effect awards in the original per-player secondary score
instead of a global bonus. The fifth hole now transfers
310000 * score_multiplier, clears it, increments the multiplier and ball count, while effect 6 transfers the same display value and drain leaves it intact. - Replace the cooldown/float-meter nudge approximation with the original
Left-Shift, keypad-3, and Space formulas using scalar 15, the shared Borland
random stream, 32-bit velocity wrapping, and the decaying 16-bit
+25tilt counter with its randomized30..39threshold. - Replace the Xorshift gameplay RNG with the original Borland linear stream and
unbiased
Random(n)high-word mapping. Launcher variation, effect selection, claw terminals, and magnetic-field impulses now share the recovered sequence. - Restore the magnetic-field response as
vx * 0.9and a randomized-3800 * (1 - Random * 0.3)vertical impulse instead of a fixed upward speed. - Dispatch the original per-call-site sound sequences instead of assigning one guessed WAV to each logical event. This removes the nonexistent WAV 2022 playback and restores bank, trigger, capture, nudge, tilt, and drain cues.
- Advance media/extra-ball thresholds only from score additions, preserve 32-bit score wrapping, and restore the ninth-diamond 24,464-point award plus the later double-score and secondary-score bank states.
- Match the original 640x460 window, native 16x28 score glyphs, and
TDK Pinball Machine 1.00title so the recovered artwork is presented one-for-one instead of enlarged or resampled.