mirror of
https://github.com/holub/mame
synced 2025-04-25 01:40:16 +03:00
misc: change ticket MOTOR_ACTIVE_LOW to HIGH
This commit is contained in:
parent
8b8ca99607
commit
b68c96e6c7
@ -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)
|
||||
{
|
||||
}
|
||||
|
||||
|
@ -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"
|
||||
|
@ -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,
|
||||
|
@ -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()
|
||||
|
@ -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);
|
||||
}
|
||||
|
||||
|
||||
|
@ -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);
|
||||
|
@ -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));
|
||||
|
@ -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();
|
||||
|
@ -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);
|
||||
|
@ -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);
|
||||
|
||||
|
@ -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));
|
||||
|
@ -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();
|
||||
}
|
||||
|
@ -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()
|
||||
|
@ -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)
|
||||
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user