A demake of Portal for the Nintendo 64
  • C 63.5%
  • C++ 18.1%
  • Lua 5.8%
  • CMake 4.6%
  • HTML 3.1%
  • Other 4.7%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2026-07-23 00:06:02 -04:00
.github/ISSUE_TEMPLATE Update bug_report.md 2023-11-24 19:11:32 -06:00
asm Remove src/defs.h and unused src/scene/static_scene.{c,h} 2026-02-17 21:33:59 -05:00
assets Fix door scale 2026-07-23 00:06:02 -04:00
cmake Fail build if not targeting N64 (#143) 2026-05-12 18:24:43 -04:00
documentation Add chamber 17 Rattmann den decor 2026-06-26 00:59:57 -04:00
linker Pad ROM to 512 byte boundary 2025-01-17 00:47:06 -05:00
skeletool64 Pre-swap image texels 2026-07-16 21:49:48 -04:00
src Make switch sounds spatial and increase audible range 2026-07-22 23:41:39 -04:00
tools Work on incinerator model and animation 2026-07-10 01:06:53 -04:00
vpk Add hl2_sound_misc_003.vpk to minimum required VPK list (#141) 2026-01-05 11:38:55 -05:00
.dockerignore Clean up skeletool CMake integration, and use consistent naming 2024-10-21 23:29:43 -04:00
.gitattributes Support building from source code archive (#85) 2024-08-26 16:36:12 -04:00
.gitignore Clean up controller and rumble pak abstraction 2026-01-13 01:31:25 -05:00
CMakeLists.txt Fail build if not targeting N64 (#143) 2026-05-12 18:24:43 -04:00
Dockerfile Update Dockerfile - LegacyKeyValueFormat Build Check 2025-02-20 09:38:20 -06:00
LICENSE Clean up top-level documentation 2026-02-27 01:23:48 -05:00
README.md Fix some small typos 2026-03-10 00:56:31 -04:00
version.txt Support building from source code archive (#85) 2024-08-26 16:36:12 -04:00

Portal 64: Still Alive

A demake (remake for an older platform) of Portal for the Nintendo 64. Originally created by James Lambert.

The original repository was taken down by James at Valve's request, due to the build requirement on Nintendo's proprietary libultra and its consequent inclusion in ROM files.

The original branch contains the version history of the original repository. Active development occurs in the master branch.

The main goals of this fork are:

  1. Remove proprietary code requirement (see N64 Libraries)
  2. Finish development of the game (see Development Progress)

We do what we must because we can.

Disclaimer

This project is not affiliated with Nintendo or Valve.

This repository contains no material owned by Nintendo. However, Nintendo's tools are currently required to build the game. No form of compiled ROM will be distributed while this dependency is required since the built game would contain Nintendo's intellectual property. One goal of this project is to remove the requirement on proprietary code.

Game assets from Portal are sourced from the original game's files, which must be supplied separately at build time. In other words, this repository cannot be used to compile the game without legally owning Portal and providing its files. Legal ownership of Portal will be required regardless of tool or library changes. You can buy the game here.

Overview

This project aims to reproduce Valve's original Portal, playable on the N64.

Because this demake has been in development for some time, it has made significant progress in both gameplay systems and fidelity including:

  • Seventeen test chambers completed
  • Fully functioning portals, and gun
  • Fully functioning physics engine
  • Lighting system
  • Main/pause menus
  • Sound effects/dialogue
  • Cutscenes
  • Multi-language subtitles and audio dialogue
  • Eye candy (reflections, ...)
  • Much more!

This is a community driven project that welcomes any and all game testers and or contributors.

How to Build

Get the Code

First, clone the repository or download a source code archive.

git clone https://github.com/mwpenny/portal64-still-alive.git portal64

Provide Game Files

You must provide your own legally obtained Portal game files so the game assets can be extracted and used. Follow the instructions at vpk/README.md.

Install Dependencies

Next, install the dependencies. There are two supported ways to do this:

  • Use Docker. This is recommended if you don't want to make system-wide changes or are unfamiliar with Linux.
  • Install natively. This is also applicable if using a virtual machine or Windows Subsystem for Linux (WSL).

Build the Game

With everything set up, follow the instructions at Building the Game.

To run and save properly, the game expects a cartridge with 32 KB of SRAM.