Portal64/README.md

160 lines
4.1 KiB
Markdown
Raw Normal View History

2022-03-05 16:49:34 -05:00
# Portal64
![](./assets/images/portal64_readme_logo.gif)
2022-02-27 18:41:51 -05:00
2022-11-29 00:28:49 -05:00
A demake of Portal for the Nintendo 64.
2022-04-07 23:41:58 -04:00
## How to build
2022-11-29 00:16:13 -05:00
First, you will need to setup [Modern SDK](https://crashoveride95.github.io/n64hbrew/modernsdk/startoff.html).
2022-04-07 23:41:58 -04:00
2023-03-04 00:10:50 -05:00
After installing modern sdk you will want to also install
```sh
2023-03-04 00:10:50 -05:00
sudo apt install libnustd
```
2022-11-29 00:16:13 -05:00
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.
2022-04-07 23:41:58 -04:00
```sh
2023-04-19 17:18:12 -04:00
sudo apt install blender
```
e.g. add this to your ~/.bashrc
```bash
2023-04-19 17:18:12 -04:00
export BLENDER_3_0="/usr/bin/blender"
```
<br />
2022-04-30 23:51:08 -04:00
2022-11-29 00:16:13 -05:00
You will need to install Python `vpk`.
```sh
2022-04-30 23:51:08 -04:00
pip install vpk
```
<br />
2023-03-04 00:10:50 -05:00
Install `vtf2png`, `sfz2n64`, and setup `skeletool64`.
```sh
echo "deb [trusted=yes] https://lambertjamesd.github.io/apt/ ./" \
2023-03-04 00:10:50 -05:00
| sudo tee /etc/apt/sources.list.d/lambertjamesd.list
sudo apt update
sudo apt install vtf2png sfz2n64 mpg123 sox imagemagick unzip
2023-03-04 00:10:50 -05:00
```
<br />
2023-04-19 17:18:12 -04:00
Install lua5.4 (remove other perhaps installed versions first, skelatool64 needs to be build with luac 5.4!)
```sh
2023-04-19 17:18:12 -04:00
sudo apt install lua5.4 liblua5.4-dev liblua5.4-0
```
<br />
Setup and build skelatool64 (the version included in this portal64 repo!)
```sh
2023-03-04 00:10:50 -05:00
cd skelatool64
./setup_dependencies.sh
make
```
2022-04-30 23:51:08 -04:00
<br />
2022-04-30 23:51:08 -04:00
2023-03-04 00:10:50 -05:00
You will need to install nodejs. You can use apt for this
```sh
2023-03-04 00:10:50 -05:00
sudo apt install nodejs
```
<br />
2023-04-19 17:18:12 -04:00
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!)
```
2023-04-19 17:18:12 -04:00
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
2022-04-30 23:51:08 -04:00
```
2022-11-29 00:28:49 -05:00
Finally, run `make` to build the project.
```sh
# 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
```
<br />
## Build with Docker
2023-09-02 10:52:31 -04:00
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
2022-11-29 00:16:13 -05:00
Build the Docker image.
```sh
2023-09-02 10:52:31 -04:00
make -f Makefile.docker image
```
<br />
2023-09-02 10:52:31 -04:00
Then build the rom using
```sh
2023-05-16 14:48:36 -04:00
make -f Makefile.docker
```
2023-09-02 10:52:31 -04:00
That will generate the rom at `/build/portal64.z64`
<br />
## 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)
2023-05-12 22:13:19 -04:00
- [ ] Add auto save checkpoints
- [ ] Correct elevator timing
- [ ] Adding loading notice between levels #45
2023-07-08 22:04:45 -04:00
- [ ] ball velocity in test chamber 11
2023-08-06 21:44:25 -04:00
- [ ] test chamber 04 has seams in a corner
2023-07-11 10:18:03 -04:00
- [ ] pausing while glados is speaking can end her speech early
- [x] don't count boxes on buttons until it is released and stable
- [x] Portal not rendering recursively sometimes #138
2023-08-25 00:12:40 -04:00
- [x] disable portal surfaces manually on some surfaces #135
- [x] test chamber 02 needs more light in the first room
2023-08-21 22:47:14 -04:00
- [x] 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
2023-08-25 00:12:40 -04:00
- [x] Can shoot portals, and walk through signage
- [x] Can place portals on ground after final fizzler on all levels