Skip to content

Instantly share code, notes, and snippets.

View SirusDoma's full-sized avatar
Somnus Aeterna

CXO2 SirusDoma

Somnus Aeterna
  • Phillix, O2Planet
View GitHub Profile
@SirusDoma
SirusDoma / CXO2.md
Last active March 19, 2026 20:03
CXO2: O2Jam Remake Project

CXO2

A faithful, customizable, and cross-platform implementation of O2Jam client written in C++ on top of Genode, an in-house game engine based on SFML.

Unlike other remake or clone projects, the project is made to be a faithful, literal "clone"/"carbon copy". This includes everything we know about O2Jam, including but not limited to: interface, avatar, asset formats, network protocol and online system.

It is not aimed to be a 1:1, which means some minor design/details may deviate slightly from the original O2Jam, But the project will always remain faithful to the original O2Jam.

@SirusDoma
SirusDoma / bytes-format.md
Last active March 19, 2026 01:06
A certain .bytes File Format Documentation

A certain .bytes File Format Documentation

Overview

The .bytes file format is a binary format used for storing chart data in a certain rhythm games with Unity-based engines. This format is a derivative of the .pt format and contains timing information, note data, tempo changes, and references to audio samples (officially called instruments).

File Structure

The file consists of several sections in the following order:

@SirusDoma
SirusDoma / egameencrypt.cs
Last active May 19, 2025 09:47
O2Jam e-Games auth token encode/decode
using System;
using System.Text;
public class Program
{
public static void Main(string[] args)
{
// Encoding: UTF16-BE (BigEndianUnicode in C#)
string encoded = "ADAAOQBEADUAQgBBADcAQwAtADUARQAyAEEALQA0ADYANQBBAC0AOQA4AEUARAAtADgAMgBDADYAOAA1AEEARgAxAEYAMQA4";
string decoded = "09D5BA7C-5E2A-465A-98ED-82C685AF1F18";
@SirusDoma
SirusDoma / DxWavEncoder.cs
Last active January 6, 2023 03:25
2DX MS-ADPCM Wave Encoder
using System;
using System.IO;
using System.Reflection;
using System.Runtime.InteropServices;
using NAudio.Utils;
using NAudio.Vorbis;
using NAudio.Wave;
using NAudio.Wave.SampleProviders;
using NVorbis;
@SirusDoma
SirusDoma / ItemData.txt
Last active July 2, 2025 16:45
[O2Jam] ItemData Parsing
==================================================
Itemdata.dat Documentation
CXO2 a.k.a SirusDoma
05-09-2015
==================================================
===== Header Itemdata.dat ========================
Offset Size Summary
0 int32 Total Items in Itemdata.dat
==================================================
@SirusDoma
SirusDoma / OJNDecrypt.cs
Last active August 30, 2025 19:20
OJN decryption algorithm
using System;
using System.Text;
using System.IO;
namespace OJNDecrypt
{
class Program
{
// Here new OJN header payload
struct OJN