Merge branch 'master' into doc-general

This commit is contained in:
Electric Keet 2023-08-04 20:39:23 -07:00
commit 211a67e0bb
65 changed files with 3756 additions and 3750 deletions

View file

@ -20,4 +20,10 @@ it also has a flexible windowing system which you may move around and organize.
see [2-interface](../2-interface/README.md) and [3-pattern](../3-pattern/README.md) for more information.
once familiar with the tracker, look to [9-guides](../9-guides/README.md) for useful techniques.
once familiar with the tracker, look to [9-guides](../9-guides/README.md) for useful techniques.
# links
[Furnace Tutorials](https://youtube.com/playlist?list=PLCELB6AsTZUnwv0PC5AAGHjvg47F44YQ1): video tutorials created by Spinning Square Waves.

View file

@ -13,7 +13,7 @@ primary topics:
- [play/edit controls](play-edit-controls.md)
- [instrument/wavetable/sample list](asset-list.md)
- [song information](song-info.md)
- [effect list window](effect-list.md)
- [effect list window](effect-list-window.md)
- [pattern view](../3-pattern/README.md)
- [instrument editor](../4-instrument/README.md)
- [wavetable editor](../5-wave/README.md)

View file

@ -0,0 +1,10 @@
# effect list window
(for more details about these effects, see [the effects page](../3-pattern/effects.md))
![effect list window](effect-list.png)
this window provides a list of the effects that are available.
- **Chip at cursor**: the currently selected chip. the list only shows available effects for this chip.
- menu button: opens a small list of effect categories. toggle each to change whether they're shown in the list.

View file

@ -4,12 +4,38 @@ settings are saved when clicking the **OK** button at the bottom of the dialog.
# General
## General
- **Workspace layout**
- **Import**: reads a .ini layout file.
- **Export**: writes current layout to a .ini file.
- **Reset**: resets layout to default.
### Program
- **Render backend**
- changing this may help with performace issues.
- **Late render clear**
- **Power-saving mode**
- saves power by lowering the frame rate to 2fps when idle.
- may cause issues under Mesa drivers!
- **Disable threaded input (restart after changing!)**
- threaded input processes key presses for note preview on a separate thread (on supported platforms), which reduces latency.
- however, crashes have been reported when threaded input is on. enable this option if that is the case.
- **Enable event delay**
- may cause issues with high-polling-rate mice when previewing notes.
### File
- **Use system file picker**: use native OS file dialog instead of Furnace's.
- **Number of recent files**
- **Compress when saving**
- use zlib to compress saved songs.
- **Save unused patterns**
- **Use new pattern format when saving**
- **Don't apply compatibility flags when loading .dmf**
- **Audio export loop/fade out time:**
- **Set to these values on start-up:**
- **Loops**: number of additional times to play through `0Bxx` song loop.
- **Fade out (seconds)**: length of fade out after final loop.
- **Remember last values**
### Chip
- **Initial system**: the system of chips loaded on starting Furnace.
- **Current system**: sets current chips as default.
@ -18,172 +44,131 @@ settings are saved when clicking the **OK** button at the bottom of the dialog.
- **Reset to defaults**: sets default to "Sega Genesis/Mega Drive".
- **Name**: name for the default system. may be set to any text.
- system configuration: same as in the [chip manager](../8-advanced/chip-manager.md) and [mixer](../8-advanced/mixer.md).
- **When creating new song**:
- **Display system preset selector**
- **Start with initial system**
- **Restart song when changing chip properties**
### Start-up
- **Play intro on start-up:**
- **No**: skips intro entirely.
- **Short**: shows silent title screen briefly.
- **Full (short when loading song)**: shows animated musical intro unless started with a song (command line, double-clicking a .fur file, etc.)
- **Full (always)**: always shows animated musical intro.
- **When creating new song**:
- **Display system preset selector**
- **Start with initial system**
- **Disable fade-in during start-up**
- **About screen party time**
- _warning:_ may cause epileptic seizures.
### Behavior
- **Double-click time (seconds)**: maximum time between mouse clicks to recognize them as a double-click.
- **Toggle channel solo on:** select which interactions with a channel header will toggle solo for that channel.
- **Push value when overwriting instead of clearing it**: in the order list and pattern editors, typing into an already-filled value will shift digits instead of starting fresh.
- if off: moving the cursor onto the value `A5` and typing a "B" results in `0B`.
- if on: with the cursor on the value `A5` and typing a "B" results in `5B`.
- **Move cursor up on backspace-delete**
- **Move cursor by edit step on delete**
- **Change current instrument when changing instrument column (absorb)**
- **Delete effect value when deleting effect**
- **Change order when scrolling outside of pattern bounds**:
- if off, the pattern edit cursor will stay locked within the current order.
- if on, moving the cursor past the edge of the previous or next order will move to that order.
- **Move cursor by edit step on insert (push)**
- **Move cursor to end of clipboard content when pasting**
- **Don't scroll when moving cursor**
- **Double click selects entire column**
- **Allow docking editors**
- **Don't raise pattern editor on click**
- **Focus pattern editor when selecting instrument**
- **Restart song when changing chip properties**
- **Use system file picker**: use native OS file dialog instead of Furnace's.
- **Only allow window movement when clicking on title bar**
- **Enable event delay**
- may cause issues with high-polling-rate mice when previewing notes.
- **Power-saving mode**
- saves power by lowering the frame rate to 2fps when idle.
- may cause issues under Mesa drivers!
- **Disable threaded input (restart after changing!)**
- threaded input processes key presses for note preview on a separate thread (on supported platforms), which reduces latency.
- however, crashes have been reported when threaded input is on. enable this option if that is the case.
- **Remember window position**
- remembers the window's last position on start-up.
- **New instruments are blank**
- **Save unused patterns**
- **Compress when saving**
- use zlib to compress saved songs.
- **Cursor follows current order when moving it**
- applies when playback is stopped.
- **Audio export loop/fade out time:**
- **Set to these values on start-up:**
- **Loops**: number of additional times to play through `0Bxx` song loop.
- **Fade out (seconds)**: length of fade out after final loop.
- **Remember last values**
- **Note preview behavior:**
- **Never**
- **When cursor is in Note column**
- **When cursor is in Note column or not in edit mode**
- **Always**
- **Wrap pattern cursor horizontally:**
- **No**
- **Yes**
- **Yes, and move to next/prev row**
- **Wrap pattern cursor vertically:**
- **No**
- **Yes**
- **Yes, and move to next/prev pattern**
- **Cursor movement keys behavior:**
- **Move by one**
- **Move by Edit Step**
- **Effect input cursor behavior:**
- **Move down**
- **Move to effect value (otherwise move down)**
- **Move to effect value/next effect and wrap around**
- **Allow dragging selection:**
- **No**
- **Yes**
- **Yes (while holding Ctrl only)**
# Audio/MIDI
## Audio
### Output
- **Backend**: select SDL or JACK for audio output.
- only appears on Linux, or MacOS compiled with JACK support
- **Driver**
- **Device**: audio device for playback.
- **Sample rate**
- **Outputs**: select number of audio outputs created, up to 16.
- only appears when Backend is JACK.
- **Channels**: number of output channels to use.
- **Buffer size**: size of buffer in both samples and milliseconds.
- **Quality**: selects quality of resampling. low quality reduces CPU load.
- **Metronome volume**
- **Low-latency mode (experimental!)**: reduces latency by running the engine faster than the tick rate. useful for live playback/jam mode.
- _warning:_ experimental! may produce glitches. only enable if your buffer size is small (10ms or less).
- **Force mono audio**
- **Software clipping**: clips output to nominal range (-1.0 to 1.0) before passing it to the audio device.
- this avoids activating Windows' built-in limiter.
- **want:** displays requested audio configuration.
- **got:** displays actual audio configuration returned by audio backend.
- **MIDI input**
- **MIDI output**
- **MIDI input settings**
- **Note input**
- **Velocity input**
- **Map MIDI channels to direct channels**
- **Map Yamaha FM voice data to instruments**
- **Program change is instrument selection**
- **Value input style**:
### Mixing
- **Quality**: selects quality of resampling. low quality reduces CPU load.
- **Software clipping**: clips output to nominal range (-1.0 to 1.0) before passing it to the audio device.
- this avoids activating Windows' built-in limiter.
### Metronome
- **Metronome volume**
## MIDI
### MIDI input
- **MIDI input**: input device.
- **Note input**
- **Velocity input**
- **Map MIDI channels to direct channels**
- **Map Yamaha FM voice data to instruments**
- **Program change is instrument selection**
- **Value input style**:
- **Disabled/custom**
- **Two octaves (0 is C-4, F is D#5)**
- **Raw (note number is value)**
- **Two octaves alternate (lower keys are 0-9, upper keys are A-F)**
- **Use dual control change (one for each nibble)**
- **CC of upper nibble**
- **CC of lower nibble**
- **Use 14-bit control change**
- **MSB CC**
- **LSB CC**
- **Use single control change**
- **Control**
- **Per-column control change**
- **Instrument**\
**Volume**\
**Effect `x` type**\
**Effect `x` value**
- **Disabled/custom**
- **Two octaves (0 is C-4, F is D#5)**
- **Raw (note number is value)**
- **Two octaves alternate (lower keys are 0-9, upper keys are A-F)**
- **Use dual control change (one for each nibble)**
- **CC of upper nibble**
- **CC of lower nibble**
- **Use 14-bit control change**
- **MSB CC**
- **LSB CC**
- **Use single control change**
- **Use single control change (imprecise)**
- **Control**
- **Per-column control change**
- **Instrument**\
**Volume**\
**Effect `x` type**\
**Effect `x` value**
- **Disabled/custom**
- **Use dual control change (one for each nibble)**
- **CC of upper nibble**
- **CC of lower nibble**
- **Use 14-bit control change**
- **MSB CC**
- **LSB CC**
- **Use single control change (imprecise)**
- **Control**
- **Volume curve**
- **Actions:**
- **`+`** button: adds a new action.
- window-with-arrow button: new action with learning! press a button or move a slider/knob/something on your device.
- each action has the following:
- **Type**
- **Channel**
- **Note/Control**
- **Velocity/Value**
- **Action**
- **Learn**
- **Remove**
- **Volume curve**
- **Actions:**
- **`+`** button: adds a new action.
- window-with-arrow button: new action with learning! press a button or move a slider/knob/something on your device.
- each action has the following:
- **Type**
- **Channel**
- **Note/Control**
- **Velocity/Value**
- **Action**
- **Learn**
- **Remove**
- **MIDI output settings**
- **Output mode:**
- **Off (use for TX81Z)**
- **Melodic**
- **Send Program Change**
- **Send MIDI clock**
- **Send MIDI timecode**
- **Timecode frame rate:**
- **Closest to Tick Rate**
- **Film (24fps)**
- **PAL (25fps)**
- **NTSC drop (29.97fps)**
- **NTSC non-drop (30fps)**
### MIDI output
# Emulation
- **MIDI output**: output device.
- **Output mode:**
- **Off (use for TX81Z)**
- **Melodic**
- **Send Program Change**
- **Send MIDI clock**
- **Send MIDI timecode**
- **Timecode frame rate:**
- **Closest to Tick Rate**
- **Film (24fps)**
- **PAL (25fps)**
- **NTSC drop (29.97fps)**
- **NTSC non-drop (30fps)**
## Emulation
### Cores
- **Arcade/YM2151 core**\
**Genesis/YM2612 core**\
**SN76489 core**\
@ -202,16 +187,122 @@ settings are saved when clicking the **OK** button at the bottom of the dialog.
# Appearance
## Keyboard
### Keyboard
- **Import**
- **Export**
- **Reset defaults**
- several categories of keybinds...
- click on a keybind then enter a key or key combination to change it
- right-click to clear the keybind
## Interface
### Layout
- **Workspace layout**
- **Import**: reads a .ini layout file.
- **Export**: writes current layout to a .ini file.
- **Reset**: resets layout to default.
- **Allow docking editors**
- **Remember window position**
- remembers the window's last position on start-up.
- **Only allow window movement when clicking on title bar**
- **Play/edit controls layout:**
- **Classic**
- **Compact**
- **Compact (vertical)**
- **Split**
- **Position of buttons in Orders:**
- **Top**
- **Left**
- **Right**
### Mouse
- **Double-click time (seconds)**: maximum time between mouse clicks to recognize them as a double-click.
- **Don't raise pattern editor on click**
- **Focus pattern editor when selecting instrument**
- **Note preview behavior:**
- **Never**
- **When cursor is in Note column**
- **When cursor is in Note column or not in edit mode**
- **Always**
- **Allow dragging selection:**
- **No**
- **Yes**
- **Yes (while holding Ctrl only)**
- **Toggle channel solo on:** select which interactions with a channel header will toggle solo for that channel.
- Right-click or double click
- Right-click
- Double-click
- **Double click selects entire column**
### Cursor behavior
- **Insert pushes entire channel row**
- **Pull delete affects entire channel row**
- **Push value when overwriting instead of clearing it**: in the order list and pattern editors, typing into an already-filled value will shift digits instead of starting fresh.
- if off: moving the cursor onto the value `A5` and typing a "B" results in `0B`.
- if on: with the cursor on the value `A5` and typing a "B" results in `5B`.
- **Effect input behavior:**
- **Move down**
- **Move to effect value (otherwise move down)**
- **Move to effect value/next effect and wrap around**
- **Delete effect value when deleting effect**
- **Change current instrument when changing instrument column (absorb)**
### Cursor movement
- **Wrap horizontally:**
- **No**
- **Yes**
- **Yes, and move to next/prev row**
- **Wrap vertically:**
- **No**
- **Yes**
- **Yes, and move to next/prev pattern**
- **Yes, and move to next/prev pattern (wrap around)**
- **Cursor movement keys behavior:**
- **Move by one**
- **Move by Edit Step**
- **Move cursor by edit step on delete**
- **Move cursor by edit step on insert (push)**
- **Move cursor up on backspace-delete**
- **Move cursor to end of clipboard content when pasting**
### Scrolling
- **Change order when scrolling outside of pattern bounds**:
- **No**: the pattern edit cursor will stay locked within the current order.
- **Yes**: moving the cursor past the edge of the previous or next order will move to that order, but not past the start or end of a song.
- **Yes, and wrap around song**: as above, but will wrap from song end to start.
- **Cursor follows current order when moving it**
- applies when playback is stopped.
- **Don't scroll when moving cursor**
- **Move cursor with scroll wheel**
## Appearance
### Scaling
- **Render driver**
- **Automatic UI scaling factor**: automatically match the OS's UI scaling.
- **UI scaling factor**: only if "Automatic UI scaling factor" is off.
- **Icon size**
### Text
- **Main font**: if "Custom...", a file path selector will appear beneath.
- **Size**
- **Pattern font**: if "Custom...", a file path selector will appear beneath.
- **Size**
- **Icon size**
- **Display Japanese characters**\
**Display Chinese (Simplified) characters**\
**Display Chinese (Traditional) characters**\
@ -219,25 +310,7 @@ settings are saved when clicking the **OK** button at the bottom of the dialog.
- only toggle these options if you have enough graphics memory.
- these are a temporary solution until dynamic font atlas is implemented in Dear ImGui.
- **Number of recent files**
- **Pattern view labels:**
- **Note off (3-char)**: default is `OFF`
- **Note release (3-char)**: default is `===`.
- **Macro release (3-char)**: default is `REL`.
- **Empty field (3-char)**: default is `...`.
- **Empty field (2-char)**: default is `..`.
- **Orders row number format:**
- **Decimal**
- **Hexadecimal**
- **Pattern row number format:**
- **Decimal**
- **Hexadecimal**
- **FM parameter names:**
- **Friendly**
- **Technical**
- **Technical (alternate)**
### Program
- **Title bar:**
- **Furnace**
@ -251,43 +324,40 @@ settings are saved when clicking the **OK** button at the bottom of the dialog.
- **File path**
- **Cursor details or file path**
- **Nothing**
- **Play/edit controls layout:**
- **Classic**
- **Compact**
- **Compact (vertical)**
- **Split**
- **Position of buttons in Orders:**
- **Top**
- **Left**
- **Right**
- **FM parameter editor layout:**
- **Modern**
- **Compact (2x2, classic)**
- **Compact (1x4)**
- **Compact (4x1)**
- **Alternate (2x2)**
- **Alternate (1x4)**
- **Alternate (4x1)**
- **Position of Sustain in FM editor:**
- **Between Decay and Sustain Rate**
- **After Release Rate**
- **Macro editor layout:**
- **Unified**
- **Mobile**
- **Grid**
- **Single (with list)**
- **Single (combo box)**
- **Namco 163 chip name**
### Orders
- **Highlight channel at cursor in Orders**
- **Orders row number format:**
- **Decimal**
- **Hexadecimal**
### Pattern
- **Center pattern view**: centers pattern horizontally in view.
- **Overflow pattern highlights**
- **Display previous/next pattern**
- **Pattern row number format:**
- **Decimal**
- **Hexadecimal**
- **Pattern view labels:**
- **Note off (3-char)**: default is `OFF`
- **Note release (3-char)**: default is `===`.
- **Macro release (3-char)**: default is `REL`.
- **Empty field (3-char)**: default is `...`.
- **Empty field (2-char)**: default is `..`.
- **Pattern view spacing after:** number of pixels of space between columns.
- **Note**
- **Instrument**
- **Volume**
- **Effect**
- **Effect value**
- **Single-digit effects for 00-0F**
- **Use flats instead of sharps**
- **Use German notation**: display `B` notes as `H`, and `A#` notes as `B`.
### Channel
- **Channel colors:**
- **Single**
- **Channel type**
- **Instrument type**
- **Channel name colors:**
- **Single**
- **Channel type**
- **Instrument type**
- **Channel style:**
- **Classic**
- **Line**
@ -310,60 +380,88 @@ settings are saved when clicking the **OK** button at the bottom of the dialog.
- **Regular**
- **Monospace**
- **Center channel name**
- **Channel colors:**
- **Single**
- **Channel type**
- **Instrument type**
- **Channel name colors:**
- **Single**
- **Channel type**
- **Instrument type**
### Assets
- **Colorize instrument editor using instrument type**
- **Use separate colors for carriers/modulators in FM editor**
- **Unified instrument/wavetable/sample list**
- **Horizontal instrument list**
- **Use standard OPL waveform names**
- **Overflow pattern highlights**
- **Display previous/next pattern**
- **Use German notation**: display `B` notes as `H`, and `A#` notes as `B`.
- **Single-digit effects for 00-0F**
- **Center pattern view**: centers pattern horizontally in view.
- **Unsigned FM detune values**
- **Highlight channel at cursor in Orders**
- **About screen party time**
- _warning:_ may cause epileptic seizures.
- **Colorize instrument editor using instrument type**
### Macro Editor
- **Macro editor layout:**
- **Unified**
- **Mobile**
- **Grid**
- **Single (with list)**
- **Single (combo box)**
- **Use classic macro editor vertical slider**
### Wave Editor
- **Use compact wave editor**
- **Use classic macro editor vertical slider**
### FM Editor
- **FM parameter names:**
- **Friendly**
- **Technical**
- **Technical (alternate)**
- **Use standard OPL waveform names**
- **FM parameter editor layout:**
- **Modern**
- **Compact (2x2, classic)**
- **Compact (1x4)**
- **Compact (4x1)**
- **Alternate (2x2)**
- **Alternate (1x4)**
- **Alternate (4x1)**
- **Position of Sustain in FM editor:**
- **Between Decay and Sustain Rate**
- **After Release Rate**
- **Use separate colors for carriers/modulators in FM editor**
- **Unsigned FM detune values**
### Statistics
- **Chip memory usage unit:**
- **Bytes**
- **Kilobytes**
### Oscilloscope
- **Rounded corners**
- **Border**
- **Fill entire window**
- **Waveform goes out of bounds**
### Windows
- **Rounded window corners**
- **Rounded buttons**
- **Rounded menu corners**
- **Borders around widgets**
- **Disable fade-in during start-up**
- **Oscilloscope settings:**
- **Rounded corners**
- **Fill entire window**
- **Waveform goes out of bounds**
- **Border**
- **Pattern view spacing after:**
- **Note**
- **Instrument**
- **Volume**
- **Effect**
- **Effect value**
- **Color scheme**
- **Import**
- **Export**
- **Reset defaults**
- **General**
- **Color scheme type:**
- **Dark**
- **Light**
- **Frame shading**
- several more categories...
# Keyboard
## Color
### Color scheme
- **Import**
- **Export**
- **Reset defaults**
- several categories of keybinds...
- click on a keybind then enter a key or key combination to change it
- right-click to clear the keybind
- **General**
- **Color scheme type:**
- **Dark**
- **Light**
- **Frame shading**: applies a gradient effect to buttons and input boxes.
- several more categories...

View file

@ -5,11 +5,11 @@ The Namco 163 instrument editor consists of two tabs: "Namco 163" for control of
## Namco 163
- **Load waveform**: if enabled, a waveform will be loaded when this instrument plays.
- if it isn't then only the offset/length change.
- if it isn't then only the position/length change.
- **Waveform**: determines the waveform that will be loaded.
- only appears when Load waveform is enabled.
- **Per-channel wave offset/length**: when enabled, the offset/length settings are split per channel.
- **Offset**: determines the waveform position in RAM.
- **Per-channel wave position/length**: when enabled, the position/length settings are split per channel.
- **Position**: determines the waveform position in RAM.
- **Length**: determines the waveform length in RAM.
## Macros

View file

@ -2,19 +2,19 @@
Wavetable synthesizers, in context of Furnace, are sound sources that operate on extremely short n-bit PCM streams. By extremely short, no more than 256 bytes. This amount of space is nowhere near enough to store an actual sampled sound, it allows certain amount of freedom to define a waveform shape.
Each chip has its own maximum size, shown in the following table. If a larger wave is defined for these chips, it will be squashed to fit within the constraints of the chips. Some hardware doesn't work well with the wavetable synthesizer (described below); these systems are marked in the "synth?" column.
Each chip has its own maximum size, shown in the following table. If a larger wave is defined for these chips, it will be squashed to fit within the constraints of the chips. Some hardware doesn't work well with the wavetable synthesizer (described below); these systems are marked in the "notes" column.
system | width | height | synth?
system | width | height | notes
--------------------|------:|:-------|:------
Bubble System | 32 | 16 |
Game Boy | 32 | 16 |
Game Boy | 32 | 16 | phase reset on waveform change (clicking)
SM8521 | 32 | 16 |
Namco WSG | 32 | 16 | RAM only
WonderSwan | 32 | 16 |
Namco 163 | ≤128 | 16 |
Namco 163 | ≤240 | 16 | limits differ depending on channel count
SNES | ≤256 | 16 |
PC Engine | 32 | 32 |
Virtual Boy | 32 | 64 | no
PC Engine | 32 | 32 | phase reset on waveform change (clicking)
Virtual Boy | 32 | 64 | wavesynth unsupported
Famicom Disk System | 64 | 64 |
Konami SCC | 32 | 256 |
Seta X1-010 | 128 | 256 |

View file

@ -32,7 +32,6 @@ the following sound chips have sample support:
- Ensoniq OTTO/ES5506
- Yamaha PCMD8/YMZ280B
- MMC5 (last channel only)
- SNES/S-DSP
## compatible sample mode

View file

@ -65,11 +65,11 @@ this is the full list of chips that Furnace supports.
- [2A03](nes.md)
- [Amiga](amiga.md)
- [AY-3-8910, AY-3-8914, YM2149(F), 5B](ay8910.md)
- [AY8930](ay8930.md)
- [MOS 6581, MOS 8580](c64.md)
- [ES5506](es5506.md)
- [SCC](scc.md)
- [AY-3-8910/8914/YM2149(F)/Sunsoft 5B](ay8910.md)
- [Microship AY8930](ay8930.md)
- [MOS 6581/8580 (SID)](c64.md)
- [Ensoniq ES5506](es5506.md)
- [Konami SCC](scc.md)
- [FDS](fds.md)
- [Game Boy](game-boy.md)
- [Generic PCM DAC](dac.md)
@ -82,8 +82,8 @@ this is the full list of chips that Furnace supports.
- [MSM5232](msm5232.md)
- [MSM6258](msm6258.md)
- [MSM6295](msm6295.md)
- [N163](n163.md)
- [Namco WSG, C15, C30](namco.md)
- [Namco 163](n163.md)
- [Namco WSG/C15/C30](namco.md)
- [HuC6280](pce.md)
- [PC Speaker](pcspkr.md)
- [PET](pet.md)
@ -91,12 +91,11 @@ this is the full list of chips that Furnace supports.
- [POKEY](pokey.md)
- [PV-1000](pv1000.md)
- [QSound](qsound.md)
- [RF5C68, RF5C164](ricoh.md)
- [RF5C68/RF5C164](ricoh.md)
- [SAA1099](saa1099.md)
- [SCC](scc.md)
- [SegaPCM](segapcm.md)
- [SM8521](sm8521.md)
- [SN76489 / Sega PSG](sms.md)
- [SN76489/Sega PSG](sms.md)
- [SNES](snes.md)
- [tildearrow Sound Unit](soundunit.md)
- [T6W28](t6w28.md)
@ -108,703 +107,16 @@ this is the full list of chips that Furnace supports.
- [VRC6](vrc6.md)
- [WonderSwan](wonderswan.md)
- [X1-010](x1-010.md)
- [(OPL) VRC7, Y8950, YM3526, YM3812, YMF262](opl.md)
- [(OPLL) YM2413](opll.md)
- [(OPZ) YM2414](opz.md)
- [(OPM) YM2151](ym2152.md)
- [(OPN) YM2203](ym2203.md)
- [(OPNA) YM2608](ym2608.md)
- [(OPNB) YM2610](ym2610.md)
- [(OPNB) YM2610B](ym2610b.md)
- [(OPN2) YM2612, YM3438](ym2612.md)
- [VRC7, Y8950, YM3526, YM3812 and YMF262 (OPL)](opl.md)
- [YM2413 (OPLL)](opll.md)
- [YM2414 (OPZ)](opz.md)
- [YM2151 (OPM)](ym2152.md)
- [YM2203 (OPN)](ym2203.md)
- [YM2608 (OPNA)](ym2608.md)
- [YM2610 (OPNB)](ym2610.md)
- [YM2610B (OPNB2)](ym2610b.md)
- [YM2612/YM3438 (OPN2)](ym2612.md)
- [YMZ280B](ymz280b.md)
- [ZXS Beeper](zxbeep.md)
- [ZX Spectrum Beeper](zxbeep.md)
Furnace also reads .dmf files with the [Yamaha YMU759](ymu759.md) system, but...
<!--
# full system list
## Game consoles
- **Sega Genesis**: [YM3438](ym2612.md), [SN76489](sms.md)
- **Sega Genesis (extended channel 3)**: [YM3438](ym2612.md), [SN76489](sms.md)
- **Sega Genesis (CSM)**: [YM3438](ym2612.md), [SN76489](sms.md)
- **Sega Genesis (DualPCM)**: [YM3438](ym2612.md), [SN76489](sms.md)
- **Sega Genesis (DualPCM, extended channel 3)**: [YM3438](ym2612.md), [SN76489](sms.md)
- **Sega Genesis (with Sega CD)**: [YM3438](ym2612.md), [SN76489](sms.md), [RF5C164](ricoh.md)
- **Sega Genesis (extended channel 3 with Sega CD)**: [YM3438](ym2612.md), [SN76489](sms.md), [RF5C164](ricoh.md)
- **Sega Genesis (CSM with Sega CD)**: [YM3438](ym2612.md), [SN76489](sms.md), [RF5C164](ricoh.md)
- **Sega Master System**: [SN76489](sms.md)
- **Sega Master System (with FM expansion)**: [SN76489](sms.md), [YM2413](opll.md)
- **Sega Master System (with FM expansion in drums mode)**: [SN76489](sms.md), [YM2413](opll.md)
- **Sega Game Gear**: [SN76489](sms.md)
- **Game Boy**: [Game Boy](game-boy.md)
- **Neo Geo Pocket**: [T6W28](t6w28.md), [DAC](dac.md)
- **NEC PC Engine/TurboGrafx-16**: [HuC6280](pce.md)
- **NES**: [2A03](nes.md)
- **Famicom with Konami VRC6**: [2A03](nes.md), [VRC6](vrc6.md)
- **Famicom with Konami VRC7**: [2A03](nes.md), [VRC7](opl.md)
- **Famicom with MMC5**: [2A03](nes.md), [MMC5](mmc5.md)
- **Famicom with Sunsoft 5B**: [2A03](nes.md), [5B](ay8910.md)
- **Famicom with Namco 163**: [2A03](nes.md), [N163](n163.md)
- **Famicom Disk System**: [2A03](nes.md), [FDS](fds.md)
- **SNES**: [SNES](snes.md)
- **Mattel Intellivision**: [AY-3-8914](ay8910.md)
- **Vectrex**: [AY-3-8910](ay8910.md)
- **Neo Geo AES**: [YM2610](ym2610.md)
- **Neo Geo AES (extended channel 2)**: [YM2610](ym2610.md)
- **Atari 2600/7800**: [TIA](tia.md)
- **Atari 7800 + Ballblazer/Commando**: [TIA](tia.md), [POKEY](pokey.md)
- **Atari Lynx**: [Lynx](lynx.md)
- **WonderSwan**: [WonderSwan](wonderswan.md)
- **Virtual Boy**: [Virtual Boy](virtual-boy.md)
- **Gamate**: [AY-3-8910](ay8910.md)
- **Pokémon Mini**: [Pokémon Mini](pokemini.md)
- **Tiger Game.com**: [SM8521](sm8521.md)
- **Casio PV-1000**: [PV-1000](pv1000.md)
## Computers
- **Commodore PET**: [PET](pet.md)
- **Commodore VIC-20**: [VIC](vic20.md)
- **Commodore Plus/4**: [TED](ted.md)
- **Commodore 64 (6581 SID)**: [MOS 6581](c64.md)
- **Commodore 64 (8580 SID)**: [MOS 8580](c64.md)
- **Commodore 64 (6581 SID + Sound Expander)**: [MOS 6581](c64.md), [YM3526](opl.md)
- **Commodore 64 (6581 SID + Sound Expander in drums mode)**: [MOS 6581](c64.md), [YM3526](opl.md)
- **Commodore 64 (8580 SID + Sound Expander)**: [MOS 8580](c64.md), [YM3526](opl.md)
- **Commodore 64 (8580 SID + Sound Expander in drums mode)**: [MOS 8580](c64.md), [YM3526](opl.md)
- **Commodore 64 (6581 SID + FM-YAM)**: [MOS 6581](c64.md), [YM3812](opl.md)
- **Commodore 64 (6581 SID + FM-YAM in drums mode)**: [MOS 6581](c64.md), [YM3812](opl.md)
- **Commodore 64 (8580 SID + FM-YAM)**: [MOS 8580](c64.md), [YM3812](opl.md)
- **Commodore 64 (8580 SID + FM-YAM in drums mode)**: [MOS 8580](c64.md), [YM3812](opl.md)
- **Amiga**: [Amiga](amiga.md)
- **MSX**: [AY-3-8910](ay8910.md)
- **MSX + SFG-01**: [YM2149(F)](ay8910.md), [YM2151](ym2152.md)
- **MSX + MSX-AUDIO**: [YM2149(F)](ay8910.md), [Y8950](opl.md)
- **MSX + MSX-AUDIO (drums mode)**: [YM2149(F)](ay8910.md), [Y8950](opl.md)
- **MSX + MSX-MUSIC**: [YM2149(F)](ay8910.md), [YM2413](opll.md)
- **MSX + MSX-MUSIC (drums mode)**: [YM2149(F)](ay8910.md), [YM2413](opll.md)
- **MSX + Darky**: [YM2149(F)](ay8910.md), [AY8930](ay8930.md) × 2
- **MSX + Playsoniq**: [YM2149(F)](ay8910.md), [SN76489](sms.md), [MOS 8580](c64.md), [SCC+](scc.md)
- **MSX + SCC**: [YM2149(F)](ay8910.md), [SCC](scc.md)
- **MSX + SCC+**: [YM2149(F)](ay8910.md), [SCC+](scc.md)
- **MSX + Neotron**: [YM2149(F)](ay8910.md), [YM2610](ym2610.md)
- **MSX + Neotron (extended channel 2)**: [YM2149(F)](ay8910.md), [YM2610](ym2610.md)
- **MSX + Neotron (with YM2610B)**: [YM2149(F)](ay8910.md), [YM2610B](ym2610b.md)
- **MSX + Neotron (with YM2610B; extended channel 3)**: [YM2149(F)](ay8910.md), [YM2610B](ym2610b.md)
- **MSX + SIMPL**: [YM2149(F)](ay8910.md), [DAC](dac.md)
- **NEC PC-88 (with PC-8801-10)**: [PC Speaker](pcspkr.md), [AY-3-8910](ay8910.md) × 2
- **NEC PC-88 (with PC-8801-11)**: [PC Speaker](pcspkr.md), [YM2203](ym2203.md)
- **NEC PC-88 (with PC-8801-11; extended channel 3)**: [PC Speaker](pcspkr.md), [YM2203](ym2203.md)
- **NEC PC-88 (with PC-8801-23)**: [PC Speaker](pcspkr.md), [YM2608](ym2608.md)
- **NEC PC-88 (with PC-8801-23; extended channel 3)**: [PC Speaker](pcspkr.md), [YM2608](ym2608.md)
- **NEC PC-88 (with HMB-20 HIBIKI-8800)**: [PC Speaker](pcspkr.md), [YM2151](ym2152.md)
- **NEC PC-8801mk2SR (with PC-8801-10)**: [PC Speaker](pcspkr.md), [YM2203](ym2203.md), [AY-3-8910](ay8910.md) × 2
- **NEC PC-8801mk2SR (with PC-8801-10; extended channel 3)**: [PC Speaker](pcspkr.md), [YM2203](ym2203.md), [AY-3-8910](ay8910.md) × 2
- **NEC PC-8801mk2SR (with PC-8801-11)**: [PC Speaker](pcspkr.md), [YM2203](ym2203.md) × 2
- **NEC PC-8801mk2SR (with PC-8801-11; extended channel 3 on internal OPN)**: [PC Speaker](pcspkr.md), [YM2203](ym2203.md) × 2
- **NEC PC-8801mk2SR (with PC-8801-11; extended channel 3 on external OPN)**: [PC Speaker](pcspkr.md), [YM2203](ym2203.md) × 2
- **NEC PC-8801mk2SR (with PC-8801-11; extended channel 3 on both OPNs)**: [PC Speaker](pcspkr.md), [YM2203](ym2203.md) × 2
- **NEC PC-8801mk2SR (with PC-8801-23)**: [PC Speaker](pcspkr.md), [YM2203](ym2203.md), [YM2608](ym2608.md)
- **NEC PC-8801mk2SR (with PC-8801-23; extended channel 3 on internal OPN)**: [PC Speaker](pcspkr.md), [YM2203](ym2203.md), [YM2608](ym2608.md)
- **NEC PC-8801mk2SR (with PC-8801-23; extended channel 3 on external OPN)**: [PC Speaker](pcspkr.md), [YM2203](ym2203.md), [YM2608](ym2608.md)
- **NEC PC-8801mk2SR (with PC-8801-23; extended channel 3 on both OPNs)**: [PC Speaker](pcspkr.md), [YM2203](ym2203.md), [YM2608](ym2608.md)
- **NEC PC-8801mk2SR (with HMB-20 HIBIKI-8800)**: [PC Speaker](pcspkr.md), [YM2203](ym2203.md), [YM2151](ym2152.md)
- **NEC PC-8801mk2SR (with HMB-20 HIBIKI-8800; extended channel 3)**: [PC Speaker](pcspkr.md), [YM2203](ym2203.md), [YM2151](ym2152.md)
- **NEC PC-8801FA (with PC-8801-10)**: [PC Speaker](pcspkr.md), [YM2608](ym2608.md), [AY-3-8910](ay8910.md) × 2
- **NEC PC-8801FA (with PC-8801-10; extended channel 3)**: [PC Speaker](pcspkr.md), [YM2608](ym2608.md), [AY-3-8910](ay8910.md) × 2
- **NEC PC-8801FA (with PC-8801-11)**: [PC Speaker](pcspkr.md), [YM2608](ym2608.md), [YM2203](ym2203.md)
- **NEC PC-8801FA (with PC-8801-11; extended channel 3 on internal OPN)**: [PC Speaker](pcspkr.md), [YM2608](ym2608.md), [YM2203](ym2203.md)
- **NEC PC-8801FA (with PC-8801-11; extended channel 3 on external OPN)**: [PC Speaker](pcspkr.md), [YM2608](ym2608.md), [YM2203](ym2203.md)
- **NEC PC-8801FA (with PC-8801-11; extended channel 3 on both OPNs)**: [PC Speaker](pcspkr.md), [YM2608](ym2608.md), [YM2203](ym2203.md)
- **NEC PC-8801FA (with PC-8801-23)**: [PC Speaker](pcspkr.md), [YM2608](ym2608.md) × 2
- **NEC PC-8801FA (with PC-8801-23; extended channel 3 on internal OPN)**: [PC Speaker](pcspkr.md), [YM2608](ym2608.md) × 2
- **NEC PC-8801FA (with PC-8801-23; extended channel 3 on external OPN)**: [PC Speaker](pcspkr.md), [YM2608](ym2608.md) × 2
- **NEC PC-8801FA (with PC-8801-23; extended channel 3 on both OPNs)**: [PC Speaker](pcspkr.md), [YM2608](ym2608.md) × 2
- **NEC PC-8801FA (with HMB-20 HIBIKI-8800)**: [PC Speaker](pcspkr.md), [YM2608](ym2608.md), [YM2151](ym2152.md)
- **NEC PC-8801FA (with HMB-20 HIBIKI-8800; extended channel 3)**: [PC Speaker](pcspkr.md), [YM2608](ym2608.md), [YM2151](ym2152.md)
- **NEC PC-98 (with PC-9801-26/K)**: [YM2203](ym2203.md), [PC Speaker](pcspkr.md)
- **NEC PC-98 (with PC-9801-26/K; extended channel 3)**: [YM2203](ym2203.md), [PC Speaker](pcspkr.md)
- **NEC PC-98 (with Sound Orchestra)**: [YM2203](ym2203.md), [YM3812](opl.md), [PC Speaker](pcspkr.md)
- **NEC PC-98 (with Sound Orchestra; extended channel 3)**: [YM2203](ym2203.md), [YM3812](opl.md), [PC Speaker](pcspkr.md)
- **NEC PC-98 (with Sound Orchestra in drums mode)**: [YM2203](ym2203.md), [YM3812](opl.md), [PC Speaker](pcspkr.md)
- **NEC PC-98 (with Sound Orchestra in drums mode; extended channel 3)**: [YM2203](ym2203.md), [YM3812](opl.md), [PC Speaker](pcspkr.md)
- **NEC PC-98 (with Sound Orchestra V)**: [YM2203](ym2203.md), [Y8950](opl.md), [PC Speaker](pcspkr.md)
- **NEC PC-98 (with Sound Orchestra V; extended channel 3)**: [YM2203](ym2203.md), [Y8950](opl.md), [PC Speaker](pcspkr.md)
- **NEC PC-98 (with Sound Orchestra V in drums mode)**: [YM2203](ym2203.md), [Y8950](opl.md), [PC Speaker](pcspkr.md)
- **NEC PC-98 (with Sound Orchestra V in drums mode; extended channel 3)**: [YM2203](ym2203.md), [Y8950](opl.md), [PC Speaker](pcspkr.md)
- **NEC PC-98 (with PC-9801-86)**: [YM2608](ym2608.md), [PC Speaker](pcspkr.md)
- **NEC PC-98 (with PC-9801-86; extended channel 3)**: [YM2608](ym2608.md), [PC Speaker](pcspkr.md)
- **NEC PC-98 (with PC-9801-73)**: [YM2608](ym2608.md), [PC Speaker](pcspkr.md)
- **NEC PC-98 (with PC-9801-73; extended channel 3)**: [YM2608](ym2608.md), [PC Speaker](pcspkr.md)
- **NEC PC-98 (with Sound Blaster 16 for PC-9800 w/PC-9801-26/K compatible)**: [YM2203](ym2203.md), [YMF262](opl.md), [PC Speaker](pcspkr.md)
- **NEC PC-98 (with Sound Blaster 16 for PC-9800 w/PC-9801-26/K compatible; extended channel 3)**: [YM2203](ym2203.md), [YMF262](opl.md), [PC Speaker](pcspkr.md)
- **NEC PC-98 (with Sound Blaster 16 for PC-9800 w/PC-9801-26/K compatible in drums mode)**: [YM2203](ym2203.md), [YMF262](opl.md), [PC Speaker](pcspkr.md)
- **NEC PC-98 (with Sound Blaster 16 for PC-9800 w/PC-9801-26/K compatible in drums mode; extended channel 3)**: [YM2203](ym2203.md), [YMF262](opl.md), [PC Speaker](pcspkr.md)
- **ZX Spectrum (48K, SFX-like engine)**: [ZXS Beeper](zxbeep.md)
- **ZX Spectrum (48K, QuadTone engine)**: [ZXS Beeper](zxbeep.md)
- **ZX Spectrum (128K)**: [AY-3-8910](ay8910.md)
- **ZX Spectrum (128K) with TurboSound FM**: [AY-3-8910](ay8910.md), [YM2203](ym2203.md) × 2
- **ZX Spectrum (128K) with TurboSound FM (extended channel 3 on first OPN)**: [AY-3-8910](ay8910.md), [YM2203](ym2203.md) × 2
- **ZX Spectrum (128K) with TurboSound FM (extended channel 3 on second OPN)**: [AY-3-8910](ay8910.md), [YM2203](ym2203.md) × 2
- **ZX Spectrum (128K) with TurboSound FM (extended channel 3 on both OPNs)**: [AY-3-8910](ay8910.md), [YM2203](ym2203.md) × 2
- **ZX Spectrum (128K) with TurboSound**: [AY-3-8910](ay8910.md) × 3
- **Amstrad CPC**: [AY-3-8910](ay8910.md)
- **Atari 800**: [POKEY](pokey.md)
- **Atari 800 (stereo)**: [POKEY](pokey.md) × 2
- **Atari ST**: [YM2149(F)](ay8910.md)
- **Atari STE**: [YM2149(F)](ay8910.md), [DAC](dac.md)
- **SAM Coupé**: [SAA1099](saa1099.md)
- **BBC Micro**: [SN76489A](sms.md)
- **PC (barebones)**: [PC Speaker](pcspkr.md)
- **IBM PCjr**: [SN76496](sms.md)
- **Tandy 1000**: [SN76496](sms.md), [PC Speaker](pcspkr.md)
- **PC + Covox Sound Master**: [AY8930](ay8930.md), [PC Speaker](pcspkr.md)
- **PC + SSI 2001**: [MOS 6581](c64.md), [PC Speaker](pcspkr.md)
- **PC + Game Blaster**: [SAA1099](saa1099.md) × 2, [PC Speaker](pcspkr.md)
- **PC + AdLib**: [YM3812](opl.md), [PC Speaker](pcspkr.md)
- **PC + AdLib (drums mode)**: [YM3812](opl.md), [PC Speaker](pcspkr.md)
- **PC + Sound Blaster**: [YM3812](opl.md), [PC Speaker](pcspkr.md), [DAC](dac.md)
- **PC + AdLib/Sound Blaster (drums mode)**: [YM3812](opl.md), [PC Speaker](pcspkr.md), [DAC](dac.md)
- **PC + Sound Blaster w/Game Blaster Compatible**: [YM3812](opl.md), [SAA1099](saa1099.md) × 2, [DAC](dac.md), [PC Speaker](pcspkr.md)
- **PC + Sound Blaster w/Game Blaster Compatible (drums mode)**: [YM3812](opl.md), [SAA1099](saa1099.md) × 2, [DAC](dac.md), [PC Speaker](pcspkr.md)
- **PC + Sound Blaster Pro**: [YM3812](opl.md) × 2, [DAC](dac.md), [PC Speaker](pcspkr.md)
- **PC + Sound Blaster Pro (drums mode)**: [YM3812](opl.md) × 2, [DAC](dac.md), [PC Speaker](pcspkr.md)
- **PC + Sound Blaster Pro 2**: [YMF262](opl.md), [DAC](dac.md), [PC Speaker](pcspkr.md)
- **PC + Sound Blaster Pro 2 (drums mode)**: [YMF262](opl.md), [DAC](dac.md), [PC Speaker](pcspkr.md)
- **PC + PC-FXGA**: [HuC6280](pce.md), [PC Speaker](pcspkr.md)
- **PC + SAAYM**: [YM2151](ym2152.md), [SAA1099](saa1099.md) × 2, [PC Speaker](pcspkr.md)
- **Sharp X1**: [AY-3-8910](ay8910.md)
- **Sharp X1 + FM Addon**: [AY-3-8910](ay8910.md), [YM2151](ym2152.md)
- **Sharp X68000**: [YM2151](ym2152.md), [MSM6258](msm6258.md)
- **FM Towns**: [YM3438](ym2612.md), [RF5C68](ricoh.md)
- **FM Towns (extended channel 3)**: [YM3438](ym2612.md), [RF5C68](ricoh.md)
- **FM Towns (CSM)**: [YM3438](ym2612.md), [RF5C68](ricoh.md)
- **Commander X16 (VERA only)**: [VERA](vera.md)
- **Commander X16 (with OPM)**: [VERA](vera.md), [YM2151](ym2152.md)
- **Commander X16 (with Twin OPL3)**: [VERA](vera.md), [YMF262](opl.md) × 2
- **TI-99/4A**: [SN94624](sms.md)
## Arcade systems
- **Bally Midway MCR**: [AY-3-8910](ay8910.md) × 2
- **Williams/Midway Y/T unit w/ADPCM sound board**: [YM2151](ym2152.md), [MSM6295](msm6295.md)
- **Konami Gyruss**: [AY-3-8910](ay8910.md) × 5
- **Konami Bubble System**: [AY-3-8910](ay8910.md) × 2, [Konami WSG](bubblesystem.md)
- **Konami MX5000**: [YM2151](ym2152.md), [K007232](k007232.md)
- **Konami Battlantis**: [YM3812](opl.md) × 2
- **Konami Battlantis (drums mode on first OPL2)**: [YM3812](opl.md) × 2
- **Konami Battlantis (drums mode on second OPL2)**: [YM3812](opl.md) × 2
- **Konami Battlantis (drums mode on both OPL2s)**: [YM3812](opl.md) × 2
- **Konami Fast Lane**: [K007232](k007232.md) × 2
- **Konami Chequered Flag**: [YM2151](ym2152.md), [K007232](k007232.md) × 2
- **Konami Haunted Castle**: [YM3812](opl.md), [SCC](ess.md), [K007232](k007232.md)
- **Konami Haunted Castle (drums mode)**: [YM3812](opl.md), [SCC](ess.md), [K007232](k007232.md)
- **Konami Hot Chase**: [K007232](k007232.md) × 3
- **Konami S.P.Y.**: [YM3812](opl.md), [K007232](k007232.md) × 2
- **Konami S.P.Y. (drums mode)**: [YM3812](opl.md), [K007232](k007232.md) × 2
- **Konami Rollergames**: [YM3812](opl.md), [K053260](k056320.md)
- **Konami Rollergames (drums mode)**: [YM3812](opl.md), [K053260](k056320.md)
- **Konami Golfing Greats**: [K053260](k056320.md)
- **Konami Lightning Fighters**: [YM2151](ym2152.md), [K053260](k056320.md)
- **Konami Over Drive**: [YM2151](ym2152.md), [K053260](k056320.md) × 2
- **Konami Asterix**: [YM2151](ym2152.md), [K053260](k056320.md)
- **Konami Hexion**: [SCC](ess.md), [MSM6295](msm6295.md)
- **Sega Kyugo**: [AY-3-8910](ay8910.md) × 2
- **Sega System 1**: [SN76489A](sms.md) × 2
- **Sega System E**: [SN76489](sms.md) × 2
- **Sega System E (with FM expansion)**: [SN76489](sms.md) × 2, [YM2413](opll.md)
- **Sega System E (with FM expansion in drums mode)**: [SN76489](sms.md) × 2, [YM2413](opll.md)
- **Sega Hang-On**: [YM2203](ym2203.md), [SegaPCM](segapcm.md)
- **Sega Hang-On (extended channel 3)**: [YM2203](ym2203.md), [SegaPCM](segapcm.md)
- **Sega OutRun/X Board**: [YM2151](ym2152.md), [SegaPCM](segapcm.md)
- **Sega System 24**: [YM2151](ym2152.md), [DAC](dac.md)
- **Sega System 18**: [YM3438](ym2612.md) × 2, [RF5C68](ricoh.md)
- **Sega System 18 (extended channel 3 on first OPN2C)**: [YM3438](ym2612.md) × 2, [RF5C68](ricoh.md)
- **Sega System 18 (extended channel 3 on second OPN2C)**: [YM3438](ym2612.md) × 2, [RF5C68](ricoh.md)
- **Sega System 18 (extended channel 3 on both OPN2Cs)**: [YM3438](ym2612.md) × 2, [RF5C68](ricoh.md)
- **Sega System 32**: [YM3438](ym2612.md) × 2, [RF5C68](ricoh.md)
- **Sega System 32 (extended channel 3 on first OPN2C)**: [YM3438](ym2612.md) × 2, [RF5C68](ricoh.md)
- **Sega System 32 (extended channel 3 on second OPN2C)**: [YM3438](ym2612.md) × 2, [RF5C68](ricoh.md)
- **Sega System 32 (extended channel 3 on both OPN2Cs)**: [YM3438](ym2612.md) × 2, [RF5C68](ricoh.md)
- **Capcom Exed Eyes**: [AY-3-8910](ay8910.md), [SN76489](sms.md) × 2
- **Capcom Arcade**: [YM2203](ym2203.md) × 2
- **Capcom Arcade (extended channel 3 on first OPN)**: [YM2203](ym2203.md) × 2
- **Capcom Arcade (extended channel 3 on second OPN)**: [YM2203](ym2203.md) × 2
- **Capcom Arcade (extended channel 3 on both OPNs)**: [YM2203](ym2203.md) × 2
- **Capcom CPS-1**: [YM2151](ym2152.md), [MSM6295](msm6295.md)
- **Capcom CPS-2 (QSound)**: [QSound](qsound.md)
- **Jaleco Ginga NinkyouDen**: [YM2149(F)](ay8910.md), [Y8950](opl.md)
- **Jaleco Ginga NinkyouDen (drums mode)**: [YM2149(F)](ay8910.md), [Y8950](opl.md)
- **Jaleco Mega System 1**: [YM2151](ym2152.md), [MSM6295](msm6295.md) × 2
- **NMK 16-bit Arcade**: [YM2203](ym2203.md), [MSM6295](msm6295.md) × 2
- **NMK 16-bit Arcade (extended channel 3)**: [YM2203](ym2203.md), [MSM6295](msm6295.md) × 2
- **Kaneko DJ Boy**: [YM2203](ym2203.md), [MSM6295](msm6295.md) × 2
- **Kaneko DJ Boy (extended channel 3)**: [YM2203](ym2203.md), [MSM6295](msm6295.md) × 2
- **Kaneko Air Buster**: [YM2203](ym2203.md), [MSM6295](msm6295.md)
- **Kaneko Air Buster (extended channel 3)**: [YM2203](ym2203.md), [MSM6295](msm6295.md)
- **Kaneko Toybox System**: [YM2149(F)](ay8910.md) × 2, [MSM6295](msm6295.md)
- **Kaneko Jackie Chan**: [YMZ280B](ymz280b.md)
- **Super Kaneko Nova System**: [YMZ280B](ymz280b.md)
- **Tecmo Ninja Gaiden**: [YM2203](ym2203.md) × 2, [MSM6295](msm6295.md)
- **Tecmo Ninja Gaiden (extended channel 3 on first OPN)**: [YM2203](ym2203.md) × 2, [MSM6295](msm6295.md)
- **Tecmo Ninja Gaiden (extended channel 3 on second OPN)**: [YM2203](ym2203.md) × 2, [MSM6295](msm6295.md)
- **Tecmo Ninja Gaiden (extended channel 3 on both OPNs)**: [YM2203](ym2203.md) × 2, [MSM6295](msm6295.md)
- **Tecmo System**: [YMF262](opl.md), [YMZ280B](ymz280b.md), [MSM6295](msm6295.md)
- **Tecmo System (drums mode)**: [YMF262](opl.md), [YMZ280B](ymz280b.md), [MSM6295](msm6295.md)
- **Seibu Kaihatsu Raiden**: [YM3812](opl.md), [MSM6295](msm6295.md)
- **Seibu Kaihatsu Raiden (drums mode)**: [YM3812](opl.md), [MSM6295](msm6295.md)
- **Sunsoft Shanghai 3**: [YM2149(F)](ay8910.md), [MSM6295](msm6295.md)
- **Sunsoft Arcade**: [YM3438](ym2612.md), [MSM6295](msm6295.md)
- **Sunsoft Arcade (extended channel 3)**: [YM3438](ym2612.md), [MSM6295](msm6295.md)
- **Atari Klax**: [MSM6295](msm6295.md)
- **Atari Rampart**: [YM2413](opll.md), [MSM6295](msm6295.md)
- **Atari Rampart (drums mode)**: [YM2413](opll.md), [MSM6295](msm6295.md)
- **Atari JSA IIIs**: [YM2151](ym2152.md), [MSM6295](msm6295.md) × 2
- **Atari Marble Madness**: [YM2151](ym2152.md), [POKEY](pokey.md)
- **Atari Championship Sprint**: [YM2151](ym2152.md), [POKEY](pokey.md) × 2
- **Atari Tetris**: [POKEY](pokey.md) × 2
- **Atari I, Robot**: [POKEY](pokey.md) × 4
- **Data East Karnov**: [YM2203](ym2203.md), [YM3526](opl.md)
- **Data East Karnov (extended channel 3)**: [YM2203](ym2203.md), [YM3526](opl.md)
- **Data East Karnov (drums mode)**: [YM2203](ym2203.md), [YM3526](opl.md)
- **Data East Karnov (extended channel 3; drums mode)**: [YM2203](ym2203.md), [YM3526](opl.md)
- **Data East Arcade**: [YM2203](ym2203.md), [YM3812](opl.md), [MSM6295](msm6295.md)
- **Data East Arcade (extended channel 3)**: [YM2203](ym2203.md), [YM3812](opl.md), [MSM6295](msm6295.md)
- **Data East Arcade (drums mode)**: [YM2203](ym2203.md), [YM3812](opl.md), [MSM6295](msm6295.md)
- **Data East Arcade (extended channel 3; drums mode)**: [YM2203](ym2203.md), [YM3812](opl.md), [MSM6295](msm6295.md)
- **Data East PCX**: [YM2203](ym2203.md), [HuC6280](pce.md)
- **Data East PCX (extended channel 3)**: [YM2203](ym2203.md), [HuC6280](pce.md)
- **Data East Dark Seal**: [YM2151](ym2152.md), [YM2203](ym2203.md), [MSM6295](msm6295.md) × 2
- **Data East Dark Seal (extended channel 3)**: [YM2151](ym2152.md), [YM2203](ym2203.md), [MSM6295](msm6295.md) × 2
- **Data East Deco 156**: [MSM6295](msm6295.md) × 2
- **Data East MLC**: [YMZ280B](ymz280b.md)
- **SNK Ikari Warriors**: [YM3526](opl.md) × 2
- **SNK Ikari Warriors (drums mode on first OPL)**: [YM3526](opl.md) × 2
- **SNK Ikari Warriors (drums mode on second OPL)**: [YM3526](opl.md) × 2
- **SNK Ikari Warriors (drums mode on both OPLs)**: [YM3526](opl.md) × 2
- **SNK Triple Z80**: [Y8950](opl.md), [YM3526](opl.md)
- **SNK Triple Z80 (drums mode on Y8950)**: [Y8950](opl.md), [YM3526](opl.md)
- **SNK Triple Z80 (drums mode on OPL)**: [Y8950](opl.md), [YM3526](opl.md)
- **SNK Triple Z80 (drums mode on Y8950 and OPL)**: [Y8950](opl.md), [YM3526](opl.md)
- **SNK Chopper I**: [Y8950](opl.md), [YM3812](opl.md)
- **SNK Chopper I (drums mode on Y8950)**: [Y8950](opl.md), [YM3812](opl.md)
- **SNK Chopper I (drums mode on OPL2)**: [Y8950](opl.md), [YM3812](opl.md)
- **SNK Chopper I (drums mode on Y8950 and OPL2)**: [Y8950](opl.md), [YM3812](opl.md)
- **SNK Touchdown Fever**: [YM3526](opl.md), [Y8950](opl.md)
- **SNK Touchdown Fever (drums mode on OPL)**: [YM3526](opl.md), [Y8950](opl.md)
- **SNK Touchdown Fever (drums mode on Y8950)**: [YM3526](opl.md), [Y8950](opl.md)
- **SNK Touchdown Fever (drums mode on OPL and Y8950)**: [YM3526](opl.md), [Y8950](opl.md)
- **Alpha denshi Alpha-68K**: [YM2203](ym2203.md), [YM2413](opll.md), [DAC](dac.md)
- **Alpha denshi Alpha-68K (extended channel 3)**: [YM2203](ym2203.md), [YM2413](opll.md), [DAC](dac.md)
- **Alpha denshi Alpha-68K (drums mode)**: [YM2203](ym2203.md), [YM2413](opll.md), [DAC](dac.md)
- **Alpha denshi Alpha-68K (extended channel 3; drums mode)**: [YM2203](ym2203.md), [YM2413](opll.md), [DAC](dac.md)
- **Alpha denshi Equites**: [MSM5232](msm5232.md), [AY-3-8910](ay8910.md), [DAC](dac.md)
- **Neo Geo MVS**: [YM2610](ym2610.md)
- **Neo Geo MVS (extended channel 2)**: [YM2610](ym2610.md)
- **Nichibutsu Mag Max**: [AY-3-8910](ay8910.md) × 3
- **Namco (3-channel WSG)**: [Namco](namco.md)
- **Namco Mappy**: [C15](namco.md)
- **Namco Pac-Land**: [C30](namco.md)
- **Namco System 86**: [YM2151](ym2152.md), [C30](namco.md)
- **Namco Thunder Ceptor**: [YM2151](ym2152.md), [C30](namco.md), [DAC](dac.md)
- **Namco System 1**: [YM2151](ym2152.md), [C30](namco.md), [DAC](dac.md)
- **Taito Arcade**: [YM2610B](ym2610b.md)
- **Taito Arcade (extended channel 3)**: [YM2610B](ym2610b.md)
- **Taito Metal Soldier Isaac II**: [MSM5232](msm5232.md), [AY-3-8910](ay8910.md) × 2
- **Taito The Fairyland Story**: [MSM5232](msm5232.md), [YM2149(F)](ay8910.md), [DAC](dac.md)
- **Taito Wyvern F-0**: [MSM5232](msm5232.md), [YM2149(F)](ay8910.md) × 2, [DAC](dac.md)
- **Seta 1**: [X1-010](x1-010.md)
- **Seta 1 + FM addon**: [X1-010](x1-010.md), [YM3438](ym2612.md)
- **Seta 1 + FM addon (extended channel 3)**: [X1-010](x1-010.md), [YM3438](ym2612.md)
- **Seta 2**: [X1-010](x1-010.md)
- **Sammy/Seta/Visco SSV**: [ES5506](es5506.md)
- **Cave 68000**: [YMZ280B](ymz280b.md)
- **Coreland Cyber Tank**: [Y8950](opl.md) × 2
- **Coreland Cyber Tank (drums mode)**: [Y8950](opl.md) × 2
- **ICE Skimaxx**: [MSM6295](msm6295.md) × 4
- **Toaplan 1**: [YM3812](opl.md)
- **Toaplan 1 (drums mode)**: [YM3812](opl.md)
- **Dynax/Nakanihon 3rd generation hardware**: [AY-3-8910](ay8910.md), [YM2413](opll.md), [MSM6295](msm6295.md)
- **Dynax/Nakanihon 3rd generation hardware (drums mode)**: [AY-3-8910](ay8910.md), [YM2413](opll.md), [MSM6295](msm6295.md)
- **Dynax/Nakanihon Real Break**: [YM2413](opll.md), [YMZ280B](ymz280b.md)
- **Dynax/Nakanihon Real Break (drums mode)**: [YM2413](opll.md), [YMZ280B](ymz280b.md)
- **Irem M72**: [YM2151](ym2152.md), [DAC](dac.md)
- **Irem M92/M107**: [YM2151](ym2152.md), GA20
## FM
- **Yamaha YM2151 (OPM)**: [YM2151](ym2152.md)
- **Yamaha YM2203 (OPN)**: [YM2203](ym2203.md)
- **Yamaha YM2203 (extended channel 3)**: [YM2203](ym2203.md)
- **Yamaha YM2608 (OPNA)**: [YM2608](ym2608.md)
- **Yamaha YM2608 (extended channel 3)**: [YM2608](ym2608.md)
- **Yamaha YM2610 (OPNB)**: [YM2610](ym2610.md)
- **Yamaha YM2610 (extended channel 2)**: [YM2610](ym2610.md)
- **Yamaha YM2610B (OPNB2)**: [YM2610B](ym2610b.md)
- **Yamaha YM2610B (extended channel 3)**: [YM2610B](ym2610b.md)
- **Yamaha YM2612 (OPN2)**: [YM2612](ym2612.md)
- **Yamaha YM2612 (extended channel 3)**: [YM2612](ym2612.md)
- **Yamaha YM2612 (OPN2) CSM**: [YM2612](ym2612.md)
- **Yamaha YM2612 (OPN2) with DualPCM**: [YM2612](ym2612.md)
- **Yamaha YM2612 (extended channel 3) with DualPCM**: [YM2612](ym2612.md)
- **Yamaha YM2413 (OPLL)**: [YM2413](opll.md)
- **Yamaha YM2413 (drums mode)**: [YM2413](opll.md)
- **Yamaha YM2414 (OPZ)**: [YM2414](opz.md)
- **Yamaha YM3438 (OPN2C)**: [YM3438](ym2612.md)
- **Yamaha YM3438 (extended channel 3)**: [YM3438](ym2612.md)
- **Yamaha YM3438 (OPN2C) CSM**: [YM3438](ym2612.md)
- **Yamaha YM3438 (OPN2C) with DualPCM**: [YM3438](ym2612.md)
- **Yamaha YM3438 (extended channel 3) with DualPCM**: [YM3438](ym2612.md)
- **Yamaha YM3526 (OPL)**: [YM3526](opl.md)
- **Yamaha YM3526 (drums mode)**: [YM3526](opl.md)
- **Yamaha Y8950**: [Y8950](opl.md)
- **Yamaha Y8950 (drums mode)**: [Y8950](opl.md)
- **Yamaha YM3812 (OPL2)**: [YM3812](opl.md)
- **Yamaha YM3812 (drums mode)**: [YM3812](opl.md)
- **Yamaha YMF262 (OPL3)**: [YMF262](opl.md)
- **Yamaha YMF262 (drums mode)**: [YMF262](opl.md)
- **Yamaha YMU759 (MA-2)**: [YMU759](ymu759.md)
## Square
- **TI SN76489**: [SN76489](sms.md)
- **TI SN76489A**: [SN76489A](sms.md)
- **TI SN76496**: [SN76496](sms.md)
- **NCR 8496**: [8496](sms.md)
- **Tandy PSSJ 3-voice sound**: [PSSJ](sms.md)
- **Sega PSG (SN76489-like)**: [SN76489](sms.md)
- **Sega PSG (SN76489-like, Stereo)**: [SN76489](sms.md)
- **TI SN94624**: [SN94624](sms.md)
- **TI SN76494**: [SN76494](sms.md)
- **Toshiba T6W28**: [T6W28](t6w28.md)
- **AY-3-8910**: [AY-3-8910](ay8910.md)
- **AY-3-8914**: [AY-3-8914](ay8910.md)
- **Yamaha YM2149(F)**: [YM2149(F)](ay8910.md)
- **Philips SAA1099**: [SAA1099](saa1099.md)
- **PC Speaker**: [PC Speaker](pcspkr.md)
- **Pokémon Mini**: [Pokémon Mini](pokemini.md)
- **Commodore VIC**: [VIC](vic20.md)
- **OKI MSM5232**: [MSM5232](msm5232.md)
- **Pong**: Pong
- **NEC D65010G031**: [PV-1000](pv1000.md)
- **MOS Technology TED**: [TED](ted.md)
## Sample
- **Amiga**: [Amiga](amiga.md)
- **SegaPCM**: [SegaPCM](segapcm.md)
- **Capcom QSound**: [QSound](qsound.md)
- **Seta/Allumer X1-010**: [X1-010](x1-010.md)
- **Yamaha YMZ280B (PCMD8)**: [YMZ280B](ymz280b.md)
- **Ricoh RF5C68**: [RF5C68](ricoh.md)
- **OKI MSM6258**: [MSM6258](msm6258.md)
- **OKI MSM6295**: [MSM6295](msm6295.md)
- **SNES**: [SNES](snes.md)
- **Konami K007232**: [K007232](k007232.md)
- **Irem GA20**: GA20
- **Generic PCM [DAC](dac.md)**: [DAC](dac.md)
- **Ensoniq ES5506 (OTTO)**: [ES5506](es5506.md)
- **Konami K053260**: [K053260](k056320.md)
## Wavetable
- **PC Engine**: [HuC6280](pce.md)
- **Konami Bubble System WSG**: [Konami WSG](bubblesystem.md)
- **Konami SCC**: [SCC](scc.md)
- **Konami SCC+**: [SCC+](scc.md)
- **Namco WSG**: [Namco WSG](namco.md)
- **Namco C15 (8-channel mono)**: [C15](namco.md)
- **Namco C30 (8-channel stereo)**: [C30](namco.md)
- **Namco 163**: [N163](n163.md)
- **Famicom Disk System (chip)**: [FDS](fds.md)
- **WonderSwan**: [WonderSwan](wonderswan.md)
- **Virtual Boy**: [Virtual Boy](virtual-boy.md)
- **Seta/Allumer X1-010**: [X1-010](x1-010.md)
## Specialized
- **MOS Technology SID (6581)**: [MOS 6581](c64.md)
- **MOS Technology SID (8580)**: [MOS 8580](c64.md)
- **Commodore PET (pseudo-wavetable)**: [PET](pet.md)
- **Konami VRC6**: [VRC6](vrc6.md)
- **MMC5**: [MMC5](mmc5.md)
- **Microchip AY8930**: [AY8930](ay8930.md)
- **Game Boy**: [Game Boy](game-boy.md)
- **Atari Lynx**: [Lynx](lynx.md)
- **POKEY**: [POKEY](pokey.md)
- **Atari TIA**: [TIA](tia.md)
- **NES (Ricoh 2A03)**: [2A03](nes.md)
- **Commander X16 (VERA only)**: [VERA](vera.md)
- **ZX Spectrum (beeper only, SFX-like engine)**: [ZXS Beeper](zxbeep.md)
- **ZX Spectrum (beeper only, QuadTone engine)**: [ZXS Beeper](zxbeep.md)
- **Sharp SM8521**: [SM8521](sm8521.md)
- **Dummy System**: Dummy
- **tildearrow Sound Unit**: [TSU](soundunit.md)
-->

8
doc/7-systems/ga20.md Normal file
View file

@ -0,0 +1,8 @@
# Irem GA20
ga20 is a 4 channel PCM sound source used by Irem in their arcades in late 1980s and eraly 1990s, often paired with [Yamaha YM2151](ym2151.md). Soundchip itself is rather unremarkable, having 8-bit volume and pitch control, no stereo panning
# effects
none

View file

@ -1,6 +1,6 @@
# Konami 056320
the 056320 is a sample-based chip that featured in a number of Konami arcade games, notably _Sunset Riders_ and _Teenage Mutant Ninja Turtles: Turtles in Time_. it has four channels of audio and stereo output, and can access up to 2MB of samples in 8-bit PCM or 4-bit ADPCM formats.
the 056320 is a sample-based chip that featured in a number of Konami arcade games, notably _Sunset Riders_ and _Teenage Mutant Ninja Turtles: Turtles in Time_. it has four channels of audio, 12-bit pitch resolution and stereo output, and can access up to 2MB of samples in 8-bit PCM or 4-bit ADPCM formats.

View file

@ -3,4 +3,5 @@
here is a small collection of useful tricks and techniques to really make Furnace sing.
- [using samples with limited playback rates](limited-samples.md)
- [choosing emulation cores](emulation-cores.md)
- [choosing emulation cores](emulation-cores.md)
- [guide on using OPLL patch macro](opllswitching.md)

View file

@ -0,0 +1,19 @@
# using OPLL patch macro
YM2413's biggest flaw (or, rather, cost-saving feature) was that it could use only one user-defined instrument at once. It wasn't monotimbrial; you could use 15 built-in presets and 5 built-in drum tones freely, but for these going off the beaten path, it surely was limiting. However, there is one technique, as amazing as simple: **mid-note preset switching**.
the idea is to use the first patch to put the envelope in an unintended state for the second patch so that it sounds different, with a higher or lower modulation level. the sustain level defines at which "envelope level" the envelope will switch to the sustain state (or release depending on envelope type). if the first patch is used to put the envelope into sustain at a higher or lower envelope state than intended for the second patch, it'll still be in sustain/release but at a higher or lower level than it should be at that point.
therefore, much more variety can be forced out, without using custom instruments. As of July 2023, Furnace is the only tool supporting this feature. It is accessed in 'Macros' tab in OPLL instrument editor.
For example, try putting the first macro value as 14 (acoustic bass preset), followed by 4 (flute preset). This way you will get distortion guitar-like sound this is nothing like other 2413 preset! There are many combination to test out, which is highly recommended (I can only say, 12->1 or 12->4 produces sound similiar to the well-known 4-op FM mallet brass)
## drums using this technique
Using OPLL's drum mode, described is systems/opll.md, you gain access to 5 hardcoded drum tones at the expense of 3 melodic FM channels. Patch switching eliminates that, as using it, it's also possible to construct percussive sounds, some even fuller than their drum mode counterparts!
In short, noise portion of drums (as in hi-hats), can be created of the very high pitched pseudo-distortion guitar, described as above. For kicks, snares, toms and claps, more effort is needed, however using volume and arpeggio macros will help.
## examples
- [Lman-Clubster cover by Mahbod](https://www.youtube.com/watch?v=jfHs7tSyjXI)
- [OPLL Nation by Mahbod](https://www.youtube.com/watch?v=ou6pEfxByeE)