furnace/papers/doc/7-systems/x1_010.md
cam900 4a83c7c5a7 Add Seta/Allumer X1-010 Support
its 16 channel wavetable/PCM chip, with (optional) stereo support.
Its also has envelope, this feature has similar as AY PSG's one but its shape is also stored at RAM, and each nibble in envelope data is for each output: so i decided to added some feature for more stereo-ish envelope.
Split: Envelope shape will be splitted to Left and Right half for each output.
HInv, Vinv: Envelope shape will be Horizontally/Vertically mirrored the left one.

Max sample length is sample bank size of Seta 2 arcade hardware (currently not emulated yet, nor it doesn't support on VGM).

Chip id is temporary, it can be changed with to suggestions.
2022-03-07 02:31:03 +09:00

1.9 KiB

Seta/Allumer X1-010

One of sound chip originally designed by Seta, mainly used at their arcade hardwares at late-88 to early-2000s. it has 2 output channel, but no known hardware using this feature for stereo sound. later hardware paired this with external bankswitching logic, but its logic is not emulated now in current furnace revision. Allumer one is just rebadged Seta's thing for use in their arcade hardwares.

It has 16 channels, and all channels can be switchable to PCM sample or wavetable playback mode. Wavetable needs to paired with envelope, this feature is similar as AY PSG but it's shape are stored at RAM: it means it is user-definable.

In furnace, this chip is can be configurable for original arcade mono output or stereo output - its simulates early 'incorrect' emulation on some mono hardware but it is also based on the assumption that each channel is connected to each output.

effects

  • 10xx: change wave.
  • 11xx: change envelope shape. (also wavetable)
  • 17xx: toggle PCM mode.
  • 20xx: set PCM frequency.*
  • 22xx: set envelope mode.
    • bit 0 sets whether envelope will affect this channel.
    • bit 1 sets whether envelope one-shot mode. when it sets, channel is halted after envelope cycle is ended.
    • bit 2 sets whether envelope shape split mode. when it sets, envelope shape will splitted to left half and right half.
    • bit 3 sets whether the right shape will mirror the left one.
    • bit 4 sets whether the right output will mirror the left one.
  • 23xx: set envelope period.
  • 25xx: slide envelope period up.
  • 26xx: slide envelope period down.
  • 29xy: enable auto-envelope mode.
    • in this mode the envelope period is set to the channel's notes, multiplied by a fraction.
    • x is the numerator.
    • y is the denominator.
    • if x or y are 0 this will disable auto-envelope mode.
  • PCM frequency: 255 step, fomula: step * (Chip clock / 8192); 1.95KHz to 498KHz if Chip clock is 16MHz.