Omnimix patches for beatmania IIDX implemented as a hook library
- Automatically discovers and applies all necessary patches
- Fixes clear & full-combo rates not displaying for all charts
- Uses lightning model files for subscreen searching if detected
- Option to show Omnimix charts with a distinct bar style in music select
- Includes music data & chart hashes for optional server-side validation
The same omnifix.dll file can be used across all supported games:
- beatmania IIDX 33 Sparkle Shower
- beatmania IIDX 32 Pinky Crush
- beatmania IIDX 31 EPOLIS
- beatmania IIDX 30 RESIDENT
- beatmania IIDX 29 CastHour
- beatmania IIDX 28 BISTROVER
- beatmania IIDX 27 HEROIC VERSE
※ LDJ-010 and LDJ-012 versions only
To avoid conflicts, ensure any existing Omnimix patches are disabled before use! This includes any pre-patched files such as bm2dx_omni.dll or Omnimix related patches applied at runtime via. spice2x, mempatch-hook, etc.
After you've confirmed this, download a pre-compiled version from the Releases page
Copy the omnifix.dll file to your game directory and update your launcher options:
spice64.exe [...] -k omnifix.dll
launcher.exe [...] -K omnifix.dll
Tip
If using IFS LayeredFS, ensure ifs_hook.dll is loaded before omnifix.dll
If any necessary files or patches could not be found, no changes will be made and the game will boot normally
Upon booting, the last character in the version string before the date should be X, e.g. LDJ:J:D:X:2024100900
※ If successful, the omnifix version is also displayed on the boot screen. This can be disabled with the --omnifix-disable-boot-text option
Ensure your logging level is set to at least info in prop/avs-config.xml (or -loglevel info with spice2x)
If using Bemanitools, you may also want to use the -Y log.txt launcher option to write log contents to a file
Related messages should appear in the log file, for example:
[2025/09/09 23:14:18] I:omnifix: omnifix v0.4.0 (master@3c6e4c5f) loaded at 0x7ffbc7010000
[2025/09/09 23:14:18] I:omnifix: built Sep 10 2025 00:11:07 with Clang 20.1.8
[2025/09/09 23:14:18] I:omnifix: detected game library 'bm2dx.dll' at 0x180000000
[2025/09/09 23:14:18] I:omnifix: enabling file path patches
[2025/09/09 23:14:18] I:omnifix: checking if file '/data/graphic/0/mdato.ifs' exists
[2025/09/09 23:14:18] I:omnifix: checking if file '/data/info/0/music_omni.bin' exists
[2025/09/09 23:14:18] I:omnifix: checking if file '/data/info/0//music_title_omni.xml' exists
[2025/09/09 23:14:18] I:omnifix: checking if file '/data/info/0//music_artist_omni.xml' exists
[2025/09/09 23:14:18] I:omnifix: checking if file '/data/info/0/video_music_omni.xml' exists
[2025/09/09 23:14:18] W:omnifix: optional file '/data/info/0/video_music_omni.xml' not found
[2025/09/09 23:14:18] I:omnifix: using custom 'X' revision code
[2025/09/09 23:14:18] I:omnifix: enabling leggendaria fix patches
[2025/09/09 23:14:18] I:omnifix: enabling music data buffer patches
[2025/09/09 23:14:19] I:omnifix: enabling chart unlock patch
[2025/09/09 23:14:19] I:omnifix: enabling xrpc services metadata hook
[2025/09/09 23:14:19] I:omnifix: enabling xrpc music metadata hook
[2025/09/09 23:14:19] I:omnifix: enabling clear rate hooks
[2025/09/09 23:14:19] I:omnifix: enabling song banner hook
[2025/09/09 23:14:19] I:omnifix: initialized successfully in 0.14 seconds
Set the log level to misc for even more detailed messages, e.g.
[2025/09/09 23:14:18] M:omnifix: applying patch at 0x1805f389c (size: 1)
[2025/09/09 23:14:18] M:omnifix: - original: 75
[2025/09/09 23:14:18] M:omnifix: - modified: eb
[2025/09/09 23:14:18] M:omnifix: applying patch at 0x180878374 (size: 2)
[2025/09/09 23:14:18] M:omnifix: - original: 74 25
[2025/09/09 23:14:18] M:omnifix: - modified: 90 90
Some functionality can be controlled through command-line options:
Disable Omnimix patches. Useful if you only want network metadata or the clear rate fix hooks
Disables hooks for raising the limit of how many clear & full combo rates can be stored by the game
Prevent omnifix version information and music chart hashes from being added to outgoing requests
Enables the 'Unlock All Songs and Charts' patch. Not recommended when playing online
Disables the omnifix version text from being displayed on the boot screen
Display Omnimix exclusive charts with a distinct banner color in music select
When enabled, song banners will exclusively be used to indicate Omnimix charts.
Replaces the default
Xrevision code with a custom one. Single character only
Use a custom path for the override
music_data.binfile. Maximum 27 characters
Use a custom path for the
class_course_data.binfile. Maximum 34 characters
Use a custom path for the override
mdata.ifsfile. Maximum 12 characters
Use a custom path for the override
music_title_yomi.xmlfile. Maximum 34 characters
Use a custom path for the override
music_artist_yomi.xmlfile. Maximum 35 characters
Use a custom path for the override
video_music_list.xmlfile. Maximum 34 characters
By default, omnifix will append additional metadata to the initial services request and new score submissions
The services request on boot will include the SHA-256 hash of the data/info/#/music_omni.bin file. This can be used by network operators to block unsupported versions from booting when a new update is available
Example services request
<?xml version="1.0" encoding="Shift-JIS"?>
<call model="LDJ:J:D:X:2024100900" srcid="00000000000000000000" tag="00000000">
<services method="get">
<omnifix branch="master" commit="3c6e4c5f" version="0.4.0">
<mdb_hash __type="bin" __size="32">ca58c3de8670c29bd8e649c2cbf9f34bc29bbca705ffa048d6c24aec3d3baa66</mdb_hash>
</omnifix>
<info></info>
<net></net>
</services>
</call>Every newly submitted score will also include a SHA-256 hash of the chart, obtained by seeking to the relevant offset and reading the amount of bytes specified in the .1 directory entry for the current difficulty
Example score save request
<?xml version="1.0" encoding="Shift-JIS"?>
<call model="LDJ:J:D:X:2024100900" srcid="00000000000000000000" tag="00000000">
<IIDX32music method="reg">
<ghost></ghost>
<ghost_gauge></ghost_gauge>
<music_play_log></music_play_log>
<best_result></best_result>
<omnifix branch="master" commit="3c6e4c5f" version="0.4.0">
<chart_hash __type="bin" __size="32">35d09686bdca856337ba44844a58672b4421c3084bb6e22a204c2c984e361052</chart_hash>
</omnifix>
</IIDX32music>
</call>- AllanCat for the increased music data buffer patch
- dogelition_man for the original rate fix implementation