This is a tool that can convert the content in iidx hdd into osu!mania beatmaps.
-
Modify
RootinProgram.csto 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
ResultPathinConverter/OsuConverter.csto the folder where you want to save the output. -
Use bemaniutils to unpack the
.ifsfiles 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.binfile to get information about all the songs. - Since some of the letters in the song names in
music_data.binare replaced with question marks (0x3f), the program readsvideo_music_list.xmlto 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
.osufiles (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.