diff --git a/src/mame/drivers/neogeo.cpp b/src/mame/drivers/neogeo.cpp index 7a6fd737b51..b82aa064d91 100644 --- a/src/mame/drivers/neogeo.cpp +++ b/src/mame/drivers/neogeo.cpp @@ -130,6 +130,30 @@ |---------------------------------------------------------------------| + Mainboard features + ================== + +------+-----+-----+-----+--------+--------+-------+-------+-------+-----+---+--------+-------+ + | |Slots|Edge |Coins|Counters|Lockouts|Mahjong|Mono/St|Memcard|7-seg|EL | BIOS |Data In| + +------+-----+-----+-----+--------+--------+-------+-------+-------+-----+---+--------+-------+ + |MV-1 | 1 |JAMMA| 2 | 2 | 2 | 2 |switch |header | yes |no | socket | yes | + |MV-1A | 1 |JAMMA| 2 | 2 | 0 | 0 | mono | none | no |no | socket | no | + |MV-1AX| 1 |JAMMA| 2 | 2 | 0 | 0 | mono | none | no |no |soldered| no | + |MV-1B | 1 |JAMMA| 2 | 2 | 0 | 0 | mono | none | no |no |soldered| no | + |MV-1C | 1 |JAMMA| 2 | 2 | 0 | 0 | mono | none | no |no |soldered| no | + |MV-1F | 1 |JAMMA| 2 | 2 | 2 | 2 |switch | none | yes |no | socket | no | + |MV-1FZ| 1 |JAMMA| 2 | 2 | 2 | 0 | mono | none | no |no | socket | yes | + |MV-1T | 1 |JAMMA| 2 | 2 | 0 | 2 |switch | none | yes |no | socket | no | + |MV-2F | 2 | MVS | 4 | 2 | 2 | 2 | both |onboard| yes |yes| socket | no | + |MV-4F | 4 | MVS | 4 | 2 | 2 | 2 | both |header | yes |yes| socket | no | + |MV-6F | 6 | MVS | 4 | 2 | 2 | 2 | both |header | yes |yes| socket | no | + +------+-----+-----+-----+--------+--------+-------+-------+-------+-----+---+--------+-------+ + + * 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 + ***************************************************************************** Neo-Geo game PCB infos: @@ -499,6 +523,128 @@ #define IRQ2CTRL_AUTOLOAD_REPEAT (0x80) +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 mvs(machine_config &config); + + // fixed software configurations + void neobase(machine_config &config); + void fatfur2(machine_config &config); + void kizuna4p(machine_config &config); + void kof97oro(machine_config &config); + void kog(machine_config &config); + void irrmaze(machine_config &config); + void kof98(machine_config &config); + void mslugx(machine_config &config); + void kof99(machine_config &config); + void kof99k(machine_config &config); + void garou(machine_config &config); + void garouh(machine_config &config); + void garoubl(machine_config &config); + void mslug3(machine_config &config); + void mslug3h(machine_config &config); + void mslug3b6(machine_config &config); + void kof2000(machine_config &config); + void kof2000n(machine_config &config); + void zupapa(machine_config &config); + void sengoku3(machine_config &config); + void kof2001(machine_config &config); + void cthd2k3(machine_config &config); + void ct2k3sp(machine_config &config); + void ct2k3sa(machine_config &config); + void kof2002(machine_config &config); + void kof2002b(machine_config &config); + void kf2k2pls(machine_config &config); + void kf2k2mp(machine_config &config); + void kf2k2mp2(machine_config &config); + void kof10th(machine_config &config); + void kf10thep(machine_config &config); + void kf2k5uni(machine_config &config); + void kof2k4se(machine_config &config); + void mslug5(machine_config &config); + void ms5plus(machine_config &config); + void svc(machine_config &config); + void svcboot(machine_config &config); + void svcplus(machine_config &config); + void svcplusa(machine_config &config); + void svcsplus(machine_config &config); + void samsho5(machine_config &config); + void samsho5b(machine_config &config); + void kof2003(machine_config &config); + void kof2003h(machine_config &config); + void kf2k3bl(machine_config &config); + void kf2k3pl(machine_config &config); + void kf2k3upl(machine_config &config); + void samsh5sp(machine_config &config); + void neogeo_mj(machine_config &config); + void preisle2(machine_config &config); + void nitd(machine_config &config); + void s1945p(machine_config &config); + void lans2004(machine_config &config); + void pnyaa(machine_config &config); + void popbounc(machine_config &config); + void ganryu(machine_config &config); + void bangbead(machine_config &config); + void mslug4(machine_config &config); + void ms4plus(machine_config &config); + void rotd(machine_config &config); + void matrim(machine_config &config); + void matrimbl(machine_config &config); + void jockeygp(machine_config &config); + void vliner(machine_config &config); + void sbp(machine_config &config); + +protected: + virtual void machine_start() override; + + virtual void neogeo_postload() override; + + virtual DECLARE_WRITE8_MEMBER(io_control_w) override; + +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 aes_state : public aes_base_state +{ +public: + aes_state(const machine_config &mconfig, device_type type, const char *tag) + : aes_base_state(mconfig, type, tag) + { + } + + void aes(machine_config &config); + +protected: + virtual void machine_start() override; + + virtual void neogeo_postload() override; +}; + + void neogeo_state::adjust_display_position_interrupt_timer() { attotime period = attotime::from_ticks((uint64_t)m_display_counter + 1, NEOGEO_PIXEL_CLOCK); @@ -644,17 +790,17 @@ WRITE8_MEMBER(neogeo_state::audio_cpu_enable_nmi_w) * *************************************/ -READ16_MEMBER(neogeo_state::in0_r) +READ16_MEMBER(ngarcade_base_state::in0_r) { return ((m_edge->in0_r(space, offset) & m_ctrl1->ctrl_r(space, offset)) << 8) | m_dsw->read(); } -READ16_MEMBER(neogeo_state::in1_r) +READ16_MEMBER(ngarcade_base_state::in1_r) { return ((m_edge->in1_r(space, offset) & m_ctrl2->ctrl_r(space, offset)) << 8) | 0xff; } -CUSTOM_INPUT_MEMBER(neogeo_state::kizuna4p_start_r) +CUSTOM_INPUT_MEMBER(mvs_state::kizuna4p_start_r) { return (m_edge->read_start_sel() & 0x05) | ~0x05; } @@ -663,44 +809,66 @@ WRITE8_MEMBER(neogeo_state::io_control_w) { switch (offset) { - 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 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: - if (m_type == NEOGEO_MVS) - if (m_slots[data] != nullptr) set_slot_idx(data); - break; + case 0x10: + case 0x18: + case 0x20: + case 0x28: +// case 0x30: break; // coin counters +// case 0x31: break; // coin counters +// case 0x32: break; // coin lockout +// case 0x33: break; // coin lockout + // arcade peripherals + break; - case 0x18: - if (m_type == NEOGEO_MVS) - set_output_latch(data); - break; + default: + logerror("PC: %x Unmapped I/O control write. Offset: %x Data: %x\n", m_maincpu->pc(), offset, data); + } +} - case 0x20: - if (m_type == NEOGEO_MVS) - set_output_data(data); - break; - - case 0x28: - if (m_type == NEOGEO_MVS) - { - m_upd4990a->data_in_w(data >> 0 & 1); - m_upd4990a->clk_w(data >> 1 & 1); - m_upd4990a->stb_w(data >> 2 & 1); - } - break; +WRITE8_MEMBER(ngarcade_base_state::io_control_w) +{ + switch (offset) + { + 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: break; // coin counters // case 0x31: break; // coin counters // case 0x32: break; // coin lockout // case 0x33: break; // coin lockout - default: - logerror("PC: %x Unmapped I/O control write. Offset: %x Data: %x\n", m_maincpu->pc(), offset, data); - break; + default: + neogeo_state::io_control_w(space, offset, data, mem_mask); + } +} + +WRITE8_MEMBER(mvs_state::io_control_w) +{ + switch (offset) + { + case 0x10: + if (m_slots[data] != nullptr) set_slot_idx(data); + break; + + case 0x18: + set_output_latch(data); + break; + + case 0x20: + set_output_data(data); + break; + + default: + ngarcade_base_state::io_control_w(space, offset, data, mem_mask); } } @@ -738,13 +906,13 @@ READ16_MEMBER(neogeo_state::unmapped_r) * *************************************/ -WRITE_LINE_MEMBER(neogeo_state::set_save_ram_unlock) +WRITE_LINE_MEMBER(ngarcade_base_state::set_save_ram_unlock) { m_save_ram_unlocked = state; } -WRITE16_MEMBER(neogeo_state::save_ram_w) +WRITE16_MEMBER(ngarcade_base_state::save_ram_w) { if (m_save_ram_unlocked) COMBINE_DATA(&m_save_ram[offset]); @@ -892,7 +1060,7 @@ WRITE16_MEMBER(neogeo_state::write_banksel) * *************************************/ -void neogeo_state::set_outputs() +void mvs_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 }; @@ -911,7 +1079,7 @@ void neogeo_state::set_outputs() } -void neogeo_state::set_output_latch( uint8_t data ) +void mvs_state::set_output_latch(uint8_t data) { /* looks like the LEDs are set on the falling edge */ @@ -935,7 +1103,7 @@ void neogeo_state::set_output_latch( uint8_t data ) } -void neogeo_state::set_output_data( uint8_t data ) +void mvs_state::set_output_data(uint8_t data) { m_output_data = data; } @@ -1281,7 +1449,7 @@ void neogeo_state::set_slot_idx(int slot) * *************************************/ -void neogeo_state::common_machine_start() +void neogeo_state::machine_start() { m_use_cart_vectors = 0; @@ -1307,26 +1475,18 @@ void neogeo_state::common_machine_start() save_item(NAME(m_use_cart_vectors)); save_item(NAME(m_use_cart_audio)); - if (m_type == NEOGEO_MVS) - { - save_item(NAME(m_save_ram_unlocked)); - save_item(NAME(m_output_data)); - save_item(NAME(m_output_latch)); - save_item(NAME(m_el_value)); - save_item(NAME(m_led1_value)); - save_item(NAME(m_led2_value)); - } - machine().save().register_postload(save_prepost_delegate(FUNC(neogeo_state::neogeo_postload), this)); } -void neogeo_state::machine_start() +void ngarcade_base_state::machine_start() { - m_digits.resolve(); - m_lamps.resolve(); + neogeo_state::machine_start(); - m_type = NEOGEO_MVS; - common_machine_start(); + // install controllers + if (m_ctrl1) + m_maincpu->space(AS_PROGRAM).install_read_handler(0x300000, 0x300001, 0, 0x01ff7e, 0, read16_delegate(FUNC(ngarcade_base_state::in0_r), this)); + if (m_ctrl2) + m_maincpu->space(AS_PROGRAM).install_read_handler(0x340000, 0x340001, 0, 0x01fffe, 0, read16_delegate(FUNC(ngarcade_base_state::in1_r), this)); // enable rtc and serial mode m_upd4990a->cs_w(1); @@ -1335,23 +1495,42 @@ void neogeo_state::machine_start() m_upd4990a->c1_w(1); m_upd4990a->c2_w(1); + save_item(NAME(m_save_ram_unlocked)); +} + +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); m_curr_slot = -1; set_slot_idx(0); + + save_item(NAME(m_output_data)); + save_item(NAME(m_output_latch)); + save_item(NAME(m_el_value)); + save_item(NAME(m_led1_value)); + save_item(NAME(m_led2_value)); } void neogeo_state::neogeo_postload() { m_bank_audio_main->set_entry(m_use_cart_audio); +} - if (m_type == NEOGEO_MVS) - set_outputs(); - if (m_type == NEOGEO_MVS || m_type == NEOGEO_AES) - if (m_slots[m_curr_slot] && m_slots[m_curr_slot]->get_rom_size() > 0) - m_bank_cartridge->set_base((uint8_t *)m_slots[m_curr_slot]->get_rom_base() + m_bank_base); +void mvs_state::neogeo_postload() +{ + ngarcade_base_state::neogeo_postload(); + + set_outputs(); + if (m_slots[m_curr_slot] && m_slots[m_curr_slot]->get_rom_size() > 0) + m_bank_cartridge->set_base((uint8_t *)m_slots[m_curr_slot]->get_rom_base() + m_bank_base); } @@ -1407,7 +1586,7 @@ READ16_MEMBER(neogeo_state::banked_vectors_r) * *************************************/ -void neogeo_state::neogeo_main_map(address_map &map) +void ngarcade_base_state::neogeo_main_map(address_map &map) { map(0x100000, 0x10ffff).mirror(0x0f0000).ram(); @@ -1415,32 +1594,32 @@ void neogeo_state::neogeo_main_map(address_map &map) map(0x300080, 0x300081).mirror(0x01ff7e).portr("TEST"); map(0x300001, 0x300001).mirror(0x01fffe).w("watchdog", FUNC(watchdog_timer_device::reset_w)); map(0x320000, 0x320001).mirror(0x01fffe).portr("AUDIO/COIN"); - map(0x320000, 0x320000).mirror(0x01fffe).w(this, FUNC(neogeo_state::audio_command_w)); - map(0x360000, 0x37ffff).r(this, FUNC(neogeo_state::unmapped_r)); + map(0x320000, 0x320000).mirror(0x01fffe).w(this, FUNC(ngarcade_base_state::audio_command_w)); + map(0x360000, 0x37ffff).r(this, FUNC(ngarcade_base_state::unmapped_r)); map(0x380000, 0x380001).mirror(0x01fffe).portr("SYSTEM"); - map(0x380000, 0x38007f).mirror(0x01ff80).w(this, FUNC(neogeo_state::io_control_w)).umask16(0x00ff); - map(0x3a0000, 0x3a001f).mirror(0x01ffe0).r(this, FUNC(neogeo_state::unmapped_r)); + map(0x380000, 0x38007f).mirror(0x01ff80).w(this, FUNC(ngarcade_base_state::io_control_w)).umask16(0x00ff); + map(0x3a0000, 0x3a001f).mirror(0x01ffe0).r(this, FUNC(ngarcade_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_state::video_register_r)); - map(0x3c0000, 0x3c000f).mirror(0x01fff0).w(this, FUNC(neogeo_state::video_register_w)); - map(0x3e0000, 0x3fffff).r(this, FUNC(neogeo_state::unmapped_r)); - map(0x400000, 0x401fff).mirror(0x3fe000).rw(this, FUNC(neogeo_state::paletteram_r), FUNC(neogeo_state::paletteram_w)); - map(0x800000, 0x800fff).rw(this, FUNC(neogeo_state::memcard_r), FUNC(neogeo_state::memcard_w)); + map(0x3c0000, 0x3c0007).mirror(0x01fff8).r(this, FUNC(ngarcade_base_state::video_register_r)); + map(0x3c0000, 0x3c000f).mirror(0x01fff0).w(this, FUNC(ngarcade_base_state::video_register_w)); + map(0x3e0000, 0x3fffff).r(this, FUNC(ngarcade_base_state::unmapped_r)); + map(0x400000, 0x401fff).mirror(0x3fe000).rw(this, FUNC(ngarcade_base_state::paletteram_r), FUNC(ngarcade_base_state::paletteram_w)); + map(0x800000, 0x800fff).rw(this, FUNC(ngarcade_base_state::memcard_r), FUNC(ngarcade_base_state::memcard_w)); map(0xc00000, 0xc1ffff).mirror(0x0e0000).rom().region("mainbios", 0); - map(0xd00000, 0xd0ffff).mirror(0x0f0000).ram().w(this, FUNC(neogeo_state::save_ram_w)).share("saveram"); - map(0xe00000, 0xffffff).r(this, FUNC(neogeo_state::unmapped_r)); + map(0xd00000, 0xd0ffff).mirror(0x0f0000).ram().w(this, FUNC(ngarcade_base_state::save_ram_w)).share("saveram"); + map(0xe00000, 0xffffff).r(this, FUNC(ngarcade_base_state::unmapped_r)); } -void neogeo_state::main_map_slot(address_map &map) +void ngarcade_base_state::main_map_slot(address_map &map) { neogeo_main_map(map); - map(0x000000, 0x00007f).r(this, FUNC(neogeo_state::banked_vectors_r)); + map(0x000000, 0x00007f).r(this, FUNC(ngarcade_base_state::banked_vectors_r)); } -READ16_MEMBER(aes_state::aes_in2_r) +READ16_MEMBER(aes_base_state::aes_in2_r) { uint32_t ret = m_io_in2->read(); ret = (ret & 0xfcff) | (m_ctrl1->read_start_sel() << 8); @@ -1448,27 +1627,27 @@ READ16_MEMBER(aes_state::aes_in2_r) return ret; } -void aes_state::aes_main_map(address_map &map) +void aes_base_state::aes_main_map(address_map &map) { - map(0x000000, 0x00007f).r(this, FUNC(aes_state::banked_vectors_r)); + map(0x000000, 0x00007f).r(this, FUNC(aes_base_state::banked_vectors_r)); map(0x100000, 0x10ffff).mirror(0x0f0000).ram(); // some games have protection devices in the 0x200000 region, it appears to map to cart space, not surprising, the ROM is read here too map(0x300000, 0x300000).mirror(0x01fffe).r(m_ctrl1, FUNC(neogeo_control_port_device::ctrl_r)); map(0x320000, 0x320001).mirror(0x01fffe).portr("AUDIO"); - map(0x320000, 0x320000).mirror(0x01fffe).w(this, FUNC(aes_state::audio_command_w)); + map(0x320000, 0x320000).mirror(0x01fffe).w(this, FUNC(aes_base_state::audio_command_w)); map(0x340000, 0x340000).mirror(0x01fffe).r(m_ctrl2, FUNC(neogeo_control_port_device::ctrl_r)); - map(0x360000, 0x37ffff).r(this, FUNC(aes_state::unmapped_r)); - map(0x380000, 0x380001).mirror(0x01fffe).r(this, FUNC(aes_state::aes_in2_r)); - map(0x380000, 0x38007f).mirror(0x01ff80).w(this, FUNC(aes_state::io_control_w)).umask16(0x00ff); - map(0x3a0000, 0x3a001f).mirror(0x01ffe0).r(this, FUNC(aes_state::unmapped_r)); + map(0x360000, 0x37ffff).r(this, FUNC(aes_base_state::unmapped_r)); + map(0x380000, 0x380001).mirror(0x01fffe).r(this, FUNC(aes_base_state::aes_in2_r)); + map(0x380000, 0x38007f).mirror(0x01ff80).w(this, FUNC(aes_base_state::io_control_w)).umask16(0x00ff); + map(0x3a0000, 0x3a001f).mirror(0x01ffe0).r(this, FUNC(aes_base_state::unmapped_r)); map(0x3a0000, 0x3a001f).mirror(0x01ffe0).w("systemlatch", FUNC(hc259_device::write_a3)).umask16(0x00ff); - map(0x3c0000, 0x3c0007).mirror(0x01fff8).r(this, FUNC(aes_state::video_register_r)); - map(0x3c0000, 0x3c000f).mirror(0x01fff0).w(this, FUNC(aes_state::video_register_w)); - map(0x3e0000, 0x3fffff).r(this, FUNC(aes_state::unmapped_r)); - map(0x400000, 0x401fff).mirror(0x3fe000).rw(this, FUNC(aes_state::paletteram_r), FUNC(aes_state::paletteram_w)); - map(0x800000, 0x800fff).rw(this, FUNC(aes_state::memcard_r), FUNC(aes_state::memcard_w)); + map(0x3c0000, 0x3c0007).mirror(0x01fff8).r(this, FUNC(aes_base_state::video_register_r)); + map(0x3c0000, 0x3c000f).mirror(0x01fff0).w(this, FUNC(aes_base_state::video_register_w)); + map(0x3e0000, 0x3fffff).r(this, FUNC(aes_base_state::unmapped_r)); + map(0x400000, 0x401fff).mirror(0x3fe000).rw(this, FUNC(aes_base_state::paletteram_r), FUNC(aes_base_state::paletteram_w)); + map(0x800000, 0x800fff).rw(this, FUNC(aes_base_state::memcard_r), FUNC(aes_base_state::memcard_w)); map(0xc00000, 0xc1ffff).mirror(0x0e0000).rom().region("mainbios", 0); - map(0xd00000, 0xffffff).r(this, FUNC(aes_state::unmapped_r)); + map(0xd00000, 0xffffff).r(this, FUNC(aes_base_state::unmapped_r)); } @@ -1594,7 +1773,7 @@ INPUT_PORTS_START( aes ) // PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_OTHER ) // what is JP2 for? somehow related to system reset, disable watchdog? INPUT_PORTS_END -INPUT_CHANGED_MEMBER(aes_state::aes_jp1) +INPUT_CHANGED_MEMBER(aes_base_state::aes_jp1) { // Shorting JP1 causes a 68000 /BERR (Bus Error). On Dev Bios, this pops up the debug monitor. if (newval) @@ -1614,7 +1793,6 @@ MACHINE_CONFIG_START(neogeo_state::neogeo_base) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, NEOGEO_MAIN_CPU_CLOCK) - MCFG_CPU_PROGRAM_MAP(neogeo_main_map) MCFG_CPU_ADD("audiocpu", Z80, NEOGEO_AUDIO_CPU_CLOCK) MCFG_CPU_PROGRAM_MAP(audio_map) @@ -1654,18 +1832,17 @@ MACHINE_CONFIG_START(neogeo_state::neogeo_base) MCFG_SOUND_ROUTE(0, "rspeaker", 0.28) MCFG_SOUND_ROUTE(1, "lspeaker", 0.98) MCFG_SOUND_ROUTE(2, "rspeaker", 0.98) - MACHINE_CONFIG_END -MACHINE_CONFIG_START(neogeo_state::neogeo_arcade) +MACHINE_CONFIG_START(ngarcade_base_state::neogeo_arcade) neogeo_base(config); MCFG_CPU_MODIFY("maincpu") MCFG_CPU_PROGRAM_MAP(main_map_slot) MCFG_DEVICE_MODIFY("systemlatch") - MCFG_ADDRESSABLE_LATCH_Q5_OUT_CB(WRITELINE(neogeo_state, set_use_cart_audio)) - MCFG_ADDRESSABLE_LATCH_Q6_OUT_CB(WRITELINE(neogeo_state, set_save_ram_unlock)) + MCFG_ADDRESSABLE_LATCH_Q5_OUT_CB(WRITELINE(ngarcade_base_state, set_use_cart_audio)) + MCFG_ADDRESSABLE_LATCH_Q6_OUT_CB(WRITELINE(ngarcade_base_state, set_save_ram_unlock)) MCFG_WATCHDOG_MODIFY("watchdog") MCFG_WATCHDOG_TIME_INIT(attotime::from_ticks(3244030, NEOGEO_MASTER_CLOCK)) @@ -1718,7 +1895,7 @@ MACHINE_CONFIG_END MCFG_NEOGEO_CARTRIDGE_ADD("cslot1", neogeo_cart, _default) \ MCFG_SET_IMAGE_LOADABLE(false) -MACHINE_CONFIG_START(neogeo_state::mvs) +MACHINE_CONFIG_START(mvs_state::mvs) neogeo_arcade(config); MCFG_DEVICE_REMOVE("edge") MCFG_NEOGEO_CONTROL_EDGE_CONNECTOR_ADD("edge", neogeo_arc_edge, "joy", false) @@ -1735,21 +1912,33 @@ MACHINE_CONFIG_END -MACHINE_START_MEMBER(aes_state, aes) +void aes_base_state::machine_start() { - m_type = NEOGEO_AES; - common_machine_start(); + neogeo_state::machine_start(); m_sprgen->m_fixed_layer_bank_type = 0; m_sprgen->set_screen(m_screen); +} + +void aes_state::machine_start() +{ + aes_base_state::machine_start(); m_curr_slot = -1; set_slot_idx(0); - /* AES has no SFIX ROM and always uses the cartridge's */ + // AES has no SFIX ROM and always uses the cartridge's m_sprgen->neogeo_set_fixed_layer_source(1); } +void aes_state::neogeo_postload() +{ + aes_base_state::neogeo_postload(); + + if (m_slots[m_curr_slot] && m_slots[m_curr_slot]->get_rom_size() > 0) + m_bank_cartridge->set_base((uint8_t *)m_slots[m_curr_slot]->get_rom_base() + m_bank_base); +} + MACHINE_CONFIG_START(aes_state::aes) neogeo_base(config); @@ -1758,8 +1947,6 @@ MACHINE_CONFIG_START(aes_state::aes) MCFG_NEOGEO_MEMCARD_ADD("memcard") - MCFG_MACHINE_START_OVERRIDE(aes_state, aes) - MCFG_NEOGEO_CARTRIDGE_ADD("cslot1", neogeo_cart, nullptr) MCFG_NEOGEO_CONTROL_PORT_ADD("ctrl1", neogeo_controls, "joy", false) @@ -2006,19 +2193,9 @@ ROM_END -DRIVER_INIT_MEMBER(neogeo_state, neogeo) -{ - // install controllers - if (m_ctrl1) - m_maincpu->space(AS_PROGRAM).install_read_handler(0x300000, 0x300001, 0, 0x01ff7e, 0, read16_delegate(FUNC(neogeo_state::in0_r), this)); - if (m_ctrl2) - m_maincpu->space(AS_PROGRAM).install_read_handler(0x340000, 0x340001, 0, 0x01fffe, 0, read16_delegate(FUNC(neogeo_state::in1_r), this)); -} - - -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT */ -CONS( 1990, neogeo, 0, 0, mvs, neogeo_6slot, neogeo_state, neogeo, "SNK", "Neo-Geo MVS", MACHINE_IS_BIOS_ROOT | 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, mvs, neogeo_6slot, mvs_state, 0, "SNK", "Neo-Geo MVS", MACHINE_IS_BIOS_ROOT | MACHINE_SUPPORTS_SAVE ) +CONS( 1990, aes, 0, 0, aes, aes, aes_state, 0, "SNK", "Neo-Geo AES", MACHINE_SUPPORTS_SAVE ) @@ -2032,18 +2209,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(neogeo_state::neobase) +MACHINE_CONFIG_START(mvs_state::neobase) neogeo_arcade(config); NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("rom") MACHINE_CONFIG_END // used by fatfury2 & ssideki -MACHINE_CONFIG_START(neogeo_state::fatfur2) +MACHINE_CONFIG_START(mvs_state::fatfur2) neogeo_arcade(config); NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("rom_fatfur2") MACHINE_CONFIG_END -MACHINE_CONFIG_START(neogeo_state::kizuna4p) +MACHINE_CONFIG_START(mvs_state::kizuna4p) neogeo_arcade(config); MCFG_DEVICE_REMOVE("edge") MCFG_NEOGEO_CONTROL_EDGE_CONNECTOR_ADD("edge", neogeo_arc_edge_fixed, "kiz4p", true) @@ -2051,17 +2228,17 @@ MACHINE_CONFIG_START(neogeo_state::kizuna4p) NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("rom") MACHINE_CONFIG_END -MACHINE_CONFIG_START(neogeo_state::kof97oro) +MACHINE_CONFIG_START(mvs_state::kof97oro) neogeo_arcade(config); NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("boot_kof97oro") MACHINE_CONFIG_END -MACHINE_CONFIG_START(neogeo_state::kog) +MACHINE_CONFIG_START(mvs_state::kog) neogeo_arcade(config); NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("boot_kog") MACHINE_CONFIG_END -MACHINE_CONFIG_START(neogeo_state::irrmaze) +MACHINE_CONFIG_START(mvs_state::irrmaze) neogeo_arcade(config); MCFG_DEVICE_REMOVE("edge") MCFG_NEOGEO_CONTROL_EDGE_CONNECTOR_ADD("edge", neogeo_arc_edge_fixed, "irrmaze", true) @@ -2069,217 +2246,217 @@ MACHINE_CONFIG_START(neogeo_state::irrmaze) NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("rom") MACHINE_CONFIG_END -MACHINE_CONFIG_START(neogeo_state::kof98) +MACHINE_CONFIG_START(mvs_state::kof98) neogeo_arcade(config); NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("rom_kof98") MACHINE_CONFIG_END -MACHINE_CONFIG_START(neogeo_state::mslugx) +MACHINE_CONFIG_START(mvs_state::mslugx) neogeo_arcade(config); NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("rom_mslugx") MACHINE_CONFIG_END -MACHINE_CONFIG_START(neogeo_state::kof99) +MACHINE_CONFIG_START(mvs_state::kof99) neogeo_arcade(config); NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("sma_kof99") MACHINE_CONFIG_END -MACHINE_CONFIG_START(neogeo_state::kof99k) +MACHINE_CONFIG_START(mvs_state::kof99k) neogeo_arcade(config); NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("cmc42_kof99k") MACHINE_CONFIG_END -MACHINE_CONFIG_START(neogeo_state::garou) +MACHINE_CONFIG_START(mvs_state::garou) neogeo_arcade(config); NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("sma_garou") MACHINE_CONFIG_END -MACHINE_CONFIG_START(neogeo_state::garouh) +MACHINE_CONFIG_START(mvs_state::garouh) neogeo_arcade(config); NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("sma_garouh") MACHINE_CONFIG_END -MACHINE_CONFIG_START(neogeo_state::garoubl) +MACHINE_CONFIG_START(mvs_state::garoubl) neogeo_arcade(config); NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("boot_garoubl") MACHINE_CONFIG_END -MACHINE_CONFIG_START(neogeo_state::mslug3) +MACHINE_CONFIG_START(mvs_state::mslug3) neogeo_arcade(config); NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("sma_mslug3") MACHINE_CONFIG_END -MACHINE_CONFIG_START(neogeo_state::mslug3h) +MACHINE_CONFIG_START(mvs_state::mslug3h) neogeo_arcade(config); NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("cmc42_mslug3h") MACHINE_CONFIG_END -MACHINE_CONFIG_START(neogeo_state::mslug3b6) +MACHINE_CONFIG_START(mvs_state::mslug3b6) neogeo_arcade(config); NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("boot_mslug3b6") MACHINE_CONFIG_END -MACHINE_CONFIG_START(neogeo_state::kof2000) +MACHINE_CONFIG_START(mvs_state::kof2000) neogeo_arcade(config); NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("sma_kof2k") MACHINE_CONFIG_END -MACHINE_CONFIG_START(neogeo_state::kof2000n) +MACHINE_CONFIG_START(mvs_state::kof2000n) neogeo_arcade(config); NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("cmc50_kof2000n") MACHINE_CONFIG_END -MACHINE_CONFIG_START(neogeo_state::zupapa) +MACHINE_CONFIG_START(mvs_state::zupapa) neogeo_arcade(config); NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("cmc42_zupapa") MACHINE_CONFIG_END -MACHINE_CONFIG_START(neogeo_state::sengoku3) +MACHINE_CONFIG_START(mvs_state::sengoku3) neogeo_arcade(config); NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("cmc42_sengoku3") MACHINE_CONFIG_END -MACHINE_CONFIG_START(neogeo_state::kof2001) +MACHINE_CONFIG_START(mvs_state::kof2001) neogeo_arcade(config); NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("cmc50_kof2001") MACHINE_CONFIG_END -MACHINE_CONFIG_START(neogeo_state::cthd2k3) +MACHINE_CONFIG_START(mvs_state::cthd2k3) neogeo_arcade(config); NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("boot_cthd2k3") MACHINE_CONFIG_END -MACHINE_CONFIG_START(neogeo_state::ct2k3sp) +MACHINE_CONFIG_START(mvs_state::ct2k3sp) neogeo_arcade(config); NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("boot_ct2k3sp") MACHINE_CONFIG_END -MACHINE_CONFIG_START(neogeo_state::ct2k3sa) +MACHINE_CONFIG_START(mvs_state::ct2k3sa) neogeo_arcade(config); NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("boot_ct2k3sa") MACHINE_CONFIG_END -MACHINE_CONFIG_START(neogeo_state::kof2002) +MACHINE_CONFIG_START(mvs_state::kof2002) neogeo_arcade(config); NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("k2k2_kof2k2") MACHINE_CONFIG_END -MACHINE_CONFIG_START(neogeo_state::kof2002b) +MACHINE_CONFIG_START(mvs_state::kof2002b) neogeo_arcade(config); NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("boot_kf2k2b") MACHINE_CONFIG_END -MACHINE_CONFIG_START(neogeo_state::kf2k2pls) +MACHINE_CONFIG_START(mvs_state::kf2k2pls) neogeo_arcade(config); NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("k2k2_kf2k2p") MACHINE_CONFIG_END -MACHINE_CONFIG_START(neogeo_state::kf2k2mp) +MACHINE_CONFIG_START(mvs_state::kf2k2mp) neogeo_arcade(config); NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("boot_kf2k2mp") MACHINE_CONFIG_END -MACHINE_CONFIG_START(neogeo_state::kf2k2mp2) +MACHINE_CONFIG_START(mvs_state::kf2k2mp2) neogeo_arcade(config); NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("boot_kf2k2mp2") MACHINE_CONFIG_END -MACHINE_CONFIG_START(neogeo_state::kof10th) +MACHINE_CONFIG_START(mvs_state::kof10th) neogeo_arcade(config); NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("boot_kf10th") MACHINE_CONFIG_END -MACHINE_CONFIG_START(neogeo_state::kf10thep) +MACHINE_CONFIG_START(mvs_state::kf10thep) neogeo_arcade(config); NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("boot_kf10thep") MACHINE_CONFIG_END -MACHINE_CONFIG_START(neogeo_state::kf2k5uni) +MACHINE_CONFIG_START(mvs_state::kf2k5uni) neogeo_arcade(config); NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("boot_kf2k5uni") MACHINE_CONFIG_END -MACHINE_CONFIG_START(neogeo_state::kof2k4se) +MACHINE_CONFIG_START(mvs_state::kof2k4se) neogeo_arcade(config); NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("boot_kf2k4se") MACHINE_CONFIG_END -MACHINE_CONFIG_START(neogeo_state::mslug5) +MACHINE_CONFIG_START(mvs_state::mslug5) neogeo_arcade(config); NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("pvc_mslug5") MACHINE_CONFIG_END -MACHINE_CONFIG_START(neogeo_state::ms5plus) +MACHINE_CONFIG_START(mvs_state::ms5plus) neogeo_arcade(config); NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("boot_ms5plus") MACHINE_CONFIG_END -MACHINE_CONFIG_START(neogeo_state::svc) +MACHINE_CONFIG_START(mvs_state::svc) neogeo_arcade(config); NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("pvc_svc") MACHINE_CONFIG_END -MACHINE_CONFIG_START(neogeo_state::svcboot) +MACHINE_CONFIG_START(mvs_state::svcboot) neogeo_arcade(config); NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("boot_svcboot") MACHINE_CONFIG_END -MACHINE_CONFIG_START(neogeo_state::svcplus) +MACHINE_CONFIG_START(mvs_state::svcplus) neogeo_arcade(config); NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("boot_svcplus") MACHINE_CONFIG_END -MACHINE_CONFIG_START(neogeo_state::svcplusa) +MACHINE_CONFIG_START(mvs_state::svcplusa) neogeo_arcade(config); NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("boot_svcplusa") MACHINE_CONFIG_END -MACHINE_CONFIG_START(neogeo_state::svcsplus) +MACHINE_CONFIG_START(mvs_state::svcsplus) neogeo_arcade(config); NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("boot_svcsplus") MACHINE_CONFIG_END -MACHINE_CONFIG_START(neogeo_state::samsho5) +MACHINE_CONFIG_START(mvs_state::samsho5) neogeo_arcade(config); NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("k2k2_samsh5") MACHINE_CONFIG_END -MACHINE_CONFIG_START(neogeo_state::samsho5b) +MACHINE_CONFIG_START(mvs_state::samsho5b) neogeo_arcade(config); NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("boot_samsho5b") MACHINE_CONFIG_END -MACHINE_CONFIG_START(neogeo_state::kof2003) +MACHINE_CONFIG_START(mvs_state::kof2003) neogeo_arcade(config); NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("pvc_kf2k3") MACHINE_CONFIG_END -MACHINE_CONFIG_START(neogeo_state::kof2003h) +MACHINE_CONFIG_START(mvs_state::kof2003h) neogeo_arcade(config); NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("pvc_kf2k3h") MACHINE_CONFIG_END -MACHINE_CONFIG_START(neogeo_state::kf2k3bl) +MACHINE_CONFIG_START(mvs_state::kf2k3bl) neogeo_arcade(config); NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("boot_kf2k3bl") MACHINE_CONFIG_END -MACHINE_CONFIG_START(neogeo_state::kf2k3pl) +MACHINE_CONFIG_START(mvs_state::kf2k3pl) neogeo_arcade(config); NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("boot_kf2k3pl") MACHINE_CONFIG_END -MACHINE_CONFIG_START(neogeo_state::kf2k3upl) +MACHINE_CONFIG_START(mvs_state::kf2k3upl) neogeo_arcade(config); NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("boot_kf2k3upl") MACHINE_CONFIG_END -MACHINE_CONFIG_START(neogeo_state::samsh5sp) +MACHINE_CONFIG_START(mvs_state::samsh5sp) neogeo_arcade(config); NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("k2k2_sams5s") MACHINE_CONFIG_END -MACHINE_CONFIG_START(neogeo_state::neogeo_mj) +MACHINE_CONFIG_START(mvs_state::neogeo_mj) neogeo_arcade(config); //no joystick panel MCFG_DEVICE_REMOVE("edge") @@ -2294,32 +2471,32 @@ MACHINE_CONFIG_START(neogeo_state::neogeo_mj) NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("rom") MACHINE_CONFIG_END -MACHINE_CONFIG_START(neogeo_state::preisle2) +MACHINE_CONFIG_START(mvs_state::preisle2) neogeo_arcade(config); NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("cmc42_preisle2") MACHINE_CONFIG_END -MACHINE_CONFIG_START(neogeo_state::nitd) +MACHINE_CONFIG_START(mvs_state::nitd) neogeo_arcade(config); NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("cmc42_nitd") MACHINE_CONFIG_END -MACHINE_CONFIG_START(neogeo_state::s1945p) +MACHINE_CONFIG_START(mvs_state::s1945p) neogeo_arcade(config); NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("cmc42_s1945p") MACHINE_CONFIG_END -MACHINE_CONFIG_START(neogeo_state::lans2004) +MACHINE_CONFIG_START(mvs_state::lans2004) neogeo_arcade(config); NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("boot_lans2004") MACHINE_CONFIG_END -MACHINE_CONFIG_START(neogeo_state::pnyaa) +MACHINE_CONFIG_START(mvs_state::pnyaa) neogeo_arcade(config); NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("pcm2_pnyaa") MACHINE_CONFIG_END -MACHINE_CONFIG_START(neogeo_state::popbounc) +MACHINE_CONFIG_START(mvs_state::popbounc) neogeo_arcade(config); MCFG_DEVICE_REMOVE("edge") MCFG_NEOGEO_CONTROL_EDGE_CONNECTOR_ADD("edge", neogeo_arc_edge_fixed, "dial", true) @@ -2327,47 +2504,47 @@ MACHINE_CONFIG_START(neogeo_state::popbounc) NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("rom") MACHINE_CONFIG_END -MACHINE_CONFIG_START(neogeo_state::ganryu) +MACHINE_CONFIG_START(mvs_state::ganryu) neogeo_arcade(config); NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("cmc42_ganryu") MACHINE_CONFIG_END -MACHINE_CONFIG_START(neogeo_state::bangbead) +MACHINE_CONFIG_START(mvs_state::bangbead) neogeo_arcade(config); NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("cmc42_bangbead") MACHINE_CONFIG_END -MACHINE_CONFIG_START(neogeo_state::mslug4) +MACHINE_CONFIG_START(mvs_state::mslug4) neogeo_arcade(config); NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("pcm2_mslug4") MACHINE_CONFIG_END -MACHINE_CONFIG_START(neogeo_state::ms4plus) +MACHINE_CONFIG_START(mvs_state::ms4plus) neogeo_arcade(config); NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("pcm2_ms4p") MACHINE_CONFIG_END -MACHINE_CONFIG_START(neogeo_state::rotd) +MACHINE_CONFIG_START(mvs_state::rotd) neogeo_arcade(config); NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("pcm2_rotd") MACHINE_CONFIG_END -MACHINE_CONFIG_START(neogeo_state::matrim) +MACHINE_CONFIG_START(mvs_state::matrim) neogeo_arcade(config); NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("k2k2_matrim") MACHINE_CONFIG_END -MACHINE_CONFIG_START(neogeo_state::matrimbl) +MACHINE_CONFIG_START(mvs_state::matrimbl) neogeo_arcade(config); NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("boot_matrimbl") MACHINE_CONFIG_END -MACHINE_CONFIG_START(neogeo_state::jockeygp) +MACHINE_CONFIG_START(mvs_state::jockeygp) neogeo_arcade(config); NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("cmc50_jockeygp") MACHINE_CONFIG_END -MACHINE_CONFIG_START(neogeo_state::vliner) +MACHINE_CONFIG_START(mvs_state::vliner) neogeo_arcade(config); // input handlers are installed at DRIVER_INIT... MCFG_DEVICE_REMOVE("edge") @@ -2377,7 +2554,7 @@ MACHINE_CONFIG_START(neogeo_state::vliner) NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("rom_vliner") MACHINE_CONFIG_END -MACHINE_CONFIG_START(neogeo_state::sbp) +MACHINE_CONFIG_START(mvs_state::sbp) neogeo_arcade(config); NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("boot_sbp") MACHINE_CONFIG_END @@ -2509,7 +2686,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, neogeo_state, kizuna4p_start_r, nullptr) + PORT_BIT( 0x0f00, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_CUSTOM_MEMBER(DEVICE_SELF, mvs_state, kizuna4p_start_r, nullptr) INPUT_PORTS_END static INPUT_PORTS_START( irrmaze ) @@ -10907,329 +11084,329 @@ ROM_END NEOGEO ROM-cart:2004/07/15 ****************************************************************************/ -/* YEAR NAME PARENT MACHINE INPUT INIT MONITOR */ -/* SNK */ -GAME( 1990, nam1975, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "NAM-1975 (NGM-001 ~ NGH-001)", MACHINE_SUPPORTS_SAVE ) -GAME( 1990, bstars, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Baseball Stars Professional (NGM-002)", MACHINE_SUPPORTS_SAVE ) -GAME( 1990, bstarsh, bstars, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Baseball Stars Professional (NGH-002)", MACHINE_SUPPORTS_SAVE ) -GAME( 1990, tpgolf, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Top Player's Golf (NGM-003 ~ NGH-003)", MACHINE_SUPPORTS_SAVE ) -GAME( 1990, mahretsu, neogeo, neogeo_mj, mjneogeo, neogeo_state, neogeo, 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, neogeo_state, neogeo, ROT0, "SNK", "Riding Hero (NGM-006 ~ NGH-006)", MACHINE_NODEVICE_LAN | MACHINE_SUPPORTS_SAVE ) -GAME( 1990, ridheroh, ridhero, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Riding Hero (set 2)", MACHINE_NODEVICE_LAN | MACHINE_SUPPORTS_SAVE ) -GAME( 1991, alpham2, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Alpha Mission II / ASO II - Last Guardian (NGM-007 ~ NGH-007)", MACHINE_SUPPORTS_SAVE ) -GAME( 1991, alpham2p, alpham2, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Alpha Mission II / ASO II - Last Guardian (prototype)", MACHINE_SUPPORTS_SAVE ) -GAME( 1990, cyberlip, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Cyber-Lip (NGM-010)", MACHINE_SUPPORTS_SAVE ) -GAME( 1990, superspy, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "The Super Spy (NGM-011 ~ NGH-011)", MACHINE_SUPPORTS_SAVE ) -GAME( 1992, mutnat, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Mutation Nation (NGM-014 ~ NGH-014)", MACHINE_SUPPORTS_SAVE ) -GAME( 1991, kotm, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "King of the Monsters (set 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1991, kotmh, kotm, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "King of the Monsters (set 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 1991, sengoku, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Sengoku / Sengoku Denshou (NGM-017 ~ NGH-017)", MACHINE_SUPPORTS_SAVE ) -GAME( 1991, sengokuh, sengoku, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Sengoku / Sengoku Denshou (NGH-017, US)", MACHINE_SUPPORTS_SAVE ) -GAME( 1991, burningf, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Burning Fight (NGM-018 ~ NGH-018)", MACHINE_SUPPORTS_SAVE ) -GAME( 1991, burningfh, burningf, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Burning Fight (NGH-018, US)", MACHINE_SUPPORTS_SAVE ) -GAME( 1991, burningfpa, burningf, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Burning Fight (prototype, ver 23.3, 910326)", MACHINE_SUPPORTS_SAVE ) -GAME( 1991, burningfp, burningf, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Burning Fight (prototype, older)", MACHINE_SUPPORTS_SAVE ) -GAME( 1990, lbowling, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "League Bowling (NGM-019 ~ NGH-019)", MACHINE_NODEVICE_LAN | MACHINE_SUPPORTS_SAVE ) -GAME( 1991, gpilots, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Ghost Pilots (NGM-020 ~ NGH-020)", MACHINE_SUPPORTS_SAVE ) -GAME( 1991, gpilotsh, gpilots, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Ghost Pilots (NGH-020, US)", MACHINE_SUPPORTS_SAVE ) -GAME( 1990, joyjoy, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Puzzled / Joy Joy Kid (NGM-021 ~ NGH-021)", MACHINE_SUPPORTS_SAVE ) -GAME( 1991, quizdais, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Quiz Daisousa Sen - The Last Count Down (NGM-023 ~ NGH-023)", MACHINE_SUPPORTS_SAVE ) -GAME( 1991, quizdaisk, quizdais, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Quiz Daisousa Sen - The Last Count Down (Korean release)", MACHINE_SUPPORTS_SAVE ) -GAME( 1992, lresort, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Last Resort", MACHINE_SUPPORTS_SAVE ) -GAME( 1992, lresortp, lresort, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Last Resort (prototype)", MACHINE_SUPPORTS_SAVE ) -GAME( 1991, eightman, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK / Pallas", "Eight Man (NGM-025 ~ NGH-025)", MACHINE_SUPPORTS_SAVE ) -GAME( 1991, legendos, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Legend of Success Joe / Ashita no Joe Densetsu", MACHINE_SUPPORTS_SAVE ) -GAME( 1991, 2020bb, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK / Pallas", "2020 Super Baseball (set 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1991, 2020bba, 2020bb, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK / Pallas", "2020 Super Baseball (set 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 1991, 2020bbh, 2020bb, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK / Pallas", "2020 Super Baseball (set 3)", MACHINE_SUPPORTS_SAVE ) -GAME( 1991, socbrawl, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Soccer Brawl (NGM-031)", MACHINE_SUPPORTS_SAVE ) -GAME( 1991, socbrawlh, socbrawl, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Soccer Brawl (NGH-031)", MACHINE_SUPPORTS_SAVE ) -GAME( 1991, fatfury1, neogeo, neobase, neogeo, neogeo_state, neogeo, 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, neogeo_state, neogeo, ROT0, "SNK", "Robo Army", MACHINE_SUPPORTS_SAVE ) -GAME( 1991, roboarma, roboarmy, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Robo Army (NGM-032 ~ NGH-032)", MACHINE_SUPPORTS_SAVE ) -GAME( 1992, fbfrenzy, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Football Frenzy (NGM-034 ~ NGH-034)", MACHINE_SUPPORTS_SAVE ) -GAME( 1992, kotm2, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "King of the Monsters 2 - The Next Thing (NGM-039 ~ NGH-039)", MACHINE_SUPPORTS_SAVE ) -GAME( 1992, kotm2a, kotm2, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "King of the Monsters 2 - The Next Thing (older)", MACHINE_SUPPORTS_SAVE ) -GAME( 1992, kotm2p, kotm2, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "King of the Monsters 2 - The Next Thing (prototype)", MACHINE_SUPPORTS_SAVE ) -GAME( 1993, sengoku2, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Sengoku 2 / Sengoku Denshou 2", MACHINE_SUPPORTS_SAVE ) -GAME( 1992, bstars2, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Baseball Stars 2", MACHINE_SUPPORTS_SAVE ) -GAME( 1992, quizdai2, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Quiz Meitantei Neo & Geo - Quiz Daisousa Sen part 2 (NGM-042 ~ NGH-042)", MACHINE_SUPPORTS_SAVE ) -GAME( 1993, 3countb, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "3 Count Bout / Fire Suplex (NGM-043 ~ NGH-043)", MACHINE_SUPPORTS_SAVE ) -GAME( 1992, aof, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Art of Fighting / Ryuuko no Ken (NGM-044 ~ NGH-044)", MACHINE_SUPPORTS_SAVE ) -GAME( 1993, samsho, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Samurai Shodown / Samurai Spirits (NGM-045)", MACHINE_SUPPORTS_SAVE ) -GAME( 1993, samshoh, samsho, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Samurai Shodown / Samurai Spirits (NGH-045)", MACHINE_SUPPORTS_SAVE ) -GAME( 1994, tophuntr, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Top Hunter - Roddy & Cathy (NGM-046)", MACHINE_SUPPORTS_SAVE ) -GAME( 1994, tophuntrh, tophuntr, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Top Hunter - Roddy & Cathy (NGH-046)", MACHINE_SUPPORTS_SAVE ) -GAME( 1992, fatfury2, neogeo, fatfur2, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Fatal Fury 2 / Garou Densetsu 2 - Arata-naru Tatakai (NGM-047 ~ NGH-047)", MACHINE_SUPPORTS_SAVE ) -GAME( 1992, ssideki, neogeo, fatfur2, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Super Sidekicks / Tokuten Ou", MACHINE_SUPPORTS_SAVE ) -GAME( 1994, kof94, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "The King of Fighters '94 (NGM-055 ~ NGH-055)", MACHINE_SUPPORTS_SAVE ) -GAME( 1994, aof2, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Art of Fighting 2 / Ryuuko no Ken 2 (NGM-056)", MACHINE_SUPPORTS_SAVE ) -GAME( 1994, aof2a, aof2, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Art of Fighting 2 / Ryuuko no Ken 2 (NGH-056)", MACHINE_SUPPORTS_SAVE ) -GAME( 1993, fatfursp, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Fatal Fury Special / Garou Densetsu Special (NGM-058 ~ NGH-058, set 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1993, fatfurspa, fatfursp, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Fatal Fury Special / Garou Densetsu Special (NGM-058 ~ NGH-058, set 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 1995, savagere, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Savage Reign / Fu'un Mokushiroku - Kakutou Sousei", MACHINE_SUPPORTS_SAVE ) -GAME( 1994, ssideki2, neogeo, neobase, neogeo, neogeo_state, neogeo, 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, neogeo_state, neogeo, ROT0, "SNK", "Samurai Shodown II / Shin Samurai Spirits - Haohmaru Jigokuhen (NGM-063 ~ NGH-063)", MACHINE_SUPPORTS_SAVE ) -GAME( 1994, samsho2k, samsho2, neobase, neogeo, neogeo_state, neogeo, 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, neogeo_state, neogeo, 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, neogeo_state, neogeo, 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, neogeo_state, neogeo, ROT0, "SNK", "Super Sidekicks 3 - The Next Glory / Tokuten Ou 3 - Eikou e no Michi", MACHINE_SUPPORTS_SAVE ) -GAME( 1995, kof95, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "The King of Fighters '95 (NGM-084)", MACHINE_SUPPORTS_SAVE ) -GAME( 1995, kof95a, kof95, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "The King of Fighters '95 (NGM-084, alt board)", MACHINE_SUPPORTS_SAVE ) -GAME( 1995, kof95h, kof95, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "The King of Fighters '95 (NGH-084)", MACHINE_SUPPORTS_SAVE ) -GAME( 1995, samsho3, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Samurai Shodown III / Samurai Spirits - Zankurou Musouken (NGM-087)", MACHINE_SUPPORTS_SAVE ) -GAME( 1995, samsho3h, samsho3, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Samurai Shodown III / Samurai Spirits - Zankurou Musouken (NGH-087)", MACHINE_SUPPORTS_SAVE ) -GAME( 1995, fswords, samsho3, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Fighters Swords (Korean release of Samurai Shodown III)", MACHINE_SUPPORTS_SAVE ) -GAME( 1995, rbff1, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Real Bout Fatal Fury / Real Bout Garou Densetsu (NGM-095 ~ NGH-095)", MACHINE_SUPPORTS_SAVE ) -GAME( 1995, rbff1a, rbff1, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Real Bout Fatal Fury / Real Bout Garou Densetsu (bug fix revision)", MACHINE_SUPPORTS_SAVE ) -GAME( 1995, rbff1k, rbff1, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Real Bout Fatal Fury / Real Bout Garou Densetsu (Korean release)", MACHINE_SUPPORTS_SAVE ) -GAME( 1996, aof3, neogeo, neobase, neogeo, neogeo_state, neogeo, 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, neogeo_state, neogeo, 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, neogeo_state, neogeo, ROT0, "SNK", "The King of Fighters '96 (NGM-214)", MACHINE_SUPPORTS_SAVE ) -GAME( 1996, kof96h, kof96, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "The King of Fighters '96 (NGH-214)", MACHINE_SUPPORTS_SAVE ) -GAME( 1996, ssideki4, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "The Ultimate 11 - The SNK Football Championship / Tokuten Ou - Honoo no Libero", MACHINE_SUPPORTS_SAVE ) -GAME( 1996, kizuna, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Kizuna Encounter - Super Tag Battle / Fu'un Super Tag Battle", MACHINE_SUPPORTS_SAVE ) -GAME( 1996, kizuna4p, kizuna, kizuna4p, kizuna4p, neogeo_state, neogeo, 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, neogeo_state, neogeo, 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, neogeo_state, neogeo, ROT0, "SNK", "Pae Wang Jeon Seol / Legend of a Warrior (Korean censored Samurai Shodown IV)", MACHINE_SUPPORTS_SAVE ) -GAME( 1996, rbffspec, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Real Bout Fatal Fury Special / Real Bout Garou Densetsu Special", MACHINE_SUPPORTS_SAVE ) -GAME( 1996, rbffspeck, rbffspec, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Real Bout Fatal Fury Special / Real Bout Garou Densetsu Special (Korean release)", MACHINE_SUPPORTS_SAVE ) -GAME( 1997, kof97, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "The King of Fighters '97 (NGM-2320)", MACHINE_SUPPORTS_SAVE ) -GAME( 1997, kof97h, kof97, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "The King of Fighters '97 (NGH-2320)", MACHINE_SUPPORTS_SAVE ) -GAME( 1997, kof97k, kof97, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "The King of Fighters '97 (Korean release)", MACHINE_SUPPORTS_SAVE ) -GAME( 1997, kof97pls, kof97, neobase, neogeo, neogeo_state, neogeo, ROT0, "bootleg", "The King of Fighters '97 Plus (bootleg)", MACHINE_SUPPORTS_SAVE ) -GAME( 1997, kof97oro, kof97, kof97oro, neogeo, neogeo_state, neogeo, ROT0, "bootleg", "The King of Fighters '97 Chongchu Jianghu Plus 2003 (bootleg)", MACHINE_SUPPORTS_SAVE ) -GAME( 1997, kog, kof97, kog, neogeo, neogeo_state, neogeo, 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, neogeo_state, neogeo, ROT0, "SNK", "The Last Blade / Bakumatsu Roman - Gekka no Kenshi (NGM-2340)", MACHINE_SUPPORTS_SAVE ) -GAME( 1997, lastbladh, lastblad, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "The Last Blade / Bakumatsu Roman - Gekka no Kenshi (NGH-2340)", MACHINE_SUPPORTS_SAVE ) -GAME( 1997, lastsold, lastblad, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "The Last Soldier (Korean release of The Last Blade)", MACHINE_SUPPORTS_SAVE ) -GAME( 1997, irrmaze, neogeo, irrmaze, irrmaze, neogeo_state, neogeo, ROT0, "SNK / Saurus", "The Irritating Maze / Ultra Denryu Iraira Bou", MACHINE_SUPPORTS_SAVE ) -GAME( 1998, rbff2, neogeo, neobase, neogeo, neogeo_state, neogeo, 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, neogeo_state, neogeo, 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, neogeo_state, neogeo, ROT0, "SNK", "Real Bout Fatal Fury 2 - The Newcomers (Korean release)", MACHINE_SUPPORTS_SAVE ) // no Japanese title / mode -GAME( 1998, mslug2, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Metal Slug 2 - Super Vehicle-001/II (NGM-2410 ~ NGH-2410)", MACHINE_SUPPORTS_SAVE ) -GAME( 2015, mslug2t, mslug2, neobase, neogeo, neogeo_state, neogeo, ROT0, "hack (trap15)", "Metal Slug 2 Turbo (NGM-9410) (hack)", MACHINE_SUPPORTS_SAVE ) -GAME( 1998, kof98, neogeo, kof98, neogeo, neogeo_state, neogeo, 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, neogeo_state, neogeo, 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, neogeo_state, neogeo, 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, neogeo_state, neogeo, 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, neogeo_state, neogeo, 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, neogeo_state, neogeo, 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, neogeo_state, neogeo, ROT0, "SNK", "Neo-Geo Cup '98 - The Road to the Victory", MACHINE_SUPPORTS_SAVE ) -GAME( 1999, mslugx, neogeo, mslugx, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Metal Slug X - Super Vehicle-001 (NGM-2500 ~ NGH-2500)", MACHINE_SUPPORTS_SAVE ) -GAME( 1999, kof99, neogeo, kof99, neogeo, neogeo_state, neogeo, ROT0, "SNK", "The King of Fighters '99 - Millennium Battle (NGM-2510)" , MACHINE_SUPPORTS_SAVE ) /* Encrypted Code & GFX */ -GAME( 1999, kof99h, kof99, kof99, neogeo, neogeo_state, neogeo, 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, neogeo_state, neogeo, ROT0, "SNK", "The King of Fighters '99 - Millennium Battle (earlier)" , MACHINE_SUPPORTS_SAVE ) /* Encrypted Code & GFX */ -GAME( 1999, kof99k, kof99, kof99, neogeo, neogeo_state, neogeo, ROT0, "SNK", "The King of Fighters '99 - Millennium Battle (Korean release)" , MACHINE_SUPPORTS_SAVE ) /* Encrypted Code & GFX */ -GAME( 1999, kof99ka, kof99, kof99k, neogeo, neogeo_state, neogeo, 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, neogeo_state, neogeo, ROT0, "SNK", "The King of Fighters '99 - Millennium Battle (prototype)", MACHINE_SUPPORTS_SAVE ) -GAME( 1999, garou, neogeo, garou, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Garou - Mark of the Wolves (NGM-2530)" , MACHINE_SUPPORTS_SAVE ) /* Encrypted Code & GFX */ -GAME( 1999, garouh, garou, garouh, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Garou - Mark of the Wolves (NGM-2530 ~ NGH-2530)" , MACHINE_SUPPORTS_SAVE ) /* Encrypted Code & GFX */ -GAME( 1999, garoup, garou, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Garou - Mark of the Wolves (prototype)", MACHINE_SUPPORTS_SAVE ) -GAME( 1999, garoubl, garou, garoubl, neogeo, neogeo_state, neogeo, ROT0, "bootleg", "Garou - Mark of the Wolves (bootleg)", MACHINE_SUPPORTS_SAVE ) /* Bootleg of garoup */ -GAME( 2000, mslug3, neogeo, mslug3, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Metal Slug 3 (NGM-2560)" , MACHINE_SUPPORTS_SAVE ) /* Encrypted Code & GFX */ -GAME( 2000, mslug3h, mslug3, mslug3h, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Metal Slug 3 (NGH-2560)" , MACHINE_SUPPORTS_SAVE ) /* Encrypted GFX */ -GAME( 2000, mslug3b6, mslug3, mslug3b6, neogeo, neogeo_state, neogeo, 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, neogeo_state, neogeo, ROT0, "SNK", "The King of Fighters 2000 (NGM-2570 ~ NGH-2570)" , MACHINE_SUPPORTS_SAVE ) /* Encrypted Code & GFX */ -GAME( 2000, kof2000n, kof2000, kof2000n, neogeo, neogeo_state, neogeo, ROT0, "SNK", "The King of Fighters 2000 (not encrypted)" , MACHINE_SUPPORTS_SAVE ) /* Encrypted GFX */ -GAME( 2001, zupapa, neogeo, zupapa, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Zupapa!" , MACHINE_SUPPORTS_SAVE ) /* Encrypted GFX */ -GAME( 2001, sengoku3, neogeo, sengoku3, neogeo, neogeo_state, neogeo, ROT0, "Noise Factory / SNK", "Sengoku 3 / Sengoku Densho 2001" , MACHINE_SUPPORTS_SAVE ) /* Encrypted GFX */ -GAME( 2001, kof2001, neogeo, kof2001, neogeo, neogeo_state, neogeo, ROT0, "Eolith / SNK", "The King of Fighters 2001 (NGM-262?)" , MACHINE_SUPPORTS_SAVE ) /* Encrypted GFX */ -GAME( 2001, kof2001h, kof2001, kof2001, neogeo, neogeo_state, neogeo, ROT0, "Eolith / SNK", "The King of Fighters 2001 (NGH-2621)" , MACHINE_SUPPORTS_SAVE ) /* Encrypted GFX */ -GAME( 2003, cthd2003, kof2001, cthd2k3, neogeo, neogeo_state, neogeo, 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, neogeo_state, neogeo, 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, neogeo_state, neogeo, 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, neogeo_state, neogeo, ROT0, "Eolith / Playmore", "The King of Fighters 2002 (NGM-2650 ~ NGH-2650)" , MACHINE_SUPPORTS_SAVE ) /* Encrypted GFX */ -GAME( 2002, kof2002b, kof2002, kof2002b, neogeo, neogeo_state, neogeo, ROT0, "bootleg", "The King of Fighters 2002 (bootleg)", MACHINE_SUPPORTS_SAVE ) -GAME( 2002, kf2k2pls, kof2002, kf2k2pls, neogeo, neogeo_state, neogeo, ROT0, "bootleg", "The King of Fighters 2002 Plus (bootleg set 1)" , MACHINE_SUPPORTS_SAVE ) /* Encrypted GFX */ -GAME( 2002, kf2k2pla, kof2002, kf2k2pls, neogeo, neogeo_state, neogeo, ROT0, "bootleg", "The King of Fighters 2002 Plus (bootleg set 2)" , MACHINE_SUPPORTS_SAVE ) /* Encrypted GFX */ -GAME( 2002, kf2k2mp, kof2002, kf2k2mp, neogeo, neogeo_state, neogeo, ROT0, "bootleg", "The King of Fighters 2002 Magic Plus (bootleg)" , MACHINE_SUPPORTS_SAVE ) /* Encrypted GFX */ -GAME( 2002, kf2k2mp2, kof2002, kf2k2mp2, neogeo, neogeo_state, neogeo, ROT0, "bootleg", "The King of Fighters 2002 Magic Plus II (bootleg)" , MACHINE_SUPPORTS_SAVE ) /* Encrypted GFX */ -GAME( 2002, kof10th, kof2002, kof10th, neogeo, neogeo_state, neogeo, 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, neogeo_state, neogeo, 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, neogeo_state, neogeo, 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, neogeo_state, neogeo, 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, neogeo_state, neogeo, ROT0, "SNK Playmore", "Metal Slug 5 (NGM-2680)", MACHINE_SUPPORTS_SAVE ) -GAME( 2003, mslug5h, mslug5, mslug5, neogeo, neogeo_state, neogeo, ROT0, "SNK Playmore", "Metal Slug 5 (NGH-2680)", MACHINE_SUPPORTS_SAVE ) /* Also found in later MVS carts */ -GAME( 2003, ms5plus, mslug5, ms5plus, neogeo, neogeo_state, neogeo, ROT0, "bootleg", "Metal Slug 5 Plus (bootleg)", MACHINE_SUPPORTS_SAVE ) -GAME( 2003, svc, neogeo, svc, neogeo, neogeo_state, neogeo, ROT0, "SNK Playmore", "SNK vs. Capcom - SVC Chaos (NGM-2690 ~ NGH-2690)", MACHINE_SUPPORTS_SAVE ) -GAME( 2003, svcboot, svc, svcboot, neogeo, neogeo_state, neogeo, ROT0, "bootleg", "SNK vs. Capcom - SVC Chaos (bootleg)", MACHINE_SUPPORTS_SAVE ) -GAME( 2003, svcplus, svc, svcplus, neogeo, neogeo_state, neogeo, ROT0, "bootleg", "SNK vs. Capcom - SVC Chaos Plus (bootleg set 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 2003, svcplusa, svc, svcplusa, neogeo, neogeo_state, neogeo, ROT0, "bootleg", "SNK vs. Capcom - SVC Chaos Plus (bootleg set 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 2003, svcsplus, svc, svcsplus, neogeo, neogeo_state, neogeo, ROT0, "bootleg", "SNK vs. Capcom - SVC Chaos Super Plus (bootleg)", MACHINE_SUPPORTS_SAVE ) -GAME( 2003, samsho5, neogeo, samsho5, neogeo, neogeo_state, neogeo, ROT0, "Yuki Enterprise / SNK Playmore", "Samurai Shodown V / Samurai Spirits Zero (NGM-2700, set 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 2003, samsho5a, samsho5, samsho5, neogeo, neogeo_state, neogeo, ROT0, "Yuki Enterprise / SNK Playmore", "Samurai Shodown V / Samurai Spirits Zero (NGM-2700, set 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 2003, samsho5h, samsho5, samsho5, neogeo, neogeo_state, neogeo, ROT0, "Yuki Enterprise / SNK Playmore", "Samurai Shodown V / Samurai Spirits Zero (NGH-2700)", MACHINE_SUPPORTS_SAVE ) -GAME( 2003, samsho5b, samsho5, samsho5b, neogeo, neogeo_state, neogeo, ROT0, "bootleg", "Samurai Shodown V / Samurai Spirits Zero (bootleg)", MACHINE_SUPPORTS_SAVE ) // different program scrambling -GAME( 2003, kof2003, neogeo, kof2003, neogeo, neogeo_state, neogeo, ROT0, "SNK Playmore", "The King of Fighters 2003 (NGM-2710)", MACHINE_SUPPORTS_SAVE ) -GAME( 2003, kof2003h, kof2003, kof2003h, neogeo, neogeo_state, neogeo, ROT0, "SNK Playmore", "The King of Fighters 2003 (NGH-2710)", MACHINE_SUPPORTS_SAVE ) -GAME( 2003, kf2k3bl, kof2003, kf2k3bl, neogeo, neogeo_state, neogeo, 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, neogeo_state, neogeo, 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, neogeo_state, neogeo, 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, neogeo_state, neogeo, 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, neogeo_state, neogeo, ROT0, "Yuki Enterprise / SNK Playmore", "Samurai Shodown V Special / Samurai Spirits Zero Special (NGM-2720)", MACHINE_SUPPORTS_SAVE ) -GAME( 2004, samsh5sph, samsh5sp, samsh5sp, neogeo, neogeo_state, neogeo, 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, neogeo_state, neogeo, ROT0, "Yuki Enterprise / SNK Playmore", "Samurai Shodown V Special / Samurai Spirits Zero Special (NGH-2720, 1st release, censored)", MACHINE_SUPPORTS_SAVE ) +// 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, mjneogeo, 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, irrmaze, 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 ) -/* Alpha Denshi Co. / ADK (changed name in 1993) */ -GAME( 1990, maglord, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "Alpha Denshi Co.", "Magician Lord (NGM-005)", MACHINE_SUPPORTS_SAVE ) -GAME( 1990, maglordh, maglord, neobase, neogeo, neogeo_state, neogeo, ROT0, "Alpha Denshi Co.", "Magician Lord (NGH-005)", MACHINE_SUPPORTS_SAVE ) -GAME( 1990, ncombat, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "Alpha Denshi Co.", "Ninja Combat (NGM-009)", MACHINE_SUPPORTS_SAVE ) -GAME( 1990, ncombath, ncombat, neobase, neogeo, neogeo_state, neogeo, ROT0, "Alpha Denshi Co.", "Ninja Combat (NGH-009)", MACHINE_SUPPORTS_SAVE ) -GAME( 1990, bjourney, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "Alpha Denshi Co.", "Blue's Journey / Raguy (ALM-001 ~ ALH-001)", MACHINE_SUPPORTS_SAVE ) -GAME( 1990, bjourneyh, bjourney, neobase, neogeo, neogeo_state, neogeo, ROT0, "Alpha Denshi Co.", "Blue's Journey / Raguy (ALH-001)", MACHINE_SUPPORTS_SAVE ) -GAME( 1991, crsword, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "Alpha Denshi Co.", "Crossed Swords (ALM-002 ~ ALH-002)", MACHINE_SUPPORTS_SAVE ) -GAME( 1991, trally, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "Alpha Denshi Co.", "Thrash Rally (ALM-003 ~ ALH-003)", MACHINE_NODEVICE_LAN | MACHINE_SUPPORTS_SAVE ) -GAME( 1992, ncommand, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "Alpha Denshi Co.", "Ninja Commando", MACHINE_SUPPORTS_SAVE ) -GAME( 1992, wh1, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "Alpha Denshi Co.", "World Heroes (ALM-005)", MACHINE_SUPPORTS_SAVE ) -GAME( 1992, wh1h, wh1, neobase, neogeo, neogeo_state, neogeo, ROT0, "Alpha Denshi Co.", "World Heroes (ALH-005)", MACHINE_SUPPORTS_SAVE ) -GAME( 1992, wh1ha, wh1, neobase, neogeo, neogeo_state, neogeo, ROT0, "Alpha Denshi Co.", "World Heroes (set 3)", MACHINE_SUPPORTS_SAVE ) -GAME( 1993, wh2, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "ADK", "World Heroes 2 (ALM-006 ~ ALH-006)", MACHINE_SUPPORTS_SAVE ) -GAME( 1994, wh2j, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "ADK / SNK", "World Heroes 2 Jet (ADM-007 ~ ADH-007)", MACHINE_SUPPORTS_SAVE ) -GAME( 1994, aodk, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "ADK / SNK", "Aggressors of Dark Kombat / Tsuukai GANGAN Koushinkyoku (ADM-008 ~ ADH-008)", MACHINE_SUPPORTS_SAVE ) -GAME( 1995, whp, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "ADK / SNK", "World Heroes Perfect", MACHINE_SUPPORTS_SAVE ) -GAME( 1995, moshougi, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "ADK / SNK", "Shougi No Tatsujin - Master of Shougi", MACHINE_SUPPORTS_SAVE ) -GAME( 1996, overtop, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "ADK", "Over Top", MACHINE_SUPPORTS_SAVE ) -GAME( 1996, ninjamas, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "ADK / SNK", "Ninja Master's - Haoh-ninpo-cho", MACHINE_SUPPORTS_SAVE ) -GAME( 1996, twinspri, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "ADK / SNK", "Twinkle Star Sprites", MACHINE_SUPPORTS_SAVE ) -GAME( 1996, zintrckb, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "bootleg", "Zintrick / Oshidashi Zentrix (bootleg of CD version)", MACHINE_SUPPORTS_SAVE ) -GAME( 1996, crswd2bl, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "bootleg (Razoola)","Crossed Swords 2 (bootleg of CD version)", 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 ) -/* Aicom (was a part of Sammy) / Yumekobo (changed name in 1996) */ -GAME( 1992, viewpoin, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "Sammy / Aicom", "Viewpoint", MACHINE_SUPPORTS_SAVE ) -GAME( 1994, janshin, neogeo, neogeo_mj, mjneogeo, neogeo_state, neogeo, ROT0, "Aicom", "Janshin Densetsu - Quest of Jongmaster", MACHINE_SUPPORTS_SAVE ) -GAME( 1995, pulstar, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "Aicom", "Pulstar", MACHINE_SUPPORTS_SAVE ) -GAME( 1998, blazstar, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "Yumekobo", "Blazing Star", MACHINE_SUPPORTS_SAVE ) -GAME( 1999, preisle2, neogeo, preisle2, neogeo, neogeo_state, neogeo, ROT0, "Yumekobo", "Prehistoric Isle 2" , MACHINE_SUPPORTS_SAVE ) /* Encrypted GFX */ +// 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, mjneogeo, 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 */ -/* Data East Corporation */ -GAME( 1993, spinmast, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "Data East Corporation", "Spin Master / Miracle Adventure", MACHINE_SUPPORTS_SAVE ) -GAME( 1994, wjammers, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "Data East Corporation", "Windjammers / Flying Power Disc", MACHINE_SUPPORTS_SAVE ) -GAME( 1994, karnovr, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "Data East Corporation", "Karnov's Revenge / Fighter's History Dynamite", MACHINE_SUPPORTS_SAVE ) -GAME( 1994, strhoop, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "Data East Corporation", "Street Hoop / Street Slam / Dunk Dream (DEM-004 ~ DEH-004)", MACHINE_SUPPORTS_SAVE ) -GAME( 1996, ghostlop, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "Data East Corporation", "Ghostlop (prototype)", MACHINE_SUPPORTS_SAVE ) -GAME( 1996, magdrop2, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "Data East Corporation", "Magical Drop II", MACHINE_SUPPORTS_SAVE ) -GAME( 1997, magdrop3, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "Data East Corporation", "Magical Drop III", MACHINE_SUPPORTS_SAVE ) +// 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 ) -/* Eleven */ -GAME( 2000, nitd, neogeo, nitd, neogeo, neogeo_state, neogeo, ROT0, "Eleven / Gavaking", "Nightmare in the Dark" , MACHINE_SUPPORTS_SAVE ) /* Encrypted GFX */ -GAME( 2001, nitdbl, nitd, neobase, neogeo, neogeo_state, neogeo, ROT0, "bootleg", "Nightmare in the Dark (bootleg)" , 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 ) -/* Face */ -GAME( 1994, gururin, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "Face", "Gururin", MACHINE_SUPPORTS_SAVE ) -GAME( 1997, miexchng, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "Face", "Money Puzzle Exchanger / Money Idol Exchanger", MACHINE_SUPPORTS_SAVE ) -GAME( 1997, dragonsh, neogeo, neobase, neogeo, neogeo_state, neogeo, 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 +// 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 -/* Hudson Soft */ -GAME( 1994, panicbom, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "Eighting / Hudson", "Panic Bomber", MACHINE_SUPPORTS_SAVE ) -GAME( 1995, kabukikl, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "Hudson", "Far East of Eden - Kabuki Klash / Tengai Makyou - Shin Den", MACHINE_SUPPORTS_SAVE ) -GAME( 1997, neobombe, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "Hudson", "Neo Bomberman", MACHINE_SUPPORTS_SAVE ) +// 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 ) -/* Monolith Corp. */ -GAME( 1990, minasan, neogeo, neogeo_mj, mjneogeo, neogeo_state, neogeo, ROT0, "Monolith Corp.", "Minasan no Okagesamadesu! Dai Sugoroku Taikai (MOM-001 ~ MOH-001)", MACHINE_SUPPORTS_SAVE ) -GAME( 1991, bakatono, neogeo, neogeo_mj, mjneogeo, neogeo_state, neogeo, ROT0, "Monolith Corp.", "Bakatonosama Mahjong Manyuuki (MOM-002 ~ MOH-002)", MACHINE_SUPPORTS_SAVE ) +// Monolith Corp. +GAME( 1990, minasan, neogeo, neogeo_mj, mjneogeo, 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, mjneogeo, mvs_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, neogeo_state, neogeo, ROT0, "Nazca", "Neo Turf Masters / Big Tournament Golf", MACHINE_SUPPORTS_SAVE ) -GAME( 1996, mslug, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "Nazca", "Metal Slug - Super Vehicle-001", 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 ) -/* NMK */ -GAME( 1994, zedblade, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "NMK", "Zed Blade / Operation Ragnarok", MACHINE_SUPPORTS_SAVE ) +// NMK +GAME( 1994, zedblade, neogeo, neobase, neogeo, mvs_state, 0, ROT0, "NMK", "Zed Blade / Operation Ragnarok", MACHINE_SUPPORTS_SAVE ) -/* Psikyo */ -GAME( 1999, s1945p, neogeo, s1945p, neogeo, neogeo_state, neogeo, ROT0, "Psikyo", "Strikers 1945 Plus" , MACHINE_SUPPORTS_SAVE ) /* Encrypted GFX */ +// Psikyo +GAME( 1999, s1945p, neogeo, s1945p, neogeo, mvs_state, 0, ROT0, "Psikyo", "Strikers 1945 Plus" , MACHINE_SUPPORTS_SAVE ) /* Encrypted GFX */ -/* Saurus */ -GAME( 1995, quizkof, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "Saurus", "Quiz King of Fighters (SAM-080 ~ SAH-080)", MACHINE_SUPPORTS_SAVE ) -GAME( 1995, quizkofk, quizkof, neobase, neogeo, neogeo_state, neogeo, ROT0, "Saurus", "Quiz King of Fighters (Korean release)", MACHINE_SUPPORTS_SAVE ) -GAME( 1995, stakwin, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "Saurus", "Stakes Winner / Stakes Winner - GI Kinzen Seiha e no Michi", MACHINE_SUPPORTS_SAVE ) -GAME( 1996, ragnagrd, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "Saurus", "Ragnagard / Shin-Oh-Ken", MACHINE_SUPPORTS_SAVE ) -GAME( 1996, pgoal, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "Saurus", "Pleasure Goal / Futsal - 5 on 5 Mini Soccer (NGM-219)", MACHINE_SUPPORTS_SAVE ) -GAME( 1996, ironclad, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "Saurus", "Choutetsu Brikin'ger - Iron Clad (prototype)", MACHINE_SUPPORTS_SAVE ) -GAME( 1996, ironclado, ironclad, neobase, neogeo, neogeo_state, neogeo, ROT0, "bootleg", "Choutetsu Brikin'ger - Iron Clad (prototype, bootleg)", MACHINE_SUPPORTS_SAVE ) -GAME( 1996, stakwin2, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "Saurus", "Stakes Winner 2", MACHINE_SUPPORTS_SAVE ) -GAME( 1997, shocktro, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "Saurus", "Shock Troopers (set 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1997, shocktroa, shocktro, neobase, neogeo, neogeo_state, neogeo, ROT0, "Saurus", "Shock Troopers (set 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 1998, shocktr2, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "Saurus", "Shock Troopers - 2nd Squad", MACHINE_SUPPORTS_SAVE ) -GAME( 1998, lans2004, shocktr2, lans2004, neogeo, neogeo_state, neogeo, ROT0, "bootleg", "Lansquenet 2004 (Shock Troopers - 2nd Squad bootleg)", MACHINE_SUPPORTS_SAVE ) +// 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 ) -/* Sunsoft */ -GAME( 1995, galaxyfg, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "Sunsoft", "Galaxy Fight - Universal Warriors", MACHINE_SUPPORTS_SAVE ) -GAME( 1996, wakuwak7, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "Sunsoft", "Waku Waku 7", 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 ) -/* Taito */ -GAME( 1994, pbobblen, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "Taito", "Puzzle Bobble / Bust-A-Move (Neo-Geo, NGM-083)", MACHINE_SUPPORTS_SAVE ) -GAME( 1994, pbobblenb, pbobblen, neobase, neogeo, neogeo_state, neogeo, ROT0, "bootleg", "Puzzle Bobble / Bust-A-Move (Neo-Geo, bootleg)", MACHINE_SUPPORTS_SAVE ) -GAME( 1999, pbobbl2n, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "Taito (SNK license)", "Puzzle Bobble 2 / Bust-A-Move Again (Neo-Geo)", MACHINE_SUPPORTS_SAVE ) -GAME( 2003, pnyaa, neogeo, pnyaa, neogeo, neogeo_state, neogeo, ROT0, "Aiky / Taito", "Pochi and Nyaa", 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 ) -/* Takara */ -GAME( 1995, marukodq, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "Takara", "Chibi Marukochan Deluxe Quiz", MACHINE_SUPPORTS_SAVE ) +// Takara +GAME( 1995, marukodq, neogeo, neobase, neogeo, mvs_state, 0, ROT0, "Takara", "Chibi Marukochan Deluxe Quiz", MACHINE_SUPPORTS_SAVE ) -/* Technos Japan */ -GAME( 1995, doubledr, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "Technos Japan", "Double Dragon (Neo-Geo)", MACHINE_SUPPORTS_SAVE ) -GAME( 1995, gowcaizr, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "Technos Japan", "Voltage Fighter - Gowcaizer / Choujin Gakuen Gowcaizer", MACHINE_SUPPORTS_SAVE ) -GAME( 1996, sdodgeb, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "Technos Japan", "Super Dodge Ball / Kunio no Nekketsu Toukyuu Densetsu", 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 ) -/* Tecmo */ -GAME( 1996, twsoc96, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "Tecmo", "Tecmo World Soccer '96", MACHINE_SUPPORTS_SAVE ) +// Tecmo +GAME( 1996, twsoc96, neogeo, neobase, neogeo, mvs_state, 0, ROT0, "Tecmo", "Tecmo World Soccer '96", MACHINE_SUPPORTS_SAVE ) -/* Viccom */ -GAME( 1994, fightfev, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "Viccom", "Fight Fever (set 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1994, fightfeva, fightfev, neobase, neogeo, neogeo_state, neogeo, ROT0, "Viccom", "Fight Fever (set 2)", 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 ) -/* Video System Co. */ -GAME( 1994, pspikes2, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "Video System Co.", "Power Spikes II (NGM-068)", MACHINE_SUPPORTS_SAVE ) -GAME( 1994, sonicwi2, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "Video System Co.", "Aero Fighters 2 / Sonic Wings 2", MACHINE_SUPPORTS_SAVE ) -GAME( 1995, sonicwi3, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "Video System Co.", "Aero Fighters 3 / Sonic Wings 3", MACHINE_SUPPORTS_SAVE ) -GAME( 1997, popbounc, neogeo, popbounc, neogeo, neogeo_state, neogeo, ROT0, "Video System Co.", "Pop 'n Bounce / Gapporin", MACHINE_SUPPORTS_SAVE ) -GAME( 1995, froman2b, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "bootleg", "Idol Mahjong Final Romance 2 (Neo-Geo, bootleg of CD version)", 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 ) -/* Visco */ -GAME( 1992, androdun, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "Visco", "Andro Dunos (NGM-049 ~ NGH-049)", MACHINE_SUPPORTS_SAVE ) -GAME( 1995, puzzledp, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "Taito (Visco license)", "Puzzle De Pon!", MACHINE_SUPPORTS_SAVE ) -GAME( 1996, neomrdo, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "Visco", "Neo Mr. Do!", MACHINE_SUPPORTS_SAVE ) -GAME( 1995, goalx3, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "Visco", "Goal! Goal! Goal!", MACHINE_SUPPORTS_SAVE ) -GAME( 1996, neodrift, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "Visco", "Neo Drift Out - New Technology", MACHINE_SUPPORTS_SAVE ) -GAME( 1996, breakers, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "Visco", "Breakers", MACHINE_SUPPORTS_SAVE ) -GAME( 1997, puzzldpr, puzzledp, neobase, neogeo, neogeo_state, neogeo, ROT0, "Taito (Visco license)", "Puzzle De Pon! R!", MACHINE_SUPPORTS_SAVE ) -GAME( 1998, breakrev, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "Visco", "Breakers Revenge", MACHINE_SUPPORTS_SAVE ) -GAME( 1998, flipshot, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "Visco", "Battle Flip Shot", MACHINE_SUPPORTS_SAVE ) -GAME( 1999, ctomaday, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "Visco", "Captain Tomaday", MACHINE_SUPPORTS_SAVE ) -GAME( 1999, ganryu, neogeo, ganryu, neogeo, neogeo_state, neogeo, ROT0, "Visco", "Ganryu / Musashi Ganryuki" , MACHINE_SUPPORTS_SAVE ) /* Encrypted GFX */ -GAME( 2000, bangbead, neogeo, bangbead, neogeo, neogeo_state, neogeo, ROT0, "Visco", "Bang Bead", MACHINE_SUPPORTS_SAVE ) -GAME( 2000, b2b, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "Visco", "Bang Bang Busters (2010 NCI release)" , 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 ) -/* Mega Enterprise */ -GAME( 2002, mslug4, neogeo, mslug4, neogeo, neogeo_state, neogeo, ROT0, "Mega / Playmore", "Metal Slug 4 (NGM-2630)", MACHINE_SUPPORTS_SAVE ) -GAME( 2002, mslug4h, mslug4, mslug4, neogeo, neogeo_state, neogeo, ROT0, "Mega / Playmore", "Metal Slug 4 (NGH-2630)", MACHINE_SUPPORTS_SAVE ) -GAME( 2002, ms4plus, mslug4, ms4plus, neogeo, neogeo_state, neogeo, ROT0, "bootleg", "Metal Slug 4 Plus (bootleg)", 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 ) -/* Evoga */ -GAME( 2002, rotd, neogeo, rotd, neogeo, neogeo_state, neogeo, ROT0, "Evoga / Playmore", "Rage of the Dragons (NGM-2640?)", MACHINE_SUPPORTS_SAVE ) -GAME( 2002, rotdh, rotd, rotd, neogeo, neogeo_state, neogeo, ROT0, "Evoga / Playmore", "Rage of the Dragons (NGH-2640?)", 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 ) -/* Atlus */ -GAME( 2002, matrim, neogeo, matrim, neogeo, neogeo_state, neogeo, ROT0, "Noise Factory / Atlus", "Matrimelee / Shin Gouketsuji Ichizoku Toukon (NGM-2660 ~ NGH-2660)", MACHINE_SUPPORTS_SAVE ) -GAME( 2002, matrimbl, matrim, matrimbl, neogeo, neogeo_state, neogeo, ROT0, "bootleg", "Matrimelee / Shin Gouketsuji Ichizoku Toukon (bootleg)", 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 ) /***** Unlicensed commercial releases *****/ -/* BrezzaSoft */ -GAME( 2001, jockeygp, neogeo, jockeygp, jockeygp, neogeo_state, neogeo, ROT0, "Sun Amusement / BrezzaSoft", "Jockey Grand Prix (set 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 2001, jockeygpa, jockeygp, jockeygp, jockeygp, neogeo_state, neogeo, ROT0, "Sun Amusement / BrezzaSoft", "Jockey Grand Prix (set 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 2001, vliner, neogeo, vliner, vliner, neogeo_state, neogeo, ROT0, "Dyna / BrezzaSoft", "V-Liner (set 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 2001, vlinero, vliner, vliner, vliner, neogeo_state, neogeo, ROT0, "Dyna / BrezzaSoft", "V-Liner (set 2)", MACHINE_SUPPORTS_SAVE ) +// 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 ) -/* Kyle Hodgetts */ -GAME( 2000, diggerma, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "Kyle Hodgetts", "Digger Man (prototype)", MACHINE_SUPPORTS_SAVE ) +// Kyle Hodgetts +GAME( 2000, diggerma, neogeo, neobase, neogeo, mvs_state, 0, ROT0, "Kyle Hodgetts", "Digger Man (prototype)", MACHINE_SUPPORTS_SAVE ) -/* Vektorlogic */ -GAME( 2004, sbp, neogeo, sbp, neogeo, neogeo_state, neogeo, ROT0, "Vektorlogic", "Super Bubble Pop", MACHINE_NOT_WORKING ) +// Vektorlogic +GAME( 2004, sbp, neogeo, sbp, neogeo, mvs_state, 0, ROT0, "Vektorlogic", "Super Bubble Pop", MACHINE_NOT_WORKING ) -/* NG:DEV.TEAM */ -GAME( 2005, lasthope, neogeo, neobase, neogeo, neogeo_state, neogeo, 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 +// 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 // Last Hope Pink Bullets (c)2008 - MVS/AES // Fast Striker (c)2010 - MVS/AES // Fast Striker 1.5 (c)2010 - MVS/AES @@ -11238,9 +11415,8 @@ GAME( 2005, lasthope, neogeo, neobase, neogeo, neogeo_state, neogeo, R // Razion (c)2014 - MVS/AES? // Kraut Buster (c)2016 - MVS/AES -/* N.C.I - LE CORTEX */ -// Treasure of the Caribbean (c)2011 - AES only (no credits system if ran on an MVS, Freeplay) +// N.C.I - LE CORTEX +// Treasure of the Caribbean (c)2011 - AES only (no credits system if run on an MVS, Freeplay) -/* NEOBITZ */ +// NEOBITZ // Knight's Chance (c)2014 - MVS/AES - diff --git a/src/mame/drivers/neogeocd.cpp b/src/mame/drivers/neogeocd.cpp index d27770be1ab..ddfaa2c62a5 100644 --- a/src/mame/drivers/neogeocd.cpp +++ b/src/mame/drivers/neogeocd.cpp @@ -51,11 +51,11 @@ uint8_t* NeoZ80ROMActive; uint8_t NeoSystem = NEOCD_REGION_JAPAN; -class ngcd_state : public aes_state +class ngcd_state : public aes_base_state { public: ngcd_state(const machine_config &mconfig, device_type type, const char *tag) - : aes_state(mconfig, type, tag) + : aes_base_state(mconfig, type, tag) , m_tempcdc(*this,"tempcdc") { NeoCDDMAAddress1 = 0; @@ -88,9 +88,6 @@ public: DECLARE_INPUT_CHANGED_MEMBER(aes_jp1); - DECLARE_MACHINE_START(neocd); - DECLARE_MACHINE_RESET(neocd); - // neoCD int32_t nActiveTransferArea; @@ -137,7 +134,10 @@ public: void neocd_audio_io_map(address_map &map); void neocd_audio_map(address_map &map); void neocd_main_map(address_map &map); + protected: + virtual void machine_start() override; + virtual void machine_reset() override; int32_t SekIdle(int32_t nCycles); }; @@ -828,17 +828,14 @@ if (NeoCDDMAAddress2 == 0x0800) { * *************************************/ -MACHINE_START_MEMBER(ngcd_state,neocd) +void ngcd_state::machine_start() { - m_type = NEOGEO_CD; - common_machine_start(); + aes_base_state::machine_start(); // set curr_slot to 0, so to allow checking m_slots[m_curr_slot] != nullptr m_curr_slot = 0; // initialize sprite to point to memory regions - m_sprgen->m_fixed_layer_bank_type = 0; - m_sprgen->set_screen(m_screen); m_sprgen->set_sprite_region(m_region_sprites->base(), m_region_sprites->bytes()); m_sprgen->set_fixed_regions(m_region_fixed->base(), m_region_fixed->bytes(), m_region_fixedbios); m_sprgen->neogeo_set_fixed_layer_source(1); @@ -853,8 +850,6 @@ MACHINE_START_MEMBER(ngcd_state,neocd) machine().device("saveram")->set_base(m_meminternal_data.get(), 0x2000); save_pointer(NAME(m_meminternal_data.get()), 0x2000); - m_use_cart_vectors = 0; - m_tempcdc->reset_cd(); } @@ -865,9 +860,9 @@ MACHINE_START_MEMBER(ngcd_state,neocd) * *************************************/ -MACHINE_RESET_MEMBER(ngcd_state,neocd) +void ngcd_state::machine_reset() { - neogeo_state::machine_reset(); + aes_base_state::machine_reset(); NeoSpriteRAM = memregion("sprites")->base(); YM2610ADPCMAROM = memregion("ymsnd")->base(); @@ -1072,9 +1067,6 @@ MACHINE_CONFIG_START(ngcd_state::neocd) MCFG_NVRAM_ADD_0FILL("saveram") - MCFG_MACHINE_START_OVERRIDE(ngcd_state,neocd) - MCFG_MACHINE_RESET_OVERRIDE(ngcd_state,neocd) - MCFG_NEOGEO_CONTROL_PORT_ADD("ctrl1", neogeo_controls, "joy", false) MCFG_NEOGEO_CONTROL_PORT_ADD("ctrl2", neogeo_controls, "joy", false) diff --git a/src/mame/drivers/neopcb.cpp b/src/mame/drivers/neopcb.cpp index 7346757b6a9..f07aa8ec476 100644 --- a/src/mame/drivers/neopcb.cpp +++ b/src/mame/drivers/neopcb.cpp @@ -6,27 +6,68 @@ #include "emu.h" #include "includes/neogeo.h" +#include "bus/neogeo/prot_pcm2.h" +#include "bus/neogeo/prot_cmc.h" +#include "bus/neogeo/prot_pvc.h" + + +class neopcb_state : public ngarcade_base_state +{ +public: + neopcb_state(const machine_config &mconfig, device_type type, const char *tag) + : ngarcade_base_state(mconfig, type, tag) + , m_cmc_prot(*this, "cmc50") + , m_pcm2_prot(*this, "pcm2") + , m_pvc_prot(*this, "pvc") + { + } + + DECLARE_INPUT_CHANGED_MEMBER(select_bios); + + DECLARE_DRIVER_INIT(ms5pcb); + DECLARE_DRIVER_INIT(svcpcb); + DECLARE_DRIVER_INIT(kf2k3pcb); + + void neopcb(machine_config &config); + +protected: + // device overrides + virtual void machine_start() override; + + virtual void neogeo_postload() override; + + DECLARE_WRITE16_MEMBER(write_bankpvc); + + void install_common(); + void install_banked_bios(); + void neopcb_postload(); + + // non-carts + void svcpcb_gfx_decrypt(); + void svcpcb_s1data_decrypt(); + void kf2k3pcb_gfx_decrypt(); + void kf2k3pcb_decrypt_s1data(); + void kf2k3pcb_sp1_decrypt(); + +private: + required_device m_cmc_prot; + required_device m_pcm2_prot; + required_device m_pvc_prot; +}; + void neopcb_state::machine_start() { - m_type = NEOGEO_MVS; - common_machine_start(); - - // enable rtc and serial mode - m_upd4990a->cs_w(1); - m_upd4990a->oe_w(1); - m_upd4990a->c0_w(1); - m_upd4990a->c1_w(1); - m_upd4990a->c2_w(1); + ngarcade_base_state::machine_start(); m_sprgen->set_screen(m_screen); } -void neopcb_state::neopcb_postload() +void neopcb_state::neogeo_postload() { - m_bank_audio_main->set_entry(m_use_cart_audio); + ngarcade_base_state::neogeo_postload(); + membank("cpu_bank")->set_base(m_region_maincpu->base() + m_bank_base); - set_outputs(); } MACHINE_CONFIG_START(neopcb_state::neopcb) @@ -445,7 +486,6 @@ void neopcb_state::install_banked_bios() DRIVER_INIT_MEMBER(neopcb_state, ms5pcb) { - DRIVER_INIT_CALL(neogeo); install_common(); install_banked_bios(); @@ -465,7 +505,6 @@ DRIVER_INIT_MEMBER(neopcb_state, ms5pcb) DRIVER_INIT_MEMBER(neopcb_state, svcpcb) { - DRIVER_INIT_CALL(neogeo); install_common(); install_banked_bios(); @@ -485,7 +524,6 @@ DRIVER_INIT_MEMBER(neopcb_state, svcpcb) DRIVER_INIT_MEMBER(neopcb_state, kf2k3pcb) { - DRIVER_INIT_CALL(neogeo); install_common(); m_sprgen->m_fixed_layer_bank_type = 2; diff --git a/src/mame/includes/neogeo.h b/src/mame/includes/neogeo.h index 78dd1d0a862..e569617ad44 100644 --- a/src/mame/includes/neogeo.h +++ b/src/mame/includes/neogeo.h @@ -6,6 +6,10 @@ Neo-Geo hardware *************************************************************************/ +#ifndef MAME_INCLUDES_NEOGEO_H +#define MAME_INCLUDES_NEOGEO_H + +#pragma once #include "cpu/m68000/m68000.h" #include "cpu/z80/z80.h" @@ -34,10 +38,8 @@ public: driver_device(mconfig, type, tag), m_maincpu(*this, "maincpu"), m_audiocpu(*this, "audiocpu"), - m_upd4990a(*this, "upd4990a"), m_ym(*this, "ymsnd"), m_sprgen(*this, "spritegen"), - m_save_ram(*this, "saveram"), m_screen(*this, "screen"), m_palette(*this, "palette"), m_memcard(*this, "memcard"), @@ -51,17 +53,12 @@ public: m_region_audiobios(*this, "audiobios"), m_region_audiocpu(*this, "audiocpu"), m_bank_audio_main(*this, "audio_main"), - m_dsw(*this, "DSW"), - m_trackx(*this, "TRACK_X"), - m_tracky(*this, "TRACK_Y"), m_edge(*this, "edge"), m_ctrl1(*this, "ctrl1"), m_ctrl2(*this, "ctrl2"), m_use_cart_vectors(0), m_use_cart_audio(0), - m_slots(*this, "cslot%u", 1U), - m_digits(*this, "digit%u", 1U), - m_lamps(*this, "lamp%u", 1U) + m_slots(*this, "cslot%u", 1U) { } DECLARE_READ16_MEMBER(memcard_r); @@ -75,8 +72,6 @@ public: DECLARE_WRITE16_MEMBER(paletteram_w); DECLARE_READ16_MEMBER(video_register_r); DECLARE_WRITE16_MEMBER(video_register_w); - DECLARE_READ16_MEMBER(in0_r); - DECLARE_READ16_MEMBER(in1_r); DECLARE_CUSTOM_INPUT_MEMBER(get_memcard_status); DECLARE_CUSTOM_INPUT_MEMBER(get_audio_result); @@ -85,14 +80,9 @@ public: TIMER_CALLBACK_MEMBER(display_position_vblank_callback); TIMER_CALLBACK_MEMBER(vblank_interrupt_callback); - // MVS-specific - DECLARE_WRITE_LINE_MEMBER(set_save_ram_unlock); - DECLARE_WRITE16_MEMBER(save_ram_w); - DECLARE_CUSTOM_INPUT_MEMBER(kizuna4p_start_r); - uint32_t screen_update_neogeo(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); - DECLARE_WRITE8_MEMBER(io_control_w); + virtual DECLARE_WRITE8_MEMBER(io_control_w); DECLARE_WRITE_LINE_MEMBER(set_use_cart_vectors); DECLARE_WRITE_LINE_MEMBER(set_use_cart_audio); DECLARE_READ16_MEMBER(banked_vectors_r); @@ -107,99 +97,23 @@ public: DECLARE_WRITE_LINE_MEMBER(set_screen_shadow); DECLARE_WRITE_LINE_MEMBER(set_palette_bank); - DECLARE_DRIVER_INIT(neogeo); - void neogeo_base(machine_config &config); - void neogeo_arcade(machine_config &config); - void mslug3b6(machine_config &config); - void s1945p(machine_config &config); - void rotd(machine_config &config); - void mslug4(machine_config &config); - void kof2003(machine_config &config); - void lans2004(machine_config &config); - void ms5plus(machine_config &config); - void kof2k4se(machine_config &config); - void kof2002(machine_config &config); - void kof2001(machine_config &config); - void svcplus(machine_config &config); - void kf2k5uni(machine_config &config); - void garou(machine_config &config); - void sbp(machine_config &config); - void cthd2k3(machine_config &config); - void ct2k3sp(machine_config &config); - void kof2000n(machine_config &config); - void mslug3(machine_config &config); - void kog(machine_config &config); - void fatfur2(machine_config &config); - void garouh(machine_config &config); - void ganryu(machine_config &config); - void zupapa(machine_config &config); - void neobase(machine_config &config); - void kof10th(machine_config &config); - void mslug5(machine_config &config); - void garoubl(machine_config &config); - void ct2k3sa(machine_config &config); - void nitd(machine_config &config); - void samsh5sp(machine_config &config); - void kof98(machine_config &config); - void kf2k3pl(machine_config &config); - void mvs(machine_config &config); - void ms4plus(machine_config &config); - void samsho5b(machine_config &config); - void popbounc(machine_config &config); - void svcplusa(machine_config &config); - void kof2002b(machine_config &config); - void svcboot(machine_config &config); - void kof2000(machine_config &config); - void samsho5(machine_config &config); - void kf2k2mp2(machine_config &config); - void pnyaa(machine_config &config); - void mslug3h(machine_config &config); - void vliner(machine_config &config); - void jockeygp(machine_config &config); - void matrim(machine_config &config); - void matrimbl(machine_config &config); - void kof97oro(machine_config &config); - void kizuna4p(machine_config &config); - void mslugx(machine_config &config); - void kf2k2pls(machine_config &config); - void kf10thep(machine_config &config); - void sengoku3(machine_config &config); - void neogeo_mj(machine_config &config); - void kf2k3upl(machine_config &config); - void preisle2(machine_config &config); - void svcsplus(machine_config &config); - void kf2k3bl(machine_config &config); - void kof99(machine_config &config); - void svc(machine_config &config); - void kof2003h(machine_config &config); - void kof99k(machine_config &config); - void irrmaze(machine_config &config); - void kf2k2mp(machine_config &config); - void bangbead(machine_config &config); void audio_io_map(address_map &map); void audio_map(address_map &map); - void main_map_slot(address_map &map); - void neogeo_main_map(address_map &map); + protected: - void common_machine_start(); - - void set_outputs(); - // device overrides virtual void machine_start() override; virtual void machine_reset() override; - void neogeo_postload(); + virtual void neogeo_postload(); // devices required_device m_maincpu; required_device m_audiocpu; // MVS-specific devices - optional_device m_upd4990a; optional_device m_ym; required_device m_sprgen; - optional_shared_ptr m_save_ram; required_device m_screen; optional_device m_palette; @@ -219,12 +133,6 @@ protected: memory_bank *m_bank_audio_cart[4]; memory_bank *m_bank_cartridge; - // configuration - enum {NEOGEO_MVS, NEOGEO_AES, NEOGEO_CD} m_type; - - optional_ioport m_dsw; - optional_ioport m_trackx; - optional_ioport m_tracky; optional_device m_edge; optional_device m_ctrl1; optional_device m_ctrl2; @@ -252,8 +160,6 @@ protected: uint32_t m_bank_base; optional_device_array m_slots; - output_finder<4> m_digits; - output_finder<6> m_lamps; int m_curr_slot; @@ -273,22 +179,12 @@ private: void set_pens(); void audio_cpu_check_nmi(); - void set_output_latch(uint8_t data); - void set_output_data(uint8_t data); // internal state bool m_recurse; bool m_audio_cpu_nmi_enabled; bool m_audio_cpu_nmi_pending; - // MVS-specific state - uint8_t m_save_ram_unlocked; - 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; - emu_timer *m_display_position_interrupt_timer; emu_timer *m_display_position_vblank_timer; emu_timer *m_vblank_interrupt_timer; @@ -308,65 +204,59 @@ private: }; -class aes_state : public neogeo_state +class ngarcade_base_state : public neogeo_state { - public: - aes_state(const machine_config &mconfig, device_type type, const char *tag) - : neogeo_state(mconfig, type, tag) - , m_io_in2(*this, "IN2") - {} - - DECLARE_READ16_MEMBER(aes_in2_r); - DECLARE_INPUT_CHANGED_MEMBER(aes_jp1); - DECLARE_MACHINE_START(aes); - - void aes(machine_config &config); - void aes_main_map(address_map &map); protected: - required_ioport m_io_in2; + ngarcade_base_state(const machine_config &mconfig, device_type type, const char *tag) + : neogeo_state(mconfig, type, tag) + , m_save_ram(*this, "saveram") + , m_upd4990a(*this, "upd4990a") + , m_dsw(*this, "DSW") + { + } + + virtual void machine_start() override; + + virtual DECLARE_WRITE8_MEMBER(io_control_w) override; + DECLARE_WRITE_LINE_MEMBER(set_save_ram_unlock); + DECLARE_WRITE16_MEMBER(save_ram_w); + DECLARE_READ16_MEMBER(in0_r); + DECLARE_READ16_MEMBER(in1_r); + + void neogeo_arcade(machine_config &config); + + void neogeo_main_map(address_map &map); + void main_map_slot(address_map &map); + +private: + required_shared_ptr m_save_ram; + required_device m_upd4990a; + required_ioport m_dsw; + + uint8_t m_save_ram_unlocked; }; -#include "bus/neogeo/prot_pcm2.h" -#include "bus/neogeo/prot_cmc.h" -#include "bus/neogeo/prot_pvc.h" - -class neopcb_state : public neogeo_state +class aes_base_state : public neogeo_state { - public: - neopcb_state(const machine_config &mconfig, device_type type, const char *tag) - : neogeo_state(mconfig, type, tag) - , m_cmc_prot(*this, "cmc50") - , m_pcm2_prot(*this, "pcm2") - , m_pvc_prot(*this, "pvc") - {} +public: + DECLARE_INPUT_CHANGED_MEMBER(aes_jp1); + +protected: + aes_base_state(const machine_config &mconfig, device_type type, const char *tag) + : neogeo_state(mconfig, type, tag) + , m_io_in2(*this, "IN2") + { + } + + DECLARE_READ16_MEMBER(aes_in2_r); - // device overrides virtual void machine_start() override; - DECLARE_WRITE16_MEMBER(write_bankpvc); + void aes_main_map(address_map &map); - DECLARE_INPUT_CHANGED_MEMBER(select_bios); - - DECLARE_DRIVER_INIT(ms5pcb); - DECLARE_DRIVER_INIT(svcpcb); - DECLARE_DRIVER_INIT(kf2k3pcb); - DECLARE_DRIVER_INIT(vliner); - - void install_common(); - void install_banked_bios(); - void neopcb_postload(); - // non-carts - void svcpcb_gfx_decrypt(); - void svcpcb_s1data_decrypt(); - void kf2k3pcb_gfx_decrypt(); - void kf2k3pcb_decrypt_s1data(); - void kf2k3pcb_sp1_decrypt(); - - required_device m_cmc_prot; - required_device m_pcm2_prot; - required_device m_pvc_prot; - void neopcb(machine_config &config); +private: + required_ioport m_io_in2; }; @@ -374,3 +264,5 @@ class neopcb_state : public neogeo_state INPUT_PORTS_EXTERN(neogeo); INPUT_PORTS_EXTERN(aes); + +#endif // MAME_INCLUDES_NEOGEO_H