summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/snowbros.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/snowbros.cpp')
-rw-r--r--src/mame/drivers/snowbros.cpp3081
1 files changed, 0 insertions, 3081 deletions
diff --git a/src/mame/drivers/snowbros.cpp b/src/mame/drivers/snowbros.cpp
deleted file mode 100644
index 2658ffc4318..00000000000
--- a/src/mame/drivers/snowbros.cpp
+++ /dev/null
@@ -1,3081 +0,0 @@
-// license:BSD-3-Clause
-// copyright-holders:David Haywood, Mike Coates
-/***************************************************************************
-
- Snow Brothers (Toaplan) / SemiCom Hardware
- uses Kaneko's Pandora sprite chip (also used in DJ Boy, Air Buster ..)
-
-Snow Bros Nick & Tom
-Toaplan, 1990
-
- PCB Layout
- ----------
- MIN16-02
-
- |------------------------------------------|
- | VOL YM3812 6116 4464 4464 |
- | LA4460 YM3014 4464 4464 |
- | 458 SBROS-4.29 SBROS1.40 |
- | 2003 Z80B PANDORA |
- |J D41101C-1 LS07 LS32 |
- |A SBROS-3A.5 SBROS-2A.6 LS139 LS174|
- |M LS245 LS74 LS04 16MHz|
- |M 6264 6264 F32 LS74 LS74 |
- |A 68000 LS20 F138 LS04 12MHz|
- | LS04 LS148 LS251 LS00 |
- | LS273 LS245 LS245 LS158 LS257 LS257 LS32 |
- | |
- | LS273 6116 6116 LS157 DSW2 DSW1 |
- |------------------------------------------|
-
- Notes:
- 68k clock: 8.000MHz
- Z80B clock: 6.000MHz
- YM3812 clock: 3.000MHz
- VSync: 57.5Hz
- HSync: 15.68kHz
-
- driver by Mike Coates
-
- Hyper Pacman addition by David Haywood
- + some bits by Nicola Salmoria
-
- !!DO NOT TRUST THE SERVICE MODES FOR DIPSWITCH SETTINGS!!
-
-Stephh's notes (hyperpac):
-
- - According to the "Language" Dip Switch, this game is a Korean game.
- (although the Language Dipswitch doesn't affect language, but yes
- I believe SemiCom to be a Korean Company)
- - There is no "cocktail mode", nor way to flip the screen.
-
-Notes:
-
-Cookie & Bibi 3
-This game is quite buggy. The test mode is incomplete and displays garbage
-on the 'Dipswitch settings' screens, and during some of the attract mode
-scenes the credit counter is not updated when you insert coins until the next
-scene. Both these bugs are verified as occurring on the original hardware.
-
-Honey Doll / Twin Adventure
-
-These appear to have clipping problems on the left / right edges, but this
-may be correct, the sprites which should be drawn there are simply blanked
-out of the sprite list at that point.. (verify on real hw)
-
-Ma Cheon Ru
-
-The electrified maze + ball minigame appears unresponsive to controls, this
-is because it actually requires you to move the joysticks in a circular
-motion through all 8 directions at a very even speed, a task which is
-practically impossible to perform on keyboard, and not even that easy with
-a joystick. This is not an emulation bug.
-
-
-***************************************************************************/
-
-#include "emu.h"
-#include "includes/snowbros.h"
-
-#include "cpu/m68000/m68000.h"
-#include "cpu/mcs51/mcs51.h" // for semicom mcu
-#include "cpu/z80/z80.h"
-#include "machine/watchdog.h"
-#include "sound/ymopm.h"
-#include "sound/ymopl.h"
-
-#include "speaker.h"
-
-
-void snowbros_state::snowbros_flipscreen_w(uint8_t data)
-{
- m_pandora->flip_screen_set(!BIT(data, 7));
-}
-
-
-void snowbros_state::bootleg_flipscreen_w(uint8_t data)
-{
- flip_screen_set(~data & 0x80);
-}
-
-
-uint32_t snowbros_state::screen_update_snowbros(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
-{
- /* This clears & redraws the entire screen each pass */
- bitmap.fill(0xf0, cliprect);
- m_pandora->update(bitmap, cliprect);
- return 0;
-}
-
-
-WRITE_LINE_MEMBER(snowbros_state::screen_vblank_snowbros)
-{
- // rising edge
- if (state)
- {
- m_pandora->eof();
- }
-}
-
-
-
-void snowbros_state::snowbros_irq4_ack_w(uint16_t data)
-{
- m_maincpu->set_input_line(4, CLEAR_LINE);
-}
-
-void snowbros_state::snowbros_irq3_ack_w(uint16_t data)
-{
- m_maincpu->set_input_line(3, CLEAR_LINE);
-}
-
-void snowbros_state::snowbros_irq2_ack_w(uint16_t data)
-{
- m_maincpu->set_input_line(2, CLEAR_LINE);
-}
-
-TIMER_DEVICE_CALLBACK_MEMBER(snowbros_state::snowbros_irq)
-{
- int scanline = param;
-
- if(scanline == 240)
- m_maincpu->set_input_line(2, ASSERT_LINE);
-
- if(scanline == 128)
- m_maincpu->set_input_line(3, ASSERT_LINE);
-
- if(scanline == 32)
- m_maincpu->set_input_line(4, ASSERT_LINE);
-}
-
-TIMER_DEVICE_CALLBACK_MEMBER(snowbros_state::snowbros3_irq)
-{
- int status = m_oki->read();
- int scanline = param;
-
- if(scanline == 240)
- m_maincpu->set_input_line(2, ASSERT_LINE);
-
- if(scanline == 128)
- m_maincpu->set_input_line(3, ASSERT_LINE);
-
- if(scanline == 32)
- m_maincpu->set_input_line(4, ASSERT_LINE);
-
- if (m_sb3_music_is_playing)
- {
- if ((status&0x08)==0x00)
- {
- m_oki->write(0x80|m_sb3_music);
- m_oki->write(0x00|0x82);
- }
-
- }
- else
- {
- if ((status&0x08)==0x08)
- {
- m_oki->write(0x40); /* Stop playing music */
- }
- }
-
-}
-
-uint16_t snowbros_state::toto_read(offs_t offset, uint16_t mem_mask)
-{
- int pc = m_maincpu->pc();
- if ((pc!= 0x3f010) && (pc!= 0x38008)) printf("toto prot %08x %04x\n", pc, mem_mask);
- return 0x0700;
-}
-
-/* Snow Bros Memory Map */
-
-void snowbros_state::snowbros_map(address_map &map)
-{
- map(0x000000, 0x03ffff).rom();
- map(0x100000, 0x103fff).ram();
- map(0x200000, 0x200001).w("watchdog", FUNC(watchdog_timer_device::reset16_w));
- map(0x300001, 0x300001).r("soundlatch2", FUNC(generic_latch_8_device::read));
- map(0x300001, 0x300001).w(m_soundlatch, FUNC(generic_latch_8_device::write));
- map(0x400000, 0x400000).w(FUNC(snowbros_state::snowbros_flipscreen_w));
- map(0x500000, 0x500001).portr("DSW1");
- map(0x500002, 0x500003).portr("DSW2");
- map(0x500004, 0x500005).portr("SYSTEM");
- map(0x600000, 0x6001ff).ram().w(m_palette, FUNC(palette_device::write16)).share("palette");
- map(0x700000, 0x701fff).rw(m_pandora, FUNC(kaneko_pandora_device::spriteram_LSB_r), FUNC(kaneko_pandora_device::spriteram_LSB_w));
- map(0x800000, 0x800001).w(FUNC(snowbros_state::snowbros_irq4_ack_w)); /* IRQ 4 acknowledge */
- map(0x900000, 0x900001).w(FUNC(snowbros_state::snowbros_irq3_ack_w)); /* IRQ 3 acknowledge */
- map(0xa00000, 0xa00001).w(FUNC(snowbros_state::snowbros_irq2_ack_w)); /* IRQ 2 acknowledge */
-}
-
-void snowbros_state::sound_map(address_map &map)
-{
- map(0x0000, 0x7fff).rom();
- map(0x8000, 0x87ff).ram();
-}
-
-void snowbros_state::sound_io_map(address_map &map)
-{
- map.global_mask(0xff);
- map(0x02, 0x03).rw("ymsnd", FUNC(ym3812_device::read), FUNC(ym3812_device::write));
- map(0x04, 0x04).r(m_soundlatch, FUNC(generic_latch_8_device::read));
- map(0x04, 0x04).w("soundlatch2", FUNC(generic_latch_8_device::write)); // goes back to the main CPU, checked during boot
-}
-
-
-/* Semicom AT89C52 MCU */
-
-// probably not endian safe
-void snowbros_state::prot_p0_w(uint8_t data)
-{
- uint16_t word = m_hyperpac_ram[m_semicom_prot_base + m_semicom_prot_offset];
- word = (word & 0xff00) | (data << 0);
- m_hyperpac_ram[m_semicom_prot_base + m_semicom_prot_offset] = word;
-}
-
-// probably not endian safe
-void snowbros_state::prot_p1_w(uint8_t data)
-{
- uint16_t word = m_hyperpac_ram[m_semicom_prot_base + m_semicom_prot_offset];
- word = (word & 0x00ff) | (data << 8);
- m_hyperpac_ram[m_semicom_prot_base + m_semicom_prot_offset] = word;
-}
-
-void snowbros_state::prot_p2_w(uint8_t data)
-{
- // offset
- m_semicom_prot_offset = data;
-}
-
-/* Winter Bobble - bootleg GFX chip */
-
-void snowbros_state::wintbob_map(address_map &map)
-{
- map(0x000000, 0x03ffff).rom();
- map(0x100000, 0x103fff).ram();
- map(0x200000, 0x200001).w("watchdog", FUNC(watchdog_timer_device::reset16_w));
- map(0x300001, 0x300001).r("soundlatch2", FUNC(generic_latch_8_device::read));
- map(0x300001, 0x300001).w(m_soundlatch, FUNC(generic_latch_8_device::write));
- map(0x400000, 0x400000).w(FUNC(snowbros_state::bootleg_flipscreen_w));
- map(0x500000, 0x500001).portr("DSW1");
- map(0x500002, 0x500003).portr("DSW2");
- map(0x500004, 0x500005).portr("SYSTEM");
- map(0x600000, 0x6001ff).ram().w(m_palette, FUNC(palette_device::write16)).share("palette");
- map(0x700000, 0x701fff).ram().share("spriteram16b");
- map(0x800000, 0x800001).w(FUNC(snowbros_state::snowbros_irq4_ack_w)); /* IRQ 4 acknowledge */
- map(0x900000, 0x900001).w(FUNC(snowbros_state::snowbros_irq3_ack_w)); /* IRQ 3 acknowledge */
- map(0xa00000, 0xa00001).w(FUNC(snowbros_state::snowbros_irq2_ack_w)); /* IRQ 2 acknowledge */
-}
-
-/* Honey Dolls */
-
-void snowbros_state::honeydol_map(address_map &map)
-{
- map(0x000000, 0x03ffff).rom();
- map(0x100000, 0x10ffff).ram().share("hyperpac_ram");
- map(0x200000, 0x200001).nopw(); /* ? */
- map(0x300001, 0x300001).w(m_soundlatch, FUNC(generic_latch_8_device::write));
- map(0x400000, 0x400001).w(FUNC(snowbros_state::snowbros_irq4_ack_w)); /* IRQ 4 acknowledge */
- map(0x500000, 0x500001).w(FUNC(snowbros_state::snowbros_irq3_ack_w)); /* IRQ 3 acknowledge */
- map(0x600000, 0x600001).w(FUNC(snowbros_state::snowbros_irq2_ack_w)); /* IRQ 2 acknowledge */
- map(0x800000, 0x800001).nopw(); /* ? */
- map(0x900000, 0x900001).portr("DSW1");
- map(0x900002, 0x900003).portr("DSW2");
- map(0x900004, 0x900005).portr("SYSTEM");
- map(0xa00000, 0xa007ff).ram().w(m_palette, FUNC(palette_device::write16)).share("palette");
- map(0xb00000, 0xb01fff).ram().share("spriteram16b");
-}
-
-void snowbros_state::honeydol_sound_map(address_map &map)
-{
- map(0x0000, 0x7fff).rom();
- map(0x8000, 0x87ff).ram();
- map(0xe010, 0xe010).rw(m_oki, FUNC(okim6295_device::read), FUNC(okim6295_device::write));
-}
-
-void snowbros_state::honeydol_sound_io_map(address_map &map)
-{
- map.global_mask(0xff);
- map(0x02, 0x03).rw("ymsnd", FUNC(ym3812_device::read), FUNC(ym3812_device::write)); // not connected?
- map(0x04, 0x04).r(m_soundlatch, FUNC(generic_latch_8_device::read));
- map(0x04, 0x04).nopw(); // still written but never actually read by the main CPU
-}
-
-/* Twin Adventure */
-
-void snowbros_state::twinadv_map(address_map &map)
-{
- map(0x000000, 0x03ffff).rom();
- map(0x100000, 0x10ffff).ram();
- map(0x200000, 0x200001).w("watchdog", FUNC(watchdog_timer_device::reset16_w));
- map(0x300001, 0x300001).r("soundlatch2", FUNC(generic_latch_8_device::read));
- map(0x300001, 0x300001).w(m_soundlatch, FUNC(generic_latch_8_device::write));
- map(0x400000, 0x400000).w(FUNC(snowbros_state::bootleg_flipscreen_w));
-
- map(0x500000, 0x500001).portr("DSW1");
- map(0x500002, 0x500003).portr("DSW2");
- map(0x500004, 0x500005).portr("SYSTEM");
- map(0x600000, 0x6001ff).ram().w(m_palette, FUNC(palette_device::write16)).share("palette");
- map(0x700000, 0x701fff).ram().share("spriteram16b");
- map(0x800000, 0x800001).w(FUNC(snowbros_state::snowbros_irq4_ack_w)); /* IRQ 4 acknowledge */
- map(0x900000, 0x900001).w(FUNC(snowbros_state::snowbros_irq3_ack_w)); /* IRQ 3 acknowledge */
- map(0xa00000, 0xa00001).w(FUNC(snowbros_state::snowbros_irq2_ack_w)); /* IRQ 2 acknowledge */
-}
-
-void snowbros_state::twinadv_oki_bank_w(uint8_t data)
-{
- int bank = (data &0x02)>>1;
-
- if (data&0xfd) logerror ("Unused bank bits! %02x\n",data);
-
- m_oki->set_rom_bank(bank);
-}
-
-void snowbros_state::twinadv_sound_io_map(address_map &map)
-{
- map.global_mask(0xff);
- map(0x02, 0x02).r(m_soundlatch, FUNC(generic_latch_8_device::read));
- map(0x02, 0x02).w("soundlatch2", FUNC(generic_latch_8_device::write)); // back to 68k?
- map(0x04, 0x04).w(FUNC(snowbros_state::twinadv_oki_bank_w)); // oki bank?
- map(0x06, 0x06).rw(m_oki, FUNC(okim6295_device::read), FUNC(okim6295_device::write));
-}
-
-
-/* SemiCom Memory Map
-
-the SemiCom games have slightly more ram and are protected
-sound hardware is also different
-
-*/
-
-void snowbros_state::hyperpac_map(address_map &map)
-{
- map(0x000000, 0x0fffff).rom();
- map(0x100000, 0x10ffff).ram().share("hyperpac_ram");
- map(0x300001, 0x300001).w(m_soundlatch, FUNC(generic_latch_8_device::write));
-// map(0x400000, 0x400001) ???
- map(0x500000, 0x500001).portr("DSW1");
- map(0x500002, 0x500003).portr("DSW2");
- map(0x500004, 0x500005).portr("SYSTEM");
-
- map(0x600000, 0x6001ff).ram().w(m_palette, FUNC(palette_device::write16)).share("palette");
- map(0x700000, 0x701fff).rw(m_pandora, FUNC(kaneko_pandora_device::spriteram_LSB_r), FUNC(kaneko_pandora_device::spriteram_LSB_w));
- map(0x800000, 0x800001).w(FUNC(snowbros_state::snowbros_irq4_ack_w)); /* IRQ 4 acknowledge */
- map(0x900000, 0x900001).w(FUNC(snowbros_state::snowbros_irq3_ack_w)); /* IRQ 3 acknowledge */
- map(0xa00000, 0xa00001).w(FUNC(snowbros_state::snowbros_irq2_ack_w)); /* IRQ 2 acknowledge */
-}
-
-void snowbros_state::hyperpac_sound_map(address_map &map)
-{
- map(0x0000, 0xcfff).rom();
- map(0xd000, 0xd7ff).ram();
- map(0xf000, 0xf001).rw("ymsnd", FUNC(ym2151_device::read), FUNC(ym2151_device::write));
- map(0xf002, 0xf002).rw(m_oki, FUNC(okim6295_device::read), FUNC(okim6295_device::write));
- map(0xf008, 0xf008).r(m_soundlatch, FUNC(generic_latch_8_device::read));
-}
-
-/* Same volume used for all samples at the Moment, could be right, we have no
- way of knowing .. */
-uint16_t snowbros_state::sb3_sound_r()
-{
- return 0x0003;
-}
-
-void snowbros_state::sb3_play_music(int data)
-{
- uint8_t *snd;
-
- /* sample is actually played in interrupt function so it loops */
- m_sb3_music = data;
-
- switch (data)
- {
- case 0x23:
- case 0x26:
- snd = memregion("oki")->base();
- memcpy(snd+0x20000, snd+0x80000+0x00000, 0x20000);
- m_sb3_music_is_playing = 1;
- break;
-
- case 0x24:
- snd = memregion("oki")->base();
- memcpy(snd+0x20000, snd+0x80000+0x20000, 0x20000);
- m_sb3_music_is_playing = 1;
- break;
-
- case 0x25:
- case 0x27:
- case 0x28:
- case 0x29:
- case 0x2a:
- case 0x2b:
- case 0x2c:
- case 0x2d:
- snd = memregion("oki")->base();
- memcpy(snd+0x20000, snd+0x80000+0x40000, 0x20000);
- m_sb3_music_is_playing = 1;
- break;
-
- case 0x2e:
- m_sb3_music_is_playing = 0;
- break;
- }
-}
-
-void snowbros_state::sb3_play_sound (int data)
-{
- int status = m_oki->read();
-
- if ((status&0x01)==0x00)
- {
- m_oki->write(0x80|data);
- m_oki->write(0x00|0x12);
- }
- else if ((status&0x02)==0x00)
- {
- m_oki->write(0x80|data);
- m_oki->write(0x00|0x22);
- }
- else if ((status&0x04)==0x00)
- {
- m_oki->write(0x80|data);
- m_oki->write(0x00|0x42);
- }
-
-
-}
-
-void snowbros_state::sb3_sound_w(uint16_t data)
-{
- if (data == 0x00fe)
- {
- m_sb3_music_is_playing = 0;
- m_oki->write(0x78); /* Stop sounds */
- }
- else /* the alternating 0x00-0x2f or 0x30-0x5f might be something to do with the channels */
- {
- data = data>>8;
-
- if (data <= 0x21)
- {
- sb3_play_sound(data);
- }
-
- if (data>=0x22 && data<=0x31)
- {
- sb3_play_music(data);
- }
-
- if ((data>=0x30) && (data<=0x51))
- {
- sb3_play_sound(data-0x30);
- }
-
- if (data>=0x52 && data<=0x5f)
- {
- sb3_play_music(data-0x30);
- }
-
- }
-}
-
-
-
-void snowbros_state::snowbros3_map(address_map &map)
-{
- map(0x000000, 0x03ffff).rom();
- map(0x100000, 0x103fff).ram();
- map(0x200000, 0x200001).w("watchdog", FUNC(watchdog_timer_device::reset16_w));
- map(0x300000, 0x300001).r(FUNC(snowbros_state::sb3_sound_r)); // ?
- map(0x300000, 0x300001).w(FUNC(snowbros_state::sb3_sound_w)); // ?
- map(0x400000, 0x400000).w(FUNC(snowbros_state::bootleg_flipscreen_w));
- map(0x500000, 0x500001).portr("DSW1");
- map(0x500002, 0x500003).portr("DSW2");
- map(0x500004, 0x500005).portr("SYSTEM");
- map(0x600000, 0x6003ff).ram().w(m_palette, FUNC(palette_device::write16)).share("palette");
- map(0x700000, 0x7021ff).ram().share("spriteram16b");
- map(0x800000, 0x800001).w(FUNC(snowbros_state::snowbros_irq4_ack_w)); /* IRQ 4 acknowledge */
- map(0x900000, 0x900001).w(FUNC(snowbros_state::snowbros_irq3_ack_w)); /* IRQ 3 acknowledge */
- map(0xa00000, 0xa00001).w(FUNC(snowbros_state::snowbros_irq2_ack_w)); /* IRQ 2 acknowledge */
-}
-
-/* Final Tetris */
-
-void snowbros_state::finalttr_map(address_map &map)
-{
- map(0x000000, 0x0fffff).rom();
- map(0x100000, 0x103fff).ram().share("hyperpac_ram");
- map(0x300001, 0x300001).w(m_soundlatch, FUNC(generic_latch_8_device::write));
-// map(0x400000, 0x400001) ???
-
- map(0x500000, 0x500001).portr("DSW1");
- map(0x500002, 0x500003).portr("DSW2");
- map(0x500004, 0x500005).portr("SYSTEM");
-
- map(0x600000, 0x6001ff).ram().w(m_palette, FUNC(palette_device::write16)).share("palette");
- map(0x700000, 0x701fff).rw(m_pandora, FUNC(kaneko_pandora_device::spriteram_LSB_r), FUNC(kaneko_pandora_device::spriteram_LSB_w));
- map(0x800000, 0x800001).w(FUNC(snowbros_state::snowbros_irq4_ack_w)); /* IRQ 4 acknowledge */
- map(0x900000, 0x900001).w(FUNC(snowbros_state::snowbros_irq3_ack_w)); /* IRQ 3 acknowledge */
- map(0xa00000, 0xa00001).w(FUNC(snowbros_state::snowbros_irq2_ack_w)); /* IRQ 2 acknowledge */
-}
-
-
-// Yutnori protection.
-// The sequence MEN is sent to the protection device, followed by the code request (4 bytes in all).
-// After each byte, a number of NOPs are executed to give the device time to catch up.
-// After the 4th byte, the code reads the device to get its response.
-uint16_t snowbros_state::yutnori_prot_r()
-{
- switch(m_yutnori_prot_val) // the 4th byte
- {
- case 0x33: // C3B6
- return 0xcc;
- case 0x60: // 4878
- return 0xf9;
- case 0xb8: // D820
- return 0x74;
- }
- logerror("%s: Unhandled protection sequence found: %02X\n", machine().describe_context(), m_yutnori_prot_val);
- return 0;
-}
-
-void snowbros_state::yutnori_prot_w(uint16_t data)
-{
- m_yutnori_prot_val = data;
-}
-
-void snowbros_state::yutnori_map(address_map &map)
-{
- map(0x000000, 0x03ffff).rom();
-
- // 0x100000 clr.w on startup
-
- map(0x200000, 0x200001).rw(FUNC(snowbros_state::yutnori_prot_r),FUNC(snowbros_state::yutnori_prot_w)); // protection
-
- map(0x300000, 0x300001).portr("DSW1");
- map(0x300002, 0x300003).portr("DSW2");
- map(0x300004, 0x300005).portr("SYSTEM");
-
- // could be one of the OKIs? but gets value to write from RAM, always seems to be 0?
- map(0x30000c, 0x30000d).nopw();
- map(0x30000e, 0x30000f).nopr(); //.r(FUNC(snowbros_state::yutnori_unk_r)); // ??
-
-// map(0x400000, 0x400001).w("watchdog", FUNC(watchdog_timer_device::reset16_w)); // maybe?
- map(0x400000, 0x400001).noprw();
-
- map(0x500000, 0x5001ff).ram().w(m_palette, FUNC(palette_device::write16)).share("palette");
-
- map(0x600000, 0x601fff).rw(m_pandora, FUNC(kaneko_pandora_device::spriteram_LSB_r), FUNC(kaneko_pandora_device::spriteram_LSB_w));
-
- map(0x700000, 0x70ffff).ram();
-
- map(0x800000, 0x800001).nopr().w(FUNC(snowbros_state::snowbros_irq4_ack_w)); /* IRQ 4 acknowledge */
- map(0x900000, 0x900001).nopr().w(FUNC(snowbros_state::snowbros_irq3_ack_w)); /* IRQ 3 acknowledge */
- map(0xa00000, 0xa00001).nopr().w(FUNC(snowbros_state::snowbros_irq2_ack_w)); /* IRQ 2 acknowledge */
-}
-
-static INPUT_PORTS_START( snowbros )
- PORT_START("DSW1") /* 500001 */
- PORT_DIPNAME( 0x01, 0x00, DEF_STR( Region ) ) PORT_DIPLOCATION("SW1:1") /* Listed as "NOT USE" in the manual */
- PORT_DIPSETTING( 0x00, DEF_STR( Europe ) )
- PORT_DIPSETTING( 0x01, "America (Romstar license)" )
- PORT_DIPNAME( 0x02, 0x02, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW1:2")
- PORT_DIPSETTING( 0x02, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_SERVICE_DIPLOC( 0x04, IP_ACTIVE_LOW, "SW1:3" )
- PORT_DIPNAME( 0x08, 0x08, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW1:4")
- PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x08, DEF_STR( On ) )
- PORT_DIPNAME( 0x30, 0x30, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SW1:5,6")
- PORT_DIPSETTING( 0x00, DEF_STR( 4C_1C ) ) PORT_CONDITION("DSW1", 0x01, EQUALS, 0x00)
- PORT_DIPSETTING( 0x10, DEF_STR( 3C_1C ) ) PORT_CONDITION("DSW1", 0x01, EQUALS, 0x00)
- PORT_DIPSETTING( 0x20, DEF_STR( 2C_1C ) ) PORT_CONDITION("DSW1", 0x01, EQUALS, 0x00)
- PORT_DIPSETTING( 0x10, DEF_STR( 2C_1C ) ) PORT_CONDITION("DSW1", 0x01, EQUALS, 0x01)
- PORT_DIPSETTING( 0x30, DEF_STR( 1C_1C ) )
- PORT_DIPSETTING( 0x00, DEF_STR( 2C_3C ) ) PORT_CONDITION("DSW1", 0x01, EQUALS, 0x01)
- PORT_DIPSETTING( 0x20, DEF_STR( 1C_2C ) ) PORT_CONDITION("DSW1", 0x01, EQUALS, 0x01)
- PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("SW1:7,8")
- PORT_DIPSETTING( 0x40, DEF_STR( 2C_1C ) ) PORT_CONDITION("DSW1", 0x01, EQUALS, 0x01)
- PORT_DIPSETTING( 0xc0, DEF_STR( 1C_1C ) ) PORT_CONDITION("DSW1", 0x01, EQUALS, 0x01)
- PORT_DIPSETTING( 0x00, DEF_STR( 2C_3C ) ) PORT_CONDITION("DSW1", 0x01, EQUALS, 0x01)
- PORT_DIPSETTING( 0x80, DEF_STR( 1C_2C ) ) PORT_CONDITION("DSW1", 0x01, EQUALS, 0x01)
- PORT_DIPSETTING( 0xc0, DEF_STR( 1C_2C ) ) PORT_CONDITION("DSW1", 0x01, EQUALS, 0x00)
- PORT_DIPSETTING( 0x80, DEF_STR( 1C_3C ) ) PORT_CONDITION("DSW1", 0x01, EQUALS, 0x00)
- PORT_DIPSETTING( 0x40, DEF_STR( 1C_4C ) ) PORT_CONDITION("DSW1", 0x01, EQUALS, 0x00)
- PORT_DIPSETTING( 0x00, DEF_STR( 1C_6C ) ) PORT_CONDITION("DSW1", 0x01, EQUALS, 0x00)
- PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY
- PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY
- PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY
- PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY
- PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 )
- PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 )
- PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_BUTTON3 )
- PORT_BIT( 0x8000, IP_ACTIVE_HIGH, IPT_UNKNOWN ) /* Must be low or game stops! */
- /* probably VBlank */
-
- PORT_START("DSW2") /* 500003 */
- PORT_DIPNAME( 0x03, 0x03, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW2:1,2")
- PORT_DIPSETTING( 0x02, DEF_STR( Easy ) )
- PORT_DIPSETTING( 0x03, DEF_STR( Normal ) )
- PORT_DIPSETTING( 0x01, DEF_STR( Hard ) )
- PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) )
- PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Bonus_Life ) ) PORT_DIPLOCATION("SW2:3,4")
- PORT_DIPSETTING( 0x04, "100k and every 200k" )
- PORT_DIPSETTING( 0x0c, "100k Only" )
- PORT_DIPSETTING( 0x08, "200k Only" )
- PORT_DIPSETTING( 0x00, DEF_STR( None ) )
- PORT_DIPNAME( 0x30, 0x30, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW2:5,6")
- PORT_DIPSETTING( 0x20, "1" )
- PORT_DIPSETTING( 0x00, "2" )
- PORT_DIPSETTING( 0x30, "3" )
- PORT_DIPSETTING( 0x10, "4" )
- PORT_DIPNAME( 0x40, 0x40, "Invulnerability" ) PORT_DIPLOCATION("SW2:7")
- PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x80, 0x80, DEF_STR( Allow_Continue ) ) PORT_DIPLOCATION("SW2:8") /* Listed as "NOT USE" in the manual */
- PORT_DIPSETTING( 0x00, DEF_STR( No ) )
- PORT_DIPSETTING( 0x80, DEF_STR( Yes ) )
- PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2)
- PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2)
- PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2)
- PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2)
- PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2)
- PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2)
- PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2)
- PORT_BIT( 0x8000, IP_ACTIVE_HIGH, IPT_UNKNOWN )
-
- PORT_START("SYSTEM") /* 500005 */
- PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_START1 )
- PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_START2 )
- PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_COIN1 )
- PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_COIN2 )
- PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_TILT )
- PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_COIN3 )
- PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN )
-INPUT_PORTS_END
-
-static INPUT_PORTS_START( snowbroj )
- PORT_INCLUDE(snowbros)
-
- PORT_MODIFY("DSW1")
- PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW1:1") /* Listed as "NOT USE" in the manual */
- PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x01, DEF_STR( On ) )
-INPUT_PORTS_END
-
-static INPUT_PORTS_START( ballboy3p )
- PORT_INCLUDE(snowbros)
-
- PORT_MODIFY("DSW1") // on the PCB in place of the dips there's the plug for the controls of the 3rd player
- PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(3)
- PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(3)
- PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(3)
- PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(3)
- PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(3)
- PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(3)
- PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(3)
- PORT_BIT( 0x0080, IP_ACTIVE_HIGH, IPT_UNKNOWN )
-
- PORT_MODIFY("SYSTEM")
- PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_START3 )
-INPUT_PORTS_END
-
-static INPUT_PORTS_START( honeydol )
- PORT_START("DSW1")
- PORT_DIPNAME( 0x0003, 0x0003, DEF_STR( Coinage ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( 3C_1C ) )
- PORT_DIPSETTING( 0x0001, DEF_STR( 2C_1C ) )
- PORT_DIPSETTING( 0x0003, DEF_STR( 1C_1C ) )
- PORT_DIPSETTING( 0x0002, DEF_STR( 1C_2C ) )
- PORT_DIPNAME( 0x0004, 0x0004, "Show Girls" )
- PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0004, DEF_STR( On ) )
- PORT_DIPNAME( 0x0008, 0x0008, DEF_STR( Unknown ) )
- PORT_DIPSETTING( 0x0008, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPNAME( 0x0010, 0x0010, DEF_STR( Demo_Sounds ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0010, DEF_STR( On ) )
- PORT_DIPNAME( 0x0020, 0x0020, DEF_STR( Unknown ) )
- PORT_DIPSETTING( 0x0020, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Level_Select ) ) /* Up & Down to set level, then punch to start */
- PORT_DIPSETTING( 0x0040, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPNAME( 0x0080, 0x0080, "Slide Show On Boot-up" ) /* Joystick to scroll. Seems to happen once at boot up, then the game auto starts */
- PORT_DIPSETTING( 0x0080, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY
- PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY
- PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY
- PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY
- PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 )
- PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 )
- PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_BUTTON3 )
- PORT_BIT( 0x8000, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_VBLANK("screen") /* Must be low or game stops! */
-
- PORT_START("DSW2")
- PORT_DIPNAME( 0x0003, 0x0003, DEF_STR( Difficulty ) )
- PORT_DIPSETTING( 0x0003, DEF_STR( Normal ) )
- PORT_DIPSETTING( 0x0002, DEF_STR( Hard ) )
- PORT_DIPSETTING( 0x0001, DEF_STR( Harder ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( Hardest ) )
- PORT_DIPNAME( 0x000c, 0x000c, "Timer Speed" ) /* Based on Normal Difficulty, Stage 1-1 first try */
- PORT_DIPSETTING( 0x000c, DEF_STR( Normal ) ) /* About 40 Seconds */
- PORT_DIPSETTING( 0x0008, "Fast" ) /* About 35 Seconds */
- PORT_DIPSETTING( 0x0004, "Faster" ) /* About 30 Seconds */
- PORT_DIPSETTING( 0x0000, "Fastest" ) /* About 20 Seconds */
- PORT_DIPNAME( 0x0030, 0x0020, DEF_STR( Lives ) )
- PORT_DIPSETTING( 0x0000, "1" )
- PORT_DIPSETTING( 0x0010, "2" )
- PORT_DIPSETTING( 0x0020, "3" )
- PORT_DIPSETTING( 0x0030, "5" )
- PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Unknown ) )
- PORT_DIPSETTING( 0x0040, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPNAME( 0x0080, 0x0080, "Max Vs Round" )
- PORT_DIPSETTING( 0x0080, "3" ) /* 44 Seconds each */
- PORT_DIPSETTING( 0x0000, "1" ) /* 89 Seconds */
- PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2)
- PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2)
- PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2)
- PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2)
- PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2)
- PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2)
- PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2)
- PORT_BIT( 0x8000, IP_ACTIVE_HIGH, IPT_UNKNOWN )
-
- PORT_START("SYSTEM")
- PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_START1 )
- PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_START2 )
- PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_COIN1 )
- PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_COIN2 )
- PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_TILT )
- PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_COIN3 )
- PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN )
-INPUT_PORTS_END
-
-static INPUT_PORTS_START( twinadv )
- PORT_START("DSW1")
- PORT_DIPNAME( 0x0003, 0x0003, DEF_STR( Coinage ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( 3C_1C ) )
- PORT_DIPSETTING( 0x0001, DEF_STR( 2C_1C ) )
- PORT_DIPSETTING( 0x0003, DEF_STR( 1C_1C ) )
- PORT_DIPSETTING( 0x0002, DEF_STR( 1C_2C ) )
- PORT_DIPNAME( 0x0004, 0x0004, DEF_STR( Unknown ) )
- PORT_DIPSETTING( 0x0004, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPNAME( 0x0008, 0x0008, DEF_STR( Unknown ) )
- PORT_DIPSETTING( 0x0008, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPNAME( 0x0010, 0x0010, DEF_STR( Demo_Sounds ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0010, DEF_STR( On ) )
- PORT_DIPNAME( 0x0020, 0x0020, DEF_STR( Flip_Screen ) )
- PORT_DIPSETTING( 0x0020, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Unknown ) )
- PORT_DIPSETTING( 0x0040, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPNAME( 0x0080, 0x0080, DEF_STR( Level_Select ) ) /* P1 Button 2 to advance, P1 Button 1 to start, starts game with 10 credits */
- PORT_DIPSETTING( 0x0080, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY
- PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY
- PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY
- PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY
- PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 )
- PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 )
- PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_BUTTON3 )
- PORT_BIT( 0x8000, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_VBLANK("screen") /* Must be low or game stops! */
-
- PORT_START("DSW2")
- PORT_DIPNAME( 0x0003, 0x0003, DEF_STR( Difficulty ) )
- PORT_DIPSETTING( 0x0003, DEF_STR( Normal ) )
- PORT_DIPSETTING( 0x0002, DEF_STR( Hard ) )
- PORT_DIPSETTING( 0x0001, DEF_STR( Harder ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( Hardest ) )
- PORT_DIPNAME( 0x0004, 0x0004, DEF_STR( Lives ) )
- PORT_DIPSETTING( 0x0004, "3" )
- PORT_DIPSETTING( 0x0000, "5" )
- PORT_DIPNAME( 0x0008, 0x0008, "Ticket Mode #1" ) /* Shows on title screen "EVERY 4 GAMES = 1 TICKET" same as 0x0040 below? */
- PORT_DIPSETTING( 0x0008, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPNAME( 0x0010, 0x0010, DEF_STR( Unknown ) )
- PORT_DIPSETTING( 0x0010, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPNAME( 0x0020, 0x0020, DEF_STR( Unknown ) )
- PORT_DIPSETTING( 0x0020, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPNAME( 0x0040, 0x0040, "Ticket Mode #2" ) /* Shows on title screen "EVERY 4 GAMES = 1 TICKET" same as 0x0008 above? */
- PORT_DIPSETTING( 0x0040, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPNAME( 0x80, 0x0080, DEF_STR( Free_Play ) ) /* Always shows 24 credits */
- PORT_DIPSETTING( 0x0080, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2)
- PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2)
- PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2)
- PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2)
- PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2)
- PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2)
- PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2)
- PORT_BIT( 0x8000, IP_ACTIVE_HIGH, IPT_UNKNOWN )
-
- PORT_START("SYSTEM")
- PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_START1 )
- PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_START2 )
- PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_COIN1 )
- PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_COIN2 )
- PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_TILT )
- PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_COIN3 )
- PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN )
-INPUT_PORTS_END
-
-static INPUT_PORTS_START( 4in1boot )
- PORT_START("DSW1") /* 500001 */
- PORT_DIPNAME( 0x01, 0x00, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW1:1")
- PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x06, 0x06, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW1:2,3")
- PORT_DIPSETTING( 0x04, DEF_STR( Easy ) )
- PORT_DIPSETTING( 0x06, DEF_STR( Normal ) )
- PORT_DIPSETTING( 0x02, DEF_STR( Hard ) )
- PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) )
- PORT_DIPNAME( 0x78, 0x78, DEF_STR( Coinage ) ) PORT_DIPLOCATION("SW1:4,5,6,7")
- PORT_DIPSETTING( 0x18, DEF_STR( 4C_1C ) )
- PORT_DIPSETTING( 0x38, DEF_STR( 3C_1C ) )
- PORT_DIPSETTING( 0x10, DEF_STR( 4C_2C ) )
- PORT_DIPSETTING( 0x58, DEF_STR( 2C_1C ) )
- PORT_DIPSETTING( 0x30, DEF_STR( 3C_2C ) )
- PORT_DIPSETTING( 0x08, DEF_STR( 4C_3C ) )
- PORT_DIPSETTING( 0x00, DEF_STR( 4C_4C ) )
- PORT_DIPSETTING( 0x28, DEF_STR( 3C_3C ) )
- PORT_DIPSETTING( 0x50, DEF_STR( 2C_2C ) )
- PORT_DIPSETTING( 0x78, DEF_STR( 1C_1C ) )
- PORT_DIPSETTING( 0x20, DEF_STR( 3C_4C ) )
- PORT_DIPSETTING( 0x48, DEF_STR( 2C_3C ) )
- PORT_DIPSETTING( 0x40, DEF_STR( 2C_4C ) )
- PORT_DIPSETTING( 0x70, DEF_STR( 1C_2C ) )
- PORT_DIPSETTING( 0x68, DEF_STR( 1C_3C ) )
- PORT_DIPSETTING( 0x60, DEF_STR( 1C_4C ) )
- PORT_DIPNAME( 0x80, 0x80, DEF_STR( Free_Play ) ) PORT_DIPLOCATION("SW1:8")
- PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY
- PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY
- PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY
- PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY
- PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 )
- PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 )
- PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_BUTTON3 )
- PORT_BIT( 0x8000, IP_ACTIVE_HIGH, IPT_UNKNOWN ) /* Must be low or game stops! */
- /* probably VBlank */
-
- PORT_START("DSW2") /* 500003 */
- PORT_DIPNAME( 0x03, 0x03, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW2:1,2")
- PORT_DIPSETTING( 0x02, "1" )
- PORT_DIPSETTING( 0x00, "2" )
- PORT_DIPSETTING( 0x03, "3" )
- PORT_DIPSETTING( 0x01, "4" )
- PORT_DIPUNUSED_DIPLOC( 0x0004, 0x0000, "SW2:3" )
- PORT_DIPUNUSED_DIPLOC( 0x0008, 0x0000, "SW2:4" )
- PORT_DIPUNUSED_DIPLOC( 0x0010, 0x0000, "SW2:5" )
- PORT_DIPUNUSED_DIPLOC( 0x0020, 0x0000, "SW2:6" )
- PORT_DIPUNUSED_DIPLOC( 0x0040, 0x0000, "SW2:7" )
- PORT_SERVICE_DIPLOC( 0x0080, IP_ACTIVE_LOW, "SW2:8" )
- PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2)
- PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2)
- PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2)
- PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2)
- PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2)
- PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2)
- PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2)
- PORT_BIT( 0x8000, IP_ACTIVE_HIGH, IPT_UNKNOWN )
-
- PORT_START("SYSTEM") /* 500005 */
- PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_START1 )
- PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_START2 )
- PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_COIN1 )
- PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_COIN2 )
- PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_TILT )
- PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_COIN3 )
- PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN )
-INPUT_PORTS_END
-
-static INPUT_PORTS_START( hyperpac )
- PORT_START("DSW1") /* 500000.w */
- PORT_DIPNAME( 0x0001, 0x0000, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW1:1")
- PORT_DIPSETTING( 0x0001, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPNAME( 0x0002, 0x0002, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW1:2") // "Language" in the "test mode"
- PORT_DIPSETTING( 0x0002, "3" ) // "Korean"
- PORT_DIPSETTING( 0x0000, "5" ) // "English"
- PORT_DIPNAME( 0x001c, 0x001c, DEF_STR( Coinage ) ) PORT_DIPLOCATION("SW1:3,4,5")
- PORT_DIPSETTING( 0x0000, DEF_STR( 5C_1C ) )
- PORT_DIPSETTING( 0x0004, DEF_STR( 4C_1C ) )
- PORT_DIPSETTING( 0x0008, DEF_STR( 3C_1C ) )
- PORT_DIPSETTING( 0x000c, DEF_STR( 2C_1C ) )
- PORT_DIPSETTING( 0x001c, DEF_STR( 1C_1C ) )
- PORT_DIPSETTING( 0x0014, DEF_STR( 2C_3C ) )
- PORT_DIPSETTING( 0x0018, DEF_STR( 1C_2C ) )
- PORT_DIPSETTING( 0x0010, DEF_STR( 1C_3C ) )
- PORT_DIPNAME( 0x0060, 0x0060, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW1:6,7")
- PORT_DIPSETTING( 0x0000, DEF_STR( Easy ) )
- PORT_DIPSETTING( 0x0060, DEF_STR( Normal ) )
- PORT_DIPSETTING( 0x0040, DEF_STR( Hard ) )
- PORT_DIPSETTING( 0x0020, DEF_STR( Hardest ) ) // DEF_STR( Very_Hard )
- PORT_SERVICE_DIPLOC( 0x0080, IP_ACTIVE_LOW, "SW1:8" )
- PORT_BIT( 0x0100, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1)
- PORT_BIT( 0x0200, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1)
- PORT_BIT( 0x0400, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1)
- PORT_BIT( 0x0800, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1)
- PORT_BIT( 0x1000, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(1) // jump
- PORT_BIT( 0x2000, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_PLAYER(1) // fire
- PORT_BIT( 0x4000, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_PLAYER(1) // test mode only?
- PORT_BIT( 0x8000, IP_ACTIVE_HIGH, IPT_UNKNOWN )
-
- PORT_START("DSW2") /* 500002.w */
- PORT_DIPUNUSED_DIPLOC( 0x0001, 0x0000, "SW2:1" )
- PORT_DIPUNUSED_DIPLOC( 0x0002, 0x0000, "SW2:2" )
- PORT_DIPUNUSED_DIPLOC( 0x0004, 0x0000, "SW2:3" )
- PORT_DIPUNUSED_DIPLOC( 0x0008, 0x0000, "SW2:4" )
- PORT_DIPUNUSED_DIPLOC( 0x0010, 0x0000, "SW2:5" )
- PORT_DIPUNUSED_DIPLOC( 0x0020, 0x0000, "SW2:6" )
- PORT_DIPUNUSED_DIPLOC( 0x0040, 0x0000, "SW2:7" )
- PORT_DIPUNUSED_DIPLOC( 0x0080, 0x0000, "SW2:8" )
- PORT_BIT( 0x0100, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2)
- PORT_BIT( 0x0200, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2)
- PORT_BIT( 0x0400, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2)
- PORT_BIT( 0x0800, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2)
- PORT_BIT( 0x1000, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(2) // jump
- PORT_BIT( 0x2000, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_PLAYER(2) // fire
- PORT_BIT( 0x4000, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_PLAYER(2) // test mode only?
- PORT_BIT( 0x8000, IP_ACTIVE_HIGH, IPT_UNKNOWN )
-
- PORT_START("SYSTEM") /* 500004.w */
- PORT_BIT( 0x0100, IP_ACTIVE_HIGH, IPT_START1 )
- PORT_BIT( 0x0200, IP_ACTIVE_HIGH, IPT_START2 )
- PORT_BIT( 0x0400, IP_ACTIVE_HIGH, IPT_COIN1 )
- PORT_BIT( 0x0800, IP_ACTIVE_HIGH, IPT_COIN2 )
- PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN )
-INPUT_PORTS_END
-
-static INPUT_PORTS_START( cookbib2 )
- PORT_START("DSW1") /* 500000.w */
- PORT_DIPNAME( 0x0001, 0x0000, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW1:1")
- PORT_DIPSETTING( 0x0001, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPNAME( 0x0002, 0x0002, "Max Vs Round" ) PORT_DIPLOCATION("SW1:2") // "Language" in the "test mode"
- PORT_DIPSETTING( 0x0002, "3" )
- PORT_DIPSETTING( 0x0000, "1" )
- PORT_DIPNAME( 0x001c, 0x001c, DEF_STR( Coinage ) ) PORT_DIPLOCATION("SW1:3,4,5")
- PORT_DIPSETTING( 0x0000, DEF_STR( 5C_1C ) )
- PORT_DIPSETTING( 0x0004, DEF_STR( 4C_1C ) )
- PORT_DIPSETTING( 0x0008, DEF_STR( 3C_1C ) )
- PORT_DIPSETTING( 0x000c, DEF_STR( 2C_1C ) )
- PORT_DIPSETTING( 0x001c, DEF_STR( 1C_1C ) )
- PORT_DIPSETTING( 0x0014, DEF_STR( 2C_3C ) )
- PORT_DIPSETTING( 0x0018, DEF_STR( 1C_2C ) )
- PORT_DIPSETTING( 0x0010, DEF_STR( 1C_3C ) )
- PORT_DIPNAME( 0x0060, 0x0060, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW1:6,7")
- PORT_DIPSETTING( 0x0000, DEF_STR( Easy ) )
- PORT_DIPSETTING( 0x0060, DEF_STR( Normal ) )
- PORT_DIPSETTING( 0x0040, DEF_STR( Hard ) )
- PORT_DIPSETTING( 0x0020, DEF_STR( Hardest ) ) // DEF_STR( Very_Hard )
- PORT_SERVICE_DIPLOC( 0x0080, IP_ACTIVE_LOW, "SW1:8" )
- PORT_BIT( 0x0100, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1)
- PORT_BIT( 0x0200, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1)
- PORT_BIT( 0x0400, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1)
- PORT_BIT( 0x0800, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1)
- PORT_BIT( 0x1000, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(1) // jump
- PORT_BIT( 0x2000, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_PLAYER(1) // fire
- PORT_BIT( 0x4000, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_PLAYER(1) // test mode only?
- PORT_BIT( 0x8000, IP_ACTIVE_HIGH, IPT_UNKNOWN )
-
- PORT_START("DSW2") /* 500002.w */
- PORT_DIPUNUSED_DIPLOC( 0x0001, 0x0000, "SW2:1" )
- PORT_DIPUNUSED_DIPLOC( 0x0002, 0x0000, "SW2:2" )
- PORT_DIPUNUSED_DIPLOC( 0x0004, 0x0000, "SW2:3" )
- PORT_DIPUNUSED_DIPLOC( 0x0008, 0x0000, "SW2:4" )
- PORT_DIPUNUSED_DIPLOC( 0x0010, 0x0000, "SW2:5" )
- PORT_DIPUNUSED_DIPLOC( 0x0020, 0x0000, "SW2:6" )
- PORT_DIPUNUSED_DIPLOC( 0x0040, 0x0000, "SW2:7" )
- PORT_DIPUNUSED_DIPLOC( 0x0080, 0x0000, "SW2:8" )
- PORT_BIT( 0x0100, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2)
- PORT_BIT( 0x0200, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2)
- PORT_BIT( 0x0400, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2)
- PORT_BIT( 0x0800, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2)
- PORT_BIT( 0x1000, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(2) // jump
- PORT_BIT( 0x2000, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_PLAYER(2) // fire
- PORT_BIT( 0x4000, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_PLAYER(2) // test mode only?
- PORT_BIT( 0x8000, IP_ACTIVE_HIGH, IPT_UNKNOWN )
-
- PORT_START("SYSTEM") /* 500004.w */
- PORT_BIT( 0x0100, IP_ACTIVE_HIGH, IPT_START1 )
- PORT_BIT( 0x0200, IP_ACTIVE_HIGH, IPT_START2 )
- PORT_BIT( 0x0400, IP_ACTIVE_HIGH, IPT_COIN1 )
- PORT_BIT( 0x0800, IP_ACTIVE_HIGH, IPT_COIN2 )
- PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN )
-INPUT_PORTS_END
-
-static INPUT_PORTS_START( cookbib3 )
- PORT_START("DSW1") /* 500000.w */
- PORT_DIPNAME( 0x0001, 0x0000, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW1:1")
- PORT_DIPSETTING( 0x0001, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPNAME( 0x000e, 0x000e, DEF_STR( Coinage ) ) PORT_DIPLOCATION("SW1:2,3,4")
- PORT_DIPSETTING( 0x0000, DEF_STR( 5C_1C ) )
- PORT_DIPSETTING( 0x0002, DEF_STR( 4C_1C ) )
- PORT_DIPSETTING( 0x0004, DEF_STR( 3C_1C ) )
- PORT_DIPSETTING( 0x0006, DEF_STR( 2C_1C ) )
- PORT_DIPSETTING( 0x000e, DEF_STR( 1C_1C ) )
- PORT_DIPSETTING( 0x000a, DEF_STR( 2C_3C ) )
- PORT_DIPSETTING( 0x000c, DEF_STR( 1C_2C ) )
- PORT_DIPSETTING( 0x0008, DEF_STR( 1C_3C ) )
- PORT_DIPNAME( 0x0070, 0x0070, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW1:5,6,7")
- PORT_DIPSETTING( 0x0020, "Level 1" )
- PORT_DIPSETTING( 0x0010, "Level 2" )
- PORT_DIPSETTING( 0x0000, "Level 3" )
- PORT_DIPSETTING( 0x0070, "Level 4" )
- PORT_DIPSETTING( 0x0060, "Level 5" )
- PORT_DIPSETTING( 0x0050, "Level 6" )
- PORT_DIPSETTING( 0x0040, "Level 7" )
- PORT_DIPSETTING( 0x0030, "Level 8" )
- PORT_SERVICE_DIPLOC( 0x0080, IP_ACTIVE_LOW, "SW1:8" )
- PORT_BIT( 0x0100, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1)
- PORT_BIT( 0x0200, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1)
- PORT_BIT( 0x0400, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1)
- PORT_BIT( 0x0800, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1)
- PORT_BIT( 0x1000, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(1) // jump
- PORT_BIT( 0x2000, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_PLAYER(1) // fire
- PORT_BIT( 0x4000, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_PLAYER(1) // test mode only?
- PORT_BIT( 0x8000, IP_ACTIVE_HIGH, IPT_UNKNOWN )
-
- PORT_START("DSW2") /* 500002.w */
- PORT_DIPUNUSED_DIPLOC( 0x0001, 0x0000, "SW2:1" )
- PORT_DIPUNUSED_DIPLOC( 0x0002, 0x0000, "SW2:2" )
- PORT_DIPUNUSED_DIPLOC( 0x0004, 0x0000, "SW2:3" )
- PORT_DIPUNUSED_DIPLOC( 0x0008, 0x0000, "SW2:4" )
- PORT_DIPUNUSED_DIPLOC( 0x0010, 0x0000, "SW2:5" )
- PORT_DIPUNUSED_DIPLOC( 0x0020, 0x0000, "SW2:6" )
- PORT_DIPUNUSED_DIPLOC( 0x0040, 0x0000, "SW2:7" )
- PORT_DIPNAME( 0x0080, 0x0080, DEF_STR( Free_Play ) ) PORT_DIPLOCATION("SW2:8") /* Will go into negative credits and cause graphics issues */
- PORT_DIPSETTING( 0x0080, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_BIT( 0x0100, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2)
- PORT_BIT( 0x0200, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2)
- PORT_BIT( 0x0400, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2)
- PORT_BIT( 0x0800, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2)
- PORT_BIT( 0x1000, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(2) // jump
- PORT_BIT( 0x2000, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_PLAYER(2) // fire
- PORT_BIT( 0x4000, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_PLAYER(2) // test mode only?
- PORT_BIT( 0x8000, IP_ACTIVE_HIGH, IPT_UNKNOWN )
-
- PORT_START("SYSTEM") /* 500004.w */
- PORT_BIT( 0x0100, IP_ACTIVE_HIGH, IPT_START1 )
- PORT_BIT( 0x0200, IP_ACTIVE_HIGH, IPT_START2 )
- PORT_BIT( 0x0400, IP_ACTIVE_HIGH, IPT_COIN1 )
- PORT_BIT( 0x0800, IP_ACTIVE_HIGH, IPT_COIN2 )
- PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN )
-INPUT_PORTS_END
-
-static INPUT_PORTS_START( moremore )
- PORT_START("DSW1") /* 500000.w */
- PORT_DIPNAME( 0x0001, 0x0000, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW1:1")
- PORT_DIPSETTING( 0x0001, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPNAME( 0x000e, 0x000e, DEF_STR( Coinage ) ) PORT_DIPLOCATION("SW1:2,3,4")
- PORT_DIPSETTING( 0x0000, DEF_STR( 5C_1C ) )
- PORT_DIPSETTING( 0x0002, DEF_STR( 4C_1C ) )
- PORT_DIPSETTING( 0x0004, DEF_STR( 3C_1C ) )
- PORT_DIPSETTING( 0x0006, DEF_STR( 2C_1C ) )
- PORT_DIPSETTING( 0x000e, DEF_STR( 1C_1C ) )
- PORT_DIPSETTING( 0x000a, DEF_STR( 2C_3C ) )
- PORT_DIPSETTING( 0x000c, DEF_STR( 1C_2C ) )
- PORT_DIPSETTING( 0x0008, DEF_STR( 1C_3C ) )
- PORT_DIPNAME( 0x0070, 0x0070, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW1:5,6,7")
- PORT_DIPSETTING( 0x0020, "Level 1" )
- PORT_DIPSETTING( 0x0010, "Level 2" )
- PORT_DIPSETTING( 0x0000, "Level 3" )
- PORT_DIPSETTING( 0x0070, "Level 4" )
- PORT_DIPSETTING( 0x0060, "Level 5" )
- PORT_DIPSETTING( 0x0050, "Level 6" )
- PORT_DIPSETTING( 0x0040, "Level 7" )
- PORT_DIPSETTING( 0x0030, "Level 8" )
- PORT_SERVICE_DIPLOC( 0x0080, IP_ACTIVE_LOW, "SW1:8" )
- PORT_BIT( 0x0100, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1)
- PORT_BIT( 0x0200, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1)
- PORT_BIT( 0x0400, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1)
- PORT_BIT( 0x0800, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1)
- PORT_BIT( 0x1000, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(1) // jump
- PORT_BIT( 0x2000, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_PLAYER(1) // fire
- PORT_BIT( 0x4000, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_PLAYER(1) // test mode only?
- PORT_BIT( 0x8000, IP_ACTIVE_HIGH, IPT_UNKNOWN )
-
- PORT_START("DSW2") /* 500002.w */
- PORT_DIPUNUSED_DIPLOC( 0x0001, 0x0000, "SW2:1" )
- PORT_DIPUNUSED_DIPLOC( 0x0002, 0x0000, "SW2:2" )
- PORT_DIPUNUSED_DIPLOC( 0x0004, 0x0000, "SW2:3" )
- PORT_DIPUNUSED_DIPLOC( 0x0008, 0x0000, "SW2:4" )
- PORT_DIPUNUSED_DIPLOC( 0x0010, 0x0000, "SW2:5" )
- PORT_DIPUNUSED_DIPLOC( 0x0020, 0x0000, "SW2:6" )
- PORT_DIPUNUSED_DIPLOC( 0x0040, 0x0000, "SW2:7" )
- PORT_DIPNAME( 0x0080, 0x0080, DEF_STR( Free_Play ) ) PORT_DIPLOCATION("SW2:8")
- PORT_DIPSETTING( 0x0080, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_BIT( 0x0100, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2)
- PORT_BIT( 0x0200, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2)
- PORT_BIT( 0x0400, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2)
- PORT_BIT( 0x0800, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2)
- PORT_BIT( 0x1000, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(2) // jump
- PORT_BIT( 0x2000, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_PLAYER(2) // fire
- PORT_BIT( 0x4000, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_PLAYER(2) // test mode only?
- PORT_BIT( 0x8000, IP_ACTIVE_HIGH, IPT_UNKNOWN )
-
- PORT_START("SYSTEM") /* 500004.w */
- PORT_BIT( 0x0100, IP_ACTIVE_HIGH, IPT_START1 )
- PORT_BIT( 0x0200, IP_ACTIVE_HIGH, IPT_START2 )
- PORT_BIT( 0x0400, IP_ACTIVE_HIGH, IPT_COIN1 )
- PORT_BIT( 0x0800, IP_ACTIVE_HIGH, IPT_COIN2 )
- PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN )
-INPUT_PORTS_END
-
-// don't trust the test mode! <-- Verified via actual game play: Demo Sounds, Coinage & Free Play
-static INPUT_PORTS_START( mcheonru )
- PORT_START("DSW1") /* 500000.w */
- PORT_DIPNAME( 0x0001, 0x0000, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW1:1")
- PORT_DIPSETTING( 0x0001, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPNAME( 0x000e, 0x000e, DEF_STR( Coinage ) ) PORT_DIPLOCATION("SW1:2,3,4")
- PORT_DIPSETTING( 0x0000, DEF_STR( 3C_1C ) ) /* Duplicate */
- PORT_DIPSETTING( 0x0002, DEF_STR( 3C_1C ) ) /* Duplicate */
- PORT_DIPSETTING( 0x0004, DEF_STR( 3C_1C ) )
- PORT_DIPSETTING( 0x0006, DEF_STR( 2C_1C ) )
- PORT_DIPSETTING( 0x000e, DEF_STR( 1C_1C ) )
- PORT_DIPSETTING( 0x000a, DEF_STR( 2C_3C ) )
- PORT_DIPSETTING( 0x000c, DEF_STR( 1C_2C ) )
- PORT_DIPSETTING( 0x0008, DEF_STR( 1C_3C ) )
- PORT_DIPNAME( 0x0070, 0x0070, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW1:5,6,7")
- PORT_DIPSETTING( 0x0020, "Level 1" )
- PORT_DIPSETTING( 0x0010, "Level 2" )
- PORT_DIPSETTING( 0x0000, "Level 3" )
- PORT_DIPSETTING( 0x0070, "Level 4" )
- PORT_DIPSETTING( 0x0060, "Level 5" )
- PORT_DIPSETTING( 0x0050, "Level 6" )
- PORT_DIPSETTING( 0x0040, "Level 7" )
- PORT_DIPSETTING( 0x0030, "Level 8" )
- PORT_SERVICE_DIPLOC( 0x0080, IP_ACTIVE_LOW, "SW1:8" )
- PORT_BIT( 0x0100, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1)
- PORT_BIT( 0x0200, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1)
- PORT_BIT( 0x0400, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1)
- PORT_BIT( 0x0800, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1)
- PORT_BIT( 0x1000, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(1)
- PORT_BIT( 0x2000, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_PLAYER(1)
- PORT_BIT( 0x4000, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_PLAYER(1)
- PORT_BIT( 0x8000, IP_ACTIVE_HIGH, IPT_UNKNOWN )
-
- PORT_START("DSW2") /* 500002.w */
- PORT_DIPNAME( 0x0001, 0x0001, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW2:1")
- PORT_DIPSETTING( 0x0001, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPNAME( 0x0002, 0x0002, "Tile Type" ) PORT_DIPLOCATION("SW2:2") /* Does NOT show up in service mode! */
- PORT_DIPSETTING( 0x0002, "Picture" )
- PORT_DIPSETTING( 0x0000, "Traditional" )
- PORT_DIPNAME( 0x0004, 0x0004, "Mini Game Frequency" ) PORT_DIPLOCATION("SW2:3") /* Does NOT show up in service mode! */
- PORT_DIPSETTING( 0x0004, "Every 3 Rounds" )
- PORT_DIPSETTING( 0x0000, "Every Round" )
- PORT_DIPNAME( 0x0008, 0x0008, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW2:4")
- PORT_DIPSETTING( 0x0008, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPNAME( 0x0010, 0x0010, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW2:5")
- PORT_DIPSETTING( 0x0010, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPNAME( 0x0020, 0x0020, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW2:6")
- PORT_DIPSETTING( 0x0020, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW2:7")
- PORT_DIPSETTING( 0x0040, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPNAME( 0x0080, 0x0080, DEF_STR( Free_Play ) ) PORT_DIPLOCATION("SW2:8")
- PORT_DIPSETTING( 0x0080, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_BIT( 0x0100, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2)
- PORT_BIT( 0x0200, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2)
- PORT_BIT( 0x0400, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2)
- PORT_BIT( 0x0800, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2)
- PORT_BIT( 0x1000, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(2)
- PORT_BIT( 0x2000, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_PLAYER(2)
- PORT_BIT( 0x4000, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_PLAYER(2)
- PORT_BIT( 0x8000, IP_ACTIVE_HIGH, IPT_UNKNOWN )
-
- PORT_START("SYSTEM") /* 500004.w */
- PORT_BIT( 0x00ff, IP_ACTIVE_HIGH, IPT_UNKNOWN )
- PORT_BIT( 0x0100, IP_ACTIVE_HIGH, IPT_START1 )
- PORT_BIT( 0x0200, IP_ACTIVE_HIGH, IPT_START2 )
- PORT_BIT( 0x0400, IP_ACTIVE_HIGH, IPT_COIN1 )
- PORT_BIT( 0x0800, IP_ACTIVE_HIGH, IPT_COIN2 )
- PORT_BIT( 0x1000, IP_ACTIVE_HIGH, IPT_UNKNOWN )
- PORT_BIT( 0x2000, IP_ACTIVE_HIGH, IPT_UNKNOWN )
- PORT_BIT( 0x4000, IP_ACTIVE_HIGH, IPT_UNKNOWN )
- PORT_BIT( 0x8000, IP_ACTIVE_HIGH, IPT_UNKNOWN )
-INPUT_PORTS_END
-
-static INPUT_PORTS_START( twinkle )
- PORT_START("DSW1") /* 500000.w */
- PORT_DIPNAME( 0x0001, 0x0000, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW1:1")
- PORT_DIPSETTING( 0x0001, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPNAME( 0x000e, 0x000e, DEF_STR( Coinage ) ) PORT_DIPLOCATION("SW1:2,3,4")
- PORT_DIPSETTING( 0x0000, DEF_STR( 5C_1C ) )
- PORT_DIPSETTING( 0x0002, DEF_STR( 4C_1C ) )
- PORT_DIPSETTING( 0x0004, DEF_STR( 3C_1C ) )
- PORT_DIPSETTING( 0x0006, DEF_STR( 2C_1C ) )
- PORT_DIPSETTING( 0x000e, DEF_STR( 1C_1C ) )
- PORT_DIPSETTING( 0x000a, DEF_STR( 2C_3C ) )
- PORT_DIPSETTING( 0x000c, DEF_STR( 1C_2C ) )
- PORT_DIPSETTING( 0x0008, DEF_STR( 1C_3C ) )
- PORT_DIPNAME( 0x0070, 0x0070, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW1:5,6,7") // this is what service mode lists, but I don't trust it.
- PORT_DIPSETTING( 0x0020, "Level 1" )
- PORT_DIPSETTING( 0x0010, "Level 2" )
- PORT_DIPSETTING( 0x0000, "Level 3" )
- PORT_DIPSETTING( 0x0070, "Level 4" )
- PORT_DIPSETTING( 0x0060, "Level 5" )
- PORT_DIPSETTING( 0x0050, "Level 6" )
- PORT_DIPSETTING( 0x0040, "Level 7" )
- PORT_DIPSETTING( 0x0030, "Level 8" )
- PORT_SERVICE_DIPLOC( 0x0080, IP_ACTIVE_LOW, "SW1:8" )
- PORT_BIT( 0x0100, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1)
- PORT_BIT( 0x0200, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1)
- PORT_BIT( 0x0400, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1)
- PORT_BIT( 0x0800, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1)
- PORT_BIT( 0x1000, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(1) // jump
- PORT_BIT( 0x2000, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_PLAYER(1) // fire
- PORT_BIT( 0x4000, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_PLAYER(1) // test mode only?
- PORT_BIT( 0x8000, IP_ACTIVE_HIGH, IPT_UNKNOWN )
-
- PORT_START("DSW2") /* 500002.w */
- PORT_DIPNAME( 0x0003, 0x0002, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW2:1,2") // unlisted in service mode
- PORT_DIPSETTING( 0x0000, "1" )
- PORT_DIPSETTING( 0x0003, "2" )
- PORT_DIPSETTING( 0x0002, "3" )
- PORT_DIPSETTING( 0x0001, "4" )
- PORT_DIPUNKNOWN_DIPLOC( 0x0004, 0x0000, "SW2:3" )
- PORT_DIPUNKNOWN_DIPLOC( 0x0008, 0x0000, "SW2:4" )
- PORT_DIPNAME( 0x0010, 0x0010, "Pellet Animations" ) PORT_DIPLOCATION("SW2:5") // unlisted in service mode
- PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0010, DEF_STR( On ) )
- PORT_DIPUNKNOWN_DIPLOC( 0x0020, 0x0000, "SW2:6" )
- PORT_DIPUNKNOWN_DIPLOC( 0x0040, 0x0000, "SW2:7" )
- PORT_DIPNAME( 0x0080, 0x0080, DEF_STR( Free_Play ) ) PORT_DIPLOCATION("SW2:8")
- PORT_DIPSETTING( 0x0080, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_BIT( 0x0100, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2)
- PORT_BIT( 0x0200, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2)
- PORT_BIT( 0x0400, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2)
- PORT_BIT( 0x0800, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2)
- PORT_BIT( 0x1000, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(2) // jump
- PORT_BIT( 0x2000, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_PLAYER(2) // fire
- PORT_BIT( 0x4000, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_PLAYER(2) // test mode only?
- PORT_BIT( 0x8000, IP_ACTIVE_HIGH, IPT_UNKNOWN )
-
- PORT_START("SYSTEM") /* 500004.w */
- PORT_BIT( 0x0100, IP_ACTIVE_HIGH, IPT_START1 )
- PORT_BIT( 0x0200, IP_ACTIVE_HIGH, IPT_START2 )
- PORT_BIT( 0x0400, IP_ACTIVE_HIGH, IPT_COIN1 )
- PORT_BIT( 0x0800, IP_ACTIVE_HIGH, IPT_COIN2 )
- PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN )
-INPUT_PORTS_END
-
-// don't trust the test mode! <-- Verified via actual game play: Demo Sounds, Coinage & Free Play
-static INPUT_PORTS_START( pzlbreak )
- PORT_START("DSW1") /* 500000.w */
- PORT_DIPNAME( 0x0001, 0x0000, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW1:1")
- PORT_DIPSETTING( 0x0001, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPNAME( 0x000e, 0x000e, DEF_STR( Coinage ) ) PORT_DIPLOCATION("SW1:2,3,4")
- PORT_DIPSETTING( 0x0000, DEF_STR( 5C_1C ) )
- PORT_DIPSETTING( 0x0002, DEF_STR( 4C_1C ) )
- PORT_DIPSETTING( 0x0004, DEF_STR( 3C_1C ) )
- PORT_DIPSETTING( 0x0006, DEF_STR( 2C_1C ) )
- PORT_DIPSETTING( 0x000e, DEF_STR( 1C_1C ) )
- PORT_DIPSETTING( 0x000a, DEF_STR( 2C_3C ) )
- PORT_DIPSETTING( 0x000c, DEF_STR( 1C_2C ) )
- PORT_DIPSETTING( 0x0008, DEF_STR( 1C_3C ) )
- PORT_DIPNAME( 0x0070, 0x0070, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW1:5,6,7")
- PORT_DIPSETTING( 0x0020, "Level 1" )
- PORT_DIPSETTING( 0x0010, "Level 2" )
- PORT_DIPSETTING( 0x0000, "Level 3" )
- PORT_DIPSETTING( 0x0070, "Level 4" )
- PORT_DIPSETTING( 0x0060, "Level 5" )
- PORT_DIPSETTING( 0x0050, "Level 6" )
- PORT_DIPSETTING( 0x0040, "Level 7" )
- PORT_DIPSETTING( 0x0030, "Level 8" )
- PORT_SERVICE_DIPLOC( 0x0080, IP_ACTIVE_LOW, "SW1:8" )
- PORT_BIT( 0x0100, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1)
- PORT_BIT( 0x0200, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1)
- PORT_BIT( 0x0400, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1)
- PORT_BIT( 0x0800, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1)
- PORT_BIT( 0x1000, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(1)
- PORT_BIT( 0x2000, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_PLAYER(1)
- PORT_BIT( 0x4000, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_PLAYER(1)
- PORT_BIT( 0x8000, IP_ACTIVE_HIGH, IPT_UNKNOWN )
-
- PORT_START("DSW2") /* 500002.w */
- PORT_DIPUNUSED_DIPLOC( 0x0001, 0x0000, "SW2:1" )
- PORT_DIPUNUSED_DIPLOC( 0x0002, 0x0000, "SW2:2" )
- PORT_DIPUNUSED_DIPLOC( 0x0004, 0x0000, "SW2:3" )
- PORT_DIPUNUSED_DIPLOC( 0x0008, 0x0000, "SW2:4" )
- PORT_DIPUNUSED_DIPLOC( 0x0010, 0x0000, "SW2:5" )
- PORT_DIPUNUSED_DIPLOC( 0x0020, 0x0000, "SW2:6" )
- PORT_DIPUNUSED_DIPLOC( 0x0040, 0x0000, "SW2:7" )
- PORT_DIPNAME( 0x0080, 0x0080, DEF_STR( Free_Play ) ) PORT_DIPLOCATION("SW2:8")
- PORT_DIPSETTING( 0x0080, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_BIT( 0x0100, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2)
- PORT_BIT( 0x0200, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2)
- PORT_BIT( 0x0400, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2)
- PORT_BIT( 0x0800, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2)
- PORT_BIT( 0x1000, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(2)
- PORT_BIT( 0x2000, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_PLAYER(2)
- PORT_BIT( 0x4000, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_PLAYER(2)
- PORT_BIT( 0x8000, IP_ACTIVE_HIGH, IPT_UNKNOWN )
-
- PORT_START("SYSTEM") /* 500004.w */
- PORT_BIT( 0x0100, IP_ACTIVE_HIGH, IPT_START1 )
- PORT_BIT( 0x0200, IP_ACTIVE_HIGH, IPT_START2 )
- PORT_BIT( 0x0400, IP_ACTIVE_HIGH, IPT_COIN1 )
- PORT_BIT( 0x0800, IP_ACTIVE_HIGH, IPT_COIN2 )
- PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN )
-INPUT_PORTS_END
-
-static INPUT_PORTS_START( toppyrap )
- PORT_START("DSW1") /* 500000.w */
- PORT_DIPNAME( 0x0001, 0x0000, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW1:1")
- PORT_DIPSETTING( 0x0001, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPUNUSED_DIPLOC( 0x0002, 0x0000, "SW1:2" )
- PORT_DIPNAME( 0x001c, 0x001c, DEF_STR( Coinage ) ) PORT_DIPLOCATION("SW1:3,4,5")
- PORT_DIPSETTING( 0x0000, DEF_STR( 5C_1C ) )
- PORT_DIPSETTING( 0x0004, DEF_STR( 4C_1C ) )
- PORT_DIPSETTING( 0x0008, DEF_STR( 3C_1C ) )
- PORT_DIPSETTING( 0x000c, DEF_STR( 2C_1C ) )
- PORT_DIPSETTING( 0x001c, DEF_STR( 1C_1C ) )
- PORT_DIPSETTING( 0x0014, DEF_STR( 2C_3C ) )
- PORT_DIPSETTING( 0x0018, DEF_STR( 1C_2C ) )
- PORT_DIPSETTING( 0x0010, DEF_STR( 1C_3C ) )
- PORT_DIPNAME( 0x0060, 0x0060, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW1:6,7")
- PORT_DIPSETTING( 0x0000, DEF_STR( Easy ) )
- PORT_DIPSETTING( 0x0060, DEF_STR( Normal ) )
- PORT_DIPSETTING( 0x0040, DEF_STR( Hard ) )
- PORT_DIPSETTING( 0x0020, DEF_STR( Hardest ) )
- PORT_SERVICE_DIPLOC( 0x0080, IP_ACTIVE_LOW, "SW1:8" )
- PORT_BIT( 0x0100, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1)
- PORT_BIT( 0x0200, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1)
- PORT_BIT( 0x0400, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1)
- PORT_BIT( 0x0800, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1)
- PORT_BIT( 0x1000, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(1) // jump
- PORT_BIT( 0x2000, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_PLAYER(1) // fire
- PORT_BIT( 0x4000, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_PLAYER(1) // test mode only?
- PORT_BIT( 0x8000, IP_ACTIVE_HIGH, IPT_UNKNOWN )
-
- PORT_START("DSW2") /* 500002.w */
- PORT_DIPNAME( 0x03, 0x0003, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW2:1,2")
- PORT_DIPSETTING( 0x0000, "2" )
- PORT_DIPSETTING( 0x0003, "3" )
- PORT_DIPSETTING( 0x0002, "4" )
- PORT_DIPSETTING( 0x0001, "5" )
- PORT_DIPNAME( 0x000c, 0x000c, "Time" ) PORT_DIPLOCATION("SW2:3,4")
- PORT_DIPSETTING( 0x0004, "40 Seconds" )
- PORT_DIPSETTING( 0x0008, "50 Seconds" )
- PORT_DIPSETTING( 0x000c, "60 Seconds" )
- PORT_DIPSETTING( 0x0000, "70 Seconds" )
- PORT_DIPUNUSED_DIPLOC( 0x0010, 0x0000, "SW2:5" )
- PORT_DIPNAME( 0x0020, 0x0020, "God Mode" ) PORT_DIPLOCATION("SW2:6")
- PORT_DIPSETTING( 0x0020, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPNAME( 0x0040, 0x0040, "Internal Test" ) PORT_DIPLOCATION("SW2:7")
- PORT_DIPSETTING( 0x0040, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPNAME( 0x0080, 0x0080, DEF_STR( Free_Play ) ) PORT_DIPLOCATION("SW2:8")
- PORT_DIPSETTING( 0x0080, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_BIT( 0x0100, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2)
- PORT_BIT( 0x0200, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2)
- PORT_BIT( 0x0400, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2)
- PORT_BIT( 0x0800, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2)
- PORT_BIT( 0x1000, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(2) // jump
- PORT_BIT( 0x2000, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_PLAYER(2) // fire
- PORT_BIT( 0x4000, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_PLAYER(2) // test mode only?
- PORT_BIT( 0x8000, IP_ACTIVE_HIGH, IPT_UNKNOWN )
-
- PORT_START("SYSTEM") /* 500004.w */
- PORT_BIT( 0x0100, IP_ACTIVE_HIGH, IPT_START1 )
- PORT_BIT( 0x0200, IP_ACTIVE_HIGH, IPT_START2 )
- PORT_BIT( 0x0400, IP_ACTIVE_HIGH, IPT_COIN1 )
- PORT_BIT( 0x0800, IP_ACTIVE_HIGH, IPT_COIN2 )
- PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN )
-INPUT_PORTS_END
-
-static INPUT_PORTS_START( finalttr )
- PORT_START("DSW1") /* 500001 */
- PORT_DIPNAME( 0x0001, 0x0001, DEF_STR( Demo_Sounds ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0001, DEF_STR( On ) )
- PORT_DIPNAME( 0x0002, 0x0002, DEF_STR( Unknown ) )
- PORT_DIPSETTING( 0x0002, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPNAME( 0x0004, 0x0004, DEF_STR( Unknown ) )
- PORT_DIPSETTING( 0x0004, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPNAME( 0x0038, 0x0038, DEF_STR( Coinage ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( 4C_1C ) )
- PORT_DIPSETTING( 0x0010, DEF_STR( 3C_1C ) )
- PORT_DIPSETTING( 0x0030, DEF_STR( 2C_1C ) )
- PORT_DIPSETTING( 0x0038, DEF_STR( 1C_1C ) )
-/* PORT_DIPSETTING( 0x0018, DEF_STR( 1C_1C ) ) Duplicate setting? */
- PORT_DIPSETTING( 0x0020, DEF_STR( 2C_3C ) )
- PORT_DIPSETTING( 0x0028, DEF_STR( 1C_2C ) )
- PORT_DIPSETTING( 0x0008, DEF_STR( 1C_4C ) )
- PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Unknown ) )
- PORT_DIPSETTING( 0x0040, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPNAME( 0x0080, 0x0080, DEF_STR( Unknown ) )
- PORT_DIPSETTING( 0x0080, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY
- PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY
- PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY
- PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY
- PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 )
- PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 )
- PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_BUTTON3 )
- PORT_BIT( 0x8000, IP_ACTIVE_HIGH, IPT_UNKNOWN ) /* Must be low or game stops! */
- /* probably VBlank */
- PORT_START("DSW2") /* 500003 */
- PORT_DIPNAME( 0x0001, 0x0001, DEF_STR( Unknown ) )
- PORT_DIPSETTING( 0x0001, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPNAME( 0x0002, 0x0002, DEF_STR( Unknown ) )
- PORT_DIPSETTING( 0x0002, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPNAME( 0x000c, 0x000c, "Time" )
- PORT_DIPSETTING( 0x0000, "60 Seconds" )
- PORT_DIPSETTING( 0x000c, "90 Seconds" )
- PORT_DIPSETTING( 0x0008, "120 Seconds" )
- PORT_DIPSETTING( 0x0004, "150 Seconds" )
- PORT_DIPNAME( 0x0010, 0x0010, DEF_STR( Unknown ) )
- PORT_DIPSETTING( 0x0010, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPNAME( 0x0020, 0x0020, DEF_STR( Unknown ) )
- PORT_DIPSETTING( 0x0020, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Unknown ) )
- PORT_DIPSETTING( 0x0040, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPNAME( 0x0080, 0x0080, DEF_STR( Unknown ) )
- PORT_DIPSETTING( 0x0080, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2)
- PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2)
- PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2)
- PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2)
- PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2)
- PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2)
- PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2)
- PORT_BIT( 0x8000, IP_ACTIVE_HIGH, IPT_UNKNOWN )
-
- PORT_START("SYSTEM") /* 500005 */
- PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_START1 )
- PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_START2 )
- PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_COIN1 )
- PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_COIN2 )
- PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_TILT )
- PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_COIN3 )
- PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN )
-INPUT_PORTS_END
-
-// ignore service mode, it shows a regular joystick + 3 buttons config, these game simply uses 6 buttons
-static INPUT_PORTS_START( suhosong )
- PORT_START("DSW1")
- PORT_DIPNAME( 0x0001, 0x0000, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW1:1")
- PORT_DIPSETTING( 0x0001, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPUNUSED_DIPLOC( 0x0002, 0x0000, "SW1:2" )
- PORT_DIPUNUSED_DIPLOC( 0x0004, 0x0000, "SW1:3" )
- PORT_DIPUNUSED_DIPLOC( 0x0008, 0x0000, "SW1:4" )
- PORT_DIPUNUSED_DIPLOC( 0x0010, 0x0000, "SW1:5" )
- PORT_DIPUNUSED_DIPLOC( 0x0020, 0x0000, "SW1:6" )
- PORT_DIPUNUSED_DIPLOC( 0x0040, 0x0000, "SW1:7" )
- PORT_SERVICE_DIPLOC( 0x0080, IP_ACTIVE_LOW, "SW1:8" )
- PORT_BIT( 0x0100, IP_ACTIVE_HIGH, IPT_BUTTON4 ) PORT_NAME("Button 4 / Stand / Stop / Drop / Full Bet / Take") PORT_CODE(KEYCODE_V)
- PORT_BIT( 0x0200, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_NAME("Button 1 / High") PORT_CODE(KEYCODE_Z)
- PORT_BIT( 0x0400, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_NAME("Button 2 / Low") PORT_CODE(KEYCODE_X)
- PORT_BIT( 0x0800, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_NAME("Button 3 / Hit / Go / Double Up") PORT_CODE(KEYCODE_C)
- PORT_BIT( 0x1000, IP_ACTIVE_HIGH, IPT_UNKNOWN )
- PORT_BIT( 0x2000, IP_ACTIVE_HIGH, IPT_BUTTON6 ) PORT_NAME("Button 6 / Bet / Raise") PORT_CODE(KEYCODE_N)
- PORT_BIT( 0x4000, IP_ACTIVE_HIGH, IPT_UNKNOWN )
- PORT_BIT( 0x8000, IP_ACTIVE_HIGH, IPT_UNKNOWN )
-
- PORT_START("DSW2")
- PORT_DIPUNUSED_DIPLOC( 0x0001, 0x0000, "SW2:1" )
- PORT_DIPUNUSED_DIPLOC( 0x0002, 0x0000, "SW2:2" )
- PORT_DIPUNUSED_DIPLOC( 0x0004, 0x0000, "SW2:3" )
- PORT_DIPUNUSED_DIPLOC( 0x0008, 0x0000, "SW2:4" )
- PORT_DIPUNUSED_DIPLOC( 0x0010, 0x0000, "SW2:5" )
- PORT_DIPUNUSED_DIPLOC( 0x0020, 0x0000, "SW2:6" )
- PORT_DIPUNUSED_DIPLOC( 0x0040, 0x0000, "SW2:7" )
- PORT_DIPUNUSED_DIPLOC( 0x0080, 0x0000, "SW2:8" )
- PORT_BIT( 0x0100, IP_ACTIVE_HIGH, IPT_UNKNOWN )
- PORT_BIT( 0x0200, IP_ACTIVE_HIGH, IPT_UNKNOWN )
- PORT_BIT( 0x0400, IP_ACTIVE_HIGH, IPT_UNKNOWN )
- PORT_BIT( 0x0800, IP_ACTIVE_HIGH, IPT_UNKNOWN )
- PORT_BIT( 0x1000, IP_ACTIVE_HIGH, IPT_UNKNOWN )
- PORT_BIT( 0x2000, IP_ACTIVE_HIGH, IPT_UNKNOWN )
- PORT_BIT( 0x4000, IP_ACTIVE_HIGH, IPT_UNKNOWN )
- PORT_BIT( 0x8000, IP_ACTIVE_HIGH, IPT_UNKNOWN )
-
- PORT_START("SYSTEM")
- PORT_BIT( 0x0100, IP_ACTIVE_HIGH, IPT_BUTTON5 ) PORT_NAME("Button 5 / Start / Double / Call / Check") PORT_CODE(KEYCODE_B) // Double != Double Up
- PORT_BIT( 0x0200, IP_ACTIVE_HIGH, IPT_UNKNOWN )
- PORT_BIT( 0x0400, IP_ACTIVE_HIGH, IPT_COIN1 )
- PORT_BIT( 0x0800, IP_ACTIVE_HIGH, IPT_COIN2 )
- PORT_BIT( 0x1000, IP_ACTIVE_HIGH, IPT_UNKNOWN )
- PORT_BIT( 0x2000, IP_ACTIVE_HIGH, IPT_UNKNOWN )
- PORT_BIT( 0x4000, IP_ACTIVE_HIGH, IPT_UNKNOWN )
- PORT_BIT( 0x8000, IP_ACTIVE_HIGH, IPT_UNKNOWN )
-INPUT_PORTS_END
-
-
-
-
-static INPUT_PORTS_START( yutnori )
- PORT_START("DSW1")
- PORT_DIPNAME( 0x007, 0x0007, "Coin / Credit" ) PORT_DIPLOCATION("SW1:1,2,3")
- PORT_DIPSETTING( 0x0004, "1 / 50" )
- PORT_DIPSETTING( 0x0003, "1 / 40" )
- PORT_DIPSETTING( 0x0002, "1 / 30" )
- PORT_DIPSETTING( 0x0007, "2 / 50" )
- PORT_DIPSETTING( 0x0006, "2 / 40" )
- PORT_DIPSETTING( 0x0005, "2 / 30" )
- PORT_DIPSETTING( 0x0001, "3 / 50" )
- PORT_DIPSETTING( 0x0000, "3 / 40" )
- PORT_DIPNAME( 0x0038, 0x0038, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW1:4,5,6")
- PORT_DIPSETTING( 0x0030, "1" )
- PORT_DIPSETTING( 0x0028, "2" )
- PORT_DIPSETTING( 0x0020, "3" )
- PORT_DIPSETTING( 0x0038, "4" )
- PORT_DIPSETTING( 0x0018, "5" )
- PORT_DIPSETTING( 0x0010, "6" )
- PORT_DIPSETTING( 0x0008, "7" )
- PORT_DIPSETTING( 0x0000, "8" )
- PORT_DIPNAME( 0xc0, 0xc0, "Mal Count" ) PORT_DIPLOCATION("SW1:7,8")
- PORT_DIPSETTING( 0x40, "2" )
- PORT_DIPSETTING( 0xc0, "3" )
- PORT_DIPSETTING( 0x00, "4" )
- PORT_DIPSETTING( 0x80, "5" )
- PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY
- PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY
- PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY
- PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY
- PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 )
- PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 )
- PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_BUTTON3 )
- PORT_BIT( 0x8000, IP_ACTIVE_HIGH, IPT_UNKNOWN )
-
- PORT_START("DSW2")
- PORT_DIPNAME( 0x03, 0x03, "Base Bet" ) PORT_DIPLOCATION("SW2:1,2")
- PORT_DIPSETTING( 0x00, "20" )
- PORT_DIPSETTING( 0x01, "30" )
- PORT_DIPSETTING( 0x02, "40" )
- PORT_DIPSETTING( 0x03, "50" )
- PORT_DIPNAME( 0x0c, 0x0c, "Max Bet" ) PORT_DIPLOCATION("SW2:3,4")
- PORT_DIPSETTING( 0x04, "150" )
- PORT_DIPSETTING( 0x08, "200" )
- PORT_DIPSETTING( 0x0c, "300" )
- PORT_DIPSETTING( 0x00, "400" )
- PORT_DIPNAME( 0x30, 0x30, "Score" ) PORT_DIPLOCATION("SW2:5,6")
- PORT_DIPSETTING( 0x10, "800 1200 1600" )
- PORT_DIPSETTING( 0x30, "1000 1500 2000" )
- PORT_DIPSETTING( 0x00, "1200 1800 2400" )
- PORT_DIPSETTING( 0x20, "1000 2000 3000" )
- PORT_DIPNAME( 0x0040, 0x0040, "Bet -> Score" ) PORT_DIPLOCATION("SW2:7")
- PORT_DIPSETTING( 0x0040, DEF_STR( On ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
- PORT_SERVICE_DIPLOC( 0x0080, IP_ACTIVE_LOW, "SW2:8" )
- PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2)
- PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2)
- PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2)
- PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2)
- PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2)
- PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2)
- PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2)
- PORT_BIT( 0x8000, IP_ACTIVE_HIGH, IPT_UNKNOWN )
-
- PORT_START("SYSTEM")
- PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_START1 )
- PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_START2 )
- PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_COIN1 )
- PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_COIN2 )
- PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_TILT )
- PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_COIN3 )
- PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN )
-INPUT_PORTS_END
-
-
-/* SnowBros */
-
-static GFXDECODE_START( gfx_snowbros )
- GFXDECODE_ENTRY( "gfx1", 0, gfx_8x8x4_row_2x2_group_packed_msb, 0, 16 )
-GFXDECODE_END
-
-/* Honey Doll */
-
-static const gfx_layout honeydol_tilelayout8bpp =
-{
- 16,16,
- RGN_FRAC(1,2),
- 8,
- { 0, 1, 2, 3, RGN_FRAC(1,2)+0, RGN_FRAC(1,2)+1, RGN_FRAC(1,2)+2, RGN_FRAC(1,2)+3},
- { STEP8(0,4), STEP8(8*32,4) },
- { STEP8(0,32), STEP8(16*32,32) },
- 32*32
-};
-
-static GFXDECODE_START( gfx_honeydol )
- GFXDECODE_ENTRY( "gfx1", 0, gfx_8x8x4_row_2x2_group_packed_msb, 0, 64 ) // how does it use 0-15
- GFXDECODE_ENTRY( "gfx2", 0, honeydol_tilelayout8bpp, 0, 4 )
-
-GFXDECODE_END
-
-static GFXDECODE_START( gfx_twinadv )
- GFXDECODE_ENTRY( "gfx1", 0, gfx_8x8x4_row_2x2_group_packed_msb, 0, 64 )
-GFXDECODE_END
-
-/* Winter Bobble */
-
-static const gfx_layout tilelayout_wb =
-{
- 16,16,
- RGN_FRAC(1,1),
- 4,
- { 0, 1, 2, 3 },
- { STEP4(3*4,-4), STEP4(7*4,-4), STEP4(11*4,-4), STEP4(15*4,-4) },
- { STEP16(0,64) },
- 16*64
-};
-
-static GFXDECODE_START( gfx_wb )
- GFXDECODE_ENTRY( "gfx1", 0, tilelayout_wb, 0, 16 )
-GFXDECODE_END
-
-/* SemiCom */
-
-static const gfx_layout hyperpac_tilelayout =
-{
- 16,16,
- RGN_FRAC(1,1),
- 4,
- { 0, 1, 2, 3 },
- { 4, 0, 8*32+4, 8*32+0, 20,16, 8*32+20, 8*32+16,
- 12, 8, 8*32+12, 8*32+8, 28, 24, 8*32+28, 8*32+24 },
- { 0*32, 2*32, 1*32, 3*32, 16*32+0*32, 16*32+2*32, 16*32+1*32, 16*32+3*32,
- 4*32, 6*32, 5*32, 7*32, 16*32+4*32, 16*32+6*32, 16*32+5*32, 16*32+7*32 },
- 32*32
-};
-
-
-static const gfx_layout sb3_tilebglayout =
-{
- 16,16,
- RGN_FRAC(1,1),
- 8,
- {8, 9,10, 11, 0, 1, 2, 3 },
- { 0, 4, 16, 20, 32, 36, 48, 52,
- 512+0,512+4,512+16,512+20,512+32,512+36,512+48,512+52},
- { 0*64, 1*64, 2*64, 3*64, 4*64, 5*64, 6*64, 7*64,
- 1024+0*16,1024+1*64,1024+2*64,1024+3*64,1024+4*64,1024+5*64,1024+6*64,1024+7*64},
- 32*64
-};
-
-
-static GFXDECODE_START( gfx_sb3 )
- GFXDECODE_ENTRY( "gfx1", 0, gfx_8x8x4_row_2x2_group_packed_msb, 0, 16 )
- GFXDECODE_ENTRY( "gfx2", 0, sb3_tilebglayout, 0, 2 )
-GFXDECODE_END
-
-static GFXDECODE_START( gfx_hyperpac )
- GFXDECODE_ENTRY( "gfx1", 0, hyperpac_tilelayout, 0, 16 )
-GFXDECODE_END
-
-MACHINE_RESET_MEMBER(snowbros_state,semiprot)
-{
- uint16_t *PROTDATA = (uint16_t*)memregion("user1")->base();
- int i;
-
- for (i = 0;i < 0x200/2;i++)
- m_hyperpac_ram[0xf000/2 + i] = PROTDATA[i];
-}
-
-MACHINE_RESET_MEMBER(snowbros_state,finalttr)
-{
- uint16_t *PROTDATA = (uint16_t*)memregion("user1")->base();
- int i;
-
- for (i = 0;i < 0x200/2;i++)
- m_hyperpac_ram[0x2000/2 + i] = PROTDATA[i];
-}
-
-void snowbros_state::snowbros(machine_config &config)
-{
- /* basic machine hardware */
- M68000(config, m_maincpu, XTAL(16'000'000)/2); /* 8 Mhz - confirmed */
- m_maincpu->set_addrmap(AS_PROGRAM, &snowbros_state::snowbros_map);
- TIMER(config, "scantimer", 0).configure_scanline(FUNC(snowbros_state::snowbros_irq), "screen", 0, 1);
- WATCHDOG_TIMER(config, "watchdog");
-
- Z80(config, m_soundcpu, XTAL(12'000'000)/2); /* 6 MHz - confirmed */
- m_soundcpu->set_addrmap(AS_PROGRAM, &snowbros_state::sound_map);
- m_soundcpu->set_addrmap(AS_IO, &snowbros_state::sound_io_map);
-
- /* video hardware */
- SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
- m_screen->set_refresh_hz(57.5); /* ~57.5 - confirmed */
- m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(0));
- m_screen->set_size(32*8, 262);
- m_screen->set_visarea(0*8, 32*8-1, 2*8, 30*8-1);
- m_screen->set_screen_update(FUNC(snowbros_state::screen_update_snowbros));
- m_screen->screen_vblank().set(FUNC(snowbros_state::screen_vblank_snowbros));
- m_screen->set_palette(m_palette);
-
- GFXDECODE(config, m_gfxdecode, m_palette, gfx_snowbros);
- PALETTE(config, m_palette).set_format(palette_device::xBGR_555, 256);
-
- KANEKO_PANDORA(config, m_pandora, 0);
- m_pandora->set_gfxdecode_tag(m_gfxdecode);
-
- /* sound hardware */
- SPEAKER(config, "mono").front_center();
-
- GENERIC_LATCH_8(config, m_soundlatch);
- m_soundlatch->data_pending_callback().set_inputline(m_soundcpu, INPUT_LINE_NMI);
-
- GENERIC_LATCH_8(config, "soundlatch2");
-
- ym3812_device &ymsnd(YM3812(config, "ymsnd", XTAL(12'000'000)/4)); /* 3 MHz - confirmed */
- ymsnd.irq_handler().set_inputline("soundcpu", 0);
- ymsnd.add_route(ALL_OUTPUTS, "mono", 1.0);
-}
-
-void snowbros_state::wintbob(machine_config &config)
-{
- snowbros(config);
-
- /* basic machine hardware */
- m_maincpu->set_clock(10000000); /* 10mhz - Confirmed */
- m_maincpu->set_addrmap(AS_PROGRAM, &snowbros_state::wintbob_map);
-
- config.device_remove("pandora");
-
- /* video hardware */
- m_gfxdecode->set_info(gfx_wb);
-
- m_screen->set_screen_update(FUNC(snowbros_state::screen_update_wintbob));
- m_screen->screen_vblank().set_nop();
-}
-
-void snowbros_state::semicom(machine_config &config)
-{
- snowbros(config);
-
- /* basic machine hardware */
- m_maincpu->set_clock(XTAL(12'000'000)); /* 12MHz - Confirmed */
- m_maincpu->set_addrmap(AS_PROGRAM, &snowbros_state::hyperpac_map);
-
- m_soundcpu->set_clock(XTAL(16'000'000)/4); /* 4MHz - Confirmed */
- m_soundcpu->set_addrmap(AS_PROGRAM, &snowbros_state::hyperpac_sound_map);
- m_soundcpu->set_addrmap(AS_IO, address_map_constructor());
-
- m_gfxdecode->set_info(gfx_hyperpac);
-
- m_soundlatch->data_pending_callback().set_nop();
-
- config.device_remove("soundlatch2");
-
- /* sound hardware */
- ym2151_device &ymsnd(YM2151(config.replace(), "ymsnd", XTAL(16'000'000)/4)); /* 4MHz - Confirmed */
- ymsnd.irq_handler().set_inputline(m_soundcpu, 0);
- ymsnd.add_route(0, "mono", 0.10);
- ymsnd.add_route(1, "mono", 0.10);
-
- OKIM6295(config, m_oki, XTAL(16'000'000)/16, okim6295_device::PIN7_HIGH); /* 1MHz & pin 7 High - Confirmed */
- m_oki->add_route(ALL_OUTPUTS, "mono", 1.0);
-}
-
-void snowbros_state::semicom_mcu(machine_config &config)
-{
- semicom(config);
-
- /* basic machine hardware */
- at89c52_device &prot(AT89C52(config, "protection", XTAL(16'000'000)));
- prot.port_out_cb<0>().set(FUNC(snowbros_state::prot_p0_w));
- prot.port_out_cb<1>().set(FUNC(snowbros_state::prot_p1_w));
- prot.port_out_cb<2>().set(FUNC(snowbros_state::prot_p2_w));
-}
-
-
-void snowbros_state::semiprot(machine_config &config)
-{
- semicom(config);
- MCFG_MACHINE_RESET_OVERRIDE(snowbros_state, semiprot)
-}
-
-
-void snowbros_state::honeydol(machine_config &config)
-{
- /* basic machine hardware */
- M68000(config, m_maincpu, XTAL(12'000'000)); /* MC68000P12 @ 12MHz */
- m_maincpu->set_addrmap(AS_PROGRAM, &snowbros_state::honeydol_map);
- TIMER(config, "scantimer", 0).configure_scanline(FUNC(snowbros_state::snowbros_irq), "screen", 0, 1);
-
- Z80(config, m_soundcpu, XTAL(16'000'000)/4); /* 4Mhz (16MHz/4) like SemiCom or 6MHz (12MHz/2) like snowbros??? */
- m_soundcpu->set_addrmap(AS_PROGRAM, &snowbros_state::honeydol_sound_map);
- m_soundcpu->set_addrmap(AS_IO, &snowbros_state::honeydol_sound_io_map);
-
- /* video hardware */
- SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
- m_screen->set_refresh_hz(57.5);
- m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */
- m_screen->set_size(32*8, 262);
- m_screen->set_visarea(0*8, 32*8-1, 2*8, 30*8-1);
- m_screen->set_screen_update(FUNC(snowbros_state::screen_update_honeydol));
- m_screen->set_palette(m_palette);
-
- GFXDECODE(config, m_gfxdecode, m_palette, gfx_honeydol);
- PALETTE(config, m_palette).set_format(palette_device::xBGR_555, 0x800/2);
-
- /* sound hardware */
- SPEAKER(config, "mono").front_center();
-
- GENERIC_LATCH_8(config, m_soundlatch);
- m_soundlatch->data_pending_callback().set_inputline(m_soundcpu, INPUT_LINE_NMI);
-
- ym3812_device &ymsnd(YM3812(config, "ymsnd", XTAL(12'000'000)/4)); /* 3Mhz */
- ymsnd.irq_handler().set_inputline("soundcpu", 0);
- ymsnd.add_route(ALL_OUTPUTS, "mono", 1.0);
-
- OKIM6295(config, m_oki, XTAL(16'000'000)/16, okim6295_device::PIN7_HIGH); /* freq? */
- m_oki->add_route(ALL_OUTPUTS, "mono", 1.0);
-}
-
-void snowbros_state::twinadv(machine_config &config)
-{
- /* basic machine hardware */
- M68000(config, m_maincpu, XTAL(12'000'000)); /* 12MHz like Honey Dolls ? */
- m_maincpu->set_addrmap(AS_PROGRAM, &snowbros_state::twinadv_map);
- TIMER(config, "scantimer", 0).configure_scanline(FUNC(snowbros_state::snowbros_irq), "screen", 0, 1);
- WATCHDOG_TIMER(config, "watchdog");
-
- Z80(config, m_soundcpu, XTAL(16'000'000)/4); /* 4Mhz (16MHz/4) like SemiCom or 6MHz (12MHz/2) like snowbros??? */
- m_soundcpu->set_addrmap(AS_PROGRAM, &snowbros_state::sound_map);
- m_soundcpu->set_addrmap(AS_IO, &snowbros_state::twinadv_sound_io_map);
- m_soundcpu->set_vblank_int("screen", FUNC(snowbros_state::irq0_line_hold));
-
- /* video hardware */
- SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
- m_screen->set_refresh_hz(57.5);
- m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */
- m_screen->set_size(32*8, 262);
- m_screen->set_visarea(0*8, 32*8-1, 2*8, 30*8-1);
- m_screen->set_screen_update(FUNC(snowbros_state::screen_update_twinadv));
- m_screen->set_palette(m_palette);
-
- GFXDECODE(config, m_gfxdecode, m_palette, gfx_twinadv);
- PALETTE(config, m_palette).set_format(palette_device::xBGR_555, 0x100);
-
- /* sound hardware */
- SPEAKER(config, "mono").front_center();
-
- GENERIC_LATCH_8(config, m_soundlatch);
- m_soundlatch->data_pending_callback().set_inputline(m_soundcpu, INPUT_LINE_NMI);
-
- GENERIC_LATCH_8(config, "soundlatch2");
-
- /* sound hardware */
- OKIM6295(config, m_oki, XTAL(16'000'000)/16, okim6295_device::PIN7_HIGH); /* freq? */
- m_oki->add_route(ALL_OUTPUTS, "mono", 1.0);
-}
-
-
-/*
-
-Final Tetris
-
-the pcb is korean and probably original even if it's very cheap.
-
-osc 12mhz
-osc 3.579545mhz
-68000
-z8004b
-CA5101 (sound chip)
-OKI M6295 (sound chip)
-Intel P8752 (mcu)
-
-2x dips banks
-
-*/
-
-void snowbros_state::finalttr(machine_config &config)
-{
- semicom(config);
-
- m_maincpu->set_clock(XTAL(12'000'000));
- m_maincpu->set_addrmap(AS_PROGRAM, &snowbros_state::finalttr_map);
-
- m_soundcpu->set_clock(XTAL(3'579'545));
-
- MCFG_MACHINE_RESET_OVERRIDE(snowbros_state, finalttr)
-
- ym2151_device &ymsnd(YM2151(config.replace(), "ymsnd", XTAL(3'579'545))); /* possible but less likely 4MHz (12MHz/3) */
- ymsnd.irq_handler().set_inputline(m_soundcpu, 0);
- ymsnd.add_route(0, "mono", 0.08);
- ymsnd.add_route(1, "mono", 0.08);
-
- m_oki->set_clock(999900);
- m_oki->reset_routes().add_route(ALL_OUTPUTS, "mono", 0.4);
-}
-
-
-void snowbros_state::_4in1(machine_config &config)
-{
- semicom(config);
-
- /* basic machine hardware */
- m_gfxdecode->set_info(gfx_snowbros);
-}
-
-void snowbros_state::snowbro3(machine_config &config) /* PCB has 16MHz & 12MHz OSCs */
-{
- /* basic machine hardware */
- M68000(config, m_maincpu, XTAL(12'000'000)); /* MC68000P10 CPU @ 12mhz or 8MHz (16MHz/2) ? */
- m_maincpu->set_addrmap(AS_PROGRAM, &snowbros_state::snowbros3_map);
- TIMER(config, "scantimer", 0).configure_scanline(FUNC(snowbros_state::snowbros3_irq), "screen", 0, 1);
- WATCHDOG_TIMER(config, "watchdog");
-
- /* video hardware */
- SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
- m_screen->set_refresh_hz(60);
- m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(0));
- m_screen->set_size(32*8, 32*8);
- m_screen->set_visarea(0*8, 32*8-1, 2*8, 30*8-1);
- m_screen->set_screen_update(FUNC(snowbros_state::screen_update_snowbro3));
- m_screen->set_palette(m_palette);
-
- GFXDECODE(config, m_gfxdecode, m_palette, gfx_sb3);
- PALETTE(config, m_palette).set_format(palette_device::xBGR_555, 512);
-
- /* sound hardware */
- SPEAKER(config, "mono").front_center();
-
- OKIM6295(config, m_oki, XTAL(16'000'000)/16, okim6295_device::PIN7_HIGH); // clock frequency & pin 7 not verified
- m_oki->add_route(ALL_OUTPUTS, "mono", 1.0);
-}
-
-void snowbros_state::yutnori(machine_config &config)
-{
- /* basic machine hardware */
- M68000(config, m_maincpu, XTAL(16'000'000)/2);
- m_maincpu->set_addrmap(AS_PROGRAM, &snowbros_state::yutnori_map);
- TIMER(config, "scantimer", 0).configure_scanline(FUNC(snowbros_state::snowbros_irq), "screen", 0, 1);
-
-// WATCHDOG_TIMER(config, "watchdog"); // maybe
-
- /* video hardware */
- SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
- m_screen->set_refresh_hz(57.5);
- m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(0));
- m_screen->set_size(32*8, 262);
- m_screen->set_visarea(0*8, 32*8-1, 2*8, 30*8-1);
- m_screen->set_screen_update(FUNC(snowbros_state::screen_update_snowbros));
- m_screen->screen_vblank().set(FUNC(snowbros_state::screen_vblank_snowbros));
- m_screen->set_palette(m_palette);
-
- GFXDECODE(config, m_gfxdecode, m_palette, gfx_hyperpac);
- PALETTE(config, m_palette).set_format(palette_device::xBGR_555, 256);
-
- KANEKO_PANDORA(config, m_pandora, 0);
- m_pandora->set_gfxdecode_tag(m_gfxdecode);
-
- /* sound hardware */
- SPEAKER(config, "mono").front_center();
-
- okim6295_device &oki1(OKIM6295(config, "oki1", XTAL(16'000'000)/16, okim6295_device::PIN7_HIGH)); // clock frequency & pin 7 not verified
- oki1.add_route(ALL_OUTPUTS, "mono", 1.0);
-
- okim6295_device &oki2(OKIM6295(config, "oki2", XTAL(16'000'000)/16, okim6295_device::PIN7_HIGH)); // clock frequency & pin 7 not verified
- oki2.add_route(ALL_OUTPUTS, "mono", 1.0);
-}
-
-/***************************************************************************
-
- ROM definitions
-
-***************************************************************************/
-
-ROM_START( snowbros )
- ROM_REGION( 0x40000, "maincpu", 0 )
- ROM_LOAD16_BYTE( "sn6.bin", 0x00000, 0x20000, CRC(4899ddcf) SHA1(47d750d3022a80e47ffabe47566bb2556cc8d477) )
- ROM_LOAD16_BYTE( "sn5.bin", 0x00001, 0x20000, CRC(ad310d3f) SHA1(f39295b38d99087dbb9c5b00bf9cb963337a50e2) )
-
- ROM_REGION( 0x10000, "soundcpu", 0 ) /* 64k for z80 sound code */
- ROM_LOAD( "sbros-4.29", 0x0000, 0x8000, CRC(e6eab4e4) SHA1(d08187d03b21192e188784cb840a37a7bdb5ad32) )
-
- ROM_REGION( 0x80000, "gfx1", 0 )
- ROM_LOAD( "sbros-1.41", 0x00000, 0x80000, CRC(16f06b3a) SHA1(c64d3b2d32f0f0fcf1d8c5f02f8589d59ddfd428) )
- /* where were these from, a bootleg? */
-// ROM_LOAD( "ch0", 0x00000, 0x20000, CRC(36d84dfe) SHA1(5d45a750220930bc409de30f19282bb143fbf94f) )
-// ROM_LOAD( "ch1", 0x20000, 0x20000, CRC(76347256) SHA1(48ec03965905adaba5e50eb3e42a2813f7883bb4) )
-// ROM_LOAD( "ch2", 0x40000, 0x20000, CRC(fdaa634c) SHA1(1271c74df7da7596caf67caae3c51b4c163a49f4) )
-// ROM_LOAD( "ch3", 0x60000, 0x20000, CRC(34024aef) SHA1(003a9b9ee3aaab3d787894d3d4126d372b19d2a8) )
-ROM_END
-
-ROM_START( snowbrosa )
- ROM_REGION( 0x40000, "maincpu", 0 )
- ROM_LOAD16_BYTE( "sbros-3a.5", 0x00000, 0x20000, CRC(10cb37e1) SHA1(786be4640f8df2c81a32decc189ea7657ace00c6) )
- ROM_LOAD16_BYTE( "sbros-2a.6", 0x00001, 0x20000, CRC(ab91cc1e) SHA1(8cff61539dc7d35fcbf110d3e54fc1883e7b8509) )
-
- ROM_REGION( 0x10000, "soundcpu", 0 ) /* 64k for z80 sound code */
- ROM_LOAD( "sbros-4.29", 0x0000, 0x8000, CRC(e6eab4e4) SHA1(d08187d03b21192e188784cb840a37a7bdb5ad32) )
-
- ROM_REGION( 0x80000, "gfx1", 0 )
- ROM_LOAD( "sbros-1.41", 0x00000, 0x80000, CRC(16f06b3a) SHA1(c64d3b2d32f0f0fcf1d8c5f02f8589d59ddfd428) )
-ROM_END
-
-ROM_START( snowbrosb )
- ROM_REGION( 0x40000, "maincpu", 0 )
- ROM_LOAD16_BYTE( "sbros3-a", 0x00000, 0x20000, CRC(301627d6) SHA1(0d1dc70091c87e9c27916d4232ff31b7381a64e1) )
- ROM_LOAD16_BYTE( "sbros2-a", 0x00001, 0x20000, CRC(f6689f41) SHA1(e4fd27b930a31479c0d99e0ddd23d5db34044666) )
-
- ROM_REGION( 0x10000, "soundcpu", 0 ) /* 64k for z80 sound code */
- ROM_LOAD( "sbros-4.29", 0x0000, 0x8000, CRC(e6eab4e4) SHA1(d08187d03b21192e188784cb840a37a7bdb5ad32) )
-
- ROM_REGION( 0x80000, "gfx1", 0 )
- ROM_LOAD( "sbros-1.41", 0x00000, 0x80000, CRC(16f06b3a) SHA1(c64d3b2d32f0f0fcf1d8c5f02f8589d59ddfd428) )
-ROM_END
-
-ROM_START( snowbrosc )
- ROM_REGION( 0x40000, "maincpu", 0 )
- ROM_LOAD16_BYTE( "3-a.ic5", 0x00000, 0x20000, CRC(e1bc346b) SHA1(a20c343d9ed2ad4f785d21076499008edad251f9) )
- ROM_LOAD16_BYTE( "2-a.ic6", 0x00001, 0x20000, CRC(1be27f9d) SHA1(76dd14480b9274831e51016f7bb57459d7b15cf9) )
-
- ROM_REGION( 0x10000, "soundcpu", 0 ) /* 64k for z80 sound code */
- ROM_LOAD( "sbros-4.29", 0x0000, 0x8000, CRC(e6eab4e4) SHA1(d08187d03b21192e188784cb840a37a7bdb5ad32) )
-
- ROM_REGION( 0x80000, "gfx1", 0 )
- ROM_LOAD( "sbros-1.41", 0x00000, 0x80000, CRC(16f06b3a) SHA1(c64d3b2d32f0f0fcf1d8c5f02f8589d59ddfd428) )
-ROM_END
-
-ROM_START( snowbrosd ) /* Korean release, but no specific "For use in Korea only..." notice screen */
- ROM_REGION( 0x40000, "maincpu", 0 )
- ROM_LOAD16_BYTE( "sbk_3-a.bin", 0x00000, 0x20000, CRC(97174d40) SHA1(481e8c680af8b03d4bcf97b87ca0ba5a3ffca0d7) )
- ROM_LOAD16_BYTE( "sbk_2-a.bin", 0x00001, 0x20000, CRC(80cc80e5) SHA1(1eeca0924c93e9f0536683160e80c59871569088) )
-
- ROM_REGION( 0x10000, "soundcpu", 0 ) /* 64k for z80 sound code */
- ROM_LOAD( "sbros-4.29", 0x0000, 0x8000, CRC(e6eab4e4) SHA1(d08187d03b21192e188784cb840a37a7bdb5ad32) )
-
- ROM_REGION( 0x80000, "gfx1", 0 )
- ROM_LOAD( "sbros-1.41", 0x00000, 0x80000, CRC(16f06b3a) SHA1(c64d3b2d32f0f0fcf1d8c5f02f8589d59ddfd428) )
-ROM_END
-
-ROM_START( snowbrosj )/* "For use in Japan only..." notice screen */
- ROM_REGION( 0x40000, "maincpu", 0 )
- ROM_LOAD16_BYTE( "snowbros.3", 0x00000, 0x20000, CRC(3f504f9e) SHA1(700758b114c3fde6ea8f84222af0850dba13cd3b) )
- ROM_LOAD16_BYTE( "snowbros.2", 0x00001, 0x20000, CRC(854b02bc) SHA1(4ad1548eef94dcb95119cb4a7dcdefa037591b5b) )
-
- ROM_REGION( 0x10000, "soundcpu", 0 ) /* 64k for z80 sound code */
- ROM_LOAD( "sbros-4.29", 0x0000, 0x8000, CRC(e6eab4e4) SHA1(d08187d03b21192e188784cb840a37a7bdb5ad32) )
-
- ROM_REGION( 0x80000, "gfx1", 0 )
- /* The gfx ROM (snowbros.1) was bad, I'm using the ones from the other sets. */
- ROM_LOAD( "sbros-1.41", 0x00000, 0x80000, CRC(16f06b3a) SHA1(c64d3b2d32f0f0fcf1d8c5f02f8589d59ddfd428) )
-ROM_END
-
-ROM_START( wintbob )
- ROM_REGION( 0x40000, "maincpu", 0 )
- ROM_LOAD16_BYTE( "wb3", 0x00000, 0x10000, CRC(b9719767) SHA1(431c97d409f2a5ff7f46116a4d8907e446434431) )
- ROM_LOAD16_BYTE( "wb1", 0x00001, 0x10000, CRC(a4488998) SHA1(4e927e31c1b865dbdba2b985c7a819a07e2e81b8) )
-
- /* The wb03.bin below is bad, the set has a different copyright message (IN KOREA is replaced with 1990)
- but also clearly suffers from bitrot at the following addresses
- 4FC2, 5F02, 6642, D6C2, D742
- in all cases bit 0x20 is incorrectly set in the bad rom
- */
-
-// ROM_LOAD16_BYTE( "wb03.bin", 0x00000, 0x10000, CRC(df56e168) SHA1(20dbabdd97e6f3d4bf6500bf9e8476942cb48ae3) )
-// ROM_LOAD16_BYTE( "wb01.bin", 0x00001, 0x10000, CRC(05722f17) SHA1(9356e2488ea35e0a2978689f2ca6dfa0d57fd2ed) )
-
- ROM_LOAD16_BYTE( "wb04.bin", 0x20000, 0x10000, CRC(53be758d) SHA1(56cf85ba23fe699031d73e8f367a1b8ac837d5f8) )
- ROM_LOAD16_BYTE( "wb02.bin", 0x20001, 0x10000, CRC(fc8e292e) SHA1(857cfeb0be121e64e6117120514ae1f2ffeae4d6) )
-
- ROM_REGION( 0x10000, "soundcpu", 0 ) /* 64k for z80 sound code */
- ROM_LOAD( "wb05.bin", 0x0000, 0x10000, CRC(53fe59df) SHA1(a99053e82b9fed76f744fa9f67078294641c6317) )
-
- ROM_REGION( 0x80000, "gfx1", 0 )
- ROM_LOAD16_BYTE( "wb13.bin", 0x00000, 0x10000, CRC(426921de) SHA1(5107c58e7e08d71895baa67fe260b17ebd61389c) )
- ROM_LOAD16_BYTE( "wb06.bin", 0x00001, 0x10000, CRC(68204937) SHA1(fd2ef93df5fd8aa2d36072858dbcfce41157ef3e) )
- ROM_LOAD16_BYTE( "wb12.bin", 0x20000, 0x10000, CRC(ef4e04c7) SHA1(17158b61b3c158e0491db9abb2e1a8c20d981d37) )
- ROM_LOAD16_BYTE( "wb07.bin", 0x20001, 0x10000, CRC(53f40978) SHA1(058bbf3b7877f0cd320383e0386c5959e0d6589b) )
- ROM_LOAD16_BYTE( "wb11.bin", 0x40000, 0x10000, CRC(41cb4563) SHA1(94f1d12d299ac08fc8522139e1927f0cf739be75) )
- ROM_LOAD16_BYTE( "wb08.bin", 0x40001, 0x10000, CRC(9497b88c) SHA1(367c6106276f3816528341f11f3a97ae458d25cd) )
- ROM_LOAD16_BYTE( "wb10.bin", 0x60000, 0x10000, CRC(5fa22b1e) SHA1(1164003d873e9738a3ca133cce689c7120061e3c) )
- ROM_LOAD16_BYTE( "wb09.bin", 0x60001, 0x10000, CRC(9be718ca) SHA1(5c195e4f13efbdb229201d2408d018861bf389cc) )
-ROM_END
-
-
-ROM_START( snowbroswb )
- ROM_REGION( 0x40000, "maincpu", 0 )
- ROM_LOAD16_BYTE( "toa3.bin", 0x00000, 0x10000, CRC(55d302da) SHA1(235f1cd5adeb783f42bd7261e6f575826235c5b2) )
- ROM_LOAD16_BYTE( "toa1.bin", 0x00001, 0x10000, CRC(3c64e145) SHA1(46c3ba17aac516fc203d2d82ed5452b8212f5edb) )
- ROM_LOAD16_BYTE( "wb04.bin", 0x20000, 0x10000, CRC(53be758d) SHA1(56cf85ba23fe699031d73e8f367a1b8ac837d5f8) )
- ROM_LOAD16_BYTE( "wb02.bin", 0x20001, 0x10000, CRC(fc8e292e) SHA1(857cfeb0be121e64e6117120514ae1f2ffeae4d6) )
-
- ROM_REGION( 0x10000, "soundcpu", 0 ) /* 64k for z80 sound code */
- ROM_LOAD( "wb05.bin", 0x0000, 0x10000, CRC(53fe59df) SHA1(a99053e82b9fed76f744fa9f67078294641c6317) )
-
- ROM_REGION( 0x80000, "gfx1", 0 )
- ROM_LOAD16_BYTE( "wb13.bin", 0x00000, 0x10000, CRC(426921de) SHA1(5107c58e7e08d71895baa67fe260b17ebd61389c) )
- ROM_LOAD16_BYTE( "wb06.bin", 0x00001, 0x10000, CRC(68204937) SHA1(fd2ef93df5fd8aa2d36072858dbcfce41157ef3e) )
- ROM_LOAD16_BYTE( "wb12.bin", 0x20000, 0x10000, CRC(ef4e04c7) SHA1(17158b61b3c158e0491db9abb2e1a8c20d981d37) )
- ROM_LOAD16_BYTE( "wb07.bin", 0x20001, 0x10000, CRC(53f40978) SHA1(058bbf3b7877f0cd320383e0386c5959e0d6589b) )
- ROM_LOAD16_BYTE( "wb11.bin", 0x40000, 0x10000, CRC(41cb4563) SHA1(94f1d12d299ac08fc8522139e1927f0cf739be75) )
- ROM_LOAD16_BYTE( "wb08.bin", 0x40001, 0x10000, CRC(9497b88c) SHA1(367c6106276f3816528341f11f3a97ae458d25cd) )
- ROM_LOAD16_BYTE( "wb10.bin", 0x60000, 0x10000, CRC(5fa22b1e) SHA1(1164003d873e9738a3ca133cce689c7120061e3c) )
- ROM_LOAD16_BYTE( "wb09.bin", 0x60001, 0x10000, CRC(9be718ca) SHA1(5c195e4f13efbdb229201d2408d018861bf389cc) )
-ROM_END
-
-ROM_START( toto )
- ROM_REGION( 0x40000, "maincpu", 0 )
- ROM_LOAD16_BYTE( "u60.5j", 0x00000, 0x20000, CRC(39203792) SHA1(4c8d560be02a514cbf91774c7a0b4a95cf573356) )
- ROM_LOAD16_BYTE( "u51.4j", 0x00001, 0x20000, CRC(7b846cd4) SHA1(04aa0bbaab4303fb08dff52d5515f7e764f1be6d))
-
- ROM_REGION( 0x10000, "soundcpu", 0 ) /* 64k for z80 sound code */
- ROM_LOAD( "u46.4c", 0x0000, 0x8000, CRC(77b1ef42) SHA1(75e3c8c2b687669cc56f972dd7375dab5185859c) )
-
- ROM_REGION( 0x80000, "gfx1", 0 )
- ROM_LOAD( "u107.8k", 0x00000, 0x20000, CRC(4486153b) SHA1(a6dc0c17bf2328ab725bce4aaa0a413a42129fb0) )
- ROM_LOAD( "u108.8l", 0x20000, 0x20000, CRC(3286cf5f) SHA1(133366b0e10ab86111247cbedf329e8e3a7f2148) )
- ROM_LOAD( "u109.8m", 0x40000, 0x20000, CRC(464d7251) SHA1(f03ee54e9301ea87de4171cecdbad4a5e17929c4) )
- ROM_LOAD( "u110.8n", 0x60000, 0x20000, CRC(7dea56df) SHA1(7e7b9238837c6f4221cff416a2de21723d2c9272) )
-ROM_END
-
-/* Barko */
-
-/*
-
-Honey Doll - Barko Corp 1995
-
-Rom Board include a Cypress cy7C382-0JC chip
-
-Main Board :
-
-CPU : 1 X MC68000P12
- 1 X Z80B
-
-1 X Oki M6295
-2 X Cypress CY7C384A-XJC
-
-2 x quartz - 12Mhz and 16Mhz
-
-*/
-
-ROM_START( honeydol )
- ROM_REGION( 0x40000, "maincpu", 0 )
- ROM_LOAD16_BYTE( "d-16.uh12", 0x00001, 0x20000, CRC(cee1a2e3) SHA1(6d1ff5358ec704616b724eea2ab9b60b84709eb1) )
- ROM_LOAD16_BYTE( "d-17.ui12", 0x00000, 0x20000, CRC(cac44154) SHA1(2c30dc033001fc9303da7e117e3401bc7af16607) )
-
- ROM_REGION( 0x10000, "soundcpu", 0 ) /* 64k for z80 sound code */
- ROM_LOAD( "d-12.uh15", 0x0000, 0x8000, CRC(386f1b63) SHA1(d719875226cd3d380e2ebec49209590d91b6f07b) )
-
- ROM_REGION( 0x80000, "gfx1", 0 ) // 4 bpp gfx
- ROM_LOAD( "d-13.1", 0x000000, 0x80000, CRC(ff6a57fb) SHA1(2fbf61f4ac2655a60b1fa82bb6d001f0ef8b4654) )
-
- ROM_REGION( 0x200000, "gfx2", 0 )
- ROM_LOAD( "d-14.5", 0x000000, 0x80000, CRC(2178996f) SHA1(04368384cb191b28b23199c8175e93271ab79103) )
- ROM_LOAD( "d-15.6", 0x080000, 0x80000, CRC(6629239e) SHA1(5f462c04eb11c2b662236fd65bbf74fa08038eec) )
- ROM_LOAD( "d-18.9", 0x100000, 0x80000, CRC(0210507a) SHA1(5b7348bf253b1ae8bfa86cdee2ff80aa2b3faa79) )
- ROM_LOAD( "d-19.10", 0x180000, 0x80000, CRC(d27375d5) SHA1(2a39ce9b985e00a290c3ea75be3b1edbc00d39ec) )
-
- ROM_REGION( 0x040000, "oki", 0 ) /* Samples */
- ROM_LOAD( "d-11.u14", 0x00000, 0x40000, CRC(f3ee4861) SHA1(f24f1f855ae6c96a6d84a4b5e5c196df8f922d0a) )
-ROM_END
-
-/*
-
-+--------------------------------+
-| Z80A |
-|GL324 6116 ua4|
-|M6295 uh15 HY6264 ua5|
-|J sra HY6264 ua6|
-|A srb 84256 |
-|M 84256 |
-|M 84256 CY7C384A |
-|A 84256 |
-| SWA1 uh12 |
-| 68000 84256 |
-| SWA2 ui12 12MHz 16MHz |
-+--------------------------------+
-
-Produttore: Barko
-N.revisione: S16K951102
-CPU
-1x 68000 (main)
-1x Z8400B (sound)
-1x OKI M6295 (sound)
-1x GL324 (sound)
-1x CY7C384A
-1x oscillator 12.000MHz
-1x oscillator 16.000MHz
-
-ROMs
-
-1x 27256 (uh15)
-2x M27C2001 (sra,srb)
-1x AM27C010 (12)
-1x D27C010 (13)
-1x M27C4001 (14)
-1x AT27C040 (15)
-1x TMS27C040 (16)
-
-6x HY18CV8S (read protected)
-
-*/
-
-ROM_START( twinadv )
- ROM_REGION( 0x40000, "maincpu", 0 )
- ROM_LOAD16_BYTE( "13.uh12", 0x00001, 0x20000, CRC(9f70a39b) SHA1(d49823be58b00c4c5a4f6cc4e4371531492aff1e) )
- ROM_LOAD16_BYTE( "12.ui12", 0x00000, 0x20000, CRC(d8776495) SHA1(15b93ded80bf9f240faef2d89b6076f33f1f4ece) )
-
- ROM_REGION( 0x10000, "soundcpu", 0 ) /* 64k for z80 sound code */
- ROM_LOAD( "uh15.bin", 0x0000, 0x8000, CRC(3d5acd08) SHA1(c19f686862dfc12d2fa91c2dd3d3b75d9cb410c3) )
-
- ROM_REGION( 0x180000, "gfx1", 0 ) /* 4bpp gfx */
- ROM_LOAD( "16.ua4", 0x000000, 0x80000, CRC(f491e171) SHA1(f31b945b0c4b30d1b3dc6c5928b77aad4e956bc7) )
- ROM_LOAD( "15.ua5", 0x080000, 0x80000, CRC(79a08b8d) SHA1(034c0a3b9e27ac174092d265b32fb82d6ee45d47) )
- ROM_LOAD( "14.ua6", 0x100000, 0x80000, CRC(79faee0b) SHA1(7421a5fa038d01658ba5ac1f65ea87b97ac25c36) )
-
- ROM_REGION( 0x080000, "oki", 0 ) /* Samples - both banks are almost the same */
- /* todo, check bank ordering .. */
- ROM_LOAD( "sra.bin", 0x00000, 0x40000, CRC(82f452c4) SHA1(95ad6ede87ceafb045ed7df40496baf96190b97f) ) // bank 1
- ROM_LOAD( "srb.bin", 0x40000, 0x40000, CRC(109e51e6) SHA1(3344c68d63bbad4a02b47143b2d2f72ce9bcb4bb) ) // bank 2
-ROM_END
-
-ROM_START( twinadvk )
- ROM_REGION( 0x40000, "maincpu", 0 )
- ROM_LOAD16_BYTE( "uh12", 0x00001, 0x20000, CRC(e0bcc738) SHA1(7fc6a793fcdd80122c0ac6409ae4cac5597b7b5a) )
- ROM_LOAD16_BYTE( "ui12", 0x00000, 0x20000, CRC(a3ee6451) SHA1(9c0b415a2f325513739f2047780c2a56df350aa5) )
-
- ROM_REGION( 0x10000, "soundcpu", 0 ) /* 64k for z80 sound code */
- ROM_LOAD( "uh15.bin", 0x0000, 0x8000, CRC(3d5acd08) SHA1(c19f686862dfc12d2fa91c2dd3d3b75d9cb410c3) )
-
- ROM_REGION( 0x180000, "gfx1", 0 ) /* 4bpp gfx */
- ROM_LOAD( "ua4", 0x000000, 0x80000, CRC(a5aff49b) SHA1(ee162281ba643729ee007f9634c21fadd3c1cb48) )
- ROM_LOAD( "ua5", 0x080000, 0x80000, CRC(f83b3b97) SHA1(2e967d49ef411d164a0b6cf32444f60fcd8068a9) )
- ROM_LOAD( "ua6", 0x100000, 0x80000, CRC(4dfcffb9) SHA1(c157e031acbb321b9435389f9fc4e1ffebca106d) )
-
- ROM_REGION( 0x080000, "oki", 0 ) /* Samples - both banks are almost the same */
- /* todo, check bank ordering .. */
- ROM_LOAD( "sra.bin", 0x00000, 0x40000, CRC(82f452c4) SHA1(95ad6ede87ceafb045ed7df40496baf96190b97f) ) // bank 1
- ROM_LOAD( "srb.bin", 0x40000, 0x40000, CRC(109e51e6) SHA1(3344c68d63bbad4a02b47143b2d2f72ce9bcb4bb) ) // bank 2
-ROM_END
-
-ROM_START( multi96 )
- ROM_REGION( 0x40000, "maincpu", 0 )
- ROM_LOAD16_BYTE( "uh12", 0x00001, 0x20000, CRC(e912ea4e) SHA1(cf0b37d6b6fbdd311ef7b404c4ba2c6a7e1f8486) ) // sldh
- ROM_LOAD16_BYTE( "ui12", 0x00000, 0x20000, CRC(ac99e837) SHA1(20bc1599f78a4eac65cae54350872fa292daa807) ) // sldh
-
- ROM_REGION( 0x10000, "soundcpu", 0 ) /* 64k for z80 sound code */
- ROM_LOAD( "uh15.bin", 0x0000, 0x8000, CRC(3d5acd08) SHA1(c19f686862dfc12d2fa91c2dd3d3b75d9cb410c3) )
-
- ROM_REGION( 0x180000, "gfx1", 0 ) /* 4bpp gfx */
- ROM_LOAD( "ua4", 0x000000, 0x80000, CRC(66cae586) SHA1(22af524b26241a6456b777a847db73ff8d3db11f) ) // sldh
- ROM_LOAD( "ua5", 0x080000, 0x80000, CRC(0bd9f6bb) SHA1(400ddff7a76860caacfe8bfd803f9ccd2dba3356) ) // sldh
- ROM_LOAD( "ua6", 0x100000, 0x80000, CRC(0e90b26c) SHA1(fd9b40988d03db8ed797abf859a8828bb65db8d5) ) // sldh
-
- ROM_REGION( 0x080000, "oki", 0 ) /* Samples - both banks are almost the same */
- /* todo, check bank ordering .. */
- ROM_LOAD( "sra.bin", 0x00000, 0x40000, CRC(82f452c4) SHA1(95ad6ede87ceafb045ed7df40496baf96190b97f) ) // bank 1
- ROM_LOAD( "srb.bin", 0x40000, 0x40000, CRC(109e51e6) SHA1(3344c68d63bbad4a02b47143b2d2f72ce9bcb4bb) ) // bank 2
-ROM_END
-
-/* SemiCom Games */
-
-ROM_START( hyperpac )
- ROM_REGION( 0x100000, "maincpu", 0 ) /* 68000 Code */
- ROM_LOAD16_BYTE( "hyperpac.h12", 0x00001, 0x20000, CRC(2cf0531a) SHA1(c4321d728845035507352d0bcf4348d28b92e85e) )
- ROM_LOAD16_BYTE( "hyperpac.i12", 0x00000, 0x20000, CRC(9c7d85b8) SHA1(432d5fbe8bef875ce4a9aeb74a7b57dc79c709fd) )
-
- ROM_REGION( 0x10000, "soundcpu", 0 ) /* Z80 Code */
- ROM_LOAD( "hyperpac.u1", 0x00000, 0x10000 , CRC(03faf88e) SHA1(a8da883d4b765b809452bbffca37ff224edbe86d) )
-
- ROM_REGION( 0x2000, "protection", 0 ) /* Intel 87C52 MCU Code */
- ROM_LOAD( "at89c52.bin", 0x0000, 0x2000 , CRC(291f9326) SHA1(e440ce7d92188faa86e02e7f9db4ec6bce21efd3) ) /* decapped */
-
- ROM_REGION( 0x040000, "oki", 0 ) /* Samples */
- ROM_LOAD( "hyperpac.j15", 0x00000, 0x40000, CRC(fb9f468d) SHA1(52857b1a04c64ac853340ebb8e92d98eabea8bc1) )
-
- ROM_REGION( 0x0c0000, "gfx1", 0 ) /* Sprites */
- ROM_LOAD( "hyperpac.a4", 0x000000, 0x40000, CRC(bd8673da) SHA1(8466355894da4d2c9a54d03a833cc9b4ec0c67eb) )
- ROM_LOAD( "hyperpac.a5", 0x040000, 0x40000, CRC(5d90cd82) SHA1(56be68478a81bb4e1011990da83334929a0ac886) )
- ROM_LOAD( "hyperpac.a6", 0x080000, 0x40000, CRC(61d86e63) SHA1(974c634607993924fa098eff106b1b288bec1e26) )
-ROM_END
-
-ROM_START( hyperpacb )
- ROM_REGION( 0x100000, "maincpu", 0 ) /* 68000 Code */
- ROM_LOAD16_BYTE( "hpacuh12.bin", 0x00001, 0x20000, CRC(633ab2c6) SHA1(534435fa602adebf651e1d42f7c96b01eb6634ef) )
- ROM_LOAD16_BYTE( "hpacui12.bin", 0x00000, 0x20000, CRC(23dc00d1) SHA1(8d4d00f450b94912adcbb24073f9b3b01eab0450) )
-
- ROM_REGION( 0x10000, "soundcpu", 0 ) /* Z80 Code */
- ROM_LOAD( "hyperpac.u1", 0x00000, 0x10000 , CRC(03faf88e) SHA1(a8da883d4b765b809452bbffca37ff224edbe86d) ) // was missing from this set, using the one from the original
-
- ROM_REGION( 0x040000, "oki", 0 ) /* Samples */
- ROM_LOAD( "hyperpac.j15", 0x00000, 0x40000, CRC(fb9f468d) SHA1(52857b1a04c64ac853340ebb8e92d98eabea8bc1) )
-
- ROM_REGION( 0x0c0000, "gfx1", 0 ) /* Sprites */
- ROM_LOAD( "hyperpac.a4", 0x000000, 0x40000, CRC(bd8673da) SHA1(8466355894da4d2c9a54d03a833cc9b4ec0c67eb) )
- ROM_LOAD( "hyperpac.a5", 0x040000, 0x40000, CRC(5d90cd82) SHA1(56be68478a81bb4e1011990da83334929a0ac886) )
- ROM_LOAD( "hyperpac.a6", 0x080000, 0x40000, CRC(61d86e63) SHA1(974c634607993924fa098eff106b1b288bec1e26) )
-ROM_END
-
-ROM_START( twinkle )
- ROM_REGION( 0x100000, "maincpu", 0 ) /* 68000 Code */
- ROM_LOAD16_BYTE( "uh12.bin", 0x00001, 0x20000, CRC(a99626fe) SHA1(489098a2ceb36df97b6b1d59b7b696300deee3ab) )
- ROM_LOAD16_BYTE( "ui12.bin", 0x00000, 0x20000, CRC(5af73684) SHA1(9be43e5c71152d515366e422eb077a41dbb3fe62) )
-
- ROM_REGION( 0x10000, "soundcpu", 0 ) /* Z80 Code */
- ROM_LOAD( "u1.bin", 0x00000, 0x10000 , CRC(e40481da) SHA1(1c1fabcb67693235eaa6ff59ae12a35854b5564a) )
-
- ROM_REGION( 0x10000, "cpu2", 0 ) /* Intel 87C52 MCU Code */
- ROM_LOAD( "87c52.mcu", 0x00000, 0x10000 , NO_DUMP ) /* can't be dumped */
-
- ROM_REGION16_BE( 0x200, "user1", 0 ) /* Data from Shared RAM */
- /* this is not a real rom but instead the data extracted from
- shared ram, the MCU puts it there */
- ROM_LOAD16_WORD( "protdata.bin", 0x00000, 0x200, CRC(00d3e4b4) SHA1(afa359a8b48605ff034133bad2a0a182429dec71) )
-
- ROM_REGION( 0x040000, "oki", 0 ) /* Samples */
- ROM_LOAD( "uj15.bin", 0x00000, 0x40000, CRC(0a534b37) SHA1(b7d780eb4668f1f757a60884c022f5bbc424dc97) )
-
- ROM_REGION( 0x080000, "gfx1", 0 ) /* Sprites */
- ROM_LOAD( "ua4.bin", 0x000000, 0x80000, CRC(6b64bb09) SHA1(547eac1ad931a6b937dff0b922d06af92cc7ab73) )
-ROM_END
-
-ROM_START( twinklea )
- ROM_REGION( 0x100000, "maincpu", 0 )
- ROM_LOAD16_BYTE( "uh12.bin", 0x00001, 0x20000, CRC(6cc6e53c) SHA1(26584d2b99878230a33c1c2c8d71e758b0c09cac) ) // sldh
- ROM_LOAD16_BYTE( "ui12.bin", 0x00000, 0x20000, CRC(79420382) SHA1(13183d819f5b7699e8e0974c193796151a0a9617) ) // sldh
-
- ROM_REGION( 0x10000, "soundcpu", 0 )
- ROM_LOAD( "u1.bin", 0x00000, 0x10000 , CRC(e40481da) SHA1(1c1fabcb67693235eaa6ff59ae12a35854b5564a) )
-
- ROM_REGION( 0x10000, "cpu2", 0 ) // Intel 87C52 MCU Code
- ROM_LOAD( "87c52.mcu", 0x00000, 0x10000 , NO_DUMP ) // needs decapping
-
- ROM_REGION16_BE( 0x200, "user1", 0 ) // Data from Shared RAM
- // this is not a real rom but instead the data extracted from shared ram, the MCU puts it there
- ROM_LOAD16_WORD( "protdata.bin", 0x00000, 0x200, BAD_DUMP CRC(00d3e4b4) SHA1(afa359a8b48605ff034133bad2a0a182429dec71) ) // this has been extracted for the parent set, seems to work for this set, too
-
- ROM_REGION( 0x040000, "oki", 0 )
- ROM_LOAD( "uj15.bin", 0x00000, 0x40000, CRC(0a534b37) SHA1(b7d780eb4668f1f757a60884c022f5bbc424dc97) )
-
- ROM_REGION( 0x080000, "gfx1", 0 ) // Sprites
- ROM_LOAD( "ua4.bin", 0x000000, 0x80000, CRC(6b64bb09) SHA1(547eac1ad931a6b937dff0b922d06af92cc7ab73) )
-ROM_END
-
-ROM_START( pzlbreak )
- ROM_REGION( 0x100000, "maincpu", 0 ) /* 68000 Code */
- ROM_LOAD16_BYTE( "4.uh12", 0x00001, 0x20000, CRC(b3f04f80) SHA1(79b5414727004719ff172e084a672b21e955f0bc) )
- ROM_LOAD16_BYTE( "5.ui12", 0x00000, 0x20000, CRC(13c298a0) SHA1(9455de7ea45c9a61ed6105023eb909c086c44007) )
-
- ROM_REGION( 0x10000, "soundcpu", 0 ) /* Z80 Code */
- ROM_LOAD( "0.u1", 0x00000, 0x10000 , CRC(1ad646b7) SHA1(0132baa097e48df2450afdcd316375dc546ea4d0) )
-
- ROM_REGION( 0x10000, "cpu2", 0 ) /* Intel 87C52 MCU Code */
- ROM_LOAD( "87c52.mcu", 0x00000, 0x10000 , NO_DUMP ) /* can't be dumped */
-
- ROM_REGION16_BE( 0x200, "user1", ROMREGION_ERASEFF ) /* Data from Shared RAM */
- /* this is not a real rom but instead the data extracted from
- shared ram, the MCU puts it there */
- ROM_LOAD16_WORD( "protdata.bin", 0x00000, 0x200, CRC(092cb794) SHA1(eb2b336d97b440453ca37ee7605654b35dfb6bad) )
-
- ROM_REGION( 0x040000, "oki", 0 ) /* Samples */
- ROM_LOAD( "1.uj15", 0x00000, 0x40000, CRC(dbfae77c) SHA1(cc509d52cd9c608fc80df799890e62e7b4c143c6) )
-
- ROM_REGION( 0x100000, "gfx1", 0 ) /* Sprites */
- ROM_LOAD( "2.ua4", 0x000000, 0x80000, CRC(d211705a) SHA1(b3a7f8198dc8c034b17b843b2ab0298426de3f55) )
- ROM_LOAD( "3.ua5", 0x080000, 0x80000, CRC(6cdb73e9) SHA1(649e91ee54de2b359a207bed4d950db95515a3d8) )
-ROM_END
-
-ROM_START( pzlbreaka )
- ROM_REGION( 0x100000, "maincpu", 0 )
- ROM_LOAD16_BYTE( "uh12", 0x00001, 0x20000, CRC(c8a82ca8) SHA1(ee19c253af9c7c8a33435d9d2494c50f16033572) )
- ROM_LOAD16_BYTE( "ui12", 0x00000, 0x20000, CRC(2f66c4ce) SHA1(4349f093ce1267c2ebcbf1233082661604f10851) )
-
- ROM_REGION( 0x10000, "soundcpu", 0 )
- ROM_LOAD( "u1", 0x00000, 0x10000 , CRC(1ad646b7) SHA1(0132baa097e48df2450afdcd316375dc546ea4d0) )
-
- ROM_REGION( 0x10000, "cpu2", 0 ) // Intel 87C52 MCU Code
- ROM_LOAD( "87c52.mcu", 0x00000, 0x10000 , NO_DUMP )
-
- ROM_REGION16_BE( 0x200, "user1", ROMREGION_ERASEFF ) // Data from Shared RAM
- // this is not a real rom but instead the data extracted from shared ram, the MCU puts it there
- ROM_LOAD16_WORD( "protdata.bin", 0x00000, 0x200, BAD_DUMP CRC(092cb794) SHA1(eb2b336d97b440453ca37ee7605654b35dfb6bad) ) // extracted from the parent set, so marked as bad
-
- ROM_REGION( 0x040000, "oki", 0 )
- ROM_LOAD( "uj15", 0x00000, 0x20000, CRC(5cdffcc5) SHA1(793a20bd0480cfea0dbf9397797428f6d105f724) ) // 1xxxxxxxxxxxxxxxx = 0xFF and half sized compared to the parent
-
- ROM_REGION( 0x100000, "gfx1", 0 )
- ROM_LOAD( "ua4", 0x000000, 0x80000, CRC(d211705a) SHA1(b3a7f8198dc8c034b17b843b2ab0298426de3f55) )
- ROM_LOAD( "ua5", 0x080000, 0x80000, CRC(eb3044bc) SHA1(c00e7b112b82c8eeb59c2a96168ea5156347f05e) ) // some differences compared to the parent
-ROM_END
-
-
-ROM_START( toppyrap )
- ROM_REGION( 0x100000, "maincpu", 0 ) /* 68000 Code */
- ROM_LOAD16_BYTE( "uh12.bin", 0x00001, 0x40000, CRC(6f5ad699) SHA1(42f7201d6274ff8338a7d4627af99001f473e841) )
- ROM_LOAD16_BYTE( "ui12.bin", 0x00000, 0x40000, CRC(caf5a7e1) SHA1(b521b2f06a804a52dad1b07657db2a29e1411844) )
-
- ROM_REGION( 0x10000, "soundcpu", 0 ) /* Z80 Code */
- ROM_LOAD( "u1.bin", 0x00000, 0x10000 , CRC(07f50947) SHA1(83740655ab5f677bd009191bb0de60e237aaa11c) )
-
- ROM_REGION( 0x10000, "cpu2", 0 ) /* Intel 87C52 MCU Code */
- ROM_LOAD( "87c52.mcu", 0x00000, 0x10000 , NO_DUMP ) /* can't be dumped */
-
- ROM_REGION16_BE( 0x200, "user1", 0 ) /* Data from Shared RAM */
- /* this contains the code for 2 of the IRQ functions, but the game only uses one of them, the other is
- executed from ROM. The version in ROM is slightly patched version so maybe there is an earlier revision
- which uses the code provided by the MCU instead */
- ROM_LOAD16_WORD( "protdata.bin", 0x00000, 0x200, CRC(0704e6c7) SHA1(22387257db569990378c304af9677e6dc1436207) )
-
- ROM_REGION( 0x040000, "oki", 0 ) /* Samples */
- ROM_LOAD( "uj15.bin", 0x00000, 0x20000, CRC(a3bacfd7) SHA1(d015d8bd26d0189fc13d09fefcb9b8baaaacec8a) )
-
- ROM_REGION( 0x200000, "gfx1", 0 ) /* Sprites */
- ROM_LOAD( "ua4.bin", 0x000000, 0x80000, CRC(a9577bcf) SHA1(9918d982ebee1c88bd203fa2b3ce2468c160fb95) )
- ROM_LOAD( "ua5.bin", 0x080000, 0x80000, CRC(7179d32d) SHA1(dae7126401b5bb7f99689587e05a8bf5033ec06e) )
- ROM_LOAD( "ua6.bin", 0x100000, 0x80000, CRC(4834e5b1) SHA1(cd8a4c329b2bfe1a9c2dea9d72ca09b71366c60a) )
- ROM_LOAD( "ua7.bin", 0x180000, 0x80000, CRC(663dd099) SHA1(84b52af54ac49e8b4bae23995e3cf94494be2bb3) )
-ROM_END
-
-ROM_START( moremore )
- ROM_REGION( 0x100000, "maincpu", 0 ) /* 68000 Code */
- ROM_LOAD16_BYTE( "u52.bin", 0x00001, 0x40000, CRC(cea4b246) SHA1(5febcb5dda6581caccfe9079b28c2366dfc1db2b) )
- ROM_LOAD16_BYTE( "u74.bin", 0x00000, 0x40000, CRC(2acdcb88) SHA1(74d661d07752bbccab7eab151209a414e9bf7675) )
-
- ROM_REGION( 0x10000, "soundcpu", 0 ) /* Z80 Code */
- ROM_LOAD( "u35.bin", 0x00000, 0x10000 , CRC(92dc95fc) SHA1(f04e63cc680835458246989532faf5657e28db13) )
-
- ROM_REGION( 0x10000, "cpu2", 0 ) /* Intel 87C52 MCU Code */
- ROM_LOAD( "87c52.mcu", 0x00000, 0x10000 , NO_DUMP ) /* can't be dumped */
-
- ROM_REGION16_BE( 0x200, "user1", 0 ) /* Data from Shared RAM */
- /* this is not a real rom but instead the data extracted from
- shared ram, the MCU puts it there */
- ROM_LOAD16_WORD( "protdata.bin", 0x00000, 0x200 , CRC(782dd2aa) SHA1(2587734271e0c85cb76bcdee171366c4e6fc9f81) )
-
- ROM_REGION( 0x040000, "oki", 0 ) /* Samples */
- ROM_LOAD( "u14.bin", 0x00000, 0x40000, CRC(90580088) SHA1(c64de2c0db95ab4ce06fc0a29c0cc8b7f3deeb28) )
-
- ROM_REGION( 0x200000, "gfx1", 0 ) /* Sprites */
- ROM_LOAD( "u75.bin", 0x000000, 0x80000, CRC(d671815c) SHA1(a7e8d3bf688ce51b5d9a2b306cc557974328c322) )
- ROM_LOAD( "u76.bin", 0x080000, 0x80000, CRC(e0d479e8) SHA1(454b53949664aca07a86229d3b6c9ce4e9449ea6) )
- ROM_LOAD( "u77.bin", 0x100000, 0x80000, CRC(60a281da) SHA1(3f268f8b1cd8efd3e32d0fcdba5483c93122800e) )
- ROM_LOAD( "u78.bin", 0x180000, 0x80000, CRC(e2723b4e) SHA1(6b4ba1e2e937b3231d76526af3f5a4a67144e4d5) )
-ROM_END
-
-ROM_START( moremorp )
- ROM_REGION( 0x100000, "maincpu", 0 ) /* 68000 Code */
- ROM_LOAD16_BYTE( "mmp_u52.bin", 0x00001, 0x40000, CRC(66baf9b2) SHA1(f1d383a94ef4313cb02c59ace17b9562eddcfb3c) )
- ROM_LOAD16_BYTE( "mmp_u74.bin", 0x00000, 0x40000, CRC(7c6fede5) SHA1(41bc539a6efe9eb2304243701857b972d2170bcf) )
-
- ROM_REGION( 0x10000, "soundcpu", 0 ) /* Z80 Code */
- ROM_LOAD( "mmp_u35.bin", 0x00000, 0x10000 , CRC(4d098cad) SHA1(a79d417e7525a25dd6697da9f3d1de269e759d2e) )
-
- ROM_REGION( 0x10000, "cpu2", 0 ) /* Intel 87C52 MCU Code */
- ROM_LOAD( "87c52.mcu", 0x00000, 0x10000 , NO_DUMP ) /* can't be dumped */
-
- ROM_REGION16_BE( 0x200, "user1", 0 ) /* Data from Shared RAM */
- /* this is not a real rom but instead the data extracted from
- shared ram, the MCU puts it there */
- ROM_LOAD16_WORD( "protdata.bin", 0x00000, 0x200 , CRC(782dd2aa) SHA1(2587734271e0c85cb76bcdee171366c4e6fc9f81) )
-
- ROM_REGION( 0x040000, "oki", 0 ) /* Samples */
- ROM_LOAD( "mmp_u14.bin", 0x00000, 0x40000, CRC(211a2566) SHA1(48138547822a8e76c101dd4189d581f80eee1e24) )
-
- ROM_REGION( 0x200000, "gfx1", 0 ) /* Sprites */
- ROM_LOAD( "mmp_u75.bin", 0x000000, 0x80000, CRC(af9e824e) SHA1(2b68813bf025a34b8958033108e4f8d39fd618cb) )
- ROM_LOAD( "mmp_u76.bin", 0x080000, 0x80000, CRC(c42af064) SHA1(f9d755e7cb52828d8594f7871932daf11443689f) )
- ROM_LOAD( "mmp_u77.bin", 0x100000, 0x80000, CRC(1d7396e1) SHA1(bde7e925051408dd2371b5da8235a6a4cae8cf6a) )
- ROM_LOAD( "mmp_u78.bin", 0x180000, 0x80000, CRC(5508d80b) SHA1(1b9a70a502b237fa11d1d55dce761e2def18873a) )
-ROM_END
-
-ROM_START( 3in1semi ) /* SemiCom Ser-4331-4 PCB */
- ROM_REGION( 0x100000, "maincpu", 0 ) /* 68000 Code */
- ROM_LOAD16_BYTE( "u52", 0x00001, 0x40000, CRC(b0e4a0f7) SHA1(e1f8b8ef020a85fcd7817814cf6c5d560e9e608d) )
- ROM_LOAD16_BYTE( "u74", 0x00000, 0x40000, CRC(266862c4) SHA1(2c5c513fee99bdb6e0ae3e0e644e516bdaddd629) )
-
- ROM_REGION( 0x10000, "soundcpu", 0 ) /* Z80 Code */
- ROM_LOAD( "u35", 0x00000, 0x10000 , CRC(e40481da) SHA1(1c1fabcb67693235eaa6ff59ae12a35854b5564a) )
-
- ROM_REGION( 0x10000, "cpu2", 0 ) /* Intel 87C52 MCU Code */
- ROM_LOAD( "87c52.mcu", 0x00000, 0x10000 , NO_DUMP ) /* can't be dumped */
-
- ROM_REGION16_BE( 0x200, "user1", 0 ) /* Data from Shared RAM */
- /* this is not a real rom but instead the data extracted from
- shared ram, the MCU puts it there */
- ROM_LOAD16_WORD( "protdata.bin", 0x00000, 0x200 , CRC(85deba7c) SHA1(44c6d9306b4f8e47182f4740a18971c49a8df8db) )
-
- ROM_REGION( 0x040000, "oki", 0 ) /* Samples */
- ROM_LOAD( "u14", 0x00000, 0x40000, CRC(c83c11be) SHA1(c05d96d61e5b8245232c85cbbcb7cc1e4e066492) )
-
- ROM_REGION( 0x200000, "gfx1", 0 ) /* Sprites */
- ROM_LOAD( "u75", 0x000000, 0x80000, CRC(b66a0db6) SHA1(a4e604eb3c0a5b16b4b0bb99219045bf2146287c) )
- ROM_LOAD( "u76", 0x080000, 0x80000, CRC(5f4b48ea) SHA1(e9dd1100d55b021b060990988c1e5271ce1ae35b) )
- ROM_LOAD( "u77", 0x100000, 0x80000, CRC(d44211e3) SHA1(53af19dec03e76912632450414cdbcbb31cc094c) )
- ROM_LOAD( "u78", 0x180000, 0x80000, CRC(af596afc) SHA1(875d7a51ff5c741cae4483d8da33df9cae8de52a) )
-ROM_END
-
-/*
-
-Ma Cheon Ru
-SemiCom (c) 1999
-
-PCB: Ser-4331-4
-
- CPU: 68000, Z80
-Sound: OKIM6295, YM2151+YM3012 (rebadged as KA51+BS902)
-Video: QuickLogic QL2003-XPL84C
- OSC: 16MHz, 12MHz
-
-Measurements:
- 68000 12MHz
- Z80 4MHz (16MHz/4)
- YM2151 4MHz (16MHz/4)
-OKI 6295 1MHz (16MHz/16, pin 7 High)
-*/
-
-ROM_START( mcheonru ) /* SemiCom Ser-4331-4 PCB */
- ROM_REGION( 0x100000, "maincpu", 0 ) /* 68000 Code */
- ROM_LOAD16_BYTE( "u52", 0x00001, 0x40000, CRC(63fd8a9b) SHA1(53054d8072322842c32625ab38e7d62dc0e75627) )
- ROM_LOAD16_BYTE( "u74", 0x00000, 0x40000, CRC(3edb17ce) SHA1(0c6ea239f57eca114d75c173b77b2c8ef43d63a2) )
-
- ROM_REGION( 0x10000, "soundcpu", 0 ) /* Z80 Code */
- ROM_LOAD( "u35", 0x00000, 0x10000 , CRC(79e965b4) SHA1(268df67ec6ea828ae01a6e4d2da9ad2a08a837f1) )
-
- ROM_REGION( 0x10000, "cpu2", 0 ) /* Intel 87C52 MCU Code */
- ROM_LOAD( "87c52.mcu", 0x00000, 0x10000 , NO_DUMP ) /* can't be dumped */
-
- ROM_REGION16_BE( 0x200, "user1", 0 ) /* Data from Shared RAM */
- /* this is not a real rom but instead the data extracted from
- shared ram, the MCU puts it there */
- ROM_LOAD( "protdata.bin", 0x00000, 0x200 , CRC(d61f4f07) SHA1(29485bce6e3a7ed2ace540bb81fe028456ae1ae9) )
-
- ROM_REGION( 0x040000, "oki", 0 ) /* Samples */
- ROM_LOAD( "u14", 0x00000, 0x40000, CRC(28a62d23) SHA1(24dbe6229647032599e02225de57650205dce5c3) )
-
- ROM_REGION( 0x200000, "gfx1", 0 ) /* Sprites */
- ROM_LOAD( "u75", 0x000000, 0x80000, CRC(0142c085) SHA1(9d948a63e4edcdb7f5cef0d2d7f118e6cbf4779e) )
- ROM_LOAD( "u76", 0x080000, 0x80000, CRC(27fda507) SHA1(87820348470979da730956066d3c820faedbec13) )
- ROM_LOAD( "u77", 0x100000, 0x80000, CRC(4dfe0550) SHA1(9a227114765ea5327b64061e4b4e4d4f19bd3293) )
- ROM_LOAD( "u78", 0x180000, 0x80000, CRC(f1b74978) SHA1(d1ac1bc212050d4f1a861045ab612115c73d3fd0) )
-ROM_END
-
-/*
-
-Cookie & Bibi 2
-SemiCom (c) 1996
-
- CPU: MC68000P10, Z8400B Z80
-Sound: OKIM6295, YM2151+YM3012 (rebadged as AD-65, KA51+K-662)
-Video: Lattice pLSI 1032-60LJ (square 84 pin socketed)
- OSC: 16MHz, 12MHz
-*/
-
-ROM_START( cookbib2 )
- ROM_REGION( 0x100000, "maincpu", 0 ) /* 68000 Code */
- ROM_LOAD16_BYTE( "unico_02.uh12", 0x00001, 0x40000, CRC(b2909460) SHA1(2438638af870cfc105631d2b5e5a27a64ab5394d) ) // 27C020
- ROM_LOAD16_BYTE( "unico_01.ui12", 0x00000, 0x40000, CRC(65aafde2) SHA1(01f9f261527c35182f0445d641d987aa86ad750f) ) // 27C020
-
- ROM_REGION( 0x10000, "soundcpu", 0 ) /* Z80 Code */
- ROM_LOAD( "unico_07.u1", 0x00000, 0x10000 , CRC(f59f1c9a) SHA1(2830261fd55249e015514fcb4cf8392e83b7fd0d) ) // 27C512
-
- ROM_REGION( 0x2000, "protection", 0 ) /* P87C52EBPN (XSC6407A) Code (8052) */
- ROM_LOAD( "p87c52ebpn.bin", 0x0000, 0x2000 , CRC(ef042cef) SHA1(3089d5a3cb5ed663a8d89d59e427a06cffcd6219) ) /* dumped via laser glitching */
-
- ROM_REGION( 0x040000, "oki", 0 ) /* Samples */
- ROM_LOAD( "unico_06.uj15", 0x00000, 0x20000, CRC(5e6f76b8) SHA1(725800143dfeaa6093ed5fcc5b9f15678ae9e547) ) // 27C010
-
- ROM_REGION( 0x140000, "gfx1", 0 ) /* Sprites */
- ROM_LOAD( "unico_05.ua4", 0x000000, 0x80000, CRC(89fb38ce) SHA1(1b39dd9c2743916b8d8af590bd92fe4819c2454b) ) // 27C040
- ROM_LOAD( "unico_04.ua5", 0x080000, 0x80000, CRC(f240111f) SHA1(b2c3b6e3d916fc68e1fd258b1279b6c39e1f0108) ) // 27C040
- ROM_LOAD( "unico_03.ua6", 0x100000, 0x40000, CRC(e1604821) SHA1(bede6bdd8331128b9f2b229d718133470bf407c9) ) // 27C020
- /* UA7 is unpopulated */
-ROM_END
-
-ROM_START( cookbib2a )
- ROM_REGION( 0x100000, "maincpu", 0 ) /* 68000 Code */
- ROM_LOAD16_BYTE( "unico.uh12", 0x00001, 0x40000, CRC(19421631) SHA1(00dfc474cee7d21d4b6bdbae2eabcdfde3584307) ) // non descriptive UNICO label with no numbers
- ROM_LOAD16_BYTE( "unico.ui12", 0x00000, 0x40000, CRC(0d09ecf5) SHA1(16f787638041d38ee2567ca958ca4405324cf5fa) ) // both program ROMs are 27C020
-
- ROM_REGION( 0x10000, "soundcpu", 0 ) /* Z80 Code */
- ROM_LOAD( "unico_07.u1", 0x00000, 0x10000 , CRC(f59f1c9a) SHA1(2830261fd55249e015514fcb4cf8392e83b7fd0d) ) // 27C512
-
- ROM_REGION( 0x2000, "protection", 0 ) /* P87C52EBPN (XSC6407A) Code (8052) */
- ROM_LOAD( "p87c52ebpn.bin", 0x0000, 0x2000 , CRC(ef042cef) SHA1(3089d5a3cb5ed663a8d89d59e427a06cffcd6219) ) /* dumped via laser glitching */
-
- ROM_REGION( 0x040000, "oki", 0 ) /* Samples */
- ROM_LOAD( "unico_06.uj15", 0x00000, 0x20000, CRC(5e6f76b8) SHA1(725800143dfeaa6093ed5fcc5b9f15678ae9e547) ) // 27C010
-
- ROM_REGION( 0x140000, "gfx1", 0 ) /* Sprites */
- ROM_LOAD( "unico_05.ua4", 0x000000, 0x80000, CRC(89fb38ce) SHA1(1b39dd9c2743916b8d8af590bd92fe4819c2454b) ) // 27C040
- ROM_LOAD( "unico_04.ua5", 0x080000, 0x80000, CRC(f240111f) SHA1(b2c3b6e3d916fc68e1fd258b1279b6c39e1f0108) ) // 27C040
- ROM_LOAD( "unico_03.ua6", 0x100000, 0x40000, CRC(e1604821) SHA1(bede6bdd8331128b9f2b229d718133470bf407c9) ) // 27C020
- /* UA7 is unpopulated */
-ROM_END
-
-ROM_START( cookbib2b )
- ROM_REGION( 0x100000, "maincpu", 0 ) /* 68000 Code */
- ROM_LOAD16_BYTE( "uh12.020", 0x00001, 0x40000, CRC(a44ec1f8) SHA1(0c741bf38f5cf667586cd1925417b6e17dbb8916) )
- ROM_LOAD16_BYTE( "ui12.020", 0x00000, 0x40000, CRC(bdbcd0d1) SHA1(9a6a85a492c21f6dd5daef964071a8a1c62f73c8) )
-
- ROM_REGION( 0x10000, "soundcpu", 0 ) /* Z80 Code */
- ROM_LOAD( "u1.512", 0x00000, 0x10000 , CRC(f59f1c9a) SHA1(2830261fd55249e015514fcb4cf8392e83b7fd0d) )
-
- ROM_REGION( 0x2000, "protection", 0 ) /* P87C52EBPN (XSC6407A) Code (8052) */
- ROM_LOAD( "87c52.mcu", 0x0000, 0x2000 , NO_DUMP ) /* not dumped yet */
-
- ROM_REGION( 0x200, "user1", 0 ) /* Data from Shared RAM */
- /* this is not a real rom but instead the data extracted from
- shared ram, the MCU puts it there
-
- this one is hacked from the cookbib2 one, absolute code jump needed to be changed at least */
- ROM_LOAD16_WORD_SWAP( "protdata_alt.bin", 0x000, 0x200, BAD_DUMP CRC(bc136ead) SHA1(96459c2ccf7f95880421ba082c2414fa1040f3ed) )
-
- ROM_REGION( 0x040000, "oki", 0 ) /* Samples */
- ROM_LOAD( "uj15.010", 0x00000, 0x20000, CRC(5e6f76b8) SHA1(725800143dfeaa6093ed5fcc5b9f15678ae9e547) )
-
- ROM_REGION( 0x180000, "gfx1", 0 ) /* Sprites */
- ROM_LOAD( "ua4.040", 0x000000, 0x80000, CRC(f458d52e) SHA1(f6a145aaa57c64557479e63bb95732a98a7b8b85) )
- ROM_LOAD( "ua6.040", 0x080000, 0x80000, CRC(249e89b4) SHA1(2100eea2c3cee84a046ba7ff6cec1027966b895c) )
- ROM_LOAD( "ua8.040", 0x100000, 0x80000, CRC(caa25138) SHA1(784111255777f5774abf4d34c0a95b5e23a14c9f) )
-ROM_END
-
-ROM_START( cookbib3 )
- ROM_REGION( 0x100000, "maincpu", 0 ) /* 68000 Code */
- ROM_LOAD16_BYTE( "u52.bin", 0x00001, 0x40000, CRC(65134893) SHA1(b1f26794d1a85893aedf55adb2195ad244f90132) )
- ROM_LOAD16_BYTE( "u74.bin", 0x00000, 0x40000, CRC(c4ab8435) SHA1(7f97d3deafb3eb5412a44308ef20d3317405e94c) )
-
- ROM_REGION( 0x10000, "soundcpu", 0 ) /* Z80 Code */
- ROM_LOAD( "u35.bin", 0x0c000, 0x4000 , CRC(5dfd2a98) SHA1(193c0cd9272144c25cbc3660967424d34d0da185) ) /* bit strange but verified, not the first time SemiCom have done this, see bcstory.. */
- ROM_CONTINUE(0x8000,0x4000)
- ROM_CONTINUE(0x4000,0x4000)
- ROM_CONTINUE(0x0000,0x4000)
-
- ROM_REGION( 0x10000, "cpu2", 0 ) /* Intel 87C52 MCU Code */
- ROM_LOAD( "87c52.mcu", 0x00000, 0x10000 , NO_DUMP ) /* can't be dumped */
-
- ROM_REGION16_BE( 0x200, "user1", 0 ) /* Data from Shared RAM */
- /* this is not a real rom but instead the data extracted from
- shared ram, the MCU puts it there */
- ROM_LOAD16_WORD( "protdata.bin", 0x00000, 0x200 , CRC(c819b9a8) SHA1(1d425e8c9940c0e691149e5406dd71808bd73832) )
- /* the 'empty' pattern continued after 0x200 but the game doesn't use it or attempt to decrypt it */
-
- ROM_REGION( 0x040000, "oki", 0 ) /* Samples */
- ROM_LOAD( "u14.bin", 0x00000, 0x20000, CRC(e5bf9288) SHA1(12fb9542f9105fe1a21a74a08cda4d6372b984ee) )
-
- ROM_REGION( 0x180000, "gfx1", 0 ) /* Sprites */
- ROM_LOAD( "u75.bin", 0x000000, 0x80000, CRC(cbe4d9c8) SHA1(81b043bd2b45ab2a8c9df0ba599c6220ed0c9fbf) )
- ROM_LOAD( "u76.bin", 0x080000, 0x80000, CRC(1be17b57) SHA1(57b58cc094d6b47ed6136266f1d34b8bad3f421f) )
- ROM_LOAD( "u77.bin", 0x100000, 0x80000, CRC(7823600d) SHA1(90d431f324b71758c49f3a72ee07701ceb76403f) )
-ROM_END
-
-ROM_START( 4in1boot ) /* snow bros, tetris, hyperman 1, pacman 2 */
- ROM_REGION( 0x100000, "maincpu", 0 ) /* 68000 Code */
- ROM_LOAD16_BYTE( "u52", 0x00001, 0x80000, CRC(71815878) SHA1(e3868f5687c1d8ec817671c50ade6c56ee83bfa1) )
- ROM_LOAD16_BYTE( "u74", 0x00000, 0x80000, CRC(e22d3fa2) SHA1(020ab92d8cbf37a9f8186a81934abb97088c16f9) )
-
- ROM_REGION( 0x10000, "soundcpu", 0 ) /* Z80 Code */
- ROM_LOAD( "u35", 0x00000, 0x10000 , CRC(c894ac80) SHA1(ee896675b5205ab2dbd0cbb13db16aa145391d06) )
-
- ROM_REGION( 0x040000, "oki", 0 ) /* Samples */
- ROM_LOAD( "u14", 0x00000, 0x40000, CRC(94b09b0e) SHA1(414de3e36eff85126038e8ff74145b35076e0a43) )
-
- ROM_REGION( 0x200000, "gfx1", 0 ) /* Sprites */
- ROM_LOAD( "u78", 0x000000, 0x200000, CRC(6c1fbc9c) SHA1(067f32cae89fd4d57b90be659d2d648e557c11df) )
-ROM_END
-
-ROM_START( snowbro3 )
- ROM_REGION( 0x40000, "maincpu", 0 ) /* 68000 code */
- ROM_LOAD16_BYTE( "ur4", 0x00000, 0x20000, CRC(19c13ffd) SHA1(4f9db70354bd410b7bcafa96be4591de8dc33d90) )
- ROM_LOAD16_BYTE( "ur3", 0x00001, 0x20000, CRC(3f32fa15) SHA1(1402c173c1df142ff9dd7b859689c075813a50e5) )
-
- /* the sound is driven by an MCU */
- ROM_REGION( 0x10000, "cpu2", 0 )
- ROM_LOAD( "sound.mcu", 0x00000, 0x10000 , NO_DUMP )
-
- ROM_REGION( 0x80000, "gfx1", 0 )
- ROM_LOAD( "ua5", 0x000000, 0x80000, CRC(0604e385) SHA1(96acbc65a8db89a7be100f852dc07ba9a0313167) ) /* 16x16 tiles */
-
- ROM_REGION( 0x400000, "gfx2", 0 ) /* 16x16 BG Tiles */
- ROM_LOAD( "un7", 0x000000, 0x200000, CRC(4a79da4c) SHA1(59207d116d39b9ee25c51affe520f5fdff34e536) )
- ROM_LOAD( "un8", 0x200000, 0x200000, CRC(7a4561a4) SHA1(1dd823369c09368d1f0ec8e1cb85d700f10ff448) )
-
- ROM_REGION( 0x100000, "oki", 0 ) /* OKIM6295 samples */
- ROM_LOAD( "us5", 0x00000, 0x20000, CRC(7c6368ef) SHA1(53393c570c605f7582b61c630980041e2ed32e2d) )
- ROM_CONTINUE(0x80000,0x60000)
-ROM_END
-
-ROM_START( ballboy )
- ROM_REGION( 0x40000, "maincpu", 0 ) /* 68000 code */
- ROM_LOAD16_BYTE( "27c010.ur4", 0x00000, 0x20000, CRC(5fb51b99) SHA1(07e12a3bb51fbb3f192b81497460231c7b609290) )
- ROM_LOAD16_BYTE( "27c010.ur3", 0x00001, 0x20000, CRC(a9c1fdda) SHA1(efb7eaab993f99d89d3b9c159c3b8eb18ace9c2c) )
-
- /* the sound is driven by an MCU */
- ROM_REGION( 0x10000, "cpu2", 0 )
- ROM_LOAD( "sound.mcu", 0x00000, 0x10000 , NO_DUMP )
-
- ROM_REGION( 0x80000, "gfx1", 0 )
- ROM_LOAD( "27c040.ua5", 0x000000, 0x80000, CRC(0604e385) SHA1(96acbc65a8db89a7be100f852dc07ba9a0313167) ) /* 16x16 tiles */
-
- ROM_REGION( 0x400000, "gfx2", 0 ) /* 16x16 BG Tiles */
- ROM_LOAD( "27c160.un7", 0x000000, 0x200000, CRC(4a79da4c) SHA1(59207d116d39b9ee25c51affe520f5fdff34e536) )
- ROM_LOAD( "27c160.un8", 0x200000, 0x200000, CRC(bfef8c44) SHA1(86930cfcaedbd111d5b985e87a76d2211d2ce2ec) )
-
- ROM_REGION( 0x100000, "oki", 0 ) /* OKIM6295 samples */
- ROM_LOAD( "27c040.us5", 0x00000, 0x20000, CRC(7c6368ef) SHA1(53393c570c605f7582b61c630980041e2ed32e2d) )
- ROM_CONTINUE(0x80000,0x60000)
-ROM_END
-
-
-ROM_START( ballboy3p ) //PCB etched JOYCUS1B and 2001927
- ROM_REGION( 0x40000, "maincpu", 0 ) // 68000 code
- ROM_LOAD16_BYTE( "ur4", 0x00000, 0x20000, CRC(32153d8f) SHA1(1fa698b93507fb775dfff6da8701ab65c986cac5) )
- ROM_LOAD16_BYTE( "ur3", 0x00001, 0x20000, CRC(4d462a75) SHA1(30a84a618bea5c64201329d02847382c2d0c84ba) )
-
- // the sound is driven by an MCU
- ROM_REGION( 0x10000, "cpu2", 0 )
- ROM_LOAD( "sound.mcu", 0x00000, 0x10000 , NO_DUMP )
-
- ROM_REGION( 0x80000, "gfx1", 0 )
- ROM_LOAD( "ua5", 0x000000, 0x80000, CRC(fc72011f) SHA1(f1f10b34fd3365c6542299bd0224dad926d650b4) ) // 16x16 tiles
-
- ROM_REGION( 0x400000, "gfx2", 0 ) // 16x16 BG Tiles
- ROM_LOAD( "un7", 0x000000, 0x400000, CRC(fe427e9d) SHA1(6932ad18b6807af860f8430e2a00e959d6c36a23) )
-
- ROM_REGION( 0x100000, "oki", 0 ) // OKIM6295 samples
- ROM_LOAD( "us5", 0x00000, 0x20000, CRC(7c6368ef) SHA1(53393c570c605f7582b61c630980041e2ed32e2d) ) // only ROM identical to the 2 player version
- ROM_CONTINUE(0x80000,0x60000)
-ROM_END
-
-
-/*
-
-Information from Korean arcade gaming magazine
-
-name : Final Tetris
-author : Jeil computer system
-year : 1993.08.24
-
-*/
-
-ROM_START( finalttr )
- ROM_REGION( 0x100000, "maincpu", 0 ) /* 68000 Code */
- ROM_LOAD16_BYTE( "10.7o", 0x00000, 0x20000, CRC(eecc83e5) SHA1(48088a2fae8852a73a325a9659c24b241515eac3) )
- ROM_LOAD16_BYTE( "9.5o", 0x00001, 0x20000, CRC(58d3640e) SHA1(361bc64174a6c7b15a13e0d1f048c7ea270182ca) )
-
- ROM_REGION( 0x10000, "soundcpu", 0 ) /* Z80 Code */
- ROM_LOAD( "12.5r", 0x00000, 0x10000, CRC(4bc21361) SHA1(dab9bea665c0f2fd7cee8ab7f3762e427911bcca) )
-
- ROM_REGION( 0x10000, "cpu2", 0 ) /* Intel 87C52 MCU Code */
- ROM_LOAD( "87c52.mcu", 0x00000, 0x10000 , NO_DUMP ) /* can't be dumped */
-
- ROM_REGION( 0x200, "user1", 0 ) /* Data from Shared RAM */
- /* this is not a real rom but instead the data extracted from
- shared ram, the MCU puts it there */
- ROM_LOAD16_WORD_SWAP( "protdata.bin", 0x00000, 0x200 , CRC(d5bbb006) SHA1(2f9ce6c4f4f5a304a807134da9c85c68a7b49200) )
- /* after 0xc7 the data read seems meaningless garbage, it doesn't appear to
- stop at 0x102200, might be worth going back and checking if its simply random
- values due to ram not being cleared, or actual data */
-
- ROM_REGION( 0x040000, "oki", 0 ) /* Samples */
- ROM_LOAD( "11.7p", 0x00000, 0x20000, CRC(2e331022) SHA1(1e74c66d16eb9c8ae04acecbb4040dea037492cc) )
-
- ROM_REGION( 0x100000, "gfx1", 0 ) /* Sprites */
- ROM_LOAD( "5.1d", 0x00000, 0x40000, CRC(64a450f3) SHA1(d0560f68fe1527fda7852269ec39237ace66ab32) )
- ROM_LOAD( "6.1f", 0x40000, 0x40000, CRC(7281a3cc) SHA1(3f2ed7893bd7c5ff25ecb6eabce78ab66fe532a7) )
- ROM_LOAD( "7.1g", 0x80000, 0x40000, CRC(ec80f442) SHA1(870e44d28490a324f74af554604b9daa8422b86f) )
- ROM_LOAD( "9.1h", 0xc0000, 0x40000, CRC(2ebd316d) SHA1(2f1249ebd2a0bb0cc15259f7187201576a365fa6) )
-ROM_END
-
-
-
-ROM_START( suhosong )
- ROM_REGION( 0x100000, "maincpu", 0 ) /* 68000 Code */
- ROM_LOAD16_BYTE( "su_ho_sung.uh12", 0x00001, 0x20000, CRC(6bd8bd08) SHA1(668398c9c77cc4cc52858daefd3cb13fbaf29a37) )
- ROM_LOAD16_BYTE( "su_ho_sung.ui12", 0x00000, 0x20000, CRC(79a4806e) SHA1(a4080ea70fa588ada384ffa9877f5cf965fb68df) )
-
-
- ROM_REGION( 0x10000, "soundcpu", 0 ) /* Z80 Code */
- ROM_LOAD( "su_ho_sung.u1", 0x00000, 0x10000 , CRC(509ce74e) SHA1(a93add5ab674671078b55128281dcf9b0db46617) )
-
- ROM_REGION( 0x10000, "cpu2", 0 ) /* Intel 87C52 MCU Code */
- ROM_LOAD( "87c52.mcu", 0x00000, 0x10000 , NO_DUMP ) /* can't be dumped */
-
- ROM_REGION16_BE( 0x200, "user1", ROMREGION_ERASE00 ) /* Data from Shared RAM */
- ROM_LOAD16_WORD( "protdata.bin", 0x000, 0x200 , CRC(4478e251) SHA1(08489d6bfe5503c8eb62909e56a07193a922b4c1) )
-
- ROM_REGION( 0x040000, "oki", 0 ) /* Samples */
- ROM_LOAD( "su_ho_sung.uj15", 0x00000, 0x40000, CRC(266fcae8) SHA1(0f15f880bde0c12b5c663ed387f9353c13b731b6) )
-
- ROM_REGION( 0x180000, "gfx1", 0 ) /* Sprites */
- ROM_LOAD( "su_ho_sung.ua4", 0x000000, 0x80000, CRC(bc83a944) SHA1(fbd46648107c66f328b0a61c74b6b82c718e6f4b) )
- ROM_LOAD( "su_ho_sung.ua5", 0x080000, 0x80000, CRC(a1907ea4) SHA1(e21c29d12e50cce1434dbaff0929c207bfd33344) )
- ROM_LOAD( "su_ho_sung.ua6", 0x100000, 0x80000, CRC(92fea02c) SHA1(946c7bf55354875a1581ce484cb185b640f74166) )
-ROM_END
-
-
-ROM_START( yutnori )
- ROM_REGION( 0x80000, "maincpu", 0 ) /* 68000 code */
- ROM_LOAD16_BYTE( "sys_d0-d7", 0x000001, 0x20000, CRC(d5c853da) SHA1(578f29c3a307f82fcaa23a7fe2931c0a673e777e) )
- ROM_LOAD16_BYTE( "sys_d8-d15", 0x000000, 0x20000, CRC(bf108119) SHA1(e64f64ddb577d6750cbc3a6c9d8d2ec4482cafe0) )
-
- ROM_REGION( 0x4010, "mcu", 0 ) /* PIC code */
- ROM_LOAD( "pic16c64a-04-p", 0x000000, 0x4010, BAD_DUMP CRC(46fd3671) SHA1(54cf7a38f7743cdad73a2741183b2720ee42e6c8) ) // dump seems to be 99% empty, protected, only configuration bytes dumped?
-
- ROM_REGION( 0x120000, "gfx1", ROMREGION_ERASE00 )
- ROM_LOAD( "graphics_rom_1", 0x000000, 0x80000, CRC(d4881b49) SHA1(e169b7eca48a0bd66ad55fe21197a4bb491198bb) )
- ROM_LOAD( "graphics_rom_2", 0x080000, 0x80000, CRC(8cd9ce60) SHA1(d1db929ca6128ec2ebe983e6161f200ba421bd31) )
- ROM_LOAD( "graphics_rom_3", 0x100000, 0x20000, CRC(04f7c2ac) SHA1(927fa0f76ff1801845776d47aa5311f485b0b809) )
-
- ROM_REGION(0x80000, "oki1", 0 ) // 2 banks, 1 large sample in each (music)
- ROM_LOAD("sound rom", 0x000000, 0x080000, CRC(d24c2e43) SHA1(5c7a130048463558d695857ffc056a95a8072219) )
-
- ROM_REGION(0x40000, "oki2", 0 )
- ROM_LOAD("voice_rom", 0x000000, 0x040000, CRC(25e85201) SHA1(6c0001e2942f49b62e1bbf3a68c59abad1e2f94c) )
-ROM_END
-
-
-
-void snowbros_state::init_cookbib2()
-{
- save_item(NAME(m_semicom_prot_offset));
-
- m_semicom_prot_base = 0xf000 / 2;
-}
-
-
-uint16_t snowbros_state::_4in1_02_read()
-{
- return 0x0202;
-}
-
-void snowbros_state::init_4in1boot()
-{
- uint8_t *src = memregion("maincpu")->base();
- int len = memregion("maincpu")->bytes();
-
- /* strange order */
- {
- std::vector<uint8_t> buffer(len);
- for (int i = 0;i < len; i++)
- if (i & 1) buffer[i] = bitswap<8>(src[i],6,7,5,4,3,2,1,0);
- else buffer[i] = src[i];
-
- memcpy(src, &buffer[0], len);
- }
-
- src = memregion("soundcpu")->base();
- len = memregion("soundcpu")->bytes();
-
- /* strange order */
- {
- std::vector<uint8_t> buffer(len);
- for (int i = 0;i < len; i++)
- buffer[i] = src[i^0x4000];
- memcpy(src,&buffer[0],len);
- }
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x200000, 0x200001, read16smo_delegate(*this, FUNC(snowbros_state::_4in1_02_read)));
-}
-
-void snowbros_state::init_snowbro3()
-{
- uint8_t *src = memregion("maincpu")->base();
- int len = memregion("maincpu")->bytes();
-
- /* strange order */
- {
- std::vector<uint8_t> buffer(len);
- for (int i = 0;i < len; i++)
- buffer[i] = src[bitswap<24>(i,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,3,4,1,2,0)];
- memcpy(src,&buffer[0],len);
- }
-
- save_item(NAME(m_sb3_music_is_playing));
- save_item(NAME(m_sb3_music));
-}
-
-void snowbros_state::init_ballboy3p()
-{
- init_snowbro3();
-
- m_maincpu->space(AS_PROGRAM).unmap_write(0x400000, 0x400001); // unmap flipscreen as the DSW has been removed in favor of the controls for the 3rd player
-}
-
-uint16_t snowbros_state::_3in1_read()
-{
- return 0x000a;
-}
-
-void snowbros_state::init_3in1semi()
-{
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x200000, 0x200001, read16smo_delegate(*this, FUNC(snowbros_state::_3in1_read)));
-}
-
-
-uint16_t snowbros_state::cookbib3_read()
-{
- return 0x2a2a;
-}
-
-void snowbros_state::init_cookbib3()
-{
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x200000, 0x200001, read16smo_delegate(*this, FUNC(snowbros_state::cookbib3_read)));
-}
-
-void snowbros_state::init_pzlbreak()
-{
- m_pandora->set_bg_pen(0xc0);
-}
-
-
-
-void snowbros_state::init_toto()
-{
- // every single rom has bits 0x10 and 0x08 swapped
- uint8_t *src = memregion("maincpu")->base();
- int len = memregion("maincpu")->bytes();
-
- for (int i = 0; i < len; i++)
- {
- src[i] = bitswap<8>(src[i], 7, 6, 5, 3, 4, 2, 1, 0);
- }
-
- src = memregion("gfx1")->base();
- len = memregion("gfx1")->bytes();
-
- for (int i = 0; i < len; i++)
- {
- src[i] = bitswap<8>(src[i], 7, 6, 5, 3, 4, 2, 1, 0);
- }
-
- src = memregion("soundcpu")->base();
- len = memregion("soundcpu")->bytes();
-
- for (int i = 0; i < len; i++)
- {
- src[i] = bitswap<8>(src[i], 7, 6, 5, 3, 4, 2, 1, 0);
- }
-
- // protection? (just return 0x07)
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x500006, 0x500007, read16s_delegate(*this, FUNC(snowbros_state::toto_read)));
-}
-
-void snowbros_state::init_hyperpac()
-{
- save_item(NAME(m_semicom_prot_offset));
- m_semicom_prot_base = 0xe000 / 2;
-}
-
-
-void snowbros_state::init_yutnori()
-{
- m_yutnori_prot_val = 0;
- m_pandora->set_bg_pen(0xf0);
- save_item(NAME(m_yutnori_prot_val));
-}
-
-GAME( 1990, snowbros, 0, snowbros, snowbros, snowbros_state, empty_init, ROT0, "Toaplan", "Snow Bros. - Nick & Tom (set 1)", MACHINE_SUPPORTS_SAVE )
-GAME( 1990, snowbrosa, snowbros, snowbros, snowbros, snowbros_state, empty_init, ROT0, "Toaplan", "Snow Bros. - Nick & Tom (set 2)", MACHINE_SUPPORTS_SAVE )
-GAME( 1990, snowbrosb, snowbros, snowbros, snowbros, snowbros_state, empty_init, ROT0, "Toaplan", "Snow Bros. - Nick & Tom (set 3)", MACHINE_SUPPORTS_SAVE )
-GAME( 1990, snowbrosc, snowbros, snowbros, snowbros, snowbros_state, empty_init, ROT0, "Toaplan", "Snow Bros. - Nick & Tom (set 4)", MACHINE_SUPPORTS_SAVE )
-GAME( 1990, snowbrosj, snowbros, snowbros, snowbroj, snowbros_state, empty_init, ROT0, "Toaplan", "Snow Bros. - Nick & Tom (Japan)", MACHINE_SUPPORTS_SAVE )
-GAME( 1990, snowbrosd, snowbros, snowbros, snowbroj, snowbros_state, empty_init, ROT0, "Toaplan (Dooyong license)", "Snow Bros. - Nick & Tom (Dooyong license)", MACHINE_SUPPORTS_SAVE )
-GAME( 1990, wintbob, snowbros, wintbob, snowbros, snowbros_state, empty_init, ROT0, "bootleg (Sakowa Project Korea)", "The Winter Bobble (bootleg of Snow Bros.)", MACHINE_SUPPORTS_SAVE )
-GAME( 1990, snowbroswb, snowbros, wintbob, snowbros, snowbros_state, empty_init, ROT0, "bootleg", "Snow Bros. - Nick & Tom (The Winter Bobble hardware bootleg)", MACHINE_SUPPORTS_SAVE ) // this was probably unhacked back from the more common Winter Bobble to make it look more original
-
-GAME( 1996, toto, 0, snowbros, snowbros, snowbros_state, init_toto, ROT0, "SoftClub", "Come Back Toto", MACHINE_SUPPORTS_SAVE ) // modified from 'snowbros' code
-
-// none of the games below are on genuine SnowBros hardware, but they clone the functionality of it.
-
-// SemiCom / Jeil titles are protected, a dumb MCU copies code into RAM at startup, some also check for a specific return value from an address on startup.
-GAME( 1993, finalttr, 0, finalttr, finalttr, snowbros_state, empty_init, ROT0, "Jeil Computer System", "Final Tetris", MACHINE_SUPPORTS_SAVE )
-GAME( 1995, hyperpac, 0, semicom_mcu, hyperpac, snowbros_state, init_hyperpac, ROT0, "SemiCom", "Hyper Pacman", MACHINE_SUPPORTS_SAVE )
-GAME( 1995, hyperpacb, hyperpac, semicom, hyperpac, snowbros_state, empty_init, ROT0, "bootleg", "Hyper Pacman (bootleg)", MACHINE_SUPPORTS_SAVE )
-GAME( 1996, cookbib2, 0, semicom_mcu, cookbib2, snowbros_state, init_cookbib2, ROT0, "SemiCom", "Cookie & Bibi 2 (set 1)", MACHINE_SUPPORTS_SAVE )
-GAME( 1996, cookbib2a, cookbib2, semicom_mcu, cookbib2, snowbros_state, init_cookbib2, ROT0, "SemiCom", "Cookie & Bibi 2 (set 2)", MACHINE_SUPPORTS_SAVE )
-GAME( 1996, cookbib2b, cookbib2, semiprot, cookbib2, snowbros_state, init_cookbib2, ROT0, "SemiCom", "Cookie & Bibi 2 (set 3)", MACHINE_SUPPORTS_SAVE ) // older? test mode looks even worse on this, but neither shows the correct dip info anyway
-GAME( 1996, toppyrap, 0, semiprot, toppyrap, snowbros_state, empty_init, ROT0, "SemiCom", "Toppy & Rappy", MACHINE_SUPPORTS_SAVE )
-GAME( 1997, cookbib3, 0, semiprot, cookbib3, snowbros_state, init_cookbib3, ROT0, "SemiCom", "Cookie & Bibi 3", MACHINE_SUPPORTS_SAVE )
-GAME( 1997, pzlbreak, 0, semiprot, pzlbreak, snowbros_state, init_pzlbreak, ROT0, "SemiCom / Tirano", "Puzzle Break (set 1)", MACHINE_SUPPORTS_SAVE )
-GAME( 1997, pzlbreaka, pzlbreak, semiprot, pzlbreak, snowbros_state, init_pzlbreak, ROT0, "SemiCom / Tirano", "Puzzle Break (set 2)", MACHINE_SUPPORTS_SAVE )
-GAME( 1997, suhosong, 0, semiprot, suhosong, snowbros_state, empty_init, ROT0, "SemiCom", "Su Ho Seong", MACHINE_SUPPORTS_SAVE )
-GAME( 1997, twinkle, 0, semiprot, twinkle, snowbros_state, empty_init, ROT0, "SemiCom / Tirano", "Twinkle (set 1)", MACHINE_SUPPORTS_SAVE )
-GAME( 1997, twinklea, twinkle, semiprot, twinkle, snowbros_state, empty_init, ROT0, "SemiCom / Tirano", "Twinkle (set 2)", MACHINE_SUPPORTS_SAVE )
-GAME( 1998, 3in1semi, 0, semiprot, moremore, snowbros_state, init_3in1semi, ROT0, "SemiCom / XESS", "New HyperMan (3-in-1 with Cookie & Bibi & HyperMan)", MACHINE_SUPPORTS_SAVE )
-GAME( 1999, mcheonru, 0, semiprot, mcheonru, snowbros_state, init_3in1semi, ROT0, "SemiCom / AceVer", "Ma Cheon Ru", MACHINE_SUPPORTS_SAVE ) // a flyer exists for an English version called Arirang, AceVer team logo is displayed on it
-GAME( 1999, moremore, 0, semiprot, moremore, snowbros_state, init_3in1semi, ROT0, "SemiCom / Exit", "More More", MACHINE_SUPPORTS_SAVE )
-GAME( 1999, moremorp, 0, semiprot, moremore, snowbros_state, init_3in1semi, ROT0, "SemiCom / Exit", "More More Plus", MACHINE_SUPPORTS_SAVE )
-// This is very similar to the SemiCom titles, but unprotected.
-GAME( 2002, 4in1boot, 0, _4in1, 4in1boot, snowbros_state, init_4in1boot, ROT0, "K1 Soft", "Puzzle King (PacMan 2, Tetris, HyperMan 2, Snow Bros.)" , MACHINE_SUPPORTS_SAVE )
-
-GAME( 1995, honeydol, 0, honeydol, honeydol, snowbros_state, empty_init, ROT0, "Barko Corp.", "Honey Dolls", MACHINE_SUPPORTS_SAVE ) // based on snowbros code..
-
-GAME( 1995, twinadv, 0, twinadv, twinadv, snowbros_state, empty_init, ROT0, "Barko Corp.", "Twin Adventure (World)", MACHINE_SUPPORTS_SAVE )
-GAME( 1995, twinadvk, twinadv, twinadv, twinadv, snowbros_state, empty_init, ROT0, "Barko Corp.", "Twin Adventure (Korea)", MACHINE_SUPPORTS_SAVE )
-GAME( 1996, multi96, twinadv, twinadv, twinadv, snowbros_state, empty_init, ROT0, "Barko Corp.", "Multi Game '96 (Italy)", MACHINE_SUPPORTS_SAVE )
-
-// The Korean games database shows an earlier version of this called Ball Boy with a different title screen to the version of Ball Boy we have
-// http://mamedev.emulab.it/undumped/images/Ballboy.jpg
-// it is possible this 'ball boy' is the original bootleg, with snwobro3 being a hack of that, and the ballboy set we have a further hack of that
-// these use an MCU to drive the sound
-GAME( 2002, snowbro3, 0, snowbro3, snowbroj, snowbros_state, init_snowbro3, ROT0, "Syrmex", "Snow Brothers 3 - Magical Adventure", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) // hacked from SnowBros code but released as an original game
-GAME( 2003, ballboy, snowbro3, snowbro3, snowbroj, snowbros_state, init_snowbro3, ROT0, "bootleg", "Ball Boy (2 players)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
-GAME( 2004, ballboy3p, snowbro3, snowbro3, ballboy3p, snowbros_state, init_ballboy3p, ROT0, "bootleg", "Ball Boy (3 players)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
-// protection appears to handle the sound, should check if it's just a block of code that is conditionally executed like some of the Semicom titles.
-GAME( 1999, yutnori, 0, yutnori, yutnori, snowbros_state, init_yutnori, ROT0, "Nunal", "Puzzle Yutnori (Korea)", MACHINE_UNEMULATED_PROTECTION | MACHINE_NO_SOUND ) // Nunal is apparently Korean slang for Eyeball, hence the logo. Some places report 'JCC Soft' as the manufacturer