Giter Site home page Giter Site logo

2dx_extract's Introduction

2dx_extract

Extracts WAV files from Beatmania IIDX AC .2dx Archive Files (Tested on Beatmania IIDX 22 PENDUAL)

Made this in about an hour in C (I probably should have done it in C++). Apparently Beatmania IIDX's Arcade Audio files are not encrypted and are stored in a .2dx archive file which the game extracts whenever the user wants to play the song. These files are all WAVs (I do not understand why the modern rips of IIDX songs are in OGG). If you want keysounds from IIDX (Up to PENDUAL), get the HDD and extract the keysounds using this tool.

The .2dx Format

It is a container format. Nothing special. After looking at the bytes in a Hex Editor (HxD, for the record), each file information header begins with the bytes 0x32 0x44 0x58 0x39 (2DX9). If we skip ahead 8 bytes, we can get the file's size, which is a 32 bit integer. 12 bytes past the filesize is the actual file.

Traversing the file to find these is as simple as running a for-loop throughout the entire file until you find a 2DX9 header. It is guaranteed to work in this case because we skip the entire file after finding out it exists to check for more files, eliminating the possibility of a "2DX9" in a WAV file being found. The result of skipping bytes? A really fast and efficient program. :)

Compilation

Linux (And probably Mac) Type "make" in the terminal... It's that easy.

Windows Open up your favourite IDE (Like Visual Studio) and drag the files in and let it compile it for you. Since I was feeling generous, I compiled it for you too. Go into the "bin" folder and just download the EXE there. Or if you are really feeling lazy... here you go.

How to use

In Linux (And probably Mac), open up your terminal. In Windows, open up the Command Prompt. Type the name of the executable. In this case, "2dx_extract". In Linux, you may have to type "./2dx_extract". It will tell you how to use the program.

The syntax is as follows: 2dx_extract [options] [.2dx file]

These are the following options you have at your disposal:

  • h - Shows help
  • i - Shows .2dx archive info (Without Extracting)
  • v - Verbose
  • V - Super Verbose (Shows more information)

Note: The .2dx archive MUST go last whenever specifying command line arguments.

Note: Files extracted will be in your working directory.

Example: 2dx_extract -V 22054.2dx
    - Enables "Super Verbose" and extracts contents from "22054.2dx".


Example: 2dx_extract -i 22054.2dx
    - Gives information about "22054.2dx" without extracting the files.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.