Merged
Conversation
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Manages player count for classic mode - adding and removing players from the player init data array. Only real difference is one extra mr instruction from MWCC register allocation. Also fixes lbl_804735E8 struct size with padding and adds mn/types.h include for PlayerInitData access. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Resets classic mode player state: saves count, sets to 1, resets player 0 position/damage/facing, removes extra players and re-adds slot 1, clears score tracking fields. Resizes lbl_80473700 to 200 ints to cover all known offsets (up to 0x310). Adds ifstatus.h include. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Sets up classic mode opponent characters from enter data. Iterates through right-side characters, configuring each player slot with character kind, costume, facing direction, model scale, and proc. Adds ClassicProcArray typedef and lbl_803B7C40 extern for const proc table data. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…ing) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Camera animation state machine with 3 cases: - Case 0: animation completion → load next anim from DynamicModelDesc table - Case 1: flash effect trigger → advance state - Case 2: animation done → remove GObj Changed lbl_804736C0.x36 and x37 to native bitfield structs for rlwimi codegen. Added x37_state_bits typedef. gm_8018838C_OnFrame now 100%. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Camera animation state machine using x37 lower 2 bits (state2 field). 4 cases: intro animation → advance → button press → remove. Very similar structure to fn_80187AB4 but uses bits 0-1 instead of 2-3. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Report for GALE01 (802c37b - 2f0587a)📈 Matched code: 59.50% (+0.05%, +1932 bytes) ✅ 5 new matches
🥀 1 broken match
📈 30 improvements in unmatched items
📉 1 regression in an unmatched item
|
…iffs) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…46C) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
… target is leaf) The target is a leaf function using only r3/r5/r6/r7 with no prologue. Our compiler generates stmw/lmw due to BSS-relative addressing for lbl_80473700, which requires caching the base address in callee-saved registers. Structure and logic are correct - all differences are register allocation and BSS offset constants. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Updates training mode HUD: animation counters, score displays, stage name text, item/CPU level indicators. Uses u8* base pointer at lbl_80473700+0x114 for all field accesses. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…ine diffs) Creates 10 SObj sprites in a grid pattern with random jitter for 1P mode splash effects. Exposed xD0/xDC fields in lbl_804735E8 pad. Added #pragma dont_inline on for fn_801855BC to prevent auto-inlining. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Creates text objects for left/right character names on the splash screen. Two loops: xEF for left side, xF0 for right side. Special case xE4==4 adds 340.0f x-offset and returns immediately. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Sets up SObj rendering, creates display GObjs, initializes image descriptors for capture buffers, fills zigzag pattern for xD0 image indices, creates camera and splash effect GObjs. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Scene setup function that loads archives, creates camera/light/fog GObjs, loads JObj models, and branches based on game type (xE4). Each switch case duplicates camera/jobj/fog setup with different ending calls. Stack copy pattern for archive name selection. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Positions character model JObj using adjustment table per character ID. Gets translate from child JObj, applies offset table values (-7.0 to x), sets scale per character. Also positions second player entity relative to the first (+3x, +4y, -5z) with same scale. Remaining diffs are systemic (data section base, SDA offsets, 4-byte stack shift). Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…teams) Positions character models based on team lineup and game type. Gets translate from lbl_804735A8.x4[1], adjusts X/Y/Z position using archive data indexed by character ID and team size. Sets scale based on game type (xE4==2 uses per-char scale, else uses lineup table). Copies position and scale to companion entities. Remaining diffs are systemic (BSS/data section base, SDA offsets, extra register from BSS base caching). Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Positions left-side character models for classic mode intro. Similar to fn_80184138 but uses x4[0] as source JObj, xF1 (left char IDs), xEF (left char amt). Switch on arg1: case 1 shifts Z-10 and sets arrows at x4[2], case 2 shifts Z-30 and sets arrows at x4[3]. When xE4==2, uses different archive offset tables (0x6A8/0x630 vs 0x6C/-0xC). Remaining diffs are systemic (BSS/data/SDA offsets, extra f30 callee save). Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Remaining diffs are systemic (BSS base offset, add operand order, SDA offset for assert string relocation). Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Collaborator
Author
|
Lots of fuzzy matches, not a lot of 100% ones, I still believe this is an improvement :) |
Collaborator
Author
|
The function that broke is data / offset stuff, will be resolved when linking |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Tracking PR as per usual