Monday, January 4, 2010

[DJMax]Part-Time File Fiddler: DJ Max Online note chart conversion tool

The DJMax series is my favorite music/rhythm games. Unfortunately, I never had a chance to play the original DJMax Online before it was shut down.

Some time ago I challenged myself to hack into the note charts, or *.pt files, for DJMax Online. It turned out to be pretty easy - no reverse-engineering required (although I don't know how to reverse-engineer an executable file anyway). Using some black-box observation, most of the specifications of pt files are easy to figure out, since there's no encryption of any sort.

So I wrote a tool that takes a pt file and turns out bms/bme files, so I could play around with them, edit in BMSE, play in beatmania simulators, and so on.

The tool is called Part-Time File Fiddler, a weird improvised name created to fit the acronym PTFF, which is the first 4 bytes of any pt file.

What it does:
  • Read and parse *.pt files from the original DJMax Online. DJMax Portable series, DJMax Trilogy and DJMax Technica are not supported.
  • Output the note chart to bms/bme files that can be read by BMSE and other bemani emulators.
  • Converts all notes correctly including long (hold) notes and short (hit) notes.
  • Converts background notes correctly.
  • Converts speed/BPM changes correctly.
What it doesn't do:
  • Convert the volume and pan (left/right) of each individual note. pt files do have this feature, but bms files don't support them.
  • Retrieve the information of note charts, including title, composer, genre, etc. As far as I know this info is stored separately in a database in DJ Max Online.
  • Unpack song data, including BGM, key sounds, BGA elements, etc. These data are stored in *.pak files. To unpack pak files please see the link on the bottom of this page.
And here is what Oblivion Hard Style 7k, converted into a bme file, looks like in BMSE:

Screenshot of BMSE

By the way, I made a Beatmania IIDX style note chart from See the video below:

You can find the tool, along with some explanatory stuff, here.


  1. I just happened to stumble upon your blog and was just wondering if you got a tool that converts .lr (lunatic rave) files into .bms (bms, not bme) files.

  2. Hi, I have been writing a bms simulator but I would also like to add support for DJMax .pt files. Do you mind explaining in detail how .pt files work?

  3. To the posters above: Sorry I don't have experience with lr files. I don't have specifications written down for pt files either, but as I said, it's really easy to figure out.
    I may or may not update the linked page with some more details, depending on how lazy I get ;-)