From 1af6bdd9526c2bf5e324ff265b9f532da7c22a7a Mon Sep 17 00:00:00 2001 From: Olivier Galibert Date: Mon, 14 May 2018 07:19:07 +0200 Subject: [PATCH] Fix hyperstone drc (nw) --- src/devices/cpu/e132xs/e132xs.cpp | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/devices/cpu/e132xs/e132xs.cpp b/src/devices/cpu/e132xs/e132xs.cpp index 31e9e1fa3c5..a4e14e15af0 100644 --- a/src/devices/cpu/e132xs/e132xs.cpp +++ b/src/devices/cpu/e132xs/e132xs.cpp @@ -1133,16 +1133,18 @@ void hyperstone_device::init(int scale_mask) { auto cache = m_program->cache<2, 0, ENDIANNESS_BIG>(); m_pr16 = [cache](offs_t address) -> u16 { return cache->read_word(address); }; - if (ENDIANNESS_NATIVE != ENDIANNESS_LITTLE) + if (ENDIANNESS_NATIVE != ENDIANNESS_BIG) m_prptr = [cache](offs_t address) -> const void * { const u16 *ptr = static_cast(cache->read_ptr(address & ~3)); - ptr += (~address >> 1) & 3; + if(!(address & 2)) + ptr++; return ptr; }; else m_prptr = [cache](offs_t address) -> const void * { const u16 *ptr = static_cast(cache->read_ptr(address & ~3)); - ptr += (address >> 1) & 3; + if(address & 2) + ptr++; return ptr; }; }