{"id":26125958,"url":"https://github.com/aeonitis/reverse-engineer-azel","last_synced_at":"2025-04-13T16:11:11.780Z","repository":{"id":44679644,"uuid":"512464177","full_name":"Aeonitis/Reverse-Engineer-Azel","owner":"Aeonitis","description":"My adventure in Reverse Engineering from Bytecode, on a forgotten digital relic.","archived":false,"fork":false,"pushed_at":"2023-05-04T16:14:14.000Z","size":1947,"stargazers_count":16,"open_issues_count":15,"forks_count":1,"subscribers_count":5,"default_branch":"base","last_synced_at":"2025-03-27T07:03:15.169Z","etag":null,"topics":["assembly","azel","azel-rpg","decompilation","decompiler","disassembler","dragoon","game","ghidra","ida-pro","panzer","panzer-dragoon-saga","ram","reverse-engineering","rpg","saga","saturn","sega","sega-saturn","superh"],"latest_commit_sha":null,"homepage":"","language":"Assembly","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Aeonitis.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2022-07-10T15:01:57.000Z","updated_at":"2025-01-06T21:07:30.000Z","dependencies_parsed_at":"2022-08-12T11:21:03.720Z","dependency_job_id":null,"html_url":"https://github.com/Aeonitis/Reverse-Engineer-Azel","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Aeonitis%2FReverse-Engineer-Azel","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Aeonitis%2FReverse-Engineer-Azel/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Aeonitis%2FReverse-Engineer-Azel/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Aeonitis%2FReverse-Engineer-Azel/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Aeonitis","download_url":"https://codeload.github.com/Aeonitis/Reverse-Engineer-Azel/tar.gz/refs/heads/base","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248741198,"owners_count":21154255,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["assembly","azel","azel-rpg","decompilation","decompiler","disassembler","dragoon","game","ghidra","ida-pro","panzer","panzer-dragoon-saga","ram","reverse-engineering","rpg","saga","saturn","sega","sega-saturn","superh"],"created_at":"2025-03-10T17:23:17.568Z","updated_at":"2025-04-13T16:11:11.760Z","avatar_url":"https://github.com/Aeonitis.png","language":"Assembly","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://i.imgur.com/1Wkha31.png\"\u003e\n\u003c/p\u003e\n\n# Reverse-Engineering Azel RPG\nWhy? \n\nWell, the article [Sega's Missing Masterpiece](https://www.theringer.com/2018/1/29/16940902/1998-video-games-panzer-dragoon-saga-missing-masterpiece) probably makes a great case.\n\nThe NSA's Ghidra (Generic Hexadecimal Integrated Decompiling Reverse-Engineering Architecture) added [support](https://github.com/NationalSecurityAgency/ghidra/pull/715) from v9.1 onwards for the SH-2 processor, and I was interested in becoming a digital archeologist!\n\n\n## Project Overview\n\n[Wiki/Discord](https://github.com/Aeonitis/Reverse-Engineer-Azel/wiki)\n\n[Discussions](https://github.com/Aeonitis/Reverse-Engineer-Azel/discussions)\n\n- Day one of progress? \n  - Disassembled [MENUEN.PRG](https://github.com/Aeonitis/Reverse-Engineer-Azel/blob/main/AZEL_1/PRG/MENUEN.PRG.md)\n- Interesting finds/easter eggs in progress? Go to [Anomalies](https://github.com/Aeonitis/Reverse-Engineer-Azel/blob/main/Docs/ANOMALIES.MD)\n- Disc Analysis: File info [@AZEL#I.MD](https://github.com/Aeonitis/Reverse-Engineer-Azel/blob/main/AZEL_1/AZEL%23I.md)\n- Assembly Code: [01000011](https://github.com/Aeonitis/Reverse-Engineer-Azel/blob/main/AZEL_1/0x00/_ASSEMBLY.md)\n- Strange words \u0026 terms found [@Glossary](https://github.com/Aeonitis/Reverse-Engineer-Azel/blob/main/Docs/_Glossary.md)\n- My Journey in Reverse Engineering [@Solo Logs](https://github.com/Aeonitis/Reverse-Engineer-Azel/wiki/Logs-%5BSolo%5D)\n\n## Directory structure\n```\n├── AZEL_1             // Disc 1 specific info.\n│   ├── 01000011       // C code for Disc 1\n│   ├── 0x00           // Assembly code for Disc 1\n│   ├── AZEL#I.md      // Disc 1 analysis\n│   ├── BIN            // Data under BIN file-types\n│   └── PRG            // Data under PRG file-types\n│\n├── Abstract           // Unconfirmed but potentially useful data for future cross-checking\n│\n├── Docs               // Documentation.\n│   ├── ANOMALIES.md   // Unusual discoveries found and expected in future\n│   ├── AUDIO.md       // Audio documentation here\n│   ├── GLOSSARY.md    // Domain-specific documentation here\n│   ├── MEMORY.md      // Memory documentation here\n│   ├── VIDEO.md       // Video documentation here\n│   └── _SEGASATURN.md // Sega Saturn specific documentation\n└── アゼル―パンツァードラグーン-RPG.MD  // Panzer Dragoon Swagger (PDS) general information\n```\n\n## Progress\n\n### PRGs\n\nFilename | Percentage | Decompiled (bytes) | Total (bytes)\n---|------------|--------------------|---\n1ST_READ.PRG | 74.70%     | 1,908              | 2,554\nBTL_A3.PRG | 8.65%      | 3,256              | 37,660\nBTL_A3_2.PRG | 8.39%      | 3,240              | 38,606\nMENUEN.PRG | 54.39%     | 26,624             | 48,944\nTWN_CAMP.PRG | 62.39%     | 18,655             | 29,899\nWORLD.PRG | 21.66%     | 829                |3827\n\n## Wanna contribute?\nYou're welcome! Here's our [Contributing.md](https://github.com/Aeonitis/Reverse-Engineer-Azel/blob/main/Docs/Rubric/Contributing.md)\n\nI have a per-file discussion issue under the [focus on file](https://github.com/Aeonitis/Reverse-Engineer-Azel/labels/focus%20on%20file) label \u0026 you can get started on any file you like!\n\nAny assembly genius info you have? Feel free to share on the [Issues](https://github.com/Aeonitis/Reverse-Engineer-Azel/issues) section as a comment :)\n\n\n# Panzer Dragoon Saga\nPanzer Dragoon Saga (PDS) a.k.a. Azel: Panzer Dragoon RPG (アゼル ―パンツァードラグーンRPG―) is an awesome game!\n- [The Appeal of Panzer](https://venturebeat.com/2012/01/11/the-appeal-of-panzer-dragoon-saga/)\n- [Fan-Wiki](https://panzerdragoon.fandom.com/wiki/Panzer_Dragoon_Saga)\n\n## Goals\n- 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.\n- Understanding the common Saturn file formats, gathering Saturn documentation.\n- Look for documentation on the Saturn boot process\n  - Know which file in the ISO is the main binary that it's going to run\n  - Figure out how the CD-ROM's SH-1 gets its instructions (find when it's trying to read a specific file). \n- 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.\n- Patterns \u0026 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.\n- 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.\n- Patience \u0026 Persistence = Learning whilst discovering more of a great game!\n\n\n## Documentation:\n\n### SH-2 (and other Saturn subsystems)\n- [SH-2 GCC C COMPILER](https://github.com/SaturnSDK/Saturn-SDK-GCC-SH2)\n- [Renesas SH Instruction Set Summary](http://shared-ptr.com/sh_insns.html)\n- [Renesas SH Instruction Set Project](https://github.com/shared-ptr/sh_insns)\n- [Renesas SuperH disassembler](https://github.com/logic/sh2dis)\n- [SuperH RISC Engine SH-2 Programming Manual [1996]](https://antime.kapsi.fi/sega/files/h12p0.pdf)\n- [Sega Saturn Emulated Hardware](https://github.com/FCare/Kronos)\n- [Game Modification Utilities](https://www.zophar.net/utilities/mod.html)\n- [SH-2 CPU (Memory Map)](https://wiki.yabause.org/index.php5?title=SH-2CPU)\n\n### Panzer Dragoon Saga\n- [Panzer Dragoon Saga - The Cutting Room Floor](https://tcrf.net/Panzer_Dragoon_Saga)\n- [RetroAchievements](https://retroachievements.org/game/14506)\n\n### Emulation\n- [uoYabause Blogs](http://www.uoyabause.org/blogs)\n- [uoYabause Tutorial](https://fantasyanime.com/emuhelp/uoyabause)\n- [YSS Loader](https://github.com/cyberwarriorx/yssloader)\n- [Yabause Wiki](https://wiki.yabause.org)\n\n### Saturn tools\n- [Ghidra Releases](https://github.com/NationalSecurityAgency/ghidra/releases)\n- [Ghidra Sega Saturn Loader](https://github.com/VGKintsugi/Ghidra-SegaSaturn-Loader)\n- [Sega Master System/Game Gear Loader](https://github.com/VGKintsugi/Ghidra-SegaMasterSystem-Loader)\n- [Jo-Engine (2D and 3D game engine)](https://github.com/johannes-fetz/joengine)\n- [Save-Game Copier](https://github.com/slinga-homebrew/Save-Game-Copier)\n- [Blender-to-Saturn-Model-Exporter](https://github.com/polygon-studio/Blender-to-Saturn-Model-Exporter)\n\n### Reverse Engineering\n- [Beginner Learning Materials on Reverse Engineering Video Games](https://github.com/kovidomi/game-reversing)\n- [Decompilation Projects](https://www.resetera.com/threads/decompilation-projects-ot-free-next-gen-update-for-your-favorite-classics-a-link-to-the-past-pc-port-out-now.682687/#post-100662691)\n\n### Game Archiving\n- [Mysterious origins of an uncrackable video game](https://www.bbc.com/future/article/20190919-the-maze-puzzle-hidden-within-an-early-video-game)\n- [Game archiving faces challenges...](https://www.polygon.com/2013/3/30/4157594/game-archiving-faces-challenges-for-the-future-say-experts)\n- [Archiving video games for humanities research](https://www.cambridge.org/core/journals/art-libraries-journal/article/abs/art-and-technology-archiving-video-games-for-humanities-research-in-university-libraries/5F8C480FC76784C83C3A80940ACE4EB0)\n\n### SuperH Family (not SH-2 processor)\n- [SH2A [SH7211] Group Hardware Manual](https://www.renesas.com/us/en/document/mah/sh7211-group-hardware-manual)\n- [SH3 [SH7706] Group Hardware Manual](https://www.renesas.com/us/en/document/mah/sh7706-group-hardware-manual)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faeonitis%2Freverse-engineer-azel","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faeonitis%2Freverse-engineer-azel","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faeonitis%2Freverse-engineer-azel/lists"}