MapleStory is a side scrolling MMORPG that I used to play a lot, originally developed by Wizet which was purchased by Nexon. After coming back to it for a bit over the previous summer, I rediscovered one of my favorite aspects of the game: the music.

MapleStory’s music was originally composed by CODASOUND (Jun-Hee Lee) before 2007. Since then, Studio EIM and later NECORD (owned by Nexon) have been composing the game’s soundtrack. It is mostly a combination of relaxing pieces with occasional higher energy and funky tracks. Overall, it is a great collection of simple and beautiful tunes.

Recently, I’ve gotten into listening to the tracks while studying and doing work and came up with the idea to help archive the sounds and tunes of the game.

Downloading MapleStory

MapleStory Korea (KMS) was first released in 2003 with the North American (GMS) version being released 2 years later in 2005. There have been over 200 updates to the game with tracks being added, removed and updated as new areas get released. To maximize the amount of sounds in the database, I needed to track down old versions of MapleStory to extract music from.

The age of the game worked in my favor for this part because the game has historically been mostly distributed through offline setup files meaning that the assets would be stored locally instead of retrieved by a downloader. Newer versions of the game do use a custom launcher which downloads assets directly, but this has only been the case for the past 2 years or so.

I was able to find ancient versions of the game on archive.org, where someone has uploaded versions of the game dating back to the GMS beta versions. Afterward, I started up a Windows Sandbox, installed multiple versions of the game and transferred over the Sound.wz file from each, which contains all the music and sound effects used by the game.

Extracting the Music

The .wz file is a proprietary format created by Wizet, and used to store all of the game’s assets. The format is quite weird and doesn’t have much documentation.

Thankfully, the work of reverse engineering the format has been done for me by people like Yuval Deutscher who made the HaSuite software which was and still is the de-facto tool used by people who want to extract and edit assets from MapleStory. The original HaSuite hasn’t been updated in years, but there is a fork called Harepacker-resurrected created by lastbattle.

Part of HaSuite is the MapleLib library which contains utilities for reading and unpacking .wz files. I created a basic C# program that uses MapleLib to recursively look for sound files, extract them and index them by hash value and directory. Doing this for the multiple versions of the game resulted in over 18 000 sound effects and background music pieces that the game has used. These sounds were all in mp3 format and vary widely in quality (from 96 kbps to 320 kbps).

Creating a Database

To put the pieces online, I made a simple static website that downloads the index of music and uses Fuse.js to fuzzy search through the index. All the audio tracks on the website are directly taken with no transcoding done, so the quality is the exact same as in the original game.

You can see the database and experience the blissful music of MapleStory at https://sounds.larry.science/. Might I suggest that you start with AboveTheTreetops, which is one of my favorite pieces of music of all time.