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-11-16 18:25:31 -05:00
[![How I optimized Portal to run on the Nintendo 64 ](https://img.youtube.com/vi/r4KGm7ixcqI/0.jpg )](https://www.youtube.com/watch?v=r4KGm7ixcqI)
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.
[Releases ](https://github.com/lambertjamesd/portal64/releases ) of this game are fully playable N64 ROM's that can either be played through an emulator or on a physical N64 game cartridge.
Please follow specific release instructions to get ROM running on your target hardware.
Because this demake has been in development for many years, it has made significant progress in both gameplay systems and fidelity including:
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.