Very experimental! No compatibility guarantees.
- Sony/Nintendo SPC700 APU support for Sleigh
- SPC file loader
- Symbols for hardware registers
- Processor manual index (manual available from The Internet Archive)
How to install
- Start Ghidra
- File -> Install Extensions
- Press the '+' icon ("Add extension")
- Choose the built or downloaded SPCdra zip file
- Restart Ghidra when prompted to load the extension properly
- Start Ghidra
- Create a new project
- File -> Import File
- Select the .spc file you want to load
- Click Options...
- Type the main entrypoint address for the SPC engine (see below for details)
- Click OK
Finding the SPC engine entrypoint address
Finding the actual entrypoint for a given .spc file is important, because without it, it will be difficult to determine where to begin disassembly and analysis. By default, the loader will use the PC address stored in the .spc file metadata, but this is typically not going to be the actual entrypoint, but rather, whatever instruction the SPC was executing when the file was dumped. To find the actual entrypoint, you will need bsnes+ as well as the game ROM that the .spc file was dumped from.
- Start bsnes+
- Tools -> Debugger
- (In the Debugger window) Click "Break"
- (In the Main window) System -> Load Cartridge . . . -> Select game ROM
- (In the Debugger window) Tools -> Breakpoint Editor
- (In the Breakpoint window) Click "Add"
- Double-click the empty cell under "End (optional)" and type "fbff"
- Check the box under 'X'
- Under "Source", select "S-SMP bus"
- (In the Debugger window) Click "Run"
- Once the breakpoint is hit, the address of the current instruction is the entrypoint address
Licensed under the Apache License, Version 2.0