2024-01-11 22:03:30 -05:00
# Portal64: Still Alive
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.
2024-01-11 22:03:30 -05:00
Originally created by [James Lambert ](https://github.com/lambertjamesd ).
2023-10-18 12:50:12 -04:00
2024-01-11 22:03:30 -05:00
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 ](https://github.com/mwpenny/portal64/tree/original ) branch contains the version history of the original repository. Active development occurs in the [master ](https://github.com/mwpenny/portal64/tree/master ) branch.
2023-10-18 12:50:12 -04:00
2024-01-11 22:03:30 -05:00
The main goals of this fork are:
1. Remove proprietary code requirement (see [n64_libraries.md ](./documentation/n64_libraries.md ))
2. Finish development of the game
2023-10-18 12:50:12 -04:00
2024-01-11 22:03:30 -05:00
We do what we must because we can.
2023-12-29 15:54:24 -05:00
2024-01-11 22:03:30 -05:00
![](./assets/images/readme_slideshow.gif)
2023-12-29 15:54:24 -05:00
2024-01-11 22:03:30 -05:00
## Disclaimer
2023-12-29 15:54:24 -05:00
2024-01-11 22:03:30 -05:00
This project is not affiliated with Nintendo or Valve.
2022-04-07 23:41:58 -04:00
2024-01-11 22:03:30 -05:00
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.
2023-09-05 15:07:24 -04:00
2024-01-11 22:03:30 -05:00
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.
2023-11-16 17:36:04 -05:00
2024-01-11 22:03:30 -05:00
## Overview
2023-11-16 17:36:04 -05:00
2024-01-11 22:03:30 -05:00
This project aims to reproduce Valve's original Portal, playable on the N64.
2023-11-16 17:36:04 -05:00
2024-01-11 22:03:30 -05:00
Because this demake has been in development for some time, 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
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
2024-01-11 22:03:30 -05:00
git clone https://github.com/mwpenny/portal64-still-alive.git portal64
2023-12-03 14:54:05 -05:00
cd portal64
```
2023-12-19 13:00:05 -05:00
2024-01-11 22:03:30 -05:00
### Setup and install dependencies
2023-12-21 18:02:55 -05:00
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
2024-01-11 22:03:30 -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. See [vpk/add_vpk_here.md ](./vpk/add_vpk_here.md ) for more details! Symlinks do not work for Docker builds.
2023-10-20 05:56:31 -04:00
2024-01-11 22:03:30 -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 / >
2024-01-11 22:03:30 -05:00
## Original 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
2024-01-11 22:03:30 -05:00
## Original New Sounds TODO List
2023-03-22 21:16:43 -04:00
- [ ] 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
2024-01-11 22:03:30 -05:00
## Original 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.