diff options
author | 2022-11-01 15:03:04 -0400 | |
---|---|---|
committer | 2022-11-01 15:06:47 -0400 | |
commit | 4df2f9d2f904073cd31d4d5db65cdb0d23270aac (patch) | |
tree | b5daa04126fe177061506e467cd312873509b748 /src/devices/sound/es5506.cpp | |
parent | 7d9ccfa4261a4a836890b9aac9fa81109fd68598 (diff) |
coretmpl.h: Add utility function for sign-extending values of arbitrary width
* cpu/ccpu: Simplify code for right-shifting 12-bit values arithmetically
* konami/3dom2_te.cpp: Fix probable copy-and-paste error
Diffstat (limited to 'src/devices/sound/es5506.cpp')
-rw-r--r-- | src/devices/sound/es5506.cpp | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/src/devices/sound/es5506.cpp b/src/devices/sound/es5506.cpp index 3ea90a97261..479fbbad48b 100644 --- a/src/devices/sound/es5506.cpp +++ b/src/devices/sound/es5506.cpp @@ -1208,32 +1208,32 @@ inline void es5506_device::reg_write_high(es550x_voice *voice, offs_t offset, u3 break; case 0x20/8: /* O4(n-1) */ - voice->o4n1 = (s32)(data << 14) >> 14; + voice->o4n1 = util::sext(data, 18); LOG("voice %d, O4(n-1)=%05x\n", m_current_page & 0x1f, voice->o4n1 & 0x3ffff); break; case 0x28/8: /* O3(n-1) */ - voice->o3n1 = (s32)(data << 14) >> 14; + voice->o3n1 = util::sext(data, 18); LOG("voice %d, O3(n-1)=%05x\n", m_current_page & 0x1f, voice->o3n1 & 0x3ffff); break; case 0x30/8: /* O3(n-2) */ - voice->o3n2 = (s32)(data << 14) >> 14; + voice->o3n2 = util::sext(data, 18); LOG("voice %d, O3(n-2)=%05x\n", m_current_page & 0x1f, voice->o3n2 & 0x3ffff); break; case 0x38/8: /* O2(n-1) */ - voice->o2n1 = (s32)(data << 14) >> 14; + voice->o2n1 = util::sext(data, 18); LOG("voice %d, O2(n-1)=%05x\n", m_current_page & 0x1f, voice->o2n1 & 0x3ffff); break; case 0x40/8: /* O2(n-2) */ - voice->o2n2 = (s32)(data << 14) >> 14; + voice->o2n2 = util::sext(data, 18); LOG("voice %d, O2(n-2)=%05x\n", m_current_page & 0x1f, voice->o2n2 & 0x3ffff); break; case 0x48/8: /* O1(n-1) */ - voice->o1n1 = (s32)(data << 14) >> 14; + voice->o1n1 = util::sext(data, 18); LOG("voice %d, O1(n-1)=%05x\n", m_current_page & 0x1f, voice->o1n1 & 0x3ffff); break; |