Adubbz / Ghidra-Switch-Loader

Nintendo Switch loader for Ghidra
ISC License
281 stars 43 forks source link

32-bit NSOs fail to import properly #3

Closed salmon0123 closed 4 years ago

salmon0123 commented 5 years ago

I am using Ghidra to analyze the main.nso file for Mario Kart 8 Deluxe, which uses the 32-bit ARM instruction set. I can import it fine as a Raw Binary, but not everything is interpreted correctly. I installed this loader to see if it produced a better output.

When I select the NSO file, the loader indeed recognizes it as a Nintendo Switch Binary. However, after changing the language to ARM:LE:32:v8:default and importing the file, I get a 0 byte result, and the Listing view for my main.nso is completely blank. This happens for both the decompressed and compressed versions of the file.

Proper compatibility for Mario Kart's NSO (as well as the other few games with 32-bit executables) with this loader would be much appreciated!

Adubbz commented 5 years ago

Yeah, I currently don't have any support for 32-bit anything at the moment. It's certainly something I'm open to, although I haven't had any use for it myself quite yet.

NWPlayer123 commented 4 years ago

New Super Mario Bros. U Deluxe and I think Goat Simulator also use ARM32

DeathChaos25 commented 4 years ago

Tokyo Mirage Sessions #FE also uses ARM32 it seems, so eventual support would be nice.

masagrator commented 4 years ago

Only solution for now:

This was not working only for Monster Hunter, I needed to uncheck Memory references in plugin.