Repository navigation
Getting Started
There are two ways to play Sightline on Windows. Both need your own ROM: Sightline does not include a GoldenEye ROM or any game data. You need a dump of the NTSC-U cartridge — see ROM Setup for the supported dump and how to check it.
The quickest way. Nothing to build and nothing to install beyond extracting a ZIP.
- Open the Releases page
and download the latest
Sightline-vX.Y.Z-win32.zip(and, to verify it, the.sha256file beside it). - Extract the whole ZIP to a folder of your choice.
- Copy your
.z64dump into that folder, besideSightline.cmd— or point theSL_ROMenvironment variable at it, or letSightline.cmdask you for the path once (it remembers the answer under%LOCALAPPDATA%\sightline). - Double-click
Sightline.cmd. - Optional: double-click
Get-Textures.cmdonce for the Community HD textures, then choose PRESENTATION = COMMUNITY HD in the DISPLAY settings (or press F5 in a level).
That is the whole setup. Windows 10 / 11 x64 with OpenGL drivers; the build is 32-bit. Releases covers what the package contains, how to verify the download and where the save is written; Running the Game covers the controls, the settings and the three presentations.
The developer path, condensed from readme.md. Every command runs from an ordinary Windows PowerShell prompt at the repository root — no MSYS2 shell, no Git Bash, no WSL. You need Git for Windows to clone.
git clone https://github.com/mscrnt/Sightline.git sightline
cd sightlineSightline reads a plain, uncompressed, big-endian .z64 dump of GoldenEye
007 (USA). Either place it at baserom.u.z64 in the repository root, or point
SL_ROM at it:
$env:SL_ROM = "D:\Games\GoldenEye\baserom.u.z64"Both locations are ignored by Git; the ROM must never be committed. If your
dump came as a zip, or as a .n64 / .v64 file, read ROM Setup
before going further.
.\tools\windows\setup.ps1 # diagnose what is present
.\tools\windows\setup.ps1 -Install # install the missing MSYS2 packagessetup.ps1 uses MSYS2 purely as a toolchain provider (winget install --id MSYS2.MSYS2 if you do not have it) and installs the 32-bit mingw packages
the build needs: the i686 compiler and binutils, pkgconf and SDL2. It also
checks for Python. See Building for the full list of checks and
a note about the matching-build map line it still reports.
.\tools\windows\build.ps1produces build\win32\sightline.exe with its runtime DLLs staged next to it.
The build needs no ROM and no output of the matching build: the ROM is read
at run time, and the link-map input the build places symbols from is the
tracked tools\native\ge007.u.linkmap.txt.
.\tools\windows\play.ps1 # the game's own front end
.\tools\windows\play.ps1 -Level dam -Difficulty 2 # straight into a levelplay.ps1 builds first if the executable is missing, and prints a controls
summary. Mouse and keyboard work out of the box; the front end is driven by
pointing and clicking. See Running the Game for every
option, the controls, the settings pages and the environment tweaks.
.\tools\windows\test.ps1runs the headless Facility acceptance (300 pumped frames, no window) and reports the result through its exit code.
One command prepares both texture packs and every XBLA world asset of the
single-player campaign, into git-ignored folders that play.ps1 finds by
itself:
.\tools\windows\prepare-all.ps1
.\tools\windows\play.ps1 -Level dam -Presentation XBLAIt runs prepare-textures.ps1 (the COMMUNITY HD and XBLA texture packs, in
texpacks\) and then prepare-xbla-assets.ps1 -All (the XBLA backgrounds,
skies, characters, props and first-person models of all 20 campaign
missions, in worldassets\). The XBLA source is a separate, user-supplied
archive — not the N64 ROM — and needs 7-Zip to open; see
ROM Setup for how the three inputs differ and
docs/xbla-setup.md
for the options and the per-stage details. To use the prepared sets with a
release package instead, pass
-TexturesOut "$env:LOCALAPPDATA\sightline\assets\texpacks" and
-WorldOut "$env:LOCALAPPDATA\sightline\assets\worldassets": the package
reads them from there.
-
package-release.ps1stages, validates and zips a release package from a finished build — see Building. -
package-demo.ps1 -Rom <path> -OutFile <path>bundles a build with a ROM you supply into a single private, local executable. Its output contains your ROM and is not something the repository ships or that you may redistribute. -
asset-import.ps1installs your own glTF model as a boot-screen replacement — see Custom Boot Models.
The matching build and the trace tooling are driven through make on Linux
(make matching, make trace-verify); see Building and
Trace Harness.
Written from the public Sightline source tree. Bug reports and questions go to GitHub Issues; pull requests are not accepted.