diff --git a/src/mame/atari/harddriv.cpp b/src/mame/atari/harddriv.cpp index a872282cec5d1..7bddbf439a47b 100644 --- a/src/mame/atari/harddriv.cpp +++ b/src/mame/atari/harddriv.cpp @@ -838,7 +838,7 @@ static INPUT_PORTS_START( harddriv ) PORT_BIT( 0xff, 0x00, IPT_PEDAL3 ) PORT_SENSITIVITY(25) PORT_KEYDELTA(100) PORT_NAME("Clutch Pedal") PORT_START("mainpcb:8BADC.2") /* b00000 - 8 bit ADC 2 - seat */ - PORT_BIT( 0xff, 0x80, IPT_CUSTOM ) + PORT_BIT( 0xff, 0x80, IPT_AD_STICK_Z ) PORT_SENSITIVITY(25) PORT_KEYDELTA(20) PORT_NAME("Seat") PORT_START("mainpcb:8BADC.3") /* b00000 - 8 bit ADC 3 - shifter lever Y */ PORT_BIT( 0xff, 0x80, IPT_AD_STICK_Y ) PORT_SENSITIVITY(25) PORT_KEYDELTA(128) PORT_CODE_DEC(KEYCODE_R) PORT_CODE_INC(KEYCODE_F) PORT_NAME("Shifter Lever Y") @@ -921,7 +921,7 @@ static INPUT_PORTS_START( racedriv ) PORT_BIT( 0xff, 0x00, IPT_PEDAL3 ) PORT_SENSITIVITY(25) PORT_KEYDELTA(100) PORT_NAME("Clutch Pedal") PORT_START("mainpcb:8BADC.2") /* b00000 - 8 bit ADC 2 - seat */ - PORT_BIT( 0xff, 0x80, IPT_CUSTOM ) + PORT_BIT( 0xff, 0x80, IPT_AD_STICK_Z ) PORT_SENSITIVITY(25) PORT_KEYDELTA(20) PORT_NAME("Seat") PORT_START("mainpcb:8BADC.3") /* b00000 - 8 bit ADC 3 - shifter lever Y */ PORT_BIT( 0xff, 0x80, IPT_AD_STICK_Y ) PORT_SENSITIVITY(25) PORT_KEYDELTA(128) PORT_CODE_DEC(KEYCODE_R) PORT_CODE_INC(KEYCODE_F) PORT_NAME("Shifter Lever Y") diff --git a/src/mame/konami/gticlub.cpp b/src/mame/konami/gticlub.cpp index fa6db848efdac..57988c1f549e8 100644 --- a/src/mame/konami/gticlub.cpp +++ b/src/mame/konami/gticlub.cpp @@ -280,6 +280,7 @@ class gticlub_base_state : public driver_device , m_analog(*this, "AN%u", 0U) , m_ports(*this, "IN%u", 0) , m_pcb_digit(*this, "pcbdigit%u", 0U) + , m_pcb_output(*this, "pcboutput%u", 0U) , m_cg_view(*this, "cg_view") { } @@ -305,6 +306,7 @@ class gticlub_base_state : public driver_device optional_ioport_array<4> m_analog; required_ioport_array<4> m_ports; output_finder<2> m_pcb_digit; + output_finder<1> m_pcb_output; memory_view m_cg_view; emu_timer *m_sound_irq_timer = nullptr; @@ -440,6 +442,11 @@ void gticlub_base_state::sysreg_w(offs_t offset, uint8_t data) m_pcb_digit[offset] = bitswap<7>(~data,0,1,2,3,4,5,6); break; + case 2: + // GTI club drive commands + m_pcb_output[0] = data; + break; + case 3: m_eeprom->di_write(BIT(data, 0)); m_eeprom->clk_write(BIT(data, 1)); @@ -500,6 +507,7 @@ void gticlub_base_state::soundtimer_count_w(uint16_t data) void gticlub_base_state::machine_start() { m_pcb_digit.resolve(); + m_pcb_output.resolve(); // set conservative DRC options m_maincpu->ppcdrc_set_options(PPCDRC_COMPATIBLE_OPTIONS); diff --git a/src/mame/konami/zr107.cpp b/src/mame/konami/zr107.cpp index 8d3eb6486eb94..e1b4a3493d2ef 100644 --- a/src/mame/konami/zr107.cpp +++ b/src/mame/konami/zr107.cpp @@ -224,7 +224,8 @@ class zr107_state : public driver_device m_out4(*this, "OUT4"), m_eepromout(*this, "EEPROMOUT"), m_analog(*this, "ANALOG%u", 1U), - m_pcb_digit(*this, "pcbdigit%u", 0U) + m_pcb_digit(*this, "pcbdigit%u", 0U), + m_pcb_output(*this, "pcboutput%u", 0U) { } void zr107(machine_config &config); @@ -252,6 +253,7 @@ class zr107_state : public driver_device required_ioport m_out4, m_eepromout; optional_ioport_array<3> m_analog; output_finder<2> m_pcb_digit; + output_finder<1> m_pcb_output; int32_t m_ccu_vcth = 0; int32_t m_ccu_vctl = 0; @@ -404,6 +406,7 @@ void zr107_state::sysreg_w(offs_t offset, uint8_t data) case 2: // Parallel data register LOGSYSREG("Parallel data = %02X\n", data); + m_pcb_output[0] = data; break; case 3: // System Register 0 @@ -491,6 +494,7 @@ void zr107_state::ccu_w(uint32_t data) void zr107_state::machine_start() { m_pcb_digit.resolve(); + m_pcb_output.resolve(); // set conservative DRC options m_maincpu->ppcdrc_set_options(PPCDRC_COMPATIBLE_OPTIONS); diff --git a/src/mame/namco/namcos2.cpp b/src/mame/namco/namcos2.cpp index e9cfa29f8f806..d429f252a5a92 100644 --- a/src/mame/namco/namcos2.cpp +++ b/src/mame/namco/namcos2.cpp @@ -592,6 +592,31 @@ void namcos2_state::dpram_word_w(offs_t offset, u16 data, u16 mem_mask) } } +void suzuka8h_state::dpram_word_w(offs_t offset, u16 data, u16 mem_mask) +{ + if (ACCESSING_BITS_0_7) + { + m_dpram[offset] = data & 0xff; + + // TODO : This is a hack! should be output ports MCU side, not probing into DPRAM content + switch( offset ) + { + case 0xc0/2: case 0xc2/2: case 0xc4/2: case 0xc6/2: case 0xc8/2: case 0xca/2: case 0xcc/2: + { + // output 7segs + // c0 c2 c4 c6 c8 ca cc ce + // 1st 2nd 3rd 4th 10s 01s lap -- + int group = offset - 0x60; + m_out_digit[group] = bitswap<7>(~data,1,2,3,4,5,7,6); + break; + } + + default: + break; + } + } +} + void gollygho_state::dpram_word_w(offs_t offset, u16 data, u16 mem_mask) { if (ACCESSING_BITS_0_7) @@ -5792,15 +5817,15 @@ GAMEL( 1992, finalap3bl, finalap3, finalap3, finalap3, namcos2_state, init_final GAME( 1992, luckywld, 0, luckywld, luckywld, namcos2_state, init_luckywld, ROT0, "Namco", "Lucky & Wild", MACHINE_SUPPORTS_SAVE ) GAME( 1992, luckywldj, luckywld, luckywld, luckywld, namcos2_state, init_luckywld, ROT0, "Namco", "Lucky & Wild (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1992, suzuka8h, 0, suzuka8h, suzuka, namcos2_state, init_suzuka8h, ROT0, "Namco", "Suzuka 8 Hours (World, Rev C)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NODEVICE_LAN | MACHINE_SUPPORTS_SAVE ) -GAME( 1992, suzuka8hj, suzuka8h, suzuka8h, suzuka, namcos2_state, init_suzuka8h, ROT0, "Namco", "Suzuka 8 Hours (Japan, Rev B)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NODEVICE_LAN | MACHINE_SUPPORTS_SAVE ) +GAME( 1992, suzuka8h, 0, suzuka8h, suzuka, suzuka8h_state, init_suzuka8h, ROT0, "Namco", "Suzuka 8 Hours (World, Rev C)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NODEVICE_LAN | MACHINE_SUPPORTS_SAVE ) +GAME( 1992, suzuka8hj, suzuka8h, suzuka8h, suzuka, suzuka8h_state, init_suzuka8h, ROT0, "Namco", "Suzuka 8 Hours (Japan, Rev B)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NODEVICE_LAN | MACHINE_SUPPORTS_SAVE ) GAME( 1992, sws, 0, base_c68, base, namcos2_state, init_sws, ROT0, "Namco", "Super World Stadium (Japan)", MACHINE_SUPPORTS_SAVE ) GAME( 1992, sws92, 0, base_c68, base, namcos2_state, init_sws92, ROT0, "Namco", "Super World Stadium '92 (Japan)", MACHINE_SUPPORTS_SAVE ) GAME( 1992, sws92g, sws92, base_c68, base, namcos2_state, init_sws92g, ROT0, "Namco", "Super World Stadium '92 Gekitouban (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1993, suzuk8h2, 0, suzuka8h, suzuka, namcos2_state, init_suzuk8h2, ROT0, "Namco", "Suzuka 8 Hours 2 (World, Rev B)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NODEVICE_LAN | MACHINE_SUPPORTS_SAVE ) -GAME( 1993, suzuk8h2j, suzuk8h2, suzuka8h, suzuka, namcos2_state, init_suzuk8h2, ROT0, "Namco", "Suzuka 8 Hours 2 (Japan, Rev B)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NODEVICE_LAN | MACHINE_SUPPORTS_SAVE ) +GAME( 1993, suzuk8h2, 0, suzuka8h, suzuka, suzuka8h_state, init_suzuk8h2, ROT0, "Namco", "Suzuka 8 Hours 2 (World, Rev B)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NODEVICE_LAN | MACHINE_SUPPORTS_SAVE ) +GAME( 1993, suzuk8h2j, suzuk8h2, suzuka8h, suzuka, suzuka8h_state, init_suzuk8h2, ROT0, "Namco", "Suzuka 8 Hours 2 (Japan, Rev B)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NODEVICE_LAN | MACHINE_SUPPORTS_SAVE ) GAME( 1993, sws93, 0, base_c68, base, namcos2_state, init_sws93, ROT0, "Namco", "Super World Stadium '93 (Japan)", MACHINE_SUPPORTS_SAVE ) // this appears to have a subtitle, what is it? diff --git a/src/mame/namco/namcos2.h b/src/mame/namco/namcos2.h index c613fba2746ab..784df04013b52 100644 --- a/src/mame/namco/namcos2.h +++ b/src/mame/namco/namcos2.h @@ -274,6 +274,23 @@ enum void sound_default_am(address_map &map) ATTR_COLD; }; +class suzuka8h_state : public namcos2_state +{ +public: + suzuka8h_state(const machine_config &mconfig, device_type type, const char *tag) : + namcos2_state(mconfig, type, tag), + m_out_digit(*this, "digit%u", 0U) + { } + +protected: + virtual void machine_start() override ATTR_COLD; + + virtual void dpram_word_w(offs_t offset, u16 data, u16 mem_mask = ~0) override; + +private: + output_finder<7> m_out_digit; +}; + class gollygho_state : public namcos2_state { public: diff --git a/src/mame/namco/namcos22.cpp b/src/mame/namco/namcos22.cpp index bc4144e79f5bb..53829fc992fed 100644 --- a/src/mame/namco/namcos22.cpp +++ b/src/mame/namco/namcos22.cpp @@ -2816,6 +2816,11 @@ void namcos22_state::handle_driving_io() m_shareram[0x034/2] = gas; m_shareram[0x036/2] = brake; handle_coinage(flags); + + // outputs + m_mcu_output[0] = m_shareram[0x20/2] & 0xff; // lamps, coin counters + m_mcu_output[1] = m_shareram[0x40/2] & 0xff; // drive commands (raverace, acedrive, victlap) + m_mcu_output[2] = m_shareram[0x42/2] & 0xff; // led outputs (acedrive, victlap) } } @@ -3624,6 +3629,7 @@ ALLOW_SAVE_TYPE(namcos22_dsp_upload_state); void namcos22_state::machine_start() { m_mcu_out.resolve(); + m_mcu_output.resolve(); m_cpuled_out.resolve(); m_portbits[0] = 0xffff; m_portbits[1] = 0xffff; diff --git a/src/mame/namco/namcos22.h b/src/mame/namco/namcos22.h index 2e2be7c4a1a01..6a3197e14a921 100644 --- a/src/mame/namco/namcos22.h +++ b/src/mame/namco/namcos22.h @@ -225,6 +225,7 @@ class namcos22_state : public driver_device m_custom(*this, "CUSTOM.%u", 0), m_opt(*this, "OPT.%u", 0), m_mcu_out(*this, "mcuout%u", 0U), + m_mcu_output(*this, "mcuoutput%u", 0U), m_cpuled_out(*this, "cpuled%u", 0U) { } @@ -437,6 +438,7 @@ class namcos22_state : public driver_device optional_ioport_array<2> m_custom; optional_ioport_array<2> m_opt; output_finder<16> m_mcu_out; + output_finder<3> m_mcu_output; output_finder<8> m_cpuled_out; u8 m_syscontrol[0x20] = { }; diff --git a/src/mame/namco/namcos2_m.cpp b/src/mame/namco/namcos2_m.cpp index f41f6b0692d88..98d00677e0434 100644 --- a/src/mame/namco/namcos2_m.cpp +++ b/src/mame/namco/namcos2_m.cpp @@ -84,6 +84,14 @@ void namcos2_state::machine_start() save_item(NAME(m_sendval)); } +void suzuka8h_state::machine_start() +{ + namcos2_state::machine_start(); + + // resolve outputs + m_out_digit.resolve(); +} + void gollygho_state::machine_start() { namcos2_state::machine_start(); diff --git a/src/osd/modules/file/posixsocket.cpp b/src/osd/modules/file/posixsocket.cpp index 6a23e747ea103..a2847ba55824a 100644 --- a/src/osd/modules/file/posixsocket.cpp +++ b/src/osd/modules/file/posixsocket.cpp @@ -98,7 +98,7 @@ class posix_osd_socket : public osd_file m_listening = false; actual = 0; - return std::error_condition(); + return std::errc::operation_would_block; } } } diff --git a/src/osd/modules/file/winrtsocket.cpp b/src/osd/modules/file/winrtsocket.cpp index d66551870f90e..eab09096eeb42 100644 --- a/src/osd/modules/file/winrtsocket.cpp +++ b/src/osd/modules/file/winrtsocket.cpp @@ -95,7 +95,7 @@ class win_osd_socket : public osd_file m_listening = false; actual = 0; - return error::NONE; + return error::FAILURE; } } } diff --git a/src/osd/modules/file/winsocket.cpp b/src/osd/modules/file/winsocket.cpp index d04538963ead0..5066f047de7bc 100644 --- a/src/osd/modules/file/winsocket.cpp +++ b/src/osd/modules/file/winsocket.cpp @@ -95,7 +95,7 @@ class win_osd_socket : public osd_file m_listening = false; actual = 0; - return std::error_condition(); + return std::errc::operation_would_block; } } }