Repository navigation
Troubleshooting
The problems the release launcher, the game and the scripts in
tools\windows already diagnose, and what each message means. If a message
is not listed here, the launcher or script that printed it usually explains
itself in the lines that follow.
Sightline.cmd runs sightline.exe from its own folder. Extract the entire
ZIP (not just the .cmd) and keep the folder's layout: the executable, the
two DLLs, data\ and LICENSES\ all sit beside the launcher.
Sightline.cmd looks for your ROM at SL_ROM, then the first *.z64
beside the launcher, then the path it remembered from an earlier run
(%LOCALAPPDATA%\sightline\rom-path.txt). If none exists it asks once. The
simplest setup is to copy your .z64 into the extracted folder, beside
Sightline.cmd. If you previously typed a path and the file has since
moved, delete rom-path.txt or put the ROM beside the launcher.
The launcher checks the size before starting the game. A different size is usually still an archive (Sightline does not read archives; extract it first), a different region, or a file with a header added. See ROM Setup.
The game checks the ROM at start-up and stops with this message on the console when the file is wrong. The reason follows the colon:
-
the file does not start with the big-endian .z64 magic (a .n64 / .v64 dump is byte-swapped; convert or re-dump)— the dump is byte-swapped. Convert it to a big-endian.z64with a ROM tool, or re-dump. -
no 1172 container header at ROM 0x21990 (not a GoldenEye 007 (U) image)— a different game or region. -
... has SHA-1 ..., not the supported dump's (a patched or corrupt ROM)— a modified or damaged dump. Only the unmodified NTSC-U dump is supported.
Sightline ships no ROM-derived data: the two audio-microcode tables are read out of your own dump at start-up, and there is no fallback table, so a ROM that fails these checks cannot run.
Running sightline.exe on its own is not the supported path: without the
launcher's environment it opens no window and finds no ROM. Use
Sightline.cmd.
Windows Explorer hides known extensions by default, so renaming an extracted
007 - GoldenEye (USA).z64 in Explorer can silently produce name.z64.z64.
The release launcher still finds it (it takes the first *.z64 beside
itself), but baserom.u.z64 in a source checkout will not be found. Check
the real name in PowerShell:
Get-ChildItem .\*.z64(Get-Item .\your.z64).Length # 12582912
(Get-FileHash .\your.z64 -Algorithm SHA1).Hash # ABE01E4AEB033B6C0836819F549C791B26CFDE83Size and hash must both match; a wrong hash with the right size usually
means a byte-swapped or modified dump. On Linux, make verify-rom tests
size, magic, region and hash separately and names the actual cause.
(Get-FileHash .\Sightline-v0.3.0-win32.zip -Algorithm SHA256).Hashmust equal the hash in Sightline-v0.3.0-win32.zip.sha256 from the release
page (substitute the version you downloaded). VERSION.txt inside the
package lists the SHA-256 of every shipped file, including sightline.exe.
The selected set was not found, so every texture falls back to the game's own. The console says which folder was looked for, once per run:
sl_texprov: TEXTURES=COMMUNITY HD root=...\sightline\assets\texpacks (player data) set-folder=...\texpacks\community NOT FOUND - every texture falls back to ORIGINAL
-
Release package: run
Get-Textures.cmd(COMMUNITY HD). XBLA needs a texture pack and world assets prepared with a source checkout and written to%LOCALAPPDATA%\sightline\assets\texpacksand...\worldassets(the-TexturesOut/-WorldOutparameters ofprepare-all.ps1). -
Source checkout: run
.\tools\windows\prepare-all.ps1and launch withplay.ps1, which points the game at the checkout'stexpacks\andworldassets\.
A texture the pack does not cover is always drawn as the game's own, so a COMMUNITY HD scene can mix both; that is expected.
Extra frames are drawn only when one fits before the next game frame and the camera pair is continuous. A view too heavy to draw twice in a game frame (dense XBLA views, for one), VSYNC on a 60 Hz display, a camera cut or a minimised window all present at the game's own rate. Try ORIGINAL or COMMUNITY HD, or turn VSYNC off, to see the extra frames.
In play the pointer is not captured until you click in the window. That
first click only captures; it does not fire. Alt-tabbing away releases the
pointer until you come back, and opening the watch (Tab or Esc) gives it
back on purpose. If you want the pointer never taken at all — for example to
play on the keyboard alone — set SL_MOUSE=0 in the environment before
launching.
By design. Tab and Esc open the watch. To quit, use 4. QUIT GAME on the main menu or close the window (the X, or Alt+F4).
Check the binding table: OPTIONS → SETTINGS → CONTROL → BINDINGS on the
front end, or the watch's SIGHTLINE → BINDINGS in a mission. A source can
sit in one slot only, so binding a key that another action held empties
that slot (TAKEN FROM ...). RESET DEFAULTS restores the compiled defaults
for the bindings alone. On a controller, Y / Triangle and R3 are unbound in
the DEFAULT layout and shown as UNBOUND; the bumpers mirror the triggers and
the d-pad carries the weapon cycle and the zoom. See
Running the Game.
SPRINT is off by default (the cartridge's movement). Switch it on under OPTIONS → SETTINGS → GAMEPLAY.
The native settings live in %LOCALAPPDATA%\sightline\config.ini, written
whenever a value changes. The cartridge's own options (per save folder) live
in %LOCALAPPDATA%\sightline\eeprom.bin. A missing or unwritable
config.ini is not fatal: the game runs from defaults, and a malformed
value falls back to that setting's default.
The ASPECT RATIO setting decides the window's width from its height:
960x720 at 4:3 becomes 1280x720 at 16:9, 1680x720 at 21:9 and 2560x720 at
32:9. SL_WINDOW_SIZE names only the initial (4:3) window. Change the
aspect under OPTIONS → SETTINGS → DISPLAY.
play.ps1 and test.ps1 look for the ROM at SL_ROM, falling back to
baserom.u.z64 in the repository root, and stop with this message when
neither exists. Nothing ROM-derived ships in the repository, so there is no
fallback. Either copy your dump to baserom.u.z64 or set SL_ROM:
$env:SL_ROM = "D:\Games\GoldenEye\baserom.u.z64"setup.ps1 reports the ROM too (ROM (for play.ps1)), but a missing ROM is
not a build failure — build.ps1 does not read it. See
ROM Setup.
setup.ps1 without arguments only reports. Each MISS line names what is
missing and the summary lists the packages that would fix it:
.\tools\windows\setup.ps1 -Install # installs them with pacman
.\tools\windows\setup.ps1 -Install -Yes # without promptingIf MSYS2 itself is not found, install it (winget install --id MSYS2.MSYS2) or name where it lives with -Msys2Root <path> or
SL_MSYS2_ROOT. A named root is authoritative; the script will not fall
back to another installation.
setup.ps1 still reports this line, but build.ps1 no longer reads the
raw map: it places symbols from the tracked extraction
tools\native\ge007.u.linkmap.txt, which is in the clone. You can build
without the matching build. See Building.
The tracked link-map extraction is not where build.ps1 expects it (or
SL_LINKMAP points somewhere wrong). It is part of the repository; restore
it from Git.
play.ps1 -Level <name> and test.ps1 resolve the level name through
tools\native\levelstage.py, so they need a Python interpreter:
.venv\Scripts\python.exe, the path in SL_PYTHON, or python.exe on
PATH. Create the repository venv with python -m venv .venv, or set
SL_PYTHON. setup.ps1 reports which Python it found under python.
The name is not one the resolver knows. Use the harness names — facility,
dam, runway, surface, bunker1, silo, archives, and so on; the
full list is in Running the Game.
The headless acceptance passes only when the binary itself prints
sightline native: survived <N> pumped frames and exits 0. A run that
exits 0 without that line, or that has not exited within -TimeoutSeconds
(default 180), is reported as a failure. On failure test.ps1 prints the
tail of the run's output and the path of the full log under
build\win32\tmp\.
Written from the public Sightline source tree. Bug reports and questions go to GitHub Issues; pull requests are not accepted.