Hex dump (8 bytes): 0x42 0x6F 0x32 0x83 0x7F 0x22 0x35 0x27
Decoded:
This demonstrates the dense packing of parameters.
instruments.bin is a binary file that typically contains instrument patches for the YM2413. It’s often used in emulators, trackers, and music drivers that support the OPLL.
If you are looking for the actual data to put into your instruments.bin:
The YM2413 is a cost-reduced FM synthesis chip by Yamaha. Unlike fully programmable FM chips (e.g., YM2612), the YM2413 operates in two modes: Melody mode (9 channels) and Percussion mode (6 channels + 5 percussion). It contains a fixed set of 15 predefined instrument presets, plus one user-programmable slot. The instruments.bin file, commonly found in emulators and tools like OPL3 Bank Editor or VGM Music Maker, stores custom patch parameters for that user slot. This paper examines the chip’s architecture, the binary structure of instrument patches, and the role of instruments.bin in retro game music.
GitHub search for instruments.bin often yields MSX, SMS, or PC-Engine (YM2413) projects.
The file ym2413_instruments.bin is a specialized ROM data file required by modern versions of emulators like MAME (specifically version 0.231 and later) to accurately simulate the Yamaha YM2413 FM sound chip. Why You Need This File ym2413+instrumentsbin
The YM2413, also known as OPLL, contains a built-in internal ROM with 15 hard-coded instrument presets (like piano, violin, and flute) and one user-definable slot.
Older Emulators: Used "simulated" instrument data based on community reverse-engineering.
Newer Emulators: Now use the exact binary dump of the chip's internal ROM to ensure 100% audio accuracy. How to Fix the "Not Found" Error
If you are seeing an error message like ym2413_instruments.bin (ym2413) - not found when trying to play games like Super Pang, follow these steps:
Get the Zip: You need a file named ym2413.zip. This is considered a "device" or "BIOS" file in MAME terminology, separate from individual game ROMs.
Placement: Place the unopened ym2413.zip directly into your emulator's roms/ folder. Do not unzip it; the emulator will find the .bin file inside automatically.
Source: These are often found in "MAME BIOS sets" or on community preservation sites like the Internet Archive's Emularity collection. Quick Chip Facts YM2413 Application Manual - Maxim's World of Stuff Hex dump (8 bytes): 0x42 0x6F 0x32 0x83
Unlike most FM synthesis chips that require every instrument to be programmed from scratch, the YM2413 features a built-in Instruments ROM containing 15 hard-coded melody patches and 5 rhythm sounds.
Emulation Necessity: Emulators use instruments.bin as a digital copy of this internal ROM. Without it, the emulator cannot access the "presets" used by thousands of 80s arcade and console games.
File Location: In modern MAME sets, this file is typically bundled within ym2413.zip. Built-in Instrument Definitions
The YM2413 ROM patches are famous for their distinct "8-bit FM" character. Below are the 15 standard melody instruments found in the ROM: Instrument Instrument Instrument 1 6 B Harpsichord 2 7 C Vibraphone 3 8 D Synth Bass 4 9 E Acoustic Bass 5 A Synthesizer F Electric Guitar Technical Architecture
The YM2413 (OPLL) is a cost-reduced version of the YM3812 (OPL2). To save costs, Yamaha implemented specific limitations:
If you have downloaded a game that requires "OPLL custom mode," here is how to apply the correct .bin file on popular platforms.
Typical layout (16 bytes per operator, 3 operators? Actually: YM2413 has 2 operators per channel, but parameters differ.)
Correct YM2413 instrument parameters (8 bytes per instrument, but here 48 bytes means 6 patches? Let's clarify): This demonstrates the dense packing of parameters
Common real-world instruments.bin contents (48 bytes) = 8 bytes × 6 different instruments or used as single 48-byte user patch split into 2-operator parameters.
However, the actual YM2413 user instrument register map (1 instrument = 8 bytes):
| Offset | Register | Meaning | |--------|----------|---------| | 0 | $30 | AM/VIB/EGT/KSR/MULT (op1) | | 1 | $31 | KSL/TL (op1) | | 2 | $32 | AR/DR (op1) | | 3 | $33 | SL/RR (op1) | | 4 | $34 | AM/VIB/EGT/KSR/MULT (op2) | | 5 | $35 | KSL/TL (op2) | | 6 | $36 | AR/DR (op2) | | 7 | $37 | SL/RR (op2) | | 8 | $38 | (feedback/algorithm, but in YM2413 this is in $38, plus per-channel parameters) |
But in practice, instruments.bin for YM2413 emulators/players is exactly 48 bytes (6 × 8?) — no: famous example from MAME / VGMPlay / OPLL instruments:
Actually: YM2413 has 1 user voice stored as 8 bytes in registers $30-$37 (op1, op2 parameters). Then $38-3F are per-channel volume/pan/feedback registers but not part of voice.
So why 48 bytes? Scenarios:
But most common in retro homebrew: instruments.bin is a single 8‑byte user instrument padded to 16/32/48 bytes for easy file loading, or indeed 6 different instruments for patch banks.