Make RustRaptor the repository root and track its playable bundle

This commit is contained in:
raptorreplica committed 2026-10-11 16:33:37 +11:00
1 parent 4b1edefeec
commit 8f459796b1
9860 files changed
+21084 -61019

No files matched your search

+9
View File
@@ -0,0 +1,9 @@
# Preserve the catalog and packaged Linux runtime byte for byte on checkout.
/data/** -text -diff
/bin/** -text -diff
/lib/** -text -diff
/data/INDEX diff
/data/hd/hd.json diff
# The launcher must retain Unix line endings.
*.sh text eol=lf
+11 -25
View File
@@ -1,28 +1,14 @@
# Derived game data — extracted from the copyrighted originals, never commit # Cargo output, local tooling, review evidence and duplicate export archives.
data/ /target/
RustRaptor/data/ /dist/
RustRaptor/bin/ /.reference/
RustRaptor/lib/ /.local/
RustRaptor/runtime-manifest.json /derived/
/.runtime-data-*
# Vendored raptor build output
raptor/build/
# Python bytecode
__pycache__/ __pycache__/
# Local toolchain # Decoded source-reference images are not shipped mod artwork.
.local/ /mods/*/art/source/
# Rust builds and locally derived reference/preview data
target/
RustRaptor/target/
RustRaptor/dist/
RustRaptor/.reference/
.reference/
derived/
# Decoded original style references are not shipped mod artwork.
RustRaptor/mods/*/art/source/
# The playable bundle is intentionally tracked: bin/, lib/, data/ and
# runtime-manifest.json. Authored mod images, sounds and music are tracked too.
View File
File renamed without changes.
File renamed without changes.
View File
File renamed without changes.
View File
File renamed without changes.
+86 -12
View File
@@ -1,19 +1,93 @@
# RaptorReplica # RustRaptor
[RustRaptor](RustRaptor/README.md) contains the independent Rust game, bundled mods, The independent Linux Rust game and its complete local mod packages live here.
SD/HD artwork, sound effects, schemas, tests and build tools. Rust is the default: SDL2 handles platform services; gameplay, asset decoding, rendering, audio,
saving and mod scripting run in Rust.
This folder is the Git repository root. Run from here:
```sh ```sh
./play.sh ./run.sh
cargo test --locked
``` ```
You can also run `./RustRaptor/run.sh`. The game loads your existing `data/` The self-contained runtime uses `bin/raptor-rust`, its sibling `data/` catalog
catalog; choose bundled mods from its **Mods** menu. Mod images and sounds are and the bundled `mods/`. `./run.sh` launches that executable without Cargo or
tracked in Git alongside their definitions and scripts. the old engine; paths remain valid after moving the folder. For development,
the launcher falls back to Cargo when no packaged executable is present.
`--data DIR` selects another catalog. Some optional comparison tests use retained source.
The retained source under `raptor/` is an optional reference. It is not required Refresh the executable and copied original/approved-HD data with
to build or play RustRaptor. `./play.sh --engine legacy` runs that reference. `python3 tools/assemble_runtime.py`. Add `--zip dist/RustRaptor-linux-x86_64.zip`
to export a distributable folder containing the runtime, mods, source and API
documentation, excluding build caches and review drafts. See
[standalone packaging](docs/standalone-package.md).
See [Rust build and validation](RustRaptor/docs/rust-rewrite.md), The **Mods** screen discovers the bundled `mods/` packages when no user mods
[modding API](RustRaptor/docs/modding-api.md), and folder exists. Enable **Iron Coast Campaign** to select all six mission mods,
[Iron Coast packages](RustRaptor/docs/iron-coast.md). their enemies, distinct bosses, weapons and original soundtrack automatically,
then apply at the main menu. Missions, bosses and the three weapons can also
be enabled individually; each mission selects its own dependencies.
For a user mods folder, pass `--mods DIR` or create
`$XDG_DATA_HOME/RaptorReplica/mods/`. Saves and configuration use separate XDG
`RaptorReplica` directories, with read-only legacy import.
Enter the **Hangar** to fly, choose missions, visit the supply room, manage
equipment or **Save pilot**. New pilots have editable names, callsigns and ID
pictures and difficulty; existing pilots can edit their ID from the hangar.
Registration starts with 10,000 credits and 75 energy, as in the original.
The original Apogee/Cygnus logos and intro play on normal startup and through
**Watch intro**. Saves with changed or missing mods show the differences and
offer **Load anyway**, retaining unavailable equipment and progression. The
first subsequent save keeps a backup of the previous file.
The supply room
shows an equipment image, description, price, resale value, quantity and
whether it fires automatically, is selectable, is consumed or works passively.
Default keyboard controls are arrow keys to move, **Ctrl** to fire,
**Space** to drop a bomb, **Alt or Shift** to cycle equipment, and **Z** to
use a selected consumable. Custom bindings remain configurable in Options.
Existing untouched Rust default bindings migrate to these controls.
| Folder | Contents |
| --- | --- |
| `src/` | Engine, SDL host and validation CLI |
| `mods/` | Aurora example; six Iron Coast missions, campaign assembly, music, three weapons, three shared enemies and five stage bosses |
| `schemas/` | Version 1 mod API schemas |
| `tests/` | Portable fixtures and opt-in original-data checks |
| `tools/` | Replay comparator, content-table generator and asset reference tools |
| `docs/` | API, artwork, build and validation documentation |
| `bin/`, `data/`, `lib/` | Local standalone runtime and any bundled SDL2 library |
| `target/` | Local Cargo builds, excluded from Git |
The bundled executable, libraries, original game catalog and approved HD assets
are tracked in Git, along with mod definitions, scripts, SD/HD PNGs, WAVs,
generation prompts and recipes. Build caches and local review files are excluded.
See [repository layout](docs/repository.md).
The engine supports original and 2×/3×/4× crisp scaling, plus an optional HD
artwork setting. Bundled mods have SD/HD artwork; the reviewed base-game pack
covers a complete light-player banking sequence and selected enemies, boss,
equipment, projectiles and effects. [The HD backlog](docs/hd-backlog.md) records
the remaining artwork and drafts awaiting review.
First-mission wins at difficulties 1 and 2, a complete 1,889-step native demo
comparison, assisted coverage of all 27 missions at four difficulties, and
sample-exact audio comparisons have passed. These checks cover their documented
cases; wider playtesting and complete base-game HD coverage remain work in progress.
- [Build and validation](docs/rust-rewrite.md)
- [Mod API](docs/modding-api.md)
- [Iron Coast packages](docs/iron-coast.md)
- [Weapon prices and balance](docs/weapon-balance.md)
- [Sprite and shadow validation](docs/visual-validation.md)
- [Sound playback validation](docs/sound-validation.md)
- [Classic intro validation](docs/intro-validation.md)
- [Menu screenshot review](docs/menu-validation.md)
- [Campaign music](docs/music-validation.md)
- [Display measurements](docs/performance.md)
- [First mission](docs/first-mission-validation.md)
- [Campaign coverage](docs/campaign-validation.md)
- [Optional HD artwork](docs/hd-art.md)
- [Milestones](PLAN.md)
Code is GPL-2.0-or-later; the vendored Rust FM emulator is LGPL-2.1-or-later.
-97
View File
@@ -1,97 +0,0 @@
# RustRaptor
The independent Linux Rust game and its complete local mod packages live here.
SDL2 handles platform services; gameplay, asset decoding, rendering, audio,
saving and mod scripting run in Rust.
From the repository root:
```sh
./play.sh
```
Or from this folder:
```sh
./run.sh
cargo test --locked
```
The self-contained runtime uses `bin/raptor-rust`, its sibling `data/` catalog
and the bundled `mods/`. `./run.sh` launches that executable without Cargo or
the old engine; paths remain valid after moving the folder. For development,
the launcher falls back to Cargo when no packaged executable is present.
`--data DIR` selects another catalog. Some optional comparison tests use retained source.
Refresh the executable and copied original/approved-HD data with
`python3 tools/assemble_runtime.py`. Add `--zip dist/RustRaptor-linux-x86_64.zip`
to export a distributable folder containing the runtime, mods, source and API
documentation, excluding build caches and review drafts. See
[standalone packaging](docs/standalone-package.md).
The **Mods** screen discovers the bundled `mods/` packages when no user mods
folder exists. Enable **Iron Coast Campaign** to select all six mission mods,
their enemies, distinct bosses, weapons and original soundtrack automatically,
then apply at the main menu. Missions, bosses and the three weapons can also
be enabled individually; each mission selects its own dependencies.
For a user mods folder, pass `--mods DIR` or create
`$XDG_DATA_HOME/RaptorReplica/mods/`. Saves and configuration use separate XDG
`RaptorReplica` directories, with read-only legacy import.
Enter the **Hangar** to fly, choose missions, visit the supply room, manage
equipment or **Save pilot**. New pilots have editable names, callsigns and ID
pictures and difficulty; existing pilots can edit their ID from the hangar.
Registration starts with 10,000 credits and 75 energy, as in the original.
The original Apogee/Cygnus logos and intro play on normal startup and through
**Watch intro**. Saves with changed or missing mods show the differences and
offer **Load anyway**, retaining unavailable equipment and progression. The
first subsequent save keeps a backup of the previous file.
The supply room
shows an equipment image, description, price, resale value, quantity and
whether it fires automatically, is selectable, is consumed or works passively.
Default keyboard controls are arrow keys to move, **Ctrl** to fire,
**Space** to drop a bomb, **Alt or Shift** to cycle equipment, and **Z** to
use a selected consumable. Custom bindings remain configurable in Options.
Existing untouched Rust default bindings migrate to these controls.
| Folder | Contents |
| --- | --- |
| `src/` | Engine, SDL host and validation CLI |
| `mods/` | Aurora example; six Iron Coast missions, campaign assembly, music, three weapons, three shared enemies and five stage bosses |
| `schemas/` | Version 1 mod API schemas |
| `tests/` | Portable fixtures and opt-in original-data checks |
| `tools/` | Replay comparator, content-table generator and asset reference tools |
| `docs/` | API, artwork, build and validation documentation |
| `bin/`, `data/`, `lib/` | Local standalone runtime and any bundled SDL2 library |
| `target/` | Local Cargo builds, excluded from Git |
All bundled mod definitions, scripts, SD/HD PNGs, WAVs, generation prompts and
recipes are tracked in Git. Original data and local reference pixels are excluded.
The engine supports original and 2×/3×/4× crisp scaling, plus an optional HD
artwork setting. Bundled mods have SD/HD artwork; the reviewed base-game pack
covers a complete light-player banking sequence and selected enemies, boss,
equipment, projectiles and effects. [The HD backlog](docs/hd-backlog.md) records
the remaining artwork and drafts awaiting review.
First-mission wins at difficulties 1 and 2, a complete 1,889-step native demo
comparison, assisted coverage of all 27 missions at four difficulties, and
sample-exact audio comparisons have passed. These checks cover their documented
cases; wider playtesting and complete base-game HD coverage remain work in progress.
- [Build and validation](docs/rust-rewrite.md)
- [Mod API](docs/modding-api.md)
- [Iron Coast packages](docs/iron-coast.md)
- [Weapon prices and balance](docs/weapon-balance.md)
- [Sprite and shadow validation](docs/visual-validation.md)
- [Sound playback validation](docs/sound-validation.md)
- [Classic intro validation](docs/intro-validation.md)
- [Menu screenshot review](docs/menu-validation.md)
- [Campaign music](docs/music-validation.md)
- [Display measurements](docs/performance.md)
- [First mission](docs/first-mission-validation.md)
- [Campaign coverage](docs/campaign-validation.md)
- [Optional HD artwork](docs/hd-art.md)
- [Milestones](PLAN.md)
Code is GPL-2.0-or-later; the vendored Rust FM emulator is LGPL-2.1-or-later.
File renamed without changes.
File renamed without changes.
BIN
View File
Binary file not shown.
View File
File renamed without changes.
+6449
View File
File diff suppressed because it is too large. Load diff
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 MiB

+4162
View File
File diff suppressed because it is too large. Load diff
Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 784 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 888 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 603 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 581 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 889 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 935 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 842 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 910 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 MiB

Loaded 100 of 9860 files, more files were not shown because too many files have changed in this diff. Show more