Releases: beardypig/ghidra-emotionengine
Ghidra Emotion Engine Processor v1.6.0
This release includes many improvements from many people, thank you all for your contributions.
With this release only Ghidra >9.2 is supported.
- Improved code generation for
if (true) goto x
cases (@TellowKrinkle) - Correct bc1tl and bc1fl. (@PFedak)
- Fixed relocation handling (@astrelsky)
- Better handling of floating point in function decompilation (@astrelsky)
- Vector commands fix for shared input/output registers (@PFedak)
Special thanks to @VelocityRa and @astrelsky.
Nick Renieris <velocityra@gmail.com> (1):
Fix for Ghidra 9.2
PFedak <pzfedak@gmail.com> (2):
Correct bc1tl and bc1fl.
Fix parallel shift instructions.
Peter Fedak <pzfedak@gmail.com> (2):
Remove temp variable from psllvw.
Fix some vector commands for shared input/output registers.
astrelsky <ajs222@njit.edu> (5):
Resolves #16
Fixes #46
added callfixups for software double functions
Added tests for InjectPayloadVu
Refactored InjectPayloadVu
beardypig <beardypig@protonmail.com> (7):
test and build with ghidra version 9.2
Remove support for Ghidra <9.2
adjust gradle config
refactor tests
Create a nightly build
Add a note in the readme about the nightlies.
publish and test with Ghidra 9.2.2
tellowkrinkle <tellowkrinkle@users.noreply.github.com> (1):
Add separate `b` disassembly
Ghidra Emotion Engine Processor Nightly
A nightly version, built and published once per day.
Ghidra Emotion Engine Processor v1.5.0
This release brings a number of new features and improvements
- implementation of the MMI and VU instructions (@chaoticgd and @astrelsky)
- a PCSX2 save state importer (@astrelsky)
- a constant reference analyzer for the MIPS R5900 (@astrelsky)
- and a number of bug fixes
With this release Ghidra 9.0 is no longer supported.
GenericMadScientist <rayw1710@hotmail.co.uk> (1):
Fix LI instruction to use signed immediate.
Gregory Morse <gregory.morse@live.com> (2):
IDA Pro binding added
IDA Pro binding added
astrelsky <ajs222@njit.edu> (12):
Fixed result of special three-operand mult instructions
Corrected/Added missing syscalls
Corrected/Added missing syscalls
Added PCSX2SaveStateImporter
Added proper implementation of MMI instructions.
Added ConstantReferenceAnalyzer
Added ghidra libs, sources and documentation...
VU instruction implementations
attach cache names courtesy of ps2dis
Set the microMode=0 restriction to all non VU instructions
Added missing MMI instructions
Fixed pmthi, pmthl.lw and pmtlo instructions
beardypig <beardypig@protonmail.com> (7):
Generate EI and DI functions for ei and di on COP0
Use gradlew to install the latest version of gradle
Update readme to include some installation instructions
Use gradlew to install the latest version of gradle
Update readme to include some installation instructions
add basic compilation instructions to the readme
Setup publish and test workflows
chaoticgd <chaoticgd@protonmail.com> (30):
Added EE MMIO registers
Added remaining DMAC registers
Prefix all MMIO register names with "REG_" to clean up symbol tree
Added/edited comments for some MMIO registers
Gave the IPU registers better names
Improve formatting in mmio.sinc
Added script to import/sort register labels
Tweaked two MMIO register names
Added reference link to PCSX2 source code file in mmio.sinc
Added some MMIO registers from PCSX2 source
Tweaked comment formatting in mmio.sinc
Tweaked spacing of definitions in mmio.sinc
Added all VU macro instructions
Moved some VU macro mode instructions to cop2.sinc
Define outputs for VU macro instructions
Fixed VU macro square root instructions
Tweaked formatting in vuupper.sinc
Implement some VU macro mode instructions
Moved vcallms and vcallmsr instructions to cop2.sinc
Attach vuit, vuis to VU integer registers
Fix vufd register
Fix vsubbc instruction
Corrected formatting in vuupper.sinc
Updated readme to reflect addition of VU macro instruction set
Use subtable instead of with block for detecting VU macro instructions
Implemented bc2f, bc2fl, bc2t and bc2tl instructions (fixed regression)
Moved vcallms and vcallmsr instructions inside with block, tweaked formatting
Moved some VU pcodeop definitions from vuupper.sinc to cop2.sinc
Improved vsqrt disassembly
Fixed qmfc2 and qmtc2 instructions
Ghidra Emotion Engine Processor v1.4.1
Small patch to fix auto-detection that regressed in v1.4.0, thanks @eljay.
Ghidra Emotion Engine Processor v1.4.0
Includes some bugs fixes for COP1 instructions as well a fixing #4 "MIPS UnAlligned Instruction Fix" java.lang.NullPointerException.
Lee Jeffery <leejeffery@gmail.com> (2):
Fix some COP1 instructions.
Remove incorrect operands.
beardypig <beardypig@protonmail.com> (3):
special case of padduw as moveq
Include some interesting pre-defined memory blocks
Rename the processor to MIPS-R5900 and variant to PS2
Ghidra Emotion Engine Processor v1.3.3
Fixed issues with the stack in decompilations, now things look a lot more sane.
There are still issues with 128 bit register support. However, for the most part you will get a readable decompilation.
Ghidra Emotion Engine Processor v1.3.0
Bug fixes for some instructions and slightly better decompiler output.
Ghidra Emotion Engine Processor v1.2.0
Feature parity with IDA Pro 7 for the instruction decoding. COP2 is supported, however the floating point instructions are decoded as cop2 0x.......
- the same as IDA.
Ghidra Emotion Engine Processor v1.1.0
Bug fix for missing EE core instructions 3 operand mult
and multu
, as well as the funnel shift instructions.
Ghidra Emotion Engine Processor
Initial release of the Emotion Engine Ghidra processor.
Please report bugs in the GitHub issue tracker.