summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--scripts/target/mame/arcade.lua2
-rw-r--r--src/mame/drivers/model2.cpp14
-rw-r--r--src/mame/includes/model2.h3
-rw-r--r--src/mame/machine/m2comm.cpp2
4 files changed, 20 insertions, 1 deletions
diff --git a/scripts/target/mame/arcade.lua b/scripts/target/mame/arcade.lua
index b2d06ebc5b6..4ff951f8eea 100644
--- a/scripts/target/mame/arcade.lua
+++ b/scripts/target/mame/arcade.lua
@@ -3043,6 +3043,8 @@ files {
MAME_DIR .. "src/mame/machine/s32comm.h",
MAME_DIR .. "src/mame/machine/m1comm.cpp",
MAME_DIR .. "src/mame/machine/m1comm.h",
+ MAME_DIR .. "src/mame/machine/m2comm.cpp",
+ MAME_DIR .. "src/mame/machine/m2comm.h",
MAME_DIR .. "src/mame/audio/dsbz80.cpp",
MAME_DIR .. "src/mame/audio/dsbz80.h",
MAME_DIR .. "src/mame/drivers/model2.cpp",
diff --git a/src/mame/drivers/model2.cpp b/src/mame/drivers/model2.cpp
index f25666833f0..0755a89b557 100644
--- a/src/mame/drivers/model2.cpp
+++ b/src/mame/drivers/model2.cpp
@@ -1507,7 +1507,9 @@ static ADDRESS_MAP_START( model2_base_mem, AS_PROGRAM, 32, model2_state )
AM_RANGE(0x01800000, 0x01803fff) AM_READWRITE16(model2_palette_r,model2_palette_w,0xffffffff)
AM_RANGE(0x01810000, 0x0181bfff) AM_RAM AM_SHARE("colorxlat")
AM_RANGE(0x0181c000, 0x0181c003) AM_WRITE(model2_3d_zclip_w)
- AM_RANGE(0x01a10000, 0x01a1ffff) AM_READWRITE(network_r, network_w)
+ AM_RANGE(0x01a10000, 0x01a13fff) AM_DEVREADWRITE8("m2comm", m2comm_device, share_r, share_w, 0xffffffff)
+ AM_RANGE(0x01a14000, 0x01a14003) AM_DEVREADWRITE8("m2comm", m2comm_device, cn_r, cn_w, 0x000000ff)
+ AM_RANGE(0x01a14000, 0x01a14003) AM_DEVREADWRITE8("m2comm", m2comm_device, fg_r, fg_w, 0x00ff0000)
AM_RANGE(0x01d00000, 0x01d03fff) AM_RAM AM_SHARE("backup1") // Backup sram
AM_RANGE(0x02000000, 0x03ffffff) AM_ROM AM_REGION("user1", 0)
@@ -2229,6 +2231,8 @@ TIMER_DEVICE_CALLBACK_MEMBER(model2_state::model2_interrupt)
if(m_intena & 1<<0)
m_maincpu->set_input_line(I960_IRQ0, ASSERT_LINE);
model2_check_irq_state();
+ if (m_m2comm != nullptr)
+ m_m2comm->check_vint_irq();
}
else if(scanline == 0)
{
@@ -2418,6 +2422,8 @@ static MACHINE_CONFIG_START( model2o, model2_state )
MCFG_VIDEO_START_OVERRIDE(model2_state,model2)
MCFG_SEGAM1AUDIO_ADD("m1audio")
+
+ MCFG_M2COMM_ADD("m2comm")
MACHINE_CONFIG_END
/* 2A-CRX */
@@ -2469,6 +2475,8 @@ static MACHINE_CONFIG_START( model2a, model2_state )
MCFG_SCSP_IRQ_CB(WRITE8(model2_state,scsp_irq))
MCFG_SOUND_ROUTE(0, "lspeaker", 2.0)
MCFG_SOUND_ROUTE(0, "rspeaker", 2.0)
+
+ MCFG_M2COMM_ADD("m2comm")
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( manxttdx, model2a ) /* Includes a Model 1 Sound board for additional sounds - Deluxe version only */
@@ -2584,6 +2592,8 @@ static MACHINE_CONFIG_START( model2b, model2_state )
MCFG_SCSP_IRQ_CB(WRITE8(model2_state,scsp_irq))
MCFG_SOUND_ROUTE(0, "lspeaker", 2.0)
MCFG_SOUND_ROUTE(0, "rspeaker", 2.0)
+
+ MCFG_M2COMM_ADD("m2comm")
MACHINE_CONFIG_END
@@ -2647,6 +2657,8 @@ static MACHINE_CONFIG_START( model2c, model2_state )
MCFG_SCSP_IRQ_CB(WRITE8(model2_state, scsp_irq))
MCFG_SOUND_ROUTE(0, "lspeaker", 2.0)
MCFG_SOUND_ROUTE(0, "rspeaker", 2.0)
+
+ MCFG_M2COMM_ADD("m2comm")
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( stcc, model2c )
diff --git a/src/mame/includes/model2.h b/src/mame/includes/model2.h
index 1330c1245e2..f660ef419e1 100644
--- a/src/mame/includes/model2.h
+++ b/src/mame/includes/model2.h
@@ -8,6 +8,7 @@
#include "sound/scsp.h"
#include "machine/315-5881_crypt.h"
#include "machine/315-5838_317-0229_comp.h"
+#include "machine/m2comm.h"
class model2_renderer;
struct raster_state;
@@ -30,6 +31,7 @@ public:
m_maincpu(*this,"maincpu"),
m_dsbz80(*this, DSBZ80_TAG),
m_m1audio(*this, "m1audio"),
+ m_m2comm(*this, "m2comm"),
m_audiocpu(*this, "audiocpu"),
m_tgp(*this, "tgp"),
m_dsp(*this, "dsp"),
@@ -58,6 +60,7 @@ public:
required_device<i960_cpu_device> m_maincpu;
optional_device<dsbz80_device> m_dsbz80; // Z80-based MPEG Digital Sound Board
optional_device<segam1audio_device> m_m1audio; // Model 1 standard sound board
+ optional_device<m2comm_device> m_m2comm; // Model 2 communication board
optional_device<cpu_device> m_audiocpu;
optional_device<cpu_device> m_tgp;
optional_device<cpu_device> m_dsp;
diff --git a/src/mame/machine/m2comm.cpp b/src/mame/machine/m2comm.cpp
index 4c45669076c..a8afc14a773 100644
--- a/src/mame/machine/m2comm.cpp
+++ b/src/mame/machine/m2comm.cpp
@@ -163,6 +163,8 @@ Sega PC BD MODEL2 C-CRX COMMUNICATION 837-12839
18643A.7 Sega Touring Car Championship
*/
+#include "emu.h"
+#include "emuopts.h"
#include "machine/m2comm.h"
//#define __M2COMM_VERBOSE__