Re-writing sif2

It was possible!!

Hi.. Some people told me I should write this so I threw something together... This took me forever to write, been very busy.. You know, school, job, and sif2 stuff. I do too much sometimes (too much). ANYWAYS, on to the fun part!!! Where to start... Well lets start with the "fun" part!

The client

Fun fact, a majority of SIF2 is not actually sif2. It's closer to a re-skin of another game that I had never heard of, "Extasy Visual Shock". It had an EOS about 1 month before SIF2 was announced, and was apparently the backend used for SIF2. Only about ~35% of SIF2's codebase was actually written FOR sif2. Not even the ENCRYPTION KEYS were changed for sif2... If you dig around the SIF2 codebase, this isn't hard to prove, at all. Even masterdata literally mapped the EVS bands to sif2 bands.... About 65% of SIF2's codebase is inherited from EVS (about 81% of EVS's own symbols show up in SIF2 too): - 42.8% inherited untouched - 11.8% inherited diverged - 10.7% rewritten - 34.7% new Here are some fun cases:

SIF2 was kinda doomed from the very, very beginning. I do legitimately think that if any other company other than gree had done sif2, that we would still have a game today. I do not like gree. This makes me angry, and just so sad. SIF2 could have been so much, but that's that I suppose. Anyways, on to the how I suppose. Basically (buzzword, hear me out) Ai (not the character). I decompiled the game with ghidra, and wrote my own script to split the dump by-class. This prevents the common dangers of using ai - guesswork. The ai is not inventing any logic, simply rewriting the old logic in a new language. Then I used an LLM (At the time, qwen3.6:35b) to transpile from the decompiled C code into C#. Here's an example of how that first run looked Before and after:

This actually did get most of the way there (relatively), surprisingly. At the time I did not know what "tools" were, so this was literally feeding the ai text with a giant system prompt. After everything was written, I "only" had ~25k compile errors!! I was so close to giving up (and did for a few weeks) I decided to get a claude subscription around this time to try helping me write a script to patch a shared object library from 4kb to 16kb alignment (new android versions, and it did work btw!) and later decided to try using it to clean up those compile errors. It did much better than I thought, as in, I could press the run button in the unity editor. After a lot of back and forth and auding the C# code verses the decompiled C code, so much just fell into place and just started to work. I'm working on automating some of this process in a (mostly ish vibe coded (i am lazy sometimes)) rust program (Primarily for unity games, though any language will work if you add support) that ingests an apk (or other inputs), and uses an LLM (with tools!!) to transpile into C#. It's not fully done but maybe I will share it when it is so that hopefully game preservation can be easier (If nothing else, it does give you a very good reference codebase). Especially with the recent release of qwen3.8:27b, tools + this new model should be significantly easier and more accurate. Oh yeah, and assets were a PAIN. Assetripper really likes to duplicate stuff, and there are several places where things just weren't set in the exported assets! I borrowed r0dr4t's account for testing (locally):

Anyways, that's just how the client looks. We haven't gone over the server yet!

The server

The server was done long before the client was. The private server was started back in February of 2024 (a bit before global released). I chose to use rust, mainly because I wanted more experience with the language and I didn't really like any other languages at the time (tbh for something like this I still don't like any other languages) Thankfully, several community members had sorted out things like encryption (namely mainly cppo iirc) by the time I jumped in, so the harder parts were mostly done. I quit my job about a month or so before global EOS (for legitimate unrelated reasons), and was able to focus solely on the server development at the time. We were able to save many accounts from the official servers, and many still use their account from the official server today. The JP app had crackproof up until 2 days before the EOS, for some reason they removed it at that time, and that allowed quite a lot of people to save accounts, and we were able to capture a lot of logs from the official JP server. Logging for the Global server was much easier, global never had crackproof, so we collected logs spanning, idk, probably the last month of service or so(?). These logs are still preserved today in case we ever need to go back, and are a ground truth for what the official server did (in most cases) Aand, idk I can't recall much else, it was long ago.

What has been added on top?

Sif2 was.. underwhelming. Bugs were everywhere you looked, the official server was unreliable, and resources were scarce. Once I had control of the client, I added some stuff on top to make it more enjoyable! Closer to the game we should have gotten. One of the biggest things is 3DMV. Sif2 felt like a downgrade in so many ways compared to even sifas, we didn't even get 3dmv. Well, I ported it from sifas, with the ability to import custom models too!

Here is what 3dmv looked like in the beginning lol

The ability to import custom songs was also added! Several members of the community have already made quite a few! https://sif2-api.ethanthesleepy.one/browse-songs.html Every card from SIF (and any sif-specific skills) was also imported into sif2, giving players many more characters to choose from. About ~4,000 cards were imported Rebalancing rewards is planned but I haven't done that yet.... Unity was also upgraded to version 6.3 LTS, which gives us security updates and sdk upgrades. Oh, and another thing, the localization subsystem was entirely redone. SIF2 did have some sort of hidden toggle between english and japanese (inherited from EVS) that did seem maintained-ish early on. It was built into masterdata, though I ripped it out and made it a more durable and plugin subsystem, allowing me to use an LLM to translate to like 10 other languages (loosely translate, it's ai what do you expect lol) And of course, SIF2 was ported to windows and is available to play! Controller and keyboard support all added and done. Oh! And multi live was added as a permanent feature! The "Live" button on the home scene now actually asks between a solo/co-op live when you press it now! I hope people like these features they took a lot of time...

And finally, how can I contribute? Is this open source?

The SIF2 reconstruction is not currently open source. I may do this later on when/if certain companies collapse, but idk I'm just not that brave. And the repo is like, 60GB which idk if I can really distribute (bandwidth limits) I am more than open to giving people who want to contribute closed access, though. You can contact me via the contact links on the footer of my homepage. I do ask that you do only contact me if you have experience with game design or reverse engineering, as this isn't really a small project I'd say.