From 828f624a4cc57eb0bcde623ecfc90ca33c54ccaf Mon Sep 17 00:00:00 2001 From: David Haywood Date: Wed, 17 Aug 2016 11:22:20 +0100 Subject: [PATCH] fix read case in kaneko_calc3.cpp and make kaneko_toybox.cpp safe as well --- src/mame/machine/kaneko_calc3.cpp | 4 ++-- src/mame/machine/kaneko_toybox.cpp | 17 +++++++++++------ 2 files changed, 13 insertions(+), 8 deletions(-) diff --git a/src/mame/machine/kaneko_calc3.cpp b/src/mame/machine/kaneko_calc3.cpp index a05ffaae412..48969f7d3ef 100644 --- a/src/mame/machine/kaneko_calc3.cpp +++ b/src/mame/machine/kaneko_calc3.cpp @@ -1674,9 +1674,9 @@ void kaneko_calc3_device::mcu_run() { eeprom_serial_93cxx_device *eeprom = space.machine().device(":eeprom"); - for (i=0;i<0x80;i++) + for (i=0;i<0x40;i++) { - space.write_byte(m_eeprom_addr+0x200000+i, eeprom->internal_read(i)); + space.write_word(m_eeprom_addr+0x200000+2*i, eeprom->internal_read(i)); } } diff --git a/src/mame/machine/kaneko_toybox.cpp b/src/mame/machine/kaneko_toybox.cpp index 0815db16863..ea0b67baab0 100644 --- a/src/mame/machine/kaneko_toybox.cpp +++ b/src/mame/machine/kaneko_toybox.cpp @@ -180,9 +180,11 @@ void kaneko_toybox_device::mcu_run() eeprom_serial_93cxx_device *eeprom = machine().device(":eeprom"); - for (int i=0;i<0x80;i++) + for (int i=0;i<0x80;i+=2) { - nvdat[i] = eeprom->internal_read(i); + UINT16 dat = eeprom->internal_read(i/2); + nvdat[i] = (dat & 0xff00) >> 8; + nvdat[i+1] = (dat & 0x00ff); } logerror("%s : MCU executed command: %04X %04X (load NVRAM settings)\n", machine().describe_context(), mcu_command, mcu_offset*2); @@ -194,9 +196,10 @@ void kaneko_toybox_device::mcu_run() { eeprom_serial_93cxx_device *eeprom = machine().device(":eeprom"); UINT8* nvdat = (UINT8*)&m_mcuram[mcu_offset]; - for (int i=0;i<0x80;i++) + for (int i=0;i<0x80;i+=2) { - eeprom->internal_write(i, nvdat[i]); + UINT16 dat = (nvdat[i] << 8) | (nvdat[i+1]); + eeprom->internal_write(i/2, dat); } logerror("%s : MCU executed command: %04X %04X (save NVRAM settings)\n", machine().describe_context(), mcu_command, mcu_offset*2); @@ -212,10 +215,12 @@ void kaneko_toybox_device::mcu_run() eeprom_serial_93cxx_device *eeprom = machine().device(":eeprom"); UINT8* nvdat = (UINT8*)&bonkadv_mcu_43[0]; - for (int i=0;i<0x80;i++) + for (int i=0;i<0x80;i+=2) { - eeprom->internal_write(i, nvdat[i]); + UINT16 dat = (nvdat[i] << 8) | (nvdat[i+1]); + eeprom->internal_write(i/2, dat); } + logerror("%s : MCU executed command: %04X %04X (restore default NVRAM settings)\n", machine().describe_context(), mcu_command, mcu_offset*2); } }