Skip to content

JMP [!a+X] seems to be off by about three bytes or so on disassembly #1

@KungFuFurby

Description

@KungFuFurby

I decided to use SPCdra in order to deal with a complicated situation with regards to over a hundred fragments of data (specifically, Mario Paint's beta SPC700 build, though the final build of Mario Paint could also qualify.). I discovered while fixing up the switch statements that JMP [!a+X] was grabbing a pointer from the array correctly, but then it offsets the pointer by about three bytes, messing up the disassembly.

Example SPC700 build: Mario Paint Beta SPC700 Build.zip

All code is located between $0500 and $2639. I modified the memory map to have all other locations not be declared as initialized to avoid trying to interpret data that shouldn't be interpreted, as I knew some of them would never be valid under normal circumstances.

I was using Ghidra 1.0.1.2.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions