mirror of
https://github.com/holub/mame
synced 2025-07-02 00:29:37 +03:00
stage1 namcoc65 / c68 devicification (#3974)
* stage1 namcoc65 / c68 devicification * progress (c68 button mappings currently incorrect) * silly (nw)
This commit is contained in:
parent
bb0e5c9b7c
commit
3120dba77d
@ -2832,6 +2832,10 @@ files {
|
||||
MAME_DIR .. "src/mame/machine/namco53.h",
|
||||
MAME_DIR .. "src/mame/machine/namco62.cpp",
|
||||
MAME_DIR .. "src/mame/machine/namco62.h",
|
||||
MAME_DIR .. "src/mame/machine/namco65.cpp",
|
||||
MAME_DIR .. "src/mame/machine/namco65.h",
|
||||
MAME_DIR .. "src/mame/machine/namco68.cpp",
|
||||
MAME_DIR .. "src/mame/machine/namco68.h",
|
||||
MAME_DIR .. "src/mame/machine/namcomcu.cpp",
|
||||
MAME_DIR .. "src/mame/machine/namcomcu.h",
|
||||
MAME_DIR .. "src/mame/machine/namcoio_gearbox.cpp",
|
||||
|
@ -575,12 +575,6 @@ WRITE8_MEMBER(namcos2_state::dpram_byte_w)
|
||||
m_dpram[offset] = data;
|
||||
}
|
||||
|
||||
READ8_MEMBER(namcos2_state::ack_mcu_vbl_r)
|
||||
{
|
||||
m_c68->set_input_line(m37450_device::M3745X_INT1_LINE, CLEAR_LINE);
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*************************************************************/
|
||||
/* SHARED 68000 CPU Memory declarations */
|
||||
/*************************************************************/
|
||||
@ -774,61 +768,6 @@ void namcos2_state::sound_default_am(address_map &map)
|
||||
map(0xd000, 0xffff).rom();
|
||||
}
|
||||
|
||||
|
||||
/*************************************************************/
|
||||
/* 68705 IO CPU Memory declarations */
|
||||
/*************************************************************/
|
||||
|
||||
void namcos2_state::mcu_default_am(address_map &map)
|
||||
{
|
||||
/* input ports and dips are mapped here */
|
||||
map(0x0000, 0x003f).ram(); /* Fill in register to stop logging */
|
||||
map(0x0000, 0x0000).nopr(); /* Keep logging quiet */
|
||||
map(0x0001, 0x0001).portr("MCUB");
|
||||
map(0x0002, 0x0002).portr("MCUC");
|
||||
map(0x0003, 0x0003).rw(FUNC(namcos2_state::namcos2_mcu_port_d_r), FUNC(namcos2_state::namcos2_mcu_port_d_w));
|
||||
map(0x0007, 0x0007).portr("MCUH");
|
||||
map(0x0010, 0x0010).rw(FUNC(namcos2_state::namcos2_mcu_analog_ctrl_r), FUNC(namcos2_state::namcos2_mcu_analog_ctrl_w));
|
||||
map(0x0011, 0x0011).rw(FUNC(namcos2_state::namcos2_mcu_analog_port_r), FUNC(namcos2_state::namcos2_mcu_analog_port_w));
|
||||
map(0x0040, 0x01bf).ram();
|
||||
map(0x01c0, 0x1fff).rom();
|
||||
map(0x2000, 0x2000).portr("DSW");
|
||||
map(0x3000, 0x3000).portr("MCUDI0");
|
||||
map(0x3001, 0x3001).portr("MCUDI1");
|
||||
map(0x3002, 0x3002).portr("MCUDI2");
|
||||
map(0x3003, 0x3003).portr("MCUDI3");
|
||||
map(0x5000, 0x57ff).rw(FUNC(namcos2_state::dpram_byte_r), FUNC(namcos2_state::dpram_byte_w)).share("dpram");
|
||||
map(0x6000, 0x6fff).nopr(); /* watchdog */
|
||||
map(0x8000, 0xffff).rom();
|
||||
}
|
||||
|
||||
|
||||
/*************************************************************/
|
||||
/* 37450 (C68) IO CPU Memory declarations */
|
||||
/*************************************************************/
|
||||
READ8_MEMBER(namcos2_state::c68_p5_r)
|
||||
{
|
||||
return (m_player_mux) ? ioport("MCUB2")->read() : ioport("MCUB")->read();
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(namcos2_state::c68_p3_w)
|
||||
{
|
||||
m_player_mux = (data & 0x80) ? 1 : 0;
|
||||
}
|
||||
|
||||
void namcos2_state::c68_default_am(address_map &map)
|
||||
{
|
||||
/* input ports and dips are mapped here */
|
||||
map(0x2000, 0x2000).portr("DSW");
|
||||
map(0x3000, 0x3000).portr("MCUDI0");
|
||||
map(0x3001, 0x3001).portr("MCUDI1");
|
||||
map(0x3002, 0x3002).portr("MCUDI2");
|
||||
map(0x3003, 0x3003).portr("MCUDI3");
|
||||
map(0x5000, 0x57ff).rw(FUNC(namcos2_state::dpram_byte_r), FUNC(namcos2_state::dpram_byte_w)).share("dpram");
|
||||
map(0x6000, 0x6fff).r(FUNC(namcos2_state::ack_mcu_vbl_r)); // VBL ack
|
||||
map(0x8000, 0xffff).rom().region("c68", 0);
|
||||
}
|
||||
|
||||
/*************************************************************/
|
||||
/* */
|
||||
/* NAMCO SYSTEM 2 PORT MACROS */
|
||||
@ -1724,6 +1663,53 @@ void namcos2_state::configure_c148_standard(machine_config &config)
|
||||
m_slave_intc->link_c148_device(m_master_intc);
|
||||
}
|
||||
|
||||
void namcos2_state::configure_c65_standard(machine_config &config)
|
||||
{
|
||||
NAMCOC65(config, m_c65, C65_CPU_CLOCK);
|
||||
m_c65->in_pb_callback().set_ioport("MCUB");
|
||||
m_c65->in_pc_callback().set_ioport("MCUC");
|
||||
m_c65->in_ph_callback().set_ioport("MCUH");
|
||||
m_c65->in_pdsw_callback().set_ioport("DSW");
|
||||
m_c65->di0_in_cb().set_ioport("MCUDI0");
|
||||
m_c65->di1_in_cb().set_ioport("MCUDI1");
|
||||
m_c65->di2_in_cb().set_ioport("MCUDI2");
|
||||
m_c65->di3_in_cb().set_ioport("MCUDI3");
|
||||
m_c65->an0_in_cb().set_ioport("AN0");
|
||||
m_c65->an1_in_cb().set_ioport("AN1");
|
||||
m_c65->an2_in_cb().set_ioport("AN2");
|
||||
m_c65->an3_in_cb().set_ioport("AN3");
|
||||
m_c65->an4_in_cb().set_ioport("AN4");
|
||||
m_c65->an5_in_cb().set_ioport("AN5");
|
||||
m_c65->an6_in_cb().set_ioport("AN6");
|
||||
m_c65->an7_in_cb().set_ioport("AN7");
|
||||
m_c65->dp_in_callback().set(FUNC(namcos2_state::dpram_byte_r));
|
||||
m_c65->dp_out_callback().set(FUNC(namcos2_state::dpram_byte_w));
|
||||
}
|
||||
|
||||
void namcos2_state::configure_c68_standard(machine_config &config)
|
||||
{
|
||||
NAMCOC68(config, m_c68new, C68_CPU_CLOCK);
|
||||
m_c68new->in_pb_callback().set_ioport("MCUB");
|
||||
m_c68new->in_pb2_callback().set_ioport("MCUB2");
|
||||
m_c68new->in_pc_callback().set_ioport("MCUC");
|
||||
m_c68new->in_ph_callback().set_ioport("MCUH");
|
||||
m_c68new->in_pdsw_callback().set_ioport("DSW");
|
||||
m_c68new->di0_in_cb().set_ioport("MCUDI0");
|
||||
m_c68new->di1_in_cb().set_ioport("MCUDI1");
|
||||
m_c68new->di2_in_cb().set_ioport("MCUDI2");
|
||||
m_c68new->di3_in_cb().set_ioport("MCUDI3");
|
||||
m_c68new->an0_in_cb().set_ioport("AN0");
|
||||
m_c68new->an1_in_cb().set_ioport("AN1");
|
||||
m_c68new->an2_in_cb().set_ioport("AN2");
|
||||
m_c68new->an3_in_cb().set_ioport("AN3");
|
||||
m_c68new->an4_in_cb().set_ioport("AN4");
|
||||
m_c68new->an5_in_cb().set_ioport("AN5");
|
||||
m_c68new->an6_in_cb().set_ioport("AN6");
|
||||
m_c68new->an7_in_cb().set_ioport("AN7");
|
||||
m_c68new->dp_in_callback().set(FUNC(namcos2_state::dpram_byte_r));
|
||||
m_c68new->dp_out_callback().set(FUNC(namcos2_state::dpram_byte_w));
|
||||
}
|
||||
|
||||
// TODO: temp
|
||||
TIMER_DEVICE_CALLBACK_MEMBER(namcos2_state::screen_scanline)
|
||||
{
|
||||
@ -1734,6 +1720,12 @@ TIMER_DEVICE_CALLBACK_MEMBER(namcos2_state::screen_scanline)
|
||||
{
|
||||
m_master_intc->vblank_irq_trigger();
|
||||
m_slave_intc->vblank_irq_trigger();
|
||||
|
||||
if (m_c65)
|
||||
m_c65->ext_interrupt(HOLD_LINE);
|
||||
|
||||
if (m_c68new)
|
||||
m_c68new->ext_interrupt(ASSERT_LINE);
|
||||
}
|
||||
|
||||
if(scanline == cur_posirq)
|
||||
@ -1758,9 +1750,7 @@ MACHINE_CONFIG_START(namcos2_state::base)
|
||||
MCFG_DEVICE_PERIODIC_INT_DRIVER(namcos2_shared_state, irq0_line_hold, 2*60)
|
||||
MCFG_DEVICE_PERIODIC_INT_DRIVER(namcos2_shared_state, irq1_line_hold, 120)
|
||||
|
||||
MCFG_DEVICE_ADD("mcu", HD63705, C65_CPU_CLOCK) /* 2.048MHz (49.152MHz OSC/24) - I/O handling */
|
||||
MCFG_DEVICE_PROGRAM_MAP(mcu_default_am)
|
||||
MCFG_DEVICE_VBLANK_INT_DRIVER("screen", namcos2_shared_state, irq0_line_hold)
|
||||
configure_c65_standard(config);
|
||||
|
||||
MCFG_QUANTUM_TIME(attotime::from_hz(12000)) /* CPU slices per frame */
|
||||
|
||||
@ -1836,9 +1826,7 @@ MACHINE_CONFIG_START(namcos2_state::gollygho)
|
||||
MCFG_DEVICE_PERIODIC_INT_DRIVER(namcos2_shared_state, irq0_line_hold, 2*60)
|
||||
MCFG_DEVICE_PERIODIC_INT_DRIVER(namcos2_shared_state, irq1_line_hold, 120)
|
||||
|
||||
MCFG_DEVICE_ADD("mcu", HD63705, C65_CPU_CLOCK) /* 2.048MHz (49.152MHz OSC/24) - I/O handling */
|
||||
MCFG_DEVICE_PROGRAM_MAP(mcu_default_am)
|
||||
MCFG_DEVICE_VBLANK_INT_DRIVER("screen", namcos2_shared_state, irq0_line_hold)
|
||||
configure_c65_standard(config);
|
||||
|
||||
MCFG_QUANTUM_TIME(attotime::from_hz(6000)) /* CPU slices per frame */
|
||||
|
||||
@ -1873,6 +1861,8 @@ MACHINE_CONFIG_START(namcos2_state::gollygho)
|
||||
MCFG_SOUND_ROUTE(1, "rspeaker", 0.80)
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
|
||||
|
||||
MACHINE_CONFIG_START(namcos2_state::finallap)
|
||||
MCFG_DEVICE_ADD("maincpu", M68000, M68K_CPU_CLOCK) /* 12.288MHz (49.152MHz OSC/4) */
|
||||
MCFG_DEVICE_PROGRAM_MAP(master_finallap_am)
|
||||
@ -1886,9 +1876,7 @@ MACHINE_CONFIG_START(namcos2_state::finallap)
|
||||
MCFG_DEVICE_PERIODIC_INT_DRIVER(namcos2_shared_state, irq0_line_hold, 2*60)
|
||||
MCFG_DEVICE_PERIODIC_INT_DRIVER(namcos2_shared_state, irq1_line_hold, 120)
|
||||
|
||||
MCFG_DEVICE_ADD("mcu", HD63705, C65_CPU_CLOCK) /* 2.048MHz (49.152MHz OSC/24) - I/O handling */
|
||||
MCFG_DEVICE_PROGRAM_MAP(mcu_default_am)
|
||||
MCFG_DEVICE_VBLANK_INT_DRIVER("screen", namcos2_shared_state, irq0_line_hold)
|
||||
configure_c65_standard(config);
|
||||
|
||||
MCFG_QUANTUM_TIME(attotime::from_hz(6000)) /* CPU slices per frame */
|
||||
|
||||
@ -1948,9 +1936,7 @@ MACHINE_CONFIG_START(namcos2_state::sgunner)
|
||||
MCFG_DEVICE_PERIODIC_INT_DRIVER(namcos2_shared_state, irq0_line_hold, 2*60)
|
||||
MCFG_DEVICE_PERIODIC_INT_DRIVER(namcos2_shared_state, irq1_line_hold, 120)
|
||||
|
||||
MCFG_DEVICE_ADD("mcu", HD63705, C65_CPU_CLOCK) /* 2.048MHz (49.152MHz OSC/24) - I/O handling */
|
||||
MCFG_DEVICE_PROGRAM_MAP(mcu_default_am)
|
||||
MCFG_DEVICE_VBLANK_INT_DRIVER("screen", namcos2_shared_state, irq0_line_hold)
|
||||
configure_c65_standard(config);
|
||||
|
||||
MCFG_QUANTUM_TIME(attotime::from_hz(6000)) /* CPU slices per frame */
|
||||
|
||||
@ -2000,14 +1986,7 @@ MACHINE_CONFIG_START(namcos2_state::sgunner2)
|
||||
MCFG_DEVICE_PERIODIC_INT_DRIVER(namcos2_shared_state, irq0_line_hold, 2*60)
|
||||
MCFG_DEVICE_PERIODIC_INT_DRIVER(namcos2_shared_state, irq1_line_hold, 120)
|
||||
|
||||
MCFG_DEVICE_ADD("c68", M37450, C68_CPU_CLOCK) /* C68 @ 8.192MHz (49.152MHz OSC/6) - I/O handling */
|
||||
MCFG_M3745X_ADC14_CALLBACKS(IOPORT("AN0"), IOPORT("AN1"), IOPORT("AN2"), IOPORT("AN3"))
|
||||
MCFG_M3745X_ADC58_CALLBACKS(IOPORT("AN4"), IOPORT("AN5"), IOPORT("AN6"), IOPORT("AN7"))
|
||||
MCFG_M3745X_PORT3_CALLBACKS(IOPORT("MCUH"), WRITE8(*this, namcos2_state, c68_p3_w)) // coins/test/service
|
||||
MCFG_M3745X_PORT5_CALLBACKS(READ8(*this, namcos2_state, c68_p5_r), NOOP) // muxed player 1/2
|
||||
MCFG_M3745X_PORT6_CALLBACKS(IOPORT("MCUC"), NOOP) // unused in sgunner2
|
||||
MCFG_DEVICE_PROGRAM_MAP(c68_default_am)
|
||||
MCFG_DEVICE_VBLANK_INT_DRIVER("screen", namcos2_shared_state, irq0_line_assert) // 37450 maps INT1 to irq0 as it's the first external interrupt on that chip
|
||||
configure_c68_standard(config);
|
||||
|
||||
MCFG_QUANTUM_TIME(attotime::from_hz(6000)) /* CPU slices per frame */
|
||||
|
||||
@ -2057,9 +2036,7 @@ MACHINE_CONFIG_START(namcos2_state::luckywld)
|
||||
MCFG_DEVICE_PERIODIC_INT_DRIVER(namcos2_shared_state, irq0_line_hold, 2*60)
|
||||
MCFG_DEVICE_PERIODIC_INT_DRIVER(namcos2_shared_state, irq1_line_hold, 120)
|
||||
|
||||
MCFG_DEVICE_ADD("mcu", HD63705, C65_CPU_CLOCK) /* 2.048MHz (49.152MHz OSC/24) - I/O handling */
|
||||
MCFG_DEVICE_PROGRAM_MAP(mcu_default_am)
|
||||
MCFG_DEVICE_VBLANK_INT_DRIVER("screen", namcos2_shared_state, irq0_line_hold)
|
||||
configure_c65_standard(config);
|
||||
|
||||
MCFG_QUANTUM_TIME(attotime::from_hz(6000)) /* CPU slices per frame */
|
||||
|
||||
@ -2112,9 +2089,7 @@ MACHINE_CONFIG_START(namcos2_state::metlhawk)
|
||||
MCFG_DEVICE_PERIODIC_INT_DRIVER(namcos2_shared_state, irq0_line_hold, 2*60)
|
||||
MCFG_DEVICE_PERIODIC_INT_DRIVER(namcos2_shared_state, irq1_line_hold, 120)
|
||||
|
||||
MCFG_DEVICE_ADD("mcu", HD63705, C65_CPU_CLOCK) /* 2.048MHz (49.152MHz OSC/24) - I/O handling */
|
||||
MCFG_DEVICE_PROGRAM_MAP(mcu_default_am)
|
||||
MCFG_DEVICE_VBLANK_INT_DRIVER("screen", namcos2_shared_state, irq0_line_hold)
|
||||
configure_c65_standard(config);
|
||||
|
||||
MCFG_QUANTUM_TIME(attotime::from_hz(6000)) /* CPU slices per frame */
|
||||
|
||||
@ -2209,9 +2184,8 @@ ROM_START( assault )
|
||||
ROM_CONTINUE( 0x010000, 0x01c000 )
|
||||
ROM_RELOAD( 0x010000, 0x020000 )
|
||||
|
||||
ROM_REGION( 0x010000, "mcu", 0 ) /* I/O MCU */
|
||||
ROM_LOAD( "sys2mcpu.bin", 0x000000, 0x002000, CRC(a342a97e) SHA1(2c420d34dba21e409bf78ddca710fc7de65a6642) )
|
||||
ROM_LOAD( "sys2c65b.bin", 0x008000, 0x008000, CRC(e9f2922a) SHA1(5767d2f85e1eb3de19192e73b02221f28b1fbb83) )
|
||||
ROM_REGION( 0x8000, "c65mcu:external", ROMREGION_ERASE00 ) /* I/O MCU */
|
||||
ROM_LOAD( "sys2c65b.bin", 0x000000, 0x008000, CRC(e9f2922a) SHA1(5767d2f85e1eb3de19192e73b02221f28b1fbb83) )
|
||||
|
||||
ROM_REGION( 0x400000, "gfx1", 0 ) /* Sprites */
|
||||
NAMCOS2_GFXROM_LOAD_128K( "atobj0.bin", 0x000000, CRC(22240076) SHA1(916fc0e6b338a6dda84399df910c3c9463e6b915) )
|
||||
@ -2263,9 +2237,8 @@ ROM_START( assaultj )
|
||||
ROM_CONTINUE( 0x010000, 0x01c000 )
|
||||
ROM_RELOAD( 0x010000, 0x020000 )
|
||||
|
||||
ROM_REGION( 0x010000, "mcu", 0 ) /* I/O MCU */
|
||||
ROM_LOAD( "sys2mcpu.bin", 0x000000, 0x002000, CRC(a342a97e) SHA1(2c420d34dba21e409bf78ddca710fc7de65a6642) )
|
||||
ROM_LOAD( "sys2c65b.bin", 0x008000, 0x008000, CRC(e9f2922a) SHA1(5767d2f85e1eb3de19192e73b02221f28b1fbb83) )
|
||||
ROM_REGION( 0x8000, "c65mcu:external", ROMREGION_ERASE00 ) /* I/O MCU */
|
||||
ROM_LOAD( "sys2c65b.bin", 0x000000, 0x008000, CRC(e9f2922a) SHA1(5767d2f85e1eb3de19192e73b02221f28b1fbb83) )
|
||||
|
||||
ROM_REGION( 0x400000, "gfx1", 0 ) /* Sprites */
|
||||
NAMCOS2_GFXROM_LOAD_128K( "atobj0.bin", 0x000000, CRC(22240076) SHA1(916fc0e6b338a6dda84399df910c3c9463e6b915) )
|
||||
@ -2317,9 +2290,8 @@ ROM_START( assaultp )
|
||||
ROM_CONTINUE( 0x010000, 0x01c000 )
|
||||
ROM_RELOAD( 0x010000, 0x020000 )
|
||||
|
||||
ROM_REGION( 0x010000, "mcu", 0 ) /* I/O MCU */
|
||||
ROM_LOAD( "sys2mcpu.bin", 0x000000, 0x002000, CRC(a342a97e) SHA1(2c420d34dba21e409bf78ddca710fc7de65a6642) )
|
||||
ROM_LOAD( "sys2c65b.bin", 0x008000, 0x008000, CRC(e9f2922a) SHA1(5767d2f85e1eb3de19192e73b02221f28b1fbb83) )
|
||||
ROM_REGION( 0x8000, "c65mcu:external", ROMREGION_ERASE00 ) /* I/O MCU */
|
||||
ROM_LOAD( "sys2c65b.bin", 0x000000, 0x008000, CRC(e9f2922a) SHA1(5767d2f85e1eb3de19192e73b02221f28b1fbb83) )
|
||||
|
||||
ROM_REGION( 0x400000, "gfx1", 0 ) /* Sprites */
|
||||
NAMCOS2_GFXROM_LOAD_128K( "atobj0.bin", 0x000000, CRC(22240076) SHA1(916fc0e6b338a6dda84399df910c3c9463e6b915) )
|
||||
@ -2371,9 +2343,8 @@ ROM_START( burnforc )
|
||||
ROM_CONTINUE( 0x010000, 0x01c000 )
|
||||
ROM_RELOAD( 0x010000, 0x020000 )
|
||||
|
||||
ROM_REGION( 0x010000, "mcu", 0 ) /* I/O MCU */
|
||||
ROM_LOAD( "sys2mcpu.bin", 0x000000, 0x002000, CRC(a342a97e) SHA1(2c420d34dba21e409bf78ddca710fc7de65a6642) )
|
||||
ROM_LOAD( "sys2c65c.bin", 0x008000, 0x008000, CRC(a5b2a4ff) SHA1(068bdfcc71a5e83706e8b23330691973c1c214dc) )
|
||||
ROM_REGION( 0x8000, "c65mcu:external", ROMREGION_ERASE00 ) /* I/O MCU */
|
||||
ROM_LOAD( "sys2c65c.bin", 0x000000, 0x008000, CRC(a5b2a4ff) SHA1(068bdfcc71a5e83706e8b23330691973c1c214dc) )
|
||||
|
||||
ROM_REGION( 0x400000, "gfx1", 0 ) /* Sprites */
|
||||
ROM_LOAD( "bu_obj-0.bin", 0x000000, 0x80000, CRC(24c919a1) SHA1(ddf5bfbf1bbe2a10d6708b618b77f1d6d7862372) )
|
||||
@ -2423,9 +2394,8 @@ ROM_START( burnforco )
|
||||
ROM_CONTINUE( 0x010000, 0x01c000 )
|
||||
ROM_RELOAD( 0x010000, 0x020000 )
|
||||
|
||||
ROM_REGION( 0x010000, "mcu", 0 ) /* I/O MCU */
|
||||
ROM_LOAD( "sys2mcpu.bin", 0x000000, 0x002000, CRC(a342a97e) SHA1(2c420d34dba21e409bf78ddca710fc7de65a6642) )
|
||||
ROM_LOAD( "sys2c65c.bin", 0x008000, 0x008000, CRC(a5b2a4ff) SHA1(068bdfcc71a5e83706e8b23330691973c1c214dc) )
|
||||
ROM_REGION( 0x8000, "c65mcu:external", ROMREGION_ERASE00 ) /* I/O MCU */
|
||||
ROM_LOAD( "sys2c65c.bin", 0x000000, 0x008000, CRC(a5b2a4ff) SHA1(068bdfcc71a5e83706e8b23330691973c1c214dc) )
|
||||
|
||||
ROM_REGION( 0x400000, "gfx1", 0 ) /* Sprites */
|
||||
ROM_LOAD( "bu_obj-0.bin", 0x000000, 0x80000, CRC(24c919a1) SHA1(ddf5bfbf1bbe2a10d6708b618b77f1d6d7862372) )
|
||||
@ -2476,9 +2446,8 @@ ROM_START( cosmogng )
|
||||
ROM_CONTINUE( 0x010000, 0x01c000 )
|
||||
ROM_RELOAD( 0x010000, 0x020000 )
|
||||
|
||||
ROM_REGION( 0x010000, "mcu", 0 ) /* I/O MCU */
|
||||
ROM_LOAD( "sys2mcpu.bin", 0x000000, 0x002000, CRC(a342a97e) SHA1(2c420d34dba21e409bf78ddca710fc7de65a6642) )
|
||||
ROM_LOAD( "sys2c65c.bin", 0x008000, 0x008000, CRC(a5b2a4ff) SHA1(068bdfcc71a5e83706e8b23330691973c1c214dc) )
|
||||
ROM_REGION( 0x8000, "c65mcu:external", ROMREGION_ERASE00 ) /* I/O MCU */
|
||||
ROM_LOAD( "sys2c65c.bin", 0x000000, 0x008000, CRC(a5b2a4ff) SHA1(068bdfcc71a5e83706e8b23330691973c1c214dc) )
|
||||
|
||||
ROM_REGION( 0x400000, "gfx1", 0 ) /* Sprites */
|
||||
ROM_LOAD( "co1obj0.bin", 0x000000, 0x80000, CRC(5df8ce0c) SHA1(afb9fb6e048af5aed8976192b847c0674c5e5ce1) )
|
||||
@ -2522,9 +2491,8 @@ ROM_START( cosmogngj )
|
||||
ROM_CONTINUE( 0x010000, 0x01c000 )
|
||||
ROM_RELOAD( 0x010000, 0x020000 )
|
||||
|
||||
ROM_REGION( 0x010000, "mcu", 0 ) /* I/O MCU */
|
||||
ROM_LOAD( "sys2mcpu.bin", 0x000000, 0x002000, CRC(a342a97e) SHA1(2c420d34dba21e409bf78ddca710fc7de65a6642) )
|
||||
ROM_LOAD( "sys2c65c.bin", 0x008000, 0x008000, CRC(a5b2a4ff) SHA1(068bdfcc71a5e83706e8b23330691973c1c214dc) )
|
||||
ROM_REGION( 0x8000, "c65mcu:external", ROMREGION_ERASE00 ) /* I/O MCU */
|
||||
ROM_LOAD( "sys2c65c.bin", 0x000000, 0x008000, CRC(a5b2a4ff) SHA1(068bdfcc71a5e83706e8b23330691973c1c214dc) )
|
||||
|
||||
ROM_REGION( 0x400000, "gfx1", 0 ) /* Sprites */
|
||||
ROM_LOAD( "co1obj0.bin", 0x000000, 0x80000, CRC(5df8ce0c) SHA1(afb9fb6e048af5aed8976192b847c0674c5e5ce1) )
|
||||
@ -2568,9 +2536,8 @@ ROM_START( dirtfoxj )
|
||||
ROM_CONTINUE( 0x010000, 0x01c000 )
|
||||
ROM_RELOAD( 0x010000, 0x020000 )
|
||||
|
||||
ROM_REGION( 0x010000, "mcu", 0 ) /* I/O MCU */
|
||||
ROM_LOAD( "sys2mcpu.bin", 0x000000, 0x002000, CRC(a342a97e) SHA1(2c420d34dba21e409bf78ddca710fc7de65a6642) )
|
||||
ROM_LOAD( "sys2c65c.bin", 0x008000, 0x008000, CRC(a5b2a4ff) SHA1(068bdfcc71a5e83706e8b23330691973c1c214dc) )
|
||||
ROM_REGION( 0x8000, "c65mcu:external", ROMREGION_ERASE00 ) /* I/O MCU */
|
||||
ROM_LOAD( "sys2c65c.bin", 0x000000, 0x008000, CRC(a5b2a4ff) SHA1(068bdfcc71a5e83706e8b23330691973c1c214dc) )
|
||||
|
||||
ROM_REGION( 0x400000, "gfx1", 0 ) /* Sprites */
|
||||
ROM_LOAD( "df1_obj0.bin", 0x000000, 0x80000, CRC(b6bd1a68) SHA1(38677b54cd257411db499ba03b9176422797bf64) )
|
||||
@ -2621,9 +2588,8 @@ ROM_START( dsaber )
|
||||
ROM_RELOAD( 0x010000, 0x020000 )
|
||||
ROM_LOAD( "do1 snd1.snd1", 0x030000, 0x020000, CRC(c4ca6f3f) SHA1(829a053451be07b296fb4d97818d59eb1e68c807) )
|
||||
|
||||
ROM_REGION( 0x010000, "mcu", 0 ) /* I/O MCU */
|
||||
ROM_LOAD( "sys2mcpu.bin", 0x000000, 0x002000, CRC(a342a97e) SHA1(2c420d34dba21e409bf78ddca710fc7de65a6642) )
|
||||
ROM_LOAD( "sys2c65c.bin", 0x008000, 0x008000, CRC(a5b2a4ff) SHA1(068bdfcc71a5e83706e8b23330691973c1c214dc) )
|
||||
ROM_REGION( 0x8000, "c65mcu:external", ROMREGION_ERASE00 ) /* I/O MCU */
|
||||
ROM_LOAD( "sys2c65c.bin", 0x000000, 0x008000, CRC(a5b2a4ff) SHA1(068bdfcc71a5e83706e8b23330691973c1c214dc) )
|
||||
|
||||
ROM_REGION( 0x400000, "gfx1", 0 ) /* Sprites */
|
||||
ROM_LOAD( "do obj-0a.obj0", 0x000000, 0x80000, CRC(f08c6648) SHA1(ac5221ba159f2390060cbbb7d9cd8148c7bb4a02) )
|
||||
@ -2672,9 +2638,8 @@ ROM_START( dsabera )
|
||||
ROM_RELOAD( 0x010000, 0x020000 )
|
||||
ROM_LOAD( "do1 snd1.snd1", 0x030000, 0x020000, CRC(c4ca6f3f) SHA1(829a053451be07b296fb4d97818d59eb1e68c807) )
|
||||
|
||||
ROM_REGION( 0x010000, "mcu", 0 ) /* I/O MCU */
|
||||
ROM_LOAD( "sys2mcpu.bin", 0x000000, 0x002000, CRC(a342a97e) SHA1(2c420d34dba21e409bf78ddca710fc7de65a6642) )
|
||||
ROM_LOAD( "sys2c65c.bin", 0x008000, 0x008000, CRC(a5b2a4ff) SHA1(068bdfcc71a5e83706e8b23330691973c1c214dc) )
|
||||
ROM_REGION( 0x8000, "c65mcu:external", ROMREGION_ERASE00 ) /* I/O MCU */
|
||||
ROM_LOAD( "sys2c65c.bin", 0x000000, 0x008000, CRC(a5b2a4ff) SHA1(068bdfcc71a5e83706e8b23330691973c1c214dc) )
|
||||
|
||||
ROM_REGION( 0x400000, "gfx1", 0 ) /* Sprites */
|
||||
ROM_LOAD( "do obj-0a.obj0", 0x000000, 0x80000, CRC(f08c6648) SHA1(ac5221ba159f2390060cbbb7d9cd8148c7bb4a02) )
|
||||
@ -2722,9 +2687,8 @@ ROM_START( dsaberj )
|
||||
ROM_RELOAD( 0x010000, 0x020000 )
|
||||
ROM_LOAD( "do1 snd1.snd1", 0x030000, 0x020000, CRC(c4ca6f3f) SHA1(829a053451be07b296fb4d97818d59eb1e68c807) )
|
||||
|
||||
ROM_REGION( 0x010000, "mcu", 0 ) /* I/O MCU */
|
||||
ROM_LOAD( "sys2mcpu.bin", 0x000000, 0x002000, CRC(a342a97e) SHA1(2c420d34dba21e409bf78ddca710fc7de65a6642) )
|
||||
ROM_LOAD( "sys2c65c.bin", 0x008000, 0x008000, CRC(a5b2a4ff) SHA1(068bdfcc71a5e83706e8b23330691973c1c214dc) )
|
||||
ROM_REGION( 0x8000, "c65mcu:external", ROMREGION_ERASE00 ) /* I/O MCU */
|
||||
ROM_LOAD( "sys2c65c.bin", 0x000000, 0x008000, CRC(a5b2a4ff) SHA1(068bdfcc71a5e83706e8b23330691973c1c214dc) )
|
||||
|
||||
ROM_REGION( 0x400000, "gfx1", 0 ) /* Sprites */
|
||||
ROM_LOAD( "do obj-0a.obj0", 0x000000, 0x80000, CRC(f08c6648) SHA1(ac5221ba159f2390060cbbb7d9cd8148c7bb4a02) )
|
||||
@ -2771,9 +2735,8 @@ ROM_START( finallap )
|
||||
ROM_CONTINUE( 0x010000, 0x01c000 )
|
||||
ROM_RELOAD( 0x010000, 0x020000 )
|
||||
|
||||
ROM_REGION( 0x010000, "mcu", 0 ) /* I/O MCU */
|
||||
ROM_LOAD( "sys2mcpu.bin", 0x000000, 0x002000, CRC(a342a97e) SHA1(2c420d34dba21e409bf78ddca710fc7de65a6642) )
|
||||
ROM_LOAD( "sys2c65c.bin", 0x008000, 0x008000, BAD_DUMP CRC(a5b2a4ff) SHA1(068bdfcc71a5e83706e8b23330691973c1c214dc) )
|
||||
ROM_REGION( 0x8000, "c65mcu:external", ROMREGION_ERASE00 ) /* I/O MCU */
|
||||
/* no external MCU ROM? previously loaded type C, but the game predates it */
|
||||
|
||||
ROM_REGION( 0x400000, "gfx1", 0 ) /* Sprites */
|
||||
ROM_FILL( 0, 0x200000, 0xff )
|
||||
@ -2826,9 +2789,8 @@ ROM_START( finallapd )
|
||||
ROM_CONTINUE( 0x010000, 0x01c000 )
|
||||
ROM_RELOAD( 0x010000, 0x020000 )
|
||||
|
||||
ROM_REGION( 0x010000, "mcu", 0 ) /* I/O MCU */
|
||||
ROM_LOAD( "sys2mcpu.bin", 0x000000, 0x002000, CRC(a342a97e) SHA1(2c420d34dba21e409bf78ddca710fc7de65a6642) )
|
||||
ROM_LOAD( "sys2c65c.bin", 0x008000, 0x008000, BAD_DUMP CRC(a5b2a4ff) SHA1(068bdfcc71a5e83706e8b23330691973c1c214dc) )
|
||||
ROM_REGION( 0x8000, "c65mcu:external", ROMREGION_ERASE00 ) /* I/O MCU */
|
||||
/* no external MCU ROM? previously loaded type C, but the game predates it */
|
||||
|
||||
ROM_REGION( 0x400000, "gfx1", 0 ) /* Sprites */
|
||||
ROM_FILL( 0, 0x200000, 0xff )
|
||||
@ -2881,9 +2843,8 @@ ROM_START( finallapc )
|
||||
ROM_CONTINUE( 0x010000, 0x01c000 )
|
||||
ROM_RELOAD( 0x010000, 0x020000 )
|
||||
|
||||
ROM_REGION( 0x010000, "mcu", 0 ) /* I/O MCU */
|
||||
ROM_LOAD( "sys2mcpu.bin", 0x000000, 0x002000, CRC(a342a97e) SHA1(2c420d34dba21e409bf78ddca710fc7de65a6642) )
|
||||
ROM_LOAD( "sys2c65c.bin", 0x008000, 0x008000, BAD_DUMP CRC(a5b2a4ff) SHA1(068bdfcc71a5e83706e8b23330691973c1c214dc) )
|
||||
ROM_REGION( 0x8000, "c65mcu:external", ROMREGION_ERASE00 ) /* I/O MCU */
|
||||
/* no external MCU ROM? previously loaded type C, but the game predates it */
|
||||
|
||||
ROM_REGION( 0x400000, "gfx1", 0 ) /* Sprites */
|
||||
ROM_FILL( 0, 0x200000, 0xff )
|
||||
@ -2936,9 +2897,8 @@ ROM_START( finallapjc )
|
||||
ROM_CONTINUE( 0x010000, 0x01c000 )
|
||||
ROM_RELOAD( 0x010000, 0x020000 )
|
||||
|
||||
ROM_REGION( 0x010000, "mcu", 0 ) /* I/O MCU */
|
||||
ROM_LOAD( "sys2mcpu.bin", 0x000000, 0x002000, CRC(a342a97e) SHA1(2c420d34dba21e409bf78ddca710fc7de65a6642) )
|
||||
ROM_LOAD( "sys2c65c.bin", 0x008000, 0x008000, BAD_DUMP CRC(a5b2a4ff) SHA1(068bdfcc71a5e83706e8b23330691973c1c214dc) )
|
||||
ROM_REGION( 0x8000, "c65mcu:external", ROMREGION_ERASE00 ) /* I/O MCU */
|
||||
/* no external MCU ROM? previously loaded type C, but the game predates it */
|
||||
|
||||
ROM_REGION( 0x400000, "gfx1", 0 ) /* Sprites */
|
||||
ROM_FILL( 0, 0x200000, 0xff )
|
||||
@ -2991,9 +2951,8 @@ ROM_START( finallapjb )
|
||||
ROM_CONTINUE( 0x010000, 0x01c000 )
|
||||
ROM_RELOAD( 0x010000, 0x020000 )
|
||||
|
||||
ROM_REGION( 0x010000, "mcu", 0 ) /* I/O MCU */
|
||||
ROM_LOAD( "sys2mcpu.bin", 0x000000, 0x002000, CRC(a342a97e) SHA1(2c420d34dba21e409bf78ddca710fc7de65a6642) )
|
||||
ROM_LOAD( "sys2c65c.bin", 0x008000, 0x008000, BAD_DUMP CRC(a5b2a4ff) SHA1(068bdfcc71a5e83706e8b23330691973c1c214dc) )
|
||||
ROM_REGION( 0x8000, "c65mcu:external", ROMREGION_ERASE00 ) /* I/O MCU */
|
||||
/* no external MCU ROM? previously loaded type C, but the game predates it */
|
||||
|
||||
ROM_REGION( 0x400000, "gfx1", 0 ) /* Sprites */
|
||||
ROM_FILL( 0, 0x200000, 0xff )
|
||||
@ -3045,9 +3004,8 @@ ROM_START( finalap2 )
|
||||
ROM_CONTINUE( 0x010000, 0x01c000 )
|
||||
ROM_RELOAD( 0x010000, 0x020000 )
|
||||
|
||||
ROM_REGION( 0x010000, "mcu", 0 ) /* I/O MCU */
|
||||
ROM_LOAD( "sys2mcpu.bin", 0x000000, 0x002000, CRC(a342a97e) SHA1(2c420d34dba21e409bf78ddca710fc7de65a6642) )
|
||||
ROM_LOAD( "sys2c65c.bin", 0x008000, 0x008000, BAD_DUMP CRC(a5b2a4ff) SHA1(068bdfcc71a5e83706e8b23330691973c1c214dc) )
|
||||
ROM_REGION( 0x8000, "c65mcu:external", ROMREGION_ERASE00 ) /* I/O MCU */
|
||||
ROM_LOAD( "sys2c65c.bin", 0x000000, 0x008000, BAD_DUMP CRC(a5b2a4ff) SHA1(068bdfcc71a5e83706e8b23330691973c1c214dc) ) /* not sure */
|
||||
|
||||
ROM_REGION( 0x400000, "gfx1", 0 ) /* Sprites */
|
||||
ROM_LOAD( "fl2obj0", 0x000000, 0x80000, CRC(3657dd7a) SHA1(8f286ec0642b09ff42bf0dbd784ae257d4ab278a) )
|
||||
@ -3102,9 +3060,8 @@ ROM_START( finalap2j )
|
||||
ROM_CONTINUE( 0x010000, 0x01c000 )
|
||||
ROM_RELOAD( 0x010000, 0x020000 )
|
||||
|
||||
ROM_REGION( 0x010000, "mcu", 0 ) /* I/O MCU */
|
||||
ROM_LOAD( "sys2mcpu.bin", 0x000000, 0x002000, CRC(a342a97e) SHA1(2c420d34dba21e409bf78ddca710fc7de65a6642) )
|
||||
ROM_LOAD( "sys2c65c.bin", 0x008000, 0x008000, BAD_DUMP CRC(a5b2a4ff) SHA1(068bdfcc71a5e83706e8b23330691973c1c214dc) )
|
||||
ROM_REGION( 0x8000, "c65mcu:external", ROMREGION_ERASE00 ) /* I/O MCU */
|
||||
ROM_LOAD( "sys2c65c.bin", 0x000000, 0x008000, BAD_DUMP CRC(a5b2a4ff) SHA1(068bdfcc71a5e83706e8b23330691973c1c214dc) ) /* not sure */
|
||||
|
||||
ROM_REGION( 0x400000, "gfx1", 0 ) /* Sprites */
|
||||
ROM_LOAD( "fl2obj0", 0x000000, 0x80000, CRC(3657dd7a) SHA1(8f286ec0642b09ff42bf0dbd784ae257d4ab278a) )
|
||||
@ -3160,9 +3117,8 @@ ROM_START( finalap3 ) // this set displays MOTION (Ver. 3) in the test mode menu
|
||||
ROM_CONTINUE( 0x010000, 0x01c000 )
|
||||
ROM_RELOAD( 0x010000, 0x020000 )
|
||||
|
||||
ROM_REGION( 0x010000, "mcu", 0 ) /* I/O MCU */
|
||||
ROM_LOAD( "sys2mcpu.bin", 0x000000, 0x002000, CRC(a342a97e) SHA1(2c420d34dba21e409bf78ddca710fc7de65a6642) )
|
||||
ROM_LOAD( "sys2c65c.bin", 0x008000, 0x008000, BAD_DUMP CRC(a5b2a4ff) SHA1(068bdfcc71a5e83706e8b23330691973c1c214dc) )
|
||||
ROM_REGION( 0x8000, "c65mcu:external", ROMREGION_ERASE00 ) /* I/O MCU */
|
||||
/* should be c68 */
|
||||
|
||||
ROM_REGION( 0x400000, "gfx1", 0 ) /* Sprites */
|
||||
ROM_LOAD( "flt_obj-0.4c", 0x000000, 0x80000, CRC(eab19ec6) SHA1(2859e88b94aa873f3b6ba22790f2211f3e172dd1) )
|
||||
@ -3221,9 +3177,8 @@ ROM_START( finalap3a )
|
||||
ROM_CONTINUE( 0x010000, 0x01c000 )
|
||||
ROM_RELOAD( 0x010000, 0x020000 )
|
||||
|
||||
ROM_REGION( 0x010000, "mcu", 0 ) /* I/O MCU */
|
||||
ROM_LOAD( "sys2mcpu.bin", 0x000000, 0x002000, CRC(a342a97e) SHA1(2c420d34dba21e409bf78ddca710fc7de65a6642) )
|
||||
ROM_LOAD( "sys2c65c.bin", 0x008000, 0x008000, BAD_DUMP CRC(a5b2a4ff) SHA1(068bdfcc71a5e83706e8b23330691973c1c214dc) )
|
||||
ROM_REGION( 0x8000, "c65mcu:external", ROMREGION_ERASE00 ) /* I/O MCU */
|
||||
/* should be c68 */
|
||||
|
||||
ROM_REGION( 0x400000, "gfx1", 0 ) /* Sprites */
|
||||
ROM_LOAD( "flt_obj-0.4c", 0x000000, 0x80000, CRC(eab19ec6) SHA1(2859e88b94aa873f3b6ba22790f2211f3e172dd1) )
|
||||
@ -3285,9 +3240,8 @@ ROM_START( finalap3j )
|
||||
ROM_CONTINUE( 0x010000, 0x01c000 )
|
||||
ROM_RELOAD( 0x010000, 0x020000 )
|
||||
|
||||
ROM_REGION( 0x010000, "mcu", 0 ) /* I/O MCU */
|
||||
ROM_LOAD( "sys2mcpu.bin", 0x000000, 0x002000, CRC(a342a97e) SHA1(2c420d34dba21e409bf78ddca710fc7de65a6642) )
|
||||
ROM_LOAD( "sys2c65c.bin", 0x008000, 0x008000, BAD_DUMP CRC(a5b2a4ff) SHA1(068bdfcc71a5e83706e8b23330691973c1c214dc) )
|
||||
ROM_REGION( 0x8000, "c65mcu:external", ROMREGION_ERASE00 ) /* I/O MCU */
|
||||
/* should be c68 */
|
||||
|
||||
ROM_REGION( 0x400000, "gfx1", 0 ) /* Sprites */
|
||||
ROM_LOAD( "flt_obj-0.4c", 0x000000, 0x80000, CRC(eab19ec6) SHA1(2859e88b94aa873f3b6ba22790f2211f3e172dd1) )
|
||||
@ -3345,11 +3299,8 @@ ROM_START( finalap3jc )
|
||||
ROM_CONTINUE( 0x010000, 0x01c000 )
|
||||
ROM_RELOAD( 0x010000, 0x020000 )
|
||||
|
||||
ROM_REGION( 0x010000, "mcu", 0 ) /* M37450S2FP I/O MCU */
|
||||
/* The M37450 is unemulated so we're using the C65/6805 program instead.
|
||||
This particular M37450 variant has no internal ROM. */
|
||||
ROM_LOAD( "c68.3d", 0x000000, 0x002000, BAD_DUMP CRC(a342a97e) SHA1(2c420d34dba21e409bf78ddca710fc7de65a6642) )
|
||||
ROM_LOAD( "sys2c68.3f", 0x008000, 0x008000, CRC(ca64550a) SHA1(38d1ad1b1287cadef0c999aff9357927315f8e6b) )
|
||||
ROM_REGION( 0x8000, "c65mcu:external", ROMREGION_ERASE00 ) /* I/O MCU */
|
||||
/* should be c68 */
|
||||
|
||||
ROM_REGION( 0x400000, "gfx1", 0 ) /* Sprites */
|
||||
ROM_LOAD( "flt_obj-0.4c", 0x000000, 0x80000, CRC(eab19ec6) SHA1(2859e88b94aa873f3b6ba22790f2211f3e172dd1) )
|
||||
@ -3406,9 +3357,8 @@ ROM_START( finalap3bl ) // bootleg set
|
||||
ROM_CONTINUE( 0x010000, 0x01c000 )
|
||||
ROM_RELOAD( 0x010000, 0x020000 )
|
||||
|
||||
ROM_REGION( 0x010000, "mcu", 0 ) /* I/O MCU */
|
||||
ROM_LOAD( "sys2mcpu.bin", 0x000000, 0x002000, CRC(a342a97e) SHA1(2c420d34dba21e409bf78ddca710fc7de65a6642) )
|
||||
ROM_LOAD( "sys2c65c.bin", 0x008000, 0x008000, BAD_DUMP CRC(a5b2a4ff) SHA1(068bdfcc71a5e83706e8b23330691973c1c214dc) )
|
||||
ROM_REGION( 0x8000, "c65mcu:external", ROMREGION_ERASE00 ) /* I/O MCU */
|
||||
/* should be c68 */
|
||||
|
||||
ROM_REGION( 0x400000, "gfx1", 0 ) /* Sprites */
|
||||
ROM_LOAD( "fltobj0", 0x000000, 0x80000, CRC(eab19ec6) SHA1(2859e88b94aa873f3b6ba22790f2211f3e172dd1) )
|
||||
@ -3466,9 +3416,8 @@ ROM_START( finehour )
|
||||
ROM_CONTINUE( 0x010000, 0x01c000 )
|
||||
ROM_RELOAD( 0x010000, 0x020000 )
|
||||
|
||||
ROM_REGION( 0x010000, "mcu", 0 ) /* I/O MCU */
|
||||
ROM_LOAD( "sys2mcpu.bin", 0x000000, 0x002000, CRC(a342a97e) SHA1(2c420d34dba21e409bf78ddca710fc7de65a6642) )
|
||||
ROM_LOAD( "sys2c65c.bin", 0x008000, 0x008000, CRC(a5b2a4ff) SHA1(068bdfcc71a5e83706e8b23330691973c1c214dc) )
|
||||
ROM_REGION( 0x8000, "c65mcu:external", ROMREGION_ERASE00 ) /* I/O MCU */
|
||||
ROM_LOAD( "sys2c65c.bin", 0x000000, 0x008000, CRC(a5b2a4ff) SHA1(068bdfcc71a5e83706e8b23330691973c1c214dc) )
|
||||
|
||||
ROM_REGION( 0x400000, "gfx1", 0 ) /* Sprites */
|
||||
ROM_LOAD( "fh1_ob0.bin", 0x000000, 0x80000, CRC(b1fd86f1) SHA1(5504ca1a83c329a19d5632b9ac40cfa7e8ced304) )
|
||||
@ -3680,9 +3629,8 @@ ROM_START( fourtrax )
|
||||
ROM_CONTINUE( 0x010000, 0x01c000 )
|
||||
ROM_RELOAD( 0x010000, 0x020000 )
|
||||
|
||||
ROM_REGION( 0x010000, "mcu", 0 ) /* I/O MCU */
|
||||
ROM_LOAD( "sys2mcpu.bin", 0x000000, 0x002000, CRC(a342a97e) SHA1(2c420d34dba21e409bf78ddca710fc7de65a6642) )
|
||||
ROM_LOAD( "sys2c65c.bin", 0x008000, 0x008000, CRC(a5b2a4ff) SHA1(068bdfcc71a5e83706e8b23330691973c1c214dc) )
|
||||
ROM_REGION( 0x8000, "c65mcu:external", ROMREGION_ERASE00 ) /* I/O MCU */
|
||||
ROM_LOAD( "sys2c65c.bin", 0x000000, 0x008000, CRC(a5b2a4ff) SHA1(068bdfcc71a5e83706e8b23330691973c1c214dc) )
|
||||
|
||||
ROM_REGION( 0x400000, "gfx1", 0 ) /* Sprites */
|
||||
ROM_LOAD( "fx_obj-0.4c", 0x000000, 0x040000, CRC(1aa60ffa) SHA1(1fa625a52c763b8db718af14e9f3cc3e076ff83b) )
|
||||
@ -3745,9 +3693,8 @@ ROM_START( fourtraxa )
|
||||
ROM_CONTINUE( 0x010000, 0x01c000 )
|
||||
ROM_RELOAD( 0x010000, 0x020000 )
|
||||
|
||||
ROM_REGION( 0x010000, "mcu", 0 ) /* I/O MCU */
|
||||
ROM_LOAD( "sys2mcpu.bin", 0x000000, 0x002000, CRC(a342a97e) SHA1(2c420d34dba21e409bf78ddca710fc7de65a6642) )
|
||||
ROM_LOAD( "sys2c65c.bin", 0x008000, 0x008000, CRC(a5b2a4ff) SHA1(068bdfcc71a5e83706e8b23330691973c1c214dc) )
|
||||
ROM_REGION( 0x8000, "c65mcu:external", ROMREGION_ERASE00 ) /* I/O MCU */
|
||||
ROM_LOAD( "sys2c65c.bin", 0x000000, 0x008000, CRC(a5b2a4ff) SHA1(068bdfcc71a5e83706e8b23330691973c1c214dc) )
|
||||
|
||||
ROM_REGION( 0x400000, "gfx1", 0 ) /* Sprites */
|
||||
ROM_LOAD( "fx_obj-0.4c", 0x000000, 0x040000, CRC(1aa60ffa) SHA1(1fa625a52c763b8db718af14e9f3cc3e076ff83b) )
|
||||
@ -3812,9 +3759,8 @@ ROM_START( marvland )
|
||||
ROM_CONTINUE( 0x010000, 0x01c000 )
|
||||
ROM_RELOAD( 0x010000, 0x020000 )
|
||||
|
||||
ROM_REGION( 0x010000, "mcu", 0 ) /* I/O MCU */
|
||||
ROM_LOAD( "sys2mcpu.bin", 0x000000, 0x002000, CRC(a342a97e) SHA1(2c420d34dba21e409bf78ddca710fc7de65a6642) )
|
||||
ROM_LOAD( "sys2c65c.bin", 0x008000, 0x008000, CRC(a5b2a4ff) SHA1(068bdfcc71a5e83706e8b23330691973c1c214dc) )
|
||||
ROM_REGION( 0x8000, "c65mcu:external", ROMREGION_ERASE00 ) /* I/O MCU */
|
||||
ROM_LOAD( "sys2c65c.bin", 0x000000, 0x008000, CRC(a5b2a4ff) SHA1(068bdfcc71a5e83706e8b23330691973c1c214dc) )
|
||||
|
||||
ROM_REGION( 0x400000, "gfx1", 0 ) /* Sprites */
|
||||
NAMCOS2_GFXROM_LOAD_256K( "mv1-obj0.bin", 0x000000, CRC(73a29361) SHA1(fc8ac9a063c1f18ae619ddca3062491774c86040) )
|
||||
@ -3863,9 +3809,8 @@ ROM_START( marvlandj )
|
||||
ROM_CONTINUE( 0x010000, 0x01c000 )
|
||||
ROM_RELOAD( 0x010000, 0x020000 )
|
||||
|
||||
ROM_REGION( 0x010000, "mcu", 0 ) /* I/O MCU */
|
||||
ROM_LOAD( "sys2mcpu.bin", 0x000000, 0x002000, CRC(a342a97e) SHA1(2c420d34dba21e409bf78ddca710fc7de65a6642) )
|
||||
ROM_LOAD( "sys2c65c.bin", 0x008000, 0x008000, CRC(a5b2a4ff) SHA1(068bdfcc71a5e83706e8b23330691973c1c214dc) )
|
||||
ROM_REGION( 0x8000, "c65mcu:external", ROMREGION_ERASE00 ) /* I/O MCU */
|
||||
ROM_LOAD( "sys2c65c.bin", 0x000000, 0x008000, CRC(a5b2a4ff) SHA1(068bdfcc71a5e83706e8b23330691973c1c214dc) )
|
||||
|
||||
ROM_REGION( 0x400000, "gfx1", 0 ) /* Sprites */
|
||||
NAMCOS2_GFXROM_LOAD_256K( "mv1-obj0.bin", 0x000000, CRC(73a29361) SHA1(fc8ac9a063c1f18ae619ddca3062491774c86040) )
|
||||
@ -3912,9 +3857,8 @@ ROM_START( metlhawk )
|
||||
ROM_CONTINUE( 0x010000, 0x01c000 )
|
||||
ROM_RELOAD( 0x010000, 0x020000 )
|
||||
|
||||
ROM_REGION( 0x010000, "mcu", 0 ) /* I/O MCU */
|
||||
ROM_LOAD( "sys2mcpu.bin", 0x000000, 0x002000, CRC(a342a97e) SHA1(2c420d34dba21e409bf78ddca710fc7de65a6642) )
|
||||
ROM_LOAD( "sys2c65c.bin", 0x008000, 0x008000, CRC(a5b2a4ff) SHA1(068bdfcc71a5e83706e8b23330691973c1c214dc) )
|
||||
ROM_REGION( 0x8000, "c65mcu:external", ROMREGION_ERASE00 ) /* I/O MCU */
|
||||
ROM_LOAD( "sys2c65c.bin", 0x000000, 0x008000, CRC(a5b2a4ff) SHA1(068bdfcc71a5e83706e8b23330691973c1c214dc) )
|
||||
|
||||
ROM_REGION( 0x200000, "gfx1", 0 ) /* Sprites */
|
||||
ROM_LOAD32_BYTE( "mhobj-4.5c", 0x000000, 0x40000, CRC(e3590e1a) SHA1(9afffa54a63e676f5d78a01c76ca50cd795dd6e9) )
|
||||
@ -3983,9 +3927,8 @@ ROM_START( metlhawkj )
|
||||
ROM_CONTINUE( 0x010000, 0x01c000 )
|
||||
ROM_RELOAD( 0x010000, 0x020000 )
|
||||
|
||||
ROM_REGION( 0x010000, "mcu", 0 ) /* I/O MCU */
|
||||
ROM_LOAD( "sys2mcpu.bin", 0x000000, 0x002000, CRC(a342a97e) SHA1(2c420d34dba21e409bf78ddca710fc7de65a6642) )
|
||||
ROM_LOAD( "sys2c65c.bin", 0x008000, 0x008000, CRC(a5b2a4ff) SHA1(068bdfcc71a5e83706e8b23330691973c1c214dc) )
|
||||
ROM_REGION( 0x8000, "c65mcu:external", ROMREGION_ERASE00 ) /* I/O MCU */
|
||||
ROM_LOAD( "sys2c65c.bin", 0x000000, 0x008000, CRC(a5b2a4ff) SHA1(068bdfcc71a5e83706e8b23330691973c1c214dc) )
|
||||
|
||||
ROM_REGION( 0x200000, "gfx1", 0 ) /* Sprites */
|
||||
ROM_LOAD32_BYTE( "mhobj-4.5c", 0x000000, 0x40000, CRC(e3590e1a) SHA1(9afffa54a63e676f5d78a01c76ca50cd795dd6e9) )
|
||||
@ -4054,9 +3997,8 @@ ROM_START( mirninja )
|
||||
ROM_CONTINUE( 0x010000, 0x01c000 )
|
||||
ROM_RELOAD( 0x010000, 0x020000 )
|
||||
|
||||
ROM_REGION( 0x010000, "mcu", 0 ) /* I/O MCU */
|
||||
ROM_LOAD( "sys2mcpu.bin", 0x000000, 0x002000, CRC(a342a97e) SHA1(2c420d34dba21e409bf78ddca710fc7de65a6642) )
|
||||
ROM_LOAD( "sys2c65b.bin", 0x008000, 0x008000, CRC(e9f2922a) SHA1(5767d2f85e1eb3de19192e73b02221f28b1fbb83) )
|
||||
ROM_REGION( 0x8000, "c65mcu:external", ROMREGION_ERASE00 ) /* I/O MCU */
|
||||
ROM_LOAD( "sys2c65b.bin", 0x000000, 0x008000, CRC(e9f2922a) SHA1(5767d2f85e1eb3de19192e73b02221f28b1fbb83) )
|
||||
|
||||
ROM_REGION( 0x400000, "gfx1", 0 ) /* Sprites */
|
||||
NAMCOS2_GFXROM_LOAD_128K( "mn_obj0.bin", 0x000000, CRC(6bd1e290) SHA1(11e5f7adef0d7a519246c6d88f9371e49a6b49e9) )
|
||||
@ -4109,9 +4051,8 @@ ROM_START( ordyne )
|
||||
ROM_CONTINUE( 0x010000, 0x01c000 )
|
||||
ROM_RELOAD( 0x010000, 0x020000 )
|
||||
|
||||
ROM_REGION( 0x010000, "mcu", 0 ) /* I/O MCU */
|
||||
ROM_LOAD( "sys2mcpu.bin", 0x000000, 0x002000, CRC(a342a97e) SHA1(2c420d34dba21e409bf78ddca710fc7de65a6642) )
|
||||
ROM_LOAD( "sys2_c65b.3f", 0x008000, 0x008000, CRC(e9f2922a) SHA1(5767d2f85e1eb3de19192e73b02221f28b1fbb83) )
|
||||
ROM_REGION( 0x8000, "c65mcu:external", ROMREGION_ERASE00 ) /* I/O MCU */
|
||||
ROM_LOAD( "sys2_c65b.3f", 0x000000, 0x008000, CRC(e9f2922a) SHA1(5767d2f85e1eb3de19192e73b02221f28b1fbb83) )
|
||||
|
||||
ROM_REGION( 0x400000, "gfx1", 0 ) /* Sprites */
|
||||
NAMCOS2_GFXROM_LOAD_128K( "or_obj-0.obj0", 0x000000, CRC(67b2b9e4) SHA1(4e589c28ed23224e40d3c68055ada0136cbf94cb) )
|
||||
@ -4168,9 +4109,8 @@ ROM_START( ordyneje )
|
||||
ROM_CONTINUE( 0x010000, 0x01c000 )
|
||||
ROM_RELOAD( 0x010000, 0x020000 )
|
||||
|
||||
ROM_REGION( 0x010000, "mcu", 0 ) /* I/O MCU */
|
||||
ROM_LOAD( "sys2mcpu.bin", 0x000000, 0x002000, CRC(a342a97e) SHA1(2c420d34dba21e409bf78ddca710fc7de65a6642) )
|
||||
ROM_LOAD( "sys2_c65b.3f", 0x008000, 0x008000, CRC(e9f2922a) SHA1(5767d2f85e1eb3de19192e73b02221f28b1fbb83) )
|
||||
ROM_REGION( 0x8000, "c65mcu:external", ROMREGION_ERASE00 ) /* I/O MCU */
|
||||
ROM_LOAD( "sys2_c65b.3f", 0x000000, 0x008000, CRC(e9f2922a) SHA1(5767d2f85e1eb3de19192e73b02221f28b1fbb83) )
|
||||
|
||||
ROM_REGION( 0x400000, "gfx1", 0 ) /* Sprites */
|
||||
NAMCOS2_GFXROM_LOAD_128K( "or_obj-0.obj0", 0x000000, CRC(67b2b9e4) SHA1(4e589c28ed23224e40d3c68055ada0136cbf94cb) )
|
||||
@ -4227,9 +4167,8 @@ ROM_START( ordynej )
|
||||
ROM_CONTINUE( 0x010000, 0x01c000 )
|
||||
ROM_RELOAD( 0x010000, 0x020000 )
|
||||
|
||||
ROM_REGION( 0x010000, "mcu", 0 ) /* I/O MCU */
|
||||
ROM_LOAD( "sys2mcpu.bin", 0x000000, 0x002000, CRC(a342a97e) SHA1(2c420d34dba21e409bf78ddca710fc7de65a6642) )
|
||||
ROM_LOAD( "sys2_c65b.3f", 0x008000, 0x008000, CRC(e9f2922a) SHA1(5767d2f85e1eb3de19192e73b02221f28b1fbb83) )
|
||||
ROM_REGION( 0x8000, "c65mcu:external", ROMREGION_ERASE00 ) /* I/O MCU */
|
||||
ROM_LOAD( "sys2_c65b.3f", 0x000000, 0x008000, CRC(e9f2922a) SHA1(5767d2f85e1eb3de19192e73b02221f28b1fbb83) )
|
||||
|
||||
ROM_REGION( 0x400000, "gfx1", 0 ) /* Sprites */
|
||||
NAMCOS2_GFXROM_LOAD_128K( "or_obj-0.obj0", 0x000000, CRC(67b2b9e4) SHA1(4e589c28ed23224e40d3c68055ada0136cbf94cb) )
|
||||
@ -4286,9 +4225,8 @@ ROM_START( phelios )
|
||||
ROM_CONTINUE( 0x010000, 0x01c000 )
|
||||
ROM_RELOAD( 0x010000, 0x020000 )
|
||||
|
||||
ROM_REGION( 0x010000, "mcu", 0 ) /* I/O MCU */
|
||||
ROM_LOAD( "sys2mcpu.bin", 0x000000, 0x002000, CRC(a342a97e) SHA1(2c420d34dba21e409bf78ddca710fc7de65a6642) )
|
||||
ROM_LOAD( "sys2_c65c.3f", 0x008000, 0x008000, CRC(a5b2a4ff) SHA1(068bdfcc71a5e83706e8b23330691973c1c214dc) )
|
||||
ROM_REGION( 0x8000, "c65mcu:external", ROMREGION_ERASE00 ) /* I/O MCU */
|
||||
ROM_LOAD( "sys2_c65c.3f", 0x000000, 0x008000, CRC(a5b2a4ff) SHA1(068bdfcc71a5e83706e8b23330691973c1c214dc) )
|
||||
|
||||
ROM_REGION( 0x400000, "gfx1", 0 ) /* Sprites */
|
||||
NAMCOS2_GFXROM_LOAD_256K( "ps_obj-0.obj0", 0x000000, CRC(f323db2b) SHA1(fa3c42c618da06af161ad3f8aa1283e9c4bd63c0) )
|
||||
@ -4344,9 +4282,8 @@ ROM_START( pheliosj )
|
||||
ROM_CONTINUE( 0x010000, 0x01c000 )
|
||||
ROM_RELOAD( 0x010000, 0x020000 )
|
||||
|
||||
ROM_REGION( 0x010000, "mcu", 0 ) /* I/O MCU */
|
||||
ROM_LOAD( "sys2mcpu.bin", 0x000000, 0x002000, CRC(a342a97e) SHA1(2c420d34dba21e409bf78ddca710fc7de65a6642) )
|
||||
ROM_LOAD( "sys2_c65c.3f", 0x008000, 0x008000, CRC(a5b2a4ff) SHA1(068bdfcc71a5e83706e8b23330691973c1c214dc) )
|
||||
ROM_REGION( 0x8000, "c65mcu:external", ROMREGION_ERASE00 ) /* I/O MCU */
|
||||
ROM_LOAD( "sys2_c65c.3f", 0x000000, 0x008000, CRC(a5b2a4ff) SHA1(068bdfcc71a5e83706e8b23330691973c1c214dc) )
|
||||
|
||||
ROM_REGION( 0x400000, "gfx1", 0 ) /* Sprites */
|
||||
NAMCOS2_GFXROM_LOAD_256K( "ps_obj-0.obj0", 0x000000, CRC(f323db2b) SHA1(fa3c42c618da06af161ad3f8aa1283e9c4bd63c0) )
|
||||
@ -4403,9 +4340,8 @@ ROM_START( rthun2 )
|
||||
ROM_RELOAD( 0x010000, 0x020000 )
|
||||
ROM_LOAD( "rst1_snd1.bin", 0x030000, 0x020000, CRC(00445a4f) SHA1(2e136e3c38e4a1b69f80a19e07555f3269b7beb1) )
|
||||
|
||||
ROM_REGION( 0x010000, "mcu", 0 ) /* I/O MCU */
|
||||
ROM_LOAD( "sys2mcpu.bin", 0x000000, 0x002000, CRC(a342a97e) SHA1(2c420d34dba21e409bf78ddca710fc7de65a6642) )
|
||||
ROM_LOAD( "sys2c65c.bin", 0x008000, 0x008000, CRC(a5b2a4ff) SHA1(068bdfcc71a5e83706e8b23330691973c1c214dc) )
|
||||
ROM_REGION( 0x8000, "c65mcu:external", ROMREGION_ERASE00 ) /* I/O MCU */
|
||||
ROM_LOAD( "sys2c65c.bin", 0x000000, 0x008000, CRC(a5b2a4ff) SHA1(068bdfcc71a5e83706e8b23330691973c1c214dc) )
|
||||
|
||||
ROM_REGION( 0x400000, "gfx1", 0 ) /* Sprites */
|
||||
ROM_LOAD( "rst1_obj0.bin", 0x000000, 0x80000, CRC(e5cb82c1) SHA1(2dc1922ecfd9e52af8c4a1edac1df343be64b499) )
|
||||
@ -4449,9 +4385,8 @@ ROM_START( rthun2j )
|
||||
ROM_RELOAD( 0x010000, 0x020000 )
|
||||
ROM_LOAD( "rst1_snd1.bin", 0x030000, 0x020000, CRC(00445a4f) SHA1(2e136e3c38e4a1b69f80a19e07555f3269b7beb1) )
|
||||
|
||||
ROM_REGION( 0x010000, "mcu", 0 ) /* I/O MCU */
|
||||
ROM_LOAD( "sys2mcpu.bin", 0x000000, 0x002000, CRC(a342a97e) SHA1(2c420d34dba21e409bf78ddca710fc7de65a6642) )
|
||||
ROM_LOAD( "sys2c65c.bin", 0x008000, 0x008000, CRC(a5b2a4ff) SHA1(068bdfcc71a5e83706e8b23330691973c1c214dc) )
|
||||
ROM_REGION( 0x8000, "c65mcu:external", ROMREGION_ERASE00 ) /* I/O MCU */
|
||||
ROM_LOAD( "sys2c65c.bin", 0x000000, 0x008000, CRC(a5b2a4ff) SHA1(068bdfcc71a5e83706e8b23330691973c1c214dc) )
|
||||
|
||||
ROM_REGION( 0x400000, "gfx1", 0 ) /* Sprites */
|
||||
ROM_LOAD( "rst1_obj0.bin", 0x000000, 0x80000, CRC(e5cb82c1) SHA1(2dc1922ecfd9e52af8c4a1edac1df343be64b499) )
|
||||
@ -4502,9 +4437,8 @@ ROM_START( sgunner )
|
||||
ROM_CONTINUE( 0x010000, 0x01c000 )
|
||||
ROM_RELOAD( 0x010000, 0x020000 )
|
||||
|
||||
ROM_REGION( 0x010000, "mcu", 0 ) /* I/O MCU */
|
||||
ROM_LOAD( "c68.3d", 0x000000, 0x002000, BAD_DUMP CRC(a342a97e) SHA1(2c420d34dba21e409bf78ddca710fc7de65a6642) )
|
||||
ROM_LOAD( "sys2c68.3f", 0x008000, 0x008000, BAD_DUMP CRC(a5b2a4ff) SHA1(068bdfcc71a5e83706e8b23330691973c1c214dc) )
|
||||
ROM_REGION( 0x8000, "c65mcu:external", ROMREGION_ERASE00 ) /* I/O MCU */
|
||||
ROM_LOAD( "sys2c68.3f", 0x000000, 0x008000, BAD_DUMP CRC(a5b2a4ff) SHA1(068bdfcc71a5e83706e8b23330691973c1c214dc) ) /* not sure */
|
||||
|
||||
ROM_REGION( 0x400000, "gfx1", 0 ) /* Sprites */
|
||||
ROM_LOAD( "sn_obj0.8c", 0x000000, 0x80000, CRC(bbae38f7) SHA1(7a40ade13307791f5c5d300882f9a38e18c411d6) )
|
||||
@ -4553,9 +4487,8 @@ ROM_START( sgunnerj )
|
||||
ROM_CONTINUE( 0x010000, 0x01c000 )
|
||||
ROM_RELOAD( 0x010000, 0x020000 )
|
||||
|
||||
ROM_REGION( 0x010000, "mcu", 0 ) /* I/O MCU */
|
||||
ROM_LOAD( "c68.3d", 0x000000, 0x002000, BAD_DUMP CRC(a342a97e) SHA1(2c420d34dba21e409bf78ddca710fc7de65a6642) )
|
||||
ROM_LOAD( "sys2c68.3f", 0x008000, 0x008000, BAD_DUMP CRC(a5b2a4ff) SHA1(068bdfcc71a5e83706e8b23330691973c1c214dc) )
|
||||
ROM_REGION( 0x8000, "c65mcu:external", ROMREGION_ERASE00 ) /* I/O MCU */
|
||||
ROM_LOAD( "sys2c68.3f", 0x000000, 0x008000, BAD_DUMP CRC(a5b2a4ff) SHA1(068bdfcc71a5e83706e8b23330691973c1c214dc) ) /* not sure */
|
||||
|
||||
ROM_REGION( 0x400000, "gfx1", 0 ) /* Sprites */
|
||||
ROM_LOAD( "sn_obj0.8c", 0x000000, 0x80000, CRC(bbae38f7) SHA1(7a40ade13307791f5c5d300882f9a38e18c411d6) )
|
||||
@ -4604,8 +4537,8 @@ ROM_START( sgunner2 )
|
||||
ROM_CONTINUE( 0x010000, 0x01c000 )
|
||||
ROM_RELOAD( 0x010000, 0x020000 )
|
||||
|
||||
ROM_REGION( 0x8000, "c68", 0 ) /* C68 (M37450) I/O MCU program */
|
||||
ROM_LOAD( "sys2_c68.3f", 0x000000, 0x008000, CRC(ca64550a) SHA1(38d1ad1b1287cadef0c999aff9357927315f8e6b) )
|
||||
ROM_REGION( 0x8000, "c68mcu:external", ROMREGION_ERASE00 ) /* C68 (M37450) I/O MCU program */
|
||||
/* external ROM not populated, unclear how it would map */
|
||||
|
||||
ROM_REGION( 0x400000, "gfx1", 0 ) /* Sprites */
|
||||
ROM_LOAD( "sns_obj0.bin", 0x000000, 0x80000, CRC(c762445c) SHA1(108170c9a5c82c23c1ac09f91195137ca05989f4) )
|
||||
@ -4658,12 +4591,8 @@ ROM_START( sgunner2j )
|
||||
ROM_CONTINUE( 0x010000, 0x01c000 )
|
||||
ROM_RELOAD( 0x010000, 0x020000 )
|
||||
|
||||
ROM_REGION( 0x010000, "mcu", 0 ) /* I/O MCU */
|
||||
ROM_LOAD( "sys2mcpu.bin", 0x000000, 0x002000, CRC(a342a97e) SHA1(2c420d34dba21e409bf78ddca710fc7de65a6642) )
|
||||
ROM_LOAD( "sys2c65c.bin", 0x008000, 0x008000, CRC(a5b2a4ff) SHA1(068bdfcc71a5e83706e8b23330691973c1c214dc) )
|
||||
|
||||
ROM_REGION( 0x8000, "c68", 0 ) /* C68 (M37450) I/O MCU program */
|
||||
ROM_LOAD( "sys2_c68.3f", 0x000000, 0x008000, CRC(ca64550a) SHA1(38d1ad1b1287cadef0c999aff9357927315f8e6b) )
|
||||
ROM_REGION( 0x8000, "c68mcu:external", ROMREGION_ERASE00 ) /* C68 (M37450) I/O MCU program */
|
||||
/* external ROM not populated, unclear how it would map */
|
||||
|
||||
ROM_REGION( 0x400000, "gfx1", 0 ) /* Sprites */
|
||||
ROM_LOAD( "sns_obj0.bin", 0x000000, 0x80000, CRC(c762445c) SHA1(108170c9a5c82c23c1ac09f91195137ca05989f4) )
|
||||
@ -4716,9 +4645,8 @@ ROM_START( sws )
|
||||
ROM_CONTINUE( 0x010000, 0x01c000 )
|
||||
ROM_RELOAD( 0x010000, 0x020000 )
|
||||
|
||||
ROM_REGION( 0x010000, "mcu", 0 ) /* I/O MCU */
|
||||
ROM_LOAD( "c68.3d", 0x000000, 0x002000, BAD_DUMP CRC(a342a97e) SHA1(2c420d34dba21e409bf78ddca710fc7de65a6642) )
|
||||
ROM_LOAD( "sys2c68.3f", 0x008000, 0x008000, CRC(ca64550a) SHA1(38d1ad1b1287cadef0c999aff9357927315f8e6b) )
|
||||
ROM_REGION( 0x8000, "c65mcu:external", ROMREGION_ERASE00 ) /* I/O MCU */
|
||||
/* should be c68 */
|
||||
|
||||
ROM_REGION( 0x400000, "gfx1", 0 ) /* Sprites */
|
||||
ROM_LOAD( "ss1_obj0.5b", 0x000000, 0x80000, CRC(9bd6add1) SHA1(34595987670d7f64ba18a840e98667b96ae5e4bf) )
|
||||
@ -4760,9 +4688,8 @@ ROM_START( sws92 )
|
||||
ROM_CONTINUE( 0x010000, 0x01c000 )
|
||||
ROM_RELOAD( 0x010000, 0x020000 )
|
||||
|
||||
ROM_REGION( 0x010000, "mcu", 0 ) /* I/O MCU */
|
||||
ROM_LOAD( "c68.3d", 0x000000, 0x002000, BAD_DUMP CRC(a342a97e) SHA1(2c420d34dba21e409bf78ddca710fc7de65a6642) )
|
||||
ROM_LOAD( "sys2c68.3f", 0x008000, 0x008000, CRC(ca64550a) SHA1(38d1ad1b1287cadef0c999aff9357927315f8e6b) )
|
||||
ROM_REGION( 0x8000, "c65mcu:external", ROMREGION_ERASE00 ) /* I/O MCU */
|
||||
/* should be c68 */
|
||||
|
||||
ROM_REGION( 0x400000, "gfx1", 0 ) /* Sprites */
|
||||
ROM_LOAD( "sss_obj0.bin", 0x000000, 0x80000, CRC(375e8f1f) SHA1(b737bcceb498a66593d06ef102958bea90032106) )
|
||||
@ -4806,9 +4733,8 @@ ROM_START( sws92g )
|
||||
ROM_CONTINUE( 0x010000, 0x01c000 )
|
||||
ROM_RELOAD( 0x010000, 0x020000 )
|
||||
|
||||
ROM_REGION( 0x010000, "mcu", 0 ) /* I/O MCU */
|
||||
ROM_LOAD( "c68.3d", 0x000000, 0x002000, BAD_DUMP CRC(a342a97e) SHA1(2c420d34dba21e409bf78ddca710fc7de65a6642) )
|
||||
ROM_LOAD( "sys2c68.3f", 0x008000, 0x008000, CRC(ca64550a) SHA1(38d1ad1b1287cadef0c999aff9357927315f8e6b) )
|
||||
ROM_REGION( 0x8000, "c65mcu:external", ROMREGION_ERASE00 ) /* I/O MCU */
|
||||
/* should be c68 */
|
||||
|
||||
ROM_REGION( 0x400000, "gfx1", 0 ) /* Sprites */
|
||||
ROM_LOAD( "sss_obj0.bin", 0x000000, 0x80000, CRC(375e8f1f) SHA1(b737bcceb498a66593d06ef102958bea90032106) )
|
||||
@ -4854,9 +4780,8 @@ ROM_START( sws93 )
|
||||
ROM_CONTINUE( 0x010000, 0x01c000 )
|
||||
ROM_RELOAD( 0x010000, 0x020000 )
|
||||
|
||||
ROM_REGION( 0x010000, "mcu", 0 ) /* I/O MCU */
|
||||
ROM_LOAD( "sys2mcpu.bin", 0x000000, 0x002000, CRC(a342a97e) SHA1(2c420d34dba21e409bf78ddca710fc7de65a6642) )
|
||||
ROM_LOAD( "sys2c65c.bin", 0x008000, 0x008000, CRC(a5b2a4ff) SHA1(068bdfcc71a5e83706e8b23330691973c1c214dc) )
|
||||
ROM_REGION( 0x8000, "c65mcu:external", ROMREGION_ERASE00 ) /* I/O MCU */
|
||||
ROM_LOAD( "sys2c65c.bin", 0x000000, 0x008000, CRC(a5b2a4ff) SHA1(068bdfcc71a5e83706e8b23330691973c1c214dc) )
|
||||
|
||||
ROM_REGION( 0x400000, "gfx1", 0 ) /* Sprites */
|
||||
ROM_LOAD( "sst_obj0.bin", 0x000000, 0x80000, CRC(4089dfd7) SHA1(d37fb08d03a4d3f87b10a8e73bbb1817543396ff) )
|
||||
@ -4900,9 +4825,8 @@ ROM_START( suzuka8h )
|
||||
ROM_CONTINUE( 0x010000, 0x01c000 )
|
||||
ROM_RELOAD( 0x010000, 0x020000 )
|
||||
|
||||
ROM_REGION( 0x010000, "mcu", 0 ) /* I/O MCU */
|
||||
ROM_LOAD( "sys2mcpu.bin", 0x000000, 0x002000, CRC(a342a97e) SHA1(2c420d34dba21e409bf78ddca710fc7de65a6642) )
|
||||
ROM_LOAD( "sys2c65c.bin", 0x008000, 0x008000, BAD_DUMP CRC(a5b2a4ff) SHA1(068bdfcc71a5e83706e8b23330691973c1c214dc) )
|
||||
ROM_REGION( 0x8000, "c65mcu:external", ROMREGION_ERASE00 ) /* I/O MCU */
|
||||
ROM_LOAD( "sys2c65c.bin", 0x000000, 0x008000, BAD_DUMP CRC(a5b2a4ff) SHA1(068bdfcc71a5e83706e8b23330691973c1c214dc) ) /* not sure */
|
||||
|
||||
ROM_REGION( 0x400000, "gfx1", 0 ) /* Sprites */
|
||||
ROM_LOAD( "eh1-obj0.bin", 0x000000, 0x80000, CRC(864b6816) SHA1(72d831b631afb2848578bd49cd7d3e12a78644b4) )
|
||||
@ -4952,9 +4876,8 @@ ROM_START( suzuka8hj )
|
||||
ROM_CONTINUE( 0x010000, 0x01c000 )
|
||||
ROM_RELOAD( 0x010000, 0x020000 )
|
||||
|
||||
ROM_REGION( 0x010000, "mcu", 0 ) /* I/O MCU */
|
||||
ROM_LOAD( "sys2mcpu.bin", 0x000000, 0x002000, CRC(a342a97e) SHA1(2c420d34dba21e409bf78ddca710fc7de65a6642) )
|
||||
ROM_LOAD( "sys2c65c.bin", 0x008000, 0x008000, BAD_DUMP CRC(a5b2a4ff) SHA1(068bdfcc71a5e83706e8b23330691973c1c214dc) )
|
||||
ROM_REGION( 0x8000, "c65mcu:external", ROMREGION_ERASE00 ) /* I/O MCU */
|
||||
ROM_LOAD( "sys2c65c.bin", 0x000000, 0x008000, BAD_DUMP CRC(a5b2a4ff) SHA1(068bdfcc71a5e83706e8b23330691973c1c214dc) ) /* not sure */
|
||||
|
||||
ROM_REGION( 0x400000, "gfx1", 0 ) /* Sprites */
|
||||
ROM_LOAD( "eh1-obj0.bin", 0x000000, 0x80000, CRC(864b6816) SHA1(72d831b631afb2848578bd49cd7d3e12a78644b4) )
|
||||
@ -5004,10 +4927,8 @@ ROM_START( suzuk8h2 )
|
||||
ROM_CONTINUE( 0x010000, 0x01c000 )
|
||||
ROM_RELOAD( 0x010000, 0x020000 )
|
||||
|
||||
ROM_REGION( 0x010000, "mcu", 0 ) /* I/O MCU */
|
||||
ROM_LOAD( "c68.3d", 0x000000, 0x002000, BAD_DUMP CRC(a342a97e) SHA1(2c420d34dba21e409bf78ddca710fc7de65a6642) )
|
||||
ROM_LOAD( "sys2c68.3f", 0x008000, 0x008000, BAD_DUMP CRC(a5b2a4ff) SHA1(068bdfcc71a5e83706e8b23330691973c1c214dc) )
|
||||
/*There is no C65 on the board. There is C68 instead */
|
||||
ROM_REGION( 0x8000, "c65mcu:external", ROMREGION_ERASE00 ) /* I/O MCU */
|
||||
ROM_LOAD( "sys2c68.3f", 0x000000, 0x008000, BAD_DUMP CRC(a5b2a4ff) SHA1(068bdfcc71a5e83706e8b23330691973c1c214dc) ) /* should be c68 */
|
||||
|
||||
ROM_REGION( 0x400000, "gfx1", 0 ) /* Sprites */
|
||||
ROM_LOAD( "ehs1-obj0.3p", 0x000000, 0x80000, CRC(a0acf307) SHA1(6d79d2dd00da4f8f0462245f42a9d88b6ad632b1) )
|
||||
@ -5064,10 +4985,8 @@ ROM_START( suzuk8h2j )
|
||||
ROM_CONTINUE( 0x010000, 0x01c000 )
|
||||
ROM_RELOAD( 0x010000, 0x020000 )
|
||||
|
||||
ROM_REGION( 0x010000, "mcu", 0 ) /* I/O MCU */
|
||||
ROM_LOAD( "c68.3d", 0x000000, 0x002000, BAD_DUMP CRC(a342a97e) SHA1(2c420d34dba21e409bf78ddca710fc7de65a6642) )
|
||||
ROM_LOAD( "sys2c68.3f", 0x008000, 0x008000, BAD_DUMP CRC(a5b2a4ff) SHA1(068bdfcc71a5e83706e8b23330691973c1c214dc) )
|
||||
/*There is no C65 on the board. There is C68 instead */
|
||||
ROM_REGION( 0x8000, "c65mcu:external", ROMREGION_ERASE00 ) /* I/O MCU */
|
||||
ROM_LOAD( "sys2c68.3f", 0x000000, 0x008000, BAD_DUMP CRC(a5b2a4ff) SHA1(068bdfcc71a5e83706e8b23330691973c1c214dc) ) /* should be c68 */
|
||||
|
||||
ROM_REGION( 0x400000, "gfx1", 0 ) /* Sprites */
|
||||
ROM_LOAD( "ehs1-obj0.3p", 0x000000, 0x80000, CRC(a0acf307) SHA1(6d79d2dd00da4f8f0462245f42a9d88b6ad632b1) )
|
||||
@ -5124,9 +5043,8 @@ ROM_START( valkyrie )
|
||||
ROM_CONTINUE( 0x010000, 0x01c000 )
|
||||
ROM_RELOAD( 0x010000, 0x020000 )
|
||||
|
||||
ROM_REGION( 0x010000, "mcu", 0 ) /* I/O MCU */
|
||||
ROM_LOAD( "sys2mcpu.bin", 0x000000, 0x002000, CRC(a342a97e) SHA1(2c420d34dba21e409bf78ddca710fc7de65a6642) )
|
||||
ROM_LOAD( "sys2c65c.bin", 0x008000, 0x008000, CRC(a5b2a4ff) SHA1(068bdfcc71a5e83706e8b23330691973c1c214dc) )
|
||||
ROM_REGION( 0x8000, "c65mcu:external", ROMREGION_ERASE00 ) /* I/O MCU */
|
||||
ROM_LOAD( "sys2c65c.bin", 0x000000, 0x008000, CRC(a5b2a4ff) SHA1(068bdfcc71a5e83706e8b23330691973c1c214dc) )
|
||||
|
||||
ROM_REGION( 0x400000, "gfx1", 0 ) /* Sprites */
|
||||
NAMCOS2_GFXROM_LOAD_256K( "wdobj0.bin", 0x000000, CRC(e8089451) SHA1(f4d05df0015de01ec570f5f89ea11592204e4fe2) )
|
||||
@ -5183,9 +5101,8 @@ ROM_START( kyukaidk )
|
||||
ROM_CONTINUE( 0x010000, 0x01c000 )
|
||||
ROM_RELOAD( 0x010000, 0x020000 )
|
||||
|
||||
ROM_REGION( 0x010000, "mcu", 0 ) /* I/O MCU */
|
||||
ROM_LOAD( "sys2mcpu.bin", 0x000000, 0x002000, CRC(a342a97e) SHA1(2c420d34dba21e409bf78ddca710fc7de65a6642) )
|
||||
ROM_LOAD( "sys2c65c.bin", 0x008000, 0x008000, CRC(a5b2a4ff) SHA1(068bdfcc71a5e83706e8b23330691973c1c214dc) )
|
||||
ROM_REGION( 0x8000, "c65mcu:external", ROMREGION_ERASE00 ) /* I/O MCU */
|
||||
ROM_LOAD( "sys2c65c.bin", 0x000000, 0x008000, CRC(a5b2a4ff) SHA1(068bdfcc71a5e83706e8b23330691973c1c214dc) )
|
||||
|
||||
ROM_REGION( 0x400000, "gfx1", 0 ) /* Sprites */
|
||||
ROM_LOAD( "ky1_o0.bin", 0x000000, 0x80000, CRC(ebec5132) SHA1(8d2dec3f1cd27c203899bb715a9983fff7ab820d) )
|
||||
@ -5233,9 +5150,8 @@ ROM_START( kyukaidko )
|
||||
ROM_CONTINUE( 0x010000, 0x01c000 )
|
||||
ROM_RELOAD( 0x010000, 0x020000 )
|
||||
|
||||
ROM_REGION( 0x010000, "mcu", 0 ) /* I/O MCU */
|
||||
ROM_LOAD( "sys2mcpu.bin", 0x000000, 0x002000, CRC(a342a97e) SHA1(2c420d34dba21e409bf78ddca710fc7de65a6642) )
|
||||
ROM_LOAD( "sys2c65c.bin", 0x008000, 0x008000, CRC(a5b2a4ff) SHA1(068bdfcc71a5e83706e8b23330691973c1c214dc) )
|
||||
ROM_REGION( 0x8000, "c65mcu:external", ROMREGION_ERASE00 ) /* I/O MCU */
|
||||
ROM_LOAD( "sys2c65c.bin", 0x000000, 0x008000, CRC(a5b2a4ff) SHA1(068bdfcc71a5e83706e8b23330691973c1c214dc) )
|
||||
|
||||
ROM_REGION( 0x400000, "gfx1", 0 ) /* Sprites */
|
||||
ROM_LOAD( "ky1_o0.bin", 0x000000, 0x80000, CRC(ebec5132) SHA1(8d2dec3f1cd27c203899bb715a9983fff7ab820d) )
|
||||
@ -5283,9 +5199,8 @@ ROM_START( gollygho )
|
||||
ROM_CONTINUE( 0x010000, 0x01c000 )
|
||||
ROM_RELOAD( 0x010000, 0x020000 )
|
||||
|
||||
ROM_REGION( 0x010000, "mcu", 0 ) /* I/O MCU */
|
||||
ROM_LOAD( "sys2mcpu.bin", 0x0000, 0x2000, CRC(a342a97e) SHA1(2c420d34dba21e409bf78ddca710fc7de65a6642) )
|
||||
ROM_LOAD( "gl1edr0c.ic7", 0x8000, 0x8000, CRC(db60886f) SHA1(a1183c058c0470a4ef8b0f69a3637b1640c5b5a4) )
|
||||
ROM_REGION( 0x8000, "c65mcu:external", ROMREGION_ERASE00 ) /* I/O MCU */
|
||||
ROM_LOAD( "gl1edr0c.ic7", 0x0000, 0x8000, CRC(db60886f) SHA1(a1183c058c0470a4ef8b0f69a3637b1640c5b5a4) )
|
||||
|
||||
ROM_REGION( 0x400000, "gfx1", 0 ) /* Sprites */
|
||||
ROM_LOAD( "gl1obj0.5b", 0x000000, 0x40000, CRC(6809d267) SHA1(8a0f636067974e51659bd05a3c17819c630d70e3) )
|
||||
@ -5332,9 +5247,8 @@ ROM_START( bubbletr ) /* All labels were hand written and included the rom size,
|
||||
ROM_CONTINUE( 0x010000, 0x01c000 )
|
||||
ROM_RELOAD( 0x010000, 0x020000 )
|
||||
|
||||
ROM_REGION( 0x010000, "mcu", 0 ) /* I/O MCU */
|
||||
ROM_LOAD( "sys2mcpu.bin", 0x0000, 0x2000, CRC(a342a97e) SHA1(2c420d34dba21e409bf78ddca710fc7de65a6642) )
|
||||
ROM_LOAD( "bt1edr0a.ic7", 0x8000, 0x8000, CRC(155b02fc) SHA1(191683c19f756ac150b8e037f46a6daca1a082fa) ) /* dated 4/24 */
|
||||
ROM_REGION( 0x8000, "c65mcu:external", ROMREGION_ERASE00 ) /* I/O MCU */
|
||||
ROM_LOAD( "bt1edr0a.ic7", 0x0000, 0x8000, CRC(155b02fc) SHA1(191683c19f756ac150b8e037f46a6daca1a082fa) ) /* dated 4/24 */
|
||||
|
||||
ROM_REGION( 0x400000, "gfx1", 0 ) /* Sprites */
|
||||
ROM_LOAD( "bt1-obj0.5b", 0x000000, 0x80000, CRC(16b5dc04) SHA1(57cc4b7907442f922102fbd61e470c149f0379ac) ) /* dated 4/24 */
|
||||
@ -5381,9 +5295,8 @@ ROM_START( bubbletrj )
|
||||
ROM_CONTINUE( 0x010000, 0x01c000 )
|
||||
ROM_RELOAD( 0x010000, 0x020000 )
|
||||
|
||||
ROM_REGION( 0x010000, "mcu", 0 ) /* I/O MCU */
|
||||
ROM_LOAD( "sys2mcpu.bin", 0x0000, 0x2000, CRC(a342a97e) SHA1(2c420d34dba21e409bf78ddca710fc7de65a6642) )
|
||||
ROM_LOAD( "bt1edr0a.ic7", 0x8000, 0x8000, CRC(155b02fc) SHA1(191683c19f756ac150b8e037f46a6daca1a082fa) )
|
||||
ROM_REGION( 0x8000, "c65mcu:external", ROMREGION_ERASE00 ) /* I/O MCU */
|
||||
ROM_LOAD( "bt1edr0a.ic7", 0x0000, 0x8000, CRC(155b02fc) SHA1(191683c19f756ac150b8e037f46a6daca1a082fa) )
|
||||
|
||||
ROM_REGION( 0x400000, "gfx1", 0 ) /* Sprites */
|
||||
ROM_LOAD( "bt1-obj0.5b", 0x000000, 0x80000, CRC(16b5dc04) SHA1(57cc4b7907442f922102fbd61e470c149f0379ac) )
|
||||
@ -5538,9 +5451,8 @@ ROM_START( luckywld )
|
||||
ROM_CONTINUE( 0x010000, 0x01c000 )
|
||||
ROM_RELOAD( 0x010000, 0x020000 )
|
||||
|
||||
ROM_REGION( 0x010000, "mcu", 0 ) /* I/O MCU */
|
||||
ROM_LOAD( "c68.3d", 0x000000, 0x002000, BAD_DUMP CRC(a342a97e) SHA1(2c420d34dba21e409bf78ddca710fc7de65a6642) )
|
||||
/* MCU code only, C68PRG socket is unpopulated on real Lucky & Wild PCB */
|
||||
ROM_REGION( 0x8000, "c65mcu:external", ROMREGION_ERASE00 ) /* I/O MCU */
|
||||
/* should be c68 */
|
||||
|
||||
ROM_REGION( 0x400000, "gfx1", 0 ) /* Sprites */
|
||||
ROM_LOAD( "lw1obj0.3p", 0x000000, 0x80000, CRC(21485830) SHA1(e55a1f6df90c17b9c49e2b08c423b9be86996659) )
|
||||
@ -5604,9 +5516,8 @@ ROM_START( luckywldj )
|
||||
ROM_CONTINUE( 0x010000, 0x01c000 )
|
||||
ROM_RELOAD( 0x010000, 0x020000 )
|
||||
|
||||
ROM_REGION( 0x010000, "mcu", 0 ) /* I/O MCU */
|
||||
ROM_LOAD( "c68.3d", 0x000000, 0x002000, BAD_DUMP CRC(a342a97e) SHA1(2c420d34dba21e409bf78ddca710fc7de65a6642) )
|
||||
/* MCU code only, C68PRG socket is unpopulated on real Lucky & Wild PCB */
|
||||
ROM_REGION( 0x8000, "c65mcu:external", ROMREGION_ERASE00 ) /* I/O MCU */
|
||||
/* should be c68 */
|
||||
|
||||
ROM_REGION( 0x400000, "gfx1", 0 ) /* Sprites */
|
||||
ROM_LOAD( "lw1obj0.3p", 0x000000, 0x80000, CRC(21485830) SHA1(e55a1f6df90c17b9c49e2b08c423b9be86996659) )
|
||||
|
@ -1552,26 +1552,27 @@ void namcos21_state::sound_map(address_map &map)
|
||||
/* I/O HD63705 MCU Memory declarations */
|
||||
/*************************************************************/
|
||||
|
||||
void namcos21_state::mcu_map(address_map &map)
|
||||
void namcos21_state::configure_c65_namcos21(machine_config &config)
|
||||
{
|
||||
map(0x0000, 0x003f).ram();
|
||||
map(0x0000, 0x0000).nopr();
|
||||
map(0x0001, 0x0001).portr("PORTB"); /* p1,p2 start */
|
||||
map(0x0002, 0x0002).portr("PORTC"); /* coins */
|
||||
map(0x0003, 0x0003).rw(FUNC(namcos21_state::namcos2_mcu_port_d_r), FUNC(namcos21_state::namcos2_mcu_port_d_w));
|
||||
map(0x0007, 0x0007).portr("PORTH"); /* fire buttons */
|
||||
map(0x0010, 0x0010).rw(FUNC(namcos21_state::namcos2_mcu_analog_ctrl_r), FUNC(namcos21_state::namcos2_mcu_analog_ctrl_w));
|
||||
map(0x0011, 0x0011).rw(FUNC(namcos21_state::namcos2_mcu_analog_port_r), FUNC(namcos21_state::namcos2_mcu_analog_port_w));
|
||||
map(0x0040, 0x01bf).ram();
|
||||
map(0x01c0, 0x1fff).rom();
|
||||
map(0x2000, 0x2000).portr("DSW");
|
||||
map(0x3000, 0x3000).portr("DIAL0");
|
||||
map(0x3001, 0x3001).portr("DIAL1");
|
||||
map(0x3002, 0x3002).portr("DIAL2");
|
||||
map(0x3003, 0x3003).portr("DIAL3");
|
||||
map(0x5000, 0x57ff).rw(FUNC(namcos21_state::namcos2_dualportram_byte_r), FUNC(namcos21_state::namcos2_dualportram_byte_w)).share("mpdualportram");
|
||||
map(0x6000, 0x6fff).nopr(); /* watchdog */
|
||||
map(0x8000, 0xffff).rom();
|
||||
NAMCOC65(config, m_c65, 2048000);
|
||||
m_c65->in_pb_callback().set_ioport("PORTB");
|
||||
m_c65->in_pc_callback().set_ioport("PORTC");
|
||||
m_c65->in_ph_callback().set_ioport("PORTH");
|
||||
m_c65->in_pdsw_callback().set_ioport("DSW");
|
||||
m_c65->di0_in_cb().set_ioport("DIAL0");
|
||||
m_c65->di1_in_cb().set_ioport("DIAL1");
|
||||
m_c65->di2_in_cb().set_ioport("DIAL2");
|
||||
m_c65->di3_in_cb().set_ioport("DIAL3");
|
||||
m_c65->an0_in_cb().set_ioport("AN0");
|
||||
m_c65->an1_in_cb().set_ioport("AN1");
|
||||
m_c65->an2_in_cb().set_ioport("AN2");
|
||||
m_c65->an3_in_cb().set_ioport("AN3");
|
||||
m_c65->an4_in_cb().set_ioport("AN4");
|
||||
m_c65->an5_in_cb().set_ioport("AN5");
|
||||
m_c65->an6_in_cb().set_ioport("AN6");
|
||||
m_c65->an7_in_cb().set_ioport("AN7");
|
||||
m_c65->dp_in_callback().set(FUNC(namcos21_state::namcos2_dualportram_byte_r));
|
||||
m_c65->dp_out_callback().set(FUNC(namcos21_state::namcos2_dualportram_byte_w));
|
||||
}
|
||||
|
||||
|
||||
@ -1891,6 +1892,9 @@ TIMER_DEVICE_CALLBACK_MEMBER(namcos21_state::screen_scanline)
|
||||
m_slave_intc->vblank_irq_trigger();
|
||||
if(m_gpu_intc)
|
||||
m_gpu_intc->vblank_irq_trigger();
|
||||
|
||||
if (m_c65)
|
||||
m_c65->ext_interrupt(HOLD_LINE);
|
||||
}
|
||||
|
||||
if(m_gpu_intc != nullptr)
|
||||
@ -1924,9 +1928,7 @@ MACHINE_CONFIG_START(namcos21_state::namcos21)
|
||||
MCFG_DEVICE_PERIODIC_INT_DRIVER(namcos21_state, irq0_line_hold, 2*60)
|
||||
MCFG_DEVICE_PERIODIC_INT_DRIVER(namcos21_state, irq1_line_hold, 120)
|
||||
|
||||
MCFG_DEVICE_ADD("mcu", HD63705,2048000) /* IO */
|
||||
MCFG_DEVICE_PROGRAM_MAP(mcu_map)
|
||||
MCFG_DEVICE_VBLANK_INT_DRIVER("screen", namcos21_state, irq0_line_hold)
|
||||
configure_c65_namcos21(config);
|
||||
|
||||
MCFG_DEVICE_ADD("dspmaster", TMS32025,24000000) /* 24 MHz? overclocked */
|
||||
MCFG_DEVICE_PROGRAM_MAP(master_dsp_program)
|
||||
@ -1991,9 +1993,7 @@ MACHINE_CONFIG_START(namcos21_state::driveyes)
|
||||
MCFG_DEVICE_PERIODIC_INT_DRIVER(namcos21_state, irq0_line_hold, 2*60)
|
||||
MCFG_DEVICE_PERIODIC_INT_DRIVER(namcos21_state, irq1_line_hold, 120)
|
||||
|
||||
MCFG_DEVICE_ADD("mcu", HD63705,2048000) /* IO */
|
||||
MCFG_DEVICE_PROGRAM_MAP(mcu_map)
|
||||
MCFG_DEVICE_VBLANK_INT_DRIVER("screen", namcos21_state, irq0_line_hold)
|
||||
configure_c65_namcos21(config);
|
||||
|
||||
MCFG_DEVICE_ADD("dsp", TMS32025,24000000*2) /* 24 MHz? overclocked */
|
||||
MCFG_DEVICE_PROGRAM_MAP(winrun_dsp_program)
|
||||
@ -2052,9 +2052,7 @@ MACHINE_CONFIG_START(namcos21_state::winrun)
|
||||
MCFG_DEVICE_PERIODIC_INT_DRIVER(namcos21_state, irq0_line_hold, 2*60)
|
||||
MCFG_DEVICE_PERIODIC_INT_DRIVER(namcos21_state, irq1_line_hold, 120)
|
||||
|
||||
MCFG_DEVICE_ADD("mcu", HD63705,2048000) /* IO */
|
||||
MCFG_DEVICE_PROGRAM_MAP(mcu_map)
|
||||
MCFG_DEVICE_VBLANK_INT_DRIVER("screen", namcos21_state, irq0_line_hold)
|
||||
configure_c65_namcos21(config);
|
||||
|
||||
MCFG_DEVICE_ADD("dsp", TMS32025,24000000) /* 24 MHz? overclocked */
|
||||
MCFG_DEVICE_PROGRAM_MAP(winrun_dsp_program)
|
||||
@ -2116,9 +2114,8 @@ ROM_START( aircomb )
|
||||
ROM_CONTINUE( 0x010000, 0x01c000 )
|
||||
ROM_RELOAD( 0x010000, 0x020000 )
|
||||
|
||||
ROM_REGION( 0x010000, "mcu", 0 ) /* I/O MCU */
|
||||
ROM_LOAD( "sys2mcpu.bin", 0x000000, 0x002000, CRC(a342a97e) SHA1(2c420d34dba21e409bf78ddca710fc7de65a6642) )
|
||||
ROM_LOAD( "sys2c65c.bin", 0x008000, 0x008000, CRC(a5b2a4ff) SHA1(068bdfcc71a5e83706e8b23330691973c1c214dc) )
|
||||
ROM_REGION( 0x8000, "c65mcu:external", ROMREGION_ERASE00 ) /* I/O MCU */
|
||||
ROM_LOAD( "sys2c65c.bin", 0x000000, 0x008000, CRC(a5b2a4ff) SHA1(068bdfcc71a5e83706e8b23330691973c1c214dc) )
|
||||
|
||||
ROM_REGION( 0x20000, "dspmaster", 0 ) /* Master DSP */
|
||||
ROM_LOAD( "c67.bin", 0, 0x2000, CRC(6bd8988e) SHA1(c9ec18d5f88d53976b94444eedc64d5568155958) )
|
||||
@ -2177,9 +2174,8 @@ ROM_START( aircombj )
|
||||
ROM_CONTINUE( 0x010000, 0x01c000 )
|
||||
ROM_RELOAD( 0x010000, 0x020000 )
|
||||
|
||||
ROM_REGION( 0x010000, "mcu", 0 ) /* I/O MCU */
|
||||
ROM_LOAD( "sys2mcpu.bin", 0x000000, 0x002000, CRC(a342a97e) SHA1(2c420d34dba21e409bf78ddca710fc7de65a6642) )
|
||||
ROM_LOAD( "sys2c65c.bin", 0x008000, 0x008000, CRC(a5b2a4ff) SHA1(068bdfcc71a5e83706e8b23330691973c1c214dc) )
|
||||
ROM_REGION( 0x8000, "c65mcu:external", ROMREGION_ERASE00 ) /* I/O MCU */
|
||||
ROM_LOAD( "sys2c65c.bin", 0x000000, 0x008000, CRC(a5b2a4ff) SHA1(068bdfcc71a5e83706e8b23330691973c1c214dc) )
|
||||
|
||||
ROM_REGION( 0x20000, "dspmaster", 0 ) /* Master DSP */
|
||||
ROM_LOAD( "c67.bin", 0, 0x2000, CRC(6bd8988e) SHA1(c9ec18d5f88d53976b94444eedc64d5568155958) )
|
||||
@ -2238,9 +2234,8 @@ ROM_START( cybsled )
|
||||
ROM_CONTINUE( 0x010000, 0x01c000 )
|
||||
ROM_RELOAD( 0x010000, 0x020000 )
|
||||
|
||||
ROM_REGION( 0x010000, "mcu", 0 ) /* I/O MCU */
|
||||
ROM_LOAD( "sys2mcpu.bin", 0x000000, 0x002000, CRC(a342a97e) SHA1(2c420d34dba21e409bf78ddca710fc7de65a6642) )
|
||||
ROM_LOAD( "sys2c65c.bin", 0x008000, 0x008000, CRC(a5b2a4ff) SHA1(068bdfcc71a5e83706e8b23330691973c1c214dc) )
|
||||
ROM_REGION( 0x8000, "c65mcu:external", ROMREGION_ERASE00 ) /* I/O MCU */
|
||||
ROM_LOAD( "sys2c65c.bin", 0x000000, 0x008000, CRC(a5b2a4ff) SHA1(068bdfcc71a5e83706e8b23330691973c1c214dc) )
|
||||
|
||||
ROM_REGION( 0x20000, "dspmaster", 0 ) /* Master DSP */
|
||||
ROM_LOAD( "c67.bin", 0, 0x2000, CRC(6bd8988e) SHA1(c9ec18d5f88d53976b94444eedc64d5568155958) )
|
||||
@ -2297,9 +2292,8 @@ ROM_START( cybsledj )
|
||||
ROM_CONTINUE( 0x010000, 0x01c000 )
|
||||
ROM_RELOAD( 0x010000, 0x020000 )
|
||||
|
||||
ROM_REGION( 0x010000, "mcu", 0 ) /* I/O MCU */
|
||||
ROM_LOAD( "sys2mcpu.bin", 0x000000, 0x002000, CRC(a342a97e) SHA1(2c420d34dba21e409bf78ddca710fc7de65a6642) )
|
||||
ROM_LOAD( "sys2c65c.bin", 0x008000, 0x008000, CRC(a5b2a4ff) SHA1(068bdfcc71a5e83706e8b23330691973c1c214dc) )
|
||||
ROM_REGION( 0x8000, "c65mcu:external", ROMREGION_ERASE00 ) /* I/O MCU */
|
||||
ROM_LOAD( "sys2c65c.bin", 0x000000, 0x008000, CRC(a5b2a4ff) SHA1(068bdfcc71a5e83706e8b23330691973c1c214dc) )
|
||||
|
||||
ROM_REGION( 0x20000, "dspmaster", 0 ) /* Master DSP */
|
||||
ROM_LOAD( "c67.bin", 0, 0x2000, CRC(6bd8988e) SHA1(c9ec18d5f88d53976b94444eedc64d5568155958) )
|
||||
@ -2365,9 +2359,8 @@ We load the "r" set, then load set2's sound CPU code over it to keep the "r" rom
|
||||
ROM_CONTINUE( 0x010000, 0x01c000 )
|
||||
ROM_RELOAD( 0x010000, 0x020000 )
|
||||
|
||||
ROM_REGION( 0x10000, "mcu", 0 ) /* I/O MCU */
|
||||
ROM_LOAD( "sys2mcpu.bin", 0x000000, 0x002000, CRC(a342a97e) SHA1(2c420d34dba21e409bf78ddca710fc7de65a6642) )
|
||||
ROM_LOAD( "sys2c65c.bin", 0x008000, 0x008000, CRC(a5b2a4ff) SHA1(068bdfcc71a5e83706e8b23330691973c1c214dc) )
|
||||
ROM_REGION( 0x8000, "c65mcu:external", ROMREGION_ERASE00 ) /* I/O MCU */
|
||||
ROM_LOAD( "sys2c65c.bin", 0x000000, 0x008000, CRC(a5b2a4ff) SHA1(068bdfcc71a5e83706e8b23330691973c1c214dc) )
|
||||
|
||||
ROM_REGION( 0x20000, "dsp", ROMREGION_ERASEFF ) /* C67 - DSP */
|
||||
|
||||
@ -2414,9 +2407,8 @@ ROM_START( starblad )
|
||||
ROM_CONTINUE( 0x010000, 0x01c000 )
|
||||
ROM_RELOAD( 0x010000, 0x020000 )
|
||||
|
||||
ROM_REGION( 0x010000, "mcu", 0 ) /* I/O MCU */
|
||||
ROM_LOAD( "sys2mcpu.bin", 0x000000, 0x002000, CRC(a342a97e) SHA1(2c420d34dba21e409bf78ddca710fc7de65a6642) )
|
||||
ROM_LOAD( "sys2c65c.bin", 0x008000, 0x008000, CRC(a5b2a4ff) SHA1(068bdfcc71a5e83706e8b23330691973c1c214dc) )
|
||||
ROM_REGION( 0x8000, "c65mcu:external", ROMREGION_ERASE00 ) /* I/O MCU */
|
||||
ROM_LOAD( "sys2c65c.bin", 0x000000, 0x008000, CRC(a5b2a4ff) SHA1(068bdfcc71a5e83706e8b23330691973c1c214dc) )
|
||||
|
||||
ROM_REGION( 0x20000, "dspmaster", 0 ) /* Master DSP */
|
||||
ROM_LOAD( "c67.bin", 0, 0x2000, CRC(6bd8988e) SHA1(c9ec18d5f88d53976b94444eedc64d5568155958) )
|
||||
@ -2467,9 +2459,8 @@ ROM_START( starbladj )
|
||||
ROM_CONTINUE( 0x010000, 0x01c000 )
|
||||
ROM_RELOAD( 0x010000, 0x020000 )
|
||||
|
||||
ROM_REGION( 0x010000, "mcu", 0 ) /* I/O MCU */
|
||||
ROM_LOAD( "sys2mcpu.bin", 0x000000, 0x002000, CRC(a342a97e) SHA1(2c420d34dba21e409bf78ddca710fc7de65a6642) )
|
||||
ROM_LOAD( "sys2c65c.bin", 0x008000, 0x008000, CRC(a5b2a4ff) SHA1(068bdfcc71a5e83706e8b23330691973c1c214dc) )
|
||||
ROM_REGION( 0x8000, "c65mcu:external", ROMREGION_ERASE00 ) /* I/O MCU */
|
||||
ROM_LOAD( "sys2c65c.bin", 0x000000, 0x008000, CRC(a5b2a4ff) SHA1(068bdfcc71a5e83706e8b23330691973c1c214dc) )
|
||||
|
||||
ROM_REGION( 0x20000, "dspmaster", 0 ) /* Master DSP */
|
||||
ROM_LOAD( "c67.bin", 0, 0x2000, CRC(6bd8988e) SHA1(c9ec18d5f88d53976b94444eedc64d5568155958) )
|
||||
@ -2520,9 +2511,8 @@ ROM_START( solvalou )
|
||||
ROM_CONTINUE( 0x010000, 0x01c000 )
|
||||
ROM_RELOAD( 0x010000, 0x020000 )
|
||||
|
||||
ROM_REGION( 0x010000, "mcu", 0 ) /* I/O MCU */
|
||||
ROM_LOAD( "sys2mcpu.bin", 0x000000, 0x002000, CRC(a342a97e) SHA1(2c420d34dba21e409bf78ddca710fc7de65a6642) )
|
||||
ROM_LOAD( "sys2c65c.bin", 0x008000, 0x008000, CRC(a5b2a4ff) SHA1(068bdfcc71a5e83706e8b23330691973c1c214dc) )
|
||||
ROM_REGION( 0x8000, "c65mcu:external", ROMREGION_ERASE00 ) /* I/O MCU */
|
||||
ROM_LOAD( "sys2c65c.bin", 0x000000, 0x008000, CRC(a5b2a4ff) SHA1(068bdfcc71a5e83706e8b23330691973c1c214dc) )
|
||||
|
||||
ROM_REGION( 0x20000, "dspmaster", 0 ) /* Master DSP */
|
||||
ROM_LOAD( "c67.bin", 0, 0x2000, CRC(6bd8988e) SHA1(c9ec18d5f88d53976b94444eedc64d5568155958) )
|
||||
@ -2571,9 +2561,8 @@ ROM_START( winrun )
|
||||
ROM_CONTINUE( 0x010000, 0x01c000 )
|
||||
ROM_RELOAD( 0x010000, 0x020000 )
|
||||
|
||||
ROM_REGION( 0x10000, "mcu", 0 ) /* I/O MCU */
|
||||
ROM_LOAD( "sys2mcpu.bin", 0x000000, 0x002000, CRC(a342a97e) SHA1(2c420d34dba21e409bf78ddca710fc7de65a6642) )
|
||||
ROM_LOAD( "sys2c65c.bin", 0x008000, 0x008000, CRC(a5b2a4ff) SHA1(068bdfcc71a5e83706e8b23330691973c1c214dc) )
|
||||
ROM_REGION( 0x8000, "c65mcu:external", ROMREGION_ERASE00 ) /* I/O MCU */
|
||||
ROM_LOAD( "sys2c65c.bin", 0x000000, 0x008000, CRC(a5b2a4ff) SHA1(068bdfcc71a5e83706e8b23330691973c1c214dc) )
|
||||
|
||||
ROM_REGION( 0x20000, "dsp", ROMREGION_ERASEFF ) /* DSP */
|
||||
|
||||
@ -2637,9 +2626,8 @@ ROM_START( winrungp )
|
||||
ROM_CONTINUE( 0x010000, 0x01c000 )
|
||||
ROM_RELOAD( 0x010000, 0x020000 )
|
||||
|
||||
ROM_REGION( 0x10000, "mcu", 0 ) /* I/O MCU */
|
||||
ROM_LOAD( "sys2mcpu.bin", 0x000000, 0x002000, CRC(a342a97e) SHA1(2c420d34dba21e409bf78ddca710fc7de65a6642) )
|
||||
ROM_LOAD( "sys2c65c.bin", 0x008000, 0x008000, CRC(a5b2a4ff) SHA1(068bdfcc71a5e83706e8b23330691973c1c214dc) )
|
||||
ROM_REGION( 0x8000, "c65mcu:external", ROMREGION_ERASE00 ) /* I/O MCU */
|
||||
ROM_LOAD( "sys2c65c.bin", 0x000000, 0x008000, CRC(a5b2a4ff) SHA1(068bdfcc71a5e83706e8b23330691973c1c214dc) )
|
||||
|
||||
ROM_REGION( 0x20000, "dsp", ROMREGION_ERASEFF ) /* DSP */
|
||||
|
||||
@ -2686,9 +2674,8 @@ ROM_START( winrun91 )
|
||||
ROM_CONTINUE( 0x010000, 0x01c000 )
|
||||
ROM_RELOAD( 0x010000, 0x020000 )
|
||||
|
||||
ROM_REGION( 0x10000, "mcu", 0 ) /* I/O MCU */
|
||||
ROM_LOAD( "sys2mcpu.bin", 0x000000, 0x002000, CRC(a342a97e) SHA1(2c420d34dba21e409bf78ddca710fc7de65a6642) )
|
||||
ROM_LOAD( "sys2c65c.bin", 0x008000, 0x008000, CRC(a5b2a4ff) SHA1(068bdfcc71a5e83706e8b23330691973c1c214dc) )
|
||||
ROM_REGION( 0x8000, "c65mcu:external", ROMREGION_ERASE00 ) /* I/O MCU */
|
||||
ROM_LOAD( "sys2c65c.bin", 0x000000, 0x008000, CRC(a5b2a4ff) SHA1(068bdfcc71a5e83706e8b23330691973c1c214dc) )
|
||||
|
||||
ROM_REGION( 0x20000, "dsp", ROMREGION_ERASEFF ) /* DSP */
|
||||
|
||||
|
@ -18,6 +18,8 @@
|
||||
#include "sound/c140.h"
|
||||
#include "video/c45.h"
|
||||
#include "video/namco_c116.h"
|
||||
#include "machine/namco65.h"
|
||||
#include "machine/namco68.h"
|
||||
|
||||
#include "cpu/m6502/m3745x.h"
|
||||
#include "emupal.h"
|
||||
@ -112,7 +114,6 @@ public:
|
||||
, m_dspslave(*this, "dspslave")
|
||||
, m_gametype(0)
|
||||
, m_c140(*this, "c140")
|
||||
, m_c68(*this, "c68")
|
||||
, m_c116(*this, "c116")
|
||||
, m_master_intc(*this, "master_intc")
|
||||
, m_slave_intc(*this, "slave_intc")
|
||||
@ -127,6 +128,8 @@ public:
|
||||
, m_audiocpu(*this, "audiocpu")
|
||||
, m_slave(*this, "slave")
|
||||
, m_mcu(*this, "mcu")
|
||||
, m_c65(*this, "c65mcu")
|
||||
, m_c68new(*this, "c68mcu")
|
||||
, m_gfxdecode(*this, "gfxdecode")
|
||||
, m_screen(*this, "screen")
|
||||
, m_palette(*this, "palette")
|
||||
@ -139,7 +142,6 @@ public:
|
||||
|
||||
protected:
|
||||
optional_device<c140_device> m_c140;
|
||||
optional_device<m37450_device> m_c68;
|
||||
optional_device<namco_c116_device> m_c116;
|
||||
optional_device<namco_c148_device> m_master_intc;
|
||||
optional_device<namco_c148_device> m_slave_intc;
|
||||
@ -149,9 +151,6 @@ protected:
|
||||
// game type helpers
|
||||
bool is_system21();
|
||||
|
||||
int m_mcu_analog_ctrl;
|
||||
int m_mcu_analog_data;
|
||||
int m_mcu_analog_complete;
|
||||
std::unique_ptr<uint8_t[]> m_eeprom;
|
||||
|
||||
DECLARE_WRITE8_MEMBER(sound_reset_w);
|
||||
@ -266,18 +265,15 @@ protected:
|
||||
DECLARE_WRITE8_MEMBER( namcos2_68k_eeprom_w );
|
||||
DECLARE_READ8_MEMBER( namcos2_68k_eeprom_r );
|
||||
|
||||
DECLARE_WRITE8_MEMBER( namcos2_mcu_port_d_w );
|
||||
DECLARE_READ8_MEMBER( namcos2_mcu_port_d_r );
|
||||
DECLARE_WRITE8_MEMBER( namcos2_mcu_analog_ctrl_w );
|
||||
DECLARE_READ8_MEMBER( namcos2_mcu_analog_ctrl_r );
|
||||
DECLARE_WRITE8_MEMBER( namcos2_mcu_analog_port_w );
|
||||
DECLARE_READ8_MEMBER( namcos2_mcu_analog_port_r );
|
||||
DECLARE_WRITE8_MEMBER( namcos2_sound_bankselect_w );
|
||||
|
||||
required_device<cpu_device> m_maincpu;
|
||||
optional_device<cpu_device> m_audiocpu;
|
||||
optional_device<cpu_device> m_slave;
|
||||
optional_device<cpu_device> m_mcu;
|
||||
optional_device<namcoc65_device> m_c65;
|
||||
optional_device<namcoc68_device> m_c68new;
|
||||
|
||||
optional_device<gfxdecode_device> m_gfxdecode;
|
||||
optional_device<screen_device> m_screen;
|
||||
required_device<palette_device> m_palette;
|
||||
@ -297,6 +293,8 @@ public:
|
||||
|
||||
void configure_c116_standard(machine_config &config);
|
||||
void configure_c148_standard(machine_config &config);
|
||||
void configure_c65_standard(machine_config &config);
|
||||
void configure_c68_standard(machine_config &config);
|
||||
void metlhawk(machine_config &config);
|
||||
void gollygho(machine_config &config);
|
||||
void assaultp(machine_config &config);
|
||||
@ -345,13 +343,10 @@ public:
|
||||
void init_rthun2();
|
||||
|
||||
private:
|
||||
DECLARE_READ8_MEMBER(c68_p5_r);
|
||||
DECLARE_WRITE8_MEMBER(c68_p3_w);
|
||||
DECLARE_READ16_MEMBER(dpram_word_r);
|
||||
DECLARE_WRITE16_MEMBER(dpram_word_w);
|
||||
DECLARE_READ8_MEMBER(dpram_byte_r);
|
||||
DECLARE_WRITE8_MEMBER(dpram_byte_w);
|
||||
DECLARE_READ8_MEMBER(ack_mcu_vbl_r);
|
||||
|
||||
virtual void video_start() override;
|
||||
void video_start_finallap();
|
||||
@ -407,7 +402,6 @@ private:
|
||||
void RozCB_luckywld(uint16_t code, int *tile, int *mask, int which);
|
||||
void RozCB_metlhawk(uint16_t code, int *tile, int *mask, int which);
|
||||
|
||||
void c68_default_am(address_map &map);
|
||||
void common_default_am(address_map &map);
|
||||
void common_finallap_am(address_map &map);
|
||||
void common_luckywld_am(address_map &map);
|
||||
@ -418,7 +412,7 @@ private:
|
||||
void master_luckywld_am(address_map &map);
|
||||
void master_metlhawk_am(address_map &map);
|
||||
void master_sgunner_am(address_map &map);
|
||||
void mcu_default_am(address_map &map);
|
||||
|
||||
void namcos2_68k_default_cpu_board_am(address_map &map);
|
||||
void slave_default_am(address_map &map);
|
||||
void slave_finallap_am(address_map &map);
|
||||
|
@ -204,6 +204,7 @@ private:
|
||||
void render_slave_output(uint16_t data);
|
||||
void winrun_flush_poly();
|
||||
void init(int game_type);
|
||||
void configure_c65_namcos21(machine_config &config);
|
||||
void common_map(address_map &map);
|
||||
void driveyes_common_map(address_map &map);
|
||||
void driveyes_master_map(address_map &map);
|
||||
|
208
src/mame/machine/namco65.cpp
Normal file
208
src/mame/machine/namco65.cpp
Normal file
@ -0,0 +1,208 @@
|
||||
// license:BSD-3-Clause
|
||||
// copyright-holders:David Haywood, K.Wilkins
|
||||
|
||||
/*
|
||||
TODO:
|
||||
output support, Golly Ghost is currently hacking this based on DPRAM in the namcos2.cpp driver side!
|
||||
some of this can likely be moved into the actual MCU core too
|
||||
|
||||
*/
|
||||
|
||||
#include "emu.h"
|
||||
#include "machine/namco65.h"
|
||||
|
||||
DEFINE_DEVICE_TYPE(NAMCOC65, namcoc65_device, "namcoc65", "Namco C65 I/O")
|
||||
|
||||
namcoc65_device::namcoc65_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) :
|
||||
device_t(mconfig, NAMCOC65, tag, owner, clock),
|
||||
m_mcu(*this, "mcu"),
|
||||
m_in_pb_cb(*this),
|
||||
m_in_pc_cb(*this),
|
||||
m_in_ph_cb(*this),
|
||||
m_in_pdsw_cb(*this),
|
||||
m_port_analog_in_cb{{*this}, {*this}, {*this}, {*this}, {*this}, {*this}, {*this}, {*this}},
|
||||
m_port_dial_in_cb{{*this}, {*this}, {*this}, {*this}},
|
||||
m_dp_in(*this),
|
||||
m_dp_out(*this)
|
||||
{
|
||||
}
|
||||
|
||||
ROM_START( namcoc65 )
|
||||
ROM_REGION( 0x2000, "mcu", 0 )
|
||||
ROM_LOAD( "sys2mcpu.bin", 0x000000, 0x002000, CRC(a342a97e) SHA1(2c420d34dba21e409bf78ddca710fc7de65a6642) )
|
||||
ROM_END
|
||||
|
||||
|
||||
WRITE8_MEMBER( namcoc65_device::namcos2_mcu_port_d_w )
|
||||
{
|
||||
/* Undefined operation on write */
|
||||
}
|
||||
|
||||
READ8_MEMBER(namcoc65_device::namcos2_mcu_port_d_r)
|
||||
{
|
||||
/* Provides a digital version of the analog ports */
|
||||
int threshold = 0x7f;
|
||||
int data = 0;
|
||||
|
||||
/* Read/convert the bits one at a time */
|
||||
if (m_port_analog_in_cb[0]() > threshold) data |= 0x01;
|
||||
if (m_port_analog_in_cb[1]() > threshold) data |= 0x02;
|
||||
if (m_port_analog_in_cb[2]() > threshold) data |= 0x04;
|
||||
if (m_port_analog_in_cb[3]() > threshold) data |= 0x08;
|
||||
if (m_port_analog_in_cb[4]() > threshold) data |= 0x10;
|
||||
if (m_port_analog_in_cb[5]() > threshold) data |= 0x20;
|
||||
if (m_port_analog_in_cb[6]() > threshold) data |= 0x40;
|
||||
if (m_port_analog_in_cb[7]() > threshold) data |= 0x80;
|
||||
|
||||
/* Return the result */
|
||||
return data;
|
||||
}
|
||||
|
||||
|
||||
READ8_MEMBER(namcoc65_device::namcos2_mcu_analog_ctrl_r)
|
||||
{
|
||||
int data = 0;
|
||||
|
||||
/* ADEF flag is only cleared AFTER a read from control THEN a read from DATA */
|
||||
if (m_mcu_analog_complete == 2) m_mcu_analog_complete = 1;
|
||||
if (m_mcu_analog_complete) data |= 0x80;
|
||||
|
||||
/* Mask on the lower 6 register bits, Irq EN/Channel/Clock */
|
||||
data |= m_mcu_analog_ctrl & 0x3f;
|
||||
/* Return the value */
|
||||
return data;
|
||||
}
|
||||
|
||||
WRITE8_MEMBER( namcoc65_device::namcos2_mcu_analog_port_w )
|
||||
{
|
||||
}
|
||||
|
||||
READ8_MEMBER(namcoc65_device::namcos2_mcu_analog_port_r)
|
||||
{
|
||||
if (m_mcu_analog_complete == 1) m_mcu_analog_complete = 0;
|
||||
return m_mcu_analog_data;
|
||||
}
|
||||
|
||||
|
||||
WRITE8_MEMBER(namcoc65_device::namcos2_mcu_analog_ctrl_w)
|
||||
{
|
||||
m_mcu_analog_ctrl = data & 0xff;
|
||||
|
||||
/* Check if this is a start of conversion */
|
||||
/* Input ports 2 through 9 are the analog channels */
|
||||
|
||||
if (data & 0x40)
|
||||
{
|
||||
/* Set the conversion complete flag */
|
||||
m_mcu_analog_complete = 2;
|
||||
/* We convert instantly, good eh! (not really) */
|
||||
switch ((data >> 2) & 0x07)
|
||||
{
|
||||
case 0:
|
||||
m_mcu_analog_data = m_port_analog_in_cb[0]();
|
||||
break;
|
||||
case 1:
|
||||
m_mcu_analog_data = m_port_analog_in_cb[1]();
|
||||
break;
|
||||
case 2:
|
||||
m_mcu_analog_data = m_port_analog_in_cb[2]();
|
||||
break;
|
||||
case 3:
|
||||
m_mcu_analog_data = m_port_analog_in_cb[3]();
|
||||
break;
|
||||
case 4:
|
||||
m_mcu_analog_data = m_port_analog_in_cb[4]();
|
||||
break;
|
||||
case 5:
|
||||
m_mcu_analog_data = m_port_analog_in_cb[5]();
|
||||
break;
|
||||
case 6:
|
||||
m_mcu_analog_data = m_port_analog_in_cb[6]();
|
||||
break;
|
||||
case 7:
|
||||
m_mcu_analog_data = m_port_analog_in_cb[7]();
|
||||
break;
|
||||
default:
|
||||
//output().set_value("anunk",data);
|
||||
break;
|
||||
}
|
||||
|
||||
/* If the interrupt enable bit is set trigger an A/D IRQ */
|
||||
if (data & 0x20)
|
||||
{
|
||||
m_mcu->pulse_input_line(HD63705_INT_ADCONV, m_mcu->minimum_quantum_time());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
READ8_MEMBER(namcoc65_device::dpram_byte_r)
|
||||
{
|
||||
return m_dp_in(offset);
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(namcoc65_device::dpram_byte_w)
|
||||
{
|
||||
m_dp_out(offset,data);
|
||||
}
|
||||
|
||||
void namcoc65_device::mcu_map(address_map &map)
|
||||
{
|
||||
map(0x0000, 0x003f).ram(); /* Fill in register to stop logging */
|
||||
map(0x0000, 0x0000).nopr(); /* Keep logging quiet */
|
||||
map(0x0001, 0x0001).r(FUNC(namcoc65_device::mcub_r)); /* Usually P1/P2 direction inputs (UDL) + start buttons */
|
||||
map(0x0002, 0x0002).r(FUNC(namcoc65_device::mcuc_r)); /* Usually coins + start */
|
||||
map(0x0003, 0x0003).rw(FUNC(namcoc65_device::namcos2_mcu_port_d_r), FUNC(namcoc65_device::namcos2_mcu_port_d_w));
|
||||
map(0x0007, 0x0007).r(FUNC(namcoc65_device::mcuh_r)); /* Usually P1/P2 direction input (R) + Buttons 1,2,3 */
|
||||
map(0x0010, 0x0010).rw(FUNC(namcoc65_device::namcos2_mcu_analog_ctrl_r), FUNC(namcoc65_device::namcos2_mcu_analog_ctrl_w));
|
||||
map(0x0011, 0x0011).rw(FUNC(namcoc65_device::namcos2_mcu_analog_port_r), FUNC(namcoc65_device::namcos2_mcu_analog_port_w));
|
||||
map(0x0040, 0x01bf).ram();
|
||||
map(0x01c0, 0x1fff).rom(); /* internal ROM */
|
||||
map(0x2000, 0x2000).r(FUNC(namcoc65_device::mcudsw_r)); /* Dipswitch, including service mode */
|
||||
map(0x3000, 0x3000).r(FUNC(namcoc65_device::mcudi0_r));
|
||||
map(0x3001, 0x3001).r(FUNC(namcoc65_device::mcudi1_r));
|
||||
map(0x3002, 0x3002).r(FUNC(namcoc65_device::mcudi2_r));
|
||||
map(0x3003, 0x3003).r(FUNC(namcoc65_device::mcudi3_r));
|
||||
map(0x5000, 0x57ff).rw(FUNC(namcoc65_device::dpram_byte_r), FUNC(namcoc65_device::dpram_byte_w));
|
||||
map(0x6000, 0x6fff).nopr(); /* watchdog */
|
||||
map(0x8000, 0xffff).rom().region("external", 0);; /* external ROM socket */
|
||||
}
|
||||
|
||||
|
||||
void namcoc65_device::device_add_mconfig(machine_config &config)
|
||||
{
|
||||
HD63705(config, m_mcu, DERIVED_CLOCK(1, 1));
|
||||
m_mcu->set_addrmap(AS_PROGRAM, &mcu_map);
|
||||
}
|
||||
|
||||
void namcoc65_device::device_resolve_objects()
|
||||
{
|
||||
m_in_pb_cb.resolve_safe(0xff);
|
||||
m_in_pc_cb.resolve_safe(0xff);
|
||||
m_in_ph_cb.resolve_safe(0xff);
|
||||
m_in_pdsw_cb.resolve_safe(0xff);
|
||||
|
||||
for (auto &cb : m_port_analog_in_cb)
|
||||
cb.resolve_safe(0xff);
|
||||
|
||||
for (auto &cb : m_port_dial_in_cb)
|
||||
cb.resolve_safe(0xff);
|
||||
|
||||
m_dp_in.resolve_safe(0xff);
|
||||
m_dp_out.resolve_safe();
|
||||
}
|
||||
|
||||
void namcoc65_device::device_start()
|
||||
{
|
||||
}
|
||||
|
||||
void namcoc65_device::device_reset()
|
||||
{
|
||||
m_mcu_analog_ctrl = 0;
|
||||
m_mcu_analog_data = 0xaa;
|
||||
m_mcu_analog_complete = 0;
|
||||
}
|
||||
|
||||
const tiny_rom_entry *namcoc65_device::device_rom_region() const
|
||||
{
|
||||
return ROM_NAME(namcoc65);
|
||||
}
|
95
src/mame/machine/namco65.h
Normal file
95
src/mame/machine/namco65.h
Normal file
@ -0,0 +1,95 @@
|
||||
// license:BSD-3-Clause
|
||||
// copyright-holders:David Haywood
|
||||
#ifndef MAME_MACHINE_NAMCO65_H
|
||||
#define MAME_MACHINE_NAMCO65_H
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "machine/bankdev.h"
|
||||
#include "cpu/m6805/m6805.h"
|
||||
|
||||
DECLARE_DEVICE_TYPE(NAMCOC65, namcoc65_device)
|
||||
|
||||
|
||||
class namcoc65_device : public device_t
|
||||
{
|
||||
public:
|
||||
// construction/destruction
|
||||
namcoc65_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
|
||||
|
||||
auto in_pb_callback() { return m_in_pb_cb.bind(); }
|
||||
auto in_pc_callback() { return m_in_pc_cb.bind(); }
|
||||
auto in_ph_callback() { return m_in_ph_cb.bind(); }
|
||||
auto in_pdsw_callback() { return m_in_pdsw_cb.bind(); }
|
||||
|
||||
auto an0_in_cb() { return m_port_analog_in_cb[0].bind(); }
|
||||
auto an1_in_cb() { return m_port_analog_in_cb[1].bind(); }
|
||||
auto an2_in_cb() { return m_port_analog_in_cb[2].bind(); }
|
||||
auto an3_in_cb() { return m_port_analog_in_cb[3].bind(); }
|
||||
auto an4_in_cb() { return m_port_analog_in_cb[4].bind(); }
|
||||
auto an5_in_cb() { return m_port_analog_in_cb[5].bind(); }
|
||||
auto an6_in_cb() { return m_port_analog_in_cb[6].bind(); }
|
||||
auto an7_in_cb() { return m_port_analog_in_cb[7].bind(); }
|
||||
|
||||
auto di0_in_cb() { return m_port_dial_in_cb[0].bind(); }
|
||||
auto di1_in_cb() { return m_port_dial_in_cb[1].bind(); }
|
||||
auto di2_in_cb() { return m_port_dial_in_cb[2].bind(); }
|
||||
auto di3_in_cb() { return m_port_dial_in_cb[3].bind(); }
|
||||
|
||||
auto dp_in_callback() { return m_dp_in.bind(); }
|
||||
auto dp_out_callback() { return m_dp_out.bind(); }
|
||||
|
||||
void ext_interrupt(int state) { m_mcu->set_input_line(0, state); }
|
||||
void ext_reset(int state) { m_mcu->set_input_line(INPUT_LINE_RESET, state); }
|
||||
|
||||
protected:
|
||||
void mcu_map(address_map &map);
|
||||
|
||||
virtual void device_add_mconfig(machine_config &config) override;
|
||||
virtual void device_resolve_objects() override;
|
||||
virtual void device_start() override;
|
||||
virtual const tiny_rom_entry *device_rom_region() const override;
|
||||
virtual void device_reset() override;
|
||||
|
||||
private:
|
||||
required_device<hd63705_device> m_mcu;
|
||||
|
||||
devcb_read8 m_in_pb_cb;
|
||||
devcb_read8 m_in_pc_cb;
|
||||
devcb_read8 m_in_ph_cb;
|
||||
devcb_read8 m_in_pdsw_cb;
|
||||
|
||||
devcb_read8 m_port_analog_in_cb[8];
|
||||
devcb_read8 m_port_dial_in_cb[4];
|
||||
|
||||
devcb_read8 m_dp_in;
|
||||
devcb_write8 m_dp_out;
|
||||
|
||||
DECLARE_READ8_MEMBER(namcos2_mcu_port_d_r);
|
||||
DECLARE_WRITE8_MEMBER(namcos2_mcu_port_d_w);
|
||||
|
||||
DECLARE_READ8_MEMBER(namcos2_mcu_analog_port_r );
|
||||
DECLARE_WRITE8_MEMBER(namcos2_mcu_analog_port_w);
|
||||
|
||||
DECLARE_READ8_MEMBER(namcos2_mcu_analog_ctrl_r);
|
||||
DECLARE_WRITE8_MEMBER(namcos2_mcu_analog_ctrl_w);
|
||||
|
||||
DECLARE_READ8_MEMBER(dpram_byte_r);
|
||||
DECLARE_WRITE8_MEMBER(dpram_byte_w);
|
||||
|
||||
DECLARE_READ8_MEMBER(mcub_r) { return m_in_pb_cb(); }
|
||||
DECLARE_READ8_MEMBER(mcuc_r) { return m_in_pc_cb(); }
|
||||
DECLARE_READ8_MEMBER(mcuh_r) { return m_in_ph_cb(); }
|
||||
DECLARE_READ8_MEMBER(mcudsw_r) { return m_in_pdsw_cb(); }
|
||||
|
||||
DECLARE_READ8_MEMBER(mcudi0_r) { return m_port_dial_in_cb[0](); }
|
||||
DECLARE_READ8_MEMBER(mcudi1_r) { return m_port_dial_in_cb[1](); }
|
||||
DECLARE_READ8_MEMBER(mcudi2_r) { return m_port_dial_in_cb[2](); }
|
||||
DECLARE_READ8_MEMBER(mcudi3_r) { return m_port_dial_in_cb[3](); }
|
||||
|
||||
int m_mcu_analog_ctrl;
|
||||
int m_mcu_analog_data;
|
||||
int m_mcu_analog_complete;
|
||||
};
|
||||
|
||||
#endif // MAME_MACHINE_NAMCO65_H
|
118
src/mame/machine/namco68.cpp
Normal file
118
src/mame/machine/namco68.cpp
Normal file
@ -0,0 +1,118 @@
|
||||
// license:BSD-3-Clause
|
||||
// copyright-holders:David Haywood, K.Wilkins
|
||||
|
||||
/*
|
||||
TODO:
|
||||
output support, Golly Ghost is currently hacking this based on DPRAM in the namcos2.cpp driver side!
|
||||
some of this can likely be moved into the actual MCU core too
|
||||
|
||||
*/
|
||||
|
||||
#include "emu.h"
|
||||
#include "machine/namco68.h"
|
||||
|
||||
DEFINE_DEVICE_TYPE(NAMCOC68, namcoc68_device, "namcoc68", "Namco C68 I/O")
|
||||
|
||||
namcoc68_device::namcoc68_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) :
|
||||
device_t(mconfig, NAMCOC68, tag, owner, clock),
|
||||
m_mcu(*this, "mcu"),
|
||||
m_in_pb_cb(*this),
|
||||
m_in_pb2_cb(*this),
|
||||
m_in_pc_cb(*this),
|
||||
m_in_ph_cb(*this),
|
||||
m_in_pdsw_cb(*this),
|
||||
m_port_analog_in_cb{{*this}, {*this}, {*this}, {*this}, {*this}, {*this}, {*this}, {*this}},
|
||||
m_port_dial_in_cb{{*this}, {*this}, {*this}, {*this}},
|
||||
m_dp_in(*this),
|
||||
m_dp_out(*this)
|
||||
{
|
||||
}
|
||||
|
||||
ROM_START( namcoc68 )
|
||||
ROM_REGION( 0x8000, "mcu", 0 )
|
||||
ROM_LOAD( "c68.3d", 0x000000, 0x008000, CRC(ca64550a) SHA1(38d1ad1b1287cadef0c999aff9357927315f8e6b) )
|
||||
ROM_END
|
||||
|
||||
|
||||
|
||||
READ8_MEMBER(namcoc68_device::c68_p5_r)
|
||||
{
|
||||
return (m_player_mux) ? m_in_pb2_cb() : m_in_pb_cb();
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(namcoc68_device::c68_p3_w)
|
||||
{
|
||||
m_player_mux = (data & 0x80) ? 1 : 0;
|
||||
}
|
||||
|
||||
READ8_MEMBER(namcoc68_device::ack_mcu_vbl_r)
|
||||
{
|
||||
m_mcu->set_input_line(m37450_device::M3745X_INT1_LINE, CLEAR_LINE);
|
||||
return 0;
|
||||
}
|
||||
|
||||
READ8_MEMBER(namcoc68_device::dpram_byte_r)
|
||||
{
|
||||
return m_dp_in(offset);
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(namcoc68_device::dpram_byte_w)
|
||||
{
|
||||
m_dp_out(offset,data);
|
||||
}
|
||||
|
||||
void namcoc68_device::c68_default_am(address_map &map)
|
||||
{
|
||||
/* input ports and dips are mapped here */
|
||||
map(0x2000, 0x2000).r(FUNC(namcoc68_device::mcudsw_r));
|
||||
map(0x3000, 0x3000).r(FUNC(namcoc68_device::mcudi0_r));
|
||||
map(0x3001, 0x3001).r(FUNC(namcoc68_device::mcudi1_r));
|
||||
map(0x3002, 0x3002).r(FUNC(namcoc68_device::mcudi2_r));
|
||||
map(0x3003, 0x3003).r(FUNC(namcoc68_device::mcudi3_r));
|
||||
map(0x5000, 0x57ff).rw(FUNC(namcoc68_device::dpram_byte_r), FUNC(namcoc68_device::dpram_byte_w));
|
||||
map(0x6000, 0x6fff).r(FUNC(namcoc68_device::ack_mcu_vbl_r)); // VBL ack
|
||||
map(0x8000, 0xffff).rom().region("mcu", 0);
|
||||
}
|
||||
|
||||
void namcoc68_device::device_add_mconfig(machine_config &config)
|
||||
{
|
||||
m3745x_device* device = &M37450(config, m_mcu, DERIVED_CLOCK(1, 1)); // ugly, needs modernizing
|
||||
MCFG_M3745X_ADC14_CALLBACKS(READ8(*this, namcoc68_device, mcuan0_r), READ8(*this, namcoc68_device, mcuan1_r), READ8(*this, namcoc68_device, mcuan2_r), READ8(*this, namcoc68_device, mcuan3_r))
|
||||
MCFG_M3745X_ADC58_CALLBACKS(READ8(*this, namcoc68_device, mcuan4_r), READ8(*this, namcoc68_device, mcuan5_r), READ8(*this, namcoc68_device, mcuan6_r), READ8(*this, namcoc68_device, mcuan7_r))
|
||||
MCFG_M3745X_PORT3_CALLBACKS(READ8(*this, namcoc68_device, mcuh_r), WRITE8(*this, namcoc68_device, c68_p3_w)) // coins/test/service
|
||||
MCFG_M3745X_PORT5_CALLBACKS(READ8(*this, namcoc68_device, c68_p5_r), NOOP) // muxed player 1/2
|
||||
MCFG_M3745X_PORT6_CALLBACKS(READ8(*this, namcoc68_device, mcuc_r), NOOP) // unused in sgunner2
|
||||
MCFG_DEVICE_PROGRAM_MAP(c68_default_am)
|
||||
}
|
||||
|
||||
void namcoc68_device::device_resolve_objects()
|
||||
{
|
||||
m_in_pb_cb.resolve_safe(0xff);
|
||||
m_in_pb2_cb.resolve_safe(0xff);
|
||||
m_in_pc_cb.resolve_safe(0xff);
|
||||
m_in_ph_cb.resolve_safe(0xff);
|
||||
m_in_pdsw_cb.resolve_safe(0xff);
|
||||
|
||||
for (auto &cb : m_port_analog_in_cb)
|
||||
cb.resolve_safe(0xff);
|
||||
|
||||
for (auto &cb : m_port_dial_in_cb)
|
||||
cb.resolve_safe(0xff);
|
||||
|
||||
m_dp_in.resolve_safe(0xff);
|
||||
m_dp_out.resolve_safe();
|
||||
}
|
||||
|
||||
void namcoc68_device::device_start()
|
||||
{
|
||||
}
|
||||
|
||||
void namcoc68_device::device_reset()
|
||||
{
|
||||
m_player_mux = 0;
|
||||
}
|
||||
|
||||
const tiny_rom_entry *namcoc68_device::device_rom_region() const
|
||||
{
|
||||
return ROM_NAME(namcoc68);
|
||||
}
|
104
src/mame/machine/namco68.h
Normal file
104
src/mame/machine/namco68.h
Normal file
@ -0,0 +1,104 @@
|
||||
// license:BSD-3-Clause
|
||||
// copyright-holders:David Haywood
|
||||
#ifndef MAME_MACHINE_NAMCO68_H
|
||||
#define MAME_MACHINE_NAMCO68_H
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "machine/bankdev.h"
|
||||
#include "cpu/m6502/m3745x.h"
|
||||
|
||||
DECLARE_DEVICE_TYPE(NAMCOC68, namcoc68_device)
|
||||
|
||||
|
||||
class namcoc68_device : public device_t
|
||||
{
|
||||
public:
|
||||
// construction/destruction
|
||||
namcoc68_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
|
||||
|
||||
auto in_pb_callback() { return m_in_pb_cb.bind(); }
|
||||
auto in_pb2_callback() { return m_in_pb2_cb.bind(); }
|
||||
|
||||
auto in_pc_callback() { return m_in_pc_cb.bind(); }
|
||||
auto in_ph_callback() { return m_in_ph_cb.bind(); }
|
||||
auto in_pdsw_callback() { return m_in_pdsw_cb.bind(); }
|
||||
|
||||
auto an0_in_cb() { return m_port_analog_in_cb[0].bind(); }
|
||||
auto an1_in_cb() { return m_port_analog_in_cb[1].bind(); }
|
||||
auto an2_in_cb() { return m_port_analog_in_cb[2].bind(); }
|
||||
auto an3_in_cb() { return m_port_analog_in_cb[3].bind(); }
|
||||
auto an4_in_cb() { return m_port_analog_in_cb[4].bind(); }
|
||||
auto an5_in_cb() { return m_port_analog_in_cb[5].bind(); }
|
||||
auto an6_in_cb() { return m_port_analog_in_cb[6].bind(); }
|
||||
auto an7_in_cb() { return m_port_analog_in_cb[7].bind(); }
|
||||
|
||||
auto di0_in_cb() { return m_port_dial_in_cb[0].bind(); }
|
||||
auto di1_in_cb() { return m_port_dial_in_cb[1].bind(); }
|
||||
auto di2_in_cb() { return m_port_dial_in_cb[2].bind(); }
|
||||
auto di3_in_cb() { return m_port_dial_in_cb[3].bind(); }
|
||||
|
||||
auto dp_in_callback() { return m_dp_in.bind(); }
|
||||
auto dp_out_callback() { return m_dp_out.bind(); }
|
||||
|
||||
void ext_interrupt(int state) { m_mcu->set_input_line(0, state); } // 37450 maps INT1 to irq0 as it's the first external interrupt on that chip
|
||||
void ext_reset(int state) { m_mcu->set_input_line(INPUT_LINE_RESET, state); }
|
||||
|
||||
protected:
|
||||
void c68_default_am(address_map &map);
|
||||
|
||||
virtual void device_add_mconfig(machine_config &config) override;
|
||||
virtual void device_resolve_objects() override;
|
||||
virtual void device_start() override;
|
||||
virtual const tiny_rom_entry *device_rom_region() const override;
|
||||
virtual void device_reset() override;
|
||||
|
||||
private:
|
||||
required_device<m37450_device> m_mcu;
|
||||
|
||||
devcb_read8 m_in_pb_cb;
|
||||
devcb_read8 m_in_pb2_cb;
|
||||
|
||||
devcb_read8 m_in_pc_cb;
|
||||
devcb_read8 m_in_ph_cb;
|
||||
devcb_read8 m_in_pdsw_cb;
|
||||
|
||||
devcb_read8 m_port_analog_in_cb[8];
|
||||
devcb_read8 m_port_dial_in_cb[4];
|
||||
|
||||
devcb_read8 m_dp_in;
|
||||
devcb_write8 m_dp_out;
|
||||
|
||||
DECLARE_READ8_MEMBER(c68_p5_r);
|
||||
DECLARE_WRITE8_MEMBER(c68_p3_w);
|
||||
DECLARE_READ8_MEMBER(ack_mcu_vbl_r);
|
||||
|
||||
DECLARE_READ8_MEMBER(dpram_byte_r);
|
||||
DECLARE_WRITE8_MEMBER(dpram_byte_w);
|
||||
|
||||
DECLARE_READ8_MEMBER(mcub_r) { return m_in_pb_cb(); }
|
||||
DECLARE_READ8_MEMBER(mcub2_r) { return m_in_pb2_cb(); }
|
||||
|
||||
|
||||
DECLARE_READ8_MEMBER(mcuc_r) { return m_in_pc_cb(); }
|
||||
DECLARE_READ8_MEMBER(mcuh_r) { return m_in_ph_cb(); }
|
||||
DECLARE_READ8_MEMBER(mcudsw_r) { return m_in_pdsw_cb(); }
|
||||
|
||||
DECLARE_READ8_MEMBER(mcudi0_r) { return m_port_dial_in_cb[0](); }
|
||||
DECLARE_READ8_MEMBER(mcudi1_r) { return m_port_dial_in_cb[1](); }
|
||||
DECLARE_READ8_MEMBER(mcudi2_r) { return m_port_dial_in_cb[2](); }
|
||||
DECLARE_READ8_MEMBER(mcudi3_r) { return m_port_dial_in_cb[3](); }
|
||||
|
||||
DECLARE_READ8_MEMBER(mcuan0_r) { return m_port_analog_in_cb[0](); }
|
||||
DECLARE_READ8_MEMBER(mcuan1_r) { return m_port_analog_in_cb[1](); }
|
||||
DECLARE_READ8_MEMBER(mcuan2_r) { return m_port_analog_in_cb[2](); }
|
||||
DECLARE_READ8_MEMBER(mcuan3_r) { return m_port_analog_in_cb[3](); }
|
||||
DECLARE_READ8_MEMBER(mcuan4_r) { return m_port_analog_in_cb[4](); }
|
||||
DECLARE_READ8_MEMBER(mcuan5_r) { return m_port_analog_in_cb[5](); }
|
||||
DECLARE_READ8_MEMBER(mcuan6_r) { return m_port_analog_in_cb[6](); }
|
||||
DECLARE_READ8_MEMBER(mcuan7_r) { return m_port_analog_in_cb[7](); }
|
||||
|
||||
uint8_t m_player_mux;
|
||||
};
|
||||
|
||||
#endif // MAME_MACHINE_NAMCO68_H
|
@ -107,14 +107,23 @@ WRITE8_MEMBER(namcos2_shared_state::system_reset_w)
|
||||
void namcos2_shared_state::reset_all_subcpus(int state)
|
||||
{
|
||||
m_slave->set_input_line(INPUT_LINE_RESET, state);
|
||||
if (m_c68)
|
||||
if (m_c68new)
|
||||
{
|
||||
m_c68->set_input_line(INPUT_LINE_RESET, state);
|
||||
m_c68new->ext_reset(state);
|
||||
}
|
||||
else
|
||||
else if (m_mcu)
|
||||
{
|
||||
m_mcu->set_input_line(INPUT_LINE_RESET, state);
|
||||
}
|
||||
else if (m_c65)
|
||||
{
|
||||
m_c65->ext_reset(state);
|
||||
}
|
||||
else
|
||||
{
|
||||
logerror("no MCU to reset?\n");
|
||||
}
|
||||
|
||||
switch( m_gametype )
|
||||
{
|
||||
case NAMCOS21_SOLVALOU:
|
||||
@ -144,10 +153,6 @@ MACHINE_RESET_MEMBER(namcos2_shared_state, namcos2)
|
||||
// address_space &space = m_maincpu->space(AS_PROGRAM);
|
||||
address_space &audio_space = m_audiocpu->space(AS_PROGRAM);
|
||||
|
||||
m_mcu_analog_ctrl = 0;
|
||||
m_mcu_analog_data = 0xaa;
|
||||
m_mcu_analog_complete = 0;
|
||||
|
||||
/* Initialise the bank select in the sound CPU */
|
||||
namcos2_sound_bankselect_w(audio_space, 0, 0); /* Page in bank 0 */
|
||||
|
||||
@ -438,116 +443,3 @@ WRITE8_MEMBER( namcos2_shared_state::namcos2_sound_bankselect_w )
|
||||
int bank = ( data >> 4 ) % max; /* 991104.CAB */
|
||||
membank(BANKED_SOUND_ROM)->set_base(&RAM[ 0x10000 + ( 0x4000 * bank ) ] );
|
||||
}
|
||||
|
||||
/**************************************************************/
|
||||
/* */
|
||||
/* 68705 IO CPU Support functions */
|
||||
/* */
|
||||
/**************************************************************/
|
||||
|
||||
WRITE8_MEMBER( namcos2_shared_state::namcos2_mcu_analog_ctrl_w )
|
||||
{
|
||||
m_mcu_analog_ctrl = data & 0xff;
|
||||
|
||||
/* Check if this is a start of conversion */
|
||||
/* Input ports 2 through 9 are the analog channels */
|
||||
|
||||
if(data & 0x40)
|
||||
{
|
||||
/* Set the conversion complete flag */
|
||||
m_mcu_analog_complete = 2;
|
||||
/* We convert instantly, good eh! */
|
||||
switch((data>>2) & 0x07)
|
||||
{
|
||||
case 0:
|
||||
m_mcu_analog_data=ioport("AN0")->read();
|
||||
break;
|
||||
case 1:
|
||||
m_mcu_analog_data=ioport("AN1")->read();
|
||||
break;
|
||||
case 2:
|
||||
m_mcu_analog_data=ioport("AN2")->read();
|
||||
break;
|
||||
case 3:
|
||||
m_mcu_analog_data=ioport("AN3")->read();
|
||||
break;
|
||||
case 4:
|
||||
m_mcu_analog_data=ioport("AN4")->read();
|
||||
break;
|
||||
case 5:
|
||||
m_mcu_analog_data=ioport("AN5")->read();
|
||||
break;
|
||||
case 6:
|
||||
m_mcu_analog_data=ioport("AN6")->read();
|
||||
break;
|
||||
case 7:
|
||||
m_mcu_analog_data=ioport("AN7")->read();
|
||||
break;
|
||||
default:
|
||||
output().set_value("anunk",data);
|
||||
}
|
||||
#if 0
|
||||
/* Perform the offset handling on the input port */
|
||||
/* this converts it to a twos complement number */
|
||||
if( m_gametype == NAMCOS2_DIRT_FOX ||
|
||||
m_gametype == NAMCOS2_DIRT_FOX_JP )
|
||||
{
|
||||
m_mcu_analog_data ^= 0x80;
|
||||
}
|
||||
#endif
|
||||
/* If the interrupt enable bit is set trigger an A/D IRQ */
|
||||
if(data & 0x20)
|
||||
{
|
||||
m_mcu->pulse_input_line(HD63705_INT_ADCONV, m_mcu->minimum_quantum_time());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
READ8_MEMBER( namcos2_shared_state::namcos2_mcu_analog_ctrl_r )
|
||||
{
|
||||
int data=0;
|
||||
|
||||
/* ADEF flag is only cleared AFTER a read from control THEN a read from DATA */
|
||||
if(m_mcu_analog_complete==2) m_mcu_analog_complete=1;
|
||||
if(m_mcu_analog_complete) data|=0x80;
|
||||
|
||||
/* Mask on the lower 6 register bits, Irq EN/Channel/Clock */
|
||||
data|=m_mcu_analog_ctrl&0x3f;
|
||||
/* Return the value */
|
||||
return data;
|
||||
}
|
||||
|
||||
WRITE8_MEMBER( namcos2_shared_state::namcos2_mcu_analog_port_w )
|
||||
{
|
||||
}
|
||||
|
||||
READ8_MEMBER( namcos2_shared_state::namcos2_mcu_analog_port_r )
|
||||
{
|
||||
if(m_mcu_analog_complete==1) m_mcu_analog_complete=0;
|
||||
return m_mcu_analog_data;
|
||||
}
|
||||
|
||||
WRITE8_MEMBER( namcos2_shared_state::namcos2_mcu_port_d_w )
|
||||
{
|
||||
/* Undefined operation on write */
|
||||
}
|
||||
|
||||
READ8_MEMBER( namcos2_shared_state::namcos2_mcu_port_d_r )
|
||||
{
|
||||
/* Provides a digital version of the analog ports */
|
||||
int threshold = 0x7f;
|
||||
int data = 0;
|
||||
|
||||
/* Read/convert the bits one at a time */
|
||||
if(ioport("AN0")->read() > threshold) data |= 0x01;
|
||||
if(ioport("AN1")->read() > threshold) data |= 0x02;
|
||||
if(ioport("AN2")->read() > threshold) data |= 0x04;
|
||||
if(ioport("AN3")->read() > threshold) data |= 0x08;
|
||||
if(ioport("AN4")->read() > threshold) data |= 0x10;
|
||||
if(ioport("AN5")->read() > threshold) data |= 0x20;
|
||||
if(ioport("AN6")->read() > threshold) data |= 0x40;
|
||||
if(ioport("AN7")->read() > threshold) data |= 0x80;
|
||||
|
||||
/* Return the result */
|
||||
return data;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user