https://github.com/lambertjamesd/portal64 Skip to content Toggle navigation Sign up * Product + Actions Automate any workflow + Packages Host and manage packages + Security Find and fix vulnerabilities + Codespaces Instant dev environments + Copilot Write better code with AI + Code review Manage code changes + Issues Plan and track work + Discussions Collaborate outside of code Explore + All features + Documentation + GitHub Skills + Blog * Solutions For + Enterprise + Teams + Startups + Education By Solution + CI/CD & Automation + DevOps + DevSecOps Resources + Customer Stories + White papers, Ebooks, Webinars + Partners * Open Source + GitHub Sponsors Fund open source developers + The ReadME Project GitHub community articles Repositories + Topics + Trending + Collections * Pricing Search or jump to... Search code, repositories, users, issues, pull requests... Search [ ] Clear Search syntax tips Provide feedback We read every piece of feedback, and take your input very seriously. [ ] [ ] Include my email address so I can be contacted Cancel Submit feedback Saved searches Use saved searches to filter your results more quickly Name [ ] Query [ ] To see all available qualifiers, see our documentation. Cancel Create saved search Sign in Sign up You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert {{ message }} lambertjamesd / portal64 Public * Notifications * Fork 26 * Star 1.8k A demake of Portal for the Nintendo 64 License MIT license 1.8k stars 26 forks Activity Star Notifications * Code * Issues 18 * Pull requests 4 * Actions * Projects 0 * Security * Insights More * Code * Issues * Pull requests * Actions * Projects * Security * Insights lambertjamesd/portal64 This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository. master Switch branches/tags [ ] Branches Tags Could not load branches Nothing to show {{ refName }} default View all branches Could not load tags Nothing to show {{ refName }} default View all tags Name already in use A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch? Cancel Create 1 branch 13 tags Code * Local * Codespaces * Clone HTTPS GitHub CLI [https://github.com/l] Use Git or checkout with SVN using the web URL. [gh repo clone lamber] Work fast with our official CLI. Learn more about the CLI. * Open with GitHub Desktop * Download ZIP Sign In Required Please sign in to use Codespaces. Launching GitHub Desktop If nothing happens, download GitHub Desktop and try again. Launching GitHub Desktop If nothing happens, download GitHub Desktop and try again. Launching Xcode If nothing happens, download Xcode and try again. Launching Visual Studio Code Your codespace will open once ready. There was a problem preparing your codespace, please try again. Latest commit @lambertjamesd lambertjamesd Only allow cubes that have started sleeping to activate triggers ... daae636 Sep 4, 2023 Only allow cubes that have started sleeping to activate triggers daae636 Git stats * 709 commits Files Permalink Failed to load latest commit information. Type Name Latest commit message Commit time .github/ISSUE_TEMPLATE Update bug_report.md April 29, 2023 11:13 asm Set save type to SRAM for later ev models May 3, 2023 21:22 assets Create material for indicator_lights September 3, 2023 22:15 documentation Document how to use the debugger with the evedrive March 23, 2023 22:44 skelatool64 Generate cutscene yaml and operators yaml September 2, 2023 17:59 src Only allow cubes that have started sleeping to activate triggers September 4, 2023 10:42 tools Implement test chamber 05 failsafe September 3, 2023 15:13 vpk fix: Closed code block August 29, 2022 12:51 .dockerignore Update docker image September 2, 2023 08:52 .editorconfig Start work on font rendering April 20, 2023 08:32 .gitignore added an exception to the gitignore for the cimg zip that gits downlo... February 28, 2023 20:38 CONTRIBUTING.md Adding a CONTRIBUTING.md to the project April 2, 2023 14:23 Dockerfile Update docker image September 2, 2023 08:52 LICENSE Adding a License April 2, 2023 13:58 Makefile Fix some trigger related bugs September 4, 2023 10:22 Makefile.docker Update docker image September 2, 2023 08:52 README.md Generate cutscene yaml and operators yaml September 2, 2023 17:59 portal.ld Start work on dynamic loading of models July 14, 2023 23:10 View code Portal64 How to build Build with Docker Current New Feature TODO List Current New Sounds TODO List Current Bug TODO List (Hardware Verified) (High->Low priority) README.md Portal64 [portal64_r] A demake of Portal for the Nintendo 64. How to build First, you will need to setup Modern SDK. After installing modern sdk you will want to also install sudo apt install libnustd Next, you will need to download Blender 3.0 or higher. Then set the environment variable BLENDER_3_0 to be the absolute path where the Blender executable is located on your system. sudo apt install blender e.g. add this to your ~/.bashrc export BLENDER_3_0="/usr/bin/blender" You will need to install Python vpk. pip install vpk Install vtf2png, sfz2n64, and setup skeletool64. echo "deb [trusted=yes] https://lambertjamesd.github.io/apt/ ./" \ | sudo tee /etc/apt/sources.list.d/lambertjamesd.list sudo apt update sudo apt install vtf2png sfz2n64 mpg123 sox imagemagick unzip Install lua5.4 (remove other perhaps installed versions first, skelatool64 needs to be build with luac 5.4!) sudo apt install lua5.4 liblua5.4-dev liblua5.4-0 Setup and build skelatool64 (the version included in this portal64 repo!) cd skelatool64 ./setup_dependencies.sh make You will need to install nodejs. You can use apt for this sudo apt install nodejs You then need to add the following files from where Portal is installed to the folder vpk. (see vpk/add_vpk_here.md for more details!) portal/portal_pak_000.vpk portal/portal_pak_001.vpk portal/portal_pak_002.vpk portal/portal_pak_003.vpk portal/portal_pak_004.vpk portal/portal_pak_005.vpk portal/portal_pak_dir.vpk hl2/hl2_sound_misc_000.vpk hl2/hl2_sound_misc_001.vpk hl2/hl2_sound_misc_002.vpk hl2/hl2_sound_misc_dir.vpk Finally, run make to build the project. # Clean out any previous build files make clean # Build make # In case you have any trouble with ROM running on hardware try # wine install required to run properly sudo apt install wine make fix Build with Docker Using the docker image the only setup step you need is to populating the vpk folder. After that you can build the docker image using Build the Docker image. make -f Makefile.docker image Then build the rom using make -f Makefile.docker That will generate the rom at /build/portal64.z64 Current New Feature TODO List * [ ] rumble pak support? * [ ] Change default controls * [ ] Add puzzle element connections and additional signs * [ ] Use a much nearer clipping plane when rendering the portal gun * [ ] Investigate crash after falling into death water on test chamber 8 * [ ] Add particle effects (shooting portal gun, energy pellet) * [ ] Add auto save checkpoints * [ ] Correct elevator timing * [ ] Adding loading notice between levels #45 * [ ] ball velocity in test chamber 11 * [ ] test chamber 04 has seams in a corner * [ ] pausing while glados is speaking can end her speech early * [*] don't count boxes on buttons until it is released and stable * [*] Portal not rendering recursively sometimes #138 * [*] disable portal surfaces manually on some surfaces #135 * [*] test chamber 02 needs more light in the first room * [*] Presort portal gun polygon order #102 Current New Sounds TODO List * [ ] Box collision sounds * [ ] Unstationary scaffolding moving sound * [ ] Ambient background loop Current Bug TODO List (Hardware Verified) (High->Low priority) ----------------------- v8 * [ ] player can clip through back of elevator by jumping and strafeing at the back corners while inside. * [ ] Player can trap themselves in chamber 5 by following instructions issue #75 * [ ] Two wall portals next to eachother can be used to clip any object out of any level by pushing it into corner, then dropping. * [ ] Passing into a ceiling portal can sometimes mess with the player rotation * [ ] various visual glitches when running NTSC on PAL console #65 * [ ] various visual glitches when running PAL on NTSC console #65 * [*] Can shoot portals, and walk through signage * [*] Can place portals on ground after final fizzler on all levels About A demake of Portal for the Nintendo 64 Topics game gamedev games game-development portal valve aperture n64 portal-game nintendo-64 demake video-game-development n64-development portal1 n64-dev n64-controller portal-1 Resources Readme License MIT license Activity Stars 1.8k stars Watchers 55 watching Forks 26 forks Report repository Releases 13 v0.11.0 Latest Aug 24, 2023 + 12 releases Packages 0 No packages published Contributors 7 * @lambertjamesd * @westonCoder * @hackgrid * @optixx * @kernel-dev * @heyitsbench * @2xAA Languages * C 58.4% * C++ 25.2% * Lua 6.3% * HTML 4.4% * Python 2.7% * Makefile 1.3% * Other 1.7% Footer (c) 2023 GitHub, Inc. Footer navigation * Terms * Privacy * Security * Status * Docs * Contact GitHub * Pricing * API * Training * Blog * About You can't perform that action at this time.