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.
The end goal is to remake every official major clients released by e-Games and Nowcom.
- Download and install O2Jam Client v3.10 somewhere in the internet (v3.15 or v3.38 may work, but untested)
- Download
OTwo.zip(click or right click -> save as theview the full fileto download) - (Optional) Backup original
OTwo.exein the game installation folder (default:C:\Program Files (x86)\e-Games\O2Jam) - Extract the contents of
OTwo.zipto the game installation folder - Run
CXO2.exe, register / login and then press start.
- Alt+Enter: Switch between full and windowed mode
- Alt+Up: Switch between letter box and stretch mode
- F10: (non-ingame screen) Switch vsync on/off.
The patcher is a stub program and does nothing. Any updates must manually downloaded from this document until the patcher work properly.
These programs did not collect any information, including error and crashes.
If you are encounter any bugs, error or crashes; or simply have questions regarding this project, please use the comment section below. Any input and bug reports are highly appreciated.
Initial beta release
Fix thumbnail and cover loading
Hotfix: Fix gameplay crash when 3D effect is disabled
Experimental: macOS and linux build
Various bug fixes:
- Regression fix: room slot lock/unlock cover visual is not reflected
- Fix black screen during loading
- Fix state mismatch when a user join the room during STATE_RESULT
- Fix thumbnail loading mismatch in SelectMusicDialog
- Fix female avatar not loaded correctly in STATE_PLAYING7K
- Fix outdated session info shown in STATE_ROOM
- Fix incorrect music level indicator in STATE_PLAYING7K
Enhancements:
- Limited support parsing text with legacy Unicode encoding using system font fallback mechanism
- Support sending wide string to the server
- Emoticon now reflected to other players
new(encrypted) OJN is now supported
Minor improvements:
- Re-enable retry button (only for Single mode)
- Music selection color coding for unavailable music
- BugFix: fix incorrect no music indicator of other players when the player themselves doesn't have the selected music
Additionally, the launcher has been replaced. Admittedly, it looks far worse than previous ones, but this is required to avoid using any copyrighted materials; so please bear with me!
Hotfix: Fix launcher that break for some people.
3-4 weeks. The client will remain work if you host your own server (or connect to the other server if someone hosting the server) afterward
You have to find the client by yourself and I cannot help you with that. And no, the client is not compatible to run with 1.8 client
v3.10 (pre NX era). v3.15 or v3.38 may work, but untested.
I have no idea why this trigger the windows defender but there's nothing malicious about these programs, you can scan the files with anti virus or virustotal (OTwo.exe) by yourself.
That said, use the client at your own risk, I will not be responsible for any damages caused by these programs.
This may happen if you have multi monitors, each has different refresh rate. This is known issue, in the meantime, you can turn off game V-Sync by pressing F10.
Where's the ring/modifier? Why I can't set my speed when joining a room? Why some equip item slots/categories missing? Where's OJNList.dat? Where's (insert feature here)?
One of the project goals is to remake all major O2Jam client versions that were ever published by e-Games and Nowcom. Starting from v3.10, because it is the earliest client that is available in my disposal.
O2Jam v3.10 does not have ring/modifier among other things. The next iteration will bring these features.
Absolutely, although the client and server will perform no validation to your music list. This is because client v3.10 does not have OJNList.dat implemented.
It is easy to spoof, the music. So please be mindful when playing with others.
The music title in music selection is incorrect or gibberish, it supposed to be displayed in (Chinese/Japanese/Korea/etc). Can you fix it?
Currently, the game implemented support for legacy Unicode encodings. However, the encoding information is not included in OJN header, so the game has to guess it. Unfortunately, this mean the decoding process is not guaranteed to be reliable all the time. Still, if this led to game crash, let me know in the comments below.
You may not notice it, but this issue also appear in the original client. Each O2Jam distribution use different set of localization implementation, which mean it may use different fonts (and probably encoding handling too). For example, using chinese title in O2Jam client v1.8 (9you) will likely work and reliable, but the game will likely fail to display the titile for any song with Korean title. The opposite also happening with O2Jam Korea client.
The game is a drop-in replacement of original OTwo.exe, which mean it can read all files that original O2Jam client can read, including .opi/.opa and .ojn/.ojm (and in the future, OJNList.dat).
This mean modded Interface1.opi, Playing1.opi and/or Avatar.opa may work in this client, as long as the files are compatible with v3.10.
The client also extend the interface/avatar asset pipeline further by utilizing json format and extremely extendible for this front, you can use this to mod or even build the scene composition from the scratch. The details will be shared later.
Further modding (such as extending game via library (.dll)) is still under planning phase. Please note that any dll injection that you use with original OTwo.exe will not work.
Also, since the game use same network format, you can play the original game client v3.10 in this server as well. Cool right?
Absolutely, use Mozart.Encore to host your own server or for local (network) play. Follow the instruction in the README, and then do the following:
$ mozart.encore.exe user:register myusername mypassword
$ mozart.encore.exe user:authorize myusername mypassword
(Copy launch token)
Run OTwo.exe with the following arguments:
OTwo.exe <paste launch token here> my-ftp-server:1234 O2Jam 3 127.0.0.1 15010 127.0.0.1 15010 127.0.0.1 15010
Replace "127.0.0.1" with your server address (if you are hosting private server)
Note that you can't use CXO2.exe when hosting your own server.
It is not possible at the moment but it is already partially implemented inside the code.
For now, you will have to use Mozart.Encore to setup local server.
The build systems for OSX and Linux are currently broken. This is not the priority at the moment to fix these issues, but please do let me know in the comment section if you wish to run the game in these platform.
Build for macOS and Linux is available to download. However, it does not include launcher because currently the launcher is exclusively run only in windows.
You have to pass correct argument in order to play in these platforms:
- Download the
OTwo.macOS.zip, open and move theOTwo.appinto different folder - You may need to move the app out of quarantine via
xattr -d OTwo.appin terminal - Right click -> Show contents and then go to
Contents/MacOSand put game files inside this folder - Run the
OTwoexecutable inside theContents/MacOSwith appropriate launch arguments
Launching the app bundle currently does not work because the app bundle will fail to locate the game installation files.
Tested on SteamDeck (although, it is slightly different build)
- Install necessary dependencies to run the game
- You may need to grant execute permission by using
chmod +x ./OTwo - Run the
OTwoexecutable with appropriate launch arguments
Note: Currently running the game in these platforms is considered experimental, further updates may not be backported to these builds during the testing period.
https://github.com/SirusDoma/CXO2
I'm not distributing any e-Games/Nowcom/O2Jam IP. Users must provide legally obtained game installer to play this game.
The game did not contain any copyrighted materials, the source code are written from scratch and none copied from the original game binaries.
None at the moment.























EDIT: IdentityP2.Encore is released!
https://github.com/SirusDoma/Mozart.Encore/releases/tag/v5.0.0
Full network support for O2JamO2 Final (v5.89). 3K Mode supported*.
* Require compatible a OJNList.dat to work.May compatible with simpler version of OJNList.datThe supported client is equivalent to the O2Solista client (should work with O2Solista v0.3, v0.5, or v0.6). Unfortunately, I don't have an official installer for this one. If anyone has, please share!
The OJNList parser has been updated, refer to that if you need to figure out how to write OJNList.dat encoder for this particular clients