songs.dta
When you add customs to a GH2 disc, you'll have to edit two of three files to make the song work in-game:
songs.dta
, which is the main song data file that defines audio, charts, quickplay guitarist/guitar/venue, channel mappings, and...well, song stuffcampaign.dta
or store.dta
to get your song to appear either in the tiers or in the bonus tracks sectionWe're focusing on songs.dta
today. (I'm assuming you've read that dtab tutorial and gotten a DTA out of your songs.dtb
, or used ArkHelper to convert all the game's scripts automatically).
This is the manual way to add new songs to GH2, which I still think is useful to have written down. Now, though, there's a more automated way to do it which I strongly recommend, and that's using the Onyx Music Game Toolkit. Onyx will take in CH or RB format .mid
and .chart
and Vorbis audio, convert them, and add them to your ARK exactly how they should be. It's a far more convenient method than the one I'm about to show you.
You can get the Toolkit at Onyxite's GitHub. Tons of people in MiloHax already use it and love it, and they'll help you out if you still need it. Seriously, don't do work you don't have to if you're just a casual who wants to play some CH songs in GH2. Onyx is a far more foolproof method of doing so, and it's also a GUI, unlike our current methods of toying with ARKs and scripts.
If you're still keen on learning the manual way (for more control or for the ability to debug the songs.dta
file, for example), read ahead.
All songs in GH2 are referred to by a shortname, which is a shrunken version of the actual song name. Here's a few from the base game to give you an idea of the naming conventions:
badreputation
: The full song name, no spacescantyouhearme
: Major parts of the song title for very long ones, no apostrophesdead
: Full song name, no punctuationhangar18
: Full song name, numbers allowedpsychobilly
: Major word in the titletonightimgonna
: Major parts of the song title, no apostrophesThere's not necessarily a length the shortname needs to be, but keep it short, and don't use anything except numbers and letters. Shortnames are also always lowercase. Go ahead and come up with one for your song. Say you're doing a custom chart (or an RB2 port!) for Megadeth's "Peace Sells". peacesells
would make a fine shortname, so let's roll with that example.
Shortnames aren't just used in the songs.dta
file, they're also the names of the files for that song on-disc. Purely technically speaking, they don't have to be, but I'd strongly recommend you don't confuse yourself and keep things the same name. All the files for our "Peace Sells" custom will be have peacesells
in the name.
You only technically need two files to get the song in-game, the audio (in VGS format) and the chart (in MIDI format). A fully decked-out song has a maximum of six files, the chart, the audio, a singer facial animation file (the .voc
file, which is just loaded from whatever the chart name is), and three practice mode audio files which contain pitch-shifted audio for the game's three practice speeds. A fully decked-out "Peace Sells" custom would therefore have six files:
peacesells.vgs
peacesells.mid
peacesells.voc
peacesells_p85.vgs
peacesells_p65.vgs
peacesells.p50.vgs
Again, you only technically need the first two. The game can work without separate practice mode audio, and the game will work just fine if the .voc
doesn't exist. The singer's face simply won't animate (no great loss there).
Either way, in your ARK, go into the songs
folder, make a new folder named your new shortname (so in our example, a peacesells
folder in songs
), and throw all of the files you've got in it. Use some of the folders already in songs
as a reference to make sure you've got things named right.
Now that we've got stuff organized, we can write the definition for it.
Time to open up your songs.dta
. It'll be in your config
folder in the ARK. It's not strictly necessary just to get a song in-game, but if you're curious about the format of a Data Array script like this, I've written a primer on its format that you can read at your leisure. To make things easier though, I'm just gonna give you a skeleton song definition you can make changes to.
(newsong
(name
"New Custom GH2 Song")
(artist
"Artist")
(caption performed_by)
(song
(name songs/newsong/newsong)
(tracks
((guitar
(2 3))
(bass 4)))
(pans
(-1.0 1.0 -1.0 1.0 0.0))
(vols
(0.0 0.0 0.0 0.0 0.0))
(cores
(-1 -1 1 1 -1))
(midi_file songs/newsong/newsong.mid))
(anim_tempo kTempoMedium)
(preview 2000 5000)
(quickplay
(character_outfit metal1)
(guitar lespaul)
(venue big)))
Some notes about this definition:
newsong
to whatever your shortname is.(caption performed_by)
controls whether the song is an "as made famous by" or an "as performed by". You can set this to any random string name, or get rid of the (caption)
array entirely to make it the former. Just delete that entire line.(preview 2000 5000)
array, I've set intentionally very short and early in the song to make sure that, even without changing it, your game doesn't crash. This is in milliseconds if you'd like to set a custom preview time.(quickplay)
array sets which guitarist, guitar, and venue is used in quickplay. If you're modding Guitar Hero II Deluxe, quickplay flow lets the player set these instead, so don't worry about it.songs.dta
format reference for all the specifics.Contrary to what I've long thought, your songs.dta
file doesn't need to be alphabetical by shortname or separated out into sections--you can simply paste this in at the very top of the file and it'll work. Then all you need to do is edit one of the other two files to add your newly-defined song to the setlist.
INDEX |
CHANGELOG |
CONTACT
ART |
MODDING |
MUSIC |
WRITING
GAME REVIEWS |
MUSIC REVIEWS
NOFI | LOFI
This site powered by AutoSite technology.