diff --git a/config/check.md_SC07_003.sha b/config/check.md_SC07_003.sha new file mode 100644 index 000000000..29fd979f5 --- /dev/null +++ b/config/check.md_SC07_003.sha @@ -0,0 +1 @@ +46af79a1ee365a15ea8fdce8b5c9fb4abd355290 md_SC07_003 diff --git a/config/check.md_SC07_004.sha b/config/check.md_SC07_004.sha new file mode 100644 index 000000000..f9520abbf --- /dev/null +++ b/config/check.md_SC07_004.sha @@ -0,0 +1 @@ +87ac0de39029789300e15b7031f54b6ab1dea83c md_SC07_004 diff --git a/config/modules.mk b/config/modules.mk index 37c4ae5a9..3967b1b83 100644 --- a/config/modules.mk +++ b/config/modules.mk @@ -3,7 +3,7 @@ # absent); the hand-maintained Makefile body is never edited to add a binary. Each md_* loads at # its OWN vram (the §S44 loader table: docs/memory-map.md). _TEXT_LO is a VRAM (code start), read # by 'make sig-modules' as --text-lo (§154-A: bootstrap past the module-id header). -MODULE_BINARIES := md_MAIN_013 md_MAIN_014 md_MAIN_015 md_MAIN_016 md_MAIN_017 md_MAIN_018 md_MAIN_019 md_MAIN_020 md_MAIN_021 md_MAIN_022 md_MAIN_023 md_MAIN_024 md_MAIN_025 md_MAIN_026 md_MAIN_027 md_MAIN_028 md_MAIN_029 md_MAIN_030 md_MAIN_031 md_MAIN_032 md_MAIN_033 md_MAIN_034 md_MAIN_035 md_MAIN_036 md_MAIN_037 md_MAIN_038 md_MAIN_039 md_MAIN_040 md_MAIN_041 md_MAIN_042 md_MAIN_043 md_MAIN_044 md_MAIN_045 md_MAIN_046 md_MAIN_047 md_MAIN_001 md_MAIN_008 md_MAIN_011 +MODULE_BINARIES := md_MAIN_013 md_MAIN_014 md_MAIN_015 md_MAIN_016 md_MAIN_017 md_MAIN_018 md_MAIN_019 md_MAIN_020 md_MAIN_021 md_MAIN_022 md_MAIN_023 md_MAIN_024 md_MAIN_025 md_MAIN_026 md_MAIN_027 md_MAIN_028 md_MAIN_029 md_MAIN_030 md_MAIN_031 md_MAIN_032 md_MAIN_033 md_MAIN_034 md_MAIN_035 md_MAIN_036 md_MAIN_037 md_MAIN_038 md_MAIN_039 md_MAIN_040 md_MAIN_041 md_MAIN_042 md_MAIN_043 md_MAIN_044 md_MAIN_045 md_MAIN_046 md_MAIN_047 md_MAIN_001 md_MAIN_008 md_MAIN_011 md_SC07_003 md_SC07_004 # --- md_MAIN_013 (module, vram 0x800CAE08 — onboarded by new_binary.sh) --- md_MAIN_013_EXE := extracted/retail/MAIN.CD.dir/FILE_013.dir/1.1 @@ -802,3 +802,45 @@ md_MAIN_011_ASM_DIR := asm/md_MAIN_011 md_MAIN_011_SRC_DIR := src/md_MAIN_011 md_MAIN_011_UNDEF_SYMS := build/md_MAIN_011/undefined_syms_auto.txt md_MAIN_011_UNDEF_FUNCS := build/md_MAIN_011/undefined_funcs_auto.txt + +# --- md_SC07_003 (module, vram 0x801A00D8 — onboarded by new_binary.sh) --- +md_SC07_003_EXE := extracted/retail/SC07.CD.dir/FILE_003.dir/1.1 +md_SC07_003_NAME := md_SC07_003 +md_SC07_003_OUT_DIR := build/md_SC07_003 +md_SC07_003_OUT := $(md_SC07_003_OUT_DIR)/$(md_SC07_003_NAME) +md_SC07_003_ELF := $(md_SC07_003_OUT).elf +md_SC07_003_MAPFILE := $(md_SC07_003_OUT).map +md_SC07_003_LD_SCRIPT := $(md_SC07_003_OUT).ld +md_SC07_003_SPLAT_YAML := config/splat.md_SC07_003.yaml +md_SC07_003_CHECK_SHA := config/check.md_SC07_003.sha +md_SC07_003_SYMBOLS := config/symbols.md_SC07_003.txt +md_SC07_003_SIG := .run/sig.md_SC07_003.jsonl +md_SC07_003_GHIDRA_PROG := md_SC07_003 +md_SC07_003_VRAM_BASE := 0x801A00D8 +md_SC07_003_TEXT_LO := 0x801A01D4 +md_SC07_003_TEXT_HI := 0x801F4504 +md_SC07_003_ASM_DIR := asm/md_SC07_003 +md_SC07_003_SRC_DIR := src/md_SC07_003 +md_SC07_003_UNDEF_SYMS := build/md_SC07_003/undefined_syms_auto.txt +md_SC07_003_UNDEF_FUNCS := build/md_SC07_003/undefined_funcs_auto.txt + +# --- md_SC07_004 (module, vram 0x801A00D8 — onboarded by new_binary.sh) --- +md_SC07_004_EXE := extracted/retail/SC07.CD.dir/FILE_004.dir/1.1 +md_SC07_004_NAME := md_SC07_004 +md_SC07_004_OUT_DIR := build/md_SC07_004 +md_SC07_004_OUT := $(md_SC07_004_OUT_DIR)/$(md_SC07_004_NAME) +md_SC07_004_ELF := $(md_SC07_004_OUT).elf +md_SC07_004_MAPFILE := $(md_SC07_004_OUT).map +md_SC07_004_LD_SCRIPT := $(md_SC07_004_OUT).ld +md_SC07_004_SPLAT_YAML := config/splat.md_SC07_004.yaml +md_SC07_004_CHECK_SHA := config/check.md_SC07_004.sha +md_SC07_004_SYMBOLS := config/symbols.md_SC07_004.txt +md_SC07_004_SIG := .run/sig.md_SC07_004.jsonl +md_SC07_004_GHIDRA_PROG := md_SC07_004 +md_SC07_004_VRAM_BASE := 0x801A00D8 +md_SC07_004_TEXT_LO := 0x801A0230 +md_SC07_004_TEXT_HI := 0x801F9338 +md_SC07_004_ASM_DIR := asm/md_SC07_004 +md_SC07_004_SRC_DIR := src/md_SC07_004 +md_SC07_004_UNDEF_SYMS := build/md_SC07_004/undefined_syms_auto.txt +md_SC07_004_UNDEF_FUNCS := build/md_SC07_004/undefined_funcs_auto.txt diff --git a/config/splat.md_SC07_003.yaml b/config/splat.md_SC07_003.yaml new file mode 100644 index 000000000..81f9e6219 --- /dev/null +++ b/config/splat.md_SC07_003.yaml @@ -0,0 +1,103 @@ +# splat config TEMPLATE — Brave Fencer Musashi location overlays (SCxx.CD/FILE_nnn/0.4.dec) +# ============================================================================= +# Phase 13: the reusable flat-blob splat config for a LOCATION OVERLAY. ~134 overlays +# all stream into the SAME RAM slot (vram 0x80128158) and chain into the resident engine +# (0x800CEDF8) + the EXE. This is a TEMPLATE: the @TOKEN@ placeholders are substituted to +# produce config/splat..yaml — by tools/new_overlay.sh (Phase 13 T4), or by hand +# (Phase 13 T1a for the first overlay). It is NOT a valid splat config until instantiated. +# +# Placeholders: +# md_SC07_003 binary alias, ov__ e.g. ov_SC01_077 +# extracted/retail/SC07.CD.dir/FILE_003.dir/1.1 extracted 0.4.dec payload path e.g. extracted/retail/SC01.CD.dir/FILE_077.dir/0.4.dec +# 46af79a1ee365a15ea8fdce8b5c9fb4abd355290 sha1 of the 0.4.dec (the build-identity target; also -> config/check..sha) +# 0x801A00D8 load vram (the shared overlay slot) e.g. 0x80128158 (constant across overlays today; +# parameterized so a future non-0x80128158 overlay needs no template edit) +# 0x62E4 file offset where code ends -> data tail begins (iterated vs the byte check, T1b) +# 0x5442C file size in bytes (the EOF marker; = the 0.4.dec length) +# +# Modeled on config/splat.resident.yaml (the Phase-10 flat-blob recipe), with overlays' +# differences: (1) code at file offset 0x0 (overlays open with a function prologue, NOT a +# leading data word like the resident — so NO leading-rodata trick by default; see the +# commented `head` slot for the rare pre-code-data overlay); (2) symbol_addrs_path ALSO +# stacks config/symbols.resident.txt because overlays reference resident engine globals; +# (3) vram is the overlay slot. Everything else matches the resident options verbatim. +# +# Byte-match is robust to the exact text/data split (splat round-trips the bytes — the +# resident precedent); iterate 0x62E4 against `make check BINARY=md_SC07_003` (Phase-5/10 +# precedent). LZSS is NOT in the verify path — we match the DECOMPRESSED 0.4.dec (repack is Gen3). +name: md_SC07_003 +sha1: 46af79a1ee365a15ea8fdce8b5c9fb4abd355290 +options: + basename: md_SC07_003 + target_path: extracted/retail/SC07.CD.dir/FILE_003.dir/1.1 + elf_path: build/md_SC07_003/md_SC07_003.elf + # base_path is resolved relative to THIS yaml's dir (config/), so `..` = repo root + base_path: .. + platform: psx + compiler: PSYQ + + asm_path: asm/md_SC07_003 + src_path: src/md_SC07_003 + # asset_path scoped per-alias so a `bin` subseg (the trailing-partial-word carve, below) lands at + # assets/md_SC07_003/*.bin and never collides with another overlay's same-named asset. The Makefile's + # build/assets/%.o rule incbin's it into a linkable object. + asset_path: assets/md_SC07_003 + # build_path = build (NOT build/): splat writes the .ld's object paths under + # $(build_path), and the Makefile's pattern rules build them at build/asm/** + build/src/**. + # Only the elf/ld/output live in build//. + build_path: build + ld_script_path: build/md_SC07_003/md_SC07_003.ld + ld_dependencies: True + + # Per-binary undefined-symbol outputs (under build//), so `make clean`'s `rm -rf build` + # covers them and binaries never share a stale file. + undefined_syms_auto_path: build/md_SC07_003/undefined_syms_auto.txt + undefined_funcs_auto_path: build/md_SC07_003/undefined_funcs_auto.txt + + find_file_boundaries: False + # NO gp_value: overlays are -G0 (verify zero ($gp)/%gp_rel in the disasm). Omitting it -> no _gp. + + o_as_suffix: True + use_legacy_include_asm: False + + section_order: [".rodata", ".text", ".data", ".bss"] + + # Stacked symbols: shared engine globals (symbols.us.txt) + resident engine globals the overlay + # calls (symbols.resident.txt) + the overlay-local names/boundaries (symbols..txt, seeded + # T1c from sig_image + duplicates.cross.md; R13/R15-tagged, overlay-region only). + symbol_addrs_path: + - config/symbols.us.txt + - config/symbols.resident.txt + - config/symbols.md_SC07_003.txt + + subalign: 2 + + string_encoding: ASCII + data_string_encoding: ASCII + rodata_string_guesser_level: 2 + data_string_guesser_level: 2 + + # Enable if maspsx reorders INCLUDE_ASM output in c-mode (unused for the EXE/resident): + # include_asm_macro_style: maspsx_hack + +segments: + - name: md_SC07_003 + type: code + start: 0x0 + vram: 0x801A00D8 + # align 4 (not the code default 16): MIPS is word-aligned; mirrors the EXE/resident choice. + align: 4 + subsegments: + # OPTIONAL leading pre-code data/rodata island (rare): if an overlay begins with a data + # word BEFORE its first function (the resident's case), uncomment a `head` subseg here and + # shift the code start. Mark it `rodata` (section_order places .rodata first) so it lands at + # 0x801A00D8 ahead of the code, a 1-word analogue of main's rodata-island (no ld_interleave). + # - [0x0, rodata, head] + - [0x0, .rodata, md_SC07_003] # module-id header (+jtbl/ptr table) — §154-A + - [0xFC, c, md_SC07_003] + - [0x62E4, data, tail] # data tail: pointer tables + packed data (split iterated) + - [0x5442C] # EOF marker = the 0.4.dec byte length +# @TRAILING@ (above) is replaced by tools/new_overlay.sh: for a non-4-aligned overlay it becomes +# ` - [0x, bin, trailing]` (the final 1-3 bytes spimdisasm's data path drops); +# for a 4-aligned overlay the marker line is removed. The Makefile build/assets/%.o rule + the +# objcopy end-align TRIM finish the job. Hand-instantiated configs (ov_SC01_077) inline the carve. diff --git a/config/splat.md_SC07_004.yaml b/config/splat.md_SC07_004.yaml new file mode 100644 index 000000000..7fed038dd --- /dev/null +++ b/config/splat.md_SC07_004.yaml @@ -0,0 +1,103 @@ +# splat config TEMPLATE — Brave Fencer Musashi location overlays (SCxx.CD/FILE_nnn/0.4.dec) +# ============================================================================= +# Phase 13: the reusable flat-blob splat config for a LOCATION OVERLAY. ~134 overlays +# all stream into the SAME RAM slot (vram 0x80128158) and chain into the resident engine +# (0x800CEDF8) + the EXE. This is a TEMPLATE: the @TOKEN@ placeholders are substituted to +# produce config/splat..yaml — by tools/new_overlay.sh (Phase 13 T4), or by hand +# (Phase 13 T1a for the first overlay). It is NOT a valid splat config until instantiated. +# +# Placeholders: +# md_SC07_004 binary alias, ov__ e.g. ov_SC01_077 +# extracted/retail/SC07.CD.dir/FILE_004.dir/1.1 extracted 0.4.dec payload path e.g. extracted/retail/SC01.CD.dir/FILE_077.dir/0.4.dec +# 87ac0de39029789300e15b7031f54b6ab1dea83c sha1 of the 0.4.dec (the build-identity target; also -> config/check..sha) +# 0x801A00D8 load vram (the shared overlay slot) e.g. 0x80128158 (constant across overlays today; +# parameterized so a future non-0x80128158 overlay needs no template edit) +# 0xF998 file offset where code ends -> data tail begins (iterated vs the byte check, T1b) +# 0x59260 file size in bytes (the EOF marker; = the 0.4.dec length) +# +# Modeled on config/splat.resident.yaml (the Phase-10 flat-blob recipe), with overlays' +# differences: (1) code at file offset 0x0 (overlays open with a function prologue, NOT a +# leading data word like the resident — so NO leading-rodata trick by default; see the +# commented `head` slot for the rare pre-code-data overlay); (2) symbol_addrs_path ALSO +# stacks config/symbols.resident.txt because overlays reference resident engine globals; +# (3) vram is the overlay slot. Everything else matches the resident options verbatim. +# +# Byte-match is robust to the exact text/data split (splat round-trips the bytes — the +# resident precedent); iterate 0xF998 against `make check BINARY=md_SC07_004` (Phase-5/10 +# precedent). LZSS is NOT in the verify path — we match the DECOMPRESSED 0.4.dec (repack is Gen3). +name: md_SC07_004 +sha1: 87ac0de39029789300e15b7031f54b6ab1dea83c +options: + basename: md_SC07_004 + target_path: extracted/retail/SC07.CD.dir/FILE_004.dir/1.1 + elf_path: build/md_SC07_004/md_SC07_004.elf + # base_path is resolved relative to THIS yaml's dir (config/), so `..` = repo root + base_path: .. + platform: psx + compiler: PSYQ + + asm_path: asm/md_SC07_004 + src_path: src/md_SC07_004 + # asset_path scoped per-alias so a `bin` subseg (the trailing-partial-word carve, below) lands at + # assets/md_SC07_004/*.bin and never collides with another overlay's same-named asset. The Makefile's + # build/assets/%.o rule incbin's it into a linkable object. + asset_path: assets/md_SC07_004 + # build_path = build (NOT build/): splat writes the .ld's object paths under + # $(build_path), and the Makefile's pattern rules build them at build/asm/** + build/src/**. + # Only the elf/ld/output live in build//. + build_path: build + ld_script_path: build/md_SC07_004/md_SC07_004.ld + ld_dependencies: True + + # Per-binary undefined-symbol outputs (under build//), so `make clean`'s `rm -rf build` + # covers them and binaries never share a stale file. + undefined_syms_auto_path: build/md_SC07_004/undefined_syms_auto.txt + undefined_funcs_auto_path: build/md_SC07_004/undefined_funcs_auto.txt + + find_file_boundaries: False + # NO gp_value: overlays are -G0 (verify zero ($gp)/%gp_rel in the disasm). Omitting it -> no _gp. + + o_as_suffix: True + use_legacy_include_asm: False + + section_order: [".rodata", ".text", ".data", ".bss"] + + # Stacked symbols: shared engine globals (symbols.us.txt) + resident engine globals the overlay + # calls (symbols.resident.txt) + the overlay-local names/boundaries (symbols..txt, seeded + # T1c from sig_image + duplicates.cross.md; R13/R15-tagged, overlay-region only). + symbol_addrs_path: + - config/symbols.us.txt + - config/symbols.resident.txt + - config/symbols.md_SC07_004.txt + + subalign: 2 + + string_encoding: ASCII + data_string_encoding: ASCII + rodata_string_guesser_level: 2 + data_string_guesser_level: 2 + + # Enable if maspsx reorders INCLUDE_ASM output in c-mode (unused for the EXE/resident): + # include_asm_macro_style: maspsx_hack + +segments: + - name: md_SC07_004 + type: code + start: 0x0 + vram: 0x801A00D8 + # align 4 (not the code default 16): MIPS is word-aligned; mirrors the EXE/resident choice. + align: 4 + subsegments: + # OPTIONAL leading pre-code data/rodata island (rare): if an overlay begins with a data + # word BEFORE its first function (the resident's case), uncomment a `head` subseg here and + # shift the code start. Mark it `rodata` (section_order places .rodata first) so it lands at + # 0x801A00D8 ahead of the code, a 1-word analogue of main's rodata-island (no ld_interleave). + # - [0x0, rodata, head] + - [0x0, .rodata, md_SC07_004] # module-id header (+jtbl/ptr table) — §154-A + - [0x158, c, md_SC07_004] + - [0xF998, data, tail] # data tail: pointer tables + packed data (split iterated) + - [0x59260] # EOF marker = the 0.4.dec byte length +# @TRAILING@ (above) is replaced by tools/new_overlay.sh: for a non-4-aligned overlay it becomes +# ` - [0x, bin, trailing]` (the final 1-3 bytes spimdisasm's data path drops); +# for a 4-aligned overlay the marker line is removed. The Makefile build/assets/%.o rule + the +# objcopy end-align TRIM finish the job. Hand-instantiated configs (ov_SC01_077) inline the carve. diff --git a/config/symbols.md_SC07_003.txt b/config/symbols.md_SC07_003.txt new file mode 100644 index 000000000..2f28fb536 --- /dev/null +++ b/config/symbols.md_SC07_003.txt @@ -0,0 +1,3 @@ +// config/symbols.md_SC07_003.txt — module md_SC07_003 local symbols +// R13/R15: this binary's REGION ONLY (vram 0x801A00D8..0x801F4504); NEVER merged into config/symbols.us.txt. +// count=0 diff --git a/config/symbols.md_SC07_004.txt b/config/symbols.md_SC07_004.txt new file mode 100644 index 000000000..dccc3763a --- /dev/null +++ b/config/symbols.md_SC07_004.txt @@ -0,0 +1,3 @@ +// config/symbols.md_SC07_004.txt — module md_SC07_004 local symbols +// R13/R15: this binary's REGION ONLY (vram 0x801A00D8..0x801F9338); NEVER merged into config/symbols.us.txt. +// count=0 diff --git a/diff_settings.py b/diff_settings.py index e797b5796..1e211d86c 100644 --- a/diff_settings.py +++ b/diff_settings.py @@ -557,6 +557,12 @@ BINARIES = { "md_MAIN_011": dict(baseimg="expected/build/md_MAIN_011/md_MAIN_011.elf", myimg="build/md_MAIN_011/md_MAIN_011.elf", mapfile="build/md_MAIN_011/md_MAIN_011.map"), + "md_SC07_003": dict(baseimg="expected/build/md_SC07_003/md_SC07_003.elf", + myimg="build/md_SC07_003/md_SC07_003.elf", + mapfile="build/md_SC07_003/md_SC07_003.map"), + "md_SC07_004": dict(baseimg="expected/build/md_SC07_004/md_SC07_004.elf", + myimg="build/md_SC07_004/md_SC07_004.elf", + mapfile="build/md_SC07_004/md_SC07_004.map"), # <<< overlays: tools/new_overlay.sh inserts ov_* entries above this line (Phase 13) >>> } diff --git a/phase-ends/CURRENT_PHASE.md b/phase-ends/CURRENT_PHASE.md index 305766d2a..9500e7856 100644 --- a/phase-ends/CURRENT_PHASE.md +++ b/phase-ends/CURRENT_PHASE.md @@ -198,7 +198,10 @@ stub on a named wall/behemoth/queue ledger** — 140/140 byte-identical througho removed from their stacks (their windows are sub-ranges of the resident region; DsMix @0x800D1BD8 had already minted a phantom function boundary inside md_MAIN_011; re-extracted clean, all 3 byte-identical, phantom gone). -- **II.1b** (SC07 pair) — next. +- **II.1b ✅ — SC07 pair onboarded BYTE-IDENTICAL at 0x801A00D8** (md_SC07_003 text-lo 0xFC, + 100 fns; md_SC07_004 text-lo 0x158, 315 fns — the derived TLOs matched the plan's documented + values exactly via the independent first-prologue scan). Symbol stacks window-checked clean. +- **II.1c** (sig-modules · hseq regen · dedup pass · audit-binaries · R22 · audit-disc) — next. --- diff --git a/src/md_SC07_003/md_SC07_003.c b/src/md_SC07_003/md_SC07_003.c new file mode 100644 index 000000000..c1756908c --- /dev/null +++ b/src/md_SC07_003/md_SC07_003.c @@ -0,0 +1,203 @@ +#include "common.h" + +INCLUDE_ASM("asm/md_SC07_003/nonmatchings/md_SC07_003", func_801A01D4); + +INCLUDE_ASM("asm/md_SC07_003/nonmatchings/md_SC07_003", func_801A026C); + +INCLUDE_ASM("asm/md_SC07_003/nonmatchings/md_SC07_003", func_801A04D4); + +INCLUDE_ASM("asm/md_SC07_003/nonmatchings/md_SC07_003", func_801A0524); + +INCLUDE_ASM("asm/md_SC07_003/nonmatchings/md_SC07_003", func_801A060C); + +INCLUDE_ASM("asm/md_SC07_003/nonmatchings/md_SC07_003", func_801A0648); + +INCLUDE_ASM("asm/md_SC07_003/nonmatchings/md_SC07_003", func_801A06AC); + +INCLUDE_ASM("asm/md_SC07_003/nonmatchings/md_SC07_003", func_801A06E8); + +INCLUDE_ASM("asm/md_SC07_003/nonmatchings/md_SC07_003", func_801A072C); + +INCLUDE_ASM("asm/md_SC07_003/nonmatchings/md_SC07_003", func_801A079C); + +INCLUDE_ASM("asm/md_SC07_003/nonmatchings/md_SC07_003", func_801A0940); + +INCLUDE_RODATA("asm/md_SC07_003/nonmatchings/md_SC07_003", D_801A00D8); + +INCLUDE_ASM("asm/md_SC07_003/nonmatchings/md_SC07_003", func_801A09C8); + +INCLUDE_ASM("asm/md_SC07_003/nonmatchings/md_SC07_003", func_801A0DA4); + +INCLUDE_ASM("asm/md_SC07_003/nonmatchings/md_SC07_003", func_801A0E28); + +INCLUDE_ASM("asm/md_SC07_003/nonmatchings/md_SC07_003", func_801A10B0); + +INCLUDE_ASM("asm/md_SC07_003/nonmatchings/md_SC07_003", func_801A1120); + +INCLUDE_ASM("asm/md_SC07_003/nonmatchings/md_SC07_003", func_801A13A0); + +INCLUDE_ASM("asm/md_SC07_003/nonmatchings/md_SC07_003", func_801A143C); + +INCLUDE_ASM("asm/md_SC07_003/nonmatchings/md_SC07_003", func_801A16BC); + +INCLUDE_ASM("asm/md_SC07_003/nonmatchings/md_SC07_003", func_801A1724); + +INCLUDE_ASM("asm/md_SC07_003/nonmatchings/md_SC07_003", func_801A1924); + +INCLUDE_ASM("asm/md_SC07_003/nonmatchings/md_SC07_003", func_801A19C8); + +INCLUDE_ASM("asm/md_SC07_003/nonmatchings/md_SC07_003", func_801A1ACC); + +INCLUDE_ASM("asm/md_SC07_003/nonmatchings/md_SC07_003", func_801A1B28); + +INCLUDE_ASM("asm/md_SC07_003/nonmatchings/md_SC07_003", func_801A1D94); + +INCLUDE_ASM("asm/md_SC07_003/nonmatchings/md_SC07_003", func_801A1E30); + +INCLUDE_ASM("asm/md_SC07_003/nonmatchings/md_SC07_003", func_801A1F38); + +INCLUDE_ASM("asm/md_SC07_003/nonmatchings/md_SC07_003", func_801A2014); + +INCLUDE_ASM("asm/md_SC07_003/nonmatchings/md_SC07_003", func_801A227C); + +INCLUDE_ASM("asm/md_SC07_003/nonmatchings/md_SC07_003", func_801A2318); + +INCLUDE_ASM("asm/md_SC07_003/nonmatchings/md_SC07_003", func_801A2384); + +INCLUDE_ASM("asm/md_SC07_003/nonmatchings/md_SC07_003", func_801A23A8); + +INCLUDE_ASM("asm/md_SC07_003/nonmatchings/md_SC07_003", func_801A23CC); + +INCLUDE_ASM("asm/md_SC07_003/nonmatchings/md_SC07_003", func_801A23FC); + +INCLUDE_ASM("asm/md_SC07_003/nonmatchings/md_SC07_003", func_801A24E8); + +INCLUDE_ASM("asm/md_SC07_003/nonmatchings/md_SC07_003", func_801A2658); + +INCLUDE_ASM("asm/md_SC07_003/nonmatchings/md_SC07_003", func_801A27A4); + +INCLUDE_ASM("asm/md_SC07_003/nonmatchings/md_SC07_003", func_801A28AC); + +INCLUDE_ASM("asm/md_SC07_003/nonmatchings/md_SC07_003", func_801A2918); + +INCLUDE_ASM("asm/md_SC07_003/nonmatchings/md_SC07_003", func_801A293C); + +INCLUDE_ASM("asm/md_SC07_003/nonmatchings/md_SC07_003", func_801A2E20); + +INCLUDE_ASM("asm/md_SC07_003/nonmatchings/md_SC07_003", func_801A2EC8); + +INCLUDE_ASM("asm/md_SC07_003/nonmatchings/md_SC07_003", func_801A3014); + +INCLUDE_ASM("asm/md_SC07_003/nonmatchings/md_SC07_003", func_801A3034); + +INCLUDE_ASM("asm/md_SC07_003/nonmatchings/md_SC07_003", func_801A3054); + +INCLUDE_ASM("asm/md_SC07_003/nonmatchings/md_SC07_003", func_801A30EC); + +INCLUDE_ASM("asm/md_SC07_003/nonmatchings/md_SC07_003", func_801A310C); + +INCLUDE_ASM("asm/md_SC07_003/nonmatchings/md_SC07_003", func_801A312C); + +INCLUDE_ASM("asm/md_SC07_003/nonmatchings/md_SC07_003", func_801A3190); + +INCLUDE_ASM("asm/md_SC07_003/nonmatchings/md_SC07_003", func_801A31CC); + +INCLUDE_ASM("asm/md_SC07_003/nonmatchings/md_SC07_003", func_801A3334); + +INCLUDE_ASM("asm/md_SC07_003/nonmatchings/md_SC07_003", func_801A3490); + +INCLUDE_ASM("asm/md_SC07_003/nonmatchings/md_SC07_003", func_801A3638); + +INCLUDE_ASM("asm/md_SC07_003/nonmatchings/md_SC07_003", func_801A3788); + +INCLUDE_ASM("asm/md_SC07_003/nonmatchings/md_SC07_003", func_801A38A8); + +INCLUDE_ASM("asm/md_SC07_003/nonmatchings/md_SC07_003", func_801A38E4); + +INCLUDE_ASM("asm/md_SC07_003/nonmatchings/md_SC07_003", func_801A3BCC); + +INCLUDE_ASM("asm/md_SC07_003/nonmatchings/md_SC07_003", func_801A419C); + +INCLUDE_ASM("asm/md_SC07_003/nonmatchings/md_SC07_003", func_801A4268); + +INCLUDE_ASM("asm/md_SC07_003/nonmatchings/md_SC07_003", func_801A43E8); + +INCLUDE_ASM("asm/md_SC07_003/nonmatchings/md_SC07_003", func_801A44C8); + +INCLUDE_ASM("asm/md_SC07_003/nonmatchings/md_SC07_003", func_801A4504); + +INCLUDE_ASM("asm/md_SC07_003/nonmatchings/md_SC07_003", func_801A4590); + +INCLUDE_ASM("asm/md_SC07_003/nonmatchings/md_SC07_003", func_801A4680); + +INCLUDE_ASM("asm/md_SC07_003/nonmatchings/md_SC07_003", func_801A4810); + +INCLUDE_ASM("asm/md_SC07_003/nonmatchings/md_SC07_003", func_801A484C); + +INCLUDE_ASM("asm/md_SC07_003/nonmatchings/md_SC07_003", func_801A48A8); + +INCLUDE_ASM("asm/md_SC07_003/nonmatchings/md_SC07_003", func_801A4A78); + +INCLUDE_ASM("asm/md_SC07_003/nonmatchings/md_SC07_003", func_801A4CF4); + +INCLUDE_ASM("asm/md_SC07_003/nonmatchings/md_SC07_003", func_801A4D58); + +INCLUDE_ASM("asm/md_SC07_003/nonmatchings/md_SC07_003", func_801A4DFC); + +INCLUDE_ASM("asm/md_SC07_003/nonmatchings/md_SC07_003", func_801A4F78); + +INCLUDE_ASM("asm/md_SC07_003/nonmatchings/md_SC07_003", func_801A4FB4); + +INCLUDE_ASM("asm/md_SC07_003/nonmatchings/md_SC07_003", func_801A505C); + +INCLUDE_ASM("asm/md_SC07_003/nonmatchings/md_SC07_003", func_801A5098); + +INCLUDE_ASM("asm/md_SC07_003/nonmatchings/md_SC07_003", func_801A50D4); + +INCLUDE_ASM("asm/md_SC07_003/nonmatchings/md_SC07_003", func_801A50FC); + +INCLUDE_ASM("asm/md_SC07_003/nonmatchings/md_SC07_003", func_801A5138); + +INCLUDE_ASM("asm/md_SC07_003/nonmatchings/md_SC07_003", func_801A52DC); + +INCLUDE_ASM("asm/md_SC07_003/nonmatchings/md_SC07_003", func_801A5638); + +INCLUDE_ASM("asm/md_SC07_003/nonmatchings/md_SC07_003", func_801A5674); + +INCLUDE_ASM("asm/md_SC07_003/nonmatchings/md_SC07_003", func_801A5860); + +INCLUDE_ASM("asm/md_SC07_003/nonmatchings/md_SC07_003", func_801A589C); + +INCLUDE_ASM("asm/md_SC07_003/nonmatchings/md_SC07_003", func_801A58D8); + +INCLUDE_ASM("asm/md_SC07_003/nonmatchings/md_SC07_003", func_801A59D4); + +INCLUDE_ASM("asm/md_SC07_003/nonmatchings/md_SC07_003", func_801A5A10); + +INCLUDE_ASM("asm/md_SC07_003/nonmatchings/md_SC07_003", func_801A5A9C); + +INCLUDE_ASM("asm/md_SC07_003/nonmatchings/md_SC07_003", func_801A5AE0); + +INCLUDE_ASM("asm/md_SC07_003/nonmatchings/md_SC07_003", func_801A5BBC); + +INCLUDE_ASM("asm/md_SC07_003/nonmatchings/md_SC07_003", func_801A5C34); + +INCLUDE_ASM("asm/md_SC07_003/nonmatchings/md_SC07_003", func_801A5D4C); + +INCLUDE_ASM("asm/md_SC07_003/nonmatchings/md_SC07_003", func_801A5E44); + +INCLUDE_ASM("asm/md_SC07_003/nonmatchings/md_SC07_003", func_801A5F18); + +INCLUDE_ASM("asm/md_SC07_003/nonmatchings/md_SC07_003", func_801A5F6C); + +INCLUDE_ASM("asm/md_SC07_003/nonmatchings/md_SC07_003", func_801A6038); + +INCLUDE_ASM("asm/md_SC07_003/nonmatchings/md_SC07_003", func_801A6108); + +INCLUDE_ASM("asm/md_SC07_003/nonmatchings/md_SC07_003", func_801A6138); + +INCLUDE_ASM("asm/md_SC07_003/nonmatchings/md_SC07_003", func_801A61C4); + +INCLUDE_ASM("asm/md_SC07_003/nonmatchings/md_SC07_003", func_801A623C); + +INCLUDE_ASM("asm/md_SC07_003/nonmatchings/md_SC07_003", func_801A6334); diff --git a/src/md_SC07_004/md_SC07_004.c b/src/md_SC07_004/md_SC07_004.c new file mode 100644 index 000000000..d27f1e5e7 --- /dev/null +++ b/src/md_SC07_004/md_SC07_004.c @@ -0,0 +1,641 @@ +#include "common.h" + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A0230); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A03A4); + +INCLUDE_RODATA("asm/md_SC07_004/nonmatchings/md_SC07_004", D_801A00D8); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A0400); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A09E4); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A0A98); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A0C58); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A0CD0); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A0D40); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A108C); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A1124); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A115C); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A11D4); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A1400); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A1470); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A18F4); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A1984); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A19C0); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A1C38); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A1C7C); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A1E74); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A1E94); + +INCLUDE_RODATA("asm/md_SC07_004/nonmatchings/md_SC07_004", D_801A0168); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A1F3C); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A2310); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A2330); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A2350); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A2364); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A2400); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A2C4C); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A2C54); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A2C68); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A2C88); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A2CA4); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A2D78); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A2DC4); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A2E90); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A2F34); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A30C8); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A3114); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A3180); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A34C4); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A34FC); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A3594); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A3624); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A36A8); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A36F0); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A370C); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A3744); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A3798); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A395C); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A39D0); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A3A6C); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A3B08); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A3B18); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A3D60); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A3EA8); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A3EEC); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A3F10); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A3FB0); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A4008); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A4060); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A40CC); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A417C); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A41CC); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A4258); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A4328); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A43EC); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A4420); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A445C); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A44C4); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A4570); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A46B8); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A46D4); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A46F0); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A4724); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A4A18); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A4AAC); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A4ACC); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A4E80); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A4EBC); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A4FDC); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A5094); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A5194); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A53B8); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A53F4); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A5414); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A5470); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A54AC); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A54F0); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A5654); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A5698); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A5798); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A57E8); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A5AA0); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A5AC0); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A5AE0); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A5B00); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A5B20); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A5B5C); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A5C44); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A5CE8); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A5D68); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A5E60); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A6184); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A6330); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A63A8); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A63EC); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A6428); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A649C); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A64DC); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A6560); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A6610); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A66DC); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A67F8); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A6908); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A6A18); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A6A38); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A6AD0); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A6BC0); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A6CA8); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A6D90); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A6DF4); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A6E78); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A6EF4); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A6F3C); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A6FD4); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A70D0); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A7184); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A7200); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A72DC); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A7358); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A7604); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A77CC); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A7808); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A7864); + +INCLUDE_RODATA("asm/md_SC07_004/nonmatchings/md_SC07_004", D_801A01E8); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A788C); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A7AF8); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A7B08); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A7C34); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A7C58); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A7CC8); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A7CDC); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A7D18); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A7D34); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A7E5C); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A7F84); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A8054); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A80C0); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A8228); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A8294); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A8404); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A8440); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A8494); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A8528); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A8564); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A85A8); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A861C); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A8670); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A86B4); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A86F8); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A8738); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A876C); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A87C4); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A881C); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A8884); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A88AC); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A8954); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A8990); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A8A64); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A8B28); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A8B64); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A8C58); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A8CE0); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A8DCC); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A8E34); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A900C); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A90D8); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A9270); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A930C); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A933C); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A9378); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A93B8); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A93F4); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A9454); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A94A0); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A9674); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A9810); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A98CC); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A9908); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A9954); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A99A4); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A9AAC); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A9ADC); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A9B04); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A9B40); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A9B80); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A9C00); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A9CAC); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A9EB0); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A9F5C); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A9FA8); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A9FC8); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801AA004); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801AA0B4); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801AA160); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801AA210); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801AA2F8); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801AA3CC); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801AA4A8); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801AA4EC); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801AA540); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801AA584); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801AA60C); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801AA730); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801AA76C); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801AA7A8); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801AA7E4); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801AA91C); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801AA9D4); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801AAA6C); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801AAB28); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801AACD4); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801AADA8); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801AAF34); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801AAF8C); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801AB178); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801AB1A8); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801AB21C); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801AB41C); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801AB54C); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801AB5D4); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801AB694); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801AB748); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801AB78C); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801AB818); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801AB8C0); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801AB9AC); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801ABA74); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801ABBA4); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801ABC04); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801ABC8C); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801ABDA4); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801ABEE0); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801ABFF8); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801AC0D4); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801AC150); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801AC234); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801AC29C); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801AC3C8); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801AC47C); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801AC54C); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801AC59C); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801AC6C0); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801AC794); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801AC8B8); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801AC940); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801AC9CC); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801ACA88); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801ACB2C); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801ACC24); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801ACD10); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801ACD4C); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801ACDC8); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801ACE04); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801ACE20); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801ACE5C); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801AD068); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801AD1E4); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801AD220); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801AD294); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801AD2CC); + +INCLUDE_RODATA("asm/md_SC07_004/nonmatchings/md_SC07_004", D_801A021C); + +INCLUDE_RODATA("asm/md_SC07_004/nonmatchings/md_SC07_004", D_801A0220); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801AD31C); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801AD4C0); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801AD4D4); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801AD520); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801AD55C); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801AD5B4); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801AD640); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801AD6C4); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801AD700); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801AD7EC); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801AD914); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801AD9D4); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801ADA10); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801ADA9C); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801ADBB0); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801ADC40); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801ADD98); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801ADE1C); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801ADF5C); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801AE060); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801AE138); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801AE220); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801AE324); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801AE3A4); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801AE408); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801AE520); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801AE624); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801AE6D4); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801AE734); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801AE82C); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801AE8B0); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801AE908); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801AE990); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801AEA40); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801AEAAC); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801AEAE4); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801AEB04); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801AEB94); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801AEC38); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801AF1EC); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801AF2EC); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801AF368); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801AF808); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801AF994); + +INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801AF9C8); diff --git a/tools/dup_report.py b/tools/dup_report.py index f3b420093..5362e67d1 100644 --- a/tools/dup_report.py +++ b/tools/dup_report.py @@ -205,6 +205,8 @@ BINARIES = { "md_MAIN_001": dict(sig=".run/sig.md_MAIN_001.jsonl", md="docs/duplicates.md_MAIN_001.md"), "md_MAIN_008": dict(sig=".run/sig.md_MAIN_008.jsonl", md="docs/duplicates.md_MAIN_008.md"), "md_MAIN_011": dict(sig=".run/sig.md_MAIN_011.jsonl", md="docs/duplicates.md_MAIN_011.md"), + "md_SC07_003": dict(sig=".run/sig.md_SC07_003.jsonl", md="docs/duplicates.md_SC07_003.md"), + "md_SC07_004": dict(sig=".run/sig.md_SC07_004.jsonl", md="docs/duplicates.md_SC07_004.md"), # <<< overlays: tools/new_overlay.sh inserts ov_* entries above this line (Phase 13) >>> } CROSS_MD = "docs/duplicates.cross.md" diff --git a/tools/progress.py b/tools/progress.py index e46236a78..298a1c797 100644 --- a/tools/progress.py +++ b/tools/progress.py @@ -383,6 +383,10 @@ BINARIES = { src="src/md_MAIN_008", asm="asm/md_MAIN_008/nonmatchings", out="docs/progress.md_MAIN_008.md"), "md_MAIN_011": dict(build="build/md_MAIN_011/md_MAIN_011", check="config/check.md_MAIN_011.sha", src="src/md_MAIN_011", asm="asm/md_MAIN_011/nonmatchings", out="docs/progress.md_MAIN_011.md"), + "md_SC07_003": dict(build="build/md_SC07_003/md_SC07_003", check="config/check.md_SC07_003.sha", + src="src/md_SC07_003", asm="asm/md_SC07_003/nonmatchings", out="docs/progress.md_SC07_003.md"), + "md_SC07_004": dict(build="build/md_SC07_004/md_SC07_004", check="config/check.md_SC07_004.sha", + src="src/md_SC07_004", asm="asm/md_SC07_004/nonmatchings", out="docs/progress.md_SC07_004.md"), # <<< overlays: tools/new_overlay.sh inserts ov_* entries above this line (Phase 13) >>> } MAKEFILE = ROOT / "Makefile"