Giter Site home page Giter Site logo

astrelsky / ghidra-emotionengine Goto Github PK

View Code? Open in Web Editor NEW

This project forked from beardypig/ghidra-emotionengine

15.0 2.0 3.0 559 KB

Ghidra Processor for the Play Station 2's Emotion Engine MIPS based CPU

License: Apache License 2.0

Java 100.00%

ghidra-emotionengine's Introduction

ghidra-emotionengine run tests

Ghidra Processor for the Play Station 2's Emotion Engine CPU.

The core MIPS/FPU/COP0 instruction are based off the MIPS32/64 processor included in Ghidra, with superfluous instructions stripped out and some instructions modified.

The following instuction sets are currently supported

  1. The core MIPS instruction set
  2. The EE core instruction set
  3. COP0 (System control processor) instruction set
  4. COP1 (FPU) instruction set
  5. COP2 (VU0) macro instruction set

Compilation

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

gradle -PGHIDRA_INSTALL_DIR=/path/to/ghidra buildExtension

Only Ghidra versions 9.2 and above are supported.

Installation

Precompiled packages for each version of Ghidra are available in the releases tab. To install the package, follow the instructions in the Ghidra docs. A "nightly" version of the plugin is available under the latest tag. This version is updated once per day.

Issues

I'm sure there are issues, and if you find any please report them.

TODO

  • Function analysis

ghidra-emotionengine's People

Contributors

astrelsky avatar beardypig avatar chaoticgd avatar genericmadscientist avatar gregorymorse avatar jayfoxrox avatar mdecicco avatar pfedak avatar rolphwoggom avatar tellowkrinkle avatar tupelov avatar velocityra avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

ghidra-emotionengine's Issues

Extension of pointer issues

Unfortunately #2 still exists somewhat.

This is the same code used for issue #2 . It now successfully gets the name of the symbol, which when clicked navigates to the real string. It isn't ideal, but it's good enough for me.
image

However, I have another seemingly related issue (which is why I've re-opened this one) affecting the executable I'd actually like to reverse.

image

image

The addresses shown here (eg. $227BB8h) are not correct.
I have not been able to figure out what the proper addresses are yet.

Both IDA and PCSX2's Debugger read some of these instructions different from Ghidra.
Ghidra:
image
PCSX2 / IDA Pro:
image

Pointers do not seem to work properly.

@astrelsky I hope everything is going well. I have an issue to report though.
It seems like many pointers are not interpretted correctly.

I compiled this code:
image

When disassembling in Ghidra, I get this:
image

I notice that 0x221700 is exactly double the real pointer address. Seems like an issue with the plugin to me.

cw_dbg_opt0.zip

request to add SNR1 "loader" feature

so, on the occasion that this fork is still in active development i'd like to make a feature request that should help me get off the ground.

i know this is an "processor" extension made for GHIDRA but i would like to see this extension handle the SNR1 format. that format has been used in a handful of first-party Sony titles on the PS2, mostly in MLB (starting with MLB 2005) and NBA (starting with NBA 06) titles. files contaning this format hold the "REL" extension.

here's what i know of the format so far.
0x00 - "SNR1" signature
0x04 - offset value to "functions" table
0x08 - total number of "functions"
0x0c - offset value to "function names" table
0x10 - total number of "function names"
0x14 - offset value to elf file name
0x18 - some number
0x1c - some number
0x20 - SNR1 size
0x24 - zero
0x28 - some number, this time set to 0x40
0x2c - SNR1 size, again

yeah.

said format can also be spotted on the main executable of MLB 2005, as an ".sndata" segment. it works slightly differently to an standalone SNR1 file.

Support Ghidra 10.2.

Hello! The master branch does not compile for Ghidra 10.2. May I ask you to update the master branch or releas a compiled version for 10.2?

Ghidra 9.2.1

Now that Ghidra 9.2.1 has been released, is it time to merge the changes you've made into beardypig's branch, and create a new release for 9.2.1?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.