misc: change ticket MOTOR_ACTIVE_LOW to HIGH

This commit is contained in:
hap 2024-09-09 15:08:07 +02:00
parent 8b8ca99607
commit b68c96e6c7
14 changed files with 124 additions and 122 deletions

View File

@ -54,7 +54,7 @@ ticket_dispenser_device::ticket_dispenser_device(const machine_config &mconfig,
, m_power(0)
, m_timer(nullptr)
, m_output(*this, tag) // TODO: change to "tag:status"
, m_dispense_handler(*this) // TODO: can we use m_output for this?
, m_dispense_handler(*this)
{
}

View File

@ -1,13 +1,13 @@
// license:BSD-3-Clause
// copyright-holders:hap
/*******************************************************************************
/*
Fidelity Electronics 6502 dynamic CPU clock divider
Offset-dependent CPU clock divider base class. Used to compensate slow memory
chips in chess computer models: SC12, AS12, PC, EAS, EAG.
*******************************************************************************/
*/
#include "emu.h"
#include "clockdiv.h"

View File

@ -36,7 +36,7 @@ TODO:
gnw_mariocmt, gnw_mariocmta, gnw_mariotj, gnw_mbaway, gnw_mmousep,
gnw_pinball, gnw_popeyep, gnw_sbuster, gnw_snoopyp, gnw_zelda
********************************************************************************
================================================================================
Misc Nintendo Game & Watch notes:
@ -121,7 +121,7 @@ The "Game Watch" wristwatches are by Nelsonic, not Nintendo.
Bassmate Computer (BM-501) is on identical hardware as G&W Multi Screen,
but it's not part of the game series.
********************************************************************************
================================================================================
Regarding Электроника (Elektronika, translated: Electronics): It is not
actually a company. It was a USSR brand name for consumer electronics,

View File

@ -129,21 +129,21 @@ protected:
void fill_quad(u16 cmd, u16 *data);
void draw_line(u16 cmd, u16 *data);
int m_dbmode;
bool m_fg16bit;
bool m_bg16bit;
bool m_rend16bit;
bool m_width1024;
bool m_rsae;
bool m_vbkem;
s16 m_xo;
s16 m_yo;
s16 m_uxmin;
s16 m_uxmax;
s16 m_uymin;
s16 m_uymax;
s16 m_sxmax;
s16 m_symax;
int m_dbmode = 0;
bool m_fg16bit = false;
bool m_bg16bit = false;
bool m_rend16bit = false;
bool m_width1024 = false;
bool m_rsae = false;
bool m_vbkem = false;
s16 m_xo = 0;
s16 m_yo = 0;
s16 m_uxmin = 0;
s16 m_uxmax = 0;
s16 m_uymin = 0;
s16 m_uymax = 0;
s16 m_sxmax = 0;
s16 m_symax = 0;
u32 get_rend_offset()
{
@ -272,7 +272,7 @@ void gsan_state::portc_w(u64 data)
*/
m_portc_data = data;
machine().bookkeeping().coin_counter_w(0, ~data & 8);
machine().bookkeeping().coin_counter_w(0, BIT(~data, 3));
}
void gsan_state::portc_medal_w(u64 data)
{
@ -284,10 +284,10 @@ void gsan_state::portc_medal_w(u64 data)
*/
m_portc_data = data;
m_hopper->motor_w(data & 0x80);
machine().bookkeeping().coin_counter_w(0, data & 4);
machine().bookkeeping().coin_counter_w(1, data & 2);
machine().bookkeeping().coin_counter_w(2, data & 1);
m_hopper->motor_w(BIT(~data, 7));
machine().bookkeeping().coin_counter_w(0, BIT(data, 2));
machine().bookkeeping().coin_counter_w(1, BIT(data, 1));
machine().bookkeeping().coin_counter_w(2, BIT(data, 0));
}
u64 gsan_state::porte_r()
{
@ -315,9 +315,9 @@ void gsan_state::porte_medal_w(u64 data)
*/
m_porte_data = data;
machine().bookkeeping().coin_lockout_w(0, data & 4);
machine().bookkeeping().coin_lockout_w(1, data & 2);
machine().bookkeeping().coin_lockout_w(2, data & 1);
machine().bookkeeping().coin_lockout_w(0, BIT(data, 2));
machine().bookkeeping().coin_lockout_w(1, BIT(data, 1));
machine().bookkeeping().coin_lockout_w(2, BIT(data, 0));
}
@ -1081,7 +1081,7 @@ void gsan_state::gs_medal(machine_config &config)
m_screen->set_raw(XTAL(36'000'000) / 5, 457, 0, 320, 262, 0, 240);
HOPPER(config, "hopper", attotime::from_msec(100), hopper_device::MOTOR_ACTIVE_LOW, hopper_device::STATUS_ACTIVE_HIGH);
HOPPER(config, "hopper", attotime::from_msec(100), hopper_device::MOTOR_ACTIVE_HIGH, hopper_device::STATUS_ACTIVE_HIGH);
}
void gsan_state::init_gsan()

View File

@ -1777,10 +1777,10 @@ void williams_state::lottofun(machine_config &config)
williams_b1(config);
// pia
m_pia[0]->writepb_handler().set("ticket", FUNC(ticket_dispenser_device::motor_w)).bit(7);
m_pia[0]->writepb_handler().set("ticket", FUNC(ticket_dispenser_device::motor_w)).bit(7).invert();
m_pia[0]->ca2_handler().set([this](int state) { machine().bookkeeping().coin_lockout_global_w(state); });
TICKET_DISPENSER(config, "ticket", attotime::from_msec(70), ticket_dispenser_device::MOTOR_ACTIVE_LOW, ticket_dispenser_device::STATUS_ACTIVE_HIGH);
TICKET_DISPENSER(config, "ticket", attotime::from_msec(70), ticket_dispenser_device::MOTOR_ACTIVE_HIGH, ticket_dispenser_device::STATUS_ACTIVE_HIGH);
}

View File

@ -280,7 +280,7 @@ void amusco_state::output_b_w(uint8_t data)
m_lamps[6] = BIT(data, 2); // Lamp 6 (Start/Draw)
m_lamps[7] = BIT(data, 1); // Lamp 7 (Unknown)
m_pit->write_gate0(!BIT(data, 4));
m_pit->write_gate0(BIT(~data, 4));
// logerror("Writing %02Xh to PPI output B\n", data);
}
@ -300,8 +300,8 @@ void amusco_state::output_c_w(uint8_t data)
if (!data)
return;
machine().bookkeeping().coin_counter_w(0, !BIT(data, 1));
m_hopper->motor_w(BIT(data, 4));
machine().bookkeeping().coin_counter_w(0, BIT(~data, 1));
m_hopper->motor_w(BIT(~data, 4));
// logerror("Writing %02Xh to PPI output C\n", data);
}
@ -574,7 +574,7 @@ void amusco_state::amusco(machine_config &config)
i8155b.in_pc_callback().set(m_rtc, FUNC(msm5832_device::data_r));
i8155b.out_pc_callback().set(m_rtc, FUNC(msm5832_device::data_w));
TICKET_DISPENSER(config, m_hopper, attotime::from_msec(30), ticket_dispenser_device::MOTOR_ACTIVE_LOW, ticket_dispenser_device::STATUS_ACTIVE_HIGH);
TICKET_DISPENSER(config, m_hopper, attotime::from_msec(30), ticket_dispenser_device::MOTOR_ACTIVE_HIGH, ticket_dispenser_device::STATUS_ACTIVE_HIGH);
/* video hardware */
SCREEN(config, m_screen, SCREEN_TYPE_RASTER);

View File

@ -43,10 +43,12 @@
*********************************************************************/
#include "emu.h"
#include "cpu/e132xs/e132xs.h"
#include "machine/nvram.h"
#include "machine/ticket.h"
#include "sound/okim6295.h"
#include "emupal.h"
#include "screen.h"
#include "speaker.h"
@ -72,6 +74,11 @@ public:
void init_mjsenpu();
protected:
virtual void machine_start() override;
virtual void machine_reset() override;
virtual void video_start() override;
private:
/* devices */
required_device<e132xt_device> m_maincpu;
@ -80,9 +87,9 @@ private:
required_shared_ptr<uint32_t> m_mainram;
// required_shared_ptr<uint32_t> m_vram;
uint8_t m_pal[0x200];
uint32_t m_vram0[0x20000 / 4];
uint32_t m_vram1[0x20000 / 4];
uint8_t m_pal[0x200] = { };
uint32_t m_vram0[0x20000 / 4] = { };
uint32_t m_vram1[0x20000 / 4] = { };
uint8_t m_control = 0;
uint8_t m_mux = 0;
@ -102,9 +109,6 @@ private:
uint32_t vram_r(offs_t offset);
void vram_w(offs_t offset, uint32_t data, uint32_t mem_mask = ~0);
virtual void machine_start() override;
virtual void machine_reset() override;
virtual void video_start() override;
uint32_t screen_update_mjsenpu(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
required_device<palette_device> m_palette;
@ -163,15 +167,15 @@ void mjsenpu_state::control_w(uint8_t data)
// bit 0x20 not used?
// bit 0x10 is the M6295 bank, samples <26 are the same in both banks and so bank switch isn't written for them, not even in sound test.
m_oki->set_rom_bank((data&0x10)>>4);
m_oki->set_rom_bank(BIT(data, 4));
// bits 0x08 is used in the alt payout / hopper mode (see dipswitches)
// 0x04 seem to be hopper/ticket related? different ones get used depending on the dips
m_hopper->motor_w(data & 0x04);
m_hopper->motor_w(BIT(~data, 2));
// bit 0x02 could be coin counter?
machine().bookkeeping().coin_counter_w(0, data & 0x02 );
machine().bookkeeping().coin_counter_w(0, BIT(data, 1));
// bit 0x01 alternates frequently, using as video buffer, but that's a complete guess
m_control = data;
@ -471,7 +475,7 @@ void mjsenpu_state::mjsenpu(machine_config &config)
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_1);
// more likely coins out?
TICKET_DISPENSER(config, m_hopper, attotime::from_msec(50), ticket_dispenser_device::MOTOR_ACTIVE_LOW, ticket_dispenser_device::STATUS_ACTIVE_HIGH);
TICKET_DISPENSER(config, m_hopper, attotime::from_msec(50), ticket_dispenser_device::MOTOR_ACTIVE_HIGH, ticket_dispenser_device::STATUS_ACTIVE_HIGH);
/* video hardware */
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));

View File

@ -37,12 +37,14 @@
****************************************************************************/
#include "emu.h"
#include "cpu/m68000/m68000.h"
#include "cpu/z80/z80.h"
#include "machine/nvram.h"
#include "machine/ticket.h"
#include "sound/bsmt2000.h"
#include "video/mc6845.h"
#include "screen.h"
#include "speaker.h"
@ -70,6 +72,10 @@ public:
void tapatune(machine_config &config);
void tapatune_base(machine_config &config);
protected:
virtual void machine_start() override;
virtual void machine_reset() override;
private:
required_device<cpu_device> m_maincpu;
optional_device<cpu_device> m_videocpu;
@ -77,22 +83,19 @@ private:
optional_shared_ptr<uint16_t> m_videoram;
uint8_t m_paletteram[0x300]{};
uint16_t m_palette_write_addr = 0;
rgb_t m_pens[0x100];
uint8_t m_controls_mux = 0;
uint8_t m_z80_to_68k_index = 0;
uint8_t m_z80_to_68k_data = 0;
uint8_t m_68k_to_z80_index = 0;
uint8_t m_68k_to_z80_data = 0;
uint8_t m_z80_data_available = 0;
uint8_t m_68k_data_available = 0;
uint8_t m_bsmt_data_l = 0;
uint8_t m_bsmt_data_h = 0;
bool m_bsmt_reset = false;
virtual void machine_start() override;
virtual void machine_reset() override;
uint8_t m_paletteram[0x300]{};
uint16_t m_palette_write_addr = 0;
rgb_t m_pens[0x100];
uint8_t m_controls_mux = 0;
uint8_t m_z80_to_68k_index = 0;
uint8_t m_z80_to_68k_data = 0;
uint8_t m_68k_to_z80_index = 0;
uint8_t m_68k_to_z80_data = 0;
uint8_t m_z80_data_available = 0;
uint8_t m_68k_data_available = 0;
uint8_t m_bsmt_data_l = 0;
uint8_t m_bsmt_data_h = 0;
bool m_bsmt_reset = false;
void crtc_vsync(int state);
@ -505,7 +508,7 @@ static INPUT_PORTS_START( tapatune )
PORT_START("COINS")
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 )
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 )
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_CUSTOM ) PORT_READ_LINE_DEVICE_MEMBER("ticket", ticket_dispenser_device, line_r)
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_DEVICE_MEMBER("ticket", ticket_dispenser_device, line_r)
PORT_BIT( 0xf8, IP_ACTIVE_LOW, IPT_UNUSED )
PORT_START("BUTTONS")
@ -536,7 +539,7 @@ void tapatune_state::tapatune_base(machine_config &config)
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0);
TICKET_DISPENSER(config, "ticket", attotime::from_msec(100), ticket_dispenser_device::MOTOR_ACTIVE_LOW, ticket_dispenser_device::STATUS_ACTIVE_LOW);
TICKET_DISPENSER(config, "ticket", attotime::from_msec(100), ticket_dispenser_device::MOTOR_ACTIVE_HIGH, ticket_dispenser_device::STATUS_ACTIVE_HIGH);
/* sound hardware */
SPEAKER(config, "lspeaker").front_left();

View File

@ -344,8 +344,8 @@ void tickee_state::tickee_control_w(offs_t offset, uint8_t data)
break;
case 3:
m_ticket[0]->motor_w(BIT(data, 3));
m_ticket[1]->motor_w(BIT(data, 2));
m_ticket[0]->motor_w(BIT(~data, 3));
m_ticket[1]->motor_w(BIT(~data, 2));
break;
default:
@ -806,8 +806,8 @@ void tickee_gun_state::tickee(machine_config &config)
set_beamadd(50, 0);
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_1);
TICKET_DISPENSER(config, m_ticket[0], attotime::from_msec(100), ticket_dispenser_device::MOTOR_ACTIVE_LOW, ticket_dispenser_device::STATUS_ACTIVE_HIGH);
TICKET_DISPENSER(config, m_ticket[1], attotime::from_msec(100), ticket_dispenser_device::MOTOR_ACTIVE_LOW, ticket_dispenser_device::STATUS_ACTIVE_HIGH);
TICKET_DISPENSER(config, m_ticket[0], attotime::from_msec(100), ticket_dispenser_device::MOTOR_ACTIVE_HIGH, ticket_dispenser_device::STATUS_ACTIVE_HIGH);
TICKET_DISPENSER(config, m_ticket[1], attotime::from_msec(100), ticket_dispenser_device::MOTOR_ACTIVE_HIGH, ticket_dispenser_device::STATUS_ACTIVE_HIGH);
// video hardware
TLC34076(config, m_tlc34076, tlc34076_device::TLC34076_6_BIT);
@ -850,8 +850,8 @@ void tickee_state::mouseatk(machine_config &config)
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_1);
TICKET_DISPENSER(config, m_ticket[0], attotime::from_msec(100), ticket_dispenser_device::MOTOR_ACTIVE_LOW, ticket_dispenser_device::STATUS_ACTIVE_HIGH);
TICKET_DISPENSER(config, m_ticket[1], attotime::from_msec(100), ticket_dispenser_device::MOTOR_ACTIVE_LOW, ticket_dispenser_device::STATUS_ACTIVE_HIGH);
TICKET_DISPENSER(config, m_ticket[0], attotime::from_msec(100), ticket_dispenser_device::MOTOR_ACTIVE_HIGH, ticket_dispenser_device::STATUS_ACTIVE_HIGH);
TICKET_DISPENSER(config, m_ticket[1], attotime::from_msec(100), ticket_dispenser_device::MOTOR_ACTIVE_HIGH, ticket_dispenser_device::STATUS_ACTIVE_HIGH);
// video hardware
TLC34076(config, m_tlc34076, tlc34076_device::TLC34076_6_BIT);

View File

@ -50,16 +50,14 @@
***************************************************************************/
#define MASTER_CLOCK XTAL(21'477'272) // Dumper notes poorly refers to a 21.?727 Xtal.
#include "emu.h"
#include "cpu/z80/z80.h"
#include "sound/ay8910.h"
#include "video/v9938.h"
#include "machine/nvram.h"
#include "machine/ticket.h"
#include "screen.h"
#include "speaker.h"
@ -97,10 +95,6 @@ private:
};
#define HOPPER_PULSE 40 // time between hopper pulses in milliseconds
#define VDP_MEM 0x40000
/****************************************
* Input Ports Demux & Common Routines *
****************************************/
@ -108,7 +102,7 @@ private:
void big10_state::mux_w(uint8_t data)
{
m_mux_data = ~data;
m_hopper->motor_w(BIT(data, 6));
m_hopper->motor_w(BIT(~data, 6));
m_lamp = BIT(~data, 7); // maybe a coin counter?
}
@ -232,6 +226,8 @@ INPUT_PORTS_END
void big10_state::big10(machine_config &config)
{
constexpr XTAL MASTER_CLOCK = 21.477272_MHz_XTAL; // Dumper notes poorly refers to a 21.?727 Xtal.
// basic machine hardware
Z80(config, m_maincpu, MASTER_CLOCK/6); // guess
m_maincpu->set_addrmap(AS_PROGRAM, &big10_state::main_map);
@ -239,12 +235,12 @@ void big10_state::big10(machine_config &config)
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0);
TICKET_DISPENSER(config, m_hopper, attotime::from_msec(HOPPER_PULSE), ticket_dispenser_device::MOTOR_ACTIVE_LOW, ticket_dispenser_device::STATUS_ACTIVE_LOW);
TICKET_DISPENSER(config, m_hopper, attotime::from_msec(40), ticket_dispenser_device::MOTOR_ACTIVE_HIGH, ticket_dispenser_device::STATUS_ACTIVE_HIGH);
// video hardware
v9938_device &v9938(V9938(config, "v9938", MASTER_CLOCK));
v9938.set_screen_ntsc("screen");
v9938.set_vram_size(VDP_MEM);
v9938.set_vram_size(0x40000);
v9938.int_cb().set_inputline("maincpu", 0);
SCREEN(config, "screen", SCREEN_TYPE_RASTER);

View File

@ -323,7 +323,7 @@ void doraemon_state::outputs_w(uint8_t data)
machine().bookkeeping().coin_counter_w(1, BIT(data, 1)); // gift out counter
machine().bookkeeping().coin_lockout_w(0, BIT(~data, 3)); // coin lockout
m_hopper->motor_w(BIT(~data, 2)); // gift out motor
m_hopper->motor_w(BIT(data, 2)); // gift out motor
m_mainbank->set_entry((data & 0x30) >> 4);
@ -481,7 +481,7 @@ static INPUT_PORTS_START( doraemon )
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 )
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON3 )
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_CUSTOM ) PORT_READ_LINE_DEVICE_MEMBER("hopper", ticket_dispenser_device, line_r) // sensor
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_DEVICE_MEMBER("hopper", ticket_dispenser_device, line_r) // sensor
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_SERVICE_NO_TOGGLE( 0x80, IP_ACTIVE_LOW )
INPUT_PORTS_END
@ -601,7 +601,7 @@ void doraemon_state::doraemon(machine_config &config)
m_spritegen->set_bg_yoffsets(0x00, 0x01);
m_spritegen->set_fg_yoffsets(0x00, 0x10);
TICKET_DISPENSER(config, m_hopper, attotime::from_msec(2000), ticket_dispenser_device::MOTOR_ACTIVE_LOW, ticket_dispenser_device::STATUS_ACTIVE_LOW);
TICKET_DISPENSER(config, m_hopper, attotime::from_msec(2000), ticket_dispenser_device::MOTOR_ACTIVE_HIGH, ticket_dispenser_device::STATUS_ACTIVE_HIGH);
// video hardware
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));

View File

@ -114,6 +114,7 @@ Notes:
*************************************************************************************************************/
#include "emu.h"
#include "cpu/z80/kl5c80a12.h"
#include "cpu/z80/ky80.h"
#include "machine/74165.h"
@ -126,6 +127,7 @@ Notes:
#include "sound/okim9810.h"
#include "sound/ymz280b.h"
#include "video/bufsprite.h"
#include "emupal.h"
#include "screen.h"
#include "speaker.h"
@ -734,7 +736,7 @@ void sigmab98_state::show_outputs()
void sigmab98_state::eeprom_w(uint8_t data)
{
// latch the bit
m_eeprom->di_write((data & 0x40) >> 6);
m_eeprom->di_write(BIT(data, 6));
// reset line asserted: reset.
// if ((m_c0 ^ data) & 0x20)
@ -765,9 +767,9 @@ void sigmab98_state::c4_w(uint8_t data)
// 20 led? (starts blinking after coin in)
void sigmab98_state::c6_w(uint8_t data)
{
machine().bookkeeping().coin_lockout_w(0, (~data) & 0x02);
machine().bookkeeping().coin_lockout_w(0, BIT(~data, 1));
machine().bookkeeping().coin_counter_w(0, data & 0x04);
machine().bookkeeping().coin_counter_w(0, BIT(data, 2));
if ((data & 0x08) && !(m_c6 & 0x08))
m_buffered_spriteram->copy();
@ -784,7 +786,7 @@ void sigmab98_state::c6_w(uint8_t data)
// 02 hopper motor on (active low)?
void sigmab98_state::c8_w(uint8_t data)
{
m_hopper->motor_w((!(data & 0x02) && (data & 0x01)) ? 0 : 1);
m_hopper->motor_w(~data >> 1 & data & 1);
m_c8 = data;
show_outputs();
@ -819,7 +821,7 @@ void sigmab98_state::gegege_io_map(address_map &map)
map(0xc6, 0xc6).w(FUNC(sigmab98_state::c6_w));
map(0xc8, 0xc8).w(FUNC(sigmab98_state::c8_w));
map(0xe5, 0xe5).nopr(); // during irq
map(0xe5, 0xe5).nopr(); // during irq
}
@ -1201,19 +1203,19 @@ GFXDECODE_END
// 1 button (plus bet and payout)
static INPUT_PORTS_START( sigma_1b )
PORT_START("EEPROM")
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_CUSTOM ) // Related to d013. Must be 0
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_CUSTOM ) // Related to d013. Must be 0
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_CUSTOM ) PORT_VBLANK("screen") // Related to d013. Must be 0
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_serial_93cxx_device, do_read)
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_serial_93cxx_device, do_read)
PORT_START("BUTTON")
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_IMPULSE(5) // ? (coin error, pulses mask 4 of port c6)
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_IMPULSE(5) PORT_NAME("Medal") // coin/medal in (coin error)
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_DEVICE_MEMBER("hopper", ticket_dispenser_device, line_r)
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_CUSTOM ) PORT_READ_LINE_DEVICE_MEMBER("hopper", ticket_dispenser_device, line_r)
PORT_SERVICE( 0x08, IP_ACTIVE_LOW )
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_GAMBLE_BET ) PORT_CODE(KEYCODE_1) // bet / select in test menu
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON1 )
@ -1289,7 +1291,7 @@ static INPUT_PORTS_START( lufykzku )
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNKNOWN )
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNKNOWN )
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNKNOWN )
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_DEVICE_MEMBER("hopper", ticket_dispenser_device, line_r)
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_CUSTOM ) PORT_READ_LINE_DEVICE_MEMBER("hopper", ticket_dispenser_device, line_r)
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN )
PORT_START("PAYOUT")
@ -1365,14 +1367,14 @@ static INPUT_PORTS_START( sammymdl )
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_START("COIN")
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_IMPULSE(5) // coin1 in
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_IMPULSE(5) // coin2 in
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN3 ) PORT_IMPULSE(5) PORT_NAME("Medal") // medal in
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE ) // test sw
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_DEVICE_MEMBER("hopper", ticket_dispenser_device, line_r)
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_IMPULSE(5) // coin1 in
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_IMPULSE(5) // coin2 in
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN3 ) PORT_IMPULSE(5) PORT_NAME("Medal") // medal in
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE ) // test sw
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_CUSTOM ) PORT_READ_LINE_DEVICE_MEMBER("hopper", ticket_dispenser_device, line_r)
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
INPUT_PORTS_END
static INPUT_PORTS_START( haekaka )
@ -1387,22 +1389,22 @@ static INPUT_PORTS_START( haekaka )
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_START("COIN")
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE ) // test sw
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) // button
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_DEVICE_MEMBER("hopper", ticket_dispenser_device, line_r)
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_SERVICE1 ) // service coin / set in test mode
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE ) // test sw
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) // button
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_CUSTOM ) PORT_READ_LINE_DEVICE_MEMBER("hopper", ticket_dispenser_device, line_r)
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_SERVICE1 ) // service coin / set in test mode
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
INPUT_PORTS_END
static INPUT_PORTS_START( gocowboy )
PORT_START("BUTTON")
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) // shoot
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_IMPULSE(20) // coin
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_DEVICE_MEMBER("hopper_small", ticket_dispenser_device, line_r) // 1/2' pay sensor (small)
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_DEVICE_MEMBER("hopper_large", ticket_dispenser_device, line_r) // 3/4' pay sensor (large)
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_CUSTOM ) PORT_READ_LINE_DEVICE_MEMBER("hopper_small", ticket_dispenser_device, line_r) // 1/2' pay sensor (small)
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_CUSTOM ) PORT_READ_LINE_DEVICE_MEMBER("hopper_large", ticket_dispenser_device, line_r) // 3/4' pay sensor (large)
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_SERVICE1 ) PORT_NAME("Meter Switch") // capsule test (pressed while booting) / next in test mode
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_SERVICE2 ) PORT_NAME("Reset Switch") // reset backup ram (pressed while booting) / previous in test mode
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_SERVICE ) // test mode (keep pressed in game) / select in test mode / service coin
@ -1444,7 +1446,7 @@ void sigmab98_state::sigmab98(machine_config &config)
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0);
EEPROM_93C46_16BIT(config, "eeprom");
TICKET_DISPENSER(config, m_hopper, attotime::from_msec(200), ticket_dispenser_device::MOTOR_ACTIVE_LOW, ticket_dispenser_device::STATUS_ACTIVE_LOW );
TICKET_DISPENSER(config, m_hopper, attotime::from_msec(200), ticket_dispenser_device::MOTOR_ACTIVE_HIGH, ticket_dispenser_device::STATUS_ACTIVE_HIGH );
// video hardware
SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
@ -1516,7 +1518,7 @@ void lufykzku_state::lufykzku(machine_config &config)
// No EEPROM
MB3773(config, m_watchdog, 0);
TICKET_DISPENSER(config, m_hopper, attotime::from_msec(200), ticket_dispenser_device::MOTOR_ACTIVE_LOW, ticket_dispenser_device::STATUS_ACTIVE_LOW );
TICKET_DISPENSER(config, m_hopper, attotime::from_msec(200), ticket_dispenser_device::MOTOR_ACTIVE_HIGH, ticket_dispenser_device::STATUS_ACTIVE_HIGH );
// 2 x 8-bit parallel/serial converters
TTL165(config, m_dsw_shifter[0]);
@ -1593,7 +1595,7 @@ void sammymdl_state::sammymdl(machine_config &config)
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); // battery backed RAM
EEPROM_93C46_8BIT(config, "eeprom");
TICKET_DISPENSER(config, m_hopper, attotime::from_msec(200), ticket_dispenser_device::MOTOR_ACTIVE_LOW, ticket_dispenser_device::STATUS_ACTIVE_LOW );
TICKET_DISPENSER(config, m_hopper, attotime::from_msec(200), ticket_dispenser_device::MOTOR_ACTIVE_HIGH, ticket_dispenser_device::STATUS_ACTIVE_HIGH );
WATCHDOG_TIMER(config, "watchdog");
@ -1640,8 +1642,8 @@ void sammymdl_state::gocowboy(machine_config &config)
TIMER(config, "scantimer").configure_scanline(FUNC(sammymdl_state::gocowboy_int), "screen", 0, 1);
config.device_remove("hopper");
TICKET_DISPENSER(config, m_hopper_small, attotime::from_msec(200), ticket_dispenser_device::MOTOR_ACTIVE_LOW, ticket_dispenser_device::STATUS_ACTIVE_LOW );
TICKET_DISPENSER(config, m_hopper_large, attotime::from_msec(200), ticket_dispenser_device::MOTOR_ACTIVE_LOW, ticket_dispenser_device::STATUS_ACTIVE_LOW );
TICKET_DISPENSER(config, m_hopper_small, attotime::from_msec(200), ticket_dispenser_device::MOTOR_ACTIVE_HIGH, ticket_dispenser_device::STATUS_ACTIVE_HIGH );
TICKET_DISPENSER(config, m_hopper_large, attotime::from_msec(200), ticket_dispenser_device::MOTOR_ACTIVE_HIGH, ticket_dispenser_device::STATUS_ACTIVE_HIGH );
m_screen->screen_vblank().set_nop();
}

View File

@ -138,6 +138,10 @@ private:
optional_device_array<netlist_mame_logic_input_device, 8> m_sound_nl;
required_ioport_array<2> m_inputs;
u16 m_mux = 0;
u8 m_seg_data = 0;
u8 m_sound_data = 0;
void main_map(address_map &map);
void main_io(address_map &map);
@ -149,10 +153,6 @@ private:
void sound_w(u8 data);
void discrete_w(u8 data);
u8 sound_r();
u16 m_mux = 0;
u8 m_seg_data = 0;
u8 m_sound_data = 0;
};
void gm_state::machine_start()

View File

@ -10,7 +10,6 @@
NETLIST_START(gamemachine)
{
/* Standard stuff */
SOLVER(Solver, 48000)
@ -87,6 +86,4 @@ NETLIST_START(gamemachine)
NET_C(Q1.C, SPK1.2)
NET_C(C8.1, R1.1, R3.2, IC1.5)
}