Commit graph

66 commits

Author SHA1 Message Date
Laurens Holst fc7b94876d Fix Y8950 ADPCM samples.
Reverting back to before 70ead337f3, and setting register 8 to 256Kbit RAM mode.
This is what MSX has natively, and allows for the most compact sample storage with
only 4 byte alignment.

Additionally, setting register 8 before writing the start / stop addresses.

Back story:

VGMPlay MSX only supports Y8950 256K DRAM mode and ROM mode (for the latter
it makes sure address writes are shifted). 64K DRAM mode is not supported because
it’s not used by anything and the addresses are specified weirdly with some middle
bits having to be masked out.

The original code in Furnace before the change 70ead337f3 was almost correct except
it needed to set register 8 to 0 to select the 256K DRAM mode. It was set to ROM mode
so the address shift did not match up.

After 70ead337f3 (address shift change) it was also more or less correct except in
“furnacePCM” direct-sample mode the shift was not updated accordingly.

In 1a446c1cdd it selected 64K RAM mode, but for this the addresses need to be specified
differently (see Y8950 manual page 18), and it’s not really the best choice anyway.
2022-05-24 00:51:13 +02:00
tildearrow 133b213998 OPL: new forceIns strategy 2022-05-23 00:18:50 -05:00
tildearrow 519bf244b9 OPL: fix kick volume in drums mode 2022-05-23 00:07:32 -05:00
tildearrow 1a446c1cdd Y8950: let's see 2022-05-22 23:54:33 -05:00
tildearrow 82eaa45f5d increase range of relative pitch macro
-32768 to 32767 should be enough
2022-05-22 22:47:40 -05:00
tildearrow b40c95013a fix phase reset in FM chips after note off 2022-05-22 04:30:56 -05:00
tildearrow 70ead337f3 Y8950: fix ADPCM VGM export 2022-05-21 03:34:39 -05:00
tildearrow 58dc628a40 OPL: damn it 2022-05-19 23:06:11 -05:00
tildearrow 2c51234213 Y8950: ADPCM is quieter 2022-05-19 18:13:11 -05:00
tildearrow 34d0925569 OPL: fix fixed frequency drums 2022-05-16 21:06:49 -05:00
tildearrow 0a0ddfa661 partially bring up sample map 2022-05-13 23:04:40 -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
tildearrow 4a563a416e prepare for Y8950/YMU759 ADPCM 2022-05-13 14:59:36 -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 8784fe5664 dev94 - add a full linear pitch mode, part 1 2022-05-10 03:51:18 -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
tildearrow b2953e00fe OPL: fix 4-op muting (I think)
fixes #435
2022-05-06 23:52:14 -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 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 978b0798e5 OPL: fix possible crash 2022-05-03 14:04:38 -05:00
tildearrow 6380876b9a OPL: fix panning 2022-05-02 00:41:58 -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 2e8634626d new panning effects (80/81/82) 2022-04-29 23:41:14 -05:00
tildearrow d211170e86 implement relative pitch macro mode 2022-04-28 01:31:16 -05:00
tildearrow 66f5b2117f dev90 - linear pitch macro option 2022-04-28 00:26:21 -05:00
tildearrow 3e1c2197eb OPL: fix #369 2022-04-25 18:04:13 -05:00
tildearrow 79fa8f1d02 better default instrument for OPL/OPLL
no longer silence
2022-04-21 02:24:06 -05:00
tildearrow fc8a130c71 implement panning macro
except for QSound
2022-04-17 14:15:57 -05:00
tildearrow b4ac5c7e6a implement pitch macro 2022-04-16 01:39:40 -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 39784bc7c2 YMU759 samples at 48KHz 2022-04-11 01:58:41 -05: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
OPNA2608 4c19a973ef Fix for C4805: '|': unsafe mix of type 'unsigned char' and type 'bool' in operation 2022-04-09 10:54:06 +02:00
tildearrow 0c1e2ddcb0 OPL: fix OPL2 not having waveforms 2022-04-07 20:48:34 -05:00
tildearrow bfadb3b5cf OPL: oopsie. 20xx effect doesn't exist 2022-03-22 01:06:26 -05: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
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