ghidra-emotionengine-reloaded
ghidra-emotionengine-reloaded copied to clipboard
An extension for Ghidra that adds support for the PlayStation 2.
Ghidra Emotion Engine: Reloaded 
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
- Disassemble and decompile EE-specific instruction sets (MMI, VU0 macro mode, etc).
- Recover data types, functions and global variables from ELF files with
.mdebug
sections with the included STABS Analyzer. - Import PCSX2 save states.
- Fix references to global variables with the MIPS-R5900 Constant Reference Analyzer.
- Support for Ghidra 11.1.1.
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, which Ghidra's zip implementation doesn't support. To work around this you have to change SavestateZstdCompression
to false
in the EmuCore
section of your PCSX2.ini
.
If you are using an older version, you have to add SavestateZstdCompression=disabled
to your PCSX2_vm.ini
under EmuCore
section.
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.