My Favorite Tools For Video Game Music Analysis
This article shows what I use/know in my VGM analysis work.
Tools
If you know a good tool, let me know, please. :)
- Generic
- Debuggers
- MHS, Cheat Engine - By attaching these debugger tools to an emulator, you will be able to add some debugging functions, such as RAM tools and read/write breakpoints. I recommend you to install both, and start solving Cheat Engine's tutorial EXE by using MHS. See also: Memory Addresses Of Emulators
- Editors
- Hex editors: Use your favorite one. I have used Stirling (Japanese hex editor since 19XX) for a long time. However, I have migrated to 010 Editor (49.95 USD for home use) since 2015.
- Text editors: EmEditor (日本語) is my primary text editor on Windows (EmEditor is a commercial product, but EmEditor Free is also available). I also use Sublime Text on Mac OS X.
- I recommend to use a text editor which has an enough undo buffer, regular-expression and rectangle selection functions at least.
- Players
- foobar2000 - My favorite music player. It works good for VGMs if install additional components.
- Winamp - I sometimes use Winamp as a SPC/PSF tagger. (you need to install plugins first)
- Converters, Ripping Tools, etc.
- VGMTrans - Can convert various game music to MIDI and SF2. Also, it will be useful when you want to write a parser for a new format.
- VGMToolbox - It includes tools to extract, optimize, and build VGM formats as well as auditing and exploration utilities.
- Debuggers
- NES
- Emulators
- FCEUX - This one provides almost everything.
- G-NES, G-NSF - I sometimes use it for only one reason: view sound registers. FCEUX lacks it, isn't it? :(
- NO$NES - Never tried this yet.
- Ripping Tools
- TNSe's NSF Tool (Optimizer) - Never tried this yet.
- Converters
- Emulators
- SNES
- Emulators (I rarely use them for music research, since I usually analyze only the contents in APU RAMs.)
- bsnes-plus - Accurate and very good debugger.
- IDA Pro (6.9 or later) - IDA Pro 6.9 has SNES/SPC700 loader and processor support. (source code: snes, 65816, snes_spc, spc700)
- NO$SNS - One of nocash debugger. Recently I use bsnes-plus instead.
- Snes9x rerecording (github, old google code) - It is deprecated by TASVideos, but it is still fast, accurate enough, and has many good features. Therefore, I still use this emulator for casual purposes.
- higan (formerly called bsnes), BizHawk - Superior accuracy, costs speed.
- Geiger's Snes9x Debugger - I want a better one (in other words, easy to use), however, this one has basic debug functions.
- SPC700 Tools
- SNES SPC700 Player, SNES SPC700 Player Memory Viewer (SPCMEM) (screenshot) - I always use them for research!
- spcdas (download, official) - My favorite SPC700 disassembler. It is open-source and easy to use.
- Emulators (I rarely use them for music research, since I usually analyze only the contents in APU RAMs.)
- GB/GBA
- Emulators
- NO$GBA Debugger - Superior debugger. Almost every GSF rippers probably use this.
- VBA-rerecording - For casual purposes (such as RAM Search). I use v23 rather than v24, mainly because of gb2midi Lua script.
- BizHawk, VBA-M, Gambatte - Something more accurate than VBA-rerecording. Usually I do not need them.
- NO$GMB - Never tried this yet.
- Ripping, Analysis Tools
- IDA Pro - Read How to load GBA ROM by IDA Pro. Unfortunately it does not analyze everything automatically, but it outputs easy-to-follow disassembly, and still provides xref tree of known calls.
- GSF ripping tools, saptapper, gsfopt - To rip GSFs, of course.
- Converters
- GBAMusRiper - If you want to convert the music of standard driver (MusicPlayer2000, aka. Sappy) to MIDI and SF2, check this one. Do not use my buggy GBA2MIDI, please.
- gb2midi (Lua) - I think this is the easiest way to dump everything.
- Emulators
- Nintendo DS
- Emulators
- DeSmuME - One of the best emulator. It's simple but powerful.
- NO$GBA Debugger - Powerful NDS debugger.
- Ripping, Analysis Tools
- IDA Pro - Nintendo DS loader module for IDA Pro allows you to load a NDS ROM to IDA Pro easily.
- rom2sf, mini2sf
- Converters
- Visit Nintendo DS Hacking Wiki
- Emulators
- Playstation
- Emulators
- NO$PSX - Though its accuracy is not very good, it is the best PS1 debugger as far as I know.
- XEBRA - The most accurate and fast PS1 emulator as far as I know. It has savestates and "save the main memory image to file" function, while its terms and interfaces are somewhat different from other emulators.
- psxjin - TASVideos always rocks, unless when the game does not work well.
- Ripping, Analysis Tools
- IDA Pro (and FLIRT signatures) - Read The Open PSF ripping guide about how to use it.
- Neill Corlett's PSF tools - PSFLab, PSF-o-Cycle, etc. No one cannot make PSF without them.
- psf_rippers Yahoo Groups - They have many resources and tools.
- Emulators
Documents
- SNES
- PlayStation
- Net Yaroze! manuals (psf_ripper group has a link AFAIK) (日本語(完全ではない))
- Nocash PSX Specifications
- NYOットやろうぜ
- GBA
- NDS
Notes
- I suggest you visit TASVideos / Emulator Resources. They usually use emulators that are stable and have some useful tools such as RAM search, debugger and Lua scripting. Additionally, they must be open-source.