mirror of
https://github.com/holub/mame
synced 2025-06-29 07:34:45 +03:00
more reduction (nw)
This commit is contained in:
parent
932275e480
commit
bedd3cb83b
@ -184,6 +184,12 @@ UINT8 raiden2cop_device::cop_read_byte(address_space &space, int address)
|
|||||||
else return space.read_byte(address);
|
else return space.read_byte(address);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void raiden2cop_device::cop_write_word(address_space &space, int address, UINT16 data)
|
||||||
|
{
|
||||||
|
if (m_cpu_is_68k) space.write_word(address ^ 2, data);
|
||||||
|
else space.write_word(address, data);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/*** Command Table uploads ***/
|
/*** Command Table uploads ***/
|
||||||
|
|
||||||
@ -768,20 +774,7 @@ void raiden2cop_device::execute_0205(address_space &space, int offset, UINT16 da
|
|||||||
int npos = ppos + space.read_dword(cop_regs[0] + 0x10 + offset * 4);
|
int npos = ppos + space.read_dword(cop_regs[0] + 0x10 + offset * 4);
|
||||||
int delta = (npos >> 16) - (ppos >> 16);
|
int delta = (npos >> 16) - (ppos >> 16);
|
||||||
space.write_dword(cop_regs[0] + 4 + offset * 4, npos);
|
space.write_dword(cop_regs[0] + 4 + offset * 4, npos);
|
||||||
space.write_word(cop_regs[0] + 0x1e + offset * 4, space.read_word(cop_regs[0] + 0x1e + offset * 4) + delta);
|
cop_write_word(space,cop_regs[0] + 0x1e + offset * 4, cop_read_word(space, cop_regs[0] + 0x1e + offset * 4) + delta);
|
||||||
}
|
|
||||||
|
|
||||||
void raiden2cop_device::LEGACY_execute_0205(address_space &space, int offset, UINT16 data)
|
|
||||||
{
|
|
||||||
UINT8 offs;
|
|
||||||
|
|
||||||
offs = (offset & 3) * 4;
|
|
||||||
int ppos = space.read_dword(cop_regs[0] + 4 + offs);
|
|
||||||
int npos = ppos + space.read_dword(cop_regs[0] + 0x10 + offs);
|
|
||||||
int delta = (npos >> 16) - (ppos >> 16);
|
|
||||||
|
|
||||||
space.write_dword(cop_regs[0] + 4 + offs, npos);
|
|
||||||
space.write_word(cop_regs[0] + 0x1c + offs, space.read_word(cop_regs[0] + 0x1c + offs) + delta);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -1989,7 +1982,7 @@ WRITE16_MEMBER(raiden2cop_device::LEGACY_cop_cmd_w)
|
|||||||
if (check_command_matches(command, 0x188, 0x282, 0x082, 0xb8e, 0x98e, 0x000, 0x000, 0x000, 6, 0xffeb))
|
if (check_command_matches(command, 0x188, 0x282, 0x082, 0xb8e, 0x98e, 0x000, 0x000, 0x000, 6, 0xffeb))
|
||||||
{
|
{
|
||||||
executed = 1;
|
executed = 1;
|
||||||
LEGACY_execute_0205(space, offset, data);
|
execute_0205(space, offset, data);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -177,7 +177,6 @@ public:
|
|||||||
void LEGACY_execute_b100(address_space &space, int offset, UINT16 data);
|
void LEGACY_execute_b100(address_space &space, int offset, UINT16 data);
|
||||||
void LEGACY_execute_a900(address_space &space, int offset, UINT16 data);
|
void LEGACY_execute_a900(address_space &space, int offset, UINT16 data);
|
||||||
void LEGACY_execute_b900(address_space &space, int offset, UINT16 data);
|
void LEGACY_execute_b900(address_space &space, int offset, UINT16 data);
|
||||||
void LEGACY_execute_0205(address_space &space, int offset, UINT16 data);
|
|
||||||
void LEGACY_execute_42c2(address_space &space, int offset, UINT16 data);
|
void LEGACY_execute_42c2(address_space &space, int offset, UINT16 data);
|
||||||
void LEGACY_execute_e30e(address_space &space, int offset, UINT16 data);
|
void LEGACY_execute_e30e(address_space &space, int offset, UINT16 data);
|
||||||
void LEGACY_execute_6200(address_space &space, int offset, UINT16 data);
|
void LEGACY_execute_6200(address_space &space, int offset, UINT16 data);
|
||||||
@ -259,6 +258,7 @@ public:
|
|||||||
static void set_cpu_is_68k(device_t &device, int value) { downcast<raiden2cop_device &>(device).m_cpu_is_68k = value; }
|
static void set_cpu_is_68k(device_t &device, int value) { downcast<raiden2cop_device &>(device).m_cpu_is_68k = value; }
|
||||||
UINT16 cop_read_word(address_space &space, int address);
|
UINT16 cop_read_word(address_space &space, int address);
|
||||||
UINT8 cop_read_byte(address_space &space, int address);
|
UINT8 cop_read_byte(address_space &space, int address);
|
||||||
|
void cop_write_word(address_space &space, int address, UINT16 data);
|
||||||
|
|
||||||
// DEBUG
|
// DEBUG
|
||||||
void dump_table();
|
void dump_table();
|
||||||
|
Loading…
Reference in New Issue
Block a user