dolphin/Source
Léo Lam 8310a672b0 DSP: Fix the predscale update logic
When the current address is xxxxxxxf, after doing the standard ADPCM
decoding and incrementing the current address as usual to get the
next address, the DSP will update the predscale register by reading
2 bytes from memory, and add two to get the next address.

This means xxxxxx10 cannot be a current address, as the DSP goes
from 0f to 12 directly.

A more serious issue with the old code is that if the start address
is 16-byte aligned, some samples will always be skipped, even when
that should not be the case.

An easy way to test whether this behaviour is correct is to check
the current address register and the predscale after each read.

Old code:
...
ACCA=00000002, predscale=<value>
ACCA=00000003, predscale=<value>
...
ACCA=0000000f, predscale=<value>
ACCA=00000010, predscale=<another value>
ACCA=00000013, predscale=<another value>
ACCA=00000014, predscale=<another value>
...

New code (and console):
...
ACCA=00000002, predscale=<value>
ACCA=00000003, predscale=<value>
...
ACCA=0000000f, predscale=<value>
ACCA=00000012, predscale=<another value>
ACCA=00000013, predscale=<another value>
...
2017-09-24 20:48:29 +02:00
..
Android Android: Adjust position of floating action button 2017-09-21 15:48:17 +02:00
Core DSP: Fix the predscale update logic 2017-09-24 20:48:29 +02:00
DSPSpy DSPSpy: Add a test for accelerator loop 2017-09-22 20:17:38 +02:00
DSPTool DSPTool: Fix build 2017-09-13 17:38:23 +02:00
PCH msvc: bump the required _MSC_FULL_VER 2017-06-03 18:20:41 -07:00
UnitTests BitUtilsTest: update to pass clang-format 2017-08-13 19:04:56 -07:00
VSProps Only build OpenAL on Windows 2017-06-27 00:06:14 -07:00
.clang-format clang-format: Sort windows.h before other headers 2017-01-23 00:35:09 -08:00
CMakeLists.txt Common: Add a std::optional implementation 2017-06-03 12:36:24 +02:00
dolphin-emu.sln msbuild: put pugixml in Externals solution filter; fix project reference. 2017-06-15 19:06:16 -07:00