mirror of
https://github.com/jkdansereau/goldeneye-pc-port.git
synced 2026-10-23 15:52:42 +02:00
v0.4.1 sync: build and CI fixes, settings presets D440-D447, outside PRs
build-pc.sh Windows temp-dir re-exec fixes; CI pin actions and no-cache ROM handling; original-N64 and Deck presets; D440 preset labelling; D442 All unlocked as a RAM/query-time override; D443 settings values (MSAA 16x, Restart game); D444 front-end Previous/Next paging; D447 Original-aspect pillarbox/letterbox. Outside contributions by dolent: PRs #120 and #121 (relabelled D445, D446), merged as dolent's original commits. Refs: D440 D441 D442 D443 D444 D445 D446 D447 D387 D283 #120 #121
This commit is contained in:
commit
ad3856892a
72 files changed
+2228
-2080
No files matched your search
@@ -68,20 +68,31 @@ Needs CMake + SDL2 + zlib + OpenGL, and must run from the MSYS2 MINGW64 shell
|
||||
In `.ps1`, `-DROMID=$Var` is a literal (bare tokens don't expand) — it
|
||||
must be `"-DROMID=$Var"`. Launch powershell plainly — `env -i` before it
|
||||
breaks the nested cmake launch (verified 2026-09-28).
|
||||
**OPEN (next session):** the guard still fails *inside* `build-pc.sh`
|
||||
(cmake "did not execute": the `.ps1` runs, but `$LASTEXITCODE` stays
|
||||
empty) while the *identical* standalone invocation succeeds (cmake runs
|
||||
and the build completes — that is how the D401 builds were made). First
|
||||
test: diff the heredoc-generated `.ps1` against a hand-extracted copy
|
||||
(suspect: heredoc line-ending/whitespace corruption).
|
||||
**Working workaround:** extract the heredoc `.ps1` and run
|
||||
`powershell -NoProfile -ExecutionPolicy Bypass -File <ps1> "C:\msys64\usr\bin" "C:\msys64\mingw64\bin" C:/msys64 <repo-win-path> build-pc <romid>`.
|
||||
Re-confirmed 2026-09-28: in-script re-exec fails again (cmake configure
|
||||
dies inside the ps1; re-exec logs left stale) while the identical
|
||||
standalone invocation reconfigured and built cleanly (extract with
|
||||
`awk "/<<'PS1'\$/{f=1;next} /^PS1\$/{f=0} f" build-pc.sh > /tmp/ps1`
|
||||
— mind the leading whitespace, and `export PATH` to include mingw/bin
|
||||
first, failure mode 3).
|
||||
**FIXED 2026-09-30 (`fix/build-pc-tmp-reexec`):** the heredoc `.ps1`
|
||||
was byte-identical to a hand-extracted copy — not line endings. Three
|
||||
real bugs: (a) the TMP probe's inline `cmd //c "... \"path\" ..."` never
|
||||
ran (msys re-escapes embedded quotes as `\"`, which cmd rejects), so
|
||||
*every* build took the re-exec, and it only tested that TMP existed;
|
||||
(b) the `.ps1`'s toolchain dirs were derived from `command -v cmake`,
|
||||
which in Git Bash/agent shells is a pip cmake (no MSYS2 toolchain) —
|
||||
the hand-run worked because it passed explicit `C:\msys64\...` paths;
|
||||
(c) `/tmp` + `cygpath` disagree when Git Bash and MSYS2 `usr/bin` are
|
||||
both on PATH, so the `.ps1` could be written to one `/tmp` and
|
||||
powershell pointed at the other (it then exits 0 having done nothing).
|
||||
Now: the MSYS2 `mingw64/bin` is located and validated (override:
|
||||
`GE_MSYS2_ROOT`) and prepended to PATH; the probe is a `.cmd` file that
|
||||
tests TMP *writability*; all native-facing files live in the build dir
|
||||
with paths from bash's own `pwd -W`. Verified from an agent Git Bash
|
||||
shell: fresh + incremental builds, both on the direct path and with a
|
||||
forced unwritable TMP (`TMP=C:\Windows\`) through the re-exec.
|
||||
**FIXED 2026-09-30 (`fix/build-pc-reexec-noop`): the re-exec exited rc=2
|
||||
with the diag log ending `cmake ran LASTEXITCODE=[]`.** From a shell with
|
||||
MSYS2 `usr/bin` first on PATH, powershell inherits a stripped ~13-var env
|
||||
with `PATHEXT=.CPL` and no ComSpec/TMP/TEMP, so `& cmake.exe` silently
|
||||
launches nothing. The `.ps1` now restores PATHEXT and ComSpec. In that
|
||||
shell the re-exec itself is legitimately needed (no TMP), so the probe
|
||||
is correct. Verified: MSYS2-PATH shell, forced `TMP=C:\Windows\`, and a
|
||||
no-change incremental run all exit 0 with a fresh exe.
|
||||
2. **`cannot open output file ge007.x86_64.exe: Permission denied`.** A
|
||||
**running** `ge007.x86_64.exe` locks the output file (Windows rule; you
|
||||
can't relink over a live PE). Check with `Get-Process | Where-Object {
|
||||
|
||||
Reference in new issue
Block a user