mirror of
https://github.com/jkdansereau/goldeneye-pc-port.git
synced 2026-10-23 15:52:42 +02:00
release: add Linux x86-64 bundle + dual-platform release notes
- tools_pc/bundle-linux.sh: package a Linux build (exe + README + licenses + prepare-assets) as a .tar.gz. Mirrors bundle-win.sh's ROM / size guards and prepare-assets assembly. No shared libs bundled — the generated README tells the user to install SDL2 / zlib / libGL from their distro. - tools_pc/dist/README.md.in: made OS-neutral via @PLATFORM@ / @EXE@ / @DEPS@ / @LICENSE_EXTRA@ tokens; refreshed the known-issues list (dropped the stale "ladders don't work" line — D177 fixed M-36; added black sky + missing HUD weapon icon). - .github/workflows/ci.yml: linux-build now packages + uploads the Linux bundle; the release job attaches both platforms to the draft pre-release. - .github/release-notes.md: rewritten for the two-platform NTSC-U alpha with the prepare-assets step and current known issues. Alpha scope: NTSC-U only, one-time prepare-assets step (Part A launcher and Part B native converter from release-dropin-rom-plan.md remain follow-ups). Claude-Session: https://claude.ai/code/session_01V4pK3pT83YnPsBp3Ey4RP2
This commit is contained in:
1 parent
362a386650
commit
a0611727e9
5 files changed
+199
-35
No files matched your search
@@ -3,31 +3,53 @@
|
||||
> ⚠️ **Very early research alpha. Not a playable game.**
|
||||
> The intro and menus render and all 21 solo missions load, but:
|
||||
> - **no audio** (Phase 3, not started);
|
||||
> - some front-end 3D models and some text are broken;
|
||||
> - **ladders don't work** and can block progression on some levels;
|
||||
> - some front-end 3D models and some text are broken (the spinning Nintendo
|
||||
> logo, MISSION COMPLETE / mode-select models, some briefing objective text);
|
||||
> - outdoor levels render with a **black sky**;
|
||||
> - the in-HUD **weapon icon is missing** (the ammo count still shows);
|
||||
> - expect crashes and glitches once past the level intro.
|
||||
>
|
||||
> This is a technical demo of the porting work. If you want to *play* GoldenEye
|
||||
> on PC, use one of the Xbox 360 recompilation projects instead — see the
|
||||
> [project README](https://github.com/jkdansereau/goldeneye-pc-port#how-this-differs-from-the-other-goldeneye-pc-projects).
|
||||
|
||||
### Download
|
||||
### Downloads
|
||||
|
||||
`goldeneye-pc-port-<version>-win64.zip` — the engine executable, its runtime
|
||||
DLLs, a README, and license texts. **Windows x86-64 only.** No ROM, no game
|
||||
assets.
|
||||
| File | Platform |
|
||||
|---|---|
|
||||
| `goldeneye-pc-port-<version>-win64.zip` | Windows x86-64 |
|
||||
| `goldeneye-pc-port-<version>-linux-x86_64.tar.gz` | Linux x86-64 |
|
||||
|
||||
Each contains the engine executable, a README, license texts, and the
|
||||
`prepare-assets` tool. **No ROM, no game assets.** The Windows bundle also
|
||||
carries its runtime DLLs; the Linux bundle links against your distro's SDL2 /
|
||||
zlib / libGL (`sudo apt install libsdl2-2.0-0 zlib1g libgl1`, or the equivalent).
|
||||
|
||||
Windows development and playtesting is the primary path; the Linux build boots
|
||||
and renders (tested on WSLg) but has had far less exercise.
|
||||
|
||||
### Running it
|
||||
|
||||
You supply your own **NTSC-U GoldenEye 007 N64 ROM** (`.z64`, big-endian,
|
||||
`SHA-1 abe01e4aeb033b6c0836819f549c791b26cfde83`). Unzip, put the ROM in a
|
||||
`data/` folder next to the exe as `ge007.ntsc-final.z64`, run the exe from that
|
||||
folder. Full steps in the bundled `README.md`.
|
||||
`SHA-1 abe01e4aeb033b6c0836819f549c791b26cfde83`). Only the US ROM is supported
|
||||
in this alpha.
|
||||
|
||||
1. Unpack the archive.
|
||||
2. Make a `data/` folder next to the executable and put the ROM in it as
|
||||
`ge007.ntsc-final.z64`.
|
||||
3. Run the one-time asset step (needs Python 3.8+):
|
||||
`python3 prepare-assets/prepare-assets.py`
|
||||
— it reads your ROM and writes the two `data/pc*-ntsc-final/` folders the
|
||||
engine needs. Standard library only; a few seconds.
|
||||
4. Run the executable **from that folder**.
|
||||
|
||||
Full steps are in the bundled `README.md`.
|
||||
|
||||
### Verify the download
|
||||
|
||||
```
|
||||
sha256sum -c goldeneye-pc-port-<version>-win64.zip.sha256
|
||||
sha256sum -c goldeneye-pc-port-<version>-linux-x86_64.tar.gz.sha256
|
||||
```
|
||||
|
||||
### Source & docs
|
||||
|
||||
+44
-12
@@ -26,8 +26,11 @@ concurrency:
|
||||
# Jobs:
|
||||
#
|
||||
# linux-build — ubuntu, system GCC. Actually compiles + links (unlike
|
||||
# validate). Surfaces GCC-on-Linux strictness gaps MinGW
|
||||
# misses. Not a runtime claim; not a required check yet.
|
||||
# validate), then packages the Linux bundle (exe + README +
|
||||
# licenses + prepare-assets, NO ROM / assets / bundled libs)
|
||||
# via tools_pc/bundle-linux.sh and uploads it. Surfaces
|
||||
# GCC-on-Linux strictness gaps MinGW misses. Not a runtime
|
||||
# claim; not a required check yet.
|
||||
#
|
||||
# validate — ubuntu, configure-only. Byte-compiles the tooling,
|
||||
# regenerates the US ROM-asset symbol file, and CMake-
|
||||
@@ -43,10 +46,10 @@ concurrency:
|
||||
# the ROM nor extracted assets are needed to BUILD (they are
|
||||
# runtime-only), so CI builds but never runs the port.
|
||||
#
|
||||
# release — tags only (v*). Downloads the bundle from windows-build and
|
||||
# attaches it to a DRAFT pre-release for that tag. Draft, so a
|
||||
# human does the ROM smoke-test and hits Publish. This is the
|
||||
# only job granted contents: write.
|
||||
# release — tags only (v*). Downloads the Windows + Linux bundles and
|
||||
# attaches both to a DRAFT pre-release for that tag. Draft, so
|
||||
# a human does the ROM smoke-test on each platform and hits
|
||||
# Publish. This is the only job granted contents: write.
|
||||
|
||||
jobs:
|
||||
# Did this push touch anything outside docs / licenses? Branch pushes to main
|
||||
@@ -153,6 +156,29 @@ jobs:
|
||||
ls -la build-linux/ge007* || true
|
||||
file build-linux/ge007* || true
|
||||
|
||||
# Package the Linux bundle on every run so the release path stays
|
||||
# exercised. No shared libs are bundled — the README tells the user to
|
||||
# install SDL2 / zlib / libGL from their distro. Same ROM / size guards
|
||||
# as the Windows bundle.
|
||||
- name: Package Linux bundle
|
||||
run: |
|
||||
if [ "${GITHUB_REF_TYPE}" = "tag" ]; then
|
||||
V="${GITHUB_REF_NAME}"
|
||||
else
|
||||
V="0.0.0-ci.${GITHUB_SHA::7}"
|
||||
fi
|
||||
tools_pc/bundle-linux.sh "$V"
|
||||
|
||||
- name: Upload bundle
|
||||
uses: actions/upload-artifact@v7
|
||||
with:
|
||||
name: goldeneye-pc-port-linux-x86_64
|
||||
path: |
|
||||
dist/*.tar.gz
|
||||
dist/*.tar.gz.sha256
|
||||
if-no-files-found: error
|
||||
retention-days: 14
|
||||
|
||||
# Real Windows (MSYS2 MINGW64) build — the only platform the port is
|
||||
# developed and tested on. This compiles and LINKS the full executable.
|
||||
#
|
||||
@@ -219,12 +245,12 @@ jobs:
|
||||
# -level_09 soak, a golden-frame diff) would run on a self-hosted runner
|
||||
# instead. Not planned.
|
||||
|
||||
# Tags only. Attach the packaged bundle to a DRAFT pre-release so a human can
|
||||
# do the ROM smoke-test before publishing. This job — and only this job —
|
||||
# gets contents: write.
|
||||
# Tags only. Attach the packaged Windows + Linux bundles to a DRAFT
|
||||
# pre-release so a human can do the ROM smoke-test on each platform before
|
||||
# publishing. This job — and only this job — gets contents: write.
|
||||
release:
|
||||
if: github.ref_type == 'tag'
|
||||
needs: [ changes, validate, windows-build ]
|
||||
needs: [ changes, validate, windows-build, linux-build ]
|
||||
runs-on: ubuntu-22.04
|
||||
permissions:
|
||||
contents: write
|
||||
@@ -238,15 +264,21 @@ jobs:
|
||||
name: goldeneye-pc-port-win64
|
||||
path: dist
|
||||
|
||||
- uses: actions/download-artifact@v7
|
||||
with:
|
||||
name: goldeneye-pc-port-linux-x86_64
|
||||
path: dist
|
||||
|
||||
- name: Create or update draft pre-release
|
||||
env:
|
||||
GH_TOKEN: ${{ github.token }}
|
||||
run: |
|
||||
TAG="${GITHUB_REF_NAME}"
|
||||
ASSETS=(dist/*.zip dist/*.zip.sha256 dist/*.tar.gz dist/*.tar.gz.sha256)
|
||||
if gh release view "$TAG" >/dev/null 2>&1; then
|
||||
gh release upload "$TAG" dist/*.zip dist/*.zip.sha256 --clobber
|
||||
gh release upload "$TAG" "${ASSETS[@]}" --clobber
|
||||
else
|
||||
gh release create "$TAG" dist/*.zip dist/*.zip.sha256 \
|
||||
gh release create "$TAG" "${ASSETS[@]}" \
|
||||
--draft --prerelease \
|
||||
--title "GoldenEye 007 PC Port $TAG" \
|
||||
--notes-file .github/release-notes.md
|
||||
|
||||
Reference in new issue
Block a user