Skip to content

Commit

Permalink
sega/segaybd.cpp: Switch Sega Y-Board games back to Musashi (MT08783)…
Browse files Browse the repository at this point in the history
…. [R. Belmont]

cpu/m68000: added option to use Musashi for M68000 emulation. [R. Belmont]
  • Loading branch information
rb6502 committed May 12, 2024
1 parent df62ba1 commit f9ef858
Show file tree
Hide file tree
Showing 5 changed files with 61 additions and 7 deletions.
2 changes: 2 additions & 0 deletions scripts/src/cpu.lua
Expand Up @@ -2042,6 +2042,8 @@ if CPUS["M680X0"] then
MAME_DIR .. "src/devices/cpu/m68000/m68008-sip8.cpp",
MAME_DIR .. "src/devices/cpu/m68000/m68008.h",
MAME_DIR .. "src/devices/cpu/m68000/m68008.cpp",
MAME_DIR .. "src/devices/cpu/m68000/m68000musashi.h",
MAME_DIR .. "src/devices/cpu/m68000/m68000musashi.cpp",
MAME_DIR .. "src/devices/cpu/m68000/m68010.h",
MAME_DIR .. "src/devices/cpu/m68000/m68010.cpp",
MAME_DIR .. "src/devices/cpu/m68000/m68020.h",
Expand Down
25 changes: 25 additions & 0 deletions src/devices/cpu/m68000/m68000musashi.cpp
@@ -0,0 +1,25 @@
// license:BSD-3-Clause
// copyright-holders:Karl Stenerud

#include "emu.h"
#include "m68000musashi.h"
#include "m68kdasm.h"

DEFINE_DEVICE_TYPE(M68000MUSASHI, m68000msh_device, "m68000msh", "Motorola MC68000 (Musashi)")

std::unique_ptr<util::disasm_interface> m68000msh_device::create_disassembler()
{
return std::make_unique<m68k_disassembler>(m68k_disassembler::TYPE_68010);
}


m68000msh_device::m68000msh_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock)
: m68000_musashi_device(mconfig, tag, owner, clock, M68000MUSASHI, 16, 24)
{
}

void m68000msh_device::device_start()
{
m68000_musashi_device::device_start();
init_cpu_m68000();
}
27 changes: 27 additions & 0 deletions src/devices/cpu/m68000/m68000musashi.h
@@ -0,0 +1,27 @@
// license:BSD-3-Clause
// copyright-holders:Karl Stenerud
#ifndef MAME_CPU_M68000_M68000MUSASHI_H
#define MAME_CPU_M68000_M68000MUSASHI_H

#pragma once

#include "m68kmusashi.h"

class m68000msh_device : public m68000_musashi_device
{
public:
// construction/destruction
m68000msh_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock);

virtual std::unique_ptr<util::disasm_interface> create_disassembler() override;

virtual u32 execute_min_cycles() const noexcept override { return 4; }
virtual u32 execute_max_cycles() const noexcept override { return 158; }

// device-level overrides
virtual void device_start() override;
};

DECLARE_DEVICE_TYPE(M68000MUSASHI, m68000msh_device)

#endif
6 changes: 3 additions & 3 deletions src/mame/sega/segaybd.cpp
Expand Up @@ -1428,13 +1428,13 @@ INPUT_PORTS_END
void segaybd_state::yboard(machine_config &config)
{
// basic machine hardware
M68000(config, m_maincpu, MASTER_CLOCK/4);
M68000MUSASHI(config, m_maincpu, MASTER_CLOCK/4);
m_maincpu->set_addrmap(AS_PROGRAM, &segaybd_state::main_map);

M68000(config, m_subx, MASTER_CLOCK/4);
M68000MUSASHI(config, m_subx, MASTER_CLOCK/4);
m_subx->set_addrmap(AS_PROGRAM, &segaybd_state::subx_map);

M68000(config, m_suby, MASTER_CLOCK/4);
M68000MUSASHI(config, m_suby, MASTER_CLOCK/4);
m_suby->set_addrmap(AS_PROGRAM, &segaybd_state::suby_map);

Z80(config, m_soundcpu, SOUND_CLOCK/8);
Expand Down
8 changes: 4 additions & 4 deletions src/mame/sega/segaybd.h
Expand Up @@ -10,7 +10,7 @@

#pragma once

#include "cpu/m68000/m68000.h"
#include "cpu/m68000/m68000musashi.h"
#include "cpu/z80/z80.h"
#include "machine/mb3773.h"
#include "segaic16.h"
Expand Down Expand Up @@ -123,9 +123,9 @@ class segaybd_state : public sega_16bit_common_base
void update_irqs();

// devices
required_device<m68000_device> m_maincpu;
required_device<m68000_device> m_subx;
required_device<m68000_device> m_suby;
required_device<m68000msh_device> m_maincpu;
required_device<m68000msh_device> m_subx;
required_device<m68000msh_device> m_suby;
required_device<z80_device> m_soundcpu;
optional_device<z80_device> m_linkcpu;
required_device<mb3773_device> m_watchdog;
Expand Down

2 comments on commit f9ef858

@angelosa
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I smell like this requiring a fair deprecation warning when m68000msh_device is used (and assuming has a sense from GCC output, last time I bothered it didn't?).

@MASHinfo
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Will this be reversed?
pdrift: demote to NOT_WORKING due to regression after m68k rewrite:
c75573f

Please sign in to comment.