Skip to content
 
 

Latest commit

 

History

1,180 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Star Fox 64 PSP

CI

A work-in-progress port of Star Fox 64 to PSP, based on the SF64 decomp project.

This port has a few key goals:

  • Reference quality codebase
  • GPU acceleration with two renderers - PSPGL first, followed by native sceGu
  • Optional Media Engine audio
  • Experimental implementation of Virtual Mobile Engine (VME)

Contributions are welcome! This is an educational project that welcomes other contributors and aims to be a high quality port that can serve other PSP developers well in the long term.

If you'd like to contribute, aim for good native code as much as possible, and don't be afraid to collaborate or ask for help! We'd love to work together to make this port a benchmark for the PSP scene.

You can find us on the PSP Homebrew Community on Discord for real-time updates and collaboration!

Special thanks:

  • z2442: N64 porting assistance
  • sonicdcer: Original decompilation & guidance
  • Falco Girgis: Guidance based on sf64-dc
  • jnmartin84: sf64-dc, used as reference and initial ultra_reimpl.c
  • DaedalusX64: VFPU implementations and architectural guidance

Note

Codex has been used as a development aid.

The original README continues below. Follow the build instructions and compile with make psp.

Discord Invitation

Starfox 64 (US) REV 1.1

This is a WIP matching decompilation of Starfox 64. The purpose of the project is to recreate a source code base for the game from scratch, using information found inside the game along with static and/or dynamic analysis.

Note: This is NOT a PC PORT.

It currently builds the following ROM:

  • starfox64.us.rev1.z64 MD5: 741a94eee093c4c8684e66b89f8685e8

This repo does not include any assets or assembly code necessary for compiling the ROM. A prior copy of the game is required to extract the required assets.

Installation

1. Install build dependencies

Windows

For Windows 10, install WSL and a distribution by following this Windows Subsystem for Linux Installation Guide. We recommend using Debian or Ubuntu 24.04 Linux distributions.

Linux (Native or under WSL / VM)

The build process has the following package requirements:

  • make
  • git
  • build-essential
  • binutils-mips-linux-gnu
  • python3
  • pip3
  • libpng-dev

Under Debian / Ubuntu (which we recommend using), you can install them with the following commands:

sudo apt update
sudo apt install make cmake git build-essential binutils-mips-linux-gnu python3 python3-pip clang-format-14 clang-tidy clang-tools

MacOS

Install Homebrew and the following dependencies:

brew update
brew install coreutils make pkg-config tehzz/n64-dev/mips64-elf-binutils

2. Clone the repository

Create your own fork of the repository at https://github.com/sonicdcer/sf64. Then clone your fork where you wish to have the project, with the command:

git clone https://github.com/<YOUR_USERNAME>/sf64.git

This will copy the GitHub repository contents into a new folder in the current directory called sf64. Change into this directory before doing anything else:

cd sf64

3. Install python dependencies

The build process has a few python packages required that are located in /tools/requirements-python.txt.

To install them simply run in a terminal:

python3 -m pip install -r ./tools/requirements-python.txt
  • Depending on your python version, you might need to add --break-system-packages, or use venv.

4. Update submodules & build toolchain

git submodule update --init --recursive
make toolchain

5. Prepare a base ROM

Copy your ROM to the root of this new project directory, and rename the file of the baserom to reflect the version of ROM you are using. ex: baserom.us.rev1.z64

  • Make sure the ROM is the US version, revision 1.1 (REV A).

6. Make and Build the ROM

To start the extraction/build process, run the following command:

make init

This will create the build folders, a new folder with the assembly as well as containing the disassembly of nearly all the files containing code.

this make target will also build the ROM. If all goes well, a new ROM called "starfox64.us.rev1.z64" should be built and the following text should be printed:

741a94eee093c4c8684e66b89f8685e8  build/starfox64.us.rev1.z64
./build/starfox64.us.rev1.z64: OK

If you instead see the following:

./build/starfox64.us.rev1.z64: FAILED
md5sum: WARNING: 1 computed checksum did NOT match

This means that something is wrong with the ROM's contents. Either the base files are incorrect due to a bad ROM, or some of the code is not matching.

From now on you should be able to build the rom by running make.

About

Port of Star Fox 64 to PSP based on the decompilation.

Topics

Resources

Stars

9 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages