* 'master' of https://github.com/tildearrow/furnace: (70 commits)
whoops
GUI: AY8930 credits
GUI: fix inability to close subsongs
BANK
OPN: wire up ExtCh system
fix build failure
dev95 - multiple songs in a single file (READ)
DO NOT USE - THIS FAILS - WORK IN PROGRESS
enforce asset limits
old .dmf loading improvements
add AICA and YMZ ADPCM formats
allocate ID for YMZ280B
harden .fur file saver
Fix AY VGM output, Fix presets
preparations for UI improvements
GUI: add more presets
prepare for ExtCh OPN/OPNA
GUI: clarify that lock layout doesn't work yet
GUI: remember last state of order edit mode
GUI: store edit/followOrders/followPattern state
...
# Conflicts:
# src/engine/fileOps.cpp
# src/engine/platform/ym2610.cpp
# src/engine/platform/ym2610b.cpp
# src/engine/sample.cpp
# src/engine/sample.h
# src/engine/sysDef.cpp
# src/gui/doAction.cpp
# src/gui/sysConf.cpp
* 'master' of https://github.com/tildearrow/furnace:
full linear pitch is now the default
add a full linear pitch mode, part 7
X1-010: implement linear pitch (part 6)
VERA: implement full linear pitch (part 5)
YM2610(B): implement full linear pitch (part 4)
add a full linear pitch mode, part 3
YM2612: implement full linear pitch (part 2)
update readme
re-enable warnings are errors on MSVC
YM2612: early full linear pitch experiment
GUI: window movement only by clicking on title bar
Fix GCC errors 2
Fix GCC errors
Remove SCC from TODO.md
SCC has no config flags currently
Add SCC and SCC+ support
# Conflicts:
# CMakeLists.txt
# src/engine/dispatchContainer.cpp
# src/gui/guiConst.cpp
* 'master' of https://github.com/tildearrow/furnace:
fix MSVC oh my
improvements to sysDef and UX changes
# Conflicts:
# src/engine/dispatchContainer.cpp
# src/gui/insEdit.cpp
2 Pulse channels:
- 8 level pulse duty cycle, DAC mode(just ignores duty cycle)/pulse wave mode, 4 bit volume.
- Furnace support PCM playback in pulse channels with duty cycle ignore mode.
Sawtooth:
- nothing but 6 bit volume (8 bit accumulator in technically) and 12 bit frequency (periodic).
VRC6 instrument:
- 6 bit Volume macro for finer sawtooth volume handling, also 3 bit Duty cycle macro for pulse channels.
Duty, PCM mode command and Duty macro affects for pulse channel only.
It means Custom wavetable sound generator logic on Bubble System.
It's wavetable select and volume is controlled by single AY-3-8910 IO for both channels, Another AY-3-8910 IO is used for reading sound status.
Schematics: http://pdf.textfiles.com/manuals/ARCADE/K-R/Nemesis%20[Schematics]%20[English].pdf (Nemesis, derivative of Bubble system)
Bubble System 2 channel Wavetable sound generator logic is configuration with K005289, 4 bit PROM and DAC.
K005289 controls pitch and 5 bit address generator per channel, Waveform select and Volume control is tied to AY-3-8910 ports. (each port for per channels)
these configuration is better known as K005289, the part of logic.
furnace emulates this configurations as single system, waveform format is 15 level and 32 width.
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.
Allow 8 bit volume for YM2610 ADPCM-B
Remove sample mode macro in YM2610, it's always enabled and seperated channels.
TODO: ADPCM-B is still not implemented, FM Channel 2 is silenced in extended channel 3 configuration
as of now compound systems (Genesis and Arcade) are translated to
separate chips.
this improves audio quality and makes things easier.
it also allows you to change the volume of each chip on a Genesis.
also adds SegaPCM system with 16 channels!