Include a self-contained Windows build and portable profiles
This commit is contained in:
1 parent
64e59fda1f
commit
1b52466f4c
20 files changed
+729
-34
No files matched your search
+1
-1
@@ -52,7 +52,7 @@ common_tools = "^1.2"
|
||||
|
||||
IDs use lowercase ASCII letters, digits, `_` and `-`, with a maximum of 64 bytes. `base` is reserved. Package versions and dependency requirements use semantic version syntax. The in-game manager selects compatible installed dependencies when enabling a package. It never downloads or installs missing packages. The CLI still requires a complete explicit `--enabled` set. Cycles, missing packages, unsupported API versions, incompatible dependency versions and declared conflicts reject activation. Two installed folders claiming the same ID make that ID unusable; rename or remove one folder, then rescan.
|
||||
|
||||
All package paths are relative. Absolute paths, parent traversal, symlinks and special files are rejected. Packages are limited to 10,000 files, 16 directory levels, 64 MiB per file and 256 MiB in total. Manifests are limited to 64 KiB; display names to 128 bytes; descriptions to 4 KiB; script declarations to 64, with a 1 MiB limit per source file. Every file, including artwork and documentation, contributes to the package SHA-256 hash. A package changed after discovery requires rescanning before it can be applied.
|
||||
All package paths are relative. Absolute paths, parent traversal, symlinks and special files are rejected. Filenames must be UTF-8 and cannot contain literal backslashes or colons. Hashes use forward-slash paths and UTF-8 component ordering on both Linux and Windows, preserving existing Linux save pins. Keep the original file bytes when copying packages between systems; the repository disables line-ending conversion for mods. Packages are limited to 10,000 files, 16 directory levels, 64 MiB per file and 256 MiB in total. Manifests are limited to 64 KiB; display names to 128 bytes; descriptions to 4 KiB; script declarations to 64, with a 1 MiB limit per source file. Every file, including artwork and documentation, contributes to the package SHA-256 hash. A package changed after discovery requires rescanning before it can be applied.
|
||||
|
||||
## Content definitions and overrides
|
||||
|
||||
|
||||
+4
-3
@@ -5,11 +5,12 @@ Cargo commands from this folder. The public remote is
|
||||
[Quintine/RustRaptor](https://github.com/Quintine/RustRaptor), on branch
|
||||
`codex/rust-rewrite`.
|
||||
|
||||
The repository includes the Linux executable in `bin/`, its bundled libraries
|
||||
in `lib/`, the complete original game catalog and approved HD snapshot in
|
||||
The repository includes Linux and Windows executables in `bin/`, the Windows
|
||||
SDL2 DLL beside its executable, Linux libraries in `lib/`, and the complete
|
||||
original game catalog and approved HD snapshot in
|
||||
`data/`, and `runtime-manifest.json`. All authored mod definitions, scripts,
|
||||
SD/HD artwork, sounds and music are included. A fresh checkout can launch the
|
||||
bundled game with `./run.sh` without compiling it.
|
||||
bundled game with `./run.sh` on Linux or `run.cmd` on Windows without compiling it.
|
||||
|
||||
Build output in `target/`, local review evidence in `.reference/`, generation
|
||||
source references and duplicate zip exports in `dist/` are ignored. Working
|
||||
|
||||
@@ -24,9 +24,18 @@ the relocation. See [repository layout](repository.md).
|
||||
|
||||
## Engine and package
|
||||
|
||||
- Windows support is now included: `bin/raptor-rust.exe`, adjacent `SDL2.dll`,
|
||||
`run.cmd`, `runtime-windows-manifest.json` and the Windows export tool/CI.
|
||||
The GNU executable SHA-256 is
|
||||
`e414d2df745369115082439414099f528aca8457f9c58d1c1745eb1b511fc484`.
|
||||
All 279 portable tests pass under Wine, including Windows save replacement;
|
||||
all 22 mod hashes match existing Linux save pins. Windows paths respect
|
||||
APPDATA/LOCALAPPDATA and mods preserve exact bytes through Git checkouts.
|
||||
See [Windows build and validation](windows-build.md). The tracked catalog
|
||||
remains the 340-frame reviewed snapshot while broader HD review continues.
|
||||
- Packaged executable now includes the `c0a6fd3` reviewed source checkpoint,
|
||||
including diagnostics navigation and interpolated Lightning effects. Its
|
||||
SHA-256 is `4b164987d9fabf7388d2fc66168a9f2aedc71392d42a6ce4066e3607684b1479`.
|
||||
SHA-256 is `4b4304f625381cbbf1331e126c62ca0913d49a52e7a35191f12e734067660e66`.
|
||||
The original `fdf2ff0` checkpoint supplied standalone RustRaptor, widescreen
|
||||
menus and always-4:3 original cinematics, including when gameplay stretching
|
||||
is selected. Fresh 1080p intro capture confirms black 240-pixel side borders.
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
# Standalone Linux package
|
||||
# Standalone game packages
|
||||
|
||||
`RustRaptor/` contains the Rust executable, its original data catalog, approved
|
||||
HD replacements, authored mods, SD/HD mod artwork, sound effects and music.
|
||||
Normal play needs no C++ engine, Cargo, Python or source checkout. Run
|
||||
`./run.sh`; installed pilots and configuration remain in the user's separate
|
||||
`./run.sh` on Linux or `run.cmd` on Windows; installed pilots and configuration remain in the user's separate
|
||||
`RaptorReplica` profile directories.
|
||||
|
||||
The executable finds its package from `bin/raptor-rust`, including when launched
|
||||
@@ -27,8 +27,10 @@ dependencies. Unapproved HD drafts, reference screenshots and the Cargo build
|
||||
cache are excluded from the zip. The exported `RustRaptor` folder can be moved
|
||||
or unpacked anywhere, including paths containing spaces.
|
||||
|
||||
The binary targets Linux x86_64. It still uses the operating system's C runtime
|
||||
and desktop/audio drivers; this package is not a Windows or macOS executable.
|
||||
The Linux binary targets Linux x86_64 and uses the operating system's C runtime
|
||||
and desktop/audio drivers. The included Windows x86_64 executable and SDL2 DLL
|
||||
use the same data and mods. See [Windows packaging](windows-build.md)
|
||||
for its separate launcher, build tool, manifest, zip and validation.
|
||||
Source, Cargo.lock, code licenses and mod API documentation are included.
|
||||
The packaged executable, runtime libraries, original catalog and approved HD
|
||||
artwork are tracked in Git, along with the assembler and authored mod images
|
||||
|
||||
@@ -0,0 +1,70 @@
|
||||
# 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.
|
||||
|
||||
## Validation checkpoint: 11 October 2026
|
||||
|
||||
The included GNU executable passed 279 portable tests under Wine 11.19,
|
||||
including Windows save replacement and preserving a locked existing save.
|
||||
All 22 installed mod hashes match their previous Linux hashes exactly.
|
||||
The shared catalog validates 6,449 assets and the current packaged HD snapshot
|
||||
validates all 340 supplied frames. The exporter verifies all 6,593 shared
|
||||
data-file hashes and includes only checked Windows DLL dependencies.
|
||||
|
||||
Wine checks exercise the Windows executable from Linux; native Windows
|
||||
builds and runtime checks are also configured in the workflow above.
|
||||
Reference in new issue
Block a user