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`.
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: