mrkeyoor.com_
Wed 16 Sept 18:58 UTC
Dev Toolsevaluationupdated 26 Aug 2026

Lighthouse review

Lighthouse is a native PC port of Banjo-Kazooie that creates its game data from a retail ROM supplied by the player. It adds modern display, controller, language-pack, romhack, and custom-asset options without distributing Nintendo's copyrighted game files.

+8stars / 7d
Verdict

Our Lighthouse checkout installed in 15 seconds and built in 5 seconds, but pytest collected 0 tests, so the source passed compilation without giving us an automated gameplay safety net. Use the packaged release if you own a supported ROM and want Banjo-Kazooie with modern controls, display options, and romhack support. Developers should budget for native dependencies, asset extraction, and manual playtesting before trusting a change.

We ran it

Lab card: what happened when we ran LighthouseScreenshot of Lighthouse (github.com/HarbourMasters/Lighthouse)
Install✓ · 15s39 packages · 72 MB
Build✓ · 5s
Tests✗ · 7s0 passed · 0 failed of 0 (pytest)
Known vulns0(pip-audit)
Repo2565 files~497,235 lines of source · 21.8 MB · 3 CI workflows · tests dir

Answers from our run

Does Lighthouse build from source?

Dependencies installed in 15 seconds (39 packages), and the build succeeded in 5 seconds. We cloned commit 33de6f0 into a clean Debian container with 3 CPUs and no project-specific setup.

Do Lighthouse's tests pass?

Yes: 0 of 0 passed when we ran the project's own test command (pytest). Some failures need services or credentials a bare container does not have.

Does Lighthouse have known vulnerabilities in its dependencies?

pip-audit found none in the dependency tree at the time of our run.

Who should not use Lighthouse?

Anyone without a legally obtained supported Banjo-Kazooie ROM: Lighthouse ships no copyrighted assets and cannot generate its game archive without one.

What are the alternatives to Lighthouse?

BanjoRecomp, Mupen64Plus, ParaLLEl N64. Our Lighthouse checkout installed in 15 seconds and built in 5 seconds, but pytest collected 0 tests, so the source passed compilation without giving us an automated gameplay safety net.

Setup4/5Release setup is short; source builds need many native libraries
Docs3/5Player and build guides exist; several mod formats lack guides
Community4/5392 stars, an August 2026 push, and current issue activity
Maturity3/51.1.0 ships on three platforms, but pytest collected no tests

Who it’s for

Banjo-Kazooie owners who want a native Windows, Linux, or macOS version with modern display and input settings.
Players interested in supported romhacks, alternate assets, language packs, or the built-in randomizer work.
Port developers willing to work with C, CMake, native libraries, Git submodules, and extracted game assets.

Who it’s NOT for

Anyone without a legally obtained supported Banjo-Kazooie ROM: Lighthouse ships no copyrighted assets and cannot generate its game archive without one.
Developers expecting a small Python project because our harness detected Python tooling: the documented source build is a C/CMake job with libultraship, Ninja, SDL2, graphics, audio, and archive dependencies.
Teams that require a collected automated test suite before changing game code: pytest found 0 tests in our checkout even though the repository contains a tests directory.
Mod authors who need finished documentation for every asset type: open issues 536 through 540 identify missing or outdated guidance for animations, dialog, demo input, models, music, and language packs.

Setup reality

Our sandbox install succeeded in 15 seconds, adding 39 packages and using 72 MB. The build succeeded in 5 seconds. The test command failed with exit code 5 after 7 seconds because pytest collected 0 tests: it reported 0 passed and 0 failed. Pip-audit found 0 known vulnerabilities.

Playing requires a supported retail ROM in .z64 form. The app extracts bk.o2r from that ROM, while extra regional ROMs can supply PAL or Japanese language data. Building from source also needs the libultraship submodule, CMake, Ninja, a compiler, and platform-specific graphics, audio, SDL2, and archive libraries.

Release archives cover Windows, Linux, and macOS. Linux users may need to mark the AppImage executable. Graphics choices vary by platform, and switching DirectX 11, OpenGL, or Metal requires a restart. Romhacks inherit a US v1.0 limitation, while several modding formats still lack complete documentation.

Four retail ROMs unlock a native PC port

Lighthouse turns a user-supplied Banjo-Kazooie ROM into the data archive needed by a native Windows, Linux, or macOS application. The project publishes no Nintendo game assets. Its README lists SHA-1 hashes for four supported retail dumps: US v1.0, US v1.1, Japanese, and PAL. That is a firm ownership boundary and a useful compatibility check before downloading anything else. If the file is in .n64 rather than .z64 byte order, the guide points users to a conversion tool.

Once the ROM is accepted, Lighthouse creates bk.o2r and launches the game. The 21.8 MB checkout in our sandbox contained 2,565 files and roughly 497,235 source lines, so this is a substantial game port despite the quick front-door flow. Packaged releases avoid the compiler work. Source builders enter a C and CMake codebase tied to libultraship and generated assets, a much wider surface than the Python environment selected by our generic harness suggests.

Three graphics backends and common controllers cover the main desktop paths

The player-facing setup is sensibly direct. Windows defaults to DirectX 11, macOS defaults to Metal, and OpenGL is available across platforms. A restart is required after changing the renderer. The project includes common controller mappings plus an in-app mapper, while the keyboard uses WASD, arrow keys, and nearby action keys. Fullscreen, reset, menu visibility, and alternate assets all have documented shortcuts.

Regional ROMs can become language packs after the base archive exists. PAL supplies UK English, French, and German, while the Japanese release adds Japanese. Our installation added 39 packages and occupied 72 MB before any copyrighted game archive was generated. Players with several regions must provide each dump themselves, and the README does not blur that requirement. That makes the release convenient, though it never becomes a one-click download of a complete game.

What happened when we ran it

Our sandbox installed Lighthouse's detected Python-side requirements in 15 seconds and built the checkout in 5 seconds. Pip-audit reported 0 known vulnerabilities among the installed packages. Those results come from commit 33de6f0 in a fresh Debian container with 3 CPUs, 8 GB of RAM, no secrets, and no privileged access. The successful build says the checked-out code compiled under that harness. It does not say that we played through Banjo-Kazooie or exercised its graphics backends.

The test step failed with exit code 5 after 7 seconds. Pytest's entire useful result was no tests ran in 0.06s: 0 passed and 0 failed because it collected no cases. The repository has a tests directory and 3 CI workflow files, yet the command available to our harness supplied no automated evidence about gameplay, save handling, asset extraction, or rendering. We cannot infer why collection found nothing from that log alone.

Zero collected tests puts more weight on playtesting

A native game port has failure modes that compilation will miss: cutscene timing, animation state, culling, collectible state, and controller behavior all need the running game. Current issue reports make that concrete. Issue 542 says restarting from the Lighthouse menu can desynchronize demos. Issue 533 reports that the fast-transform option can leave Mumbo's idle animation running too quickly. Both reports concern visible game behavior rather than a compiler or packaging failure.

The August 17 release notes show active fixes in the same territory, including widescreen camera handling, SDL audio buzzing, cutscene screenshake, save-editor additions, and player-animation synchronization. Release 1.1.0 is available for Windows, Linux, and macOS, and the repository was pushed again on August 26, 2026. The 49 open items reported by GitHub combine issues and pull requests, so they should be read as ongoing work rather than 49 confirmed defects.

Romhacks work, while several mod formats lack written guidance

Lighthouse can extract many patched ROMs as mods and can launch a named hack from the command line. The README warns that most supported romhacks have not been fully tested. It also says romhack support inherits a US v1.0 base-ROM restriction from Banjo's Backpack. Issue 549 documents a broken final cutscene in one Nostalgia 64 segment, which is the kind of compatibility gap that the README's warning anticipates without proving that every hack has problems.

Custom .o2r and .otr packages go in the mods folder, but creating them is less settled. Six open documentation issues cover animations, dialog and quizzes, demo input, model work, music, and language packs. Issue 538 says model-modding documentation is absent and the referenced Blender plugin does not yet support BK64. Players consuming an existing package have a clear folder convention. Authors trying to build new asset types may need community help and source reading.

Source builds require native libraries and a recursive clone

The Linux build guide lists GCC or Clang, Git, CMake, Ninja, SDL2, SDL2_net, PNG, ZIP, TinyXML2, spdlog, Boost, OpenGL, Ogg, and Vorbis packages. Windows calls for Visual Studio 2022, its C++ tools and SDK, Python 3, Git, and CMake. macOS needs Xcode tools plus a similar set of libraries. A recursive clone matters because libultraship is a submodule. After configuration, separate targets extract ROM assets and create the port archive before the final executable is useful.

Our 5-second build did not validate a retail ROM, generate bk.o2r, package an AppImage, or launch a renderer. Most players should use release 1.1.0. Contributors need target-platform CI, the asset targets, and manual checks around the gameplay they change.

August 2026 activity supports trying it, not skipping verification

GitHub showed 392 stars, 49 combined issues and pull requests, an August 17 release, and an August 26, 2026 push. Lighthouse suits owners who want this game as a native desktop application and accept ROM extraction. Its renderer choices, controller mapping, language packs, and mod loading exceed plain emulation. Modification is the harder case: 497,235 lines of source, native libraries, generated archives, and 0 collected pytest cases leave contributors dependent on CI artifacts and careful playtesting.

Alternatives

ProjectWhat it isPick it when
BanjoRecompA separate native Banjo-Kazooie port produced with N64: Recompiled.pick this instead when you want to compare a static-recompilation port of the same game and its own mod ecosystem.
Mupen64PlusA general Nintendo 64 emulator core that runs many games rather than specializing in one port.pick this instead when broad Nintendo 64 compatibility matters more than Lighthouse-specific enhancements.
ParaLLEl N64A Libretro Nintendo 64 core derived from Mupen64Plus.pick this instead when Banjo-Kazooie needs to live inside an existing RetroArch setup.

What people are saying

  1. [github-trending] HarbourMasters/Lighthouse

Sources

  1. Lighthouse README
  2. Lighthouse build instructions
  3. Lighthouse 1.1.0 release
  4. Demo restart desynchronization issue
  5. Model modding documentation issue

More dev tools reviews

omnyssh · dora · fd · tinycast · crystal · pydantic · the whole board →