summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/sound
diff options
context:
space:
mode:
author arbee <rb6502@users.noreply.github.com>2022-10-11 22:08:16 -0400
committer arbee <rb6502@users.noreply.github.com>2022-10-11 22:08:16 -0400
commit2b161343f85d657f58c1af79c659b99f723f7e32 (patch)
treeb91f5fc946f4b81a40525d0520d01f445b785c53 /src/devices/sound
parent8f2beee479e7f469699f54b4ced3ad5826f67e72 (diff)
multipcm: change which bit selects 12-bit samples, fixes MU-5 bad instruments. [Laurens Holst, R. Belmont]
Diffstat (limited to 'src/devices/sound')
-rw-r--r--src/devices/sound/multipcm.cpp7
1 files changed, 4 insertions, 3 deletions
diff --git a/src/devices/sound/multipcm.cpp b/src/devices/sound/multipcm.cpp
index ce1dafe95c3..e12edb1fb8f 100644
--- a/src/devices/sound/multipcm.cpp
+++ b/src/devices/sound/multipcm.cpp
@@ -22,8 +22,9 @@
* This sample format might be derived from the one used by the older YM7138 'GEW6' chip.
*
* The first 3 bytes are the offset into the file (big endian). (0, 1, 2).
- * Bit 23 is the sample format flag: 0 for 8-bit linear, 1 for 12-bit linear.
- * Bits 21 and 22 are used by the MU5 on some samples for as-yet unknown purposes.
+ * Bit 23 is unknown.
+ * Bit 22 is the sample format flag: 0 for 8-bit linear, 1 for 12-bit linear.
+ * Bit 21 is used by the MU5 on some samples for as-yet unknown purposes.
* The next 2 are the loop start point, in samples (big endian) (3, 4)
* The next 2 are the 2's complement negation of of the total number of samples (big endian) (5, 6)
* The next byte is LFO freq + depth (copied to reg 6 ?) (7, 8)
@@ -698,7 +699,7 @@ void multipcm_device::sound_stream_update(sound_stream &stream, std::vector<read
int32_t csample = 0;
int32_t fpart = slot.m_offset & ((1 << TL_SHIFT) - 1);
- if (slot.m_format & 8) // 12-bit linear
+ if (slot.m_format & 4) // 12-bit linear
{
offs_t adr = slot.m_base + (spos >> 2) * 6;
switch (spos & 3)