summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/konamigq.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/konamigq.cpp')
-rw-r--r--src/mame/drivers/konamigq.cpp462
1 files changed, 0 insertions, 462 deletions
diff --git a/src/mame/drivers/konamigq.cpp b/src/mame/drivers/konamigq.cpp
deleted file mode 100644
index 0586be76030..00000000000
--- a/src/mame/drivers/konamigq.cpp
+++ /dev/null
@@ -1,462 +0,0 @@
-// license:BSD-3-Clause
-// copyright-holders:R. Belmont, smf
-/***************************************************************************
-
- Konami GQ System - Arcade PSX Hardware
- ======================================
- Driver by R. Belmont & smf
-
- Crypt Killer
- Konami, 1995
-
- PCB Layout
- ----------
-
- GQ420 PWB354905B
- |----------------------------------------------------------------|
- |CN14 420A01.2G 420A02.3M CN6 CN7 CN8 |
- | 056602 6264 |------| 424800 |
- | LA4705 6264 |058141| |
- | 68000 |------| 424800 |
- | 18.432MHz PAL(000607) |
- | 32MHz 48kHz PAL |------| 424800 |
- | (000608) |058800| |
- | RESET_SW |------| M514256 |
- | |--------| M514256 |
- |J |TMS57002| |
- |A |--------| MACH110 |
- |M 000180 53.693175MHz (000619A) |
- |M |--------| |
- |A KM4216V256 KM4216V256 |CXD8538Q| PAL (000613) |
- | KM4216V256 KM4216V256 | | PAL (000612) |
- | TEST_SW |--------| PAL (000618) |
- | CXD2923AR 67.7376MHz 93C46 NCR53CF96-2 |
- | DIPSW(8) |---------| 420B03.27P HDD_LED |
- | KM48V514 KM48V514 |CXD8530BQ| |-----------------| |
- | KM48V514 KM48V514 | | |543MB SCSI HDRIVE| |
- |CN3 UPA1556 |---------| |TOSHIBA MK1924FBV| |
- | KM48V514 KM48V514 |(420UAA04) | |
- | KM48V514 KM48V514 |-----------------| |
- |----------------------------------------------------------------|
-
- Notes:
- CN6/7/8 - 5-pin connector for guns. All 3 connectors are wired the same.
- Pinout is...
- 1- gun opto
- 2- ground
- 3- trigger
- 4- +5v
- 5- reload (see below)
-
- The Crypt Killer shotguns have 6 wires coming out of the gun.
- The wire colors and connections are....
- Black - Ground; joined to CN6/7/8 pin 2
- Red - +5v; joined to CN6/7/8 pin 4
- Yellow - Gun opto; joined to CN6/7/8 pin 1
- White - Trigger; joined to CN6/7/8 pin 3
- Purple - Reload; joined to CN6/7/8 pin 5
- Grey - Reload ground; this wire must be joined to any ground for the reload to work
-
- CN3 - For connection of extra controls/buttons (e.g. player 3 start etc)
- CN14 - For connection of additional speaker for stereo output
- 68000 - Clock input 8.000MHz [32/4]
- 53CF96 - Clock input 16.000MHz [32/2]
- TMS57002- Clock input 24.000MHz [48/2]
- 056602 - Konami custom ceramic module. Clock inputs 18.432MHz, 1.536MHz[18.432/12], 48kHz
- 000180 - Konami custom ceramic module containing LM1203 and resistors/caps etc
- Vsync - 59.825Hz
- HSync - 15.613kHz
-*/
-
-#include "emu.h"
-#include "bus/scsi/scsi.h"
-#include "bus/scsi/scsihd.h"
-#include "cpu/m68000/m68000.h"
-#include "cpu/psx/psx.h"
-#include "cpu/tms57002/tms57002.h"
-#include "machine/am53cf96.h"
-#include "machine/eepromser.h"
-#include "machine/mb89371.h"
-#include "machine/ram.h"
-#include "sound/k054539.h"
-#include "sound/k056800.h"
-#include "video/psx.h"
-#include "screen.h"
-#include "speaker.h"
-
-
-class konamigq_state : public driver_device
-{
-public:
- konamigq_state(const machine_config &mconfig, device_type type, const char *tag)
- : driver_device(mconfig, type, tag),
- m_maincpu(*this, "maincpu"),
- m_soundcpu(*this, "soundcpu"),
- m_dasp(*this, "dasp"),
- m_am53cf96(*this, "am53cf96"),
- m_k056800(*this, "k056800"),
- m_pcmram(*this, "pcmram")
- {
- }
-
- void konamigq(machine_config &config);
-
-protected:
- virtual void machine_start() override;
-
-private:
- required_device<cpu_device> m_maincpu;
- required_device<cpu_device> m_soundcpu;
- required_device<tms57002_device> m_dasp;
- required_device<am53cf96_device> m_am53cf96;
- required_device<k056800_device> m_k056800;
- required_shared_ptr<uint8_t> m_pcmram;
-
- uint8_t m_sector_buffer[ 512 ];
- uint8_t m_sound_ctrl;
- uint8_t m_sound_intck;
-
- DECLARE_WRITE16_MEMBER(eeprom_w);
- DECLARE_WRITE8_MEMBER(pcmram_w);
- DECLARE_READ8_MEMBER(pcmram_r);
- DECLARE_READ16_MEMBER(tms57002_status_word_r);
- DECLARE_WRITE16_MEMBER(tms57002_control_word_w);
- DECLARE_MACHINE_START(konamigq);
- DECLARE_MACHINE_RESET(konamigq);
- INTERRUPT_GEN_MEMBER(tms_sync);
- DECLARE_WRITE_LINE_MEMBER(k054539_irq_gen);
-
- void scsi_dma_read( uint32_t *p_n_psxram, uint32_t n_address, int32_t n_size );
- void scsi_dma_write( uint32_t *p_n_psxram, uint32_t n_address, int32_t n_size );
- void konamigq_dasp_map(address_map &map);
- void konamigq_k054539_map(address_map &map);
- void konamigq_map(address_map &map);
- void konamigq_sound_map(address_map &map);
-};
-
-/* EEPROM */
-
-static const uint16_t konamigq_def_eeprom[64] =
-{
- 0x292b, 0x5256, 0x2094, 0x4155, 0x0041, 0x1414, 0x0003, 0x0101,
- 0x0103, 0x0000, 0x0707, 0x0001, 0xaa00, 0xaaaa, 0xaaaa, 0xaaaa,
- 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa,
- 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa,
- 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa,
- 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa,
- 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa,
- 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa,
-};
-
-WRITE16_MEMBER(konamigq_state::eeprom_w)
-{
- ioport("EEPROMOUT")->write(data & 0x07, 0xff);
- m_soundcpu->set_input_line(INPUT_LINE_RESET, ( data & 0x40 ) ? CLEAR_LINE : ASSERT_LINE );
-}
-
-
-/* PCM RAM */
-
-WRITE8_MEMBER(konamigq_state::pcmram_w)
-{
- m_pcmram[ offset ] = data;
-}
-
-READ8_MEMBER(konamigq_state::pcmram_r)
-{
- return m_pcmram[ offset ];
-}
-
-/* Video */
-
-void konamigq_state::konamigq_map(address_map &map)
-{
- map(0x1f000000, 0x1f00001f).rw(m_am53cf96, FUNC(am53cf96_device::read), FUNC(am53cf96_device::write)).umask32(0x00ff00ff);
- map(0x1f100000, 0x1f10001f).rw(m_k056800, FUNC(k056800_device::host_r), FUNC(k056800_device::host_w)).umask32(0x00ff00ff);
- map(0x1f180000, 0x1f180001).w(FUNC(konamigq_state::eeprom_w));
- map(0x1f198000, 0x1f198003).nopw(); /* cabinet lamps? */
- map(0x1f1a0000, 0x1f1a0003).nopw(); /* indicates gun trigger */
- map(0x1f200000, 0x1f200003).portr("GUNX1");
- map(0x1f208000, 0x1f208003).portr("GUNY1");
- map(0x1f210000, 0x1f210003).portr("GUNX2");
- map(0x1f218000, 0x1f218003).portr("GUNY2");
- map(0x1f220000, 0x1f220003).portr("GUNX3");
- map(0x1f228000, 0x1f228003).portr("GUNY3");
- map(0x1f230000, 0x1f230003).portr("P1_P2");
- map(0x1f230004, 0x1f230007).portr("P3_SERVICE");
- map(0x1f238000, 0x1f238003).portr("DSW");
- map(0x1f300000, 0x1f5fffff).rw(FUNC(konamigq_state::pcmram_r), FUNC(konamigq_state::pcmram_w)).umask32(0x00ff00ff);
- map(0x1f680000, 0x1f68001f).rw("mb89371", FUNC(mb89371_device::read), FUNC(mb89371_device::write)).umask32(0x00ff00ff);
- map(0x1f780000, 0x1f780003).nopw(); /* watchdog? */
-}
-
-/* SOUND CPU */
-
-INTERRUPT_GEN_MEMBER(konamigq_state::tms_sync)
-{
- // DASP is synced to the LRCLK of the 058141
- if (m_sound_ctrl & 0x20)
- m_dasp->sync_w(1);
-}
-
-READ16_MEMBER(konamigq_state::tms57002_status_word_r)
-{
- return (m_dasp->dready_r() ? 4 : 0) |
- (m_dasp->pc0_r() ? 2 : 0) |
- (m_dasp->empty_r() ? 1 : 0);
-}
-
-WRITE16_MEMBER(konamigq_state::tms57002_control_word_w)
-{
- if (ACCESSING_BITS_0_7)
- {
- if (!(data & 1))
- m_soundcpu->set_input_line(M68K_IRQ_2, CLEAR_LINE);
-
- m_dasp->pload_w(data & 4);
- m_dasp->cload_w(data & 8);
- m_dasp->set_input_line(INPUT_LINE_RESET, data & 0x10 ? CLEAR_LINE : ASSERT_LINE);
-
- m_sound_ctrl = data;
- }
-}
-
-/* 68000 memory handling - near identical to Konami GX */
-void konamigq_state::konamigq_sound_map(address_map &map)
-{
- map(0x000000, 0x07ffff).rom();
- map(0x100000, 0x10ffff).ram();
- map(0x200000, 0x2004ff).rw("k054539_1", FUNC(k054539_device::read), FUNC(k054539_device::write)).umask16(0xff00);
- map(0x200000, 0x2004ff).rw("k054539_2", FUNC(k054539_device::read), FUNC(k054539_device::write)).umask16(0x00ff);
- map(0x300001, 0x300001).rw(m_dasp, FUNC(tms57002_device::data_r), FUNC(tms57002_device::data_w));
- map(0x400000, 0x40001f).rw(m_k056800, FUNC(k056800_device::sound_r), FUNC(k056800_device::sound_w)).umask16(0x00ff);
- map(0x500000, 0x500001).rw(FUNC(konamigq_state::tms57002_status_word_r), FUNC(konamigq_state::tms57002_control_word_w));
- map(0x580000, 0x580001).nopw(); // 'NRES' - D2: K056602 /RESET
-}
-
-
-/* TMS57002 memory handling */
-void konamigq_state::konamigq_dasp_map(address_map &map)
-{
- map(0x00000, 0x3ffff).ram();
-}
-
-
-/* K058141 memory handling */
-void konamigq_state::konamigq_k054539_map(address_map &map)
-{
- map(0x000000, 0x07ffff).rom().region("k054539", 0);
- map(0x080000, 0x3fffff).ram().share("pcmram");
-}
-
-
-/* 058141 */
-WRITE_LINE_MEMBER(konamigq_state::k054539_irq_gen)
-{
- if (m_sound_ctrl & 1)
- {
- // Trigger an interrupt on the rising edge
- if (!m_sound_intck && state)
- m_soundcpu->set_input_line(M68K_IRQ_2, ASSERT_LINE);
- }
-
- m_sound_intck = state;
-}
-
-/* SCSI */
-
-void konamigq_state::scsi_dma_read( uint32_t *p_n_psxram, uint32_t n_address, int32_t n_size )
-{
- uint8_t *sector_buffer = m_sector_buffer;
- int i;
- int n_this;
-
- while( n_size > 0 )
- {
- if( n_size > sizeof( m_sector_buffer ) / 4 )
- {
- n_this = sizeof( m_sector_buffer ) / 4;
- }
- else
- {
- n_this = n_size;
- }
- m_am53cf96->dma_read_data( n_this * 4, sector_buffer );
- n_size -= n_this;
-
- i = 0;
- while( n_this > 0 )
- {
- p_n_psxram[ n_address / 4 ] =
- ( sector_buffer[ i + 0 ] << 0 ) |
- ( sector_buffer[ i + 1 ] << 8 ) |
- ( sector_buffer[ i + 2 ] << 16 ) |
- ( sector_buffer[ i + 3 ] << 24 );
- n_address += 4;
- i += 4;
- n_this--;
- }
- }
-}
-
-void konamigq_state::scsi_dma_write( uint32_t *p_n_psxram, uint32_t n_address, int32_t n_size )
-{
-}
-
-void konamigq_state::machine_start()
-{
- save_item(NAME(m_sector_buffer));
- save_item(NAME(m_sound_ctrl));
- save_item(NAME(m_sound_intck));
-}
-
-void konamigq_state::konamigq(machine_config &config)
-{
- /* basic machine hardware */
- CXD8530BQ(config, m_maincpu, XTAL(67'737'600));
- m_maincpu->set_addrmap(AS_PROGRAM, &konamigq_state::konamigq_map);
- m_maincpu->subdevice<psxdma_device>("dma")->install_read_handler(5, psxdma_device::read_delegate(&konamigq_state::scsi_dma_read, this));
- m_maincpu->subdevice<psxdma_device>("dma")->install_write_handler(5, psxdma_device::write_delegate(&konamigq_state::scsi_dma_write, this));
- m_maincpu->subdevice<ram_device>("ram")->set_default_size("4M");
-
- M68000(config, m_soundcpu, XTAL(32'000'000)/4); /* 8MHz - measured */
- m_soundcpu->set_addrmap(AS_PROGRAM, &konamigq_state::konamigq_sound_map);
-
- TMS57002(config, m_dasp, XTAL(48'000'000)/2); /* 24MHz - measured */
- m_dasp->set_addrmap(AS_DATA, &konamigq_state::konamigq_dasp_map);
- m_dasp->set_periodic_int(FUNC(konamigq_state::tms_sync), attotime::from_hz(48000));
-
- MB89371(config, "mb89371", 0);
-
- EEPROM_93C46_16BIT(config, "eeprom").default_data(konamigq_def_eeprom, 128);
-
- scsi_port_device &scsi(SCSI_PORT(config, "scsi", 0));
- scsi.set_slot_device(1, "harddisk", SCSIHD, DEVICE_INPUT_DEFAULTS_NAME(SCSI_ID_0));
-
- AM53CF96(config, m_am53cf96, 0);
- m_am53cf96->set_scsi_port("scsi");
- m_am53cf96->irq_handler().set("maincpu:irq", FUNC(psxirq_device::intin10));
-
- /* video hardware */
- CXD8538Q(config, "gpu", XTAL(53'693'175), 0x200000, subdevice<psxcpu_device>("maincpu")).set_screen("screen");
-
- SCREEN(config, "screen", SCREEN_TYPE_RASTER);
-
- /* sound hardware */
- SPEAKER(config, "lspeaker").front_left();
- SPEAKER(config, "rspeaker").front_right();
-
- K056800(config, m_k056800, XTAL(18'432'000));
- m_k056800->int_callback().set_inputline(m_soundcpu, M68K_IRQ_1);
-
- k054539_device &k054539_1(K054539(config, "k054539_1", XTAL(18'432'000)));
- k054539_1.set_addrmap(0, &konamigq_state::konamigq_k054539_map);
- k054539_1.timer_handler().set(FUNC(konamigq_state::k054539_irq_gen));
- k054539_1.add_route(0, "lspeaker", 1.0);
- k054539_1.add_route(1, "rspeaker", 1.0);
-
- k054539_device &k054539_2(K054539(config, "k054539_2", XTAL(18'432'000)));
- k054539_2.set_addrmap(0, &konamigq_state::konamigq_k054539_map);
- k054539_2.add_route(0, "lspeaker", 1.0);
- k054539_2.add_route(1, "rspeaker", 1.0);
-}
-
-static INPUT_PORTS_START( konamigq )
- PORT_START("GUNX1")
- PORT_BIT( 0x01ff, 0x011d, IPT_LIGHTGUN_X ) PORT_CROSSHAIR(X, 1.0, 0.0, 0) PORT_MINMAX( 0x007d, 0x01bc ) PORT_SENSITIVITY(25) PORT_KEYDELTA(15) PORT_PLAYER(1)
-
- PORT_START("GUNY1")
- PORT_BIT( 0x00ff, 0x0078, IPT_LIGHTGUN_Y ) PORT_CROSSHAIR(Y, 1.0, 0.0, 0) PORT_MINMAX( 0x0000, 0x00ef ) PORT_SENSITIVITY(25) PORT_KEYDELTA(15) PORT_PLAYER(1)
-
- PORT_START("GUNX2")
- PORT_BIT( 0x01ff, 0x011d, IPT_LIGHTGUN_X ) PORT_CROSSHAIR(X, 1.0, 0.0, 0) PORT_MINMAX( 0x007d, 0x01bc ) PORT_SENSITIVITY(25) PORT_KEYDELTA(15) PORT_PLAYER(2)
-
- PORT_START("GUNY2")
- PORT_BIT( 0x00ff, 0x0078, IPT_LIGHTGUN_Y ) PORT_CROSSHAIR(Y, 1.0, 0.0, 0) PORT_MINMAX( 0x0000, 0x00ef ) PORT_SENSITIVITY(25) PORT_KEYDELTA(15) PORT_PLAYER(2)
-
- PORT_START("GUNX3")
- PORT_BIT( 0x01ff, 0x011d, IPT_LIGHTGUN_X ) PORT_CROSSHAIR(X, 1.0, 0.0, 0) PORT_MINMAX( 0x007d, 0x01bc ) PORT_SENSITIVITY(25) PORT_KEYDELTA(15) PORT_PLAYER(3)
-
- PORT_START("GUNY3")
- PORT_BIT( 0x00ff, 0x0078, IPT_LIGHTGUN_Y ) PORT_CROSSHAIR(Y, 1.0, 0.0, 0) PORT_MINMAX( 0x0000, 0x00ef ) PORT_SENSITIVITY(25) PORT_KEYDELTA(15) PORT_PLAYER(3)
-
- PORT_START("P1_P2")
- PORT_BIT( 0x000001, IP_ACTIVE_LOW, IPT_COIN1 )
- PORT_BIT( 0x000002, IP_ACTIVE_LOW, IPT_START1 )
- PORT_BIT( 0x000004, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x000008, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) /* trigger */
- PORT_BIT( 0x000010, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) /* reload */
- PORT_BIT( 0x000020, IP_ACTIVE_LOW, IPT_SERVICE1 )
- PORT_BIT( 0x000040, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x000080, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x010000, IP_ACTIVE_LOW, IPT_COIN2 )
- PORT_BIT( 0x020000, IP_ACTIVE_LOW, IPT_START2 )
- PORT_BIT( 0x040000, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x080000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) /* trigger */
- PORT_BIT( 0x100000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) /* reload */
- PORT_BIT( 0x200000, IP_ACTIVE_LOW, IPT_SERVICE2 )
- PORT_BIT( 0x400000, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x800000, IP_ACTIVE_LOW, IPT_UNKNOWN )
-
- PORT_START("P3_SERVICE")
- PORT_BIT( 0x000001, IP_ACTIVE_LOW, IPT_COIN3 )
- PORT_BIT( 0x000002, IP_ACTIVE_LOW, IPT_START3 )
- PORT_BIT( 0x000004, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x000008, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(3) /* trigger */
- PORT_BIT( 0x000010, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(3) /* reload */
- PORT_BIT( 0x000020, IP_ACTIVE_LOW, IPT_SERVICE3 )
- PORT_BIT( 0x000040, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x000080, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x010000, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x020000, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x040000, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x080000, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x100000, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_SERVICE_NO_TOGGLE( 0x200000, IP_ACTIVE_LOW )
- PORT_BIT( 0x400000, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x800000, IP_ACTIVE_LOW, IPT_UNKNOWN )
-
- PORT_START("DSW")
- PORT_DIPNAME( 0x00000001, 0x01, DEF_STR( Stereo ) )
- PORT_DIPSETTING( 0x01, DEF_STR( Stereo ) )
- PORT_DIPSETTING( 0x00, DEF_STR( Mono ) )
- PORT_DIPNAME( 0x00000002, 0x00, "Stage Set" )
- PORT_DIPSETTING( 0x02, "Endless" )
- PORT_DIPSETTING( 0x00, "6st End" )
- PORT_DIPNAME( 0x00000004, 0x04, "Mirror" )
- PORT_DIPSETTING( 0x04, DEF_STR( No ) )
- PORT_DIPSETTING( 0x00, DEF_STR( Yes ) )
- PORT_DIPNAME( 0x00000008, 0x08, "Woofer" )
- PORT_DIPSETTING( 0x08, DEF_STR( No ) )
- PORT_DIPSETTING( 0x00, DEF_STR( Yes ) )
- PORT_DIPNAME( 0x00000010, 0x10, "Number of Players" )
- PORT_DIPSETTING( 0x00, "2" )
- PORT_DIPSETTING( 0x10, "3" )
- PORT_DIPNAME( 0x00000020, 0x20, "Coin Mechanism (2p only)" )
- PORT_DIPSETTING( 0x20, "Common" )
- PORT_DIPSETTING( 0x00, "Independent" )
- PORT_BIT( 0x00000040, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x00000080, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x00010000, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_serial_93cxx_device, do_read)
-
- PORT_START( "EEPROMOUT" )
- PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_serial_93cxx_device, di_write)
- PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_serial_93cxx_device, cs_write)
- PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_serial_93cxx_device, clk_write)
-INPUT_PORTS_END
-
-ROM_START( cryptklr )
- ROM_REGION( 0x80000, "soundcpu", 0 ) /* 68000 sound program */
- ROM_LOAD16_WORD_SWAP( "420a01.2g", 0x000000, 0x080000, CRC(84fc2613) SHA1(e06f4284614d33c76529eb43b168d095200a9eac) )
-
- ROM_REGION( 0x80000, "k054539", 0 )
- ROM_LOAD( "420a02.3m", 0x000000, 0x080000, CRC(2169c3c4) SHA1(6d525f10385791e19eb1897d18f0bab319640162) )
-
- ROM_REGION32_LE( 0x080000, "maincpu:rom", 0 ) /* bios */
- ROM_LOAD( "420b03.27p", 0x0000000, 0x080000, CRC(aab391b1) SHA1(bf9dc7c0c8168c22a4be266fe6a66d3738df916b) )
-
- DISK_REGION( "scsi:" SCSI_PORT_DEVICE1 ":harddisk:image" )
- DISK_IMAGE( "420uaa04", 0, SHA1(67cb1418fc0de2a89fc61847dc9efb9f1bebb347) )
-ROM_END
-
-GAME( 1995, cryptklr, 0, konamigq, konamigq, konamigq_state, empty_init, ROT0, "Konami", "Crypt Killer (GQ420 UAA)", 0 )