Welcome to CXO2!

O2Jam
Figure 1. O2Jam Logo

Welcome to the CXO2 devlog site! Here, I’ll post about development progress on the CXO2 and Mozart.Encore projects, as well as the O2Jam re-discovery and reverse engineering journey to understand the game better.

But before we talk about anything about it, I’d like to invite you for a quick stroll down memory lane with a brief introduction to O2Jam.

The rise and fall

O2Jam (Korean: 오투잼) is a Multi Player Online Music Game (MPOMG), or in other words, an online rhythm game developed in South Korea by O2Media for PC. The game launched its open beta on 25 November 2002 in Korea by mgame, and a couple of years later across the Asia by multiple publishers such as e-Games (Indonesia, Malaysia, Philippines, and Thailand), GAMANIA (Japan and Taiwan) and 9you (China). At a glance, it plays like Beatmania IIDX with 7 keys and no turntable.

O2Jam Gameplay
Figure 2. O2Jam multiplayer gameplay (via 4gamer.net)

What is interesting is that GAMANIA and 9you clients feel like a fork of the other server, it was more than just a localization and specifically made for these regions. In contrast, the remaining clients (e-Games and mgame) are consistent, differing only in localization aspect.

Anyway, much like other VSRGs, the gameplay loop was simple: notes fall from the top of the screen, and you press the corresponding keys in time with the music. Easy to learn, yet hard to master.

What really set O2Jam apart from other rhythm games was the social aspect. Features like avatar customization and in-game chatting made the game feel less like a constant grind and more like a social hangout. This aspect alone help to give casual vibe in which it help gaining popularity, since rhythm game is considered as incredibly niche genre outside console and arcade. It was also one of the first PC rhythm games to implement keysounded notes using WAV sound sources.

By 2011, e-Games, GAMANIA, and 9you had terminated their O2Jam services after the game lost its market share to other MMOs (among other things). O2Jam Korea was transferred to NOWCOM before shutting down on 30 May 2012.

Private Server

Thanks to the 9you server file leak, the community was able to survive after the official service was terminated. For years, the community has developed asset mods and server tooling to extend the game’s lifespan.

We are not into modding the executable just yet during this period. For this reason alone, 9you client was the easiest client to work with, leaving the main official clients (e-Games and mgame) left behind, even the newer ones. But hey, the game is back!

Unfortunately, Windows 8/8.1 happened, which killed DirectDraw, the rendering engine that the game uses. This renders the game unplayable on modern OSes, as the DirectDraw compatibility layer is insanely poor. By the time the DirectDraw wrapper made by retro game enthusiasts started to pop up, it was already too late; the game had already experienced its second death. At this point, people are moving on with their life, I could be considered one of them.

Some years later, the community’s remnant and newcomers made incredible efforts to revive the game once more, resorting to binary patching and hooks. However, people are still solely focused on the 9you client and the core gameplay. It was beyond comfort client for the community.

Moreover, most, if not all, of these dedicated people came after the official service termination. They never played the original O2Jam, so they didn’t have any attachment to the game’s social aspect. Over time, they slowly removed many of those elements. For example, Avatar was completely removed.

Modded Gameplay
Figure 3. Modded game client (via Youtube)

Don’t get me wrong, this is not a diss to any old and new generation community; again, they did an incredible job that I would never be able to do. After all, I too never played O2Jam e-Games and was part of the older generation modding scene (I played O2Jam NOWCOM though). But I spent a ton of time with people who played both official and private servers, and I always envied them, wished I could have been part of that era.

CXO2: The remake project

I started this project around 2012, back when I was in middle school. I barely knew anything about programming and failed spectacularly multiple times. I also had a different objective back then: to create the ultimate private server, the best one among all the others.

Mind you, I’m not the first person who thought to remake the game. Open2Jam and LostWave were already around before I started. They are playable, but none of these projects managed to see it through.

LostWave Gameplay
Figure 4. LostWave gameplay

At some point in my life, I was ready to move on to other things. But the thought of the game seeing better days was always living rent-free in my mind. The game was more than just a game for me, it was always a big part of my life. It introduced me to programming and connected me with awesome people.

So I kept coming back, year after year, but I could never quite finish. It was such a hard pill to swallow that all of my work would merely amount to a fanmade remake. That, along with a myriad of other reasons, some reasons are technical, some are not, but it always held me back.

Eventually, years after, I have made my peace, and shifted my objective: preserving the O2Jam legacy. Over the years after the official service termination, many O2Jam clients across different regions has been lost. Even GAMANIA clients are completely lost. It also become unplayable on modern OSes without intrusive mods. The game wasn’t just forgotten; it slowly losing its identity both on official and unofficial scene and it was slowly drifting into the void.

So this is where I am now. Rebuilding the place I once called home, I want this place to become a place where I can come back anytime. It may look empty to other people, but to me, it’s full of memories. (Okay, enough with the cringy cheesy lines.)

What’s next?

Thank you for reading this far! I can’t promise a regular posting schedule, but expect to see more posts about the development process of this project, including some reversing journals. So stay tuned!

Until next time, see you around!