diff --git a/configure.py b/configure.py index a8058669e..44cfdf49c 100644 --- a/configure.py +++ b/configure.py @@ -151,8 +151,8 @@ if args.no_asm: # 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.dtk_tag = "v1.3.0" +config.objdiff_tag = "v2.4.0" config.sjiswrap_tag = "v1.2.0" config.wibo_tag = "0.6.11" @@ -179,6 +179,10 @@ if args.map: # Use for any additional files that should cause a re-configure when modified config.reconfig_deps = [] +# Optional numeric ID for decomp.me preset +# Can be overridden in libraries or objects +config.scratch_preset_id = 72 # The Wind Waker (DOL) + # Base flags, common to most GC/Wii games. # Generally leave untouched, with overrides added below. cflags_base = [ @@ -292,7 +296,11 @@ def Rel(lib_name: str, objects: List[Object]) -> Dict[str, Any]: # Helper function for actor RELs def ActorRel(status, rel_name, extra_cflags=[]): - return Rel(rel_name, [Object(status, f"d/actor/{rel_name}.cpp", extra_cflags=extra_cflags)]) + return Rel(rel_name, [Object( + status, f"d/actor/{rel_name}.cpp", + extra_cflags=extra_cflags, + scratch_preset_id=73, # The Wind Waker (REL) + )]) # Helper function for JSystem libraries diff --git a/tools/project.py b/tools/project.py index 8367a240b..f15396477 100644 --- a/tools/project.py +++ b/tools/project.py @@ -48,6 +48,7 @@ class Object: "lib": None, "mw_version": None, "progress_category": None, + "scratch_preset_id": None, "shift_jis": None, "source": name, "src_dir": None, @@ -79,6 +80,7 @@ class Object: set_default("asm_dir", config.asm_dir) set_default("host", False) set_default("mw_version", config.linker_version) + set_default("scratch_preset_id", config.scratch_preset_id) set_default("shift_jis", config.shift_jis) set_default("src_dir", config.src_dir) @@ -174,6 +176,7 @@ class ProjectConfig: True # Generate compile_commands.json for clangd ) self.extra_clang_flags: List[str] = [] # Extra flags for clangd + self.scratch_preset_id: Optional[int] = None # Default decomp.me preset ID for scratches # Progress output, progress.json and report.json config self.progress = True # Enable report.json generation and CLI progress output @@ -1384,6 +1387,7 @@ def generate_objdiff_config( "platform": "gc_wii", "compiler": compiler_version, "c_flags": cflags_str, + "preset_id": obj.options["scratch_preset_id"], } if src_exists: unit_config["scratch"].update(