Rebrand project and refresh title presentation

This commit is contained in:
Alexander Sellite 2026-08-25 17:14:12 -04:00
parent 17fef2c5d4
commit 7ae20789a9
138 changed files with 1511 additions and 1498 deletions

View file

@ -1,15 +1,15 @@
# PortMaster reference
NETfishing's PortMaster release is a canonical PortMaster package, not a
straywild's PortMaster release is a canonical PortMaster package, not a
version-named generic ZIP. The installer-facing archive must be named
`netfishing.zip`, and its root must contain exactly:
`straywild.zip`, and its root must contain exactly:
```text
NETfishing.sh
netfishing/
straywild.sh
straywild/
```
`port.json` belongs at `netfishing/port.json` in the distributable archive.
`port.json` belongs at `straywild/port.json` in the distributable archive.
The upstream source-submission layout keeps it beside the launcher and port
directory, but PortMaster's release builder relocates it into the declared
port directory. Do not copy the source-submission layout directly into a
@ -17,7 +17,7 @@ release ZIP.
HarbourMaster's installer also relocates recognized non-script files found at
an archive root into the detected port directory. That compatibility behavior
masked NETfishing's former root-level `port.json` during auto-install tests.
masked straywild's former root-level `port.json` during auto-install tests.
Directly extracting the same archive into `/ports` did not perform the repair.
Do not rely on installer relocation; build the distributable layout correctly.
@ -26,30 +26,30 @@ directory. The templates in `scripts/portmaster/` are authoritative.
## Release contract
- `port.json` uses schema version 4, names `netfishing.zip`, and marks the
- `port.json` uses schema version 4, names `straywild.zip`, and marks the
self-contained package ready to run.
- `NETfishing.sh` does not contain a `# PORTMASTER:` signature in the source or
- `straywild.sh` does not contain a `# PORTMASTER:` signature in the source or
distributable archive. HarbourMaster adds that installation marker when it
installs the port.
- The executable is `netfishing/NETfishing.aarch64`.
- The executable is `straywild/straywild.aarch64`.
- The package declares AArch64, two analog sticks, GLIBC 2.28, and
`weston_pkg_0.2.squashfs`.
- The launcher starts GPTOKEYB with the explicit `netfishing.gptk` no-op map.
- The launcher starts GPTOKEYB with the explicit `straywild.gptk` no-op map.
Every keyboard and mouse binding is disabled, leaving only GPTOKEYB's
device-specific force-quit chord while Godot and NETfishing's controller
device-specific force-quit chord while Godot and straywild's controller
mapping manager handle gameplay input. The explicit map also avoids the
anomalous controller behavior observed on ROCKNIX without a passthrough map.
- The launcher calls `pm_platform_helper` for the game executable after
starting GPTOKEYB and calls `pm_finish` after the game exits.
- NETfishing automatically creates player data for new installations under
`ports/saves/netfishing/` and does not present the in-game folder picker.
- straywild automatically creates player data for new installations under
`ports/saves/straywild/` and does not present the in-game folder picker.
- Existing installations with a selected data root keep that location when
upgraded. Device-local data, configuration, and cache remain under
`netfishing/conf/data`, `netfishing/conf/config`, and
`netfishing/conf/cache`.
`straywild/conf/data`, `straywild/conf/config`, and
`straywild/conf/cache`.
- The archive must not contain `conf/`, saves, identities, logs, source files,
`.git`, or `.godot` content.
- Release downloads must publish only the canonical `netfishing.zip` for this
- Release downloads must publish only the canonical `straywild.zip` for this
platform. Do not also publish a byte-identical versioned PortMaster ZIP;
HarbourMaster identifies the port by its canonical archive name and the
Forgejo release tag already supplies the version.
@ -67,7 +67,7 @@ The script deletes and regenerates the Linux ARM64 export, stages the package,
validates its structure, and writes:
```text
builds/v<project-version>/netfishing.zip
builds/v<project-version>/straywild.zip
```
`--package-only` is reserved for repackaging an already validated ARM64 export.
@ -83,7 +83,7 @@ bash scripts/build_portmaster.sh --package-only --hotfix
The hotfix keeps the game executable and PCK tied to the release tag while
recording the newer packaging commit separately in `BUILD-INFO.txt`. Replace
the release's existing `netfishing.zip`; never move the game release tag.
the release's existing `straywild.zip`; never move the game release tag.
## Local muOS installation
@ -93,22 +93,22 @@ The muOS auto-install directory is:
/mnt/mmc/MUOS/PortMaster/autoinstall/
```
For an explicit offline installation test, copy `netfishing.zip` to a temporary
For an explicit offline installation test, copy `straywild.zip` to a temporary
device directory and run:
```bash
/mnt/mmc/MUOS/PortMaster/harbourmaster \
--offline --no-check install ./netfishing.zip
--offline --no-check install ./straywild.zip
```
Before upgrading an existing installation, preserve
`/mnt/mmc/ports/netfishing/conf/` and `/mnt/mmc/ports/saves/netfishing/` on the
`/mnt/mmc/ports/straywild/conf/` and `/mnt/mmc/ports/saves/straywild/` on the
device. After installation:
1. Confirm the installed executable and PCK hashes match the staged release.
2. Confirm HarbourMaster added its `# PORTMASTER:` installation signature to
the installed launcher, then confirm the launcher starts GPTOKEYB with
`netfishing.gptk` and calls `pm_platform_helper` for the game executable.
`straywild.gptk` and calls `pm_platform_helper` for the game executable.
3. Confirm `conf/` and the external save directory were not replaced or
removed.
4. Launch the installed port through the normal muOS menu.
@ -117,7 +117,7 @@ device. After installation:
Start+Select on most devices.
Installing the public PortMaster catalog entry can still install an older
catalog build until the upstream `netfishing.zip` is updated. A local release
catalog build until the upstream `straywild.zip` is updated. A local release
test must install the generated local archive explicitly.
## Template provenance
@ -130,7 +130,7 @@ f24daae48f543b3a270a5aa46b5e73a31904bf0c7216d4c8a9e15a8dc48a5eed screenshot.png
```
The remaining catalog metadata assets were copied from the installed official
`netfishing.zip` package and are intentionally preserved byte-for-byte:
`straywild.zip` package and are intentionally preserved byte-for-byte:
```text
e2a9d132744684c67865c01eca027a8c9946b4c5a19da57c82f1af0373dc83b7 gameinfo.xml
@ -160,7 +160,7 @@ The device-verified Godot mapping is:
- left-stick click `b9`, left trigger `b10`, right trigger `b11`, right-stick click `b12`
- D-pad `h0`; left and right sticks `a0..a3`
`scripts/portmaster/NETfishing.sh` must replace the incompatible SDL2 entry
`scripts/portmaster/straywild.sh` must replace the incompatible SDL2 entry
with the Godot entry when that SDL2 GUID is selected. Do not append the two
entries with a newline. WestonPack reconstructs the wrapped game command
through a shell, so raw mapping values passed in that command can be split into
@ -169,14 +169,14 @@ this failure with the `GO-Super Gamepad` mapping. The outer Weston environment
also does not reliably preserve the corrected muOS mapping for the game.
Write the exact selected mapping to `conf/cache/controller_mapping.txt` before
starting Weston. Weston must launch `launch-netfishing.sh`, which reads that
starting Weston. Weston must launch `launch-straywild.sh`, which reads that
file, exports `SDL_GAMECONTROLLERCONFIG`, and immediately replaces itself with
the game process. This applies the mapping at the same point as the working
0.10.1 launcher without passing its raw text through WestonPack's command
reconstruction. Do not move the mapping back to either side of
`westonwrap.sh`.
Always pass `netfishing.gptk`, which explicitly unassigns every direct and
Always pass `straywild.gptk`, which explicitly unassigns every direct and
hotkey binding with GPTOKEYB's `\"` value. This keeps GPTOKEYB from injecting
keyboard or mouse events on top of Godot's native controller input and retains
the device-specific kill chord. Supplying the explicit passthrough map also
@ -209,8 +209,8 @@ The light profile passes these Godot options:
- `--max-fps 30`
- `--audio-output-latency 40`
It also passes `NETFISHING_PERFORMANCE_PROFILE=light` and
`NETFISHING_LOW_END=1`. The game renders the 3D world at 37.5% linear
It also passes `straywild_PERFORMANCE_PROFILE=light` and
`straywild_LOW_END=1`. The game renders the 3D world at 37.5% linear
resolution with nearest-neighbor scaling, reducing 3D pixel work by about 86%
while the separately rendered UI retains its canonical resolution. The light
profile also:
@ -244,7 +244,7 @@ omitted ambience or replace the micro textures with desktop-resolution assets.
The normal profile otherwise retains the full visual presentation.
To opt a capable device into the normal profile, create the persistent file
`netfishing/conf/performance_profile` containing exactly:
`straywild/conf/performance_profile` containing exactly:
```text
normal
@ -253,13 +253,13 @@ normal
On a typical muOS installation, the full path is:
```text
/mnt/mmc/ports/netfishing/conf/performance_profile
/mnt/mmc/ports/straywild/conf/performance_profile
```
Set the file to `light`, or remove it, to restore the default. An externally
provided `NETFISHING_PERFORMANCE_PROFILE=normal` or `light` environment value
provided `straywild_PERFORMANCE_PROFILE=normal` or `light` environment value
takes precedence over the persistent file. Invalid values safely fall back to
the light profile and are reported in `netfishing/log.txt`.
the light profile and are reported in `straywild/log.txt`.
Do not use Godot's low processor mode for the light profile. It reduces idle
CPU usage by sleeping between updates and is not a game-performance