mit einem Klick
dc3-decomp
dc3-decomp enthält 25 gesammelte Skills von freeqaz, mit Repository-Berufsabdeckung und Skill-Detailseiten auf SkillsMP.
Skills in diesem Repository
Decompile and analyze a function from Ghidra. Shows decompiled C code, switch statements, and cast operations. Use when investigating function structure or debugging type issues. Automatically resolves symbol names to correct functions. Need to skip sandbox to access Ghidra over network.
Run decomp-synth (the guided source-synthesis permuter) on a function — beam search over 112 behaviour-neutral C++ transforms (signed/unsigned, declaration reorder, branch polarity, variable extraction, …), each scored with objdiff, to drive a near-match toward 100%. Use when a function is below 100% and you want to automatically try source variations.
Diff stack-frame layouts between target and base for a function. Labels base-side slots with source variable names from a MSVC /Z7 CodeView recompile. Identifies SWAPPED pairs (decl-reorder candidates), SHIFTED slots, DIFFER (different variables in same slot), and TGT_ONLY / BASE_ONLY (extra/missing locals). Filters out callee-save slots.
Dump vtable layout for a class from original COFF .obj files. Maps each slot to the actual virtual function symbol AND its declaration-order name from the class header, so ICF-merged entries (OnlyReturns / merged_Returns1 / etc.) are still identifiable. Use when debugging vtable offset mismatches in objdiff.
Diff a DATA symbol (vtable ??_7Class@@6B@, RTTI, pointer/jump table, string pool, static initializer) between the target and the decompiled build, showing byte differences and — for each relocation slot — which function/symbol each side points to. Use when a data symbol is below 100%, or to find which vtable slot resolves to the wrong function. The MCP run_objdiff wrapper does not expose data diffs, so this calls objdiff-cli directly.
Run DC3's original Xbox 360 debug XEX on Xenia (Linux/Vulkan) and navigate to gameplay. Captures headless frames of menus, song select, loading, and in-game venues with 3D characters. Use when testing original binary behavior, capturing IK telemetry, or comparing Xbox vs native rendering.
Capture Vulkan API traces from the native port using GFXReconstruct. Works headless (no swapchain needed). Use when debugging rendering issues, analyzing GPU workload, or capturing frames for inspection.
Take screenshots of the native port engine or milo-viewer. Captures headless GPU-rendered PNG frames at specified frame numbers. Use when debugging UI layout, rendering, or verifying visual changes.
Side-by-side target vs base assembly comparison with cluster boundaries and mismatch annotations. Shows aligned instructions with match markers, register swap details, and offset deltas. Use when diagnosing the last few percent of a function.
Get local variable names, types, and register/stack assignments from RB2 DWARF debug info. Shows parameters, locals (GPR/FPR/stack), and references for functions in the shared Milo engine. Ground truth for variable names/types when starting decomp.
Resolve a virtual function call through a sub-object vtable. Given (class, sub_object_offset, vtable_slot), identifies the actual function being called. Use when target assembly loads a vtable from (this+offset) and calls slot N.
Clean up decomp code after a first pass. Improve readability and maintainability while preserving exact match percentage. Used as a second pass by the orchestrator.
Analyze GFXReconstruct Vulkan captures. Show metadata, API call summaries, JSON export, SPIR-V shader extraction and disassembly. Use after gpu-capture to diagnose rendering issues.
Interactive GPU frame debugging with RenderDoc. Capture frames from windowed apps, inspect draw calls, pipeline state, textures, shaders, and pixel history. Also supports rdc-cli for scripted inspection. For headless apps, use gpu-capture instead.
Extract assets/materials from DC3 .ark archives and .milo/.dta files. Use when you need game assets for the native port, debugging rendering, or inspecting data.
Build the native port (x86_64 Linux, Clang). Targets include dc3-native, milo-viewer, render-test, milo-tests, milo2gltf. Use when verifying native compilation or running native tests.
Get decomp progress summary. Shows total/complete/at_limit counts, percentages, detected patterns, and top units with remaining work.
Batch-check all untracked functions in a unit. Runs objdiff on each, auto-reports 100% matches as COMPLETE. Returns summary with counts and partial-match details. Use this instead of manual query+objdiff+report loops.
Check struct/class layout against Ghidra's Data Type Manager. Compares DC3 header definitions with Ghidra's analysis to find offset mismatches. Use when debugging struct alignment issues or verifying class layouts.
Get class layout from RB2 DWARF debug info. Shows member offsets, sizes, types, and inheritance. Ground truth for struct layouts when DC3 headers lack offset information.
Get RB3 file pairing info for a DC3 unit. Shows compatibility score, function overlap, and optionally the RB3 source code. Use to leverage RB3 reference implementations for shared Milo engine code.
Get class/struct layout info including members, offsets, parents, and inheritance chain. Also look up which field is at a specific offset. Use when debugging struct alignment or verifying class layouts.
Query unicorn behavioral test results from the database. Filter functions by verdict (EQUIVALENT/DIVERGENT), divergence class (logic/build_env/regalloc), and unit. Use to find functions with real behavioral bugs to fix.
Semantic search over Ghidra decompiled code. Use when looking for similar implementations, finding functions by behavior description, or searching for code patterns. Automatically filters out __unwind$ and other noise.
Run full reconnaissance on a function before starting work. Shows match%, unicorn behavioral verdict, divergence class, struct field access map, and workability assessment. Use before decomp work to understand what you're dealing with.