mirror of
https://github.com/holub/mame
synced 2025-05-23 14:19:01 +03:00
Merge pull request #2184 from PugsyMAME/master
Fixed writes to decrypted opcode memory
This commit is contained in:
commit
b7981f2a59
@ -987,7 +987,6 @@ u64 debugger_cpu::expression_read_memory(void *param, const char *name, expressi
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
case EXPSPACE_OPCODE:
|
|
||||||
case EXPSPACE_RAMWRITE:
|
case EXPSPACE_RAMWRITE:
|
||||||
{
|
{
|
||||||
device_t *device = nullptr;
|
device_t *device = nullptr;
|
||||||
@ -1000,10 +999,29 @@ u64 debugger_cpu::expression_read_memory(void *param, const char *name, expressi
|
|||||||
device = get_visible_cpu();
|
device = get_visible_cpu();
|
||||||
memory = &device->memory();
|
memory = &device->memory();
|
||||||
}
|
}
|
||||||
if (!with_se) {
|
if (!with_se)
|
||||||
auto dis = m_machine.disable_side_effect();
|
auto dis = m_machine.disable_side_effect();
|
||||||
return expression_read_program_direct(memory->space(AS_PROGRAM), (spacenum == EXPSPACE_OPCODE), address, size);
|
return expression_read_program_direct(memory->space(AS_PROGRAM), (spacenum == EXPSPACE_OPCODE), address, size);
|
||||||
} else
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
case EXPSPACE_OPCODE:
|
||||||
|
{
|
||||||
|
device_t *device = nullptr;
|
||||||
|
device_memory_interface *memory;
|
||||||
|
|
||||||
|
if (name != nullptr)
|
||||||
|
device = expression_get_device(name);
|
||||||
|
if (device == nullptr || !device->interface(memory))
|
||||||
|
{
|
||||||
|
device = get_visible_cpu();
|
||||||
|
memory = &device->memory();
|
||||||
|
}
|
||||||
|
if (!with_se)
|
||||||
|
auto dis = m_machine.disable_side_effect();
|
||||||
|
if (memory->has_space(AS_DECRYPTED_OPCODES + (spacenum - EXPSPACE_OPCODE)))
|
||||||
|
return expression_read_program_direct(memory->space(AS_DECRYPTED_OPCODES), (spacenum == EXPSPACE_OPCODE), address, size);
|
||||||
|
else
|
||||||
return expression_read_program_direct(memory->space(AS_PROGRAM), (spacenum == EXPSPACE_OPCODE), address, size);
|
return expression_read_program_direct(memory->space(AS_PROGRAM), (spacenum == EXPSPACE_OPCODE), address, size);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -1179,7 +1197,6 @@ void debugger_cpu::expression_write_memory(void *param, const char *name, expres
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case EXPSPACE_OPCODE:
|
|
||||||
case EXPSPACE_RAMWRITE:
|
case EXPSPACE_RAMWRITE:
|
||||||
if (name != nullptr)
|
if (name != nullptr)
|
||||||
device = expression_get_device(name);
|
device = expression_get_device(name);
|
||||||
@ -1188,10 +1205,24 @@ void debugger_cpu::expression_write_memory(void *param, const char *name, expres
|
|||||||
device = get_visible_cpu();
|
device = get_visible_cpu();
|
||||||
memory = &device->memory();
|
memory = &device->memory();
|
||||||
}
|
}
|
||||||
if (!with_se) {
|
if (!with_se)
|
||||||
auto dis = m_machine.disable_side_effect();
|
auto dis = m_machine.disable_side_effect();
|
||||||
expression_write_program_direct(memory->space(AS_PROGRAM), (spacenum == EXPSPACE_OPCODE), address, size, data);
|
expression_write_program_direct(memory->space(AS_PROGRAM), (spacenum == EXPSPACE_OPCODE), address, size, data);
|
||||||
} else
|
break;
|
||||||
|
|
||||||
|
case EXPSPACE_OPCODE:
|
||||||
|
if (name != nullptr)
|
||||||
|
device = expression_get_device(name);
|
||||||
|
if (device == nullptr || !device->interface(memory))
|
||||||
|
{
|
||||||
|
device = get_visible_cpu();
|
||||||
|
memory = &device->memory();
|
||||||
|
}
|
||||||
|
if (!with_se)
|
||||||
|
auto dis = m_machine.disable_side_effect();
|
||||||
|
if (memory->has_space(AS_DECRYPTED_OPCODES + (spacenum - EXPSPACE_OPCODE)))
|
||||||
|
expression_write_program_direct(memory->space(AS_DECRYPTED_OPCODES), (spacenum == EXPSPACE_OPCODE), address, size, data);
|
||||||
|
else
|
||||||
expression_write_program_direct(memory->space(AS_PROGRAM), (spacenum == EXPSPACE_OPCODE), address, size, data);
|
expression_write_program_direct(memory->space(AS_PROGRAM), (spacenum == EXPSPACE_OPCODE), address, size, data);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user