- Author: CXO2
- Version: 0.7.0
This program implement system hooks which provides a virtual FileSystem that enables O2Jam Client (OTwo.exe) to load various file formats from various sources.
For an instance: Loading BMS file from Network directly.
Please note that extension is NOT limited to music files. As such, it is possible to implement a custom FileSystem for image files.
This project is highly experimental and only serve as Proof of Concept at this stage, so bugs and errors are to be expected.
Currently only capable to handle BMS format from a Disk with some features are still missing; including but not limited to:
Custom file extension, OJNList.dat and OJM Sync support, Note Pan and Note Volume, Multi BMS Difficulty.
- Download or Build the project.
- Place
O2FS.Launcher.exeandO2FS.dllunder the same directory of O2Jam game client. - Run
O2FS.Launcher.exewith O2Jam client standard arguments (the launcher will launchOTwo.exeand forward the arguments).
Quite amount of effort is needed to complete this hook so it can provide flexible virtual FileSystem:
Chartingdata classes / structs
Current design is not final and should follow O2Jam data structure as close as possible while maintaining customizability.- Synchronization Files Implementation
Headers insideOJNList.datand Samples insideOJMneed to be match or else the game may fail to load the conversion output. This synchronization feature is possibly needed for Image files as well. - Image FileSystem Implementation
Hooks that customize FileSystem for Image files such asOPIandOPAfiles. - Serializers and Deserializers
Improvement for current Serializers and Deserializers, It also need a factory pattern or possibly other proper design that enable integration of new extension for other file formats. FindFirstFileandFindNextFileHook
This will allows custom extension to be recognized as-is by the game.- DLL Extension
Allows a third-partyDLLfile to be injected to the game with O2FS interface for external virtual FileSystem.
This is an open-sourced library licensed under the MIT License.