Match the recovered Win16 registration flow: the first plus press creates Player 1 and additional presses add Players 2 through 4 until the initial launch. Down now belongs only to charging and releasing the plunger. Test Plan: - cargo fmt --check - cargo test - cargo clippy --all-targets --all-features -- -D warnings - live: verify Down cannot leave attract mode - live: start with plus, add Player 2, hold Down through partial/full plunger frames, and release onto the table - git diff --check
66 lines
2.3 KiB
Markdown
66 lines
2.3 KiB
Markdown
# TDK Pinball Machine for modern PCs
|
|
|
|
This is a native Rust reconstruction of the 1995 Windows game **TDK Pinball
|
|
Machine**. It uses the extracted original artwork and sound, recreates the
|
|
playfield as a fixed-step simulation, and runs from the same source on Linux,
|
|
macOS, and Windows.
|
|
|
|
The game opens at 960x690, an exact 1.5x enlargement of its original 640x460
|
|
canvas, so modern desktop scaling cannot distort or vertically offset the
|
|
pixel-art presentation.
|
|
|
|
The original program is not required at runtime. All required game assets are
|
|
embedded in the executable at build time.
|
|
|
|
## Run
|
|
|
|
Install a current stable Rust toolchain, then run:
|
|
|
|
```sh
|
|
cargo run
|
|
```
|
|
|
|
For a distributable optimized binary:
|
|
|
|
```sh
|
|
cargo build --profile production
|
|
```
|
|
|
|
The binary is written below `target/production/`. On Linux, Macroquad's native
|
|
development packages are also required (X11, OpenGL, and ALSA). Windows needs
|
|
no extra runtime installation; macOS builds with the normal Apple developer
|
|
command-line tools.
|
|
|
|
## Original and modern controls
|
|
|
|
| Action | Original key | Additional modern key |
|
|
| --- | --- | --- |
|
|
| Start game / add up to 4 players | `+` | `=` or Enter starts one player |
|
|
| Charge launcher | Hold Down arrow, release to launch | - |
|
|
| Left flipper | Left Ctrl | `A` or Left arrow |
|
|
| Right flipper | Keypad Enter | Right Ctrl, `D`, or Right arrow |
|
|
| Nudge | Space, either Shift, keypad `3` | - |
|
|
| Help | F1 | Enter/Escape returns |
|
|
| Settings | F2 | - |
|
|
| High scores | F3 | - |
|
|
| Sound | F12 | - |
|
|
|
|
The five original speed choices are retained as simulation-detail settings.
|
|
They change fixed-step resolution without changing the speed of play.
|
|
|
|
The help screen is the original artwork in English, German, French, Italian,
|
|
or Spanish. As instructed on that screen, double-clicking its upper-left exit
|
|
box closes the program.
|
|
|
|
## Saved data
|
|
|
|
Settings and the ten-entry high-score table are stored as `save.json` in the
|
|
platform's normal per-user application-data directory. On first run, the table
|
|
is imported from the original `HISCORES.DAT` included with this reconstruction.
|
|
|
|
## Reconstruction status
|
|
|
|
This repository distinguishes exact recovered material from behavioral
|
|
reimplementation. See [RECONSTRUCTION.md](RECONSTRUCTION.md) for the evidence
|
|
ledger, known inference boundaries, and validation performed.
|