Files
RustRaptor/docs/windows-build.md
T

125 lines
6.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Windows build
The repository includes `bin/raptor-rust.exe`, `bin/SDL2.dll` and `run.cmd`.
Double-click `run.cmd` after extracting the entire `RustRaptor` folder.
Windows and Linux share the same `data/`, `art/` and `mods/` directories;
the Windows launcher needs no Rust, Python, SDL installation or old engine.
Use a 64-bit Windows 10 or Windows 11 machine.
Windows pilots, settings and user mods live in `%APPDATA%\RaptorReplica`.
Derived artwork and audio caches use `%LOCALAPPDATA%\RaptorReplica\cache`.
Redirected folders are respected; `%USERPROFILE%\AppData` is a fallback.
Legacy import reads `%APPDATA%\Raptor`. Moving the game leaves profiles intact.
`runtime-windows-manifest.json` records executable, DLL, license and launcher
hashes and checked PE dependencies. The shared `runtime-manifest.json`
records every original/approved-HD data-file hash. The Windows exporter
excludes Linux libraries, build caches, local toolchains, review drafts and Git.
## Rebuild
The included build uses Rust 1.99.0, `x86_64-pc-windows-gnu` and the official
SDL2 2.32.10 MinGW SDK. Native Windows CI builds the same engine with MSVC and
statically links its C runtime.
On Linux with Rust's Windows target and MinGW-w64 installed:
```sh
rustup target add x86_64-pc-windows-gnu
python3 tools/assemble_windows.py \
--sdl2-dir /path/to/SDL2-2.32.10 \
--linker x86_64-w64-mingw32-gcc \
--zip dist/RustRaptor-windows-x86_64.zip
```
Download the SDK from the [official SDL2 release](https://github.com/libsdl-org/SDL/releases/tag/release-2.32.10).
The MinGW tarball SHA256 is
`83a5d74012311edc3c0d40ea6faecbe57ad692aa033fa5dc273cc937e3938ff2`.
Rust's [Windows GNU target documentation](https://doc.rust-lang.org/rustc/platform-support/windows-gnu.html)
describes cross-toolchain requirements.
On Windows with Rust and Visual Studio C++ build tools:
```powershell
python tools/assemble_windows.py --target x86_64-pc-windows-msvc `
--sdl2-dir C:\SDKs\SDL2-2.32.10 `
--zip dist\RustRaptor-windows-x86_64.zip
```
Use the Visual C SDK for that command. Its official zip SHA256 is
`af347939395a58b365846aaea27391e69f9ec9d4dd650d6ac40802159b418a6e`.
The assembler checks architecture, SDL import, complete data hashes and DLL
dependencies. Supply `--extra-dll FILE` if another compiler introduces another
runtime dependency. Optional `--rustc` and `--sysroot` support an isolated
matching cross toolchain without changing the system Rust installation.
The [Windows workflow](../.github/workflows/windows.yml) runs simulation,
modding and save tests on Windows, validates packaged assets and all local
mods, captures SDL gameplay and publishes the zip as a workflow artifact.
## Current runtime and validation
The included GNU executable uses the reviewed **2,132-frame HD snapshot**;
the shared manifest binds **7,415 data files** and the package contains
**45 installed mods**. Its SHA-256 is
`ad2ee7f5cc8e90ea371eccf2a509cd99263c6c880a6d42e2886cdc017c24561b`.
This build includes the bounded opaque-background rounding and optional
per-frame presentation policies documented in [hd-streaming.md](hd-streaming.md).
Existing approved artwork uses the default policies. Fresh archive execution
and native Windows CI checks for this successor are recorded separately from
the historical checks below; they are not inherited from unchanged artwork.
The [1,148-frame native Windows run](https://github.com/Quintine/RustRaptor/actions/runs/38126069413)
passed portable tests, exact committed GNU runtime checks, the MSVC desktop
build and exported-folder catalog, HD, mod and SDL gameplay validation. That
run preceded the Stage 2 content commit; it verifies the engine and the
previous 22 mod packages.
The [first Stage 2 native run](https://github.com/Quintine/RustRaptor/actions/runs/38127321917)
also completes all eight Black Tide missions and a saved finale replay with
normal firing/input and paid repairs. It validates all 45 mods, the MSVC
package and actual FM music plus music-muted sound effects. That run precedes
the displayed-phase fix and PNG-validation optimization.
The [corrected Stage 2 native run](https://github.com/Quintine/RustRaptor/actions/runs/38129755440)
checks source commit `0e8a27c`: portable simulation/mod/save tests, all eight
sorties and a saved finale replay, the exact included GNU executable/launcher,
and a fresh MSVC export. Phase sprites and both ground/air shadow layers pass
in SD/HD; actual Host previews assert distinct consecutive phases and produce
34 boss/shop/menu captures. Exported-folder checks validate all 45 mods, all
original catalog entries and 1,148 supplied HD frames, SDL gameplay, FM music
and isolated sound effects.
The corrected included GNU archive also passes complete CRC/data/runtime/mod
hash checks, Unicode/space relocation through `run.cmd`, four 1080p first/final
mission captures and the original intro's exact 4:3 borders under Wine 11.19.
Separate three-second music-only and effects-only recordings contain stereo
audio without clipping. The full runtime receipt binds ZIP SHA-256
`4c48ca7f6fd532db5247820182c1fb00fcf94def605f69b727f10ed3fcd3b008`.
A narrow additive check confirms `Validated 45 mods; 1 override(s)` after
correcting unquoted CSV forwarding in the review harness; the original receipt
remains preserved. Gameplay profiles already enabled all 45 mods.
Quote comma-separated ID lists when invoking the validation CLI through CMD:
```bat
run.cmd --validate-mods "iron_coast_stage2_campaign,iron_coast_campaign"
```
Final ZIP successors allow documented metadata/exporter changes and require
identical engine, DLL, launcher, data, source and mod payloads outside that
explicit allowance. The inherited runtime proof and fresh static integrity
refresh remain separately identified. These checks use isolated profiles and
preserve user saves; see [standalone package validation](standalone-package.md).
Earlier Windows checkpoints passed 279 portable tests under Wine 11.19,
including save replacement and preservation of a locked existing save.
The 800-frame/22-mod archive passed CRC, manifest and relocated Unicode/space
folder checks through `run.cmd`, 1920×1080 HD rendering, exact 4:3 intro
borders, stereo music and isolated original effects. Native Windows runs
[38119440288](https://github.com/Quintine/RustRaptor/actions/runs/38119440288),
[38119943948](https://github.com/Quintine/RustRaptor/actions/runs/38119943948)
and [38121272504](https://github.com/Quintine/RustRaptor/actions/runs/38121272504)
record those earlier snapshots. Automated SDL checks use dummy drivers;
physical Windows display, audio and controller hardware remain untested.