Update readme

This commit is contained in:
Ryan Dwyer
2019-10-09 22:48:56 +10:00
parent b648be4069
commit 470da4347c
+43 -34
View File
@@ -7,11 +7,11 @@ This repository contains a work-in-progress decompilation of Perfect Dark for th
| Section | Progress |
| --------------- | ----------------------------------------- |
| 0x40 rspboot | Won't disassemble as source is likely ASM |
| 0x1000 boot | Not started |
| 0x3050 library | Not started |
| 0x1000 boot | 5/34 functions done (14.71%) |
| 0x3050 library | 1/684 functions done (0.15%) |
| 0x39850 setup | About 50% identified |
| 0x4e850 rarezip | 2/8 functions done |
| 0x5032e game | Not started |
| 0x4e850 rarezip | 2/8 functions done (25.00%) |
| 0x5032e game | 95/4101 functions done (2.32%) |
| Lang files | Done |
| Setup files | Done |
| Prop files | Not started |
@@ -25,46 +25,55 @@ If you want to browse the stage setup files, use this table to find the filename
| Stage | File |
| ---------------- | ------------------------------------ |
| Defection | [setupame.c](src/setup/setupame.c) |
| Investigation | [setupear.c](src/setup/setupear.c) |
| Extraction | [setupark.c](src/setup/setupark.c) |
| Villa | [setupeld.c](src/setup/setupeld.c) |
| Chicago | [setuppete.c](src/setup/setuppete.c) |
| G5 Building | [setupdepo.c](src/setup/setupdepo.c) |
| Infiltration | [setuplue.c](src/setup/setuplue.c) |
| Rescue | [setuplip.c](src/setup/setuplip.c) |
| Escape | [setuptra.c](src/setup/setuptra.c) |
| Air Base | [setupcave.c](src/setup/setupcave.c) |
| Air Force One | [setuprit.c](src/setup/setuprit.c) |
| Crash Site | [setupazt.c](src/setup/setupazt.c) |
| Pelagic II | [setupdam.c](src/setup/setupdam.c) |
| Deep Sea | [setuppam.c](src/setup/setuppam.c) |
| Defense | [setupimp.c](src/setup/setupimp.c) |
| Attack Ship | [setuplee.c](src/setup/setuplee.c) |
| Skedar Ruins | [setupsho.c](src/setup/setupsho.c) |
| MBR | [setupwax.c](src/setup/setupwax.c) |
| Maian SOS | [setupsev.c](src/setup/setupsev.c) |
| WAR! | [setupstat.c](src/setup/setupstat.c) |
| The Duel | [setupate.c](src/setup/setupate.c) |
| CI Training | [setupdish.c](src/setup/setupdish.c) |
| Common Functions | [setup.c](src/setup.c) |
| Defection | [setupame.c](src/files/setup/setupame.c) |
| Investigation | [setupear.c](src/files/setup/setupear.c) |
| Extraction | [setupark.c](src/files/setup/setupark.c) |
| Villa | [setupeld.c](src/files/setup/setupeld.c) |
| Chicago | [setuppete.c](src/files/setup/setuppete.c) |
| G5 Building | [setupdepo.c](src/files/setup/setupdepo.c) |
| Infiltration | [setuplue.c](src/files/setup/setuplue.c) |
| Rescue | [setuplip.c](src/files/setup/setuplip.c) |
| Escape | [setuptra.c](src/files/setup/setuptra.c) |
| Air Base | [setupcave.c](src/files/setup/setupcave.c) |
| Air Force One | [setuprit.c](src/files/setup/setuprit.c) |
| Crash Site | [setupazt.c](src/files/setup/setupazt.c) |
| Pelagic II | [setupdam.c](src/files/setup/setupdam.c) |
| Deep Sea | [setuppam.c](src/files/setup/setuppam.c) |
| Defense | [setupimp.c](src/files/setup/setupimp.c) |
| Attack Ship | [setuplee.c](src/files/setup/setuplee.c) |
| Skedar Ruins | [setupsho.c](src/files/setup/setupsho.c) |
| MBR | [setupwax.c](src/files/setup/setupwax.c) |
| Maian SOS | [setupsev.c](src/files/setup/setupsev.c) |
| WAR! | [setupstat.c](src/files/setup/setupstat.c) |
| The Duel | [setupate.c](src/files/setup/setupate.c) |
| CI Training | [setupdish.c](src/files/setup/setupdish.c) |
There is also a stagetable.txt in the repository root which includes multiplayer stages.
## Compiling
Install the following:
## Installation Requirements
* make
* mips build tools (Debian/Ubuntu: binutils-mips-linux-gnu, Arch: mips64-elf-binutils from AUR)
* Python 3
Then:
## Extracting the base ROM
Before you do anything you need an existing ROM to extract assets from.
1. Save your existing ROM file into the root of the repository with the name `pd.ntsc-final.z64`. It should not be byteswapped (the first four bytes should be `0x80371240`).
2. Run `make extract`. This will create an `extracted/ntsc-final` containing assets from your ROM.
3. Make edits to the C files in the `src` directory if desired.
3. Run `make rom`. This will create a ROM file at `build/ntsc-final/pd.z64`.
2. Run `make extract`. This will create an `extracted/ntsc-final` directory containing assets from your ROM.
## Compiling
The project can do the following:
* Build individual ucode binaries (boot, library, setup, rarezip and game) which match the ones extracted from the base ROM.
* Build a functioning ROM by splicing your stage setup and lang files into an existing ROM.
The project does NOT build a full ROM using the C code yet.
* Run `make` to build the individual ucode binaries. These files will be written to `build/ntsc-final`.
* Run `make rom` to build a ROM from the stage setup and lang files. The ROM will be written to `build/ntsc-final/pd.z64`.
## How do I know the built files are matching?