Steam and the Steam logo are trademarks and/or registered trademarks of Valve Corporation in the U.S. and/or other countries.

A Couple of Spirits Logo

Eti the Spirit :: If you're seeing this then something broke or you have JS off.

SkySaga: Infinite Isles Archive

    Welcome to the SkySaga: Infinite Isles archive!

    SkySaga is a game developed by the now defunct Radiant Worlds that I quite enjoyed for its relatively brief alpha test in the early to mid 2010s. It was particularly unique, it's a bit like if Spiral Knights (an MMO Roguelike that I am also very interested in) and Minecraft had a baby. It's an MMO, voxel-based, rogue-like-ish survival exploration game. Really weird mix but trust me, it was a lot of fun. It was one of my favorite games, in fact.

    It's just a shame that its publisher pulled the trigger out of nowhere. I'm not exaggerating, by the way. The game went on maintainence after its rather successful Alpha 10 release so that the developers could work on the public beta test, and on 21 August 2017, the publisher (Smilegate) fired everyone and obliterated the project. Just as abruptly as it sounds, the game was dead and its passionate developers left behind without a job. If you are thinking "What the hell?", so am I.

    This whole situation is still rather upsetting. It's unfair, uncalled for, and destroyed a genuinely innovative and fun game at no one's benefit except for the pockets of its publisher. In lieu of this, I decided to take power into my own hands. United States copyright law has a provision just for this that allows me to host a server emulator. A server emulator is a fake server that acts like the game's central servers. The game can be redirected/patched to use this instead, so that it thinks it is in a live, functional environment.

Previous Archival Attempts   Now I believe that the easiest way to get something is often to just ask. So naturally, I tried just that. I have asked Smilegate for a status update on three different occasions over the years. I only got one reply, which was the first time, when they had a bot set up to give canned responses to all the angry players. Okay, no luck there.

  After that failed, I attempted to contact Radiant Worlds, the developers. To do so, I messaged The Oliver Twins (the company's co-founders) on Facebook some time in 2018. They said "There's nothing we can do, you might like Crayta" (Spoilers: I did not like Crayta. It was not SkySaga by any stretch of the imagination. It was more like some weird voxel based competitor to Roblox). It's a shame, the two are quite passionate and started developing from an early age. I'd love to write about them at some point, given that one of my school research projects was actually about them, but I digress - No luck there either. Yikes.

  With only one lead left, I contacted Rebellion at the end of 2020, from which I received no response. Later on, my older sister ended up getting into contact with someone from another subdivision of Rebellion working on their remake of Battlezone II: Combat Commander, and I decided to ask her to get me someone I could talk to...

  ...I was dismayed to hear that Warwick had since been dissolved. It seems Radiant Worlds had finally been smothered away, which was something I was hoping would not have happened. It sucks, really. It seems like everybody involved just wants people to forget about this game... That, or they aren't in a position where they can legally say anything about it. What a mess!

  So - Where do we come in? This archive needs people with old hard drives. If you have a version of the game on your PC somewhere after all these years, send it to me at eti@etithespir.it! This is super important to me and the rather small community that remains, and you could make a big difference.

Game Binaries & Content

SkySaga Clients:
  • Alpha v01: --
  • Alpha v02: --
  • Alpha v03: b10414
  • Alpha v04: --
  • Alpha v05: --
  • Alpha v06: b20015
  • Alpha v07: b23079
  • Alpha v08: b25516 | b27094
  • Alpha v09: b30968 | b35166
  • Alpha v10: b36546 | b36731
  • Research: SkySaga R&D Project
  • 010 Editor BT: BPCFormatBT.zip

SkySaga Server Emulators:
-- :Alpha v01 •  
-- :Alpha v02 •  
b10414 :Alpha v03 •  
-- :Alpha v04 •  
-- :Alpha v05 •  
-- :Alpha v06 •  
-- :Alpha v07 •  
-- :Alpha v08 •  
-- :Alpha v09 •  
-- :Alpha v10 •  

Status Updates & "Blog"-ish Things

Here, I will host status updates on my efforts. New entries will be closer to the top. If you want a more up-to-date feed, check out the Discord server.


30 March 2024 - Two New Versions

Short post today. Thanks to two volunteers from the community Discord (Natsu05290 and nul (if either of you want a mention under a different name, let me know)), the archive now has Alpha v7 (b23079) and Alpha V9 (b35166) respectively!

Alpha V3, as well as the continuous range from Alpha V6 to Alpha V10 marks a couple years worth of coverage which is pretty awesome to see. The only versions missing now are extremely old, and from when the game was less widespread. Even though those versions are inevitably going to be harder to find, what we have now is already more than what I would have ever expected from such a small community. Thank you!

29 February 2024 - Research and Development Toolkit Release

Oops, a year passed. Sorry everyone. I meant to write more blog entries in the passing time (and even had one ready but never released it, it has since been replaced by this). Oops. Not dead! ...Yet!

There is significant news this time around!
  • SkySaga R&D is public! See https://github.com/EDITzDev/SkySaga
  • Alpha V3 (build 10414) was found and is now part of the archive!

You can thank EDITz, who honestly is just the most significant member of the project at this point, for both of these developments. The R&D toolkit facilitates some patches to b10414 allowing you to load into the game (not play it completely, however) and also has tools used to extract the game's arbitrary .pc format, again for b10414 only.

As far as things with me go, I have been working on my own projects and learning to reverse engineer assemblies like this. Soon I will be able to make an impact on this project, but as mentioned in the past, my skills are limited and undeveloped right now so EDITz has been carrying the whole thing. Again, a huge thank you for your volunteer work, it means the world to me and the rest of the folks following the project!

I'll see you all soon for the next post. Note that "soon" is measured in Valve time. Thank you for your patience.

16 January 2023 - New Year, New Progress

We have a double whammy this time around - two major contributions from community members! First off, thank MelOzone for submitting Alpha V9 (build 30968) to the archive! That makes 4/10 versions archived! It has been added to the downloads on the left.

But that's not all. Perhaps the most exciting news is that someone under the alias "EDITz" - another very generous reverse engineer - has spent a bit of time digging up details on BPC. There's some good news and some bad news. Good news is they figured out how to extract some data out of the files (did a hell of a lot better of a job than I did). Bad news is (and who would have guessed) all of the formats of the extracted files are proprietary, which means we have to reverse engineer the extracted data too. The archive was just the gatekeeper; we're in the labyrinth now. They really didn't want people to get into these files. Makes sense, given the history of the founders of Radiant Worlds (tl;dr they made games in the 1980s and had problems with piracy. Guess that fear never went away. I can't blame them). I'll update the binary template download later, once we have figured out more about the format. My structure as it stands now is wrong. It needs to be fixed.

That aside, progress has been unfortunately slow. I have been focusing on work elsewhere (mostly my mods for Minecraft and Risk of Rain 2), notably including my own game that I plan to release in the coming years.

It's awesome to see this project inspire people to collaborate like this. Admittedly I do feel a little bad that I am not giving as much dedication to it as I used to, especially in the faces of those willing to give it that type of attention, even if for a moment.

21 July 2022 - New Progress on BPC!

Someone by the name of Leiko recently popped up with some tools that could help to unpack the exe file, and using this new tool, I did just that. It's called "unlicense". While the EXE is not runnable, I still have code. Figuring out what assembly does without being able to run the code is difficult, but this is still better than nothing. For the record, this post was scheduled to go out on 15 July 2022 but I ended up waiting so that I could do some more digging and check if the EXE unpacked well enough to be worked on.

Right now, I am interested mostly in breaking into the game's BPC format, which is the archive format for all of its data. Thanks to Leiko's contribution, I have now found the code responsible for reading these files and I am browsing through it with IDA, mapping out all of the functions in the vicinity of code that (presumably) handles reading. I am very excited and will keep you all posted.

As is typical, though, my job has been keeping me particularly occupied and I can't divert my full focus to this. This mapping process takes a very long time (especially on an EXE still, metaphorically speaking, 'scarred' by its obfuscator). For those that want to work along, I'll consider how to do this, but IDB files (for IDA) are not small, and IDA is not free software unless you politely coerce it into being free through f u n n y   m e t h o d s. Disclaimer: I do not endorse this act.

No matter -- extend a very big thank you to Leiko. The toolkit recommendation was a serious make or break moment for the project and has made a significant difference despite being such a small action. Thank you!

11 July 2022 - Alpha V8 Build 25516 found!

We just got ahold of Alpha V8 (build 25516) from Tynster. It's another entry for the archives which is always a win in my book. It's not a new major version, so I am still getting access violations when I try to tear the program out of its Themida shell (if you the reader wants to lend a hand, please do, I'm out of hair to tear out) - still, beggars can't be choosers. A huge thank you for your contribution!

Aside from that, with the help of one of Arctium's Ko-fi supporters, Zee (side note, real quick shoutout to Arctium, I lent a hand on their archival of WildStar which is another MMO that shut down), I was able to get a bare-bones Binary Template file for the .BPC format of Alpha V10. It doesn't quite seem to map out to earlier versions unfortunately. I was able to get a lot of the data down, but Zee was responsible for pointing out some very slight details (the size of some values, and the structure of some data) that had a pretty big difference. You can download it in the Game Binaries & Content section on the lower left of the screen.

12 October 2021 - A gold-plated helping hand

Just recently, someone under the alias of "Rubx" came to me completely by surprise offering me some advice with the project. Let's face it - I may know my x86, but when it comes to obfuscation and the techniques people use to keep people out of their code, you might as well try asking your grandma for help. I don't know squat (unless it's a trick from decades ago). Now this guy? Right out of the gates, he had me directed to resources I didn't even know existed, and had me figuring out key details that would have gone completely unnoticed if it were just me alone working on this. He's been very helpful with giving me the resources to try to free SkySaga from its virtual casing and has remained very patient with me and my lack of knowledge on the process and topic. That's not something you see often with folks like us, even I get impatient with people asking a lot of questions that may be simple for me to answer.

Onto the topic of what progress was made: There's some good news and bad news. Good news is we discovered the obfuscator employed on SkySaga. Bad news is that it's Themida. That's right, they used Themida. On a closed alpha test. If you aren't familiar with what Themida is and why it's insane for them to use that here, think of it like hiring the US military to guard your property 24/7, except you live in a really clean neighborhood with no crime. Not only is it so overkill it might as well be comical, but it's just a waste of resources. The motives of Radiant Worlds are well beyond our feeble, weakling minds... You need an IQ of at least 182,591,134,458,574 to understand why they made this design decision.

Now while reversing Themida is indeed possible, we have run into some unexpected difficulties in doing so. Something about SkySaga is different, and the typical unpackers do not function. We've hit a roadblock and are at a dead stop, and going through SkySaga manually is suicide (and then some). Unfortunately, this means that while there is that glimmer of hope, there's also an unfathomably large abyss waiting to engulf this project, never to be seen again. I can only hope that we resolve this issue. Failure to do so means the end of the project.

19 May 2021 - Slowed Progress, Bits and Pieces

I outlined this in the Discord server but I never really put it here -- tl;dr "I work on a lot of stuff and hop between projects regularly, it'll look like miracles are being done to this project and then I'll suddenly cease to exist for a while, rinse and repeat". You get the gist. The full post is in the #tidbits channel on the Discord server.

As far as progress goes (since I assume that's what most of you are here for) I've done more digging into the pc file format seen in Alpha 8 and earlier. I've not exactly managed to figure out what the format is, but I think I'm onto something. I believe part of the file is index data and part of the file is raw data, but I'm not exactly sure yet and I'll need to look into it more before I post anything definitive. I've only come across three headers for these supposed indices: VTXB (vertex buffer?), ACTR (actor/AI?), and DICT (Dictionary? That's specific..)

One of the hardest things to do is dig into a file format without a game's source code. Extracting data is hard but it's often done with the help of the code that reads that data. If you can see how the computer does it, then you can do it too. Without the code, I'm literally just guessing based on what I've seen in other file formats and hoping for the best. It's estimation at the very best. For this reason, file extraction capabilities are coming along slowly.

21 March 2021 - A Helping Hand

A couple days ago I was approached by Freki - who you may know for his work on an early-development recreation of SkySaga - wondering if I had cracked open the file format for the game's data. (Spoilers: I haven't yet. Sorry!) After some short discussion, and me showing him how to launch the game with the various parameters required, he set up a bare-bones auth server that (currently) does nothing but spit out what the game sends it in plain text. Despite it's simple nature, this is a pretty big development! Now I'll be honest - I'm way better at the disassembly side of things. Show me networking stuff (especially with encryption) and I don't know anything. Having someone lend a hand who knows at least a little more about me in terms of networking is instrumental to this project's success. So really - give a huge thanks to Freki for his assistance!

20 March 2021 - Alpha V10 Build 36546 found!

Special thanks to u/Sharp_Transition6954 for submitting this to me. I initially looked at the game files and went "Oh, this is probably just a dupe of Alpha 10". I'm glad I checked the version.txt file in the Client directory because I wouldn't have seen the difference otherwise. Also, when I ran the client exe, I noticed that the sounds work in the older build but not the newer one. Peculiar. No matter -- b36546 is now available for download, and with it, a slight tweak to the download links on this site, which will now have the build number.

16 March 2021 - Launch Flags

For the first post on this little mess of a blog, I'd like to show off the valid launch flags for the game. I don't know what any of these do, most of them have no function right off the bat. The only obvious ones are /showcode (and 2), and /forcerun. You can run the game with an authenticated user by inputting a JSON string: {"username": "joe", "password": "mama"}
/bugcheck2
/bugcheck
/nosplash
/forcerun
/bugcheckfull
/showcode
/showcode2
/clrt
/dis1
/showinstance
/getwlstatus
/logstatus
/dumpstatus
/checkprotection
/skipactivexreg
/deactivate