Alejandro Asenjo Nitti cc970381c8 fox_hud & fox_me Decompiled (#95)
* func_80092D48

* func_800927A0

* TempComp.bin.mio0 git ignored

* func_800924E0

* func_80094D20

* func_80096A74

* func_80095604

* all functions done

* symbols for segmented addresses

* move symbols to c file for now

* failed attempt to import data

* fix

* Import data

* move data below

* ready for BSS attempt

* fix warnings

* ordering

* symbols for some segmented addresses

* rename to fox_hud

* clear mess

* .

* .

* space

* .

* func_i2_80187530

* func_i2_8018756C

* func_i2_80187650

* func_i2_801877C4

* func_i2_8018795C

* func_i2_80187B08

* func_i2_80187C68

* bss again (#98)

* func_i2_80187D08

* func_i2_80187D98

* func_i2_80187FF8

* func_i2_801881A8

* func_i2_80188228

* func_i2_80188298

* ARRAY_COUNT

* func_i2_80188344

* func_i2_80188B84

* func_i2_80188C2C

* func_i2_80188E8C

* func_i2_80188F2C

* func_i2_80188CAC

* func_i2_80189114

* func_i2_8018B7C4

* func_i2_8018C77C

* func_i2_8018C8F4

* func_i2_8018CA10

* func_i2_8018CB50

* func_i2_8018BACC co-authored-by: @inspectredc

* func_i2_8018CCF8

* func_i2_8018CB50

* func_i2_8018CD8C co-authored-by: @inspectredc & @petrie911

* func_i2_8018D9EC

* func_i2_8018DA6C

* func_i2_8018DAEC

* func_i2_8018DB6C

* func_i2_8018DBEC

* func_i2_8018DCE4

* func_i2_8018DE14

* func_i2_8018DF08 co-authored-by @inspectredc & @petrie911

* func_i2_8018E084

* func_i2_8018ED9C

* func_i2_80188088

* func_i2_801892F0

* func_i2_8018978C co-authored-by @KiritoDv & inspectredc

* fox_me DATA IMPORTED

* resolve conflicts

* func_i6_80197B30

* func_i6_80197CC4

* func_i6_80197F84

* func_i6_80198244

* merge and solve bss

* func_i6_801983E4

* PR review

---------

Co-authored-by: petrie911 <69443847+petrie911@users.noreply.github.com>
2024-01-21 13:27:47 -03:00
2024-01-21 13:27:47 -03:00
2024-01-21 13:27:47 -03:00
2024-01-20 23:21:29 -03:00
2024-01-21 13:27:47 -03:00
2023-11-13 10:18:43 -06:00
2024-01-21 13:27:47 -03:00
2024-01-13 10:43:04 -03:00
2023-11-18 12:44:33 -03:00
2024-01-15 00:16:47 -03:00
2023-12-26 17:55:57 -03:00
2024-01-13 10:43:04 -03:00
2024-01-17 11:24:33 -03:00
2023-10-15 18:00:11 -03:00

Discord Server

https://discord.gg/tuwdmuTTqc

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.

It currently builds the following ROM:

  • starfox64.us.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 22.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 git build-essential binutils-mips-linux-gnu python3 python3-pip clang-format-14 clang-tidy

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 --break-system-packages

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.z64

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.z64" should be built and the following text should be printed:

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

If you instead see the following:

./build/starfox64.us.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.

S
Description
No description provided
Readme 20 MiB
Languages
C 91%
C++ 4%
POV-Ray SDL 2.2%
Python 1.3%
CMake 1.2%
Other 0.2%