Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Xeeynamo/sotn-decomp

Repository files navigation

Castlevania: Symphony of the Night Decompilation

A work-in-progress decompilation of Castlevania Symphony of the Night for Sony PlayStation 1, Sony PlayStation Portable and Sega Saturn. It aims to recreate the source code from the existing binaries using static and/or dynamic analysis. The code compiles byte-for-byte to the same binaries of the game, effectively being a matching decompilation.

It currently supports the following versions of the game:

  • us the reference build with the serial number SLUS-00067
  • hd an unreleased PS1 Japanese build found in Castlevania: Dracula X Chronicles game data
  • pspeu European build from Castlevania: Dracula X Chronicles
  • saturn the port created by an external development team

This repo does not include any assets or assembly code necessary for compiling the binaries. A prior copy of the game is required to extract the required assets.

Bins decomp progress

File name Code coverage Decomp functions Description
SLUS_000.67 code coverage SLUS_000.67 decompiled functions Shared libraries
DRA.BIN code coverage DRA.BIN decompiled functions Game engine
BIN/RIC.BIN code coverage RIC.BIN decompiled functions Playable Richter
BIN/WEAPON0.BIN code coverage WEAPON0.BIN decompiled functions Equippables
BIN/WEAPON1.BIN code coverage WEAPON1.BIN decompiled functions Equippables 1
ST/ARE/ARE.BIN code coverage ARE.BIN decompiled functions Colosseum
ST/CAT/CAT.BIN code coverage CAT.BIN decompiled functions Catacombs
ST/CEN/CEN.BIN code coverage CEN.BIN decompiled functions Center
ST/CHI/CHI.BIN code coverage CHI.BIN decompiled functions Abandoned Mine
ST/DAI/DAI.BIN code coverage DAI.BIN decompiled functions Royal Chapel
ST/DRE/DRE.BIN code coverage DRE.BIN decompiled functions Nightmare
ST/LIB/LIB.BIN code coverage LIB.BIN decompiled functions Long Library
ST/MAD/MAD.BIN code coverage MAD.BIN decompiled functions Debug Room
ST/NO0/NO0.BIN code coverage NO0.BIN decompiled functions Marble Gallery
ST/NO1/NO1.BIN code coverage NO1.BIN decompiled functions Outer Wall
ST/NO3/NO3.BIN code coverage NO3.BIN decompiled functions Entrance (first visit)
ST/NO4/NO4.BIN code coverage NO4.BIN decompiled functions Underground Caverns
ST/NP3/NP3.BIN code coverage NP3.BIN decompiled functions Entrance
ST/NZ0/NZ0.BIN code coverage NZ0.BIN decompiled functions Alchemy Laboratory
ST/NZ1/NZ1.BIN code coverage NZ1.BIN decompiled functions Clock Tower
ST/SEL/SEL.BIN code coverage SEL.BIN decompiled functions Title screen
ST/ST0/ST0.BIN code coverage ST0.BIN decompiled functions Final Stage: Bloodlines
ST/TOP/TOP.BIN code coverage TOP.BIN decompiled functions Castle Keep
ST/WRP/WRP.BIN code coverage WRP.BIN decompiled functions Warp Room
ST/RARE/RARE.BIN code coverage RARE.BIN decompiled functions Reverse Colosseum
ST/RCAT/RCAT.BIN code coverage RCAT.BIN decompiled functions Floating Catacombs
ST/RCEN/RCEN.BIN code coverage RCEN.BIN decompiled functions Reverse Center
ST/RCHI/RCHI.BIN code coverage RCHI.BIN decompiled functions Cave
ST/RDAI/RDAI.BIN code coverage RDAI.BIN decompiled functions Anti-Chapel
ST/RLIB/RLIB.BIN code coverage RLIB.BIN decompiled functions Forbidden Library
ST/RNO0/RNO0.BIN code coverage RNO0.BIN decompiled functions Black Marble Gallery
ST/RNO1/RNO1.BIN code coverage RNO1.BIN decompiled functions Reverse Outer Wall
ST/RNO2/RNO2.BIN code coverage RNO2.BIN decompiled functions Death Wing's Lair
ST/RNO3/RNO3.BIN code coverage RNO3.BIN decompiled functions Reverse Entrance
ST/RNO4/RNO4.BIN code coverage RNO4.BIN decompiled functions Reverse Caverns
ST/RNZ0/RNZ0.BIN code coverage RNZ0.BIN decompiled functions Necromancy Laboratory
ST/RNZ1/RNZ1.BIN code coverage RNZ1.BIN decompiled functions Reverse Clock Tower
ST/RTOP/RTOP.BIN code coverage RTOP.BIN decompiled functions Reverse Keep
ST/RWRP/RWRP.BIN code coverage RWRP.BIN decompiled functions Warp Room (reverse)
ST/TE1/TE1.BIN code coverage TE1.BIN decompiled functions Test Room 1
ST/TE2/TE2.BIN code coverage TE2.BIN decompiled functions Test Room 2
ST/TE3/TE3.BIN code coverage TE3.BIN decompiled functions Test Room 3
ST/TE4/TE4.BIN code coverage TE4.BIN decompiled functions Test Room 4
ST/TE5/TE5.BIN code coverage TE5.BIN decompiled functions Test Room 5
BOSS/MAR/MAR.BIN code coverage MAR.BIN decompiled functions Maria cutscene
BOSS/BO0/BO0.BIN code coverage BO0.BIN decompiled functions Olrox
BOSS/BO1/BO1.BIN code coverage BO1.BIN decompiled functions Granfaloon
BOSS/BO2/BO2.BIN code coverage BO2.BIN decompiled functions Minotaur & Werewolf
BOSS/BO3/BO3.BIN code coverage BO3.BIN decompiled functions Scylla
BOSS/BO4/BO4.BIN code coverage BO4.BIN decompiled functions Doppleganger 10
BOSS/BO5/BO5.BIN code coverage BO5.BIN decompiled functions Hippogryph
BOSS/BO6/BO6.BIN code coverage BO6.BIN decompiled functions Richter
BOSS/BO7/BO7.BIN code coverage BO7.BIN decompiled functions Cerberus
BOSS/RBO0/RBO0.BIN code coverage RBO0.BIN decompiled functions Ralph, Grant, & Sypha
BOSS/RBO1/RBO1.BIN code coverage RBO1.BIN decompiled functions Beelzebub
BOSS/RBO2/RBO2.BIN code coverage RBO2.BIN decompiled functions Death
BOSS/RBO3/RBO3.BIN code coverage RBO3.BIN decompiled functions Medusa boss
BOSS/RBO4/RBO4.BIN code coverage RBO4.BIN decompiled functions The Creature
BOSS/RBO5/RBO5.BIN code coverage RBO5.BIN decompiled functions Doppleganger 40
BOSS/RBO6/RBO6.BIN code coverage RBO6.BIN decompiled functions Dracula
BOSS/RBO7/RBO7.BIN code coverage RBO7.BIN decompiled functions Akmodan II
BOSS/RBO8/RBO8.BIN code coverage RBO8.BIN decompiled functions Galamoth
SERVANT/TT_000.BIN code coverage TT_000.BIN decompiled functions Bat Familiar
SERVANT/TT_001.BIN code coverage TT_001.BIN decompiled functions Ghost Familiar
SERVANT/TT_002.BIN code coverage TT_002.BIN decompiled functions Faerie Familiar
SERVANT/TT_003.BIN code coverage TT_003.BIN decompiled functions Demon Familiar
SERVANT/TT_004.BIN code coverage TT_004.BIN decompiled functions Sword Familiar

Code coverage means how many bytes of code have been successfully converted from assembly into C code, while decomp function is how many functions have been successfully decompiled.

Overlays listed as invalid have not yet been started.

Useful links

Decompiling a game is a mastodontic task. If you have some basic programming skills, please join us in this journey. Any contribution will be very appreciated!

Join to our Discord server

Special thanks

This project is possible thanks to the hard work of tools provided by the Decompilation community:

  • mips2c from @matt-kempster to decompile MIPS assembly into C. This has proven to be more accurate than Hexrays IDA and Ghidra.
  • splat from @ethteck to disassemble code and extract data with a symbol map. This tool provides the fundamentals of the SOTN decomp.
  • asm-differ from @simonlindholm to know how the decompiled code compares to the original binary.
  • decomp-permuter from @simonlindholm to pick different versions of the same code that better matches the original binary.
  • maspsx by @mkst to replicate the customized assembler used in the official PSX SDK.
  • decomp.me by @ethteck, @nanaian and @mkst to provide a collaborative decompilation site to share and contribute to work-in-progress decompiled functions.
  • frogress by @ethteck to store and retrieve progression data.
  • esa-new by @mkst as an inspiration on how to set-up a PS1 decompilation project.
  • oot as an inspiration of what it is possible to achieve with a complete decompiled video game.

About

Decompilation of Castlevania: Symphony of the Night (PSX+Saturn)

Topics

Resources

License

Stars

Watchers

Forks

Morty Proxy This is a proxified and sanitized view of the page, visit original site.