Split BIN/WEAPON0.BIN (#154)

Splits `BIN/WEAPON0.BIN` in its own individual C files and assets. There
are 59 overlays 59 PNGs extracted as part of it. The `.data`, `.text`
and `.sbss` section are correctly split. I did not yet split the
`.rodata` but I assume it will be so small we can do it on-the-go.

This is fully integrated in the build process, it gives an 🆗 once
built back and it is fully integrated in the CI. We did not yet know how
weapons work in-game and we already have a few instances in the code
where we call `D_8017A000();` and similar. I think it is time to start
documenting them.

Thanks to @bismurphy <bismurphy@users.noreply.github.com> for addressing `analyze_calls.py` for this specific
PR.
This commit is contained in:
Luciano Ciccariello 2023-08-10 23:56:40 +01:00 committed by GitHub
parent 9b8bf70c5a
commit 06afe4f9ba
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
72 changed files with 4093 additions and 5 deletions

View File

@ -92,7 +92,7 @@ endef
all: build check
saturn: build_saturn_native check_saturn_native
build: build_$(VERSION)
build_us: main dra ric cen dre mad no3 np3 nz0 sel st0 wrp rwrp tt_000
build_us: main dra weapon ric cen dre mad no3 np3 nz0 sel st0 wrp rwrp tt_000
build_hd: dra
clean:
git clean -fdx assets/
@ -204,6 +204,10 @@ tt_000: tt_000_dirs $(BUILD_DIR)/TT_000.BIN
$(BUILD_DIR)/TT_000.BIN: $(BUILD_DIR)/tt_000.elf
$(OBJCOPY) -O binary $< $@
weapon: weapon_dirs $(BUILD_DIR)/WEAPON0.BIN
$(BUILD_DIR)/WEAPON0.BIN: $(BUILD_DIR)/weapon0.elf
$(OBJCOPY) -O binary $< $@
mad_fix: stmad_dirs $$(call list_o_files,st/mad)
$(LD) $(LD_FLAGS) -o $(BUILD_DIR)/stmad_fix.elf \
-Map $(BUILD_DIR)/stmad_fix.map \
@ -215,6 +219,8 @@ mad_fix: stmad_dirs $$(call list_o_files,st/mad)
tt_%_dirs:
$(foreach dir,$(ASM_DIR)/servant/tt_$* $(ASM_DIR)/servant/tt_$*/data $(SRC_DIR)/servant/tt_$* $(ASSETS_DIR)/servant/tt_$*,$(shell mkdir -p $(BUILD_DIR)/$(dir)))
weapon_dirs:
$(foreach dir,$(ASM_DIR)/weapon $(ASM_DIR)/weapon/data $(SRC_DIR)/weapon $(ASSETS_DIR)/weapon,$(shell mkdir -p $(BUILD_DIR)/$(dir)))
st%_dirs:
$(foreach dir,$(ASM_DIR)/st/$* $(ASM_DIR)/st/$*/data $(SRC_DIR)/st/$* $(ASSETS_DIR)/st/$*,$(shell mkdir -p $(BUILD_DIR)/$(dir)))
%_dirs:
@ -222,6 +228,8 @@ st%_dirs:
$(BUILD_DIR)/tt_%.elf: $$(call list_o_files,servant/tt_$$*)
$(call link,tt_$*,$@)
$(BUILD_DIR)/weapon0.elf: $$(call list_o_files,weapon)
$(call link,weapon,$@)
$(BUILD_DIR)/stmad.elf: $$(call list_o_files,st/mad)
$(LD) $(LD_FLAGS) -o $@ \
-Map $(BUILD_DIR)/stmad.map \
@ -233,7 +241,7 @@ $(BUILD_DIR)/st%.elf: $$(call list_o_files,st/$$*)
$(call link,st$*,$@)
extract: extract_$(VERSION)
extract_us: 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_tt_000
extract_us: extract_main extract_dra extract_weapon extract_ric extract_stcen extract_stdre extract_stmad extract_stno3 extract_stnp3 extract_stnz0 extract_stsel extract_stst0 extract_stwrp extract_strwrp extract_tt_000
extract_hd: extract_dra
extract_main: $(SPLAT_APP)
$(SPLAT) $(CONFIG_DIR)/splat.$(VERSION).$(MAIN).yaml
@ -254,6 +262,9 @@ extract_st%: $(SPLAT_APP)
extract_tt_%: $(SPLAT_APP)
cat $(CONFIG_DIR)/symbols.$(VERSION).txt $(CONFIG_DIR)/symbols.$(VERSION).tt_$*.txt > $(CONFIG_DIR)/generated.symbols.$(VERSION).tt_$*.txt
$(SPLAT) $(CONFIG_DIR)/splat.$(VERSION).tt_$*.yaml
extract_weapon: $(SPLAT_APP)
cat $(CONFIG_DIR)/symbols.$(VERSION).txt $(CONFIG_DIR)/symbols.$(VERSION).weapon.txt > $(CONFIG_DIR)/generated.symbols.$(VERSION).weapon.txt
$(SPLAT) $(CONFIG_DIR)/splat.$(VERSION).weapon.yaml
$(CONFIG_DIR)/generated.$(VERSION).symbols.%.txt:
extract_saturn: $(SATURN_SPLITTER_APP)
@ -560,6 +571,9 @@ diff_saturn_native:
diff ./build/saturn/$(FILENAME)-ours.txt ./build/saturn/$(FILENAME)-theirs.txt > ./build/saturn/$(FILENAME)-diff.txt || true
# Handles assets
$(BUILD_DIR)/$(ASSETS_DIR)/weapon/f_%.png.o: $(ASSETS_DIR)/weapon/f_%.png
./tools/png2bin.py $< $(BUILD_DIR)/assets/weapon/f_$*.png.bin
$(LD) -r -b binary -o $@ $(BUILD_DIR)/$(ASSETS_DIR)/weapon/f_$*.png.bin
$(BUILD_DIR)/$(ASSETS_DIR)/%.layoutobj.json.o: $(ASSETS_DIR)/%.layoutobj.json
./tools/splat_ext/layoutobj.py $< $(BUILD_DIR)/$(ASSETS_DIR)/$*.bin
$(LD) -r -b binary -o $(BUILD_DIR)/$(ASSETS_DIR)/$*.o $(BUILD_DIR)/$(ASSETS_DIR)/$*.bin

View File

@ -1,5 +1,6 @@
54828d4e44ea9575f2a0917ff63def42a304abff build/us/main.exe
2eac5f7162e77416166c2511c787995488f01c37 build/us/DRA.BIN
b8dcd64f95d197d3f59ab3e46f67897ecdc477cb build/us/WEAPON0.BIN
d076912661e67a38afae0a1b5044ab5f10bcfb39 build/us/RIC.BIN
42226b6d9ed24448eed61b3c6cd2949e96bebab6 build/us/CEN.BIN
f9f4833355d776b377db5adb62d16eae24975160 build/us/F_CEN.BIN
@ -20,4 +21,4 @@ a4a20ec0d27dd93bd2e292b2111abf18723aaebc build/us/F_ST0.BIN
c1284f0c662f3c8fdb8a7c17cebf8e5cf1d96c1b build/us/F_WRP.BIN
3bbdd3b73f8f86cf5f6c88652e9e6452a7fb5992 build/us/RWRP.BIN
ee1aaa34f3464b1d1cd72052cec7a4b9089d1887 build/us/F_RWRP.BIN
82dd4ae1c4e3dc0fd483a49e5e4ab4fc5e25ada7 build/us/TT_000.BIN
82dd4ae1c4e3dc0fd483a49e5e4ab4fc5e25ada7 build/us/TT_000.BIN

910
config/splat.us.weapon.yaml Normal file
View File

@ -0,0 +1,910 @@
options:
platform: psx
basename: weapon
base_path: ..
build_path: build/us
target_path: disks/us/BIN/WEAPON0.BIN
asm_path: asm/us/weapon
asset_path: assets/weapon
src_path: src/weapon
compiler: GCC
symbol_addrs_path: config/generated.symbols.us.weapon.txt
undefined_funcs_auto_path: config/undefined_funcs_auto.us.weapon.txt
undefined_syms_auto_path: config/undefined_syms_auto.us.weapon.txt
find_file_boundaries: yes
use_legacy_include_asm: no
migrate_rodata_to_functions: no
extensions_path: tools/splat_ext
symbol_name_format: $SEG_$VRAM
section_order:
- ".data"
- ".rodata"
- ".text"
- ".bss"
segments:
- name: f_000
type: ci4
start: 0x00000
vram: 0
width: 256
height: 128
- type: code
exclusive_ram_id: weapon
start: 0x04000
vram: 0x8017A000
subalign: 4
subsegments:
- [0x04000, data, w_000]
- [0x050D4, c, w_000]
- [0x05700, sbss, w_000]
- name: f_001
type: ci4
start: 0x07000
vram: 0
width: 256
height: 128
- type: code
exclusive_ram_id: weapon
start: 0x0B000
vram: 0x8017A000
subalign: 4
subsegments:
- [0x0B000, data, w_001]
- [0x0C014, c, w_001]
- [0xD430, sbss, w_001]
- name: f_002
type: ci4
start: 0x0E000
vram: 0
width: 256
height: 128
- type: code
exclusive_ram_id: weapon
start: 0x12000
vram: 0x8017A000
subalign: 4
subsegments:
- [0x12000, data, w_002]
- [0x12BDC, c, w_002]
- [0x13200, sbss, w_002]
- name: f_003
type: ci4
start: 0x15000
vram: 0
width: 256
height: 128
- type: code
exclusive_ram_id: weapon
start: 0x19000
vram: 0x8017A000
subalign: 4
subsegments:
- [0x19000, data, w_003]
- [0x19C40, c, w_003]
- [0x1A26C, sbss, w_003]
- name: f_004
type: ci4
start: 0x1C000
vram: 0
width: 256
height: 128
- type: code
exclusive_ram_id: weapon
start: 0x20000
vram: 0x8017A000
subalign: 4
subsegments:
- [0x20000, data, w_004]
- [0x2131C, c, w_004]
- [0x2196C, sbss, w_004]
- name: f_005
type: ci4
start: 0x23000
vram: 0
width: 256
height: 128
- type: code
exclusive_ram_id: weapon
start: 0x27000
vram: 0x8017A000
subalign: 4
subsegments:
- [0x27000, data, w_005]
- [0x2831C, c, w_005]
- [0x28998, sbss, w_005]
- name: f_006
type: ci4
start: 0x2A000
vram: 0
width: 256
height: 128
- type: code
exclusive_ram_id: weapon
start: 0x2E000
vram: 0x8017A000
subalign: 4
subsegments:
- [0x2E000, data, w_006]
- [0x2EC54, c, w_006]
- [0x2F9B8, sbss, w_006]
- name: f_007
type: ci4
start: 0x31000
vram: 0
width: 256
height: 128
- type: code
exclusive_ram_id: weapon
start: 0x35000
vram: 0x8017A000
subalign: 4
subsegments:
- [0x35000, data, w_007]
- [0x35CA0, c, w_007]
- [0x36918, sbss, w_007]
- name: f_008
type: ci4
start: 0x38000
vram: 0
width: 256
height: 128
- type: code
exclusive_ram_id: weapon
start: 0x3C000
vram: 0x8017A000
subalign: 4
subsegments:
- [0x3C000, data, w_008]
- [0x3CB4C, c, w_008]
- [0x3DF78, sbss, w_008]
- name: f_009
type: ci4
start: 0x3F000
vram: 0
width: 256
height: 128
- type: code
exclusive_ram_id: weapon
start: 0x43000
vram: 0x8017A000
subalign: 4
subsegments:
- [0x43000, data, w_009]
- [0x43B4C, c, w_009]
- [0x450F0, sbss, w_009]
- name: f_010
type: ci4
start: 0x46000
vram: 0
width: 256
height: 128
- type: code
exclusive_ram_id: weapon
start: 0x4A000
vram: 0x8017A000
subalign: 4
subsegments:
- [0x4A000, data, w_010]
- [0x4ACC0, c, w_010]
- [0x4CC1C, sbss, w_010]
- name: f_011
type: ci4
start: 0x4D000
vram: 0
width: 256
height: 128
- type: code
exclusive_ram_id: weapon
start: 0x51000
vram: 0x8017A000
subalign: 4
subsegments:
- [0x51000, data, w_011]
- [0x51CDC, c, w_011]
- [0x53810, sbss, w_011]
- name: f_012
type: ci4
start: 0x54000
vram: 0
width: 256
height: 128
- type: code
exclusive_ram_id: weapon
start: 0x58000
vram: 0x8017A000
subalign: 4
subsegments:
- [0x58000, data, w_012]
- [0x58ACC, c, w_012]
- [0x59B28, sbss, w_012]
- name: f_013
type: ci4
start: 0x5B000
vram: 0
width: 256
height: 128
- type: code
exclusive_ram_id: weapon
start: 0x5F000
vram: 0x8017A000
subalign: 4
subsegments:
- [0x5F000, data, w_013]
- [0x5F62C, c, w_013]
- [0x60C10, sbss, w_013]
- name: f_014
type: ci4
start: 0x62000
vram: 0
width: 256
height: 128
- type: code
exclusive_ram_id: weapon
start: 0x66000
vram: 0x8017A000
subalign: 4
subsegments:
- [0x66000, data, w_014]
- [0x665BC, c, w_014]
- [0x67584, sbss, w_014]
- name: f_015
type: ci4
start: 0x69000
vram: 0
width: 256
height: 128
- type: code
exclusive_ram_id: weapon
start: 0x6D000
vram: 0x8017A000
subalign: 4
subsegments:
- [0x6D000, data, w_015]
- [0x6D7E4, c, w_015]
- [0x6EFC8, sbss, w_015]
- name: f_016
type: ci4
start: 0x70000
vram: 0
width: 256
height: 128
- type: code
exclusive_ram_id: weapon
start: 0x74000
vram: 0x8017A000
subalign: 4
subsegments:
- [0x74000, data, w_016]
- [0x7460C, c, w_016]
- [0x75D74, sbss, w_016]
- name: f_017
type: ci4
start: 0x77000
vram: 0
width: 256
height: 128
- type: code
exclusive_ram_id: weapon
start: 0x7B000
vram: 0x8017A000
subalign: 4
subsegments:
- [0x7B000, data, w_017]
- [0x7B3AC, c, w_017]
- [0x7C0F4, sbss, w_017]
- name: f_018
type: ci4
start: 0x7E000
vram: 0
width: 256
height: 128
- type: code
exclusive_ram_id: weapon
start: 0x82000
vram: 0x8017A000
subalign: 4
subsegments:
- [0x82000, data, w_018]
- [0x82740, c, w_018]
- [0x831B4, sbss, w_018]
- name: f_019
type: ci4
start: 0x85000
vram: 0
width: 256
height: 128
- type: code
exclusive_ram_id: weapon
start: 0x89000
vram: 0x8017A000
subalign: 4
subsegments:
- [0x89000, data, w_019]
- [0x89554, c, w_019]
- [0x89DB4, sbss, w_019]
- name: f_020
type: ci4
start: 0x8C000
vram: 0
width: 256
height: 128
- type: code
exclusive_ram_id: weapon
start: 0x90000
vram: 0x8017A000
subalign: 4
subsegments:
- [0x90000, data, w_020]
- [0x90BC8, c, w_020]
- [0x92238, sbss, w_020]
- name: f_021
type: ci4
start: 0x93000
vram: 0
width: 256
height: 128
- type: code
exclusive_ram_id: weapon
start: 0x97000
vram: 0x8017A000
subalign: 4
subsegments:
- [0x97000, data, w_021]
- [0x977B4, c, w_021]
- [0x98B78, sbss, w_021]
- name: f_022
type: ci4
start: 0x9A000
vram: 0
width: 256
height: 128
- type: code
exclusive_ram_id: weapon
start: 0x9E000
vram: 0x8017A000
subalign: 4
subsegments:
- [0x9E000, data, w_022]
- [0x9E814, c, w_022]
- [0x9EF80, sbss, w_022]
- name: f_023
type: ci4
start: 0xA1000
vram: 0
width: 256
height: 128
- type: code
exclusive_ram_id: weapon
start: 0xA5000
vram: 0x8017A000
subalign: 4
subsegments:
- [0xA5000, data, w_023]
- [0xA5D80, c, w_023]
- [0xA797C, sbss, w_023]
- name: f_024
type: ci4
start: 0xA8000
vram: 0
width: 256
height: 128
- type: code
exclusive_ram_id: weapon
start: 0xAC000
vram: 0x8017A000
subalign: 4
subsegments:
- [0xAC000, data, w_024]
- [0xACDE0, c, w_024]
- [0xAEBF4, sbss, w_024]
- name: f_025
type: ci4
start: 0xAF000
vram: 0
width: 256
height: 128
- type: code
exclusive_ram_id: weapon
start: 0xB3000
vram: 0x8017A000
subalign: 4
subsegments:
- [0xB3000, data, w_025]
- [0xB3B74, c, w_025]
- [0xB5918, sbss, w_025]
- name: f_026
type: ci4
start: 0xB6000
vram: 0
width: 256
height: 128
- type: code
exclusive_ram_id: weapon
start: 0xBA000
vram: 0x8017A000
subalign: 4
subsegments:
- [0xBA000, data, w_026]
- [0xBAB9C, c, w_026]
- [0xBCC3C, sbss, w_026]
- name: f_027
type: ci4
start: 0xBD000
vram: 0
width: 256
height: 128
- type: code
exclusive_ram_id: weapon
start: 0xC1000
vram: 0x8017A000
subalign: 4
subsegments:
- [0xC1000, data, w_027]
- [0xC1D54, c, w_027]
- [0xC36EC, sbss, w_027]
- name: f_028
type: ci4
start: 0xC4000
vram: 0
width: 256
height: 128
- type: code
exclusive_ram_id: weapon
start: 0xC8000
vram: 0x8017A000
subalign: 4
subsegments:
- [0xC8000, data, w_028]
- [0xC8BF4, c, w_028]
- [0xCA954, sbss, w_028]
- name: f_029
type: ci4
start: 0xCB000
vram: 0
width: 256
height: 128
- type: code
exclusive_ram_id: weapon
start: 0xCF000
vram: 0x8017A000
subalign: 4
subsegments:
- [0xCF000, data, w_029]
- [0xCFDD8, c, w_029]
- [0xD19A0, sbss, w_029]
- name: f_030
type: ci4
start: 0xD2000
vram: 0
width: 256
height: 128
- type: code
exclusive_ram_id: weapon
start: 0xD6000
vram: 0x8017A000
subalign: 4
subsegments:
- [0xD6000, data, w_030]
- [0xD66DC, c, w_030]
- [0xD8C44, sbss, w_030]
- name: f_031
type: ci4
start: 0xD9000
vram: 0
width: 256
height: 128
- type: code
exclusive_ram_id: weapon
start: 0xDD000
vram: 0x8017A000
subalign: 4
subsegments:
- [0xDD000, data, w_031]
- [0xDD918, c, w_031]
- [0xDDF88, sbss, w_031]
- name: f_032
type: ci4
start: 0xE0000
vram: 0
width: 256
height: 128
- type: code
exclusive_ram_id: weapon
start: 0xE4000
vram: 0x8017A000
subalign: 4
subsegments:
- [0xE4000, data, w_032]
- [0xE4924, c, w_032]
- [0xE5020, sbss, w_032]
- name: f_033
type: ci4
start: 0xE7000
vram: 0
width: 256
height: 128
- type: code
exclusive_ram_id: weapon
start: 0xEB000
vram: 0x8017A000
subalign: 4
subsegments:
- [0xEB000, data, w_033]
- [0xEBC58, c, w_033]
- [0xEC2C8, sbss, w_033]
- name: f_034
type: ci4
start: 0xEE000
vram: 0
width: 256
height: 128
- type: code
exclusive_ram_id: weapon
start: 0xF2000
vram: 0x8017A000
subalign: 4
subsegments:
- [0xF2000, data, w_034]
- [0xF2950, c, w_034]
- [0xF33F0, sbss, w_034]
- name: f_035
type: ci4
start: 0xF5000
vram: 0
width: 256
height: 128
- type: code
exclusive_ram_id: weapon
start: 0xF9000
vram: 0x8017A000
subalign: 4
subsegments:
- [0xF9000, data, w_035]
- [0xF954C, c, w_035]
- [0xF9B78, sbss, w_035]
- name: f_036
type: ci4
start: 0xFC000
vram: 0
width: 256
height: 128
- type: code
exclusive_ram_id: weapon
start: 0x100000
vram: 0x8017A000
subalign: 4
subsegments:
- [0x100000, data, w_036]
- [0x10055C, c, w_036]
- [0x100B88, sbss, w_036]
- name: f_037
type: ci4
start: 0x103000
vram: 0
width: 256
height: 128
- type: code
exclusive_ram_id: weapon
start: 0x107000
vram: 0x8017A000
subalign: 4
subsegments:
- [0x107000, data, w_037]
- [0x1077C4, c, w_037]
- [0x108BE4, sbss, w_037]
- name: f_038
type: ci4
start: 0x10A000
vram: 0
width: 256
height: 128
- type: code
exclusive_ram_id: weapon
start: 0x10E000
vram: 0x8017A000
subalign: 4
subsegments:
- [0x10E000, data, w_038]
- [0x10EDEC, c, w_038]
- [0x10F844, sbss, w_038]
- name: f_039
type: ci4
start: 0x111000
vram: 0
width: 256
height: 128
- type: code
exclusive_ram_id: weapon
start: 0x115000
vram: 0x8017A000
subalign: 4
subsegments:
- [0x115000, data, w_039]
- [0x115DEC, c, w_039]
- [0x116A28, sbss, w_039]
- name: f_040
type: ci4
start: 0x118000
vram: 0
width: 256
height: 128
- type: code
exclusive_ram_id: weapon
start: 0x11C000
vram: 0x8017A000
subalign: 4
subsegments:
- [0x11C000, data, w_040]
- [0x11C874, c, w_040]
- [0x11D540, sbss, w_040]
- name: f_041
type: ci4
start: 0x11F000
vram: 0
width: 256
height: 128
- type: code
exclusive_ram_id: weapon
start: 0x123000
vram: 0x8017A000
subalign: 4
subsegments:
- [0x123000, data, w_041]
- [0x123574, c, w_041]
- [0x124200, sbss, w_041]
- name: f_042
type: ci4
start: 0x126000
vram: 0
width: 256
height: 128
- type: code
exclusive_ram_id: weapon
start: 0x12A000
vram: 0x8017A000
subalign: 4
subsegments:
- [0x12A000, data, w_042]
- [0x12A764, c, w_042]
- [0x12B5EC, sbss, w_042]
- name: f_043
type: ci4
start: 0x12D000
vram: 0
width: 256
height: 128
- type: code
exclusive_ram_id: weapon
start: 0x131000
vram: 0x8017A000
subalign: 4
subsegments:
- [0x131000, data, w_043]
- [0x13205C, c, w_043]
- [0x132D74, sbss, w_043]
- name: f_044
type: ci4
start: 0x134000
vram: 0
width: 256
height: 128
- type: code
exclusive_ram_id: weapon
start: 0x138000
vram: 0x8017A000
subalign: 4
subsegments:
- [0x138000, data, w_044]
- [0x1382C0, c, w_044]
- [0x138F24, sbss, w_044]
- name: f_045
type: ci4
start: 0x13B000
vram: 0
width: 256
height: 128
- type: code
exclusive_ram_id: weapon
start: 0x13F000
vram: 0x8017A000
subalign: 4
subsegments:
- [0x13F000, data, w_045]
- [0x13F378, c, w_045]
- [0x1403B8, sbss, w_045]
- name: f_046
type: ci4
start: 0x142000
vram: 0
width: 256
height: 128
- type: code
exclusive_ram_id: weapon
start: 0x146000
vram: 0x8017A000
subalign: 4
subsegments:
- [0x146000, data, w_046]
- [0x146C64, c, w_046]
- [0x147EC0, sbss, w_046]
- name: f_047
type: ci4
start: 0x149000
vram: 0
width: 256
height: 128
- type: code
exclusive_ram_id: weapon
start: 0x14D000
vram: 0x8017A000
subalign: 4
subsegments:
- [0x14D000, data, w_047]
- [0x14D568, c, w_047]
- [0x14E6A4, sbss, w_047]
- name: f_048
type: ci4
start: 0x150000
vram: 0
width: 256
height: 128
- type: code
exclusive_ram_id: weapon
start: 0x154000
vram: 0x8017A000
subalign: 4
subsegments:
- [0x154000, data, w_048]
- [0x155050, c, w_048]
- [0x1563B4, sbss, w_048]
- name: f_049
type: ci4
start: 0x157000
vram: 0
width: 256
height: 128
- type: code
exclusive_ram_id: weapon
start: 0x15B000
vram: 0x8017A000
subalign: 4
subsegments:
- [0x15B000, data, w_049]
- [0x15C14C, c, w_049]
- [0x15D8CC, sbss, w_049]
- name: f_050
type: ci4
start: 0x15E000
vram: 0
width: 256
height: 128
- type: code
exclusive_ram_id: weapon
start: 0x162000
vram: 0x8017A000
subalign: 4
subsegments:
- [0x162000, data, w_050]
- [0x163080, c, w_050]
- [0x164BF8, sbss, w_050]
- name: f_051
type: ci4
start: 0x165000
vram: 0
width: 256
height: 128
- type: code
exclusive_ram_id: weapon
start: 0x169000
vram: 0x8017A000
subalign: 4
subsegments:
- [0x169000, data, w_051]
- [0x169ED4, c, w_051]
- [0x16B0E0, sbss, w_051]
- name: f_052
type: ci4
start: 0x16C000
vram: 0
width: 256
height: 128
- type: code
exclusive_ram_id: weapon
start: 0x170000
vram: 0x8017A000
subalign: 4
subsegments:
- [0x170000, data, w_052]
- [0x170CB0, c, w_052]
- [0x172B84, sbss, w_052]
- name: f_053
type: ci4
start: 0x173000
vram: 0
width: 256
height: 128
- type: code
exclusive_ram_id: weapon
start: 0x177000
vram: 0x8017A000
subalign: 4
subsegments:
- [0x177000, data, w_053]
- [0x178280, c, w_053]
- [0x179894, sbss, w_053]
- name: f_054
type: ci4
start: 0x17A000
vram: 0
width: 256
height: 128
- type: code
exclusive_ram_id: weapon
start: 0x17E000
vram: 0x8017A000
subalign: 4
subsegments:
- [0x17E000, data, w_054]
- [0x17EF0C, c, w_054]
- [0x17F8F8, sbss, w_054]
- name: f_055
type: ci4
start: 0x181000
vram: 0
width: 256
height: 128
- type: code
exclusive_ram_id: weapon
start: 0x185000
vram: 0x8017A000
subalign: 4
subsegments:
- [0x185000, data, w_055]
- [0x1861A0, c, w_055]
- [0x186C2C, sbss, w_055]
- name: f_056
type: ci4
start: 0x188000
vram: 0
width: 256
height: 128
- type: code
exclusive_ram_id: weapon
start: 0x18C000
vram: 0x8017A000
subalign: 4
subsegments:
- [0x18C000, data, w_056]
- [0x18D060, c, w_056]
- [0x18E0B8, sbss, w_056]
- name: f_057
type: ci4
start: 0x18F000
vram: 0
width: 256
height: 128
- type: code
exclusive_ram_id: weapon
start: 0x193000
vram: 0x8017A000
subalign: 4
subsegments:
- [0x193000, data, w_057]
- [0x1940B4, c, w_057]
- [0x1946E0, sbss, w_057]
- name: f_058
type: ci4
start: 0x196000
vram: 0
width: 256
height: 128
- type: code
exclusive_ram_id: weapon
start: 0x19A000
vram: 0x8017A000
subalign: 4
subsegments:
- [0x19A000, data, w_058]
- [0x19AC50, c, w_058]
- [0x19BB40, sbss, w_058]
- [0x19D000]

View File

6
include/weapon.h Normal file
View File

@ -0,0 +1,6 @@
#ifndef WEAPON_H
#define WEAPON_H
#include <game.h>
#endif

51
src/weapon/w_000.c Normal file
View File

@ -0,0 +1,51 @@
#include "weapon_private.h"
INCLUDE_ASM("weapon/nonmatchings/w_000", func_4000_8017B0D4);
INCLUDE_ASM("weapon/nonmatchings/w_000", func_4000_8017B140);
INCLUDE_ASM("weapon/nonmatchings/w_000", func_4000_8017B1D8);
INCLUDE_ASM("weapon/nonmatchings/w_000", func_4000_8017B200);
INCLUDE_ASM("weapon/nonmatchings/w_000", func_4000_8017B228);
INCLUDE_ASM("weapon/nonmatchings/w_000", func_4000_8017B250);
INCLUDE_ASM("weapon/nonmatchings/w_000", func_4000_8017B298);
INCLUDE_ASM("weapon/nonmatchings/w_000", func_4000_8017B2E0);
INCLUDE_ASM("weapon/nonmatchings/w_000", func_4000_8017B308);
INCLUDE_ASM("weapon/nonmatchings/w_000", func_4000_8017B378);
INCLUDE_ASM("weapon/nonmatchings/w_000", func_4000_8017B474);
void func_4000_8017B690(void) {}
void func_4000_8017B698(void) {}
void func_4000_8017B6A0(void) {}
void func_4000_8017B6A8(void) {}
void func_4000_8017B6B0(void) {}
INCLUDE_ASM("weapon/nonmatchings/w_000", func_4000_8017B6B8);
void func_4000_8017B6C0(void) {}
void func_4000_8017B6C8(void) {}
void func_4000_8017B6D0(void) {}
void func_4000_8017B6D8(void) {}
void func_4000_8017B6E0(void) {}
void func_4000_8017B6E8(void) {}
void func_4000_8017B6F0(void) {}
void func_4000_8017B6F8(void) {}

51
src/weapon/w_001.c Normal file
View File

@ -0,0 +1,51 @@
#include "weapon_private.h"
INCLUDE_ASM("weapon/nonmatchings/w_001", func_B000_8017B014);
INCLUDE_ASM("weapon/nonmatchings/w_001", func_B000_8017B080);
INCLUDE_ASM("weapon/nonmatchings/w_001", func_B000_8017B118);
INCLUDE_ASM("weapon/nonmatchings/w_001", func_B000_8017B140);
INCLUDE_ASM("weapon/nonmatchings/w_001", func_B000_8017B168);
INCLUDE_ASM("weapon/nonmatchings/w_001", func_B000_8017B190);
INCLUDE_ASM("weapon/nonmatchings/w_001", func_B000_8017B1D8);
INCLUDE_ASM("weapon/nonmatchings/w_001", func_B000_8017B220);
INCLUDE_ASM("weapon/nonmatchings/w_001", func_B000_8017B248);
INCLUDE_ASM("weapon/nonmatchings/w_001", func_B000_8017B2B8);
INCLUDE_ASM("weapon/nonmatchings/w_001", func_B000_8017B3B4);
INCLUDE_ASM("weapon/nonmatchings/w_001", func_B000_8017BCCC);
INCLUDE_ASM("weapon/nonmatchings/w_001", func_B000_8017C1FC);
void func_B000_8017C3D0(void) {}
void func_B000_8017C3D8(void) {}
void func_B000_8017C3E0(void) {}
INCLUDE_ASM("weapon/nonmatchings/w_001", func_B000_8017C3E8);
void func_B000_8017C3F0(void) {}
void func_B000_8017C3F8(void) {}
void func_B000_8017C400(void) {}
void func_B000_8017C408(void) {}
void func_B000_8017C410(void) {}
void func_B000_8017C418(void) {}
void func_B000_8017C420(void) {}
void func_B000_8017C428(void) {}

51
src/weapon/w_002.c Normal file
View File

@ -0,0 +1,51 @@
#include "weapon_private.h"
INCLUDE_ASM("weapon/nonmatchings/w_002", func_12000_8017ABDC);
INCLUDE_ASM("weapon/nonmatchings/w_002", func_12000_8017AC48);
INCLUDE_ASM("weapon/nonmatchings/w_002", func_12000_8017ACE0);
INCLUDE_ASM("weapon/nonmatchings/w_002", func_12000_8017AD08);
INCLUDE_ASM("weapon/nonmatchings/w_002", func_12000_8017AD30);
INCLUDE_ASM("weapon/nonmatchings/w_002", func_12000_8017AD58);
INCLUDE_ASM("weapon/nonmatchings/w_002", func_12000_8017ADA0);
INCLUDE_ASM("weapon/nonmatchings/w_002", func_12000_8017ADE8);
INCLUDE_ASM("weapon/nonmatchings/w_002", func_12000_8017AE10);
INCLUDE_ASM("weapon/nonmatchings/w_002", func_12000_8017AE80);
INCLUDE_ASM("weapon/nonmatchings/w_002", func_12000_8017AF7C);
void func_12000_8017B190(void) {}
void func_12000_8017B198(void) {}
void func_12000_8017B1A0(void) {}
void func_12000_8017B1A8(void) {}
void func_12000_8017B1B0(void) {}
INCLUDE_ASM("weapon/nonmatchings/w_002", func_12000_8017B1B8);
void func_12000_8017B1C0(void) {}
void func_12000_8017B1C8(void) {}
void func_12000_8017B1D0(void) {}
void func_12000_8017B1D8(void) {}
void func_12000_8017B1E0(void) {}
void func_12000_8017B1E8(void) {}
void func_12000_8017B1F0(void) {}
void func_12000_8017B1F8(void) {}

51
src/weapon/w_003.c Normal file
View File

@ -0,0 +1,51 @@
#include "weapon_private.h"
INCLUDE_ASM("weapon/nonmatchings/w_003", func_19000_8017AC40);
INCLUDE_ASM("weapon/nonmatchings/w_003", func_19000_8017ACAC);
INCLUDE_ASM("weapon/nonmatchings/w_003", func_19000_8017AD44);
INCLUDE_ASM("weapon/nonmatchings/w_003", func_19000_8017AD6C);
INCLUDE_ASM("weapon/nonmatchings/w_003", func_19000_8017AD94);
INCLUDE_ASM("weapon/nonmatchings/w_003", func_19000_8017ADBC);
INCLUDE_ASM("weapon/nonmatchings/w_003", func_19000_8017AE04);
INCLUDE_ASM("weapon/nonmatchings/w_003", func_19000_8017AE4C);
INCLUDE_ASM("weapon/nonmatchings/w_003", func_19000_8017AE74);
INCLUDE_ASM("weapon/nonmatchings/w_003", func_19000_8017AEE4);
INCLUDE_ASM("weapon/nonmatchings/w_003", func_19000_8017AFE0);
void func_19000_8017B1FC(void) {}
void func_19000_8017B204(void) {}
void func_19000_8017B20C(void) {}
void func_19000_8017B214(void) {}
void func_19000_8017B21C(void) {}
INCLUDE_ASM("weapon/nonmatchings/w_003", func_19000_8017B224);
void func_19000_8017B22C(void) {}
void func_19000_8017B234(void) {}
void func_19000_8017B23C(void) {}
void func_19000_8017B244(void) {}
void func_19000_8017B24C(void) {}
void func_19000_8017B254(void) {}
void func_19000_8017B25C(void) {}
void func_19000_8017B264(void) {}

51
src/weapon/w_004.c Normal file
View File

@ -0,0 +1,51 @@
#include "weapon_private.h"
INCLUDE_ASM("weapon/nonmatchings/w_004", func_20000_8017B31C);
INCLUDE_ASM("weapon/nonmatchings/w_004", func_20000_8017B388);
INCLUDE_ASM("weapon/nonmatchings/w_004", func_20000_8017B420);
INCLUDE_ASM("weapon/nonmatchings/w_004", func_20000_8017B448);
INCLUDE_ASM("weapon/nonmatchings/w_004", func_20000_8017B470);
INCLUDE_ASM("weapon/nonmatchings/w_004", func_20000_8017B498);
INCLUDE_ASM("weapon/nonmatchings/w_004", func_20000_8017B4E0);
INCLUDE_ASM("weapon/nonmatchings/w_004", func_20000_8017B528);
INCLUDE_ASM("weapon/nonmatchings/w_004", func_20000_8017B550);
INCLUDE_ASM("weapon/nonmatchings/w_004", func_20000_8017B5C0);
INCLUDE_ASM("weapon/nonmatchings/w_004", func_20000_8017B6BC);
void func_20000_8017B8FC(void) {}
void func_20000_8017B904(void) {}
void func_20000_8017B90C(void) {}
void func_20000_8017B914(void) {}
void func_20000_8017B91C(void) {}
INCLUDE_ASM("weapon/nonmatchings/w_004", func_20000_8017B924);
void func_20000_8017B92C(void) {}
void func_20000_8017B934(void) {}
void func_20000_8017B93C(void) {}
void func_20000_8017B944(void) {}
void func_20000_8017B94C(void) {}
void func_20000_8017B954(void) {}
void func_20000_8017B95C(void) {}
void func_20000_8017B964(void) {}

51
src/weapon/w_005.c Normal file
View File

@ -0,0 +1,51 @@
#include "weapon_private.h"
INCLUDE_ASM("weapon/nonmatchings/w_005", func_27000_8017B31C);
INCLUDE_ASM("weapon/nonmatchings/w_005", func_27000_8017B388);
INCLUDE_ASM("weapon/nonmatchings/w_005", func_27000_8017B420);
INCLUDE_ASM("weapon/nonmatchings/w_005", func_27000_8017B448);
INCLUDE_ASM("weapon/nonmatchings/w_005", func_27000_8017B470);
INCLUDE_ASM("weapon/nonmatchings/w_005", func_27000_8017B498);
INCLUDE_ASM("weapon/nonmatchings/w_005", func_27000_8017B4E0);
INCLUDE_ASM("weapon/nonmatchings/w_005", func_27000_8017B528);
INCLUDE_ASM("weapon/nonmatchings/w_005", func_27000_8017B550);
INCLUDE_ASM("weapon/nonmatchings/w_005", func_27000_8017B5C0);
INCLUDE_ASM("weapon/nonmatchings/w_005", func_27000_8017B6BC);
void func_27000_8017B928(void) {}
void func_27000_8017B930(void) {}
void func_27000_8017B938(void) {}
void func_27000_8017B940(void) {}
void func_27000_8017B948(void) {}
INCLUDE_ASM("weapon/nonmatchings/w_005", func_27000_8017B950);
void func_27000_8017B958(void) {}
void func_27000_8017B960(void) {}
void func_27000_8017B968(void) {}
void func_27000_8017B970(void) {}
void func_27000_8017B978(void) {}
void func_27000_8017B980(void) {}
void func_27000_8017B988(void) {}
void func_27000_8017B990(void) {}

53
src/weapon/w_006.c Normal file
View File

@ -0,0 +1,53 @@
#include "weapon_private.h"
INCLUDE_ASM("weapon/nonmatchings/w_006", func_2E000_8017AC54);
INCLUDE_ASM("weapon/nonmatchings/w_006", func_2E000_8017ACC0);
INCLUDE_ASM("weapon/nonmatchings/w_006", func_2E000_8017AD58);
INCLUDE_ASM("weapon/nonmatchings/w_006", func_2E000_8017AD80);
INCLUDE_ASM("weapon/nonmatchings/w_006", func_2E000_8017ADA8);
INCLUDE_ASM("weapon/nonmatchings/w_006", func_2E000_8017ADD0);
INCLUDE_ASM("weapon/nonmatchings/w_006", func_2E000_8017AE18);
INCLUDE_ASM("weapon/nonmatchings/w_006", func_2E000_8017AE60);
INCLUDE_ASM("weapon/nonmatchings/w_006", func_2E000_8017AE88);
INCLUDE_ASM("weapon/nonmatchings/w_006", func_2E000_8017AEF8);
INCLUDE_ASM("weapon/nonmatchings/w_006", func_2E000_8017AFF4);
INCLUDE_ASM("weapon/nonmatchings/w_006", func_2E000_8017B210);
INCLUDE_ASM("weapon/nonmatchings/w_006", func_2E000_8017B6A0);
INCLUDE_ASM("weapon/nonmatchings/w_006", func_2E000_8017B798);
void func_2E000_8017B958(void) {}
void func_2E000_8017B960(void) {}
void func_2E000_8017B968(void) {}
INCLUDE_ASM("weapon/nonmatchings/w_006", func_2E000_8017B970);
void func_2E000_8017B978(void) {}
void func_2E000_8017B980(void) {}
void func_2E000_8017B988(void) {}
void func_2E000_8017B990(void) {}
void func_2E000_8017B998(void) {}
void func_2E000_8017B9A0(void) {}
void func_2E000_8017B9A8(void) {}
void func_2E000_8017B9B0(void) {}

53
src/weapon/w_007.c Normal file
View File

@ -0,0 +1,53 @@
#include "weapon_private.h"
INCLUDE_ASM("weapon/nonmatchings/w_007", func_35000_8017ACA0);
INCLUDE_ASM("weapon/nonmatchings/w_007", func_35000_8017AD0C);
INCLUDE_ASM("weapon/nonmatchings/w_007", func_35000_8017ADA4);
INCLUDE_ASM("weapon/nonmatchings/w_007", func_35000_8017ADCC);
INCLUDE_ASM("weapon/nonmatchings/w_007", func_35000_8017ADF4);
INCLUDE_ASM("weapon/nonmatchings/w_007", func_35000_8017AE1C);
INCLUDE_ASM("weapon/nonmatchings/w_007", func_35000_8017AE64);
INCLUDE_ASM("weapon/nonmatchings/w_007", func_35000_8017AEAC);
INCLUDE_ASM("weapon/nonmatchings/w_007", func_35000_8017AED4);
INCLUDE_ASM("weapon/nonmatchings/w_007", func_35000_8017AF44);
INCLUDE_ASM("weapon/nonmatchings/w_007", func_35000_8017B040);
INCLUDE_ASM("weapon/nonmatchings/w_007", func_35000_8017B2B8);
INCLUDE_ASM("weapon/nonmatchings/w_007", func_35000_8017B604);
INCLUDE_ASM("weapon/nonmatchings/w_007", func_35000_8017B6FC);
void func_35000_8017B8B8(void) {}
void func_35000_8017B8C0(void) {}
void func_35000_8017B8C8(void) {}
INCLUDE_ASM("weapon/nonmatchings/w_007", func_35000_8017B8D0);
void func_35000_8017B8D8(void) {}
void func_35000_8017B8E0(void) {}
void func_35000_8017B8E8(void) {}
void func_35000_8017B8F0(void) {}
void func_35000_8017B8F8(void) {}
void func_35000_8017B900(void) {}
void func_35000_8017B908(void) {}
void func_35000_8017B910(void) {}

51
src/weapon/w_008.c Normal file
View File

@ -0,0 +1,51 @@
#include "weapon_private.h"
INCLUDE_ASM("weapon/nonmatchings/w_008", func_3C000_8017AB4C);
INCLUDE_ASM("weapon/nonmatchings/w_008", func_3C000_8017ABB8);
INCLUDE_ASM("weapon/nonmatchings/w_008", func_3C000_8017AC50);
INCLUDE_ASM("weapon/nonmatchings/w_008", func_3C000_8017AC78);
INCLUDE_ASM("weapon/nonmatchings/w_008", func_3C000_8017ACA0);
INCLUDE_ASM("weapon/nonmatchings/w_008", func_3C000_8017ACC8);
INCLUDE_ASM("weapon/nonmatchings/w_008", func_3C000_8017AD10);
INCLUDE_ASM("weapon/nonmatchings/w_008", func_3C000_8017AD58);
INCLUDE_ASM("weapon/nonmatchings/w_008", func_3C000_8017AD80);
INCLUDE_ASM("weapon/nonmatchings/w_008", func_3C000_8017ADF0);
INCLUDE_ASM("weapon/nonmatchings/w_008", func_3C000_8017AEEC);
void func_3C000_8017B2FC(void) {}
void func_3C000_8017B304(void) {}
void func_3C000_8017B30C(void) {}
void func_3C000_8017B314(void) {}
void func_3C000_8017B31C(void) {}
INCLUDE_ASM("weapon/nonmatchings/w_008", func_3C000_8017B324);
INCLUDE_ASM("weapon/nonmatchings/w_008", func_3C000_8017B32C);
void func_3C000_8017BF40(void) {}
void func_3C000_8017BF48(void) {}
void func_3C000_8017BF50(void) {}
void func_3C000_8017BF58(void) {}
void func_3C000_8017BF60(void) {}
void func_3C000_8017BF68(void) {}
void func_3C000_8017BF70(void) {}

51
src/weapon/w_009.c Normal file
View File

@ -0,0 +1,51 @@
#include "weapon_private.h"
INCLUDE_ASM("weapon/nonmatchings/w_009", func_43000_8017AB4C);
INCLUDE_ASM("weapon/nonmatchings/w_009", func_43000_8017ABB8);
INCLUDE_ASM("weapon/nonmatchings/w_009", func_43000_8017AC50);
INCLUDE_ASM("weapon/nonmatchings/w_009", func_43000_8017AC78);
INCLUDE_ASM("weapon/nonmatchings/w_009", func_43000_8017ACA0);
INCLUDE_ASM("weapon/nonmatchings/w_009", func_43000_8017ACC8);
INCLUDE_ASM("weapon/nonmatchings/w_009", func_43000_8017AD10);
INCLUDE_ASM("weapon/nonmatchings/w_009", func_43000_8017AD58);
INCLUDE_ASM("weapon/nonmatchings/w_009", func_43000_8017AD80);
INCLUDE_ASM("weapon/nonmatchings/w_009", func_43000_8017ADF0);
INCLUDE_ASM("weapon/nonmatchings/w_009", func_43000_8017AEEC);
void func_43000_8017B2FC(void) {}
void func_43000_8017B304(void) {}
void func_43000_8017B30C(void) {}
void func_43000_8017B314(void) {}
void func_43000_8017B31C(void) {}
INCLUDE_ASM("weapon/nonmatchings/w_009", func_43000_8017B324);
INCLUDE_ASM("weapon/nonmatchings/w_009", func_43000_8017B32C);
void func_43000_8017C0B8(void) {}
void func_43000_8017C0C0(void) {}
void func_43000_8017C0C8(void) {}
void func_43000_8017C0D0(void) {}
void func_43000_8017C0D8(void) {}
void func_43000_8017C0E0(void) {}
void func_43000_8017C0E8(void) {}

55
src/weapon/w_010.c Normal file
View File

@ -0,0 +1,55 @@
#include "weapon_private.h"
INCLUDE_ASM("weapon/nonmatchings/w_010", func_4A000_8017ACC0);
INCLUDE_ASM("weapon/nonmatchings/w_010", func_4A000_8017AD2C);
INCLUDE_ASM("weapon/nonmatchings/w_010", func_4A000_8017ADC4);
INCLUDE_ASM("weapon/nonmatchings/w_010", func_4A000_8017ADEC);
INCLUDE_ASM("weapon/nonmatchings/w_010", func_4A000_8017AE14);
INCLUDE_ASM("weapon/nonmatchings/w_010", func_4A000_8017AE3C);
INCLUDE_ASM("weapon/nonmatchings/w_010", func_4A000_8017AE84);
INCLUDE_ASM("weapon/nonmatchings/w_010", func_4A000_8017AECC);
INCLUDE_ASM("weapon/nonmatchings/w_010", func_4A000_8017AEF4);
INCLUDE_ASM("weapon/nonmatchings/w_010", func_4A000_8017AF64);
INCLUDE_ASM("weapon/nonmatchings/w_010", func_4A000_8017B060);
INCLUDE_ASM("weapon/nonmatchings/w_010", func_4A000_8017B100);
INCLUDE_ASM("weapon/nonmatchings/w_010", func_4A000_8017B164);
INCLUDE_ASM("weapon/nonmatchings/w_010", func_4A000_8017B5E4);
void func_4A000_8017B6FC(void) {}
void func_4A000_8017B704(void) {}
void func_4A000_8017B70C(void) {}
void func_4A000_8017B714(void) {}
INCLUDE_ASM("weapon/nonmatchings/w_010", func_4A000_8017B71C);
INCLUDE_ASM("weapon/nonmatchings/w_010", func_4A000_8017B724);
INCLUDE_ASM("weapon/nonmatchings/w_010", func_4A000_8017C2E0);
void func_4A000_8017CBEC(void) {}
void func_4A000_8017CBF4(void) {}
void func_4A000_8017CBFC(void) {}
void func_4A000_8017CC04(void) {}
void func_4A000_8017CC0C(void) {}
void func_4A000_8017CC14(void) {}

51
src/weapon/w_011.c Normal file
View File

@ -0,0 +1,51 @@
#include "weapon_private.h"
INCLUDE_ASM("weapon/nonmatchings/w_011", func_51000_8017ACDC);
INCLUDE_ASM("weapon/nonmatchings/w_011", func_51000_8017AD48);
INCLUDE_ASM("weapon/nonmatchings/w_011", func_51000_8017ADE0);
INCLUDE_ASM("weapon/nonmatchings/w_011", func_51000_8017AE08);
INCLUDE_ASM("weapon/nonmatchings/w_011", func_51000_8017AE30);
INCLUDE_ASM("weapon/nonmatchings/w_011", func_51000_8017AE58);
INCLUDE_ASM("weapon/nonmatchings/w_011", func_51000_8017AEA0);
INCLUDE_ASM("weapon/nonmatchings/w_011", func_51000_8017AEE8);
INCLUDE_ASM("weapon/nonmatchings/w_011", func_51000_8017AF10);
INCLUDE_ASM("weapon/nonmatchings/w_011", func_51000_8017AF80);
INCLUDE_ASM("weapon/nonmatchings/w_011", func_51000_8017B07C);
void func_51000_8017B48C(void) {}
void func_51000_8017B494(void) {}
void func_51000_8017B49C(void) {}
void func_51000_8017B4A4(void) {}
void func_51000_8017B4AC(void) {}
INCLUDE_ASM("weapon/nonmatchings/w_011", func_51000_8017B4B4);
INCLUDE_ASM("weapon/nonmatchings/w_011", func_51000_8017B4BC);
INCLUDE_ASM("weapon/nonmatchings/w_011", func_51000_8017C0B4);
void func_51000_8017C7E0(void) {}
void func_51000_8017C7E8(void) {}
void func_51000_8017C7F0(void) {}
void func_51000_8017C7F8(void) {}
void func_51000_8017C800(void) {}
void func_51000_8017C808(void) {}

51
src/weapon/w_012.c Normal file
View File

@ -0,0 +1,51 @@
#include "weapon_private.h"
INCLUDE_ASM("weapon/nonmatchings/w_012", func_58000_8017AACC);
INCLUDE_ASM("weapon/nonmatchings/w_012", func_58000_8017AB38);
INCLUDE_ASM("weapon/nonmatchings/w_012", func_58000_8017ABD0);
INCLUDE_ASM("weapon/nonmatchings/w_012", func_58000_8017ABF8);
INCLUDE_ASM("weapon/nonmatchings/w_012", func_58000_8017AC20);
INCLUDE_ASM("weapon/nonmatchings/w_012", func_58000_8017AC48);
INCLUDE_ASM("weapon/nonmatchings/w_012", func_58000_8017AC90);
INCLUDE_ASM("weapon/nonmatchings/w_012", func_58000_8017ACD8);
INCLUDE_ASM("weapon/nonmatchings/w_012", func_58000_8017AD00);
INCLUDE_ASM("weapon/nonmatchings/w_012", func_58000_8017AD70);
INCLUDE_ASM("weapon/nonmatchings/w_012", func_58000_8017AE6C);
INCLUDE_ASM("weapon/nonmatchings/w_012", func_58000_8017B484);
INCLUDE_ASM("weapon/nonmatchings/w_012", func_58000_8017B9D0);
void func_58000_8017BAC8(void) {}
void func_58000_8017BAD0(void) {}
void func_58000_8017BAD8(void) {}
INCLUDE_ASM("weapon/nonmatchings/w_012", func_58000_8017BAE0);
void func_58000_8017BAE8(void) {}
void func_58000_8017BAF0(void) {}
void func_58000_8017BAF8(void) {}
void func_58000_8017BB00(void) {}
void func_58000_8017BB08(void) {}
void func_58000_8017BB10(void) {}
void func_58000_8017BB18(void) {}
void func_58000_8017BB20(void) {}

53
src/weapon/w_013.c Normal file
View File

@ -0,0 +1,53 @@
#include "weapon_private.h"
INCLUDE_ASM("weapon/nonmatchings/w_013", func_5F000_8017A62C);
INCLUDE_ASM("weapon/nonmatchings/w_013", func_5F000_8017A698);
INCLUDE_ASM("weapon/nonmatchings/w_013", func_5F000_8017A730);
INCLUDE_ASM("weapon/nonmatchings/w_013", func_5F000_8017A758);
INCLUDE_ASM("weapon/nonmatchings/w_013", func_5F000_8017A780);
INCLUDE_ASM("weapon/nonmatchings/w_013", func_5F000_8017A7A8);
INCLUDE_ASM("weapon/nonmatchings/w_013", func_5F000_8017A7F0);
INCLUDE_ASM("weapon/nonmatchings/w_013", func_5F000_8017A838);
INCLUDE_ASM("weapon/nonmatchings/w_013", func_5F000_8017A860);
INCLUDE_ASM("weapon/nonmatchings/w_013", func_5F000_8017A8D0);
INCLUDE_ASM("weapon/nonmatchings/w_013", func_5F000_8017A9CC);
INCLUDE_ASM("weapon/nonmatchings/w_013", func_5F000_8017AAC4);
INCLUDE_ASM("weapon/nonmatchings/w_013", func_5F000_8017B148);
INCLUDE_ASM("weapon/nonmatchings/w_013", func_5F000_8017B240);
INCLUDE_ASM("weapon/nonmatchings/w_013", func_5F000_8017B954);
void func_5F000_8017BBB8(void) {}
void func_5F000_8017BBC0(void) {}
INCLUDE_ASM("weapon/nonmatchings/w_013", func_5F000_8017BBC8);
void func_5F000_8017BBD0(void) {}
void func_5F000_8017BBD8(void) {}
void func_5F000_8017BBE0(void) {}
void func_5F000_8017BBE8(void) {}
void func_5F000_8017BBF0(void) {}
void func_5F000_8017BBF8(void) {}
void func_5F000_8017BC00(void) {}
void func_5F000_8017BC08(void) {}

51
src/weapon/w_014.c Normal file
View File

@ -0,0 +1,51 @@
#include "weapon_private.h"
INCLUDE_ASM("weapon/nonmatchings/w_014", func_66000_8017A5BC);
INCLUDE_ASM("weapon/nonmatchings/w_014", func_66000_8017A628);
INCLUDE_ASM("weapon/nonmatchings/w_014", func_66000_8017A6C0);
INCLUDE_ASM("weapon/nonmatchings/w_014", func_66000_8017A6E8);
INCLUDE_ASM("weapon/nonmatchings/w_014", func_66000_8017A710);
INCLUDE_ASM("weapon/nonmatchings/w_014", func_66000_8017A738);
INCLUDE_ASM("weapon/nonmatchings/w_014", func_66000_8017A780);
INCLUDE_ASM("weapon/nonmatchings/w_014", func_66000_8017A7C8);
INCLUDE_ASM("weapon/nonmatchings/w_014", func_66000_8017A7F0);
INCLUDE_ASM("weapon/nonmatchings/w_014", func_66000_8017A860);
INCLUDE_ASM("weapon/nonmatchings/w_014", func_66000_8017A95C);
INCLUDE_ASM("weapon/nonmatchings/w_014", func_66000_8017B2C8);
void func_66000_8017B51C(void) {}
void func_66000_8017B524(void) {}
void func_66000_8017B52C(void) {}
void func_66000_8017B534(void) {}
INCLUDE_ASM("weapon/nonmatchings/w_014", func_66000_8017B53C);
void func_66000_8017B544(void) {}
void func_66000_8017B54C(void) {}
void func_66000_8017B554(void) {}
void func_66000_8017B55C(void) {}
void func_66000_8017B564(void) {}
void func_66000_8017B56C(void) {}
void func_66000_8017B574(void) {}
void func_66000_8017B57C(void) {}

51
src/weapon/w_015.c Normal file
View File

@ -0,0 +1,51 @@
#include "weapon_private.h"
INCLUDE_ASM("weapon/nonmatchings/w_015", func_6D000_8017A7E4);
INCLUDE_ASM("weapon/nonmatchings/w_015", func_6D000_8017A850);
INCLUDE_ASM("weapon/nonmatchings/w_015", func_6D000_8017A8E8);
INCLUDE_ASM("weapon/nonmatchings/w_015", func_6D000_8017A910);
INCLUDE_ASM("weapon/nonmatchings/w_015", func_6D000_8017A938);
INCLUDE_ASM("weapon/nonmatchings/w_015", func_6D000_8017A960);
INCLUDE_ASM("weapon/nonmatchings/w_015", func_6D000_8017A9A8);
INCLUDE_ASM("weapon/nonmatchings/w_015", func_6D000_8017A9F0);
INCLUDE_ASM("weapon/nonmatchings/w_015", func_6D000_8017AA18);
INCLUDE_ASM("weapon/nonmatchings/w_015", func_6D000_8017AA88);
INCLUDE_ASM("weapon/nonmatchings/w_015", func_6D000_8017AB84);
INCLUDE_ASM("weapon/nonmatchings/w_015", func_6D000_8017AF14);
INCLUDE_ASM("weapon/nonmatchings/w_015", func_6D000_8017B00C);
INCLUDE_ASM("weapon/nonmatchings/w_015", func_6D000_8017B17C);
INCLUDE_ASM("weapon/nonmatchings/w_015", func_6D000_8017BA04);
INCLUDE_ASM("weapon/nonmatchings/w_015", func_6D000_8017BD34);
INCLUDE_ASM("weapon/nonmatchings/w_015", func_6D000_8017BF80);
void func_6D000_8017BF88(void) {}
void func_6D000_8017BF90(void) {}
void func_6D000_8017BF98(void) {}
void func_6D000_8017BFA0(void) {}
void func_6D000_8017BFA8(void) {}
void func_6D000_8017BFB0(void) {}
void func_6D000_8017BFB8(void) {}
void func_6D000_8017BFC0(void) {}

51
src/weapon/w_016.c Normal file
View File

@ -0,0 +1,51 @@
#include "weapon_private.h"
INCLUDE_ASM("weapon/nonmatchings/w_016", func_74000_8017A60C);
INCLUDE_ASM("weapon/nonmatchings/w_016", func_74000_8017A678);
INCLUDE_ASM("weapon/nonmatchings/w_016", func_74000_8017A710);
INCLUDE_ASM("weapon/nonmatchings/w_016", func_74000_8017A738);
INCLUDE_ASM("weapon/nonmatchings/w_016", func_74000_8017A760);
INCLUDE_ASM("weapon/nonmatchings/w_016", func_74000_8017A788);
INCLUDE_ASM("weapon/nonmatchings/w_016", func_74000_8017A7D0);
INCLUDE_ASM("weapon/nonmatchings/w_016", func_74000_8017A818);
INCLUDE_ASM("weapon/nonmatchings/w_016", func_74000_8017A840);
INCLUDE_ASM("weapon/nonmatchings/w_016", func_74000_8017A8B0);
INCLUDE_ASM("weapon/nonmatchings/w_016", func_74000_8017A9AC);
INCLUDE_ASM("weapon/nonmatchings/w_016", func_74000_8017AD90);
INCLUDE_ASM("weapon/nonmatchings/w_016", func_74000_8017AEA0);
INCLUDE_ASM("weapon/nonmatchings/w_016", func_74000_8017B234);
INCLUDE_ASM("weapon/nonmatchings/w_016", func_74000_8017B448);
INCLUDE_ASM("weapon/nonmatchings/w_016", func_74000_8017B5C4);
INCLUDE_ASM("weapon/nonmatchings/w_016", func_74000_8017BD2C);
void func_74000_8017BD34(void) {}
void func_74000_8017BD3C(void) {}
void func_74000_8017BD44(void) {}
void func_74000_8017BD4C(void) {}
void func_74000_8017BD54(void) {}
void func_74000_8017BD5C(void) {}
void func_74000_8017BD64(void) {}
void func_74000_8017BD6C(void) {}

51
src/weapon/w_017.c Normal file
View File

@ -0,0 +1,51 @@
#include "weapon_private.h"
INCLUDE_ASM("weapon/nonmatchings/w_017", func_7B000_8017A3AC);
INCLUDE_ASM("weapon/nonmatchings/w_017", func_7B000_8017A418);
INCLUDE_ASM("weapon/nonmatchings/w_017", func_7B000_8017A4B0);
INCLUDE_ASM("weapon/nonmatchings/w_017", func_7B000_8017A4D8);
INCLUDE_ASM("weapon/nonmatchings/w_017", func_7B000_8017A500);
INCLUDE_ASM("weapon/nonmatchings/w_017", func_7B000_8017A528);
INCLUDE_ASM("weapon/nonmatchings/w_017", func_7B000_8017A570);
INCLUDE_ASM("weapon/nonmatchings/w_017", func_7B000_8017A5B8);
INCLUDE_ASM("weapon/nonmatchings/w_017", func_7B000_8017A5E0);
INCLUDE_ASM("weapon/nonmatchings/w_017", func_7B000_8017A650);
INCLUDE_ASM("weapon/nonmatchings/w_017", func_7B000_8017A74C);
void func_7B000_8017B084(void) {}
void func_7B000_8017B08C(void) {}
void func_7B000_8017B094(void) {}
void func_7B000_8017B09C(void) {}
void func_7B000_8017B0A4(void) {}
INCLUDE_ASM("weapon/nonmatchings/w_017", func_7B000_8017B0AC);
void func_7B000_8017B0B4(void) {}
void func_7B000_8017B0BC(void) {}
void func_7B000_8017B0C4(void) {}
void func_7B000_8017B0CC(void) {}
void func_7B000_8017B0D4(void) {}
void func_7B000_8017B0DC(void) {}
void func_7B000_8017B0E4(void) {}
void func_7B000_8017B0EC(void) {}

55
src/weapon/w_018.c Normal file
View File

@ -0,0 +1,55 @@
#include "weapon_private.h"
INCLUDE_ASM("weapon/nonmatchings/w_018", func_82000_8017A740);
INCLUDE_ASM("weapon/nonmatchings/w_018", func_82000_8017A7AC);
INCLUDE_ASM("weapon/nonmatchings/w_018", func_82000_8017A844);
INCLUDE_ASM("weapon/nonmatchings/w_018", func_82000_8017A86C);
INCLUDE_ASM("weapon/nonmatchings/w_018", func_82000_8017A894);
INCLUDE_ASM("weapon/nonmatchings/w_018", func_82000_8017A8BC);
INCLUDE_ASM("weapon/nonmatchings/w_018", func_82000_8017A904);
INCLUDE_ASM("weapon/nonmatchings/w_018", func_82000_8017A94C);
INCLUDE_ASM("weapon/nonmatchings/w_018", func_82000_8017A974);
INCLUDE_ASM("weapon/nonmatchings/w_018", func_82000_8017A9E4);
INCLUDE_ASM("weapon/nonmatchings/w_018", func_82000_8017AAE0);
INCLUDE_ASM("weapon/nonmatchings/w_018", func_82000_8017AB80);
INCLUDE_ASM("weapon/nonmatchings/w_018", func_82000_8017ABE4);
INCLUDE_ASM("weapon/nonmatchings/w_018", func_82000_8017AF10);
void func_82000_8017B14C(void) {}
void func_82000_8017B154(void) {}
void func_82000_8017B15C(void) {}
void func_82000_8017B164(void) {}
INCLUDE_ASM("weapon/nonmatchings/w_018", func_82000_8017B16C);
void func_82000_8017B174(void) {}
void func_82000_8017B17C(void) {}
void func_82000_8017B184(void) {}
void func_82000_8017B18C(void) {}
void func_82000_8017B194(void) {}
void func_82000_8017B19C(void) {}
void func_82000_8017B1A4(void) {}
void func_82000_8017B1AC(void) {}

51
src/weapon/w_019.c Normal file
View File

@ -0,0 +1,51 @@
#include "weapon_private.h"
INCLUDE_ASM("weapon/nonmatchings/w_019", func_89000_8017A554);
INCLUDE_ASM("weapon/nonmatchings/w_019", func_89000_8017A5C0);
INCLUDE_ASM("weapon/nonmatchings/w_019", func_89000_8017A658);
INCLUDE_ASM("weapon/nonmatchings/w_019", func_89000_8017A680);
INCLUDE_ASM("weapon/nonmatchings/w_019", func_89000_8017A6A8);
INCLUDE_ASM("weapon/nonmatchings/w_019", func_89000_8017A6D0);
INCLUDE_ASM("weapon/nonmatchings/w_019", func_89000_8017A718);
INCLUDE_ASM("weapon/nonmatchings/w_019", func_89000_8017A760);
INCLUDE_ASM("weapon/nonmatchings/w_019", func_89000_8017A788);
INCLUDE_ASM("weapon/nonmatchings/w_019", func_89000_8017A7F8);
INCLUDE_ASM("weapon/nonmatchings/w_019", func_89000_8017A8F4);
void func_89000_8017AD44(void) {}
void func_89000_8017AD4C(void) {}
void func_89000_8017AD54(void) {}
void func_89000_8017AD5C(void) {}
void func_89000_8017AD64(void) {}
INCLUDE_ASM("weapon/nonmatchings/w_019", func_89000_8017AD6C);
void func_89000_8017AD74(void) {}
void func_89000_8017AD7C(void) {}
void func_89000_8017AD84(void) {}
void func_89000_8017AD8C(void) {}
void func_89000_8017AD94(void) {}
void func_89000_8017AD9C(void) {}
void func_89000_8017ADA4(void) {}
void func_89000_8017ADAC(void) {}

51
src/weapon/w_020.c Normal file
View File

@ -0,0 +1,51 @@
#include "weapon_private.h"
INCLUDE_ASM("weapon/nonmatchings/w_020", func_90000_8017ABC8);
INCLUDE_ASM("weapon/nonmatchings/w_020", func_90000_8017AC34);
INCLUDE_ASM("weapon/nonmatchings/w_020", func_90000_8017ACCC);
INCLUDE_ASM("weapon/nonmatchings/w_020", func_90000_8017ACF4);
INCLUDE_ASM("weapon/nonmatchings/w_020", func_90000_8017AD1C);
INCLUDE_ASM("weapon/nonmatchings/w_020", func_90000_8017AD44);
INCLUDE_ASM("weapon/nonmatchings/w_020", func_90000_8017AD8C);
INCLUDE_ASM("weapon/nonmatchings/w_020", func_90000_8017ADD4);
INCLUDE_ASM("weapon/nonmatchings/w_020", func_90000_8017ADFC);
INCLUDE_ASM("weapon/nonmatchings/w_020", func_90000_8017AE6C);
INCLUDE_ASM("weapon/nonmatchings/w_020", func_90000_8017AF68);
void func_90000_8017BFD0(void) {}
INCLUDE_ASM("weapon/nonmatchings/w_020", func_90000_8017BFD8);
void func_90000_8017C1D8(void) {}
void func_90000_8017C1E0(void) {}
void func_90000_8017C1E8(void) {}
INCLUDE_ASM("weapon/nonmatchings/w_020", func_90000_8017C1F0);
void func_90000_8017C1F8(void) {}
void func_90000_8017C200(void) {}
void func_90000_8017C208(void) {}
void func_90000_8017C210(void) {}
void func_90000_8017C218(void) {}
void func_90000_8017C220(void) {}
void func_90000_8017C228(void) {}
void func_90000_8017C230(void) {}

55
src/weapon/w_021.c Normal file
View File

@ -0,0 +1,55 @@
#include "weapon_private.h"
INCLUDE_ASM("weapon/nonmatchings/w_021", func_97000_8017A7B4);
INCLUDE_ASM("weapon/nonmatchings/w_021", func_97000_8017A820);
INCLUDE_ASM("weapon/nonmatchings/w_021", func_97000_8017A8B8);
INCLUDE_ASM("weapon/nonmatchings/w_021", func_97000_8017A8E0);
INCLUDE_ASM("weapon/nonmatchings/w_021", func_97000_8017A908);
INCLUDE_ASM("weapon/nonmatchings/w_021", func_97000_8017A930);
INCLUDE_ASM("weapon/nonmatchings/w_021", func_97000_8017A978);
INCLUDE_ASM("weapon/nonmatchings/w_021", func_97000_8017A9C0);
INCLUDE_ASM("weapon/nonmatchings/w_021", func_97000_8017A9E8);
INCLUDE_ASM("weapon/nonmatchings/w_021", func_97000_8017AA58);
INCLUDE_ASM("weapon/nonmatchings/w_021", func_97000_8017AB54);
INCLUDE_ASM("weapon/nonmatchings/w_021", func_97000_8017AF2C);
INCLUDE_ASM("weapon/nonmatchings/w_021", func_97000_8017B0A8);
INCLUDE_ASM("weapon/nonmatchings/w_021", func_97000_8017B754);
void func_97000_8017BB10(void) {}
void func_97000_8017BB18(void) {}
void func_97000_8017BB20(void) {}
void func_97000_8017BB28(void) {}
INCLUDE_ASM("weapon/nonmatchings/w_021", func_97000_8017BB30);
void func_97000_8017BB38(void) {}
void func_97000_8017BB40(void) {}
void func_97000_8017BB48(void) {}
void func_97000_8017BB50(void) {}
void func_97000_8017BB58(void) {}
void func_97000_8017BB60(void) {}
void func_97000_8017BB68(void) {}
void func_97000_8017BB70(void) {}

51
src/weapon/w_022.c Normal file
View File

@ -0,0 +1,51 @@
#include "weapon_private.h"
INCLUDE_ASM("weapon/nonmatchings/w_022", func_9E000_8017A814);
INCLUDE_ASM("weapon/nonmatchings/w_022", func_9E000_8017A880);
INCLUDE_ASM("weapon/nonmatchings/w_022", func_9E000_8017A918);
INCLUDE_ASM("weapon/nonmatchings/w_022", func_9E000_8017A940);
INCLUDE_ASM("weapon/nonmatchings/w_022", func_9E000_8017A968);
INCLUDE_ASM("weapon/nonmatchings/w_022", func_9E000_8017A990);
INCLUDE_ASM("weapon/nonmatchings/w_022", func_9E000_8017A9D8);
INCLUDE_ASM("weapon/nonmatchings/w_022", func_9E000_8017AA20);
INCLUDE_ASM("weapon/nonmatchings/w_022", func_9E000_8017AA48);
INCLUDE_ASM("weapon/nonmatchings/w_022", func_9E000_8017AAB8);
INCLUDE_ASM("weapon/nonmatchings/w_022", func_9E000_8017ABB4);
INCLUDE_ASM("weapon/nonmatchings/w_022", func_9E000_8017ADB0);
void func_9E000_8017AF18(void) {}
void func_9E000_8017AF20(void) {}
void func_9E000_8017AF28(void) {}
void func_9E000_8017AF30(void) {}
INCLUDE_ASM("weapon/nonmatchings/w_022", func_9E000_8017AF38);
void func_9E000_8017AF40(void) {}
void func_9E000_8017AF48(void) {}
void func_9E000_8017AF50(void) {}
void func_9E000_8017AF58(void) {}
void func_9E000_8017AF60(void) {}
void func_9E000_8017AF68(void) {}
void func_9E000_8017AF70(void) {}
void func_9E000_8017AF78(void) {}

51
src/weapon/w_023.c Normal file
View File

@ -0,0 +1,51 @@
#include "weapon_private.h"
INCLUDE_ASM("weapon/nonmatchings/w_023", func_A5000_8017AD80);
INCLUDE_ASM("weapon/nonmatchings/w_023", func_A5000_8017ADEC);
INCLUDE_ASM("weapon/nonmatchings/w_023", func_A5000_8017AE84);
INCLUDE_ASM("weapon/nonmatchings/w_023", func_A5000_8017AEAC);
INCLUDE_ASM("weapon/nonmatchings/w_023", func_A5000_8017AED4);
INCLUDE_ASM("weapon/nonmatchings/w_023", func_A5000_8017AEFC);
INCLUDE_ASM("weapon/nonmatchings/w_023", func_A5000_8017AF44);
INCLUDE_ASM("weapon/nonmatchings/w_023", func_A5000_8017AF8C);
INCLUDE_ASM("weapon/nonmatchings/w_023", func_A5000_8017AFB4);
INCLUDE_ASM("weapon/nonmatchings/w_023", func_A5000_8017B024);
INCLUDE_ASM("weapon/nonmatchings/w_023", func_A5000_8017B120);
void func_A5000_8017B5B0(void) {}
void func_A5000_8017B5B8(void) {}
void func_A5000_8017B5C0(void) {}
void func_A5000_8017B5C8(void) {}
void func_A5000_8017B5D0(void) {}
INCLUDE_ASM("weapon/nonmatchings/w_023", func_A5000_8017B5D8);
INCLUDE_ASM("weapon/nonmatchings/w_023", func_A5000_8017B5E0);
INCLUDE_ASM("weapon/nonmatchings/w_023", func_A5000_8017C274);
INCLUDE_ASM("weapon/nonmatchings/w_023", func_A5000_8017C750);
void func_A5000_8017C954(void) {}
void func_A5000_8017C95C(void) {}
void func_A5000_8017C964(void) {}
void func_A5000_8017C96C(void) {}
void func_A5000_8017C974(void) {}

51
src/weapon/w_024.c Normal file
View File

@ -0,0 +1,51 @@
#include "weapon_private.h"
INCLUDE_ASM("weapon/nonmatchings/w_024", func_AC000_8017ADE0);
INCLUDE_ASM("weapon/nonmatchings/w_024", func_AC000_8017AE4C);
INCLUDE_ASM("weapon/nonmatchings/w_024", func_AC000_8017AEE4);
INCLUDE_ASM("weapon/nonmatchings/w_024", func_AC000_8017AF0C);
INCLUDE_ASM("weapon/nonmatchings/w_024", func_AC000_8017AF34);
INCLUDE_ASM("weapon/nonmatchings/w_024", func_AC000_8017AF5C);
INCLUDE_ASM("weapon/nonmatchings/w_024", func_AC000_8017AFA4);
INCLUDE_ASM("weapon/nonmatchings/w_024", func_AC000_8017AFEC);
INCLUDE_ASM("weapon/nonmatchings/w_024", func_AC000_8017B014);
INCLUDE_ASM("weapon/nonmatchings/w_024", func_AC000_8017B084);
INCLUDE_ASM("weapon/nonmatchings/w_024", func_AC000_8017B180);
void func_AC000_8017B69C(void) {}
void func_AC000_8017B6A4(void) {}
void func_AC000_8017B6AC(void) {}
void func_AC000_8017B6B4(void) {}
void func_AC000_8017B6BC(void) {}
INCLUDE_ASM("weapon/nonmatchings/w_024", func_AC000_8017B6C4);
INCLUDE_ASM("weapon/nonmatchings/w_024", func_AC000_8017B6CC);
INCLUDE_ASM("weapon/nonmatchings/w_024", func_AC000_8017C5D4);
void func_AC000_8017CBC4(void) {}
void func_AC000_8017CBCC(void) {}
void func_AC000_8017CBD4(void) {}
void func_AC000_8017CBDC(void) {}
void func_AC000_8017CBE4(void) {}
void func_AC000_8017CBEC(void) {}

53
src/weapon/w_025.c Normal file
View File

@ -0,0 +1,53 @@
#include "weapon_private.h"
INCLUDE_ASM("weapon/nonmatchings/w_025", func_B3000_8017AB74);
INCLUDE_ASM("weapon/nonmatchings/w_025", func_B3000_8017ABE0);
INCLUDE_ASM("weapon/nonmatchings/w_025", func_B3000_8017AC78);
INCLUDE_ASM("weapon/nonmatchings/w_025", func_B3000_8017ACA0);
INCLUDE_ASM("weapon/nonmatchings/w_025", func_B3000_8017ACC8);
INCLUDE_ASM("weapon/nonmatchings/w_025", func_B3000_8017ACF0);
INCLUDE_ASM("weapon/nonmatchings/w_025", func_B3000_8017AD38);
INCLUDE_ASM("weapon/nonmatchings/w_025", func_B3000_8017AD80);
INCLUDE_ASM("weapon/nonmatchings/w_025", func_B3000_8017ADA8);
INCLUDE_ASM("weapon/nonmatchings/w_025", func_B3000_8017AE18);
INCLUDE_ASM("weapon/nonmatchings/w_025", func_B3000_8017AF14);
INCLUDE_ASM("weapon/nonmatchings/w_025", func_B3000_8017AF7C);
void func_B3000_8017B390(void) {}
void func_B3000_8017B398(void) {}
void func_B3000_8017B3A0(void) {}
void func_B3000_8017B3A8(void) {}
void func_B3000_8017B3B0(void) {}
INCLUDE_ASM("weapon/nonmatchings/w_025", func_B3000_8017B3B8);
INCLUDE_ASM("weapon/nonmatchings/w_025", func_B3000_8017B3C0);
INCLUDE_ASM("weapon/nonmatchings/w_025", func_B3000_8017C20C);
void func_B3000_8017C8E8(void) {}
void func_B3000_8017C8F0(void) {}
void func_B3000_8017C8F8(void) {}
void func_B3000_8017C900(void) {}
void func_B3000_8017C908(void) {}
void func_B3000_8017C910(void) {}

53
src/weapon/w_026.c Normal file
View File

@ -0,0 +1,53 @@
#include "weapon_private.h"
INCLUDE_ASM("weapon/nonmatchings/w_026", func_BA000_8017AB9C);
INCLUDE_ASM("weapon/nonmatchings/w_026", func_BA000_8017AC08);
INCLUDE_ASM("weapon/nonmatchings/w_026", func_BA000_8017ACA0);
INCLUDE_ASM("weapon/nonmatchings/w_026", func_BA000_8017ACC8);
INCLUDE_ASM("weapon/nonmatchings/w_026", func_BA000_8017ACF0);
INCLUDE_ASM("weapon/nonmatchings/w_026", func_BA000_8017AD18);
INCLUDE_ASM("weapon/nonmatchings/w_026", func_BA000_8017AD60);
INCLUDE_ASM("weapon/nonmatchings/w_026", func_BA000_8017ADA8);
INCLUDE_ASM("weapon/nonmatchings/w_026", func_BA000_8017ADD0);
INCLUDE_ASM("weapon/nonmatchings/w_026", func_BA000_8017AE40);
INCLUDE_ASM("weapon/nonmatchings/w_026", func_BA000_8017AF3C);
void func_BA000_8017B34C(void) {}
void func_BA000_8017B354(void) {}
void func_BA000_8017B35C(void) {}
void func_BA000_8017B364(void) {}
void func_BA000_8017B36C(void) {}
INCLUDE_ASM("weapon/nonmatchings/w_026", func_BA000_8017B374);
INCLUDE_ASM("weapon/nonmatchings/w_026", func_BA000_8017B37C);
INCLUDE_ASM("weapon/nonmatchings/w_026", func_BA000_8017B484);
INCLUDE_ASM("weapon/nonmatchings/w_026", func_BA000_8017C41C);
void func_BA000_8017CC0C(void) {}
void func_BA000_8017CC14(void) {}
void func_BA000_8017CC1C(void) {}
void func_BA000_8017CC24(void) {}
void func_BA000_8017CC2C(void) {}
void func_BA000_8017CC34(void) {}

55
src/weapon/w_027.c Normal file
View File

@ -0,0 +1,55 @@
#include "weapon_private.h"
INCLUDE_ASM("weapon/nonmatchings/w_027", func_C1000_8017AD54);
INCLUDE_ASM("weapon/nonmatchings/w_027", func_C1000_8017ADC0);
INCLUDE_ASM("weapon/nonmatchings/w_027", func_C1000_8017AE58);
INCLUDE_ASM("weapon/nonmatchings/w_027", func_C1000_8017AE80);
INCLUDE_ASM("weapon/nonmatchings/w_027", func_C1000_8017AEA8);
INCLUDE_ASM("weapon/nonmatchings/w_027", func_C1000_8017AED0);
INCLUDE_ASM("weapon/nonmatchings/w_027", func_C1000_8017AF18);
INCLUDE_ASM("weapon/nonmatchings/w_027", func_C1000_8017AF60);
INCLUDE_ASM("weapon/nonmatchings/w_027", func_C1000_8017AF88);
INCLUDE_ASM("weapon/nonmatchings/w_027", func_C1000_8017AFF8);
INCLUDE_ASM("weapon/nonmatchings/w_027", func_C1000_8017B0F4);
INCLUDE_ASM("weapon/nonmatchings/w_027", func_C1000_8017B194);
INCLUDE_ASM("weapon/nonmatchings/w_027", func_C1000_8017B1F8);
void func_C1000_8017B608(void) {}
void func_C1000_8017B610(void) {}
void func_C1000_8017B618(void) {}
void func_C1000_8017B620(void) {}
void func_C1000_8017B628(void) {}
INCLUDE_ASM("weapon/nonmatchings/w_027", func_C1000_8017B630);
INCLUDE_ASM("weapon/nonmatchings/w_027", func_C1000_8017B638);
INCLUDE_ASM("weapon/nonmatchings/w_027", func_C1000_8017BBBC);
INCLUDE_ASM("weapon/nonmatchings/w_027", func_C1000_8017C5CC);
void func_C1000_8017C6C4(void) {}
void func_C1000_8017C6CC(void) {}
void func_C1000_8017C6D4(void) {}
void func_C1000_8017C6DC(void) {}
void func_C1000_8017C6E4(void) {}

53
src/weapon/w_028.c Normal file
View File

@ -0,0 +1,53 @@
#include "weapon_private.h"
INCLUDE_ASM("weapon/nonmatchings/w_028", func_C8000_8017ABF4);
INCLUDE_ASM("weapon/nonmatchings/w_028", func_C8000_8017AC60);
INCLUDE_ASM("weapon/nonmatchings/w_028", func_C8000_8017ACF8);
INCLUDE_ASM("weapon/nonmatchings/w_028", func_C8000_8017AD20);
INCLUDE_ASM("weapon/nonmatchings/w_028", func_C8000_8017AD48);
INCLUDE_ASM("weapon/nonmatchings/w_028", func_C8000_8017AD70);
INCLUDE_ASM("weapon/nonmatchings/w_028", func_C8000_8017ADB8);
INCLUDE_ASM("weapon/nonmatchings/w_028", func_C8000_8017AE00);
INCLUDE_ASM("weapon/nonmatchings/w_028", func_C8000_8017AE28);
INCLUDE_ASM("weapon/nonmatchings/w_028", func_C8000_8017AE98);
INCLUDE_ASM("weapon/nonmatchings/w_028", func_C8000_8017AF94);
void func_C8000_8017B3A4(void) {}
void func_C8000_8017B3AC(void) {}
void func_C8000_8017B3B4(void) {}
void func_C8000_8017B3BC(void) {}
void func_C8000_8017B3C4(void) {}
INCLUDE_ASM("weapon/nonmatchings/w_028", func_C8000_8017B3CC);
INCLUDE_ASM("weapon/nonmatchings/w_028", func_C8000_8017B3D4);
INCLUDE_ASM("weapon/nonmatchings/w_028", func_C8000_8017B4D8);
INCLUDE_ASM("weapon/nonmatchings/w_028", func_C8000_8017C318);
void func_C8000_8017C924(void) {}
void func_C8000_8017C92C(void) {}
void func_C8000_8017C934(void) {}
void func_C8000_8017C93C(void) {}
void func_C8000_8017C944(void) {}
void func_C8000_8017C94C(void) {}

49
src/weapon/w_029.c Normal file
View File

@ -0,0 +1,49 @@
#include "weapon_private.h"
INCLUDE_ASM("weapon/nonmatchings/w_029", func_CF000_8017ADD8);
INCLUDE_ASM("weapon/nonmatchings/w_029", func_CF000_8017AE44);
INCLUDE_ASM("weapon/nonmatchings/w_029", func_CF000_8017AEE8);
INCLUDE_ASM("weapon/nonmatchings/w_029", func_CF000_8017AF10);
INCLUDE_ASM("weapon/nonmatchings/w_029", func_CF000_8017AF38);
INCLUDE_ASM("weapon/nonmatchings/w_029", func_CF000_8017AF80);
INCLUDE_ASM("weapon/nonmatchings/w_029", func_CF000_8017AFC8);
INCLUDE_ASM("weapon/nonmatchings/w_029", func_CF000_8017AFF8);
INCLUDE_ASM("weapon/nonmatchings/w_029", func_CF000_8017B06C);
INCLUDE_ASM("weapon/nonmatchings/w_029", func_CF000_8017B168);
INCLUDE_ASM("weapon/nonmatchings/w_029", func_CF000_8017B650);
void func_CF000_8017B7E0(void) {}
void func_CF000_8017B7E8(void) {}
void func_CF000_8017B7F0(void) {}
void func_CF000_8017B7F8(void) {}
INCLUDE_ASM("weapon/nonmatchings/w_029", func_CF000_8017B800);
INCLUDE_ASM("weapon/nonmatchings/w_029", func_CF000_8017B808);
INCLUDE_ASM("weapon/nonmatchings/w_029", func_CF000_8017BE78);
INCLUDE_ASM("weapon/nonmatchings/w_029", func_CF000_8017C8C4);
void func_CF000_8017C978(void) {}
void func_CF000_8017C980(void) {}
void func_CF000_8017C988(void) {}
void func_CF000_8017C990(void) {}
void func_CF000_8017C998(void) {}

47
src/weapon/w_030.c Normal file
View File

@ -0,0 +1,47 @@
#include "weapon_private.h"
INCLUDE_ASM("weapon/nonmatchings/w_030", func_D6000_8017A6DC);
INCLUDE_ASM("weapon/nonmatchings/w_030", func_D6000_8017A748);
INCLUDE_ASM("weapon/nonmatchings/w_030", func_D6000_8017A7E0);
INCLUDE_ASM("weapon/nonmatchings/w_030", func_D6000_8017A808);
INCLUDE_ASM("weapon/nonmatchings/w_030", func_D6000_8017A830);
INCLUDE_ASM("weapon/nonmatchings/w_030", func_D6000_8017A878);
INCLUDE_ASM("weapon/nonmatchings/w_030", func_D6000_8017A8C0);
INCLUDE_ASM("weapon/nonmatchings/w_030", func_D6000_8017A8E8);
INCLUDE_ASM("weapon/nonmatchings/w_030", func_D6000_8017A9E4);
INCLUDE_ASM("weapon/nonmatchings/w_030", func_D6000_8017ABE0);
INCLUDE_ASM("weapon/nonmatchings/w_030", func_D6000_8017B7EC);
INCLUDE_ASM("weapon/nonmatchings/w_030", func_D6000_8017C3FC);
INCLUDE_ASM("weapon/nonmatchings/w_030", func_D6000_8017C87C);
void func_D6000_8017CBF4(void) {}
INCLUDE_ASM("weapon/nonmatchings/w_030", func_D6000_8017CBFC);
void func_D6000_8017CC04(void) {}
void func_D6000_8017CC0C(void) {}
void func_D6000_8017CC14(void) {}
void func_D6000_8017CC1C(void) {}
void func_D6000_8017CC24(void) {}
void func_D6000_8017CC2C(void) {}
void func_D6000_8017CC34(void) {}
void func_D6000_8017CC3C(void) {}

51
src/weapon/w_031.c Normal file
View File

@ -0,0 +1,51 @@
#include "weapon_private.h"
INCLUDE_ASM("weapon/nonmatchings/w_031", func_DD000_8017A918);
INCLUDE_ASM("weapon/nonmatchings/w_031", func_DD000_8017A984);
INCLUDE_ASM("weapon/nonmatchings/w_031", func_DD000_8017AA1C);
INCLUDE_ASM("weapon/nonmatchings/w_031", func_DD000_8017AA44);
INCLUDE_ASM("weapon/nonmatchings/w_031", func_DD000_8017AA6C);
INCLUDE_ASM("weapon/nonmatchings/w_031", func_DD000_8017AA94);
INCLUDE_ASM("weapon/nonmatchings/w_031", func_DD000_8017AADC);
INCLUDE_ASM("weapon/nonmatchings/w_031", func_DD000_8017AB24);
INCLUDE_ASM("weapon/nonmatchings/w_031", func_DD000_8017AB4C);
INCLUDE_ASM("weapon/nonmatchings/w_031", func_DD000_8017ABBC);
INCLUDE_ASM("weapon/nonmatchings/w_031", func_DD000_8017ACB8);
void func_DD000_8017AF18(void) {}
void func_DD000_8017AF20(void) {}
void func_DD000_8017AF28(void) {}
void func_DD000_8017AF30(void) {}
void func_DD000_8017AF38(void) {}
INCLUDE_ASM("weapon/nonmatchings/w_031", func_DD000_8017AF40);
void func_DD000_8017AF48(void) {}
void func_DD000_8017AF50(void) {}
void func_DD000_8017AF58(void) {}
void func_DD000_8017AF60(void) {}
void func_DD000_8017AF68(void) {}
void func_DD000_8017AF70(void) {}
void func_DD000_8017AF78(void) {}
void func_DD000_8017AF80(void) {}

51
src/weapon/w_032.c Normal file
View File

@ -0,0 +1,51 @@
#include "weapon_private.h"
INCLUDE_ASM("weapon/nonmatchings/w_032", func_E4000_8017A924);
INCLUDE_ASM("weapon/nonmatchings/w_032", func_E4000_8017A990);
INCLUDE_ASM("weapon/nonmatchings/w_032", func_E4000_8017AA28);
INCLUDE_ASM("weapon/nonmatchings/w_032", func_E4000_8017AA50);
INCLUDE_ASM("weapon/nonmatchings/w_032", func_E4000_8017AA78);
INCLUDE_ASM("weapon/nonmatchings/w_032", func_E4000_8017AAA0);
INCLUDE_ASM("weapon/nonmatchings/w_032", func_E4000_8017AAE8);
INCLUDE_ASM("weapon/nonmatchings/w_032", func_E4000_8017AB30);
INCLUDE_ASM("weapon/nonmatchings/w_032", func_E4000_8017AB58);
INCLUDE_ASM("weapon/nonmatchings/w_032", func_E4000_8017ABC8);
INCLUDE_ASM("weapon/nonmatchings/w_032", func_E4000_8017ACC4);
void func_E4000_8017AFB0(void) {}
void func_E4000_8017AFB8(void) {}
void func_E4000_8017AFC0(void) {}
void func_E4000_8017AFC8(void) {}
void func_E4000_8017AFD0(void) {}
INCLUDE_ASM("weapon/nonmatchings/w_032", func_E4000_8017AFD8);
void func_E4000_8017AFE0(void) {}
void func_E4000_8017AFE8(void) {}
void func_E4000_8017AFF0(void) {}
void func_E4000_8017AFF8(void) {}
void func_E4000_8017B000(void) {}
void func_E4000_8017B008(void) {}
void func_E4000_8017B010(void) {}
void func_E4000_8017B018(void) {}

51
src/weapon/w_033.c Normal file
View File

@ -0,0 +1,51 @@
#include "weapon_private.h"
INCLUDE_ASM("weapon/nonmatchings/w_033", func_EB000_8017AC58);
INCLUDE_ASM("weapon/nonmatchings/w_033", func_EB000_8017ACC4);
INCLUDE_ASM("weapon/nonmatchings/w_033", func_EB000_8017AD5C);
INCLUDE_ASM("weapon/nonmatchings/w_033", func_EB000_8017AD84);
INCLUDE_ASM("weapon/nonmatchings/w_033", func_EB000_8017ADAC);
INCLUDE_ASM("weapon/nonmatchings/w_033", func_EB000_8017ADD4);
INCLUDE_ASM("weapon/nonmatchings/w_033", func_EB000_8017AE1C);
INCLUDE_ASM("weapon/nonmatchings/w_033", func_EB000_8017AE64);
INCLUDE_ASM("weapon/nonmatchings/w_033", func_EB000_8017AE8C);
INCLUDE_ASM("weapon/nonmatchings/w_033", func_EB000_8017AEFC);
INCLUDE_ASM("weapon/nonmatchings/w_033", func_EB000_8017AFF8);
void func_EB000_8017B258(void) {}
void func_EB000_8017B260(void) {}
void func_EB000_8017B268(void) {}
void func_EB000_8017B270(void) {}
void func_EB000_8017B278(void) {}
INCLUDE_ASM("weapon/nonmatchings/w_033", func_EB000_8017B280);
void func_EB000_8017B288(void) {}
void func_EB000_8017B290(void) {}
void func_EB000_8017B298(void) {}
void func_EB000_8017B2A0(void) {}
void func_EB000_8017B2A8(void) {}
void func_EB000_8017B2B0(void) {}
void func_EB000_8017B2B8(void) {}
void func_EB000_8017B2C0(void) {}

51
src/weapon/w_034.c Normal file
View File

@ -0,0 +1,51 @@
#include "weapon_private.h"
INCLUDE_ASM("weapon/nonmatchings/w_034", func_F2000_8017A950);
INCLUDE_ASM("weapon/nonmatchings/w_034", func_F2000_8017A9BC);
INCLUDE_ASM("weapon/nonmatchings/w_034", func_F2000_8017AA54);
INCLUDE_ASM("weapon/nonmatchings/w_034", func_F2000_8017AA7C);
INCLUDE_ASM("weapon/nonmatchings/w_034", func_F2000_8017AAA4);
INCLUDE_ASM("weapon/nonmatchings/w_034", func_F2000_8017AACC);
INCLUDE_ASM("weapon/nonmatchings/w_034", func_F2000_8017AB14);
INCLUDE_ASM("weapon/nonmatchings/w_034", func_F2000_8017AB5C);
INCLUDE_ASM("weapon/nonmatchings/w_034", func_F2000_8017AB84);
INCLUDE_ASM("weapon/nonmatchings/w_034", func_F2000_8017ABF4);
INCLUDE_ASM("weapon/nonmatchings/w_034", func_F2000_8017ACF0);
INCLUDE_ASM("weapon/nonmatchings/w_034", func_F2000_8017AF0C);
void func_F2000_8017B388(void) {}
void func_F2000_8017B390(void) {}
void func_F2000_8017B398(void) {}
void func_F2000_8017B3A0(void) {}
INCLUDE_ASM("weapon/nonmatchings/w_034", func_F2000_8017B3A8);
void func_F2000_8017B3B0(void) {}
void func_F2000_8017B3B8(void) {}
void func_F2000_8017B3C0(void) {}
void func_F2000_8017B3C8(void) {}
void func_F2000_8017B3D0(void) {}
void func_F2000_8017B3D8(void) {}
void func_F2000_8017B3E0(void) {}
void func_F2000_8017B3E8(void) {}

51
src/weapon/w_035.c Normal file
View File

@ -0,0 +1,51 @@
#include "weapon_private.h"
INCLUDE_ASM("weapon/nonmatchings/w_035", func_F9000_8017A54C);
INCLUDE_ASM("weapon/nonmatchings/w_035", func_F9000_8017A5B8);
INCLUDE_ASM("weapon/nonmatchings/w_035", func_F9000_8017A650);
INCLUDE_ASM("weapon/nonmatchings/w_035", func_F9000_8017A678);
INCLUDE_ASM("weapon/nonmatchings/w_035", func_F9000_8017A6A0);
INCLUDE_ASM("weapon/nonmatchings/w_035", func_F9000_8017A6C8);
INCLUDE_ASM("weapon/nonmatchings/w_035", func_F9000_8017A710);
INCLUDE_ASM("weapon/nonmatchings/w_035", func_F9000_8017A758);
INCLUDE_ASM("weapon/nonmatchings/w_035", func_F9000_8017A780);
INCLUDE_ASM("weapon/nonmatchings/w_035", func_F9000_8017A7F0);
INCLUDE_ASM("weapon/nonmatchings/w_035", func_F9000_8017A8EC);
void func_F9000_8017AB08(void) {}
void func_F9000_8017AB10(void) {}
void func_F9000_8017AB18(void) {}
void func_F9000_8017AB20(void) {}
void func_F9000_8017AB28(void) {}
INCLUDE_ASM("weapon/nonmatchings/w_035", func_F9000_8017AB30);
void func_F9000_8017AB38(void) {}
void func_F9000_8017AB40(void) {}
void func_F9000_8017AB48(void) {}
void func_F9000_8017AB50(void) {}
void func_F9000_8017AB58(void) {}
void func_F9000_8017AB60(void) {}
void func_F9000_8017AB68(void) {}
void func_F9000_8017AB70(void) {}

51
src/weapon/w_036.c Normal file
View File

@ -0,0 +1,51 @@
#include "weapon_private.h"
INCLUDE_ASM("weapon/nonmatchings/w_036", func_100000_8017A55C);
INCLUDE_ASM("weapon/nonmatchings/w_036", func_100000_8017A5C8);
INCLUDE_ASM("weapon/nonmatchings/w_036", func_100000_8017A660);
INCLUDE_ASM("weapon/nonmatchings/w_036", func_100000_8017A688);
INCLUDE_ASM("weapon/nonmatchings/w_036", func_100000_8017A6B0);
INCLUDE_ASM("weapon/nonmatchings/w_036", func_100000_8017A6D8);
INCLUDE_ASM("weapon/nonmatchings/w_036", func_100000_8017A720);
INCLUDE_ASM("weapon/nonmatchings/w_036", func_100000_8017A768);
INCLUDE_ASM("weapon/nonmatchings/w_036", func_100000_8017A790);
INCLUDE_ASM("weapon/nonmatchings/w_036", func_100000_8017A800);
INCLUDE_ASM("weapon/nonmatchings/w_036", func_100000_8017A8FC);
void func_100000_8017AB18(void) {}
void func_100000_8017AB20(void) {}
void func_100000_8017AB28(void) {}
void func_100000_8017AB30(void) {}
void func_100000_8017AB38(void) {}
INCLUDE_ASM("weapon/nonmatchings/w_036", func_100000_8017AB40);
void func_100000_8017AB48(void) {}
void func_100000_8017AB50(void) {}
void func_100000_8017AB58(void) {}
void func_100000_8017AB60(void) {}
void func_100000_8017AB68(void) {}
void func_100000_8017AB70(void) {}
void func_100000_8017AB78(void) {}
void func_100000_8017AB80(void) {}

57
src/weapon/w_037.c Normal file
View File

@ -0,0 +1,57 @@
#include "weapon_private.h"
INCLUDE_ASM("weapon/nonmatchings/w_037", func_107000_8017A7C4);
INCLUDE_ASM("weapon/nonmatchings/w_037", func_107000_8017A830);
INCLUDE_ASM("weapon/nonmatchings/w_037", func_107000_8017A8C8);
INCLUDE_ASM("weapon/nonmatchings/w_037", func_107000_8017A8F0);
INCLUDE_ASM("weapon/nonmatchings/w_037", func_107000_8017A918);
INCLUDE_ASM("weapon/nonmatchings/w_037", func_107000_8017A940);
INCLUDE_ASM("weapon/nonmatchings/w_037", func_107000_8017A988);
INCLUDE_ASM("weapon/nonmatchings/w_037", func_107000_8017A9D0);
INCLUDE_ASM("weapon/nonmatchings/w_037", func_107000_8017A9F8);
INCLUDE_ASM("weapon/nonmatchings/w_037", func_107000_8017AA68);
INCLUDE_ASM("weapon/nonmatchings/w_037", func_107000_8017AB64);
INCLUDE_ASM("weapon/nonmatchings/w_037", func_107000_8017ADF8);
INCLUDE_ASM("weapon/nonmatchings/w_037", func_107000_8017AEF0);
INCLUDE_ASM("weapon/nonmatchings/w_037", func_107000_8017B0AC);
INCLUDE_ASM("weapon/nonmatchings/w_037", func_107000_8017B268);
INCLUDE_ASM("weapon/nonmatchings/w_037", func_107000_8017B83C);
void func_107000_8017BB84(void) {}
void func_107000_8017BB8C(void) {}
void func_107000_8017BB94(void) {}
INCLUDE_ASM("weapon/nonmatchings/w_037", func_107000_8017BB9C);
void func_107000_8017BBA4(void) {}
void func_107000_8017BBAC(void) {}
void func_107000_8017BBB4(void) {}
void func_107000_8017BBBC(void) {}
void func_107000_8017BBC4(void) {}
void func_107000_8017BBCC(void) {}
void func_107000_8017BBD4(void) {}
void func_107000_8017BBDC(void) {}

51
src/weapon/w_038.c Normal file
View File

@ -0,0 +1,51 @@
#include "weapon_private.h"
INCLUDE_ASM("weapon/nonmatchings/w_038", func_10E000_8017ADEC);
INCLUDE_ASM("weapon/nonmatchings/w_038", func_10E000_8017AE58);
INCLUDE_ASM("weapon/nonmatchings/w_038", func_10E000_8017AEF0);
INCLUDE_ASM("weapon/nonmatchings/w_038", func_10E000_8017AF18);
INCLUDE_ASM("weapon/nonmatchings/w_038", func_10E000_8017AF40);
INCLUDE_ASM("weapon/nonmatchings/w_038", func_10E000_8017AF68);
INCLUDE_ASM("weapon/nonmatchings/w_038", func_10E000_8017AFB0);
INCLUDE_ASM("weapon/nonmatchings/w_038", func_10E000_8017AFF8);
INCLUDE_ASM("weapon/nonmatchings/w_038", func_10E000_8017B020);
INCLUDE_ASM("weapon/nonmatchings/w_038", func_10E000_8017B090);
INCLUDE_ASM("weapon/nonmatchings/w_038", func_10E000_8017B18C);
INCLUDE_ASM("weapon/nonmatchings/w_038", func_10E000_8017B3E8);
void func_10E000_8017B7DC(void) {}
void func_10E000_8017B7E4(void) {}
void func_10E000_8017B7EC(void) {}
void func_10E000_8017B7F4(void) {}
INCLUDE_ASM("weapon/nonmatchings/w_038", func_10E000_8017B7FC);
void func_10E000_8017B804(void) {}
void func_10E000_8017B80C(void) {}
void func_10E000_8017B814(void) {}
void func_10E000_8017B81C(void) {}
void func_10E000_8017B824(void) {}
void func_10E000_8017B82C(void) {}
void func_10E000_8017B834(void) {}
void func_10E000_8017B83C(void) {}

51
src/weapon/w_039.c Normal file
View File

@ -0,0 +1,51 @@
#include "weapon_private.h"
INCLUDE_ASM("weapon/nonmatchings/w_039", func_115000_8017ADEC);
INCLUDE_ASM("weapon/nonmatchings/w_039", func_115000_8017AE58);
INCLUDE_ASM("weapon/nonmatchings/w_039", func_115000_8017AEF0);
INCLUDE_ASM("weapon/nonmatchings/w_039", func_115000_8017AF18);
INCLUDE_ASM("weapon/nonmatchings/w_039", func_115000_8017AF40);
INCLUDE_ASM("weapon/nonmatchings/w_039", func_115000_8017AF68);
INCLUDE_ASM("weapon/nonmatchings/w_039", func_115000_8017AFB0);
INCLUDE_ASM("weapon/nonmatchings/w_039", func_115000_8017AFF8);
INCLUDE_ASM("weapon/nonmatchings/w_039", func_115000_8017B020);
INCLUDE_ASM("weapon/nonmatchings/w_039", func_115000_8017B090);
INCLUDE_ASM("weapon/nonmatchings/w_039", func_115000_8017B18C);
INCLUDE_ASM("weapon/nonmatchings/w_039", func_115000_8017B3E8);
void func_115000_8017B9C0(void) {}
void func_115000_8017B9C8(void) {}
void func_115000_8017B9D0(void) {}
void func_115000_8017B9D8(void) {}
INCLUDE_ASM("weapon/nonmatchings/w_039", func_115000_8017B9E0);
void func_115000_8017B9E8(void) {}
void func_115000_8017B9F0(void) {}
void func_115000_8017B9F8(void) {}
void func_115000_8017BA00(void) {}
void func_115000_8017BA08(void) {}
void func_115000_8017BA10(void) {}
void func_115000_8017BA18(void) {}
void func_115000_8017BA20(void) {}

53
src/weapon/w_040.c Normal file
View File

@ -0,0 +1,53 @@
#include "weapon_private.h"
INCLUDE_ASM("weapon/nonmatchings/w_040", func_11C000_8017A874);
INCLUDE_ASM("weapon/nonmatchings/w_040", func_11C000_8017A8E0);
INCLUDE_ASM("weapon/nonmatchings/w_040", func_11C000_8017A978);
INCLUDE_ASM("weapon/nonmatchings/w_040", func_11C000_8017A9A0);
INCLUDE_ASM("weapon/nonmatchings/w_040", func_11C000_8017A9C8);
INCLUDE_ASM("weapon/nonmatchings/w_040", func_11C000_8017A9F0);
INCLUDE_ASM("weapon/nonmatchings/w_040", func_11C000_8017AA38);
INCLUDE_ASM("weapon/nonmatchings/w_040", func_11C000_8017AA80);
INCLUDE_ASM("weapon/nonmatchings/w_040", func_11C000_8017AAA8);
INCLUDE_ASM("weapon/nonmatchings/w_040", func_11C000_8017AB18);
INCLUDE_ASM("weapon/nonmatchings/w_040", func_11C000_8017AC14);
INCLUDE_ASM("weapon/nonmatchings/w_040", func_11C000_8017AC94);
INCLUDE_ASM("weapon/nonmatchings/w_040", func_11C000_8017B010);
INCLUDE_ASM("weapon/nonmatchings/w_040", func_11C000_8017B2DC);
INCLUDE_ASM("weapon/nonmatchings/w_040", func_11C000_8017B434);
void func_11C000_8017B4E8(void) {}
void func_11C000_8017B4F0(void) {}
INCLUDE_ASM("weapon/nonmatchings/w_040", func_11C000_8017B4F8);
void func_11C000_8017B500(void) {}
void func_11C000_8017B508(void) {}
void func_11C000_8017B510(void) {}
void func_11C000_8017B518(void) {}
void func_11C000_8017B520(void) {}
void func_11C000_8017B528(void) {}
void func_11C000_8017B530(void) {}
void func_11C000_8017B538(void) {}

55
src/weapon/w_041.c Normal file
View File

@ -0,0 +1,55 @@
#include "weapon_private.h"
INCLUDE_ASM("weapon/nonmatchings/w_041", func_123000_8017A574);
INCLUDE_ASM("weapon/nonmatchings/w_041", func_123000_8017A5E0);
INCLUDE_ASM("weapon/nonmatchings/w_041", func_123000_8017A678);
INCLUDE_ASM("weapon/nonmatchings/w_041", func_123000_8017A6A0);
INCLUDE_ASM("weapon/nonmatchings/w_041", func_123000_8017A6C8);
INCLUDE_ASM("weapon/nonmatchings/w_041", func_123000_8017A6F0);
INCLUDE_ASM("weapon/nonmatchings/w_041", func_123000_8017A738);
INCLUDE_ASM("weapon/nonmatchings/w_041", func_123000_8017A780);
INCLUDE_ASM("weapon/nonmatchings/w_041", func_123000_8017A7A8);
INCLUDE_ASM("weapon/nonmatchings/w_041", func_123000_8017A818);
INCLUDE_ASM("weapon/nonmatchings/w_041", func_123000_8017A914);
INCLUDE_ASM("weapon/nonmatchings/w_041", func_123000_8017A994);
INCLUDE_ASM("weapon/nonmatchings/w_041", func_123000_8017AC08);
INCLUDE_ASM("weapon/nonmatchings/w_041", func_123000_8017AE8C);
void func_123000_8017B198(void) {}
void func_123000_8017B1A0(void) {}
void func_123000_8017B1A8(void) {}
void func_123000_8017B1B0(void) {}
INCLUDE_ASM("weapon/nonmatchings/w_041", func_123000_8017B1B8);
void func_123000_8017B1C0(void) {}
void func_123000_8017B1C8(void) {}
void func_123000_8017B1D0(void) {}
void func_123000_8017B1D8(void) {}
void func_123000_8017B1E0(void) {}
void func_123000_8017B1E8(void) {}
void func_123000_8017B1F0(void) {}
void func_123000_8017B1F8(void) {}

57
src/weapon/w_042.c Normal file
View File

@ -0,0 +1,57 @@
#include "weapon_private.h"
INCLUDE_ASM("weapon/nonmatchings/w_042", func_12A000_8017A764);
INCLUDE_ASM("weapon/nonmatchings/w_042", func_12A000_8017A7D0);
INCLUDE_ASM("weapon/nonmatchings/w_042", func_12A000_8017A868);
INCLUDE_ASM("weapon/nonmatchings/w_042", func_12A000_8017A890);
INCLUDE_ASM("weapon/nonmatchings/w_042", func_12A000_8017A8B8);
INCLUDE_ASM("weapon/nonmatchings/w_042", func_12A000_8017A8E0);
INCLUDE_ASM("weapon/nonmatchings/w_042", func_12A000_8017A928);
INCLUDE_ASM("weapon/nonmatchings/w_042", func_12A000_8017A970);
INCLUDE_ASM("weapon/nonmatchings/w_042", func_12A000_8017A998);
INCLUDE_ASM("weapon/nonmatchings/w_042", func_12A000_8017AA08);
INCLUDE_ASM("weapon/nonmatchings/w_042", func_12A000_8017AB04);
INCLUDE_ASM("weapon/nonmatchings/w_042", func_12A000_8017ABA4);
INCLUDE_ASM("weapon/nonmatchings/w_042", func_12A000_8017AC08);
INCLUDE_ASM("weapon/nonmatchings/w_042", func_12A000_8017AC88);
INCLUDE_ASM("weapon/nonmatchings/w_042", func_12A000_8017B004);
INCLUDE_ASM("weapon/nonmatchings/w_042", func_12A000_8017B2BC);
INCLUDE_ASM("weapon/nonmatchings/w_042", func_12A000_8017B4E0);
void func_12A000_8017B594(void) {}
void func_12A000_8017B59C(void) {}
INCLUDE_ASM("weapon/nonmatchings/w_042", func_12A000_8017B5A4);
void func_12A000_8017B5AC(void) {}
void func_12A000_8017B5B4(void) {}
void func_12A000_8017B5BC(void) {}
void func_12A000_8017B5C4(void) {}
void func_12A000_8017B5CC(void) {}
void func_12A000_8017B5D4(void) {}
void func_12A000_8017B5DC(void) {}
void func_12A000_8017B5E4(void) {}

51
src/weapon/w_043.c Normal file
View File

@ -0,0 +1,51 @@
#include "weapon_private.h"
INCLUDE_ASM("weapon/nonmatchings/w_043", func_131000_8017B05C);
INCLUDE_ASM("weapon/nonmatchings/w_043", func_131000_8017B0C8);
INCLUDE_ASM("weapon/nonmatchings/w_043", func_131000_8017B160);
INCLUDE_ASM("weapon/nonmatchings/w_043", func_131000_8017B188);
INCLUDE_ASM("weapon/nonmatchings/w_043", func_131000_8017B1B0);
INCLUDE_ASM("weapon/nonmatchings/w_043", func_131000_8017B1D8);
INCLUDE_ASM("weapon/nonmatchings/w_043", func_131000_8017B220);
INCLUDE_ASM("weapon/nonmatchings/w_043", func_131000_8017B268);
INCLUDE_ASM("weapon/nonmatchings/w_043", func_131000_8017B290);
INCLUDE_ASM("weapon/nonmatchings/w_043", func_131000_8017B300);
INCLUDE_ASM("weapon/nonmatchings/w_043", func_131000_8017B3FC);
INCLUDE_ASM("weapon/nonmatchings/w_043", func_131000_8017B920);
INCLUDE_ASM("weapon/nonmatchings/w_043", func_131000_8017BB74);
void func_131000_8017BD14(void) {}
void func_131000_8017BD1C(void) {}
void func_131000_8017BD24(void) {}
INCLUDE_ASM("weapon/nonmatchings/w_043", func_131000_8017BD2C);
void func_131000_8017BD34(void) {}
void func_131000_8017BD3C(void) {}
void func_131000_8017BD44(void) {}
void func_131000_8017BD4C(void) {}
void func_131000_8017BD54(void) {}
void func_131000_8017BD5C(void) {}
void func_131000_8017BD64(void) {}
void func_131000_8017BD6C(void) {}

43
src/weapon/w_044.c Normal file
View File

@ -0,0 +1,43 @@
#include "weapon_private.h"
INCLUDE_ASM("weapon/nonmatchings/w_044", func_138000_8017A2C0);
INCLUDE_ASM("weapon/nonmatchings/w_044", func_138000_8017A32C);
INCLUDE_ASM("weapon/nonmatchings/w_044", func_138000_8017A3C4);
INCLUDE_ASM("weapon/nonmatchings/w_044", func_138000_8017A3EC);
INCLUDE_ASM("weapon/nonmatchings/w_044", func_138000_8017A414);
INCLUDE_ASM("weapon/nonmatchings/w_044", func_138000_8017A484);
INCLUDE_ASM("weapon/nonmatchings/w_044", func_138000_8017A580);
void func_138000_8017AEB4(void) {}
void func_138000_8017AEBC(void) {}
void func_138000_8017AEC4(void) {}
void func_138000_8017AECC(void) {}
void func_138000_8017AED4(void) {}
INCLUDE_ASM("weapon/nonmatchings/w_044", func_138000_8017AEDC);
void func_138000_8017AEE4(void) {}
void func_138000_8017AEEC(void) {}
void func_138000_8017AEF4(void) {}
void func_138000_8017AEFC(void) {}
void func_138000_8017AF04(void) {}
void func_138000_8017AF0C(void) {}
void func_138000_8017AF14(void) {}
void func_138000_8017AF1C(void) {}

53
src/weapon/w_045.c Normal file
View File

@ -0,0 +1,53 @@
#include "weapon_private.h"
INCLUDE_ASM("weapon/nonmatchings/w_045", func_13F000_8017A378);
INCLUDE_ASM("weapon/nonmatchings/w_045", func_13F000_8017A3E4);
INCLUDE_ASM("weapon/nonmatchings/w_045", func_13F000_8017A47C);
INCLUDE_ASM("weapon/nonmatchings/w_045", func_13F000_8017A4A4);
INCLUDE_ASM("weapon/nonmatchings/w_045", func_13F000_8017A4CC);
INCLUDE_ASM("weapon/nonmatchings/w_045", func_13F000_8017A4F4);
INCLUDE_ASM("weapon/nonmatchings/w_045", func_13F000_8017A53C);
INCLUDE_ASM("weapon/nonmatchings/w_045", func_13F000_8017A584);
INCLUDE_ASM("weapon/nonmatchings/w_045", func_13F000_8017A5AC);
INCLUDE_ASM("weapon/nonmatchings/w_045", func_13F000_8017A61C);
INCLUDE_ASM("weapon/nonmatchings/w_045", func_13F000_8017A718);
INCLUDE_ASM("weapon/nonmatchings/w_045", func_13F000_8017A7D0);
INCLUDE_ASM("weapon/nonmatchings/w_045", func_13F000_8017A8BC);
INCLUDE_ASM("weapon/nonmatchings/w_045", func_13F000_8017AB4C);
INCLUDE_ASM("weapon/nonmatchings/w_045", func_13F000_8017ADC8);
INCLUDE_ASM("weapon/nonmatchings/w_045", func_13F000_8017B038);
void func_13F000_8017B368(void) {}
INCLUDE_ASM("weapon/nonmatchings/w_045", func_13F000_8017B370);
void func_13F000_8017B378(void) {}
void func_13F000_8017B380(void) {}
void func_13F000_8017B388(void) {}
void func_13F000_8017B390(void) {}
void func_13F000_8017B398(void) {}
void func_13F000_8017B3A0(void) {}
void func_13F000_8017B3A8(void) {}
void func_13F000_8017B3B0(void) {}

51
src/weapon/w_046.c Normal file
View File

@ -0,0 +1,51 @@
#include "weapon_private.h"
INCLUDE_ASM("weapon/nonmatchings/w_046", func_146000_8017AC64);
INCLUDE_ASM("weapon/nonmatchings/w_046", func_146000_8017ACD0);
INCLUDE_ASM("weapon/nonmatchings/w_046", func_146000_8017AD68);
INCLUDE_ASM("weapon/nonmatchings/w_046", func_146000_8017AD90);
INCLUDE_ASM("weapon/nonmatchings/w_046", func_146000_8017ADB8);
INCLUDE_ASM("weapon/nonmatchings/w_046", func_146000_8017ADE0);
INCLUDE_ASM("weapon/nonmatchings/w_046", func_146000_8017AE28);
INCLUDE_ASM("weapon/nonmatchings/w_046", func_146000_8017AE70);
INCLUDE_ASM("weapon/nonmatchings/w_046", func_146000_8017AE98);
INCLUDE_ASM("weapon/nonmatchings/w_046", func_146000_8017AF08);
INCLUDE_ASM("weapon/nonmatchings/w_046", func_146000_8017B004);
INCLUDE_ASM("weapon/nonmatchings/w_046", func_146000_8017B698);
void func_146000_8017BE58(void) {}
void func_146000_8017BE60(void) {}
void func_146000_8017BE68(void) {}
void func_146000_8017BE70(void) {}
INCLUDE_ASM("weapon/nonmatchings/w_046", func_146000_8017BE78);
void func_146000_8017BE80(void) {}
void func_146000_8017BE88(void) {}
void func_146000_8017BE90(void) {}
void func_146000_8017BE98(void) {}
void func_146000_8017BEA0(void) {}
void func_146000_8017BEA8(void) {}
void func_146000_8017BEB0(void) {}
void func_146000_8017BEB8(void) {}

51
src/weapon/w_047.c Normal file
View File

@ -0,0 +1,51 @@
#include "weapon_private.h"
INCLUDE_ASM("weapon/nonmatchings/w_047", func_14D000_8017A568);
INCLUDE_ASM("weapon/nonmatchings/w_047", func_14D000_8017A5D4);
INCLUDE_ASM("weapon/nonmatchings/w_047", func_14D000_8017A66C);
INCLUDE_ASM("weapon/nonmatchings/w_047", func_14D000_8017A694);
INCLUDE_ASM("weapon/nonmatchings/w_047", func_14D000_8017A6BC);
INCLUDE_ASM("weapon/nonmatchings/w_047", func_14D000_8017A6E4);
INCLUDE_ASM("weapon/nonmatchings/w_047", func_14D000_8017A72C);
INCLUDE_ASM("weapon/nonmatchings/w_047", func_14D000_8017A774);
INCLUDE_ASM("weapon/nonmatchings/w_047", func_14D000_8017A79C);
INCLUDE_ASM("weapon/nonmatchings/w_047", func_14D000_8017A80C);
INCLUDE_ASM("weapon/nonmatchings/w_047", func_14D000_8017A908);
INCLUDE_ASM("weapon/nonmatchings/w_047", func_14D000_8017B470);
void func_14D000_8017B63C(void) {}
void func_14D000_8017B644(void) {}
void func_14D000_8017B64C(void) {}
void func_14D000_8017B654(void) {}
INCLUDE_ASM("weapon/nonmatchings/w_047", func_14D000_8017B65C);
void func_14D000_8017B664(void) {}
void func_14D000_8017B66C(void) {}
void func_14D000_8017B674(void) {}
void func_14D000_8017B67C(void) {}
void func_14D000_8017B684(void) {}
void func_14D000_8017B68C(void) {}
void func_14D000_8017B694(void) {}
void func_14D000_8017B69C(void) {}

53
src/weapon/w_048.c Normal file
View File

@ -0,0 +1,53 @@
#include "weapon_private.h"
INCLUDE_ASM("weapon/nonmatchings/w_048", func_154000_8017B050);
INCLUDE_ASM("weapon/nonmatchings/w_048", func_154000_8017B0BC);
INCLUDE_ASM("weapon/nonmatchings/w_048", func_154000_8017B154);
INCLUDE_ASM("weapon/nonmatchings/w_048", func_154000_8017B17C);
INCLUDE_ASM("weapon/nonmatchings/w_048", func_154000_8017B1A4);
INCLUDE_ASM("weapon/nonmatchings/w_048", func_154000_8017B1CC);
INCLUDE_ASM("weapon/nonmatchings/w_048", func_154000_8017B214);
INCLUDE_ASM("weapon/nonmatchings/w_048", func_154000_8017B25C);
INCLUDE_ASM("weapon/nonmatchings/w_048", func_154000_8017B284);
INCLUDE_ASM("weapon/nonmatchings/w_048", func_154000_8017B2F4);
INCLUDE_ASM("weapon/nonmatchings/w_048", func_154000_8017B3F0);
INCLUDE_ASM("weapon/nonmatchings/w_048", func_154000_8017B810);
INCLUDE_ASM("weapon/nonmatchings/w_048", func_154000_8017B980);
INCLUDE_ASM("weapon/nonmatchings/w_048", func_154000_8017BF4C);
void func_154000_8017C354(void) {}
void func_154000_8017C35C(void) {}
void func_154000_8017C364(void) {}
INCLUDE_ASM("weapon/nonmatchings/w_048", func_154000_8017C36C);
void func_154000_8017C374(void) {}
void func_154000_8017C37C(void) {}
void func_154000_8017C384(void) {}
void func_154000_8017C38C(void) {}
void func_154000_8017C394(void) {}
void func_154000_8017C39C(void) {}
void func_154000_8017C3A4(void) {}
void func_154000_8017C3AC(void) {}

53
src/weapon/w_049.c Normal file
View File

@ -0,0 +1,53 @@
#include "weapon_private.h"
INCLUDE_ASM("weapon/nonmatchings/w_049", func_15B000_8017B14C);
INCLUDE_ASM("weapon/nonmatchings/w_049", func_15B000_8017B1B8);
INCLUDE_ASM("weapon/nonmatchings/w_049", func_15B000_8017B250);
INCLUDE_ASM("weapon/nonmatchings/w_049", func_15B000_8017B278);
INCLUDE_ASM("weapon/nonmatchings/w_049", func_15B000_8017B2A0);
INCLUDE_ASM("weapon/nonmatchings/w_049", func_15B000_8017B2C8);
INCLUDE_ASM("weapon/nonmatchings/w_049", func_15B000_8017B310);
INCLUDE_ASM("weapon/nonmatchings/w_049", func_15B000_8017B358);
INCLUDE_ASM("weapon/nonmatchings/w_049", func_15B000_8017B380);
INCLUDE_ASM("weapon/nonmatchings/w_049", func_15B000_8017B3F0);
INCLUDE_ASM("weapon/nonmatchings/w_049", func_15B000_8017B4EC);
INCLUDE_ASM("weapon/nonmatchings/w_049", func_15B000_8017B88C);
INCLUDE_ASM("weapon/nonmatchings/w_049", func_15B000_8017BA48);
INCLUDE_ASM("weapon/nonmatchings/w_049", func_15B000_8017BD2C);
INCLUDE_ASM("weapon/nonmatchings/w_049", func_15B000_8017C14C);
INCLUDE_ASM("weapon/nonmatchings/w_049", func_15B000_8017C458);
INCLUDE_ASM("weapon/nonmatchings/w_049", func_15B000_8017C720);
INCLUDE_ASM("weapon/nonmatchings/w_049", func_15B000_8017C884);
void func_15B000_8017C88C(void) {}
void func_15B000_8017C894(void) {}
void func_15B000_8017C89C(void) {}
void func_15B000_8017C8A4(void) {}
void func_15B000_8017C8AC(void) {}
void func_15B000_8017C8B4(void) {}
void func_15B000_8017C8BC(void) {}
void func_15B000_8017C8C4(void) {}

57
src/weapon/w_050.c Normal file
View File

@ -0,0 +1,57 @@
#include "weapon_private.h"
INCLUDE_ASM("weapon/nonmatchings/w_050", func_162000_8017B080);
INCLUDE_ASM("weapon/nonmatchings/w_050", func_162000_8017B0EC);
INCLUDE_ASM("weapon/nonmatchings/w_050", func_162000_8017B184);
INCLUDE_ASM("weapon/nonmatchings/w_050", func_162000_8017B1AC);
INCLUDE_ASM("weapon/nonmatchings/w_050", func_162000_8017B1D4);
INCLUDE_ASM("weapon/nonmatchings/w_050", func_162000_8017B1FC);
INCLUDE_ASM("weapon/nonmatchings/w_050", func_162000_8017B244);
INCLUDE_ASM("weapon/nonmatchings/w_050", func_162000_8017B28C);
INCLUDE_ASM("weapon/nonmatchings/w_050", func_162000_8017B2B4);
INCLUDE_ASM("weapon/nonmatchings/w_050", func_162000_8017B324);
INCLUDE_ASM("weapon/nonmatchings/w_050", func_162000_8017B420);
INCLUDE_ASM("weapon/nonmatchings/w_050", func_162000_8017B784);
INCLUDE_ASM("weapon/nonmatchings/w_050", func_162000_8017B87C);
INCLUDE_ASM("weapon/nonmatchings/w_050", func_162000_8017BA38);
INCLUDE_ASM("weapon/nonmatchings/w_050", func_162000_8017BBF4);
INCLUDE_ASM("weapon/nonmatchings/w_050", func_162000_8017BFDC);
INCLUDE_ASM("weapon/nonmatchings/w_050", func_162000_8017C428);
INCLUDE_ASM("weapon/nonmatchings/w_050", func_162000_8017C790);
void func_162000_8017CBA8(void) {}
INCLUDE_ASM("weapon/nonmatchings/w_050", func_162000_8017CBB0);
void func_162000_8017CBB8(void) {}
void func_162000_8017CBC0(void) {}
void func_162000_8017CBC8(void) {}
void func_162000_8017CBD0(void) {}
void func_162000_8017CBD8(void) {}
void func_162000_8017CBE0(void) {}
void func_162000_8017CBE8(void) {}
void func_162000_8017CBF0(void) {}

49
src/weapon/w_051.c Normal file
View File

@ -0,0 +1,49 @@
#include "weapon_private.h"
INCLUDE_ASM("weapon/nonmatchings/w_051", func_169000_8017AED4);
INCLUDE_ASM("weapon/nonmatchings/w_051", func_169000_8017AF40);
INCLUDE_ASM("weapon/nonmatchings/w_051", func_169000_8017AFD8);
INCLUDE_ASM("weapon/nonmatchings/w_051", func_169000_8017B000);
INCLUDE_ASM("weapon/nonmatchings/w_051", func_169000_8017B028);
INCLUDE_ASM("weapon/nonmatchings/w_051", func_169000_8017B070);
INCLUDE_ASM("weapon/nonmatchings/w_051", func_169000_8017B0B8);
INCLUDE_ASM("weapon/nonmatchings/w_051", func_169000_8017B0E0);
INCLUDE_ASM("weapon/nonmatchings/w_051", func_169000_8017B1DC);
INCLUDE_ASM("weapon/nonmatchings/w_051", func_169000_8017B51C);
INCLUDE_ASM("weapon/nonmatchings/w_051", func_169000_8017B7BC);
INCLUDE_ASM("weapon/nonmatchings/w_051", func_169000_8017BA64);
void func_169000_8017C080(void) {}
void func_169000_8017C088(void) {}
void func_169000_8017C090(void) {}
INCLUDE_ASM("weapon/nonmatchings/w_051", func_169000_8017C098);
void func_169000_8017C0A0(void) {}
void func_169000_8017C0A8(void) {}
void func_169000_8017C0B0(void) {}
void func_169000_8017C0B8(void) {}
void func_169000_8017C0C0(void) {}
void func_169000_8017C0C8(void) {}
void func_169000_8017C0D0(void) {}
void func_169000_8017C0D8(void) {}

51
src/weapon/w_052.c Normal file
View File

@ -0,0 +1,51 @@
#include "weapon_private.h"
INCLUDE_ASM("weapon/nonmatchings/w_052", func_170000_8017ACB0);
INCLUDE_ASM("weapon/nonmatchings/w_052", func_170000_8017AD1C);
INCLUDE_ASM("weapon/nonmatchings/w_052", func_170000_8017ADB4);
INCLUDE_ASM("weapon/nonmatchings/w_052", func_170000_8017ADDC);
INCLUDE_ASM("weapon/nonmatchings/w_052", func_170000_8017AE04);
INCLUDE_ASM("weapon/nonmatchings/w_052", func_170000_8017AE2C);
INCLUDE_ASM("weapon/nonmatchings/w_052", func_170000_8017AE74);
INCLUDE_ASM("weapon/nonmatchings/w_052", func_170000_8017AEBC);
INCLUDE_ASM("weapon/nonmatchings/w_052", func_170000_8017AEE4);
INCLUDE_ASM("weapon/nonmatchings/w_052", func_170000_8017AF54);
INCLUDE_ASM("weapon/nonmatchings/w_052", func_170000_8017B050);
void func_170000_8017B604(void) {}
void func_170000_8017B60C(void) {}
void func_170000_8017B614(void) {}
void func_170000_8017B61C(void) {}
INCLUDE_ASM("weapon/nonmatchings/w_052", func_170000_8017B624);
INCLUDE_ASM("weapon/nonmatchings/w_052", func_170000_8017B62C);
INCLUDE_ASM("weapon/nonmatchings/w_052", func_170000_8017C568);
void func_170000_8017CB4C(void) {}
void func_170000_8017CB54(void) {}
void func_170000_8017CB5C(void) {}
void func_170000_8017CB64(void) {}
void func_170000_8017CB6C(void) {}
void func_170000_8017CB74(void) {}
void func_170000_8017CB7C(void) {}

51
src/weapon/w_053.c Normal file
View File

@ -0,0 +1,51 @@
#include "weapon_private.h"
INCLUDE_ASM("weapon/nonmatchings/w_053", func_177000_8017B280);
INCLUDE_ASM("weapon/nonmatchings/w_053", func_177000_8017B2EC);
INCLUDE_ASM("weapon/nonmatchings/w_053", func_177000_8017B384);
INCLUDE_ASM("weapon/nonmatchings/w_053", func_177000_8017B3AC);
INCLUDE_ASM("weapon/nonmatchings/w_053", func_177000_8017B3D4);
INCLUDE_ASM("weapon/nonmatchings/w_053", func_177000_8017B3FC);
INCLUDE_ASM("weapon/nonmatchings/w_053", func_177000_8017B444);
INCLUDE_ASM("weapon/nonmatchings/w_053", func_177000_8017B48C);
INCLUDE_ASM("weapon/nonmatchings/w_053", func_177000_8017B4B4);
INCLUDE_ASM("weapon/nonmatchings/w_053", func_177000_8017B524);
INCLUDE_ASM("weapon/nonmatchings/w_053", func_177000_8017B620);
INCLUDE_ASM("weapon/nonmatchings/w_053", func_177000_8017B914);
INCLUDE_ASM("weapon/nonmatchings/w_053", func_177000_8017BFCC);
INCLUDE_ASM("weapon/nonmatchings/w_053", func_177000_8017C28C);
void func_177000_8017C83C(void) {}
void func_177000_8017C844(void) {}
INCLUDE_ASM("weapon/nonmatchings/w_053", func_177000_8017C84C);
void func_177000_8017C854(void) {}
void func_177000_8017C85C(void) {}
void func_177000_8017C864(void) {}
void func_177000_8017C86C(void) {}
void func_177000_8017C874(void) {}
void func_177000_8017C87C(void) {}
void func_177000_8017C884(void) {}
void func_177000_8017C88C(void) {}

51
src/weapon/w_054.c Normal file
View File

@ -0,0 +1,51 @@
#include "weapon_private.h"
INCLUDE_ASM("weapon/nonmatchings/w_054", func_17E000_8017AF0C);
INCLUDE_ASM("weapon/nonmatchings/w_054", func_17E000_8017AF78);
INCLUDE_ASM("weapon/nonmatchings/w_054", func_17E000_8017B010);
INCLUDE_ASM("weapon/nonmatchings/w_054", func_17E000_8017B038);
INCLUDE_ASM("weapon/nonmatchings/w_054", func_17E000_8017B060);
INCLUDE_ASM("weapon/nonmatchings/w_054", func_17E000_8017B088);
INCLUDE_ASM("weapon/nonmatchings/w_054", func_17E000_8017B0D0);
INCLUDE_ASM("weapon/nonmatchings/w_054", func_17E000_8017B118);
INCLUDE_ASM("weapon/nonmatchings/w_054", func_17E000_8017B140);
INCLUDE_ASM("weapon/nonmatchings/w_054", func_17E000_8017B1B0);
INCLUDE_ASM("weapon/nonmatchings/w_054", func_17E000_8017B2AC);
void func_17E000_8017B888(void) {}
void func_17E000_8017B890(void) {}
void func_17E000_8017B898(void) {}
void func_17E000_8017B8A0(void) {}
void func_17E000_8017B8A8(void) {}
INCLUDE_ASM("weapon/nonmatchings/w_054", func_17E000_8017B8B0);
void func_17E000_8017B8B8(void) {}
void func_17E000_8017B8C0(void) {}
void func_17E000_8017B8C8(void) {}
void func_17E000_8017B8D0(void) {}
void func_17E000_8017B8D8(void) {}
void func_17E000_8017B8E0(void) {}
void func_17E000_8017B8E8(void) {}
void func_17E000_8017B8F0(void) {}

51
src/weapon/w_055.c Normal file
View File

@ -0,0 +1,51 @@
#include "weapon_private.h"
INCLUDE_ASM("weapon/nonmatchings/w_055", func_185000_8017B1A0);
INCLUDE_ASM("weapon/nonmatchings/w_055", func_185000_8017B20C);
INCLUDE_ASM("weapon/nonmatchings/w_055", func_185000_8017B2A4);
INCLUDE_ASM("weapon/nonmatchings/w_055", func_185000_8017B2CC);
INCLUDE_ASM("weapon/nonmatchings/w_055", func_185000_8017B2F4);
INCLUDE_ASM("weapon/nonmatchings/w_055", func_185000_8017B31C);
INCLUDE_ASM("weapon/nonmatchings/w_055", func_185000_8017B364);
INCLUDE_ASM("weapon/nonmatchings/w_055", func_185000_8017B3AC);
INCLUDE_ASM("weapon/nonmatchings/w_055", func_185000_8017B3D4);
INCLUDE_ASM("weapon/nonmatchings/w_055", func_185000_8017B444);
INCLUDE_ASM("weapon/nonmatchings/w_055", func_185000_8017B540);
INCLUDE_ASM("weapon/nonmatchings/w_055", func_185000_8017B7B0);
void func_185000_8017BBC4(void) {}
void func_185000_8017BBCC(void) {}
void func_185000_8017BBD4(void) {}
void func_185000_8017BBDC(void) {}
INCLUDE_ASM("weapon/nonmatchings/w_055", func_185000_8017BBE4);
void func_185000_8017BBEC(void) {}
void func_185000_8017BBF4(void) {}
void func_185000_8017BBFC(void) {}
void func_185000_8017BC04(void) {}
void func_185000_8017BC0C(void) {}
void func_185000_8017BC14(void) {}
void func_185000_8017BC1C(void) {}
void func_185000_8017BC24(void) {}

51
src/weapon/w_056.c Normal file
View File

@ -0,0 +1,51 @@
#include "weapon_private.h"
INCLUDE_ASM("weapon/nonmatchings/w_056", func_18C000_8017B060);
INCLUDE_ASM("weapon/nonmatchings/w_056", func_18C000_8017B0CC);
INCLUDE_ASM("weapon/nonmatchings/w_056", func_18C000_8017B164);
INCLUDE_ASM("weapon/nonmatchings/w_056", func_18C000_8017B18C);
INCLUDE_ASM("weapon/nonmatchings/w_056", func_18C000_8017B1B4);
INCLUDE_ASM("weapon/nonmatchings/w_056", func_18C000_8017B1DC);
INCLUDE_ASM("weapon/nonmatchings/w_056", func_18C000_8017B224);
INCLUDE_ASM("weapon/nonmatchings/w_056", func_18C000_8017B26C);
INCLUDE_ASM("weapon/nonmatchings/w_056", func_18C000_8017B294);
INCLUDE_ASM("weapon/nonmatchings/w_056", func_18C000_8017B304);
INCLUDE_ASM("weapon/nonmatchings/w_056", func_18C000_8017B400);
INCLUDE_ASM("weapon/nonmatchings/w_056", func_18C000_8017B998);
void func_18C000_8017C050(void) {}
void func_18C000_8017C058(void) {}
void func_18C000_8017C060(void) {}
void func_18C000_8017C068(void) {}
INCLUDE_ASM("weapon/nonmatchings/w_056", func_18C000_8017C070);
void func_18C000_8017C078(void) {}
void func_18C000_8017C080(void) {}
void func_18C000_8017C088(void) {}
void func_18C000_8017C090(void) {}
void func_18C000_8017C098(void) {}
void func_18C000_8017C0A0(void) {}
void func_18C000_8017C0A8(void) {}
void func_18C000_8017C0B0(void) {}

51
src/weapon/w_057.c Normal file
View File

@ -0,0 +1,51 @@
#include "weapon_private.h"
INCLUDE_ASM("weapon/nonmatchings/w_057", func_193000_8017B0B4);
INCLUDE_ASM("weapon/nonmatchings/w_057", func_193000_8017B120);
INCLUDE_ASM("weapon/nonmatchings/w_057", func_193000_8017B1B8);
INCLUDE_ASM("weapon/nonmatchings/w_057", func_193000_8017B1E0);
INCLUDE_ASM("weapon/nonmatchings/w_057", func_193000_8017B208);
INCLUDE_ASM("weapon/nonmatchings/w_057", func_193000_8017B230);
INCLUDE_ASM("weapon/nonmatchings/w_057", func_193000_8017B278);
INCLUDE_ASM("weapon/nonmatchings/w_057", func_193000_8017B2C0);
INCLUDE_ASM("weapon/nonmatchings/w_057", func_193000_8017B2E8);
INCLUDE_ASM("weapon/nonmatchings/w_057", func_193000_8017B358);
INCLUDE_ASM("weapon/nonmatchings/w_057", func_193000_8017B454);
void func_193000_8017B670(void) {}
void func_193000_8017B678(void) {}
void func_193000_8017B680(void) {}
void func_193000_8017B688(void) {}
void func_193000_8017B690(void) {}
INCLUDE_ASM("weapon/nonmatchings/w_057", func_193000_8017B698);
void func_193000_8017B6A0(void) {}
void func_193000_8017B6A8(void) {}
void func_193000_8017B6B0(void) {}
void func_193000_8017B6B8(void) {}
void func_193000_8017B6C0(void) {}
void func_193000_8017B6C8(void) {}
void func_193000_8017B6D0(void) {}
void func_193000_8017B6D8(void) {}

51
src/weapon/w_058.c Normal file
View File

@ -0,0 +1,51 @@
#include "weapon_private.h"
INCLUDE_ASM("weapon/nonmatchings/w_058", func_19A000_8017AC50);
INCLUDE_ASM("weapon/nonmatchings/w_058", func_19A000_8017ACBC);
INCLUDE_ASM("weapon/nonmatchings/w_058", func_19A000_8017AD54);
INCLUDE_ASM("weapon/nonmatchings/w_058", func_19A000_8017AD7C);
INCLUDE_ASM("weapon/nonmatchings/w_058", func_19A000_8017ADA4);
INCLUDE_ASM("weapon/nonmatchings/w_058", func_19A000_8017ADCC);
INCLUDE_ASM("weapon/nonmatchings/w_058", func_19A000_8017AE14);
INCLUDE_ASM("weapon/nonmatchings/w_058", func_19A000_8017AE5C);
INCLUDE_ASM("weapon/nonmatchings/w_058", func_19A000_8017AE84);
INCLUDE_ASM("weapon/nonmatchings/w_058", func_19A000_8017AEF4);
INCLUDE_ASM("weapon/nonmatchings/w_058", func_19A000_8017AFF0);
void func_19A000_8017B410(void) {}
void func_19A000_8017B418(void) {}
void func_19A000_8017B420(void) {}
void func_19A000_8017B428(void) {}
void func_19A000_8017B430(void) {}
INCLUDE_ASM("weapon/nonmatchings/w_058", func_19A000_8017B438);
INCLUDE_ASM("weapon/nonmatchings/w_058", func_19A000_8017B440);
void func_19A000_8017BB08(void) {}
void func_19A000_8017BB10(void) {}
void func_19A000_8017BB18(void) {}
void func_19A000_8017BB20(void) {}
void func_19A000_8017BB28(void) {}
void func_19A000_8017BB30(void) {}
void func_19A000_8017BB38(void) {}

View File

@ -0,0 +1,2 @@
#define INCLUDE_ASM_NEW
#include <weapon.h>

View File

@ -86,6 +86,8 @@ def handle_jal_call(full_file, call_index, known_func_list):
return "PlaySfx"
if "0xB8($a2)" in callreg_setline or "-0x20($s0)" in callreg_setline:
return "UnknownEntityFunction"
if "8017B5A8" in callreg_setline:
return "g_api_func_8011AAFC"
if any(
x in callreg_setline for x in ["80015840", "80015E74", "8001923C"]

View File

@ -33,6 +33,7 @@ def read_roms():
roms = dict()
roms["MAIN"] = read_binary("main.exe")
roms["DRA"] = read_binary("DRA.BIN")
roms["WEAPON"] = read_binary("WEAPON0.BIN")
roms["RIC"] = read_binary("RIC.BIN")
roms["CEN"] = read_binary("CEN.BIN")
roms["DRE"] = read_binary("DRE.BIN")

View File

@ -67,7 +67,7 @@ def encode(input_base: str, output_file: str):
if width != 256:
return f"'{file_name}' width must be 256 but found {width} instead"
if height != 240 and height != 256:
return f"'{file_name}' width must be 240 or 256 but found {height} instead"
return f"'{file_name}' height must be 240 or 256 but found {height} instead"
if info["planes"] != 1 or info["bitdepth"] != 8:
return f"'{file_name}' must be an indexed image"
if len(palette) != 16:

46
tools/png2bin.py Executable file
View File

@ -0,0 +1,46 @@
#!/usr/bin/python3
import argparse
import png
def get_encoded_image(file_name: str) -> bytearray:
img = png.Reader(file_name).read()
width = img[0]
height = img[1]
rows = img[2]
info = img[3]
palette = info["palette"]
if width != 256:
return f"'{file_name}' width must be 256 but found {width} instead"
if height != 128:
return f"'{file_name}' height must be 128 but found {height} instead"
if info["planes"] != 1 or info["bitdepth"] != 8:
return f"'{file_name}' must be an indexed image"
if len(palette) != 16:
return f"'{file_name}' palette must be of 16 colors but found {len(palette)} colors instead"
data = bytearray((width * height) >> 1)
idx = 0
nibble = False
for row in rows:
for ch in row:
if nibble == False:
nibble = True
data[idx] = ch
else:
nibble = False
data[idx] |= ch << 4
idx += 1
return data
parser = argparse.ArgumentParser(description="convert 4bpp PNGs into binary")
parser.add_argument("input")
parser.add_argument("output")
if __name__ == "__main__":
args = parser.parse_args()
data = get_encoded_image(args.input)
with open(args.output, "wb") as f_out:
f_out.write(data)

View File

@ -292,6 +292,7 @@ def report_discord(progresses: dict[str, DecompProgressStats]):
if __name__ == "__main__":
progress = dict[str, DecompProgressStats]()
progress["dra"] = DecompProgressStats("dra", "dra")
progress["weapon"] = DecompProgressStats("weapon", "weapon")
progress["ric"] = DecompProgressStats("ric", "ric")
progress["stcen"] = DecompProgressStats("stcen", "st/cen")
progress["stdre"] = DecompProgressStats("stdre", "st/dre")

View File

@ -12,7 +12,7 @@ tabulate
requests
graphviz
# splat
spimdisasm==1.13.0
spimdisasm==1.16.0
rabbitizer==1.7.0
n64img==0.3.3
PyYAML

54
tools/splat_ext/ci4.py Normal file
View File

@ -0,0 +1,54 @@
import n64img.image
from typing import List, Tuple
from segtypes.n64.img import N64SegImg
def generate_grey_palette() -> List[Tuple[int, int, int, int]]:
def generate_grey_color(intensity: int) -> Tuple[int, int, int, int]:
return intensity, intensity, intensity, 255
return [
generate_grey_color(0x00),
generate_grey_color(0x11),
generate_grey_color(0x22),
generate_grey_color(0x33),
generate_grey_color(0x44),
generate_grey_color(0x55),
generate_grey_color(0x66),
generate_grey_color(0x77),
generate_grey_color(0x88),
generate_grey_color(0x99),
generate_grey_color(0xAA),
generate_grey_color(0xBB),
generate_grey_color(0xCC),
generate_grey_color(0xDD),
generate_grey_color(0xEE),
generate_grey_color(0xFF),
]
class PSXSegCi4(N64SegImg):
def __init__(self, *args, **kwargs):
kwargs["img_cls"] = n64img.image.CI4
super().__init__(*args, **kwargs)
def flip_endian(self, src):
dst = bytearray(src)
for i in range(0, len(dst)):
ch = dst[i]
dst[i] = (ch >> 4) | ((ch & 0xF) << 4)
return dst
def split(self, rom_bytes):
path = self.out_path()
path.parent.mkdir(parents=True, exist_ok=True)
assert isinstance(self.rom_start, int)
assert isinstance(self.rom_end, int)
self.n64img.palette = generate_grey_palette()
self.n64img.data = self.flip_endian(rom_bytes[self.rom_start : self.rom_end])
self.n64img.write(path)
self.log(f"Wrote {self.name} to {path}")