#!/usr/bin/env python3 ### # Generates build files for the project. # This file also includes the project configuration, # such as compiler flags and the object matching status. # # Usage: # python3 configure.py # ninja # # Append --help to see available options. ### import argparse import json import os import re import sys import urllib.request from pathlib import Path from typing import Any, Dict, List from tools.project import ( Object, ProgressCategory, ProjectConfig, calculate_progress, generate_build, is_windows, ) # Game versions DEFAULT_VERSION = 0 VERSIONS = [ "GAFE01_00", # USA Rev 0 ] parser = argparse.ArgumentParser() parser.add_argument( "mode", choices=["configure", "progress"], default="configure", help="script mode (default: configure)", nargs="?", ) parser.add_argument( "-v", "--version", choices=VERSIONS, type=str.upper, default=VERSIONS[DEFAULT_VERSION], help="version to build", ) parser.add_argument( "--build-dir", metavar="DIR", type=Path, default=Path("build"), help="base build directory (default: build)", ) parser.add_argument( "--binutils", metavar="BINARY", type=Path, help="path to binutils (optional)", ) parser.add_argument( "--compilers", metavar="DIR", type=Path, help="path to compilers (optional)", ) parser.add_argument( "--map", action="store_true", help="generate map file(s)", ) parser.add_argument( "--debug", action="store_true", help="build with debug info (non-matching)", ) if not is_windows(): parser.add_argument( "--wrapper", metavar="BINARY", type=Path, help="path to wibo or wine (optional)", ) parser.add_argument( "--dtk", metavar="BINARY | DIR", type=Path, help="path to decomp-toolkit binary or source (optional)", ) parser.add_argument( "--objdiff", metavar="BINARY | DIR", type=Path, help="path to objdiff-cli binary or source (optional)", ) parser.add_argument( "--sjiswrap", metavar="EXE", type=Path, help="path to sjiswrap.exe (optional)", ) parser.add_argument( "--orthrus", metavar="BINARY", type=Path, help="path to orthrus[.exe] (optional)", ) parser.add_argument( "--verbose", action="store_true", help="print verbose output", ) parser.add_argument( "--non-matching", dest="non_matching", action="store_true", help="builds equivalent (but non-matching) or modded objects", ) parser.add_argument( "--no-progress", dest="progress", action="store_false", help="disable progress calculation", ) args = parser.parse_args() config = ProjectConfig() config.version = str(args.version) version_num = VERSIONS.index(config.version) # Apply arguments config.build_dir = args.build_dir config.dtk_path = args.dtk config.objdiff_path = args.objdiff config.binutils_path = args.binutils config.compilers_path = args.compilers config.generate_map = args.map config.non_matching = args.non_matching config.sjiswrap_path = args.sjiswrap config.orthrus_path = args.orthrus config.progress = args.progress if not is_windows(): config.wrapper = args.wrapper # Don't build asm unless we're --non-matching if not config.non_matching: config.asm_dir = None # Tool versions config.binutils_tag = "2.42-1" config.compilers_tag = "20240706" config.dtk_tag = "v1.6.2" config.objdiff_tag = "v3.0.0-beta.9" config.sjiswrap_tag = "v1.2.0" config.wibo_tag = "0.6.11" config.orthrus_tag = "v0.2.0" # Project config.config_path = Path("config") / config.version / "config.yml" config.check_sha_path = Path("config") / config.version / "build.sha1" config.asflags = [ "-mgekko", "--strip-local-absolute", "-I include", "-I include/dolphin", "-I include/libc", "-I src/static/dolphin", f"-I build/{config.version}/include", # needed for JUTResFONT_Ascfont_fix12 f"-I build/{config.version}/bin/assets", f"--defsym version={version_num}", ] config.ldflags = [ "-fp hardware", "-nodefaults", "-warn off", ] if args.debug: config.ldflags.append("-g") if args.map: config.ldflags.append("-mapunused") # Use for any additional files that should cause a re-configure when modified config.reconfig_deps = [] # Base flags, common to most GC/Wii games. # Generally leave untouched, with overrides added below. cflags_base = [ # Platform Definitions "-nodefaults", "-proc gekko", "-align powerpc", "-enum int", # Multibyte Definitions "-multibyte", "-char unsigned", # Gekko Specific Definitions "-fp hardware", "-Cpp_exceptions off", '-pragma "cats off"', # Default compiler flags (turn off if needed) # "-W all", # "-O4,p", # "-inline auto", '-pragma "warn_notinlined off"', # Helpful linker flags "-maxerrors 1", "-nosyspath", # dtk-specific includes "-i include", "-i include/dolphin", "-i include/libc", "-i src/static/dolphin", f"-i build/{config.version}/include", f"-DVERSION={version_num}", ] # Debug flags if args.debug: cflags_base.extend(["-sym on", "-DDEBUG=1", "-D_DEBUG"]) else: cflags_base.extend(["-sym on", "-DDEBUG=0", "-DNDEBUG"]) cflags_common = [ # Needed for N64 SDK "-d _LANGUAGE_C", "-d F3DEX_GBI_2", # Project-specific stuff "-d MUST_MATCH", ] # DOL flags cflags_static = [ *cflags_base, *cflags_common, "-O4,s", ] # Metrowerks library flags cflags_runtime = [ *cflags_base, "-O4,p", "-inline all", ] # REL flags cflags_foresta = [ *cflags_base, *cflags_common, "-O4,s", "-sdata 0", "-sdata2 0", "-d IS_REL", "-requireprotos", "-sym on", ] config.linker_version = "GC/1.3.2" # Helper function for Dolphin libraries def DolphinLib(lib_name: str, objects: List[Object]) -> Dict[str, Any]: return { "lib": lib_name, "mw_version": "GC/1.2.5n", "cflags": [*cflags_runtime, "-char signed"], "progress_category": "sdk", "src_dir": "src/static", "objects": objects, } def DolphinLibMtx(lib_name: str, objects: List[Object]) -> Dict[str, Any]: return { "lib": lib_name, "mw_version": "GC/1.2.5", "cflags": [*cflags_runtime, "-char signed"], "progress_category": "sdk", "src_dir": "src/static", "objects": objects, } def JSystemLib(lib_name: str, objects: List[Object]) -> Dict[str, Any]: return { "lib": lib_name, "mw_version": "GC/1.3.2", "cflags": [*cflags_base, "-O4,s", "-char signed"], "progress_category": "jsystem", "src_dir": "src/static", "objects": objects, } # Helper function for REL script objects def Rel(lib_name: str, objects: List[Object]) -> Dict[str, Any]: return { "lib": lib_name, "mw_version": "GC/1.3.2", "cflags": cflags_foresta, "progress_category": "game", "objects": objects, } Matching = True # Object matches and should be linked NonMatching = False # Object does not match and should not be linked Equivalent = ( config.non_matching ) # Object should be linked when configured with --non-matching # Object is only matching for specific versions def MatchingFor(*versions): return config.version in versions config.warn_missing_config = False config.warn_missing_source = False config.libs = [ { "lib": "boot", "mw_version": config.linker_version, "cflags": [ *cflags_static, "-sdata 0", "-sdata2 0", "-inline on", ], "progress_category": "game", "src_dir": "src/static", "objects": [ Object(Matching, "boot.c"), Object(Matching, "jsyswrap.cpp"), Object(Matching, "version.c"), Object(Matching, "initial_menu.c"), Object(Matching, "dvderr.c", extra_cflags=["-pool off"]), Object(Matching, "bootdata/gam_win1.c"), Object(Matching, "bootdata/gam_win2.c"), Object(Matching, "bootdata/gam_win3.c"), Object(Matching, "bootdata/logo_nin.c"), Object(Matching, "nintendo_hi_0.c"), Object(Matching, "GBA2/JoyBoot.c"), ], }, { "lib": "libforest", "mw_version": config.linker_version, "cflags": cflags_static, "progress_category": "library", "src_dir": "src/static", "objects": [ Object(Matching, "libforest/emu64/emu64.c", extra_cflags=["-lang=c++", "-O4,p", "-inline auto"]), Object(Matching, "libforest/osreport.c"), Object(Matching, "libforest/fault.c"), Object(Matching, "libforest/ReconfigBATs.c"), ], }, { "lib": "libu64", "mw_version": config.linker_version, "cflags": cflags_static, "progress_category": "library", "src_dir": "src/static", "objects": [ Object(Matching, "libu64/debug.c"), Object(Matching, "libu64/gfxprint.c"), Object(Matching, "libu64/gfxprint_data.c"), Object(Matching, "libu64/pad.c"), ], }, { "lib": "libc64", "mw_version": config.linker_version, "cflags": cflags_static, "progress_category": "library", "src_dir": "src/static", "objects": [ Object(Matching, "libc64/__osMalloc.c"), Object(Matching, "libc64/aprintf.c"), Object(Matching, "libc64/math64.c"), Object(Matching, "libc64/qrand.c"), Object(Matching, "libc64/sleep.c"), Object(Matching, "libc64/sprintf.c"), Object(Matching, "libc64/malloc.c"), ], }, { "lib": "libultra", "mw_version": config.linker_version, "cflags": [*cflags_static, "-O4,p", "-inline auto"], "progress_category": "library", "src_dir": "src/static", "objects": [ Object(Matching, "libultra/contquery.c"), Object(Matching, "libultra/contreaddata.c"), Object(Matching, "libultra/controller.c"), Object(Matching, "libultra/contsetch.c"), Object(Matching, "libultra/gu/coss.c"), Object(Matching, "libultra/createmesgqueue.c"), Object(Matching, "libultra/createthread.c"), Object(Matching, "libultra/destroythread.c"), Object(Matching, "libultra/getthreadid.c"), Object(Matching, "libultra/gettime.c"), Object(Matching, "libultra/initialize.c"), Object(Matching, "libultra/gu/lookat.c"), Object(Matching, "libultra/gu/lookathil.c"), Object(Matching, "libultra/gu/mtxutil.c"), Object(Matching, "libultra/gu/normalize.c"), Object(Matching, "libultra/gu/ortho.c"), Object(Matching, "libultra/gu/perspective.c"), Object(Matching, "libultra/recvmesg.c"), Object(Matching, "libultra/gu/rotate.c"), Object(Matching, "libultra/gu/scale.c"), Object(Matching, "libultra/sendmesg.c"), Object(Matching, "libultra/setthreadpri.c"), Object(Matching, "libultra/settimer.c", extra_cflags=["-O0", "-opt schedule", "-opt peep"]), # no clue why this file has these flags, but they're necessary Object(Matching, "libultra/shutdown.c"), Object(Matching, "libultra/gu/sins.c"), Object(Matching, "libultra/startthread.c"), Object(Matching, "libultra/stoptimer.c"), Object(Matching, "libultra/timerintr.c"), Object(Matching, "libultra/gu/translate.c"), Object(Matching, "libultra/ultra.c"), Object(Matching, "libultra/xldtob.c"), Object(Matching, "libultra/xlitob.c"), Object(Matching, "libultra/xprintf.c"), ], }, { "lib": "libjsys", "mw_version": config.linker_version, "cflags": cflags_static, "progress_category": "library", "src_dir": "src/static", "objects": [ Object(Matching, "libjsys/jsyswrapper.cpp"), ], }, DolphinLib( "ai", [ Object(Matching, "dolphin/ai/ai.c"), ], ), DolphinLib( "ar", [ Object(Matching, "dolphin/ar/ar.c"), Object(Matching, "dolphin/ar/arq.c"), ], ), DolphinLib( "amcstubs", [ Object(Matching, "dolphin/amcstubs/AmcExi2Stubs.c"), ], ), DolphinLib( "base", [ Object(Matching, "dolphin/base/PPCArch.c"), ], ), DolphinLib( "card", [ Object(Matching, "dolphin/card/CARDBios.c"), Object(Matching, "dolphin/card/CARDBlock.c"), Object(Matching, "dolphin/card/CARDCheck.c"), Object(Matching, "dolphin/card/CARDCreate.c"), Object(Matching, "dolphin/card/CARDDelete.c"), Object(Matching, "dolphin/card/CARDDir.c"), Object(Matching, "dolphin/card/CARDFormat.c"), Object(Matching, "dolphin/card/CARDMount.c"), Object(Matching, "dolphin/card/CARDNet.c"), Object(Matching, "dolphin/card/CARDOpen.c"), Object(Matching, "dolphin/card/CARDRdwr.c"), Object(Matching, "dolphin/card/CARDRead.c"), Object(Matching, "dolphin/card/CARDRename.c"), Object(Matching, "dolphin/card/CARDStat.c"), Object(Matching, "dolphin/card/CARDStatEx.c"), Object(Matching, "dolphin/card/CARDWrite.c"), ], ), DolphinLib( "db", [ Object(Matching, "dolphin/db/db.c"), ], ), DolphinLib( "dsp", [ Object(Matching, "dolphin/dsp/dsp.c"), ], ), DolphinLib( "dvd", [ Object(Matching, "dolphin/dvd/dvd.c"), Object(Matching, "dolphin/dvd/dvderror.c"), Object(Matching, "dolphin/dvd/dvdfs.c"), Object(Matching, "dolphin/dvd/dvdlow.c"), Object(Matching, "dolphin/dvd/dvdqueue.c"), Object(Matching, "dolphin/dvd/fstload.c"), ], ), DolphinLib( "exi", [ Object(Matching, "dolphin/exi/EXIBios.c"), Object(Matching, "dolphin/exi/EXIUart.c"), ], ), DolphinLib( "gba", [ Object(Matching, "dolphin/gba/GBA.c"), Object(Matching, "dolphin/gba/GBAGetProcessStatus.c"), Object(Matching, "dolphin/gba/GBAJoyBoot.c"), Object(Matching, "dolphin/gba/GBARead.c"), Object(Matching, "dolphin/gba/GBAWrite.c"), Object(Matching, "dolphin/gba/GBAXfer.c"), ], ), DolphinLib( "gx", [ Object(Matching, "dolphin/gx/GXAttr.c"), Object(Matching, "dolphin/gx/GXBump.c"), Object(Matching, "dolphin/gx/GXDisplayList.c"), Object(Matching, "dolphin/gx/GXFifo.c"), Object(Matching, "dolphin/gx/GXFrameBuf.c"), Object(Matching, "dolphin/gx/GXGeometry.c"), Object(Matching, "dolphin/gx/GXInit.c"), Object(Matching, "dolphin/gx/GXLight.c"), Object(Matching, "dolphin/gx/GXMisc.c"), Object(Matching, "dolphin/gx/GXPerf.c"), Object(Matching, "dolphin/gx/GXPixel.c"), Object(Matching, "dolphin/gx/GXStubs.c"), Object(Matching, "dolphin/gx/GXTev.c"), Object(Matching, "dolphin/gx/GXTexture.c"), Object(Matching, "dolphin/gx/GXTransform.c"), ], ), DolphinLibMtx( "mtx", [ Object(Matching, "dolphin/mtx/mtx.c"), Object(Matching, "dolphin/mtx/mtx44.c"), Object(Matching, "dolphin/mtx/mtxvec.c"), Object(Matching, "dolphin/mtx/vec.c"), ], ), DolphinLib( "OdemuExi2", [ Object(Matching, "dolphin/OdemuExi2/DebuggerDriver.c", extra_cflags=["-inline deferred"]), ], ), DolphinLib( "odenotstub", [ Object(Matching, "dolphin/odenotstub/odenotstub.c"), ], ), DolphinLib( "os", [ Object(Matching, "dolphin/os/__ppc_eabi_init.cpp"), Object(Matching, "dolphin/os/__start.c"), Object(Matching, "dolphin/os/OS.c"), Object(Matching, "dolphin/os/OSAlarm.c"), Object(Matching, "dolphin/os/OSAlloc.c"), Object(Matching, "dolphin/os/OSArena.c"), Object(Matching, "dolphin/os/OSAudioSystem.c"), Object(Matching, "dolphin/os/OSCache.c"), Object(Matching, "dolphin/os/OSContext.c"), Object(Matching, "dolphin/os/OSError.c"), Object(Matching, "dolphin/os/OSFont.c"), Object(Matching, "dolphin/os/OSInterrupt.c"), Object(Matching, "dolphin/os/OSLink.c"), Object(Matching, "dolphin/os/OSMemory.c"), Object(Matching, "dolphin/os/OSMessage.c"), Object(Matching, "dolphin/os/OSMutex.c"), Object(Matching, "dolphin/os/OSReboot.c"), Object(Matching, "dolphin/os/OSReset.c"), Object(Matching, "dolphin/os/OSResetSW.c"), Object(Matching, "dolphin/os/OSRtc.c"), Object(Matching, "dolphin/os/OSSync.c"), Object(Matching, "dolphin/os/OSThread.c"), Object(Matching, "dolphin/os/OSTime.c"), ], ), DolphinLib( "pad", [ Object(Matching, "dolphin/pad/Pad.c"), Object(Matching, "dolphin/pad/Padclamp.c"), ], ), DolphinLib( "si", [ Object(Matching, "dolphin/si/SIBios.c"), Object(Matching, "dolphin/si/SISamplingRate.c"), ], ), DolphinLib( "vi", [ Object(Matching, "dolphin/vi/vi.c"), ], ), JSystemLib( "J2DGraph", [ Object(Matching, "JSystem/J2DGraph/J2DGrafContext.cpp"), Object(Matching, "JSystem/J2DGraph/J2DOrthoGraph.cpp"), ], ), JSystemLib( "JFramework", [ Object(Matching, "JSystem/JFramework/JFWDisplay.cpp"), Object(Matching, "JSystem/JFramework/JFWSystem.cpp"), ], ), JSystemLib( "JGadget", [ Object(Matching, "JSystem/JGadget/linklist.cpp"), ], ), JSystemLib( "JKernel", [ Object(Matching, "JSystem/JKernel/JKRAram.cpp"), Object(Matching, "JSystem/JKernel/JKRAramArchive.cpp"), Object(Matching, "JSystem/JKernel/JKRAramBlock.cpp"), Object(Matching, "JSystem/JKernel/JKRAramHeap.cpp"), Object(Matching, "JSystem/JKernel/JKRAramPiece.cpp"), Object(Matching, "JSystem/JKernel/JKRAramStream.cpp"), Object(Matching, "JSystem/JKernel/JKRArchivePri.cpp"), Object(Matching, "JSystem/JKernel/JKRArchivePub.cpp"), Object(Matching, "JSystem/JKernel/JKRCompArchive.cpp"), Object(Matching, "JSystem/JKernel/JKRDecomp.cpp"), Object(Matching, "JSystem/JKernel/JKRDisposer.cpp"), Object(Matching, "JSystem/JKernel/JKRDvdAramRipper.cpp"), Object(Matching, "JSystem/JKernel/JKRDvdArchive.cpp"), Object(Matching, "JSystem/JKernel/JKRDvdFile.cpp"), Object(Matching, "JSystem/JKernel/JKRDvdRipper.cpp"), Object(Matching, "JSystem/JKernel/JKRExpHeap.cpp"), Object(Matching, "JSystem/JKernel/JKRFileFinder.cpp"), Object(Matching, "JSystem/JKernel/JKRFileLoader.cpp"), Object(Matching, "JSystem/JKernel/JKRHeap.cpp"), Object(Matching, "JSystem/JKernel/JKRMemArchive.cpp"), Object(Matching, "JSystem/JKernel/JKRThread.cpp"), ], ), JSystemLib( "JSupport", [ Object(Matching, "JSystem/JSupport/JSUFileStream.cpp"), Object(Matching, "JSystem/JSupport/JSUInputStream.cpp"), Object(Matching, "JSystem/JSupport/JSUList.cpp"), ], ), JSystemLib( "JUtility", [ Object(Matching, "JSystem/JUtility/JUTAssert.cpp"), Object(Matching, "JSystem/JUtility/JUTConsole.cpp"), Object(Matching, "JSystem/JUtility/JUTDbPrint.cpp"), Object(Matching, "JSystem/JUtility/JUTDirectFile.cpp"), Object(Matching, "JSystem/JUtility/JUTDirectPrint.cpp"), Object(Matching, "JSystem/JUtility/JUTException.cpp"), Object(Matching, "JSystem/JUtility/JUTFader.cpp"), Object(Matching, "JSystem/JUtility/JUTFont.cpp"), Object(Matching, "JSystem/JUtility/JUTFontData_Ascfont_fix12.s"), Object(Matching, "JSystem/JUtility/JUTGamePad.cpp"), Object(Matching, "JSystem/JUtility/JUTGraphFifo.cpp"), Object(Matching, "JSystem/JUtility/JUTProcBar.cpp"), Object(Matching, "JSystem/JUtility/JUTResFont.cpp"), Object(Matching, "JSystem/JUtility/JUTVideo.cpp"), Object(Matching, "JSystem/JUtility/JUTXfb.cpp"), ], ), # { # "lib": "jaudio_NES", # "mw_version": config.linker_version, # "cflags": [*cflags_static, "-lang=c++", "-O4,s", "-str readonly"], # "progress_category": "library", # "src_dir": "src/static", # "objects": [ # ], # }, { "lib": "jaudio_NES_game", "mw_version": config.linker_version, "cflags": [*cflags_static, "-O0", "-inline off", "-lang=c++"], "progress_category": "library", "src_dir": "src/static", "objects": [ Object(Matching, "jaudio_NES/game/audioheaders.c"), Object(Matching, "jaudio_NES/game/dummyprobe.c"), Object(Matching, "jaudio_NES/game/emusound.c", extra_cflags=["-O4,s", "-fp_contract on", "-func_align 32", "-vector on"]), Object(Matching, "jaudio_NES/game/game64.c"), Object(Matching, "jaudio_NES/game/kappa.c"), Object(Matching, "jaudio_NES/game/melody.c"), Object(Matching, "jaudio_NES/game/radio.c"), Object(Matching, "jaudio_NES/game/rhythm.c"), Object(Matching, "jaudio_NES/game/staff.c"), Object(Matching, "jaudio_NES/game/verysimple.c"), ], }, { "lib": "jaudio_NES_internal", "mw_version": config.linker_version, "cflags": [ *cflags_static, "-lang=c++", "-common on", "-func_align 32", "-inline off", "-str readonly", "-char signed", "-sdata 8", "-sdata2 8", "-fp_contract on", ], "progress_category": "library", "src_dir": "src/static", "objects": [ Object(Matching, "jaudio_NES/internal/aictrl.c"), Object(Matching, "jaudio_NES/internal/astest.c"), Object(Matching, "jaudio_NES/internal/audiothread.c"), Object(Matching, "jaudio_NES/internal/cpubuf.c"), Object(Matching, "jaudio_NES/internal/dspboot.c"), Object(Matching, "jaudio_NES/internal/dspbuf.c"), Object(Matching, "jaudio_NES/internal/dspproc.c"), Object(Matching, "jaudio_NES/internal/dummyrom.c"), Object(Matching, "jaudio_NES/internal/dvdthread.c"), Object(Matching, "jaudio_NES/internal/neosthread.c"), Object(Matching, "jaudio_NES/internal/os.c"), Object(Matching, "jaudio_NES/internal/playercall.c"), Object(Matching, "jaudio_NES/internal/random.c"), Object(Matching, "jaudio_NES/internal/sample.c"), Object(Matching, "jaudio_NES/internal/streamctrl.c"), Object(Matching, "jaudio_NES/internal/sub_sys.c"), Object(Matching, "jaudio_NES/internal/track.c"), Object(Matching, "jaudio_NES/internal/aramcall.c"), Object(Matching, "jaudio_NES/internal/audioconst.c"), Object(Matching, "jaudio_NES/internal/audiotable.c"), Object(Matching, "jaudio_NES/internal/audiowork.c"), Object(Matching, "jaudio_NES/internal/bankdrv.c", extra_cflags=["-pragma \"scheduling 7400\""]), Object(Matching, "jaudio_NES/internal/bankread.c"), Object(Matching, "jaudio_NES/internal/centcalc.c"), Object(Matching, "jaudio_NES/internal/channel.c"), Object(Matching, "jaudio_NES/internal/cmdstack.c"), Object(Matching, "jaudio_NES/internal/connect.c"), Object(NonMatching, "jaudio_NES/internal/driver.c"), Object(Matching, "jaudio_NES/internal/driverinterface.c"), Object(Matching, "jaudio_NES/internal/dsp_cardunlock.c"), Object(Matching, "jaudio_NES/internal/dsp_GBAKey.c"), Object(Equivalent, "jaudio_NES/internal/dspdriver.c"), Object(Matching, "jaudio_NES/internal/dspinterface.c"), Object(Matching, "jaudio_NES/internal/effect.c", extra_cflags=["-pragma \"scheduling 7400\""]), Object(Matching, "jaudio_NES/internal/fat.c"), Object(Matching, "jaudio_NES/internal/fxinterface.c"), Object(Matching, "jaudio_NES/internal/heapctrl.c"), Object(Matching, "jaudio_NES/internal/ipldec.c"), Object(Matching, "jaudio_NES/internal/ja_calc.c", extra_cflags=["-sym off"]), Object(NonMatching, "jaudio_NES/internal/jammain_2.c", extra_cflags=["-sym on"]), Object(Matching, "jaudio_NES/internal/jamosc.c"), Object(NonMatching, "jaudio_NES/internal/memory.c", extra_cflags=["-pragma \"scheduling 7400\""]), Object(Matching, "jaudio_NES/internal/midplay.c"), Object(Matching, "jaudio_NES/internal/noteon.c"), Object(Matching, "jaudio_NES/internal/oneshot.c"), Object(NonMatching, "jaudio_NES/internal/rate.c"), Object(NonMatching, "jaudio_NES/internal/rspsim.c"), Object(Matching, "jaudio_NES/internal/seqsetup.c"), Object(Equivalent, "jaudio_NES/internal/system.c", extra_cflags=["-pragma \"scheduling 7400\""]), Object(Matching, "jaudio_NES/internal/tables.c"), Object(Matching, "jaudio_NES/internal/waveread.c"), ], }, { "lib": "Famicom", "mw_version": "GC/1.3.2", "cflags": [ *cflags_static, "-sdata 0", "-sdata2 0", "-sym on", ], "progress_category": "library", "src_dir": "src/static", "objects": [ Object(Matching, "Famicom/ks_nes_core.cpp"), Object(NonMatching, "Famicom/ks_nes_draw.cpp"), Object(Matching, "Famicom/famicom.cpp"), Object(Matching, "Famicom/famicom_nesinfo.cpp"), ], }, { "lib": "MSL_C.PPCEABI.bare.H", "mw_version": config.linker_version, "cflags": [*cflags_runtime, "-inline auto,deferred", "-use_lmw_stmw on", "-char signed", "-fp_contract on"], "progress_category": "sdk", "src_dir": "src/static", "objects": [ Object(Matching, "MSL_C.PPCEABI.bare.H/abort_exit.c"), Object(NonMatching, "MSL_C.PPCEABI.bare.H/ansi_files.c"), Object(NonMatching, "MSL_C.PPCEABI.bare.H/ansi_fp.c"), Object(NonMatching, "MSL_C.PPCEABI.bare.H/arith.c"), Object(Matching, "MSL_C.PPCEABI.bare.H/buffer_io.c"), Object(Matching, "MSL_C.PPCEABI.bare.H/ctype.c"), Object(NonMatching, "MSL_C.PPCEABI.bare.H/direct_io.c"), Object(NonMatching, "MSL_C.PPCEABI.bare.H/e_acos.c"), Object(Matching, "MSL_C.PPCEABI.bare.H/e_atan2.c"), Object(Matching, "MSL_C.PPCEABI.bare.H/e_rem_pio2.c"), Object(Matching, "MSL_C.PPCEABI.bare.H/errno.c"), Object(NonMatching, "MSL_C.PPCEABI.bare.H/file_io.c"), Object(NonMatching, "MSL_C.PPCEABI.bare.H/FILE_POS.C"), Object(Matching, "MSL_C.PPCEABI.bare.H/float.c"), Object(Matching, "MSL_C.PPCEABI.bare.H/k_cos.c"), Object(Matching, "MSL_C.PPCEABI.bare.H/k_rem_pio2.c"), Object(Matching, "MSL_C.PPCEABI.bare.H/k_sin.c"), Object(NonMatching, "MSL_C.PPCEABI.bare.H/mbstring.c"), Object(Matching, "MSL_C.PPCEABI.bare.H/mem.c"), Object(NonMatching, "MSL_C.PPCEABI.bare.H/mem_funcs.c"), Object(Matching, "MSL_C.PPCEABI.bare.H/misc_io.c"), Object(NonMatching, "MSL_C.PPCEABI.bare.H/printf.c"), Object(Matching, "MSL_C.PPCEABI.bare.H/rand.c"), Object(NonMatching, "MSL_C.PPCEABI.bare.H/s_atan.c"), Object(Matching, "MSL_C.PPCEABI.bare.H/s_copysign.c"), Object(Matching, "MSL_C.PPCEABI.bare.H/s_cos.c"), Object(Matching, "MSL_C.PPCEABI.bare.H/s_floor.c"), Object(Matching, "MSL_C.PPCEABI.bare.H/s_frexp.c"), Object(NonMatching, "MSL_C.PPCEABI.bare.H/s_ldexp.c"), Object(Matching, "MSL_C.PPCEABI.bare.H/s_modf.c"), Object(Matching, "MSL_C.PPCEABI.bare.H/s_sin.c"), Object(NonMatching, "MSL_C.PPCEABI.bare.H/scanf.c"), Object(NonMatching, "MSL_C.PPCEABI.bare.H/string.c"), Object(NonMatching, "MSL_C.PPCEABI.bare.H/strtoul.c"), Object(Matching, "MSL_C.PPCEABI.bare.H/uart_console_io.c"), Object(Matching, "MSL_C.PPCEABI.bare.H/w_acos.c"), Object(Matching, "MSL_C.PPCEABI.bare.H/w_atan2.c"), Object(Matching, "MSL_C.PPCEABI.bare.H/wchar_io.c"), ], }, { "lib": "Runtime.PPCEABI.H", "mw_version": config.linker_version, "cflags": [*cflags_runtime, "-inline auto,deferred", "-use_lmw_stmw on", "-char signed", "-fp_contract on"], "progress_category": "sdk", "src_dir": "src/static", "objects": [ Object(Matching, "Runtime.PPCEABI.H/__init_cpp_exceptions.cpp"), Object(Matching, "Runtime.PPCEABI.H/__mem.c"), Object(Matching, "Runtime.PPCEABI.H/__va_arg.c"), Object(Matching, "Runtime.PPCEABI.H/CPlusLibPPC.cp"), Object(Matching, "Runtime.PPCEABI.H/Gecko_ExceptionPPC.cp"), Object(Matching, "Runtime.PPCEABI.H/global_destructor_chain.c"), Object(Matching, "Runtime.PPCEABI.H/NMWException.cp"), Object(Matching, "Runtime.PPCEABI.H/ptmf.c"), Object(Matching, "Runtime.PPCEABI.H/runtime.c"), ], }, { "lib": "TRK_MINNOW_DOLPHIN", "mw_version": "GC/1.3", "cflags": [ *cflags_static, "-O4,p", "-sdata 0", "-sdata2 0", "-inline auto,deferred", "-rostr", "-char signed", "-use_lmw_stmw on" ], "progress_category": "sdk", "src_dir": "src/static", "objects": [ Object(Matching, "TRK_MINNOW_DOLPHIN/__exception.s"), Object(Matching, "TRK_MINNOW_DOLPHIN/dispatch.c"), Object(Matching, "TRK_MINNOW_DOLPHIN/dolphin_trk.c"), Object(Matching, "TRK_MINNOW_DOLPHIN/dolphin_trk_glue.c"), Object(Matching, "TRK_MINNOW_DOLPHIN/flush_cache.c"), Object(Matching, "TRK_MINNOW_DOLPHIN/main_TRK.c"), Object(Matching, "TRK_MINNOW_DOLPHIN/mainloop.c"), Object(Matching, "TRK_MINNOW_DOLPHIN/mem_TRK.c"), Object(Matching, "TRK_MINNOW_DOLPHIN/mpc_7xx_603e.c"), Object(Matching, "TRK_MINNOW_DOLPHIN/msg.c"), Object(Matching, "TRK_MINNOW_DOLPHIN/msgbuf.c"), Object(Matching, "TRK_MINNOW_DOLPHIN/msghndlr.c"), Object(Matching, "TRK_MINNOW_DOLPHIN/mslsupp.c"), Object(Matching, "TRK_MINNOW_DOLPHIN/mutex_TRK.c"), Object(Matching, "TRK_MINNOW_DOLPHIN/notify.c"), Object(Matching, "TRK_MINNOW_DOLPHIN/nubevent.c"), Object(Matching, "TRK_MINNOW_DOLPHIN/nubinit.c"), Object(Matching, "TRK_MINNOW_DOLPHIN/serpoll.c"), Object(Matching, "TRK_MINNOW_DOLPHIN/support.c"), Object(Matching, "TRK_MINNOW_DOLPHIN/targcont.c"), Object(Matching, "TRK_MINNOW_DOLPHIN/target_options.c"), Object(Matching, "TRK_MINNOW_DOLPHIN/targimpl.c"), Object(Matching, "TRK_MINNOW_DOLPHIN/targsupp.s"), Object(Matching, "TRK_MINNOW_DOLPHIN/usr_put.c"), ], }, Rel( "foresta", [ Object(Matching, "audio.c"), Object(Matching, "c_keyframe.c"), Object(Matching, "ev_cherry_manager.c"), Object(Matching, "evw_anime.c"), Object(Matching, "executor.c"), Object(Matching, "f_furniture.c"), Object(Matching, "famicom_emu.c"), Object(Matching, "first_game.c"), Object(Matching, "game.c"), Object(Matching, "gamealloc.c"), Object(Matching, "gfxalloc.c"), Object(Matching, "graph.c"), Object(Matching, "irqmgr.c"), Object(Matching, "lb_reki.c"), Object(Matching, "lb_rtc.c"), Object(Matching, "main.c"), Object(Matching, "padmgr.c"), Object(Matching, "player_select.c"), Object(Matching, "PreRender.c"), Object(Matching, "s_cpak.c"), Object(Matching, "save_menu.c"), Object(Matching, "second_game.c"), Object(Matching, "THA_GA.c"), Object(Matching, "TwoHeadArena.c"), Object(Matching, "zurumode.c"), ], ), Rel( "actor", [ Object(Matching, "actor/ac_airplane.c"), Object(Matching, "actor/ac_animal_logo.c"), Object(Matching, "actor/ac_ant.c"), Object(Matching, "actor/ac_aprilfool_control.c"), Object(Matching, "actor/ac_arrange_ftr.c"), Object(Matching, "actor/ac_arrange_room.c"), Object(Matching, "actor/ac_ball.c"), Object(Matching, "actor/ac_balloon.c"), Object(Matching, "actor/ac_bee.c"), Object(Matching, "actor/ac_birth_control.c"), Object(Matching, "actor/ac_boat.c"), Object(Matching, "actor/ac_boat_demo.c"), Object(Matching, "actor/ac_boxManager.c"), Object(Matching, "actor/ac_boxMove.c"), Object(Matching, "actor/ac_boxTrick01.c"), Object(Matching, "actor/ac_br_shop.c"), Object(Matching, "actor/ac_bridge_a.c"), Object(Matching, "actor/ac_broker_design.c"), Object(Matching, "actor/ac_buggy.c"), Object(Matching, "actor/ac_conveni.c"), Object(Matching, "actor/ac_cottage.c"), Object(Matching, "actor/ac_count02.c"), Object(Matching, "actor/ac_countdown.c"), Object(Matching, "actor/ac_depart.c"), Object(Matching, "actor/ac_douzou.c"), Object(Matching, "actor/ac_dummy.c"), Object(Matching, "actor/ac_dump.c"), Object(Matching, "actor/ac_effectbg.c"), Object(Matching, "actor/ac_event_manager.c"), Object(Matching, "actor/ac_fallS.c"), Object(Matching, "actor/ac_fallSESW.c"), Object(Matching, "actor/ac_field_draw.c"), Object(Matching, "actor/ac_fieldm_draw.c"), Object(Matching, "actor/ac_flag.c"), Object(Matching, "actor/ac_fuusen.c"), Object(Matching, "actor/ac_garagara.c"), Object(Matching, "actor/ac_ghog.c"), Object(Matching, "actor/ac_goza.c"), Object(Matching, "actor/ac_groundhog_control.c"), Object(Matching, "actor/ac_gyo_kage.c"), Object(Matching, "actor/ac_gyo_kaseki.c"), Object(Matching, "actor/ac_gyo_release.c"), Object(Matching, "actor/ac_gyo_test.c"), Object(Matching, "actor/ac_gyoei.c"), Object(Matching, "actor/ac_handOverItem.c"), Object(Matching, "actor/ac_haniwa.c"), Object(Matching, "actor/ac_hatumode_control.c"), Object(Matching, "actor/ac_house.c"), Object(Matching, "actor/ac_house_clock.c"), Object(Matching, "actor/ac_house_goki.c"), Object(Matching, "actor/ac_htable.c"), Object(Matching, "actor/ac_ins_amenbo.c"), Object(Matching, "actor/ac_ins_batta.c"), Object(Matching, "actor/ac_ins_chou.c"), Object(Matching, "actor/ac_ins_dango.c"), Object(Matching, "actor/ac_ins_goki.c"), Object(Matching, "actor/ac_ins_hitodama.c"), Object(Matching, "actor/ac_ins_hotaru.c"), Object(Matching, "actor/ac_ins_ka.c"), Object(Matching, "actor/ac_ins_kabuto.c"), Object(Matching, "actor/ac_ins_kera.c"), Object(Matching, "actor/ac_ins_mino.c"), Object(Matching, "actor/ac_ins_semi.c"), Object(Matching, "actor/ac_ins_tentou.c"), Object(Matching, "actor/ac_ins_tonbo.c"), Object(Matching, "actor/ac_insect.c"), Object(Matching, "actor/ac_intro_demo.c"), Object(Matching, "actor/ac_kago.c"), Object(Matching, "actor/ac_kamakura.c"), Object(Matching, "actor/ac_kamakura_indoor.c"), Object(Matching, "actor/ac_koinobori.c"), Object(Matching, "actor/ac_lighthouse_switch.c"), Object(Matching, "actor/ac_lotus.c"), Object(Matching, "actor/ac_mailbox.c"), Object(Matching, "actor/ac_mbg.c"), Object(Matching, "actor/ac_mikanbox.c"), Object(Matching, "actor/ac_mikuji.c"), Object(Matching, "actor/ac_misin.c"), Object(Matching, "actor/ac_mscore_control.c"), Object(Matching, "actor/ac_mural.c"), Object(Matching, "actor/ac_museum.c"), Object(Matching, "actor/ac_museum_fish.c"), Object(Matching, "actor/ac_museum_fossil.c"), Object(Matching, "actor/ac_museum_indoor.c"), Object(Matching, "actor/ac_museum_insect.c"), Object(Matching, "actor/ac_museum_picture.c"), Object(Matching, "actor/ac_my_house.c"), Object(Matching, "actor/ac_my_indoor.c"), Object(Matching, "actor/ac_my_room.c"), Object(Matching, "actor/ac_nameplate.c"), Object(Matching, "actor/ac_needlework_indoor.c"), Object(Matching, "actor/ac_needlework_shop.c"), Object(Matching, "actor/ac_police_box.c"), Object(Matching, "actor/ac_post_office.c"), Object(Matching, "actor/ac_present_demo.c"), Object(Matching, "actor/ac_psnowman.c"), Object(Matching, "actor/ac_pterminal.c"), Object(Matching, "actor/ac_quest_manager.c"), Object(Matching, "actor/ac_quest_talk_fj_init.c"), Object(Matching, "actor/ac_quest_talk_greeting.c"), Object(Matching, "actor/ac_quest_talk_init.c"), Object(Matching, "actor/ac_quest_talk_island.c"), Object(Matching, "actor/ac_quest_talk_normal_init.c"), Object(Matching, "actor/ac_radio.c"), Object(Matching, "actor/ac_reserve.c"), Object(Matching, "actor/ac_reset_demo.c"), Object(Matching, "actor/ac_ride_off_demo.c"), Object(Matching, "actor/ac_rope.c"), Object(Matching, "actor/ac_s_car.c"), Object(Matching, "actor/ac_sample.c"), Object(Matching, "actor/ac_set_manager.c"), Object(Matching, "actor/ac_set_npc_manager.c"), Object(Matching, "actor/ac_set_ovl_gyoei.c"), Object(Matching, "actor/ac_set_ovl_insect.c"), Object(Matching, "actor/ac_shop.c"), Object(Matching, "actor/ac_shop_design.c"), Object(Matching, "actor/ac_shop_goods.c"), Object(Matching, "actor/ac_shop_indoor.c"), Object(Matching, "actor/ac_shop_level.c"), Object(Matching, "actor/ac_shop_manekin.c"), Object(Matching, "actor/ac_shop_umbrella.c"), Object(Matching, "actor/ac_shrine.c"), Object(Matching, "actor/ac_sign.c"), Object(Matching, "actor/ac_snowman.c"), Object(Matching, "actor/ac_station.c"), Object(Matching, "actor/ac_structure.c"), Object(Matching, "actor/ac_super.c"), Object(Matching, "actor/ac_tama.c"), Object(Matching, "actor/ac_tent.c"), Object(Matching, "actor/ac_tokyoso_control.c"), Object(Matching, "actor/ac_tools.c"), Object(Matching, "actor/ac_toudai.c"), Object(Matching, "actor/ac_train0.c"), Object(Matching, "actor/ac_train1.c"), Object(Matching, "actor/ac_train_door.c"), Object(Matching, "actor/ac_train_window.c"), Object(Matching, "actor/ac_tukimi.c"), Object(Matching, "actor/ac_tunahiki_control.c"), Object(Matching, "actor/ac_turi.c"), Object(Matching, "actor/ac_uki.c"), Object(Matching, "actor/ac_weather.c"), Object(Matching, "actor/ac_weather_fine.c"), Object(Matching, "actor/ac_weather_leaf.c"), Object(Matching, "actor/ac_weather_rain.c"), Object(Matching, "actor/ac_weather_sakura.c"), Object(Matching, "actor/ac_weather_snow.c"), Object(Matching, "actor/ac_windmill.c"), Object(Matching, "actor/ac_yatai.c"), ], ), Rel( "actor_npc", [ Object(Matching, "actor/npc/ac_countdown_npc0.c"), Object(Matching, "actor/npc/ac_countdown_npc1.c"), Object(Matching, "actor/npc/ac_go_home_npc.c"), Object(Matching, "actor/npc/ac_groundhog_npc0.c"), Object(Matching, "actor/npc/ac_halloween_npc.c"), Object(Matching, "actor/npc/ac_hanabi_npc0.c"), Object(Matching, "actor/npc/ac_hanabi_npc1.c"), Object(Matching, "actor/npc/ac_hanami_npc0.c"), Object(Matching, "actor/npc/ac_hanami_npc1.c"), Object(Matching, "actor/npc/ac_harvest_npc0.c"), Object(Matching, "actor/npc/ac_harvest_npc1.c"), Object(Matching, "actor/npc/ac_hatumode_npc0.c"), Object(Matching, "actor/npc/ac_kamakura_npc0.c"), Object(Matching, "actor/npc/ac_normal_npc.c"), Object(Matching, "actor/npc/ac_npc.c"), Object(Matching, "actor/npc/ac_npc2.c"), Object(Matching, "actor/npc/ac_npc_conv_master.c"), Object(Matching, "actor/npc/ac_npc_curator.c"), Object(Matching, "actor/npc/ac_npc_depart_master.c"), Object(Matching, "actor/npc/ac_npc_engineer.c"), Object(Matching, "actor/npc/ac_npc_guide.c"), Object(Matching, "actor/npc/ac_npc_guide2.c"), Object(Matching, "actor/npc/ac_npc_hem.c"), Object(Matching, "actor/npc/ac_npc_majin.c"), Object(Matching, "actor/npc/ac_npc_majin2.c"), Object(Matching, "actor/npc/ac_npc_majin3.c"), Object(Matching, "actor/npc/ac_npc_majin4.c"), Object(Matching, "actor/npc/ac_npc_majin5.c"), Object(Matching, "actor/npc/ac_npc_mamedanuki.c"), Object(Matching, "actor/npc/ac_npc_mask_cat.c"), Object(Matching, "actor/npc/ac_npc_mask_cat2.c"), Object(Matching, "actor/npc/ac_npc_needlework.c"), Object(Matching, "actor/npc/ac_npc_p_sel.c"), Object(Matching, "actor/npc/ac_npc_p_sel2.c"), Object(Matching, "actor/npc/ac_npc_police.c"), Object(Matching, "actor/npc/ac_npc_police2.c"), Object(Matching, "actor/npc/ac_npc_post_girl.c"), Object(Matching, "actor/npc/ac_npc_post_man.c"), Object(Matching, "actor/npc/ac_npc_rcn_guide.c"), Object(Matching, "actor/npc/ac_npc_rcn_guide2.c"), Object(Matching, "actor/npc/ac_npc_restart.c"), Object(Matching, "actor/npc/ac_npc_rtc.c"), Object(Matching, "actor/npc/ac_npc_sendo.c"), Object(Matching, "actor/npc/ac_npc_shasho.c"), Object(Matching, "actor/npc/ac_npc_shop_master.c"), Object(Matching, "actor/npc/ac_npc_shop_mastersp.c"), Object(Matching, "actor/npc/ac_npc_sleep_obaba.c"), Object(Matching, "actor/npc/ac_npc_soncho.c"), Object(Matching, "actor/npc/ac_npc_station_master.c"), Object(Matching, "actor/npc/ac_npc_super_master.c"), Object(Matching, "actor/npc/ac_npc_totakeke.c"), Object(Matching, "actor/npc/ac_present_npc.c"), Object(Matching, "actor/npc/ac_taisou_npc0.c"), Object(Matching, "actor/npc/ac_tamaire_npc0.c"), Object(Matching, "actor/npc/ac_tamaire_npc1.c"), Object(Matching, "actor/npc/ac_tokyoso_npc0.c"), Object(Matching, "actor/npc/ac_tokyoso_npc1.c"), Object(Matching, "actor/npc/ac_tukimi_npc0.c"), Object(Matching, "actor/npc/ac_tukimi_npc1.c"), Object(Matching, "actor/npc/ac_tunahiki_npc0.c"), Object(Matching, "actor/npc/ac_tunahiki_npc1.c"), Object(Matching, "actor/npc/ac_turi_npc0.c"), ], ), Rel( "actor_npc_event", [ Object(Matching, "actor/npc/event/ac_ev_angler.c"), Object(Matching, "actor/npc/event/ac_ev_artist.c"), Object(Matching, "actor/npc/event/ac_ev_broker.c"), Object(Matching, "actor/npc/event/ac_ev_broker2.c"), Object(Matching, "actor/npc/event/ac_ev_carpetPeddler.c"), Object(Matching, "actor/npc/event/ac_ev_castaway.c"), Object(Matching, "actor/npc/event/ac_ev_designer.c"), Object(Matching, "actor/npc/event/ac_ev_dokutu.c"), Object(Matching, "actor/npc/event/ac_ev_dozaemon.c"), Object(Matching, "actor/npc/event/ac_ev_ghost.c"), Object(Matching, "actor/npc/event/ac_ev_gypsy.c"), Object(Matching, "actor/npc/event/ac_ev_kabuPeddler.c"), Object(Matching, "actor/npc/event/ac_ev_majin.c"), Object(Matching, "actor/npc/event/ac_ev_miko.c"), Object(Matching, "actor/npc/event/ac_ev_pumpkin.c"), Object(Matching, "actor/npc/event/ac_ev_santa.c"), Object(Matching, "actor/npc/event/ac_ev_soncho.c"), Object(Matching, "actor/npc/event/ac_ev_soncho2.c"), Object(Matching, "actor/npc/event/ac_ev_speech_soncho.c"), Object(Matching, "actor/npc/event/ac_ev_turkey.c"), Object(Matching, "actor/npc/event/ac_ev_yomise.c"), ], ), Rel( "actor_tool", [ Object(Matching, "actor/tool/ac_t_anrium1.c"), Object(Matching, "actor/tool/ac_t_bag1.c"), Object(Matching, "actor/tool/ac_t_bag2.c"), Object(Matching, "actor/tool/ac_t_biscus1.c"), Object(Matching, "actor/tool/ac_t_biscus2.c"), Object(Matching, "actor/tool/ac_t_biscus3.c"), Object(Matching, "actor/tool/ac_t_biscus4.c"), Object(Matching, "actor/tool/ac_t_cobra1.c"), Object(Matching, "actor/tool/ac_t_cracker.c"), Object(Matching, "actor/tool/ac_t_flag.c"), Object(Matching, "actor/tool/ac_t_hanabi.c"), Object(Matching, "actor/tool/ac_t_hasu1.c"), Object(Matching, "actor/tool/ac_t_hat1.c"), Object(Matching, "actor/tool/ac_t_hat2.c"), Object(Matching, "actor/tool/ac_t_hat3.c"), Object(Matching, "actor/tool/ac_t_keitai.c"), Object(Matching, "actor/tool/ac_t_npc_sao.c"), Object(Matching, "actor/tool/ac_t_pistol.c"), Object(Matching, "actor/tool/ac_t_rei1.c"), Object(Matching, "actor/tool/ac_t_rei2.c"), Object(Matching, "actor/tool/ac_t_tama.c"), Object(Matching, "actor/tool/ac_t_tumbler.c"), Object(Matching, "actor/tool/ac_t_umbrella.c"), Object(Matching, "actor/tool/ac_t_utiwa.c"), Object(Matching, "actor/tool/ac_t_zinnia1.c"), Object(Matching, "actor/tool/ac_t_zinnia2.c"), ], ), Rel( "bg_item", [ Object(Matching, "bg_item/bg_cherry_item.c"), Object(Matching, "bg_item/bg_item.c"), Object(Matching, "bg_item/bg_police_item.c"), Object(Matching, "bg_item/bg_post_item.c"), Object(Matching, "bg_item/bg_winter_item.c"), Object(Matching, "bg_item/bg_xmas_item.c"), ], ), Rel( "effect", [ Object(Matching, "effect/ef_ami_mizu.c"), Object(Matching, "effect/ef_anahikari.c"), Object(Matching, "effect/ef_ase.c"), Object(Matching, "effect/ef_ase2.c"), Object(Matching, "effect/ef_ase_ch.c"), Object(Matching, "effect/ef_break_axe.c"), Object(Matching, "effect/ef_bubu.c"), Object(Matching, "effect/ef_buruburu.c"), Object(Matching, "effect/ef_bush_happa.c"), Object(Matching, "effect/ef_bush_yuki.c"), Object(Matching, "effect/ef_car_blight.c"), Object(Matching, "effect/ef_car_light.c"), Object(Matching, "effect/ef_clacker.c"), Object(Matching, "effect/ef_coin.c"), Object(Matching, "effect/ef_dash_asimoto.c"), Object(Matching, "effect/ef_dig_hole.c"), Object(Matching, "effect/ef_dig_mud.c"), Object(Matching, "effect/ef_dig_scoop.c"), Object(Matching, "effect/ef_douzou_light.c"), Object(Matching, "effect/ef_doyon.c"), Object(Matching, "effect/ef_dust.c"), Object(Matching, "effect/ef_effect_control.c"), Object(Matching, "effect/ef_flash.c"), Object(Matching, "effect/ef_footprint.c"), Object(Matching, "effect/ef_furo_yuge.c"), Object(Matching, "effect/ef_gimonhu.c"), Object(Matching, "effect/ef_goki.c"), Object(Matching, "effect/ef_ha.c"), Object(Matching, "effect/ef_halloween.c"), Object(Matching, "effect/ef_halloween_smoke.c"), Object(Matching, "effect/ef_hanabi_botan1.c"), Object(Matching, "effect/ef_hanabi_botan2.c"), Object(Matching, "effect/ef_hanabi_dummy.c"), Object(Matching, "effect/ef_hanabi_hoshi.c"), Object(Matching, "effect/ef_hanabi_set.c"), Object(Matching, "effect/ef_hanabi_switch.c"), Object(Matching, "effect/ef_hanabi_yanagi.c"), Object(Matching, "effect/ef_hanabira.c"), Object(Matching, "effect/ef_hanatiri.c"), Object(Matching, "effect/ef_hirameki_den.c"), Object(Matching, "effect/ef_hirameki_hikari.c"), Object(Matching, "effect/ef_ikigire.c"), Object(Matching, "effect/ef_impact_star.c"), Object(Matching, "effect/ef_kagu_happa.c"), Object(Matching, "effect/ef_kamifubuki.c"), Object(Matching, "effect/ef_kangaeru.c"), Object(Matching, "effect/ef_kantanhu.c"), Object(Matching, "effect/ef_kasamizu.c"), Object(Matching, "effect/ef_kasamizutama.c"), Object(Matching, "effect/ef_kaze.c"), Object(Matching, "effect/ef_kaze_happa.c"), Object(Matching, "effect/ef_kigae.c"), Object(Matching, "effect/ef_kigae_light.c"), Object(Matching, "effect/ef_kikuzu.c"), Object(Matching, "effect/ef_killer.c"), Object(Matching, "effect/ef_kisha_kemuri.c"), Object(Matching, "effect/ef_konpu.c"), Object(Matching, "effect/ef_kpun.c"), Object(Matching, "effect/ef_kyousou_onpu.c"), Object(Matching, "effect/ef_lamp_light.c"), Object(Matching, "effect/ef_lovelove.c"), Object(Matching, "effect/ef_lovelove2.c"), Object(Matching, "effect/ef_lovelove_heart.c"), Object(Matching, "effect/ef_make_hem.c"), Object(Matching, "effect/ef_mizutama.c"), Object(Matching, "effect/ef_motiyuge.c"), Object(Matching, "effect/ef_muka.c"), Object(Matching, "effect/ef_naku.c"), Object(Matching, "effect/ef_namida.c"), Object(Matching, "effect/ef_neboke.c"), Object(Matching, "effect/ef_neboke_akubi.c"), Object(Matching, "effect/ef_neboke_awa.c"), Object(Matching, "effect/ef_night13_moon.c"), Object(Matching, "effect/ef_night15_moon.c"), Object(Matching, "effect/ef_ongen.c"), Object(Matching, "effect/ef_otikomi.c"), Object(Matching, "effect/ef_otosiana.c"), Object(Matching, "effect/ef_pun.c"), Object(Matching, "effect/ef_pun_sekimen.c"), Object(Matching, "effect/ef_pun_yuge.c"), Object(Matching, "effect/ef_reset_hole.c"), Object(Matching, "effect/ef_room_sunshine.c"), Object(Matching, "effect/ef_room_sunshine_minsect.c"), Object(Matching, "effect/ef_room_sunshine_museum.c"), Object(Matching, "effect/ef_room_sunshine_police.c"), Object(Matching, "effect/ef_room_sunshine_posthouse.c"), Object(Matching, "effect/ef_sandsplash.c"), Object(Matching, "effect/ef_shock.c"), Object(Matching, "effect/ef_shooting.c"), Object(Matching, "effect/ef_shooting_kira.c"), Object(Matching, "effect/ef_shooting_set.c"), Object(Matching, "effect/ef_siawase_hana.c"), Object(Matching, "effect/ef_siawase_hana_ch.c"), Object(Matching, "effect/ef_siawase_hikari.c"), Object(Matching, "effect/ef_sibuki.c"), Object(Matching, "effect/ef_situren.c"), Object(Matching, "effect/ef_slip.c"), Object(Matching, "effect/ef_slip_footprint.c"), Object(Matching, "effect/ef_soba_yuge.c"), Object(Matching, "effect/ef_steam.c"), Object(Matching, "effect/ef_string.c"), Object(Matching, "effect/ef_suisou_awa.c"), Object(Matching, "effect/ef_swing_axe.c"), Object(Matching, "effect/ef_swing_net.c"), Object(Matching, "effect/ef_swing_rod.c"), Object(Matching, "effect/ef_taberu.c"), Object(Matching, "effect/ef_takurami.c"), Object(Matching, "effect/ef_takurami_kira.c"), Object(Matching, "effect/ef_tamaire.c"), Object(Matching, "effect/ef_tape.c"), Object(Matching, "effect/ef_tent_lamp.c"), Object(Matching, "effect/ef_tumble.c"), Object(Matching, "effect/ef_tumble_bodyprint.c"), Object(Matching, "effect/ef_tumble_dust.c"), Object(Matching, "effect/ef_turi_hamon.c"), Object(Matching, "effect/ef_turi_hane0.c"), Object(Matching, "effect/ef_turi_hane1.c"), Object(Matching, "effect/ef_turi_mizu.c"), Object(Matching, "effect/ef_turi_suiteki.c"), Object(Matching, "effect/ef_turn_asimoto.c"), Object(Matching, "effect/ef_turn_footprint.c"), Object(Matching, "effect/ef_uranai.c"), Object(Matching, "effect/ef_wait_asimoto.c"), Object(Matching, "effect/ef_walk_asimoto.c"), Object(Matching, "effect/ef_warau.c"), Object(Matching, "effect/ef_yajirushi.c"), Object(Matching, "effect/ef_young_tree.c"), Object(Matching, "effect/ef_yukidama.c"), Object(Matching, "effect/ef_yukidaruma.c"), Object(Matching, "effect/ef_yukihane.c"), ], ), Rel( "game", [ Object(Matching, "game/m_actor.c"), Object(Matching, "game/m_actor_dlftbls.c"), Object(Matching, "game/m_actor_shadow.c"), Object(Matching, "game/m_address_ovl.c"), Object(Matching, "game/m_all_grow.c"), Object(Matching, "game/m_all_grow_ovl.c"), Object(Matching, "game/m_bank_ovl.c"), Object(Matching, "game/m_banti.c"), Object(Matching, "game/m_bg_item.c"), Object(Matching, "game/m_bg_tex.c"), Object(Matching, "game/m_bgm.c"), Object(Matching, "game/m_birthday_ovl.c"), Object(Matching, "game/m_board_ovl.c"), Object(Matching, "game/m_calendar.c"), Object(Matching, "game/m_calendar_ovl.c"), Object(Matching, "game/m_camera2.c"), Object(Matching, "game/m_card.c"), Object(Matching, "game/m_catalog_ovl.c"), Object(Matching, "game/m_choice.c"), Object(Matching, "game/m_clip.c"), Object(Matching, "game/m_cockroach.c"), Object(Matching, "game/m_collision_bg.c"), Object(Matching, "game/m_collision_obj.c"), Object(Matching, "game/m_common_data.c"), Object(Matching, "game/m_controller.c"), Object(Matching, "game/m_cpak.c"), Object(Matching, "game/m_cpedit_ovl.c"), Object(Matching, "game/m_cpmail_ovl.c"), Object(Matching, "game/m_cporiginal_ovl.c"), Object(Matching, "game/m_cpwarning_ovl.c"), Object(Matching, "game/m_debug.c"), Object(Matching, "game/m_debug_display.c"), Object(Matching, "game/m_debug_hayakawa.c"), Object(Matching, "game/m_debug_mode.c"), Object(Matching, "game/m_demo.c"), Object(Matching, "game/m_design_ovl.c"), Object(Matching, "game/m_diary.c"), Object(Matching, "game/m_diary_ovl.c"), Object(Matching, "game/m_eappli.c"), Object(Matching, "game/m_editEndChk_ovl.c"), Object(Matching, "game/m_editor_ovl.c"), Object(Matching, "game/m_event.c"), Object(Matching, "game/m_event_map_npc.c"), Object(Matching, "game/m_fbdemo.c"), Object(Matching, "game/m_fbdemo_fade.c"), Object(Matching, "game/m_fbdemo_triforce.c"), Object(Matching, "game/m_fbdemo_wipe1.c"), Object(Matching, "game/m_field_assessment.c"), Object(Matching, "game/m_field_info.c"), Object(Matching, "game/m_field_make.c"), Object(Matching, "game/m_fishrecord.c"), Object(Matching, "game/m_flashrom.c"), Object(Matching, "game/m_font.c"), Object(Matching, "game/m_fuusen.c"), Object(Matching, "game/m_game_dlftbls.c"), Object(Matching, "game/m_gba_ovl.c"), Object(Matching, "game/m_hand_ovl.c"), Object(Matching, "game/m_handbill.c"), Object(Matching, "game/m_haniwa_ovl.c"), Object(Matching, "game/m_haniwaPortrait_ovl.c"), Object(Matching, "game/m_hboard_ovl.c"), Object(Matching, "game/m_home.c"), Object(Matching, "game/m_house.c"), Object(Matching, "game/m_huusui_room.c"), Object(Matching, "game/m_huusui_room_ovl.c"), Object(Matching, "game/m_inventory_ovl.c"), Object(Matching, "game/m_island.c"), Object(Matching, "game/m_item_name.c"), Object(Matching, "game/m_kabu_manager.c"), Object(Matching, "game/m_kankyo.c"), Object(Matching, "game/m_land.c"), Object(Matching, "game/m_ledit_ovl.c"), Object(Matching, "game/m_lib.c"), Object(Matching, "game/m_lights.c"), Object(Matching, "game/m_mail.c"), Object(Matching, "game/m_mail_check.c"), Object(Matching, "game/m_mail_check_ovl.c"), Object(Matching, "game/m_mail_password_check.c"), Object(Matching, "game/m_mailbox_ovl.c"), Object(Matching, "game/m_malloc.c"), Object(Matching, "game/m_map_ovl.c"), Object(Matching, "game/m_mark_room.c"), Object(Matching, "game/m_mark_room_ovl.c"), Object(Matching, "game/m_melody.c"), Object(Matching, "game/m_mscore_ovl.c"), Object(Matching, "game/m_msg.c"), Object(Matching, "game/m_museum.c"), Object(Matching, "game/m_museum_display.c"), Object(Matching, "game/m_mushroom.c"), Object(Matching, "game/m_music_ovl.c"), Object(Matching, "game/m_name_table.c"), Object(Matching, "game/m_needlework.c"), Object(Matching, "game/m_needlework_ovl.c"), Object(Matching, "game/m_notice.c"), Object(Matching, "game/m_notice_ovl.c"), Object(Matching, "game/m_npc.c"), Object(Matching, "game/m_npc_schedule.c"), Object(Matching, "game/m_npc_walk.c"), Object(Matching, "game/m_olib.c"), Object(Matching, "game/m_passwordChk_ovl.c"), Object(Matching, "game/m_passwordMake_ovl.c"), Object(Matching, "game/m_pause.c"), Object(Matching, "game/m_play.c"), Object(Matching, "game/m_player.c"), Object(Matching, "game/m_player_call.c"), Object(Matching, "game/m_player_lib.c"), Object(Matching, "game/m_police_box.c"), Object(Matching, "game/m_post_office.c"), Object(Matching, "game/m_prenmi.c"), Object(Matching, "game/m_private.c"), Object(Matching, "game/m_quest.c"), Object(Matching, "game/m_random_field.c"), Object(Matching, "game/m_random_field_ovl.c"), Object(Matching, "game/m_rcp.c"), Object(Matching, "game/m_repay_ovl.c"), Object(Matching, "game/m_roll_lib.c"), Object(Matching, "game/m_room_type.c"), Object(Matching, "game/m_scene.c"), Object(Matching, "game/m_scene_ftr.c"), Object(Matching, "game/m_scene_table.c"), Object(Matching, "game/m_select.c"), Object(Matching, "game/m_shop.c"), Object(Matching, "game/m_skin_matrix.c"), Object(Matching, "game/m_snowman.c"), Object(Matching, "game/m_soncho.c"), Object(Matching, "game/m_start_data_init.c"), Object(Matching, "game/m_string.c"), Object(Matching, "game/m_submenu.c"), Object(Matching, "game/m_submenu_ovl.c"), Object(Matching, "game/m_tag_ovl.c"), Object(Matching, "game/m_time.c"), Object(Matching, "game/m_timeIn_ovl.c"), Object(Matching, "game/m_titledemo.c"), Object(Matching, "game/m_trademark.c"), Object(Matching, "game/m_train_control.c"), Object(Matching, "game/m_vibctl.c"), Object(Matching, "game/m_view.c"), Object(Matching, "game/m_warning_ovl.c"), Object(Matching, "game/m_watch_my_step.c"), ], ), Rel( "system", [ Object(Matching, "system/sys_dynamic.c"), Object(Matching, "system/sys_math.c"), Object(Matching, "system/sys_math3d.c"), Object(Matching, "system/sys_math_atan.c"), Object(Matching, "system/sys_matrix.c"), Object(Matching, "system/sys_romcheck.c"), Object(Matching, "system/sys_stacks.c"), Object(Matching, "system/sys_ucode.c"), Object(Matching, "system/sys_vimgr.c"), ], ), Rel( "dataobject", [ Object(Matching, "data/npc/model/mdl/bev_1.c"), Object(Matching, "data/npc/model/tex/bev_1.c"), Object(Matching, "data/npc/model/mdl/ant_1.c"), Object(Matching, "data/npc/model/tex/ant_1.c"), Object(Matching, "data/npc/model/tex/ant_2.c"), Object(Matching, "data/npc/model/tex/ant_3.c"), Object(Matching, "data/npc/model/tex/ant_4.c"), Object(Matching, "data/npc/model/tex/ant_5.c"), Object(Matching, "data/npc/model/mdl/wls_1.c"), Object(Matching, "data/npc/model/tex/wls_1.c"), Object(Matching, "data/scene/BG_TEST01.c"), Object(Matching, "data/scene/BG_TEST01_XLU.c"), Object(Matching, "data/scene/broker_shop.c"), Object(Matching, "data/scene/buggy.c"), Object(Matching, "data/npc/model/mdl/bea_1.c"), Object(Matching, "data/npc/model/tex/bea_1.c"), Object(Matching, "data/npc/model/tex/bea_2.c"), Object(Matching, "data/npc/model/tex/bea_3.c"), Object(Matching, "data/npc/model/tex/bea_5.c"), Object(Matching, "data/npc/model/tex/bea_6.c"), Object(Matching, "data/npc/model/tex/bea_7.c"), Object(Matching, "data/npc/model/tex/bea_8.c"), Object(Matching, "data/npc/model/tex/bea_9.c"), Object(Matching, "data/npc/model/tex/bea_10.c"), Object(Matching, "data/field/bg/acre/bg_data.c"), Object(Matching, "data/field/bg/flower/obj_flower.c"), Object(Matching, "data/field/bg/flower/obj_flower_leaf.c"), Object(Matching, "data/npc/model/mdl/pbr_1.c"), Object(Matching, "data/npc/model/tex/pbr_1.c"), Object(Matching, "data/npc/model/tex/pbr_2.c"), Object(Matching, "data/npc/model/tex/pbr_3.c"), Object(Matching, "data/npc/model/tex/pbr_4.c"), Object(Matching, "data/npc/model/tex/pbr_5.c"), Object(Matching, "data/npc/model/mdl/brd_1.c"), Object(Matching, "data/npc/model/tex/brd_1.c"), Object(Matching, "data/npc/model/tex/brd_2.c"), Object(Matching, "data/npc/model/tex/brd_11.c"), Object(Matching, "data/npc/model/tex/brd_3.c"), Object(Matching, "data/npc/model/tex/brd_4.c"), Object(Matching, "data/npc/model/tex/brd_5.c"), Object(Matching, "data/npc/model/tex/brd_6.c"), Object(Matching, "data/npc/model/tex/brd_7.c"), Object(Matching, "data/npc/model/tex/brd_8.c"), Object(Matching, "data/npc/model/tex/brd_9.c"), Object(Matching, "data/npc/model/tex/brd_10.c"), Object(Matching, "data/player/BOY_part_data.c"), Object(Matching, "data/npc/model/mdl/fox_1.c"), Object(Matching, "data/npc/model/tex/fox_1.c"), Object(Matching, "data/npc/model/mdl/bul_1.c"), Object(Matching, "data/npc/model/tex/bul_1.c"), Object(Matching, "data/npc/model/tex/bul_2.c"), Object(Matching, "data/npc/model/tex/bul_3.c"), Object(Matching, "data/npc/model/tex/bul_4.c"), Object(Matching, "data/npc/model/mdl/cml_1.c"), Object(Matching, "data/npc/model/tex/cml_1.c"), Object(Matching, "data/npc/model/mdl/cat_1.c"), Object(Matching, "data/npc/model/tex/cat_1.c"), Object(Matching, "data/npc/model/tex/cat_2.c"), Object(Matching, "data/npc/model/tex/cat_11.c"), Object(Matching, "data/npc/model/tex/cat_12.c"), Object(Matching, "data/npc/model/tex/cat_13.c"), Object(Matching, "data/npc/model/tex/cat_14.c"), Object(Matching, "data/npc/model/tex/cat_15.c"), Object(Matching, "data/npc/model/tex/cat_3.c"), Object(Matching, "data/npc/model/tex/cat_4.c"), Object(Matching, "data/npc/model/tex/cat_5.c"), Object(Matching, "data/npc/model/tex/cat_6.c"), Object(Matching, "data/npc/model/tex/cat_7.c"), Object(Matching, "data/npc/model/tex/cat_8.c"), Object(Matching, "data/npc/model/tex/cat_9.c"), Object(Matching, "data/npc/model/tex/cat_10.c"), Object(Matching, "data/npc/model/mdl/chn_1.c"), Object(Matching, "data/npc/model/tex/chn_1.c"), Object(Matching, "data/npc/model/tex/chn_2.c"), Object(Matching, "data/npc/model/tex/chn_3.c"), Object(Matching, "data/npc/model/tex/chn_4.c"), Object(Matching, "data/npc/model/tex/chn_5.c"), Object(Matching, "data/npc/model/tex/chn_6.c"), Object(Matching, "data/npc/model/tex/chn_7.c"), Object(Matching, "data/npc/model/tex/chn_8.c"), Object(Matching, "data/npc/model/tex/chn_9.c"), Object(Matching, "data/npc/model/mdl/cbr_1.c"), Object(Matching, "data/npc/model/tex/cbr_1.c"), Object(Matching, "data/npc/model/tex/cbr_2.c"), Object(Matching, "data/npc/model/tex/cbr_11.c"), Object(Matching, "data/npc/model/tex/cbr_3.c"), Object(Matching, "data/npc/model/tex/cbr_4.c"), Object(Matching, "data/npc/model/tex/cbr_5.c"), Object(Matching, "data/npc/model/tex/cbr_6.c"), Object(Matching, "data/npc/model/tex/cbr_7.c"), Object(Matching, "data/npc/model/tex/cbr_8.c"), Object(Matching, "data/npc/model/tex/cbr_9.c"), Object(Matching, "data/npc/model/tex/cbr_10.c"), Object(Matching, "data/combi/data_combi.c"), Object(Matching, "data/npc/model/mdl/rcc_1.c"), Object(Matching, "data/npc/model/tex/rcc_1.c"), Object(Matching, "data/npc/model/mdl/cow_1.c"), Object(Matching, "data/npc/model/tex/cow_1.c"), Object(Matching, "data/npc/model/tex/cow_2.c"), Object(Matching, "data/npc/model/tex/cow_3.c"), Object(Matching, "data/npc/model/tex/cow_4.c"), Object(Matching, "data/npc/model/mdl/crd_1.c"), Object(Matching, "data/npc/model/tex/crd_1.c"), Object(Matching, "data/npc/model/tex/crd_2.c"), Object(Matching, "data/npc/model/tex/crd_3.c"), Object(Matching, "data/npc/model/tex/crd_4.c"), Object(Matching, "data/npc/model/mdl/owl_1.c"), Object(Matching, "data/npc/model/tex/owl_1.c"), Object(Matching, "data/npc/model/mdl/rcd_1.c"), Object(Matching, "data/npc/model/tex/rcd_1.c"), Object(Matching, "data/npc/model/mdl/grf_1.c"), Object(Matching, "data/npc/model/tex/grf_1.c"), Object(Matching, "data/npc/model/mdl/dog_1.c"), Object(Matching, "data/npc/model/tex/dog_1.c"), Object(Matching, "data/npc/model/tex/dog_2.c"), Object(Matching, "data/npc/model/tex/dog_3.c"), Object(Matching, "data/npc/model/tex/dog_4.c"), Object(Matching, "data/npc/model/tex/dog_5.c"), Object(Matching, "data/npc/model/tex/dog_6.c"), Object(Matching, "data/npc/model/tex/dog_7.c"), Object(Matching, "data/npc/model/tex/dog_8.c"), Object(Matching, "data/npc/model/tex/dog_9.c"), Object(Matching, "data/npc/model/tex/dog_10.c"), Object(Matching, "data/npc/model/mdl/seg_1.c"), Object(Matching, "data/npc/model/tex/seg_1.c"), Object(Matching, "data/npc/model/mdl/duk_1.c"), Object(Matching, "data/npc/model/tex/duk_1.c"), Object(Matching, "data/npc/model/tex/duk_2.c"), Object(Matching, "data/npc/model/tex/duk_11.c"), Object(Matching, "data/npc/model/tex/duk_3.c"), Object(Matching, "data/npc/model/tex/duk_4.c"), Object(Matching, "data/npc/model/tex/duk_5.c"), Object(Matching, "data/npc/model/tex/duk_6.c"), Object(Matching, "data/npc/model/tex/duk_7.c"), Object(Matching, "data/npc/model/tex/duk_8.c"), Object(Matching, "data/npc/model/tex/duk_9.c"), Object(Matching, "data/npc/model/tex/duk_10.c"), Object(Matching, "data/scene/event_notification.c"), Object(Matching, "data/npc/model/mdl/elp_1.c"), Object(Matching, "data/npc/model/tex/elp_1.c"), Object(Matching, "data/npc/model/tex/elp_2.c"), Object(Matching, "data/npc/model/tex/elp_3.c"), Object(Matching, "data/npc/model/tex/elp_4.c"), Object(Matching, "data/npc/model/tex/elp_5.c"), Object(Matching, "data/npc/model/tex/elp_6.c"), Object(Matching, "data/npc/model/tex/elp_7.c"), Object(Matching, "data/scene/fg_tool_in.c"), Object(Matching, "data/scene/field_tool_field.c"), Object(Matching, "data/npc/model/mdl/flg_1.c"), Object(Matching, "data/npc/model/tex/flg_1.c"), Object(Matching, "data/npc/model/tex/flg_2.c"), Object(Matching, "data/npc/model/tex/flg_11.c"), Object(Matching, "data/npc/model/tex/flg_12.c"), Object(Matching, "data/npc/model/tex/flg_13.c"), Object(Matching, "data/npc/model/tex/flg_3.c"), Object(Matching, "data/npc/model/tex/flg_4.c"), Object(Matching, "data/npc/model/tex/flg_5.c"), Object(Matching, "data/npc/model/tex/flg_6.c"), Object(Matching, "data/npc/model/tex/flg_7.c"), Object(Matching, "data/npc/model/tex/flg_8.c"), Object(Matching, "data/npc/model/tex/flg_9.c"), Object(Matching, "data/npc/model/tex/flg_10.c"), Object(Matching, "data/npc/model/mdl/rcf_1.c"), Object(Matching, "data/npc/model/tex/rcf_1.c"), Object(Matching, "data/npc/model/mdl/gst_1.c"), Object(Matching, "data/npc/model/tex/gst_1.c"), Object(Matching, "data/npc/model/mdl/goa_1.c"), Object(Matching, "data/npc/model/tex/goa_1.c"), Object(Matching, "data/npc/model/tex/goa_2.c"), Object(Matching, "data/npc/model/tex/goa_3.c"), Object(Matching, "data/npc/model/tex/goa_4.c"), Object(Matching, "data/npc/model/tex/goa_5.c"), Object(Matching, "data/npc/model/tex/goa_6.c"), Object(Matching, "data/npc/model/mdl/gor_1.c"), Object(Matching, "data/npc/model/tex/gor_1.c"), Object(Matching, "data/npc/model/tex/gor_2.c"), Object(Matching, "data/npc/model/tex/gor_3.c"), Object(Matching, "data/npc/model/tex/gor_4.c"), Object(Matching, "data/npc/model/tex/gor_5.c"), Object(Matching, "data/npc/model/mdl/xct_1.c"), Object(Matching, "data/npc/model/tex/xct_1.c"), Object(Matching, "data/npc/model/mdl/bpt_1.c"), Object(Matching, "data/npc/model/tex/bpt_1.c"), Object(Matching, "data/npc/model/mdl/pkn_1.c"), Object(Matching, "data/npc/model/tex/pkn_1.c"), Object(Matching, "data/npc/model/mdl/hem_1.c"), Object(Matching, "data/npc/model/tex/hem_1.c"), Object(Matching, "data/npc/model/mdl/hip_1.c"), Object(Matching, "data/npc/model/tex/hip_1.c"), Object(Matching, "data/npc/model/tex/hip_2.c"), Object(Matching, "data/npc/model/tex/hip_3.c"), Object(Matching, "data/npc/model/tex/hip_4.c"), Object(Matching, "data/npc/model/tex/hip_5.c"), Object(Matching, "data/npc/model/tex/hip_6.c"), Object(Matching, "data/npc/model/tex/hip_7.c"), Object(Matching, "data/npc/model/mdl/hrs_1.c"), Object(Matching, "data/npc/model/tex/hrs_1.c"), Object(Matching, "data/npc/model/tex/hrs_2.c"), Object(Matching, "data/npc/model/tex/hrs_3.c"), Object(Matching, "data/npc/model/tex/hrs_4.c"), Object(Matching, "data/npc/model/tex/hrs_5.c"), Object(Matching, "data/npc/model/tex/hrs_6.c"), Object(Matching, "data/npc/model/tex/hrs_7.c"), Object(Matching, "data/npc/model/tex/hrs_8.c"), Object(Matching, "data/npc/model/mdl/plj_1.c"), Object(Matching, "data/npc/model/tex/plj_1.c"), Object(Matching, "data/npc/model/mdl/xsq_1.c"), Object(Matching, "data/npc/model/tex/xsq_1.c"), Object(Matching, "data/item/item_name.c"), Object(Matching, "data/scene/kamakura.c"), Object(Matching, "data/npc/model/mdl/boa_1.c"), Object(Matching, "data/npc/model/tex/boa_1.c"), Object(Matching, "data/npc/model/mdl/kgr_1.c"), Object(Matching, "data/npc/model/tex/kgr_1.c"), Object(Matching, "data/npc/model/tex/kgr_2.c"), Object(Matching, "data/npc/model/tex/kgr_3.c"), Object(Matching, "data/npc/model/tex/kgr_4.c"), Object(Matching, "data/npc/model/tex/kgr_5.c"), Object(Matching, "data/npc/model/tex/kgr_6.c"), Object(Matching, "data/npc/model/mdl/fob_1.c"), Object(Matching, "data/npc/model/tex/fob_1.c"), Object(Matching, "data/npc/model/mdl/kal_1.c"), Object(Matching, "data/npc/model/tex/kal_1.c"), Object(Matching, "data/npc/model/tex/kal_2.c"), Object(Matching, "data/npc/model/tex/kal_3.c"), Object(Matching, "data/npc/model/tex/kal_4.c"), Object(Matching, "data/npc/model/tex/kal_5.c"), Object(Matching, "data/npc/model/tex/kal_6.c"), Object(Matching, "data/scene/lighthouse.c"), Object(Matching, "data/npc/model/mdl/lon_1.c"), Object(Matching, "data/npc/model/tex/lon_1.c"), Object(Matching, "data/npc/model/tex/lon_2.c"), Object(Matching, "data/npc/model/tex/lon_3.c"), Object(Matching, "data/npc/model/tex/lon_4.c"), Object(Matching, "data/scene/museum_entrance.c"), Object(Matching, "data/scene/museum_fish.c"), Object(Matching, "data/scene/museum_fossil.c"), Object(Matching, "data/scene/museum_insect.c"), Object(Matching, "data/scene/museum_picture.c"), Object(Matching, "data/npc/model/mdl/mos_1.c"), Object(Matching, "data/npc/model/tex/mos_1.c"), Object(Matching, "data/npc/model/mdl/mol_1.c"), Object(Matching, "data/npc/model/tex/mol_1.c"), Object(Matching, "data/npc/model/mdl/lrc_1.c"), Object(Matching, "data/npc/model/tex/lrc_1.c"), Object(Matching, "data/npc/model/mdl/mka_1.c"), Object(Matching, "data/npc/model/tex/mka_1.c"), Object(Matching, "data/npc/model/mdl/mus_1.c"), Object(Matching, "data/npc/model/tex/mus_1.c"), Object(Matching, "data/npc/model/tex/mus_2.c"), Object(Matching, "data/npc/model/tex/mus_3.c"), Object(Matching, "data/npc/model/tex/mus_4.c"), Object(Matching, "data/npc/model/tex/mus_5.c"), Object(Matching, "data/npc/model/tex/mus_6.c"), Object(Matching, "data/npc/model/tex/mus_7.c"), Object(Matching, "data/npc/model/tex/mus_8.c"), Object(Matching, "data/npc/model/tex/mus_9.c"), Object(Matching, "data/npc/model/tex/mus_10.c"), Object(Matching, "data/model/mural/obj_mural.c"), Object(Matching, "data/scene/NEEDLEWORK.c"), Object(Matching, "data/scene/npc_room01.c"), Object(Matching, "data/scene/npc_room_island.c"), Object(Matching, "data/npc/model/mdl/hgh_1.c"), Object(Matching, "data/npc/model/tex/hgh_1.c"), Object(Matching, "data/npc/model/mdl/hgs_1.c"), Object(Matching, "data/npc/model/tex/hgs_1.c"), Object(Matching, "data/npc/default_list.c"), Object(Matching, "data/npc/npc_draw_data.c"), Object(Matching, "data/npc/grow_list.c"), Object(Matching, "data/npc/house_list.c"), Object(Matching, "data/npc/model/mdl/oct_1.c"), Object(Matching, "data/npc/model/tex/oct_1.c"), Object(Matching, "data/npc/model/mdl/ost_1.c"), Object(Matching, "data/npc/model/tex/ost_1.c"), Object(Matching, "data/npc/model/tex/ost_2.c"), Object(Matching, "data/npc/model/tex/ost_3.c"), Object(Matching, "data/npc/model/tex/ost_4.c"), Object(Matching, "data/scene/player_room_island.c"), Object(Matching, "data/scene/player_room_ll1.c"), Object(Matching, "data/scene/player_room_ll2.c"), Object(Matching, "data/scene/player_room_l.c"), Object(Matching, "data/scene/player_room_m.c"), Object(Matching, "data/scene/player_room_s.c"), Object(Matching, "data/scene/PLAYER_SELECT2.c"), Object(Matching, "data/scene/PLAYER_SELECT3.c"), Object(Matching, "data/scene/PLAYER_SELECT4.c"), Object(Matching, "data/scene/player_select.c"), Object(Matching, "data/scene/police_box.c"), Object(Matching, "data/scene/post_office.c"), Object(Matching, "data/scene/p_room_bm_ll1.c"), Object(Matching, "data/scene/p_room_bm_l.c"), Object(Matching, "data/scene/p_room_bm_m.c"), Object(Matching, "data/scene/p_room_bm_s.c"), Object(Matching, "data/npc/model/mdl/pgn_1.c"), Object(Matching, "data/npc/model/tex/pgn_1.c"), Object(Matching, "data/npc/model/tex/pgn_2.c"), Object(Matching, "data/npc/model/tex/pgn_3.c"), Object(Matching, "data/npc/model/tex/pgn_4.c"), Object(Matching, "data/npc/model/tex/pgn_5.c"), Object(Matching, "data/npc/model/tex/pgn_6.c"), Object(Matching, "data/npc/model/tex/pgn_7.c"), Object(Matching, "data/npc/model/tex/pgn_8.c"), Object(Matching, "data/npc/model/mdl/pig_1.c"), Object(Matching, "data/npc/model/tex/pig_1.c"), Object(Matching, "data/npc/model/tex/pig_2.c"), Object(Matching, "data/npc/model/tex/pig_11.c"), Object(Matching, "data/npc/model/tex/pig_3.c"), Object(Matching, "data/npc/model/tex/pig_4.c"), Object(Matching, "data/npc/model/tex/pig_5.c"), Object(Matching, "data/npc/model/tex/pig_6.c"), Object(Matching, "data/npc/model/tex/pig_7.c"), Object(Matching, "data/npc/model/tex/pig_8.c"), Object(Matching, "data/npc/model/tex/pig_9.c"), Object(Matching, "data/npc/model/tex/pig_10.c"), Object(Matching, "data/npc/model/mdl/pla_1.c"), Object(Matching, "data/npc/model/mdl/plc_1.c"), Object(Matching, "data/npc/model/tex/plc_1.c"), Object(Matching, "data/npc/model/tex/pla_1.c"), Object(Matching, "data/npc/model/mdl/pga_1.c"), Object(Matching, "data/npc/model/tex/pga_1.c"), Object(Matching, "data/npc/model/mdl/pgb_1.c"), Object(Matching, "data/npc/model/tex/pgb_1.c"), Object(Matching, "data/npc/model/mdl/plb_1.c"), Object(Matching, "data/npc/model/tex/plb_1.c"), Object(Matching, "data/npc/model/mdl/rbt_1.c"), Object(Matching, "data/npc/model/tex/rbt_1.c"), Object(Matching, "data/npc/model/tex/rbt_2.c"), Object(Matching, "data/npc/model/tex/rbt_11.c"), Object(Matching, "data/npc/model/tex/rbt_3.c"), Object(Matching, "data/npc/model/tex/rbt_4.c"), Object(Matching, "data/npc/model/tex/rbt_5.c"), Object(Matching, "data/npc/model/tex/rbt_6.c"), Object(Matching, "data/npc/model/tex/rbt_7.c"), Object(Matching, "data/npc/model/tex/rbt_8.c"), Object(Matching, "data/npc/model/tex/rbt_9.c"), Object(Matching, "data/npc/model/tex/rbt_10.c"), Object(Matching, "data/npc/model/mdl/mob_1.c"), Object(Matching, "data/npc/model/tex/mob_1.c"), Object(Matching, "data/npc/model/mdl/rhn_1.c"), Object(Matching, "data/npc/model/tex/rhn_1.c"), Object(Matching, "data/npc/model/tex/rhn_2.c"), Object(Matching, "data/npc/model/tex/rhn_3.c"), Object(Matching, "data/npc/model/tex/rhn_4.c"), Object(Matching, "data/scene/shop01.c"), Object(Matching, "data/scene/shop02.c"), Object(Matching, "data/scene/shop03.c"), Object(Matching, "data/scene/shop04_1f.c"), Object(Matching, "data/scene/shop04_2f.c"), Object(Matching, "data/scene/start_demo1.c"), Object(Matching, "data/scene/start_demo2.c"), Object(Matching, "data/scene/start_demo3.c"), Object(Matching, "data/npc/model/mdl/snt_1.c"), Object(Matching, "data/npc/model/tex/snt_1.c"), Object(Matching, "data/npc/model/mdl/wip_1.c"), Object(Matching, "data/npc/model/tex/wip_1.c"), Object(Matching, "data/npc/model/mdl/shp_1.c"), Object(Matching, "data/npc/model/tex/shp_1.c"), Object(Matching, "data/npc/model/tex/shp_2.c"), Object(Matching, "data/npc/model/tex/shp_3.c"), Object(Matching, "data/npc/model/tex/shp_4.c"), Object(Matching, "data/npc/model/tex/shp_5.c"), Object(Matching, "data/npc/model/tex/shp_6.c"), Object(Matching, "data/npc/model/mdl/rcn_1.c"), Object(Matching, "data/npc/model/tex/rcn_1.c"), Object(Matching, "data/npc/model/mdl/kab_1.c"), Object(Matching, "data/npc/model/tex/kab_1.c"), Object(Matching, "data/npc/model/mdl/ttl_1.c"), Object(Matching, "data/npc/model/tex/ttl_1.c"), Object(Matching, "data/npc/model/mdl/squ_1.c"), Object(Matching, "data/npc/model/tex/squ_1.c"), Object(Matching, "data/npc/model/tex/squ_2.c"), Object(Matching, "data/npc/model/tex/squ_11.c"), Object(Matching, "data/npc/model/tex/squ_3.c"), Object(Matching, "data/npc/model/tex/squ_4.c"), Object(Matching, "data/npc/model/tex/squ_5.c"), Object(Matching, "data/npc/model/tex/squ_6.c"), Object(Matching, "data/npc/model/tex/squ_7.c"), Object(Matching, "data/npc/model/tex/squ_8.c"), Object(Matching, "data/npc/model/tex/squ_9.c"), Object(Matching, "data/npc/model/tex/squ_10.c"), Object(Matching, "data/npc/model/mdl/mnk_1.c"), Object(Matching, "data/npc/model/tex/mnk_1.c"), Object(Matching, "data/npc/model/mdl/rcs_1.c"), Object(Matching, "data/npc/model/tex/rcs_1.c"), Object(Matching, "data/scene/tent.c"), Object(Matching, "data/scene/test_fd_npc_land.c"), Object(Matching, "data/scene/water_test.c"), Object(Matching, "data/scene/test_step01.c"), Object(Matching, "data/scene/title_demo.c"), Object(Matching, "data/scene/test01.c"), Object(Matching, "data/scene/test02.c"), Object(Matching, "data/scene/test03.c"), Object(Matching, "data/scene/test04.c"), Object(Matching, "data/scene/test05.c"), Object(Matching, "data/npc/model/mdl/tig_1.c"), Object(Matching, "data/npc/model/tex/tig_1.c"), Object(Matching, "data/npc/model/tex/tig_2.c"), Object(Matching, "data/npc/model/tex/tig_3.c"), Object(Matching, "data/npc/model/tex/tig_4.c"), Object(Matching, "data/titledemo/pact0.c"), Object(Matching, "data/titledemo/pact1.c"), Object(Matching, "data/titledemo/pact2.c"), Object(Matching, "data/titledemo/pact3.c"), Object(Matching, "data/titledemo/pact4.c"), Object(Matching, "data/npc/model/mdl/end_1.c"), Object(Matching, "data/npc/model/tex/end_1.c"), Object(Matching, "data/npc/model/mdl/tuk_1.c"), Object(Matching, "data/npc/model/tex/tuk_1.c"), Object(Matching, "data/npc/model/mdl/wol_1.c"), Object(Matching, "data/npc/model/tex/wol_1.c"), Object(Matching, "data/npc/model/tex/wol_2.c"), Object(Matching, "data/npc/model/tex/wol_3.c"), Object(Matching, "data/npc/model/tex/wol_4.c"), Object(Matching, "data/npc/model/tex/wol_5.c"), Object(Matching, "data/npc/model/tex/wol_6.c"), Object(Matching, "data/field/bg/beach_pal.c"), Object(Matching, "data/field/bg/acre/grd_yamishop/grd_yamishop.c"), Object(Matching, "data/field/bg/acre/grd_post_office/grd_post_office.c"), Object(Matching, "data/field/bg/acre/tmp4/tmp4.c"), Object(Matching, "data/field/bg/acre/tmpr4/tmpr4_evw_anime.c"), Object(Matching, "data/field/bg/acre/tmpr4/tmpr4.c"), Object(Matching, "data/field/bg/acre/tmp3/tmp3.c"), Object(Matching, "data/field/bg/acre/tmpr3/tmpr3_evw_anime.c"), Object(Matching, "data/field/bg/acre/tmpr3/tmpr3.c"), Object(Matching, "data/field/bg/acre/tmp/tmp.c"), Object(Matching, "data/field/bg/acre/tmpr/tmpr_evw_anime.c"), Object(Matching, "data/field/bg/acre/tmpr/tmpr.c"), Object(Matching, "data/field/bg/acre/tmp2/tmp2.c"), Object(Matching, "data/field/bg/acre/tmpr2/tmpr2_evw_anime.c"), Object(Matching, "data/field/bg/acre/tmpr2/tmpr2.c"), Object(Matching, "data/field/bg/bush_pal.c"), Object(Matching, "data/field/bg/cliff_pal.c"), Object(Matching, "data/field/bg/earth_pal.c"), Object(Matching, "data/field/bg/acre/grd_s_c1_1/grd_s_c1_1.c"), Object(Matching, "data/field/bg/acre/grd_s_c1_2/grd_s_c1_2.c"), Object(Matching, "data/field/bg/acre/grd_s_c1_3/grd_s_c1_3.c"), Object(Matching, "data/field/bg/acre/grd_s_c1_4/grd_s_c1_4.c"), Object(Matching, "data/field/bg/acre/grd_s_c1_5/grd_s_c1_5.c"), Object( Matching, "data/field/bg/acre/grd_s_c1_r1_1/grd_s_c1_r1_1_evw_anime.c" ), Object(Matching, "data/field/bg/acre/grd_s_c1_r1_1/grd_s_c1_r1_1.c"), Object( Matching, "data/field/bg/acre/grd_s_c1_r1_2/grd_s_c1_r1_2_evw_anime.c" ), Object(Matching, "data/field/bg/acre/grd_s_c1_r1_2/grd_s_c1_r1_2.c"), Object( Matching, "data/field/bg/acre/grd_s_c1_r1_3/grd_s_c1_r1_3_evw_anime.c" ), Object(Matching, "data/field/bg/acre/grd_s_c1_r1_3/grd_s_c1_r1_3.c"), Object( Matching, "data/field/bg/acre/grd_s_c1_r2_1/grd_s_c1_r2_1_evw_anime.c" ), Object(Matching, "data/field/bg/acre/grd_s_c1_r2_1/grd_s_c1_r2_1.c"), Object( Matching, "data/field/bg/acre/grd_s_c1_r2_2/grd_s_c1_r2_2_evw_anime.c" ), Object(Matching, "data/field/bg/acre/grd_s_c1_r2_2/grd_s_c1_r2_2.c"), Object( Matching, "data/field/bg/acre/grd_s_c1_r2_3/grd_s_c1_r2_3_evw_anime.c" ), Object(Matching, "data/field/bg/acre/grd_s_c1_r2_3/grd_s_c1_r2_3.c"), Object( Matching, "data/field/bg/acre/grd_s_c1_r3_1/grd_s_c1_r3_1_evw_anime.c" ), Object(Matching, "data/field/bg/acre/grd_s_c1_r3_1/grd_s_c1_r3_1.c"), Object( Matching, "data/field/bg/acre/grd_s_c1_r3_2/grd_s_c1_r3_2_evw_anime.c" ), Object(Matching, "data/field/bg/acre/grd_s_c1_r3_2/grd_s_c1_r3_2.c"), Object( Matching, "data/field/bg/acre/grd_s_c1_r3_3/grd_s_c1_r3_3_evw_anime.c" ), Object(Matching, "data/field/bg/acre/grd_s_c1_r3_3/grd_s_c1_r3_3.c"), Object(Matching, "data/field/bg/acre/grd_s_c1_s_1/grd_s_c1_s_1.c"), Object(Matching, "data/field/bg/acre/grd_s_c1_s_2/grd_s_c1_s_2.c"), Object(Matching, "data/field/bg/acre/grd_s_c1_s_3/grd_s_c1_s_3.c"), Object(Matching, "data/field/bg/acre/grd_s_c1_s_4/grd_s_c1_s_4.c"), Object(Matching, "data/field/bg/acre/grd_s_c2_1/grd_s_c2_1.c"), Object(Matching, "data/field/bg/acre/grd_s_c2_2/grd_s_c2_2.c"), Object(Matching, "data/field/bg/acre/grd_s_c2_3/grd_s_c2_3_evw_anime.c"), Object(Matching, "data/field/bg/acre/grd_s_c2_3/grd_s_c2_3.c"), Object( Matching, "data/field/bg/acre/grd_s_c2_r1_1/grd_s_c2_r1_1_evw_anime.c" ), Object(Matching, "data/field/bg/acre/grd_s_c2_r1_1/grd_s_c2_r1_1.c"), Object( Matching, "data/field/bg/acre/grd_s_c2_r1_2/grd_s_c2_r1_2_evw_anime.c" ), Object(Matching, "data/field/bg/acre/grd_s_c2_r1_2/grd_s_c2_r1_2.c"), Object( Matching, "data/field/bg/acre/grd_s_c2_r2_1/grd_s_c2_r2_1_evw_anime.c" ), Object(Matching, "data/field/bg/acre/grd_s_c2_r2_1/grd_s_c2_r2_1.c"), Object( Matching, "data/field/bg/acre/grd_s_c2_r2_2/grd_s_c2_r2_2_evw_anime.c" ), Object(Matching, "data/field/bg/acre/grd_s_c2_r2_2/grd_s_c2_r2_2.c"), Object(Matching, "data/field/bg/acre/grd_s_c2_s_1/grd_s_c2_s_1.c"), Object(Matching, "data/field/bg/acre/grd_s_c2_s_2/grd_s_c2_s_2.c"), Object(Matching, "data/field/bg/acre/grd_s_c2_s_3/grd_s_c2_s_3.c"), Object(Matching, "data/field/bg/acre/grd_s_c3_1/grd_s_c3_1.c"), Object(Matching, "data/field/bg/acre/grd_s_c3_2/grd_s_c3_2_evw_anime.c"), Object(Matching, "data/field/bg/acre/grd_s_c3_2/grd_s_c3_2.c"), Object(Matching, "data/field/bg/acre/grd_s_c3_3/grd_s_c3_3.c"), Object( Matching, "data/field/bg/acre/grd_s_c3_r1_1/grd_s_c3_r1_1_evw_anime.c" ), Object(Matching, "data/field/bg/acre/grd_s_c3_r1_1/grd_s_c3_r1_1.c"), Object( Matching, "data/field/bg/acre/grd_s_c3_r1_2/grd_s_c3_r1_2_evw_anime.c" ), Object(Matching, "data/field/bg/acre/grd_s_c3_r1_2/grd_s_c3_r1_2.c"), Object( Matching, "data/field/bg/acre/grd_s_c3_r2_1/grd_s_c3_r2_1_evw_anime.c" ), Object(Matching, "data/field/bg/acre/grd_s_c3_r2_1/grd_s_c3_r2_1.c"), Object( Matching, "data/field/bg/acre/grd_s_c3_r2_2/grd_s_c3_r2_2_evw_anime.c" ), Object(Matching, "data/field/bg/acre/grd_s_c3_r2_2/grd_s_c3_r2_2.c"), Object( Matching, "data/field/bg/acre/grd_s_c3_s_1/grd_s_c3_s_1_evw_anime.c" ), Object(Matching, "data/field/bg/acre/grd_s_c3_s_1/grd_s_c3_s_1.c"), Object(Matching, "data/field/bg/acre/grd_s_c4_1/grd_s_c4_1.c"), Object(Matching, "data/field/bg/acre/grd_s_c4_2/grd_s_c4_2.c"), Object(Matching, "data/field/bg/acre/grd_s_c4_3/grd_s_c4_3.c"), Object( Matching, "data/field/bg/acre/grd_s_c4_r1_1/grd_s_c4_r1_1_evw_anime.c" ), Object(Matching, "data/field/bg/acre/grd_s_c4_r1_1/grd_s_c4_r1_1.c"), Object( Matching, "data/field/bg/acre/grd_s_c4_r1_2/grd_s_c4_r1_2_evw_anime.c" ), Object(Matching, "data/field/bg/acre/grd_s_c4_r1_2/grd_s_c4_r1_2.c"), Object( Matching, "data/field/bg/acre/grd_s_c4_r2_1/grd_s_c4_r2_1_evw_anime.c" ), Object(Matching, "data/field/bg/acre/grd_s_c4_r2_1/grd_s_c4_r2_1.c"), Object( Matching, "data/field/bg/acre/grd_s_c4_r2_2/grd_s_c4_r2_2_evw_anime.c" ), Object(Matching, "data/field/bg/acre/grd_s_c4_r2_2/grd_s_c4_r2_2.c"), Object( Matching, "data/field/bg/acre/grd_s_c4_r3_1/grd_s_c4_r3_1_evw_anime.c" ), Object(Matching, "data/field/bg/acre/grd_s_c4_r3_1/grd_s_c4_r3_1.c"), Object( Matching, "data/field/bg/acre/grd_s_c4_r3_2/grd_s_c4_r3_2_evw_anime.c" ), Object(Matching, "data/field/bg/acre/grd_s_c4_r3_2/grd_s_c4_r3_2.c"), Object(Matching, "data/field/bg/acre/grd_s_c4_s_1/grd_s_c4_s_1.c"), Object(Matching, "data/field/bg/acre/grd_s_c4_s_2/grd_s_c4_s_2.c"), Object(Matching, "data/field/bg/acre/grd_s_c5_1/grd_s_c5_1.c"), Object(Matching, "data/field/bg/acre/grd_s_c5_2/grd_s_c5_2.c"), Object(Matching, "data/field/bg/acre/grd_s_c5_3/grd_s_c5_3.c"), Object( Matching, "data/field/bg/acre/grd_s_c5_r1_1/grd_s_c5_r1_1_evw_anime.c" ), Object(Matching, "data/field/bg/acre/grd_s_c5_r1_1/grd_s_c5_r1_1.c"), Object( Matching, "data/field/bg/acre/grd_s_c5_r1_2/grd_s_c5_r1_2_evw_anime.c" ), Object(Matching, "data/field/bg/acre/grd_s_c5_r1_2/grd_s_c5_r1_2.c"), Object( Matching, "data/field/bg/acre/grd_s_c5_r2_1/grd_s_c5_r2_1_evw_anime.c" ), Object(Matching, "data/field/bg/acre/grd_s_c5_r2_1/grd_s_c5_r2_1.c"), Object( Matching, "data/field/bg/acre/grd_s_c5_r2_2/grd_s_c5_r2_2_evw_anime.c" ), Object(Matching, "data/field/bg/acre/grd_s_c5_r2_2/grd_s_c5_r2_2.c"), Object( Matching, "data/field/bg/acre/grd_s_c5_r3_1/grd_s_c5_r3_1_evw_anime.c" ), Object(Matching, "data/field/bg/acre/grd_s_c5_r3_1/grd_s_c5_r3_1.c"), Object( Matching, "data/field/bg/acre/grd_s_c5_r3_2/grd_s_c5_r3_2_evw_anime.c" ), Object(Matching, "data/field/bg/acre/grd_s_c5_r3_2/grd_s_c5_r3_2.c"), Object(Matching, "data/field/bg/acre/grd_s_c5_s_1/grd_s_c5_s_1.c"), Object(Matching, "data/field/bg/acre/grd_s_c5_s_2/grd_s_c5_s_2.c"), Object(Matching, "data/field/bg/acre/grd_s_c6_1/grd_s_c6_1.c"), Object(Matching, "data/field/bg/acre/grd_s_c6_2/grd_s_c6_2.c"), Object(Matching, "data/field/bg/acre/grd_s_c6_3/grd_s_c6_3.c"), Object( Matching, "data/field/bg/acre/grd_s_c6_r1_1/grd_s_c6_r1_1_evw_anime.c" ), Object(Matching, "data/field/bg/acre/grd_s_c6_r1_1/grd_s_c6_r1_1.c"), Object( Matching, "data/field/bg/acre/grd_s_c6_r1_2/grd_s_c6_r1_2_evw_anime.c" ), Object(Matching, "data/field/bg/acre/grd_s_c6_r1_2/grd_s_c6_r1_2.c"), Object( Matching, "data/field/bg/acre/grd_s_c6_r3_1/grd_s_c6_r3_1_evw_anime.c" ), Object(Matching, "data/field/bg/acre/grd_s_c6_r3_1/grd_s_c6_r3_1.c"), Object(Matching, "data/field/bg/acre/grd_s_c6_s_1/grd_s_c6_s_1.c"), Object(Matching, "data/field/bg/acre/grd_s_c7_1/grd_s_c7_1.c"), Object(Matching, "data/field/bg/acre/grd_s_c7_2/grd_s_c7_2.c"), Object(Matching, "data/field/bg/acre/grd_s_c7_3/grd_s_c7_3_evw_anime.c"), Object(Matching, "data/field/bg/acre/grd_s_c7_3/grd_s_c7_3.c"), Object( Matching, "data/field/bg/acre/grd_s_c7_r1_1/grd_s_c7_r1_1_evw_anime.c" ), Object(Matching, "data/field/bg/acre/grd_s_c7_r1_1/grd_s_c7_r1_1.c"), Object( Matching, "data/field/bg/acre/grd_s_c7_r1_2/grd_s_c7_r1_2_evw_anime.c" ), Object(Matching, "data/field/bg/acre/grd_s_c7_r1_2/grd_s_c7_r1_2.c"), Object( Matching, "data/field/bg/acre/grd_s_c7_r3_1/grd_s_c7_r3_1_evw_anime.c" ), Object(Matching, "data/field/bg/acre/grd_s_c7_r3_1/grd_s_c7_r3_1.c"), Object( Matching, "data/field/bg/acre/grd_s_c7_r3_2/grd_s_c7_r3_2_evw_anime.c" ), Object(Matching, "data/field/bg/acre/grd_s_c7_r3_2/grd_s_c7_r3_2.c"), Object(Matching, "data/field/bg/acre/grd_s_c7_s_1/grd_s_c7_s_1.c"), Object(Matching, "data/field/bg/acre/grd_s_c7_s_2/grd_s_c7_s_2.c"), Object(Matching, "data/field/bg/acre/grd_s_c7_s_3/grd_s_c7_s_3.c"), Object(Matching, "data/field/bg/acre/grd_s_e1_1/grd_s_e1_1.c"), Object( Matching, "data/field/bg/acre/grd_s_e1_r1_1/grd_s_e1_r1_1_evw_anime.c" ), Object(Matching, "data/field/bg/acre/grd_s_e1_r1_1/grd_s_e1_r1_1.c"), Object(Matching, "data/field/bg/acre/grd_s_e2_1/grd_s_e2_1.c"), Object(Matching, "data/field/bg/acre/grd_s_e2_c1_1/grd_s_e2_c1_1.c"), Object(Matching, "data/field/bg/acre/grd_s_e2_m_1/grd_s_e2_m_1.c"), Object(Matching, "data/field/bg/acre/grd_s_e2_o_1/grd_s_e2_o_1.c"), Object(Matching, "data/field/bg/acre/grd_s_e2_t_1/grd_s_e2_t_1.c"), Object(Matching, "data/field/bg/acre/grd_s_e3_1/grd_s_e3_1.c"), Object(Matching, "data/field/bg/acre/grd_s_e3_c1_1/grd_s_e3_c1_1.c"), Object(Matching, "data/field/bg/acre/grd_s_e3_m_1/grd_s_e3_m_1.c"), Object(Matching, "data/field/bg/acre/grd_s_e3_o_1/grd_s_e3_o_1.c"), Object(Matching, "data/field/bg/acre/grd_s_e3_t_1/grd_s_e3_t_1.c"), Object(Matching, "data/field/bg/acre/grd_s_e4_1/grd_s_e4_1.c"), Object(Matching, "data/field/bg/acre/grd_s_e5_1/grd_s_e5_1.c"), Object(Matching, "data/field/bg/acre/grd_s_f_1/grd_s_f_1.c"), Object(Matching, "data/field/bg/acre/grd_s_f_10/grd_s_f_10.c"), Object(Matching, "data/field/bg/acre/grd_s_f_2/grd_s_f_2.c"), Object(Matching, "data/field/bg/acre/grd_s_f_3/grd_s_f_3.c"), Object(Matching, "data/field/bg/acre/grd_s_f_4/grd_s_f_4_evw_anime.c"), Object(Matching, "data/field/bg/acre/grd_s_f_4/grd_s_f_4.c"), Object(Matching, "data/field/bg/acre/grd_s_f_5/grd_s_f_5_evw_anime.c"), Object(Matching, "data/field/bg/acre/grd_s_f_5/grd_s_f_5.c"), Object(Matching, "data/field/bg/acre/grd_s_f_6/grd_s_f_6_evw_anime.c"), Object(Matching, "data/field/bg/acre/grd_s_f_6/grd_s_f_6.c"), Object(Matching, "data/field/bg/acre/grd_s_f_7/grd_s_f_7.c"), Object(Matching, "data/field/bg/acre/grd_s_f_8/grd_s_f_8.c"), Object(Matching, "data/field/bg/acre/grd_s_f_9/grd_s_f_9.c"), Object(Matching, "data/field/bg/acre/grd_s_f_ko_1/grd_s_f_ko_1.c"), Object(Matching, "data/field/bg/acre/grd_s_f_ko_2/grd_s_f_ko_2.c"), Object( Matching, "data/field/bg/acre/grd_s_f_ko_3/grd_s_f_ko_3_evw_anime.c" ), Object(Matching, "data/field/bg/acre/grd_s_f_ko_3/grd_s_f_ko_3.c"), Object(Matching, "data/field/bg/acre/grd_s_f_mh_1/grd_s_f_mh_1.c"), Object(Matching, "data/field/bg/acre/grd_s_f_mh_2/grd_s_f_mh_2.c"), Object(Matching, "data/field/bg/acre/grd_s_f_mh_3/grd_s_f_mh_3.c"), Object(Matching, "data/field/bg/acre/grd_s_f_mu_1/grd_s_f_mu_1.c"), Object(Matching, "data/field/bg/acre/grd_s_f_mu_2/grd_s_f_mu_2.c"), Object( Matching, "data/field/bg/acre/grd_s_f_mu_3/grd_s_f_mu_3_evw_anime.c" ), Object(Matching, "data/field/bg/acre/grd_s_f_mu_3/grd_s_f_mu_3.c"), Object(Matching, "data/field/bg/acre/grd_s_f_pk_1/grd_s_f_pk_1.c"), Object(Matching, "data/field/bg/acre/grd_s_f_pk_2/grd_s_f_pk_2.c"), Object(Matching, "data/field/bg/acre/grd_s_f_pk_3/grd_s_f_pk_3.c"), Object(Matching, "data/field/bg/acre/grd_s_hole_test/grd_s_hole_test.c"), Object(Matching, "data/field/bg/acre/grd_s_il_1/grd_s_il_1.c"), Object(Matching, "data/field/bg/acre/grd_s_il_2/grd_s_il_2.c"), Object(Matching, "data/field/bg/acre/grd_s_il_3/grd_s_il_3.c"), Object(Matching, "data/field/bg/acre/grd_s_il_4/grd_s_il_4.c"), Object(Matching, "data/field/bg/acre/grd_s_ir_1/grd_s_ir_1.c"), Object(Matching, "data/field/bg/acre/grd_s_ir_2/grd_s_ir_2.c"), Object(Matching, "data/field/bg/acre/grd_s_ir_3/grd_s_ir_3.c"), Object(Matching, "data/field/bg/acre/grd_s_ir_4/grd_s_ir_4.c"), Object(Matching, "data/field/bg/acre/grd_s_m_1/grd_s_m_1.c"), Object(Matching, "data/field/bg/acre/grd_s_m_10/grd_s_m_10.c"), Object(Matching, "data/field/bg/acre/grd_s_m_2/grd_s_m_2.c"), Object(Matching, "data/field/bg/acre/grd_s_m_3/grd_s_m_3.c"), Object(Matching, "data/field/bg/acre/grd_s_m_4/grd_s_m_4.c"), Object(Matching, "data/field/bg/acre/grd_s_m_5/grd_s_m_5.c"), Object(Matching, "data/field/bg/acre/grd_s_m_6/grd_s_m_6.c"), Object(Matching, "data/field/bg/acre/grd_s_m_7/grd_s_m_7.c"), Object(Matching, "data/field/bg/acre/grd_s_m_8/grd_s_m_8.c"), Object(Matching, "data/field/bg/acre/grd_s_m_9/grd_s_m_9.c"), Object( Matching, "data/field/bg/acre/grd_s_m_r1_1/grd_s_m_r1_1_evw_anime.c" ), Object(Matching, "data/field/bg/acre/grd_s_m_r1_1/grd_s_m_r1_1.c"), Object( Matching, "data/field/bg/acre/grd_s_m_r1_2/grd_s_m_r1_2_evw_anime.c" ), Object(Matching, "data/field/bg/acre/grd_s_m_r1_2/grd_s_m_r1_2.c"), Object( Matching, "data/field/bg/acre/grd_s_m_r1_3/grd_s_m_r1_3_evw_anime.c" ), Object(Matching, "data/field/bg/acre/grd_s_m_r1_3/grd_s_m_r1_3.c"), Object( Matching, "data/field/bg/acre/grd_s_m_r1_4/grd_s_m_r1_4_evw_anime.c" ), Object(Matching, "data/field/bg/acre/grd_s_m_r1_4/grd_s_m_r1_4.c"), Object( Matching, "data/field/bg/acre/grd_s_m_r1_5/grd_s_m_r1_5_evw_anime.c" ), Object(Matching, "data/field/bg/acre/grd_s_m_r1_5/grd_s_m_r1_5.c"), Object( Matching, "data/field/bg/acre/grd_s_m_r1_b_1/grd_s_m_r1_b_1_evw_anime.c" ), Object(Matching, "data/field/bg/acre/grd_s_m_r1_b_1/grd_s_m_r1_b_1.c"), Object( Matching, "data/field/bg/acre/grd_s_m_r1_b_2/grd_s_m_r1_b_2_evw_anime.c" ), Object(Matching, "data/field/bg/acre/grd_s_m_r1_b_2/grd_s_m_r1_b_2.c"), Object( Matching, "data/field/bg/acre/grd_s_m_r1_b_3/grd_s_m_r1_b_3_evw_anime.c" ), Object(Matching, "data/field/bg/acre/grd_s_m_r1_b_3/grd_s_m_r1_b_3.c"), Object( Matching, "data/field/bg/acre/grd_s_m_ta_1/grd_s_m_ta_1_evw_anime.c" ), Object(Matching, "data/field/bg/acre/grd_s_m_ta_1/grd_s_m_ta_1.c"), Object( Matching, "data/field/bg/acre/grd_s_m_ta_2/grd_s_m_ta_2_evw_anime.c" ), Object(Matching, "data/field/bg/acre/grd_s_m_ta_2/grd_s_m_ta_2.c"), Object( Matching, "data/field/bg/acre/grd_s_m_ta_3/grd_s_m_ta_3_evw_anime.c" ), Object(Matching, "data/field/bg/acre/grd_s_m_ta_3/grd_s_m_ta_3.c"), Object( Matching, "data/field/bg/acre/grd_s_m_wf_1/grd_s_m_wf_1_evw_anime.c" ), Object(Matching, "data/field/bg/acre/grd_s_m_wf_1/grd_s_m_wf_1.c"), Object( Matching, "data/field/bg/acre/grd_s_m_wf_2/grd_s_m_wf_2_evw_anime.c" ), Object(Matching, "data/field/bg/acre/grd_s_m_wf_2/grd_s_m_wf_2.c"), Object( Matching, "data/field/bg/acre/grd_s_m_wf_3/grd_s_m_wf_3_evw_anime.c" ), Object(Matching, "data/field/bg/acre/grd_s_m_wf_3/grd_s_m_wf_3.c"), Object(Matching, "data/field/bg/acre/grd_s_o_1/grd_s_o_1_evw_anime.c"), Object(Matching, "data/field/bg/acre/grd_s_o_1/grd_s_o_1.c"), Object(Matching, "data/field/bg/acre/grd_s_o_10/grd_s_o_10_evw_anime.c"), Object(Matching, "data/field/bg/acre/grd_s_o_10/grd_s_o_10.c"), Object(Matching, "data/field/bg/acre/grd_s_o_2/grd_s_o_2_evw_anime.c"), Object(Matching, "data/field/bg/acre/grd_s_o_2/grd_s_o_2.c"), Object(Matching, "data/field/bg/acre/grd_s_o_3/grd_s_o_3_evw_anime.c"), Object(Matching, "data/field/bg/acre/grd_s_o_3/grd_s_o_3.c"), Object(Matching, "data/field/bg/acre/grd_s_o_4/grd_s_o_4_evw_anime.c"), Object(Matching, "data/field/bg/acre/grd_s_o_4/grd_s_o_4.c"), Object(Matching, "data/field/bg/acre/grd_s_o_5/grd_s_o_5_evw_anime.c"), Object(Matching, "data/field/bg/acre/grd_s_o_5/grd_s_o_5.c"), Object(Matching, "data/field/bg/acre/grd_s_o_6/grd_s_o_6_evw_anime.c"), Object(Matching, "data/field/bg/acre/grd_s_o_6/grd_s_o_6.c"), Object(Matching, "data/field/bg/acre/grd_s_o_7/grd_s_o_7_evw_anime.c"), Object(Matching, "data/field/bg/acre/grd_s_o_7/grd_s_o_7.c"), Object(Matching, "data/field/bg/acre/grd_s_o_8/grd_s_o_8_evw_anime.c"), Object(Matching, "data/field/bg/acre/grd_s_o_8/grd_s_o_8.c"), Object(Matching, "data/field/bg/acre/grd_s_o_9/grd_s_o_9_evw_anime.c"), Object(Matching, "data/field/bg/acre/grd_s_o_9/grd_s_o_9.c"), Object(Matching, "data/field/bg/acre/grd_s_o_i_1/grd_s_o_i_1.c"), Object(Matching, "data/field/bg/acre/grd_s_o_i_2/grd_s_o_i_2_evw_anime.c"), Object(Matching, "data/field/bg/acre/grd_s_o_i_2/grd_s_o_i_2.c"), Object( Matching, "data/field/bg/acre/grd_s_o_r1_1/grd_s_o_r1_1_evw_anime.c" ), Object(Matching, "data/field/bg/acre/grd_s_o_r1_1/grd_s_o_r1_1.c"), Object( Matching, "data/field/bg/acre/grd_s_o_r1_2/grd_s_o_r1_2_evw_anime.c" ), Object(Matching, "data/field/bg/acre/grd_s_o_r1_2/grd_s_o_r1_2.c"), Object( Matching, "data/field/bg/acre/grd_s_o_r1_3/grd_s_o_r1_3_evw_anime.c" ), Object(Matching, "data/field/bg/acre/grd_s_o_r1_3/grd_s_o_r1_3.c"), Object( Matching, "data/field/bg/acre/grd_s_o_r1_4/grd_s_o_r1_4_evw_anime.c" ), Object(Matching, "data/field/bg/acre/grd_s_o_r1_4/grd_s_o_r1_4.c"), Object( Matching, "data/field/bg/acre/grd_s_o_r1_5/grd_s_o_r1_5_evw_anime.c" ), Object(Matching, "data/field/bg/acre/grd_s_o_r1_5/grd_s_o_r1_5.c"), Object( Matching, "data/field/bg/acre/grd_s_o_r1_b_1/grd_s_o_r1_b_1_evw_anime.c" ), Object(Matching, "data/field/bg/acre/grd_s_o_r1_b_1/grd_s_o_r1_b_1.c"), Object( Matching, "data/field/bg/acre/grd_s_o_r1_b_2/grd_s_o_r1_b_2_evw_anime.c" ), Object(Matching, "data/field/bg/acre/grd_s_o_r1_b_2/grd_s_o_r1_b_2.c"), Object( Matching, "data/field/bg/acre/grd_s_o_r1_b_3/grd_s_o_r1_b_3_evw_anime.c" ), Object(Matching, "data/field/bg/acre/grd_s_o_r1_b_3/grd_s_o_r1_b_3.c"), Object( Matching, "data/field/bg/acre/grd_s_o_ta_1/grd_s_o_ta_1_evw_anime.c" ), Object(Matching, "data/field/bg/acre/grd_s_o_ta_1/grd_s_o_ta_1.c"), Object( Matching, "data/field/bg/acre/grd_s_o_ta_2/grd_s_o_ta_2_evw_anime.c" ), Object(Matching, "data/field/bg/acre/grd_s_o_ta_2/grd_s_o_ta_2.c"), Object( Matching, "data/field/bg/acre/grd_s_o_ta_3/grd_s_o_ta_3_evw_anime.c" ), Object(Matching, "data/field/bg/acre/grd_s_o_ta_3/grd_s_o_ta_3.c"), Object( Matching, "data/field/bg/acre/grd_s_o_wf_1/grd_s_o_wf_1_evw_anime.c" ), Object(Matching, "data/field/bg/acre/grd_s_o_wf_1/grd_s_o_wf_1.c"), Object( Matching, "data/field/bg/acre/grd_s_o_wf_2/grd_s_o_wf_2_evw_anime.c" ), Object(Matching, "data/field/bg/acre/grd_s_o_wf_2/grd_s_o_wf_2.c"), Object( Matching, "data/field/bg/acre/grd_s_o_wf_3/grd_s_o_wf_3_evw_anime.c" ), Object(Matching, "data/field/bg/acre/grd_s_o_wf_3/grd_s_o_wf_3.c"), Object(Matching, "data/field/bg/acre/grd_s_r1_1/grd_s_r1_1_evw_anime.c"), Object(Matching, "data/field/bg/acre/grd_s_r1_1/grd_s_r1_1.c"), Object(Matching, "data/field/bg/acre/grd_s_r1_2/grd_s_r1_2_evw_anime.c"), Object(Matching, "data/field/bg/acre/grd_s_r1_2/grd_s_r1_2.c"), Object(Matching, "data/field/bg/acre/grd_s_r1_3/grd_s_r1_3_evw_anime.c"), Object(Matching, "data/field/bg/acre/grd_s_r1_3/grd_s_r1_3.c"), Object(Matching, "data/field/bg/acre/grd_s_r1_4/grd_s_r1_4_evw_anime.c"), Object(Matching, "data/field/bg/acre/grd_s_r1_4/grd_s_r1_4.c"), Object( Matching, "data/field/bg/acre/grd_s_r1_b_1/grd_s_r1_b_1_evw_anime.c" ), Object(Matching, "data/field/bg/acre/grd_s_r1_b_1/grd_s_r1_b_1.c"), Object( Matching, "data/field/bg/acre/grd_s_r1_b_2/grd_s_r1_b_2_evw_anime.c" ), Object(Matching, "data/field/bg/acre/grd_s_r1_b_2/grd_s_r1_b_2.c"), Object( Matching, "data/field/bg/acre/grd_s_r1_b_3/grd_s_r1_b_3_evw_anime.c" ), Object(Matching, "data/field/bg/acre/grd_s_r1_b_3/grd_s_r1_b_3.c"), Object( Matching, "data/field/bg/acre/grd_s_r1_p_1/grd_s_r1_p_1_evw_anime.c" ), Object(Matching, "data/field/bg/acre/grd_s_r1_p_1/grd_s_r1_p_1.c"), Object(Matching, "data/field/bg/acre/grd_s_r2_1/grd_s_r2_1_evw_anime.c"), Object(Matching, "data/field/bg/acre/grd_s_r2_1/grd_s_r2_1.c"), Object(Matching, "data/field/bg/acre/grd_s_r2_2/grd_s_r2_2_evw_anime.c"), Object(Matching, "data/field/bg/acre/grd_s_r2_2/grd_s_r2_2.c"), Object(Matching, "data/field/bg/acre/grd_s_r2_3/grd_s_r2_3_evw_anime.c"), Object(Matching, "data/field/bg/acre/grd_s_r2_3/grd_s_r2_3.c"), Object(Matching, "data/field/bg/acre/grd_s_r2_4/grd_s_r2_4_evw_anime.c"), Object(Matching, "data/field/bg/acre/grd_s_r2_4/grd_s_r2_4.c"), Object( Matching, "data/field/bg/acre/grd_s_r2_b_1/grd_s_r2_b_1_evw_anime.c" ), Object(Matching, "data/field/bg/acre/grd_s_r2_b_1/grd_s_r2_b_1.c"), Object( Matching, "data/field/bg/acre/grd_s_r2_b_2/grd_s_r2_b_2_evw_anime.c" ), Object(Matching, "data/field/bg/acre/grd_s_r2_b_2/grd_s_r2_b_2.c"), Object( Matching, "data/field/bg/acre/grd_s_r2_b_3/grd_s_r2_b_3_evw_anime.c" ), Object(Matching, "data/field/bg/acre/grd_s_r2_b_3/grd_s_r2_b_3.c"), Object( Matching, "data/field/bg/acre/grd_s_r2_p_1/grd_s_r2_p_1_evw_anime.c" ), Object(Matching, "data/field/bg/acre/grd_s_r2_p_1/grd_s_r2_p_1.c"), Object(Matching, "data/field/bg/acre/grd_s_r3_1/grd_s_r3_1_evw_anime.c"), Object(Matching, "data/field/bg/acre/grd_s_r3_1/grd_s_r3_1.c"), Object(Matching, "data/field/bg/acre/grd_s_r3_2/grd_s_r3_2_evw_anime.c"), Object(Matching, "data/field/bg/acre/grd_s_r3_2/grd_s_r3_2.c"), Object(Matching, "data/field/bg/acre/grd_s_r3_3/grd_s_r3_3_evw_anime.c"), Object(Matching, "data/field/bg/acre/grd_s_r3_3/grd_s_r3_3.c"), Object(Matching, "data/field/bg/acre/grd_s_r3_4/grd_s_r3_4_evw_anime.c"), Object(Matching, "data/field/bg/acre/grd_s_r3_4/grd_s_r3_4.c"), Object( Matching, "data/field/bg/acre/grd_s_r3_b_1/grd_s_r3_b_1_evw_anime.c" ), Object(Matching, "data/field/bg/acre/grd_s_r3_b_1/grd_s_r3_b_1.c"), Object( Matching, "data/field/bg/acre/grd_s_r3_b_2/grd_s_r3_b_2_evw_anime.c" ), Object(Matching, "data/field/bg/acre/grd_s_r3_b_2/grd_s_r3_b_2.c"), Object( Matching, "data/field/bg/acre/grd_s_r3_b_3/grd_s_r3_b_3_evw_anime.c" ), Object(Matching, "data/field/bg/acre/grd_s_r3_b_3/grd_s_r3_b_3.c"), Object( Matching, "data/field/bg/acre/grd_s_r3_p_1/grd_s_r3_p_1_evw_anime.c" ), Object(Matching, "data/field/bg/acre/grd_s_r3_p_1/grd_s_r3_p_1.c"), Object(Matching, "data/field/bg/acre/grd_s_r4_1/grd_s_r4_1_evw_anime.c"), Object(Matching, "data/field/bg/acre/grd_s_r4_1/grd_s_r4_1.c"), Object(Matching, "data/field/bg/acre/grd_s_r4_2/grd_s_r4_2_evw_anime.c"), Object(Matching, "data/field/bg/acre/grd_s_r4_2/grd_s_r4_2.c"), Object(Matching, "data/field/bg/acre/grd_s_r4_3/grd_s_r4_3_evw_anime.c"), Object(Matching, "data/field/bg/acre/grd_s_r4_3/grd_s_r4_3.c"), Object( Matching, "data/field/bg/acre/grd_s_r4_b_1/grd_s_r4_b_1_evw_anime.c" ), Object(Matching, "data/field/bg/acre/grd_s_r4_b_1/grd_s_r4_b_1.c"), Object( Matching, "data/field/bg/acre/grd_s_r4_b_2/grd_s_r4_b_2_evw_anime.c" ), Object(Matching, "data/field/bg/acre/grd_s_r4_b_2/grd_s_r4_b_2.c"), Object( Matching, "data/field/bg/acre/grd_s_r4_p_1/grd_s_r4_p_1_evw_anime.c" ), Object(Matching, "data/field/bg/acre/grd_s_r4_p_1/grd_s_r4_p_1.c"), Object(Matching, "data/field/bg/acre/grd_s_r5_1/grd_s_r5_1_evw_anime.c"), Object(Matching, "data/field/bg/acre/grd_s_r5_1/grd_s_r5_1.c"), Object(Matching, "data/field/bg/acre/grd_s_r5_2/grd_s_r5_2_evw_anime.c"), Object(Matching, "data/field/bg/acre/grd_s_r5_2/grd_s_r5_2.c"), Object(Matching, "data/field/bg/acre/grd_s_r5_3/grd_s_r5_3_evw_anime.c"), Object(Matching, "data/field/bg/acre/grd_s_r5_3/grd_s_r5_3.c"), Object( Matching, "data/field/bg/acre/grd_s_r5_b_1/grd_s_r5_b_1_evw_anime.c" ), Object(Matching, "data/field/bg/acre/grd_s_r5_b_1/grd_s_r5_b_1.c"), Object( Matching, "data/field/bg/acre/grd_s_r5_b_2/grd_s_r5_b_2_evw_anime.c" ), Object(Matching, "data/field/bg/acre/grd_s_r5_b_2/grd_s_r5_b_2.c"), Object( Matching, "data/field/bg/acre/grd_s_r5_p_1/grd_s_r5_p_1_evw_anime.c" ), Object(Matching, "data/field/bg/acre/grd_s_r5_p_1/grd_s_r5_p_1.c"), Object(Matching, "data/field/bg/acre/grd_s_r6_1/grd_s_r6_1_evw_anime.c"), Object(Matching, "data/field/bg/acre/grd_s_r6_1/grd_s_r6_1.c"), Object(Matching, "data/field/bg/acre/grd_s_r6_2/grd_s_r6_2_evw_anime.c"), Object(Matching, "data/field/bg/acre/grd_s_r6_2/grd_s_r6_2.c"), Object(Matching, "data/field/bg/acre/grd_s_r6_3/grd_s_r6_3_evw_anime.c"), Object(Matching, "data/field/bg/acre/grd_s_r6_3/grd_s_r6_3.c"), Object( Matching, "data/field/bg/acre/grd_s_r6_b_1/grd_s_r6_b_1_evw_anime.c" ), Object(Matching, "data/field/bg/acre/grd_s_r6_b_1/grd_s_r6_b_1.c"), Object( Matching, "data/field/bg/acre/grd_s_r6_b_2/grd_s_r6_b_2_evw_anime.c" ), Object(Matching, "data/field/bg/acre/grd_s_r6_b_2/grd_s_r6_b_2.c"), Object( Matching, "data/field/bg/acre/grd_s_r6_p_1/grd_s_r6_p_1_evw_anime.c" ), Object(Matching, "data/field/bg/acre/grd_s_r6_p_1/grd_s_r6_p_1.c"), Object(Matching, "data/field/bg/acre/grd_s_r7_1/grd_s_r7_1_evw_anime.c"), Object(Matching, "data/field/bg/acre/grd_s_r7_1/grd_s_r7_1.c"), Object(Matching, "data/field/bg/acre/grd_s_r7_2/grd_s_r7_2_evw_anime.c"), Object(Matching, "data/field/bg/acre/grd_s_r7_2/grd_s_r7_2.c"), Object(Matching, "data/field/bg/acre/grd_s_r7_3/grd_s_r7_3_evw_anime.c"), Object(Matching, "data/field/bg/acre/grd_s_r7_3/grd_s_r7_3.c"), Object( Matching, "data/field/bg/acre/grd_s_r7_b_1/grd_s_r7_b_1_evw_anime.c" ), Object(Matching, "data/field/bg/acre/grd_s_r7_b_1/grd_s_r7_b_1.c"), Object( Matching, "data/field/bg/acre/grd_s_r7_b_2/grd_s_r7_b_2_evw_anime.c" ), Object(Matching, "data/field/bg/acre/grd_s_r7_b_2/grd_s_r7_b_2.c"), Object( Matching, "data/field/bg/acre/grd_s_r7_p_1/grd_s_r7_p_1_evw_anime.c" ), Object(Matching, "data/field/bg/acre/grd_s_r7_p_1/grd_s_r7_p_1.c"), Object(Matching, "data/field/bg/acre/grd_s_t_1/grd_s_t_1_evw_anime.c"), Object(Matching, "data/field/bg/acre/grd_s_t_1/grd_s_t_1.c"), Object(Matching, "data/field/bg/acre/grd_s_t_10/grd_s_t_10.c"), Object(Matching, "data/field/bg/acre/grd_s_t_2/grd_s_t_2.c"), Object(Matching, "data/field/bg/acre/grd_s_t_3/grd_s_t_3.c"), Object(Matching, "data/field/bg/acre/grd_s_t_4/grd_s_t_4_evw_anime.c"), Object(Matching, "data/field/bg/acre/grd_s_t_4/grd_s_t_4.c"), Object(Matching, "data/field/bg/acre/grd_s_t_5/grd_s_t_5_evw_anime.c"), Object(Matching, "data/field/bg/acre/grd_s_t_5/grd_s_t_5.c"), Object(Matching, "data/field/bg/acre/grd_s_t_6/grd_s_t_6.c"), Object(Matching, "data/field/bg/acre/grd_s_t_7/grd_s_t_7.c"), Object(Matching, "data/field/bg/acre/grd_s_t_8/grd_s_t_8.c"), Object(Matching, "data/field/bg/acre/grd_s_t_9/grd_s_t_9.c"), Object(Matching, "data/field/bg/acre/grd_s_t_po_1/grd_s_t_po_1.c"), Object(Matching, "data/field/bg/acre/grd_s_t_po_2/grd_s_t_po_2.c"), Object( Matching, "data/field/bg/acre/grd_s_t_po_3/grd_s_t_po_3_evw_anime.c" ), Object(Matching, "data/field/bg/acre/grd_s_t_po_3/grd_s_t_po_3.c"), Object( Matching, "data/field/bg/acre/grd_s_t_r1_1/grd_s_t_r1_1_evw_anime.c" ), Object(Matching, "data/field/bg/acre/grd_s_t_r1_1/grd_s_t_r1_1.c"), Object( Matching, "data/field/bg/acre/grd_s_t_r1_2/grd_s_t_r1_2_evw_anime.c" ), Object(Matching, "data/field/bg/acre/grd_s_t_r1_2/grd_s_t_r1_2.c"), Object( Matching, "data/field/bg/acre/grd_s_t_r1_3/grd_s_t_r1_3_evw_anime.c" ), Object(Matching, "data/field/bg/acre/grd_s_t_r1_3/grd_s_t_r1_3.c"), Object( Matching, "data/field/bg/acre/grd_s_t_r1_4/grd_s_t_r1_4_evw_anime.c" ), Object(Matching, "data/field/bg/acre/grd_s_t_r1_4/grd_s_t_r1_4.c"), Object( Matching, "data/field/bg/acre/grd_s_t_r1_5/grd_s_t_r1_5_evw_anime.c" ), Object(Matching, "data/field/bg/acre/grd_s_t_r1_5/grd_s_t_r1_5.c"), Object(Matching, "data/field/bg/acre/grd_s_t_sh_1/grd_s_t_sh_1.c"), Object( Matching, "data/field/bg/acre/grd_s_t_sh_2/grd_s_t_sh_2_evw_anime.c" ), Object(Matching, "data/field/bg/acre/grd_s_t_sh_2/grd_s_t_sh_2.c"), Object(Matching, "data/field/bg/acre/grd_s_t_sh_3/grd_s_t_sh_3.c"), Object(Matching, "data/field/bg/acre/grd_s_t_st1_1/grd_s_t_st1_1.c"), Object(Matching, "data/field/bg/acre/grd_s_t_st1_2/grd_s_t_st1_2.c"), Object(Matching, "data/field/bg/acre/grd_s_t_st1_3/grd_s_t_st1_3.c"), Object(Matching, "data/field/bg/acre/rom_toudai/rom_toudai.c"), Object(Matching, "data/submenu/map/kan_tizu.c"), Object(Matching, "data/submenu/map/kan_tizu2.c"), Object(Matching, "data/field/bg/acre/rom_museum1/rom_museum1.c"), Object(Matching, "data/field/bg/acre/rom_museum5/rom_museum5.c"), Object(Matching, "data/field/bg/acre/rom_museum2/rom_museum2.c"), Object(Matching, "data/field/bg/acre/rom_museum3/rom_museum3.c"), Object(Matching, "data/field/bg/acre/rom_tailor/rom_tailor.c"), Object(Matching, "data/field/bg/acre/myr_etc/myr_etc.c"), Object( Matching, "data/field/bg/acre/grd_player_select/grd_player_select_evw_anime.c", ), Object( Matching, "data/field/bg/acre/grd_player_select/grd_player_select.c" ), Object(Matching, "data/field/bg/acre/police_indoor/police_indoor.c"), Object(Matching, "data/field/bg/rail_pal.c"), Object(Matching, "data/field/bg/acre/rom_shop4_1/rom_shop4_1.c"), Object(Matching, "data/field/bg/acre/rom_shop4_fuku/rom_shop4_fuku.c"), Object(Matching, "data/field/bg/acre/rom_tent/rom_tent.c"), Object(Matching, "data/field/bg/acre/room01/room01.c"), Object(Matching, "data/field/bg/acre/rom_train_in/rom_train_in.c"), Object(Matching, "data/field/bg/acre/rom_uranai/rom_uranai_evw_anime.c"), Object(Matching, "data/field/bg/acre/rom_uranai/rom_uranai.c"), Object(Matching, "data/item/binsen_price.c"), Object(Matching, "data/item/cloth_price.c"), Object(Matching, "data/item/carpet_price.c"), Object(Matching, "data/item/wall_price.c"), Object(Matching, "data/item/tool_price.c"), Object(Matching, "data/item/plant_price.c"), Object(Matching, "data/item/food_price.c"), Object(Matching, "data/item/fish_price.c"), Object(Matching, "data/item/md_price.c"), Object(Matching, "data/item/diary_price.c"), Object(Matching, "data/item/insect_price.c"), Object(Matching, "data/item/ftr_price.c"), Object(Matching, "data/item/ftr_list.c"), Object(Matching, "data/item/binsen_list.c"), Object(Matching, "data/item/cloth_list.c"), Object(Matching, "data/item/carpet_list.c"), Object(Matching, "data/item/wall_list.c"), Object(Matching, "data/model/structure/palette/structure_pal_data.c"), Object(Matching, "data/model/structure/structure_pal.c"), # Field data Object(Matching, "data/field/field_data.c"), # Move actor lists Object(Matching, "data/field/mvactor/broker_shop.c"), Object(Matching, "data/field/mvactor/buggy.c"), Object(Matching, "data/field/mvactor/event_notification.c"), Object(Matching, "data/field/mvactor/fd0.c"), Object(Matching, "data/field/mvactor/fd1.c"), Object(Matching, "data/field/mvactor/fd2.c"), Object(Matching, "data/field/mvactor/fd4.c"), Object(Matching, "data/field/mvactor/fd_npc_land.c"), Object(Matching, "data/field/mvactor/fgout.c"), Object(Matching, "data/field/mvactor/kamakura.c"), Object(Matching, "data/field/mvactor/npcRoom001.c"), Object(Matching, "data/field/mvactor/playerRM.c"), Object(Matching, "data/field/mvactor/playerRMM.c"), Object(Matching, "data/field/mvactor/playerRMS.c"), Object(Matching, "data/field/mvactor/player_select.c"), Object(Matching, "data/field/mvactor/player_select2.c"), Object(Matching, "data/field/mvactor/player_select3.c"), Object(Matching, "data/field/mvactor/player_select4.c"), Object(Matching, "data/field/mvactor/police_box.c"), Object(Matching, "data/field/mvactor/post_office.c"), Object(Matching, "data/field/mvactor/shop01.c"), Object(Matching, "data/field/mvactor/shop02.c"), Object(Matching, "data/field/mvactor/shop03.c"), Object(Matching, "data/field/mvactor/shop04_1.c"), Object(Matching, "data/field/mvactor/shop04_2.c"), Object(Matching, "data/field/mvactor/start_demo1.c"), Object(Matching, "data/field/mvactor/start_demo2.c"), Object(Matching, "data/field/mvactor/start_demo3.c"), Object(Matching, "data/field/mvactor/tent.c"), Object(Matching, "data/field/mvactor/title_demo.c"), Object(Matching, "data/field/mvactor/water_test.c"), ], ), ] # Define our custom asset processing scripts config.custom_build_rules = [ { "name": "convert_pal16", "command": "$python tools/converters/pal16dis.py $in $out", "description": "CONVERT $symbol", }, # We run the script in "scan" mode first to generate a .dd (dyndep) file # This allows ninja to understand what files are generated by the script { "name": "scan_pal16_chunked", "command": "$python tools/converters/pal16dis_chunked.py $in $base -s $stamp -d $out", "description": "SCAN $symbol", }, { "name": "convert_pal16_chunked", "command": "$python tools/converters/pal16dis_chunked.py $in $base -s $out", "description": "CONVERT $symbol", }, { "name": "convert_vtx", "command": "$python tools/converters/vtxdis.py $in $out", "description": "CONVERT $symbol", }, ] config.custom_build_steps = {} # Grab the specific GameID so we can format our strings properly version = VERSIONS[version_num] out_dir = config.build_dir / version # This generates the build steps needed for preprocessing def emit_build_rule(asset): steps = config.custom_build_steps.setdefault("pre-compile", []) match asset.get("custom_type"): case None: return case "pal16": steps.append( { "rule": "convert_pal16", "inputs": out_dir / "bin" / asset["binary"], "outputs": out_dir / "include" / asset["header"], "variables": { "symbol": asset["symbol"], }, "implicit": Path("tools/converters/pal16dis.py"), } ) case "pal16c": # Run the script in scan mode first to generate a .dd file input = out_dir / "bin" / asset["binary"] out_base = out_dir / "include" / asset["header"] dyndep = out_dir / "include" / f"{asset['header']}.dd" # We need a stamp file to use as a marker for ninja stamp = out_dir / "include" / f"{asset['header']}.stamp" steps.append( { "rule": "scan_pal16_chunked", "inputs": input, "outputs": dyndep, "variables": { "base": out_base, "stamp": stamp, "symbol": asset["symbol"], }, "implicit": Path("tools/converters/pal16dis_chunked.py"), } ) # Now the script will generate all the dynamic outputs and stamp file steps.append( { "rule": "convert_pal16_chunked", "inputs": input, "outputs": stamp, "variables": { "base": out_base, "symbol": asset["symbol"], }, "implicit": Path("tools/converters/pal16dis_chunked.py"), "dyndep": dyndep, "order_only": dyndep, } ) case "vtx": steps.append( { "rule": "convert_vtx", "inputs": out_dir / "bin" / asset["binary"], "outputs": out_dir / "include" / asset["header"], "variables": { "symbol": asset["symbol"], }, "implicit": Path("tools/converters/vtxdis.py"), } ) case _: print("Unknown asset type: " + asset["custom_type"]) # Parse the config and create the build rules for all our assets config_path = out_dir / "config.json" if config_path.exists(): config_data = json.load(open(config_path)) for asset in config_data.get("extract", []): emit_build_rule(asset) for module in config_data.get("modules", []): for asset in module.get("extract", []): emit_build_rule(asset) GITHUB_TOKEN = os.getenv("GITHUB_TOKEN") USE_API = GITHUB_TOKEN is not None # Use authenticated API if token is set N64_SDK_files = [ "include/PR/abi.h", "include/PR/gbi.h", "include/PR/gs2dex.h", "include/PR/mbi.h", "include/PR/ultratypes.h", "include/compiler/gcc/stdlib.h", ] OWNER = "decompals" REPO = "ultralib" BRANCH = "main" def fetch_file_api(path): url = f"https://api.github.com/repos/{OWNER}/{REPO}/contents/{path}?ref={BRANCH}" req = urllib.request.Request(url) req.add_header("User-Agent", "PythonScript") req.add_header("Accept", "application/vnd.github.v3.raw") req.add_header("Authorization", f"token {GITHUB_TOKEN}") return urllib.request.urlopen(req) def fetch_file_raw(path): url = f"https://raw.githubusercontent.com/{OWNER}/{REPO}/{BRANCH}/{path}" req = urllib.request.Request(url) req.add_header("User-Agent", "Mozilla/5.0") return urllib.request.urlopen(req) for file_path in N64_SDK_files: local_path = os.path.join("include", file_path.split("include/")[-1]) os.makedirs(os.path.dirname(local_path), exist_ok=True) if not os.path.exists(local_path): print(f"Fetching {file_path}...") try: if USE_API: response = fetch_file_api(file_path) else: response = fetch_file_raw(file_path) content = response.read() # Special case: patch gbi.h if os.path.normpath(local_path) == os.path.normpath("include/PR/gbi.h"): content = re.sub( rb"unsigned char\s+param:8;", b"unsigned int\tparam:8;", content ) with open(local_path, "wb") as f: f.write(content) except urllib.error.HTTPError as e: print(f"Failed to fetch {file_path}: HTTP {e.code} {e.reason}") except Exception as e: print(f"Error fetching {file_path}: {e}") # Optional extra categories for progress tracking # Adjust as desired for your project config.progress_categories = [ ProgressCategory("game", "Game Code"), ProgressCategory("sdk", "SDK Code"), ProgressCategory("jsystem", "JSystem Code"), # catch-all for the rest of static ProgressCategory("library", "Library Code"), ] config.progress_each_module = args.verbose if args.mode == "configure": # Write build.ninja and objdiff.json generate_build(config) elif args.mode == "progress": # Print progress and write progress.json calculate_progress(config) else: sys.exit("Unknown mode: " + args.mode)