tp/configure.py
TakaRikka d0e243a22a
Some checks are pending
Build / build (GZ2E01) (push) Waiting to run
Generate Doxygen Static Site / build (push) Waiting to run
d_a_b_zant matched + linked (#2253)
* work on b_zant

* zant work

* more zant work

* all b_zant functions done

* some doc work

* some more doc work

* d_a_b_zant linked

* fix d_a_b_zant_magic issue
2024-11-22 14:32:01 -07:00

2197 lines
95 KiB
Python

#!/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 sys
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 = [
"GZ2E01", # GCN USA
]
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(
"--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(
"--warn",
dest="warn",
type=str,
choices=["all", "off", "error"],
help="how to handle warnings",
)
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.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.2.0"
config.objdiff_tag = "v2.3.4"
config.sjiswrap_tag = "v1.2.0"
config.wibo_tag = "0.6.11"
# 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",
f"-I build/{config.version}/include",
f"--defsym version={version_num}",
]
config.ldflags = [
"-fp hardware",
"-nodefaults",
]
if args.debug:
config.ldflags.append("-g") # Or -gdwarf-2 for Wii linkers
if args.map:
config.ldflags.append("-mapunused")
# config.ldflags.append("-listclosure") # For Wii linkers
# 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 = [
"-nodefaults",
"-proc gekko",
"-align powerpc",
"-enum int",
"-fp hardware",
"-Cpp_exceptions off",
# "-W all",
"-O4,p",
"-inline auto",
'-pragma "cats off"',
'-pragma "warn_notinlined off"',
"-maxerrors 1",
"-nosyspath",
"-RTTI off",
"-fp_contract on",
"-str reuse",
"-multibyte", # For Wii compilers, replace with `-enc SJIS`
"-i include",
f"-i build/{config.version}/include",
"-i src",
"-i src/PowerPC_EABI_Support/MSL/MSL_C/MSL_Common/Include",
"-i src/PowerPC_EABI_Support/MSL/MSL_C/MSL_Common_Embedded/Math/Include",
"-i src/PowerPC_EABI_Support/MSL/MSL_C/PPC_EABI/Include",
"-i src/PowerPC_EABI_Support/MSL/MSL_C++/MSL_Common/Include",
"-i src/PowerPC_EABI_Support/Runtime/Inc",
"-i src/PowerPC_EABI_Support/MetroTRK",
"-Iinclude/dolphin",
f"-DVERSION={version_num}",
]
# Debug flags
if args.debug:
# Or -sym dwarf-2 for Wii compilers
cflags_base.extend(["-sym on", "-DDEBUG=1"])
else:
cflags_base.append("-DNDEBUG=1")
if args.warn == "all":
cflags_base.append("-W all")
elif args.warn == "off":
cflags_base.append("-W off")
elif args.warn == "error":
cflags_base.append("-W error")
cflags_noopt = cflags_base[:]
cflags_noopt.remove("-O4,p")
# Metrowerks library flags
cflags_runtime = [
*cflags_base,
"-use_lmw_stmw on",
"-str reuse,pool,readonly",
"-gccinc",
"-common off",
"-inline deferred,auto",
"-char signed",
]
cflags_trk = [
*cflags_base,
"-use_lmw_stmw on",
"-rostr",
"-str reuse",
"-gccinc",
"-common off",
"-inline deferred,auto",
"-char signed",
"-sdata 0",
"-sdata2 0",
]
# Dolphin library flags
cflags_dolphin = [
*cflags_base,
"-use_lmw_stmw on",
"-str reuse,pool,readonly",
"-inline auto",
]
# Framework flags
cflags_framework = [
*cflags_base,
"-use_lmw_stmw off",
"-str reuse,pool,readonly",
"-inline noauto",
"-O3,s",
"-schedule off",
"-sym on",
"-fp_contract off",
]
# REL flags
cflags_rel = [
*cflags_framework,
"-sdata 0",
"-sdata2 0",
]
config.linker_version = "GC/2.7"
# 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_base,
"progress_category": "sdk",
"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/2.7",
"cflags": [*cflags_rel, '-pragma "nosyminline on"'],
"progress_category": "game",
"objects": objects,
}
# Helper function for actor RELs
def ActorRel(status: bool, rel_name: str, extra_cflags: List[str]=[]) -> Dict[str, Any]:
return Rel(rel_name, [Object(status, f"d/actor/{rel_name}.cpp", extra_cflags=extra_cflags)])
# Helper function for JSystem libraries
def JSystemLib(lib_name: str, objects: List[Object], progress_category: str="third_party") -> Dict[str, Any]:
return {
"lib": lib_name,
"mw_version": "GC/2.7",
"cflags": [*cflags_framework, '-pragma "nosyminline on"'],
"progress_category": progress_category,
"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 = True
config.warn_missing_source = False
config.libs = [
{
"lib": "machine",
"mw_version": "GC/2.7",
"cflags": cflags_framework,
"progress_category": "core",
"host": True,
"objects": [
Object(Matching, "m_Do/m_Do_main.cpp"),
Object(NonMatching, "m_Do/m_Do_printf.cpp"),
Object(Matching, "m_Do/m_Do_audio.cpp"),
Object(Matching, "m_Do/m_Do_controller_pad.cpp"),
Object(Equivalent, "m_Do/m_Do_graphic.cpp"),
Object(NonMatching, "m_Do/m_Do_machine.cpp"),
Object(Matching, "m_Do/m_Do_mtx.cpp"),
Object(NonMatching, "m_Do/m_Do_ext.cpp"),
Object(Matching, "m_Do/m_Do_lib.cpp"),
Object(Matching, "m_Do/m_Do_Reset.cpp"),
Object(Matching, "m_Do/m_Do_dvd_thread.cpp"),
Object(Matching, "m_Do/m_Do_DVDError.cpp"),
Object(Matching, "m_Do/m_Do_MemCard.cpp"),
Object(Matching, "m_Do/m_Do_MemCardRWmng.cpp"),
Object(Matching, "m_Do/m_Do_machine_exception.cpp"),
],
},
{
"lib": "c",
"mw_version": "GC/2.7",
"cflags": cflags_framework,
"progress_category": "game",
"host": True,
"objects": [
Object(Matching, "c/c_damagereaction.cpp"),
Object(Matching, "c/c_dylink.cpp"),
],
},
{
"lib": "framework",
"mw_version": "GC/2.7",
"cflags": cflags_framework,
"progress_category": "core",
"host": True,
"objects": [
# f_ap
Object(Matching, "f_ap/f_ap_game.cpp"),
# f_op
Object(Matching, "f_op/f_op_actor.cpp", extra_cflags=['-pragma "nosyminline on"']),
Object(Matching, "f_op/f_op_actor_iter.cpp"),
Object(Matching, "f_op/f_op_actor_tag.cpp"),
Object(NonMatching, "f_op/f_op_actor_mng.cpp", extra_cflags=['-pragma "nosyminline on"']),
Object(Matching, "f_op/f_op_camera.cpp"),
Object(Matching, "f_op/f_op_camera_mng.cpp"),
Object(Matching, "f_op/f_op_overlap.cpp"),
Object(Matching, "f_op/f_op_overlap_mng.cpp"),
Object(Matching, "f_op/f_op_overlap_req.cpp"),
Object(Matching, "f_op/f_op_scene.cpp"),
Object(Matching, "f_op/f_op_scene_iter.cpp"),
Object(Matching, "f_op/f_op_scene_mng.cpp"),
Object(Matching, "f_op/f_op_scene_req.cpp"),
Object(Matching, "f_op/f_op_scene_tag.cpp"),
Object(Matching, "f_op/f_op_view.cpp"),
Object(Matching, "f_op/f_op_kankyo.cpp"),
Object(Matching, "f_op/f_op_msg.cpp"),
Object(Matching, "f_op/f_op_kankyo_mng.cpp"),
Object(NonMatching, "f_op/f_op_msg_mng.cpp"),
Object(Matching, "f_op/f_op_draw_iter.cpp"),
Object(Matching, "f_op/f_op_draw_tag.cpp"),
Object(Matching, "f_op/f_op_scene_pause.cpp"),
# f_pc
Object(Matching, "f_pc/f_pc_base.cpp"),
Object(Matching, "f_pc/f_pc_create_iter.cpp"),
Object(Matching, "f_pc/f_pc_create_req.cpp"),
Object(Matching, "f_pc/f_pc_create_tag.cpp"),
Object(Matching, "f_pc/f_pc_creator.cpp"),
Object(Matching, "f_pc/f_pc_delete_tag.cpp"),
Object(Matching, "f_pc/f_pc_deletor.cpp"),
Object(Matching, "f_pc/f_pc_draw_priority.cpp"),
Object(Matching, "f_pc/f_pc_executor.cpp"),
Object(Matching, "f_pc/f_pc_layer.cpp"),
Object(Matching, "f_pc/f_pc_leaf.cpp"),
Object(Matching, "f_pc/f_pc_layer_iter.cpp"),
Object(Matching, "f_pc/f_pc_layer_tag.cpp"),
Object(Matching, "f_pc/f_pc_line.cpp"),
Object(Matching, "f_pc/f_pc_load.cpp"),
Object(Matching, "f_pc/f_pc_manager.cpp"),
Object(Matching, "f_pc/f_pc_method.cpp"),
Object(Matching, "f_pc/f_pc_node.cpp"),
Object(Matching, "f_pc/f_pc_node_req.cpp"),
Object(Matching, "f_pc/f_pc_priority.cpp"),
Object(Matching, "f_pc/f_pc_profile.cpp"),
Object(Matching, "f_pc/f_pc_searcher.cpp"),
Object(Matching, "f_pc/f_pc_line_tag.cpp"),
Object(Matching, "f_pc/f_pc_line_iter.cpp"),
Object(Matching, "f_pc/f_pc_method_iter.cpp"),
Object(Matching, "f_pc/f_pc_method_tag.cpp"),
Object(Matching, "f_pc/f_pc_pause.cpp"),
Object(Matching, "f_pc/f_pc_draw.cpp"),
Object(Matching, "f_pc/f_pc_fstcreate_req.cpp"),
Object(Matching, "f_pc/f_pc_stdcreate_req.cpp"),
],
},
{
"lib": "dolzel2",
"mw_version": "GC/2.7",
"cflags": cflags_framework,
"progress_category": "game",
"host": True,
"objects": [
Object(NonMatching, "d/d_stage.cpp"),
Object(Matching, "d/d_map.cpp"),
Object(Matching, "d/d_com_inf_game.cpp", extra_cflags=['-pragma "nosyminline on"']),
Object(Matching, "d/d_com_static.cpp"),
Object(Matching, "d/d_com_inf_actor.cpp"),
Object(Matching, "d/d_bomb.cpp"),
Object(Matching, "d/d_lib.cpp"),
Object(NonMatching, "d/d_save.cpp"),
Object(Matching, "d/d_save_init.cpp"),
Object(Matching, "d/d_jnt_col.cpp", extra_cflags=['-pragma "nosyminline on"']),
Object(NonMatching, "d/d_a_obj.cpp"),
Object(Matching, "d/d_a_itembase_static.cpp"),
Object(Matching, "d/d_a_item_static.cpp"),
Object(Matching, "d/d_a_shop_item_static.cpp"),
Object(Matching, "d/d_a_horse_static.cpp"),
Object(NonMatching, "d/d_demo.cpp"),
Object(Matching, "d/d_door_param2.cpp"),
Object(NonMatching, "d/d_resorce.cpp"),
Object(Matching, "d/d_map_path.cpp"),
Object(NonMatching, "d/d_map_path_fmap.cpp"),
Object(NonMatching, "d/d_map_path_dmap.cpp"),
Object(Matching, "d/d_event.cpp"),
Object(Matching, "d/d_event_data.cpp"),
Object(Matching, "d/d_event_manager.cpp", extra_cflags=['-pragma "nosyminline on"']),
Object(Matching, "d/d_event_lib.cpp"),
Object(Matching, "d/d_simple_model.cpp"),
Object(NonMatching, "d/d_particle.cpp"),
Object(Matching, "d/d_particle_name.cpp"),
Object(Matching, "d/d_particle_copoly.cpp"),
Object(Matching, "d/d_path.cpp"),
Object(NonMatching, "d/d_drawlist.cpp"),
Object(Matching, "d/d_kankyo_data.cpp"),
Object(Matching, "d/d_kankyo_wether.cpp"),
Object(NonMatching, "d/d_kankyo_rain.cpp"),
Object(NonMatching, "d/d_vibration.cpp"),
Object(Matching, "d/d_vib_pattern.cpp"),
Object(NonMatching, "d/d_attention.cpp"),
Object(Matching, "d/d_bg_pc.cpp"),
Object(Matching, "d/d_att_dist.cpp"),
Object(Matching, "d/d_bg_plc.cpp"),
Object(Matching, "d/d_bg_s.cpp"),
Object(Matching, "d/d_bg_s_acch.cpp"),
Object(Matching, "d/d_bg_s_chk.cpp"),
Object(Matching, "d/d_bg_s_gnd_chk.cpp"),
Object(Matching, "d/d_bg_s_grp_pass_chk.cpp"),
Object(Matching, "d/d_bg_s_lin_chk.cpp"),
Object(Matching, "d/d_bg_s_movebg_actor.cpp"),
Object(Matching, "d/d_bg_s_sph_chk.cpp"),
Object(Matching, "d/d_bg_s_spl_grp_chk.cpp"),
Object(Matching, "d/d_bg_s_poly_pass_chk.cpp"),
Object(Matching, "d/d_bg_s_roof_chk.cpp"),
Object(Matching, "d/d_bg_s_wtr_chk.cpp"),
Object(Matching, "d/d_bg_w.cpp", extra_cflags=['-pragma "nosyminline on"']),
Object(Matching, "d/d_bg_w_base.cpp", extra_cflags=['-pragma "nosyminline on"']),
Object(NonMatching, "d/d_bg_w_kcol.cpp"),
Object(Matching, "d/d_bg_w_sv.cpp"),
Object(Equivalent, "d/d_cc_d.cpp"),
Object(Matching, "d/d_cc_mass_s.cpp", extra_cflags=['-pragma "nosyminline on"']),
Object(NonMatching, "d/d_cc_s.cpp"),
Object(Matching, "d/d_cc_uty.cpp"),
Object(NonMatching, "d/d_cam_param.cpp", extra_cflags=['-pragma "nosyminline on"']),
Object(NonMatching, "d/d_ev_camera.cpp"),
Object(Matching, "d/d_spline_path.cpp"),
Object(Matching, "d/d_item_data.cpp"),
Object(Matching, "d/d_item.cpp"),
Object(Matching, "d/d_tresure.cpp"),
Object(Matching, "d/d_model.cpp"),
Object(Matching, "d/d_eye_hl.cpp"),
Object(NonMatching, "d/d_error_msg.cpp"),
Object(NonMatching, "d/actor/d_a_alink.cpp"),
Object(Matching, "d/actor/d_a_itembase.cpp"),
Object(Matching, "d/actor/d_a_no_chg_room.cpp"),
Object(NonMatching, "d/actor/d_a_npc.cpp"),
Object(NonMatching, "d/actor/d_a_npc_cd.cpp"),
Object(NonMatching, "d/actor/d_a_npc_cd2.cpp"),
Object(NonMatching, "d/actor/d_a_obj_item.cpp"),
Object(Matching, "d/d_insect.cpp"),
Object(Matching, "d/actor/d_a_obj_ss_base.cpp"),
Object(Matching, "d/actor/d_a_player.cpp"),
Object(NonMatching, "d/d_camera.cpp"),
Object(Matching, "d/d_envse.cpp"),
Object(NonMatching, "d/d_file_select.cpp"),
Object(NonMatching, "d/d_file_sel_warning.cpp"),
Object(Matching, "d/d_file_sel_info.cpp"),
Object(Matching, "d/d_bright_check.cpp"),
Object(NonMatching, "d/d_scope.cpp", extra_cflags=['-pragma "nosyminline on"']),
Object(Equivalent, "d/d_select_cursor.cpp"),
Object(Matching, "d/d_select_icon.cpp"),
Object(Matching, "d/d_shop_camera.cpp"),
Object(Matching, "d/d_shop_item_ctrl.cpp"),
Object(Matching, "d/d_shop_system.cpp"),
Object(Matching, "d/d_gameover.cpp"),
Object(NonMatching, "d/d_kankyo.cpp"),
Object(Matching, "d/d_kyeff.cpp"),
Object(Matching, "d/d_kyeff2.cpp"),
Object(Matching, "d/d_ky_thunder.cpp"),
Object(Matching, "d/d_kantera_icon_meter.cpp"),
Object(Matching, "d/d_menu_calibration.cpp"),
Object(NonMatching, "d/d_menu_collect.cpp"),
Object(NonMatching, "d/d_menu_dmap.cpp"),
Object(NonMatching, "d/d_menu_dmap_map.cpp"),
Object(Matching, "d/d_menu_map_common.cpp"),
Object(Matching, "d/d_menu_fishing.cpp"),
Object(Matching, "d/d_menu_fmap.cpp", extra_cflags=['-pragma "nosyminline on"']),
Object(NonMatching, "d/d_menu_fmap_map.cpp"),
Object(Matching, "d/d_menu_fmap2D.cpp"),
Object(Matching, "d/d_menu_insect.cpp"),
Object(Matching, "d/d_menu_item_explain.cpp"),
Object(NonMatching, "d/d_menu_letter.cpp", extra_cflags=['-pragma "nosyminline on"']),
Object(Matching, "d/d_menu_option.cpp"),
Object(Matching, "d/d_menu_ring.cpp"),
Object(Equivalent, "d/d_menu_save.cpp"),
Object(Matching, "d/d_menu_skill.cpp"),
Object(Matching, "d/d_menu_window_HIO.cpp"),
Object(NonMatching, "d/d_menu_window.cpp"),
Object(Matching, "d/d_meter_HIO.cpp"),
Object(Matching, "d/d_meter_button.cpp"),
Object(Matching, "d/d_meter_haihai.cpp"),
Object(Matching, "d/d_meter_hakusha.cpp"),
Object(Matching, "d/d_meter_map.cpp"),
Object(Matching, "d/d_meter_string.cpp"),
Object(Matching, "d/d_meter2_draw.cpp"),
Object(NonMatching, "d/d_meter2_info.cpp"),
Object(Matching, "d/d_meter2.cpp"),
Object(Matching, "d/d_msg_out_font.cpp"),
Object(NonMatching, "d/d_msg_class.cpp"),
Object(NonMatching, "d/d_msg_object.cpp"),
Object(NonMatching, "d/d_msg_unit.cpp"),
Object(Matching, "d/d_msg_scrn_3select.cpp", extra_cflags=['-pragma "nosyminline on"']),
Object(Matching, "d/d_msg_scrn_arrow.cpp"),
Object(Matching, "d/d_msg_scrn_base.cpp"),
Object(Matching, "d/d_msg_scrn_boss.cpp"),
Object(Matching, "d/d_msg_scrn_explain.cpp"),
Object(NonMatching, "d/d_msg_scrn_item.cpp"),
Object(Matching, "d/d_msg_scrn_howl.cpp"),
Object(Matching, "d/d_msg_scrn_jimaku.cpp"),
Object(Matching, "d/d_msg_scrn_kanban.cpp"),
Object(Matching, "d/d_msg_scrn_light.cpp"),
Object(Matching, "d/d_msg_scrn_place.cpp"),
Object(Matching, "d/d_msg_scrn_staff.cpp"),
Object(NonMatching, "d/d_msg_scrn_talk.cpp"),
Object(Matching, "d/d_msg_scrn_tree.cpp"),
Object(Matching, "d/d_msg_string_base.cpp"),
Object(Matching, "d/d_msg_string.cpp"),
Object(NonMatching, "d/d_msg_flow.cpp"),
Object(NonMatching, "d/d_name.cpp"),
Object(NonMatching, "d/d_npc_lib.cpp"),
Object(Matching, "d/d_ovlp_fade.cpp"),
Object(NonMatching, "d/d_ovlp_fade2.cpp"),
Object(NonMatching, "d/d_ovlp_fade3.cpp"),
Object(Matching, "d/d_pane_class.cpp"),
Object(Matching, "d/d_pane_class_alpha.cpp"),
Object(Matching, "d/d_pane_class_ex.cpp", extra_cflags=['-pragma "nosyminline on"']),
Object(Matching, "d/d_s_logo.cpp"),
Object(Matching, "d/d_s_menu.cpp"),
Object(Matching, "d/d_s_name.cpp"),
Object(NonMatching, "d/d_s_play.cpp"),
Object(Matching, "d/d_s_room.cpp"),
Object(Matching, "d/d_s_title.cpp"),
Object(Matching, "d/d_save_HIO.cpp"),
Object(Matching, "d/d_timer.cpp"),
Object(Matching, "d/d_k_wmark.cpp"),
Object(Matching, "d/d_k_wpillar.cpp"),
],
},
{
"lib": "DynamicLink",
"mw_version": "GC/2.7",
"cflags": cflags_framework,
"progress_category": "core",
"host": True,
"objects": [
Object(Matching, "DynamicLink.cpp"),
],
},
{
"lib": "SSystem",
"mw_version": "GC/2.7",
"cflags": cflags_framework,
"progress_category": "third_party",
"host": True,
"objects": [
Object(Matching, "SSystem/SComponent/c_malloc.cpp"),
Object(Matching, "SSystem/SComponent/c_API.cpp"),
Object(Matching, "SSystem/SComponent/c_API_controller_pad.cpp"),
Object(Matching, "SSystem/SComponent/c_API_graphic.cpp"),
Object(Matching, "SSystem/SComponent/c_cc_d.cpp"),
Object(Matching, "SSystem/SComponent/c_cc_s.cpp"),
Object(Matching, "SSystem/SComponent/c_counter.cpp"),
Object(Matching, "SSystem/SComponent/c_list.cpp"),
Object(Matching, "SSystem/SComponent/c_list_iter.cpp"),
Object(Matching, "SSystem/SComponent/c_node.cpp"),
Object(Matching, "SSystem/SComponent/c_node_iter.cpp"),
Object(Matching, "SSystem/SComponent/c_tree.cpp"),
Object(Matching, "SSystem/SComponent/c_tree_iter.cpp"),
Object(Matching, "SSystem/SComponent/c_phase.cpp"),
Object(Matching, "SSystem/SComponent/c_request.cpp"),
Object(Matching, "SSystem/SComponent/c_tag.cpp"),
Object(Matching, "SSystem/SComponent/c_tag_iter.cpp"),
Object(Matching, "SSystem/SComponent/c_xyz.cpp"),
Object(Matching, "SSystem/SComponent/c_sxyz.cpp"),
Object(Matching, "SSystem/SComponent/c_math.cpp"),
Object(Matching, "SSystem/SComponent/c_bg_s_chk.cpp"),
Object(Matching, "SSystem/SComponent/c_bg_s_gnd_chk.cpp"),
Object(Matching, "SSystem/SComponent/c_bg_s_lin_chk.cpp"),
Object(Matching, "SSystem/SComponent/c_bg_s_shdw_draw.cpp"),
Object(Matching, "SSystem/SComponent/c_bg_s_poly_info.cpp"),
Object(Matching, "SSystem/SComponent/c_bg_w.cpp"),
Object(Matching, "SSystem/SComponent/c_m2d.cpp"),
Object(NonMatching, "SSystem/SComponent/c_m3d.cpp"),
Object(Matching, "SSystem/SComponent/c_m3d_g_aab.cpp"),
Object(Matching, "SSystem/SComponent/c_m3d_g_cir.cpp", extra_cflags=['-pragma "nosyminline on"']),
Object(Matching, "SSystem/SComponent/c_m3d_g_cps.cpp"),
Object(Matching, "SSystem/SComponent/c_m3d_g_cyl.cpp"),
Object(Matching, "SSystem/SComponent/c_m3d_g_lin.cpp"),
Object(Matching, "SSystem/SComponent/c_m3d_g_pla.cpp"),
Object(Matching, "SSystem/SComponent/c_m3d_g_sph.cpp"),
Object(Matching, "SSystem/SComponent/c_m3d_g_tri.cpp"),
Object(Matching, "SSystem/SComponent/c_lib.cpp"),
Object(Matching, "SSystem/SComponent/c_angle.cpp"),
Object(Matching, "SSystem/SStandard/s_basic.cpp"),
],
},
JSystemLib(
"JFramework",
[
Object(NonMatching, "JSystem/JFramework/JFWSystem.cpp"),
Object(Matching, "JSystem/JFramework/JFWDisplay.cpp"),
],
),
JSystemLib(
"J3DU",
[
Object(Matching, "JSystem/J3DU/J3DUClipper.cpp"),
Object(Matching, "JSystem/J3DU/J3DUDL.cpp"),
],
),
JSystemLib(
"JParticle",
[
Object(Matching, "JSystem/JParticle/JPAResourceManager.cpp"),
Object(Matching, "JSystem/JParticle/JPAResource.cpp", extra_cflags=['-pragma "nosyminline off"']),
Object(Matching, "JSystem/JParticle/JPABaseShape.cpp"),
Object(Matching, "JSystem/JParticle/JPAExtraShape.cpp"),
Object(Matching, "JSystem/JParticle/JPAChildShape.cpp"),
Object(Matching, "JSystem/JParticle/JPAExTexShape.cpp"),
Object(NonMatching, "JSystem/JParticle/JPADynamicsBlock.cpp"),
Object(NonMatching, "JSystem/JParticle/JPAFieldBlock.cpp"),
Object(Matching, "JSystem/JParticle/JPAKeyBlock.cpp"),
Object(Matching, "JSystem/JParticle/JPATexture.cpp"),
Object(Matching, "JSystem/JParticle/JPAResourceLoader.cpp"),
Object(Equivalent, "JSystem/JParticle/JPAEmitterManager.cpp"),
Object(Matching, "JSystem/JParticle/JPAEmitter.cpp"),
Object(NonMatching, "JSystem/JParticle/JPAParticle.cpp"),
Object(Matching, "JSystem/JParticle/JPAMath.cpp"),
],
),
JSystemLib(
"JStage",
[
Object(Matching, "JSystem/JStage/JSGActor.cpp"),
Object(Matching, "JSystem/JStage/JSGAmbientLight.cpp"),
Object(Matching, "JSystem/JStage/JSGCamera.cpp"),
Object(Matching, "JSystem/JStage/JSGFog.cpp"),
Object(Matching, "JSystem/JStage/JSGLight.cpp"),
Object(Matching, "JSystem/JStage/JSGObject.cpp"),
Object(Matching, "JSystem/JStage/JSGSystem.cpp"),
],
),
JSystemLib(
"JStudio",
[
Object(NonMatching, "JSystem/JStudio/JStudio/ctb.cpp"),
Object(Matching, "JSystem/JStudio/JStudio/ctb-data.cpp"),
Object(NonMatching, "JSystem/JStudio/JStudio/functionvalue.cpp"),
Object(NonMatching, "JSystem/JStudio/JStudio/functionvalue-inline.cpp"),
Object(NonMatching, "JSystem/JStudio/JStudio/fvb.cpp"),
Object(NonMatching, "JSystem/JStudio/JStudio/fvb-inline.cpp"),
Object(Matching, "JSystem/JStudio/JStudio/fvb-data.cpp"),
Object(Matching, "JSystem/JStudio/JStudio/fvb-data-parse.cpp"),
Object(Matching, "JSystem/JStudio/JStudio/jstudio-control.cpp"),
Object(Matching, "JSystem/JStudio/JStudio/jstudio-data.cpp"),
Object(NonMatching, "JSystem/JStudio/JStudio/jstudio-math.cpp"),
Object(NonMatching, "JSystem/JStudio/JStudio/jstudio-object.cpp"),
Object(Matching, "JSystem/JStudio/JStudio/object-id.cpp"),
Object(NonMatching, "JSystem/JStudio/JStudio/stb.cpp"),
Object(Matching, "JSystem/JStudio/JStudio/stb-data-parse.cpp"),
Object(Matching, "JSystem/JStudio/JStudio/stb-data.cpp"),
],
),
JSystemLib(
"JStudio_JStage",
[
Object(NonMatching, "JSystem/JStudio/JStudio_JStage/control.cpp"),
Object(Matching, "JSystem/JStudio/JStudio_JStage/object.cpp"),
Object(NonMatching, "JSystem/JStudio/JStudio_JStage/object-actor.cpp"),
Object(Matching, "JSystem/JStudio/JStudio_JStage/object-ambientlight.cpp"),
Object(Matching, "JSystem/JStudio/JStudio_JStage/object-camera.cpp"),
Object(Matching, "JSystem/JStudio/JStudio_JStage/object-fog.cpp"),
Object(NonMatching, "JSystem/JStudio/JStudio_JStage/object-light.cpp"),
],
),
JSystemLib(
"JStudio_JAudio2",
[
Object(Matching, "JSystem/JStudio/JStudio_JAudio2/control.cpp"),
Object(Matching, "JSystem/JStudio/JStudio_JAudio2/object-sound.cpp"),
],
),
JSystemLib(
"JStudio_JParticle",
[
Object(Matching, "JSystem/JStudio/JStudio_JParticle/control.cpp"),
Object(Matching, "JSystem/JStudio/JStudio_JParticle/object-particle.cpp"),
],
),
JSystemLib(
"JAudio2",
[
Object(Matching, "JSystem/JAudio2/JASCalc.cpp"),
Object(NonMatching, "JSystem/JAudio2/JASTaskThread.cpp"),
Object(Matching, "JSystem/JAudio2/JASDvdThread.cpp"),
Object(Matching, "JSystem/JAudio2/JASCallback.cpp"),
Object(NonMatching, "JSystem/JAudio2/JASHeapCtrl.cpp"),
Object(Matching, "JSystem/JAudio2/JASResArcLoader.cpp"),
Object(Matching, "JSystem/JAudio2/JASProbe.cpp"),
Object(Matching, "JSystem/JAudio2/JASReport.cpp"),
Object(Matching, "JSystem/JAudio2/JASCmdStack.cpp"),
Object(NonMatching, "JSystem/JAudio2/JASTrack.cpp"),
Object(Matching, "JSystem/JAudio2/JASTrackPort.cpp"),
Object(Matching, "JSystem/JAudio2/JASRegisterParam.cpp"),
Object(Matching, "JSystem/JAudio2/JASSeqCtrl.cpp"),
Object(NonMatching, "JSystem/JAudio2/JASSeqParser.cpp"),
Object(Matching, "JSystem/JAudio2/JASSeqReader.cpp"),
Object(NonMatching, "JSystem/JAudio2/JASAramStream.cpp"),
Object(NonMatching, "JSystem/JAudio2/JASBank.cpp"),
Object(Matching, "JSystem/JAudio2/JASBasicBank.cpp", extra_cflags=['-pragma "nosyminline off"']),
Object(Matching, "JSystem/JAudio2/JASVoiceBank.cpp"),
Object(Matching, "JSystem/JAudio2/JASBasicInst.cpp", extra_cflags=['-pragma "nosyminline off"']),
Object(Matching, "JSystem/JAudio2/JASDrumSet.cpp"),
Object(NonMatching, "JSystem/JAudio2/JASBasicWaveBank.cpp", extra_cflags=['-pragma "nosyminline off"']),
Object(Matching, "JSystem/JAudio2/JASSimpleWaveBank.cpp"),
Object(Matching, "JSystem/JAudio2/JASWSParser.cpp"),
Object(NonMatching, "JSystem/JAudio2/JASBNKParser.cpp"),
Object(Matching, "JSystem/JAudio2/JASWaveArcLoader.cpp", extra_cflags=['-pragma "nosyminline off"']),
Object(NonMatching, "JSystem/JAudio2/JASChannel.cpp", extra_cflags=['-pragma "nosyminline off"']),
Object(Matching, "JSystem/JAudio2/JASLfo.cpp"),
Object(Matching, "JSystem/JAudio2/JASOscillator.cpp"),
Object(NonMatching, "JSystem/JAudio2/JASAiCtrl.cpp"),
Object(NonMatching, "JSystem/JAudio2/JASAudioThread.cpp"),
Object(Matching, "JSystem/JAudio2/JASAudioReseter.cpp"),
Object(Matching, "JSystem/JAudio2/JASDSPChannel.cpp"),
Object(Matching, "JSystem/JAudio2/JASDSPInterface.cpp"),
Object(Matching, "JSystem/JAudio2/JASDriverIF.cpp"),
Object(Matching, "JSystem/JAudio2/JASSoundParams.cpp"),
Object(Matching, "JSystem/JAudio2/dspproc.cpp", extra_cflags=["-O4", "-func_align 32"]),
Object(Matching, "JSystem/JAudio2/dsptask.cpp", extra_cflags=["-O4", "-func_align 32"]),
Object(Matching, "JSystem/JAudio2/osdsp.cpp", extra_cflags=["-O4", "-func_align 32", "-str nopool"]),
Object(Matching, "JSystem/JAudio2/osdsp_task.cpp", extra_cflags=["-O4", "-func_align 32"]),
Object(Matching, "JSystem/JAudio2/JAIAudible.cpp"),
Object(Matching, "JSystem/JAudio2/JAIAudience.cpp"),
Object(Matching, "JSystem/JAudio2/JAISe.cpp"),
Object(NonMatching, "JSystem/JAudio2/JAISeMgr.cpp"),
Object(NonMatching, "JSystem/JAudio2/JAISeq.cpp"),
Object(Matching, "JSystem/JAudio2/JAISeqDataMgr.cpp"),
Object(NonMatching, "JSystem/JAudio2/JAISeqMgr.cpp"),
Object(Matching, "JSystem/JAudio2/JAISound.cpp"),
Object(Matching, "JSystem/JAudio2/JAISoundChild.cpp"),
Object(Matching, "JSystem/JAudio2/JAISoundHandles.cpp"),
Object(Matching, "JSystem/JAudio2/JAISoundInfo.cpp"),
Object(Matching, "JSystem/JAudio2/JAISoundParams.cpp"),
Object(Matching, "JSystem/JAudio2/JAISoundStarter.cpp"),
Object(NonMatching, "JSystem/JAudio2/JAIStream.cpp", extra_cflags=["-sym off"]),
Object(Matching, "JSystem/JAudio2/JAIStreamDataMgr.cpp"),
Object(NonMatching, "JSystem/JAudio2/JAIStreamMgr.cpp"),
Object(Matching, "JSystem/JAudio2/JAUAudioArcInterpreter.cpp"),
Object(Matching, "JSystem/JAudio2/JAUAudioArcLoader.cpp"),
Object(Matching, "JSystem/JAudio2/JAUAudioMgr.cpp"),
Object(Matching, "JSystem/JAudio2/JAUBankTable.cpp"),
Object(Matching, "JSystem/JAudio2/JAUClusterSound.cpp"),
Object(NonMatching, "JSystem/JAudio2/JAUInitializer.cpp"),
Object(NonMatching, "JSystem/JAudio2/JAUSectionHeap.cpp"),
Object(Matching, "JSystem/JAudio2/JAUSeqCollection.cpp"),
Object(Matching, "JSystem/JAudio2/JAUSeqDataBlockMgr.cpp"),
Object(Matching, "JSystem/JAudio2/JAUSoundAnimator.cpp"),
Object(Matching, "JSystem/JAudio2/JAUSoundTable.cpp"),
Object(Matching, "JSystem/JAudio2/JAUStreamFileTable.cpp"),
],
),
JSystemLib(
"JMessage",
[
Object(NonMatching, "JSystem/JMessage/control.cpp"),
Object(Matching, "JSystem/JMessage/data.cpp"),
Object(NonMatching, "JSystem/JMessage/processor.cpp"),
Object(NonMatching, "JSystem/JMessage/resource.cpp"),
Object(NonMatching, "JSystem/JMessage/locale.cpp"),
],
),
{
"lib": "Z2AudioLib",
"mw_version": "GC/2.7",
"cflags": cflags_framework,
"progress_category": "core",
"host": True,
"objects": [
Object(Matching, "Z2AudioLib/Z2Calc.cpp"),
Object(NonMatching, "Z2AudioLib/Z2AudioArcLoader.cpp"),
Object(Matching, "Z2AudioLib/Z2Param.cpp"),
Object(NonMatching, "Z2AudioLib/Z2SoundMgr.cpp"),
Object(Matching, "Z2AudioLib/Z2SoundStarter.cpp"),
Object(NonMatching, "Z2AudioLib/Z2SoundHandles.cpp"),
Object(NonMatching, "Z2AudioLib/Z2SeMgr.cpp"),
Object(NonMatching, "Z2AudioLib/Z2SeqMgr.cpp"),
Object(Matching, "Z2AudioLib/Z2StatusMgr.cpp"),
Object(NonMatching, "Z2AudioLib/Z2SceneMgr.cpp"),
Object(Matching, "Z2AudioLib/Z2FxLineMgr.cpp"),
Object(Matching, "Z2AudioLib/Z2SoundInfo.cpp"),
Object(NonMatching, "Z2AudioLib/Z2Audience.cpp"),
Object(Matching, "Z2AudioLib/Z2SoundObject.cpp"),
Object(Matching, "Z2AudioLib/Z2SoundObjMgr.cpp"),
Object(Matching, "Z2AudioLib/Z2Creature.cpp"),
Object(NonMatching, "Z2AudioLib/Z2LinkMgr.cpp"),
Object(NonMatching, "Z2AudioLib/Z2EnvSeMgr.cpp"),
Object(Matching, "Z2AudioLib/Z2WolfHowlMgr.cpp"),
Object(NonMatching, "Z2AudioLib/Z2SpeechMgr2.cpp"),
Object(NonMatching, "Z2AudioLib/Z2AudioMgr.cpp"),
],
},
{
"lib": "gf",
"mw_version": "GC/2.7",
"cflags": cflags_noopt,
"progress_category": "sdk",
"objects": [
Object(NonMatching, "dolphin/gf/GFGeometry.cpp", extra_cflags=["-O3"]),
Object(Matching, "dolphin/gf/GFLight.cpp", extra_cflags=["-O3"]),
Object(Matching, "dolphin/gf/GFPixel.cpp", extra_cflags=["-O3"]),
Object(Matching, "dolphin/gf/GFTev.cpp", extra_cflags=["-O3"]),
],
},
JSystemLib(
"JKernel",
[
Object(Matching, "JSystem/JKernel/JKRHeap.cpp"),
Object(Matching, "JSystem/JKernel/JKRExpHeap.cpp"),
Object(Matching, "JSystem/JKernel/JKRSolidHeap.cpp"),
Object(Matching, "JSystem/JKernel/JKRAssertHeap.cpp"),
Object(Matching, "JSystem/JKernel/JKRDisposer.cpp"),
Object(Matching, "JSystem/JKernel/JKRThread.cpp"),
Object(Matching, "JSystem/JKernel/JKRAram.cpp"),
Object(Matching, "JSystem/JKernel/JKRAramHeap.cpp"),
Object(Matching, "JSystem/JKernel/JKRAramBlock.cpp"),
Object(Matching, "JSystem/JKernel/JKRAramPiece.cpp"),
Object(Matching, "JSystem/JKernel/JKRAramStream.cpp"),
Object(Matching, "JSystem/JKernel/JKRFileLoader.cpp"),
Object(Matching, "JSystem/JKernel/JKRFileFinder.cpp", extra_cflags=['-pragma "nosyminline off"']),
Object(Matching, "JSystem/JKernel/JKRFileCache.cpp"),
Object(Matching, "JSystem/JKernel/JKRArchivePub.cpp"),
Object(Matching, "JSystem/JKernel/JKRArchivePri.cpp"),
Object(Matching, "JSystem/JKernel/JKRMemArchive.cpp"),
Object(NonMatching, "JSystem/JKernel/JKRAramArchive.cpp"),
Object(Matching, "JSystem/JKernel/JKRDvdArchive.cpp"),
Object(Matching, "JSystem/JKernel/JKRCompArchive.cpp"),
Object(Matching, "JSystem/JKernel/JKRFile.cpp"),
Object(Matching, "JSystem/JKernel/JKRDvdFile.cpp"),
Object(Matching, "JSystem/JKernel/JKRDvdRipper.cpp"),
Object(NonMatching, "JSystem/JKernel/JKRDvdAramRipper.cpp"),
Object(Matching, "JSystem/JKernel/JKRDecomp.cpp"),
],
),
JSystemLib(
"JSupport",
[
Object(Matching, "JSystem/JSupport/JSUList.cpp"),
Object(Matching, "JSystem/JSupport/JSUInputStream.cpp"),
Object(Matching, "JSystem/JSupport/JSUMemoryStream.cpp"),
Object(Matching, "JSystem/JSupport/JSUFileStream.cpp"),
],
),
JSystemLib(
"JGadget",
[
Object(NonMatching, "JSystem/JGadget/binary.cpp"),
Object(NonMatching, "JSystem/JGadget/linklist.cpp"),
Object(NonMatching, "JSystem/JGadget/std-vector.cpp"),
],
),
JSystemLib(
"JUtility",
[
Object(Matching, "JSystem/JUtility/JUTCacheFont.cpp"),
Object(Matching, "JSystem/JUtility/JUTResource.cpp"),
Object(Matching, "JSystem/JUtility/JUTTexture.cpp"),
Object(Matching, "JSystem/JUtility/JUTPalette.cpp"),
Object(Matching, "JSystem/JUtility/JUTNameTab.cpp"),
Object(Matching, "JSystem/JUtility/JUTGraphFifo.cpp"),
Object(Matching, "JSystem/JUtility/JUTFont.cpp"),
Object(Matching, "JSystem/JUtility/JUTResFont.cpp", extra_cflags=['-pragma "nosyminline off"']),
Object(Matching, "JSystem/JUtility/JUTDbPrint.cpp"),
Object(NonMatching, "JSystem/JUtility/JUTGamePad.cpp"),
Object(NonMatching, "JSystem/JUtility/JUTException.cpp"),
Object(Matching, "JSystem/JUtility/JUTDirectPrint.cpp"),
Object(Matching, "JSystem/JUtility/JUTAssert.cpp"),
Object(Matching, "JSystem/JUtility/JUTVideo.cpp"),
Object(NonMatching, "JSystem/JUtility/JUTXfb.cpp"),
Object(Matching, "JSystem/JUtility/JUTFader.cpp"),
Object(Matching, "JSystem/JUtility/JUTProcBar.cpp", extra_cflags=['-pragma "nosyminline off"']),
Object(NonMatching, "JSystem/JUtility/JUTConsole.cpp"),
Object(Matching, "JSystem/JUtility/JUTDirectFile.cpp"),
Object(Matching, "JSystem/JUtility/JUTFontData_Ascfont_fix12.cpp"),
],
),
JSystemLib(
"J2DGraph",
[
Object(Matching, "JSystem/J2DGraph/J2DGrafContext.cpp"),
Object(Matching, "JSystem/J2DGraph/J2DOrthoGraph.cpp"),
Object(Matching, "JSystem/J2DGraph/J2DTevs.cpp"),
Object(NonMatching, "JSystem/J2DGraph/J2DMaterial.cpp"),
Object(NonMatching, "JSystem/J2DGraph/J2DMatBlock.cpp"),
Object(NonMatching, "JSystem/J2DGraph/J2DMaterialFactory.cpp"),
Object(NonMatching, "JSystem/J2DGraph/J2DPrint.cpp"),
Object(Matching, "JSystem/J2DGraph/J2DPane.cpp"),
Object(NonMatching, "JSystem/J2DGraph/J2DScreen.cpp"),
Object(Matching, "JSystem/J2DGraph/J2DWindow.cpp"),
Object(NonMatching, "JSystem/J2DGraph/J2DPicture.cpp"),
Object(Matching, "JSystem/J2DGraph/J2DTextBox.cpp"),
Object(NonMatching, "JSystem/J2DGraph/J2DWindowEx.cpp"),
Object(NonMatching, "JSystem/J2DGraph/J2DPictureEx.cpp"),
Object(Matching, "JSystem/J2DGraph/J2DTextBoxEx.cpp"),
Object(Matching, "JSystem/J2DGraph/J2DAnmLoader.cpp", extra_cflags=['-pragma "nosyminline off"']),
Object(Matching, "JSystem/J2DGraph/J2DAnimation.cpp"),
Object(Matching, "JSystem/J2DGraph/J2DManage.cpp"),
],
),
JSystemLib(
"J3DGraphBase",
[
Object(Matching, "JSystem/J3DGraphBase/J3DGD.cpp"),
Object(Matching, "JSystem/J3DGraphBase/J3DSys.cpp"),
Object(Matching, "JSystem/J3DGraphBase/J3DVertex.cpp"),
Object(NonMatching, "JSystem/J3DGraphBase/J3DTransform.cpp"),
Object(Matching, "JSystem/J3DGraphBase/J3DTexture.cpp"),
Object(Matching, "JSystem/J3DGraphBase/J3DPacket.cpp"),
Object(NonMatching, "JSystem/J3DGraphBase/J3DShapeMtx.cpp"),
Object(NonMatching, "JSystem/J3DGraphBase/J3DShapeDraw.cpp"),
Object(Matching, "JSystem/J3DGraphBase/J3DShape.cpp"),
Object(NonMatching, "JSystem/J3DGraphBase/J3DMaterial.cpp"),
Object(NonMatching, "JSystem/J3DGraphBase/J3DMatBlock.cpp"),
Object(Matching, "JSystem/J3DGraphBase/J3DTevs.cpp"),
Object(Matching, "JSystem/J3DGraphBase/J3DDrawBuffer.cpp"),
Object(Matching, "JSystem/J3DGraphBase/J3DStruct.cpp"),
],
),
JSystemLib(
"J3DGraphAnimator",
[
Object(Matching, "JSystem/J3DGraphAnimator/J3DShapeTable.cpp"),
Object(Matching, "JSystem/J3DGraphAnimator/J3DJointTree.cpp"),
Object(Matching, "JSystem/J3DGraphAnimator/J3DModelData.cpp", extra_cflags=['-pragma "nosyminline off"']),
Object(NonMatching, "JSystem/J3DGraphAnimator/J3DMtxBuffer.cpp"),
Object(Matching, "JSystem/J3DGraphAnimator/J3DModel.cpp"),
Object(Equivalent, "JSystem/J3DGraphAnimator/J3DAnimation.cpp"),
Object(Matching, "JSystem/J3DGraphAnimator/J3DMaterialAnm.cpp"),
Object(NonMatching, "JSystem/J3DGraphAnimator/J3DSkinDeform.cpp"),
Object(NonMatching, "JSystem/J3DGraphAnimator/J3DCluster.cpp"),
Object(Matching, "JSystem/J3DGraphAnimator/J3DJoint.cpp"),
Object(NonMatching, "JSystem/J3DGraphAnimator/J3DMaterialAttach.cpp"),
],
),
JSystemLib(
"J3DGraphLoader",
[
Object(NonMatching, "JSystem/J3DGraphLoader/J3DMaterialFactory.cpp"),
Object(NonMatching, "JSystem/J3DGraphLoader/J3DMaterialFactory_v21.cpp"),
Object(Matching, "JSystem/J3DGraphLoader/J3DClusterLoader.cpp", extra_cflags=['-pragma "nosyminline off"']),
Object(Matching, "JSystem/J3DGraphLoader/J3DModelLoader.cpp", extra_cflags=['-pragma "nosyminline off"']),
Object(NonMatching, "JSystem/J3DGraphLoader/J3DModelLoaderCalcSize.cpp"),
Object(Matching, "JSystem/J3DGraphLoader/J3DJointFactory.cpp"),
Object(Matching, "JSystem/J3DGraphLoader/J3DShapeFactory.cpp"),
Object(Matching, "JSystem/J3DGraphLoader/J3DAnmLoader.cpp", extra_cflags=['-pragma "nosyminline off"']),
],
),
JSystemLib(
"JMath",
[
Object(Matching, "JSystem/JMath/JMath.cpp"),
Object(Matching, "JSystem/JMath/random.cpp"),
Object(Matching, "JSystem/JMath/JMATrigonometric.cpp"),
],
),
DolphinLib(
"base",
[
Object(Matching, "dolphin/base/PPCArch.c"),
],
),
DolphinLib(
"os",
[
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/OSExec.c"),
Object(Matching, "dolphin/os/OSFont.c"),
Object(Matching, "dolphin/os/OSInterrupt.c"),
Object(Matching, "dolphin/os/OSLink.c"),
Object(Matching, "dolphin/os/OSMessage.c"),
Object(Matching, "dolphin/os/OSMemory.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"),
Object(Matching, "dolphin/os/__ppc_eabi_init.cpp"),
],
),
{
"lib": "exi",
"mw_version": "GC/1.2.5n",
"cflags": cflags_noopt,
"progress_category": "sdk",
"objects": [
Object(Matching, "dolphin/exi/EXIBios.c", extra_cflags=["-O3,p"]),
Object(Matching, "dolphin/exi/EXIUart.c", extra_cflags=["-O4,p"]),
],
},
DolphinLib(
"si",
[
Object(Matching, "dolphin/si/SIBios.c"),
Object(Matching, "dolphin/si/SISamplingRate.c"),
],
),
DolphinLib(
"db",
[
Object(Matching, "dolphin/db/db.c"),
],
),
DolphinLib(
"mtx",
[
Object(Matching, "dolphin/mtx/mtx.c", extra_cflags=["-fp_contract off"]),
Object(Matching, "dolphin/mtx/mtxvec.c"),
Object(Matching, "dolphin/mtx/mtx44.c"),
Object(Matching, "dolphin/mtx/vec.c", extra_cflags=["-fp_contract off"]),
Object(Matching, "dolphin/mtx/quat.c", extra_cflags=["-fp_contract off"]),
],
),
DolphinLib(
"dvd",
[
Object(Matching, "dolphin/dvd/dvdlow.c"),
Object(Matching, "dolphin/dvd/dvdfs.c"),
Object(Matching, "dolphin/dvd/dvd.c"),
Object(Matching, "dolphin/dvd/dvdqueue.c"),
Object(Matching, "dolphin/dvd/dvderror.c"),
Object(Matching, "dolphin/dvd/dvdidutils.c"),
Object(Matching, "dolphin/dvd/dvdFatal.c"),
Object(Matching, "dolphin/dvd/fstload.c"),
],
),
DolphinLib(
"vi",
[
Object(Matching, "dolphin/vi/vi.c"),
],
),
DolphinLib(
"pad",
[
Object(Matching, "dolphin/pad/Padclamp.c", extra_cflags=["-fp_contract off"]),
Object(Matching, "dolphin/pad/Pad.c", extra_cflags=["-inline noauto"]),
],
),
DolphinLib(
"ai",
[
Object(Matching, "dolphin/ai/ai.c"),
],
),
DolphinLib(
"ar",
[
Object(Matching, "dolphin/ar/ar.c"),
Object(Matching, "dolphin/ar/arq.c"),
],
),
DolphinLib(
"dsp",
[
Object(Matching, "dolphin/dsp/dsp.c"),
Object(Matching, "dolphin/dsp/dsp_debug.c"),
Object(Matching, "dolphin/dsp/dsp_task.c"),
],
),
DolphinLib(
"card",
[
Object(Matching, "dolphin/card/CARDBios.c"),
Object(Matching, "dolphin/card/CARDUnlock.c"),
Object(Matching, "dolphin/card/CARDRdwr.c"),
Object(Matching, "dolphin/card/CARDBlock.c"),
Object(Matching, "dolphin/card/CARDDir.c"),
Object(Matching, "dolphin/card/CARDCheck.c"),
Object(Matching, "dolphin/card/CARDMount.c"),
Object(Matching, "dolphin/card/CARDFormat.c"),
Object(Matching, "dolphin/card/CARDOpen.c", extra_cflags=["-inline noauto"]),
Object(Matching, "dolphin/card/CARDCreate.c"),
Object(Matching, "dolphin/card/CARDRead.c"),
Object(Matching, "dolphin/card/CARDWrite.c"),
Object(Matching, "dolphin/card/CARDStat.c"),
Object(Matching, "dolphin/card/CARDNet.c"),
],
),
DolphinLib(
"gx",
[
Object(Matching, "dolphin/gx/GXInit.c", extra_cflags=["-opt nopeephole"]),
Object(Matching, "dolphin/gx/GXFifo.c"),
Object(Matching, "dolphin/gx/GXAttr.c"),
Object(Matching, "dolphin/gx/GXMisc.c"),
Object(Matching, "dolphin/gx/GXGeometry.c"),
Object(Matching, "dolphin/gx/GXFrameBuf.c"),
Object(Matching, "dolphin/gx/GXLight.c", extra_cflags=["-fp_contract off"]),
Object(Matching, "dolphin/gx/GXTexture.c"),
Object(Matching, "dolphin/gx/GXBump.c"),
Object(Matching, "dolphin/gx/GXTev.c"),
Object(Matching, "dolphin/gx/GXPixel.c"),
Object(Matching, "dolphin/gx/GXDisplayList.c"),
Object(Matching, "dolphin/gx/GXTransform.c", extra_cflags=["-fp_contract off"]),
Object(Matching, "dolphin/gx/GXPerf.c"),
],
),
DolphinLib(
"gd",
[
Object(Matching, "dolphin/gd/GDBase.c"),
Object(Matching, "dolphin/gd/GDGeometry.c"),
],
),
{
"lib": "Runtime.PPCEABI.H",
"mw_version": "GC/2.7",
"cflags": cflags_runtime,
"progress_category": "sdk",
"host": False,
"objects": [
Object(Matching, "PowerPC_EABI_Support/Runtime/Src/__mem.c"),
Object(Matching, "PowerPC_EABI_Support/Runtime/Src/__va_arg.c"),
Object(Matching, "PowerPC_EABI_Support/Runtime/Src/global_destructor_chain.c"),
Object(Matching, "PowerPC_EABI_Support/Runtime/Src/CPlusLibPPC.cp"),
Object(NonMatching, "PowerPC_EABI_Support/Runtime/Src/NMWException.cp"),
Object(Matching, "PowerPC_EABI_Support/Runtime/Src/ptmf.c"),
Object(Matching, "PowerPC_EABI_Support/Runtime/Src/runtime.c"),
Object(NonMatching, "PowerPC_EABI_Support/Runtime/Src/__init_cpp_exceptions.cpp"),
Object(Matching, "PowerPC_EABI_Support/Runtime/Src/Gecko_ExceptionPPC.cp"),
Object(Matching, "PowerPC_EABI_Support/Runtime/Src/GCN_Mem_Alloc.c", extra_cflags=["-str reuse,nopool,readonly"]),
],
},
{
"lib": "MSL_C",
"mw_version": "GC/2.7",
"cflags": cflags_runtime,
"progress_category": "sdk",
"host": False,
"objects": [
Object(Matching, "PowerPC_EABI_Support/MSL/MSL_C/MSL_Common/Src/abort_exit.c"),
Object(Matching, "PowerPC_EABI_Support/MSL/MSL_C/MSL_Common/Src/alloc.c"),
Object(Matching, "PowerPC_EABI_Support/MSL/MSL_C/MSL_Common/Src/errno.c"),
Object(Matching, "PowerPC_EABI_Support/MSL/MSL_C/MSL_Common/Src/ansi_files.c"),
Object(Matching, "PowerPC_EABI_Support/MSL/MSL_C/MSL_Common_Embedded/Src/ansi_fp.c"),
Object(Matching, "PowerPC_EABI_Support/MSL/MSL_C/MSL_Common/Src/arith.c"),
Object(Matching, "PowerPC_EABI_Support/MSL/MSL_C/MSL_Common/Src/buffer_io.c"),
Object(Matching, "PowerPC_EABI_Support/MSL/MSL_C/MSL_Common/Src/char_io.c"),
Object(Matching, "PowerPC_EABI_Support/MSL/MSL_C/PPC_EABI/Src/critical_regions.gamecube.c"),
Object(Matching, "PowerPC_EABI_Support/MSL/MSL_C/MSL_Common/Src/ctype.c"),
Object(Matching, "PowerPC_EABI_Support/MSL/MSL_C/MSL_Common/Src/direct_io.c"),
Object(Matching, "PowerPC_EABI_Support/MSL/MSL_C/MSL_Common/Src/file_io.c"),
Object(Matching, "PowerPC_EABI_Support/MSL/MSL_C/MSL_Common/Src/FILE_POS.c"),
Object(Matching, "PowerPC_EABI_Support/MSL/MSL_C/MSL_Common/Src/mbstring.c"),
Object(Matching, "PowerPC_EABI_Support/MSL/MSL_C/MSL_Common/Src/mem.c"),
Object(Matching, "PowerPC_EABI_Support/MSL/MSL_C/MSL_Common/Src/mem_funcs.c"),
Object(Matching, "PowerPC_EABI_Support/MSL/MSL_C/MSL_Common/Src/misc_io.c"),
Object(Matching, "PowerPC_EABI_Support/MSL/MSL_C/MSL_Common/Src/printf.c"),
Object(Matching, "PowerPC_EABI_Support/MSL/MSL_C/MSL_Common/Src/scanf.c"),
Object(Matching, "PowerPC_EABI_Support/MSL/MSL_C/MSL_Common/Src/float.c"),
Object(Matching, "PowerPC_EABI_Support/MSL/MSL_C/MSL_Common/Src/signal.c"),
Object(Matching, "PowerPC_EABI_Support/MSL/MSL_C/MSL_Common/Src/string.c"),
Object(Matching, "PowerPC_EABI_Support/MSL/MSL_C/MSL_Common/Src/strtoul.c"),
Object(Matching, "PowerPC_EABI_Support/MSL/MSL_C/MSL_Common/Src/wchar_io.c"),
Object(Matching, "PowerPC_EABI_Support/MSL/MSL_C/PPC_EABI/Src/uart_console_io_gcn.c"),
Object(Matching, "PowerPC_EABI_Support/MSL/MSL_C/MSL_Common_Embedded/Math/Double_precision/e_acos.c"),
Object(Matching, "PowerPC_EABI_Support/MSL/MSL_C/MSL_Common_Embedded/Math/Double_precision/e_asin.c"),
Object(Matching, "PowerPC_EABI_Support/MSL/MSL_C/MSL_Common_Embedded/Math/Double_precision/e_atan2.c"),
Object(Matching, "PowerPC_EABI_Support/MSL/MSL_C/MSL_Common_Embedded/Math/Double_precision/e_exp.c"),
Object(Matching, "PowerPC_EABI_Support/MSL/MSL_C/MSL_Common_Embedded/Math/Double_precision/e_fmod.c"),
Object(Matching, "PowerPC_EABI_Support/MSL/MSL_C/MSL_Common_Embedded/Math/Double_precision/e_pow.c"),
Object(Matching, "PowerPC_EABI_Support/MSL/MSL_C/MSL_Common_Embedded/Math/Double_precision/e_rem_pio2.c"),
Object(Matching, "PowerPC_EABI_Support/MSL/MSL_C/MSL_Common_Embedded/Math/Double_precision/k_cos.c"),
Object(Matching, "PowerPC_EABI_Support/MSL/MSL_C/MSL_Common_Embedded/Math/Double_precision/k_rem_pio2.c"),
Object(Matching, "PowerPC_EABI_Support/MSL/MSL_C/MSL_Common_Embedded/Math/Double_precision/k_sin.c"),
Object(Matching, "PowerPC_EABI_Support/MSL/MSL_C/MSL_Common_Embedded/Math/Double_precision/k_tan.c"),
Object(Matching, "PowerPC_EABI_Support/MSL/MSL_C/MSL_Common_Embedded/Math/Double_precision/s_atan.c"),
Object(Matching, "PowerPC_EABI_Support/MSL/MSL_C/MSL_Common_Embedded/Math/Double_precision/s_ceil.c"),
Object(Matching, "PowerPC_EABI_Support/MSL/MSL_C/MSL_Common_Embedded/Math/Double_precision/s_copysign.c"),
Object(Matching, "PowerPC_EABI_Support/MSL/MSL_C/MSL_Common_Embedded/Math/Double_precision/s_cos.c"),
Object(Matching, "PowerPC_EABI_Support/MSL/MSL_C/MSL_Common_Embedded/Math/Double_precision/s_floor.c"),
Object(Matching, "PowerPC_EABI_Support/MSL/MSL_C/MSL_Common_Embedded/Math/Double_precision/s_frexp.c"),
Object(Matching, "PowerPC_EABI_Support/MSL/MSL_C/MSL_Common_Embedded/Math/Double_precision/s_ldexp.c"),
Object(Matching, "PowerPC_EABI_Support/MSL/MSL_C/MSL_Common_Embedded/Math/Double_precision/s_modf.c"),
Object(Matching, "PowerPC_EABI_Support/MSL/MSL_C/MSL_Common_Embedded/Math/Double_precision/s_sin.c"),
Object(Matching, "PowerPC_EABI_Support/MSL/MSL_C/MSL_Common_Embedded/Math/Double_precision/s_tan.c"),
Object(Matching, "PowerPC_EABI_Support/MSL/MSL_C/MSL_Common_Embedded/Math/Double_precision/w_acos.c"),
Object(Matching, "PowerPC_EABI_Support/MSL/MSL_C/MSL_Common_Embedded/Math/Double_precision/w_asin.c"),
Object(Matching, "PowerPC_EABI_Support/MSL/MSL_C/MSL_Common_Embedded/Math/Double_precision/w_atan2.c"),
Object(Matching, "PowerPC_EABI_Support/MSL/MSL_C/MSL_Common_Embedded/Math/Double_precision/w_exp.c"),
Object(Matching, "PowerPC_EABI_Support/MSL/MSL_C/MSL_Common_Embedded/Math/Double_precision/w_fmod.c"),
Object(Matching, "PowerPC_EABI_Support/MSL/MSL_C/MSL_Common_Embedded/Math/Double_precision/w_pow.c"),
Object(Matching, "PowerPC_EABI_Support/MSL/MSL_C/MSL_Common_Embedded/Math/Double_precision/e_sqrt.c"),
Object(Matching, "PowerPC_EABI_Support/MSL/MSL_C/PPC_EABI/Src/math_ppc.c"),
Object(Matching, "PowerPC_EABI_Support/MSL/MSL_C/MSL_Common_Embedded/Math/Double_precision/w_sqrt.c"),
Object(Matching, "PowerPC_EABI_Support/MSL/MSL_C/MSL_Common/Src/extras.c"),
],
},
{
"lib": "TRK_MINNOW_DOLPHIN",
"mw_version": "GC/2.7",
"cflags": cflags_trk,
"progress_category": "sdk",
"host": False,
"objects": [
# debugger
Object(Matching, "TRK_MINNOW_DOLPHIN/debugger/embedded/MetroTRK/Portable/mainloop.c"),
Object(Matching, "TRK_MINNOW_DOLPHIN/debugger/embedded/MetroTRK/Portable/nubevent.c"),
Object(Matching, "TRK_MINNOW_DOLPHIN/debugger/embedded/MetroTRK/Portable/nubinit.c"),
Object(Matching, "TRK_MINNOW_DOLPHIN/debugger/embedded/MetroTRK/Portable/msg.c"),
Object(Matching, "TRK_MINNOW_DOLPHIN/debugger/embedded/MetroTRK/Portable/msgbuf.c"),
Object(Matching, "TRK_MINNOW_DOLPHIN/debugger/embedded/MetroTRK/Portable/serpoll.c", extra_cflags=["-sdata 8"]),
Object(Matching, "TRK_MINNOW_DOLPHIN/debugger/embedded/MetroTRK/Os/dolphin/usr_put.c"),
Object(Matching, "TRK_MINNOW_DOLPHIN/debugger/embedded/MetroTRK/Portable/dispatch.c"),
Object(Matching, "TRK_MINNOW_DOLPHIN/debugger/embedded/MetroTRK/Portable/msghndlr.c"),
Object(Matching, "TRK_MINNOW_DOLPHIN/debugger/embedded/MetroTRK/Portable/support.c"),
Object(Matching, "TRK_MINNOW_DOLPHIN/debugger/embedded/MetroTRK/Portable/mutex_TRK.c"),
Object(Matching, "TRK_MINNOW_DOLPHIN/debugger/embedded/MetroTRK/Portable/notify.c"),
Object(Matching, "TRK_MINNOW_DOLPHIN/debugger/embedded/MetroTRK/Processor/ppc/Generic/flush_cache.c"),
Object(NonMatching, "TRK_MINNOW_DOLPHIN/debugger/embedded/MetroTRK/Portable/mem_TRK.c"),
Object(Matching, "TRK_MINNOW_DOLPHIN/debugger/embedded/MetroTRK/Processor/ppc/Generic/targimpl.c"),
Object(NonMatching, "TRK_MINNOW_DOLPHIN/debugger/embedded/MetroTRK/Processor/ppc/Export/targsupp.c", extra_cflags=["-func_align 32"]),
Object(Matching, "TRK_MINNOW_DOLPHIN/debugger/embedded/MetroTRK/Processor/ppc/Generic/mpc_7xx_603e.c"),
Object(NonMatching, "TRK_MINNOW_DOLPHIN/debugger/embedded/MetroTRK/Os/dolphin/dolphin_trk.c"),
Object(Matching, "TRK_MINNOW_DOLPHIN/debugger/embedded/MetroTRK/Portable/main_TRK.c"),
Object(Matching, "TRK_MINNOW_DOLPHIN/debugger/embedded/MetroTRK/Os/dolphin/dolphin_trk_glue.c"),
Object(Matching, "TRK_MINNOW_DOLPHIN/debugger/embedded/MetroTRK/Os/dolphin/targcont.c"),
Object(Matching, "TRK_MINNOW_DOLPHIN/debugger/embedded/MetroTRK/Os/dolphin/target_options.c"),
Object(Matching, "TRK_MINNOW_DOLPHIN/debugger/embedded/MetroTRK/Export/mslsupp.c"),
Object(Matching, "TRK_MINNOW_DOLPHIN/debugger/embedded/MetroTRK/Os/dolphin/UDP_Stubs.c"),
# gamedev
Object(Matching, "TRK_MINNOW_DOLPHIN/gamedev/cust_connection/cc/exi2/GCN/EXI2_DDH_GCN/main.c", extra_cflags=["-sdata 8"]),
Object(Matching, "TRK_MINNOW_DOLPHIN/gamedev/cust_connection/utils/common/CircleBuffer.c"),
Object(Matching, "TRK_MINNOW_DOLPHIN/gamedev/cust_connection/cc/exi2/GCN/EXI2_GDEV_GCN/main.c", extra_cflags=["-sdata 8"]),
Object(Matching, "TRK_MINNOW_DOLPHIN/gamedev/cust_connection/utils/common/MWTrace.c"),
Object(Matching, "TRK_MINNOW_DOLPHIN/gamedev/cust_connection/utils/gc/MWCriticalSection_gc.c"),
],
},
{
"lib": "amcstubs",
"mw_version": "GC/2.7",
"cflags": cflags_dolphin,
"progress_category": "sdk",
"host": False,
"objects": [
Object(Matching, "amcstubs/AmcExi2Stubs.c"),
],
},
{
"lib": "odemuexi2",
"mw_version": "GC/2.7",
"cflags": cflags_runtime,
"progress_category": "sdk",
"host": False,
"objects": [
Object(NonMatching, "odemuexi2/DebuggerDriver.c"),
],
},
{
"lib": "odenotstub",
"mw_version": "GC/2.7",
"cflags": cflags_dolphin,
"progress_category": "sdk",
"host": False,
"objects": [
Object(Matching, "odenotstub/odenotstub.c"),
],
},
# Begin RELs
{
"lib": "REL",
"mw_version": "GC/2.7",
"cflags": cflags_rel,
"progress_category": "sdk",
"host": False,
"objects": [
Object(Matching, "REL/executor.c"),
Object(
NonMatching,
"REL/global_destructor_chain.c",
source="PowerPC_EABI_Support/Runtime/Src/global_destructor_chain.c",
),
],
},
Rel("f_pc_profile_lst", [Object(Matching, "f_pc/f_pc_profile_lst.cpp")]),
ActorRel(Matching, "d_a_andsw"),
ActorRel(NonMatching, "d_a_bg"),
ActorRel(NonMatching, "d_a_bg_obj"),
ActorRel(Matching, "d_a_dmidna"),
ActorRel(Matching, "d_a_door_dbdoor00"),
ActorRel(Matching, "d_a_door_knob00"),
ActorRel(Matching, "d_a_door_shutter"),
ActorRel(Matching, "d_a_door_spiral"),
ActorRel(Matching, "d_a_dshutter"),
ActorRel(NonMatching, "d_a_ep"),
ActorRel(Matching, "d_a_hitobj"),
ActorRel(Matching, "d_a_kytag00"),
ActorRel(Matching, "d_a_kytag04"),
ActorRel(Matching, "d_a_kytag17"),
ActorRel(NonMatching, "d_a_obj_brakeeff"),
ActorRel(NonMatching, "d_a_obj_burnbox"),
ActorRel(NonMatching, "d_a_obj_carry"),
ActorRel(NonMatching, "d_a_obj_ito"),
ActorRel(NonMatching, "d_a_obj_movebox"),
ActorRel(NonMatching, "d_a_obj_swpush"),
ActorRel(NonMatching, "d_a_obj_timer"),
ActorRel(Matching, "d_a_path_line"),
ActorRel(NonMatching, "d_a_scene_exit"),
ActorRel(Matching, "d_a_set_bgobj"),
ActorRel(NonMatching, "d_a_swhit0"),
ActorRel(NonMatching, "d_a_tag_allmato"),
ActorRel(Matching, "d_a_tag_camera"),
ActorRel(Matching, "d_a_tag_chkpoint"),
ActorRel(Matching, "d_a_tag_event"),
ActorRel(Matching, "d_a_tag_evt"),
ActorRel(Matching, "d_a_tag_evtarea", extra_cflags=['-pragma "nosyminline off"']),
ActorRel(Matching, "d_a_tag_evtmsg"),
ActorRel(Matching, "d_a_tag_howl"),
ActorRel(NonMatching, "d_a_tag_kmsg"),
ActorRel(Matching, "d_a_tag_lantern"),
ActorRel(Matching, "d_a_tag_mist"),
ActorRel(Matching, "d_a_tag_msg"),
ActorRel(Matching, "d_a_tag_push", extra_cflags=['-pragma "nosyminline off"']),
ActorRel(Matching, "d_a_tag_telop"),
ActorRel(NonMatching, "d_a_tbox"),
ActorRel(Matching, "d_a_tbox2"),
ActorRel(Matching, "d_a_vrbox"),
ActorRel(NonMatching, "d_a_vrbox2"),
ActorRel(NonMatching, "d_a_arrow"),
ActorRel(NonMatching, "d_a_boomerang"),
ActorRel(Matching, "d_a_crod"),
ActorRel(NonMatching, "d_a_demo00"),
ActorRel(Matching, "d_a_disappear"),
ActorRel(NonMatching, "d_a_mg_rod"),
ActorRel(NonMatching, "d_a_midna"),
ActorRel(Equivalent, "d_a_nbomb"),
ActorRel(NonMatching, "d_a_obj_life_container"),
ActorRel(NonMatching, "d_a_obj_yousei"),
ActorRel(NonMatching, "d_a_spinner"),
ActorRel(Matching, "d_a_suspend"),
ActorRel(Matching, "d_a_tag_attention"),
ActorRel(Matching, "d_a_alldie"),
ActorRel(Matching, "d_a_andsw2"),
ActorRel(NonMatching, "d_a_bd"),
ActorRel(NonMatching, "d_a_canoe"),
ActorRel(NonMatching, "d_a_cstaF"),
ActorRel(NonMatching, "d_a_demo_item"),
ActorRel(Matching, "d_a_door_bossL1"),
ActorRel(NonMatching, "d_a_e_dn"),
ActorRel(NonMatching, "d_a_e_fm"),
ActorRel(NonMatching, "d_a_e_ga"),
ActorRel(NonMatching, "d_a_e_hb"),
ActorRel(Matching, "d_a_e_nest"),
ActorRel(NonMatching, "d_a_e_rd"),
ActorRel(Matching, "d_a_econt"),
ActorRel(NonMatching, "d_a_fr"),
ActorRel(NonMatching, "d_a_grass"),
ActorRel(NonMatching, "d_a_kytag05"),
ActorRel(NonMatching, "d_a_kytag10"),
ActorRel(NonMatching, "d_a_kytag11"),
ActorRel(NonMatching, "d_a_kytag14"),
ActorRel(NonMatching, "d_a_mg_fish"),
ActorRel(NonMatching, "d_a_npc_besu"),
ActorRel(NonMatching, "d_a_npc_fairy_seirei"),
ActorRel(Matching, "d_a_npc_fish"),
ActorRel(NonMatching, "d_a_npc_henna"),
ActorRel(NonMatching, "d_a_npc_kakashi"),
ActorRel(NonMatching, "d_a_npc_kkri"),
ActorRel(NonMatching, "d_a_npc_kolin"),
ActorRel(NonMatching, "d_a_npc_maro"),
ActorRel(NonMatching, "d_a_npc_taro"),
ActorRel(NonMatching, "d_a_npc_tkj"),
ActorRel(NonMatching, "d_a_obj_bhashi"),
ActorRel(Matching, "d_a_obj_bkdoor"),
ActorRel(NonMatching, "d_a_obj_bosswarp"),
ActorRel(Matching, "d_a_obj_cboard"),
ActorRel(Matching, "d_a_obj_digplace"),
ActorRel(Matching, "d_a_obj_eff"),
ActorRel(NonMatching, "d_a_obj_fmobj"),
ActorRel(NonMatching, "d_a_obj_gpTaru"),
ActorRel(Matching, "d_a_obj_hhashi"),
ActorRel(NonMatching, "d_a_obj_kanban2"),
ActorRel(NonMatching, "d_a_obj_kbacket"),
ActorRel(Matching, "d_a_obj_kgate"),
ActorRel(NonMatching, "d_a_obj_klift00"),
ActorRel(NonMatching, "d_a_obj_ktOnFire"),
ActorRel(Matching, "d_a_obj_ladder"),
ActorRel(Matching, "d_a_obj_lv2Candle"),
ActorRel(NonMatching, "d_a_obj_magne_arm"),
ActorRel(NonMatching, "d_a_obj_metalbox"),
ActorRel(Matching, "d_a_obj_mgate"),
ActorRel(NonMatching, "d_a_obj_nameplate"),
ActorRel(NonMatching, "d_a_obj_ornament_cloth"),
ActorRel(NonMatching, "d_a_obj_rope_bridge"),
ActorRel(Matching, "d_a_obj_sWallShutter"),
ActorRel(NonMatching, "d_a_obj_stick"),
ActorRel(Matching, "d_a_obj_stoneMark"),
ActorRel(Matching, "d_a_obj_swpropeller"),
ActorRel(NonMatching, "d_a_obj_swpush5"),
ActorRel(Matching, "d_a_obj_yobikusa"),
ActorRel(Matching, "d_a_scene_exit2"),
ActorRel(Matching, "d_a_shop_item"),
ActorRel(Matching, "d_a_sq"),
ActorRel(NonMatching, "d_a_swc00"),
ActorRel(Matching, "d_a_tag_CstaSw"),
ActorRel(Matching, "d_a_tag_ajnot"),
ActorRel(NonMatching, "d_a_tag_attack_item"),
ActorRel(NonMatching, "d_a_tag_gstart"),
ActorRel(Matching, "d_a_tag_hinit"),
ActorRel(Matching, "d_a_tag_hjump"),
ActorRel(Matching, "d_a_tag_hstop"),
ActorRel(Matching, "d_a_tag_lv2prchk"),
ActorRel(Matching, "d_a_tag_magne"),
ActorRel(Matching, "d_a_tag_mhint"),
ActorRel(Matching, "d_a_tag_mstop"),
ActorRel(Matching, "d_a_tag_spring"),
ActorRel(Matching, "d_a_tag_statue_evt"),
ActorRel(NonMatching, "d_a_ykgr"),
ActorRel(NonMatching, "d_a_L7demo_dr"),
ActorRel(NonMatching, "d_a_L7low_dr"),
ActorRel(NonMatching, "d_a_L7op_demo_dr"),
ActorRel(NonMatching, "d_a_b_bh"),
ActorRel(NonMatching, "d_a_b_bq"),
ActorRel(NonMatching, "d_a_b_dr"),
ActorRel(NonMatching, "d_a_b_dre"),
ActorRel(NonMatching, "d_a_b_ds"),
ActorRel(NonMatching, "d_a_b_gg"),
ActorRel(NonMatching, "d_a_b_gm"),
ActorRel(NonMatching, "d_a_b_gnd"),
ActorRel(Matching, "d_a_b_go"),
ActorRel(Matching, "d_a_b_gos"),
ActorRel(NonMatching, "d_a_b_mgn"),
ActorRel(NonMatching, "d_a_b_ob"),
ActorRel(NonMatching, "d_a_b_oh"),
ActorRel(Matching, "d_a_b_oh2"),
ActorRel(NonMatching, "d_a_b_tn"),
ActorRel(Equivalent, "d_a_b_yo"),
ActorRel(Equivalent, "d_a_b_yo_ice"),
ActorRel(Matching, "d_a_b_zant"),
ActorRel(Matching, "d_a_b_zant_magic"),
ActorRel(Matching, "d_a_b_zant_mobile"),
ActorRel(Matching, "d_a_b_zant_sima"),
ActorRel(NonMatching, "d_a_balloon_2D"),
ActorRel(NonMatching, "d_a_bullet"),
ActorRel(NonMatching, "d_a_coach_2D"),
ActorRel(NonMatching, "d_a_coach_fire"),
ActorRel(NonMatching, "d_a_cow"),
ActorRel(NonMatching, "d_a_cstatue"),
ActorRel(Equivalent, "d_a_do"),
ActorRel(Matching, "d_a_door_boss"),
ActorRel(Matching, "d_a_door_bossL5"),
ActorRel(Equivalent, "d_a_door_mbossL1"),
ActorRel(Matching, "d_a_door_push"),
ActorRel(NonMatching, "d_a_e_ai"),
ActorRel(Matching, "d_a_e_arrow"),
ActorRel(Equivalent, "d_a_e_ba"),
ActorRel(NonMatching, "d_a_e_bee"),
ActorRel(NonMatching, "d_a_e_bg"),
ActorRel(NonMatching, "d_a_e_bi"),
ActorRel(Matching, "d_a_e_bi_leaf"),
ActorRel(NonMatching, "d_a_e_bs"),
ActorRel(NonMatching, "d_a_e_bu"),
ActorRel(NonMatching, "d_a_e_bug"),
ActorRel(NonMatching, "d_a_e_cr"),
ActorRel(NonMatching, "d_a_e_cr_egg"),
ActorRel(NonMatching, "d_a_e_db"),
ActorRel(Matching, "d_a_e_db_leaf"),
ActorRel(NonMatching, "d_a_e_dd"),
ActorRel(NonMatching, "d_a_e_df"),
ActorRel(NonMatching, "d_a_e_dk"),
ActorRel(NonMatching, "d_a_e_dt"),
ActorRel(NonMatching, "d_a_e_fb"),
ActorRel(NonMatching, "d_a_e_fk"),
ActorRel(NonMatching, "d_a_e_fs"),
ActorRel(Equivalent, "d_a_e_fz"),
ActorRel(NonMatching, "d_a_e_gb"),
ActorRel(NonMatching, "d_a_e_ge"),
ActorRel(NonMatching, "d_a_e_gi"),
ActorRel(NonMatching, "d_a_e_gm"),
ActorRel(NonMatching, "d_a_e_gob"),
ActorRel(NonMatching, "d_a_e_gs"),
ActorRel(Matching, "d_a_e_hb_leaf"),
ActorRel(NonMatching, "d_a_e_hm"),
ActorRel(NonMatching, "d_a_e_hp"),
ActorRel(NonMatching, "d_a_e_hz"),
ActorRel(NonMatching, "d_a_e_hzelda"),
ActorRel(NonMatching, "d_a_e_is"),
ActorRel(NonMatching, "d_a_e_kg"),
ActorRel(NonMatching, "d_a_e_kk"),
ActorRel(NonMatching, "d_a_e_kr"),
ActorRel(NonMatching, "d_a_e_mb"),
ActorRel(NonMatching, "d_a_e_md"),
ActorRel(NonMatching, "d_a_e_mf"),
ActorRel(NonMatching, "d_a_e_mk"),
ActorRel(NonMatching, "d_a_e_mk_bo"),
ActorRel(NonMatching, "d_a_e_mm"),
ActorRel(NonMatching, "d_a_e_mm_mt"),
ActorRel(NonMatching, "d_a_e_ms"),
ActorRel(NonMatching, "d_a_e_nz"),
ActorRel(NonMatching, "d_a_e_oc"),
ActorRel(Matching, "d_a_e_oct_bg"),
ActorRel(NonMatching, "d_a_e_ot"),
ActorRel(Matching, "d_a_e_ph"),
ActorRel(NonMatching, "d_a_e_pm"),
ActorRel(NonMatching, "d_a_e_po"),
ActorRel(NonMatching, "d_a_e_pz"),
ActorRel(NonMatching, "d_a_e_rb"),
ActorRel(NonMatching, "d_a_e_rdb"),
ActorRel(NonMatching, "d_a_e_rdy"),
ActorRel(NonMatching, "d_a_e_s1"),
ActorRel(NonMatching, "d_a_e_sb"),
ActorRel(NonMatching, "d_a_e_sf"),
ActorRel(NonMatching, "d_a_e_sg"),
ActorRel(NonMatching, "d_a_e_sh"),
ActorRel(NonMatching, "d_a_e_sm"),
ActorRel(NonMatching, "d_a_e_sm2"),
ActorRel(NonMatching, "d_a_e_st"),
ActorRel(Matching, "d_a_e_st_line"),
ActorRel(NonMatching, "d_a_e_sw"),
ActorRel(NonMatching, "d_a_e_th"),
ActorRel(NonMatching, "d_a_e_th_ball"),
ActorRel(NonMatching, "d_a_e_tk"),
ActorRel(NonMatching, "d_a_e_tk2"),
ActorRel(NonMatching, "d_a_e_tk_ball"),
ActorRel(NonMatching, "d_a_e_tt"),
ActorRel(NonMatching, "d_a_e_vt"),
ActorRel(NonMatching, "d_a_e_warpappear"),
ActorRel(NonMatching, "d_a_e_wb"),
ActorRel(NonMatching, "d_a_e_ws"),
ActorRel(NonMatching, "d_a_e_ww"),
ActorRel(Matching, "d_a_e_yc"),
ActorRel(NonMatching, "d_a_e_yd"),
ActorRel(Matching, "d_a_e_yd_leaf"),
ActorRel(NonMatching, "d_a_e_yg"),
ActorRel(NonMatching, "d_a_e_yh"),
ActorRel(Equivalent, "d_a_e_yk"),
ActorRel(NonMatching, "d_a_e_ym"),
ActorRel(Matching, "d_a_e_ym_tag"),
ActorRel(NonMatching, "d_a_e_ymb"),
ActorRel(NonMatching, "d_a_e_yr"),
ActorRel(NonMatching, "d_a_e_zh"),
ActorRel(NonMatching, "d_a_e_zm"),
ActorRel(NonMatching, "d_a_e_zs"),
ActorRel(Matching, "d_a_formation_mng"),
ActorRel(Matching, "d_a_guard_mng"),
ActorRel(NonMatching, "d_a_horse"),
ActorRel(NonMatching, "d_a_hozelda"),
ActorRel(Matching, "d_a_izumi_gate"),
ActorRel(NonMatching, "d_a_kago"),
ActorRel(Matching, "d_a_kytag01"),
ActorRel(Matching, "d_a_kytag02"),
ActorRel(Matching, "d_a_kytag03"),
ActorRel(Matching, "d_a_kytag06"),
ActorRel(Matching, "d_a_kytag07"),
ActorRel(Matching, "d_a_kytag08"),
ActorRel(Matching, "d_a_kytag09"),
ActorRel(Matching, "d_a_kytag12"),
ActorRel(NonMatching, "d_a_kytag13"),
ActorRel(Matching, "d_a_kytag15"),
ActorRel(Matching, "d_a_kytag16"),
ActorRel(NonMatching, "d_a_mant"),
ActorRel(NonMatching, "d_a_mg_fshop"),
ActorRel(Matching, "d_a_mirror"),
ActorRel(NonMatching, "d_a_movie_player", extra_cflags=["-O3,p"]),
ActorRel(NonMatching, "d_a_myna"),
ActorRel(NonMatching, "d_a_ni"),
ActorRel(NonMatching, "d_a_npc_aru"),
ActorRel(NonMatching, "d_a_npc_ash"),
ActorRel(NonMatching, "d_a_npc_ashB"),
ActorRel(NonMatching, "d_a_npc_bans"),
ActorRel(NonMatching, "d_a_npc_blue_ns"),
ActorRel(NonMatching, "d_a_npc_bou"),
ActorRel(NonMatching, "d_a_npc_bouS"),
ActorRel(NonMatching, "d_a_npc_cdn3"),
ActorRel(NonMatching, "d_a_npc_chat"),
ActorRel(NonMatching, "d_a_npc_chin"),
ActorRel(NonMatching, "d_a_npc_clerka"),
ActorRel(NonMatching, "d_a_npc_clerkb"),
ActorRel(NonMatching, "d_a_npc_clerkt"),
ActorRel(NonMatching, "d_a_npc_coach"),
ActorRel(NonMatching, "d_a_npc_df"),
ActorRel(NonMatching, "d_a_npc_doc"),
ActorRel(NonMatching, "d_a_npc_doorboy"),
ActorRel(NonMatching, "d_a_npc_drainSol"),
ActorRel(NonMatching, "d_a_npc_du"),
ActorRel(NonMatching, "d_a_npc_fairy"),
ActorRel(NonMatching, "d_a_npc_fguard"),
ActorRel(NonMatching, "d_a_npc_gnd"),
ActorRel(NonMatching, "d_a_npc_gra"),
ActorRel(NonMatching, "d_a_npc_grc"),
ActorRel(NonMatching, "d_a_npc_grd"),
ActorRel(NonMatching, "d_a_npc_grm"),
ActorRel(NonMatching, "d_a_npc_grmc"),
ActorRel(NonMatching, "d_a_npc_gro"),
ActorRel(NonMatching, "d_a_npc_grr"),
ActorRel(NonMatching, "d_a_npc_grs"),
ActorRel(NonMatching, "d_a_npc_grz"),
ActorRel(NonMatching, "d_a_npc_guard"),
ActorRel(NonMatching, "d_a_npc_gwolf"),
ActorRel(NonMatching, "d_a_npc_hanjo"),
ActorRel(Matching, "d_a_npc_henna0"),
ActorRel(NonMatching, "d_a_npc_hoz"),
ActorRel(NonMatching, "d_a_npc_impal"),
ActorRel(NonMatching, "d_a_npc_inko"),
ActorRel(NonMatching, "d_a_npc_ins"),
ActorRel(NonMatching, "d_a_npc_jagar"),
ActorRel(NonMatching, "d_a_npc_kasi_hana"),
ActorRel(NonMatching, "d_a_npc_kasi_kyu"),
ActorRel(NonMatching, "d_a_npc_kasi_mich"),
ActorRel(Matching, "d_a_npc_kdk"),
ActorRel(NonMatching, "d_a_npc_kn"),
ActorRel(NonMatching, "d_a_npc_knj"),
ActorRel(NonMatching, "d_a_npc_kolinb"),
ActorRel(NonMatching, "d_a_npc_ks"),
ActorRel(NonMatching, "d_a_npc_kyury"),
ActorRel(NonMatching, "d_a_npc_len"),
ActorRel(NonMatching, "d_a_npc_lf"),
ActorRel(NonMatching, "d_a_npc_lud"),
ActorRel(NonMatching, "d_a_npc_midp"),
ActorRel(Matching, "d_a_npc_mk"),
ActorRel(NonMatching, "d_a_npc_moi"),
ActorRel(NonMatching, "d_a_npc_moir"),
ActorRel(NonMatching, "d_a_npc_myna2"),
ActorRel(NonMatching, "d_a_npc_ne"),
ActorRel(Matching, "d_a_npc_p2"),
ActorRel(NonMatching, "d_a_npc_pachi_besu"),
ActorRel(NonMatching, "d_a_npc_pachi_maro"),
ActorRel(NonMatching, "d_a_npc_pachi_taro"),
ActorRel(NonMatching, "d_a_npc_passer"),
ActorRel(NonMatching, "d_a_npc_passer2"),
ActorRel(NonMatching, "d_a_npc_post"),
ActorRel(NonMatching, "d_a_npc_pouya"),
ActorRel(NonMatching, "d_a_npc_prayer"),
ActorRel(NonMatching, "d_a_npc_raca"),
ActorRel(NonMatching, "d_a_npc_rafrel"),
ActorRel(NonMatching, "d_a_npc_saru"),
ActorRel(NonMatching, "d_a_npc_seib"),
ActorRel(NonMatching, "d_a_npc_seic"),
ActorRel(NonMatching, "d_a_npc_seid"),
ActorRel(NonMatching, "d_a_npc_seira"),
ActorRel(NonMatching, "d_a_npc_seira2"),
ActorRel(NonMatching, "d_a_npc_seirei"),
ActorRel(NonMatching, "d_a_npc_shad"),
ActorRel(NonMatching, "d_a_npc_shaman"),
ActorRel(NonMatching, "d_a_npc_shoe"),
ActorRel(NonMatching, "d_a_npc_shop0"),
ActorRel(Equivalent, "d_a_npc_shop_maro"),
ActorRel(NonMatching, "d_a_npc_sola"),
ActorRel(NonMatching, "d_a_npc_soldierA"),
ActorRel(NonMatching, "d_a_npc_soldierB"),
ActorRel(Matching, "d_a_npc_sq"),
ActorRel(NonMatching, "d_a_npc_the"),
ActorRel(NonMatching, "d_a_npc_theB"),
ActorRel(NonMatching, "d_a_npc_tk"),
ActorRel(NonMatching, "d_a_npc_tkc"),
ActorRel(NonMatching, "d_a_npc_tkj2"),
ActorRel(NonMatching, "d_a_npc_tks"),
ActorRel(NonMatching, "d_a_npc_toby"),
ActorRel(Matching, "d_a_npc_tr"),
ActorRel(NonMatching, "d_a_npc_uri"),
ActorRel(NonMatching, "d_a_npc_worm"),
ActorRel(NonMatching, "d_a_npc_wrestler"),
ActorRel(NonMatching, "d_a_npc_yamid"),
ActorRel(NonMatching, "d_a_npc_yamis"),
ActorRel(NonMatching, "d_a_npc_yamit"),
ActorRel(NonMatching, "d_a_npc_yelia"),
ActorRel(NonMatching, "d_a_npc_ykm"),
ActorRel(NonMatching, "d_a_npc_ykw"),
ActorRel(NonMatching, "d_a_npc_zanb"),
ActorRel(NonMatching, "d_a_npc_zant"),
ActorRel(NonMatching, "d_a_npc_zelR"),
ActorRel(NonMatching, "d_a_npc_zelRo"),
ActorRel(NonMatching, "d_a_npc_zelda"),
ActorRel(NonMatching, "d_a_npc_zra"),
ActorRel(NonMatching, "d_a_npc_zrc"),
ActorRel(NonMatching, "d_a_npc_zrz"),
ActorRel(Matching, "d_a_obj_Lv5Key"),
ActorRel(NonMatching, "d_a_obj_Turara"),
ActorRel(NonMatching, "d_a_obj_TvCdlst"),
ActorRel(NonMatching, "d_a_obj_Y_taihou"),
ActorRel(NonMatching, "d_a_obj_amiShutter"),
ActorRel(Matching, "d_a_obj_ari"),
ActorRel(NonMatching, "d_a_obj_automata"),
ActorRel(Matching, "d_a_obj_avalanche"),
ActorRel(Matching, "d_a_obj_balloon"),
ActorRel(Matching, "d_a_obj_barDesk"),
ActorRel(NonMatching, "d_a_obj_batta"),
ActorRel(Matching, "d_a_obj_bbox"),
ActorRel(Matching, "d_a_obj_bed"),
ActorRel(NonMatching, "d_a_obj_bemos"),
ActorRel(NonMatching, "d_a_obj_bhbridge"),
ActorRel(Matching, "d_a_obj_bk_leaf"),
ActorRel(NonMatching, "d_a_obj_bky_rock"),
ActorRel(Matching, "d_a_obj_bmWindow"),
ActorRel(NonMatching, "d_a_obj_bmshutter"),
ActorRel(Matching, "d_a_obj_bombf"),
ActorRel(NonMatching, "d_a_obj_boumato"),
ActorRel(NonMatching, "d_a_obj_brg"),
ActorRel(Matching, "d_a_obj_bsGate"),
ActorRel(NonMatching, "d_a_obj_bubblePilar"),
ActorRel(Matching, "d_a_obj_catdoor"),
ActorRel(NonMatching, "d_a_obj_cb"),
ActorRel(NonMatching, "d_a_obj_cblock"),
ActorRel(Matching, "d_a_obj_cdoor"),
ActorRel(Matching, "d_a_obj_chandelier"),
ActorRel(Matching, "d_a_obj_chest"),
ActorRel(Matching, "d_a_obj_cho"),
ActorRel(Matching, "d_a_obj_cowdoor"),
ActorRel(NonMatching, "d_a_obj_crope"),
ActorRel(NonMatching, "d_a_obj_crvfence"),
ActorRel(NonMatching, "d_a_obj_crvgate"),
ActorRel(NonMatching, "d_a_obj_crvhahen"),
ActorRel(NonMatching, "d_a_obj_crvlh_down"),
ActorRel(NonMatching, "d_a_obj_crvlh_up"),
ActorRel(NonMatching, "d_a_obj_crvsteel"),
ActorRel(Matching, "d_a_obj_crystal"),
ActorRel(NonMatching, "d_a_obj_cwall"),
ActorRel(Matching, "d_a_obj_damCps"),
ActorRel(Matching, "d_a_obj_dan"),
ActorRel(Matching, "d_a_obj_digholl"),
ActorRel(Matching, "d_a_obj_digsnow"),
ActorRel(NonMatching, "d_a_obj_dmelevator"),
ActorRel(NonMatching, "d_a_obj_drop"),
ActorRel(NonMatching, "d_a_obj_dust"),
ActorRel(Matching, "d_a_obj_enemy_create"),
ActorRel(NonMatching, "d_a_obj_fallobj"),
ActorRel(Matching, "d_a_obj_fan"),
ActorRel(NonMatching, "d_a_obj_fchain"),
ActorRel(Matching, "d_a_obj_fireWood"),
ActorRel(Matching, "d_a_obj_fireWood2"),
ActorRel(Matching, "d_a_obj_firepillar"),
ActorRel(Matching, "d_a_obj_firepillar2"),
ActorRel(NonMatching, "d_a_obj_flag"),
ActorRel(NonMatching, "d_a_obj_flag2"),
ActorRel(NonMatching, "d_a_obj_flag3"),
ActorRel(Matching, "d_a_obj_food"),
ActorRel(NonMatching, "d_a_obj_fw"),
ActorRel(NonMatching, "d_a_obj_gadget"),
ActorRel(NonMatching, "d_a_obj_ganonwall"),
ActorRel(NonMatching, "d_a_obj_ganonwall2"),
ActorRel(NonMatching, "d_a_obj_gb"),
ActorRel(NonMatching, "d_a_obj_geyser"),
ActorRel(NonMatching, "d_a_obj_glowSphere"),
ActorRel(NonMatching, "d_a_obj_gm"),
ActorRel(NonMatching, "d_a_obj_goGate"),
ActorRel(NonMatching, "d_a_obj_gomikabe"),
ActorRel(NonMatching, "d_a_obj_gra2"),
ActorRel(Matching, "d_a_obj_graWall"),
ActorRel(NonMatching, "d_a_obj_gra_rock"),
ActorRel(Matching, "d_a_obj_grave_stone"),
ActorRel(NonMatching, "d_a_obj_groundwater"),
ActorRel(NonMatching, "d_a_obj_grz_rock"),
ActorRel(NonMatching, "d_a_obj_h_saku"),
ActorRel(NonMatching, "d_a_obj_hakai_brl"),
ActorRel(NonMatching, "d_a_obj_hakai_ftr"),
ActorRel(NonMatching, "d_a_obj_hasu2"),
ActorRel(NonMatching, "d_a_obj_hata"),
ActorRel(NonMatching, "d_a_obj_hb"),
ActorRel(NonMatching, "d_a_obj_hbombkoya"),
ActorRel(Matching, "d_a_obj_heavySw"),
ActorRel(NonMatching, "d_a_obj_hfuta"),
ActorRel(Matching, "d_a_obj_hsTarget"),
ActorRel(NonMatching, "d_a_obj_ice_l"),
ActorRel(NonMatching, "d_a_obj_ice_s"),
ActorRel(Matching, "d_a_obj_iceblock"),
ActorRel(NonMatching, "d_a_obj_iceleaf"),
ActorRel(NonMatching, "d_a_obj_ihasi"),
ActorRel(NonMatching, "d_a_obj_ikada"),
ActorRel(NonMatching, "d_a_obj_inobone"),
ActorRel(NonMatching, "d_a_obj_ita"),
ActorRel(NonMatching, "d_a_obj_itamato"),
ActorRel(Matching, "d_a_obj_kabuto"),
ActorRel(NonMatching, "d_a_obj_kag"),
ActorRel(NonMatching, "d_a_obj_kage"),
ActorRel(NonMatching, "d_a_obj_kago"),
ActorRel(NonMatching, "d_a_obj_kaisou"),
ActorRel(NonMatching, "d_a_obj_kamakiri"),
ActorRel(NonMatching, "d_a_obj_kantera"),
ActorRel(NonMatching, "d_a_obj_katatsumuri"),
ActorRel(Matching, "d_a_obj_kazeneko"),
ActorRel(NonMatching, "d_a_obj_kbox"),
ActorRel(NonMatching, "d_a_obj_key"),
ActorRel(NonMatching, "d_a_obj_keyhole"),
ActorRel(Matching, "d_a_obj_ki"),
ActorRel(NonMatching, "d_a_obj_kiPot"),
ActorRel(NonMatching, "d_a_obj_kita"),
ActorRel(Matching, "d_a_obj_kjgjs"),
ActorRel(Matching, "d_a_obj_kkanban"),
ActorRel(NonMatching, "d_a_obj_knBullet"),
ActorRel(NonMatching, "d_a_obj_kshutter"),
ActorRel(NonMatching, "d_a_obj_kuwagata"),
ActorRel(NonMatching, "d_a_obj_kwheel00"),
ActorRel(NonMatching, "d_a_obj_kwheel01"),
ActorRel(NonMatching, "d_a_obj_kznkarm"),
ActorRel(NonMatching, "d_a_obj_laundry"),
ActorRel(NonMatching, "d_a_obj_laundry_rope"),
ActorRel(Matching, "d_a_obj_lbox"),
ActorRel(NonMatching, "d_a_obj_lp"),
ActorRel(Matching, "d_a_obj_lv1Candle00"),
ActorRel(Matching, "d_a_obj_lv1Candle01"),
ActorRel(Matching, "d_a_obj_lv3Candle"),
ActorRel(NonMatching, "d_a_obj_lv3Water"),
ActorRel(NonMatching, "d_a_obj_lv3Water2"),
ActorRel(Matching, "d_a_obj_lv3WaterB"),
ActorRel(Matching, "d_a_obj_lv3saka00"),
ActorRel(Matching, "d_a_obj_lv3waterEff"),
ActorRel(NonMatching, "d_a_obj_lv4CandleDemoTag"),
ActorRel(NonMatching, "d_a_obj_lv4CandleTag"),
ActorRel(NonMatching, "d_a_obj_lv4EdShutter"),
ActorRel(Matching, "d_a_obj_lv4Gate"),
ActorRel(Matching, "d_a_obj_lv4HsTarget"),
ActorRel(Matching, "d_a_obj_lv4PoGate"),
ActorRel(NonMatching, "d_a_obj_lv4RailWall"),
ActorRel(NonMatching, "d_a_obj_lv4SlideWall"),
ActorRel(NonMatching, "d_a_obj_lv4bridge"),
ActorRel(NonMatching, "d_a_obj_lv4chandelier"),
ActorRel(Matching, "d_a_obj_lv4digsand"),
ActorRel(Matching, "d_a_obj_lv4floor"),
ActorRel(Matching, "d_a_obj_lv4gear"),
ActorRel(NonMatching, "d_a_obj_lv4prelvtr"),
ActorRel(NonMatching, "d_a_obj_lv4prwall"),
ActorRel(NonMatching, "d_a_obj_lv4sand"),
ActorRel(Matching, "d_a_obj_lv5FloorBoard"),
ActorRel(Matching, "d_a_obj_lv5IceWall"),
ActorRel(Matching, "d_a_obj_lv5SwIce"),
ActorRel(Matching, "d_a_obj_lv5ychndlr"),
ActorRel(Matching, "d_a_obj_lv5yiblltray"),
ActorRel(NonMatching, "d_a_obj_lv6ChangeGate"),
ActorRel(NonMatching, "d_a_obj_lv6FurikoTrap"),
ActorRel(NonMatching, "d_a_obj_lv6Lblock"),
ActorRel(NonMatching, "d_a_obj_lv6SwGate"),
ActorRel(NonMatching, "d_a_obj_lv6SzGate"),
ActorRel(NonMatching, "d_a_obj_lv6Tenbin"),
ActorRel(NonMatching, "d_a_obj_lv6TogeRoll"),
ActorRel(NonMatching, "d_a_obj_lv6TogeTrap"),
ActorRel(NonMatching, "d_a_obj_lv6bemos"),
ActorRel(NonMatching, "d_a_obj_lv6bemos2"),
ActorRel(NonMatching, "d_a_obj_lv6egate"),
ActorRel(NonMatching, "d_a_obj_lv6elevta"),
ActorRel(NonMatching, "d_a_obj_lv6swturn"),
ActorRel(NonMatching, "d_a_obj_lv7BsGate"),
ActorRel(NonMatching, "d_a_obj_lv7PropellerY"),
ActorRel(NonMatching, "d_a_obj_lv7bridge"),
ActorRel(NonMatching, "d_a_obj_lv8KekkaiTrap"),
ActorRel(NonMatching, "d_a_obj_lv8Lift"),
ActorRel(NonMatching, "d_a_obj_lv8OptiLift"),
ActorRel(NonMatching, "d_a_obj_lv8UdFloor"),
ActorRel(NonMatching, "d_a_obj_lv9SwShutter"),
ActorRel(NonMatching, "d_a_obj_magLift"),
ActorRel(NonMatching, "d_a_obj_magLiftRot"),
ActorRel(NonMatching, "d_a_obj_maki"),
ActorRel(NonMatching, "d_a_obj_master_sword"),
ActorRel(NonMatching, "d_a_obj_mato"),
ActorRel(NonMatching, "d_a_obj_mhole"),
ActorRel(NonMatching, "d_a_obj_mie"),
ActorRel(Matching, "d_a_obj_mirror_6pole"),
ActorRel(NonMatching, "d_a_obj_mirror_chain"),
ActorRel(Matching, "d_a_obj_mirror_sand"),
ActorRel(Matching, "d_a_obj_mirror_screw"),
ActorRel(NonMatching, "d_a_obj_mirror_table"),
ActorRel(NonMatching, "d_a_obj_msima"),
ActorRel(NonMatching, "d_a_obj_mvstair"),
ActorRel(Matching, "d_a_obj_myogan"),
ActorRel(NonMatching, "d_a_obj_nagaisu"),
ActorRel(NonMatching, "d_a_obj_nan"),
ActorRel(NonMatching, "d_a_obj_ndoor"),
ActorRel(NonMatching, "d_a_obj_nougu"),
ActorRel(NonMatching, "d_a_obj_octhashi"),
ActorRel(Matching, "d_a_obj_oiltubo"),
ActorRel(Matching, "d_a_obj_onsen"),
ActorRel(Matching, "d_a_obj_onsenFire"),
ActorRel(NonMatching, "d_a_obj_onsenTaru"),
ActorRel(NonMatching, "d_a_obj_pdoor"),
ActorRel(NonMatching, "d_a_obj_pdtile"),
ActorRel(NonMatching, "d_a_obj_pdwall"),
ActorRel(NonMatching, "d_a_obj_picture"),
ActorRel(NonMatching, "d_a_obj_pillar"),
ActorRel(Matching, "d_a_obj_pleaf"),
ActorRel(NonMatching, "d_a_obj_poCandle"),
ActorRel(NonMatching, "d_a_obj_poFire"),
ActorRel(NonMatching, "d_a_obj_poTbox"),
ActorRel(Matching, "d_a_obj_prop"),
ActorRel(NonMatching, "d_a_obj_pumpkin"),
ActorRel(Matching, "d_a_obj_rcircle"),
ActorRel(NonMatching, "d_a_obj_rfHole"),
ActorRel(Matching, "d_a_obj_rgate"),
ActorRel(NonMatching, "d_a_obj_riverrock"),
ActorRel(Matching, "d_a_obj_rock"),
ActorRel(NonMatching, "d_a_obj_rotBridge"),
ActorRel(NonMatching, "d_a_obj_rotTrap"),
ActorRel(NonMatching, "d_a_obj_roten"),
ActorRel(NonMatching, "d_a_obj_rstair"),
ActorRel(NonMatching, "d_a_obj_rw"),
ActorRel(Matching, "d_a_obj_saidan"),
ActorRel(NonMatching, "d_a_obj_sakuita"),
ActorRel(NonMatching, "d_a_obj_sakuita_rope"),
ActorRel(NonMatching, "d_a_obj_scannon"),
ActorRel(NonMatching, "d_a_obj_scannon_crs"),
ActorRel(NonMatching, "d_a_obj_scannon_ten"),
ActorRel(NonMatching, "d_a_obj_sekidoor"),
ActorRel(Matching, "d_a_obj_sekizo"),
ActorRel(NonMatching, "d_a_obj_sekizoa"),
ActorRel(NonMatching, "d_a_obj_shield"),
ActorRel(Equivalent, "d_a_obj_sm_door"),
ActorRel(NonMatching, "d_a_obj_smallkey"),
ActorRel(NonMatching, "d_a_obj_smgdoor"),
ActorRel(Matching, "d_a_obj_smoke"),
ActorRel(NonMatching, "d_a_obj_smtile"),
ActorRel(Matching, "d_a_obj_smw_stone"),
ActorRel(Matching, "d_a_obj_snowEffTag"),
ActorRel(Matching, "d_a_obj_snow_soup"),
ActorRel(NonMatching, "d_a_obj_so"),
ActorRel(NonMatching, "d_a_obj_spinLift"),
ActorRel(NonMatching, "d_a_obj_ss_drink"),
ActorRel(Matching, "d_a_obj_ss_item"),
ActorRel(NonMatching, "d_a_obj_stairBlock"),
ActorRel(NonMatching, "d_a_obj_stone"),
ActorRel(NonMatching, "d_a_obj_stopper"),
ActorRel(NonMatching, "d_a_obj_stopper2"),
ActorRel(Matching, "d_a_obj_suisya"),
ActorRel(NonMatching, "d_a_obj_sw"),
ActorRel(NonMatching, "d_a_obj_swBallA"),
ActorRel(NonMatching, "d_a_obj_swBallB"),
ActorRel(Matching, "d_a_obj_swBallC"),
ActorRel(NonMatching, "d_a_obj_swLight"),
ActorRel(NonMatching, "d_a_obj_swchain"),
ActorRel(NonMatching, "d_a_obj_swhang"),
ActorRel(NonMatching, "d_a_obj_sword"),
ActorRel(NonMatching, "d_a_obj_swpush2"),
ActorRel(Matching, "d_a_obj_swspinner"),
ActorRel(NonMatching, "d_a_obj_swturn"),
ActorRel(NonMatching, "d_a_obj_syRock"),
ActorRel(NonMatching, "d_a_obj_szbridge"),
ActorRel(NonMatching, "d_a_obj_taFence"),
ActorRel(Matching, "d_a_obj_table"),
ActorRel(NonMatching, "d_a_obj_takaraDai"),
ActorRel(NonMatching, "d_a_obj_tatigi"),
ActorRel(NonMatching, "d_a_obj_ten"),
ActorRel(Matching, "d_a_obj_testcube"),
ActorRel(Matching, "d_a_obj_tgake"),
ActorRel(NonMatching, "d_a_obj_thashi"),
ActorRel(NonMatching, "d_a_obj_thdoor"),
ActorRel(NonMatching, "d_a_obj_timeFire"),
ActorRel(NonMatching, "d_a_obj_tks"),
ActorRel(Matching, "d_a_obj_tmoon"),
ActorRel(NonMatching, "d_a_obj_toaru_maki"),
ActorRel(NonMatching, "d_a_obj_toby"),
ActorRel(NonMatching, "d_a_obj_tobyhouse"),
ActorRel(NonMatching, "d_a_obj_togeTrap"),
ActorRel(NonMatching, "d_a_obj_tombo"),
ActorRel(Matching, "d_a_obj_tornado"),
ActorRel(Matching, "d_a_obj_tornado2"),
ActorRel(Matching, "d_a_obj_tp"),
ActorRel(NonMatching, "d_a_obj_treesh"),
ActorRel(NonMatching, "d_a_obj_twGate"),
ActorRel(NonMatching, "d_a_obj_udoor"),
ActorRel(Matching, "d_a_obj_usaku"),
ActorRel(Matching, "d_a_obj_vground"),
ActorRel(NonMatching, "d_a_obj_volcball"),
ActorRel(NonMatching, "d_a_obj_volcbom"),
ActorRel(NonMatching, "d_a_obj_warp_kbrg"),
ActorRel(NonMatching, "d_a_obj_warp_obrg"),
ActorRel(NonMatching, "d_a_obj_waterGate"),
ActorRel(NonMatching, "d_a_obj_waterPillar"),
ActorRel(Matching, "d_a_obj_waterfall"),
ActorRel(NonMatching, "d_a_obj_wchain"),
ActorRel(NonMatching, "d_a_obj_wdStick"),
ActorRel(NonMatching, "d_a_obj_web0"),
ActorRel(Matching, "d_a_obj_web1"),
ActorRel(Matching, "d_a_obj_well_cover"),
ActorRel(Matching, "d_a_obj_wflag"),
ActorRel(Matching, "d_a_obj_wind_stone"),
ActorRel(Matching, "d_a_obj_window"),
ActorRel(NonMatching, "d_a_obj_wood_pendulum"),
ActorRel(NonMatching, "d_a_obj_wood_statue"),
ActorRel(Matching, "d_a_obj_wsword"),
ActorRel(NonMatching, "d_a_obj_yel_bag"),
ActorRel(Matching, "d_a_obj_ystone"),
ActorRel(Matching, "d_a_obj_zcloth"),
ActorRel(NonMatching, "d_a_obj_zdoor"),
ActorRel(NonMatching, "d_a_obj_zrTurara"),
ActorRel(Matching, "d_a_obj_zrTuraraRock"),
ActorRel(Equivalent, "d_a_obj_zraMark"),
ActorRel(Matching, "d_a_obj_zra_freeze"),
ActorRel(NonMatching, "d_a_obj_zra_rock"),
ActorRel(NonMatching, "d_a_passer_mng"),
ActorRel(NonMatching, "d_a_peru"),
ActorRel(NonMatching, "d_a_ppolamp"),
ActorRel(Matching, "d_a_skip_2D"),
ActorRel(Matching, "d_a_startAndGoal", extra_cflags=['-pragma "nosyminline off"']),
ActorRel(NonMatching, "d_a_swBall"),
ActorRel(Matching, "d_a_swLBall"),
ActorRel(Matching, "d_a_swTime"),
ActorRel(NonMatching, "d_a_tag_Lv6Gate"),
ActorRel(Matching, "d_a_tag_Lv7Gate"),
ActorRel(Matching, "d_a_tag_Lv8Gate"),
ActorRel(Matching, "d_a_tag_TWgate"),
ActorRel(Matching, "d_a_tag_arena"),
ActorRel(Matching, "d_a_tag_assistance"),
ActorRel(Matching, "d_a_tag_bottle_item"),
ActorRel(Matching, "d_a_tag_chgrestart"),
ActorRel(Matching, "d_a_tag_csw"),
ActorRel(Matching, "d_a_tag_escape"),
ActorRel(Matching, "d_a_tag_firewall"),
ActorRel(Matching, "d_a_tag_gra"),
ActorRel(Matching, "d_a_tag_guard"),
ActorRel(Matching, "d_a_tag_instruction"),
ActorRel(Matching, "d_a_tag_kago_fall"),
ActorRel(Matching, "d_a_tag_lightball"),
ActorRel(Matching, "d_a_tag_lv5soup"),
ActorRel(Matching, "d_a_tag_lv6CstaSw"),
ActorRel(Matching, "d_a_tag_mmsg"),
ActorRel(Matching, "d_a_tag_mwait"),
ActorRel(Matching, "d_a_tag_myna2"),
ActorRel(Matching, "d_a_tag_myna_light"),
ActorRel(Matching, "d_a_tag_pachi"),
ActorRel(Matching, "d_a_tag_poFire"),
ActorRel(Matching, "d_a_tag_qs"),
ActorRel(Matching, "d_a_tag_ret_room"),
ActorRel(Matching, "d_a_tag_river_back"),
ActorRel(Matching, "d_a_tag_rmbit_sw"),
ActorRel(Matching, "d_a_tag_schedule"),
ActorRel(Matching, "d_a_tag_setBall"),
ActorRel(Matching, "d_a_tag_setrestart"),
ActorRel(Matching, "d_a_tag_shop_camera"),
ActorRel(Matching, "d_a_tag_shop_item"),
ActorRel(Matching, "d_a_tag_smk_emt"),
ActorRel(Matching, "d_a_tag_spinner"),
ActorRel(Matching, "d_a_tag_sppath"),
ActorRel(Matching, "d_a_tag_ss_drink"),
ActorRel(Matching, "d_a_tag_stream"),
ActorRel(Matching, "d_a_tag_theB_hint"),
ActorRel(Matching, "d_a_tag_wara_howl"),
ActorRel(Matching, "d_a_tag_watchge"),
ActorRel(Matching, "d_a_tag_waterfall"),
ActorRel(NonMatching, "d_a_tag_wljump"),
ActorRel(Matching, "d_a_tag_yami", extra_cflags=['-pragma "nosyminline off"']),
ActorRel(Matching, "d_a_talk"),
ActorRel(Matching, "d_a_tboxSw"),
ActorRel(NonMatching, "d_a_title"),
ActorRel(Matching, "d_a_warp_bug"),
]
# Define our custom asset processing scripts
config.custom_build_rules = [
{
"name": "convert_matDL",
"command": "$python tools/converters/matDL_dis.py $in $out --symbol $symbol",
"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 "matDL":
steps.append(
{
"rule": "convert_matDL",
"inputs": out_dir / "bin" / asset["binary"],
"outputs": out_dir / "include" / asset["header"],
"variables": {
"symbol": asset["symbol"],
},
"implicit": Path("tools/converters/matDL_dis.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)
# Optional extra categories for progress tracking
config.progress_categories = [
ProgressCategory("game", "TP Game Code"),
ProgressCategory("core", "Core Engine"),
ProgressCategory("sdk", "SDK"),
ProgressCategory("third_party", "Third Party"),
]
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)