Skip to content

support 32-bit #545

@ghost

Description

Hello,
while testing my local build I experienced a freeze on koopa troopa beach course.
After some logging and debugging I found out the issue was in animation.c function render_armature.
the animation command sequence for the seagull contained garbled data, making it run an endless loop.
apparently the issue is caused by the structure "Armature" in animation.h

typedef struct {
    /* 0x00 */ s64 type;
    /* 0x04 */ s64 size;
    /* 0x08 */ s64 always_zero_never_used;
    /* 0x0C */ Gfx* model;
    /* 0x10 */ s64 pos[3];
} Armature;

those s64 fields are probably supposed to be s32, as also the offsets at their sides suggest.
the structure is supposed to host data coming from uintptr_t d_course_koopa_troopa_beach_unk4[] in \courses\koopa_troopa_beach\course_offsets.c
In any case I have tried to change the fields to s32 and it resolved the freeze (and seagull animation played correctly)
Thank you

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingenhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions