https://github.com/chaoticgd/ghidra-emotionengine-reloaded
An extension for Ghidra that adds support for the PlayStation 2.
https://github.com/chaoticgd/ghidra-emotionengine-reloaded
ghidra ps2 reverse-engineering
Last synced: 11 days ago
JSON representation
An extension for Ghidra that adds support for the PlayStation 2.
- Host: GitHub
- URL: https://github.com/chaoticgd/ghidra-emotionengine-reloaded
- Owner: chaoticgd
- License: apache-2.0
- Created: 2023-01-14T21:37:19.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2026-01-21T00:49:12.000Z (4 months ago)
- Last Synced: 2026-01-21T11:17:54.098Z (4 months ago)
- Topics: ghidra, ps2, reverse-engineering
- Language: Java
- Homepage:
- Size: 638 KB
- Stars: 196
- Watchers: 15
- Forks: 12
- Open Issues: 7
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# Ghidra Emotion Engine: Reloaded [](https://github.com/chaoticgd/ghidra-emotionengine-reloaded/actions/workflows/test.yml)
An extension for Ghidra that adds support for the PlayStation 2.
This extension is based on the original [ghidra-emotionengine](https://github.com/beardypig/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 12.1.
## Installation
Release builds are available on the [releases](https://github.com/chaoticgd/ghidra-emotionengine-reloaded/releases) page. Unstable builds, generated whenever there is a push to the main branch, are available [here](https://github.com/chaoticgd/ghidra-emotionengine-reloaded/releases/tag/unstable). To install the package, follow the instructions in the [Ghidra documentation](https://ghidra-sre.org/InstallationGuide.html#Extensions).
## 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.