Open MegaMech opened 9 months ago
code_80091750:
Concerning D_802BFB80 Vetri found that changing
typedef struct
{
u8 pixel_index_array[0x1000];
} struct_D_802BFB80;
extern struct_D_802BFB80 D_802BFB80[][2][8];
to
typedef struct
{
u8 pixel_index_array[0x2000];
} struct_D_802BFB80;
extern struct_D_802BFB80 D_802BFB80[][2][4];
can lead to matches in the function(s) where its relevant. But that seems wrong given that D_802BFB80 kind of has to have 8 as its last dimension based on its usage elsewhere in the codebase. We could redefine it to being a union I guess? Something like:
typedef struct {
u8 pixel_index_array[0x2000];
} thing0;
typedef struct {
u8 pixel_index_array[0x1000];
} thing1;
typedef union {
thing0 blah0[][2][4];
thing1 blah1[][2][8];
} the_union;
extern the_union D_802BFB80;
If it makes stuff match, then great. It'd be super fugly, but if it works it works.
PR'd func_8007C4A4 https://decomp.me/scratch/aJbM5 and func_80095AE0 https://decomp.me/scratch/77riB
PR #618
PR #623 Matched func_80092290.s
Matching: |func_800AFE00| https://decomp.me/scratch/rIICB | #631 |
100% Match not necessary. Func Equivallency is good too. Don't forget to click "Family" in-case there are cleaner matches as some matches may be very fake-matchy.
mov v1,v0
and some register allocation differencesplayer
variable is weird. The instructions are correct but out of placeupdate_objects
D_800E5DF4
in some capacityif
statement. There's also an unuseddouble
, don't know if its part of this function or the one after ittextColor
function variable. The permuter reports an improvement if you make itvolatile
, but that seems wrong for several different reasons.code_80091750 Lots of funcs left 23 unattempted, 29 non_matching.
lenght
is screwyselect_current_sounds
from SM64, lots of work left to be doneprocess_envelope
from SM64. Diff is huge, no idea why. Speculation: the version of the ABI we have/use is horribly horribly wrong but is only noticeably wrong in this specific function