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.
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.