emulator: Sonic CD Decompilation type: standalone core_classification: game_engine source: "https://github.com/RSDKModding/RSDKv3-Decompilation" upstream: "https://github.com/RSDKModding/RSDKv3-Decompilation" source_commit: "a99e16ad15f4f824c1b9f96a61b3f8576ab648e2" profiled_date: "2026-10-04" display_name: "Sonic CD (RSDKv3 Decomp)" cores: [sonicretrocd] systems: [soniccd] notes: | Retro Engine v3 decompilation of Sonic CD (2011 Christian Whitehead mobile/Steam port). Single binary, one data pack per install. CheckRSDKFile only fopen()s the pack. There is no signature test. If the file is absent the engine falls back to a loose Data/ tree. When GameConfig.bin cannot be loaded either way it writes usage.txt describing the layout it wants. ref: RSDKv3/Reader.cpp:26-87 (CheckRSDKFile), RSDKv3/RetroEngine.cpp:283-321, RSDKv3/RetroEngine.cpp:329-366 settings.ini key Dev:DataFile overrides the default "Data.rsdk". ref: RSDKv3/Userdata.cpp:352-353,467-468, RSDKv3/RetroEngine.hpp:437 Bytecode detection probes two layouts in order after the pack opens: Data/Scripts/ByteCode/GlobalCode.bin (BYTECODE_MOBILE) or GS000.bin (BYTECODE_PC). Either lives inside Data.rsdk when the official pack is present. ref: RSDKv3/Reader.cpp:54-82 files: - name: "Data.rsdk" category: game_data system: soniccd required: true source_ref: "RSDKv3/Userdata.cpp:352 (default name), RSDKv3/Userdata.cpp:467-468 (Dev:DataFile), RSDKv3/RetroEngine.cpp:302-305 (CheckRSDKFile call)" note: | Sonic CD assets (RSDK v3 container). Shipped with the official Sonic CD release (Steam, iOS, Android, Sonic Origins). The engine opens the file with fopen(). Content is validated by trying to load Data/Scripts/ByteCode/GlobalCode.bin or GS000.bin from inside, not by hashing the pack.