This is a WIP **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.
**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
### Windows
For Windows 10, install WSL and a distribution by following this
[Windows Subsystem for Linux Installation Guide](https://docs.microsoft.com/en-us/windows/wsl/install-win10).
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:
```bash
sudo apt update
sudo apt install make git build-essential binutils-mips-linux-gnu python3 python3-pip libpng-dev
```
#### 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:
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:
```bash
cd sf64
```
#### 3. Install python dependencies
The build process has a few python packages required that are located in `requirements.txt`.
To install them simply run in a terminal:
```bash
python3 -m pip install -r requirements.txt
```
#### 4. Prepare a base ROM
Copy your ROM to inside 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.z64`
#### 5. Make and Build the ROM
To start the extraction/build process, run the following command:
```bash
make init
```
This will create the build folders as well as a new folder with the assembly as well as containing the disassemblies 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.z64" should be built and the following text should be printed: