Commit graph

703 commits

Author SHA1 Message Date
tildearrow 96d45dafb2 OPZ: same 2022-04-07 01:04:35 -05:00
tildearrow e1b77d7e2b OPM: if the LFO rate is 0, don't clock the counter 2022-04-07 01:03:16 -05:00
tildearrow 78cd99af32 update ymfm 2022-04-07 00:57:52 -05:00
tildearrow 530327383a initial OPZ bring-up
even emulation is incomplete and one thing is making me tired...
2022-04-06 22:56:06 -05:00
tildearrow 2e327953e8 YM2610(B): AY unification
as of now the SSG part of these chips is handled by a DivPlatformAY8910
within the DivPlatformYM2610.
this means less code duplication and therefore prepares for
OPN/OPNA support.
2022-04-06 18:03:30 -05:00
Natt Akuma ba8ee96069 VIC-20: Make noise state consistent across inits 2022-04-06 19:11:45 +07:00
tildearrow 9d653b58b3 hopefully fix MSVC build 2022-04-06 04:24:20 -05:00
tildearrow 2da96a7e76 initial MMC5 bring-up 2022-04-06 00:34:12 -05:00
tildearrow 280cbb3e39 FDS: possibly final work
the last thing left to do is the filter, but everything works now
2022-04-05 18:18:14 -05:00
tildearrow eee2500b5c FDS: effect names and register sheet 2022-04-04 00:47:27 -05:00
tildearrow ac3772c024 initial FDS bring-up 2022-04-03 22:37:16 -05:00
tildearrow 5ff1c9d70d OPN ext ch: fix mute being overridden when seeking 2022-04-03 02:28:46 -05:00
tildearrow dfb4f211c1 PC speaker: volume macro (finally) 2022-04-01 13:47:58 -05:00
tildearrow a08f7507fd N163: don't auto-scale volume 2022-03-31 23:11:02 -05:00
tildearrow 6d1d91ca68 AY8930: add TEST register effect 2022-03-31 17:14:45 -05:00
tildearrow 2d6a3b93d8 VRC6: change default saw volume 2022-03-31 15:40:46 -05:00
tildearrow 6f3b9f2e5d VRC6: changes around volume macro 2022-03-30 22:55:55 -05:00
tildearrow 12ade13580 SegaPCM: fix pitched samples on VGM export
fixes #291
2022-03-30 00:33:29 -05:00
tildearrow fb70afe50d
Merge pull request #329 from cam900/n163_macro
Minor N163 macro fix
2022-03-30 00:28:01 -05:00
tildearrow 80d67f9b23 BubSys: fix muting 2022-03-30 00:15:42 -05:00
tildearrow af6bbf9493 OPN: fix LFO effect not working in ext ch mode 2022-03-30 00:09:53 -05:00
tildearrow a43034f559 OPN: fix portaPause not resetting on new note 2022-03-29 23:58:50 -05:00
cam900 6eba483cba Minor N163 macro fix 2022-03-30 08:28:38 +09:00
tildearrow c26123e782 VIC-20: wait what? 2022-03-29 14:11:57 -05:00
tildearrow 5cea8ed3e3 QSound: change volume macro formula 2022-03-29 02:28:40 -05:00
cam900 1019faf34c Fix initial channel, Minor optimization for N163 2022-03-29 04:56:35 +09:00
tildearrow 3561d866fb
Merge pull request #317 from cam900/vrc6
Minor optimization
2022-03-28 13:23:52 -05:00
cam900 1ca63bdc09 Fix N163 2022-03-29 00:31:17 +09:00
cam900 5060c0c140
Merge branch 'tildearrow:master' into vrc6 2022-03-28 12:39:00 +09:00
cam900 7bd39603a9 Further fix 2022-03-28 12:31:42 +09:00
tildearrow 13a8873050 VRC6: period tuning fixes
now it is identical to the NES channels
2022-03-27 22:30:29 -05:00
tildearrow 4422ff7695 Merge branch 'vrc6' of https://github.com/cam900/furnace into cam900-vrc6 2022-03-27 22:16:04 -05:00
tildearrow 075f758e4d Namco 163 refinements 2022-03-27 22:04:01 -05:00
tildearrow c4fc797578
Merge #304 - DO NOT COMPILE
Add Namco 163 Support
Not final - changes needed
2022-03-27 21:35:58 -05:00
cam900 79d6433006 Merge branch 'master' of https://github.com/tildearrow/furnace into vrc6 2022-03-28 10:11:09 +09:00
tildearrow a7647a1d57 nice troll 2022-03-27 13:38:28 -05:00
cam900 5c922a090e Fix enable bit correction 2022-03-28 01:43:43 +09:00
cam900 44b4c5c5aa Spacing 2022-03-28 01:23:52 +09:00
cam900 5c5c9199c7 Channel enable bit is inverted 2022-03-28 01:22:24 +09:00
cam900 ef104ce0b0 Add VRC6 support
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.
2022-03-28 01:06:56 +09:00
tildearrow 5dac609d92 Genesis: better DAC write algorithm
only write DAC if there aren't too many queued writes
2022-03-27 01:47:27 -05:00
tildearrow a58c6da19d Amiga: oops 2022-03-27 00:29:37 -05:00
tildearrow 08dd693fa0 Amiga: add AM/PM effects 2022-03-27 00:02:17 -05:00
tildearrow 154ef3f9a3 Amiga: filter emulation 2022-03-26 23:39:20 -05:00
tildearrow 9b6e582f8d dev72 - two more compat flags 2022-03-26 22:15:15 -05:00
tildearrow 5c11150b87 T O D O 2022-03-26 21:43:15 -05:00
tildearrow 73536c0691 AY: add effects to write to I/O ports 2022-03-26 20:55:43 -05:00
tildearrow d869c21f52 oops I forgot to commit! 2022-03-26 13:47:13 -05:00
tildearrow ed857b20c4 potentially breaking change: better freq formula
now using a 4096-entry-long table for calculating final period/frequency
see issue #303
2022-03-25 02:52:41 -05:00
tildearrow 03da02711a OPLL: it's tested now. works
last thing to do is to restore drum pitches
2022-03-25 02:10:57 -05:00
tildearrow ea49c760c5 OPLL: part 1 of fixing drum volumes 2022-03-24 04:53:09 -05:00
tildearrow 7f39ec723a SMS: overdrive 2 fixes
nice
2022-03-24 01:27:53 -05:00
tildearrow ece34990e5 several pitch fixes and stuff
pull request #303
2022-03-23 23:19:16 -05:00
cam900 39654bfa86 Merge branch 'master' of https://github.com/tildearrow/furnace into n163 2022-03-24 13:11:22 +09:00
tildearrow b292fcc646 YM2151: implement song tuning 2022-03-23 22:16:25 -05:00
tildearrow 5a08e0d230 OPLL: add patch macro 2022-03-23 15:50:18 -05:00
cam900 df8f40486d Fix frequency, Loading waveform, Add instrument tab for waveform initialize
now for saving DivInstrumentN163 struct is... needs to compatibility breaks?
2022-03-24 03:53:07 +09:00
cam900 73267444fc
Merge branch 'master' into n163 2022-03-23 03:26:09 +09:00
cam900 4ba65d3906 Fix spacing 2022-03-23 03:17:06 +09:00
cam900 2eaa6ed0ce Merge branch 'master' of https://github.com/tildearrow/furnace into n163
# Conflicts:
#	CMakeLists.txt
#	papers/doc/7-systems/README.md
#	src/engine/dispatchContainer.cpp
#	src/gui/gui.cpp
#	src/gui/insEdit.cpp
2022-03-23 02:44:13 +09:00
cam900 5fdce33b11 Add Namco 163 Support 2022-03-23 01:48:45 +09:00
Natt Akuma feb138cefc Add VIC-20 support 2022-03-22 14:48:48 +07:00
tildearrow bfadb3b5cf OPL: oopsie. 20xx effect doesn't exist 2022-03-22 01:06:26 -05:00
tildearrow 848da5bcc5 VERA: 0 to 3F 2022-03-22 00:13:28 -05:00
tildearrow 322981b021 maybe fix possible crash regarding smp loop points 2022-03-21 21:26:36 -05:00
Natt Akuma c32ea59285 PET: Use wave bits macro instead 2022-03-22 01:37:22 +07:00
Natt Akuma 47c5c34e1c Add PET support 2022-03-21 21:02:51 +07:00
tildearrow a0dbc7acaf
Merge pull request #299 from AYCEdemo/x16
VERA: Implement PCM playback (again)
2022-03-20 04:40:04 -05:00
tildearrow 607a347b7a X1-010: don't pan in mono mode 2022-03-19 21:59:19 -05:00
Natt Akuma 6df3d1e0df VERA: Implement PCM playback (again) 2022-03-19 20:59:17 +07:00
cam900 a7c750a44e Merge branch 'master' of https://github.com/tildearrow/furnace into bubsys 2022-03-18 03:20:33 +09:00
tildearrow d6dfe2636a OPL: implement fixed frequency mode 2022-03-17 02:40:10 -05:00
tildearrow dce68749d6 GUI: work on the drum UI 2022-03-17 02:07:46 -05:00
tildearrow 5579ef2bc1 OPL: even more drums mode work 2022-03-17 01:50:42 -05:00
tildearrow e7f6290012 OPL: possibly implement drums mode
we need a good UI for it
2022-03-17 01:40:03 -05:00
cam900 234c5e9295 Reduce naming confusion in Bubble System Wavetable Sound
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)
2022-03-17 10:11:48 +09:00
tildearrow 966539bdf5 Genesis: fix sample crash
possibly
2022-03-16 13:11:02 -05:00
tildearrow 966d133bf4 OPL: FM macros 2022-03-16 03:44:22 -05:00
tildearrow 9322e9467c GUI: prepare macro editor for OPL op macros 2022-03-16 02:01:44 -05:00
tildearrow 592cbb56aa OPL: implement effects 2022-03-16 01:53:46 -05:00
cam900 c269346eda
safety check 2022-03-16 11:41:24 +09:00
cam900 53ad1c93e6
Reduce line 2022-03-16 11:40:10 +09:00
cam900 724bd5b8dc
Fix X1-010 muting 2022-03-16 11:35:22 +09:00
tildearrow 0a307fc4a6 MOD import: more improvements
- prepare for old Soundtracker MOD import
- add "bypass limits" flag - dope.mod plays correctly now
- automatic channel names
2022-03-15 18:32:15 -05:00
tildearrow 10cea9956b X1-010: fix crash 2022-03-15 18:30:29 -05:00
tildearrow 83e7d966b9 OPL: more 4-op mode fixes 2022-03-15 18:01:24 -05:00
tildearrow 4c5c4a647b OPL: some fixes 2022-03-15 15:28:45 -05:00
tildearrow a65df5cdab OPL: pretend to be YMU and enable SOME emulation? 2022-03-15 00:33:57 -05:00
Natt Akuma 91e856c61e Merge branch 'master' of https://github.com/tildearrow/furnace into mod-import 2022-03-15 03:08:37 +07:00
Natt Akuma c7fb5df206 Merge branch 'master' of https://github.com/tildearrow/furnace into mod-import 2022-03-14 21:57:54 +07:00
Natt Akuma 87f225074c .mod import 2022-03-14 21:50:52 +07:00
cam900 2c6267bd6b Merge branch 'master' of https://github.com/tildearrow/furnace into scc 2022-03-14 19:22:31 +09:00
cam900 69aeb7dd58 Add Bubble System Support
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.
2022-03-14 19:22:12 +09:00
tildearrow 714d189b57 OPL: more work and channel muting 2022-03-14 02:47:04 -05:00
tildearrow d2ad74206a fix 4-op mode for real 2022-03-14 02:39:10 -05:00
tildearrow 42df8255fc OPL: kind of fix 4-op mode 2022-03-14 02:30:25 -05:00
tildearrow 32581bb228 OPL: volume 2022-03-14 01:57:46 -05:00
tildearrow df5c1ae859 OPL: finally fix that order issue (kind of) 2022-03-14 01:54:31 -05:00
tildearrow 67d516fcee Genesis: prioritize DAC writes 2022-03-14 01:38:11 -05:00
tildearrow 5b2ec3ee87 NES: fix slide up
fixes #208
2022-03-14 00:26:06 -05:00
tildearrow b1b3f731f6
Merge pull request #283 from laoo/lynx_panning_swap
Lynx panning swap
2022-03-13 11:19:55 -05:00
tildearrow d607f35aa2
Merge pull request #279 from cam900/intv_alt
Add AY-3-8914 support as configurable in AY-3-8910
2022-03-13 11:17:36 -05:00
Waldemar Pawlaszek e775703c44 Lynx panning swap 2022-03-12 12:16:01 +01:00
tildearrow 716298c49c Genesis: now fix off not working on channel 6 2022-03-11 22:41:04 -05:00
tildearrow 2a0aa19b2b fix broken DAC mode
adds new compat flag
2022-03-11 22:11:33 -05:00
cam900 2643d6b0ee
Clamp X1-010 Envelope wave 2022-03-12 11:32:19 +09:00
tildearrow ab3884e5aa clamp wave data
issue #267
2022-03-11 16:58:43 -05:00
cam900 3ac1dce3fe Add AY-3-8914 support as configurable in AY-3-8910
Previous PR (https://github.com/tildearrow/furnace/pull/278) is closed due this, but archived for info.
It's AY with 4 level envelope volume per channel and different register format.
2022-03-12 03:30:54 +09:00
tildearrow 0ee16c63f1
Merge pull request #275 from cam900/ym2610_check
Make some pitch command work in ADPCM-B, still partially and 01xx command is broken
2022-03-10 18:32:36 -05:00
tildearrow bbca8b260b
Merge pull request #243 from cam900/gui_systems
Add various system, Minor corrections
2022-03-10 18:31:23 -05:00
tildearrow c6fda7a156 Merge branch 'x1_010' of https://github.com/cam900/furnace into cam900-x1_010 2022-03-10 18:24:52 -05:00
tildearrow a9f80b841c VERA: add ins color and reset 2022-03-10 17:46:40 -05:00
tildearrow cbc8721a00 Merge branch 'x16' 2022-03-10 17:31:32 -05:00
tildearrow 6d9befaf27 yay 2022-03-10 17:30:34 -05:00
tildearrow 2f02e24a2f VERA: get rid of rand() and adapt code 2022-03-10 16:52:59 -05:00
tildearrow 9bd15bd513 VERA: bring up actual emulation core 2022-03-10 15:51:27 -05:00
tildearrow 587fecd11d temporarily strip out emulation code 2022-03-10 14:40:45 -05:00
cam900 b42ceae1cb Code style 2022-03-11 04:15:04 +09:00
cam900 36b336c7f4 A && B 2022-03-11 04:11:23 +09:00
cam900 3b6559a5a1 Merge branch 'master' of https://github.com/tildearrow/furnace into gui_systems 2022-03-11 03:53:51 +09:00
cam900 f3e4810dda Make some pitch command work in ADPCM-B, still partially and 01xx command is broken
Fix sample check routine
Remove dac* variables, No way to enable DAC mode in YM2610*
2022-03-11 03:47:36 +09:00
cam900 8d447542e1 Use lamda 2022-03-11 02:42:27 +09:00
Waldemar Pawlaszek d0b76ed5a6 Updated Lynx register sheet 2022-03-10 17:36:27 +01:00
Natt Akuma 6bb9843fb9 Fix wrong noise sampling operation
This really shouldn't have an effect on anything though...
2022-03-09 18:06:07 +07:00
Natt Akuma eb3a73c38b Mute on pan registers instead 2022-03-09 00:58:21 +07:00
cam900 66eb40e55e Extract X1-010 core from submodule 2022-03-09 01:00:09 +09:00
cam900 6c432bc42e Allow Left waveform can be invertable,
Improvement documents
2022-03-09 00:50:10 +09:00
cam900 da73c365e4 Merge branch 'master' of https://github.com/tildearrow/furnace into x1_010 2022-03-08 23:30:57 +09:00
Natt Akuma 43cfb09acf Merge branch 'master' of https://github.com/tildearrow/furnace into x16 2022-03-08 17:53:00 +07:00
Natt Akuma 7711069a66
WonderSwan: match DM's volume command behavior (#266) 2022-03-08 10:51:37 +01:00
Natt Akuma e05052d9d7 Properly case PCM channel 2022-03-08 15:44:14 +07:00
tildearrow b21aecf285 WonderSwan: make macOS happy 2022-03-07 23:38:36 -05:00
cam900 2e6cc9fc7c Merge branch 'master' of https://github.com/tildearrow/furnace into x1_010
# Conflicts:
#	CMakeLists.txt
#	papers/doc/7-systems/README.md
#	src/engine/dispatch.h
#	src/engine/dispatchContainer.cpp
#	src/engine/playback.cpp
#	src/engine/sysDef.cpp
#	src/gui/gui.cpp
2022-03-08 13:38:24 +09:00
tildearrow 1bc8bc8746 OPL: proper frequency on OPL1/2 2022-03-07 23:23:18 -05:00
tildearrow 09655f7d57 WonderSwan: fix build 2022-03-07 23:09:42 -05:00
tildearrow 0210548291
swan let's go
Add WonderSwan support and flatten second chip checks in VGM export into variables
2022-03-07 23:05:32 -05:00
tildearrow bd00165ded OPL: it's coming together 2022-03-07 22:52:32 -05:00
tildearrow 36db137e8f OPL: absolute mess up
now it kinda works
2022-03-07 22:28:33 -05:00
tildearrow cdd45bb18c allow detune 4 2022-03-07 22:28:20 -05:00
tildearrow ec007b4443 OPL: more work - still not there yet 2022-03-07 18:19:25 -05:00
tildearrow 03d2f87804 OPL: some work - still does not work 2022-03-07 17:07:29 -05:00
Natt Akuma 7704dc0d79 Fix volume calculation sometimes not working 2022-03-07 23:49:52 +07:00
cam900 3f4966096a Fix info 2022-03-08 00:44:37 +09:00
cam900 26470d594e Actually PCM frequency limit 2022-03-08 00:43:16 +09:00
cam900 65149a466f Fix accidently auto-generated spaces 2022-03-08 00:15:21 +09:00
Natt Akuma bbaf31d0c2 Make register view work again 2022-03-07 19:08:18 +07:00
Natt Akuma b8ea64b801 Rename WS to Swan 2022-03-07 19:04:20 +07:00
Natt Akuma 3b88786ffb Merge branch 'master' of https://github.com/tildearrow/furnace into x16 2022-03-07 16:46:32 +07:00
Natt Akuma 7f3519b970 Implement VERA noise generation instead of rand() 2022-03-07 16:46:12 +07:00
Natt Akuma 56be067af6 No need to de-duplicate writes here 2022-03-07 15:45:00 +07:00