惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

P
Proofpoint News Feed
Blog — PlanetScale
Blog — PlanetScale
GbyAI
GbyAI
C
Check Point Blog
腾讯CDC
Stack Overflow Blog
Stack Overflow Blog
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
The GitHub Blog
The GitHub Blog
A
About on SuperTechFans
Recent Announcements
Recent Announcements
L
LangChain Blog
Microsoft Azure Blog
Microsoft Azure Blog
小众软件
小众软件
J
Java Code Geeks
博客园_首页
Jina AI
Jina AI
美团技术团队
H
Help Net Security
MyScale Blog
MyScale Blog
Engineering at Meta
Engineering at Meta
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
人人都是产品经理
人人都是产品经理
Y
Y Combinator Blog
S
SegmentFault 最新的问题

Hacker News: Show HN

PurrrrrFocus: Pomodoro Timer App - App Store Workflow Engine — Multi-Step Orchestration for Bun RapidPhoto: Pro Photo Editor App - App Store GitHub - DheerG/swarms: Achieve extraordinary results with claude code across a variety of tasks SPICE simulation → oscilloscope → verification with Claude Code — Lucas Gerads Show HN: VCoding – A 5 MB native Windows IDE with no dynamic dependencies Show HN: LLMs don't hallucinate because they're bad at math, it's the format GitHub - Agent-FM/agentfm-core: AgentFM is a peer-to-peer network that turns everyday computers into a decentralized AI supercomputer. AgentFM lets you run massive AI workloads directly across a global mesh of idle CPUs and GPUs. Show HN: Tracking Top US Science Olympiad Alumni over Last 25 Years GitHub - Potarix/agent-hub: One place to talk to all your agents Show HN: Runtime security for AI agents(injection,tool abuse, data exfiltration) GitHub - dubeyKartikay/lazyspotify: Terminal Spotify client for macOS and Linux GitHub - the-banana-tool/king-louie: Easy to use GUI Personal AI Assistant. Win/Linux/Mac. Show HN I made my vacation rental bookable by AI agents–no Airbnb, 0% commission GitHub - basteez/jsf-autoreload: maven plugin to enable hot reload on jsf projects uvm32/hosts/host-gdbstub at main · ringtailsoftware/uvm32 GitHub - labsai/EDDI: Config-driven engine that turns JSON into production-grade AI agents. Multi-agent orchestration, 12+ LLM providers, MCP/A2A protocols, RAG, persistent memory, and enterprise compliance (EU AI Act, GDPR, HIPAA). Built on Quarkus. GitHub - glitchnsec/fortyone-oss: AI Executive Assistant Platform Quickstart | Alien GitHub - muxshed/shed: One stream in, or many. Every destination, simultaneously. No cloud middleman, no per-channel fees, no limits. GitHub - ocrbase-hq/ocrbase: 📄 PDF/IMG ->.MD/JSON Document OCR API for PaddleOCR and GLMOCR. Self-hostable. GitHub - impactjo/home-memory: MCP server that lets your AI assistant remember everything about your home. GitHub - Sets88/dbcls: DbCls is a powerful terminal database client that supports various databases GitHub - neptun2000/heor-agent-mcp GitHub - SeanFDZ/macmind: Single-layer transformer in HyperTalk for the classic Macintosh RollQuation: Math Puzzles - Apps on Google Play GitHub - dropbox/witchcraft Show HN: Agent-cache – Multi-tier LLM/tool/session caching for Valkey and Redis GitHub - opentalon/opentalon: OpenTalon is an open-source platform built from the ground up in Go as a robust alternative to OpenClaw LinkedIn™ 职位抓取工具 - Chrome 应用商店
GitHub - akratch/mgb64: A decompilation and native source...
akratch · 2026-06-21 · via Hacker News: Show HN

Man with the Golden Build

A decompilation and native source port of a 1997 Nintendo 64 first-person shooter, reimplemented in portable C so it can be studied, preserved, and run natively on modern machines.

License: MIT (first-party) Status: experimental Bring your own ROM

Important

This project ships no game. It contains decompiled code and an original port layer — no ROM and no copyrighted assets (graphics, audio, models, fonts, level data). To run the port you must supply your own legally-dumped copy of the game. Please read DISCLAIMER.md.

Gameplay Examples

Runway Cradle
Runway gameplay example Cradle gameplay example
Watch on YouTube Watch on YouTube

What is this?

MGB64 combines the decompiled game code with a native PC/macOS port. It builds on the same N64 decompilation ecosystem as Super Mario 64 and Ocarina of Time decompilations and the Perfect Dark port:

  • A decompilation — the original N64 game's logic, rewritten as readable, buildable C and MIPS assembly. The native port is the supported build today; byte-identical N64 ROM rebuilding is still in progress.
  • A native port — a platform layer (src/platform/) that runs the same game code on PC/macOS: it loads your ROM at runtime, translates the N64 display lists to a modern GPU, and provides audio, input, and file I/O. No copyrighted data is compiled into the binary ("bring your own ROM").

Status

Experimental. This is a research/preservation project, not a polished consumer release, and it is not a 1:1 replacement for original hardware.

  • ✅ The decompilation covers the bulk of the game's systems (rendering, AI, combat, level logic, menus, audio).
  • The native port builds and runs from a clean checkout + your own ROM (cmake -B build && cmake --build build), with native rendering, audio, and keyboard/mouse + gamepad input.
  • Asset-free: no ROM media is compiled into the binary — textures, audio, animation, fonts, and logos are read from your ROM at runtime.
  • 🚧 Rebuilding the original N64 ROM (byte-matching), SDK provenance cleanup, and renderer/audio parity are the main open areas. See docs/STATUS.md and ROADMAP.md for the precise state and good first issues.
  • ⚠️ The tree still contains inventoried N64 SDK/libultra compatibility material that is not MIT-licensed first-party code. See THIRD_PARTY.md before describing or redistributing the project.

There are known graphical and gameplay issues and occasional instability. Bug reports and PRs are very welcome.

Building

Full instructions — toolchain, dependencies, native-port setup, and the matching-target asset-extraction path — are in docs/BUILDING.md. In brief:

  1. Install the build dependencies for your platform (see the build doc).
  2. Build the native port with CMake; the public checkout compiles without ROM media or extracted assets.
  3. Run the port with a ROM you legally own using --rom /path/to/rom.z64, or place it at the repository root for auto-detection.
  4. Matching-target contributors can use the asset-extraction and Makefile path described in the build docs.
# Native port (PC/macOS):
cmake -B build -DCMAKE_BUILD_TYPE=Release
cmake --build build -j

Running

You must already own and supply the ROM — the port reads it at runtime; no game data is bundled. The default command boots normally into the game frontend:

./build/ge007 --rom "/path/to/baserom.u.z64"

Common startup examples:

# Boot normally with an explicit ROM path:
./build/ge007 --rom "/path/to/baserom.u.z64"

# Direct-boot a solo stage by name:
./build/ge007 --rom "/path/to/baserom.u.z64" --level dam

# Direct-boot mission 2 on Secret Agent:
./build/ge007 --rom "/path/to/baserom.u.z64" --mission 2 --difficulty secret

# Direct-boot by raw internal LEVELID, useful for validation:
./build/ge007 --rom "/path/to/baserom.u.z64" --level 33

# Keep saves/config in a dedicated directory:
./build/ge007 --rom "/path/to/baserom.u.z64" --savedir "$HOME/.mgb64"

If you don't pass --rom, the port auto-detects a compatible ROM in the working directory and common locations (~/Downloads, ~/Documents, ~/Desktop, ~) by size, N64 header, and internal cartridge name.

Useful runtime options:

Option Purpose
--rom PATH Load the ROM from PATH. A positional ROM path also works.
--level NAME Direct-boot a supported solo stage by slug, for example dam, facility, runway, surface1, bunker1, or egypt.
--level N Direct-boot a raw internal LEVELID. Example: 33 is Dam. These numbers are not mission-order numbers.
--mission N Direct-boot solo mission order 1 through 20. Use this when you mean "mission 2", "mission 3", etc.
--difficulty VALUE Select the direct-boot difficulty. Values: agent, secret, 00, 007, or numeric 0 through 3. Defaults to Agent.
--savedir PATH Store ge007.ini and save data in PATH. Without this, the port uses the current directory when writable, then falls back to a per-user directory.
--no-input-grab Do not capture the mouse. Useful while testing windowed startup.
--background Run without grabbing input and with background-friendly settings. Useful for smoke tests.

If you pass no direct-boot option, the game starts normally. --level accepts stage slugs or raw internal LEVELID values; --mission accepts campaign order. For example, use --mission 2 or --level facility for mission 2, not --level 2. See docs/BUILDING.md for more platform setup detail.

Controls (default)

Action Keyboard & mouse Gamepad
Move W A S D Left stick
Look Mouse Right stick
Fire Left click RT
Aim (hold) Right click LT
Cycle weapon Mouse wheel Y (next) / Back (prev)
Reload R
Interact F
Crouch (toggle) C / LCtrl L3
Lean L/R (in aim mode) Q / E
Watch menu Tab
Pause Esc
Mute audio M
Show controls H

Mouse sensitivity, fullscreen, and window size are configurable in ge007.ini (written next to the executable on first run). Pressing H also prints the full control list to the console.

Known limitations

This is an experimental, work-in-progress port — not a 1:1 replacement for original hardware. It runs the game's decompiled code natively; it is not an emulator and is not cycle-exact. Rendering and audio use some documented compatibility approximations, and a few areas are still converging toward exact N64 behavior. PORT.md has the full, honest breakdown: what is and isn't faithful, the known divergences, and the validation coverage. Please read it before filing parity bugs.

Repository layout

Path Contents
src/ Decompiled game code (src/game/), libultra, and the native port layer (src/platform/)
include/ Shared headers
assets/ Asset build glue only (extraction config, linker scripts, .incbin wrappers). Extracted ROM data lands here at build time and is git-ignored.
tools/ Build/extraction tooling (extractor, texture conversion, checksum, asm-processor, …)
scripts/ Extraction and build helper scripts
macos/ Native macOS app shell sources (Swift/AppKit), local unsigned .app packaging, and signing/notarization scripts — see macos/README.md
ld/, *.ld Linker scripts
docs/ Build, status, and design documentation

Contributing

Contributions are welcome — see CONTRIBUTING.md for the workflow, coding style, and the one rule that matters most: never commit ROMs or any ROM-derived assets. Project conduct is covered in CODE_OF_CONDUCT.md, and vulnerability / repository hygiene reports are covered in SECURITY.md.

Acknowledgements

This project builds directly on the n64decomp/007 decompilation, which we started from and continue to work off of. Our thanks to its authors and contributors for the foundational reverse-engineering effort that this port extends.

It also stands on the shoulders of the wider N64 decompilation community. Thanks to the SM64, Ocarina of Time, and Perfect Dark decomp/port projects for the tooling, conventions, and trail-blazing that make work like this possible, and to the authors of asm-processor and the other bundled or locally referenced tools.

License & legal

First-party code in this repository (the port layer, build system, tooling, and documentation) is released under the MIT License. The MIT license does not grant any rights in the original game. See NOTICE.md for the short license/provenance summary.

The decompiled game code is a transformative work provided for research, preservation, and educational purposes. No copyrighted ROM or assets are distributed. All trademarks are the property of their respective owners, and this project is not affiliated with or endorsed by any rights holder. Please read DISCLAIMER.md in full before using this project.

Third-party components (including N64 SDK compatibility headers/source, bundled tools/libraries, and local-only matching-target tool placeholders) and their provenance are inventoried in THIRD_PARTY.md.

Maintainer release hygiene checks are documented in docs/RELEASE_CHECKLIST.md.