diff options
author | 2018-03-30 02:31:23 +1100 | |
---|---|---|
committer | 2018-03-30 02:31:23 +1100 | |
commit | 811b159b83900b693aea764807a48afd396fb185 (patch) | |
tree | 83c6ab77fd7045ebfd0cf77f2d1b8b51c9dd2376 | |
parent | 16125666f732199946c9634b399980f7783fc752 (diff) |
neogeo: Further improvements:
* Removed LEDs/lamps from configurations that lack them.
* Hooked up coin lockouts.
* Improved I/O register mapping.
* Added controller detection connections for AES.
* Hooked up SPI-like outputs on SIT board used by irrmaze.
* Added layout for irrmaze showing most lamps.
* Irrmaze still missing card dispenser, air compressor and colour lamps.
-rw-r--r-- | src/devices/bus/neogeo_ctrl/ctrl.cpp | 25 | ||||
-rw-r--r-- | src/devices/bus/neogeo_ctrl/ctrl.h | 1 | ||||
-rw-r--r-- | src/devices/bus/neogeo_ctrl/irrmaze.cpp | 40 | ||||
-rw-r--r-- | src/devices/bus/neogeo_ctrl/irrmaze.h | 10 | ||||
-rw-r--r-- | src/devices/bus/neogeo_ctrl/joystick.cpp | 23 | ||||
-rw-r--r-- | src/devices/bus/neogeo_ctrl/joystick.h | 10 | ||||
-rw-r--r-- | src/devices/bus/neogeo_ctrl/mahjong.cpp | 56 | ||||
-rw-r--r-- | src/devices/bus/neogeo_ctrl/mahjong.h | 16 | ||||
-rw-r--r-- | src/mame/drivers/neogeo.cpp | 1009 | ||||
-rw-r--r-- | src/mame/includes/neogeo.h | 1 | ||||
-rw-r--r-- | src/mame/layout/irrmaze.lay | 118 |
11 files changed, 742 insertions, 567 deletions
diff --git a/src/devices/bus/neogeo_ctrl/ctrl.cpp b/src/devices/bus/neogeo_ctrl/ctrl.cpp index 4fb9914adb8..1f36549fe17 100644 --- a/src/devices/bus/neogeo_ctrl/ctrl.cpp +++ b/src/devices/bus/neogeo_ctrl/ctrl.cpp @@ -115,18 +115,12 @@ void neogeo_control_port_device::device_start() uint8_t neogeo_control_port_device::read_ctrl() { - uint8_t data = 0xff; - if (m_device) - data &= m_device->read_ctrl(); - return data; + return m_device ? m_device->read_ctrl() : 0xff; } uint8_t neogeo_control_port_device::read_start_sel() { - uint8_t data = 0xff; - if (m_device) - data &= m_device->read_start_sel(); - return data; + return m_device ? m_device->read_start_sel() : 0xff; } @@ -170,26 +164,17 @@ void neogeo_ctrl_edge_port_device::device_start() READ8_MEMBER(neogeo_ctrl_edge_port_device::in0_r) { - uint8_t data = 0xff; - if (m_device) - data &= m_device->in0_r(space, offset, mem_mask); - return data; + return m_device ? m_device->in0_r(space, offset, mem_mask) : 0xff; } READ8_MEMBER(neogeo_ctrl_edge_port_device::in1_r) { - uint8_t data = 0xff; - if (m_device) - data &= m_device->in1_r(space, offset, mem_mask); - return data; + return m_device ? m_device->in1_r(space, offset, mem_mask) : 0xff; } uint8_t neogeo_ctrl_edge_port_device::read_start_sel() { - uint8_t data = 0xff; - if (m_device) - data &= m_device->read_start_sel(); - return data; + return m_device ? m_device->read_start_sel() : 0xff; } void neogeo_ctrl_edge_port_device::write_ctrlsel(uint8_t data) diff --git a/src/devices/bus/neogeo_ctrl/ctrl.h b/src/devices/bus/neogeo_ctrl/ctrl.h index 53ee9c53713..ea133f30b79 100644 --- a/src/devices/bus/neogeo_ctrl/ctrl.h +++ b/src/devices/bus/neogeo_ctrl/ctrl.h @@ -5,7 +5,6 @@ SNK Neo Geo controller port emulation **********************************************************************/ - #ifndef MAME_BUS_NEOGEO_CTRL_CTRL_H #define MAME_BUS_NEOGEO_CTRL_CTRL_H diff --git a/src/devices/bus/neogeo_ctrl/irrmaze.cpp b/src/devices/bus/neogeo_ctrl/irrmaze.cpp index 04d70294e5a..49379d02c47 100644 --- a/src/devices/bus/neogeo_ctrl/irrmaze.cpp +++ b/src/devices/bus/neogeo_ctrl/irrmaze.cpp @@ -9,6 +9,7 @@ #include "emu.h" #include "irrmaze.h" + //************************************************************************** // DEVICE DEFINITIONS //************************************************************************** @@ -32,16 +33,6 @@ static INPUT_PORTS_START( neogeo_irrmaze ) INPUT_PORTS_END -//------------------------------------------------- -// input_ports - device-specific input ports -//------------------------------------------------- - -ioport_constructor neogeo_irrmaze_device::device_input_ports() const -{ - return INPUT_PORTS_NAME( neogeo_irrmaze ); -} - - //************************************************************************** // LIVE DEVICE //************************************************************************** @@ -55,28 +46,34 @@ neogeo_irrmaze_device::neogeo_irrmaze_device(const machine_config &mconfig, cons device_neogeo_ctrl_edge_interface(mconfig, *this), m_tx(*this, "TRACK_X"), m_ty(*this, "TRACK_Y"), - m_buttons(*this, "BUTTONS") + m_buttons(*this, "BUTTONS"), + m_spi_outputs(*this, "sit%u", 0U), + m_spi_sr(0U), + m_ctrl_sel(0U) { } //------------------------------------------------- -// device_start - device-specific startup +// input_ports - device-specific input ports //------------------------------------------------- -void neogeo_irrmaze_device::device_start() +ioport_constructor neogeo_irrmaze_device::device_input_ports() const { - save_item(NAME(m_ctrl_sel)); + return INPUT_PORTS_NAME( neogeo_irrmaze ); } //------------------------------------------------- -// device_reset - device-specific reset +// device_start - device-specific startup //------------------------------------------------- -void neogeo_irrmaze_device::device_reset() +void neogeo_irrmaze_device::device_start() { - m_ctrl_sel = 0; + m_spi_outputs.resolve(); + + save_item(NAME(m_spi_sr)); + save_item(NAME(m_ctrl_sel)); } @@ -110,5 +107,14 @@ READ8_MEMBER(neogeo_irrmaze_device::in1_r) void neogeo_irrmaze_device::write_ctrlsel(uint8_t data) { + if (BIT(data & ~m_ctrl_sel, 3) && BIT(m_ctrl_sel, 1)) + { + for (unsigned i = 0; 16U > i; ++i) + m_spi_outputs[i] = BIT(m_spi_sr, i); + } + + if (BIT(data & ~m_ctrl_sel, 2)) + m_spi_sr = (m_spi_sr >> 1) | (uint16_t(BIT(m_ctrl_sel, 1)) << 15); + m_ctrl_sel = data; } diff --git a/src/devices/bus/neogeo_ctrl/irrmaze.h b/src/devices/bus/neogeo_ctrl/irrmaze.h index 855c936ff5c..4980a488098 100644 --- a/src/devices/bus/neogeo_ctrl/irrmaze.h +++ b/src/devices/bus/neogeo_ctrl/irrmaze.h @@ -5,15 +5,14 @@ SNK Neo Geo Irritating Maze Trackball Controller emulation **********************************************************************/ - #ifndef MAME_BUS_NEOGEO_CTRL_IRRMAZE_H #define MAME_BUS_NEOGEO_CTRL_IRRMAZE_H #pragma once - #include "ctrl.h" + //************************************************************************** // TYPE DEFINITIONS //************************************************************************** @@ -26,13 +25,10 @@ public: // construction/destruction neogeo_irrmaze_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // optional information overrides - virtual ioport_constructor device_input_ports() const override; - protected: // device-level overrides + virtual ioport_constructor device_input_ports() const override; virtual void device_start() override; - virtual void device_reset() override; // device_neogeo_control_port_interface overrides virtual DECLARE_READ8_MEMBER( in0_r ) override; @@ -43,6 +39,8 @@ private: required_ioport m_tx; required_ioport m_ty; required_ioport m_buttons; + output_finder<16> m_spi_outputs; + uint16_t m_spi_sr; uint8_t m_ctrl_sel; }; diff --git a/src/devices/bus/neogeo_ctrl/joystick.cpp b/src/devices/bus/neogeo_ctrl/joystick.cpp index e854330a452..83c0513be95 100644 --- a/src/devices/bus/neogeo_ctrl/joystick.cpp +++ b/src/devices/bus/neogeo_ctrl/joystick.cpp @@ -39,6 +39,7 @@ static INPUT_PORTS_START( neogeo_joy ) PORT_START("START_SELECT") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START ) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SELECT ) + PORT_BIT( 0xfc, IP_ACTIVE_LOW, IPT_UNUSED ) INPUT_PORTS_END @@ -64,7 +65,8 @@ neogeo_joystick_device::neogeo_joystick_device(const machine_config &mconfig, co device_t(mconfig, NEOGEO_JOY, tag, owner, clock), device_neogeo_control_port_interface(mconfig, *this), m_joy(*this, "JOY"), - m_ss(*this, "START_SELECT") + m_ss(*this, "START_SELECT"), + m_ctrl_sel(0x00) { } @@ -75,34 +77,35 @@ neogeo_joystick_device::neogeo_joystick_device(const machine_config &mconfig, co void neogeo_joystick_device::device_start() { + save_item(NAME(m_ctrl_sel)); } //------------------------------------------------- -// device_reset - device-specific reset +// read_ctrl //------------------------------------------------- -void neogeo_joystick_device::device_reset() +uint8_t neogeo_joystick_device::read_ctrl() { + return m_joy->read() & (BIT(m_ctrl_sel, 2) ? 0x7f : 0xff); } - //------------------------------------------------- -// read_ctrl +// read_start_sel //------------------------------------------------- -uint8_t neogeo_joystick_device::read_ctrl() +uint8_t neogeo_joystick_device::read_start_sel() { - return m_joy->read(); + return m_ss->read(); } //------------------------------------------------- -// read_start_sel +// write_ctrlsel //------------------------------------------------- -uint8_t neogeo_joystick_device::read_start_sel() +void neogeo_joystick_device::write_ctrlsel(uint8_t data) { - return m_ss->read(); + m_ctrl_sel = data; } diff --git a/src/devices/bus/neogeo_ctrl/joystick.h b/src/devices/bus/neogeo_ctrl/joystick.h index 9be443077d9..605ea8d8d90 100644 --- a/src/devices/bus/neogeo_ctrl/joystick.h +++ b/src/devices/bus/neogeo_ctrl/joystick.h @@ -5,15 +5,14 @@ SNK Neo Geo Joystick emulation **********************************************************************/ - #ifndef MAME_BUS_NEOGEO_CTRL_JOYSTICK_H #define MAME_BUS_NEOGEO_CTRL_JOYSTICK_H #pragma once - #include "ctrl.h" + //************************************************************************** // TYPE DEFINITIONS //************************************************************************** @@ -26,21 +25,20 @@ public: // construction/destruction neogeo_joystick_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // optional information overrides - virtual ioport_constructor device_input_ports() const override; - protected: // device-level overrides + virtual ioport_constructor device_input_ports() const override; virtual void device_start() override; - virtual void device_reset() override; // device_neogeo_control_port_interface overrides virtual uint8_t read_ctrl() override; virtual uint8_t read_start_sel() override; + virtual void write_ctrlsel(uint8_t data) override; private: required_ioport m_joy; required_ioport m_ss; + uint8_t m_ctrl_sel; }; diff --git a/src/devices/bus/neogeo_ctrl/mahjong.cpp b/src/devices/bus/neogeo_ctrl/mahjong.cpp index 9c818abf4b3..7bb111f4779 100644 --- a/src/devices/bus/neogeo_ctrl/mahjong.cpp +++ b/src/devices/bus/neogeo_ctrl/mahjong.cpp @@ -9,6 +9,7 @@ #include "emu.h" #include "mahjong.h" + //************************************************************************** // DEVICE DEFINITIONS //************************************************************************** @@ -26,7 +27,7 @@ static INPUT_PORTS_START( neogeo_mj_ac ) PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_MAHJONG_E ) PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_MAHJONG_F ) PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_MAHJONG_G ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_START("MJ.1") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_MAHJONG_H ) @@ -36,28 +37,15 @@ static INPUT_PORTS_START( neogeo_mj_ac ) PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_MAHJONG_L ) PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_MAHJONG_M ) PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_MAHJONG_N ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON6 ) + PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) - // is this actually connected? PORT_START("MJ.2") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON4 ) - - PORT_START("MJ.3") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_MAHJONG_PON ) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_MAHJONG_CHI ) PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_MAHJONG_KAN ) PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_MAHJONG_RON ) PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_MAHJONG_REACH ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0xe0, IP_ACTIVE_LOW, IPT_UNUSED ) INPUT_PORTS_END @@ -65,8 +53,9 @@ static INPUT_PORTS_START( neogeo_mj ) PORT_INCLUDE( neogeo_mj_ac ) PORT_START("START_SELECT") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_START ) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_SELECT ) + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START ) + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SELECT ) + PORT_BIT( 0xfc, IP_ACTIVE_LOW, IPT_UNUSED ) INPUT_PORTS_END @@ -97,6 +86,7 @@ ioport_constructor neogeo_mjctrl_device::device_input_ports() const neogeo_mjctrl_ac_device::neogeo_mjctrl_ac_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) : device_t(mconfig, type, tag, owner, clock) , device_neogeo_control_port_interface(mconfig, *this) + , m_ctrl_sel(0x00) , m_mjpanel(*this, "MJ.%u", 0) { } @@ -124,31 +114,19 @@ void neogeo_mjctrl_ac_device::device_start() //------------------------------------------------- -// device_reset - device-specific reset -//------------------------------------------------- - -void neogeo_mjctrl_ac_device::device_reset() -{ - m_ctrl_sel = 0; -} - - -//------------------------------------------------- // read_ctrl //------------------------------------------------- uint8_t neogeo_mjctrl_ac_device::read_ctrl() { - uint8_t res = 0; - switch (m_ctrl_sel) - { - default: - case 0x00: res = 0xff; break; - case 0x09: res = m_mjpanel[0]->read(); break; - case 0x12: res = m_mjpanel[1]->read(); break; - case 0x1b: res = m_mjpanel[2]->read(); break; - case 0x24: res = m_mjpanel[3]->read(); break; - } + uint8_t res(0xff); + + if (BIT(m_ctrl_sel, 0)) + res &= m_mjpanel[0]->read(); + if (BIT(m_ctrl_sel, 1)) + res &= m_mjpanel[1]->read(); + if (BIT(m_ctrl_sel, 2)) + res &= m_mjpanel[2]->read(); return res; } @@ -168,5 +146,5 @@ void neogeo_mjctrl_ac_device::write_ctrlsel(uint8_t data) uint8_t neogeo_mjctrl_device::read_start_sel() { - return m_ss->read(); + return m_ss->read() & (BIT(m_ctrl_sel, 2) ? 0xfd : 0xff); } diff --git a/src/devices/bus/neogeo_ctrl/mahjong.h b/src/devices/bus/neogeo_ctrl/mahjong.h index ff59891dd59..d8f1c0ca41a 100644 --- a/src/devices/bus/neogeo_ctrl/mahjong.h +++ b/src/devices/bus/neogeo_ctrl/mahjong.h @@ -5,15 +5,14 @@ SNK Neo Geo Mahjong controller emulation **********************************************************************/ - #ifndef MAME_BUS_NEOGEO_CTRL_MAHJONG_H #define MAME_BUS_NEOGEO_CTRL_MAHJONG_H #pragma once - #include "ctrl.h" + //************************************************************************** // TYPE DEFINITIONS //************************************************************************** @@ -26,23 +25,21 @@ public: // construction/destruction neogeo_mjctrl_ac_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // optional information overrides - virtual ioport_constructor device_input_ports() const override; - protected: neogeo_mjctrl_ac_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); // device-level overrides + virtual ioport_constructor device_input_ports() const override; virtual void device_start() override; - virtual void device_reset() override; // device_neogeo_control_port_interface overrides virtual uint8_t read_ctrl() override; virtual void write_ctrlsel(uint8_t data) override; -private: - required_ioport_array<4> m_mjpanel; uint8_t m_ctrl_sel; + +private: + required_ioport_array<3> m_mjpanel; }; // ======================> neogeo_mjctrl_device @@ -53,11 +50,10 @@ public: // construction/destruction neogeo_mjctrl_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); +protected: // optional information overrides virtual ioport_constructor device_input_ports() const override; -protected: - // device_neogeo_control_port_interface overrides virtual uint8_t read_start_sel() override; diff --git a/src/mame/drivers/neogeo.cpp b/src/mame/drivers/neogeo.cpp index 7ab701eb542..7824c053efc 100644 --- a/src/mame/drivers/neogeo.cpp +++ b/src/mame/drivers/neogeo.cpp @@ -63,36 +63,52 @@ Known motherboards: =================== + +---------+------+-------+------------+-----------------------+--------------------------------------------------------------------------+ + | Model | Year | Slots | Generation | Video chipset | Notes | + +---------+------+-------+------------+-----------------------+--------------------------------------------------------------------------+ + | MV-1 | 1990 | 1 | 1 | PRO-B0/PRO-C0/LSPC-A0 | Original full-featured 1-slot board | + | MV-1F | | 1 | 2 | NEO-B1/LSPC2-A2 | 2nd-generation 1-slot board, no memory card headers | + | MV-1FZ | | 1 | 2 | NEO-B1/LSPC2-A2 | Cost-reduced MV-1F without LED displays/mahjong inputs/stereo output | + | MV-1FZS | | 1 | 2 | NEO-B1/LSPC2-A2 | Spanish MV-1FZ | + | MV-1A | 1995 | 1 | 3 | NEO-MGA/NEO-GRC | 3rd-generation 1-slot board, removes coin lockouts | + | MV-1ACH | 1995 | 1 | 3 | NEO-MGA/NEO-GRC | Chinese MV-1A | + | MV-1AX | | 1 | 3 | NEO-MGA/NEO-GRC | MV-1A with soldered BIOS | + | MV-1B | | 1 | 4 | NEO-GRC2 | 4th-generation 1-slot board, soldered BIOS, no SM1 ROM, 8-pin SIT header | + | MV-1C | 1999 | 1 | 5 | NEO-GRZ | Final iteration, vertical cartridge slot | + +---------+------+-------+------------+-----------------------+--------------------------------------------------------------------------+ + | MV-2B | | 2 | 1 | PRO-B0/PRO-C0/LSPC-A0 | Original full-featured 2-slot board | + | MV-2F | | 2 | 2 | NEO-B1/LSPC2-A2 | 2nd-geneation 2-slot board, onboard PCMCIA slot and 3.5mm jacks | + | MV-2FS | | 2 | 2 | NEO-B1/LSPC2-A2 | Spanish MV-2F | + +---------+------+-------+------------+-----------------------+--------------------------------------------------------------------------+ + | MV-4 | 1990 | 4 | 1 | PRO-B0/PRO-C0/LSPC-A0 | Original 4-slot board | + | MV-4F | | 4 | 2 | NEO-B1/LSPC2-A2 | 2nd-generation 4-slot board | + | MV-4FS | | 4 | 2 | NEO-B1/LSPC2-A2 | Spanish MV-4 | + +---------+------+-------+------------+-----------------------+--------------------------------------------------------------------------+ + | MV-6 | 1990 | 6 | 1 | PRO-B0/PRO-C0/LSPC-A0 | 2-board stack - mainboard and slot board | + +---------+------+-------+------------+-----------------------+--------------------------------------------------------------------------+ + + Other mainboards: 1 Slot: - NEO-MVH MV1 NEO-MVH MV1-1 - NEO-MVH MV1A . NEO-MVH MV1A CHX ?? - NEO-MVH MV1B (1996.1.19) + NEO-MVH MV1B (1996.1.19) (miniaturised, 8-pin header for irrmaze/kizuna4p) . NEO-MVH MV1B CHX (1996.1.19) ?? NEO-MVH MV1B1 (1998.6.17) NEO-MVH MV1C (1999.4.30) - NEO-MVH MV1F - NEO-MVH MV1FS - NEO-MVH MV1FT - NEO-MVH MV1FZ - NEO-MVH MV1FZS + NEO-MVH MV1FT (cost-reduced MV1T without memory card headers) + NEO-MVH MV1T 2 Slot: NEO-MVH MV2 - NEO-MVH MV2F NEO-MVH MV2F-01 4 Slot: - NEO-MVH MV4 - NEO-MVH MV4F - NEO-MVH MV4FS + NEO-MVH MV4-25 (US MV4?) NEO-MVH MV4FT NEO-MVH MV4FT2 6 Slot: - NEO-MVH MV6 NEO-MVH MV6F @@ -132,28 +148,32 @@ Mainboard features ================== - +------+-----+-----+-----+--------+--------+-------+-------+-------+-----+---+--------+-------+------+ - | |Slots|Edge |Coins|Counters|Lockouts|Mahjong|Mono/St|Memcard|7-seg|EL | BIOS |Data In|Orient| - +------+-----+-----+-----+--------+--------+-------+-------+-------+-----+---+--------+-------+------+ - |MV-1 | 1 |JAMMA| 2 | 2 | 2 | 2 |switch |header | yes |no | socket | yes |horiz | - |MV-1A | 1 |JAMMA| 2 | 2 | 0 | 0 | mono | none | no |no | socket | no |horiz | - |MV-1AX| 1 |JAMMA| 2 | 2 | 0 | 0 | mono | none | no |no |soldered| no |horiz | - |MV-1B | 1 |JAMMA| 2 | 2 | 0 | 0 | mono | none | no |no |soldered| no |horiz | - |MV-1C | 1 |JAMMA| 2 | 2 | 0 | 0 | mono | none | no |no |soldered| no | vert | - |MV-1F | 1 |JAMMA| 2 | 2 | 2 | 2 |switch | none | yes |no | socket | no |horiz | - |MV-1FZ| 1 |JAMMA| 2 | 2 | 2 | 0 | mono | none | no |no | socket | yes |horiz | - |MV-1T | 1 |JAMMA| 2 | 2 | 0 | 2 |switch | none | yes |no | socket | no |horiz | - |MV-2F | 2 | MVS | 4 | 2 | 2 | 2 | both |onboard| yes |yes| socket | no | vert | - |MV-4F | 4 | MVS | 4 | 2 | 2 | 2 | both |header | yes |yes| socket | no | vert | - |MV-6F | 6 | MVS | 4 | 2 | 2 | 2 | both |header | yes |yes| socket | no | vert | - +------+-----+-----+-----+--------+--------+-------+-------+-------+-----+---+--------+-------+------+ + +-------+----+-----+-----+-----+--------+--------+-------+-----+-------+-------+------+-----+---+--------+-------+------+ + | |Vid |Slots|Edge |Coins|Counters|Lockouts|Mahjong|8-pin|Memcard|Mono/St|Phones|7-seg|EL | BIOS |Data In|Orient| + +-------+----+-----+-----+-----+--------+--------+-------+-----+-------+-------+------+-----+---+--------+-------+------+ + |MV-1 | B0 | 1 |JAMMA| 2 | 2 | 2 | 2 | no |header |switch |header| yes |no | socket | yes |horiz | + |MV-1F | B1 | 1 |JAMMA| 2 | 2 | 2 | 2 | no | none |switch |header| yes |no | socket | no |horiz | + |MV-1FZ | B1 | 1 |JAMMA| 2 | 2 | 2 | 0 | no | none | mono | none | no |no | socket | yes |horiz | + |MV-1A |MGA | 1 |JAMMA| 2 | 2 | 0 | 0 | no | none | mono | none | no |no | socket | no |horiz | + |MV-1AX |MGA | 1 |JAMMA| 2 | 2 | 0 | 0 | no | none | mono | none | no |no |soldered| no |horiz | + |MV-1B |GRC2| 1 |JAMMA| 2 | 2 | 0 | 0 | yes | none | mono | none | no |no |soldered| no |horiz | + |MV-1C |GRZ | 1 |JAMMA| 2 | 2 | 0 | 0 | yes | none | mono | none | no |no |soldered| no | vert | + +-------+----+-----+-----+-----+--------+--------+-------+-----+-------+-------+------+-----+---+--------+-------+------+ + |MV-2B | B0 | 2 | MVS | 4 | 2 | 2 | 2 | no |header | both |header| yes |yes| socket | no | vert | + |MV-2F | B1 | 2 | MVS | 4 | 2 | 2 | 2 | no |onboard| both |jacks | yes |yes| socket | no | vert | + +-------+----+-----+-----+-----+--------+--------+-------+-----+-------+-------+------+-----+---+--------+-------+------+ + |MV-4-25| B0 | 4 | MVS | 4 | 2 | 2 | 2 | no |header | both |header| yes |yes| socket | no | vert | + |MV-4F | B1 | 4 | MVS | 4 | 2 | 2 | 2 | no |header | both |header| yes |yes| socket | no | vert | + +-------+----+-----+-----+-----+--------+--------+-------+-----+-------+-------+------+-----+---+--------+-------+------+ + |MV-6 | B0 | 6 | MVS | 4 | 2 | 2 | 2 | no |header | both |header| yes |yes| socket | no | vert | + +-------+----+-----+-----+-----+--------+--------+-------+-----+-------+-------+------+-----+---+--------+-------+------+ * Function of the data input switch is unknown * MVS connector has high-level single-ended stereo outputs and low-level mono output * JAMMA connector has high-level balanced mono output * Single-slot boards with stereo capability have a 4-pin stereo speaker header * Boards with stereo support have headphone connectors or headers for them - * Newer single-slot boards have an 8-pin header for the trackball or 4-player interface + * Newer single-slot boards have an 8-pin header for the trackball or 4-player interface (SIT) ***************************************************************************** @@ -495,6 +515,7 @@ #include "softlist.h" #include "speaker.h" +#include "irrmaze.lh" #include "neogeo.lh" @@ -529,20 +550,41 @@ class mvs_state : public ngarcade_base_state public: mvs_state(const machine_config &mconfig, device_type type, const char *tag) : ngarcade_base_state(mconfig, type, tag) - , m_digits(*this, "digit%u", 1U) - , m_lamps(*this, "lamp%u", 1U) { } DECLARE_CUSTOM_INPUT_MEMBER(kizuna4p_start_r); // mainboard configurations + void mv1fz(machine_config &config); + +protected: + virtual void machine_start() override; + + virtual void neogeo_postload() override; + virtual void output_strobe(uint8_t bits, uint8_t data) { } + virtual void set_outputs() { } + + virtual DECLARE_WRITE8_MEMBER(io_control_w) override; + +private: + uint8_t m_output_data; + uint8_t m_output_latch; +}; + + +class mvs_led_state : public mvs_state +{ +public: + mvs_led_state(const machine_config &mconfig, device_type type, const char *tag) + : mvs_state(mconfig, type, tag) + , m_digits(*this, "digit%u", 1U) + { + } + + // mainboard configurations void mv1(machine_config &config); void mv1f(machine_config &config); - void mv1fz(machine_config &config); - void mv2f(machine_config &config); - void mv4f(machine_config &config); - void mv6f(machine_config &config); // fixed software configurations void neobase(machine_config &config); @@ -614,28 +656,46 @@ public: protected: virtual void machine_start() override; - virtual void neogeo_postload() override; - - virtual DECLARE_WRITE8_MEMBER(io_control_w) override; + virtual void output_strobe(uint8_t bits, uint8_t data) override; + virtual void set_outputs() override; void mv1_fixed(machine_config &config); private: - void set_output_latch(uint8_t data); - void set_output_data(uint8_t data); - void set_outputs(); - output_finder<4> m_digits; - output_finder<6> m_lamps; - uint8_t m_output_data; - uint8_t m_output_latch; - uint8_t m_el_value; uint8_t m_led1_value; uint8_t m_led2_value; }; +class mvs_led_el_state : public mvs_led_state +{ +public: + mvs_led_el_state(const machine_config &mconfig, device_type type, const char *tag) + : mvs_led_state(mconfig, type, tag) + , m_lamps(*this, "lamp%u", 1U) + { + } + + // mainboard configurations + void mv2f(machine_config &config); + void mv4f(machine_config &config); + void mv6f(machine_config &config); + +protected: + virtual void machine_start() override; + + virtual void output_strobe(uint8_t bits, uint8_t data) override; + virtual void set_outputs() override; + +private: + output_finder<6> m_lamps; + + uint8_t m_el_value; +}; + + class aes_state : public aes_base_state { public: @@ -821,67 +881,63 @@ CUSTOM_INPUT_MEMBER(mvs_state::kizuna4p_start_r) WRITE8_MEMBER(neogeo_base_state::io_control_w) { - switch (offset) + if ((offset & 0x38) == 0x00) // TODO: the mask is supposedly less restrictive on AES? + { + if (m_ctrl1) m_ctrl1->write_ctrlsel(data & 0x07); + if (m_ctrl2) m_ctrl2->write_ctrlsel((data >> 3) & 0x07); + if (m_edge) m_edge->write_ctrlsel(data & 0x3f); // FIXME: only MV-1B and MV-1C have this output + } + else { - case 0x00: - if (m_ctrl1) m_ctrl1->write_ctrlsel(data); - if (m_ctrl2) m_ctrl2->write_ctrlsel(data); - if (m_edge) m_edge->write_ctrlsel(data); - break; - - case 0x10: - case 0x18: - case 0x20: - case 0x28: - case 0x30: - case 0x31: -// case 0x32: break; // coin lockout -// case 0x33: break; // coin lockout - // arcade peripherals - break; - - default: logerror("PC: %x Unmapped I/O control write. Offset: %x Data: %x\n", m_maincpu->pc(), offset, data); } } WRITE8_MEMBER(ngarcade_base_state::io_control_w) { - switch (offset) + switch (offset & 0x78) { + case 0x00: + neogeo_base_state::io_control_w(space, offset, data, mem_mask); + break; + case 0x28: m_upd4990a->data_in_w(BIT(data, 0)); m_upd4990a->clk_w(BIT(data, 1)); m_upd4990a->stb_w(BIT(data, 2)); break; - case 0x30: // coin 1 counter - case 0x31: // coin 2/3/4 counter - machine().bookkeeping().coin_counter_w(BIT(offset, 0), BIT(data, 4)); + case 0x30: + case 0x70: + if (BIT(offset, 1)) + machine().bookkeeping().coin_lockout_w(BIT(offset, 0), BIT(offset, 6)); + else + machine().bookkeeping().coin_counter_w(BIT(offset, 0), BIT(offset, 6)); break; -// case 0x32: break; // coin lockout -// case 0x33: break; // coin lockout - default: - neogeo_base_state::io_control_w(space, offset, data, mem_mask); + logerror("PC: %x Unmapped I/O control write. Offset: %x Data: %x\n", m_maincpu->pc(), offset, data); } } WRITE8_MEMBER(mvs_state::io_control_w) { - switch (offset) + switch (offset & 0x78) { case 0x10: - if (m_slots[data] != nullptr) set_slot_idx(data); + if (m_slots[data]) + set_slot_idx(data); break; case 0x18: - set_output_latch(data); + // strobe on falling edge + output_strobe(m_output_latch & ~data, m_output_data); + m_output_latch = data; + set_outputs(); break; case 0x20: - set_output_data(data); + m_output_data = data; break; default: @@ -1055,14 +1111,9 @@ WRITE16_MEMBER(neogeo_base_state::write_banksel) * *************************************/ -void mvs_state::set_outputs() +void mvs_led_state::set_outputs() { - static constexpr uint8_t led_map[0x10] = - { 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x58,0x4c,0x62,0x69,0x78,0x00 }; - - // EL - for (unsigned i = 0; 6U > i; ++i) - m_lamps[i] = (m_el_value & 0x07) == (i + 1); + static constexpr uint8_t led_map[0x10] = { 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x58,0x4c,0x62,0x69,0x78,0x00 }; // LED1 m_digits[0] = led_map[m_led1_value >> 4]; @@ -1071,36 +1122,37 @@ void mvs_state::set_outputs() // LED2 m_digits[2] = led_map[m_led2_value >> 4]; m_digits[3] = led_map[m_led2_value & 0x0f]; -} + mvs_state::set_outputs(); +} -void mvs_state::set_output_latch(uint8_t data) +void mvs_led_el_state::set_outputs() { - /* looks like the LEDs are set on the - falling edge */ - uint8_t falling_bits = m_output_latch & ~data; - - if (falling_bits & 0x08) - m_el_value = 16 - (m_output_data & 0x0f); + // EL + for (unsigned i = 0; 6U > i; ++i) + m_lamps[i] = m_el_value == i; - if (falling_bits & 0x10) - m_led1_value = ~m_output_data; + mvs_led_state::set_outputs(); +} - if (falling_bits & 0x20) - m_led2_value = ~m_output_data; - if (falling_bits & 0xc7) - logerror("%s Unmaped LED write. Data: %x\n", machine().describe_context(), falling_bits); +void mvs_led_state::output_strobe(uint8_t bits, uint8_t data) +{ + if (BIT(bits, 4)) + m_led1_value = ~data; - m_output_latch = data; + if (BIT(bits, 5)) + m_led2_value = ~data; - set_outputs(); + mvs_state::output_strobe(bits, data); } - -void mvs_state::set_output_data(uint8_t data) +void mvs_led_el_state::output_strobe(uint8_t bits, uint8_t data) { - m_output_data = data; + if (BIT(bits, 3)) + m_el_value = ~data & 0x07; + + mvs_led_state::output_strobe(bits, data); } @@ -1507,9 +1559,6 @@ void mvs_state::machine_start() { ngarcade_base_state::machine_start(); - m_digits.resolve(); - m_lamps.resolve(); - m_sprgen->m_fixed_layer_bank_type = 0; m_sprgen->set_screen(m_screen); @@ -1518,11 +1567,27 @@ void mvs_state::machine_start() save_item(NAME(m_output_data)); save_item(NAME(m_output_latch)); - save_item(NAME(m_el_value)); +} + +void mvs_led_state::machine_start() +{ + mvs_state::machine_start(); + + m_digits.resolve(); + save_item(NAME(m_led1_value)); save_item(NAME(m_led2_value)); } +void mvs_led_el_state::machine_start() +{ + mvs_led_state::machine_start(); + + m_lamps.resolve(); + + save_item(NAME(m_el_value)); +} + void neogeo_base_state::neogeo_postload() { @@ -1562,6 +1627,14 @@ void neogeo_base_state::machine_reset() m_recurse = false; } +void ngarcade_base_state::machine_reset() +{ + neogeo_base_state::machine_reset(); + + machine().bookkeeping().coin_lockout_w(0, 1); + machine().bookkeeping().coin_lockout_w(1, 1); +} + /************************************* * @@ -1594,7 +1667,7 @@ void neogeo_base_state::base_main_map(address_map &map) { map(0x320000, 0x320000).mirror(0x01fffe).w(m_soundlatch, FUNC(generic_latch_8_device::write)); map(0x360000, 0x37ffff).r(this, FUNC(aes_base_state::unmapped_r)); - map(0x380000, 0x38007f).mirror(0x01ff80).w(this, FUNC(neogeo_base_state::io_control_w)).umask16(0x00ff); + map(0x380000, 0x3800ff).mirror(0x01ff00).w(this, FUNC(neogeo_base_state::io_control_w)).umask16(0x00ff); map(0x3a0000, 0x3a001f).mirror(0x01ffe0).r(this, FUNC(neogeo_base_state::unmapped_r)); map(0x3a0000, 0x3a001f).mirror(0x01ffe0).w("systemlatch", FUNC(hc259_device::write_a3)).umask16(0x00ff); // BITW1 (system control registers) map(0x3c0000, 0x3c0007).mirror(0x01fff8).r(this, FUNC(neogeo_base_state::video_register_r)); @@ -1735,14 +1808,14 @@ INPUT_PORTS_START( neogeo ) PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_COIN2 ) // coin 2 (combined) or P2 coin 1 (separate) for BIOS that supports it PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_SERVICE1 ) PORT_BIT( 0x0018, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_SPECIAL ) /* what is this? When ACTIVE_HIGH + IN4 bit 6 ACTIVE_LOW MVS-4 slot is detected */ + PORT_BIT( 0x0020, IP_ACTIVE_HIGH, IPT_SPECIAL ) // sense: 4-slot PORT_BIT( 0x0040, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("upd4990a", upd1990a_device, tp_r) PORT_BIT( 0x0080, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("upd4990a", upd1990a_device, data_out_r) PORT_BIT( 0xff00, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_CUSTOM_MEMBER(DEVICE_SELF, neogeo_base_state,get_audio_result, nullptr) PORT_START("TEST") PORT_BIT( 0x003f, IP_ACTIVE_HIGH, IPT_UNUSED ) - PORT_BIT( 0x0040, IP_ACTIVE_HIGH, IPT_SPECIAL ) /* what is this? If ACTIVE_LOW, MVS-6 slot detected, when ACTIVE_HIGH MVS-1 slot (AES) detected */ + PORT_BIT( 0x0040, IP_ACTIVE_HIGH, IPT_SPECIAL ) // sense: JAMMA PORT_SERVICE_NO_TOGGLE( 0x0080, IP_ACTIVE_LOW ) PORT_BIT( 0xff00, IP_ACTIVE_LOW, IPT_UNUSED ) INPUT_PORTS_END @@ -1759,7 +1832,14 @@ static INPUT_PORTS_START( neogeo_mvs ) PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_COIN4 ) // P2 coin 2 (separate) for BIOS that supports it PORT_MODIFY("TEST") - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_SPECIAL ) + PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_SPECIAL ) // sense: MVS +INPUT_PORTS_END + +static INPUT_PORTS_START( neogeo_mvs6 ) + PORT_INCLUDE( neogeo_mvs ) + + PORT_MODIFY("AUDIO/COIN") + PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_SPECIAL ) // sense: 6-slot INPUT_PORTS_END @@ -1893,7 +1973,7 @@ MACHINE_CONFIG_END MCFG_NEOGEO_CARTRIDGE_ADD("cslot1", neogeo_cart, _default) \ MCFG_SET_IMAGE_LOADABLE(false) -MACHINE_CONFIG_START(mvs_state::mv1) +MACHINE_CONFIG_START(mvs_led_state::mv1) neogeo_arcade(config); neogeo_stereo(config); @@ -1909,7 +1989,7 @@ MACHINE_CONFIG_START(mvs_state::mv1) MCFG_SOFTWARE_LIST_ADD("cart_list", "neogeo") MACHINE_CONFIG_END -MACHINE_CONFIG_START(mvs_state::mv1f) +MACHINE_CONFIG_START(mvs_led_state::mv1f) neogeo_arcade(config); neogeo_stereo(config); @@ -1934,7 +2014,7 @@ MACHINE_CONFIG_START(mvs_state::mv1fz) MCFG_SOFTWARE_LIST_ADD("cart_list", "neogeo") MACHINE_CONFIG_END -MACHINE_CONFIG_START(mvs_state::mv2f) +MACHINE_CONFIG_START(mvs_led_el_state::mv2f) neogeo_arcade(config); neogeo_stereo(config); @@ -1951,7 +2031,7 @@ MACHINE_CONFIG_START(mvs_state::mv2f) MCFG_SOFTWARE_LIST_ADD("cart_list", "neogeo") MACHINE_CONFIG_END -MACHINE_CONFIG_START(mvs_state::mv4f) +MACHINE_CONFIG_START(mvs_led_el_state::mv4f) neogeo_arcade(config); neogeo_stereo(config); @@ -1970,7 +2050,7 @@ MACHINE_CONFIG_START(mvs_state::mv4f) MCFG_SOFTWARE_LIST_ADD("cart_list", "neogeo") MACHINE_CONFIG_END -MACHINE_CONFIG_START(mvs_state::mv6f) +MACHINE_CONFIG_START(mvs_led_el_state::mv6f) neogeo_arcade(config); neogeo_stereo(config); @@ -1991,7 +2071,7 @@ MACHINE_CONFIG_START(mvs_state::mv6f) MCFG_SOFTWARE_LIST_ADD("cart_list", "neogeo") MACHINE_CONFIG_END -MACHINE_CONFIG_START(mvs_state::mv1_fixed) +MACHINE_CONFIG_START(mvs_led_state::mv1_fixed) neogeo_arcade(config); neogeo_stereo(config); @@ -2293,14 +2373,14 @@ ROM_END -// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT -CONS( 1990, neogeo, 0, 0, mv6f, neogeo_mvs, mvs_state, 0, "SNK", "Neo-Geo MV-6F", MACHINE_IS_BIOS_ROOT | MACHINE_SUPPORTS_SAVE ) -CONS( 1990, ng_mv4f, neogeo, 0, mv4f, neogeo_mvs, mvs_state, 0, "SNK", "Neo-Geo MV-4F", MACHINE_SUPPORTS_SAVE ) -CONS( 1990, ng_mv2f, neogeo, 0, mv2f, neogeo_mvs, mvs_state, 0, "SNK", "Neo-Geo MV-2F", MACHINE_SUPPORTS_SAVE ) -CONS( 1990, ng_mv1, neogeo, 0, mv1, neogeo, mvs_state, 0, "SNK", "Neo-Geo MV-1", MACHINE_SUPPORTS_SAVE ) -CONS( 1990, ng_mv1f, neogeo, 0, mv1f, neogeo, mvs_state, 0, "SNK", "Neo-Geo MV-1F", MACHINE_SUPPORTS_SAVE ) -CONS( 1990, ng_mv1fz, neogeo, 0, mv1fz, neogeo, mvs_state, 0, "SNK", "Neo-Geo MV-1FZ", MACHINE_SUPPORTS_SAVE ) -CONS( 1990, aes, 0, 0, aes, aes, aes_state, 0, "SNK", "Neo-Geo AES", MACHINE_SUPPORTS_SAVE ) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT +CONS( 1990, neogeo, 0, 0, mv6f, neogeo_mvs6, mvs_led_el_state, 0, "SNK", "Neo-Geo MV-6F", MACHINE_IS_BIOS_ROOT | MACHINE_SUPPORTS_SAVE ) +CONS( 1990, ng_mv4f, neogeo, 0, mv4f, neogeo_mvs, mvs_led_el_state, 0, "SNK", "Neo-Geo MV-4F", MACHINE_SUPPORTS_SAVE ) +CONS( 1990, ng_mv2f, neogeo, 0, mv2f, neogeo_mvs, mvs_led_el_state, 0, "SNK", "Neo-Geo MV-2F", MACHINE_SUPPORTS_SAVE ) +CONS( 1990, ng_mv1, neogeo, 0, mv1, neogeo, mvs_led_state, 0, "SNK", "Neo-Geo MV-1", MACHINE_SUPPORTS_SAVE ) +CONS( 1990, ng_mv1f, neogeo, 0, mv1f, neogeo, mvs_led_state, 0, "SNK", "Neo-Geo MV-1F", MACHINE_SUPPORTS_SAVE ) +CONS( 1990, ng_mv1fz, neogeo, 0, mv1fz, neogeo, mvs_state, 0, "SNK", "Neo-Geo MV-1FZ", MACHINE_SUPPORTS_SAVE ) +CONS( 1990, aes, 0, 0, aes, aes, aes_state, 0, "SNK", "Neo-Geo AES", MACHINE_SUPPORTS_SAVE ) @@ -2314,18 +2394,18 @@ CONS( 1990, aes, 0, 0, aes, aes, aes_state, 0, " // machine config for one-game fixed config, loaded without using softlists -MACHINE_CONFIG_START(mvs_state::neobase) +MACHINE_CONFIG_START(mvs_led_state::neobase) mv1_fixed(config); NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("rom") MACHINE_CONFIG_END // used by fatfury2 & ssideki -MACHINE_CONFIG_START(mvs_state::fatfur2) +MACHINE_CONFIG_START(mvs_led_state::fatfur2) mv1_fixed(config); NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("rom_fatfur2") MACHINE_CONFIG_END -MACHINE_CONFIG_START(mvs_state::kizuna4p) +MACHINE_CONFIG_START(mvs_led_state::kizuna4p) mv1_fixed(config); MCFG_DEVICE_REMOVE("edge") MCFG_NEOGEO_CONTROL_EDGE_CONNECTOR_ADD("edge", neogeo_arc_edge_fixed, "kiz4p", true) @@ -2333,236 +2413,240 @@ MACHINE_CONFIG_START(mvs_state::kizuna4p) NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("rom") MACHINE_CONFIG_END -MACHINE_CONFIG_START(mvs_state::kof97oro) +MACHINE_CONFIG_START(mvs_led_state::kof97oro) mv1_fixed(config); NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("boot_kof97oro") MACHINE_CONFIG_END -MACHINE_CONFIG_START(mvs_state::kog) +MACHINE_CONFIG_START(mvs_led_state::kog) mv1_fixed(config); NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("boot_kog") MACHINE_CONFIG_END -MACHINE_CONFIG_START(mvs_state::irrmaze) +MACHINE_CONFIG_START(mvs_led_state::irrmaze) mv1_fixed(config); + MCFG_DEVICE_REMOVE("edge") MCFG_NEOGEO_CONTROL_EDGE_CONNECTOR_ADD("edge", neogeo_arc_edge_fixed, "irrmaze", true) + MCFG_DEFAULT_LAYOUT(layout_irrmaze) + NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("rom") MACHINE_CONFIG_END -MACHINE_CONFIG_START(mvs_state::kof98) +MACHINE_CONFIG_START(mvs_led_state::kof98) mv1_fixed(config); NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("rom_kof98") MACHINE_CONFIG_END -MACHINE_CONFIG_START(mvs_state::mslugx) +MACHINE_CONFIG_START(mvs_led_state::mslugx) mv1_fixed(config); NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("rom_mslugx") MACHINE_CONFIG_END -MACHINE_CONFIG_START(mvs_state::kof99) +MACHINE_CONFIG_START(mvs_led_state::kof99) mv1_fixed(config); NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("sma_kof99") MACHINE_CONFIG_END -MACHINE_CONFIG_START(mvs_state::kof99k) +MACHINE_CONFIG_START(mvs_led_state::kof99k) mv1_fixed(config); NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("cmc42_kof99k") MACHINE_CONFIG_END -MACHINE_CONFIG_START(mvs_state::garou) +MACHINE_CONFIG_START(mvs_led_state::garou) mv1_fixed(config); NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("sma_garou") MACHINE_CONFIG_END -MACHINE_CONFIG_START(mvs_state::garouh) +MACHINE_CONFIG_START(mvs_led_state::garouh) mv1_fixed(config); NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("sma_garouh") MACHINE_CONFIG_END -MACHINE_CONFIG_START(mvs_state::garoubl) +MACHINE_CONFIG_START(mvs_led_state::garoubl) mv1_fixed(config); NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("boot_garoubl") MACHINE_CONFIG_END -MACHINE_CONFIG_START(mvs_state::mslug3) +MACHINE_CONFIG_START(mvs_led_state::mslug3) mv1_fixed(config); NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("sma_mslug3") MACHINE_CONFIG_END -MACHINE_CONFIG_START(mvs_state::mslug3h) +MACHINE_CONFIG_START(mvs_led_state::mslug3h) mv1_fixed(config); NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("cmc42_mslug3h") MACHINE_CONFIG_END -MACHINE_CONFIG_START(mvs_state::mslug3b6) +MACHINE_CONFIG_START(mvs_led_state::mslug3b6) mv1_fixed(config); NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("boot_mslug3b6") MACHINE_CONFIG_END -MACHINE_CONFIG_START(mvs_state::kof2000) +MACHINE_CONFIG_START(mvs_led_state::kof2000) mv1_fixed(config); NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("sma_kof2k") MACHINE_CONFIG_END -MACHINE_CONFIG_START(mvs_state::kof2000n) +MACHINE_CONFIG_START(mvs_led_state::kof2000n) mv1_fixed(config); NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("cmc50_kof2000n") MACHINE_CONFIG_END -MACHINE_CONFIG_START(mvs_state::zupapa) +MACHINE_CONFIG_START(mvs_led_state::zupapa) mv1_fixed(config); NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("cmc42_zupapa") MACHINE_CONFIG_END -MACHINE_CONFIG_START(mvs_state::sengoku3) +MACHINE_CONFIG_START(mvs_led_state::sengoku3) mv1_fixed(config); NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("cmc42_sengoku3") MACHINE_CONFIG_END -MACHINE_CONFIG_START(mvs_state::kof2001) +MACHINE_CONFIG_START(mvs_led_state::kof2001) mv1_fixed(config); NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("cmc50_kof2001") MACHINE_CONFIG_END -MACHINE_CONFIG_START(mvs_state::cthd2k3) +MACHINE_CONFIG_START(mvs_led_state::cthd2k3) mv1_fixed(config); NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("boot_cthd2k3") MACHINE_CONFIG_END -MACHINE_CONFIG_START(mvs_state::ct2k3sp) +MACHINE_CONFIG_START(mvs_led_state::ct2k3sp) mv1_fixed(config); NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("boot_ct2k3sp") MACHINE_CONFIG_END -MACHINE_CONFIG_START(mvs_state::ct2k3sa) +MACHINE_CONFIG_START(mvs_led_state::ct2k3sa) mv1_fixed(config); NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("boot_ct2k3sa") MACHINE_CONFIG_END -MACHINE_CONFIG_START(mvs_state::kof2002) +MACHINE_CONFIG_START(mvs_led_state::kof2002) mv1_fixed(config); NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("k2k2_kof2k2") MACHINE_CONFIG_END -MACHINE_CONFIG_START(mvs_state::kof2002b) +MACHINE_CONFIG_START(mvs_led_state::kof2002b) mv1_fixed(config); NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("boot_kf2k2b") MACHINE_CONFIG_END -MACHINE_CONFIG_START(mvs_state::kf2k2pls) +MACHINE_CONFIG_START(mvs_led_state::kf2k2pls) mv1_fixed(config); NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("k2k2_kf2k2p") MACHINE_CONFIG_END -MACHINE_CONFIG_START(mvs_state::kf2k2mp) +MACHINE_CONFIG_START(mvs_led_state::kf2k2mp) mv1_fixed(config); NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("boot_kf2k2mp") MACHINE_CONFIG_END -MACHINE_CONFIG_START(mvs_state::kf2k2mp2) +MACHINE_CONFIG_START(mvs_led_state::kf2k2mp2) mv1_fixed(config); NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("boot_kf2k2mp2") MACHINE_CONFIG_END -MACHINE_CONFIG_START(mvs_state::kof10th) +MACHINE_CONFIG_START(mvs_led_state::kof10th) mv1_fixed(config); NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("boot_kf10th") MACHINE_CONFIG_END -MACHINE_CONFIG_START(mvs_state::kf10thep) +MACHINE_CONFIG_START(mvs_led_state::kf10thep) mv1_fixed(config); NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("boot_kf10thep") MACHINE_CONFIG_END -MACHINE_CONFIG_START(mvs_state::kf2k5uni) +MACHINE_CONFIG_START(mvs_led_state::kf2k5uni) mv1_fixed(config); NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("boot_kf2k5uni") MACHINE_CONFIG_END -MACHINE_CONFIG_START(mvs_state::kof2k4se) +MACHINE_CONFIG_START(mvs_led_state::kof2k4se) mv1_fixed(config); NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("boot_kf2k4se") MACHINE_CONFIG_END -MACHINE_CONFIG_START(mvs_state::mslug5) +MACHINE_CONFIG_START(mvs_led_state::mslug5) mv1_fixed(config); NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("pvc_mslug5") MACHINE_CONFIG_END -MACHINE_CONFIG_START(mvs_state::ms5plus) +MACHINE_CONFIG_START(mvs_led_state::ms5plus) mv1_fixed(config); NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("boot_ms5plus") MACHINE_CONFIG_END -MACHINE_CONFIG_START(mvs_state::svc) +MACHINE_CONFIG_START(mvs_led_state::svc) mv1_fixed(config); NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("pvc_svc") MACHINE_CONFIG_END -MACHINE_CONFIG_START(mvs_state::svcboot) +MACHINE_CONFIG_START(mvs_led_state::svcboot) mv1_fixed(config); NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("boot_svcboot") MACHINE_CONFIG_END -MACHINE_CONFIG_START(mvs_state::svcplus) +MACHINE_CONFIG_START(mvs_led_state::svcplus) mv1_fixed(config); NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("boot_svcplus") MACHINE_CONFIG_END -MACHINE_CONFIG_START(mvs_state::svcplusa) +MACHINE_CONFIG_START(mvs_led_state::svcplusa) mv1_fixed(config); NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("boot_svcplusa") MACHINE_CONFIG_END -MACHINE_CONFIG_START(mvs_state::svcsplus) +MACHINE_CONFIG_START(mvs_led_state::svcsplus) mv1_fixed(config); NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("boot_svcsplus") MACHINE_CONFIG_END -MACHINE_CONFIG_START(mvs_state::samsho5) +MACHINE_CONFIG_START(mvs_led_state::samsho5) mv1_fixed(config); NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("k2k2_samsh5") MACHINE_CONFIG_END -MACHINE_CONFIG_START(mvs_state::samsho5b) +MACHINE_CONFIG_START(mvs_led_state::samsho5b) mv1_fixed(config); NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("boot_samsho5b") MACHINE_CONFIG_END -MACHINE_CONFIG_START(mvs_state::kof2003) +MACHINE_CONFIG_START(mvs_led_state::kof2003) mv1_fixed(config); NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("pvc_kf2k3") MACHINE_CONFIG_END -MACHINE_CONFIG_START(mvs_state::kof2003h) +MACHINE_CONFIG_START(mvs_led_state::kof2003h) mv1_fixed(config); NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("pvc_kf2k3h") MACHINE_CONFIG_END -MACHINE_CONFIG_START(mvs_state::kf2k3bl) +MACHINE_CONFIG_START(mvs_led_state::kf2k3bl) mv1_fixed(config); NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("boot_kf2k3bl") MACHINE_CONFIG_END -MACHINE_CONFIG_START(mvs_state::kf2k3pl) +MACHINE_CONFIG_START(mvs_led_state::kf2k3pl) mv1_fixed(config); NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("boot_kf2k3pl") MACHINE_CONFIG_END -MACHINE_CONFIG_START(mvs_state::kf2k3upl) +MACHINE_CONFIG_START(mvs_led_state::kf2k3upl) mv1_fixed(config); NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("boot_kf2k3upl") MACHINE_CONFIG_END -MACHINE_CONFIG_START(mvs_state::samsh5sp) +MACHINE_CONFIG_START(mvs_led_state::samsh5sp) mv1_fixed(config); NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("k2k2_sams5s") MACHINE_CONFIG_END -MACHINE_CONFIG_START(mvs_state::neogeo_mj) +MACHINE_CONFIG_START(mvs_led_state::neogeo_mj) mv1_fixed(config); + //no joystick panel MCFG_DEVICE_REMOVE("edge") MCFG_NEOGEO_CONTROL_EDGE_CONNECTOR_ADD("edge", neogeo_arc_edge_fixed, "", true) @@ -2576,32 +2660,32 @@ MACHINE_CONFIG_START(mvs_state::neogeo_mj) NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("rom") MACHINE_CONFIG_END -MACHINE_CONFIG_START(mvs_state::preisle2) +MACHINE_CONFIG_START(mvs_led_state::preisle2) mv1_fixed(config); NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("cmc42_preisle2") MACHINE_CONFIG_END -MACHINE_CONFIG_START(mvs_state::nitd) +MACHINE_CONFIG_START(mvs_led_state::nitd) mv1_fixed(config); NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("cmc42_nitd") MACHINE_CONFIG_END -MACHINE_CONFIG_START(mvs_state::s1945p) +MACHINE_CONFIG_START(mvs_led_state::s1945p) mv1_fixed(config); NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("cmc42_s1945p") MACHINE_CONFIG_END -MACHINE_CONFIG_START(mvs_state::lans2004) +MACHINE_CONFIG_START(mvs_led_state::lans2004) mv1_fixed(config); NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("boot_lans2004") MACHINE_CONFIG_END -MACHINE_CONFIG_START(mvs_state::pnyaa) +MACHINE_CONFIG_START(mvs_led_state::pnyaa) mv1_fixed(config); NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("pcm2_pnyaa") MACHINE_CONFIG_END -MACHINE_CONFIG_START(mvs_state::popbounc) +MACHINE_CONFIG_START(mvs_led_state::popbounc) mv1_fixed(config); MCFG_DEVICE_REMOVE("edge") MCFG_NEOGEO_CONTROL_EDGE_CONNECTOR_ADD("edge", neogeo_arc_edge_fixed, "dial", true) @@ -2609,47 +2693,47 @@ MACHINE_CONFIG_START(mvs_state::popbounc) NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("rom") MACHINE_CONFIG_END -MACHINE_CONFIG_START(mvs_state::ganryu) +MACHINE_CONFIG_START(mvs_led_state::ganryu) mv1_fixed(config); NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("cmc42_ganryu") MACHINE_CONFIG_END -MACHINE_CONFIG_START(mvs_state::bangbead) +MACHINE_CONFIG_START(mvs_led_state::bangbead) mv1_fixed(config); NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("cmc42_bangbead") MACHINE_CONFIG_END -MACHINE_CONFIG_START(mvs_state::mslug4) +MACHINE_CONFIG_START(mvs_led_state::mslug4) mv1_fixed(config); NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("pcm2_mslug4") MACHINE_CONFIG_END -MACHINE_CONFIG_START(mvs_state::ms4plus) +MACHINE_CONFIG_START(mvs_led_state::ms4plus) mv1_fixed(config); NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("pcm2_ms4p") MACHINE_CONFIG_END -MACHINE_CONFIG_START(mvs_state::rotd) +MACHINE_CONFIG_START(mvs_led_state::rotd) mv1_fixed(config); NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("pcm2_rotd") MACHINE_CONFIG_END -MACHINE_CONFIG_START(mvs_state::matrim) +MACHINE_CONFIG_START(mvs_led_state::matrim) mv1_fixed(config); NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("k2k2_matrim") MACHINE_CONFIG_END -MACHINE_CONFIG_START(mvs_state::matrimbl) +MACHINE_CONFIG_START(mvs_led_state::matrimbl) mv1_fixed(config); NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("boot_matrimbl") MACHINE_CONFIG_END -MACHINE_CONFIG_START(mvs_state::jockeygp) +MACHINE_CONFIG_START(mvs_led_state::jockeygp) mv1_fixed(config); NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("cmc50_jockeygp") MACHINE_CONFIG_END -MACHINE_CONFIG_START(mvs_state::vliner) +MACHINE_CONFIG_START(mvs_led_state::vliner) mv1_fixed(config); // input handlers are installed at DRIVER_INIT... MCFG_DEVICE_REMOVE("edge") @@ -2659,7 +2743,7 @@ MACHINE_CONFIG_START(mvs_state::vliner) NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("rom_vliner") MACHINE_CONFIG_END -MACHINE_CONFIG_START(mvs_state::sbp) +MACHINE_CONFIG_START(mvs_led_state::sbp) mv1_fixed(config); NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("boot_sbp") MACHINE_CONFIG_END @@ -2773,6 +2857,15 @@ MACHINE_CONFIG_END // Game specific input definitions +static INPUT_PORTS_START( neogeo_mj ) + PORT_INCLUDE( neogeo ) + + PORT_MODIFY("DSW") + PORT_DIPNAME( 0x04, 0x00, DEF_STR( Controller ) ) PORT_DIPLOCATION("SW:3") + PORT_DIPSETTING( 0x04, DEF_STR( Joystick ) ) + PORT_DIPSETTING( 0x00, "Mahjong Panel" ) +INPUT_PORTS_END + static INPUT_PORTS_START( kizuna4p ) PORT_INCLUDE( neogeo ) @@ -2782,7 +2875,7 @@ static INPUT_PORTS_START( kizuna4p ) PORT_DIPSETTING( 0x00, "4" ) PORT_MODIFY("SYSTEM") - PORT_BIT( 0x0f00, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_CUSTOM_MEMBER(DEVICE_SELF, mvs_state, kizuna4p_start_r, nullptr) + PORT_BIT( 0x0f00, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_CUSTOM_MEMBER(DEVICE_SELF, mvs_led_state, kizuna4p_start_r, nullptr) INPUT_PORTS_END static INPUT_PORTS_START( vliner ) @@ -11172,329 +11265,329 @@ ROM_END NEOGEO ROM-cart:2004/07/15 ****************************************************************************/ -// YEAR NAME PARENT MACHINE INPUT STATE INIT MONITOR +// YEAR NAME PARENT MACHINE INPUT STATE INIT MONITOR // SNK -GAME( 1990, nam1975, neogeo, neobase, neogeo, mvs_state, 0, ROT0, "SNK", "NAM-1975 (NGM-001 ~ NGH-001)", MACHINE_SUPPORTS_SAVE ) -GAME( 1990, bstars, neogeo, neobase, neogeo, mvs_state, 0, ROT0, "SNK", "Baseball Stars Professional (NGM-002)", MACHINE_SUPPORTS_SAVE ) -GAME( 1990, bstarsh, bstars, neobase, neogeo, mvs_state, 0, ROT0, "SNK", "Baseball Stars Professional (NGH-002)", MACHINE_SUPPORTS_SAVE ) -GAME( 1990, tpgolf, neogeo, neobase, neogeo, mvs_state, 0, ROT0, "SNK", "Top Player's Golf (NGM-003 ~ NGH-003)", MACHINE_SUPPORTS_SAVE ) -GAME( 1990, mahretsu, neogeo, neogeo_mj, neogeo, mvs_state, 0, ROT0, "SNK", "Mahjong Kyo Retsuden (NGM-004 ~ NGH-004)", MACHINE_SUPPORTS_SAVE ) // does not support mahjong panel in MVS mode <- it actually works fine??? -GAME( 1990, ridhero, neogeo, neobase, neogeo, mvs_state, 0, ROT0, "SNK", "Riding Hero (NGM-006 ~ NGH-006)", MACHINE_NODEVICE_LAN | MACHINE_SUPPORTS_SAVE ) -GAME( 1990, ridheroh, ridhero, neobase, neogeo, mvs_state, 0, ROT0, "SNK", "Riding Hero (set 2)", MACHINE_NODEVICE_LAN | MACHINE_SUPPORTS_SAVE ) -GAME( 1991, alpham2, neogeo, neobase, neogeo, mvs_state, 0, ROT0, "SNK", "Alpha Mission II / ASO II - Last Guardian (NGM-007 ~ NGH-007)", MACHINE_SUPPORTS_SAVE ) -GAME( 1991, alpham2p, alpham2, neobase, neogeo, mvs_state, 0, ROT0, "SNK", "Alpha Mission II / ASO II - Last Guardian (prototype)", MACHINE_SUPPORTS_SAVE ) -GAME( 1990, cyberlip, neogeo, neobase, neogeo, mvs_state, 0, ROT0, "SNK", "Cyber-Lip (NGM-010)", MACHINE_SUPPORTS_SAVE ) -GAME( 1990, superspy, neogeo, neobase, neogeo, mvs_state, 0, ROT0, "SNK", "The Super Spy (NGM-011 ~ NGH-011)", MACHINE_SUPPORTS_SAVE ) -GAME( 1992, mutnat, neogeo, neobase, neogeo, mvs_state, 0, ROT0, "SNK", "Mutation Nation (NGM-014 ~ NGH-014)", MACHINE_SUPPORTS_SAVE ) -GAME( 1991, kotm, neogeo, neobase, neogeo, mvs_state, 0, ROT0, "SNK", "King of the Monsters (set 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1991, kotmh, kotm, neobase, neogeo, mvs_state, 0, ROT0, "SNK", "King of the Monsters (set 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 1991, sengoku, neogeo, neobase, neogeo, mvs_state, 0, ROT0, "SNK", "Sengoku / Sengoku Denshou (NGM-017 ~ NGH-017)", MACHINE_SUPPORTS_SAVE ) -GAME( 1991, sengokuh, sengoku, neobase, neogeo, mvs_state, 0, ROT0, "SNK", "Sengoku / Sengoku Denshou (NGH-017, US)", MACHINE_SUPPORTS_SAVE ) -GAME( 1991, burningf, neogeo, neobase, neogeo, mvs_state, 0, ROT0, "SNK", "Burning Fight (NGM-018 ~ NGH-018)", MACHINE_SUPPORTS_SAVE ) -GAME( 1991, burningfh, burningf, neobase, neogeo, mvs_state, 0, ROT0, "SNK", "Burning Fight (NGH-018, US)", MACHINE_SUPPORTS_SAVE ) -GAME( 1991, burningfpa, burningf, neobase, neogeo, mvs_state, 0, ROT0, "SNK", "Burning Fight (prototype, ver 23.3, 910326)", MACHINE_SUPPORTS_SAVE ) -GAME( 1991, burningfp, burningf, neobase, neogeo, mvs_state, 0, ROT0, "SNK", "Burning Fight (prototype, older)", MACHINE_SUPPORTS_SAVE ) -GAME( 1990, lbowling, neogeo, neobase, neogeo, mvs_state, 0, ROT0, "SNK", "League Bowling (NGM-019 ~ NGH-019)", MACHINE_NODEVICE_LAN | MACHINE_SUPPORTS_SAVE ) -GAME( 1991, gpilots, neogeo, neobase, neogeo, mvs_state, 0, ROT0, "SNK", "Ghost Pilots (NGM-020 ~ NGH-020)", MACHINE_SUPPORTS_SAVE ) -GAME( 1991, gpilotsh, gpilots, neobase, neogeo, mvs_state, 0, ROT0, "SNK", "Ghost Pilots (NGH-020, US)", MACHINE_SUPPORTS_SAVE ) -GAME( 1990, joyjoy, neogeo, neobase, neogeo, mvs_state, 0, ROT0, "SNK", "Puzzled / Joy Joy Kid (NGM-021 ~ NGH-021)", MACHINE_SUPPORTS_SAVE ) -GAME( 1991, quizdais, neogeo, neobase, neogeo, mvs_state, 0, ROT0, "SNK", "Quiz Daisousa Sen - The Last Count Down (NGM-023 ~ NGH-023)", MACHINE_SUPPORTS_SAVE ) -GAME( 1991, quizdaisk, quizdais, neobase, neogeo, mvs_state, 0, ROT0, "SNK", "Quiz Daisousa Sen - The Last Count Down (Korean release)", MACHINE_SUPPORTS_SAVE ) -GAME( 1992, lresort, neogeo, neobase, neogeo, mvs_state, 0, ROT0, "SNK", "Last Resort", MACHINE_SUPPORTS_SAVE ) -GAME( 1992, lresortp, lresort, neobase, neogeo, mvs_state, 0, ROT0, "SNK", "Last Resort (prototype)", MACHINE_SUPPORTS_SAVE ) -GAME( 1991, eightman, neogeo, neobase, neogeo, mvs_state, 0, ROT0, "SNK / Pallas", "Eight Man (NGM-025 ~ NGH-025)", MACHINE_SUPPORTS_SAVE ) -GAME( 1991, legendos, neogeo, neobase, neogeo, mvs_state, 0, ROT0, "SNK", "Legend of Success Joe / Ashita no Joe Densetsu", MACHINE_SUPPORTS_SAVE ) -GAME( 1991, 2020bb, neogeo, neobase, neogeo, mvs_state, 0, ROT0, "SNK / Pallas", "2020 Super Baseball (set 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1991, 2020bba, 2020bb, neobase, neogeo, mvs_state, 0, ROT0, "SNK / Pallas", "2020 Super Baseball (set 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 1991, 2020bbh, 2020bb, neobase, neogeo, mvs_state, 0, ROT0, "SNK / Pallas", "2020 Super Baseball (set 3)", MACHINE_SUPPORTS_SAVE ) -GAME( 1991, socbrawl, neogeo, neobase, neogeo, mvs_state, 0, ROT0, "SNK", "Soccer Brawl (NGM-031)", MACHINE_SUPPORTS_SAVE ) -GAME( 1991, socbrawlh, socbrawl, neobase, neogeo, mvs_state, 0, ROT0, "SNK", "Soccer Brawl (NGH-031)", MACHINE_SUPPORTS_SAVE ) -GAME( 1991, fatfury1, neogeo, neobase, neogeo, mvs_state, 0, ROT0, "SNK", "Fatal Fury - King of Fighters / Garou Densetsu - Shukumei no Tatakai (NGM-033 ~ NGH-033)", MACHINE_SUPPORTS_SAVE ) -GAME( 1991, roboarmy, neogeo, neobase, neogeo, mvs_state, 0, ROT0, "SNK", "Robo Army", MACHINE_SUPPORTS_SAVE ) -GAME( 1991, roboarma, roboarmy, neobase, neogeo, mvs_state, 0, ROT0, "SNK", "Robo Army (NGM-032 ~ NGH-032)", MACHINE_SUPPORTS_SAVE ) -GAME( 1992, fbfrenzy, neogeo, neobase, neogeo, mvs_state, 0, ROT0, "SNK", "Football Frenzy (NGM-034 ~ NGH-034)", MACHINE_SUPPORTS_SAVE ) -GAME( 1992, kotm2, neogeo, neobase, neogeo, mvs_state, 0, ROT0, "SNK", "King of the Monsters 2 - The Next Thing (NGM-039 ~ NGH-039)", MACHINE_SUPPORTS_SAVE ) -GAME( 1992, kotm2a, kotm2, neobase, neogeo, mvs_state, 0, ROT0, "SNK", "King of the Monsters 2 - The Next Thing (older)", MACHINE_SUPPORTS_SAVE ) -GAME( 1992, kotm2p, kotm2, neobase, neogeo, mvs_state, 0, ROT0, "SNK", "King of the Monsters 2 - The Next Thing (prototype)", MACHINE_SUPPORTS_SAVE ) -GAME( 1993, sengoku2, neogeo, neobase, neogeo, mvs_state, 0, ROT0, "SNK", "Sengoku 2 / Sengoku Denshou 2", MACHINE_SUPPORTS_SAVE ) -GAME( 1992, bstars2, neogeo, neobase, neogeo, mvs_state, 0, ROT0, "SNK", "Baseball Stars 2", MACHINE_SUPPORTS_SAVE ) -GAME( 1992, quizdai2, neogeo, neobase, neogeo, mvs_state, 0, ROT0, "SNK", "Quiz Meitantei Neo & Geo - Quiz Daisousa Sen part 2 (NGM-042 ~ NGH-042)", MACHINE_SUPPORTS_SAVE ) -GAME( 1993, 3countb, neogeo, neobase, neogeo, mvs_state, 0, ROT0, "SNK", "3 Count Bout / Fire Suplex (NGM-043 ~ NGH-043)", MACHINE_SUPPORTS_SAVE ) -GAME( 1992, aof, neogeo, neobase, neogeo, mvs_state, 0, ROT0, "SNK", "Art of Fighting / Ryuuko no Ken (NGM-044 ~ NGH-044)", MACHINE_SUPPORTS_SAVE ) -GAME( 1993, samsho, neogeo, neobase, neogeo, mvs_state, 0, ROT0, "SNK", "Samurai Shodown / Samurai Spirits (NGM-045)", MACHINE_SUPPORTS_SAVE ) -GAME( 1993, samshoh, samsho, neobase, neogeo, mvs_state, 0, ROT0, "SNK", "Samurai Shodown / Samurai Spirits (NGH-045)", MACHINE_SUPPORTS_SAVE ) -GAME( 1994, tophuntr, neogeo, neobase, neogeo, mvs_state, 0, ROT0, "SNK", "Top Hunter - Roddy & Cathy (NGM-046)", MACHINE_SUPPORTS_SAVE ) -GAME( 1994, tophuntrh, tophuntr, neobase, neogeo, mvs_state, 0, ROT0, "SNK", "Top Hunter - Roddy & Cathy (NGH-046)", MACHINE_SUPPORTS_SAVE ) -GAME( 1992, fatfury2, neogeo, fatfur2, neogeo, mvs_state, 0, ROT0, "SNK", "Fatal Fury 2 / Garou Densetsu 2 - Arata-naru Tatakai (NGM-047 ~ NGH-047)", MACHINE_SUPPORTS_SAVE ) -GAME( 1992, ssideki, neogeo, fatfur2, neogeo, mvs_state, 0, ROT0, "SNK", "Super Sidekicks / Tokuten Ou", MACHINE_SUPPORTS_SAVE ) -GAME( 1994, kof94, neogeo, neobase, neogeo, mvs_state, 0, ROT0, "SNK", "The King of Fighters '94 (NGM-055 ~ NGH-055)", MACHINE_SUPPORTS_SAVE ) -GAME( 1994, aof2, neogeo, neobase, neogeo, mvs_state, 0, ROT0, "SNK", "Art of Fighting 2 / Ryuuko no Ken 2 (NGM-056)", MACHINE_SUPPORTS_SAVE ) -GAME( 1994, aof2a, aof2, neobase, neogeo, mvs_state, 0, ROT0, "SNK", "Art of Fighting 2 / Ryuuko no Ken 2 (NGH-056)", MACHINE_SUPPORTS_SAVE ) -GAME( 1993, fatfursp, neogeo, neobase, neogeo, mvs_state, 0, ROT0, "SNK", "Fatal Fury Special / Garou Densetsu Special (NGM-058 ~ NGH-058, set 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1993, fatfurspa, fatfursp, neobase, neogeo, mvs_state, 0, ROT0, "SNK", "Fatal Fury Special / Garou Densetsu Special (NGM-058 ~ NGH-058, set 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 1995, savagere, neogeo, neobase, neogeo, mvs_state, 0, ROT0, "SNK", "Savage Reign / Fu'un Mokushiroku - Kakutou Sousei", MACHINE_SUPPORTS_SAVE ) -GAME( 1994, ssideki2, neogeo, neobase, neogeo, mvs_state, 0, ROT0, "SNK", "Super Sidekicks 2 - The World Championship / Tokuten Ou 2 - Real Fight Football (NGM-061 ~ NGH-061)", MACHINE_SUPPORTS_SAVE ) -GAME( 1994, samsho2, neogeo, neobase, neogeo, mvs_state, 0, ROT0, "SNK", "Samurai Shodown II / Shin Samurai Spirits - Haohmaru Jigokuhen (NGM-063 ~ NGH-063)", MACHINE_SUPPORTS_SAVE ) -GAME( 1994, samsho2k, samsho2, neobase, neogeo, mvs_state, 0, ROT0, "SNK", "Saulabi Spirits / Jin Saulabi Tu Hon (Korean release of Samurai Shodown II, set 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1994, samsho2ka, samsho2, neobase, neogeo, mvs_state, 0, ROT0, "SNK", "Saulabi Spirits / Jin Saulabi Tu Hon (Korean release of Samurai Shodown II, set 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 1995, fatfury3, neogeo, neobase, neogeo, mvs_state, 0, ROT0, "SNK", "Fatal Fury 3 - Road to the Final Victory / Garou Densetsu 3 - Haruka-naru Tatakai (NGM-069 ~ NGH-069)", MACHINE_SUPPORTS_SAVE ) -GAME( 1995, ssideki3, neogeo, neobase, neogeo, mvs_state, 0, ROT0, "SNK", "Super Sidekicks 3 - The Next Glory / Tokuten Ou 3 - Eikou e no Michi", MACHINE_SUPPORTS_SAVE ) -GAME( 1995, kof95, neogeo, neobase, neogeo, mvs_state, 0, ROT0, "SNK", "The King of Fighters '95 (NGM-084)", MACHINE_SUPPORTS_SAVE ) -GAME( 1995, kof95a, kof95, neobase, neogeo, mvs_state, 0, ROT0, "SNK", "The King of Fighters '95 (NGM-084, alt board)", MACHINE_SUPPORTS_SAVE ) -GAME( 1995, kof95h, kof95, neobase, neogeo, mvs_state, 0, ROT0, "SNK", "The King of Fighters '95 (NGH-084)", MACHINE_SUPPORTS_SAVE ) -GAME( 1995, samsho3, neogeo, neobase, neogeo, mvs_state, 0, ROT0, "SNK", "Samurai Shodown III / Samurai Spirits - Zankurou Musouken (NGM-087)", MACHINE_SUPPORTS_SAVE ) -GAME( 1995, samsho3h, samsho3, neobase, neogeo, mvs_state, 0, ROT0, "SNK", "Samurai Shodown III / Samurai Spirits - Zankurou Musouken (NGH-087)", MACHINE_SUPPORTS_SAVE ) -GAME( 1995, fswords, samsho3, neobase, neogeo, mvs_state, 0, ROT0, "SNK", "Fighters Swords (Korean release of Samurai Shodown III)", MACHINE_SUPPORTS_SAVE ) -GAME( 1995, rbff1, neogeo, neobase, neogeo, mvs_state, 0, ROT0, "SNK", "Real Bout Fatal Fury / Real Bout Garou Densetsu (NGM-095 ~ NGH-095)", MACHINE_SUPPORTS_SAVE ) -GAME( 1995, rbff1a, rbff1, neobase, neogeo, mvs_state, 0, ROT0, "SNK", "Real Bout Fatal Fury / Real Bout Garou Densetsu (bug fix revision)", MACHINE_SUPPORTS_SAVE ) -GAME( 1995, rbff1k, rbff1, neobase, neogeo, mvs_state, 0, ROT0, "SNK", "Real Bout Fatal Fury / Real Bout Garou Densetsu (Korean release)", MACHINE_SUPPORTS_SAVE ) -GAME( 1996, aof3, neogeo, neobase, neogeo, mvs_state, 0, ROT0, "SNK", "Art of Fighting 3 - The Path of the Warrior / Art of Fighting - Ryuuko no Ken Gaiden", MACHINE_SUPPORTS_SAVE ) -GAME( 1996, aof3k, aof3, neobase, neogeo, mvs_state, 0, ROT0, "SNK", "Art of Fighting 3 - The Path of the Warrior (Korean release)", MACHINE_SUPPORTS_SAVE ) // no Japanese title / mode -GAME( 1996, kof96, neogeo, neobase, neogeo, mvs_state, 0, ROT0, "SNK", "The King of Fighters '96 (NGM-214)", MACHINE_SUPPORTS_SAVE ) -GAME( 1996, kof96h, kof96, neobase, neogeo, mvs_state, 0, ROT0, "SNK", "The King of Fighters '96 (NGH-214)", MACHINE_SUPPORTS_SAVE ) -GAME( 1996, ssideki4, neogeo, neobase, neogeo, mvs_state, 0, ROT0, "SNK", "The Ultimate 11 - The SNK Football Championship / Tokuten Ou - Honoo no Libero", MACHINE_SUPPORTS_SAVE ) -GAME( 1996, kizuna, neogeo, neobase, neogeo, mvs_state, 0, ROT0, "SNK", "Kizuna Encounter - Super Tag Battle / Fu'un Super Tag Battle", MACHINE_SUPPORTS_SAVE ) -GAME( 1996, kizuna4p, kizuna, kizuna4p, kizuna4p, mvs_state, 0, ROT0, "SNK", "Kizuna Encounter - Super Tag Battle 4 Way Battle Version / Fu'un Super Tag Battle Special Version", MACHINE_SUPPORTS_SAVE ) -GAME( 1996, samsho4, neogeo, neobase, neogeo, mvs_state, 0, ROT0, "SNK", "Samurai Shodown IV - Amakusa's Revenge / Samurai Spirits - Amakusa Kourin (NGM-222 ~ NGH-222)", MACHINE_SUPPORTS_SAVE ) -GAME( 1996, samsho4k, samsho4, neobase, neogeo, mvs_state, 0, ROT0, "SNK", "Pae Wang Jeon Seol / Legend of a Warrior (Korean censored Samurai Shodown IV)", MACHINE_SUPPORTS_SAVE ) -GAME( 1996, rbffspec, neogeo, neobase, neogeo, mvs_state, 0, ROT0, "SNK", "Real Bout Fatal Fury Special / Real Bout Garou Densetsu Special", MACHINE_SUPPORTS_SAVE ) -GAME( 1996, rbffspeck, rbffspec, neobase, neogeo, mvs_state, 0, ROT0, "SNK", "Real Bout Fatal Fury Special / Real Bout Garou Densetsu Special (Korean release)", MACHINE_SUPPORTS_SAVE ) -GAME( 1997, kof97, neogeo, neobase, neogeo, mvs_state, 0, ROT0, "SNK", "The King of Fighters '97 (NGM-2320)", MACHINE_SUPPORTS_SAVE ) -GAME( 1997, kof97h, kof97, neobase, neogeo, mvs_state, 0, ROT0, "SNK", "The King of Fighters '97 (NGH-2320)", MACHINE_SUPPORTS_SAVE ) -GAME( 1997, kof97k, kof97, neobase, neogeo, mvs_state, 0, ROT0, "SNK", "The King of Fighters '97 (Korean release)", MACHINE_SUPPORTS_SAVE ) -GAME( 1997, kof97pls, kof97, neobase, neogeo, mvs_state, 0, ROT0, "bootleg", "The King of Fighters '97 Plus (bootleg)", MACHINE_SUPPORTS_SAVE ) -GAME( 1997, kof97oro, kof97, kof97oro, neogeo, mvs_state, 0, ROT0, "bootleg", "The King of Fighters '97 Chongchu Jianghu Plus 2003 (bootleg)", MACHINE_SUPPORTS_SAVE ) -GAME( 1997, kog, kof97, kog, neogeo, mvs_state, 0, ROT0, "bootleg", "King of Gladiator (The King of Fighters '97 bootleg)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) // protected bootleg -GAME( 1997, lastblad, neogeo, neobase, neogeo, mvs_state, 0, ROT0, "SNK", "The Last Blade / Bakumatsu Roman - Gekka no Kenshi (NGM-2340)", MACHINE_SUPPORTS_SAVE ) -GAME( 1997, lastbladh, lastblad, neobase, neogeo, mvs_state, 0, ROT0, "SNK", "The Last Blade / Bakumatsu Roman - Gekka no Kenshi (NGH-2340)", MACHINE_SUPPORTS_SAVE ) -GAME( 1997, lastsold, lastblad, neobase, neogeo, mvs_state, 0, ROT0, "SNK", "The Last Soldier (Korean release of The Last Blade)", MACHINE_SUPPORTS_SAVE ) -GAME( 1997, irrmaze, neogeo, irrmaze, neogeo, mvs_state, 0, ROT0, "SNK / Saurus", "The Irritating Maze / Ultra Denryu Iraira Bou", MACHINE_SUPPORTS_SAVE ) -GAME( 1998, rbff2, neogeo, neobase, neogeo, mvs_state, 0, ROT0, "SNK", "Real Bout Fatal Fury 2 - The Newcomers / Real Bout Garou Densetsu 2 - The Newcomers (NGM-2400)", MACHINE_SUPPORTS_SAVE ) -GAME( 1998, rbff2h, rbff2, neobase, neogeo, mvs_state, 0, ROT0, "SNK", "Real Bout Fatal Fury 2 - The Newcomers / Real Bout Garou Densetsu 2 - The Newcomers (NGH-2400)", MACHINE_SUPPORTS_SAVE ) -GAME( 1998, rbff2k, rbff2, neobase, neogeo, mvs_state, 0, ROT0, "SNK", "Real Bout Fatal Fury 2 - The Newcomers (Korean release)", MACHINE_SUPPORTS_SAVE ) // no Japanese title / mode -GAME( 1998, mslug2, neogeo, neobase, neogeo, mvs_state, 0, ROT0, "SNK", "Metal Slug 2 - Super Vehicle-001/II (NGM-2410 ~ NGH-2410)", MACHINE_SUPPORTS_SAVE ) -GAME( 2015, mslug2t, mslug2, neobase, neogeo, mvs_state, 0, ROT0, "hack (trap15)", "Metal Slug 2 Turbo (NGM-9410) (hack)", MACHINE_SUPPORTS_SAVE ) -GAME( 1998, kof98, neogeo, kof98, neogeo, mvs_state, 0, ROT0, "SNK", "The King of Fighters '98 - The Slugfest / King of Fighters '98 - Dream Match Never Ends (NGM-2420)", MACHINE_SUPPORTS_SAVE ) -GAME( 1998, kof98a, kof98, kof98, neogeo, mvs_state, 0, ROT0, "SNK", "The King of Fighters '98 - The Slugfest / King of Fighters '98 - Dream Match Never Ends (NGM-2420, alt board)", MACHINE_SUPPORTS_SAVE ) -GAME( 1998, kof98k, kof98, kof98, neogeo, mvs_state, 0, ROT0, "SNK", "The King of Fighters '98 - The Slugfest / King of Fighters '98 - Dream Match Never Ends (Korean board, set 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1998, kof98ka, kof98, kof98, neogeo, mvs_state, 0, ROT0, "SNK", "The King of Fighters '98 - The Slugfest / King of Fighters '98 - Dream Match Never Ends (Korean board, set 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 1998, kof98h, kof98, neobase, neogeo, mvs_state, 0, ROT0, "SNK", "The King of Fighters '98 - The Slugfest / King of Fighters '98 - Dream Match Never Ends (NGH-2420)", MACHINE_SUPPORTS_SAVE ) -GAME( 1998, lastbld2, neogeo, neobase, neogeo, mvs_state, 0, ROT0, "SNK", "The Last Blade 2 / Bakumatsu Roman - Dai Ni Maku Gekka no Kenshi (NGM-2430 ~ NGH-2430)", MACHINE_SUPPORTS_SAVE ) -GAME( 1998, neocup98, neogeo, neobase, neogeo, mvs_state, 0, ROT0, "SNK", "Neo-Geo Cup '98 - The Road to the Victory", MACHINE_SUPPORTS_SAVE ) -GAME( 1999, mslugx, neogeo, mslugx, neogeo, mvs_state, 0, ROT0, "SNK", "Metal Slug X - Super Vehicle-001 (NGM-2500 ~ NGH-2500)", MACHINE_SUPPORTS_SAVE ) -GAME( 1999, kof99, neogeo, kof99, neogeo, mvs_state, 0, ROT0, "SNK", "The King of Fighters '99 - Millennium Battle (NGM-2510)" , MACHINE_SUPPORTS_SAVE ) /* Encrypted Code & GFX */ -GAME( 1999, kof99h, kof99, kof99, neogeo, mvs_state, 0, ROT0, "SNK", "The King of Fighters '99 - Millennium Battle (NGH-2510)" , MACHINE_SUPPORTS_SAVE ) /* Encrypted Code & GFX, crashes going into attract demo */ -GAME( 1999, kof99e, kof99, kof99, neogeo, mvs_state, 0, ROT0, "SNK", "The King of Fighters '99 - Millennium Battle (earlier)" , MACHINE_SUPPORTS_SAVE ) /* Encrypted Code & GFX */ -GAME( 1999, kof99k, kof99, kof99, neogeo, mvs_state, 0, ROT0, "SNK", "The King of Fighters '99 - Millennium Battle (Korean release)" , MACHINE_SUPPORTS_SAVE ) /* Encrypted Code & GFX */ -GAME( 1999, kof99ka, kof99, kof99k, neogeo, mvs_state, 0, ROT0, "SNK", "The King of Fighters '99 - Millennium Battle (Korean release, non-encrypted program)" , MACHINE_SUPPORTS_SAVE ) /* Encrypted GFX */ -GAME( 1999, kof99p, kof99, neobase, neogeo, mvs_state, 0, ROT0, "SNK", "The King of Fighters '99 - Millennium Battle (prototype)", MACHINE_SUPPORTS_SAVE ) -GAME( 1999, garou, neogeo, garou, neogeo, mvs_state, 0, ROT0, "SNK", "Garou - Mark of the Wolves (NGM-2530)" , MACHINE_SUPPORTS_SAVE ) /* Encrypted Code & GFX */ -GAME( 1999, garouh, garou, garouh, neogeo, mvs_state, 0, ROT0, "SNK", "Garou - Mark of the Wolves (NGM-2530 ~ NGH-2530)" , MACHINE_SUPPORTS_SAVE ) /* Encrypted Code & GFX */ -GAME( 1999, garoup, garou, neobase, neogeo, mvs_state, 0, ROT0, "SNK", "Garou - Mark of the Wolves (prototype)", MACHINE_SUPPORTS_SAVE ) -GAME( 1999, garoubl, garou, garoubl, neogeo, mvs_state, 0, ROT0, "bootleg", "Garou - Mark of the Wolves (bootleg)", MACHINE_SUPPORTS_SAVE ) /* Bootleg of garoup */ -GAME( 2000, mslug3, neogeo, mslug3, neogeo, mvs_state, 0, ROT0, "SNK", "Metal Slug 3 (NGM-2560)" , MACHINE_SUPPORTS_SAVE ) /* Encrypted Code & GFX */ -GAME( 2000, mslug3h, mslug3, mslug3h, neogeo, mvs_state, 0, ROT0, "SNK", "Metal Slug 3 (NGH-2560)" , MACHINE_SUPPORTS_SAVE ) /* Encrypted GFX */ -GAME( 2000, mslug3b6, mslug3, mslug3b6, neogeo, mvs_state, 0, ROT0, "bootleg", "Metal Slug 6 (Metal Slug 3 bootleg)", MACHINE_SUPPORTS_SAVE ) /* real Metal Slug 6 is an Atomiswave HW game, see naomi.c ;-) */ -GAME( 2000, kof2000, neogeo, kof2000, neogeo, mvs_state, 0, ROT0, "SNK", "The King of Fighters 2000 (NGM-2570 ~ NGH-2570)" , MACHINE_SUPPORTS_SAVE ) /* Encrypted Code & GFX */ -GAME( 2000, kof2000n, kof2000, kof2000n, neogeo, mvs_state, 0, ROT0, "SNK", "The King of Fighters 2000 (not encrypted)" , MACHINE_SUPPORTS_SAVE ) /* Encrypted GFX */ -GAME( 2001, zupapa, neogeo, zupapa, neogeo, mvs_state, 0, ROT0, "SNK", "Zupapa!" , MACHINE_SUPPORTS_SAVE ) /* Encrypted GFX */ -GAME( 2001, sengoku3, neogeo, sengoku3, neogeo, mvs_state, 0, ROT0, "Noise Factory / SNK", "Sengoku 3 / Sengoku Densho 2001" , MACHINE_SUPPORTS_SAVE ) /* Encrypted GFX */ -GAME( 2001, kof2001, neogeo, kof2001, neogeo, mvs_state, 0, ROT0, "Eolith / SNK", "The King of Fighters 2001 (NGM-262?)" , MACHINE_SUPPORTS_SAVE ) /* Encrypted GFX */ -GAME( 2001, kof2001h, kof2001, kof2001, neogeo, mvs_state, 0, ROT0, "Eolith / SNK", "The King of Fighters 2001 (NGH-2621)" , MACHINE_SUPPORTS_SAVE ) /* Encrypted GFX */ -GAME( 2003, cthd2003, kof2001, cthd2k3, neogeo, mvs_state, 0, ROT0, "bootleg", "Crouching Tiger Hidden Dragon 2003 (The King of Fighters 2001 bootleg)", MACHINE_SUPPORTS_SAVE ) /* Protected Hack / Bootleg of kof2001 */ -GAME( 2003, ct2k3sp, kof2001, ct2k3sp, neogeo, mvs_state, 0, ROT0, "bootleg", "Crouching Tiger Hidden Dragon 2003 Super Plus (The King of Fighters 2001 bootleg)", MACHINE_SUPPORTS_SAVE ) /* Protected Hack / Bootleg of kof2001 */ -GAME( 2003, ct2k3sa, kof2001, ct2k3sa, neogeo, mvs_state, 0, ROT0, "bootleg", "Crouching Tiger Hidden Dragon 2003 Super Plus alternate (The King of Fighters 2001 bootleg)", MACHINE_SUPPORTS_SAVE ) /* Hack / Bootleg of kof2001 */ -GAME( 2002, kof2002, neogeo, kof2002, neogeo, mvs_state, 0, ROT0, "Eolith / Playmore", "The King of Fighters 2002 (NGM-2650 ~ NGH-2650)" , MACHINE_SUPPORTS_SAVE ) /* Encrypted GFX */ -GAME( 2002, kof2002b, kof2002, kof2002b, neogeo, mvs_state, 0, ROT0, "bootleg", "The King of Fighters 2002 (bootleg)", MACHINE_SUPPORTS_SAVE ) -GAME( 2002, kf2k2pls, kof2002, kf2k2pls, neogeo, mvs_state, 0, ROT0, "bootleg", "The King of Fighters 2002 Plus (bootleg set 1)" , MACHINE_SUPPORTS_SAVE ) /* Encrypted GFX */ -GAME( 2002, kf2k2pla, kof2002, kf2k2pls, neogeo, mvs_state, 0, ROT0, "bootleg", "The King of Fighters 2002 Plus (bootleg set 2)" , MACHINE_SUPPORTS_SAVE ) /* Encrypted GFX */ -GAME( 2002, kf2k2mp, kof2002, kf2k2mp, neogeo, mvs_state, 0, ROT0, "bootleg", "The King of Fighters 2002 Magic Plus (bootleg)" , MACHINE_SUPPORTS_SAVE ) /* Encrypted GFX */ -GAME( 2002, kf2k2mp2, kof2002, kf2k2mp2, neogeo, mvs_state, 0, ROT0, "bootleg", "The King of Fighters 2002 Magic Plus II (bootleg)" , MACHINE_SUPPORTS_SAVE ) /* Encrypted GFX */ -GAME( 2002, kof10th, kof2002, kof10th, neogeo, mvs_state, 0, ROT0, "bootleg", "The King of Fighters 10th Anniversary (The King of Fighters 2002 bootleg)", MACHINE_SUPPORTS_SAVE ) // fake SNK copyright -GAME( 2005, kf10thep, kof2002, kf10thep, neogeo, mvs_state, 0, ROT0, "bootleg", "The King of Fighters 10th Anniversary Extra Plus (The King of Fighters 2002 bootleg)", MACHINE_SUPPORTS_SAVE ) // fake SNK copyright -GAME( 2004, kf2k5uni, kof2002, kf2k5uni, neogeo, mvs_state, 0, ROT0, "bootleg", "The King of Fighters 10th Anniversary 2005 Unique (The King of Fighters 2002 bootleg)", MACHINE_SUPPORTS_SAVE ) // fake SNK copyright -GAME( 2004, kof2k4se, kof2002, kof2k4se, neogeo, mvs_state, 0, ROT0, "bootleg", "The King of Fighters Special Edition 2004 (The King of Fighters 2002 bootleg)", MACHINE_SUPPORTS_SAVE ) /* Hack / Bootleg of kof2002 */ -GAME( 2003, mslug5, neogeo, mslug5, neogeo, mvs_state, 0, ROT0, "SNK Playmore", "Metal Slug 5 (NGM-2680)", MACHINE_SUPPORTS_SAVE ) -GAME( 2003, mslug5h, mslug5, mslug5, neogeo, mvs_state, 0, ROT0, "SNK Playmore", "Metal Slug 5 (NGH-2680)", MACHINE_SUPPORTS_SAVE ) /* Also found in later MVS carts */ -GAME( 2003, ms5plus, mslug5, ms5plus, neogeo, mvs_state, 0, ROT0, "bootleg", "Metal Slug 5 Plus (bootleg)", MACHINE_SUPPORTS_SAVE ) -GAME( 2003, svc, neogeo, svc, neogeo, mvs_state, 0, ROT0, "SNK Playmore", "SNK vs. Capcom - SVC Chaos (NGM-2690 ~ NGH-2690)", MACHINE_SUPPORTS_SAVE ) -GAME( 2003, svcboot, svc, svcboot, neogeo, mvs_state, 0, ROT0, "bootleg", "SNK vs. Capcom - SVC Chaos (bootleg)", MACHINE_SUPPORTS_SAVE ) -GAME( 2003, svcplus, svc, svcplus, neogeo, mvs_state, 0, ROT0, "bootleg", "SNK vs. Capcom - SVC Chaos Plus (bootleg set 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 2003, svcplusa, svc, svcplusa, neogeo, mvs_state, 0, ROT0, "bootleg", "SNK vs. Capcom - SVC Chaos Plus (bootleg set 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 2003, svcsplus, svc, svcsplus, neogeo, mvs_state, 0, ROT0, "bootleg", "SNK vs. Capcom - SVC Chaos Super Plus (bootleg)", MACHINE_SUPPORTS_SAVE ) -GAME( 2003, samsho5, neogeo, samsho5, neogeo, mvs_state, 0, ROT0, "Yuki Enterprise / SNK Playmore", "Samurai Shodown V / Samurai Spirits Zero (NGM-2700, set 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 2003, samsho5a, samsho5, samsho5, neogeo, mvs_state, 0, ROT0, "Yuki Enterprise / SNK Playmore", "Samurai Shodown V / Samurai Spirits Zero (NGM-2700, set 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 2003, samsho5h, samsho5, samsho5, neogeo, mvs_state, 0, ROT0, "Yuki Enterprise / SNK Playmore", "Samurai Shodown V / Samurai Spirits Zero (NGH-2700)", MACHINE_SUPPORTS_SAVE ) -GAME( 2003, samsho5b, samsho5, samsho5b, neogeo, mvs_state, 0, ROT0, "bootleg", "Samurai Shodown V / Samurai Spirits Zero (bootleg)", MACHINE_SUPPORTS_SAVE ) // different program scrambling -GAME( 2003, kof2003, neogeo, kof2003, neogeo, mvs_state, 0, ROT0, "SNK Playmore", "The King of Fighters 2003 (NGM-2710)", MACHINE_SUPPORTS_SAVE ) -GAME( 2003, kof2003h, kof2003, kof2003h, neogeo, mvs_state, 0, ROT0, "SNK Playmore", "The King of Fighters 2003 (NGH-2710)", MACHINE_SUPPORTS_SAVE ) -GAME( 2003, kf2k3bl, kof2003, kf2k3bl, neogeo, mvs_state, 0, ROT0, "bootleg", "The King of Fighters 2003 (bootleg set 1)", MACHINE_SUPPORTS_SAVE ) // zooming is wrong because its a bootleg of the pcb version on a cart (unless it was a bootleg pcb with the new bios?) -GAME( 2003, kf2k3bla, kof2003, kf2k3pl, neogeo, mvs_state, 0, ROT0, "bootleg", "The King of Fighters 2003 (bootleg set 2)", MACHINE_SUPPORTS_SAVE ) // zooming is wrong because its a bootleg of the pcb version on a cart -GAME( 2003, kf2k3pl, kof2003, kf2k3pl, neogeo, mvs_state, 0, ROT0, "bootleg", "The King of Fighters 2004 Plus / Hero (The King of Fighters 2003 bootleg)", MACHINE_SUPPORTS_SAVE ) // zooming is wrong because its a bootleg of the pcb version on a cart -GAME( 2003, kf2k3upl, kof2003, kf2k3upl, neogeo, mvs_state, 0, ROT0, "bootleg", "The King of Fighters 2004 Ultra Plus (The King of Fighters 2003 bootleg)", MACHINE_SUPPORTS_SAVE ) // zooming is wrong because its a bootleg of the pcb version on a cart -GAME( 2004, samsh5sp, neogeo, samsh5sp, neogeo, mvs_state, 0, ROT0, "Yuki Enterprise / SNK Playmore", "Samurai Shodown V Special / Samurai Spirits Zero Special (NGM-2720)", MACHINE_SUPPORTS_SAVE ) -GAME( 2004, samsh5sph, samsh5sp, samsh5sp, neogeo, mvs_state, 0, ROT0, "Yuki Enterprise / SNK Playmore", "Samurai Shodown V Special / Samurai Spirits Zero Special (NGH-2720, 2nd release, less censored)", MACHINE_SUPPORTS_SAVE ) -GAME( 2004, samsh5spho, samsh5sp, samsh5sp, neogeo, mvs_state, 0, ROT0, "Yuki Enterprise / SNK Playmore", "Samurai Shodown V Special / Samurai Spirits Zero Special (NGH-2720, 1st release, censored)", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, nam1975, neogeo, neobase, neogeo, mvs_led_state, 0, ROT0, "SNK", "NAM-1975 (NGM-001 ~ NGH-001)", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, bstars, neogeo, neobase, neogeo, mvs_led_state, 0, ROT0, "SNK", "Baseball Stars Professional (NGM-002)", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, bstarsh, bstars, neobase, neogeo, mvs_led_state, 0, ROT0, "SNK", "Baseball Stars Professional (NGH-002)", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, tpgolf, neogeo, neobase, neogeo, mvs_led_state, 0, ROT0, "SNK", "Top Player's Golf (NGM-003 ~ NGH-003)", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, mahretsu, neogeo, neogeo_mj, neogeo_mj, mvs_led_state, 0, ROT0, "SNK", "Mahjong Kyo Retsuden (NGM-004 ~ NGH-004)", MACHINE_SUPPORTS_SAVE ) // does not support mahjong panel in MVS mode <- it actually works fine??? +GAME( 1990, ridhero, neogeo, neobase, neogeo, mvs_led_state, 0, ROT0, "SNK", "Riding Hero (NGM-006 ~ NGH-006)", MACHINE_NODEVICE_LAN | MACHINE_SUPPORTS_SAVE ) +GAME( 1990, ridheroh, ridhero, neobase, neogeo, mvs_led_state, 0, ROT0, "SNK", "Riding Hero (set 2)", MACHINE_NODEVICE_LAN | MACHINE_SUPPORTS_SAVE ) +GAME( 1991, alpham2, neogeo, neobase, neogeo, mvs_led_state, 0, ROT0, "SNK", "Alpha Mission II / ASO II - Last Guardian (NGM-007 ~ NGH-007)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, alpham2p, alpham2, neobase, neogeo, mvs_led_state, 0, ROT0, "SNK", "Alpha Mission II / ASO II - Last Guardian (prototype)", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, cyberlip, neogeo, neobase, neogeo, mvs_led_state, 0, ROT0, "SNK", "Cyber-Lip (NGM-010)", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, superspy, neogeo, neobase, neogeo, mvs_led_state, 0, ROT0, "SNK", "The Super Spy (NGM-011 ~ NGH-011)", MACHINE_SUPPORTS_SAVE ) +GAME( 1992, mutnat, neogeo, neobase, neogeo, mvs_led_state, 0, ROT0, "SNK", "Mutation Nation (NGM-014 ~ NGH-014)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, kotm, neogeo, neobase, neogeo, mvs_led_state, 0, ROT0, "SNK", "King of the Monsters (set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, kotmh, kotm, neobase, neogeo, mvs_led_state, 0, ROT0, "SNK", "King of the Monsters (set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, sengoku, neogeo, neobase, neogeo, mvs_led_state, 0, ROT0, "SNK", "Sengoku / Sengoku Denshou (NGM-017 ~ NGH-017)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, sengokuh, sengoku, neobase, neogeo, mvs_led_state, 0, ROT0, "SNK", "Sengoku / Sengoku Denshou (NGH-017, US)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, burningf, neogeo, neobase, neogeo, mvs_led_state, 0, ROT0, "SNK", "Burning Fight (NGM-018 ~ NGH-018)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, burningfh, burningf, neobase, neogeo, mvs_led_state, 0, ROT0, "SNK", "Burning Fight (NGH-018, US)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, burningfpa, burningf, neobase, neogeo, mvs_led_state, 0, ROT0, "SNK", "Burning Fight (prototype, ver 23.3, 910326)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, burningfp, burningf, neobase, neogeo, mvs_led_state, 0, ROT0, "SNK", "Burning Fight (prototype, older)", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, lbowling, neogeo, neobase, neogeo, mvs_led_state, 0, ROT0, "SNK", "League Bowling (NGM-019 ~ NGH-019)", MACHINE_NODEVICE_LAN | MACHINE_SUPPORTS_SAVE ) +GAME( 1991, gpilots, neogeo, neobase, neogeo, mvs_led_state, 0, ROT0, "SNK", "Ghost Pilots (NGM-020 ~ NGH-020)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, gpilotsh, gpilots, neobase, neogeo, mvs_led_state, 0, ROT0, "SNK", "Ghost Pilots (NGH-020, US)", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, joyjoy, neogeo, neobase, neogeo, mvs_led_state, 0, ROT0, "SNK", "Puzzled / Joy Joy Kid (NGM-021 ~ NGH-021)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, quizdais, neogeo, neobase, neogeo, mvs_led_state, 0, ROT0, "SNK", "Quiz Daisousa Sen - The Last Count Down (NGM-023 ~ NGH-023)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, quizdaisk, quizdais, neobase, neogeo, mvs_led_state, 0, ROT0, "SNK", "Quiz Daisousa Sen - The Last Count Down (Korean release)", MACHINE_SUPPORTS_SAVE ) +GAME( 1992, lresort, neogeo, neobase, neogeo, mvs_led_state, 0, ROT0, "SNK", "Last Resort", MACHINE_SUPPORTS_SAVE ) +GAME( 1992, lresortp, lresort, neobase, neogeo, mvs_led_state, 0, ROT0, "SNK", "Last Resort (prototype)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, eightman, neogeo, neobase, neogeo, mvs_led_state, 0, ROT0, "SNK / Pallas", "Eight Man (NGM-025 ~ NGH-025)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, legendos, neogeo, neobase, neogeo, mvs_led_state, 0, ROT0, "SNK", "Legend of Success Joe / Ashita no Joe Densetsu", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, 2020bb, neogeo, neobase, neogeo, mvs_led_state, 0, ROT0, "SNK / Pallas", "2020 Super Baseball (set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, 2020bba, 2020bb, neobase, neogeo, mvs_led_state, 0, ROT0, "SNK / Pallas", "2020 Super Baseball (set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, 2020bbh, 2020bb, neobase, neogeo, mvs_led_state, 0, ROT0, "SNK / Pallas", "2020 Super Baseball (set 3)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, socbrawl, neogeo, neobase, neogeo, mvs_led_state, 0, ROT0, "SNK", "Soccer Brawl (NGM-031)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, socbrawlh, socbrawl, neobase, neogeo, mvs_led_state, 0, ROT0, "SNK", "Soccer Brawl (NGH-031)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, fatfury1, neogeo, neobase, neogeo, mvs_led_state, 0, ROT0, "SNK", "Fatal Fury - King of Fighters / Garou Densetsu - Shukumei no Tatakai (NGM-033 ~ NGH-033)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, roboarmy, neogeo, neobase, neogeo, mvs_led_state, 0, ROT0, "SNK", "Robo Army", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, roboarma, roboarmy, neobase, neogeo, mvs_led_state, 0, ROT0, "SNK", "Robo Army (NGM-032 ~ NGH-032)", MACHINE_SUPPORTS_SAVE ) +GAME( 1992, fbfrenzy, neogeo, neobase, neogeo, mvs_led_state, 0, ROT0, "SNK", "Football Frenzy (NGM-034 ~ NGH-034)", MACHINE_SUPPORTS_SAVE ) +GAME( 1992, kotm2, neogeo, neobase, neogeo, mvs_led_state, 0, ROT0, "SNK", "King of the Monsters 2 - The Next Thing (NGM-039 ~ NGH-039)", MACHINE_SUPPORTS_SAVE ) +GAME( 1992, kotm2a, kotm2, neobase, neogeo, mvs_led_state, 0, ROT0, "SNK", "King of the Monsters 2 - The Next Thing (older)", MACHINE_SUPPORTS_SAVE ) +GAME( 1992, kotm2p, kotm2, neobase, neogeo, mvs_led_state, 0, ROT0, "SNK", "King of the Monsters 2 - The Next Thing (prototype)", MACHINE_SUPPORTS_SAVE ) +GAME( 1993, sengoku2, neogeo, neobase, neogeo, mvs_led_state, 0, ROT0, "SNK", "Sengoku 2 / Sengoku Denshou 2", MACHINE_SUPPORTS_SAVE ) +GAME( 1992, bstars2, neogeo, neobase, neogeo, mvs_led_state, 0, ROT0, "SNK", "Baseball Stars 2", MACHINE_SUPPORTS_SAVE ) +GAME( 1992, quizdai2, neogeo, neobase, neogeo, mvs_led_state, 0, ROT0, "SNK", "Quiz Meitantei Neo & Geo - Quiz Daisousa Sen part 2 (NGM-042 ~ NGH-042)", MACHINE_SUPPORTS_SAVE ) +GAME( 1993, 3countb, neogeo, neobase, neogeo, mvs_led_state, 0, ROT0, "SNK", "3 Count Bout / Fire Suplex (NGM-043 ~ NGH-043)", MACHINE_SUPPORTS_SAVE ) +GAME( 1992, aof, neogeo, neobase, neogeo, mvs_led_state, 0, ROT0, "SNK", "Art of Fighting / Ryuuko no Ken (NGM-044 ~ NGH-044)", MACHINE_SUPPORTS_SAVE ) +GAME( 1993, samsho, neogeo, neobase, neogeo, mvs_led_state, 0, ROT0, "SNK", "Samurai Shodown / Samurai Spirits (NGM-045)", MACHINE_SUPPORTS_SAVE ) +GAME( 1993, samshoh, samsho, neobase, neogeo, mvs_led_state, 0, ROT0, "SNK", "Samurai Shodown / Samurai Spirits (NGH-045)", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, tophuntr, neogeo, neobase, neogeo, mvs_led_state, 0, ROT0, "SNK", "Top Hunter - Roddy & Cathy (NGM-046)", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, tophuntrh, tophuntr, neobase, neogeo, mvs_led_state, 0, ROT0, "SNK", "Top Hunter - Roddy & Cathy (NGH-046)", MACHINE_SUPPORTS_SAVE ) +GAME( 1992, fatfury2, neogeo, fatfur2, neogeo, mvs_led_state, 0, ROT0, "SNK", "Fatal Fury 2 / Garou Densetsu 2 - Arata-naru Tatakai (NGM-047 ~ NGH-047)", MACHINE_SUPPORTS_SAVE ) +GAME( 1992, ssideki, neogeo, fatfur2, neogeo, mvs_led_state, 0, ROT0, "SNK", "Super Sidekicks / Tokuten Ou", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, kof94, neogeo, neobase, neogeo, mvs_led_state, 0, ROT0, "SNK", "The King of Fighters '94 (NGM-055 ~ NGH-055)", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, aof2, neogeo, neobase, neogeo, mvs_led_state, 0, ROT0, "SNK", "Art of Fighting 2 / Ryuuko no Ken 2 (NGM-056)", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, aof2a, aof2, neobase, neogeo, mvs_led_state, 0, ROT0, "SNK", "Art of Fighting 2 / Ryuuko no Ken 2 (NGH-056)", MACHINE_SUPPORTS_SAVE ) +GAME( 1993, fatfursp, neogeo, neobase, neogeo, mvs_led_state, 0, ROT0, "SNK", "Fatal Fury Special / Garou Densetsu Special (NGM-058 ~ NGH-058, set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1993, fatfurspa, fatfursp, neobase, neogeo, mvs_led_state, 0, ROT0, "SNK", "Fatal Fury Special / Garou Densetsu Special (NGM-058 ~ NGH-058, set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, savagere, neogeo, neobase, neogeo, mvs_led_state, 0, ROT0, "SNK", "Savage Reign / Fu'un Mokushiroku - Kakutou Sousei", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, ssideki2, neogeo, neobase, neogeo, mvs_led_state, 0, ROT0, "SNK", "Super Sidekicks 2 - The World Championship / Tokuten Ou 2 - Real Fight Football (NGM-061 ~ NGH-061)", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, samsho2, neogeo, neobase, neogeo, mvs_led_state, 0, ROT0, "SNK", "Samurai Shodown II / Shin Samurai Spirits - Haohmaru Jigokuhen (NGM-063 ~ NGH-063)", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, samsho2k, samsho2, neobase, neogeo, mvs_led_state, 0, ROT0, "SNK", "Saulabi Spirits / Jin Saulabi Tu Hon (Korean release of Samurai Shodown II, set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, samsho2ka, samsho2, neobase, neogeo, mvs_led_state, 0, ROT0, "SNK", "Saulabi Spirits / Jin Saulabi Tu Hon (Korean release of Samurai Shodown II, set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, fatfury3, neogeo, neobase, neogeo, mvs_led_state, 0, ROT0, "SNK", "Fatal Fury 3 - Road to the Final Victory / Garou Densetsu 3 - Haruka-naru Tatakai (NGM-069 ~ NGH-069)", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, ssideki3, neogeo, neobase, neogeo, mvs_led_state, 0, ROT0, "SNK", "Super Sidekicks 3 - The Next Glory / Tokuten Ou 3 - Eikou e no Michi", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, kof95, neogeo, neobase, neogeo, mvs_led_state, 0, ROT0, "SNK", "The King of Fighters '95 (NGM-084)", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, kof95a, kof95, neobase, neogeo, mvs_led_state, 0, ROT0, "SNK", "The King of Fighters '95 (NGM-084, alt board)", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, kof95h, kof95, neobase, neogeo, mvs_led_state, 0, ROT0, "SNK", "The King of Fighters '95 (NGH-084)", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, samsho3, neogeo, neobase, neogeo, mvs_led_state, 0, ROT0, "SNK", "Samurai Shodown III / Samurai Spirits - Zankurou Musouken (NGM-087)", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, samsho3h, samsho3, neobase, neogeo, mvs_led_state, 0, ROT0, "SNK", "Samurai Shodown III / Samurai Spirits - Zankurou Musouken (NGH-087)", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, fswords, samsho3, neobase, neogeo, mvs_led_state, 0, ROT0, "SNK", "Fighters Swords (Korean release of Samurai Shodown III)", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, rbff1, neogeo, neobase, neogeo, mvs_led_state, 0, ROT0, "SNK", "Real Bout Fatal Fury / Real Bout Garou Densetsu (NGM-095 ~ NGH-095)", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, rbff1a, rbff1, neobase, neogeo, mvs_led_state, 0, ROT0, "SNK", "Real Bout Fatal Fury / Real Bout Garou Densetsu (bug fix revision)", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, rbff1k, rbff1, neobase, neogeo, mvs_led_state, 0, ROT0, "SNK", "Real Bout Fatal Fury / Real Bout Garou Densetsu (Korean release)", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, aof3, neogeo, neobase, neogeo, mvs_led_state, 0, ROT0, "SNK", "Art of Fighting 3 - The Path of the Warrior / Art of Fighting - Ryuuko no Ken Gaiden", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, aof3k, aof3, neobase, neogeo, mvs_led_state, 0, ROT0, "SNK", "Art of Fighting 3 - The Path of the Warrior (Korean release)", MACHINE_SUPPORTS_SAVE ) // no Japanese title / mode +GAME( 1996, kof96, neogeo, neobase, neogeo, mvs_led_state, 0, ROT0, "SNK", "The King of Fighters '96 (NGM-214)", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, kof96h, kof96, neobase, neogeo, mvs_led_state, 0, ROT0, "SNK", "The King of Fighters '96 (NGH-214)", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, ssideki4, neogeo, neobase, neogeo, mvs_led_state, 0, ROT0, "SNK", "The Ultimate 11 - The SNK Football Championship / Tokuten Ou - Honoo no Libero", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, kizuna, neogeo, neobase, neogeo, mvs_led_state, 0, ROT0, "SNK", "Kizuna Encounter - Super Tag Battle / Fu'un Super Tag Battle", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, kizuna4p, kizuna, kizuna4p, kizuna4p, mvs_led_state, 0, ROT0, "SNK", "Kizuna Encounter - Super Tag Battle 4 Way Battle Version / Fu'un Super Tag Battle Special Version", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, samsho4, neogeo, neobase, neogeo, mvs_led_state, 0, ROT0, "SNK", "Samurai Shodown IV - Amakusa's Revenge / Samurai Spirits - Amakusa Kourin (NGM-222 ~ NGH-222)", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, samsho4k, samsho4, neobase, neogeo, mvs_led_state, 0, ROT0, "SNK", "Pae Wang Jeon Seol / Legend of a Warrior (Korean censored Samurai Shodown IV)", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, rbffspec, neogeo, neobase, neogeo, mvs_led_state, 0, ROT0, "SNK", "Real Bout Fatal Fury Special / Real Bout Garou Densetsu Special", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, rbffspeck, rbffspec, neobase, neogeo, mvs_led_state, 0, ROT0, "SNK", "Real Bout Fatal Fury Special / Real Bout Garou Densetsu Special (Korean release)", MACHINE_SUPPORTS_SAVE ) +GAME( 1997, kof97, neogeo, neobase, neogeo, mvs_led_state, 0, ROT0, "SNK", "The King of Fighters '97 (NGM-2320)", MACHINE_SUPPORTS_SAVE ) +GAME( 1997, kof97h, kof97, neobase, neogeo, mvs_led_state, 0, ROT0, "SNK", "The King of Fighters '97 (NGH-2320)", MACHINE_SUPPORTS_SAVE ) +GAME( 1997, kof97k, kof97, neobase, neogeo, mvs_led_state, 0, ROT0, "SNK", "The King of Fighters '97 (Korean release)", MACHINE_SUPPORTS_SAVE ) +GAME( 1997, kof97pls, kof97, neobase, neogeo, mvs_led_state, 0, ROT0, "bootleg", "The King of Fighters '97 Plus (bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 1997, kof97oro, kof97, kof97oro, neogeo, mvs_led_state, 0, ROT0, "bootleg", "The King of Fighters '97 Chongchu Jianghu Plus 2003 (bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 1997, kog, kof97, kog, neogeo, mvs_led_state, 0, ROT0, "bootleg", "King of Gladiator (The King of Fighters '97 bootleg)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) // protected bootleg +GAME( 1997, lastblad, neogeo, neobase, neogeo, mvs_led_state, 0, ROT0, "SNK", "The Last Blade / Bakumatsu Roman - Gekka no Kenshi (NGM-2340)", MACHINE_SUPPORTS_SAVE ) +GAME( 1997, lastbladh, lastblad, neobase, neogeo, mvs_led_state, 0, ROT0, "SNK", "The Last Blade / Bakumatsu Roman - Gekka no Kenshi (NGH-2340)", MACHINE_SUPPORTS_SAVE ) +GAME( 1997, lastsold, lastblad, neobase, neogeo, mvs_led_state, 0, ROT0, "SNK", "The Last Soldier (Korean release of The Last Blade)", MACHINE_SUPPORTS_SAVE ) +GAME( 1997, irrmaze, neogeo, irrmaze, neogeo, mvs_led_state, 0, ROT0, "SNK / Saurus", "The Irritating Maze / Ultra Denryu Iraira Bou", MACHINE_SUPPORTS_SAVE ) +GAME( 1998, rbff2, neogeo, neobase, neogeo, mvs_led_state, 0, ROT0, "SNK", "Real Bout Fatal Fury 2 - The Newcomers / Real Bout Garou Densetsu 2 - The Newcomers (NGM-2400)", MACHINE_SUPPORTS_SAVE ) +GAME( 1998, rbff2h, rbff2, neobase, neogeo, mvs_led_state, 0, ROT0, "SNK", "Real Bout Fatal Fury 2 - The Newcomers / Real Bout Garou Densetsu 2 - The Newcomers (NGH-2400)", MACHINE_SUPPORTS_SAVE ) +GAME( 1998, rbff2k, rbff2, neobase, neogeo, mvs_led_state, 0, ROT0, "SNK", "Real Bout Fatal Fury 2 - The Newcomers (Korean release)", MACHINE_SUPPORTS_SAVE ) // no Japanese title / mode +GAME( 1998, mslug2, neogeo, neobase, neogeo, mvs_led_state, 0, ROT0, "SNK", "Metal Slug 2 - Super Vehicle-001/II (NGM-2410 ~ NGH-2410)", MACHINE_SUPPORTS_SAVE ) +GAME( 2015, mslug2t, mslug2, neobase, neogeo, mvs_led_state, 0, ROT0, "hack (trap15)", "Metal Slug 2 Turbo (NGM-9410) (hack)", MACHINE_SUPPORTS_SAVE ) +GAME( 1998, kof98, neogeo, kof98, neogeo, mvs_led_state, 0, ROT0, "SNK", "The King of Fighters '98 - The Slugfest / King of Fighters '98 - Dream Match Never Ends (NGM-2420)", MACHINE_SUPPORTS_SAVE ) +GAME( 1998, kof98a, kof98, kof98, neogeo, mvs_led_state, 0, ROT0, "SNK", "The King of Fighters '98 - The Slugfest / King of Fighters '98 - Dream Match Never Ends (NGM-2420, alt board)", MACHINE_SUPPORTS_SAVE ) +GAME( 1998, kof98k, kof98, kof98, neogeo, mvs_led_state, 0, ROT0, "SNK", "The King of Fighters '98 - The Slugfest / King of Fighters '98 - Dream Match Never Ends (Korean board, set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1998, kof98ka, kof98, kof98, neogeo, mvs_led_state, 0, ROT0, "SNK", "The King of Fighters '98 - The Slugfest / King of Fighters '98 - Dream Match Never Ends (Korean board, set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1998, kof98h, kof98, neobase, neogeo, mvs_led_state, 0, ROT0, "SNK", "The King of Fighters '98 - The Slugfest / King of Fighters '98 - Dream Match Never Ends (NGH-2420)", MACHINE_SUPPORTS_SAVE ) +GAME( 1998, lastbld2, neogeo, neobase, neogeo, mvs_led_state, 0, ROT0, "SNK", "The Last Blade 2 / Bakumatsu Roman - Dai Ni Maku Gekka no Kenshi (NGM-2430 ~ NGH-2430)", MACHINE_SUPPORTS_SAVE ) +GAME( 1998, neocup98, neogeo, neobase, neogeo, mvs_led_state, 0, ROT0, "SNK", "Neo-Geo Cup '98 - The Road to the Victory", MACHINE_SUPPORTS_SAVE ) +GAME( 1999, mslugx, neogeo, mslugx, neogeo, mvs_led_state, 0, ROT0, "SNK", "Metal Slug X - Super Vehicle-001 (NGM-2500 ~ NGH-2500)", MACHINE_SUPPORTS_SAVE ) +GAME( 1999, kof99, neogeo, kof99, neogeo, mvs_led_state, 0, ROT0, "SNK", "The King of Fighters '99 - Millennium Battle (NGM-2510)" , MACHINE_SUPPORTS_SAVE ) /* Encrypted Code & GFX */ +GAME( 1999, kof99h, kof99, kof99, neogeo, mvs_led_state, 0, ROT0, "SNK", "The King of Fighters '99 - Millennium Battle (NGH-2510)" , MACHINE_SUPPORTS_SAVE ) /* Encrypted Code & GFX, crashes going into attract demo */ +GAME( 1999, kof99e, kof99, kof99, neogeo, mvs_led_state, 0, ROT0, "SNK", "The King of Fighters '99 - Millennium Battle (earlier)" , MACHINE_SUPPORTS_SAVE ) /* Encrypted Code & GFX */ +GAME( 1999, kof99k, kof99, kof99, neogeo, mvs_led_state, 0, ROT0, "SNK", "The King of Fighters '99 - Millennium Battle (Korean release)" , MACHINE_SUPPORTS_SAVE ) /* Encrypted Code & GFX */ +GAME( 1999, kof99ka, kof99, kof99k, neogeo, mvs_led_state, 0, ROT0, "SNK", "The King of Fighters '99 - Millennium Battle (Korean release, non-encrypted program)" , MACHINE_SUPPORTS_SAVE ) /* Encrypted GFX */ +GAME( 1999, kof99p, kof99, neobase, neogeo, mvs_led_state, 0, ROT0, "SNK", "The King of Fighters '99 - Millennium Battle (prototype)", MACHINE_SUPPORTS_SAVE ) +GAME( 1999, garou, neogeo, garou, neogeo, mvs_led_state, 0, ROT0, "SNK", "Garou - Mark of the Wolves (NGM-2530)" , MACHINE_SUPPORTS_SAVE ) /* Encrypted Code & GFX */ +GAME( 1999, garouh, garou, garouh, neogeo, mvs_led_state, 0, ROT0, "SNK", "Garou - Mark of the Wolves (NGM-2530 ~ NGH-2530)" , MACHINE_SUPPORTS_SAVE ) /* Encrypted Code & GFX */ +GAME( 1999, garoup, garou, neobase, neogeo, mvs_led_state, 0, ROT0, "SNK", "Garou - Mark of the Wolves (prototype)", MACHINE_SUPPORTS_SAVE ) +GAME( 1999, garoubl, garou, garoubl, neogeo, mvs_led_state, 0, ROT0, "bootleg", "Garou - Mark of the Wolves (bootleg)", MACHINE_SUPPORTS_SAVE ) /* Bootleg of garoup */ +GAME( 2000, mslug3, neogeo, mslug3, neogeo, mvs_led_state, 0, ROT0, "SNK", "Metal Slug 3 (NGM-2560)" , MACHINE_SUPPORTS_SAVE ) /* Encrypted Code & GFX */ +GAME( 2000, mslug3h, mslug3, mslug3h, neogeo, mvs_led_state, 0, ROT0, "SNK", "Metal Slug 3 (NGH-2560)" , MACHINE_SUPPORTS_SAVE ) /* Encrypted GFX */ +GAME( 2000, mslug3b6, mslug3, mslug3b6, neogeo, mvs_led_state, 0, ROT0, "bootleg", "Metal Slug 6 (Metal Slug 3 bootleg)", MACHINE_SUPPORTS_SAVE ) /* real Metal Slug 6 is an Atomiswave HW game, see naomi.c ;-) */ +GAME( 2000, kof2000, neogeo, kof2000, neogeo, mvs_led_state, 0, ROT0, "SNK", "The King of Fighters 2000 (NGM-2570 ~ NGH-2570)" , MACHINE_SUPPORTS_SAVE ) /* Encrypted Code & GFX */ +GAME( 2000, kof2000n, kof2000, kof2000n, neogeo, mvs_led_state, 0, ROT0, "SNK", "The King of Fighters 2000 (not encrypted)" , MACHINE_SUPPORTS_SAVE ) /* Encrypted GFX */ +GAME( 2001, zupapa, neogeo, zupapa, neogeo, mvs_led_state, 0, ROT0, "SNK", "Zupapa!" , MACHINE_SUPPORTS_SAVE ) /* Encrypted GFX */ +GAME( 2001, sengoku3, neogeo, sengoku3, neogeo, mvs_led_state, 0, ROT0, "Noise Factory / SNK", "Sengoku 3 / Sengoku Densho 2001" , MACHINE_SUPPORTS_SAVE ) /* Encrypted GFX */ +GAME( 2001, kof2001, neogeo, kof2001, neogeo, mvs_led_state, 0, ROT0, "Eolith / SNK", "The King of Fighters 2001 (NGM-262?)" , MACHINE_SUPPORTS_SAVE ) /* Encrypted GFX */ +GAME( 2001, kof2001h, kof2001, kof2001, neogeo, mvs_led_state, 0, ROT0, "Eolith / SNK", "The King of Fighters 2001 (NGH-2621)" , MACHINE_SUPPORTS_SAVE ) /* Encrypted GFX */ +GAME( 2003, cthd2003, kof2001, cthd2k3, neogeo, mvs_led_state, 0, ROT0, "bootleg", "Crouching Tiger Hidden Dragon 2003 (The King of Fighters 2001 bootleg)", MACHINE_SUPPORTS_SAVE ) /* Protected Hack / Bootleg of kof2001 */ +GAME( 2003, ct2k3sp, kof2001, ct2k3sp, neogeo, mvs_led_state, 0, ROT0, "bootleg", "Crouching Tiger Hidden Dragon 2003 Super Plus (The King of Fighters 2001 bootleg)", MACHINE_SUPPORTS_SAVE ) /* Protected Hack / Bootleg of kof2001 */ +GAME( 2003, ct2k3sa, kof2001, ct2k3sa, neogeo, mvs_led_state, 0, ROT0, "bootleg", "Crouching Tiger Hidden Dragon 2003 Super Plus alternate (The King of Fighters 2001 bootleg)", MACHINE_SUPPORTS_SAVE ) /* Hack / Bootleg of kof2001 */ +GAME( 2002, kof2002, neogeo, kof2002, neogeo, mvs_led_state, 0, ROT0, "Eolith / Playmore", "The King of Fighters 2002 (NGM-2650 ~ NGH-2650)" , MACHINE_SUPPORTS_SAVE ) /* Encrypted GFX */ +GAME( 2002, kof2002b, kof2002, kof2002b, neogeo, mvs_led_state, 0, ROT0, "bootleg", "The King of Fighters 2002 (bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 2002, kf2k2pls, kof2002, kf2k2pls, neogeo, mvs_led_state, 0, ROT0, "bootleg", "The King of Fighters 2002 Plus (bootleg set 1)" , MACHINE_SUPPORTS_SAVE ) /* Encrypted GFX */ +GAME( 2002, kf2k2pla, kof2002, kf2k2pls, neogeo, mvs_led_state, 0, ROT0, "bootleg", "The King of Fighters 2002 Plus (bootleg set 2)" , MACHINE_SUPPORTS_SAVE ) /* Encrypted GFX */ +GAME( 2002, kf2k2mp, kof2002, kf2k2mp, neogeo, mvs_led_state, 0, ROT0, "bootleg", "The King of Fighters 2002 Magic Plus (bootleg)" , MACHINE_SUPPORTS_SAVE ) /* Encrypted GFX */ +GAME( 2002, kf2k2mp2, kof2002, kf2k2mp2, neogeo, mvs_led_state, 0, ROT0, "bootleg", "The King of Fighters 2002 Magic Plus II (bootleg)" , MACHINE_SUPPORTS_SAVE ) /* Encrypted GFX */ +GAME( 2002, kof10th, kof2002, kof10th, neogeo, mvs_led_state, 0, ROT0, "bootleg", "The King of Fighters 10th Anniversary (The King of Fighters 2002 bootleg)", MACHINE_SUPPORTS_SAVE ) // fake SNK copyright +GAME( 2005, kf10thep, kof2002, kf10thep, neogeo, mvs_led_state, 0, ROT0, "bootleg", "The King of Fighters 10th Anniversary Extra Plus (The King of Fighters 2002 bootleg)", MACHINE_SUPPORTS_SAVE ) // fake SNK copyright +GAME( 2004, kf2k5uni, kof2002, kf2k5uni, neogeo, mvs_led_state, 0, ROT0, "bootleg", "The King of Fighters 10th Anniversary 2005 Unique (The King of Fighters 2002 bootleg)", MACHINE_SUPPORTS_SAVE ) // fake SNK copyright +GAME( 2004, kof2k4se, kof2002, kof2k4se, neogeo, mvs_led_state, 0, ROT0, "bootleg", "The King of Fighters Special Edition 2004 (The King of Fighters 2002 bootleg)", MACHINE_SUPPORTS_SAVE ) /* Hack / Bootleg of kof2002 */ +GAME( 2003, mslug5, neogeo, mslug5, neogeo, mvs_led_state, 0, ROT0, "SNK Playmore", "Metal Slug 5 (NGM-2680)", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, mslug5h, mslug5, mslug5, neogeo, mvs_led_state, 0, ROT0, "SNK Playmore", "Metal Slug 5 (NGH-2680)", MACHINE_SUPPORTS_SAVE ) /* Also found in later MVS carts */ +GAME( 2003, ms5plus, mslug5, ms5plus, neogeo, mvs_led_state, 0, ROT0, "bootleg", "Metal Slug 5 Plus (bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, svc, neogeo, svc, neogeo, mvs_led_state, 0, ROT0, "SNK Playmore", "SNK vs. Capcom - SVC Chaos (NGM-2690 ~ NGH-2690)", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, svcboot, svc, svcboot, neogeo, mvs_led_state, 0, ROT0, "bootleg", "SNK vs. Capcom - SVC Chaos (bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, svcplus, svc, svcplus, neogeo, mvs_led_state, 0, ROT0, "bootleg", "SNK vs. Capcom - SVC Chaos Plus (bootleg set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, svcplusa, svc, svcplusa, neogeo, mvs_led_state, 0, ROT0, "bootleg", "SNK vs. Capcom - SVC Chaos Plus (bootleg set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, svcsplus, svc, svcsplus, neogeo, mvs_led_state, 0, ROT0, "bootleg", "SNK vs. Capcom - SVC Chaos Super Plus (bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, samsho5, neogeo, samsho5, neogeo, mvs_led_state, 0, ROT0, "Yuki Enterprise / SNK Playmore", "Samurai Shodown V / Samurai Spirits Zero (NGM-2700, set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, samsho5a, samsho5, samsho5, neogeo, mvs_led_state, 0, ROT0, "Yuki Enterprise / SNK Playmore", "Samurai Shodown V / Samurai Spirits Zero (NGM-2700, set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, samsho5h, samsho5, samsho5, neogeo, mvs_led_state, 0, ROT0, "Yuki Enterprise / SNK Playmore", "Samurai Shodown V / Samurai Spirits Zero (NGH-2700)", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, samsho5b, samsho5, samsho5b, neogeo, mvs_led_state, 0, ROT0, "bootleg", "Samurai Shodown V / Samurai Spirits Zero (bootleg)", MACHINE_SUPPORTS_SAVE ) // different program scrambling +GAME( 2003, kof2003, neogeo, kof2003, neogeo, mvs_led_state, 0, ROT0, "SNK Playmore", "The King of Fighters 2003 (NGM-2710)", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, kof2003h, kof2003, kof2003h, neogeo, mvs_led_state, 0, ROT0, "SNK Playmore", "The King of Fighters 2003 (NGH-2710)", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, kf2k3bl, kof2003, kf2k3bl, neogeo, mvs_led_state, 0, ROT0, "bootleg", "The King of Fighters 2003 (bootleg set 1)", MACHINE_SUPPORTS_SAVE ) // zooming is wrong because its a bootleg of the pcb version on a cart (unless it was a bootleg pcb with the new bios?) +GAME( 2003, kf2k3bla, kof2003, kf2k3pl, neogeo, mvs_led_state, 0, ROT0, "bootleg", "The King of Fighters 2003 (bootleg set 2)", MACHINE_SUPPORTS_SAVE ) // zooming is wrong because its a bootleg of the pcb version on a cart +GAME( 2003, kf2k3pl, kof2003, kf2k3pl, neogeo, mvs_led_state, 0, ROT0, "bootleg", "The King of Fighters 2004 Plus / Hero (The King of Fighters 2003 bootleg)", MACHINE_SUPPORTS_SAVE ) // zooming is wrong because its a bootleg of the pcb version on a cart +GAME( 2003, kf2k3upl, kof2003, kf2k3upl, neogeo, mvs_led_state, 0, ROT0, "bootleg", "The King of Fighters 2004 Ultra Plus (The King of Fighters 2003 bootleg)", MACHINE_SUPPORTS_SAVE ) // zooming is wrong because its a bootleg of the pcb version on a cart +GAME( 2004, samsh5sp, neogeo, samsh5sp, neogeo, mvs_led_state, 0, ROT0, "Yuki Enterprise / SNK Playmore", "Samurai Shodown V Special / Samurai Spirits Zero Special (NGM-2720)", MACHINE_SUPPORTS_SAVE ) +GAME( 2004, samsh5sph, samsh5sp, samsh5sp, neogeo, mvs_led_state, 0, ROT0, "Yuki Enterprise / SNK Playmore", "Samurai Shodown V Special / Samurai Spirits Zero Special (NGH-2720, 2nd release, less censored)", MACHINE_SUPPORTS_SAVE ) +GAME( 2004, samsh5spho, samsh5sp, samsh5sp, neogeo, mvs_led_state, 0, ROT0, "Yuki Enterprise / SNK Playmore", "Samurai Shodown V Special / Samurai Spirits Zero Special (NGH-2720, 1st release, censored)", MACHINE_SUPPORTS_SAVE ) // Alpha Denshi Co. / ADK (changed name in 1993) -GAME( 1990, maglord, neogeo, neobase, neogeo, mvs_state, 0, ROT0, "Alpha Denshi Co.", "Magician Lord (NGM-005)", MACHINE_SUPPORTS_SAVE ) -GAME( 1990, maglordh, maglord, neobase, neogeo, mvs_state, 0, ROT0, "Alpha Denshi Co.", "Magician Lord (NGH-005)", MACHINE_SUPPORTS_SAVE ) -GAME( 1990, ncombat, neogeo, neobase, neogeo, mvs_state, 0, ROT0, "Alpha Denshi Co.", "Ninja Combat (NGM-009)", MACHINE_SUPPORTS_SAVE ) -GAME( 1990, ncombath, ncombat, neobase, neogeo, mvs_state, 0, ROT0, "Alpha Denshi Co.", "Ninja Combat (NGH-009)", MACHINE_SUPPORTS_SAVE ) -GAME( 1990, bjourney, neogeo, neobase, neogeo, mvs_state, 0, ROT0, "Alpha Denshi Co.", "Blue's Journey / Raguy (ALM-001 ~ ALH-001)", MACHINE_SUPPORTS_SAVE ) -GAME( 1990, bjourneyh, bjourney, neobase, neogeo, mvs_state, 0, ROT0, "Alpha Denshi Co.", "Blue's Journey / Raguy (ALH-001)", MACHINE_SUPPORTS_SAVE ) -GAME( 1991, crsword, neogeo, neobase, neogeo, mvs_state, 0, ROT0, "Alpha Denshi Co.", "Crossed Swords (ALM-002 ~ ALH-002)", MACHINE_SUPPORTS_SAVE ) -GAME( 1991, trally, neogeo, neobase, neogeo, mvs_state, 0, ROT0, "Alpha Denshi Co.", "Thrash Rally (ALM-003 ~ ALH-003)", MACHINE_NODEVICE_LAN | MACHINE_SUPPORTS_SAVE ) -GAME( 1992, ncommand, neogeo, neobase, neogeo, mvs_state, 0, ROT0, "Alpha Denshi Co.", "Ninja Commando", MACHINE_SUPPORTS_SAVE ) -GAME( 1992, wh1, neogeo, neobase, neogeo, mvs_state, 0, ROT0, "Alpha Denshi Co.", "World Heroes (ALM-005)", MACHINE_SUPPORTS_SAVE ) -GAME( 1992, wh1h, wh1, neobase, neogeo, mvs_state, 0, ROT0, "Alpha Denshi Co.", "World Heroes (ALH-005)", MACHINE_SUPPORTS_SAVE ) -GAME( 1992, wh1ha, wh1, neobase, neogeo, mvs_state, 0, ROT0, "Alpha Denshi Co.", "World Heroes (set 3)", MACHINE_SUPPORTS_SAVE ) -GAME( 1993, wh2, neogeo, neobase, neogeo, mvs_state, 0, ROT0, "ADK", "World Heroes 2 (ALM-006 ~ ALH-006)", MACHINE_SUPPORTS_SAVE ) -GAME( 1994, wh2j, neogeo, neobase, neogeo, mvs_state, 0, ROT0, "ADK / SNK", "World Heroes 2 Jet (ADM-007 ~ ADH-007)", MACHINE_SUPPORTS_SAVE ) -GAME( 1994, aodk, neogeo, neobase, neogeo, mvs_state, 0, ROT0, "ADK / SNK", "Aggressors of Dark Kombat / Tsuukai GANGAN Koushinkyoku (ADM-008 ~ ADH-008)", MACHINE_SUPPORTS_SAVE ) -GAME( 1995, whp, neogeo, neobase, neogeo, mvs_state, 0, ROT0, "ADK / SNK", "World Heroes Perfect", MACHINE_SUPPORTS_SAVE ) -GAME( 1995, moshougi, neogeo, neobase, neogeo, mvs_state, 0, ROT0, "ADK / SNK", "Shougi No Tatsujin - Master of Shougi", MACHINE_SUPPORTS_SAVE ) -GAME( 1996, overtop, neogeo, neobase, neogeo, mvs_state, 0, ROT0, "ADK", "Over Top", MACHINE_SUPPORTS_SAVE ) -GAME( 1996, ninjamas, neogeo, neobase, neogeo, mvs_state, 0, ROT0, "ADK / SNK", "Ninja Master's - Haoh-ninpo-cho", MACHINE_SUPPORTS_SAVE ) -GAME( 1996, twinspri, neogeo, neobase, neogeo, mvs_state, 0, ROT0, "ADK / SNK", "Twinkle Star Sprites", MACHINE_SUPPORTS_SAVE ) -GAME( 1996, zintrckb, neogeo, neobase, neogeo, mvs_state, 0, ROT0, "bootleg", "Zintrick / Oshidashi Zentrix (bootleg of CD version)", MACHINE_SUPPORTS_SAVE ) -GAME( 1996, crswd2bl, neogeo, neobase, neogeo, mvs_state, 0, ROT0, "bootleg (Razoola)","Crossed Swords 2 (bootleg of CD version)", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, maglord, neogeo, neobase, neogeo, mvs_led_state, 0, ROT0, "Alpha Denshi Co.", "Magician Lord (NGM-005)", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, maglordh, maglord, neobase, neogeo, mvs_led_state, 0, ROT0, "Alpha Denshi Co.", "Magician Lord (NGH-005)", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, ncombat, neogeo, neobase, neogeo, mvs_led_state, 0, ROT0, "Alpha Denshi Co.", "Ninja Combat (NGM-009)", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, ncombath, ncombat, neobase, neogeo, mvs_led_state, 0, ROT0, "Alpha Denshi Co.", "Ninja Combat (NGH-009)", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, bjourney, neogeo, neobase, neogeo, mvs_led_state, 0, ROT0, "Alpha Denshi Co.", "Blue's Journey / Raguy (ALM-001 ~ ALH-001)", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, bjourneyh, bjourney, neobase, neogeo, mvs_led_state, 0, ROT0, "Alpha Denshi Co.", "Blue's Journey / Raguy (ALH-001)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, crsword, neogeo, neobase, neogeo, mvs_led_state, 0, ROT0, "Alpha Denshi Co.", "Crossed Swords (ALM-002 ~ ALH-002)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, trally, neogeo, neobase, neogeo, mvs_led_state, 0, ROT0, "Alpha Denshi Co.", "Thrash Rally (ALM-003 ~ ALH-003)", MACHINE_NODEVICE_LAN | MACHINE_SUPPORTS_SAVE ) +GAME( 1992, ncommand, neogeo, neobase, neogeo, mvs_led_state, 0, ROT0, "Alpha Denshi Co.", "Ninja Commando", MACHINE_SUPPORTS_SAVE ) +GAME( 1992, wh1, neogeo, neobase, neogeo, mvs_led_state, 0, ROT0, "Alpha Denshi Co.", "World Heroes (ALM-005)", MACHINE_SUPPORTS_SAVE ) +GAME( 1992, wh1h, wh1, neobase, neogeo, mvs_led_state, 0, ROT0, "Alpha Denshi Co.", "World Heroes (ALH-005)", MACHINE_SUPPORTS_SAVE ) +GAME( 1992, wh1ha, wh1, neobase, neogeo, mvs_led_state, 0, ROT0, "Alpha Denshi Co.", "World Heroes (set 3)", MACHINE_SUPPORTS_SAVE ) +GAME( 1993, wh2, neogeo, neobase, neogeo, mvs_led_state, 0, ROT0, "ADK", "World Heroes 2 (ALM-006 ~ ALH-006)", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, wh2j, neogeo, neobase, neogeo, mvs_led_state, 0, ROT0, "ADK / SNK", "World Heroes 2 Jet (ADM-007 ~ ADH-007)", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, aodk, neogeo, neobase, neogeo, mvs_led_state, 0, ROT0, "ADK / SNK", "Aggressors of Dark Kombat / Tsuukai GANGAN Koushinkyoku (ADM-008 ~ ADH-008)", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, whp, neogeo, neobase, neogeo, mvs_led_state, 0, ROT0, "ADK / SNK", "World Heroes Perfect", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, moshougi, neogeo, neobase, neogeo, mvs_led_state, 0, ROT0, "ADK / SNK", "Shougi No Tatsujin - Master of Shougi", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, overtop, neogeo, neobase, neogeo, mvs_led_state, 0, ROT0, "ADK", "Over Top", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, ninjamas, neogeo, neobase, neogeo, mvs_led_state, 0, ROT0, "ADK / SNK", "Ninja Master's - Haoh-ninpo-cho", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, twinspri, neogeo, neobase, neogeo, mvs_led_state, 0, ROT0, "ADK / SNK", "Twinkle Star Sprites", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, zintrckb, neogeo, neobase, neogeo, mvs_led_state, 0, ROT0, "bootleg", "Zintrick / Oshidashi Zentrix (bootleg of CD version)", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, crswd2bl, neogeo, neobase, neogeo, mvs_led_state, 0, ROT0, "bootleg (Razoola)","Crossed Swords 2 (bootleg of CD version)", MACHINE_SUPPORTS_SAVE ) // Aicom (was a part of Sammy) / Yumekobo (changed name in 1996) -GAME( 1992, viewpoin, neogeo, neobase, neogeo, mvs_state, 0, ROT0, "Sammy / Aicom", "Viewpoint", MACHINE_SUPPORTS_SAVE ) -GAME( 1994, janshin, neogeo, neogeo_mj, neogeo, mvs_state, 0, ROT0, "Aicom", "Janshin Densetsu - Quest of Jongmaster", MACHINE_SUPPORTS_SAVE ) -GAME( 1995, pulstar, neogeo, neobase, neogeo, mvs_state, 0, ROT0, "Aicom", "Pulstar", MACHINE_SUPPORTS_SAVE ) -GAME( 1998, blazstar, neogeo, neobase, neogeo, mvs_state, 0, ROT0, "Yumekobo", "Blazing Star", MACHINE_SUPPORTS_SAVE ) -GAME( 1999, preisle2, neogeo, preisle2, neogeo, mvs_state, 0, ROT0, "Yumekobo", "Prehistoric Isle 2" , MACHINE_SUPPORTS_SAVE ) /* Encrypted GFX */ +GAME( 1992, viewpoin, neogeo, neobase, neogeo, mvs_led_state, 0, ROT0, "Sammy / Aicom", "Viewpoint", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, janshin, neogeo, neogeo_mj, neogeo_mj, mvs_led_state, 0, ROT0, "Aicom", "Janshin Densetsu - Quest of Jongmaster", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, pulstar, neogeo, neobase, neogeo, mvs_led_state, 0, ROT0, "Aicom", "Pulstar", MACHINE_SUPPORTS_SAVE ) +GAME( 1998, blazstar, neogeo, neobase, neogeo, mvs_led_state, 0, ROT0, "Yumekobo", "Blazing Star", MACHINE_SUPPORTS_SAVE ) +GAME( 1999, preisle2, neogeo, preisle2, neogeo, mvs_led_state, 0, ROT0, "Yumekobo", "Prehistoric Isle 2" , MACHINE_SUPPORTS_SAVE ) /* Encrypted GFX */ // Data East Corporation -GAME( 1993, spinmast, neogeo, neobase, neogeo, mvs_state, 0, ROT0, "Data East Corporation", "Spin Master / Miracle Adventure", MACHINE_SUPPORTS_SAVE ) -GAME( 1994, wjammers, neogeo, neobase, neogeo, mvs_state, 0, ROT0, "Data East Corporation", "Windjammers / Flying Power Disc", MACHINE_SUPPORTS_SAVE ) -GAME( 1994, karnovr, neogeo, neobase, neogeo, mvs_state, 0, ROT0, "Data East Corporation", "Karnov's Revenge / Fighter's History Dynamite", MACHINE_SUPPORTS_SAVE ) -GAME( 1994, strhoop, neogeo, neobase, neogeo, mvs_state, 0, ROT0, "Data East Corporation", "Street Hoop / Street Slam / Dunk Dream (DEM-004 ~ DEH-004)", MACHINE_SUPPORTS_SAVE ) -GAME( 1996, ghostlop, neogeo, neobase, neogeo, mvs_state, 0, ROT0, "Data East Corporation", "Ghostlop (prototype)", MACHINE_SUPPORTS_SAVE ) -GAME( 1996, magdrop2, neogeo, neobase, neogeo, mvs_state, 0, ROT0, "Data East Corporation", "Magical Drop II", MACHINE_SUPPORTS_SAVE ) -GAME( 1997, magdrop3, neogeo, neobase, neogeo, mvs_state, 0, ROT0, "Data East Corporation", "Magical Drop III", MACHINE_SUPPORTS_SAVE ) +GAME( 1993, spinmast, neogeo, neobase, neogeo, mvs_led_state, 0, ROT0, "Data East Corporation", "Spin Master / Miracle Adventure", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, wjammers, neogeo, neobase, neogeo, mvs_led_state, 0, ROT0, "Data East Corporation", "Windjammers / Flying Power Disc", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, karnovr, neogeo, neobase, neogeo, mvs_led_state, 0, ROT0, "Data East Corporation", "Karnov's Revenge / Fighter's History Dynamite", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, strhoop, neogeo, neobase, neogeo, mvs_led_state, 0, ROT0, "Data East Corporation", "Street Hoop / Street Slam / Dunk Dream (DEM-004 ~ DEH-004)", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, ghostlop, neogeo, neobase, neogeo, mvs_led_state, 0, ROT0, "Data East Corporation", "Ghostlop (prototype)", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, magdrop2, neogeo, neobase, neogeo, mvs_led_state, 0, ROT0, "Data East Corporation", "Magical Drop II", MACHINE_SUPPORTS_SAVE ) +GAME( 1997, magdrop3, neogeo, neobase, neogeo, mvs_led_state, 0, ROT0, "Data East Corporation", "Magical Drop III", MACHINE_SUPPORTS_SAVE ) // Eleven -GAME( 2000, nitd, neogeo, nitd, neogeo, mvs_state, 0, ROT0, "Eleven / Gavaking", "Nightmare in the Dark" , MACHINE_SUPPORTS_SAVE ) /* Encrypted GFX */ -GAME( 2001, nitdbl, nitd, neobase, neogeo, mvs_state, 0, ROT0, "bootleg", "Nightmare in the Dark (bootleg)" , MACHINE_SUPPORTS_SAVE ) +GAME( 2000, nitd, neogeo, nitd, neogeo, mvs_led_state, 0, ROT0, "Eleven / Gavaking", "Nightmare in the Dark" , MACHINE_SUPPORTS_SAVE ) /* Encrypted GFX */ +GAME( 2001, nitdbl, nitd, neobase, neogeo, mvs_led_state, 0, ROT0, "bootleg", "Nightmare in the Dark (bootleg)" , MACHINE_SUPPORTS_SAVE ) // Face -GAME( 1994, gururin, neogeo, neobase, neogeo, mvs_state, 0, ROT0, "Face", "Gururin", MACHINE_SUPPORTS_SAVE ) -GAME( 1997, miexchng, neogeo, neobase, neogeo, mvs_state, 0, ROT0, "Face", "Money Puzzle Exchanger / Money Idol Exchanger", MACHINE_SUPPORTS_SAVE ) -GAME( 1997, dragonsh, neogeo, neobase, neogeo, mvs_state, 0, ROT0, "Face", "Dragon's Heaven (development board)", MACHINE_IS_INCOMPLETE | MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE ) // same ID code as Voltage Fighter Gowkaizer, developed by ex-Technos staff +GAME( 1994, gururin, neogeo, neobase, neogeo, mvs_led_state, 0, ROT0, "Face", "Gururin", MACHINE_SUPPORTS_SAVE ) +GAME( 1997, miexchng, neogeo, neobase, neogeo, mvs_led_state, 0, ROT0, "Face", "Money Puzzle Exchanger / Money Idol Exchanger", MACHINE_SUPPORTS_SAVE ) +GAME( 1997, dragonsh, neogeo, neobase, neogeo, mvs_led_state, 0, ROT0, "Face", "Dragon's Heaven (development board)", MACHINE_IS_INCOMPLETE | MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE ) // same ID code as Voltage Fighter Gowkaizer, developed by ex-Technos staff // Hudson Soft -GAME( 1994, panicbom, neogeo, neobase, neogeo, mvs_state, 0, ROT0, "Eighting / Hudson", "Panic Bomber", MACHINE_SUPPORTS_SAVE ) -GAME( 1995, kabukikl, neogeo, neobase, neogeo, mvs_state, 0, ROT0, "Hudson", "Far East of Eden - Kabuki Klash / Tengai Makyou - Shin Den", MACHINE_SUPPORTS_SAVE ) -GAME( 1997, neobombe, neogeo, neobase, neogeo, mvs_state, 0, ROT0, "Hudson", "Neo Bomberman", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, panicbom, neogeo, neobase, neogeo, mvs_led_state, 0, ROT0, "Eighting / Hudson", "Panic Bomber", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, kabukikl, neogeo, neobase, neogeo, mvs_led_state, 0, ROT0, "Hudson", "Far East of Eden - Kabuki Klash / Tengai Makyou - Shin Den", MACHINE_SUPPORTS_SAVE ) +GAME( 1997, neobombe, neogeo, neobase, neogeo, mvs_led_state, 0, ROT0, "Hudson", "Neo Bomberman", MACHINE_SUPPORTS_SAVE ) // Monolith Corp. -GAME( 1990, minasan, neogeo, neogeo_mj, neogeo, mvs_state, 0, ROT0, "Monolith Corp.", "Minasan no Okagesamadesu! Dai Sugoroku Taikai (MOM-001 ~ MOH-001)", MACHINE_SUPPORTS_SAVE ) -GAME( 1991, bakatono, neogeo, neogeo_mj, neogeo, mvs_state, 0, ROT0, "Monolith Corp.", "Bakatonosama Mahjong Manyuuki (MOM-002 ~ MOH-002)", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, minasan, neogeo, neogeo_mj, neogeo_mj, mvs_led_state, 0, ROT0, "Monolith Corp.", "Minasan no Okagesamadesu! Dai Sugoroku Taikai (MOM-001 ~ MOH-001)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, bakatono, neogeo, neogeo_mj, neogeo_mj, mvs_led_state, 0, ROT0, "Monolith Corp.", "Bakatonosama Mahjong Manyuuki (MOM-002 ~ MOH-002)", MACHINE_SUPPORTS_SAVE ) // Nazca (later acquired by SNK) -GAME( 1996, turfmast, neogeo, neobase, neogeo, mvs_state, 0, ROT0, "Nazca", "Neo Turf Masters / Big Tournament Golf", MACHINE_SUPPORTS_SAVE ) -GAME( 1996, mslug, neogeo, neobase, neogeo, mvs_state, 0, ROT0, "Nazca", "Metal Slug - Super Vehicle-001", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, turfmast, neogeo, neobase, neogeo, mvs_led_state, 0, ROT0, "Nazca", "Neo Turf Masters / Big Tournament Golf", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, mslug, neogeo, neobase, neogeo, mvs_led_state, 0, ROT0, "Nazca", "Metal Slug - Super Vehicle-001", MACHINE_SUPPORTS_SAVE ) // NMK -GAME( 1994, zedblade, neogeo, neobase, neogeo, mvs_state, 0, ROT0, "NMK", "Zed Blade / Operation Ragnarok", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, zedblade, neogeo, neobase, neogeo, mvs_led_state, 0, ROT0, "NMK", "Zed Blade / Operation Ragnarok", MACHINE_SUPPORTS_SAVE ) // Psikyo -GAME( 1999, s1945p, neogeo, s1945p, neogeo, mvs_state, 0, ROT0, "Psikyo", "Strikers 1945 Plus" , MACHINE_SUPPORTS_SAVE ) /* Encrypted GFX */ +GAME( 1999, s1945p, neogeo, s1945p, neogeo, mvs_led_state, 0, ROT0, "Psikyo", "Strikers 1945 Plus" , MACHINE_SUPPORTS_SAVE ) /* Encrypted GFX */ // Saurus -GAME( 1995, quizkof, neogeo, neobase, neogeo, mvs_state, 0, ROT0, "Saurus", "Quiz King of Fighters (SAM-080 ~ SAH-080)", MACHINE_SUPPORTS_SAVE ) -GAME( 1995, quizkofk, quizkof, neobase, neogeo, mvs_state, 0, ROT0, "Saurus", "Quiz King of Fighters (Korean release)", MACHINE_SUPPORTS_SAVE ) -GAME( 1995, stakwin, neogeo, neobase, neogeo, mvs_state, 0, ROT0, "Saurus", "Stakes Winner / Stakes Winner - GI Kinzen Seiha e no Michi", MACHINE_SUPPORTS_SAVE ) -GAME( 1996, ragnagrd, neogeo, neobase, neogeo, mvs_state, 0, ROT0, "Saurus", "Ragnagard / Shin-Oh-Ken", MACHINE_SUPPORTS_SAVE ) -GAME( 1996, pgoal, neogeo, neobase, neogeo, mvs_state, 0, ROT0, "Saurus", "Pleasure Goal / Futsal - 5 on 5 Mini Soccer (NGM-219)", MACHINE_SUPPORTS_SAVE ) -GAME( 1996, ironclad, neogeo, neobase, neogeo, mvs_state, 0, ROT0, "Saurus", "Choutetsu Brikin'ger - Iron Clad (prototype)", MACHINE_SUPPORTS_SAVE ) -GAME( 1996, ironclado, ironclad, neobase, neogeo, mvs_state, 0, ROT0, "bootleg", "Choutetsu Brikin'ger - Iron Clad (prototype, bootleg)", MACHINE_SUPPORTS_SAVE ) -GAME( 1996, stakwin2, neogeo, neobase, neogeo, mvs_state, 0, ROT0, "Saurus", "Stakes Winner 2", MACHINE_SUPPORTS_SAVE ) -GAME( 1997, shocktro, neogeo, neobase, neogeo, mvs_state, 0, ROT0, "Saurus", "Shock Troopers (set 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1997, shocktroa, shocktro, neobase, neogeo, mvs_state, 0, ROT0, "Saurus", "Shock Troopers (set 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 1998, shocktr2, neogeo, neobase, neogeo, mvs_state, 0, ROT0, "Saurus", "Shock Troopers - 2nd Squad", MACHINE_SUPPORTS_SAVE ) -GAME( 1998, lans2004, shocktr2, lans2004, neogeo, mvs_state, 0, ROT0, "bootleg", "Lansquenet 2004 (Shock Troopers - 2nd Squad bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, quizkof, neogeo, neobase, neogeo, mvs_led_state, 0, ROT0, "Saurus", "Quiz King of Fighters (SAM-080 ~ SAH-080)", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, quizkofk, quizkof, neobase, neogeo, mvs_led_state, 0, ROT0, "Saurus", "Quiz King of Fighters (Korean release)", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, stakwin, neogeo, neobase, neogeo, mvs_led_state, 0, ROT0, "Saurus", "Stakes Winner / Stakes Winner - GI Kinzen Seiha e no Michi", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, ragnagrd, neogeo, neobase, neogeo, mvs_led_state, 0, ROT0, "Saurus", "Ragnagard / Shin-Oh-Ken", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, pgoal, neogeo, neobase, neogeo, mvs_led_state, 0, ROT0, "Saurus", "Pleasure Goal / Futsal - 5 on 5 Mini Soccer (NGM-219)", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, ironclad, neogeo, neobase, neogeo, mvs_led_state, 0, ROT0, "Saurus", "Choutetsu Brikin'ger - Iron Clad (prototype)", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, ironclado, ironclad, neobase, neogeo, mvs_led_state, 0, ROT0, "bootleg", "Choutetsu Brikin'ger - Iron Clad (prototype, bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, stakwin2, neogeo, neobase, neogeo, mvs_led_state, 0, ROT0, "Saurus", "Stakes Winner 2", MACHINE_SUPPORTS_SAVE ) +GAME( 1997, shocktro, neogeo, neobase, neogeo, mvs_led_state, 0, ROT0, "Saurus", "Shock Troopers (set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1997, shocktroa, shocktro, neobase, neogeo, mvs_led_state, 0, ROT0, "Saurus", "Shock Troopers (set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1998, shocktr2, neogeo, neobase, neogeo, mvs_led_state, 0, ROT0, "Saurus", "Shock Troopers - 2nd Squad", MACHINE_SUPPORTS_SAVE ) +GAME( 1998, lans2004, shocktr2, lans2004, neogeo, mvs_led_state, 0, ROT0, "bootleg", "Lansquenet 2004 (Shock Troopers - 2nd Squad bootleg)", MACHINE_SUPPORTS_SAVE ) // Sunsoft -GAME( 1995, galaxyfg, neogeo, neobase, neogeo, mvs_state, 0, ROT0, "Sunsoft", "Galaxy Fight - Universal Warriors", MACHINE_SUPPORTS_SAVE ) -GAME( 1996, wakuwak7, neogeo, neobase, neogeo, mvs_state, 0, ROT0, "Sunsoft", "Waku Waku 7", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, galaxyfg, neogeo, neobase, neogeo, mvs_led_state, 0, ROT0, "Sunsoft", "Galaxy Fight - Universal Warriors", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, wakuwak7, neogeo, neobase, neogeo, mvs_led_state, 0, ROT0, "Sunsoft", "Waku Waku 7", MACHINE_SUPPORTS_SAVE ) // Taito -GAME( 1994, pbobblen, neogeo, neobase, neogeo, mvs_state, 0, ROT0, "Taito", "Puzzle Bobble / Bust-A-Move (Neo-Geo, NGM-083)", MACHINE_SUPPORTS_SAVE ) -GAME( 1994, pbobblenb, pbobblen, neobase, neogeo, mvs_state, 0, ROT0, "bootleg", "Puzzle Bobble / Bust-A-Move (Neo-Geo, bootleg)", MACHINE_SUPPORTS_SAVE ) -GAME( 1999, pbobbl2n, neogeo, neobase, neogeo, mvs_state, 0, ROT0, "Taito (SNK license)", "Puzzle Bobble 2 / Bust-A-Move Again (Neo-Geo)", MACHINE_SUPPORTS_SAVE ) -GAME( 2003, pnyaa, neogeo, pnyaa, neogeo, mvs_state, 0, ROT0, "Aiky / Taito", "Pochi and Nyaa", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, pbobblen, neogeo, neobase, neogeo, mvs_led_state, 0, ROT0, "Taito", "Puzzle Bobble / Bust-A-Move (Neo-Geo, NGM-083)", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, pbobblenb, pbobblen, neobase, neogeo, mvs_led_state, 0, ROT0, "bootleg", "Puzzle Bobble / Bust-A-Move (Neo-Geo, bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 1999, pbobbl2n, neogeo, neobase, neogeo, mvs_led_state, 0, ROT0, "Taito (SNK license)", "Puzzle Bobble 2 / Bust-A-Move Again (Neo-Geo)", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, pnyaa, neogeo, pnyaa, neogeo, mvs_led_state, 0, ROT0, "Aiky / Taito", "Pochi and Nyaa", MACHINE_SUPPORTS_SAVE ) // Takara -GAME( 1995, marukodq, neogeo, neobase, neogeo, mvs_state, 0, ROT0, "Takara", "Chibi Marukochan Deluxe Quiz", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, marukodq, neogeo, neobase, neogeo, mvs_led_state, 0, ROT0, "Takara", "Chibi Marukochan Deluxe Quiz", MACHINE_SUPPORTS_SAVE ) // Technos Japan -GAME( 1995, doubledr, neogeo, neobase, neogeo, mvs_state, 0, ROT0, "Technos Japan", "Double Dragon (Neo-Geo)", MACHINE_SUPPORTS_SAVE ) -GAME( 1995, gowcaizr, neogeo, neobase, neogeo, mvs_state, 0, ROT0, "Technos Japan", "Voltage Fighter - Gowcaizer / Choujin Gakuen Gowcaizer", MACHINE_SUPPORTS_SAVE ) -GAME( 1996, sdodgeb, neogeo, neobase, neogeo, mvs_state, 0, ROT0, "Technos Japan", "Super Dodge Ball / Kunio no Nekketsu Toukyuu Densetsu", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, doubledr, neogeo, neobase, neogeo, mvs_led_state, 0, ROT0, "Technos Japan", "Double Dragon (Neo-Geo)", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, gowcaizr, neogeo, neobase, neogeo, mvs_led_state, 0, ROT0, "Technos Japan", "Voltage Fighter - Gowcaizer / Choujin Gakuen Gowcaizer", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, sdodgeb, neogeo, neobase, neogeo, mvs_led_state, 0, ROT0, "Technos Japan", "Super Dodge Ball / Kunio no Nekketsu Toukyuu Densetsu", MACHINE_SUPPORTS_SAVE ) // Tecmo -GAME( 1996, twsoc96, neogeo, neobase, neogeo, mvs_state, 0, ROT0, "Tecmo", "Tecmo World Soccer '96", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, twsoc96, neogeo, neobase, neogeo, mvs_led_state, 0, ROT0, "Tecmo", "Tecmo World Soccer '96", MACHINE_SUPPORTS_SAVE ) // Viccom -GAME( 1994, fightfev, neogeo, neobase, neogeo, mvs_state, 0, ROT0, "Viccom", "Fight Fever (set 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1994, fightfeva, fightfev, neobase, neogeo, mvs_state, 0, ROT0, "Viccom", "Fight Fever (set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, fightfev, neogeo, neobase, neogeo, mvs_led_state, 0, ROT0, "Viccom", "Fight Fever (set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, fightfeva, fightfev, neobase, neogeo, mvs_led_state, 0, ROT0, "Viccom", "Fight Fever (set 2)", MACHINE_SUPPORTS_SAVE ) // Video System Co. -GAME( 1994, pspikes2, neogeo, neobase, neogeo, mvs_state, 0, ROT0, "Video System Co.", "Power Spikes II (NGM-068)", MACHINE_SUPPORTS_SAVE ) -GAME( 1994, sonicwi2, neogeo, neobase, neogeo, mvs_state, 0, ROT0, "Video System Co.", "Aero Fighters 2 / Sonic Wings 2", MACHINE_SUPPORTS_SAVE ) -GAME( 1995, sonicwi3, neogeo, neobase, neogeo, mvs_state, 0, ROT0, "Video System Co.", "Aero Fighters 3 / Sonic Wings 3", MACHINE_SUPPORTS_SAVE ) -GAME( 1997, popbounc, neogeo, popbounc, neogeo, mvs_state, 0, ROT0, "Video System Co.", "Pop 'n Bounce / Gapporin", MACHINE_SUPPORTS_SAVE ) -GAME( 1995, froman2b, neogeo, neobase, neogeo, mvs_state, 0, ROT0, "bootleg", "Idol Mahjong Final Romance 2 (Neo-Geo, bootleg of CD version)", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, pspikes2, neogeo, neobase, neogeo, mvs_led_state, 0, ROT0, "Video System Co.", "Power Spikes II (NGM-068)", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, sonicwi2, neogeo, neobase, neogeo, mvs_led_state, 0, ROT0, "Video System Co.", "Aero Fighters 2 / Sonic Wings 2", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, sonicwi3, neogeo, neobase, neogeo, mvs_led_state, 0, ROT0, "Video System Co.", "Aero Fighters 3 / Sonic Wings 3", MACHINE_SUPPORTS_SAVE ) +GAME( 1997, popbounc, neogeo, popbounc, neogeo, mvs_led_state, 0, ROT0, "Video System Co.", "Pop 'n Bounce / Gapporin", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, froman2b, neogeo, neobase, neogeo, mvs_led_state, 0, ROT0, "bootleg", "Idol Mahjong Final Romance 2 (Neo-Geo, bootleg of CD version)", MACHINE_SUPPORTS_SAVE ) // Visco -GAME( 1992, androdun, neogeo, neobase, neogeo, mvs_state, 0, ROT0, "Visco", "Andro Dunos (NGM-049 ~ NGH-049)", MACHINE_SUPPORTS_SAVE ) -GAME( 1995, puzzledp, neogeo, neobase, neogeo, mvs_state, 0, ROT0, "Taito (Visco license)", "Puzzle De Pon!", MACHINE_SUPPORTS_SAVE ) -GAME( 1996, neomrdo, neogeo, neobase, neogeo, mvs_state, 0, ROT0, "Visco", "Neo Mr. Do!", MACHINE_SUPPORTS_SAVE ) -GAME( 1995, goalx3, neogeo, neobase, neogeo, mvs_state, 0, ROT0, "Visco", "Goal! Goal! Goal!", MACHINE_SUPPORTS_SAVE ) -GAME( 1996, neodrift, neogeo, neobase, neogeo, mvs_state, 0, ROT0, "Visco", "Neo Drift Out - New Technology", MACHINE_SUPPORTS_SAVE ) -GAME( 1996, breakers, neogeo, neobase, neogeo, mvs_state, 0, ROT0, "Visco", "Breakers", MACHINE_SUPPORTS_SAVE ) -GAME( 1997, puzzldpr, puzzledp, neobase, neogeo, mvs_state, 0, ROT0, "Taito (Visco license)", "Puzzle De Pon! R!", MACHINE_SUPPORTS_SAVE ) -GAME( 1998, breakrev, neogeo, neobase, neogeo, mvs_state, 0, ROT0, "Visco", "Breakers Revenge", MACHINE_SUPPORTS_SAVE ) -GAME( 1998, flipshot, neogeo, neobase, neogeo, mvs_state, 0, ROT0, "Visco", "Battle Flip Shot", MACHINE_SUPPORTS_SAVE ) -GAME( 1999, ctomaday, neogeo, neobase, neogeo, mvs_state, 0, ROT0, "Visco", "Captain Tomaday", MACHINE_SUPPORTS_SAVE ) -GAME( 1999, ganryu, neogeo, ganryu, neogeo, mvs_state, 0, ROT0, "Visco", "Ganryu / Musashi Ganryuki" , MACHINE_SUPPORTS_SAVE ) /* Encrypted GFX */ -GAME( 2000, bangbead, neogeo, bangbead, neogeo, mvs_state, 0, ROT0, "Visco", "Bang Bead", MACHINE_SUPPORTS_SAVE ) -GAME( 2000, b2b, neogeo, neobase, neogeo, mvs_state, 0, ROT0, "Visco", "Bang Bang Busters (2010 NCI release)" , MACHINE_SUPPORTS_SAVE ) +GAME( 1992, androdun, neogeo, neobase, neogeo, mvs_led_state, 0, ROT0, "Visco", "Andro Dunos (NGM-049 ~ NGH-049)", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, puzzledp, neogeo, neobase, neogeo, mvs_led_state, 0, ROT0, "Taito (Visco license)", "Puzzle De Pon!", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, neomrdo, neogeo, neobase, neogeo, mvs_led_state, 0, ROT0, "Visco", "Neo Mr. Do!", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, goalx3, neogeo, neobase, neogeo, mvs_led_state, 0, ROT0, "Visco", "Goal! Goal! Goal!", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, neodrift, neogeo, neobase, neogeo, mvs_led_state, 0, ROT0, "Visco", "Neo Drift Out - New Technology", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, breakers, neogeo, neobase, neogeo, mvs_led_state, 0, ROT0, "Visco", "Breakers", MACHINE_SUPPORTS_SAVE ) +GAME( 1997, puzzldpr, puzzledp, neobase, neogeo, mvs_led_state, 0, ROT0, "Taito (Visco license)", "Puzzle De Pon! R!", MACHINE_SUPPORTS_SAVE ) +GAME( 1998, breakrev, neogeo, neobase, neogeo, mvs_led_state, 0, ROT0, "Visco", "Breakers Revenge", MACHINE_SUPPORTS_SAVE ) +GAME( 1998, flipshot, neogeo, neobase, neogeo, mvs_led_state, 0, ROT0, "Visco", "Battle Flip Shot", MACHINE_SUPPORTS_SAVE ) +GAME( 1999, ctomaday, neogeo, neobase, neogeo, mvs_led_state, 0, ROT0, "Visco", "Captain Tomaday", MACHINE_SUPPORTS_SAVE ) +GAME( 1999, ganryu, neogeo, ganryu, neogeo, mvs_led_state, 0, ROT0, "Visco", "Ganryu / Musashi Ganryuki" , MACHINE_SUPPORTS_SAVE ) /* Encrypted GFX */ +GAME( 2000, bangbead, neogeo, bangbead, neogeo, mvs_led_state, 0, ROT0, "Visco", "Bang Bead", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, b2b, neogeo, neobase, neogeo, mvs_led_state, 0, ROT0, "Visco", "Bang Bang Busters (2010 NCI release)" , MACHINE_SUPPORTS_SAVE ) // Mega Enterprise -GAME( 2002, mslug4, neogeo, mslug4, neogeo, mvs_state, 0, ROT0, "Mega / Playmore", "Metal Slug 4 (NGM-2630)", MACHINE_SUPPORTS_SAVE ) -GAME( 2002, mslug4h, mslug4, mslug4, neogeo, mvs_state, 0, ROT0, "Mega / Playmore", "Metal Slug 4 (NGH-2630)", MACHINE_SUPPORTS_SAVE ) -GAME( 2002, ms4plus, mslug4, ms4plus, neogeo, mvs_state, 0, ROT0, "bootleg", "Metal Slug 4 Plus (bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 2002, mslug4, neogeo, mslug4, neogeo, mvs_led_state, 0, ROT0, "Mega / Playmore", "Metal Slug 4 (NGM-2630)", MACHINE_SUPPORTS_SAVE ) +GAME( 2002, mslug4h, mslug4, mslug4, neogeo, mvs_led_state, 0, ROT0, "Mega / Playmore", "Metal Slug 4 (NGH-2630)", MACHINE_SUPPORTS_SAVE ) +GAME( 2002, ms4plus, mslug4, ms4plus, neogeo, mvs_led_state, 0, ROT0, "bootleg", "Metal Slug 4 Plus (bootleg)", MACHINE_SUPPORTS_SAVE ) // Evoga -GAME( 2002, rotd, neogeo, rotd, neogeo, mvs_state, 0, ROT0, "Evoga / Playmore", "Rage of the Dragons (NGM-2640?)", MACHINE_SUPPORTS_SAVE ) -GAME( 2002, rotdh, rotd, rotd, neogeo, mvs_state, 0, ROT0, "Evoga / Playmore", "Rage of the Dragons (NGH-2640?)", MACHINE_SUPPORTS_SAVE ) +GAME( 2002, rotd, neogeo, rotd, neogeo, mvs_led_state, 0, ROT0, "Evoga / Playmore", "Rage of the Dragons (NGM-2640?)", MACHINE_SUPPORTS_SAVE ) +GAME( 2002, rotdh, rotd, rotd, neogeo, mvs_led_state, 0, ROT0, "Evoga / Playmore", "Rage of the Dragons (NGH-2640?)", MACHINE_SUPPORTS_SAVE ) // Atlus -GAME( 2002, matrim, neogeo, matrim, neogeo, mvs_state, 0, ROT0, "Noise Factory / Atlus", "Matrimelee / Shin Gouketsuji Ichizoku Toukon (NGM-2660 ~ NGH-2660)", MACHINE_SUPPORTS_SAVE ) -GAME( 2002, matrimbl, matrim, matrimbl, neogeo, mvs_state, 0, ROT0, "bootleg", "Matrimelee / Shin Gouketsuji Ichizoku Toukon (bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 2002, matrim, neogeo, matrim, neogeo, mvs_led_state, 0, ROT0, "Noise Factory / Atlus", "Matrimelee / Shin Gouketsuji Ichizoku Toukon (NGM-2660 ~ NGH-2660)", MACHINE_SUPPORTS_SAVE ) +GAME( 2002, matrimbl, matrim, matrimbl, neogeo, mvs_led_state, 0, ROT0, "bootleg", "Matrimelee / Shin Gouketsuji Ichizoku Toukon (bootleg)", MACHINE_SUPPORTS_SAVE ) /***** Unlicensed commercial releases *****/ // BrezzaSoft -GAME( 2001, jockeygp, neogeo, jockeygp, jockeygp, mvs_state, 0, ROT0, "Sun Amusement / BrezzaSoft", "Jockey Grand Prix (set 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 2001, jockeygpa, jockeygp, jockeygp, jockeygp, mvs_state, 0, ROT0, "Sun Amusement / BrezzaSoft", "Jockey Grand Prix (set 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 2001, vliner, neogeo, vliner, vliner, mvs_state, 0, ROT0, "Dyna / BrezzaSoft", "V-Liner (set 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 2001, vlinero, vliner, vliner, vliner, mvs_state, 0, ROT0, "Dyna / BrezzaSoft", "V-Liner (set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 2001, jockeygp, neogeo, jockeygp, jockeygp, mvs_led_state, 0, ROT0, "Sun Amusement / BrezzaSoft", "Jockey Grand Prix (set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 2001, jockeygpa, jockeygp, jockeygp, jockeygp, mvs_led_state, 0, ROT0, "Sun Amusement / BrezzaSoft", "Jockey Grand Prix (set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 2001, vliner, neogeo, vliner, vliner, mvs_led_state, 0, ROT0, "Dyna / BrezzaSoft", "V-Liner (set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 2001, vlinero, vliner, vliner, vliner, mvs_led_state, 0, ROT0, "Dyna / BrezzaSoft", "V-Liner (set 2)", MACHINE_SUPPORTS_SAVE ) // Kyle Hodgetts -GAME( 2000, diggerma, neogeo, neobase, neogeo, mvs_state, 0, ROT0, "Kyle Hodgetts", "Digger Man (prototype)", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, diggerma, neogeo, neobase, neogeo, mvs_led_state, 0, ROT0, "Kyle Hodgetts", "Digger Man (prototype)", MACHINE_SUPPORTS_SAVE ) // Vektorlogic -GAME( 2004, sbp, neogeo, sbp, neogeo, mvs_state, 0, ROT0, "Vektorlogic", "Super Bubble Pop", MACHINE_NOT_WORKING ) +GAME( 2004, sbp, neogeo, sbp, neogeo, mvs_led_state, 0, ROT0, "Vektorlogic", "Super Bubble Pop", MACHINE_NOT_WORKING ) // NG:DEV.TEAM -GAME( 2005, lasthope, neogeo, neobase, neogeo, mvs_state, 0, ROT0, "NG:DEV.TEAM", "Last Hope (bootleg AES to MVS conversion, no coin support)", MACHINE_SUPPORTS_SAVE ) // wasn't actually released on MVS but bootleg carts have been sold, this doesn't accept coins, runs like a console game +GAME( 2005, lasthope, neogeo, neobase, neogeo, mvs_led_state, 0, ROT0, "NG:DEV.TEAM", "Last Hope (bootleg AES to MVS conversion, no coin support)", MACHINE_SUPPORTS_SAVE ) // wasn't actually released on MVS but bootleg carts have been sold, this doesn't accept coins, runs like a console game // Last Hope Pink Bullets (c)2008 - MVS/AES // Fast Striker (c)2010 - MVS/AES // Fast Striker 1.5 (c)2010 - MVS/AES diff --git a/src/mame/includes/neogeo.h b/src/mame/includes/neogeo.h index 883b707ec2f..430b55008e8 100644 --- a/src/mame/includes/neogeo.h +++ b/src/mame/includes/neogeo.h @@ -217,6 +217,7 @@ protected: } virtual void machine_start() override; + virtual void machine_reset() override; virtual DECLARE_WRITE8_MEMBER(io_control_w) override; DECLARE_WRITE_LINE_MEMBER(set_save_ram_unlock); diff --git a/src/mame/layout/irrmaze.lay b/src/mame/layout/irrmaze.lay new file mode 100644 index 00000000000..b158ccf8881 --- /dev/null +++ b/src/mame/layout/irrmaze.lay @@ -0,0 +1,118 @@ +<?xml version="1.0"?> +<!-- +license:CC0 +copyright-holders:Vas Crabb +--> +<mamelayout version="2"> + <!-- + sit0...sit9 TIMER LAMP *0x10fe1c & 0x03ff + sit10 TRACK BALL LAMP *0x10fe1f != 0 + sit11 SIDE LAMP *0x10fe20 != 0 + sit12...sit13 COLOR LAMP *0x10fe21 & 0x0003 + sit14 FLASH LAMP *0x10fe22 != 0 + sit15 ??? *0x10fe29 != 0 + --> + + <element name="blank"> + <rect><color red="0" green="0" blue="0" /></rect> + </element> + + <element name="marquee"> + <rect><color red="0.5" green="0" blue="0" /></rect> + </element> + + <element name="timerlamp"> + <disk state="0"><color red="0.3" green="0" blue="0" /></disk> + <disk state="1"><color red="1" green="0.3" blue="0.1" /></disk> + </element> + + <element name="sidelamp"> + <rect state="0"><color red="0.5" green="0.5" blue="0.1" /></rect> + <rect state="1"><color red="1" green="1" blue="0.5" /></rect> + </element> + + <element name="flashstick" defstate="1"> + <rect state="0"><color red="1" green="1" blue="1" /></rect> + <rect state="1"><color red="0" green="0" blue="0" /></rect> + </element> + + <element name="flashgrille" defstate="1"> + <disk state="0"><color red="1" green="1" blue="1" /></disk> + <disk state="1"><color red="0" green="0" blue="0" /></disk> + </element> + + <element name="cpanel"> + <rect><color red="0.4" green="0.4" blue="0.4" /></rect> + </element> + + <element name="trackball"> + <disk state="0"><color red="0.6" green="0" blue="0" /></disk> + <disk state="1"><color red="0.8" green="0.7" blue="0.1" /></disk> + </element> + + <element name="redbtn"> + <disk state="0"><color red="0.7" green="0" blue="0" /></disk> + <disk state="1"><color red="0.35" green="0" blue="0" /></disk> + </element> + + <element name="bluebtn"> + <disk state="0"><color red="0.2" green="0.5" blue="1" /></disk> + <disk state="1"><color red="0.1" green="0.25" blue="0.5" /></disk> + </element> + + <view name="Cabinet Lamps"> + <screen index="0"><bounds x="4.5" y="4.5" width="14" height="10.5" /></screen> + + <bezel element="marquee"><bounds x="0" y="0" width="23" height="2" /></bezel> + <bezel element="timerlamp" name="sit0"><bounds x="2" y="0.25" width="1" height="1" /></bezel> + <bezel element="timerlamp" name="sit1"><bounds x="4" y="0.25" width="1" height="1" /></bezel> + <bezel element="timerlamp" name="sit2"><bounds x="6" y="0.25" width="1" height="1" /></bezel> + <bezel element="timerlamp" name="sit3"><bounds x="8" y="0.25" width="1" height="1" /></bezel> + <bezel element="timerlamp" name="sit4"><bounds x="10" y="0.25" width="1" height="1" /></bezel> + <bezel element="timerlamp" name="sit5"><bounds x="12" y="0.25" width="1" height="1" /></bezel> + <bezel element="timerlamp" name="sit6"><bounds x="14" y="0.25" width="1" height="1" /></bezel> + <bezel element="timerlamp" name="sit7"><bounds x="16" y="0.25" width="1" height="1" /></bezel> + <bezel element="timerlamp" name="sit8"><bounds x="18" y="0.25" width="1" height="1" /></bezel> + <bezel element="timerlamp" name="sit9"><bounds x="20" y="0.25" width="1" height="1" /></bezel> + + <bezel element="flashstick" name="sit14"><bounds x="0.75" y="6.5" width="1.5" height="6" /></bezel> + <bezel element="sidelamp" name="sit11"><bounds x="0.5" y="12.5" width="2" height="4.5" /></bezel> + <bezel element="flashstick" name="sit14"><bounds x="20.75" y="6.5" width="1.5" height="6" /></bezel> + <bezel element="sidelamp" name="sit11"><bounds x="20.5" y="12.5" width="2" height="4.5" /></bezel> + <bezel element="flashgrille" name="sit14"><bounds x="7" y="17.25" width="2.5" height="2.5" /></bezel> + <bezel element="flashgrille" name="sit14"><bounds x="13.5" y="17.25" width="2.5" height="2.5" /></bezel> + + <cpanel element="cpanel"><bounds x="4.5" y="20" width="14" height="7" /></cpanel> + <cpanel element="trackball" name="sit10"><bounds x="10" y="22" width="3" height="3" /></cpanel> + <cpanel element="bluebtn" inputtag="SYSTEM" inputmask="0x0100"><bounds x="11.125" y="20.125" width="0.75" height="0.75" /></cpanel> + <cpanel element="redbtn" inputtag="edge:irrmaze:BUTTONS" inputmask="0x10"><bounds x="7" y="23" width="1" height="1" /></cpanel> + <cpanel element="bluebtn" inputtag="edge:irrmaze:BUTTONS" inputmask="0x20"><bounds x="5" y="22.5" width="1" height="1" /></cpanel> + <cpanel element="redbtn" inputtag="edge:irrmaze:BUTTONS" inputmask="0x40"><bounds x="15" y="23" width="1" height="1" /></cpanel> + <cpanel element="bluebtn" inputtag="edge:irrmaze:BUTTONS" inputmask="0x80"><bounds x="17" y="22.5" width="1" height="1" /></cpanel> + </view> + + <view name="Screen 0 Standard (4:3)"> + <screen index="0"> + <bounds left="0" top="0" right="4" bottom="3" /> + </screen> + </view> + + <view name="Screen 0 Cropped (304x224)"> + <bezel name="blank" element="blank"> + <bounds left="0" top="0" right="0.1" bottom="3" /> + </bezel> + <bezel name="blank" element="blank"> + <bounds left="3.9" top="0" right="4" bottom="3" /> + </bezel> + <screen index="0"> + <bounds left="0" top="0" right="4" bottom="3" /> + </screen> + </view> + + <view name="Screen 0 Stretched (304x224)"> + <bounds left="0" top="0" right="4" bottom="3" /> + <screen index="0"> + <bounds left="-0.105263" top="0" right="4.105263" bottom="3" /> + </screen> + </view> +</mamelayout> |