Commit Graph

261 Commits

Author SHA1 Message Date
tildearrow ddaedd7b92 YMZ280B: printf oops 2022-05-20 14:52:36 -05:00
tildearrow d35e9e9661 freaking macOS 2022-05-20 14:48:08 -05:00
Natt Akuma efd36d2982 YMZ280B: Fix full sample memory behavior 2022-05-21 02:42:23 +07:00
Natt Akuma 581f6d5d05 Merge branch 'master' of https://github.com/tildearrow/furnace into ymz280b 2022-05-21 02:34:51 +07:00
Natt Akuma b7a6bf5a0b Add RF5C68 and RF5C164 support 2022-05-21 01:45:26 +07:00
tildearrow 7b2237ffac we see it 2022-05-20 13:22:35 -05:00
OPNA2608 bccddc1a1d namco: Mark fallthrough cases
https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wimplicit-fallthrough
2022-05-20 11:07:24 +02:00
OPNA2608 602abdae74 Revert "oh my"
This reverts commit 1edf697230.
2022-05-20 11:00:46 +02:00
tildearrow 1edf697230 oh my 2022-05-20 03:23:56 -05:00
tildearrow 1742a0fbe5 AGAIN 2022-05-20 03:11:25 -05:00
tildearrow c159f197e0 fix Windows build huh 2022-05-20 02:58:07 -05:00
tildearrow 251734bd04 prepare for the last chips for 0.6pre1
YMZ280B is counted. don't worry.
2022-05-20 02:43:39 -05:00
tildearrow 6ec8674072 SoundUnit: many fixes. implement effects 2022-05-19 04:36:26 -05:00
Natt Akuma 4551c55818 Fix GCC errors 2022-05-18 21:46:14 +07:00
Natt Akuma 0ae0c6f703 Add YMZ280B support 2022-05-18 21:04:25 +07:00
cam900 b6387c8547
Fix AY8910 envelope hangs 2022-05-17 11:14:22 +09:00
tildearrow 1675456693 AY: fix possible hang 2022-05-16 13:37:41 -05:00
cam900 8e50ad8c90
Merge branch 'master' into ay_divider 2022-05-14 22:09:25 +09:00
tildearrow 297ab01d4c OPN: per-channel oscilloscope 2022-05-14 01:12:23 -05:00
tildearrow 06e00ab17b OPNA: per-channel oscilloscope 2022-05-14 01:07:32 -05:00
Laurens Holst e2c1233b12 Reset period counter when writing to period registers.
This is what happens on real SCC. See also e.g. openMSX core:
https://github.com/openMSX/openMSX/blob/master/src/sound/SCC.cc#L390

To reduce the noise introduced by this, we add extra checks to only
write the period when it has actually changed.
2022-05-13 22:33:01 +02:00
tildearrow f2db15b2ce add OPNA chip (work in progress) 2022-05-13 02:52:43 -05:00
Natt Akuma 00414c6504 Fix GCC errors 2 2022-05-11 00:29:17 +07:00
Natt Akuma a3fc76c984 Add SCC and SCC+ support 2022-05-10 11:25:10 +07:00
cam900 a8258d9a1a Divider related emulation core update, Fix init and period limitation 2022-05-10 13:18:02 +09:00
cam900 0b0a6dbf28 Fix divider again, split tone and envelope clock divider 2022-05-07 23:00:22 +09:00
cam900 76997fd5ba
Merge branch 'master' into ay_divider 2022-05-06 19:17:34 +09:00
tildearrow 5974e8c045 OPZ: fix EGShift emulation
1. the TX81Z has operators in reverse order
2. don't early out if EGShift is not 0
2022-05-05 23:50:15 -05:00
tildearrow 9a2938ff3e GUI: fix values button working as notes 2022-05-05 13:23:06 -05:00
cam900 4f1ebc3b6e Some AY-3-8910, AY8930 enhancements
Fix AY PSG clock divider function when exists, Update emulation core (MAME AY PSG and compatibles - includes noise routine updates)
Fix configuration flag, Add MSX Darky sound expander to preset

Clock divider isn't affected to expanded mode's tone and noise generator?
2022-05-04 23:04:20 +09:00
tildearrow 391928af6e
Merge pull request #416 from grauw/ay8930-fix2
AY8930: Fix tone and noise period in expanded mode.
2022-05-03 16:51:50 -05:00
Laurens Holst 49ff39abee AY8930: Fix tone and noise period in expanded mode.
By doubling the internal clock frequency.

In expanded mode, the same tone period is an octave higher than in compat mode.
In expanded mode, the noise period is twice as fast as currently implemented.

See https://github.com/tildearrow/furnace/pull/416
2022-05-03 21:28:10 +02:00
tildearrow 4c9b172b50 YM2610: optimize oscilloscope fetch CPU usage 2022-05-03 02:52:38 -05:00
tildearrow 62289d924e FDS: add NSFPlay core 2022-05-02 16:53:55 -05:00
tildearrow a7b8f81da7 NES: prepare for DPCM 2022-05-02 02:12:14 -05:00
tildearrow a0db8ab49a OPZ: possibly fix fixed freq emulation 2022-05-02 01:22:49 -05:00
tildearrow 430d0329bd per-channel oscilloscope, part 10
OPZ
2022-05-02 00:22:34 -05:00
tildearrow de09073232 NES: NSFPlay per-channel osc 2022-05-02 00:05:28 -05:00
tildearrow e1cec62af4 NES: now fix tri_mute 2022-05-01 23:48:35 -05:00
tildearrow 153e025cf8 NES: finally 2022-05-01 23:48:02 -05:00
tildearrow cb7aa4aa05 NES: wire up NSFplay
no muting supported for now
see #27
2022-05-01 23:20:20 -05:00
tildearrow 7b31f6a3e5 now fix it damn it 2022-05-01 22:52:22 -05:00
tildearrow e873070d84 now move these files 2022-05-01 22:22:02 -05:00
tildearrow 58fe971a3c Clang you are so arrogant 2022-05-01 05:18:30 -05:00
tildearrow 9f19b5dfc4 ok so screw you 2022-05-01 05:10:41 -05:00
tildearrow 3a4f120120 per-channel oscilloscope, part 8
TIA is done
2022-05-01 04:01:25 -05:00
tildearrow 47f83c0472 per-channel oscilloscope, part 7
YM2610 and YM2610B
only TIA is left
2022-05-01 03:47:04 -05:00
tildearrow 415e490025 per-channel oscilloscope, part 6
YM2612 and OPM (ymfm)!
2022-05-01 03:12:32 -05:00
tildearrow c0e9b48b5b per-channel oscilloscope, part 5
SAA1099 (SAASound and MAME), Lynx, MMC5, N163, PC Engine, PC Speaker,
PET, QSound, WonderSwan, VERA, VIC-20, VRC6 and X1-010!
2022-05-01 02:40:03 -05:00
tildearrow e1fd16637c per-channel oscilloscope, part 4
OPM, OPN2, OPLL and SN
plus hide unimplemented channels
2022-04-30 22:59:26 -05:00
tildearrow 1c3dcae05e per-channel oscilloscope, part 3
K00/C64/NES fixed
FDS, Game Boy and Sound Unit
2022-04-30 18:33:12 -05:00
tildearrow c738ece374 per-channel oscilloscope, part 2
AY8930, K00, C64 and NES
2022-04-30 14:36:12 -05:00
tildearrow f2b974acc5 SoundUnit: ring modulation 2022-04-27 22:57:36 -05:00
tildearrow 8db3831ab6 fix MSVC oh my 2022-04-27 05:02:18 -05:00
tildearrow 78bdd98e0b improvements to sysDef and UX changes
- "no undo" in clear option
- only display instrument types depending on current systems
2022-04-27 04:48:56 -05:00
tildearrow e8f29cf122 prepare for macroInt preview in instrument editor 2022-04-26 15:24:45 -05:00
tildearrow 397ab43ffd C64: better muting strategy
now directly inside reSID rather than in the DivDispatch
fixes #285
2022-04-15 01:20:09 -05:00
cam900 e6d74766ca Add support of N163 demultiplexed output
so, there's to way for reduce N163 noises: reduce channel limit and demultiplex
* channel limit is runtime changeable and it makes some usable effects with disable demultiplex
* demultiplex is used for "non-ear destroyable" emulators, but less hardware accurate. (when LPF and RF filter is not considered)
Furnace support both after this, You can choose output behavior via configuration flag.
2022-04-10 20:22:49 +09:00
tildearrow 38ca437190 DC offset improvements 2022-04-09 18:25:25 -05:00
OPNA2608 4c19a973ef Fix for C4805: '|': unsafe mix of type 'unsigned char' and type 'bool' in operation 2022-04-09 10:54:06 +02:00
OPNA2608 82d893082c Fix for C4005: '_CRT_SECURE_NO_WARNINGS': macro redefinition 2022-04-09 10:54:06 +02:00
tildearrow dd6229a6b9 OPZ: more work 2022-04-07 01:44:27 -05:00
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
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 ac3772c024 initial FDS bring-up 2022-04-03 22:37:16 -05:00
tildearrow c26123e782 VIC-20: wait what? 2022-03-29 14:11:57 -05: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 4422ff7695 Merge branch 'vrc6' of https://github.com/cam900/furnace into cam900-vrc6 2022-03-27 22:16:04 -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
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 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
Natt Akuma 6df3d1e0df VERA: Implement PCM playback (again) 2022-03-19 20:59:17 +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
Waldemar Pawlaszek e775703c44 Lynx panning swap 2022-03-12 12:16:01 +01: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 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
cam900 8d447542e1 Use lamda 2022-03-11 02:42:27 +09:00
cam900 66eb40e55e Extract X1-010 core from submodule 2022-03-09 01:00:09 +09:00
tildearrow b21aecf285 WonderSwan: make macOS happy 2022-03-07 23:38:36 -05:00
Natt Akuma b8ea64b801 Rename WS to Swan 2022-03-07 19:04:20 +07:00
Natt Akuma 840a6fa306 Add WonderSwan support 2022-03-07 15:44:59 +07:00
tildearrow aa446d5c43 PCE: don't mute channel 2 when LFO is on
apparently this is hardware behavior
2022-03-03 17:03:44 -05:00
tildearrow 4ff056c64f NES: how is this not initialized?! 2022-03-01 02:38:19 -05:00
tildearrow 79c148849f QSound: fix echo
thanks superctr
2022-02-27 00:46:23 -05:00
Ian Karlsson a92c29bbdb qsound clipping fix from MAME 2022-02-23 23:51:34 +01:00
tildearrow e6ee28ce0d Merge branch 'cps2' of https://github.com/superctr/furnace into superctr-cps2 2022-02-22 18:21:57 -05:00
Waldemar Pawlaszek 2e45b3066a Removing unused variables 2022-02-22 21:34:56 +01:00
Waldemar Pawlaszek d07f28aec5 Compilation error fix 2022-02-22 21:12:10 +01:00
Waldemar Pawlaszek 69fb99bafd Implementing register pool. Slightly reworking emulation core. 2022-02-22 12:52:05 +01:00
Ian Karlsson b3908216f8 Implement QSound support 2022-02-22 11:36:12 +01:00
Waldemar Pawlaszek 37ceb1542f Further build errors correction 2022-02-21 20:43:02 +01:00
Waldemar Pawlaszek bbd8669a1a Missing license 2022-02-21 20:17:16 +01:00
Waldemar Pawlaszek de6cbba472 Fixed gcc errors 2022-02-21 19:59:09 +01:00
Waldemar Pawlaszek 8a8c8406b7
Merge branch 'tildearrow:master' into master 2022-02-21 05:58:25 +01:00
tildearrow 5ffda66f22 NES: better channel muting 2022-02-20 21:54:03 -05:00
Waldemar Pawlaszek 2e4c7ec60a Initial Atari Lynx Support 2022-02-20 18:15:15 +01:00
tildearrow 67ec998196 LFO LFO LFO LFO LFO LFO LFO LFO LFO LFO LFO LFO 2022-02-19 17:35:52 -05:00
tildearrow b9832abbeb license clarification, part 3 2022-02-14 22:12:20 -05:00
tildearrow 569de9d81a add preliminary ymfm OPZ code 2022-02-09 23:19:02 -05:00
tildearrow afe318c402 seemingly fix it 2022-01-31 17:00:52 -05:00
tildearrow 23ff23f7e7 again 2022-01-31 16:40:47 -05:00
tildearrow 9492edcdab prepare to fix AY8930 emulation 2022-01-31 16:33:45 -05:00
tildearrow b6da7871d4 make the flags option actually work 2022-01-29 00:20:27 -05:00
tildearrow 44649e3ce4 update ymfm readme 2022-01-28 22:33:42 -05:00
tildearrow 3b95baa60e Neo Geo: fix an ymfm bug... 2022-01-28 22:28:08 -05:00
tildearrow a895cb9c5e NES: fix issue for real 2022-01-26 16:07:55 -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 d73c0512eb fix Microsoft C compiler build... again 2022-01-17 18:15:47 -05:00
tildearrow f3a61f3222 fix build in old compiler 2022-01-17 17:12:24 -05:00
tildearrow 69be47b419 PCE: no abort 2022-01-17 16:59:34 -05:00
tildearrow d2cef16adf WHAT?! 2022-01-14 20:34:15 -05:00
tildearrow e05db17ce2 it plays notes 2022-01-14 18:19:52 -05:00
tildearrow 307665f531 prepare for SAA1099 2022-01-14 16:29:27 -05:00
tildearrow 3afb0f815d lower the volume of TIA by half 2022-01-14 14:12:49 -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 fea783eaac fix macOS build 2022-01-13 16:12:02 -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 9ff852d1db PCE: reduce CPU usage 2022-01-12 22:14:20 -05:00
tildearrow e961cf79ca NES: add NESAPU struct
to allow multi-chip support
2022-01-08 17:44:17 -05:00
tildearrow 2879b5e4d0 arcade: add ymfm-based core
less CPU usage at the cost of some quality
2021-12-15 01:23:58 -05:00
tildearrow bde8a7f79d warning-free compilation 2021-12-14 12:33:26 -05:00
tildearrow 1bf64c4f4f NES; don't crash 2021-12-11 13:34:29 -05:00
tildearrow 6cc0d58624 get things ready for neo geo 2021-12-09 03:37:31 -05:00
tildearrow 9362cfa481 add clock drift for exact tempo 2021-12-08 02:57:41 -05:00
tildearrow 1ac45e27a2 delete several unneeded files 2021-12-05 17:16:30 -05:00
tildearrow 2f7001681c prepare for C64 platform! 2021-12-04 02:42:22 -05:00
tildearrow 3286c3c0c5 NES system! almost 2021-12-04 01:19:54 -05:00
tildearrow c543553b0f prepare for NES platform 2021-12-03 16:04:07 -05:00
tildearrow f7080bb2c1 add parameter parsing 2021-06-09 03:33:03 -05:00
tildearrow 1379b4c935 PCE: now prepare for volume 2021-06-07 03:42:18 -05:00
tildearrow c0e4e20b3e finally, episode 2
now we really output the wave
2021-06-07 03:05:42 -05:00
tildearrow 9e72d4580f FINALLY SOUND 2021-06-07 02:49:43 -05:00
tildearrow d74fa698af prepare for PC Engine platform
using Mednafen core
2021-06-06 14:02:38 -05:00
tildearrow 2d3580a05c fix windows build for once 2021-05-28 15:25:55 -05:00