Why?
Well, the article Sega's Missing Masterpiece probably makes a great case.
The NSA's Ghidra (Generic Hexadecimal Integrated Decompiling Reverse-Engineering Architecture) added support from v9.1 onwards for the SH-2 processor, and I was interested in becoming a digital archeologist!
- Day one of progress?
- Disassembled MENUEN.PRG
- Interesting finds/easter eggs in progress? Go to Anomalies
- Disc Analysis: File info @AZEL#I.MD
- Assembly Code: 01000011
- Strange words & terms found @Glossary
- My Journey in Reverse Engineering @Solo Logs
├── AZEL_1 // Disc 1 specific info.
│ ├── 01000011 // C code for Disc 1
│ ├── 0x00 // Assembly code for Disc 1
│ ├── AZEL#I.md // Disc 1 analysis
│ ├── BIN // Data under BIN file-types
│ └── PRG // Data under PRG file-types
│
├── Abstract // Unconfirmed but potentially useful data for future cross-checking
│
├── Docs // Documentation.
│ ├── ANOMALIES.md // Unusual discoveries found and expected in future
│ ├── AUDIO.md // Audio documentation here
│ ├── GLOSSARY.md // Domain-specific documentation here
│ ├── MEMORY.md // Memory documentation here
│ ├── VIDEO.md // Video documentation here
│ └── _SEGASATURN.md // Sega Saturn specific documentation
└── アゼル―パンツァードラグーン-RPG.MD // Panzer Dragoon Swagger (PDS) general information
Filename | Percentage | Decompiled (bytes) | Total (bytes) |
---|---|---|---|
1ST_READ.PRG | 74.70% | 1,908 | 2,554 |
BTL_A3.PRG | 8.65% | 3,256 | 37,660 |
BTL_A3_2.PRG | 8.39% | 3,240 | 38,606 |
MENUEN.PRG | 54.39% | 26,624 | 48,944 |
TWN_CAMP.PRG | 62.39% | 18,655 | 29,899 |
WORLD.PRG | 21.66% | 829 | 3827 |
You're welcome! Here's our Contributing.md
I have a per-file discussion issue under the focus on file label & you can get started on any file you like!
Any assembly genius info you have? Feel free to share on the Issues section as a comment :)
Panzer Dragoon Saga (PDS) a.k.a. Azel: Panzer Dragoon RPG (アゼル ―パンツァードラグーンRPG―) is an awesome game!
- Understand the Sega Saturn hardware: In order to reverse engineer a game for the Sega Saturn, it's important to have a solid understanding of the hardware architecture of the console. This includes knowledge of the CPU, graphics hardware, sound hardware, and other system components. Having a good understanding of the hardware can help us identify how the game code is interacting with the system and how it is implementing certain features.
- Understanding the common Saturn file formats, gathering Saturn documentation.
- Look for documentation on the Saturn boot process
- Know which file in the ISO is the main binary that it's going to run
- Figure out how the CD-ROM's SH-1 gets its instructions (find when it's trying to read a specific file).
- Use a debugger: A debugger is a software tool that allows us to step through the game code and analyze how it is executing. This can be an incredibly useful tool for reverse engineering a game, as it allows us to see how the code is working in real-time and identify key functions and data structures.
- Patterns & Structures: When reverse engineering a game, it's important to look for patterns and structures in the code and data. This includes identifying repeating code blocks, data tables, and other patterns that can provide insight into how the game is working. Once you identify these patterns, we can start to map out the game logic and data structures.
- Disassemble: Disassembling the game code involves converting the compiled machine code into assembly language. This can be a time-consuming process, but it can provide a deeper understanding of how the game code is working and how it is interacting with the Sega Saturn hardware.
- Patience & Persistence = Learning whilst discovering more of a great game!
- SH-2 GCC C COMPILER
- Renesas SH Instruction Set Summary
- Renesas SH Instruction Set Project
- Renesas SuperH disassembler
- SuperH RISC Engine SH-2 Programming Manual [1996]
- Sega Saturn Emulated Hardware
- Game Modification Utilities
- SH-2 CPU (Memory Map)
- Ghidra Releases
- Ghidra Sega Saturn Loader
- Sega Master System/Game Gear Loader
- Jo-Engine (2D and 3D game engine)
- Save-Game Copier
- Blender-to-Saturn-Model-Exporter