Add NP3.BIN

This commit is contained in:
Luciano Ciccariello 2022-02-05 17:16:17 +00:00
parent 852c2575e7
commit 9d50546603
8 changed files with 503 additions and 10 deletions

View File

@ -30,6 +30,7 @@ jobs:
python tools/report_progress.py DRA.BIN 630 src/dra > gh-pages/assets/progress-dra.json
python tools/report_progress.py MAD.BIN 116 src/st/mad > gh-pages/assets/progress-mad.json
python tools/report_progress.py NO3.BIN 210 src/st/no3 > gh-pages/assets/progress-no3.json
python tools/report_progress.py NP3.BIN 214 src/st/np3 > gh-pages/assets/progress-np3.json
- name: Commit report
run: |
git config --global user.name 'GitHub Action'

View File

@ -3,6 +3,7 @@ MAIN := main
DRA := dra
STMAD := stmad
STNO3 := stno3
STNP3 := stnp3
# Compilers
CROSS := mipsel-linux-gnu-
@ -67,12 +68,23 @@ STNO3_O_FILES := $(foreach file,$(STNO3_S_FILES),$(BUILD_DIR)/$(file).o) \
STNO3_TARGET := $(BUILD_DIR)/$(STNO3)
STNO3BIN_TARGET := $(BUILD_DIR)/NO3.BIN
STNP3_ASM_DIRS := $(ASM_DIR)/st/np3 $(ASM_DIR)/st/np3/data
STNP3_SRC_DIRS := $(SRC_DIR)/st/np3
STNP3_S_FILES := $(foreach dir,$(STNP3_ASM_DIRS),$(wildcard $(dir)/*.s)) \
$(foreach dir,$(STNP3_ASM_DIRS),$(wildcard $(dir)/**/*.s))
STNP3_C_FILES := $(foreach dir,$(STNP3_SRC_DIRS),$(wildcard $(dir)/*.c)) \
$(foreach dir,$(STNP3_SRC_DIRS),$(wildcard $(dir)/**/*.c))
STNP3_O_FILES := $(foreach file,$(STNP3_S_FILES),$(BUILD_DIR)/$(file).o) \
$(foreach file,$(STNP3_C_FILES),$(BUILD_DIR)/$(file).o)
STNP3_TARGET := $(BUILD_DIR)/$(STNP3)
STNP3BIN_TARGET := $(BUILD_DIR)/NP3.BIN
# Tooling
PYTHON := python3
SPLAT_DIR := $(TOOLS_DIR)/n64splat
SPLAT := $(PYTHON) $(SPLAT_DIR)/split.py
all: main dra mad no3
all: main dra mad no3 np3
sha1sum --check slus00067.sha
clean:
rm -rf $(BUILD_DIR)
@ -138,7 +150,22 @@ $(STNO3_TARGET).elf: $(STNO3_O_FILES)
-nostdlib \
-s
extract: extract_main extract_dra extract_mad extract_no3
np3: np3_dirs $(STNP3BIN_TARGET)
np3_dirs:
$(foreach dir,$(STNP3_ASM_DIRS) $(STNP3_SRC_DIRS),$(shell mkdir -p $(BUILD_DIR)/$(dir)))
$(STNP3BIN_TARGET): $(STNP3_TARGET).elf
$(OBJCOPY) -O binary $< $@
$(STNP3_TARGET).elf: $(STNP3_O_FILES)
$(LD) -o $@ \
-Map $(STNP3_TARGET).map \
-T $(STNP3).ld \
-T $(CONFIG_DIR)/undefined_syms_auto.$(STNP3).txt \
-T $(CONFIG_DIR)/undefined_funcs_auto.$(STNP3).txt \
--no-check-sections \
-nostdlib \
-s
extract: extract_main extract_dra extract_mad extract_no3 extract_np3
extract_main: $(SPLAT_DIR)
$(SPLAT) --basedir . $(CONFIG_DIR)/splat.$(MAIN).yaml
extract_dra: $(SPLAT_DIR)
@ -149,6 +176,9 @@ extract_mad: $(SPLAT_DIR)
extract_no3: $(SPLAT_DIR)
cat $(CONFIG_DIR)/symbols.txt $(CONFIG_DIR)/symbols.$(STNO3).txt > $(CONFIG_DIR)/generated.symbols.$(STNO3).txt
$(SPLAT) --basedir . $(CONFIG_DIR)/splat.$(STNO3).yaml
extract_np3: $(SPLAT_DIR)
cat $(CONFIG_DIR)/symbols.txt $(CONFIG_DIR)/symbols.$(STNP3).txt > $(CONFIG_DIR)/generated.symbols.$(STNP3).txt
$(SPLAT) --basedir . $(CONFIG_DIR)/splat.$(STNP3).yaml
$(CONFIG_DIR)/generated.symbols.%.txt:
$(SPLAT_DIR):
@ -168,5 +198,5 @@ $(BUILD_DIR)/%.c.s: %.c
SHELL = /bin/bash -e -o pipefail
.PHONY: all, clean
.PHONY: main, main_dirs, dra, dra_dirs, mad, mad_dirs, no3, no3_dirs
.PHONY: extract, extract_main, extract_dra, extract_mad, extract_no3
.PHONY: main, main_dirs, dra, dra_dirs, mad, mad_dirs, no3, no3_dirs, np3, np3_dirs
.PHONY: extract, extract_main, extract_dra, extract_mad, extract_no3, extract_np3

View File

@ -4,12 +4,15 @@ Recompilable code that creates 1:1 binaries for the commercial videogame Castlev
## Game revision
| SHA-1 checksum | File name | Version | Progress
|--------------------------------------------|-----------|------------|----------
| `54828d4e44ea9575f2a0917ff63def42a304abff` | main.exe | SLUS-00067 | N/A
| `2eac5f7162e77416166c2511c787995488f01c37` | DRA.BIN | SLUS-00067 | ![progress DRA.BIN](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/Xeeynamo/sotn-decomp/gh-pages/assets/progress-dra.json)
| `adb3303e1ea707c63dfa978511a88cab4f61970a` | ST/MAD.BIN | SLUS-00067 | ![progress MAD.BIN](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/Xeeynamo/sotn-decomp/gh-pages/assets/progress-mad.json)
| `5d06216b895ab5ff892c88b0d9eff67ff16e2bd1` | ST/NO3.BIN | SLUS-00067 | ![progress NO3.BIN](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/Xeeynamo/sotn-decomp/gh-pages/assets/progress-no3.json)
All the files refers to the `SLUS-00067` version of the game.
| SHA-1 checksum | File name | Progress
|--------------------------------------------|------------|----------
| `54828d4e44ea9575f2a0917ff63def42a304abff` | main.exe | N/A
| `2eac5f7162e77416166c2511c787995488f01c37` | DRA.BIN | ![progress DRA.BIN](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/Xeeynamo/sotn-decomp/gh-pages/assets/progress-dra.json)
| `adb3303e1ea707c63dfa978511a88cab4f61970a` | ST/MAD.BIN | ![progress MAD.BIN](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/Xeeynamo/sotn-decomp/gh-pages/assets/progress-mad.json)
| `5d06216b895ab5ff892c88b0d9eff67ff16e2bd1` | ST/NO3.BIN | ![progress NO3.BIN](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/Xeeynamo/sotn-decomp/gh-pages/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-pages/assets/progress-np3.json)
## Build

27
config/splat.stnp3.yaml Normal file
View File

@ -0,0 +1,27 @@
options:
platform: psx
basename: stnp3
base_path: .
target_path: ST/NP3.BIN
asm_path: asm/st/np3
asset_path: assets/st/np3
src_path: src/st/np3
compiler: GCC
symbol_addrs_path: config/generated.symbols.stnp3.txt
undefined_syms_path: config/undefined_syms.stnp3.txt
undefined_funcs_auto_path: config/undefined_funcs_auto.stnp3.txt
undefined_syms_auto_path: config/undefined_syms_auto.stnp3.txt
find_file_boundaries: yes
enable_ld_alignment_hack: yes
use_legacy_include_asm: no
segments:
- name: stnp3
type: code
start: 0x00000000
vram: 0x80180000
subalign: 4
subsegments:
- [0x0, data]
- [0x3246C, c]
- [0x52768, data]
- [0x53434]

0
config/symbols.stnp3.txt Normal file
View File

View File

@ -2,3 +2,4 @@
2eac5f7162e77416166c2511c787995488f01c37 build/DRA.BIN
adb3303e1ea707c63dfa978511a88cab4f61970a build/MAD.BIN
5d06216b895ab5ff892c88b0d9eff67ff16e2bd1 build/NO3.BIN
7c78a2bec6a26acfb62456e7f517915fe0c0e3f5 build/NP3.BIN

View File

@ -1,4 +1,5 @@
#include "common.h"
#include "dra.h"
INCLUDE_ASM("asm/st/no3/nonmatchings/377D4", func_801B77D4);

430
src/st/np3/3246C.c Normal file
View File

@ -0,0 +1,430 @@
#include "common.h"
#include "dra.h"
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801B246C);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801B2540);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801B26FC);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801B2830);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801B28E4);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801B2C20);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801B2F30);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801B32A8);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801B3704);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801B39CC);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801B3D24);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801B3E84);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801B4004);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801B40F8);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801B44B4);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801B4558);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801B4680);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801B4940);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801B4BE8);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801B4D60);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801B5108);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801B5488);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801B560C);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801B5790);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801B5C5C);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801B5DE8);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801B5E98);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801B5F60);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801B6084);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801B644C);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801B653C);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801B65FC);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801B6990);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801B75EC);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801B7798);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801B78BC);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801B8CC0);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801B8D84);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801B8E94);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801B90BC);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801B90EC);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801B93E8);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801B94F0);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801BA608);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801BACAC);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801BAD70);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801BAE88);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801BAFA0);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801BAFEC);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801BB044);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801BB140);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801BB254);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801BB2A0);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801BB2F8);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801BB3F4);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801BB508);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801BB680);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801BB734);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801BB7A8);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801BB824);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801BB89C);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801BC4D4);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801BC540);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801BC5BC);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801BC604);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801BC6BC);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801BC7D4);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801BC810);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801BC844);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801BC888);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801BC8B8);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801BC8E4);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801BCB5C);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801BCD44);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801BCDA4);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801BCDD0);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801BCDEC);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801BCE58);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801BCE90);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801BCED8);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801BCF20);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801BCF78);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801BD004);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801BD034);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801BD06C);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801BD0B4);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801BD114);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801BD134);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801BD150);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801BD1E4);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801BD2E0);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801BD308);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801BD430);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801BD588);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801BD8CC);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801BD984);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801BDA08);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801BDB64);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801BDBE4);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801BDCC0);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801BDDD8);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801BDE7C);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801BDECC);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801BDEF4);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801BE768);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801BE864);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801BE908);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801BEEF0);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801BF1A0);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801BFC70);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801BFD98);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801C02F4);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801C03E4);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801C04F4);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801C0624);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801C070C);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801C07FC);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801C08F0);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801C0B20);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801C0C1C);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801C119C);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801C129C);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801C1368);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801C1430);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801C14E8);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801C16C0);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801C1CA0);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801C23A0);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801C2598);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801C2690);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801C2860);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801C34E4);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801C3878);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801C3D28);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801C3E14);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801C4144);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801C424C);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801C4DCC);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801C56D8);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801C5BC4);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801C5F58);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801C61B4);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801C6458);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801C6564);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801C7650);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801C7880);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801C7954);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801C7D80);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801C7E18);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801C8010);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801C80DC);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801C8238);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801C8DF0);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801C8F54);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801C8FEC);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801C90E8);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801C91C4);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801C9874);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801C997C);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801C9BC8);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801C9E28);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801C9F98);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801CA498);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801CA654);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801CAE0C);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801CB018);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801CBF18);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801CC2E0);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801CD540);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801CD620);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801CD658);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801CD734);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801CD78C);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801CD83C);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801CD91C);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801CDA14);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801CDA6C);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801CDAC8);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801CDC80);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801CDD00);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801CDD80);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801CDE10);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801CDE88);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801CDF1C);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801CDFD8);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801CE04C);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801CE120);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801CE1E8);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801CE228);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801CE258);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801CE2CC);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801CE3FC);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801CE4CC);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801CE69C);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801CF254);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801CF5B8);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801CF778);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801CF7A0);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801CF94C);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801D0730);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801D0A00);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801D0B40);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801D0B78);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801D0D40);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801D1BB8);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801D1F38);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801D2320);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801D2470);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801D24A0);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801D251C);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801D25A4);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801D2684);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801D26D8);
INCLUDE_ASM("asm/st/np3/nonmatchings/3246C", func_801D2704);