Skip to content

Getting Started

mscrnt edited this page Oct 16, 2026 · 3 revisions

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.

Option 1 — play a release (no toolchain, no clone)

The quickest way. Nothing to build and nothing to install beyond extracting a ZIP.

  1. Open the Releases page and download the latest Sightline-vX.Y.Z-win32.zip (and, to verify it, the .sha256 file beside it).
  2. Extract the whole ZIP to a folder of your choice.
  3. Copy your .z64 dump into that folder, beside Sightline.cmd — or point the SL_ROM environment variable at it, or let Sightline.cmd ask you for the path once (it remembers the answer under %LOCALAPPDATA%\sightline).
  4. Double-click Sightline.cmd.
  5. Optional: double-click Get-Textures.cmd once 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.

Option 2 — build from source

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.

1. Clone the repository

git clone https://github.com/mscrnt/Sightline.git sightline
cd sightline

2. Supply your ROM

Sightline 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.

3. Set up the Windows toolchain

.\tools\windows\setup.ps1            # diagnose what is present
.\tools\windows\setup.ps1 -Install   # install the missing MSYS2 packages

setup.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.

4. Build

.\tools\windows\build.ps1

produces 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.

5. Run

.\tools\windows\play.ps1                        # the game's own front end
.\tools\windows\play.ps1 -Level dam -Difficulty 2   # straight into a level

play.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.

6. Optional smoke test

.\tools\windows\test.ps1

runs the headless Facility acceptance (300 pumped frames, no window) and reports the result through its exit code.

7. Optional: COMMUNITY HD and XBLA

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 XBLA

It 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.

What else is in tools\windows

  • package-release.ps1 stages, 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.ps1 installs 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.

Clone this wiki locally