1
Go to file
2015-06-14 10:59:47 +09:00
parse.py Initial commit 2015-03-13 19:06:10 +09:00
README.md Updating README 2015-06-14 10:59:47 +09:00

hlm2-wad-extract

This application is a tool to extract the asset data used in the newly released Hotline Miami 2: Wrong Humber game. You can download or clone the latest version from the GitHub project page. Although it was developed on Linux, it should work fine on other platforms.

After purchasing and thoroughly enjoying this title, I thought that I would like to listen to the excellent soundtrack while coding. I was slightly disappointed when I discovered that the music data was not simply included in the install directory as it was in the preceding game. Seeing as I had some free time, I decided to try to fish out the music OGG files myself out of the accompanying game WAD pack files. The file format turned out to be really simple and easy to understand, so I wrote a small Python utility to extract some or all of the game data.

Usage Instructions

This script makes it trivial to extract game data from the WAD files shipped with the game (currently hlm2_data_desktop.wad and hlm2_patch_desktop.wad). These files can be found in the game install directory; on Linux this is under ~/.steam/steam/steamapps/common/Hotline Miami 2 (probably in a similar location on other platforms). Assuming that you have Python 2.7 installed, you can execute the extract.py script with the -h option for a description of available options:

usage: parse.py [-h] [--pattern PATTERN] [--output DIRECTORY]
                filename [filename ...]

Extract assets from Hotline Miami 2 WAD files

positional arguments:
  filename            WAD files to extract

optional arguments:
  -h, --help          show this help message and exit
  --pattern PATTERN   asset file filter pattern (ex: *.ogg)
  --output DIRECTORY  output directory for asset files

For example, in order to extract the game's music files only, you could execute the following command:

./parse.py --pattern "*.ogg" hlm2_data_desktop.wad

While I expect this utility to be trivial for all to use, let me know if you encounter any difficulties or unexpected behavior.