chaoticgd / ghidra-emotionengine-reloaded

An extension for Ghidra that adds support for the PlayStation 2.
Apache License 2.0
147 stars 11 forks source link
ghidra ps2 reverse-engineering

Ghidra Emotion Engine: Reloaded run tests

An extension for Ghidra that adds support for the PlayStation 2.

This extension is based on the original ghidra-emotionengine project, with a number of changes.

Features

Installation

Release builds are available on the releases page. Unstable builds, generated whenever there is a push to the main branch, are available here. To install the package, follow the instructions in the Ghidra documentation.

Building

If you want to build the extension yourself, install gradle and run:

gradle -PGHIDRA_INSTALL_DIR=/path/to/ghidra buildExtension

Common Issues

7-Zip returned unsupported method

Modern versions of PCSX2 store save states using zstd compression by default, which Ghidra's zip implementation doesn't support. To work around this, if you are using PCSX2 v2.1.178 or higher you should make sure that Tools -> Show Advanced Settings is checked, then navigate to File -> Settings -> Advanced -> Savestate Settings and change the Compression Method option to Deflate64. If you are using an older version, you will have to change SavestateZstdCompression to false in the EmuCore section of your PCSX2.ini file.

Decompilation fails for some functions

Try disabling the Decompiler Parameter ID analyzer.

Symbols aren't being demangled

Enable the Use Deprecated Demangler option in the settings for the Demangler GNU analyzer.