Adding/Porting Songs to beatmania IIDX Arcade Editions
Written by AJ 187 on August 20th, 2007, based on the older, jointed steps
that were here before.
This guide is just a curiosity now, in 2010. I leave it up for whatever reason.
Table of Contents
- Introduction
- Required Tools
- Before You Begin
- Porting Songs from Other Windows-based IIDX Games
- Adding Songs from non-IIDX Sources/CS Versions
- Fun Extras
- Thanks
Hi, I'm AJ. You may know me, or you may not. I do StepMania themes
and some coding on the side. My real line of work is being a college student,
slacking off, and mooching off my parents. But this isn't about that. This is
about adding songs to the arcade versions of beatmania IIDX.
In any case, you'll want to have patience, as you may screw things up the first
time. This also used to be a lot harder before some tools were made. Of course,
I wouldn't know about that; you'd have to ask the Japanese. ;)
Enough of the boring shit, here's what you'll need. Some of these are optional,
depending on what you plan on adding. If you're like me and adding songs from
every possible source you can, then you should probably grab all of these tools.
p.s. I DID NOT WRITE ANY OF THESE TOOLS, DON'T COME TO ME IF/WHEN THEY CRASH
Graphics Related
Regardless of if you're going to do custom graphics for your songs, you should
REALLY get some of these tools.
- An image editor that can deal with TGA and alpha channels:
Photoshop, The GIMP, Paint Shop Pro, whatever the fuck, so long as you can work
with alpha channels.
gcz2tga: While not really needed if you're not
replacing graphics, it is a godsend, since I assume you will not be able to
remember every filename in the mdata folder.
packgcz: Again, only really needed if you're replacing
graphics. I still suggest getting this because it's going to suck when you have
songs that have the same graphics and you're trying to tell which is which
based on your BPM ordering system. This is PoP's special version, which fixes
some things related to Photoshop-exported TGA's.
generator: Optional, but if you don't care how your graphics look,
you can use this to generate the files. It's less work for you, but IMO it looks
cheap.
idxEdit: Optional, but
can be helpful in checking .idx, .gcz, and .gc files without needing to unpack
them.
Sound/Chart Related
Depending on what you're doing, you may need some of these tools. I recommend
getting them anyways.
BMSto1: Currently the
only known way to convert BMS files to .1 files for use in IIDX AC. It's
limited to only converting one chart at a time, but this can be bypassed thanks
to...
1Multiplexer.
This multiplexes .1 files generated by BMSto1, solving the
problem of one .1 file per chart.
- An audio editing tool that can upsample if need be and CDex:
When converting other BMS files, these are absolutely required for a number of
reasons.
- Most BMS files don't include Microsoft ADPCM wave files. IIDX only
seems to read those so far.
- Most of the original BMS files I've seen come with 22,050Hz 8-bit Mono
WAV files. IIDX requires 44,100Hz 16 bit Stereo WAV files.
There is a specific sequence you need to follow when converting WAV files.
If your files are not 44,100Hz 16 bit Stereo, you will need something to
upsample them. PoP recommends Cool Edit Pro or Adobe Audition 1.5 (just about
the same thing, what with CEP being the base for Audition).
Since CEP and Audition suck at converting to MS ADPCM, you need to find something
that doesn't suck at it. Kitaru swears by CDex,
which saves MS ADPCM nicely.
From experience, DO NOT USE SOUND FORGE 7 AS ITS UPSAMPLING ALGORITHM SOUNDS
AWFUL IN IIDX. If you want proof, ask me for my Colored conversion.
fix1: If you are forwardporting or backporting songs from other
Windows-based IIDX games, this is needed. No exceptions.
Data Related
Also known as the eout Related section. Without editing the eout, you won't be
able to play your songs in IIDX.
- EditOut (also known as eoutEdit): This is currently THE tool for
editing your eout file. It supports Happy Sky, DistorteD, and Gold.
encrypt and decrypt: Included with
the English version of EditOut, these tools allow you to mess with eout in the
editor above. decrypt decrypts it so it can be read and modified,
and encrypt re-encrypts it for use in IIDX.
Before you begin, there are a few things that need to be done. Some are optional
but helpful, and others are pretty much required.
Setting Up the eout.bin
As mentioned above, you will have to set up the eout to be editable.
eout.bin is found in data\info\eout.bin.
At this point, make a backup of your eout.bin file. I can't stress this
enough, as if you lose it, you'll be fucked and will have to reinstall IIDX. It'll
be even worse if you're editing a legit arcade machine and didn't back it up, as
Konami will probably kill you.
Once you've backed up eout, extract EditOut and place the eout.bin in the folder
where EditOut is. Open up a command line (cmd), cd to
the directory where EditOut and your eout.bin is, then, if you have encrypt
and decrypt in there like you should, run the following command:
decrypt eout.bin eout.dec
I would suggest copying eout.dec to eout2.dec and editing that with EditOut.
Open up eout2.dec in EditOut to make sure everything looks good. Depending on
what game you have, there will be a differing number of entries.
EditOut also comes with some pre-decrypted files. These are for research
purposes only; do not re-encrypt these to eout.bin. They ARE useful if
porting songs from one game to another, though, so keep them around.
With decrypting the eout out of the way, the most important step is done.
Setting Up mdata and in_* Work Folders
It's good practice to not work on the original files that you're given, as if
you mess up, then you're fucked.
This is where gcz2tga comes in. Copy gcz2tga to your
data\graph\sys folder. Make a new folder called mdata_work
or whatever; this will be your work directory for graphics. With all this set
up, go to a command prompt, cd to your data\graph\sys
directory, then run the following command, replacing mdata_work if
need be:
gcz2tga mdata mdata_work
It'll spit out some stuff, and you'll see a boatload of TGA files in
mdata_work or whatever directory. This is your guide to finding out
what graphics to put in the fields in EditOut. Like I said before, you're not
likely to memorize all the filenames. :)
This is the easier of the two options, as most of the data is easily available.
Preparing Your Data
You will need to find the following files that correspond to the song you're
moving over. I will call these the movie, overlay, 2dx,
and chart files.
Where can you find each of these?
- Movie:
data\movie\[number here].4
- Overlay:
data\graph\[number here]
- 2DX and Chart:
data\sd_data\[number here]\*.2dx, *.1
The movie is optional and on many songs, redirects to a shared video. These
shared videos have the following structure:
[style number][genre].4
Where [style number] is a two digit number from 01-14, and [genre] can be one
of the following:
- am: Ambient
- cl: C?
- cy: Cyber
- da: Dance
- di: Disco
- eu: Eurobeat
- ho: House
- hy: Happy
- pa: P?
- ra: Rave
- sp: Speed
- te: Techno
- tr: Trance
The overlay is also song-dependent, but it's much more serious if you don't
bring it over, as the game will crash if it's expecting an overlay. You can
check to see if your song needs an overlay in the last tab of EditOut. If it
has one, you can just copy the folder over to your data\graph\
folder without any problems. That is, unless it's from DistorteD.
The 2DX and Chart provide the sounds and notecharts respectively. Without these,
there is no song. Much like the overlays, you just copy the folder to the
data\sd_data\ folder. You won't need to pull off any fancy magic
unlike with the overlays.
Frontporting and Backporting - Timing Issues
If you frontport or backport a song, you may notice that timing drifts. This is
a problem with how the different games are set up. The good news is that it's
fixable on the .1 level. You will need fix1 to fix it.
Refresh Rates for IIDX Games:
- Happy Sky: 59.94
- IIDX Gold: 60.038
fix1 uses ratios to fix the timing, so you'll need to do some
division. The formula for figuring out the ratio you need to use in fix1
is as follows:
[new game refresh rate]/[original game refresh rate]
Put simply, to convert GOLD to HS, divide 59.94 by 60.038, then plug that in
to the fix1. To go the other way, divide 60.038 by 59.94. If you
have modified your GOLD or HS files for different timing, try and remember what
timing you set it at, since you will have to use that number instead of the
defaults.
It's best to perform this as soon as possible, so that you don't forget.
Graphics
Remember how I had you create that mdata_work folder? This is why.
Extract the mdata archives of the style you're porting from, if you
haven't already. After that's done, look in that style's eout for the files you
need. If it has a lot of common things, such as artist and genre, you may only
need the L_ and T_ files. If not, you may need all of
them. Here's a list of what's what:
A_: Artist
G_: Genre
L_: Label
M_: Mark (you'll only rarely need this, and perhaps not at all)
T_: Title
Once you get all the files in place, use packgcz to make the GCZs:
packgcz mdata *.tga
If you've followed every other step (copying files, editing and re-encrypting the
eout, fixing timing if necessary), you should be able to play your ported song.
This one is slightly harder to do, but the results are worth it, IMO.
Here are some fun extras I think you may like. I originally made these; update
them if you wish, but please share if you somehow make them better/more accurate.
- Happy Sky Title/Artist/List/Genre Template
- Happy Sky I_* Template
- DistorteD/Gold Title/Artist/Genre Template
Many people to thank here, in no particular order:
- Tau and Ahnada: Master Crackers. If not for them, this wouldn't be possible.
- Alis: For BMSto1 and data format docs.
- SaxxonPike: For BeMediaPlayer, BeMediaRipper, data format docs and other tools.
- 2ch people: For making some awesome tools like EditOut and IIDXDevice.
- PoP and Kitaru: For holding my hand through this. If it weren't for them, I wouldn't be able to write the guide. :D
- BoXoRRoXoRs: Because I can.