emulator: Sonic Mania Decompilation type: standalone core_classification: game_engine source: "https://github.com/RSDKModding/Sonic-Mania-Decompilation" upstream: "https://github.com/RSDKModding/RSDKv5-Decompilation" source_commit: "9dc699428420d752af9767bdb13f585ee0881bc0" upstream_commit: "191d7aea6c262d891244172a8609ac69fbfd7571" profiled_date: "2026-10-04" display_name: "Sonic Mania (RSDKv5 Decomp)" cores: [] systems: [sonic-mania] notes: | Full RSDKv5 decompilation of Sonic Mania (Christian Whitehead / Headcannon, 2017). Links against the shared RSDKv5-Decompilation engine; game code lives in SonicMania/ and the engine in the dependencies/RSDKv5 submodule, the upstream repository. The paths below are relative to that repository. LoadDataPack reads an RSDK v5 container: a 4-byte "RSDK" signature, the letter v and a version byte, a 16-bit file count, then an MD5 name hash, offset and size per entry. The signature is the only validation; the engine never hashes the full pack. ref: RSDKv5/RSDK/Core/Reader.cpp:107-164 (LoadDataPack) Settings.ini key Game:dataFile overrides the default "Data.rsdk". If the ini is absent the engine still calls LoadDataPack("Data.rsdk"). ref: RSDKv5/RSDK/User/Core/UserCore.cpp:313,557 When no pack opens, LoadFile reads the same paths as loose files under Data/ and the dev menu is turned on. ref: RSDKv5/RSDK/Core/Reader.cpp:303-309, RSDKv5/RSDK/User/Core/UserCore.cpp:312-314 files: - name: "Data.rsdk" category: game_data system: sonic-mania required: true source_ref: "RSDKv5/RSDK/User/Core/UserCore.cpp:313 (Game:dataFile default), RSDKv5/RSDK/User/Core/UserCore.cpp:557 (no Settings.ini), RSDKv5/RSDK/Core/Reader.cpp:107-121 (LoadDataPack signature check)" note: | Sonic Mania game assets (RSDK v5 container, "RSDK" signature). Shipped inside the official Sonic Mania release (Steam, Epic, consoles). Without the pack the engine only finds the game if the same files sit extracted under Data/.