2022-03-05 16:49:34 -05:00
# Portal64
2023-03-27 15:35:30 -04:00
![](./assets/images/portal64_readme_logo.gif)
2022-02-27 18:41:51 -05:00
2023-10-18 12:50:12 -04:00
A demake *(remake for an older platform)* of Portal for the Nintendo 64.
![](./assets/images/readme_slideshow.gif)
Latest current progress video on Youtube:
2023-12-29 15:54:24 -05:00
[![Portal 64: First Slice, is out of beta ](https://img.youtube.com/vi/sb3nHlsBBpg/0.jpg )](https://youtu.be/sb3nHlsBBpg)
## Download
You can download the ROM here if you own a copy of Portal for PC
[Rom Patcher ](https://lambertjamesd.github.io/RomPatcher.js/index.html )
2022-04-07 23:41:58 -04:00
2023-09-05 15:07:24 -04:00
## Overview
2023-11-16 17:36:04 -05:00
This project aims to reproduce Valve's original Portal, playable on the N64.
2023-12-23 22:09:13 -05:00
[Releases ](https://github.com/lambertjamesd/portal64/releases ) of this game are released in the form of a .bps patch, and produce a fully playable N64 ROM that can either be played through an emulator or on a physical N64 game cartridge.
2023-11-16 17:36:04 -05:00
2023-12-23 22:09:13 -05:00
Please follow specific release instructions to get the ROM running on your target hardware.
2023-11-16 17:36:04 -05:00
2023-12-23 22:00:16 -05:00
Because this demake has been in development for over a year, it has made significant progress in both gameplay systems and fidelity including:
2023-11-16 17:36:04 -05:00
2023-09-05 15:07:24 -04:00
- Twelve+ test chambers completed
- Fully functioning portals, and gun
- Fully functioning physics engine
- Lighting system
- Main/pause menus
- Sound effects/dialogue
- Cutscenes
2023-10-18 12:57:19 -04:00
- Multi-language subtitles and audio dialogue
2023-10-25 09:48:28 -04:00
- Eye-Candy (Reflections, ...)
2023-09-05 15:07:24 -04:00
- Much more!
2023-12-21 18:02:55 -05:00
This is a community driven project that welcomes any and all game testers and or [Contributors ](./documentation/contributing.md ).
2023-09-05 15:07:24 -04:00
2023-11-27 02:09:33 -05:00
Updates are constantly being made to the game, so we recommend checking out the author's [YouTube Channel ](https://www.youtube.com/@james.lambert ) for the latest updates.
2023-09-05 15:07:24 -04:00
2022-04-07 23:41:58 -04:00
## How to build
2023-12-03 14:54:05 -05:00
Clone the Portal64 repo or download the zip.
```sh
2023-12-19 13:08:20 -05:00
sudo apt install git -y
2023-12-03 14:54:05 -05:00
git clone https://github.com/lambertjamesd/portal64.git
cd portal64
```
2023-12-19 13:00:05 -05:00
2023-12-21 18:02:55 -05:00
## Setup and install dependencies.
2023-12-19 12:33:19 -05:00
The following commands allow the scripts to run on the system, then it runs the setup.
2022-06-18 20:33:32 -04:00
2023-12-21 18:02:55 -05:00
As always it is good practice look over scripts from the internet before running them on your system.
2022-04-30 23:51:08 -04:00
2023-12-21 18:02:55 -05:00
```sh
2023-12-19 12:33:19 -05:00
sudo chmod +x skelatool64/setup_dependencies.sh
sudo chmod +x tools/romfix64.sh
2023-12-21 18:02:55 -05:00
sudo chmod +x tools/setup.sh
./tools/setup.sh
2022-05-17 00:22:46 -04:00
```
2023-12-19 12:50:50 -05:00
2023-12-21 18:02:55 -05:00
Alternative setup methods include [Docker setup ](./documentation/docker_setup.md ) and [Manual setup ](./documentation/manual_setup.md ).
2023-12-19 12:50:50 -05:00
2023-12-21 18:02:55 -05:00
Whatever setup you choose, you will still need to add the Portal folder to portal64/`vpk/` OR create a symbolic link to the Portal folder.
2023-12-19 12:50:50 -05:00
2023-12-21 18:02:55 -05:00
(see [vpk/add_vpk_here.md ](./vpk/add_vpk_here.md ) for more details!). Symlink does not work for Docker builds.
2022-05-17 00:22:46 -04:00
2023-10-20 05:56:31 -04:00
2023-12-21 18:02:55 -05:00
## Build Rom.
2022-04-30 23:51:08 -04:00
2022-11-29 00:28:49 -05:00
Finally, run `make` to build the project.
2023-10-20 05:56:31 -04:00
2023-05-06 19:37:00 -04:00
```sh
2023-10-15 08:16:40 -04:00
# Build (default build with english audio)
2023-05-06 19:37:00 -04:00
make
2022-05-17 22:45:40 -04:00
```
2022-06-18 20:30:03 -04:00
2023-12-21 18:02:55 -05:00
If you have issues use `make clean` to clean out any previous build files, remember it also removes any languages you set up so you will need to run those commands again.
2023-10-20 05:56:31 -04:00
2022-06-18 20:33:32 -04:00
```sh
2023-12-21 18:02:55 -05:00
# Clean out any previous build files
make clean
2023-11-28 04:56:26 -05:00
```
2022-06-18 20:30:03 -04:00
< br / >
2023-03-22 21:16:43 -04:00
## Current New Feature TODO List
2023-11-02 21:03:51 -04:00
- [ ] check if display list is long enough
2023-07-11 10:18:03 -04:00
- [ ] pausing while glados is speaking can end her speech early
2023-12-01 22:55:00 -05:00
- [x] test chamber 10 without jumping
2023-11-28 22:54:06 -05:00
- [x] check collider flags when filtering contacts
2023-11-28 22:50:23 -05:00
- [x] gun flicker between levels
- [x] fizzler player sound effect
2023-11-28 20:38:52 -05:00
- [x] clear z buffer instead of partitioning it
- [X] add translations to menus
2023-11-02 20:13:55 -04:00
- [x] jump animation
- [x] optimize static culling
2023-11-02 20:22:41 -04:00
- [x] figure out why portals sometimes are in front of window
2023-10-25 00:29:44 -04:00
- [x] portal hole cutting problems
2023-10-24 23:29:25 -04:00
- [x] crashed when dying in test chamber 05 when hit by pellet in mid air while touching a portal
- [x] rumble pak support
2023-10-21 23:35:50 -04:00
- [x] valve intro
2023-10-15 23:24:14 -04:00
- [x] polish up subtitles
- [x] more sound settings
2023-10-14 23:25:22 -04:00
- [x] add desk chairs and monitors
2023-10-09 23:13:51 -04:00
- [x] Add auto save checkpoints
- [x] Correct elevator timing
2023-03-22 21:16:43 -04:00
## Current New Sounds TODO List
- [ ] Box collision sounds
2023-10-25 15:20:57 -04:00
- [x] Ambient background loop
2023-10-09 23:13:51 -04:00
- [x] Unstationary scaffolding moving sound
2023-03-22 21:16:43 -04:00
## Current Bug TODO List (Hardware Verified) (High->Low priority)
2023-04-13 08:44:01 -04:00
----------------------- v8
2023-03-22 21:16:43 -04:00
- [ ] Two wall portals next to eachother can be used to clip any object out of any level by pushing it into corner, then dropping.
2023-12-01 23:21:09 -05:00
- [x] Passing into a ceiling portal can sometimes mess with the player rotation
2023-10-09 23:13:51 -04:00
- [x] player can clip through back of elevator by jumping and strafeing at the back corners while inside.