Commit Graph

236 Commits

Author SHA1 Message Date
cam900 d0c32a56be Fix panning 2022-03-07 03:06:01 +09:00
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
tildearrow 6ce2a6743c lynx: fix 3xxx effect not working 2022-03-05 04:59:05 -05:00
Natt Akuma 9abf872ff3 Add VERA support for Commander X16 2022-03-04 18:20:38 +07:00
tildearrow 8e5b3abab8 add two more compatibility flags
issue #167 and #249:
- stop porta on note off
- continuous vibrato
2022-03-03 23:14:38 -05:00
tildearrow 742e813e98 E1xx and E2xx should not stop when Key OFF comes
in

indeed
2022-03-03 23:05:07 -05:00
tildearrow acc9b0aa57
Merge pull request #225 from cam900/ym2610b
Prepare to experimental support YM2610B and with Extended channel 3 mode, Some additions
2022-03-01 23:21:46 -05:00
tildearrow ceb1cd0181 OPLL: more drum fixes! 2022-03-01 22:10:03 -05:00
cam900 1631af8f8e Merge branch 'master' of https://github.com/tildearrow/furnace into ym2610b 2022-03-02 01:18:36 +09:00
tildearrow 68db27bdb8 VRC7 as well 2022-02-28 04:59:25 -05:00
tildearrow 98c04e4dfd OPLL: actually care about effects 2022-02-28 04:58:44 -05:00
cam900 cd4c876c5e Merge branch 'master' of https://github.com/tildearrow/furnace into ym2610b
# Conflicts:
#	src/engine/engine.cpp
#	src/engine/playback.cpp
2022-02-25 23:47:28 +09:00
tildearrow bd96bf484b fix 8-bit samples not loading correctly 2022-02-25 00:31:09 -05:00
tildearrow 35e459d9e5 Neo Geo: implement ADPCM-B 2022-02-25 00:11:27 -05:00
cam900 d831a522a4 Merge branch 'master' of https://github.com/tildearrow/furnace into ym2610b
# Conflicts:
#	src/engine/engine.cpp
#	src/engine/platform/ym2610Interface.cpp
2022-02-25 12:20:00 +09:00
tildearrow 4b6d9adcb9 volume changes
as of now the master volume is 1.0x (it was 2.0x before)
NES has also been amplified.
these changes should not affect older songs.
2022-02-24 17:56:19 -05:00
cam900 1e2d5694b9 Prepare to support YM2610B and with Extended channel 3 mode
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
2022-02-25 01:02:35 +09:00
tildearrow 1e98f0c4a1 sample system rewrite! **PLEASE READ**
this commit mostly rewrites the sample system.
as of now samples can be ADPCM, 8-bit, BRR or 16-bit
or something...

consider this VERY EXPERIMENTAL.
if you find any issues REPORT THEM immediately.

it's nearly 4am...
2022-02-24 03:57:45 -05:00
tildearrow e4b9a6d1d9 compound system flattening, part 1
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!
2022-02-23 02:52:30 -05:00
tildearrow a5561f1899 tabs to spaces 2022-02-22 22:13:17 -05:00
tildearrow e6ee28ce0d Merge branch 'cps2' of https://github.com/superctr/furnace into superctr-cps2 2022-02-22 18:21:57 -05:00
tildearrow 278536489f lynx micro-fix 2022-02-22 17:40:29 -05:00
Ian Karlsson e32ef2d881 Add 3xxx effect to set echo delay buffer length. Add documentation 2022-02-22 21:16:46 +01:00
Ian Karlsson b3908216f8 Implement QSound support 2022-02-22 11:36:12 +01:00
Waldemar Pawlaszek 6e79e84e53 Added panning and load LFSR commands. 2022-02-21 19:59:09 +01:00
tildearrow 339959fc23 :< 2022-02-18 02:21:01 -05:00
tildearrow ce2af4303e yay for more compatibility flags
ignore duplicate slides on .dmf
2022-02-18 02:03:31 -05:00
tildearrow 86e5b77981 fix E000 being treated too literally 2022-02-18 01:53:46 -05:00
tildearrow fbed03dd0c fix E1xy/E2xy behaving wrong with arps 2022-02-18 01:27:26 -05:00
tildearrow 79fe54d4b6 fix some glitches 2022-02-17 03:20:08 -05:00
tildearrow bacf57bb65 add stop song effect! finally! 2022-02-17 03:15:51 -05:00
tildearrow 810ee33d11 GUI: prepare for drawing prev/next pat content 2022-02-16 16:11:15 -05:00
tildearrow b9832abbeb license clarification, part 3 2022-02-14 22:12:20 -05:00
tildearrow 6dfd1e4d17 don't tick metronome if step playing/freelance
issue #162
2022-02-12 23:15:06 -05:00
tildearrow d1e166a34e add a little visual to channel names 2022-02-10 03:15:39 -05:00
tildearrow 62f2f67b9d add two more compatibility flags
for songs that relied upon pre-0.5.5 broken behavior
2022-02-09 22:07:32 -05:00
tildearrow 70a993aacb treat slide up as well 2022-02-08 23:01:39 -05:00
tildearrow 5b7240bb4f and fix it again 2022-02-08 22:49:52 -05:00
tildearrow 4756599df0 fix timer ticking during row play 2022-02-08 17:43:26 -05:00
tildearrow a64f8f7a29 implement target resets slides flag 2022-02-08 17:24:24 -05:00
tildearrow e0b0da2072 implement note off resets slides flag 2022-02-08 17:17:01 -05:00
tildearrow 43c9c58034 implement legacy volume slides flag 2022-02-08 17:05:18 -05:00
tildearrow 6fb5ca0f78 implement compatible arpeggio flag 2022-02-08 16:48:19 -05:00
tildearrow dea79c2adb inhibit note on if user has edited pattern
issue #82
untested
2022-02-08 13:31:57 -05:00
tildearrow 4ce116ca0a prepare for macro release points
issue #142
2022-02-08 03:50:42 -05:00
tildearrow 632f17862e better blip_buf excess strategy
fixes #133
2022-02-07 21:31:58 -05:00
tildearrow e25f5b229c fix arpeggio not happening during slide on SMS 2022-02-07 00:30:15 -05:00
tildearrow 8772439d3e add ability to play by one row 2022-02-06 00:42:07 -05:00
tildearrow 6000d702aa fix urgent bug regarding note slides 2022-02-05 16:33:06 -05:00
tildearrow a93a9c19f3 add "force mono audio" option and fix flags not be
ing set after a dispatch reset
2022-02-04 17:04:36 -05:00
tildearrow b57e85134e prepare for end of song effect 2022-02-04 14:43:57 -05:00
tildearrow 584b8426ff GUI: improve debug menu 2022-02-03 18:38:57 -05:00
tildearrow c8f57afda4 consider loop in sample preview
fixes #120
2022-02-03 16:52:27 -05:00
tildearrow 5086bc1097 implement the linear pitch flag 2022-02-03 02:24:11 -05:00
tildearrow d638af2017 fix E1xx and E2xx effects 2022-02-03 01:30:03 -05:00
tildearrow 2a15673610 implement loop modality and pitch control flags
issue #113
2022-02-03 00:52:50 -05:00
tildearrow f03ed7c833 NES: add hardware sweep effect 2022-02-01 18:28:48 -05:00
tildearrow bf9eb8b0a4 fix two possible pitch slide regressions
now let's fix blue crow
2022-01-30 15:55:31 -05:00
tildearrow ec66b7a21b add song tuning
soon: system clock settings
2022-01-28 00:55:51 -05:00
tildearrow 0071894471 GUI: add a preliminary oscilloscope 2022-01-27 17:49:00 -05:00
tildearrow 8edcbc8d39 fix 0Bxx and 0Dxx commands
now wiz lab and sixeight-v2 play correctly
TODO: fix walkSong
2022-01-27 00:29:37 -05:00
tildearrow 35ee06d6cf fix ECxx effect
fixes #57
2022-01-23 22:00:46 -05:00
tildearrow bc32809ecb fix #46 2022-01-21 04:27:00 -05:00
tildearrow 730561d3a3 arcade: add effects to control AMD/PMD 2022-01-20 17:54:11 -05:00
tildearrow 75ce5f4e2a add auto-envelope mode (29xy effect)
this closes #32
2022-01-20 03:23:03 -05:00
tildearrow 85dd6c3579 add ability to preview wavetables
issue #16
2022-01-20 00:07:53 -05:00
tildearrow 85bb081f3b prevent clock drift when previewing samples 2022-01-19 23:23:47 -05:00
tildearrow 51a89adb3d more headache 2022-01-19 22:05:39 -05:00
tildearrow fee174a65a fix ECxx accuracy 2022-01-19 21:53:09 -05:00
tildearrow efee5c3d7a now remove debug messages 2022-01-19 01:36:47 -05:00
tildearrow aa1a3f8aab oh yes more fixes 2022-01-19 01:36:20 -05:00
tildearrow f98662d329 slide accuracy fixes 2022-01-19 01:27:32 -05:00
tildearrow e87239f8ce fix retrigger implementation
no longer broken
2022-01-19 00:01:34 -05:00
tildearrow 5a7cf57aa2 AY8930: implement noise and/or mask
cannot confirm whether this behavior is accurate to hardware though...
thanks Eulous for details on this!
2022-01-18 18:21:27 -05:00
tildearrow 64745648a0 allow negative octaves 2022-01-18 16:55:32 -05:00
tildearrow a148a04e2c disable delay locking bug emulation entirely
so it appears the bug emulation caused an actual bug
2022-01-18 15:24:42 -05:00
tildearrow 0356cf2c7a TIA: add 10xx effect for selecting shape 2022-01-18 15:12:36 -05:00
tildearrow 8d4d47950c rewrite audio export
now it is possible to export audio from the GUI!
multiple export coming soon
2022-01-17 23:34:29 -05:00
tildearrow df3ae12278 fix furnace for 32-bit 2022-01-17 21:08:14 -05:00
tildearrow a0896f949c and againnnnn 2022-01-17 18:18:28 -05:00
tildearrow cba4385607 ignore speed change if speed is 0
fixes #9
2022-01-17 18:05:29 -05:00
tildearrow ce027d99f6 force insChanged on note input
partially solves issue #8
2022-01-17 18:01:40 -05:00
tildearrow 2f1cdab36b fix mixing being done wrongly 2022-01-15 00:24:06 -05:00
tildearrow 0e2230d036 hopefully finish the SAA1099 platform 2022-01-14 23:26:22 -05:00
tildearrow 1d3429d568 C64: don't gate on legato 2022-01-14 13:55:19 -05:00
tildearrow ad145a13e4 fix the desync 2022-01-14 04:41:32 -05:00
tildearrow 573ce69dc7 add TIA platform
currently there is a desync bug which remains to be fixed...
2022-01-14 03:37:36 -05:00
tildearrow dce06d8ec4 add AY8930 platform 2022-01-14 00:02:10 -05:00
tildearrow b26208f2c1 fix changing order if 0Bxx is present 2022-01-13 20:54:34 -05:00
tildearrow 0b352ecd9a add AY-3-8910 platform!
this paves the way for eventual AY-3-8930 platform...
2022-01-13 02:52:19 -05:00
tildearrow 2fcb474544 stuff
implement two systems and system vol/pan
2022-01-13 01:03:57 -05:00
tildearrow cd739f5fde change master clock to sampleRate*256
this hopefully fixes the hang by doing all clock ops on a master clock
rather than one clock per system
2022-01-12 17:45:07 -05:00
tildearrow fa5b99b46a add stuff for diagnosis of hang problem 2022-01-12 17:02:48 -05:00
tildearrow 6245b3af31 add Cxxx effect for mid-song Hz change
also add hang detection as I ran into one of them while test multi-chip
2022-01-12 02:45:26 -05:00
tildearrow 651db5784e implement more effects
- C64: set fine duty and filter
- Neo Geo: slide SSG envelope
2022-01-11 18:38:26 -05:00
tildearrow 7568f1a1b9 better YMU759 support
time base now loaded as rate and timer no longer bugs out

also you can save YMU759 songs as .fur now, even if it is pointless
2022-01-09 17:08:14 -05:00
tildearrow 06c7ac92a2 earliest multi-chip support
no saving, no adding chips yet...
only the beginning
2022-01-08 17:15:12 -05:00
tildearrow 7080434ed4 this does not compile 2022-01-08 16:03:32 -05:00
tildearrow f47543ab98 prepare for multiple chip support, part 2 2022-01-08 03:02:04 -05:00
tildearrow e8dc1e3c8b turn the metronome into a sine 2022-01-04 00:29:59 -05:00