diff options
author | 2022-06-29 23:54:58 -0400 | |
---|---|---|
committer | 2022-06-29 23:54:58 -0400 | |
commit | 7e123ca663943617d3d3169582964b8fee3d39ec (patch) | |
tree | 95896700dab2f27e9905bd78f3f2f1bd8ecbccb4 | |
parent | 1e4da89a5a6363fbe66d1d106b5a56788d9ffd8c (diff) |
megatrix: Switch to correct CPU type
* sparc: Fix debugger crash
-rw-r--r-- | src/devices/cpu/sparc/sparc.cpp | 9 | ||||
-rw-r--r-- | src/mame/skeleton/ct909e_segadvd.cpp | 17 |
2 files changed, 15 insertions, 11 deletions
diff --git a/src/devices/cpu/sparc/sparc.cpp b/src/devices/cpu/sparc/sparc.cpp index 137f953433f..2c4ef019be1 100644 --- a/src/devices/cpu/sparc/sparc.cpp +++ b/src/devices/cpu/sparc/sparc.cpp @@ -1178,21 +1178,24 @@ void sparc_base_device::state_string_export(const device_state_entry &entry, std std::unique_ptr<util::disasm_interface> sparc_base_device::create_disassembler() { auto dasm = std::make_unique<sparc_disassembler>(static_cast<sparc_disassembler::config const *>(this), sparc_disassembler::v7); - m_asi_desc_adder(dasm.get()); + if (m_asi_desc_adder) + m_asi_desc_adder(dasm.get()); return std::move(dasm); } std::unique_ptr<util::disasm_interface> sparcv8_device::create_disassembler() { auto dasm = std::make_unique<sparc_disassembler>(static_cast<sparc_disassembler::config const *>(this), sparc_disassembler::v8); - m_asi_desc_adder(dasm.get()); + if (m_asi_desc_adder) + m_asi_desc_adder(dasm.get()); return std::move(dasm); } std::unique_ptr<util::disasm_interface> mb86930_device::create_disassembler() { auto dasm = std::make_unique<sparc_disassembler>(static_cast<sparc_disassembler::config const *>(this), sparc_disassembler::sparclite); - m_asi_desc_adder(dasm.get()); + if (m_asi_desc_adder) + m_asi_desc_adder(dasm.get()); return std::move(dasm); } diff --git a/src/mame/skeleton/ct909e_segadvd.cpp b/src/mame/skeleton/ct909e_segadvd.cpp index 3e477022075..6ae67c1d3a1 100644 --- a/src/mame/skeleton/ct909e_segadvd.cpp +++ b/src/mame/skeleton/ct909e_segadvd.cpp @@ -8,15 +8,15 @@ has AT Games strings in ROM sold in Spain as MeGaTrix - uses a Cheertek CT909E-LF System on a Chip ** unknown CPU core ** + uses a Cheertek CT909E-LF System on a Chip + CPU core is likely LEON, a VHDL implementation of SPARC v8 *****************************************************************************/ #include "emu.h" -#include "cpu/arm7/arm7.h" -#include "cpu/arm7/arm7core.h" +#include "cpu/sparc/sparc.h" #include "screen.h" #include "speaker.h" @@ -36,7 +36,7 @@ protected: virtual void machine_start() override; virtual void machine_reset() override; - void arm_map(address_map &map); + void mem_map(address_map &map); required_device<cpu_device> m_maincpu; required_device<screen_device> m_screen; @@ -47,9 +47,9 @@ private: }; -void ct909e_megatrix_state::arm_map(address_map &map) +void ct909e_megatrix_state::mem_map(address_map &map) { - map(0x00000000, 0x003fffff).rom(); + map(0x00000000, 0x003fffff).rom().region("maincpu", 0); } uint32_t ct909e_megatrix_state::screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) @@ -70,8 +70,9 @@ INPUT_PORTS_END void ct909e_megatrix_state::megatrix(machine_config &config) { - ARM9(config, m_maincpu, 100'000'000); // unknown core / frequency, maybe not ARM - m_maincpu->set_addrmap(AS_PROGRAM, &ct909e_megatrix_state::arm_map); + SPARCV8(config, m_maincpu, 100'000'000); // unknown frequency + m_maincpu->set_addrmap(0, &ct909e_megatrix_state::mem_map); + m_maincpu->set_addrmap(0x19, &ct909e_megatrix_state::mem_map); SCREEN(config, m_screen, SCREEN_TYPE_RASTER); m_screen->set_refresh_hz(60); |