This is a tool that can convert the content in iidx hdd into osu!mania beatmaps.
-
Modify
Root
inProgram.cs
to the root directory of the hdd. The directory structure should be as follows:- content - data - font - graphic - info - movie - qc - sound - dev - modules - prop
-
Modify
ResultPath
inConverter/OsuConverter.cs
to the folder where you want to save the output. -
Use bemaniutils to unpack the
.ifs
files inpath/to/hdd/contents/data/sound
.cd path/to/hdd/contents/data/sound for i in `ls *.ifs`; do path/to/bemaniutils/ifsutils $i -d . done
- First, the program reads the
music_data.bin
file to get information about all the songs. - Since some of the letters in the song names in
music_data.bin
are replaced with question marks (0x3f
), the program readsvideo_music_list.xml
to get the complete names of the songs. - Songs with multiple sample sets (
.2dx
,.s3p
) are filtered out (this is because I couldn't find the mapping between difficulty and sample set). - For each song (this process is parallelized):
- Parse the beatmap (
.1
) file. - Get the intersection of all the beatmap samples.
- Generate the main audio file (
.mp3
) from the intersection. - Copy the main audio file and the complement of the samples to the output folder.
- Generate
.osu
files (including 7k, 8k, and 16k beatmaps).
- Parse the beatmap (
Note: Intermediate files generated during the process are also saved as cache in the output folder, so you can safely terminate/re-run the program.
You can find all the beatmap files and audio files in ResultPath
. The ResultPath/osu
folder contains all the generated osu!mania beatmap files. You can copy all the files in this folder to the osu!/Songs
directory and use F5
in the game to refresh the song list.