All Projects → VGKintsugi → Ghidra-SegaSaturn-Loader

VGKintsugi / Ghidra-SegaSaturn-Loader

Licence: Apache-2.0 license
A Sega Saturn loader for Ghidra

Programming Languages

java
68154 projects - #9 most used programming language
CSS
56736 projects
HTML
75241 projects

Projects that are alternatives of or similar to Ghidra-SegaSaturn-Loader

Ghidra-SegaSaturn-Processor
A Ghidra processor module for the Sega Saturn (SuperH SH-2)
Stars: ✭ 43 (+43.33%)
Mutual labels:  sega-saturn, superh, ghidra, sh-1, sh-2
gdt helper
Ghidra Data Type (GDT) Helper
Stars: ✭ 24 (-20%)
Mutual labels:  ghidra
ghidra scripts
Ghidra scripts for malware analysis
Stars: ✭ 53 (+76.67%)
Mutual labels:  ghidra
ghidraal
A Ghidra extension for scripting with GraalVM languages, including Javascript, Python3, R, and Ruby.
Stars: ✭ 48 (+60%)
Mutual labels:  ghidra
ghidra-emu-fun
Ghidra Emulates Functions
Stars: ✭ 36 (+20%)
Mutual labels:  ghidra
ghidra-65816
WDC 65816 processor module for Ghidra
Stars: ✭ 19 (-36.67%)
Mutual labels:  ghidra
pypcode
Python bindings to Ghidra's SLEIGH library for disassembly and lifting to p-code IR
Stars: ✭ 111 (+270%)
Mutual labels:  ghidra
ghidra-findcrypt
Ghidra analysis plugin to locate cryptographic constants
Stars: ✭ 138 (+360%)
Mutual labels:  ghidra
emerald
Import DynamoRIO drcov code coverage data into Ghidra
Stars: ✭ 30 (+0%)
Mutual labels:  ghidra
Save-Game-Copier
Copy Sega Saturn save game files
Stars: ✭ 34 (+13.33%)
Mutual labels:  sega-saturn
sleighcraft
sleigh craft!
Stars: ✭ 221 (+636.67%)
Mutual labels:  ghidra
Awesome Reverse Engineering
Reverse Engineering Resources About All Platforms(Windows/Linux/macOS/Android/iOS/IoT) And Every Aspect! (More than 3500 open source tools and 2300 posts&videos)
Stars: ✭ 2,954 (+9746.67%)
Mutual labels:  ghidra
ghidra2dwarf
🐉 Export ghidra decompiled code to dwarf sections inside ELF binary
Stars: ✭ 135 (+350%)
Mutual labels:  ghidra
ghidra-builder
Docker image for building ghidra RE framework from source
Stars: ✭ 55 (+83.33%)
Mutual labels:  ghidra
sleigh
Unofficial CMake build for Ghidra SLEIGH
Stars: ✭ 54 (+80%)
Mutual labels:  ghidra
ida2ghidra-kb
IDA Pro to Ghidra Key Bindings to feel like if you were in IDA Pro when navigating
Stars: ✭ 74 (+146.67%)
Mutual labels:  ghidra
libyaul
An open source SEGA Saturn development kit
Stars: ✭ 117 (+290%)
Mutual labels:  sega-saturn
eBPF-for-Ghidra
eBPF Processor for Ghidra
Stars: ✭ 157 (+423.33%)
Mutual labels:  ghidra
ghidra-nsis-extension
Ghidra extension to disassemble NSIS installers
Stars: ✭ 17 (-43.33%)
Mutual labels:  ghidra
ghidra-r2web
Ghidra plugin to start an r2 webserver to let r2 interact with it
Stars: ✭ 38 (+26.67%)
Mutual labels:  ghidra

Ghidra Sega Saturn Loader

A (WIP) Ghidra loader for the Sega Saturn. Currently supports:

  • ISO disc images
  • Mednafen Save States (MC)
  • Yabause Save States (YSS)

Grab from Releases or build from source.

Screenshots

Loader screenshot
Loader

Disassembly View w/Decompiler Disassembly View

How to Use

Sega Saturn ISOs

  • Select any Sega Saturn ISO file
  • At the "Container file detected" prompt, select "Single file"
  • The loader will create functions for main, initial program (the code that runs during the Sega logo), and security_check
  • Pros: Easy to use, useful for debugging game initialization, works great on Saturn homewbrew
  • Cons: Doesn't load any file after the first file on disc

Mednafen Save States (MC)

  • gunzip the Mednafen save state
  • Select the unzipped file in Ghidra
  • The loader will load backup cart memory, high work RAM, and low work RAM to the correct places
  • The loader will add labels for SH-2s PC, PR, and R15 registers

Yabause Save States (YSS)

  • Select any Yabause Save State (YSS)
  • The loader will load backup cart memory, high work RAM, and low work RAM to the correct places
  • The loader will add labels for SH-2s PC, PR, and R15 registers

Applying Sega Saturn Library Signatures

  • After loading in Ghidra, open "Script Manager" and execute ApplySig.py
  • Select the signature file to apply

Issues

  • Code quality needs serious improvement and refactoring
  • Memory map doesn't handle mirrored regions
  • Adding the onchip register region (0xffffffe00-0xffffffff) to the memory map made decompilation worse. So it's disabled.
  • It would be useful to label some globals to assist reversing
  • Mednafen memory cart data doesn't match Yabause's.

Building

  • gradle -PGHIDRA_INSTALL_DIR=<Absolute path to Ghidra>
  • The output zip file will be created within /dist

Installation

  • Ghidra 9.1 added SH-1/SH-2 support.
  • Copy the zip file to <Ghidra install directory>/Extensions/Ghidra.
  • Start Ghidra and use the "Install Extensions" dialog to finish the installation. (File -> Install Extensions...).
  • (Optional but recommended) Install the ApplySig script so you can use Sega Saturn library signatures. Copy to a ghidra_scripts directory.
  • (Optional but recommended) Download CyberWarriorX's Sega Saturn library signatures

Credits/References

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].