From c26f8c1830e2c66b4a4b28ff08a29d5bb77af9cc Mon Sep 17 00:00:00 2001 From: smf- Date: Sat, 26 Oct 2024 10:19:01 +0100 Subject: Increased timeout in namco_csz1 ROM to stop it timing out, the H8 is either running too fast or the SUB CPU is running too slow. Configured Crisis Zone gun to match game defaults & default to namco_csz1 JVS I/O board. --- src/devices/bus/jvs/namcoio.cpp | 38 +++++++++++++++++++++++++++----------- src/mame/namco/namcos23.cpp | 21 +++++++++++++-------- 2 files changed, 40 insertions(+), 19 deletions(-) diff --git a/src/devices/bus/jvs/namcoio.cpp b/src/devices/bus/jvs/namcoio.cpp index fc9580423ff..b315ce09758 100644 --- a/src/devices/bus/jvs/namcoio.cpp +++ b/src/devices/bus/jvs/namcoio.cpp @@ -1208,24 +1208,24 @@ protected: const auto p1 = player_r(0, 0x32); const auto c1 = coin_r(0, 0x81); - return ~((BIT(p1, 1) << 7) | - (BIT(p1, 4) << 6) | - (BIT(p1, 5) << 5) | - (BIT(system, 7) << 4) | + return ~((BIT(p1, 1) << 7) | // BUTTON1 + (BIT(p1, 4) << 6) | // DOWN + (BIT(p1, 5) << 5) | // UP + (BIT(system, 7) << 4) | // TEST (0 << 3) | // unknown input - (BIT(~c1, 7) << 2) | + (BIT(~c1, 7) << 2) | // counter disconnected (0 << 1) | // unknown input - (BIT(c1, 0) << 0)); + (BIT(c1, 0) << 0)); // COIN } else if (offset == 1) { const auto p1 = player_r(0, 0xf001); - return ~((BIT(p1, 12) << 4) | - (BIT(p1, 13) << 3) | - (BIT(p1, 14) << 2) | - (BIT(p1, 15) << 1) | - (BIT(p1, 0) << 0)); + return ~((BIT(p1, 12) << 4) | // BUTTON6 + (BIT(p1, 13) << 3) | // BUTTON5 + (BIT(p1, 14) << 2) | // BUTTON4 + (BIT(p1, 15) << 1) | // BUTTON3 + (BIT(p1, 0) << 0)); // BUTTON2 } return 0xff; @@ -1246,9 +1246,20 @@ protected: }; +static INPUT_PORTS_START(namco_csz1) + PORT_INCLUDE(namco_tssio) + + PORT_MODIFY("JVS_SCREEN_POSITION_INPUT_X1") + PORT_BIT(0xfff, 0x1bf, IPT_LIGHTGUN_X) PORT_CROSSHAIR(X, 1.0, 0.0, 0) PORT_MINMAX(0x040, 0x33f) PORT_SENSITIVITY(100) PORT_KEYDELTA(12) + + PORT_MODIFY("JVS_SCREEN_POSITION_INPUT_Y1") + PORT_BIT(0xfff, 0x08f, IPT_LIGHTGUN_Y) PORT_CROSSHAIR(Y, 1.0, 0.0, 0) PORT_MINMAX(0x020, 0x0ff) PORT_SENSITIVITY(100) PORT_KEYDELTA(4) +INPUT_PORTS_END + ROM_START( namco_csz1 ) ROM_REGION( 0x040000, "iocpu", 0 ) ROM_LOAD( "csz1prg0a.8f", 0x000000, 0x020000, CRC(8edc36b3) SHA1(b5df211988d856572fcc313480e693c8561784e4) ) + ROM_FILL( 0x04ed, 1, 0x05 ) // HACK: Increase timeout from 4 ROM_END class namco_csz1_device : @@ -1262,6 +1273,11 @@ public: protected: // device_t + virtual ioport_constructor device_input_ports() const override ATTR_COLD + { + return m_default_inputs ? INPUT_PORTS_NAME(namco_csz1) : namco_c78_jvs_io_device::device_input_ports(); + } + virtual const tiny_rom_entry *device_rom_region() const override ATTR_COLD { return ROM_NAME(namco_csz1); diff --git a/src/mame/namco/namcos23.cpp b/src/mame/namco/namcos23.cpp index 0f0797b36f4..15dba85862b 100644 --- a/src/mame/namco/namcos23.cpp +++ b/src/mame/namco/namcos23.cpp @@ -6288,8 +6288,8 @@ void namcos23_state::configure_jvs(device_jvs_interface &io) io.analog_input<6>().set_ioport("^^JVS_ANALOG_INPUT7"); io.analog_input<7>().set_ioport("^^JVS_ANALOG_INPUT8"); io.rotary_input<0>().set_ioport("^^JVS_ROTARY_INPUT1"); - io.screen_position_x<0>().set_ioport("^^JVS_SCREEN_POSITION_X0"); - io.screen_position_y<0>().set_ioport("^^JVS_SCREEN_POSITION_Y0"); + io.screen_position_x<0>().set_ioport("^^JVS_SCREEN_POSITION_INPUT_X1"); + io.screen_position_y<0>().set_ioport("^^JVS_SCREEN_POSITION_INPUT_Y1"); } void namcos23_state::downhill(machine_config &config) @@ -6374,8 +6374,7 @@ void crszone_state::crszone(machine_config &config) m_maincpu->set_clock(BUSCLOCK * 6); m_maincpu->set_addrmap(AS_PROGRAM, &crszone_state::mips_map); - //m_jvs->set_default_option("namco_csz1"); // TODO: fix foot pedal & gun trigger when using csz1 - m_jvs->set_default_option("namco_tssio"); + m_jvs->set_default_option("namco_csz1"); /* debug hardware */ ACIA6850(config, m_acia, 0); @@ -6490,10 +6489,10 @@ static INPUT_PORTS_START(s23) PORT_START("JVS_ROTARY_INPUT1") PORT_BIT(0xffff, 0x0000, IPT_UNUSED) - PORT_START("JVS_SCREEN_POSITION_X0") + PORT_START("JVS_SCREEN_POSITION_INPUT_X1") PORT_BIT(0xffff, 0x0000, IPT_UNUSED) - PORT_START("JVS_SCREEN_POSITION_Y0") + PORT_START("JVS_SCREEN_POSITION_INPUT_Y1") PORT_BIT(0xffff, 0x0000, IPT_UNUSED) INPUT_PORTS_END @@ -6786,15 +6785,21 @@ static INPUT_PORTS_START(timecrs2) PORT_CONFSETTING( 0x00000000, "Left/Red" ) PORT_BIT(0x00e03f00, IP_ACTIVE_HIGH, IPT_UNUSED) // BUTTON5/BUTTON6/BUTTON7/BUTTON8/BUTTON9/BUTTON10/BUTTON11/BUTTON12/BUTTON13 - PORT_MODIFY("JVS_SCREEN_POSITION_X0") // tuned for CRT + PORT_MODIFY("JVS_SCREEN_POSITION_INPUT_X1") // tuned for CRT PORT_BIT(0xfff, 91 + 733 / 2, IPT_LIGHTGUN_X) PORT_CROSSHAIR(X, 1.0, 0.0, 0) PORT_MINMAX(91, 91 + 733) PORT_SENSITIVITY(100) PORT_KEYDELTA(12) - PORT_MODIFY("JVS_SCREEN_POSITION_Y0") // tuned for CRT - can't shoot below the statusbar? + PORT_MODIFY("JVS_SCREEN_POSITION_INPUT_Y1") // tuned for CRT - can't shoot below the statusbar? PORT_BIT(0xfff, 38 + 247 / 2, IPT_LIGHTGUN_Y) PORT_CROSSHAIR(Y, 1.0, 0.0, 0) PORT_MINMAX(38, 38 + 247) PORT_SENSITIVITY(100) PORT_KEYDELTA(4) INPUT_PORTS_END static INPUT_PORTS_START(crszone) PORT_INCLUDE(timecrs2) + + PORT_MODIFY("JVS_SCREEN_POSITION_INPUT_X1") + PORT_BIT(0xfff, 0x1bf, IPT_LIGHTGUN_X) PORT_CROSSHAIR(X, 1.0, 0.0, 0) PORT_MINMAX(0x040, 0x33f) PORT_SENSITIVITY(100) PORT_KEYDELTA(12) + + PORT_MODIFY("JVS_SCREEN_POSITION_INPUT_Y1") + PORT_BIT(0xfff, 0x08f, IPT_LIGHTGUN_Y) PORT_CROSSHAIR(Y, 1.0, 0.0, 0) PORT_MINMAX(0x020, 0x0ff) PORT_SENSITIVITY(100) PORT_KEYDELTA(4) INPUT_PORTS_END // a note about "user1" ROMs: -- cgit v1.2.3