PSX: Difference between revisions
(→IDA Pro: This is my guess as to why the disassembly is truncated) |
mNo edit summary |
||
(4 intermediate revisions by 3 users not shown) | |||
Line 2: | Line 2: | ||
* [[Castlevania SOTN]] | * [[Castlevania SOTN]] | ||
* [[Legacy of Kain: Soul Reaver]] | |||
* [[MegaMan Legends|MegaMan Legends]] | * [[MegaMan Legends|MegaMan Legends]] | ||
* [[Metal Gear Solid]] | * [[Metal Gear Solid]] | ||
Line 7: | Line 8: | ||
===Compilers=== | ===Compilers=== | ||
* [[PSY-Q]] ([[GCC]] fork) | * [[PSY-Q]] ([[GCC]] fork) | ||
* Vanilla GCC + [[maspsx]] | |||
===Tools=== | ===Tools=== | ||
====Decompilers==== | ====Decompilers==== | ||
===== [[mips2c]] ===== | ===== [[mips2c|m2c]] ===== | ||
The most reliable way to get the closest C output to the original source. The decompiler is open source. | The most reliable way to get the closest C output to the original source. The decompiler is open source. | ||
Line 25: | Line 27: | ||
===== [[IDA Pro]] ===== | ===== [[IDA Pro]] ===== | ||
Paid product. A MIPS decompiler was introduced starting from IDA Pro 7.5. The output looks clean but often over-simplified. Certain instructions are completely absent from the output; this is due to the | Paid product. A MIPS decompiler was introduced starting from IDA Pro 7.5. The output looks clean but often over-simplified. Certain instructions are completely absent from the output; this is due to the disassembler outputting pseudo-instructions that combine multiple instructions (such as outputting a pseudo instruction for lw from a lui and lw). You may want to use the [psxida https://github.com/lab313ru/psxida/] plugin. Not recommended other than very specific scenario. | ||
You can get around the truncation by going to "Options->General->Analysis->Processor specific analysis options" and unchecking "Simplify instructions". | |||
====Disassemblers==== | ====Disassemblers==== | ||
*[[splat]] | *[[splat]] | ||
*[[spimdisasm]] | *[[spimdisasm]] |
Latest revision as of 19:36, 9 July 2024
Projects
Compilers
Tools
Decompilers
m2c
The most reliable way to get the closest C output to the original source. The decompiler is open source.
Ghidra
A fully-fledged executable analysis tool. It is open source.
You may want to use the [ghidra_psx_ldr https://github.com/lab313ru/ghidra_psx_ldr] plugin, which automatically creates the right memory regions and comes with a way to regonize the right PSY-Q SDK by matching the libraries with their signatures.
The decompiler produces noisy but somewhat reliable output.
IDA Pro
Paid product. A MIPS decompiler was introduced starting from IDA Pro 7.5. The output looks clean but often over-simplified. Certain instructions are completely absent from the output; this is due to the disassembler outputting pseudo-instructions that combine multiple instructions (such as outputting a pseudo instruction for lw from a lui and lw). You may want to use the [psxida https://github.com/lab313ru/psxida/] plugin. Not recommended other than very specific scenario.
You can get around the truncation by going to "Options->General->Analysis->Processor specific analysis options" and unchecking "Simplify instructions".