Commit graph

1049 commits

Author SHA1 Message Date
cam900
b6387c8547
Fix AY8910 envelope hangs 2022-05-17 11:14:22 +09:00
tildearrow
34d0925569 OPL: fix fixed frequency drums 2022-05-16 21:06:49 -05:00
tildearrow
1675456693 AY: fix possible hang 2022-05-16 13:37:41 -05:00
tildearrow
e3d2faf427 OPLL: fix fixed drums freq 2022-05-16 05:06:26 -05:00
tildearrow
409d3c26af
Merge pull request #463 from grauw/opn-ay-type
Have OPN* platforms set the correct YM2149 chip type.
2022-05-15 17:03:47 -05:00
Laurens Holst
a292bc109d Have OPN* platforms set the correct YM2149 chip type.
They were setting the Sunsoft type, which doubled the frequency division since c5c612c354.
2022-05-15 20:46:38 +02:00
tildearrow
cddee6331e ZX beeper: clarify effects (will be done later) 2022-05-15 12:02:00 -05:00
tildearrow
2fbc39bc90 N163: fix potential linear pitch regression
how in the world
2022-05-15 11:28:59 -05:00
tildearrow
1e6b660d2c OPN: hopefully several ExtCh fixes 2022-05-15 11:05:28 -05:00
tildearrow
c5c612c354
Merge pull request #421 from cam900/ay_divider
Some AY-3-8910, AY8930 enhancements
2022-05-15 02:14:50 -05:00
tildearrow
5babb4fd1e BANK 2022-05-15 02:02:31 -05:00
tildearrow
f63c072517 fix build failure 2022-05-15 01:55:25 -05:00
tildearrow
14053f70cb DO NOT USE - THIS FAILS - WORK IN PROGRESS 2022-05-14 18:19:07 -05:00
cam900
8e50ad8c90
Merge branch 'master' into ay_divider 2022-05-14 22:09:25 +09:00
tildearrow
6f8f8d21f3 preparations for UI improvements
mostly around the system add/change UI
2022-05-14 04:05:29 -05:00
tildearrow
297ab01d4c OPN: per-channel oscilloscope 2022-05-14 01:12:23 -05:00
tildearrow
6288b485fc oops 2022-05-14 01:09:24 -05:00
tildearrow
06e00ab17b OPNA: per-channel oscilloscope 2022-05-14 01:07:32 -05:00
tildearrow
ae5dcd3746 OPNA: proper ADPCM muting 2022-05-14 01:05:05 -05:00
tildearrow
031a0fc133 OPNA: RSS write optimization 2022-05-14 01:02:28 -05:00
tildearrow
c685b60a3c ZX beeper: "register" view 2022-05-14 00:36:45 -05:00
tildearrow
cb63921747 ZX beeper: set a more audible duty 2022-05-14 00:31:14 -05:00
tildearrow
895765b68a and here's your ZX beeper
no real hardware yet
specs of this dispatch may change at any time to fit a driver
2022-05-14 00:22:23 -05:00
tildearrow
0a0ddfa661 partially bring up sample map 2022-05-13 23:04:40 -05:00
tildearrow
07871eacc3 Amiga: linear pitch oopsie 2022-05-13 22:55:17 -05:00
tildearrow
d7ec3b13c5 ADPCM-B: fixes to compatible mode 2022-05-13 22:43:00 -05:00
tildearrow
14e0189993 WonderSwan: fix forceIns() messing with noise 2022-05-13 21:44:34 -05:00
tildearrow
9936c66184 OPL: remove printf 2022-05-13 17:41:13 -05:00
tildearrow
1ffbfe17d4 Y8950/YMU759: ADPCM muting 2022-05-13 17:40:05 -05:00
tildearrow
315018ff24 YMU759: ADPCM 2022-05-13 17:22:00 -05:00
tildearrow
7218710268 add Y8950 system 2022-05-13 16:52:44 -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
4a563a416e prepare for Y8950/YMU759 ADPCM 2022-05-13 14:59:36 -05:00
tildearrow
db2ebc4930 OPNA: improvements 2022-05-13 03:18:14 -05:00
tildearrow
f2db15b2ce add OPNA chip (work in progress) 2022-05-13 02:52:43 -05:00
tildearrow
cdf4c55f0f SCC: fix forceIns (finally)
fixes #447
2022-05-12 02:39:46 -05:00
tildearrow
4e2e542c7a OPN: implement muting and remove panning 2022-05-12 02:25:59 -05:00
tildearrow
c6bfc8178a
Merge pull request #444 from akumanatt/x16
VERA: halve output volume to match other PSGs
2022-05-11 16:08:16 -05:00
tildearrow
ff0319780e OPN: VGM export - good night 2022-05-11 03:41:02 -05:00
tildearrow
ab969c1da0 add OPN chip
pretty much copy-paste from YM2610B code

next up: even more blatant copy-paste in 2608
2022-05-11 03:29:03 -05:00
Natt Akuma
e48faa4114 VERA: halve output volume to match other PSGs
In terms of maximum single-channel output.
X16's mixing is kept by halving YM2151 part.
2022-05-11 15:22:17 +07:00
tildearrow
35ff5430d3 SCC: VGM export, forceIns bug fix and 10xx 2022-05-11 02:20:14 -05:00
tildearrow
0c0a97c21b SCC: address review comments 2022-05-11 01:13:21 -05:00
tildearrow
8eb4fe365b
Merge pull request #443 from akumanatt/scc
Add SCC and SCC+ support
2022-05-11 01:09:08 -05:00
tildearrow
1c6e9c2cca add a full linear pitch mode, part 7
fix full linear pitch on OPL, OPLL, SAA1099 and Sound Unit
2022-05-11 00:26:28 -05:00
tildearrow
ea118db499 X1-010: implement linear pitch (part 6) 2022-05-11 00:18:46 -05:00
tildearrow
90ac64f1d4 VERA: implement full linear pitch (part 5) 2022-05-11 00:11:24 -05:00
tildearrow
f4652e6582 YM2610(B): implement full linear pitch (part 4) 2022-05-11 00:04:36 -05:00
tildearrow
f5dbc37902 YM2612: implement full linear pitch (part 2) 2022-05-10 23:17:40 -05:00
tildearrow
aad5d818f2 YM2612: early full linear pitch experiment
u n t e s t e d
2022-05-10 16:22:40 -05:00
Natt Akuma
00414c6504 Fix GCC errors 2 2022-05-11 00:29:17 +07:00
Natt Akuma
960a8e3616 Fix GCC errors 2022-05-10 17:36:09 +07:00
tildearrow
8784fe5664 dev94 - add a full linear pitch mode, part 1 2022-05-10 03:51:18 -05:00
tildearrow
5e14177e4e YM2610(B): use f-num/block baseFreq calculation
also allow for different octave boundary f-nums depending on chip clock
2022-05-10 02:22:08 -05: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
a9a249fd4c Merge branch 'master' of https://github.com/tildearrow/furnace into ay_divider
* 'master' of https://github.com/tildearrow/furnace: (24 commits)
  GUI: remove insLoadAlwaysReplace setting
  GUI: right click menu for open instrument
  GUI: add a threshold for macro right click
  OPZ: remove debug printf
  GUI: add macro right click menu
  GUI: prepare for macro right click menu
  update gitignore
  add something
  prepare for something
  did i fix macOS build?
  GUI: macro edit improvements
  GUI: now add ability to load VMEM
  Update sysDef.cpp
  GUI: add an option for it
  add preliminary TX81Z SysEx response
  OPL: drum volume
  OPL: implement hard reset
  GUI: add icon size setting
  GUI: macro UI refactor, part 4
  Fix WIN32 define timing in IGFD
  ...
2022-05-10 09:03:03 +09:00
tildearrow
0c24ee2f08 OPZ: remove debug printf 2022-05-08 22:40:14 -05:00
tildearrow
38b4d1d39e OPL: drum volume 2022-05-07 21:58:17 -05:00
tildearrow
6fe58a3965 OPL: implement hard reset
fixes #437
2022-05-07 21:48:29 -05:00
cam900
9df2500195 Merge branch 'master' of https://github.com/tildearrow/furnace into ay_divider
* 'master' of https://github.com/tildearrow/furnace:
  GUI: macro UI refactor, part 2
  Masochism Volatile Compiler
  GUI: is the macro UI back yet
  OPL: fix 4-op muting (I think)
  GUI: macro UI refactor, part 1 - PLEASE READ
  GUI: remove classic macro view
  Fix more MSVC warnings
2022-05-07 23:04:01 +09:00
cam900
0b0a6dbf28 Fix divider again, split tone and envelope clock divider 2022-05-07 23:00:22 +09:00
tildearrow
b2953e00fe OPL: fix 4-op muting (I think)
fixes #435
2022-05-06 23:52:14 -05:00
cam900
76997fd5ba
Merge branch 'master' into ay_divider 2022-05-06 19:17:34 +09:00
tildearrow
509e46417f OPZ: fix fixed frequency effects 2022-05-06 00:09:49 -05: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
9109d2c64f Merge branch 'master' of https://github.com/tildearrow/furnace into ay_divider
* 'master' of https://github.com/tildearrow/furnace:
  dev92 - GUI: customizable channel collapsing!
  GUI: more improvements to instrument loading
  GUI: implement instrument load replace
  NES: fix duty effect not working at all
  GUI: part 2 of previous commit
  GUI: only use edit color when pat view is focused
  GUI: fix more issues
  here's the new OPLL default instrument
  OPL: fix channel muting - PLEASE READ!
  OPLL: fix compatible drum mode
  the final part of extra FM effects
  implement extra FM effects (OPLL and OPL)
  update to-do list
  prepare for possible .ftm import
  implement extra FM effects (OPN, OPM and OPZ)

# Conflicts:
#	src/engine/engine.h
2022-05-05 13:39:58 +09:00
tildearrow
6aefd392ff NES: fix duty effect not working at all 2022-05-04 22:04:18 -05:00
tildearrow
b75336bcb6 OPL: fix channel muting - PLEASE READ!
**SUBMODULES UPDATED** - Nuked-OPL3 is no longer a submodule as I
had to directly modify the core for this
if you mess up while removing Nuked-OPL3 from your repo, delete
everything and clone again

fixes #414
2022-05-04 18:06:32 -05:00
tildearrow
e50df18393 OPLL: fix compatible drum mode 2022-05-04 17:43:06 -05:00
tildearrow
6e7b4d7e7f the final part of extra FM effects 2022-05-04 17:39:22 -05:00
tildearrow
897bf323f2 implement extra FM effects (OPLL and OPL) 2022-05-04 16:56:45 -05:00
tildearrow
467036df2a implement extra FM effects (OPN, OPM and OPZ)
issue #38
2022-05-04 14:09:43 -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
978b0798e5 OPL: fix possible crash 2022-05-03 14:04:38 -05:00
tildearrow
4c9b172b50 YM2610: optimize oscilloscope fetch CPU usage 2022-05-03 02:52:38 -05:00
tildearrow
3d541682e6
Merge pull request #412 from grauw/ay8930-vgm
AY8930: Fix VGM output.
2022-05-03 01:53:41 -05:00
tildearrow
62289d924e FDS: add NSFPlay core 2022-05-02 16:53:55 -05:00
tildearrow
960048cf4b NES: fix Furnace-style DPCM 2022-05-02 16:05:07 -05:00
Laurens Holst
ffa0727bf6 AY8930: Fix VGM output.
It was generating writes to register addresses > 15.
2022-05-02 22:49:55 +02:00
tildearrow
ce40085d3b SoundUnit: fix PCM pitch 2022-05-02 15:07:59 -05:00
tildearrow
a6ef36d42e SoundUnit: PCM support 2022-05-02 14:51:06 -05:00
tildearrow
5a724e4949 NES: DPCM work! 2022-05-02 03:42:40 -05:00
tildearrow
dbe9bf25e7 fix bug caused by new renderSamples approach
when doing switchMaster
2022-05-02 02:54:23 -05:00
tildearrow
a7b8f81da7 NES: prepare for DPCM 2022-05-02 02:12:14 -05:00
tildearrow
b92ce84b34 OPZ: more fixed frequency mode fixes 2022-05-02 02:12:02 -05:00
tildearrow
a0db8ab49a OPZ: possibly fix fixed freq emulation 2022-05-02 01:22:49 -05:00
tildearrow
34f7750c27 OPZ: fix muting 2022-05-02 01:15:42 -05:00
tildearrow
6380876b9a OPL: fix panning 2022-05-02 00:41:58 -05:00
tildearrow
5adc29906a
Merge pull request #410 from grauw/dispatch-render-samples
Move renderSamples() to DivDispatch implementations.
2022-05-02 00:25:58 -05:00
tildearrow
7a67730c29 damn it 2022-05-02 00:23:03 -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
61b4e3745f NES: NSFPlay muting 2022-05-01 23:57:53 -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
Laurens Holst
7f0074511c Move renderSamples() to DivDispatch implementations.
To prevent rendering samples for systems that are not in use.

Additionally, it gives the systems more flexibility to render the samples
according to their specific configuration.
2022-05-01 23:23:38 +02: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
05ae774617 let's hope this works 2022-05-01 04:49:41 -05:00
tildearrow
e1a02f64de attempt to fix CI 2022-05-01 04:30:04 -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
ddcd486c61 YM2612: fix Furnace DAC mode glitching slides 2022-04-30 20:52:48 -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
4197fa44fb GUI: prepare for a per-channel oscilloscope?
currently supported systems:
- Amiga
- AY-3-8910
- Dummy System
- OPLL
- SegaPCM

no trigger supported yet!
2022-04-30 03:58:30 -05:00
tildearrow
2e8634626d new panning effects (80/81/82) 2022-04-29 23:41:14 -05:00
tildearrow
8500fa4c4c NES: add DMC write effect 2022-04-29 00:18:51 -05:00
tildearrow
abd42cbb03 SoundUnit: implement panning 2022-04-29 00:08:56 -05:00
tildearrow
5567746e0b QSound: implement panning macro - PLEASE READ
the panning strategy for QSound has changed!
it's now 08xy where x is left and y is right (muting is not possible though!)
this makes it consistent with other chips, plus QSound's pan range was
32 anyway

in order to toggle the QSound effect use effect 12xx
2022-04-28 23:58:11 -05:00
tildearrow
d211170e86 implement relative pitch macro mode 2022-04-28 01:31:16 -05:00
tildearrow
77b4e57c58 prepare for relative pitch macro 2022-04-28 00:50:09 -05:00
tildearrow
66f5b2117f dev90 - linear pitch macro option 2022-04-28 00:26:21 -05:00
tildearrow
4a9855f090 dev89 - C64: add test/gate macro
and "don't test/gate before new note" setting
2022-04-27 23:54:45 -05:00
tildearrow
f2b974acc5 SoundUnit: ring modulation 2022-04-27 22:57:36 -05:00
tildearrow
180ff2457d NES: fix audio resolution being too low 2022-04-27 20:36:32 -05:00
tildearrow
dce862fdb9 SoundUnit: more stuff 2022-04-27 18:28:46 -05:00
tildearrow
410a509d73 SoundUnit: max cutoff 16383 2022-04-27 18:03:24 -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
24d60507e7 sysDef refactor, part 2
to @cam900 and @grauw: you may now pull this to your branch.
check out the comments in sysDef.cpp though.
2022-04-27 00:56:15 -05:00
tildearrow
e8f29cf122 prepare for macroInt preview in instrument editor 2022-04-26 15:24:45 -05:00
tildearrow
e8c9b645c5 GUI: implement instrument preview in file dialog
SADLY it's just for the built-in file dialog
but i'll think of a solution for the external one
2022-04-25 18:58:17 -05:00
tildearrow
2e52a2855c WonderSwan: fix noise phase reset 2022-04-25 18:07:49 -05:00
tildearrow
3e1c2197eb OPL: fix #369 2022-04-25 18:04:13 -05:00
tildearrow
2a952b1a66 dev87 - C64 changes
issue #335
2022-04-25 17:55:48 -05:00
tildearrow
1b97d3912b YM2612: hopefully the final pitch slide fix 2022-04-25 11:59:02 -05:00
tildearrow
bcade6931a YM2612: allow for DAC rate higher than 32KHz
issue #391
2022-04-25 01:42:26 -05:00
tildearrow
832df58929 YM2612: fix several sample bugs 2022-04-25 01:24:42 -05:00
tildearrow
52e35fdf04 huh? TODO: fix this 2022-04-24 18:17:05 -05:00
tildearrow
bd68ef5cc3 dev86 - SN duty macro phase reset fix 2022-04-24 18:12:18 -05:00
tildearrow
f99ba810fe PC speaker: fix timer issue 2022-04-24 17:48:04 -05:00
tildearrow
23be8d9336 the final piece of f-num/block work 2022-04-24 14:40:07 -05:00
tildearrow
dd9bb8327a and this finally does it
the last thing to do is a compatibility flag
2022-04-23 18:02:43 -05:00
tildearrow
0e3dbdc1b2 this might fix it 2022-04-23 16:52:31 -05:00
tildearrow
f6b34a5bb0 huh? 2022-04-23 04:25:22 -05:00
tildearrow
dd80cb8b55 what the heck 2022-04-22 17:42:42 -05:00
tildearrow
943e013cb4 YM2612: new pitch slide formula
finally nailed it (almost)
2022-04-22 16:46:24 -05:00
tildearrow
8db53faf72 new FM frequency calculation experiments 2022-04-22 04:23:52 -05:00
tildearrow
79fa8f1d02 better default instrument for OPL/OPLL
no longer silence
2022-04-21 02:24:06 -05:00
tildearrow
1a81c6c3e7 VRC6: saw volume 63 2022-04-19 21:55:13 -05:00
tildearrow
b6026e76c5 SMS: fix noise pitch being odd on linear pitch off
issue #379
2022-04-19 18:10:43 -05:00
tildearrow
f550bd82dd possibly fix #373 2022-04-18 16:21:00 -05:00
tildearrow
fc8a130c71 implement panning macro
except for QSound
2022-04-17 14:15:57 -05:00
tildearrow
5e7a4eae16 VERA: finally proper volume 2022-04-17 05:01:54 -05:00
tildearrow
211a4b1821 C64: fix portamento not working... 2022-04-17 01:37:33 -05:00
tildearrow
164d56a21f YM2151: implement panning macro i think 2022-04-16 18:35:35 -05:00
tildearrow
b4ac5c7e6a implement pitch macro 2022-04-16 01:39:40 -05:00
tildearrow
af41e56acc Lynx: set freqChanged to false! 2022-04-16 00:39:03 -05:00
tildearrow
fd3d57b1cb even more improvements to low-latency mode 2022-04-15 15:01:11 -05:00
tildearrow
96715ed88c add experimental low-latency mode
do not use (yet)!
2022-04-15 05:37:23 -05:00
tildearrow
d47a59f5f0 implement pitch macro
TODO: test!
2022-04-15 03:37:16 -05:00
tildearrow
c743a9e96a implement phase reset macro on supported systems 2022-04-15 03:16:14 -05:00
tildearrow
a530934671 fix retrigger issue in sample instruments 2022-04-15 01:26:44 -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
tildearrow
8ce8e87922 VERA: halve PCM volume
this should be good
2022-04-14 02:04:18 -05:00
tildearrow
3707a86f42 VERA: 4x the volume 2022-04-14 01:51:21 -05:00
tildearrow
fbf7f9304e dev83 - yet another E1xy/E2xy fix
and 17xx fix in ExtCh
2022-04-13 00:34:00 -05:00
tildearrow
9bd8aef538 SMS: fix note slides on upper notes
hopefully this doesn't break anything
2022-04-12 21:30:35 -05:00
tildearrow
463090717b Amiga: what the hell? 2022-04-12 01:26:14 -05:00
tildearrow
24209c7853 dev82 - amiga wavetables
closes #16 (yay!)
2022-04-12 01:19:00 -05:00
tildearrow
e77ecfd04b N163: implement wave synth
I hope this does not break any songs
2022-04-12 00:17:34 -05:00
tildearrow
d2a8b028e8
Merge pull request #354 from cam900/n163_demultiplex
Add support of N163 demultiplexed output
2022-04-11 02:38:17 -05:00
tildearrow
39784bc7c2 YMU759 samples at 48KHz 2022-04-11 01:58:41 -05:00
tildearrow
fddd05dc1a improve logging facility
we have a log viewer within the program now
2022-04-10 22:12:02 -05:00
tildearrow
51761bc6df part 3 - C64 mishap 2022-04-10 16:53:43 -05:00
tildearrow
51207e58ad part 2 - finally 2022-04-10 16:52:03 -05:00
cam900
86b523a83e Revert unnecessary changes 2022-04-10 20:24:31 +09: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
cam900
b167034e06 Merge remote-tracking branch 'upstream/master' into macro 2022-04-10 17:29:36 +09:00
tildearrow
e23dcd6e1b implement hard reset on OPM/OPZ/OPNB 2022-04-10 03:04:31 -05:00
cam900
68cf969600 Merge remote-tracking branch 'upstream/master' into macro 2022-04-10 16:34:23 +09:00
tildearrow
f42855f170 add 30xx effect to hard reset envelope
currently only for 2612!
2022-04-10 02:11:36 -05:00
cam900
13bdf2d86d Prepare for FMS2, AMS2 macro for YM2414 2022-04-10 15:16:51 +09:00
cam900
ae4f005d67 Merge remote-tracking branch 'upstream/master' into macro
# Conflicts:
#	src/engine/platform/c64.cpp
#	src/gui/insEdit.cpp
2022-04-10 14:47:10 +09:00
cam900
d3e5efe834 Prepare for macro refactoring 2022-04-10 14:01:55 +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
65f893822a dev79 - wave synth data storage
also wave synth works on swan and X1-010 now
however it's untested on X1 because i wrote it in bed
2022-04-08 04:34:39 -05:00
tildearrow
26dca41b63 FDS: wave synth 2022-04-08 02:59:58 -05:00
tildearrow
3b7e9d2929 BubSys: bring on the wave synth 2022-04-08 02:42:33 -05:00
tildearrow
5bd076d13e initial bring-up of the wave synth
issue #16
2022-04-08 02:11:33 -05:00
tildearrow
0c1e2ddcb0 OPL: fix OPL2 not having waveforms 2022-04-07 20:48:34 -05:00
tildearrow
dd6229a6b9 OPZ: more work 2022-04-07 01:44:27 -05:00
tildearrow
ad09254cf4 dev78 - new compat flag that fixes ExtCh 2022-04-07 01:14:34 -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
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