I'm building a church world for VRChat as I explore building VR apps in Unity for the Quest 2 / 3. The goal is to make a Quest 2 / 3 experience that looks and runs great. It's still a very early work-in-progress, but feel free to check it out!
https://t.co/po5hjt3EtR
Small update / possible big breakthrough on decompiling SSSS.BIN (the 3D Special Stage engine): I could not find the exact Hitachi compiler that Sonic Team used to produce this, so I fired up an agentic AI tool (Claude Code, Fable 5) and gave it a ridiculous task: try to re-create the exact compiler setup for this from scratch...
...and it worked??
The re-created compiler environment is (so far) producing the byte-exact matches I need for this executable. Guess I won't need to hunt down an old Saturn devkit?
Will have more details on this as it progresses further!
Update on my (Saturn) Sonic 3D Blast decompilation:
This decomp is now 24.14% byte-exact across the game's four executables (SONIC.BIN, 0.BIN, DUCK.BIN, SSSS.BIN).
I initially started this project by doing a disassembly and a reimplementation / PC port right away. I've been writing code for a good while, but I'm new to the reverse-engineering scene. After exploring other fantastic PC ports (sm64-port, Ship of Harkinian, Dusklight, etc.) I wanted to do this right and make this project fully accurate and as faithful as it can be. So I took a step back and started focusing on creating a byte-exact decompilation first.
The four executables:
-- SONIC.BIN (19.49% coverage) - This is the main game itself by Traveller's Tales, including the isometric level engine, Sonic's movement and collision, ring/flicky gameplay, etc. This seems to be GCC-built, but with a version I don't have / haven't found yet. TT also produced this by converting the Sega Genesis 68k assembly source code into C++ code. Because of this, I've produced a disassembly of the Sega Genesis version of the game as well, which should help me figure out the rest.
-- 0.BIN (40.14% coverage) - This handles game menus (title screen, options, etc.), CD access, level loading, etc. Coverage is higher here because it is GCC-built and mostly Sega library code, which is easier to reverse-engineer.
-- DUCK.BIN (54.47% coverage) - This handles FMV playback. It includes Duck Corporation's TrueMotion video decoder, which is used for rendering the game's full-motion video sequences. Coverage is higher here as this was also built with GCC and Sega's libraries, with some hand-written SGL assembly. This one might be easier to get to 100%.
-- SSSS.BIN (3.36% coverage) - This is the 3D Special Stage engine (built by Sonic Team), and is very compiler-blocked - not built with GCC at all. Instead, it's built with a specific version of Hitachi's SHC compiler, which I just can't seem to find anywhere. The 1998 version I have doesn't quite produce matching code, so if anyone in the Saturn dev scene has access to an earlier build, I'd love a copy of it! Otherwise, I'm going to keep grinding on this one.
As this progresses, I will (eventually) share this on GitHub.
For SONIC.BIN, I'm going to analyze the disassembly for the Sega Genesis version and see if I can replicate the environment that TT built for this. For SSSS.BIN, well... this might take a while.🫠
@Grummz All this extra geometry and it still looks less impressive than parallax occlusion mapping (POM), which was introduced over 20 years ago and used in Crysis (a 2007 game)!
@_hoodLink_ They’re both fantastic. OoT has better dungeons and bosses, it feels like a classic hero’s journey, and it’s easier to play through without a guide, but the world of MM is so much bigger, feels much more alive with more interesting NPCs who all have their own lives & schedules…
Update on my (Saturn) Sonic 3D Blast decompilation:
This decomp is now 24.14% byte-exact across the game's four executables (SONIC.BIN, 0.BIN, DUCK.BIN, SSSS.BIN).
I initially started this project by doing a disassembly and a reimplementation / PC port right away. I've been writing code for a good while, but I'm new to the reverse-engineering scene. After exploring other fantastic PC ports (sm64-port, Ship of Harkinian, Dusklight, etc.) I wanted to do this right and make this project fully accurate and as faithful as it can be. So I took a step back and started focusing on creating a byte-exact decompilation first.
The four executables:
-- SONIC.BIN (19.49% coverage) - This is the main game itself by Traveller's Tales, including the isometric level engine, Sonic's movement and collision, ring/flicky gameplay, etc. This seems to be GCC-built, but with a version I don't have / haven't found yet. TT also produced this by converting the Sega Genesis 68k assembly source code into C++ code. Because of this, I've produced a disassembly of the Sega Genesis version of the game as well, which should help me figure out the rest.
-- 0.BIN (40.14% coverage) - This handles game menus (title screen, options, etc.), CD access, level loading, etc. Coverage is higher here because it is GCC-built and mostly Sega library code, which is easier to reverse-engineer.
-- DUCK.BIN (54.47% coverage) - This handles FMV playback. It includes Duck Corporation's TrueMotion video decoder, which is used for rendering the game's full-motion video sequences. Coverage is higher here as this was also built with GCC and Sega's libraries, with some hand-written SGL assembly. This one might be easier to get to 100%.
-- SSSS.BIN (3.36% coverage) - This is the 3D Special Stage engine (built by Sonic Team), and is very compiler-blocked - not built with GCC at all. Instead, it's built with a specific version of Hitachi's SHC compiler, which I just can't seem to find anywhere. The 1998 version I have doesn't quite produce matching code, so if anyone in the Saturn dev scene has access to an earlier build, I'd love a copy of it! Otherwise, I'm going to keep grinding on this one.
As this progresses, I will (eventually) share this on GitHub.
For SONIC.BIN, I'm going to analyze the disassembly for the Sega Genesis version and see if I can replicate the environment that TT built for this. For SSSS.BIN, well... this might take a while.🫠
@CameronCorduroy Dogshit was coming out of EA when it was publicly-owned. You just hate private ownership of any kind because you’re a loser.
Fuck off Cammy.
@MoonPieDreams@AnnyeongCola94@AgileHarvey@timeextension64 Yeah, these early attempts are definitely not great at showing the full potential of these projects (and what the Saturn & PS1 are capable of). They’re cool for other curious developers to watch the journey, but to the end-user they certainly give a bad first impression!
Damn, Terracon looks good, haven’t heard of this one!
I shared the PS1 Mario 64 video because it’s another M64 port in a very early state, and shows the challenges that come with porting an N64 game to weaker architecture - the PS1 and Saturn share similar constraints: less RAM and no hardware floating point unit (which Mario 64 relies heavily on for 3D physics / spatial calculations), so lots of magic has to happen to get these ports working. Given time (and lots of optimization wizardry), I believe both ports can eventually look / run great.
@MoonPieDreams@AgileHarvey@timeextension64 See, this looks great!! This is what SEGA should’ve focused on for Saturn! I had Sonic Jam growing up and I loved the Sonic Jam 3D world, which was a big fucking tease!
@AnnyeongCola94@AgileHarvey@MoonPieDreams@timeextension64 Sonic X-treme looked and ran like shit. SEGA was right to cancel it.
It’s a struggle to get Mario 64 to even run on the PS1, so getting it to run well on Saturn is going to take a lot of hard work.
https://t.co/zeaCEljV7Y
What I mean by “looked and ran like shit”: the fisheye distortion looks god-awful, and combined with the low framerate makes me want to vomit. Draw distance is very poor, level geometry is simple, blocky, very confined, and all entities are VDP1 sprites with nearest-neighbor scaling that looks nasty up close.
Of course, these are just my opinions, but IMO there’s no way in hell Sonic X-treme (in that state) could’ve competed with Mario 64 and Crash Bandicoot - two polished 3D games that DO look and run great for the time. It would’ve been embarrassing for SEGA to release it - the 3D world in Sonic Jam looks great and far better, if that was developed into a full game I think it could’ve stood up well to M64 / CB