Add SEL overlay

This commit is contained in:
Luciano Ciccariello 2022-12-21 16:33:15 +00:00
parent 4531e00843
commit 050b90f097
7 changed files with 2060 additions and 6 deletions

View File

@ -52,6 +52,7 @@ jobs:
python tools/report_progress.py NO3.BIN 210 src/st/no3 > gh-report/assets/progress-no3.json
python tools/report_progress.py NP3.BIN 214 src/st/np3 > gh-report/assets/progress-np3.json
python tools/report_progress.py NZ0.BIN 135 src/st/nz0 > gh-report/assets/progress-nz0.json
python tools/report_progress.py SEL.BIN 164 src/st/sel > gh-report/assets/progress-sel.json
python tools/report_progress.py ST0.BIN 160 src/st/st0 > gh-report/assets/progress-st0.json
python tools/report_progress.py WRP.BIN 110 src/st/wrp > gh-report/assets/progress-wrp.json
python tools/report_progress.py RWRP.BIN 110 src/st/rwrp > gh-report/assets/progress-rwrp.json

View File

@ -77,7 +77,7 @@ define link
endef
all: build check
build: main dra ric cen dre mad no3 np3 nz0 st0 wrp rwrp
build: main dra ric cen dre mad no3 np3 nz0 sel st0 wrp rwrp
clean:
git clean -fdx asm/
git clean -fdx $(BUILD_DIR)
@ -142,6 +142,10 @@ nz0: stnz0_dirs $(BUILD_DIR)/NZ0.BIN
$(BUILD_DIR)/NZ0.BIN: $(BUILD_DIR)/stnz0.elf
$(OBJCOPY) -O binary $< $@
sel: stsel_dirs $(BUILD_DIR)/SEL.BIN
$(BUILD_DIR)/SEL.BIN: $(BUILD_DIR)/stsel.elf
$(OBJCOPY) -O binary $< $@
st0: stst0_dirs $(BUILD_DIR)/ST0.BIN
$(BUILD_DIR)/ST0.BIN: $(BUILD_DIR)/stst0.elf
$(OBJCOPY) -O binary $< $@
@ -207,7 +211,7 @@ st%_dirs:
$(BUILD_DIR)/st%.elf: $$(call list_o_files,st/$$*)
$(call link,st$*,$@)
extract: extract_main extract_dra extract_ric extract_stcen extract_stdre extract_stmad extract_stno3 extract_stnp3 extract_stnz0 extract_stst0 extract_stwrp extract_strwrp
extract: extract_main extract_dra extract_ric extract_stcen extract_stdre extract_stmad extract_stno3 extract_stnp3 extract_stnz0 extract_stsel extract_stst0 extract_stwrp extract_strwrp
extract_main: require-tools
$(SPLAT) $(CONFIG_DIR)/splat.$(MAIN).yaml
extract_dra: require-tools

View File

@ -23,6 +23,7 @@ This repo does not include any assets or assembly code necessary for compiling t
| `5d06216b895ab5ff892c88b0d9eff67ff16e2bd1` | ST/NO3.BIN | ![progress NO3.BIN](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/Xeeynamo/sotn-decomp/gh-report/assets/progress-no3.json)
| `7c78a2bec6a26acfb62456e7f517915fe0c0e3f5` | ST/NP3.BIN | ![progress NP3.BIN](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/Xeeynamo/sotn-decomp/gh-report/assets/progress-np3.json)
| `b10b9c2be721cf9cbed3aa94be468ba9e23bc68b` | ST/NZ0.BIN | ![progress NZ0.BIN](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/Xeeynamo/sotn-decomp/gh-report/assets/progress-nz0.json)
| `a919a53a760107972049bfdeadde33376428eace` | ST/SEL.BIN | ![progress SEL.BIN](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/Xeeynamo/sotn-decomp/gh-report/assets/progress-sel.json)
| `bc2fabbe5ef0d1288490b6f1ddbf11092a2c0c57` | ST/ST0.BIN | ![progress ST0.BIN](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/Xeeynamo/sotn-decomp/gh-report/assets/progress-st0.json)
| `2ae313f4e394422e4c5f37a2d8e976e92f9e3cda` | ST/WRP.BIN | ![progress WRP.BIN](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/Xeeynamo/sotn-decomp/gh-report/assets/progress-wrp.json)
| `3bbdd3b73f8f86cf5f6c88652e9e6452a7fb5992` | ST/RWRP.BIN | ![progress RWRP.BIN](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/Xeeynamo/sotn-decomp/gh-report/assets/progress-rwrp.json)
@ -32,10 +33,10 @@ This repo does not include any assets or assembly code necessary for compiling t
This assumes you have Ubuntu 20.04 or Debian 11, either as a primary OS or within WSL in Windows.
1. Inside the folder of your choice `git clone https://github.com/Xeeynamo/sotn-decomp.git`
1. Run `sudo apt-get install -y $(cat tools/requirements-debian.txt)`
1. Run `make update-dependencies`
1. Inside the newly created repo, create a new `iso/` folder, and extract the contents of the game disc
1. Inside the folder of your choice `git clone https://github.com/Xeeynamo/sotn-decomp.git`
1. Run `sudo apt-get install -y $(cat tools/requirements-debian.txt)`
1. Run `make update-dependencies`
1. Inside the newly created repo, create a new `iso/` folder, and extract the contents of the game disc
## Build

28
config/splat.stsel.yaml Normal file
View File

@ -0,0 +1,28 @@
options:
platform: psx
basename: stsel
base_path: ..
target_path: iso/ST/SEL/SEL.BIN
asm_path: asm/st/sel
asset_path: assets/st/sel
src_path: src/st/sel
compiler: GCC
symbol_addrs_path: config/generated.symbols.stsel.txt
undefined_syms_path: config/undefined_syms.stsel.txt
undefined_funcs_auto_path: config/undefined_funcs_auto.stsel.txt
undefined_syms_auto_path: config/undefined_syms_auto.stsel.txt
find_file_boundaries: yes
enable_ld_alignment_hack: yes
use_legacy_include_asm: no
migrate_rodata_to_functions: no
segments:
- name: stsel
type: code
start: 0x00000000
vram: 0x80180000
subalign: 2
subsegments:
- [0x0, rodata]
- [0x2C048, c]
- [0x3AEE4, data]
- [0x56B28]

1684
config/symbols.stsel.txt Normal file

File diff suppressed because it is too large Load Diff

View File

@ -7,6 +7,7 @@ adb3303e1ea707c63dfa978511a88cab4f61970a build/MAD.BIN
5d06216b895ab5ff892c88b0d9eff67ff16e2bd1 build/NO3.BIN
7c78a2bec6a26acfb62456e7f517915fe0c0e3f5 build/NP3.BIN
b10b9c2be721cf9cbed3aa94be468ba9e23bc68b build/NZ0.BIN
a919a53a760107972049bfdeadde33376428eace build/SEL.BIN
bc2fabbe5ef0d1288490b6f1ddbf11092a2c0c57 build/ST0.BIN
2ae313f4e394422e4c5f37a2d8e976e92f9e3cda build/WRP.BIN
3bbdd3b73f8f86cf5f6c88652e9e6452a7fb5992 build/RWRP.BIN

335
src/st/sel/2C048.c Normal file
View File

@ -0,0 +1,335 @@
#include "common.h"
INCLUDE_ASM("config/../asm/st/sel/nonmatchings/2C048", func_801AC048);
INCLUDE_ASM("config/../asm/st/sel/nonmatchings/2C048", func_801AC084);
INCLUDE_ASM("config/../asm/st/sel/nonmatchings/2C048", func_801AC174);
INCLUDE_ASM("config/../asm/st/sel/nonmatchings/2C048", func_801ACBE4);
INCLUDE_ASM("config/../asm/st/sel/nonmatchings/2C048", func_801ACC3C);
INCLUDE_ASM("config/../asm/st/sel/nonmatchings/2C048", func_801ACC7C);
INCLUDE_ASM("config/../asm/st/sel/nonmatchings/2C048", func_801ACDFC);
INCLUDE_ASM("config/../asm/st/sel/nonmatchings/2C048", func_801ACEC0);
INCLUDE_ASM("config/../asm/st/sel/nonmatchings/2C048", func_801ACF7C);
INCLUDE_ASM("config/../asm/st/sel/nonmatchings/2C048", func_801ACFBC);
INCLUDE_ASM("config/../asm/st/sel/nonmatchings/2C048", func_801AD134);
INCLUDE_ASM("config/../asm/st/sel/nonmatchings/2C048", func_801AD1D0);
INCLUDE_ASM("config/../asm/st/sel/nonmatchings/2C048", func_801AD218);
INCLUDE_ASM("config/../asm/st/sel/nonmatchings/2C048", func_801AD260);
INCLUDE_ASM("config/../asm/st/sel/nonmatchings/2C048", func_801AD490);
INCLUDE_ASM("config/../asm/st/sel/nonmatchings/2C048", func_801AD590);
INCLUDE_ASM("config/../asm/st/sel/nonmatchings/2C048", func_801AD66C);
INCLUDE_ASM("config/../asm/st/sel/nonmatchings/2C048", func_801AD78C);
INCLUDE_ASM("config/../asm/st/sel/nonmatchings/2C048", func_801AD968);
INCLUDE_ASM("config/../asm/st/sel/nonmatchings/2C048", func_801ADC3C);
INCLUDE_ASM("config/../asm/st/sel/nonmatchings/2C048", func_801ADF94);
INCLUDE_ASM("config/../asm/st/sel/nonmatchings/2C048", func_801AE6D0);
INCLUDE_ASM("config/../asm/st/sel/nonmatchings/2C048", func_801AE9A8);
INCLUDE_ASM("config/../asm/st/sel/nonmatchings/2C048", func_801AEA8C);
INCLUDE_ASM("config/../asm/st/sel/nonmatchings/2C048", func_801AEB74);
INCLUDE_ASM("config/../asm/st/sel/nonmatchings/2C048", func_801AECA0);
INCLUDE_ASM("config/../asm/st/sel/nonmatchings/2C048", func_801AED48);
INCLUDE_ASM("config/../asm/st/sel/nonmatchings/2C048", func_801AEE74);
INCLUDE_ASM("config/../asm/st/sel/nonmatchings/2C048", func_801AEED8);
INCLUDE_ASM("config/../asm/st/sel/nonmatchings/2C048", func_801B17C8);
INCLUDE_ASM("config/../asm/st/sel/nonmatchings/2C048", func_801B18CC);
INCLUDE_ASM("config/../asm/st/sel/nonmatchings/2C048", func_801B18F4);
INCLUDE_ASM("config/../asm/st/sel/nonmatchings/2C048", func_801B1924);
INCLUDE_ASM("config/../asm/st/sel/nonmatchings/2C048", func_801B195C);
INCLUDE_ASM("config/../asm/st/sel/nonmatchings/2C048", func_801B19F4);
INCLUDE_ASM("config/../asm/st/sel/nonmatchings/2C048", func_801B1A98);
INCLUDE_ASM("config/../asm/st/sel/nonmatchings/2C048", func_801B1B88);
INCLUDE_ASM("config/../asm/st/sel/nonmatchings/2C048", func_801B1C78);
INCLUDE_ASM("config/../asm/st/sel/nonmatchings/2C048", func_801B1CFC);
INCLUDE_ASM("config/../asm/st/sel/nonmatchings/2C048", func_801B1D68);
INCLUDE_ASM("config/../asm/st/sel/nonmatchings/2C048", func_801B1D88);
INCLUDE_ASM("config/../asm/st/sel/nonmatchings/2C048", func_801B1DA8);
INCLUDE_ASM("config/../asm/st/sel/nonmatchings/2C048", func_801B1ED0);
INCLUDE_ASM("config/../asm/st/sel/nonmatchings/2C048", func_801B1EF4);
INCLUDE_ASM("config/../asm/st/sel/nonmatchings/2C048", func_801B1F34);
INCLUDE_ASM("config/../asm/st/sel/nonmatchings/2C048", func_801B1F4C);
INCLUDE_ASM("config/../asm/st/sel/nonmatchings/2C048", func_801B1FD8);
INCLUDE_ASM("config/../asm/st/sel/nonmatchings/2C048", func_801B2108);
INCLUDE_ASM("config/../asm/st/sel/nonmatchings/2C048", func_801B248C);
INCLUDE_ASM("config/../asm/st/sel/nonmatchings/2C048", func_801B24F8);
INCLUDE_ASM("config/../asm/st/sel/nonmatchings/2C048", func_801B2564);
INCLUDE_ASM("config/../asm/st/sel/nonmatchings/2C048", func_801B259C);
INCLUDE_ASM("config/../asm/st/sel/nonmatchings/2C048", func_801B25D4);
INCLUDE_ASM("config/../asm/st/sel/nonmatchings/2C048", func_801B2608);
INCLUDE_ASM("config/../asm/st/sel/nonmatchings/2C048", func_801B263C);
INCLUDE_ASM("config/../asm/st/sel/nonmatchings/2C048", func_801B2670);
INCLUDE_ASM("config/../asm/st/sel/nonmatchings/2C048", func_801B26A0);
INCLUDE_ASM("config/../asm/st/sel/nonmatchings/2C048", func_801B2700);
INCLUDE_ASM("config/../asm/st/sel/nonmatchings/2C048", func_801B27A8);
INCLUDE_ASM("config/../asm/st/sel/nonmatchings/2C048", func_801B28D4);
INCLUDE_ASM("config/../asm/st/sel/nonmatchings/2C048", func_801B2984);
INCLUDE_ASM("config/../asm/st/sel/nonmatchings/2C048", func_801B29C0);
INCLUDE_ASM("config/../asm/st/sel/nonmatchings/2C048", func_801B2A9C);
INCLUDE_ASM("config/../asm/st/sel/nonmatchings/2C048", func_801B2AFC);
INCLUDE_ASM("config/../asm/st/sel/nonmatchings/2C048", func_801B2B78);
INCLUDE_ASM("config/../asm/st/sel/nonmatchings/2C048", func_801B2BD4);
INCLUDE_ASM("config/../asm/st/sel/nonmatchings/2C048", func_801B2C70);
INCLUDE_ASM("config/../asm/st/sel/nonmatchings/2C048", func_801B2CF8);
INCLUDE_ASM("config/../asm/st/sel/nonmatchings/2C048", func_801B2D1C);
INCLUDE_ASM("config/../asm/st/sel/nonmatchings/2C048", func_801B2D6C);
INCLUDE_ASM("config/../asm/st/sel/nonmatchings/2C048", func_801B2DAC);
void func_801B2DDC(void) {}
void func_801B2DE4(void) {}
void func_801B2DEC(void) {}
INCLUDE_ASM("config/../asm/st/sel/nonmatchings/2C048", func_801B2DF4);
INCLUDE_ASM("config/../asm/st/sel/nonmatchings/2C048", func_801B2E5C);
INCLUDE_ASM("config/../asm/st/sel/nonmatchings/2C048", func_801B2F50);
INCLUDE_ASM("config/../asm/st/sel/nonmatchings/2C048", func_801B3120);
INCLUDE_ASM("config/../asm/st/sel/nonmatchings/2C048", func_801B3164);
INCLUDE_ASM("config/../asm/st/sel/nonmatchings/2C048", func_801B367C);
INCLUDE_ASM("config/../asm/st/sel/nonmatchings/2C048", func_801B3694);
INCLUDE_ASM("config/../asm/st/sel/nonmatchings/2C048", func_801B38B4);
INCLUDE_ASM("config/../asm/st/sel/nonmatchings/2C048", func_801B3A54);
INCLUDE_ASM("config/../asm/st/sel/nonmatchings/2C048", func_801B3A94);
INCLUDE_ASM("config/../asm/st/sel/nonmatchings/2C048", func_801B3E14);
INCLUDE_ASM("config/../asm/st/sel/nonmatchings/2C048", func_801B3E2C);
INCLUDE_ASM("config/../asm/st/sel/nonmatchings/2C048", func_801B3F7C);
INCLUDE_ASM("config/../asm/st/sel/nonmatchings/2C048", func_801B3F94);
INCLUDE_ASM("config/../asm/st/sel/nonmatchings/2C048", func_801B4048);
INCLUDE_ASM("config/../asm/st/sel/nonmatchings/2C048", func_801B410C);
INCLUDE_ASM("config/../asm/st/sel/nonmatchings/2C048", func_801B4B30);
INCLUDE_ASM("config/../asm/st/sel/nonmatchings/2C048", func_801B4B9C);
INCLUDE_ASM("config/../asm/st/sel/nonmatchings/2C048", func_801B4BB0);
INCLUDE_ASM("config/../asm/st/sel/nonmatchings/2C048", func_801B4C68);
INCLUDE_ASM("config/../asm/st/sel/nonmatchings/2C048", func_801B4D78);
INCLUDE_ASM("config/../asm/st/sel/nonmatchings/2C048", func_801B4DE0);
INCLUDE_ASM("config/../asm/st/sel/nonmatchings/2C048", func_801B4FFC);
INCLUDE_ASM("config/../asm/st/sel/nonmatchings/2C048", func_801B519C);
INCLUDE_ASM("config/../asm/st/sel/nonmatchings/2C048", func_801B5350);
INCLUDE_ASM("config/../asm/st/sel/nonmatchings/2C048", func_801B54C8);
INCLUDE_ASM("config/../asm/st/sel/nonmatchings/2C048", func_801B5548);
INCLUDE_ASM("config/../asm/st/sel/nonmatchings/2C048", func_801B55C8);
INCLUDE_ASM("config/../asm/st/sel/nonmatchings/2C048", func_801B585C);
INCLUDE_ASM("config/../asm/st/sel/nonmatchings/2C048", func_801B5A7C);
INCLUDE_ASM("config/../asm/st/sel/nonmatchings/2C048", func_801B60D4);
INCLUDE_ASM("config/../asm/st/sel/nonmatchings/2C048", func_801B642C);
INCLUDE_ASM("config/../asm/st/sel/nonmatchings/2C048", func_801B6480);
INCLUDE_ASM("config/../asm/st/sel/nonmatchings/2C048", func_801B6648);
INCLUDE_ASM("config/../asm/st/sel/nonmatchings/2C048", func_801B66A4);
INCLUDE_ASM("config/../asm/st/sel/nonmatchings/2C048", func_801B675C);
INCLUDE_ASM("config/../asm/st/sel/nonmatchings/2C048", func_801B68E0);
INCLUDE_ASM("config/../asm/st/sel/nonmatchings/2C048", func_801B690C);
INCLUDE_ASM("config/../asm/st/sel/nonmatchings/2C048", func_801B69F8);
INCLUDE_ASM("config/../asm/st/sel/nonmatchings/2C048", func_801B76F0);
INCLUDE_ASM("config/../asm/st/sel/nonmatchings/2C048", func_801B786C);
INCLUDE_ASM("config/../asm/st/sel/nonmatchings/2C048", func_801B78BC);
INCLUDE_ASM("config/../asm/st/sel/nonmatchings/2C048", func_801B79D4);
INCLUDE_ASM("config/../asm/st/sel/nonmatchings/2C048", func_801B80F0);
INCLUDE_ASM("config/../asm/st/sel/nonmatchings/2C048", func_801B8298);
INCLUDE_ASM("config/../asm/st/sel/nonmatchings/2C048", func_801B8338);
INCLUDE_ASM("config/../asm/st/sel/nonmatchings/2C048", func_801B83BC);
INCLUDE_ASM("config/../asm/st/sel/nonmatchings/2C048", func_801B8414);
INCLUDE_ASM("config/../asm/st/sel/nonmatchings/2C048", func_801B8498);
INCLUDE_ASM("config/../asm/st/sel/nonmatchings/2C048", func_801B84F0);
INCLUDE_ASM("config/../asm/st/sel/nonmatchings/2C048", func_801B8500);
INCLUDE_ASM("config/../asm/st/sel/nonmatchings/2C048", func_801B8518);
INCLUDE_ASM("config/../asm/st/sel/nonmatchings/2C048", func_801B8714);
INCLUDE_ASM("config/../asm/st/sel/nonmatchings/2C048", func_801B873C);
INCLUDE_ASM("config/../asm/st/sel/nonmatchings/2C048", func_801B881C);
INCLUDE_ASM("config/../asm/st/sel/nonmatchings/2C048", func_801B884C);
INCLUDE_ASM("config/../asm/st/sel/nonmatchings/2C048", func_801B88F4);
INCLUDE_ASM("config/../asm/st/sel/nonmatchings/2C048", func_801B89C8);
INCLUDE_ASM("config/../asm/st/sel/nonmatchings/2C048", func_801B8A10);
INCLUDE_ASM("config/../asm/st/sel/nonmatchings/2C048", func_801B8A8C);
INCLUDE_ASM("config/../asm/st/sel/nonmatchings/2C048", func_801B8D24);
INCLUDE_ASM("config/../asm/st/sel/nonmatchings/2C048", func_801B8DB0);
INCLUDE_ASM("config/../asm/st/sel/nonmatchings/2C048", func_801B8DE8);
INCLUDE_ASM("config/../asm/st/sel/nonmatchings/2C048", func_801B8E20);
INCLUDE_ASM("config/../asm/st/sel/nonmatchings/2C048", func_801B94BC);
INCLUDE_ASM("config/../asm/st/sel/nonmatchings/2C048", func_801B9698);
INCLUDE_ASM("config/../asm/st/sel/nonmatchings/2C048", func_801B9744);
INCLUDE_ASM("config/../asm/st/sel/nonmatchings/2C048", func_801B97BC);
INCLUDE_ASM("config/../asm/st/sel/nonmatchings/2C048", func_801B988C);
INCLUDE_ASM("config/../asm/st/sel/nonmatchings/2C048", func_801B9924);
INCLUDE_ASM("config/../asm/st/sel/nonmatchings/2C048", func_801B994C);
INCLUDE_ASM("config/../asm/st/sel/nonmatchings/2C048", func_801B99E4);
INCLUDE_ASM("config/../asm/st/sel/nonmatchings/2C048", func_801B9B7C);
INCLUDE_ASM("config/../asm/st/sel/nonmatchings/2C048", func_801B9C18);
INCLUDE_ASM("config/../asm/st/sel/nonmatchings/2C048", func_801B9C80);
INCLUDE_ASM("config/../asm/st/sel/nonmatchings/2C048", func_801BA460);
INCLUDE_ASM("config/../asm/st/sel/nonmatchings/2C048", func_801BA498);
INCLUDE_ASM("config/../asm/st/sel/nonmatchings/2C048", func_801BA524);
INCLUDE_ASM("config/../asm/st/sel/nonmatchings/2C048", func_801BA5C0);
INCLUDE_ASM("config/../asm/st/sel/nonmatchings/2C048", func_801BA5CC);
INCLUDE_ASM("config/../asm/st/sel/nonmatchings/2C048", func_801BA648);
INCLUDE_ASM("config/../asm/st/sel/nonmatchings/2C048", func_801BA668);
INCLUDE_ASM("config/../asm/st/sel/nonmatchings/2C048", func_801BA688);
INCLUDE_ASM("config/../asm/st/sel/nonmatchings/2C048", func_801BA6A8);
INCLUDE_ASM("config/../asm/st/sel/nonmatchings/2C048", func_801BA6CC);
INCLUDE_ASM("config/../asm/st/sel/nonmatchings/2C048", func_801BA6F0);
INCLUDE_ASM("config/../asm/st/sel/nonmatchings/2C048", func_801BA7EC);
INCLUDE_ASM("config/../asm/st/sel/nonmatchings/2C048", func_801BA880);
INCLUDE_ASM("config/../asm/st/sel/nonmatchings/2C048", func_801BA910);
INCLUDE_ASM("config/../asm/st/sel/nonmatchings/2C048", func_801BA9A8);
INCLUDE_ASM("config/../asm/st/sel/nonmatchings/2C048", func_801BAA40);
INCLUDE_ASM("config/../asm/st/sel/nonmatchings/2C048", func_801BAB70);
INCLUDE_ASM("config/../asm/st/sel/nonmatchings/2C048", func_801BABA4);