shithub: riscv

ref: 95db2e9ddeaa3e85d4c7867541da72476db4a3c8
dir: /sys/man/1/opl3/

View raw version
.TH OPL3 1
.SH NAME
opl3 \- OPL3 chip emulator
.SH SYNOPSIS
.B opl3
[
.B -s
] [
.B -r
.I rate
] [
.I file
]
.SH DESCRIPTION
.I Opl3
is an emulator of a single Yamaha YMF262 chip, also known as
.SM OPL3.
.PP
The emulated chip is programmed by a series of commands either from
.I file
or from standard in.
It then synthesizes stereo 16-bit little-endian PCM samples
at the chip's sampling rate, 49.716 kHz,
resamples them to
.IR audio (3)'s
default 44.1 kHz rate,
and writes them to standard out.
.PP
The
.B -s
flag enables streaming mode,
in which the input is a pipe streaming commands
in identical format and semantics as described below,
but in real time.
.SS "Command format"
Commands are 5 bytes wide, in little-endian byte order:
.PP
.RS
.IR register [2]
.IR value [1]
.IR delay [2]
.RE
.PP
Each command specifies a
.I value
to be written to an
.SM OPL3
chip
.IR register ,
modifying its internal state.
.PP
The
.I delay
field provides timing.
It is a multiple of a command period, during which the
.SM OPL3
chip may be sampled before processing the next command.
The period itself is the inverse of the input stream's sampling rate,
by default the same as the chip's output sampling rate.
The
.B -r
parameter
sets the input sampling rate.
.SH SOURCE
.B /sys/src/games/opl3
.SH "SEE ALSO"
.IR dmid (1) ,
.IR audio (3)
.PP
Yamaha
``YMF262 Manual'',
1994.
.PP
V. Arnost
``Programmer's Guide to Yamaha YMF 262/OPL3 FM Music Synthesizer'',
version 1.12 dated Nov. 23rd 2000.
.SH HISTORY
.I Opl3
first appeared in 9front (July, 2018), based on
.I ymf262.c
from the Multiple Arcade Machine Emulator (
.SM MAME
).