PSX: Difference between revisions

From Decompedia
Jump to navigation Jump to search
(Add page)
 
mNo edit summary
 
(10 intermediate revisions by 4 users not shown)
Line 2: Line 2:


* [[Castlevania SOTN]]
* [[Castlevania SOTN]]
* [[Megaman Legends|MegaMMan Legends]]
* [[Legacy of Kain: Soul Reaver]]
* [[MegaMan Legends|MegaMan Legends]]
* [[Metal Gear Solid]]


===Compilers===
===Compilers===
*[[GCC]]
* [[PSY-Q]] ([[GCC]] fork)
* Vanilla GCC + [[maspsx]]
 
===Tools===
===Tools===
====Decompilers====
====Decompilers====
*Ghidra
 
*m2c
===== [[mips2c|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".
 
====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".

Disassemblers