Docs: README + Pages landing overhaul for v0.2.0; Deck settings docs.

- README: manual Contents TOC dropped (GitHub auto-generates); Download
  table moved to the top with Quick start under it; Status compressed to
  a Working paragraph + tight known-issue list (D-numbers live in the
  release notes / finding log now); How-it-works tightened.
- Pages (docs/index.md): demo gif is the hero; download table up top;
  new How-it-works and Honest-status sections; legal footer; the 19-shot
  playtest gallery unchanged.
- Options overlay is now gamepad-driven: README Steam Deck section, the
  bundle README (new @DECK@ block on Linux, controller column added to
  the controls table), and the release-notes template all document
  Select / D-pad / A / B / Start instead of a Steam key-mapping workaround.
This commit is contained in:
James Dansereau committed 2026-09-13 18:40:57 -04:00
1 parent 72af96cf0d
commit 060d5ac86d
6 files changed
+188 -201

No files matched your search

+5
View File
@@ -82,6 +82,11 @@ region from the SHA-1. US is the best-tested.
**Steam Deck:** sideload the unpacked folder (USB or a file manager), do steps
2–4, then add the executable to Games → *Add Game* as a non-Steam game.
**In-game settings on the Deck:** the options overlay is fully gamepad-driven
— it opens with **Select**, the D-pad or left stick (up/down) moves between
options, **A** steps the selected option forward, **B** steps it back, and
**Start** (or Select again) closes. No keyboard needed.
Full steps are in the bundled `README.md`.
### Verify the download
+92 -146
View File
@@ -6,22 +6,20 @@
A native PC port of _GoldenEye 007_ (Rare, 1997, Nintendo 64), compiled from
the [GoldenEye 007 decompilation](https://github.com/n64decomp/007): the
original N64 game running from reconstructed source, not the Xbox 360
remaster. **v0.2.0 (pre-release)** is out for Windows and Linux — including
Steam Deck, where the Linux bundle sideloads as-is — and runs the full
campaign at a steady 60 fps with known rough edges (see
[Status](#status) and [Download](#download)).
remaster. The N64's graphics coprocessor (RSP) is emulated in software; every
other hardware surface (video, audio, input, timers, save storage) is shimmed
in a dedicated `port/` layer, following the architecture of the
[Perfect Dark PC port](https://github.com/fgsfdsfgs/perfect_dark), the same
Rare "Indy" engine family, one hardware generation apart.
**v0.2.0 (pre-release)** is out for Windows and Linux — including Steam Deck,
where the Linux bundle sideloads as-is — and runs the full campaign at a steady
60 fps with known rough edges ([Status](#status)).
It's also a case study in AI-agent collaboration on a large, low-level
codebase: two coding agents, driven by one person part-time, porting ~230
translation units of unmodified big-endian MIPS game code to a 64-bit
desktop. See [Background](#background).
Technically, it follows the architecture of the
[Perfect Dark PC port](https://github.com/fgsfdsfgs/perfect_dark), the same
Rare "Indy" engine family, one hardware generation apart. The unmodified game
C sources are compiled for the host; the N64's Reality Signal Processor (RSP)
is emulated in software; every other hardware surface (video, audio, input,
timers, save storage) is shimmed in a dedicated `port/` layer.
translation units of unmodified big-endian MIPS game code to a 64-bit desktop.
See [Background](#background).
> [!IMPORTANT]
> **You must supply your own GoldenEye 007 ROM.** This repository contains no
@@ -37,19 +35,79 @@ timers, save storage) is shimmed in a dedicated `port/` layer.
Facility &rarr; Silo &rarr; Jungle &rarr; Archives.</em>
</p>
## Quick start
## Download
You supply your own **GoldenEye 007 N64 ROM** (`.z64`, big-endian; NTSC-U
recommended — all three regions are supported, see [Requirements](#requirements)).
No ROM or game asset is included or distributed. Then:
| Platform | Bundle | Notes |
|---|---|---|
| **Windows** (x86_64) | [win64.zip](../../releases) | Engine + runtime DLLs + the one-time asset tool. |
| **Linux** (x86_64) / **Steam Deck** | [linux tarball](../../releases) | SDL2 is bundled — runs as-is on any distro, and sideloads onto a Deck with nothing installed. |
1. Download the Windows or Linux bundle from [Releases](../../releases) and unpack it. The Linux bundle ships its own SDL2, so it runs on any distro — and on a Steam Deck — with nothing installed.
Both bundles contain **no ROM and no game assets** — you supply your own
(see [Requirements](#requirements)), which keeps the release legal to
distribute. Earlier builds: v0.1.0 alpha, same page. You can also build it
yourself; see [Building](#building).
### Quick start
You need a GoldenEye 007 N64 ROM (`.z64`, big-endian; NTSC-U recommended — all
three regions are supported). No ROM or game asset is included or distributed.
Then:
1. Download the Windows or Linux bundle from [Releases](../../releases) and unpack it.
2. Make a `data/` folder next to the executable and drop the ROM in as `ge007.ntsc-final.z64`.
3. Run the one-time asset step: `python3 prepare-assets/prepare-assets.py` (Python 3.8+, stdlib only).
4. Launch the executable from that folder.
Building from source instead: see [Building](#building). Read the
[Status](#status) caveats first — this is a pre-release.
Read the [Status](#status) caveats first — this is a pre-release.
## Status
**v0.2.0 (pre-release) — playable, with known rough edges.** It runs the full
single-player campaign at a steady 60 fps with no known crashes; the point of
the pre-release is an end-to-end playtest that all 21 missions are completable
start to finish on this build — feedback is welcome.
**Working:** boot sequence and front end (menu → mission select → briefing →
start); all 21 solo missions load, render and are crash-free; steady 60 fps
(software RSP off the presentation critical path); full audio — in-level music
and SFX; keyboard + mouse (click-to-lock, proportional aim mode) and a modern
dual-stick controller layout; file-backed saves; F10 in-game options overlay
(resolution, frame cap, MSAA, filtering, FOV, sensitivity); Windows and Linux.
**Known issues:**
- **Cutscenes glitch frequently** — skipped beats, wrong camera, misplaced or
hovering actors, wrong timing. The most visible gap in this release.
- A few in-level music tracks sound wrong (wrong instruments, occasional
garbling).
- Particle colours drift through a rainbow palette instead of holding their
grey/orange intent (bullet sparks, lingering smoke/explosion residue).
- Water levels show a moving seam between two water patterns; pixel strips at
the left/right screen edges at non-integer scales; some front-end 3D models
(spinning Nintendo logo, MISSION COMPLETE / mode-select) mispositioned or
absent. Assorted further cosmetic defects are tracked in
[`docs/dev/GRAPHICS-BACKLOG.md`](docs/dev/GRAPHICS-BACKLOG.md).
- No macOS or ARM support; no widescreen; no controller rebinding UI.
Root causes and fix status for every item: the [release notes](../../releases)
and the finding log in [`docs/dev/findings.md`](docs/dev/findings.md).
### Steam Deck
The Linux bundle is the Deck build. Sideload it (USB or a file manager):
unzip, drop your ROM in `data/`, run `prepare-assets` once, and add the
executable as a non-Steam game. SDL2 is bundled, so no dependencies need
installing. The renderer is CPU-bound (software RSP); expect original N64-era
performance at 60 fps rather than more. A v0.1.0-era crash on the Deck in
Facility was never reproduced and its prime suspect has since been fixed, but
this release has not yet been verified on real Deck hardware.
**In-game settings on the Deck.** The options overlay is fully gamepad-driven:
it opens with **Select**, the D-pad or left stick (up/down) moves between
options, **A** steps the selected option forward, **B** steps it back, and
**Start** (or Select again) closes. Toggles flip, resolution / MSAA /
filtering cycle, sliders step in increments. With a keyboard attached the same
overlay is `F10` + arrows/Enter.
## Beyond playing
@@ -66,24 +124,6 @@ Building from source instead: see [Building](#building). Read the
the ground rules for getting changes in, and [`docs/dev/`](docs/dev/) is
the raw engineering record behind every fix.
## Contents
- [Quick start](#quick-start)
- [Beyond playing](#beyond-playing)
- [Background](#background)
- [How this differs from the other GoldenEye PC projects](#how-this-differs-from-the-other-goldeneye-pc-projects)
- [Status](#status)
- [Download](#download)
- [Requirements](#requirements)
- [Building](#building) · [Windows (MSYS2)](#windows-msys2) · [Linux](#linux)
- [Running](#running) · [Default controls](#default-controls)
- [How it works](#how-it-works)
- [Project layout](#project-layout)
- [Documentation](#documentation)
- [Credits](#credits)
- [Legal](#legal)
- [License](#license)
## Background
The port was built by two coding agents — a local open-weight model
@@ -123,91 +163,6 @@ If you just want to play GoldenEye on PC today, use one of the recompilation
projects: they are finished and this is not. What's here is the other half,
getting the *original* game running from source.
## Status
**v0.2.0 (pre-release) — playable, with known rough edges.** It runs the full
single-player campaign at a steady 60 fps with no known crashes, but
cutscenes still glitch frequently, a few in-level music tracks sound wrong,
and a handful of cosmetic rendering defects remain. A full end-to-end
re-confirmation that all 21 missions are completable start to finish on this
build is the point of the pre-release — playtest feedback is welcome.
**Working**
- Boot → Rare/Nintendo logos → gun-barrel → cast intro, fully rendered.
- Front end: main menu → mission select → difficulty → briefing → mission start.
- All 21 solo missions load, render, and are crash-free. The v0.1.0-era
crashing levels (Bunker ii, Statue) and the AI-pacing bug that blocked the
final level (Cradle) were root-caused, fixed, and playtest-verified (D191,
D193). See [`docs/dev/LEVEL-STATUS.md`](docs/dev/LEVEL-STATUS.md).
- **Steady 60 fps** in normal play — the software RSP runs off the
presentation critical path (D248); `Video.DisplayFPS` (F10) shows it.
- Software RSP (fast3d): textured world geometry, skeletal characters, HUD,
the GE-specific color-combiner / render modes and `G_TRI4`; outdoor skies
render correctly (D227); water no longer renders green/pulsing (D229).
- Input: keyboard + mouse and SDL game controllers mapped onto the N64 pad.
Mouse is click-to-lock (click to grab, ESC to release) with a GEPD-style
proportional aim mode (D194 closed); sensitivity, Y-inversion and the
aim/turn split are tunable in `ge007.ini` or the F10 options overlay.
- File-backed EEPROM saves.
- Audio — software mixer (libultra audio layer → SDL, adapted from the PD
port). In-level sound effects and in-level music both play (the D77
silence is fixed).
- QoL: F10 in-game options overlay (fullscreen, resolution, frame cap, MSAA,
texture filtering, FOV/draw distance, sensitivity), mute-on-focus-loss, F12
screenshot.
- Windows and Linux (`x86_64`). The Linux build is compiled on every push by
CI and ships with SDL2 bundled, so it runs without installing anything —
including on a Steam Deck (see below).
**Not yet working / known issues**
- **Cutscenes** — frequently glitch: skipped beats, wrong camera, misplaced or
hovering actors, wrong timing (D148/D160/D173; the Dam level-end race is
D243). The most visible gap in this release.
- **Audio quality on some in-level tracks** — wrong-sounding instruments and
occasional garbling (D230); silence itself is fixed.
- Some front-end 3D models — the spinning Nintendo logo, and the MISSION
COMPLETE / mode-select models — are mispositioned or absent (D75). The
gun-barrel Bond intro renders correctly.
- **Particle colours cycle through a rainbow palette** — bullet-impact sparks
and lingering smoke/explosion residue drift through the hues over time
instead of holding their intended grey/orange palette (D252; suspect is the
RGBA16 fire-tile width/height in the texture importer).
- Water on `IsWater` levels shows a moving seam between two patterns (D245);
pixel strips at the left/right screen edges at non-integer scales (D246).
Assorted other cosmetic defects are tracked in
[`docs/dev/GRAPHICS-BACKLOG.md`](docs/dev/GRAPHICS-BACKLOG.md).
- No macOS or ARM support; no controller rebinding UI; no widescreen.
### Steam Deck
The Linux bundle is the Deck build. Sideload it (USB or a file manager):
unzip, drop your ROM in `data/`, run `prepare-assets` once, and add the
executable as a non-Steam game. SDL2 is bundled, so no dependencies need
installing. The renderer is CPU-bound (software RSP); expect original N64-era
performance at 60 fps rather than more. A v0.1.0-era crash on the Deck in
Facility (D203) was never reproduced and its prime suspect has since been
fixed, but this release has not yet been verified on real Deck hardware.
## Download
**Get v0.2.0 (pre-release):**
- **Windows:** [`goldeneye-pc-port-0.2.0-pre-win64.zip`](../../releases) —
the engine, its runtime DLLs, and the one-time `prepare-assets` tool.
- **Linux / Steam Deck:** [`goldeneye-pc-port-0.2.0-pre-linux-x86_64.tar.gz`](../../releases)
— same contents; SDL2 is bundled so it runs as-is on any distro or a
sideloaded Deck.
Both bundles contain **no ROM and no game assets** — you supply your own
(see [Requirements](#requirements)), which keeps the release legal to
distribute. The four steps from download to playing are in
[Quick start](#quick-start); known issues are listed under
[Status](#status). Earlier builds: v0.1.0 alpha, same page.
You can also build it yourself; see [Building](#building).
## Requirements
You need a GoldenEye 007 (Nintendo 64) ROM that you legally own, in
@@ -289,6 +244,7 @@ lives in `ge007.eep`. Launch with `-fresh` to wipe both before starting
| Next weapon | Mouse wheel up | RB |
| Previous weapon | Mouse wheel down | LB |
| Start | `Enter` / `Tab` | Start |
| Options overlay | `F10` | Select (D-pad/stick + A/B navigate, Start closes) |
The controller layout follows the modern dual-stick scheme used by the
console re-releases (left stick move, right stick look, triggers fire/aim,
@@ -300,31 +256,21 @@ Mouse sensitivity, Y-inversion and the aim/turn split are tunable in the
## How it works
The R4300 game code in `src/` is compiled completely unmodified; the
decompilation's control flow is treated as ground truth. Everything that
would touch N64 hardware is redirected into `port/`:
- **`port/fast3d/`** — a software RSP. It interprets the GBI display list the
game builds each frame and emits OpenGL, bypassing the RDP. Adapted from the
Perfect Dark port and extended for GoldenEye's custom GBI.
- **`port/src/gesched.c`** — replaces the RCP scheduler; instead of poking RSP
registers it drives the software RSP directly.
- **`port/src/libultra.c`** — single-threaded shims for the libultra OS API
(threads, messages, timers, PI/SI/AI/VI) over the host.
- **`port/src/{video,audio,input,fs,romdata,config}.c`** — the SDL2 / OpenGL /
filesystem backends.
The 32→64-bit transition forces a small, cataloged class of mechanical
ABI-only edits to ROM-serialized structs (pointer-width reconciliation); these
change no behavior and are documented individually.
Where it diverges from the Perfect Dark port: GoldenEye's N64 serialized asset
formats (level setup, models, backgrounds) are converted offline by a set
of Python "sidecar" converters in `tools_pc/`, rather than fixed up at load
time. See [`docs/internals.md`](docs/internals.md) and
decompilation's control flow is ground truth. Everything that would touch N64
hardware is redirected into `port/`: a **software RSP** (`port/fast3d/`,
adapted from the Perfect Dark port) that interprets the GBI display list the
game builds each frame and emits OpenGL, bypassing the RDP; a scheduler
replacement (`port/src/gesched.c`) that drives it directly; single-threaded
libultra OS shims (`port/src/libultra.c`); and SDL2/OpenGL/filesystem backends
for video, audio, input and storage. The 32→64-bit transition forces a small,
cataloged class of mechanical ABI-only edits to ROM-serialized structs
(pointer-width reconciliation); these change no behavior and are documented
individually. Where it diverges from the Perfect Dark port: GoldenEye's N64
serialized asset formats are converted offline by Python "sidecar" converters
in `tools_pc/` rather than fixed up at load time. Full detail:
[`docs/internals.md`](docs/internals.md) and
[`docs/porting-notes.md`](docs/porting-notes.md).
## Project layout
```
CMakeLists.txt PC build (parallel to the decomp's Makefile, which is untouched)
build-pc.sh configure + build helper
+71 -44
View File
@@ -10,24 +10,21 @@ description: >-
# GoldenEye 007 PC Port
A native PC port of the original 1997 Nintendo 64 _GoldenEye 007_, compiled
from the game's [decompiled source](https://github.com/n64decomp/007) with
the N64's graphics coprocessor (RSP) running in software. It follows the
architecture of the
[Perfect Dark PC port](https://github.com/fgsfdsfgs/perfect_dark), the same
Rare "Indy" engine family, one hardware generation apart.
It's also a case study in AI-agent collaboration on a large, low-level
codebase: two coding agents (a local open-weight model on a single RTX 5090,
and Claude / Claude Code), driven by one person part-time through ~230
translation units of unmodified big-endian MIPS game code, handing work back
and forth through shared written notes.
from the game's [decompiled source](https://github.com/n64decomp/007) with the
N64's graphics coprocessor (RSP) running in software — the same architecture
as the [Perfect Dark PC port](https://github.com/fgsfdsfgs/perfect_dark), the
same Rare "Indy" engine family, one hardware generation apart.
**Status: v0.2.0 pre-release.** The full single-player campaign runs at a
steady 60 fps with no known crashes, and audio (music + SFX) plays
throughout. Known rough edges: cutscenes still glitch, a few music tracks
sound wrong, and a handful of cosmetic rendering defects remain — the
[README's Status section](https://github.com/jkdansereau/goldeneye-pc-port#status)
is the honest list.
steady 60 fps with no known crashes, and audio (music + SFX) plays throughout.
Known rough edges — cutscenes still glitch, a few music tracks sound wrong, a
handful of cosmetic rendering defects remain — are listed plainly under
[Honest status](#honest-status).
<p align="center">
<img src="media/goldeneye-demo.gif" width="70%" alt="~15 s of the port running: mission dossier, Facility, Silo, Jungle, Archives">
<br><em>~15 s of the port running: mission dossier &rarr; Facility &rarr; Silo &rarr; Jungle &rarr; Archives (the clip has no audio track).</em>
</p>
## Download
@@ -36,8 +33,8 @@ is the honest list.
| **Windows** (x86_64) | [win64.zip](https://github.com/jkdansereau/goldeneye-pc-port/releases) | Engine + runtime DLLs + the one-time asset tool. |
| **Linux** (x86_64) / **Steam Deck** | [linux tarball](https://github.com/jkdansereau/goldeneye-pc-port/releases) | SDL2 is bundled — it runs as-is on any distro, and sideloads onto a Deck with nothing installed. |
Both bundles contain **no ROM and no game assets** — you supply your own
GoldenEye 007 N64 ROM (the
**Bring your own ROM.** Both bundles contain no ROM and no game assets — you
supply your own GoldenEye 007 N64 ROM (the
[Requirements table](https://github.com/jkdansereau/goldeneye-pc-port#requirements)
has the three region filenames and SHA-1s). Then: unpack, drop the ROM in
`data/`, run `prepare-assets` once, launch. The full four steps are in the
@@ -45,38 +42,13 @@ has the three region filenames and SHA-1s). Then: unpack, drop the ROM in
pre-built releases are legal to distribute precisely because they're useless
without a ROM you already own.
## Play it — or take it apart
- **Try it yourself** — grab a bundle above, bring your own ROM, and play the
campaign. It's a pre-release cut for exactly this: if something breaks, an
[issue](https://github.com/jkdansereau/goldeneye-pc-port/issues) with what
you were doing is genuinely useful.
- **Read the code** — the game logic in `src/` is unmodified decompilation;
every hardware surface (video, audio, input, save storage, and the
software-RSP renderer) is shimmed in the MIT-licensed `port/` layer.
[Internals](internals.md) is the map; [Porting notes](porting-notes.md) is
the catalogue of N64→PC bug classes hit along the way — a good read even if
you never touch the code.
- **Mod it** — the port layer, build system and `tools_pc/` helpers are MIT
licensed and yours to extend: new video options, input tweaks, your own
asset sidecar. [CONTRIBUTING](https://github.com/jkdansereau/goldeneye-pc-port/blob/main/CONTRIBUTING.md)
has the ground rules that keep it faithful to the original game.
- **The research angle** — [the two-agent development case study](dev/agentic-development.md):
goal, setup, timeline, the handoff workflow, and an honest assessment of
what did and didn't work.
## In-engine
## See it running
<p align="center">
<img src="img/attract-bunker1.png" width="45%" alt="Bunker 1 intro camera, rendered by the port">
<img src="img/attract-dam.png" width="45%" alt="Dam intro camera, rendered by the port">
</p>
<p align="center">
<img src="media/goldeneye-demo.gif" width="60%" alt="~15 s of the port running: mission dossier, Facility, Silo, Jungle, Archives">
<br><em>~15 s of the port running: mission dossier &rarr; Facility &rarr; Silo &rarr; Jungle &rarr; Archives (the clip has no audio track).</em>
</p>
<details>
<summary><strong>Full playtest gallery</strong> — 19 in-engine captures from the v0.2.0-pre Windows playtest, across the campaign</summary>
@@ -162,6 +134,55 @@ without a ROM you already own.
More captures land here as playtesting continues (Steam Deck session next).
## Play it — or take it apart
- **Try it yourself** — grab a bundle above, bring your own ROM, and play the
campaign. It's a pre-release cut for exactly this: if something breaks, an
[issue](https://github.com/jkdansereau/goldeneye-pc-port/issues) with what
you were doing is genuinely useful.
- **Read the code** — the game logic in `src/` is unmodified decompilation;
every hardware surface (video, audio, input, save storage, and the
software-RSP renderer) is shimmed in the MIT-licensed `port/` layer.
[Internals](internals.md) is the map; [Porting notes](porting-notes.md) is
the catalogue of N64→PC bug classes hit along the way — a good read even if
you never touch the code.
- **Mod it** — the port layer, build system and `tools_pc/` helpers are MIT
licensed and yours to extend: new video options, input tweaks, your own
asset sidecar. [CONTRIBUTING](https://github.com/jkdansereau/goldeneye-pc-port/blob/main/CONTRIBUTING.md)
has the ground rules that keep it faithful to the original game.
- **The research angle** — this is also a case study in AI-agent collaboration
on a large, low-level codebase: two coding agents (a local open-weight model
on a single RTX 5090, and Claude / Claude Code), driven by one person
part-time through ~230 translation units of unmodified big-endian MIPS game
code. [The full write-up](dev/agentic-development.md): setup, timeline, the
handoff workflow, and an honest assessment of what did and didn't work.
## How it works
The R4300 game code is compiled completely unmodified — the decompilation's
control flow is ground truth. The N64's Reality Signal Processor, the graphics
coprocessor that builds and executes each frame's display list, is emulated in
software: the port interprets the GBI stream the game emits and translates it
to OpenGL, bypassing the RDP entirely. Everything else that would touch N64
hardware — video, audio, input, timers, save storage — is shimmed in a small
dedicated layer, following the architecture of the Perfect Dark PC port from
the same Rare engine family. Full detail: [Internals](internals.md); the bug
catalogue: [Porting notes](porting-notes.md).
## Honest status
- **Cutscenes glitch frequently** — skipped beats, wrong camera, misplaced or
hovering actors. The most visible gap in this release.
- A few in-level music tracks sound wrong (wrong instruments, occasional garbling).
- Particle colours drift through a rainbow palette instead of holding grey/orange.
- Water levels show a moving seam; pixel strips at screen edges at non-integer
scales; some front-end 3D models mispositioned or absent.
- No macOS/ARM, no widescreen, no controller rebinding UI yet.
The full list, with root causes and fix status: the
[README's Status section](https://github.com/jkdansereau/goldeneye-pc-port#status)
and the [finding log](https://github.com/jkdansereau/goldeneye-pc-port/tree/main/docs/dev).
## Documentation
- [The two-agent development case study](dev/agentic-development.md) — goal, setup, timeline, the handoff workflow, and an honest assessment of what did and didn't work.
@@ -169,3 +190,9 @@ More captures land here as playtesting continues (Steam Deck session next).
- [Internals](internals.md) — architecture, the software RSP-emulation approach, GoldenEye-vs-Perfect-Dark engine differences, the phased plan.
- [Porting notes](porting-notes.md) — the recurring Nintendo 64 → PC bug classes hit during the port, with fixes.
- [Building](building.md) — full build and asset-extraction guide.
---
<small>Non-commercial fan preservation/research project. No ROM or game assets
are distributed; you supply a ROM you already own. Not affiliated with or
endorsed by Nintendo, Rare, Microsoft, MGM, Danjaq, or EON Productions.</small>
+7 -2
View File
@@ -71,13 +71,18 @@ fi
# --- docs + licenses --------------------------------------------------
DEPS_BLOCK=$'## 1a. Runtime libraries\n\nSDL2 is bundled in this folder and found automatically (the executable\npoints at its own directory first). zlib and OpenGL come from your system —\npreinstalled on every desktop distro and on SteamOS / Steam Deck.\n\n**Steam Deck:** sideload this folder (USB or a file manager), do steps 2–4\nbelow, then add `@EXE@` to Games → *Add Game* as a non-Steam game.\n'
# @DECK@: the in-game settings (F10 overlay) controller-mapping guide — only
# meaningful where Steam input mapping exists (Deck / Linux); Windows bundles
# substitute it with nothing.
DECK_BLOCK=$'## 4a. Steam Deck — in-game settings (options overlay)\n\nThe options overlay is fully gamepad-driven: it opens with **Select**, the\nD-pad or left stick (up/down) moves between options, **A** steps the selected\noption forward, **B** steps it back, and **Start** (or Select again) closes.\nToggles flip, resolution / MSAA / filtering cycle, sliders step in\nincrements. With a keyboard attached the same overlay is `F10` + arrows/Enter.\n\n'
sed -e "s|@VERSION@|${VERSION}|g" \
-e "s|@PLATFORM@|Linux x86-64|g" \
-e "s|@EXE@|${EXE_NAME}|g" \
-e "s|@LICENSE_EXTRA@||g" \
tools_pc/dist/README.md.in > "$OUT/README.md.tmp"
# @DEPS@ is a multi-line block — substitute it via awk, not sed.
awk -v repl="$DEPS_BLOCK" '{ if ($0 == "@DEPS@") print repl; else print }' \
# @DEPS@ / @DECK@ are multi-line blocks — substitute them via awk, not sed.
awk -v deps="$DEPS_BLOCK" -v deck="$DECK_BLOCK" \
'{ if ($0 == "@DEPS@") print deps; else if ($0 == "@DECK@") print deck; else print }' \
"$OUT/README.md.tmp" > "$OUT/README.md"
rm -f "$OUT/README.md.tmp"
+1
View File
@@ -75,6 +75,7 @@ sed -e "s|@VERSION@|${VERSION}|g" \
-e "s|@PLATFORM@|Windows x86-64|g" \
-e "s|@EXE@|${EXE_NAME}|g" \
-e "s|@DEPS@||g" \
-e "s|@DECK@||g" \
-e "s|@LICENSE_EXTRA@|, the MinGW runtime|g" \
tools_pc/dist/README.md.in > "$OUT/README.md"
cp NOTICE "$OUT/licenses/NOTICE"
+12 -9
View File
@@ -62,18 +62,21 @@ first run.
## 4. Controls (defaults)
| Action | Keyboard / mouse |
|---|---|
| Move / strafe | `W` `A` `S` `D` / arrows |
| Aim / look | mouse |
| Fire | left mouse / `LCtrl` |
| Aim mode | right mouse / `LShift` |
| Use / accept | `Space` / `E` |
| Reload / cancel | `R` / `F` |
| Start | `Enter` / `Tab` |
| Action | Keyboard / mouse | Controller |
|---|---|---|
| Move / strafe | `W` `A` `S` `D` / arrows | Left stick (or D-pad) |
| Aim / look | mouse | Right stick |
| Fire | left mouse / `LCtrl` | Right trigger |
| Aim mode | right mouse / `LShift` | Left trigger |
| Use / accept | `Space` / `E` / `X` | A / X |
| Reload / cancel | `R` / `F` | B / Y |
| Next / previous weapon | Mouse wheel up / down | RB / LB |
| Start | `Enter` / `Tab` | Start |
| Options overlay | `F10` | Select (D-pad/stick + A/B navigate, Start closes) |
Mouse sensitivity and Y-inversion are in the `[Input]` section of `ge007.ini`.
@DECK@
## 5. Legal
Non-commercial fan preservation / research project. **Not** affiliated with,