Commit graph

920 commits

Author SHA1 Message Date
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
8a924da586 Fix narrowing conversion error 2022-03-07 18:55:25 +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
Natt Akuma
25088d6032 Fix playback and VGM export 2022-03-07 15:44:59 +07:00
Natt Akuma
840a6fa306 Add WonderSwan support 2022-03-07 15:44:59 +07:00
Natt Akuma
2453426d03 Turn second chip checks into variables in vgmOps 2022-03-07 15:44:59 +07:00
tildearrow
165a8a4361 PC speaker: register view
one register :p
2022-03-07 01:54:28 -05:00
tildearrow
8f957baa3e dispatch: add function to notify playback stopped
for the PC Speaker real driver
2022-03-07 01:48:48 -05:00
tildearrow
93d160da5e OPLL: but it doesn't have LFOOOOOO 2022-03-07 00:24:50 -05:00
cam900
bc26fbaa3d
Add cmdName for X1-010 commands 2022-03-07 13:34:13 +09:00
cam900
13e586fab2 Merge branch 'master' of https://github.com/tildearrow/furnace into x1_010 2022-03-07 13:05:05 +09:00
cam900
36647ac81d Update submodule 2022-03-07 13:03:39 +09:00
tildearrow
177c409e19 add more notes when working with new systems 2022-03-06 22:36:32 -05:00
cam900
458f8c5881 Fix instrument allocation 2022-03-07 12:21:51 +09:00
tildearrow
72c1116a89 PC speaker: correct frequency in real mode
damn it
2022-03-06 22:11:01 -05:00
cam900
7a2c86e9d7 Merge branch 'master' of https://github.com/tildearrow/furnace into x1_010 2022-03-07 10:28:54 +09:00
tildearrow
2f9d1e8c0f i'll finish this later 2022-03-06 18:10:12 -05:00
tildearrow
1bfca78df1 Amiga: temporarily disable bus limit simulation 2022-03-06 17:42:51 -05:00
tildearrow
e10abe0858 NO 2022-03-06 14:41:00 -05:00
tildearrow
3b8388d90c YM2151/2610/2612/Game Boy: fix panning - UNTESTED 2022-03-06 14:39:20 -05:00
tildearrow
2bfb84cd1e AY: add 1.10 and 2.10 rates 2022-03-06 14:18:18 -05:00
cam900
6c897722db Compile fix Take 3 2022-03-07 04:03:45 +09:00
cam900
8da5921196 step 2 2022-03-07 03:50:15 +09:00
cam900
d0c32a56be Fix panning 2022-03-07 03:06:01 +09:00
cam900
fca4bdc1ee Merge branch 'master' of https://github.com/tildearrow/furnace into x1_010
# Conflicts:
#	.gitmodules
#	CMakeLists.txt
2022-03-07 02:35:14 +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
e0eb0ad3f4 tilde you need to brush up on your header knowledg
e.
2022-03-06 04:52:03 -05:00
tildearrow
86a71cc6a2 PC speaker: use evdev instead of KIOCSOUND
still unsupported
2022-03-06 03:33:56 -05:00
tildearrow
c34b8325c9 more OPL preparation
DOES NOT WORK YET - JUST A PLACEHOLDER
2022-03-05 18:18:08 -05:00
tildearrow
6728edbb71 UNTESTED! DO NOT USE - PC speaker passthrough 2022-03-05 15:00:19 -05:00
tildearrow
6ce2a6743c lynx: fix 3xxx effect not working 2022-03-05 04:59:05 -05:00
tildearrow
9611a4fcc6 OPLL: effect description oops 2022-03-05 04:24:40 -05:00
tildearrow
e07caddc92 fix samples being cut at times 2022-03-05 01:26:59 -05:00
tildearrow
16dfc785d3 PC speaker: improvements 2022-03-05 00:36:50 -05:00
tildearrow
b6717fd314 uninitialized variable 2022-03-04 23:11:34 -05:00
tildearrow
ea290a5015 screw ME 2022-03-04 18:37:04 -05:00
tildearrow
84ba63db24 add PC speaker system
haha
2022-03-04 18:18:43 -05:00
Natt Akuma
d209a45b92 Change sound chip ID to 0xac 2022-03-05 03:11:11 +07:00
Natt Akuma
9abf872ff3 Add VERA support for Commander X16 2022-03-04 18:20:38 +07:00
tildearrow
1407f14ee8 AY8930: duty oopsie
fixes #251
2022-03-04 02:26:47 -05:00
tildearrow
1f0fba4c13 OPLL: getEffectName oopsie 2022-03-04 02:25:41 -05:00
tildearrow
59d813db7c PCE: add noise macro (finally!) 2022-03-04 02:20:13 -05:00
tildearrow
8758277199 OPLL: implement fixed freq mode for drums
issue #249
2022-03-04 01:18:16 -05: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
ee2e1a0cfb OPLL: fix sus
i thought defle had broken sus
2022-03-03 18:23:09 -05:00
tildearrow
3a6f664cf0 OPLL: don't write to out of range registers
fixes OPLLTest(1).zip
2022-03-03 18:19:51 -05:00
tildearrow
e342078f9a OPLL: fix mod/car KSL being swapped 2022-03-03 18:08:21 -05:00
tildearrow
862154b0a9 OPLL: fix drum mode slides 2022-03-03 17:56:09 -05: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
e0af849a4f OPLL: TODO high byte? 2022-03-03 16:21:19 -05:00
tildearrow
64146bed5e OPLL: i think i got it 2022-03-03 04:53:40 -05:00
tildearrow
52c03f1fd6 OPLL: swap top and tom 2022-03-03 04:36:52 -05:00
tildearrow
5816f01c07 Genesis: PSG clean-up
since genesis is now split into YM2612 + SN, the "psg" inside
DivPlatformGenesis becomes useless.
2022-03-02 18:25:17 -05:00
tildearrow
ec796fc89c Merge branch 'master' of github.com:tildearrow/furnace 2022-03-02 15:52:14 -05:00
cam900
87561bf9cf Fix spacing 2022-03-03 03:12:10 +09:00
cam900
d4d1ade513 Add various system, Minor corrections
YM2413 (drums mode)
 Standalone YM2413 with allows drum channel.

Sound Expander for Commodore 64
 OPL FM Sound expander cartridge for Commodore 64, it's placeholder until OPL is implemented.

MSX-MUSIC:
 MSX's sound standard, appeared after MSX-AUDIO. it's basically OPLL FM sound expansion for MSX.

SSI 2001:
 ISA Sound card with SID 6581. SID input clock is driven from ISA clock, so I modified flags value check routine.

Sound Blaster w/Game Blaster Compatible
 Earliest Sound Blaster models has featured with Game Blaster compatiblity, It's has 2 SAA1099s like CMS/Game Blaster. It's removed at later models, but some hardware has just empty socket; you can restore this feature when you mount SAA1099 at empty socket.

Sharp X1:
 Predecessor of X68000. it has built in AY PSG like competitors of the same period, but it has YM2151 FM sound addon in later models. FM sound is embedded in turbo Z, and that is succeeded by X68000.

X68000 hasn't AY, instead OKI MSM6258.
YM2151 in OutRun Board and X Board is 4MHz
2022-03-03 03:10:04 +09:00
freq-mod
2519849228
OPLL systems 2022-03-02 10:14:18 +01:00
tildearrow
0114523c96 OPLL: fix volume setting 2022-03-02 03:35:30 -05:00
tildearrow
d94e0ec3e7 GUI: prepare a better new song thingy 2022-03-02 02:22:51 -05:00
tildearrow
8843315256 OPLL: 99.99%
VGM export
2022-03-02 00:58:49 -05:00
tildearrow
56aa4b28fb tiny drums mode fix 2022-03-01 23:28:05 -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
b90fb02e63 OPLL: 99.9%
all features usable, except for custom patchsets (not sure how am i
gonna implement it)
2022-03-01 23:07:29 -05:00
tildearrow
614c1a4da8 OPLL: 99%
proper drums mode muting!
2022-03-01 22:42:40 -05:00
tildearrow
ceb1cd0181 OPLL: more drum fixes! 2022-03-01 22:10:03 -05:00
tildearrow
fa5e2bc439 TODO: revamp new song system picker 2022-03-01 17:19:52 -05:00
tildearrow
7f3460bfcd i don't get it 2022-03-01 14:20:29 -05:00
tildearrow
7dae9058d7 OPLL: 97%
proper drums mode kinda works
2022-03-01 14:16:40 -05:00
cam900
1631af8f8e Merge branch 'master' of https://github.com/tildearrow/furnace into ym2610b 2022-03-02 01:18:36 +09:00
freq-mod
6dfa208a36
remove "standalone" from YM2612 and YM2151
given the way it's done, it's not needed anymore i guess
2022-03-01 12:07:38 +01:00
tildearrow
236ab5b3fe QSound: initialize memory to 0
for some reason this fixes some glitches?
2022-03-01 02:38:37 -05:00
tildearrow
4ff056c64f NES: how is this not initialized?! 2022-03-01 02:38:19 -05:00
tildearrow
ee5b24dcaf describe FM param structure 2022-03-01 02:38:10 -05:00
tildearrow
2605e8670c OPLL: small order change fix 2022-03-01 01:00:33 -05:00
tildearrow
d9ae033f32 OPLL: 95%
FM macros working

TODO:
- proper drums
2022-03-01 00:56:13 -05:00
tildearrow
105aed5a50 OPLL: 94%
muting works (mostly)

TODO:
- FM macros
- proper drums
2022-03-01 00:00:30 -05:00
tildearrow
e80de1487e i think I got it
but there is a leak
2022-02-28 23:31:49 -05:00
tildearrow
bd9289cfdd store OP macros
todo
2022-02-28 18:16:05 -05:00
tildearrow
da55305c13 prepare for OPL/YMU FM macros 2022-02-28 16:33:01 -05:00
tildearrow
90ad8b5268 OPLL: 91%
GUI improvements
soon I gotta allocate macros for the YMU759 params

TODO:
- FM macros
- drums mode
- muting
2022-02-28 14:13:14 -05:00
cam900
ddf341dfc0 Add support YM2610* ADPCM-B Repeat flag, Add YM2610 ADPCM notes in GUI 2022-03-01 01:11:27 +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
tildearrow
4218440af1 help how does this work 2022-02-28 03:50:45 -05:00
tildearrow
539182e643 OPLL: 90%
effects implemented.
TODO:
- FM macros
- muting
- proper drum mode
- proper VRC7
2022-02-28 03:17:33 -05:00
tildearrow
e5c993eb14 lynx: re-apply panning on forceIns 2022-02-28 02:27:22 -05:00
tildearrow
14749e165e OPLL: VRC7 2022-02-28 02:19:27 -05:00
tildearrow
6dc01159ee OPLL: 88%
TODO:
- effects
- FM macros (ugh)
- muting
- proper drum mode
- proper VRC7
2022-02-28 01:25:10 -05:00
cam900
ac1c65fd62 Add register sheet for YM2610* 2022-02-28 04:45:55 +09:00
cam900
6d36a8fdd2 Merge branch 'master' of https://github.com/tildearrow/furnace into ym2610b 2022-02-28 03:04:28 +09:00
tildearrow
77285a65e6 OPLL: 85%
compatible drums work (kinda)
2022-02-27 02:58:30 -05:00
tildearrow
79c148849f QSound: fix echo
thanks superctr
2022-02-27 00:46:23 -05:00
tildearrow
cf668aa6d4 VGM export: lol 2022-02-27 00:41:27 -05:00
tildearrow
8d2129cadc VGM export: clean up compound systems 2022-02-27 00:39:16 -05:00
cam900
ee013ad7a9 Merge branch 'master' of https://github.com/tildearrow/furnace into ym2610b 2022-02-27 06:41:11 +09:00
cam900
34405de03c Fix build actually 2022-02-27 06:40:13 +09:00
tildearrow
217e43dab3 fix 2022-02-26 05:04:31 -05:00
tildearrow
1a69794efe remove extension when loading ins from file 2022-02-26 04:49:40 -05:00
tildearrow
271b3fb0fe OPLL: 80%
accuracy fixes pending though
then macros and then drum mode
2022-02-26 03:27:37 -05:00
tildearrow
c52258f943 update format to store OPLL preset number 2022-02-25 23:59:08 -05:00
tildearrow
60688d8ddb OPLL: 40% 2022-02-25 17:55:33 -05:00
tildearrow
f403621d6e this is not working well
i mean, seriously... OPLL output isn't 4-bit, right?
i must be doing something really wrong
2022-02-25 13:33:58 -05:00
cam900
d64ddaadee Further fix build 2022-02-26 01:12:37 +09:00
cam900
b1a49dcdc5 Fix actually 2022-02-26 00:50:49 +09:00
cam900
ff743c92fd Fix build 2022-02-26 00:31:17 +09: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
c5b30bab75 soundddddd 2022-02-25 04:46:15 -05:00
tildearrow
37f850c6c4 prepare for OPLL system - DOES NOT WORK 2022-02-25 04:26:01 -05:00
cam900
e96cd77ba7
Remove unnecessary interface 2022-02-25 17:39:33 +09:00
cam900
a132a28fcb
Fix VGM saving 2022-02-25 17:37:43 +09:00
tildearrow
9ea26da44e ADPCM-B fixes 2022-02-25 01:04:07 -05: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
tildearrow
efd78a23c0 GB: another fix 2022-02-24 22:59:01 -05:00
tildearrow
70eb17c33c PCE: fix LFO a bit more 2022-02-24 22:52:32 -05:00
tildearrow
19c4f5559a bring crash fix from 0.5.8 2022-02-24 22:52:20 -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
28254d4b24 SMS: add 1.79MHz option 2022-02-24 18:00:19 -05: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
tildearrow
82c8b97d9c Neo Geo: safety checks 2022-02-24 16:53:38 -05:00
tildearrow
e4ad569f8d Lynx: fix stereo 2022-02-24 16:53:20 -05:00
tildearrow
f7bd06c4eb yay ADPCM-A and QSound work again! 2022-02-24 16:16:02 -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
3542229448 better sample loading in really old .dmf files 2022-02-24 00:05:11 -05:00
tildearrow
92e1553014 yay + prepare for sample system changes 2022-02-23 22:00:20 -05:00
tildearrow
ccfed873e8 system master race 2022-02-23 21:53:07 -05:00
Ian Karlsson
a92c29bbdb qsound clipping fix from MAME 2022-02-23 23:51:34 +01:00
tildearrow
3804e45042
Merge pull request #216 from superctr/220223_smpl
Update center rate and loop information when loading and saving samples
2022-02-23 17:04:09 -05:00
Waldemar Pawlaszek
8d1da90d78
Fixing a bug that resulted with broken pitch range on non MSVC systems. (#215) 2022-02-23 22:48:06 +01:00
Ian Karlsson
6472795b01 Update center rate and loop information when loading and saving samples 2022-02-23 14:32:35 +01:00
tildearrow
29cae1a3f8
Merge pull request #212 from superctr/220223_qsound
qsound: Reduce volume scaling
2022-02-23 04:25:51 -05:00
tildearrow
a29a89224e compound system flattening, part 3
added a new strategy to determine system name
2022-02-23 03:54:06 -05:00
Ian Karlsson
ce3e8c6c6b qsound: Reduce volume scaling 2022-02-23 09:26:22 +01:00
tildearrow
319c559f47 compound system flattening, part 2
.dmf saving implemented. only available for the following setups:
- YM2612 + SMS = Genesis
- YM2612 ext3 + SMS = Genesis ext3
- YM2151 + SegaPCM compat = Arcade
- SMS + OPLL = SMS with FM expansion
2022-02-23 03:19:32 -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
a7ecb4ecdb header license oops 2022-02-23 02:13:43 -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
f2232b6157 more lynx micro-fixes and bump version to dev57
allocated 3 versions for possible emergency fix releases after 0.5.7

0.6 dev starts here!
2022-02-22 17:48:13 -05:00
tildearrow
278536489f lynx micro-fix 2022-02-22 17:40:29 -05:00
Waldemar Pawlaszek
b1120575e4 Proper device resetting 2022-02-22 21:35:17 +01:00
Waldemar Pawlaszek
2e45b3066a Removing unused variables 2022-02-22 21:34:56 +01:00
Ian Karlsson
e32ef2d881 Add 3xxx effect to set echo delay buffer length. Add documentation 2022-02-22 21:16:46 +01:00
Waldemar Pawlaszek
d07f28aec5 Compilation error fix 2022-02-22 21:12:10 +01:00