Export Hoot memory dumps to VOPM instruments
Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.
whut 94b8a6e34c lol how did i not notice this il y a 5 ans
.gitignore lol how did i not notice this il y a 5 ans
README.md lol how did i not notice this il y a 5 ans
hootvopm.py initial commit il y a 5 ans

README.md

hootvopm

This script converts a Hoot memory dump into an .opm instrument pack, suitable for the VOPM VST plugin. It's an extremely rudimentary way of extracting FM instruments from games, but it works.

Usage

./hootopna.py -t chip_type input_file

Output is dumped straight to stdout; redirect it to a file if you want to save it.

Currently-supported chip types

  • OPM
  • OPN
  • OPNA (equivalent to OPN)

Capturing memory in hoot

  • Left- and right-clicking the “driver work” area flips between available memory pages. Scrolling the wheel in this area scrolls through the current page; you can also use Ctrl-(Up/Down/PgUp/PgDn) for this purpose.
  • When you see the area you need to capture, use Ctrl-C to copy it to the clipboard. This copies the entire page to the clipboard in a human-readable format, with 16 comma-separated hex bytes per line (plus a comma at the end for whatever reason, but this is ignored).
  • Paste this into a file, trimming it down to get the register area of the FM sound chip. Save it as whatever.

Tips

  • Most chips (read: all of the ones currently supported by this script) have a 256-byte register area, meaning you'll need to trim it down to 16 lines.
  • From what I've seen, the chip's register area almost always resides on the first page, starting either at 0x0000 or 0x0100.

Known issues

  • Since the script looks at a simple static memory dump, it has no way of capturing certain data, instead replacing it with placeholders. These include:
    • LFO data
    • Operator on/off state; all operators are considered to be in use (this could potentially be inferred, though)
    • Panning, though VOPM doesn't seem to use this