mirror of
https://github.com/holub/mame
synced 2025-04-27 18:53:05 +03:00
feversoc: Add coin hopper output (prize hopper doesn't quite work)
This commit is contained in:
parent
e7aa308c30
commit
1badb116de
@ -14,7 +14,7 @@ looping over a complex control structure. Could these be derived from the
|
|||||||
|
|
||||||
TODO:
|
TODO:
|
||||||
- Layout including lamps
|
- Layout including lamps
|
||||||
- Hook up a ticket dispenser and solve the "HOPPER ERROR" issue
|
- Hopper only works in "COIN HOPPER" mode
|
||||||
- Do button 5 or remaining DIPs actually do anything outside service mode?
|
- Do button 5 or remaining DIPs actually do anything outside service mode?
|
||||||
|
|
||||||
============================================================================
|
============================================================================
|
||||||
@ -72,6 +72,7 @@ U0564 LH28F800SU OBJ4-1
|
|||||||
#include "machine/eepromser.h"
|
#include "machine/eepromser.h"
|
||||||
#include "machine/rtc4543.h"
|
#include "machine/rtc4543.h"
|
||||||
#include "machine/nvram.h"
|
#include "machine/nvram.h"
|
||||||
|
#include "machine/ticket.h"
|
||||||
#include "screen.h"
|
#include "screen.h"
|
||||||
#include "speaker.h"
|
#include "speaker.h"
|
||||||
|
|
||||||
@ -90,6 +91,7 @@ public:
|
|||||||
m_oki(*this, "oki"),
|
m_oki(*this, "oki"),
|
||||||
m_eeprom(*this, "eeprom"),
|
m_eeprom(*this, "eeprom"),
|
||||||
m_rtc(*this, "rtc"),
|
m_rtc(*this, "rtc"),
|
||||||
|
m_hopper(*this, "hopper"),
|
||||||
m_gfxdecode(*this, "gfxdecode"),
|
m_gfxdecode(*this, "gfxdecode"),
|
||||||
m_palette(*this, "palette") { }
|
m_palette(*this, "palette") { }
|
||||||
|
|
||||||
@ -109,6 +111,7 @@ public:
|
|||||||
required_device<okim6295_device> m_oki;
|
required_device<okim6295_device> m_oki;
|
||||||
required_device<eeprom_serial_93cxx_device> m_eeprom;
|
required_device<eeprom_serial_93cxx_device> m_eeprom;
|
||||||
required_device<jrc6355e_device> m_rtc;
|
required_device<jrc6355e_device> m_rtc;
|
||||||
|
required_device<ticket_dispenser_device> m_hopper;
|
||||||
required_device<gfxdecode_device> m_gfxdecode;
|
required_device<gfxdecode_device> m_gfxdecode;
|
||||||
required_device<palette_device> m_palette;
|
required_device<palette_device> m_palette;
|
||||||
};
|
};
|
||||||
@ -158,9 +161,9 @@ WRITE16_MEMBER( feversoc_state::output_w )
|
|||||||
machine().bookkeeping().coin_lockout_w(0, ~data & 0x40);
|
machine().bookkeeping().coin_lockout_w(0, ~data & 0x40);
|
||||||
machine().bookkeeping().coin_lockout_w(1, ~data & 0x40);
|
machine().bookkeeping().coin_lockout_w(1, ~data & 0x40);
|
||||||
machine().bookkeeping().coin_counter_w(0, data & 1);
|
machine().bookkeeping().coin_counter_w(0, data & 1);
|
||||||
// data & 2 coin out
|
// data & 2 coin out counter
|
||||||
machine().bookkeeping().coin_counter_w(1, data & 4);
|
machine().bookkeeping().coin_counter_w(1, data & 4);
|
||||||
// data & 8 coin hopper
|
m_hopper->motor_w((data & 0x08) >> 3); // coin hopper or prize hopper
|
||||||
m_oki->set_rom_bank((data & 0x20) >> 5);
|
m_oki->set_rom_bank((data & 0x20) >> 5);
|
||||||
|
|
||||||
m_eeprom->di_write((data & 0x8000) ? 1 : 0);
|
m_eeprom->di_write((data & 0x8000) ? 1 : 0);
|
||||||
@ -232,7 +235,7 @@ static INPUT_PORTS_START( feversoc )
|
|||||||
PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_SERVICE )
|
PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_SERVICE )
|
||||||
PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_GAMBLE_KEYIN ) PORT_NAME("Key In (Service)")
|
PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_GAMBLE_KEYIN ) PORT_NAME("Key In (Service)")
|
||||||
PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_COIN1 )
|
PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_COIN1 )
|
||||||
PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Hopper") PORT_TOGGLE PORT_CODE(KEYCODE_H)
|
PORT_BIT( 0x0020, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("hopper", ticket_dispenser_device, line_r)
|
||||||
PORT_BIT( 0x0040, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_serial_93cxx_device, do_read)
|
PORT_BIT( 0x0040, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_serial_93cxx_device, do_read)
|
||||||
PORT_BIT( 0x0080, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("rtc", rtc4543_device, data_r)
|
PORT_BIT( 0x0080, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("rtc", rtc4543_device, data_r)
|
||||||
PORT_DIPNAME( 0x0100, 0x0100, DEF_STR( Service_Mode ) ) PORT_DIPLOCATION( "DIP1:1" )
|
PORT_DIPNAME( 0x0100, 0x0100, DEF_STR( Service_Mode ) ) PORT_DIPLOCATION( "DIP1:1" )
|
||||||
@ -301,6 +304,8 @@ static MACHINE_CONFIG_START( feversoc, feversoc_state )
|
|||||||
MCFG_JRC6355E_ADD("rtc", XTAL_32_768kHz)
|
MCFG_JRC6355E_ADD("rtc", XTAL_32_768kHz)
|
||||||
|
|
||||||
MCFG_NVRAM_ADD_0FILL("nvram")
|
MCFG_NVRAM_ADD_0FILL("nvram")
|
||||||
|
|
||||||
|
MCFG_TICKET_DISPENSER_ADD("hopper", attotime::from_msec(60), TICKET_MOTOR_ACTIVE_HIGH, TICKET_STATUS_ACTIVE_HIGH )
|
||||||
MACHINE_CONFIG_END
|
MACHINE_CONFIG_END
|
||||||
|
|
||||||
/***************************************************************************
|
/***************************************************************************
|
||||||
|
Loading…
Reference in New Issue
Block a user