furnace/src/engine
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
..
platform Fix Y8950 ADPCM samples. 2022-05-24 00:51:13 +02:00
blip_buf.c earliest playback 2021-05-12 03:58:55 -05:00
blip_buf.h earliest playback 2021-05-12 03:58:55 -05:00
blip_buf.txt earliest playback 2021-05-12 03:58:55 -05:00
config.cpp improve logging facility 2022-04-10 22:12:02 -05:00
dataErrors.h license clarification, part 3 2022-02-14 22:12:20 -05:00
dispatch.h SoundUnit: many fixes. implement effects 2022-05-19 04:36:26 -05:00
dispatchContainer.cpp early OKI MSM6295 work 2022-05-23 01:46:58 -05:00
engine.cpp allow building Furnace without SDL2 and libsndfile 2022-05-22 19:01:50 -05:00
engine.h dev97 - add old octave boundary compat flag 2022-05-22 13:25:59 -05:00
fileOps.cpp dev97 - add old octave boundary compat flag 2022-05-22 13:25:59 -05:00
fileOpsIns.cpp pick nits 2022-05-17 11:42:10 +10:00
filter.cpp improve logging facility 2022-04-10 22:12:02 -05:00
filter.h GUI: sample resampling 2022-03-20 03:14:00 -05:00
instrument.cpp MultiPCM instrument type, editor and file ops. 2022-05-05 21:56:48 +02:00
instrument.h wave synth work 2022-05-21 18:36:15 -05:00
macroInt.cpp improve low-latency mode strategy 2022-04-15 14:38:25 -05:00
macroInt.h improve low-latency mode strategy 2022-04-15 14:38:25 -05:00
orders.h dev80 - increase song limits 2022-04-08 17:21:36 -05:00
pattern.cpp dev95 - multiple songs in a single file (READ) 2022-05-15 01:42:49 -05:00
pattern.h effectRows -> effectCols 2022-04-27 17:53:55 -05:00
playback.cpp fix Cxxx/F0xx being delayed in low-latency mode 2022-05-22 22:36:48 -05:00
safeReader.cpp pick nits 2022-05-17 11:42:10 +10:00
safeReader.h HOTFIX: Better token handling and simplify clear string comparisons 2022-05-09 21:22:20 +10:00
safeWriter.cpp Prepare for macro refactoring 2022-04-10 14:01:55 +09:00
safeWriter.h Prepare for macro refactoring 2022-04-10 14:01:55 +09:00
sample.cpp allow building Furnace without SDL2 and libsndfile 2022-05-22 19:01:50 -05:00
sample.h Merge branch 'master' of https://github.com/tildearrow/furnace into rf5c68 2022-05-21 03:02:08 +07:00
song.cpp dev95 - multiple songs in a single file (READ) 2022-05-15 01:42:49 -05:00
song.h dev97 - add old octave boundary compat flag 2022-05-22 13:25:59 -05:00
sysDef.cpp the Namco C163 trial 2022-05-23 16:01:35 -05:00
vgmOps.cpp Whoops 2022-05-21 03:36:11 +07:00
waveSynth.cpp finish wave synth! 2022-05-22 03:14:46 -05:00
waveSynth.h finish wave synth! 2022-05-22 03:14:46 -05:00
wavetable.cpp improve logging facility 2022-04-10 22:12:02 -05:00
wavetable.h document some of the structures 2022-03-15 22:05:55 -05:00
winStuff.cpp improve logging facility 2022-04-10 22:12:02 -05:00
winStuff.h license clarification, part 3 2022-02-14 22:12:20 -05:00