summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/tumbleb.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/tumbleb.cpp')
-rw-r--r--src/mame/drivers/tumbleb.cpp3901
1 files changed, 0 insertions, 3901 deletions
diff --git a/src/mame/drivers/tumbleb.cpp b/src/mame/drivers/tumbleb.cpp
deleted file mode 100644
index 2700f3d7b0d..00000000000
--- a/src/mame/drivers/tumbleb.cpp
+++ /dev/null
@@ -1,3901 +0,0 @@
-// license:BSD-3-Clause
-// copyright-holders:David Haywood,Bryan McPhail
-/***************************************************************************
-
- the following run on hardware which is physically not the same as
- Tumble Pop but works in a very similar way.
-
- Tumblepop (c) 1991 Data East Corporation (Bootleg 1)
- Tumblepop (c) 1991 Data East Corporation (Bootleg 2)
- Jump Kids (c) 1993 Comad
- Metal Saver (c) 1994 First Amusement
- Magicball Fighting (c) 1994 SemiCom
- Pang Pang (c) 1994 Dong Gue La Mi Ltd.
- Super Trio[1] (c) 1994 GameAce
- Fancy World (c) 1995 Unico
- Hatch Catch (c) 1995 SemiCom
- Cookie & Bibi[2] (c) 1995 SemiCom
- Choky! Choky! (c) 1995 SemiCom
- WonderLeague Star (c) 1995 Mijin (Korea Only) - SemiCom used the name Mijin up to 1995
- WonderLeague '96 (c) 1996 SemiCom (Korea Only)
- SD Fighters (c) 1996 SemiCom (Korea Only)
- Carket Ball (c) 1996
- Magic Purple (c) 1996 Unico
- B.C. Story (c) 1997 SemiCom
- MuHanSeungBu (c) 1997 SemiCom (Korea Only)
- Date Quiz Go Go (c) 1998 SemiCom (Korea Only)
-
- [1] has the same sprites as the bootlegs, not much else is the same tho
-
- [2] test mode crashes the same way on the real board
- cookbiba set doesn't crash, maybe it's newer? check the rest of the code
-
- Bootleg sound is not quite correct yet (Nothing on bootleg 2).
- ** at least one of the bootlegs uses a protected PIC to drive the OKI **
-
- If you reset the game while pressing START1 and START2, "VER 0.00 JAPAN"
- is put into tile ram then MAME crashes !
-
- Sometimes a garbage sprite gets left after the SemiCom logo in Hatch
- Catch - other SemiCom games on different hw do this too, might just
- be a bug in their code
-
- Emulation by Bryan McPhail, mish@tendril.co.uk
-
-
-Stephh's notes (based on the games M68000 code and some tests) :
-
-1) 'tumbleb*' and 'jumpkids'
-
- - I don't understand the interest of the "Remove Monsters" Dip Switch :
- as I haven't found a way to "end" a level, I guess that it was used to
- test the backgrounds and the "platforms".
-
- - The "Edit Levels" Dip Switch allows you to add/delete monsters and
- change their position.
-
- Notes (for 'tumbleb*') :
- * "worlds" and levels are 0-based (00-09 & 00-09) :
-
- World Name
- 0 America
- 1 Brazil
- 2 Asia
- 3 Soviet
- 4 Europe
- 5 Egypt
- 6 Australia
- 7 Antartica
- 8 Stratosphere
- 9 Space
-
- * As levels x-9 and 9-x are only constituted of a "big boss", you can't
- edit them !
- * All data is stored within the range 0x02b8c8-0x02d2c9, but it should be
- extended to 0x02ebeb (and perhaps 0x02ffff). TO BE CONFIRMED !
- * Once your levels are ready, turn the Dip Switch OFF and reset the game.
- * Of course, there is no possibility to save the levels when you exit
- MAME, nor the way to reload the default ones 8(
-
- Additional notes (for 'jumpkids') :
- * As there are only 9 "worlds", editing "world" 9 ("Space") might cause
- unpredictable weird results !
- * The "worlds" names are the same, but the background is different :
-
- World Name Background
- 0 America Stadium
- 1 Brazil Beach
- 2 Asia Planet
- 3 Soviet Prehistoric Ages
- 4 Europe Castle
- 5 Egypt Pyramids
- 6 Australia Lunar base
- 7 Antartica Bridge
- 8 Stratosphere ???
- 9 Space DOES NOT EXIST !
-
- As I'm not sure of the description of the background, feel free to
- improve the previous list.
- * All data is stored within the range 0x02776e-0x029207, but it should be
- extended to 0x02ab29 (and perhaps 0x02ab49). TO BE CONFIRMED !
-
-
-2) 'metlsavr'
-
- - It is unknown what's the effect of DSW2-6 and DSW 2-7.
- All that can be told is that they related somewhere to DSW 2-5 ("Language")
- as they affect in game language (but not the one for explanations in "Test Mode").
- In fact, some values are put to some RAM addresses, but I can't find what they do :
-
- 2-7 2-6 2-5 0x122eec 0x12021a In game language "Test Mode" explanations
- OFF OFF OFF 0x00 0x00 English English
- ON OFF OFF 0x00 0x01 English English
- OFF ON OFF 0x00 0x01 English English
- ON ON OFF 0x01 0x00 Korean English
- OFF OFF OFF 0x01 0x00 Korean Korean
- ON OFF OFF 0x01 0x01 Korean Korean
- OFF ON OFF 0x01 0x01 Korean Korean
- ON ON OFF 0x00 0x00 English Korean
-
- If you have any clue, please let me know ...
-
-
-3) 'pangpang'
-
- - The game needs more investigation to get similar infos to "Tumble Pop" bootlegs/ripoffs.
-
-
-4) 'htchctch'
-
- - As I'm too bad at playing such game, I haven't been able to determine
- what's the effect of DSW2-2 (which is called "Stage Skip" in "Test Mode"),
- nor when it is supposed to be tested. Leftover from another game ?
-
- - "Difficulty" and "Coinage" Dip Switches aren't visible in "Test Mode".
-
-
-5) 'cookbib'
-
- - Whatever is written in "Test Mode", Dip Switch bank 1 is unused, so DSW 1-1
- (which is called "Stage Skip") might be a leftover from another game.
-
- - "Difficulty" and "Coinage" Dip Switches aren't visible in "Test Mode".
-
-
-6) 'wlstar'
-
- - DSW 1-3 is read once (check code at 0x000eae), but the address
- where the computed value is stored is NEVER read back !
- I guess this might be a leftover from another game.
-
- - DSW 2-8 determines the last inning if there is a draw after inning 9.
- After inning 9, scores are checked to see if there us still a draw.
- Once last inning is over, the game ends regardless of the score.
-
- - The "VS CPU Game Ends" Dip Switch is used when you play a game against the CPU.
- If CPU's score is +10 or +7 than player's score, the game ends.
-
- - The "VS Game" Dip Switch affects single game against CPU or other player
- (choices 2 and 3). Once the number of innings is achieved, the player(s)
- is (are) proposed to continue, provided they get enough credits.
-
- - The "Full 2 Players Game" determines how many credits are required
- to enlighten the 4th choice (2 players 9 innings match).
-
-
-7) 'wonld96'
-
- - I can't determine what's the effect of DSW 1-7 to DSW 1-5 :(
- All I can tell is that the computed value (from 0x0000 to 0x0007) is stored at 0x12279c.w
- and it is compared with the contents of addresses 0x1207c6.w and 0x12153c.w .
-
- - DSW 1-4 changes the color of the field, but I don't know if it has
- some other effects. Please check this out and let me know.
-
- - The "VS CPU Game Ends" Dip Switch is used when you play a game against the CPU.
- If CPU's score is +10 or +7 than player's score, the game ends.
-
- - The "VS Game" Dip Switch affects single game against CPU or other player
- (choices 2 and 3). Once the number of innings is achieved, the player(s)
- is (are) proposed to continue, provided they get enough credits.
-
- - The "Full 2 Players Game" determines how many credits are required
- to enlighten the 4th choice (2 players 9 innings match).
-
- - DSW 2-1 should be "Demo Sounds", but there are NEVER demo sounds
- due to code at 0x000fe6 ('beq $fea'). So I've marked it as "Unused".
-
-
-8) 'fncywld'
-
- - I'm not sure about the release date of this game :
- * on the title screen, it ALWAYS displays 1996
- * when "Language" Dip Switch is set to "English", there is a (c) 1996 "warning"
- screen, but when it is set to "Korean", there is a (c) 1995 "warning" screen !
-
- - I don't understand the interest of the "Remove Monsters" Dip Switch :
- as I haven't found a way to "end" a level, I guess that it was used to
- test the backgrounds and the "platforms".
-
- - The "Edit Levels" Dip Switch allows you to add/delete monsters and
- change their position.
-
- This needs more investigation to get similar infos to "Tumble Pop" bootlegs/ripoffs.
-
-
-9) 'bcstry*'
-
- - DSW 2-6 and DSW 2-7 are read once (check code at 0x000628),
- but the address where the computed value is stored is NEVER read back !
- I guess this might be a leftover from another game.
-
- - The "Event Selection" Dip Switch allows you to select your events by
- pressing BUTTON1 when the moving "cursor" is on the event you want
-
- - The "Control Type" Dip Switch only has an effect during the events :
- it means that whatever the settings are, you need the joystick and buttons
- to select your character, enter your initials and select your events.
-
- - The "Debug Mode" Dip Switch (known as "Test Mode" ingame) allows you
- to select your events by using the joystick then pressing BUTTON1.
- This Dip Switch overrides "Event Selection" Dip Switch !
-
-
-10) 'semibase'
-
- - I'm completely unsure that there are 4 coin slots for this game,
- but pressing ANY of the 4 COIN* buttons has the same effect :
- credits are incremented depending on "Coinage" settings.
-
- - "Free Play" Dip Switch is bogus : you can only start a VS computer game
- unless you insert enough credits (see "Full 2 Players Game" Dip Switch).
-
- - DSW 2-6 and DSW 2-7 are read once (check code at 0x002384),
- but the address where the computed value is stored is NEVER read back !
- I guess this might be a leftover from another game.
-
- - DSW 2-4 is read once (check code at 0x002366), but the computed value
- is the same (0x0009) whatever the settings are. So I've marked it as "Unused".
- This Dip Switch was supposed to determine the last inning if there is a draw
- after inning 9 un some other Semicom baseball games (eg: 'wlstar').
-
- - The "VS CPU Game Ends" Dip Switch is used when you play a game against the CPU.
- If CPU's score is +10 or +7 than player's score, the game ends.
-
- - The "VS Game" Dip Switch affects single game against CPU or other player
- (choices 2 and 3). Once the number of innings is achieved, the player(s)
- is (are) proposed to continue, provided they get enough credits.
-
- - The "Full 2 Players Game" determines how many credits are required
- to enlighten the 4th choice (2 players 9 innings match).
-
-
-11) 'dquizgo'
-
- - "Free Play" Dip Switch is bogus : you can start a game without inserting a coin,
- but you can't use any players joystick controls nor buttons. Ingame bug ?
-
- - "Lives" Dip Switch isn't visible in "Test Mode".
-
- - I'm unsure about the number of buttons for this game : there are 3 buttons in
- "Test Mode", but as far as I can see only 1 seems needed when you play the game
- and 2 buttons are required to exit some choices of "Test Mode".
-
-
-
-
- MuHanSeungBu
- ------------
-
- Unfinished Test Mode, Hangs with black screen, same as a real PCB.
-
-
-
- Pang Pang
- ---------
-
- You can't select anything except the first stage on the 'select a stage'
- screen.
-
- If you get a high score then your entry in the high-score table will be
- corrupt.
-
- There is a chance that both of these are bugs of the original game, it is
- just a cheap hack of Tumble Pop afterall. The board doesn't work so it's
- impossible to test.
-
- The sound is driven by a read-protected PIC, as is the case with the
- tumblepb2 bootleg. I've simulated the sound in tumbleb2 and am using
- the same simulation code in pangpang, although pangpang has a few extra
- sounds which are not mapped. As the board does not work the accuracy
- of the sound simulation cannot be verified.
-
- SD Fighters
- -----------
-
- "Time" and "Rounds to Win" Dip Switches aren't visible in "Test Mode".
-
-
-***************************************************************************/
-
-#include "emu.h"
-#include "includes/tumbleb.h"
-
-#include "cpu/z80/z80.h"
-#include "cpu/m68000/m68000.h"
-#include "cpu/h6280/h6280.h"
-#include "cpu/mcs51/mcs51.h" // for semicom mcu
-#include "cpu/pic16c5x/pic16c5x.h"
-#include "machine/decocrpt.h"
-#include "sound/okim6295.h"
-#include "sound/ym2151.h"
-#include "sound/ym3812.h"
-#include "speaker.h"
-
-
-#define TUMBLEP_HACK 0
-
-
-
-/******************************************************************************/
-
-void tumbleb_state::tumblepb_oki_w(offs_t offset, uint16_t data, uint16_t mem_mask)
-{
- if (mem_mask == 0xffff)
- {
- m_oki->write(data & 0xff);
- //printf("tumbleb_oki_w %04x %04x\n", data, mem_mask);
- }
- else
- {
- m_oki->write((data >> 8) & 0xff);
- //printf("tumbleb_oki_w %04x %04x\n", data, mem_mask);
- }
- /* STUFF IN OTHER BYTE TOO..*/
-}
-
-uint16_t tumbleb_state::tumblepb_prot_r()
-{
- return ~0;
-}
-
-/******************************************************************************/
-
-uint16_t tumbleb_state::tumblepopb_controls_r(offs_t offset)
-{
- switch (offset << 1)
- {
- case 0:
- return ioport("PLAYERS")->read();
- case 2:
- return ioport("DSW")->read();
- case 8:
- return ioport("SYSTEM")->read();
- case 10: /* ? */
- case 12:
- return 0;
- }
-
- return -0;
-}
-
-/******************************************************************************/
-
-/* Tumble Pop Bootleg Sound Simulation + Notes
- tumblepb2 uses a PIC for the sound cpu, this is read protected, so we have to simulate it
-
-1-11 are instruments
-12 - enemy bounce off sides
-13 - collect coin/item
-14 - ??
-15 - suck clown
-16 - suck man
-17 - power up item
-18 - general suck
-19 - another suck? or unused?
-1a - world 1 clown boss bomb explode (maybe)..
-1b - brazil boss, fire from ground
-1c - pop?
-1d - world 1 clown boss hit
-1e - america, turtle spit
-1f - man spitting fire
-20 - france boss die (maybe) / antartica boss land
-21 - france boss being hit
-22 - taken too long
-23 - used for brazil music?
-24 - used for brazil music?
-25 - egypt world genie boss sound
-26 - final boss
-27 - bag explode warning
-28 - Let's Clean Up
-29 - Tumble Pop! (between levels..)
-2a - You Did It!
-2b - Death
-2c - france world boss arms / snowman fire in antartica
-2d - space enemy fire
-2e - egypt world genie appear
-2f - coin
-30 - france cannon fire
-31 - giant vacuum? (i got this once on antartica..)
-32 - world 1 clown boss bomb bounce
-33 - end level
-34 - end world?
-
-*/
-
-/* music
-
-command 1 - stop?
-
- 4 - map screen
- 5 - america
- 6 - asia
- 7 - egypt
- 8 - antartica
- 9 - brazil
- a - japan
- b - australia
- c - france
- d - how to play
-
-
- f - stage clear
- 10 - boss stage
- 12 - between levels
-
- -- there are more tunes than we have music banks..
- i guess some get repeated
-*/
-
-
-void tumbleb_state::tumbleb2_playmusic(okim6295_device *oki)
-{
- int status = oki->read();
-
- if (m_music_is_playing)
- {
- if (!BIT(status, 3))
- {
- oki->write(0x80 | m_music_command);
- oki->write(0x00 | 0x82);
- }
- }
-}
-
-
-INTERRUPT_GEN_MEMBER(tumbleb_state::tumbleb2_interrupt)
-{
- device.execute().set_input_line(6, HOLD_LINE);
- tumbleb2_playmusic(m_oki);
-}
-
-static const int tumbleb_sound_lookup[256] = {
- /*0 1 2 3 4 5 6 7 8 9 a b c d e f*/
- 0x00, -2, 0x00, 0x00, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, 0x00, -2, /* 0 */
- -2, 0x00, -2, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 1 */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, /* 2 */
- 0x19, 0x00, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, /* 3 */
- 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, /* 4 */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 5 */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 6 */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 7 */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 8 */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 9 */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* a */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* b */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* c */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* d */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* e */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 /* f */
-};
-
-/* we use channels 1,2,3 for sound effects, and channel 4 for music */
-void tumbleb_state::tumbleb2_set_music_bank( int bank )
-{
- uint8_t *oki = memregion("oki")->base();
- memcpy(&oki[0x38000], &oki[0x80000 + 0x38000 + 0x8000 * bank], 0x8000);
-}
-
-void tumbleb_state::tumbleb2_play_sound( okim6295_device *oki, int data )
-{
- int status = oki->read();
-
- if (!BIT(status, 0))
- {
- oki->write(0x80 | data);
- oki->write(0x00 | 0x12);
- }
- else if (!BIT(status, 1))
- {
- oki->write(0x80 | data);
- oki->write(0x00 | 0x22);
- }
- else if (!BIT(status, 2))
- {
- oki->write(0x80 | data);
- oki->write(0x00 | 0x42);
- }
-}
-
-/* yay for terrible looped music .. there aren't even enough songs for all the levels */
-// bank 0 - tune 1 = end of level
-// bank 0 - tune 2 = end of stage?
-// bank 1 = map screen
-// bank 2 = asia
-// bank 3 = antartica?
-// bank 4 = south america
-// bank 5 = australia
-// bank 6 = america?? or europe?
-// bank 7 = how to play?
-// bank 8 = boss???
-
-void tumbleb_state::process_tumbleb2_music_command( okim6295_device *oki, int data )
-{
- int status = oki->read();
-
- if (data == 1) // stop?
- {
- if (BIT(status, 3))
- {
- oki->write(0x40); /* Stop playing music */
- m_music_is_playing = 0;
- }
- }
- else
- {
- if (m_music_is_playing != data)
- {
- m_music_is_playing = data;
- oki->write(0x40); // stop the current music
- switch (data)
- {
- case 0x04: // map screen
- m_music_bank = 1;
- m_music_command = 0x38;
- break;
-
- case 0x05: // america
- m_music_bank = 6;
- m_music_command = 0x38;
- break;
-
- case 0x06: // asia
- m_music_bank = 2;
- m_music_command = 0x38;
- break;
-
- case 0x07: // africa/egypt -- don't seem to have a tune for this one
- m_music_bank = 4;
- m_music_command = 0x38;
- break;
-
- case 0x08: // antartica
- m_music_bank = 3;
- m_music_command = 0x38;
- break;
-
- case 0x09: // brazil / south america
- m_music_bank = 4;
- m_music_command = 0x38;
- break;
-
- case 0x0a: // japan -- don't seem to have a tune
- m_music_bank = 2;
- m_music_command = 0x38;
- break;
-
- case 0x0b: // australia
- m_music_bank = 5;
- m_music_command = 0x38;
- break;
-
- case 0x0c: // france/europe
- m_music_bank = 6;
- m_music_command = 0x38;
- break;
-
- case 0x0d: // how to play
- m_music_bank = 7;
- m_music_command = 0x38;
- break;
-
- case 0x0f: // stage clear
- m_music_bank = 0;
- m_music_command = 0x33;
- break;
-
- case 0x10: // boss stage
- m_music_bank = 8;
- m_music_command = 0x38;
- break;
-
- case 0x12: // world clear
- m_music_bank = 0;
- m_music_command = 0x34;
- break;
-
- default: // anything else..
- m_music_bank = 8;
- m_music_command = 0x38;
- break;
- }
-
- tumbleb2_set_music_bank(m_music_bank);
- tumbleb2_playmusic(oki);
- }
- }
-}
-
-
-void tumbleb_state::tumbleb2_soundmcu_w(uint16_t data)
-{
- int sound = tumbleb_sound_lookup[data & 0xff];
-
- if (sound == 0x00)
- {
- /* pangpang has more commands than tumbleb2, extra sounds */
- //osd_printf_debug("Command %04x\n", data);
- }
- else if (sound == -2)
- {
- process_tumbleb2_music_command(m_oki, data);
- }
- else
- {
- tumbleb2_play_sound(m_oki, sound);
- }
-}
-
-/******************************************************************************/
-
-void tumbleb_state::tumblepopb_main_map(address_map &map)
-{
- map(0x000000, 0x07ffff).rom();
-#if TUMBLEP_HACK
- map(0x000000, 0x07ffff).writeonly(); /* To write levels modifications */
-#endif
- map(0x100000, 0x100001).rw(FUNC(tumbleb_state::tumblepb_prot_r), FUNC(tumbleb_state::tumblepb_oki_w));
- map(0x120000, 0x123fff).ram().share("mainram");
- map(0x140000, 0x1407ff).ram().w(m_palette, FUNC(palette_device::write16)).share("palette");
- map(0x160000, 0x1607ff).ram().share("spriteram"); /* Bootleg sprite buffer */
- map(0x160800, 0x160807).nopw(); /* writes past the end of spriteram */
- map(0x180000, 0x18000f).r(FUNC(tumbleb_state::tumblepopb_controls_r));
- map(0x18000c, 0x18000d).nopw();
- map(0x1a0000, 0x1a07ff).ram();
- map(0x300000, 0x30000f).w(FUNC(tumbleb_state::tumblepb_control_0_w));
- map(0x320000, 0x320fff).w(FUNC(tumbleb_state::tumblepb_pf1_data_w)).share("pf1_data");
- map(0x322000, 0x322fff).w(FUNC(tumbleb_state::tumblepb_pf2_data_w)).share("pf2_data");
- map(0x340000, 0x3401ff).nopw(); /* Unused row scroll */
- map(0x340400, 0x34047f).nopw(); /* Unused col scroll */
- map(0x342000, 0x3421ff).nopw();
- map(0x342400, 0x34247f).nopw();
-}
-
-void tumbleb_state::tumblepopba_main_map(address_map &map)
-{
- map(0x000000, 0x07ffff).rom();
-#if TUMBLEP_HACK
- map(0x000000, 0x07ffff).writeonly(); /* To write levels modifications */
-#endif
- //map(0x100000, 0x100001).rw(FUNC(tumbleb_state::tumblepb_prot_r), FUNC(tumbleb_state::tumblepb_oki_w)); // where's the oki mapped?
- map(0x120000, 0x123fff).ram().share("mainram");
- map(0x140000, 0x1407ff).ram().w(m_palette, FUNC(palette_device::write16)).share("palette");
- map(0x180000, 0x18000f).r(FUNC(tumbleb_state::tumblepopb_controls_r));
- map(0x1a0000, 0x1a07ff).ram().share("spriteram"); /* Bootleg sprite buffer */
- map(0x1a1000, 0x1a1fff).ram(); // ?
- map(0x200000, 0x200fff).ram(); // ?
- //map(0x300000, 0x30000f).w(FUNC(tumbleb_state::tumblepb_control_0_w)); // 0x180000?
- map(0x320000, 0x320fff).w(FUNC(tumbleb_state::tumblepb_pf1_data_w)).share("pf1_data");
- map(0x322000, 0x322fff).w(FUNC(tumbleb_state::tumblepb_pf2_data_w)).share("pf2_data");
-}
-
-void tumbleb_pic_state::funkyjetb_map(address_map &map)
-{
- map(0x000000, 0x07ffff).rom();
- map(0x120000, 0x1207ff).ram().w(m_palette, FUNC(palette_device::write16)).share("palette");
- map(0x140000, 0x143fff).ram().share("mainram");
- map(0x160000, 0x1607ff).ram().share("spriteram");
- map(0x1d0382, 0x1d0383).portr("DSW");
- map(0x242102, 0x242103).portr("SYSTEM");
- map(0x200000, 0x2007ff).ram(); // writes 0x180
- map(0x300000, 0x30000f).w(FUNC(tumbleb_pic_state::tumblepb_control_0_w));
- map(0x320000, 0x320fff).ram().w(FUNC(tumbleb_pic_state::tumblepb_pf1_data_w)).share("pf1_data");
- map(0x322000, 0x322fff).ram().w(FUNC(tumbleb_pic_state::tumblepb_pf2_data_w)).share("pf2_data");
- map(0x340000, 0x340bff).ram().share("pf1_rowscroll");
- //map(0x342000, 0x342bff).ram().share("pf2_rowscroll");
-}
-
-void tumbleb_pic_state::funkyjetb_oki_map(address_map &map)
-{
- map(0x00000, 0x37fff).rom().region("oki", 0);
- map(0x38000, 0x3ffff).bankr("okibank");
-}
-
-void tumbleb_state::unico_base_map(address_map &map)
-{
- map(0x100000, 0x100003).rw("ymsnd", FUNC(ym2151_device::read), FUNC(ym2151_device::write)).umask16(0x00ff);
- map(0x100005, 0x100005).rw(m_oki, FUNC(okim6295_device::read), FUNC(okim6295_device::write));
- map(0x140000, 0x140fff).ram().w(m_palette, FUNC(palette_device::write16)).share("palette");
- map(0x160000, 0x1607ff).ram().share("spriteram"); /* sprites */
- map(0x160800, 0x16080f).nopw(); /* goes slightly past the end of spriteram? */
- map(0x180000, 0x18000f).r(FUNC(tumbleb_state::tumblepopb_controls_r));
- map(0x18000c, 0x18000d).nopw();
- map(0x1a0000, 0x1a07ff).ram();
- map(0x300000, 0x30000f).w(FUNC(tumbleb_state::tumblepb_control_0_w));
- map(0x320000, 0x321fff).ram().w(FUNC(tumbleb_state::fncywld_pf1_data_w)).share("pf1_data");
- map(0x322000, 0x323fff).ram().w(FUNC(tumbleb_state::fncywld_pf2_data_w)).share("pf2_data");
- map(0x340000, 0x3401ff).nopw(); /* Unused row scroll */
- map(0x340400, 0x34047f).nopw(); /* Unused col scroll */
- map(0x342000, 0x3421ff).nopw();
- map(0x342400, 0x34247f).nopw();
-}
-
-void tumbleb_state::fncywld_main_map(address_map &map)
-{
- map(0x000000, 0x0fffff).rom();
- map(0xff0000, 0xffffff).ram();
-
- unico_base_map(map);
-}
-
-
-void tumbleb_state::magipur_main_map(address_map &map)
-{
- map(0x000000, 0x00ffff).ram().share("mainram");
- map(0xf00000, 0xffffff).rom().region("maincpu", 0);
-
- map(0x100010, 0x100011).nopw(); // TODO: what is this, fncywld doesn't write here, can't be related to the RAM/ROM arrangement as the writes happen well after boot
-
- unico_base_map(map);
-}
-
-
-uint16_t tumbleb_state::semibase_unknown_r()
-{
- return machine().rand();
-}
-
-void tumbleb_state::htchctch_main_map(address_map &map)
-{
- map(0x000000, 0x0fffff).rom();
- map(0x100000, 0x10000f).r(FUNC(tumbleb_state::semibase_unknown_r));
- map(0x100000, 0x100001).w(FUNC(tumbleb_state::semicom_soundcmd_w));
- map(0x100002, 0x100003).w(FUNC(tumbleb_state::bcstory_tilebank_w));
- map(0x120000, 0x123fff).ram().share("mainram");
- map(0x140000, 0x1407ff).ram().w(m_palette, FUNC(palette_device::write16)).share("palette");
- map(0x160000, 0x160fff).ram().share("spriteram"); /* Bootleg sprite buffer */
- map(0x180000, 0x18000f).r(FUNC(tumbleb_state::tumblepopb_controls_r));
- map(0x18000c, 0x18000d).nopw();
- map(0x1a0000, 0x1a0fff).ram();
- map(0x300000, 0x30000f).w(FUNC(tumbleb_state::tumblepb_control_0_w));
- map(0x320000, 0x321fff).w(FUNC(tumbleb_state::tumblepb_pf1_data_w)).share("pf1_data");
- map(0x322000, 0x322fff).w(FUNC(tumbleb_state::tumblepb_pf2_data_w)).share("pf2_data");
- map(0x323000, 0x331fff).noprw(); // metal saver writes there when clearing the above tilemaps, flaw in the program routine
- map(0x341000, 0x342fff).ram(); // Extra ram?
-}
-
-
-
-void tumbleb_state::jumpkids_sound_w(uint16_t data)
-{
- m_soundlatch->write(data & 0xff);
- m_audiocpu->set_input_line(0, HOLD_LINE);
-}
-
-void tumbleb_state::suprtrio_main_map(address_map &map)
-{
- map(0x000000, 0x07ffff).rom();
- map(0x700000, 0x700fff).ram().share("spriteram");
- map(0xa00000, 0xa0000f).ram().share("control");
- map(0xa20000, 0xa20fff).ram().w(FUNC(tumbleb_state::tumblepb_pf1_data_w)).share("pf1_data");
- map(0xa22000, 0xa22fff).ram().w(FUNC(tumbleb_state::tumblepb_pf2_data_w)).share("pf2_data");
- map(0xcf0000, 0xcf05ff).ram().w(m_palette, FUNC(palette_device::write16)).share("palette");
- map(0xe00000, 0xe00001).portr("PLAYERS").w(FUNC(tumbleb_state::suprtrio_tilebank_w));
- map(0xe40000, 0xe40001).portr("SYSTEM");
- map(0xe80002, 0xe80003).portr("DSW");
- map(0xec0000, 0xec0001).w(FUNC(tumbleb_state::semicom_soundcmd_w));
- map(0xf00000, 0xf07fff).ram();
-}
-
-void tumbleb_state::pangpang_main_map(address_map &map)
-{
- map(0x000000, 0x07ffff).rom();
- map(0x120000, 0x123fff).ram().share("mainram");
- map(0x140000, 0x1407ff).ram().w(m_palette, FUNC(palette_device::write16)).share("palette");
- map(0x160000, 0x1607ff).ram().share("spriteram"); /* Bootleg sprite buffer */
- map(0x160800, 0x160807).nopw(); // writes past the end of spriteram
- map(0x180000, 0x18000f).r(FUNC(tumbleb_state::tumblepopb_controls_r));
- map(0x1a0000, 0x1a07ff).ram();
- map(0x300000, 0x30000f).w(FUNC(tumbleb_state::tumblepb_control_0_w));
- map(0x320000, 0x321fff).ram().w(FUNC(tumbleb_state::pangpang_pf1_data_w)).share("pf1_data");
- map(0x340000, 0x341fff).ram().w(FUNC(tumbleb_state::pangpang_pf2_data_w)).share("pf2_data");
-}
-
-
-/******************************************************************************/
-
-void tumbleb_pic_state::oki_bank_w(uint8_t data)
-{
- m_okibank->set_entry(data & 0x0f);
-}
-
-uint8_t tumbleb_pic_state::pic_data_r()
-{
- return m_pic_data;
-}
-
-void tumbleb_pic_state::pic_data_w(uint8_t data)
-{
- m_pic_data = data;
-}
-
-void tumbleb_pic_state::pic_ctrl_w(uint8_t data)
-{
- if (!BIT(data, 2))
- {
- if (!BIT(data, 0))
- m_pic_data = m_oki->read();
- else if (!BIT(data, 1))
- {
- logerror("OKI write: %02X\n", m_pic_data);
- m_oki->write(m_pic_data);
- }
- }
-
- if (!BIT(data, 4))
- m_pic_data = m_soundlatch->read();
- if (!BIT(data, 5))
- m_soundlatch->acknowledge_w();
-}
-
-void tumbleb_pic_state::driver_start()
-{
- m_pic_data = 0xff;
- save_item(NAME(m_pic_data));
-
- m_okibank->configure_entries(0, 16, memregion("oki")->base(), 0x8000);
-}
-
-/******************************************************************************/
-
-void tumbleb_state::semicom_soundcmd_w(offs_t offset, uint16_t data, uint16_t mem_mask)
-{
- if (ACCESSING_BITS_0_7)
- {
- m_soundlatch->write(data & 0xff);
- // needed for Super Trio which reads the sound with polling
- // m_maincpu->spin_until_time(attotime::from_usec(100));
- machine().scheduler().boost_interleave(attotime::zero, attotime::from_usec(20));
-
- }
-}
-
-void tumbleb_state::oki_sound_bank_w(uint8_t data)
-{
- uint8_t *oki = memregion("oki")->base();
- memcpy(&oki[0x30000], &oki[(data * 0x10000) + 0x40000], 0x10000);
-}
-
-void tumbleb_state::semicom_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(0xf006, 0xf006) ??
- map(0xf008, 0xf008).r(m_soundlatch, FUNC(generic_latch_8_device::read));
- map(0xf00e, 0xf00e).w(FUNC(tumbleb_state::oki_sound_bank_w));
-}
-
-void tumbleb_state::suprtrio_sound_map(address_map &map)
-{
- map(0x0000, 0xcfff).rom();
- map(0xd000, 0xd7ff).ram();
- map(0xf002, 0xf002).rw(m_oki, FUNC(okim6295_device::read), FUNC(okim6295_device::write));
- //map(0xf006, 0xf006) ??
- map(0xf008, 0xf008).r(m_soundlatch, FUNC(generic_latch_8_device::read));
- map(0xf00e, 0xf00e).w(FUNC(tumbleb_state::oki_sound_bank_w));
-}
-
-/* Jump Kids */
-
-void tumbleb_state::jumpkids_main_map(address_map &map)
-{
- map(0x000000, 0x07ffff).rom();
- map(0x100000, 0x100001).w(FUNC(tumbleb_state::jumpkids_sound_w));
- map(0x120000, 0x123fff).ram().share("mainram");
- map(0x140000, 0x1407ff).ram().w(m_palette, FUNC(palette_device::write16)).share("palette");
- map(0x160000, 0x1607ff).ram().share("spriteram"); /* Bootleg sprite buffer */
- map(0x160800, 0x160807).nopw(); /* writes past the end of spriteram */
- map(0x180000, 0x18000f).r(FUNC(tumbleb_state::tumblepopb_controls_r));
- map(0x18000c, 0x18000d).nopw();
- map(0x1a0000, 0x1a07ff).ram();
- map(0x300000, 0x30000f).w(FUNC(tumbleb_state::tumblepb_control_0_w));
- map(0x320000, 0x320fff).w(FUNC(tumbleb_state::tumblepb_pf1_data_w)).share("pf1_data");
- map(0x322000, 0x322fff).w(FUNC(tumbleb_state::tumblepb_pf2_data_w)).share("pf2_data");
- map(0x340000, 0x3401ff).nopw(); /* Unused row scroll */
- map(0x340400, 0x34047f).nopw(); /* Unused col scroll */
- map(0x342000, 0x3421ff).nopw();
- map(0x342400, 0x34247f).nopw();
-}
-
-void tumbleb_state::jumpkids_oki_bank_w(uint8_t data)
-{
- uint8_t* sound1 = memregion("oki")->base();
- uint8_t* sound2 = memregion("oki2")->base();
- int bank = data & 0x03;
-
- memcpy(sound1 + 0x20000, sound2 + bank * 0x20000, 0x20000);
-}
-
-void tumbleb_state::jumpkids_sound_map(address_map &map)
-{
- map(0x0000, 0x0fff).rom();
- map(0x8000, 0x87ff).ram();
- map(0x9000, 0x9000).w(FUNC(tumbleb_state::jumpkids_oki_bank_w));
- map(0x9800, 0x9800).rw(m_oki, FUNC(okim6295_device::read), FUNC(okim6295_device::write));
- map(0xa000, 0xa000).r(m_soundlatch, FUNC(generic_latch_8_device::read));
-}
-
-
-/* Semicom AT89C52 MCU */
-
-// probably not endian safe
-void tumbleb_state::prot_p0_w(uint8_t data)
-{
- uint16_t word = m_mainram[(m_protbase/2) + m_semicom_prot_offset];
- word = (word & 0xff00) | (data << 0);
- m_mainram[(m_protbase/2) + m_semicom_prot_offset] = word;
-}
-
-// probably not endian safe
-void tumbleb_state::prot_p1_w(uint8_t data)
-{
- uint16_t word = m_mainram[(m_protbase/2) + m_semicom_prot_offset];
- word = (word & 0x00ff) | (data << 8);
- m_mainram[(m_protbase/2) + m_semicom_prot_offset] = word;
-}
-
-void tumbleb_state::prot_p2_w(uint8_t data)
-{
- m_semicom_prot_offset = data;
-}
-
-/******************************************************************************/
-
-static INPUT_PORTS_START( tumblepb )
- PORT_START("PLAYERS")
- PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1)
- PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1)
- PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1)
- PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1)
- PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1)
- PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1)
- PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* button 3 - unused */
- PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_START1 )
- 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_UNKNOWN ) /* button 3 - unused */
- PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_START2 )
-
- PORT_START("SYSTEM")
- PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_COIN1 )
- PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_COIN2 )
- PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_SERVICE1 )
- PORT_BIT( 0x0008, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_VBLANK("screen")
- PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN )
-
- PORT_START("DSW")
- PORT_DIPNAME( 0x00e0, 0x00e0, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SW1:1,2,3")
- PORT_DIPSETTING( 0x0000, DEF_STR( 3C_1C ) )
- PORT_DIPSETTING( 0x0080, DEF_STR( 2C_1C ) )
- PORT_DIPSETTING( 0x00e0, DEF_STR( 1C_1C ) )
- PORT_DIPSETTING( 0x0060, DEF_STR( 1C_2C ) )
- PORT_DIPSETTING( 0x00a0, DEF_STR( 1C_3C ) )
- PORT_DIPSETTING( 0x0020, DEF_STR( 1C_4C ) )
- PORT_DIPSETTING( 0x00c0, DEF_STR( 1C_5C ) )
- PORT_DIPSETTING( 0x0040, DEF_STR( 1C_6C ) )
- PORT_DIPNAME( 0x001c, 0x001c, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("SW1:4,5,6")
- PORT_DIPSETTING( 0x0000, DEF_STR( 3C_1C ) )
- PORT_DIPSETTING( 0x0010, DEF_STR( 2C_1C ) )
- PORT_DIPSETTING( 0x001c, DEF_STR( 1C_1C ) )
- PORT_DIPSETTING( 0x000c, DEF_STR( 1C_2C ) )
- PORT_DIPSETTING( 0x0014, DEF_STR( 1C_3C ) )
- PORT_DIPSETTING( 0x0004, DEF_STR( 1C_4C ) )
- PORT_DIPSETTING( 0x0018, DEF_STR( 1C_5C ) )
- PORT_DIPSETTING( 0x0008, DEF_STR( 1C_6C ) )
- PORT_DIPNAME( 0x0002, 0x0002, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW1:7")
- PORT_DIPSETTING( 0x0002, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPNAME( 0x0001, 0x0001, "2 Coins to Start, 1 to Continue" ) PORT_DIPLOCATION("SW1:8")
- PORT_DIPSETTING( 0x0001, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
-
- PORT_DIPNAME( 0xc000, 0xc000, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW2:1,2")
- PORT_DIPSETTING( 0x8000, "1" )
- PORT_DIPSETTING( 0x0000, "2" )
- PORT_DIPSETTING( 0xc000, "3" )
- PORT_DIPSETTING( 0x4000, "4" )
- PORT_DIPNAME( 0x3000, 0x3000, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW2:3,4")
- PORT_DIPSETTING( 0x1000, DEF_STR( Easy ) )
- PORT_DIPSETTING( 0x3000, DEF_STR( Normal ) )
- PORT_DIPSETTING( 0x2000, DEF_STR( Hard ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( Hardest ) )
-#if TUMBLEP_HACK
- PORT_DIPNAME( 0x0800, 0x0800, "Remove Monsters" ) PORT_DIPLOCATION("SW2:5")
-#else
- PORT_DIPNAME( 0x0800, 0x0800, DEF_STR( Unused ) ) PORT_DIPLOCATION("SW2:5") // See notes
-#endif
- PORT_DIPSETTING( 0x0800, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
-#if TUMBLEP_HACK
- PORT_DIPNAME( 0x0400, 0x0400, "Edit Levels" ) PORT_DIPLOCATION("SW2:6")
-#else
- PORT_DIPNAME( 0x0400, 0x0400, DEF_STR( Unused ) ) PORT_DIPLOCATION("SW2:6") // See notes
-#endif
- PORT_DIPSETTING( 0x0400, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPNAME( 0x0200, 0x0200, DEF_STR( Allow_Continue ) ) PORT_DIPLOCATION("SW2:7")
- PORT_DIPSETTING( 0x0000, DEF_STR( No ) )
- PORT_DIPSETTING( 0x0200, DEF_STR( Yes ) )
- PORT_DIPNAME( 0x0100, 0x0000, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW2:8")
- PORT_DIPSETTING( 0x0100, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
-INPUT_PORTS_END
-
-static INPUT_PORTS_START( metlsavr )
- PORT_START("PLAYERS")
- PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1)
- PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1)
- PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1)
- PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1)
- PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1)
- PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1)
- PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1)
- PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_START1 )
- 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_LOW, IPT_START2 )
-
- PORT_START("SYSTEM")
- PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_COIN1 )
- PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_COIN2 )
- PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0008, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_VBLANK("screen") // to be confirmed
- PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN )
-
- PORT_START("DSW")
- PORT_DIPUNUSED_DIPLOC( 0x0001, IP_ACTIVE_LOW, "SW1:8" )
- PORT_DIPUNUSED_DIPLOC( 0x0002, IP_ACTIVE_LOW, "SW1:7" )
- PORT_DIPNAME( 0x000c, 0x000c, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW1:6,5")
- PORT_DIPSETTING( 0x0000, "2" )
- PORT_DIPSETTING( 0x000c, "3" )
- PORT_DIPSETTING( 0x0008, "4" )
- PORT_DIPSETTING( 0x0004, "5" )
- PORT_DIPNAME( 0x0070, 0x0070, DEF_STR( Coinage ) ) PORT_DIPLOCATION("SW1:4,3,2")
- PORT_DIPSETTING( 0x0000, DEF_STR( 5C_1C ) )
- PORT_DIPSETTING( 0x0010, DEF_STR( 4C_1C ) )
- PORT_DIPSETTING( 0x0020, DEF_STR( 3C_1C ) )
- PORT_DIPSETTING( 0x0030, DEF_STR( 2C_1C ) )
- PORT_DIPSETTING( 0x0070, DEF_STR( 1C_1C ) )
- PORT_DIPSETTING( 0x0060, DEF_STR( 1C_2C ) )
- PORT_DIPSETTING( 0x0050, DEF_STR( 1C_3C ) )
- PORT_DIPSETTING( 0x0040, DEF_STR( 1C_5C ) )
- PORT_DIPNAME( 0x0080, 0x0080, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW1:1")
- PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0080, DEF_STR( On ) )
-
- PORT_SERVICE_DIPLOC( 0x0100, IP_ACTIVE_LOW, "SW2:8" )
- PORT_DIPNAME( 0x0200, 0x0200, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW2:7") // See notes
- PORT_DIPSETTING( 0x0200, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPNAME( 0x0400, 0x0400, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW2:6") // See notes
- PORT_DIPSETTING( 0x0400, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPNAME( 0x0800, 0x0800, DEF_STR( Language ) ) PORT_DIPLOCATION("SW2:5")
- PORT_DIPSETTING( 0x0800, DEF_STR( English ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( Korean ) )
- PORT_DIPNAME( 0x3000, 0x3000, "Life Meter" ) PORT_DIPLOCATION("SW2:4,3")
- PORT_DIPSETTING( 0x0000, "66%" )
- PORT_DIPSETTING( 0x3000, "100%" )
- PORT_DIPSETTING( 0x2000, "133%" )
- PORT_DIPSETTING( 0x1000, "166%" )
- PORT_DIPNAME( 0xc000, 0xc000, "Time" ) PORT_DIPLOCATION("SW2:2,1")
- PORT_DIPSETTING( 0x4000, "30 Seconds" )
- PORT_DIPSETTING( 0x8000, "40 Seconds" )
- PORT_DIPSETTING( 0xc000, "60 Seconds" )
- PORT_DIPSETTING( 0x0000, "80 Seconds" )
-INPUT_PORTS_END
-
-static INPUT_PORTS_START( suprtrio )
- PORT_START("PLAYERS")
- PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1)
- PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1)
- PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1)
- PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1)
- PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1)
- PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1)
- PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1)
- PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_START1 )
- 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_LOW, IPT_START2 )
-
- PORT_START("SYSTEM")
- PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_COIN1 )
- PORT_BIT( 0xfffe, IP_ACTIVE_LOW, IPT_UNKNOWN )
-
- PORT_START("DSW") /* Dip switches */
- PORT_DIPNAME( 0x0007, 0x0000, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SW:8,7,6")
- PORT_DIPSETTING( 0x0006, DEF_STR( 5C_1C ) )
- PORT_DIPSETTING( 0x0005, DEF_STR( 4C_1C ) )
- PORT_DIPSETTING( 0x0004, DEF_STR( 3C_1C ) )
- PORT_DIPSETTING( 0x0003, DEF_STR( 2C_1C ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( 1C_1C ) )
- PORT_DIPSETTING( 0x0001, DEF_STR( 1C_2C ) )
- PORT_DIPSETTING( 0x0002, DEF_STR( 1C_3C ) )
- PORT_DIPSETTING( 0x0007, DEF_STR( Free_Play ) )
- PORT_DIPNAME( 0x0018, 0x0010, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW:5,4")
- PORT_DIPSETTING( 0x0000, "1" )
- PORT_DIPSETTING( 0x0008, "2" )
- PORT_DIPSETTING( 0x0010, "3" )
- PORT_DIPSETTING( 0x0018, "5" )
- PORT_DIPNAME( 0x0020, 0x0000, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW:3")
- PORT_DIPSETTING( 0x0000, DEF_STR( Normal ) )
- PORT_DIPSETTING( 0x0020, DEF_STR( Hard ) )
- PORT_DIPNAME( 0x0040, 0x0000, DEF_STR( Bonus_Life ) ) PORT_DIPLOCATION("SW:2")
- PORT_DIPSETTING( 0x0000, "50000" )
- PORT_DIPSETTING( 0x0040, "60000" )
- PORT_SERVICE_DIPLOC( 0x80, IP_ACTIVE_HIGH, "SW:1" )
- PORT_BIT( 0xff00, IP_ACTIVE_LOW, IPT_UNUSED )
-INPUT_PORTS_END
-
-static INPUT_PORTS_START( fncywld )
- PORT_START("PLAYERS")
- PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1)
- PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1)
- PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1)
- PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1)
- PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1)
- PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1)
- PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1)
- PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_START1 )
- 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_LOW, IPT_START2 )
-
- PORT_START("SYSTEM")
- PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_COIN1 )
- PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_COIN2 )
- PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_SERVICE1 )
- PORT_BIT( 0x0008, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_VBLANK("screen")
- PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN )
-
- PORT_START("DSW")
- PORT_DIPNAME( 0x00e0, 0x00e0, DEF_STR( Coinage ) )
- PORT_DIPSETTING( 0x0020, DEF_STR( 4C_1C ) )
- PORT_DIPSETTING( 0x0040, DEF_STR( 3C_1C ) )
- PORT_DIPSETTING( 0x0060, DEF_STR( 2C_1C ) )
-// PORT_DIPSETTING( 0x0000, DEF_STR( 2C_1C ) ) // duplicated setting
- PORT_DIPSETTING( 0x00e0, DEF_STR( 1C_1C ) )
- PORT_DIPSETTING( 0x00c0, DEF_STR( 1C_2C ) )
- PORT_DIPSETTING( 0x00a0, DEF_STR( 1C_3C ) )
- PORT_DIPSETTING( 0x0080, DEF_STR( 1C_4C ) )
- PORT_DIPNAME( 0x0010, 0x0010, DEF_STR( Allow_Continue ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( No ) )
- PORT_DIPSETTING( 0x0010, DEF_STR( Yes ) )
- PORT_DIPNAME( 0x0008, 0x0000, DEF_STR( Demo_Sounds ) )
- PORT_DIPSETTING( 0x0008, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPNAME( 0x0004, 0x0004, DEF_STR( Language ) ) // changes the region disclaimer and title screen only, not story text
- PORT_DIPSETTING( 0x0004, DEF_STR( English ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( Korean ) )
- PORT_DIPNAME( 0x0002, 0x0002, DEF_STR( Flip_Screen ) )
- PORT_DIPSETTING( 0x0002, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPNAME( 0x0001, 0x0001, "2 Coins to Start, 1 to Continue" )
- PORT_DIPSETTING( 0x0001, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
-
- PORT_DIPNAME( 0xc000, 0xc000, DEF_STR( Lives ) )
- PORT_DIPSETTING( 0x8000, "1" )
- PORT_DIPSETTING( 0x0000, "2" )
- PORT_DIPSETTING( 0xc000, "3" )
- PORT_DIPSETTING( 0x4000, "4" )
- PORT_DIPNAME( 0x3000, 0x3000, DEF_STR( Difficulty ) ) // to be confirmed
- PORT_DIPSETTING( 0x3000, DEF_STR( Easy ) )
- PORT_DIPSETTING( 0x2000, DEF_STR( Normal ) )
- PORT_DIPSETTING( 0x1000, DEF_STR( Hard ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( Hardest ) )
- PORT_DIPNAME( 0x0800, 0x0800, DEF_STR( Unused ) ) // See notes (is 'Remove Monsters' if code is patched to enable debug mode)
- PORT_DIPSETTING( 0x0800, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPNAME( 0x0400, 0x0400, DEF_STR( Unused ) ) // See notes (is 'Edit Levels' if code is patched to enable debug mode)
- PORT_DIPSETTING( 0x0400, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPNAME( 0x0200, 0x0200, DEF_STR( Unused ) )
- PORT_DIPSETTING( 0x0200, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPNAME( 0x0100, 0x0100, "Freeze" )
- PORT_DIPSETTING( 0x0100, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
-INPUT_PORTS_END
-
-static INPUT_PORTS_START( magipur )
- PORT_INCLUDE(fncywld)
-
- PORT_MODIFY("DSW")
- PORT_DIPNAME( 0x0004, 0x0004, DEF_STR( Unused ) )
- PORT_DIPSETTING( 0x0004, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
-INPUT_PORTS_END
-
-static INPUT_PORTS_START( htchctch )
- PORT_START("PLAYERS")
- PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1)
- PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1)
- PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1)
- PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1)
- PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1)
- PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1)
- PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* button 3 - unused */
- PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_START1 )
- 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_UNKNOWN ) /* button 3 - unused */
- PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_START2 )
-
- PORT_START("SYSTEM")
- PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_COIN1 )
- PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_COIN2 )
- PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0008, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_VBLANK("screen") // to be confirmed
- PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN )
-
- PORT_START("DSW")
- PORT_DIPUNUSED_DIPLOC( 0x0001, IP_ACTIVE_LOW, "SW1:8" )
- PORT_DIPUNUSED_DIPLOC( 0x0002, IP_ACTIVE_LOW, "SW1:7" )
- PORT_DIPUNUSED_DIPLOC( 0x0004, IP_ACTIVE_LOW, "SW1:6" )
- PORT_DIPUNUSED_DIPLOC( 0x0008, IP_ACTIVE_LOW, "SW1:5" )
- PORT_DIPUNUSED_DIPLOC( 0x0010, IP_ACTIVE_LOW, "SW1:4" )
- PORT_DIPUNUSED_DIPLOC( 0x0020, IP_ACTIVE_LOW, "SW1:3" )
- PORT_DIPUNUSED_DIPLOC( 0x0040, IP_ACTIVE_LOW, "SW1:2" )
- PORT_DIPUNUSED_DIPLOC( 0x0080, IP_ACTIVE_LOW, "SW1:1" )
-
- PORT_SERVICE_DIPLOC( 0x0100, IP_ACTIVE_LOW, "SW2:8" )
- PORT_DIPNAME( 0x0600, 0x0600, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW2:7,6")
- PORT_DIPSETTING( 0x0000, DEF_STR( Easy ) )
- PORT_DIPSETTING( 0x0600, DEF_STR( Normal ) )
- PORT_DIPSETTING( 0x0200, DEF_STR( Hard ) )
- PORT_DIPSETTING( 0x0400, DEF_STR( Very_Hard ) )
- PORT_DIPNAME( 0x3800, 0x3800, DEF_STR( Coinage ) ) PORT_DIPLOCATION("SW2:5,4,3")
- PORT_DIPSETTING( 0x0000, DEF_STR( 5C_1C ) )
- PORT_DIPSETTING( 0x2000, DEF_STR( 4C_1C ) )
- PORT_DIPSETTING( 0x1000, DEF_STR( 3C_1C ) )
- PORT_DIPSETTING( 0x3000, DEF_STR( 2C_1C ) )
- PORT_DIPSETTING( 0x3800, DEF_STR( 1C_1C ) )
- PORT_DIPSETTING( 0x2800, DEF_STR( 2C_3C ) )
- PORT_DIPSETTING( 0x1800, DEF_STR( 1C_2C ) )
- PORT_DIPSETTING( 0x0800, DEF_STR( 1C_3C ) )
- PORT_DIPNAME( 0x4000, 0x4000, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW2:2") // See notes
- PORT_DIPSETTING( 0x4000, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPNAME( 0x8000, 0x0000, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW2:1")
- PORT_DIPSETTING( 0x8000, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
-INPUT_PORTS_END
-
-static INPUT_PORTS_START( cookbib )
- PORT_START("PLAYERS")
- PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1)
- PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1)
- PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1)
- PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1)
- PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1)
- PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1)
- PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* button 3 - unused */
- PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_START1 )
- 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_UNKNOWN ) /* button 3 - unused */
- PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_START2 )
-
- PORT_START("SYSTEM")
- PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_COIN1 )
- PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_COIN2 )
- PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0008, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_VBLANK("screen") // to be confirmed
- PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN )
-
- PORT_START("DSW")
- PORT_DIPUNUSED_DIPLOC( 0x0001, IP_ACTIVE_LOW, "SW1:8" )
- PORT_DIPUNUSED_DIPLOC( 0x0002, IP_ACTIVE_LOW, "SW1:7" )
- PORT_DIPUNUSED_DIPLOC( 0x0004, IP_ACTIVE_LOW, "SW1:6" )
- PORT_DIPUNUSED_DIPLOC( 0x0008, IP_ACTIVE_LOW, "SW1:5" )
- PORT_DIPUNUSED_DIPLOC( 0x0010, IP_ACTIVE_LOW, "SW1:4" )
- PORT_DIPUNUSED_DIPLOC( 0x0020, IP_ACTIVE_LOW, "SW1:3" )
- PORT_DIPUNUSED_DIPLOC( 0x0040, IP_ACTIVE_LOW, "SW1:2" )
- PORT_DIPUNUSED_DIPLOC( 0x0080, IP_ACTIVE_LOW, "SW1:1" )
-
- PORT_SERVICE_DIPLOC( 0x0100, IP_ACTIVE_LOW, "SW2:8" )
- PORT_DIPNAME( 0x0600, 0x0600, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW2:7,6")
- PORT_DIPSETTING( 0x0000, DEF_STR( Easy ) )
- PORT_DIPSETTING( 0x0600, DEF_STR( Normal ) )
- PORT_DIPSETTING( 0x0200, DEF_STR( Hard ) )
- PORT_DIPSETTING( 0x0400, DEF_STR( Very_Hard ) )
- PORT_DIPNAME( 0x3800, 0x3800, DEF_STR( Coinage ) ) PORT_DIPLOCATION("SW2:5,4,3")
- PORT_DIPSETTING( 0x0000, DEF_STR( 5C_1C ) )
- PORT_DIPSETTING( 0x2000, DEF_STR( 4C_1C ) )
- PORT_DIPSETTING( 0x1000, DEF_STR( 3C_1C ) )
- PORT_DIPSETTING( 0x3000, DEF_STR( 2C_1C ) )
- PORT_DIPSETTING( 0x3800, DEF_STR( 1C_1C ) )
- PORT_DIPSETTING( 0x2800, DEF_STR( 2C_3C ) )
- PORT_DIPSETTING( 0x1800, DEF_STR( 1C_2C ) )
- PORT_DIPSETTING( 0x0800, DEF_STR( 1C_3C ) )
- PORT_DIPNAME( 0x4000, 0x4000, "Winning Rounds (VS Mode)" ) PORT_DIPLOCATION("SW2:2")
- PORT_DIPSETTING( 0x0000, "1" )
- PORT_DIPSETTING( 0x4000, "2" )
- PORT_DIPNAME( 0x8000, 0x0000, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW2:1")
- PORT_DIPSETTING( 0x8000, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
-INPUT_PORTS_END
-
-static INPUT_PORTS_START( chokchok )
- PORT_START("PLAYERS")
- PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1)
- PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1)
- PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1)
- PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1)
- PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1)
- PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1)
- PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* button 3 - unused */
- PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_START1 )
- 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_UNKNOWN ) /* button 3 - unused */
- PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_START2 )
-
- PORT_START("SYSTEM")
- PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_COIN1 )
- PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_COIN2 )
- PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0008, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_VBLANK("screen") // to be confirmed
- PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN )
-
- PORT_START("DSW")
- PORT_DIPNAME( 0x0001, 0x0001, "Winning Rounds" ) PORT_DIPLOCATION("SW1:8")
- PORT_DIPSETTING( 0x0000, "2" )
- PORT_DIPSETTING( 0x0001, "3" )
- PORT_DIPNAME( 0x0006, 0x0006, "Ball Speed" ) PORT_DIPLOCATION("SW1:7,6")
- PORT_DIPSETTING( 0x0000, "Slow" )
- PORT_DIPSETTING( 0x0006, DEF_STR( Normal ) )
- PORT_DIPSETTING( 0x0002, "Fast" )
- PORT_DIPSETTING( 0x0004, "Very Fast" )
- PORT_DIPNAME( 0x0018, 0x0018, "Energy Decrease" ) PORT_DIPLOCATION("SW1:5,4")
- PORT_DIPSETTING( 0x0000, "Very Small" )
- PORT_DIPSETTING( 0x0010, "Small" )
- PORT_DIPSETTING( 0x0018, DEF_STR( Normal ) )
- PORT_DIPSETTING( 0x0008, "Big" )
- PORT_DIPNAME( 0x0020, 0x0020, DEF_STR( Game_Time ) ) PORT_DIPLOCATION("SW1:3")
- PORT_DIPSETTING( 0x0020, "60 Seconds" )
- PORT_DIPSETTING( 0x0000, "90 Seconds" )
- PORT_DIPNAME( 0x00c0, 0x00c0, "Starting Balls" ) PORT_DIPLOCATION("SW1:2,1")
- PORT_DIPSETTING( 0x0000, "3" )
- PORT_DIPSETTING( 0x00c0, "4" )
- PORT_DIPSETTING( 0x0040, "5" )
- PORT_DIPSETTING( 0x0080, "6" )
-
- PORT_SERVICE_DIPLOC( 0x0100, IP_ACTIVE_LOW, "SW2:8" )
- PORT_DIPNAME( 0x0600, 0x0600, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW2:7,6")
- PORT_DIPSETTING( 0x0000, DEF_STR( Easy ) )
- PORT_DIPSETTING( 0x0600, DEF_STR( Normal ) )
- PORT_DIPSETTING( 0x0200, DEF_STR( Hard ) )
- PORT_DIPSETTING( 0x0400, DEF_STR( Very_Hard ) )
- PORT_DIPNAME( 0x3800, 0x3800, DEF_STR( Coinage ) ) PORT_DIPLOCATION("SW2:5,4,3")
- PORT_DIPSETTING( 0x0000, DEF_STR( 5C_1C ) )
- PORT_DIPSETTING( 0x2000, DEF_STR( 4C_1C ) )
- PORT_DIPSETTING( 0x1000, DEF_STR( 3C_1C ) )
- PORT_DIPSETTING( 0x3000, DEF_STR( 2C_1C ) )
- PORT_DIPSETTING( 0x3800, DEF_STR( 1C_1C ) )
- PORT_DIPSETTING( 0x2800, DEF_STR( 2C_3C ) )
- PORT_DIPSETTING( 0x1800, DEF_STR( 1C_2C ) )
- PORT_DIPSETTING( 0x0800, DEF_STR( 1C_3C ) )
- PORT_DIPNAME( 0x4000, 0x0000, DEF_STR( Language ) ) PORT_DIPLOCATION("SW2:2")
- PORT_DIPSETTING( 0x4000, DEF_STR( Korean ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( English ) )
- PORT_DIPNAME( 0x8000, 0x0000, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW2:1")
- PORT_DIPSETTING( 0x8000, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
-INPUT_PORTS_END
-
-
-static INPUT_PORTS_START( magicbal )
- PORT_START("PLAYERS")
- PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1)
- PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1)
- PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1)
- PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1)
- PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1)
- PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1)
- PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1)
- PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_START1 )
- 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_LOW, IPT_START2 )
-
- PORT_START("SYSTEM")
- PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_COIN1 )
- PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_COIN2 )
- PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0008, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_VBLANK("screen") // to be confirmed
- PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN )
-
- PORT_START("DSW") /* Switch positions based on other games - needs to be verified on real hardware!! */
- PORT_DIPNAME( 0x0003, 0x0003, "Game Time" ) PORT_DIPLOCATION("SW1:8,7") /* Only used if Game is Timed, does this control # of innings if not timed? */
- PORT_DIPSETTING( 0x0003, "5:00" )
- PORT_DIPSETTING( 0x0001, "6:00" )
- PORT_DIPSETTING( 0x0002, "7:00" )
- PORT_DIPSETTING( 0x0000, "8:00" )
- PORT_DIPNAME( 0x0004, 0x0004, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW1:6")
- PORT_DIPSETTING( 0x0004, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPNAME( 0x0038, 0x0038, DEF_STR( Coinage ) ) PORT_DIPLOCATION("SW1:5,4,3")
- PORT_DIPSETTING( 0x0000, DEF_STR( 5C_1C ) )
- PORT_DIPSETTING( 0x0020, 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( 0x0028, DEF_STR( 2C_3C ) )
- PORT_DIPSETTING( 0x0018, DEF_STR( 1C_2C ) )
- PORT_DIPSETTING( 0x0008, DEF_STR( 1C_3C ) )
- PORT_DIPNAME( 0x0040, 0x0040, "Timed Game" ) PORT_DIPLOCATION("SW1:2") /* Game is timed or by innings? */
- PORT_DIPSETTING( 0x0040, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPNAME( 0x0080, 0x0000, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW1:1")
- PORT_DIPSETTING( 0x0080, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
-
- PORT_DIPNAME( 0x0100, 0x0100, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW2:8")
- PORT_DIPSETTING( 0x0100, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPNAME( 0x0200, 0x0200, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW2:7")
- PORT_DIPSETTING( 0x0200, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPNAME( 0x0400, 0x0400, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW2:6")
- PORT_DIPSETTING( 0x0400, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPNAME( 0x0800, 0x0800, "2 Players Game" ) PORT_DIPLOCATION("SW2:5")
- PORT_DIPSETTING( 0x0000, "1 Credit" )
- PORT_DIPSETTING( 0x0800, "2 Credits" )
- PORT_DIPNAME( 0x1000, 0x1000, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW2:4")
- PORT_DIPSETTING( 0x1000, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPNAME( 0x2000, 0x2000, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW2:3")
- PORT_DIPSETTING( 0x2000, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPNAME( 0x4000, 0x4000, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW2:2")
- PORT_DIPSETTING( 0x4000, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPNAME( 0x8000, 0x8000, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW2:1")
- PORT_DIPSETTING( 0x8000, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
-INPUT_PORTS_END
-
-static INPUT_PORTS_START( wlstar )
- PORT_START("PLAYERS")
- PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1)
- PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1)
- PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1)
- PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1)
- PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1)
- PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1)
- PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1)
- PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_START1 )
- 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_LOW, IPT_START2 )
-
- PORT_START("SYSTEM")
- PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_COIN1 )
- PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_COIN2 )
- PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0008, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_VBLANK("screen") // to be confirmed
- PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN )
-
- PORT_START("DSW")
- PORT_DIPUNUSED_DIPLOC( 0x0001, IP_ACTIVE_LOW, "SW1:8" )
- PORT_DIPUNUSED_DIPLOC( 0x0002, IP_ACTIVE_LOW, "SW1:7" )
- PORT_DIPUNUSED_DIPLOC( 0x0004, IP_ACTIVE_LOW, "SW1:6" )
- PORT_DIPUNUSED_DIPLOC( 0x0008, IP_ACTIVE_LOW, "SW1:5" )
- PORT_DIPNAME( 0x0010, 0x0010, "2 Players Game" ) PORT_DIPLOCATION("SW1:4")
- PORT_DIPSETTING( 0x0000, "1 Credit" )
- PORT_DIPSETTING( 0x0010, "2 Credits" )
- PORT_DIPUNUSED_DIPLOC( 0x0020, IP_ACTIVE_LOW, "SW1:3" ) // See notes
- PORT_DIPNAME( 0x00c0, 0x00c0, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW1:2,1")
- PORT_DIPSETTING( 0x0000, DEF_STR( Easy ) )
- PORT_DIPSETTING( 0x00c0, DEF_STR( Normal ) )
- PORT_DIPSETTING( 0x0040, DEF_STR( Hard ) )
- PORT_DIPSETTING( 0x0080, DEF_STR( Hardest ) )
-
- PORT_DIPNAME( 0x0100, 0x0100, "Last Inning" ) PORT_DIPLOCATION("SW2:8") // See notes
- PORT_DIPSETTING( 0x0000, "9" )
- PORT_DIPSETTING( 0x0100, "12" )
- PORT_DIPNAME( 0x0200, 0x0200, "VS CPU Game Ends" ) PORT_DIPLOCATION("SW2:7") // See notes
- PORT_DIPSETTING( 0x0200, "+10" )
- PORT_DIPSETTING( 0x0000, "+7" )
- PORT_DIPNAME( 0x0400, 0x0400, "VS Game" ) PORT_DIPLOCATION("SW2:6")
- PORT_DIPSETTING( 0x0000, "1 Credit / 2 Innings" )
- PORT_DIPSETTING( 0x0400, "1 Credit / 3 Innings" )
- PORT_DIPNAME( 0x0800, 0x0800, "Full 2 Players Game" ) PORT_DIPLOCATION("SW2:5")
- PORT_DIPSETTING( 0x0000, "4 Credits" )
- PORT_DIPSETTING( 0x0800, "6 Credits" )
- PORT_DIPNAME( 0x7000, 0x7000, DEF_STR( Coinage ) ) PORT_DIPLOCATION("SW2:4,3,2")
- PORT_DIPSETTING( 0x0000, DEF_STR( 5C_1C ) )
- PORT_DIPSETTING( 0x4000, DEF_STR( 4C_1C ) )
- PORT_DIPSETTING( 0x2000, DEF_STR( 3C_1C ) )
- PORT_DIPSETTING( 0x6000, DEF_STR( 2C_1C ) )
- PORT_DIPSETTING( 0x7000, DEF_STR( 1C_1C ) )
- PORT_DIPSETTING( 0x5000, DEF_STR( 2C_3C ) )
- PORT_DIPSETTING( 0x3000, DEF_STR( 1C_2C ) )
- PORT_DIPSETTING( 0x1000, DEF_STR( 1C_3C ) )
- PORT_DIPNAME( 0x8000, 0x0000, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW2:1")
- PORT_DIPSETTING( 0x8000, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
-INPUT_PORTS_END
-
-static INPUT_PORTS_START( wondl96 )
- PORT_START("PLAYERS")
- PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1)
- PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1)
- PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1)
- PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1)
- PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1)
- PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1)
- PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1)
- PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_START1 )
- 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_LOW, IPT_START2 )
-
- PORT_START("SYSTEM")
- PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_COIN1 )
- PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_COIN2 )
- PORT_BIT( 0x0004, IP_ACTIVE_HIGH, IPT_UNKNOWN ) // must be high to avoid endless loops
- PORT_BIT( 0x0008, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_VBLANK("screen") // to be confirmed
- PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN )
-
- PORT_START("DSW")
- PORT_DIPNAME( 0x0001, 0x0001, DEF_STR( Free_Play ) ) PORT_DIPLOCATION("SW1:8")
- PORT_DIPSETTING( 0x0001, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPNAME( 0x000e, 0x000e, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW1:7,6,5") // See notes
- PORT_DIPSETTING( 0x000e, "0" )
- PORT_DIPSETTING( 0x0006, "1" )
- PORT_DIPSETTING( 0x000a, "2" )
- PORT_DIPSETTING( 0x0002, "3" )
- PORT_DIPSETTING( 0x000c, "4" )
- PORT_DIPSETTING( 0x0004, "5" )
- PORT_DIPSETTING( 0x0008, "6" )
- PORT_DIPSETTING( 0x0000, "7" )
- PORT_DIPNAME( 0x0010, 0x0010, "Field Color" ) PORT_DIPLOCATION("SW1:4") // See notes
- PORT_DIPSETTING( 0x0010, "Blue" )
- PORT_DIPSETTING( 0x0000, "Green" )
- PORT_DIPNAME( 0x0020, 0x0020, "VS CPU Game Ends" ) PORT_DIPLOCATION("SW1:3") // See notes
- PORT_DIPSETTING( 0x0020, "+10" )
- PORT_DIPSETTING( 0x0000, "+7" )
- PORT_DIPNAME( 0x0040, 0x0040, "VS Game" ) PORT_DIPLOCATION("SW1:2")
- PORT_DIPSETTING( 0x0000, "1 Credit / 2 Innings" )
- PORT_DIPSETTING( 0x0040, "1 Credit / 3 Innings" )
- PORT_DIPNAME( 0x0080, 0x0000, "Full 2 Players Game" ) PORT_DIPLOCATION("SW1:1")
- PORT_DIPSETTING( 0x0080, "4 Credits" )
- PORT_DIPSETTING( 0x0000, "6 Credits" )
-
- PORT_DIPUNUSED_DIPLOC( 0x0100, IP_ACTIVE_LOW, "SW2:8" )
- PORT_DIPNAME( 0x0e00, 0x0e00, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW2:7,6,5")
- PORT_DIPSETTING( 0x0400, "Level 1" )
- PORT_DIPSETTING( 0x0800, "Level 2" )
- PORT_DIPSETTING( 0x0000, "Level 3" )
- PORT_DIPSETTING( 0x0e00, "Level 4" )
- PORT_DIPSETTING( 0x0600, "Level 5" )
- PORT_DIPSETTING( 0x0a00, "Level 6" )
- PORT_DIPSETTING( 0x0200, "Level 7" )
- PORT_DIPSETTING( 0x0c00, "Level 8" )
- PORT_DIPNAME( 0x7000, 0x7000, DEF_STR( Coinage ) ) PORT_DIPLOCATION("SW2:4,3,2")
- PORT_DIPSETTING( 0x0000, DEF_STR( 5C_1C ) )
- PORT_DIPSETTING( 0x4000, DEF_STR( 4C_1C ) )
- PORT_DIPSETTING( 0x2000, DEF_STR( 3C_1C ) )
- PORT_DIPSETTING( 0x6000, DEF_STR( 2C_1C ) )
- PORT_DIPSETTING( 0x7000, DEF_STR( 1C_1C ) )
- PORT_DIPSETTING( 0x5000, DEF_STR( 2C_3C ) )
- PORT_DIPSETTING( 0x3000, DEF_STR( 1C_2C ) )
- PORT_DIPSETTING( 0x1000, DEF_STR( 1C_3C ) )
- PORT_DIPUNUSED_DIPLOC( 0x8000, IP_ACTIVE_LOW, "SW2:1" ) // See notes
-INPUT_PORTS_END
-
-static INPUT_PORTS_START( sdfight )
- PORT_START("PLAYERS")
- PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1)
- PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1)
- PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1)
- PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1)
- PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1)
- PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1)
- PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1)
- PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_START1 )
- 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_LOW, IPT_START2 )
-
- PORT_START("SYSTEM")
- PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_COIN1 )
- PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_COIN2 )
- PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0008, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_VBLANK("screen") // to be confirmed
- PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN )
-
- PORT_START("DSW")
- PORT_SERVICE_DIPLOC( 0x0001, IP_ACTIVE_LOW, "SW1:8" ) /* These dips were done from the Test mode screens */
- PORT_DIPNAME( 0x000e, 0x000e, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW1:7,6,5")
- PORT_DIPSETTING( 0x0004, "Level 1" )
- PORT_DIPSETTING( 0x0008, "Level 2" )
- PORT_DIPSETTING( 0x0000, "Level 3" )
- PORT_DIPSETTING( 0x000e, "Level 4" )
- PORT_DIPSETTING( 0x0006, "Level 5" )
- PORT_DIPSETTING( 0x000a, "Level 6" )
- PORT_DIPSETTING( 0x0002, "Level 7" )
- PORT_DIPSETTING( 0x000c, "Level 8" )
- PORT_DIPNAME( 0x0070, 0x0070, DEF_STR( Coinage ) ) PORT_DIPLOCATION("SW1:4,3,2")
- PORT_DIPSETTING( 0x0000, DEF_STR( 5C_1C ) )
- PORT_DIPSETTING( 0x0040, DEF_STR( 4C_1C ) )
- PORT_DIPSETTING( 0x0020, DEF_STR( 3C_1C ) )
- PORT_DIPSETTING( 0x0060, DEF_STR( 2C_1C ) )
- PORT_DIPSETTING( 0x0070, DEF_STR( 1C_1C ) )
- PORT_DIPSETTING( 0x0050, DEF_STR( 2C_3C ) )
- PORT_DIPSETTING( 0x0030, DEF_STR( 1C_2C ) )
- PORT_DIPSETTING( 0x0010, DEF_STR( 1C_3C ) )
- PORT_DIPNAME( 0x0080, 0x0000, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW1:1")
- PORT_DIPSETTING( 0x0080, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
-
- PORT_DIPNAME( 0x0100, 0x0100, DEF_STR( Free_Play ) ) PORT_DIPLOCATION("SW2:8") /* Only Free Play shows in Test Mode */
- PORT_DIPSETTING( 0x0100, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPNAME( 0x0200, 0x0200, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW2:7")
- PORT_DIPSETTING( 0x0200, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPNAME( 0x0400, 0x0400, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW2:6")
- PORT_DIPSETTING( 0x0400, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPNAME( 0x0800, 0x0800, "Rounds to Win" ) PORT_DIPLOCATION("SW2:5") /* Does not show up in Test Mode screen */
- PORT_DIPSETTING( 0x0800, "2 Rounds" )
- PORT_DIPSETTING( 0x0000, "3 Rounds" )
- PORT_DIPNAME( 0x1000, 0x1000, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW2:4")
- PORT_DIPSETTING( 0x1000, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPNAME( 0x2000, 0x2000, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW2:3")
- PORT_DIPSETTING( 0x2000, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPNAME( 0xc000, 0xc000, "Time" ) PORT_DIPLOCATION("SW2:2,1") /* Does not show up in Test Mode screen */
- PORT_DIPSETTING( 0x4000, "30" )
- PORT_DIPSETTING( 0x8000, "50" )
- PORT_DIPSETTING( 0xc000, "70" )
- PORT_DIPSETTING( 0x0000, "90" )
-INPUT_PORTS_END
-
-static INPUT_PORTS_START( bcstory )
- PORT_START("PLAYERS")
- PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1)
- PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1)
- PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1)
- PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1)
- PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1)
- PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1)
- PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1)
- PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_START1 )
- 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_LOW, IPT_START2 )
-
- PORT_START("SYSTEM")
- PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_COIN1 )
- PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_COIN2 )
- PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0008, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_VBLANK("screen") // to be confirmed
- PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN )
-
- PORT_START("DSW")
- PORT_SERVICE_DIPLOC( 0x0001, IP_ACTIVE_LOW, "SW1:8" )
- PORT_DIPNAME( 0x000e, 0x000e, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW1:7,6,5")
- PORT_DIPSETTING( 0x0004, "Level 1" )
- PORT_DIPSETTING( 0x0008, "Level 2" )
- PORT_DIPSETTING( 0x0000, "Level 3" )
- PORT_DIPSETTING( 0x000e, "Level 4" )
- PORT_DIPSETTING( 0x0006, "Level 5" )
- PORT_DIPSETTING( 0x000a, "Level 6" )
- PORT_DIPSETTING( 0x0002, "Level 7" )
- PORT_DIPSETTING( 0x000c, "Level 8" )
- PORT_DIPNAME( 0x0070, 0x0070, DEF_STR( Coinage ) ) PORT_DIPLOCATION("SW1:4,3,2")
- PORT_DIPSETTING( 0x0000, DEF_STR( 5C_1C ) )
- PORT_DIPSETTING( 0x0040, DEF_STR( 4C_1C ) )
- PORT_DIPSETTING( 0x0020, DEF_STR( 3C_1C ) )
- PORT_DIPSETTING( 0x0060, DEF_STR( 2C_1C ) )
- PORT_DIPSETTING( 0x0070, DEF_STR( 1C_1C ) )
- PORT_DIPSETTING( 0x0050, DEF_STR( 2C_3C ) )
- PORT_DIPSETTING( 0x0030, DEF_STR( 1C_2C ) )
- PORT_DIPSETTING( 0x0010, DEF_STR( 1C_3C ) )
- PORT_DIPNAME( 0x0080, 0x0000, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW1:1")
- PORT_DIPSETTING( 0x0080, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
-
- PORT_DIPNAME( 0x0100, 0x0100, DEF_STR( Free_Play ) ) PORT_DIPLOCATION("SW2:8")
- PORT_DIPSETTING( 0x0100, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPUNUSED_DIPLOC( 0x0200, IP_ACTIVE_LOW, "SW2:7" ) // See notes
- PORT_DIPUNUSED_DIPLOC( 0x0400, IP_ACTIVE_LOW, "SW2:6" ) // See notes
- PORT_DIPUNUSED_DIPLOC( 0x0800, IP_ACTIVE_LOW, "SW2:5" )
- PORT_DIPUNUSED_DIPLOC( 0x1000, IP_ACTIVE_LOW, "SW2:4" )
- PORT_DIPNAME( 0x2000, 0x0000, "Event Selection" ) PORT_DIPLOCATION("SW2:3") // See notes
- PORT_DIPSETTING( 0x2000, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPNAME( 0x4000, 0x4000, "Control Type" ) PORT_DIPLOCATION("SW2:2") // See notes
- PORT_DIPSETTING( 0x4000, "Joystick + Buttons" )
- PORT_DIPSETTING( 0x0000, "Buttons Only" )
- PORT_DIPNAME( 0x8000, 0x8000, "Debug Mode" ) PORT_DIPLOCATION("SW2:1") // See notes
- PORT_DIPSETTING( 0x8000, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
-INPUT_PORTS_END
-
-static INPUT_PORTS_START( semibase )
- PORT_START("PLAYERS")
- PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1)
- PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1)
- PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1)
- PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1)
- PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1)
- PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1)
- PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1)
- PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_START1 )
- 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_LOW, IPT_START2 )
-
- PORT_START("SYSTEM")
- PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_COIN1 )
- PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_COIN2 )
- PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_COIN3 ) // See notes
- PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_COIN4 ) // See notes
- PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN )
-
- PORT_START("DSW")
- PORT_SERVICE_DIPLOC( 0x0001, IP_ACTIVE_LOW, "SW1:8" )
- PORT_DIPNAME( 0x000e, 0x000e, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW1:7,6,5")
- PORT_DIPSETTING( 0x0004, "Level 1" )
- PORT_DIPSETTING( 0x0008, "Level 2" )
- PORT_DIPSETTING( 0x0000, "Level 3" )
- PORT_DIPSETTING( 0x000e, "Level 4" )
- PORT_DIPSETTING( 0x0006, "Level 5" )
- PORT_DIPSETTING( 0x000a, "Level 6" )
- PORT_DIPSETTING( 0x0002, "Level 7" )
- PORT_DIPSETTING( 0x000c, "Level 8" )
- PORT_DIPNAME( 0x0070, 0x0070, DEF_STR( Coinage ) ) PORT_DIPLOCATION("SW1:4,3,2")
- PORT_DIPSETTING( 0x0000, DEF_STR( 5C_1C ) )
- PORT_DIPSETTING( 0x0040, DEF_STR( 4C_1C ) )
- PORT_DIPSETTING( 0x0020, DEF_STR( 3C_1C ) )
- PORT_DIPSETTING( 0x0060, DEF_STR( 2C_1C ) )
- PORT_DIPSETTING( 0x0070, DEF_STR( 1C_1C ) )
- PORT_DIPSETTING( 0x0050, DEF_STR( 2C_3C ) )
- PORT_DIPSETTING( 0x0030, DEF_STR( 1C_2C ) )
- PORT_DIPSETTING( 0x0010, DEF_STR( 1C_3C ) )
- PORT_DIPNAME( 0x0080, 0x0000, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW1:1")
- PORT_DIPSETTING( 0x0080, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
-
- PORT_DIPNAME( 0x0100, 0x0100, DEF_STR( Free_Play ) ) PORT_DIPLOCATION("SW2:8")
- PORT_DIPSETTING( 0x0100, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPUNUSED_DIPLOC( 0x0200, IP_ACTIVE_LOW, "SW2:7" ) // See notes
- PORT_DIPUNUSED_DIPLOC( 0x0400, IP_ACTIVE_LOW, "SW2:6" ) // See notes
- PORT_DIPUNUSED_DIPLOC( 0x0800, IP_ACTIVE_LOW, "SW2:5" )
- PORT_DIPUNUSED_DIPLOC( 0x1000, IP_ACTIVE_LOW, "SW2:4" ) // See notes
- PORT_DIPNAME( 0x2000, 0x2000, "VS CPU Game Ends" ) PORT_DIPLOCATION("SW2:3") // See notes
- PORT_DIPSETTING( 0x2000, "+10" )
- PORT_DIPSETTING( 0x0000, "+7" )
- PORT_DIPNAME( 0x4000, 0x4000, "VS Game" ) PORT_DIPLOCATION("SW2:2") // See notes
- PORT_DIPSETTING( 0x4000, "1 Credit / 2 Innings" )
- PORT_DIPSETTING( 0x0000, "1 Credit / 3 Innings" )
- PORT_DIPNAME( 0x8000, 0x8000, "Full 2 Players Game" ) PORT_DIPLOCATION("SW2:1") // See notes
- PORT_DIPSETTING( 0x0000, "4 Credits" )
- PORT_DIPSETTING( 0x8000, "6 Credits" )
-INPUT_PORTS_END
-
-static INPUT_PORTS_START( dquizgo )
- PORT_START("PLAYERS")
- PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1)
- PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1)
- PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1)
- PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1)
- PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1)
- PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1)
- PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1)
- PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_START1 )
-
- 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_LOW, IPT_START2 )
-
- PORT_START("SYSTEM")
- PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_COIN1 )
- PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_COIN2 )
- PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0008, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_VBLANK("screen") // to be confirmed
- PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN )
-
- PORT_START("DSW")
- PORT_SERVICE_DIPLOC( 0x0001, IP_ACTIVE_LOW, "SW1:8" )
- PORT_DIPNAME( 0x000e, 0x000e, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW1:7,6,5")
- PORT_DIPSETTING( 0x0004, "Level 1" )
- PORT_DIPSETTING( 0x0008, "Level 2" )
- PORT_DIPSETTING( 0x0000, "Level 3" )
- PORT_DIPSETTING( 0x000e, "Level 4" )
- PORT_DIPSETTING( 0x0006, "Level 5" )
- PORT_DIPSETTING( 0x000a, "Level 6" )
- PORT_DIPSETTING( 0x0002, "Level 7" )
- PORT_DIPSETTING( 0x000c, "Level 8" )
- PORT_DIPNAME( 0x0070, 0x0070, DEF_STR( Coinage ) ) PORT_DIPLOCATION("SW1:4,3,2")
-// PORT_DIPSETTING( 0x0000, DEF_STR( 3C_1C ) )
-// PORT_DIPSETTING( 0x0020, DEF_STR( 3C_1C ) )
- PORT_DIPSETTING( 0x0040, DEF_STR( 3C_1C ) )
- PORT_DIPSETTING( 0x0060, DEF_STR( 2C_1C ) )
- PORT_DIPSETTING( 0x0070, DEF_STR( 1C_1C ) )
- PORT_DIPSETTING( 0x0050, DEF_STR( 2C_3C ) )
- PORT_DIPSETTING( 0x0030, DEF_STR( 1C_2C ) )
- PORT_DIPSETTING( 0x0010, DEF_STR( 1C_3C ) )
- PORT_DIPNAME( 0x0080, 0x0000, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW1:1")
- PORT_DIPSETTING( 0x0080, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
-
- PORT_DIPNAME( 0x0100, 0x0100, DEF_STR( Free_Play ) ) PORT_DIPLOCATION("SW2:8") // See notes
- PORT_DIPSETTING( 0x0100, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPUNUSED_DIPLOC( 0x0200, IP_ACTIVE_LOW, "SW2:7" )
- PORT_DIPUNUSED_DIPLOC( 0x0400, IP_ACTIVE_LOW, "SW2:6" )
- PORT_DIPUNUSED_DIPLOC( 0x0800, IP_ACTIVE_LOW, "SW2:5" )
- PORT_DIPUNUSED_DIPLOC( 0x1000, IP_ACTIVE_LOW, "SW2:4" )
- PORT_DIPUNUSED_DIPLOC( 0x2000, IP_ACTIVE_LOW, "SW2:3" )
- PORT_DIPNAME( 0xc000, 0xc000, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW2:2,1") // See notes
- PORT_DIPSETTING( 0x0000, "2" )
- PORT_DIPSETTING( 0xc000, "3" )
- PORT_DIPSETTING( 0x4000, "4" )
- PORT_DIPSETTING( 0x8000, "5" )
-INPUT_PORTS_END
-
-
-
-static INPUT_PORTS_START( carket )
- PORT_START("PLAYERS")
- PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1)
- PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1)
- PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1)
- PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1)
- PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1)
- PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1)
- PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1)
- PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_START1 )
- 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_LOW, IPT_START2 )
-
- PORT_START("SYSTEM")
- PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_COIN1 )
- PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_COIN2 )
- PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0008, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_VBLANK("screen") // to be confirmed
- PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN )
-
- PORT_START("DSW")
- PORT_SERVICE_DIPLOC( 0x0001, IP_ACTIVE_LOW, "SW1:8" )
- PORT_DIPNAME( 0x0006, 0x0006, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW1:7,6") /* "Rest Chance": 4 for Easy, 3 for Normal & Hard, 2 for Very Hard */
- PORT_DIPSETTING( 0x0000, DEF_STR( Easy ) )
- PORT_DIPSETTING( 0x0006, DEF_STR( Normal ) )
- PORT_DIPSETTING( 0x0002, DEF_STR( Hard ) )
- PORT_DIPSETTING( 0x0004, DEF_STR( Very_Hard ) )
- PORT_DIPNAME( 0x0038, 0x0038, DEF_STR( Coinage ) ) PORT_DIPLOCATION("SW1:5,4,3") /* Tested correct */
- PORT_DIPSETTING( 0x0000, DEF_STR( 5C_1C ) )
- PORT_DIPSETTING( 0x0020, 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( 0x0028, DEF_STR( 2C_3C ) )
- PORT_DIPSETTING( 0x0018, DEF_STR( 1C_2C ) )
- PORT_DIPSETTING( 0x0008, DEF_STR( 1C_3C ) )
- PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW1:2") /* Test Mode shows Language: Korean / English, but doesn't work?? */
- PORT_DIPSETTING( 0x0040, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPNAME( 0x0080, 0x0000, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW1:1")
- PORT_DIPSETTING( 0x0080, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
-
- PORT_DIPNAME( 0x0100, 0x0100, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW2:8") /* Shows as "Test Mode" - Unknown Use */
- PORT_DIPSETTING( 0x0100, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPNAME( 0x0200, 0x0200, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW2:7")
- PORT_DIPSETTING( 0x0200, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPNAME( 0x0400, 0x0400, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW2:6")
- PORT_DIPSETTING( 0x0400, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPNAME( 0x0800, 0x0800, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW2:5")
- PORT_DIPSETTING( 0x0800, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPNAME( 0x3000, 0x3000, "Default Cards" ) PORT_DIPLOCATION("SW2:4,3") /* Tested correct */
- PORT_DIPSETTING( 0x3000, "3" )
- PORT_DIPSETTING( 0x1000, "4" )
- PORT_DIPSETTING( 0x2000, "5" )
- PORT_DIPSETTING( 0x0000, "6" )
- PORT_DIPNAME( 0xc000, 0xc000, "Default Balls" ) PORT_DIPLOCATION("SW2:2,1") /* Tested correct */
- PORT_DIPSETTING( 0xc000, "6" )
- PORT_DIPSETTING( 0x4000, "9" )
- PORT_DIPSETTING( 0x8000, "12" )
- PORT_DIPSETTING( 0x0000, "15" )
-INPUT_PORTS_END
-
-
-/******************************************************************************/
-
-static const gfx_layout tcharlayout =
-{
- 8,8,
- RGN_FRAC(1,2),
- 4,
- { RGN_FRAC(1,2)+8, RGN_FRAC(1,2)+0, 8, 0 },
- { 0, 1, 2, 3, 4, 5, 6, 7 },
- { 0*16, 1*16, 2*16, 3*16, 4*16, 5*16, 6*16, 7*16 },
- 16*8
-};
-
-
-static const gfx_layout tlayout =
-{
- 16,16,
- RGN_FRAC(1,2),
- 4,
- { RGN_FRAC(1,2)+8, RGN_FRAC(1,2)+0, 8, 0 },
- { 32*8+0, 32*8+1, 32*8+2, 32*8+3, 32*8+4, 32*8+5, 32*8+6, 32*8+7,
- 0, 1, 2, 3, 4, 5, 6, 7 },
- { 0*16, 1*16, 2*16, 3*16, 4*16, 5*16, 6*16, 7*16,
- 8*16, 9*16, 10*16, 11*16, 12*16, 13*16, 14*16, 15*16 },
- 64*8
-};
-
-static const gfx_layout suprtrio_tlayout =
-{
- 16,16,
- RGN_FRAC(1,4),
- 4,
- { RGN_FRAC(2,4),RGN_FRAC(0,4), RGN_FRAC(3,4), RGN_FRAC(1,4) },
-
- { 0, 1, 2, 3, 4, 5, 6, 7,16*8+0, 16*8+1, 16*8+2, 16*8+3, 16*8+4, 16*8+5, 16*8+6,16*8+7 },
- { 1*8, 0*8, 2*8, 3*8, 5*8, 4*8, 6*8, 7*8,
- 8*8, 9*8, 10*8, 11*8, 12*8, 13*8, 14*8, 15*8 },
- 32*8
-};
-
-
-static GFXDECODE_START( gfx_tumbleb )
- GFXDECODE_ENTRY( "tilegfx", 0, tcharlayout, 256, 16 ) /* Characters 8x8 */
- GFXDECODE_ENTRY( "tilegfx", 0, tlayout, 512, 16 ) /* Tiles 16x16 */
- GFXDECODE_ENTRY( "tilegfx", 0, tlayout, 256, 16 ) /* Tiles 16x16 */
- GFXDECODE_ENTRY( "sprgfx", 0, tlayout, 0, 16 ) /* Sprites 16x16 */
-GFXDECODE_END
-
-static GFXDECODE_START( gfx_suprtrio )
- GFXDECODE_ENTRY( "tilegfx", 0, tcharlayout, 256, 16 ) /* Characters 8x8 */
- GFXDECODE_ENTRY( "tilegfx", 0, suprtrio_tlayout, 512, 16 ) /* Tiles 16x16 */
- GFXDECODE_ENTRY( "tilegfx", 0, suprtrio_tlayout, 256, 16 ) /* Tiles 16x16 */
- GFXDECODE_ENTRY( "sprgfx", 0, tlayout, 0, 16 ) /* Sprites 16x16 */
-GFXDECODE_END
-
-static GFXDECODE_START( gfx_fncywld )
- GFXDECODE_ENTRY( "tilegfx", 0, tcharlayout, 0x400, 0x40 ) /* Characters 8x8 */
- GFXDECODE_ENTRY( "tilegfx", 0, tlayout, 0x400, 0x40 ) /* Tiles 16x16 */
- GFXDECODE_ENTRY( "tilegfx", 0, tlayout, 0x200, 0x40 ) /* Tiles 16x16 */
- GFXDECODE_ENTRY( "sprgfx", 0, tlayout, 0x000, 0x40 ) /* Sprites 16x16 */
-GFXDECODE_END
-
-/******************************************************************************/
-
-
-MACHINE_START_MEMBER(tumbleb_state,tumbleb)
-{
- save_item(NAME(m_music_command));
- save_item(NAME(m_music_bank));
- save_item(NAME(m_music_is_playing));
-
- save_item(NAME(m_control_0));
- save_item(NAME(m_tilebank));
-}
-
-MACHINE_RESET_MEMBER(tumbleb_state,tumbleb)
-{
- m_music_command = 0;
- m_music_bank = 0;
- m_music_is_playing = 0;
- m_tilebank = 0;
- memset(m_control_0, 0, sizeof(m_control_0));
- m_semicom_prot_offset = 0;
-}
-
-void tumbleb_state::tumblepb(machine_config &config)
-{
- /* basic machine hardware */
- M68000(config, m_maincpu, 14000000);
- m_maincpu->set_addrmap(AS_PROGRAM, &tumbleb_state::tumblepopb_main_map);
- m_maincpu->set_vblank_int("screen", FUNC(tumbleb_state::irq6_line_hold));
-
- MCFG_MACHINE_START_OVERRIDE(tumbleb_state,tumbleb)
- MCFG_MACHINE_RESET_OVERRIDE(tumbleb_state,tumbleb)
-
- /* video hardware */
- SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
- m_screen->set_refresh_hz(58);
- m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(529));
- m_screen->set_size(40*8, 32*8);
- m_screen->set_visarea(0*8, 40*8-1, 1*8, 31*8-1);
- m_screen->set_screen_update(FUNC(tumbleb_state::screen_update_tumblepb));
- m_screen->set_palette(m_palette);
-
- DECO_SPRITE(config, m_sprgen, 0);
- m_sprgen->set_gfx_region(3);
- m_sprgen->set_is_bootleg(true);
- m_sprgen->set_gfxdecode_tag(m_gfxdecode);
-
- GFXDECODE(config, m_gfxdecode, m_palette, gfx_tumbleb);
- PALETTE(config, m_palette).set_format(palette_device::xBGR_444, 1024);
-
- MCFG_VIDEO_START_OVERRIDE(tumbleb_state,tumblepb)
-
- /* sound hardware */
- SPEAKER(config, "mono").front_center();
-
- OKIM6295(config, m_oki, 8000000/10, okim6295_device::PIN7_HIGH).add_route(ALL_OUTPUTS, "mono", 0.70);
-}
-
-void tumbleb_state::tumblepba(machine_config &config)
-{
- tumblepb(config);
- m_maincpu->set_addrmap(AS_PROGRAM, &tumbleb_state::tumblepopba_main_map);
-}
-
-void tumbleb_state::tumbleb2(machine_config &config)
-{
- /* basic machine hardware */
- M68000(config, m_maincpu, 14000000);
- m_maincpu->set_addrmap(AS_PROGRAM, &tumbleb_state::tumblepopb_main_map);
- m_maincpu->set_vblank_int("screen", FUNC(tumbleb_state::tumbleb2_interrupt));
-
- MCFG_MACHINE_START_OVERRIDE(tumbleb_state,tumbleb)
- MCFG_MACHINE_RESET_OVERRIDE(tumbleb_state,tumbleb)
-
- /* video hardware */
- SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
- m_screen->set_refresh_hz(58);
- m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(529));
- m_screen->set_size(40*8, 32*8);
- m_screen->set_visarea(0*8, 40*8-1, 1*8, 31*8-1);
- m_screen->set_screen_update(FUNC(tumbleb_state::screen_update_tumblepb));
- m_screen->set_palette(m_palette);
-
- DECO_SPRITE(config, m_sprgen, 0);
- m_sprgen->set_gfx_region(3);
- m_sprgen->set_is_bootleg(true);
- m_sprgen->set_gfxdecode_tag(m_gfxdecode);
-
- GFXDECODE(config, m_gfxdecode, m_palette, gfx_tumbleb);
- PALETTE(config, m_palette).set_format(palette_device::xBGR_444, 1024);
-
- MCFG_VIDEO_START_OVERRIDE(tumbleb_state,tumblepb)
-
- /* sound hardware */
- SPEAKER(config, "mono").front_center();
-
- OKIM6295(config, m_oki, 8000000/10, okim6295_device::PIN7_HIGH).add_route(ALL_OUTPUTS, "mono", 0.70);
-}
-
-void tumbleb_pic_state::funkyjetb(machine_config &config)
-{
- tumbleb2(config);
-
- m_maincpu->set_addrmap(AS_PROGRAM, &tumbleb_pic_state::funkyjetb_map);
- m_maincpu->set_vblank_int("screen", FUNC(tumbleb_pic_state::irq6_line_hold));
-
- GENERIC_LATCH_8(config, m_soundlatch);
- m_soundlatch->set_separate_acknowledge(true);
-
- pic16c57_device &pic(PIC16C57(config, "pic", XTAL(8'000'000)/2)); // 8MHz xtal on the PCB, divider unconfirmed
- pic.write_a().set(FUNC(tumbleb_pic_state::oki_bank_w));
- pic.read_b().set(FUNC(tumbleb_pic_state::pic_data_r));
- pic.write_b().set(FUNC(tumbleb_pic_state::pic_data_w));
- pic.read_c().set(m_soundlatch, FUNC(generic_latch_8_device::pending_r)).bit(6);
- pic.write_c().set(FUNC(tumbleb_pic_state::pic_ctrl_w));
-
- m_oki->set_addrmap(0, &tumbleb_pic_state::funkyjetb_oki_map);
-}
-
-void tumbleb_state::jumpkids(machine_config &config) // OSCs: 12MHz, 8MHz & 14.31818MHz
-{
- /* basic machine hardware */
- M68000(config, m_maincpu, 12_MHz_XTAL);
- m_maincpu->set_addrmap(AS_PROGRAM, &tumbleb_state::jumpkids_main_map);
- m_maincpu->set_vblank_int("screen", FUNC(tumbleb_state::irq6_line_hold));
-
- Z80(config, m_audiocpu, 8_MHz_XTAL/2);
- m_audiocpu->set_addrmap(AS_PROGRAM, &tumbleb_state::jumpkids_sound_map);
-
- MCFG_MACHINE_START_OVERRIDE(tumbleb_state,tumbleb)
- MCFG_MACHINE_RESET_OVERRIDE(tumbleb_state,tumbleb)
-
- /* video hardware */
- SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
- m_screen->set_refresh_hz(60);
- m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(529));
- m_screen->set_size(40*8, 32*8);
- m_screen->set_visarea(0*8, 40*8-1, 1*8, 31*8-1);
- m_screen->set_screen_update(FUNC(tumbleb_state::screen_update_jumpkids));
- m_screen->set_palette(m_palette);
-
- DECO_SPRITE(config, m_sprgen, 0);
- m_sprgen->set_gfx_region(3);
- m_sprgen->set_is_bootleg(true);
- m_sprgen->set_gfxdecode_tag(m_gfxdecode);
-
- GFXDECODE(config, m_gfxdecode, m_palette, gfx_tumbleb);
- PALETTE(config, m_palette).set_format(palette_device::xBGR_444, 1024);
-
- MCFG_VIDEO_START_OVERRIDE(tumbleb_state,tumblepb)
-
- /* sound hardware */
- SPEAKER(config, "mono").front_center();
-
- GENERIC_LATCH_8(config, m_soundlatch);
-
- OKIM6295(config, m_oki, 8_MHz_XTAL/8, okim6295_device::PIN7_HIGH).add_route(ALL_OUTPUTS, "mono", 0.70);
-}
-
-void tumbleb_state::fncywld(machine_config &config) // OSCs: 12MHz, 4MHz & 28.63636MHz
-{
- /* basic machine hardware */
- M68000(config, m_maincpu, 12_MHz_XTAL);
- m_maincpu->set_addrmap(AS_PROGRAM, &tumbleb_state::fncywld_main_map);
- m_maincpu->set_vblank_int("screen", FUNC(tumbleb_state::irq6_line_hold));
-
- MCFG_MACHINE_START_OVERRIDE(tumbleb_state,tumbleb)
- MCFG_MACHINE_RESET_OVERRIDE(tumbleb_state,tumbleb)
-
- /* video hardware */
- SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
- m_screen->set_refresh_hz(60);
- m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(529));
- m_screen->set_size(40*8, 32*8);
- m_screen->set_visarea(0*8, 40*8-1, 1*8, 31*8-1);
- m_screen->set_screen_update(FUNC(tumbleb_state::screen_update_fncywld));
- m_screen->set_palette(m_palette);
-
- DECO_SPRITE(config, m_sprgen, 0);
- m_sprgen->set_gfx_region(3);
- m_sprgen->set_is_bootleg(true);
- m_sprgen->set_transpen(15);
- m_sprgen->set_gfxdecode_tag(m_gfxdecode);
-
- GFXDECODE(config, m_gfxdecode, m_palette, gfx_fncywld);
- PALETTE(config, m_palette).set_format(palette_device::xRGB_444, 0x800);
-
- MCFG_VIDEO_START_OVERRIDE(tumbleb_state,fncywld)
-
- /* sound hardware */
- SPEAKER(config, "mono").front_center();
-
- YM2151(config, "ymsnd", 4_MHz_XTAL).add_route(ALL_OUTPUTS, "mono", 0.10);
-
- OKIM6295(config, m_oki, 4_MHz_XTAL/4, okim6295_device::PIN7_HIGH).add_route(ALL_OUTPUTS, "mono", 1.0); // clock frequency & pin 7 not verified
-}
-
-void tumbleb_state::magipur(machine_config &config) // OSCs: 12MHz, 4MHz, 28.63636MHz, not the same PCB as fncywld
-{
- /* basic machine hardware */
- M68000(config, m_maincpu, XTAL(12'000'000));
- m_maincpu->set_addrmap(AS_PROGRAM, &tumbleb_state::magipur_main_map);
- m_maincpu->set_vblank_int("screen", FUNC(tumbleb_state::irq6_line_hold));
-
- MCFG_MACHINE_START_OVERRIDE(tumbleb_state,tumbleb)
- MCFG_MACHINE_RESET_OVERRIDE(tumbleb_state,tumbleb)
-
- /* video hardware */
- SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
- m_screen->set_refresh_hz(60); // refresh rate not verified
- m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(529));
- m_screen->set_size(40*8, 32*8);
- m_screen->set_visarea(0*8, 40*8-1, 1*8, 31*8-1);
- m_screen->set_screen_update(FUNC(tumbleb_state::screen_update_fncywld));
- m_screen->set_palette(m_palette);
-
- DECO_SPRITE(config, m_sprgen, 0);
- m_sprgen->set_gfx_region(3);
- m_sprgen->set_is_bootleg(true);
- m_sprgen->set_transpen(15);
- m_sprgen->set_gfxdecode_tag(m_gfxdecode);
-
- GFXDECODE(config, m_gfxdecode, m_palette, gfx_fncywld);
- PALETTE(config, m_palette).set_format(palette_device::xRGB_444, 0x800);
-
- MCFG_VIDEO_START_OVERRIDE(tumbleb_state,fncywld)
-
- /* sound hardware */
- SPEAKER(config, "mono").front_center();
-
- YM2151(config, "ymsnd", XTAL(4'000'000)).add_route(ALL_OUTPUTS, "mono", 0.10);
-
- OKIM6295(config, m_oki, XTAL(4'000'000)/4, okim6295_device::PIN7_HIGH).add_route(ALL_OUTPUTS, "mono", 1.0); // clock frequency & pin 7 not verified
-}
-
-
-MACHINE_RESET_MEMBER(tumbleb_state,htchctch)
-{
- if (memregion("user1") != nullptr)
- {
- /* copy protection data every reset */
- uint16_t *PROTDATA = (uint16_t*)memregion("user1")->base();
- int i, len = memregion("user1")->bytes();
-
- for (i = 0; i < len / 2; i++)
- m_mainram[0x000 / 2 + i] = PROTDATA[i];
- }
-
- MACHINE_RESET_CALL_MEMBER(tumbleb);
-}
-
-void tumbleb_state::htchctch(machine_config &config) // OSCs: 15MHz, 4.096MHz
-{
- /* basic machine hardware */
- M68000(config, m_maincpu, 15_MHz_XTAL); /* verified */
- m_maincpu->set_addrmap(AS_PROGRAM, &tumbleb_state::htchctch_main_map);
- m_maincpu->set_vblank_int("screen", FUNC(tumbleb_state::irq6_line_hold));
-
- Z80(config, m_audiocpu, 15_MHz_XTAL/4); /* 3.75MHz verified on dquizgo */
- m_audiocpu->set_addrmap(AS_PROGRAM, &tumbleb_state::semicom_sound_map);
-
- MCFG_MACHINE_START_OVERRIDE(tumbleb_state,tumbleb)
- MCFG_MACHINE_RESET_OVERRIDE(tumbleb_state,htchctch)
-
- /* video hardware */
- SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
- m_screen->set_refresh_hz(60);
- m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(2400)); // ?? cookbib needs it above ~2400 or the Joystick on the How to Play screen is the wrong colour?!
- m_screen->set_size(40*8, 32*8);
- m_screen->set_visarea(0*8, 40*8-1, 1*8, 31*8-1);
- m_screen->set_screen_update(FUNC(tumbleb_state::screen_update_semicom));
- m_screen->set_palette(m_palette);
-
- DECO_SPRITE(config, m_sprgen, 0);
- m_sprgen->set_gfx_region(3);
- m_sprgen->set_is_bootleg(true);
- m_sprgen->set_gfxdecode_tag(m_gfxdecode);
-
- GFXDECODE(config, m_gfxdecode, m_palette, gfx_tumbleb);
- PALETTE(config, m_palette).set_format(palette_device::xBGR_555, 1024);
-
- MCFG_VIDEO_START_OVERRIDE(tumbleb_state,tumblepb)
-
- /* sound hardware - same as hyperpac */
- SPEAKER(config, "mono").front_center();
-
- GENERIC_LATCH_8(config, m_soundlatch);
-
- /* on at least hatch catch, cookie & bibi and choky choky the YM2151 clock is connected directly to the Z80 clock so the speed should match */
- ym2151_device &ymsnd(YM2151(config, "ymsnd", 15_MHz_XTAL/4)); /* 3.75MHz verified */
- ymsnd.irq_handler().set_inputline(m_audiocpu, 0);
- ymsnd.add_route(ALL_OUTPUTS, "mono", 0.10);
-
- /* correct for cookie & bibi and hatch catch, (4096000/4) */
- OKIM6295(config, m_oki, 4.096_MHz_XTAL/4, okim6295_device::PIN7_HIGH);
- m_oki->add_route(ALL_OUTPUTS, "mono", 1.0);
-}
-
-void tumbleb_state::htchctch_mcu(machine_config &config) // OSCs: 15MHz, 4.096MHz
-{
- htchctch(config);
-
- i87c52_device &prot(I87C52(config, "protection", 15_MHz_XTAL)); // decapped as 87C51FA (chip was marked as P87C52)
- prot.port_out_cb<0>().set(FUNC(tumbleb_state::prot_p0_w));
- prot.port_out_cb<1>().set(FUNC(tumbleb_state::prot_p1_w));
- prot.port_out_cb<2>().set(FUNC(tumbleb_state::prot_p2_w));
-}
-
-void tumbleb_state::cookbib(machine_config &config)
-{
- htchctch(config);
- m_screen->set_screen_update(FUNC(tumbleb_state::screen_update_semicom_altoffsets));
-}
-
-// some Choky! Choky! PCBs have left factory with a 3.57mhz while some have a 4.096 which matches other games, assuming the former are factory errors
-void tumbleb_state::chokchok(machine_config &config) // OSCs: 15MHz, 4.096MHz
-{
- htchctch_mcu(config);
-
- m_palette->set_format(palette_device::xBGR_444, 1024);
-}
-
-void tumbleb_state::cookbib_mcu(machine_config &config) // OSCs: 15MHz, 4.096MHz
-{
- htchctch(config);
-
- /* basic machine hardware */
- at89c52_device &prot(AT89C52(config, "protection", 15_MHz_XTAL));
- prot.port_out_cb<0>().set(FUNC(tumbleb_state::prot_p0_w));
- prot.port_out_cb<1>().set(FUNC(tumbleb_state::prot_p1_w));
- prot.port_out_cb<2>().set(FUNC(tumbleb_state::prot_p2_w));
-
- /* video hardware */
- m_screen->set_screen_update(FUNC(tumbleb_state::screen_update_semicom_altoffsets));
-}
-
-void tumbleb_state::bcstory(machine_config &config) // OSCs: 15MHz, 4.096MHz
-{
- htchctch(config);
- m_screen->set_screen_update(FUNC(tumbleb_state::screen_update_bcstory));
-}
-
-void tumbleb_state::semibase(machine_config &config) // OSCs: 15MHz, 4.096MHz
-{
- htchctch(config);
- m_screen->set_screen_update(FUNC(tumbleb_state::screen_update_semibase));
-}
-
-void tumbleb_state::sdfight(machine_config &config) // OSCs: 15MHz, 4.096MHz
-{
- htchctch(config);
- MCFG_VIDEO_START_OVERRIDE(tumbleb_state,sdfight)
- m_screen->set_screen_update(FUNC(tumbleb_state::screen_update_sdfight));
-}
-
-void tumbleb_state::metlsavr(machine_config &config)// OSCs: 14MHz, 3.579545MHz
-{
- cookbib(config);
- m_palette->set_format(palette_device::xBGR_444, 1024);
-
- subdevice<ym2151_device>("ymsnd")->set_clock(3.579545_MHz_XTAL);
-}
-
-
-void tumbleb_state::suprtrio(machine_config &config) // OSCs: 14MHz, 12MHz & 8MHz
-{
- /* basic machine hardware */
- M68000(config, m_maincpu, 14_MHz_XTAL); /* 14mhz should be correct, but lots of sprite flicker later in game */
- m_maincpu->set_addrmap(AS_PROGRAM, &tumbleb_state::suprtrio_main_map);
- m_maincpu->set_vblank_int("screen", FUNC(tumbleb_state::irq6_line_hold));
-
- Z80(config, m_audiocpu, 8_MHz_XTAL/2);
- m_audiocpu->set_addrmap(AS_PROGRAM, &tumbleb_state::suprtrio_sound_map);
-
- MCFG_MACHINE_START_OVERRIDE(tumbleb_state,tumbleb)
- MCFG_MACHINE_RESET_OVERRIDE(tumbleb_state,tumbleb)
-
- /* video hardware */
- SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
- m_screen->set_refresh_hz(60);
- m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(529));
- m_screen->set_size(40*8, 32*8);
- m_screen->set_visarea(0*8, 40*8-1, 1*8-1, 31*8-2);
- m_screen->set_screen_update(FUNC(tumbleb_state::screen_update_suprtrio));
- m_screen->set_palette("palette");
-
- DECO_SPRITE(config, m_sprgen, 0);
- m_sprgen->set_gfx_region(3);
- m_sprgen->set_is_bootleg(true);
- m_sprgen->set_gfxdecode_tag(m_gfxdecode);
-
- GFXDECODE(config, m_gfxdecode, m_palette, gfx_suprtrio);
- PALETTE(config, m_palette).set_format(palette_device::xBGR_555, 1024);
-
- MCFG_VIDEO_START_OVERRIDE(tumbleb_state,suprtrio)
-
- /* sound hardware */
- SPEAKER(config, "mono").front_center();
-
- GENERIC_LATCH_8(config, m_soundlatch);
-
- OKIM6295(config, m_oki, 8_MHz_XTAL/8, okim6295_device::PIN7_HIGH);
- m_oki->add_route(ALL_OUTPUTS, "mono", 0.50);
-}
-
-void tumbleb_state::pangpang(machine_config &config) // OSCs: 14MHz, 12MHz & 8MHz
-{
- /* basic machine hardware */
- M68000(config, m_maincpu, 14_MHz_XTAL);
- m_maincpu->set_addrmap(AS_PROGRAM, &tumbleb_state::pangpang_main_map);
- m_maincpu->set_vblank_int("screen", FUNC(tumbleb_state::tumbleb2_interrupt));
-
- MCFG_MACHINE_START_OVERRIDE(tumbleb_state,tumbleb)
- MCFG_MACHINE_RESET_OVERRIDE(tumbleb_state,tumbleb)
-
- /* video hardware */
- SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
- m_screen->set_refresh_hz(58);
- m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(1529));
- m_screen->set_size(40*8, 32*8);
- m_screen->set_visarea(0*8, 40*8-1, 1*8, 31*8-1);
- m_screen->set_screen_update(FUNC(tumbleb_state::screen_update_pangpang));
- m_screen->set_palette(m_palette);
-
- DECO_SPRITE(config, m_sprgen, 0);
- m_sprgen->set_gfx_region(3);
- m_sprgen->set_is_bootleg(true);
- m_sprgen->set_gfxdecode_tag(m_gfxdecode);
-
- GFXDECODE(config, m_gfxdecode, "palette", gfx_tumbleb);
- PALETTE(config, m_palette).set_format(palette_device::xBGR_444, 1024);
-
- MCFG_VIDEO_START_OVERRIDE(tumbleb_state,pangpang)
-
- /* sound hardware */
- SPEAKER(config, "mono").front_center();
-
- OKIM6295(config, m_oki, 8_MHz_XTAL/8, okim6295_device::PIN7_HIGH);
- m_oki->add_route(ALL_OUTPUTS, "mono", 0.70);
-}
-
-/******************************************************************************/
-
-ROM_START( tumbleb )
- ROM_REGION( 0x80000, "maincpu", 0 ) /* 68000 code */
- ROM_LOAD16_BYTE ("thumbpop.12", 0x00000, 0x40000, CRC(0c984703) SHA1(588d2b2464e0027c8d0703a2b62ebda225ba4276) )
- ROM_LOAD16_BYTE( "thumbpop.13", 0x00001, 0x40000, CRC(864c4053) SHA1(013eb35e79aa7a7cd1a8061c4b75b37a8bfb10c6) )
-
- ROM_REGION( 0x080000, "tilegfx", 0 )
- ROM_LOAD16_BYTE( "thumbpop.19", 0x00000, 0x40000, CRC(0795aab4) SHA1(85b38804446f6b0b4d8c3a59a8958d520c567a4e) )
- ROM_LOAD16_BYTE( "thumbpop.18", 0x00001, 0x40000, CRC(ad58df43) SHA1(2e562bfffb42543af767dd9e82a1d2465dfcd8b8) )
-
- ROM_REGION( 0x100000, "sprgfx", 0 )
- ROM_LOAD( "map-01.rom", 0x00000, 0x80000, CRC(e81ffa09) SHA1(01ada9557ead91eb76cf00db118d6c432104a398) )
- ROM_LOAD( "map-00.rom", 0x80000, 0x80000, CRC(8c879cfe) SHA1(a53ef7811f14a8b105749b1cf29fe8a3a33bab5e) )
-
- ROM_REGION( 0x80000, "oki", 0 ) /* Oki samples */
- ROM_LOAD( "thumbpop.snd", 0x00000, 0x80000, CRC(fabbf15d) SHA1(de60be43a5cd1d4b93c142bde6cbfc48a25545a3) )
-ROM_END
-
-ROM_START( tumbleb2 )
- ROM_REGION( 0x80000, "maincpu", 0 ) /* 27c208, 68000 code */
- ROM_LOAD16_BYTE ("wj-2", 0x00000, 0x40000, CRC(34b016e1) SHA1(b4c496358d48469d170a69e8bba58e0ea919b418) )
- ROM_LOAD16_BYTE( "wj-3", 0x00001, 0x40000, CRC(89501c71) SHA1(2c202218934b845fdf7c99eaf280dccad90767f2) )
-
- ROM_REGION( 0x2d4c, "cpu1", 0 ) /* PIC16c57 */
- ROM_LOAD( "pic_16c57", 0x00000, 0x2d4c, NO_DUMP ) // protected
-
- ROM_REGION( 0x080000, "tilegfx", 0 ) // 27c208
- ROM_LOAD16_BYTE( "wj-9", 0x00000, 0x40000, CRC(0795aab4) SHA1(85b38804446f6b0b4d8c3a59a8958d520c567a4e) )
- ROM_LOAD16_BYTE( "wj-8", 0x00001, 0x40000, CRC(ad58df43) SHA1(2e562bfffb42543af767dd9e82a1d2465dfcd8b8) )
-
- ROM_REGION( 0x100000, "sprgfx", 0 ) // in the 0.35 beta cycle this bootleg was added with the same sprite ROMs as the original, but a PCB was found with the following 27c208 ROMs
- ROM_LOAD16_BYTE( "wj-6", 0x00000, 0x40000, CRC(ee91db18) SHA1(06a2f15228a8233b685506077ed1248cd5fc3bb3) ) // map-01.rom [even] IDENTICAL
- ROM_LOAD16_BYTE( "wj-7", 0x00001, 0x40000, CRC(87cffb06) SHA1(db3adbbf33cdbff72b6c5ee1228c760cc4897ad0) ) // map-01.rom [odd] IDENTICAL
- ROM_LOAD16_BYTE( "wj-4", 0x80000, 0x40000, CRC(79a29725) SHA1(c47366dedaf821f452d8e5394d426f18a79d615e) ) // map-00.rom [even] IDENTICAL
- ROM_LOAD16_BYTE( "wj-5", 0x80001, 0x40000, CRC(dda8932e) SHA1(bd20806916cc5774a5cc70907d88c7ab4eb7ac14) ) // map-00.rom [odd] IDENTICAL
- //ROM_LOAD( "map-01.rom", 0x00000, 0x80000, CRC(e81ffa09) SHA1(01ada9557ead91eb76cf00db118d6c432104a398) )
- //ROM_LOAD( "map-00.rom", 0x80000, 0x80000, CRC(8c879cfe) SHA1(a53ef7811f14a8b105749b1cf29fe8a3a33bab5e) )
-
- ROM_REGION( 0x100000, "oki", 0 ) /* 27c408, Oki samples */
- ROM_LOAD( "wj-1", 0x00000, 0x80000, CRC(fabbf15d) SHA1(de60be43a5cd1d4b93c142bde6cbfc48a25545a3) )
- ROM_RELOAD(0x80000,0x80000)
-
- ROM_REGION(0x1500, "plds", 0 ) // not dumped ones are soldered
- ROM_LOAD( "palce16v8.1", 0x0000, 0x104, NO_DUMP )
- ROM_LOAD( "palce20v8.2", 0x0000, 0x157, NO_DUMP )
- ROM_LOAD( "palce16v8.3", 0x0200, 0x104, NO_DUMP )
- ROM_LOAD( "palce16v8.4", 0x0400, 0x104, NO_DUMP )
- ROM_LOAD( "palce16v8.5", 0x0600, 0x104, NO_DUMP )
- ROM_LOAD( "palce16v8.6", 0x0800, 0x104, NO_DUMP )
- ROM_LOAD( "palce16v8.7", 0x0a00, 0x104, NO_DUMP )
- ROM_LOAD( "palce22v10.8", 0x0c00, 0x2dd, NO_DUMP )
- ROM_LOAD( "palce22v10.9", 0x0f00, 0x2dd, NO_DUMP )
- ROM_LOAD( "palce16v8h.10", 0x1100, 0x117, CRC(eef433f9) SHA1(996bfb88d114b661265edc975eef4c24d0f07b55) )
- ROM_LOAD( "palce16v8.11", 0x1300, 0x104, NO_DUMP )
-ROM_END
-
-// different sprite / tilemap handling, might be Playmark style, it had Playmark stickers on the ROMs
-ROM_START( tumblepba )
- ROM_REGION( 0x80000, "maincpu", 0 ) /* 68000 code */
- ROM_LOAD16_BYTE( "2.ic83", 0x00000, 0x40000, CRC(b6b50b17) SHA1(e82886efc29f6f67d06e23df42eb970262445d6d) )
- ROM_LOAD16_BYTE ("1.ic82", 0x00001, 0x40000, CRC(f1b514a7) SHA1(046bfc40f8bfe85bcd6e9700d5759a1cf959d421) )
-
- ROM_REGION( 0x080000, "tilegfx", 0 )
- ROM_LOAD16_BYTE( "11.ic116", 0x00000, 0x20000, CRC(76cb97bb) SHA1(9e42f003774f70fa19cdb1799135c25aed13383c) )
- ROM_LOAD16_BYTE( "10.ic118", 0x00001, 0x20000, CRC(0b38b5ba) SHA1(2ee834a65fba098e9c4f633cfb049b33c9b90d2c) )
- ROM_LOAD16_BYTE( "9.ic120", 0x40000, 0x20000, CRC(56037b6d) SHA1(58e39f2c3525ba3ec3a2d5fd9b2c4a3e5071b7e6) )
- ROM_LOAD16_BYTE( "8.ic122", 0x40001, 0x20000, CRC(9ef861b6) SHA1(555f6fe08137807b4c7f3b1beeed6d853e3ed649) )
-
- ROM_REGION( 0x100000, "sprgfx", 0 )
- ROM_LOAD16_BYTE( "5.ic119", 0x00000, 0x40000, CRC(59ba9cdb) SHA1(1800a904ce7c651c859551c933c17682708ab303) )
- ROM_LOAD16_BYTE( "4.ic121", 0x00001, 0x40000, CRC(358cb2a8) SHA1(1faf75753fec3d4dfae208dc7eca2fb63ce52eb6) )
- ROM_LOAD16_BYTE( "7.ic115", 0x80000, 0x40000, CRC(0273eec0) SHA1(305d1a111f04650b7e3616fb6ecac1c579312acc) )
- ROM_LOAD16_BYTE( "6.ic117", 0x80001, 0x40000, CRC(7f8daf52) SHA1(aa5f111a9c75c260bb77878bb95c1e34d70ea7b6) )
-
- ROM_REGION( 0x100000, "oki", 0 ) /* Oki samples */
- ROM_LOAD( "3.ic24", 0x00000, 0x80000, CRC(63e45de7) SHA1(417f945ee8cf820b1733c4dee26ef05e91e80457) )
- ROM_RELOAD(0x80000,0x80000)
-ROM_END
-
-ROM_START( funkyjetb )
- ROM_REGION( 0x80000, "maincpu", 0 ) /* 68000 code */
- ROM_LOAD16_BYTE( "4-27c020.bin", 0x00000, 0x40000, CRC(4e5bfda3) SHA1(b1bcc4ad1343d379de9a143a72a84db9830c8fa0) )
- ROM_LOAD16_BYTE( "3-27c020.bin", 0x00001, 0x40000, CRC(e253e20c) SHA1(6fe1704872bf807ed24f500c997f62c880f6c5c1) )
-
- ROM_REGION( 0x1000, "pic", 0 ) /* Sound CPU */
- ROM_LOAD( "1-pic16c57-xt.bin", 0x00000, 0x1000, CRC(653ed006) SHA1(38b7c7b3f40d73e2e7c4361c918eaf4bba2bdc3c) ) // From decap
-
- ROM_REGION( 0x080000, "tilegfx", 0 )
- ROM_LOAD16_BYTE( "5-27c020.bin", 0x000000, 0x40000, CRC(f75ff923) SHA1(4177e94ba1e3a82861d0277ba5d0abc24482ffe2) )
- ROM_LOAD16_BYTE( "6-27c020.bin", 0x000001, 0x40000, CRC(91a2bcb5) SHA1(c659b5deff2a4b2b69bddb956a3df1ed79a50ab0) )
-
- ROM_REGION( 0x100000, "sprgfx", 0 )
- ROM_LOAD16_BYTE( "8-27c020.bin", 0x000000, 0x40000, CRC(49aab1d6) SHA1(2c215df271af1d49eeff472298e7aa00879c1799) ) /* sprites */
- ROM_LOAD16_BYTE( "7-27c020.bin", 0x000001, 0x40000, CRC(f6e362bf) SHA1(8e5c82eb19b8948f064360215107311efa9ea12f) )
- ROM_LOAD16_BYTE( "10-27c020.bin", 0x080000, 0x40000, CRC(ffe70cc2) SHA1(e81720c86ea0df7554af060dae66901bf612b4db) )
- ROM_LOAD16_BYTE( "9-27c020.bin", 0x080001, 0x40000, CRC(d13437a6) SHA1(cc848e5e8cc91f6fb5c1de219cc1db57b84337a9) )
-
- ROM_REGION( 0x80000, "oki", 0 ) /* ADPCM samples */
- ROM_LOAD( "2-27c4001.bin", 0x00000, 0x80000, CRC(7dbc988b) SHA1(0bf89e651a992672ee4041addc9c4614b475c48a) )
-
- ROM_REGION( 0x1600, "plds", ROMREGION_ERASE00 )
- ROM_LOAD( "p1-palce16v8h-25pc.bin", 0x0000, 0x0117, CRC(bb8f5dd6) SHA1(b09f36293f7b4ae30b8bebebcca6457a64b87d0f) )
- ROM_LOAD( "p2-palce22v10h-25pc.bin", 0x0200, 0x02dd, CRC(d53c01da) SHA1(e90eaa95a8b429643cfb0bce7dff86e850ec01d8) )
- ROM_LOAD( "p3-palce22v10h-25pc.bin", 0x0500, 0x02dd, CRC(5c0b43af) SHA1(ef5cfabde32063707c97a9aed63f8bf1bde2cb6d) )
- ROM_LOAD( "p4-palce16v8h-25pc.bin", 0x0800, 0x0117, CRC(36749fe3) SHA1(d2a88d5c2d3d32aeade59d5c4e4474982d19447e) )
- ROM_LOAD( "p5-palce20v8h-25pc.bin", 0x0a00, 0x0157, CRC(1c9b6557) SHA1(ceb78bf78e511251143984626f6b8421e5d627d5) )
- ROM_LOAD( "p6-palce16v8h-25pc.bin", 0x0c00, 0x0117, CRC(76b06a9a) SHA1(32a5d5d6ce4819ae5cceb6499f5f95b77e6b4f33) )
- ROM_LOAD( "p7-palce16v8h-25pc.bin", 0x0e00, 0x0117, CRC(070f48ec) SHA1(51fed4c1072762f4a4d2c0706d6a6cab4c769376) )
- ROM_LOAD( "p8-palce16v8h-25pc.bin", 0x1000, 0x0117, CRC(747270a6) SHA1(7ec39a172400e536bd4136250f8ec391c6b1320f) )
- ROM_LOAD( "p9-palce16v8h-25pc.bin", 0x1000, 0x0117, CRC(954b7413) SHA1(207972f0021f26b5b99f6b96eb650cc3213ae490) )
- ROM_LOAD( "p10-hy18cv8s-25.bin", 0x1400, 0x0155, CRC(6dc83459) SHA1(1121aaedf1f913cccae81dcc1f95e20c24d263fb) )
-ROM_END
-
-/*
-
-CPU
-1x MC68000P10 (main)
-1x Z8400APS (sound)
-1x OKI M6295 (sound)
-1x oscillator 12.000MHz (close to main)
-1x oscillator 8.000MHz (close to Z80 and Oki)
-1x oscillator 14.31818 (far from everything)
-
-ROMs
-1x 27C040 (21)
-1x 27C1000 (ic18)
-1x 27C256 (22)
-8x 27C020 (23-30)
-
-Note
-1x JAMMA edge connector
-1x trimmer (volume)
-2x 8 switches dip
-
-*/
-
-ROM_START( jumpkids )
- ROM_REGION( 0x80000, "maincpu", 0 ) /* 68000 Code */
- ROM_LOAD16_BYTE( "23-ic29.15c", 0x00000, 0x40000, CRC(6ba11e91) SHA1(9f83ef79beb97af1625e7b46858d6f0681dafb23) )
- ROM_LOAD16_BYTE( "24-ic30.17c", 0x00001, 0x40000, CRC(5795d98b) SHA1(d1435f0b79a4fa45770c56b91f078c1885fbd048) )
-
- ROM_REGION( 0x10000, "audiocpu", 0 ) /* Z80 Code */
- ROM_LOAD( "22-ic19.3c", 0x00000, 0x08000, CRC(bd619530) SHA1(b4c050012b0f1c31877b3d489a68389be93cc82c) )
-
- ROM_REGION( 0x80000, "tilegfx", 0 ) /* GFX */
- ROM_LOAD16_BYTE( "30-ic125.15j", 0x00000, 0x40000, CRC(44b9a089) SHA1(b6f99b0b597d540b375616dad4354fc9dbb75a21) )
- ROM_LOAD16_BYTE( "29-ic124.13j", 0x00001, 0x40000, CRC(3f98ec69) SHA1(f09a62d9bd7ab7681436a1f2f450565573927165) )
-
- ROM_REGION( 0x100000, "sprgfx", 0 ) /* GFX */
- ROM_LOAD16_BYTE( "25-ic69.1g", 0x00000, 0x40000, CRC(176ae857) SHA1(e3178d2a15452a36eb94caf5e5ff3a561783a5f4) )
- ROM_LOAD16_BYTE( "28-ic131.1l", 0x00001, 0x40000, CRC(ed837757) SHA1(27a35e47e1b627270f4b0e4319ec330a6cad5ed1) )
- ROM_LOAD16_BYTE( "26-ic70.2g", 0x80000, 0x40000, CRC(e8b34980) SHA1(edbf5517c6c9c9c3344d11eabb4a58da87386725) )
- ROM_LOAD16_BYTE( "27-ic100.1j", 0x80001, 0x40000, CRC(3918dda3) SHA1(9409b5a5dc4c44c1ddcb77278541d012b5d8e052) )
-
- ROM_REGION( 0x80000, "oki2", 0 ) /* More Samples */
- ROM_LOAD( "21-ic17.1c", 0x00000, 0x80000, CRC(e5094f75) SHA1(578f32d4e4212c6cfdef186c2a6dc1d9408e8dfc) )
-
- ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
- ROM_LOAD( "ic18.2c", 0x00000, 0x20000, CRC(a63736c3) SHA1(fca413c04026ecb60a6025a117fea2b5404ac058) )
-ROM_END
-
-ROM_START( fncywld )
- ROM_REGION( 0x100000, "maincpu", 0 ) /* 68000 Code */
- ROM_LOAD16_BYTE( "01_fw02.bin", 0x000000, 0x080000, CRC(ecb978c1) SHA1(68fbf93a81875f744c6f9820dc4c7d88e912e0a0) )
- ROM_LOAD16_BYTE( "02_fw03.bin", 0x000001, 0x080000, CRC(2d233b42) SHA1(aebeb5d3e06e73d14f713f201b25466bcac97a68) )
-
- ROM_REGION( 0x100000, "sprgfx", 0 )
- ROM_LOAD16_BYTE( "05_fw06.bin", 0x00000, 0x40000, CRC(e141ecdc) SHA1(fd656ceb2baccefadfa1e9f6932b1e0f0ec0a189) )
- ROM_LOAD16_BYTE( "06_fw07.bin", 0x00001, 0x40000, CRC(0058a812) SHA1(fc6101a11af63536d0a345c820bcd234bb4ce91a) )
- ROM_LOAD16_BYTE( "03_fw04.bin", 0x80000, 0x40000, CRC(6ad38c14) SHA1(a9951432c2ec5e07ed2ee5faac3f2558242438f2) )
- ROM_LOAD16_BYTE( "04_fw05.bin", 0x80001, 0x40000, CRC(b8d079a6) SHA1(8ad63fba26f7588a9764a0585c159fb57cb8c7ed) )
-
- ROM_REGION( 0x100000, "tilegfx", 0 )
- ROM_LOAD16_BYTE( "08_fw09.bin", 0x00000, 0x40000, CRC(a4a00de9) SHA1(65f03a65569f70fb6f3a0fc7caf038bb44a7f503) )
- ROM_LOAD16_BYTE( "07_fw08.bin", 0x00001, 0x40000, CRC(b48cd1d4) SHA1(a95eeba38ae1ce0a2086edb767f636a9cdbd0176) )
- ROM_LOAD16_BYTE( "10_fw11.bin", 0x80000, 0x40000, CRC(f21bab48) SHA1(84371b31487ca5abcbf57152a64f384959d19209) )
- ROM_LOAD16_BYTE( "09_fw10.bin", 0x80001, 0x40000, CRC(6aea8e0f) SHA1(91e2eeef001351c73b1bfbc1a7840e37d3f89900) )
-
- ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
- ROM_LOAD( "00_fw01.bin", 0x000000, 0x040000, CRC(b395fe01) SHA1(ac7f2e21413658f8d2a1abf3a76b7817a4e050c9) )
-ROM_END
-
-/*
-
-Magic Purple, (c) 1996 Unico
-
-+---------------------------------------------+
-| unico_1 6116 unico_4 |
-| M6295 6116 |
-| YM3012 YM2151 6116 unico_5 |
-| 4.000MHz 6116 |
-| 28.6363MHz +--------+ GAL-D |
-| | Actel | |
-|J | A1020B | GAL-E GAL-G |
-|A +--------+ GAL-H |
-|M 2018 GAL-I |
-|M 2018 |
-|A 76C28 +--------+ |
-| 76C28 | Actel | GAL-F |
-| 62256 62256 | A1020B | |
-| DSWA unico_2 unico_3 +--------+ |
-| DSWB MC68000P12 6264 unico_6 |
-| GAL-A GAL-B 6264 unico_7 |
-| GAL-C 12.00MHz |
-+---------------------------------------------+
-
- CPU: MC68000P12
-Sound: YM2151+YM3012 & OKI M6295 (bagded as KA51+BS902 & AD-65)
- OSC: 28.6363MHz, 12.000MHz, 4.000MHz
-Other: Actel A1020B PL84C
- 8-position dipswitch x 2
-RAM: HY62256A LP-70 x 2 - 32K x 8 SRAM
- HY6264ALP-10 x 2 - 8K x 8 SRAM
- SYC6116L-45P x 4 - 2K x 8 RAM
- MCM2018N45 x 2 - 2K x 8 SRAM
- GM76C28K-10 x 2 - 2K x 8 SRAM
-GAL-A through GAL-I misc undumped GALs
-
-Although not currently measured, clocks "should" be:
- MC68000P12 - 12.00MHz
- YM2151 - 4.00MHz
- OKI M6295 - 1.000MHz (4.000MHz OSC / 4)
-
-*/
-ROM_START( magipur )
- ROM_REGION( 0x100000, "maincpu", 0 ) /* 68000 Code */
- ROM_LOAD16_BYTE( "unico_2-27c040.bin", 0x000000, 0x080000, CRC(135c5de7) SHA1(95c75e9e69793f67df9378391ae45915ef9bbb89) )
- ROM_LOAD16_BYTE( "unico_3-27c040.bin", 0x000001, 0x080000, CRC(ee4b16da) SHA1(82391ed4d21d3944ca482be00ab7c0838cf190ff) )
-
- ROM_REGION( 0x100000, "sprgfx", 0 )
- ROM_LOAD16_BYTE( "unico_4-27c040.bin", 0x80000, 0x40000, CRC(e460a77d) SHA1(bde15705750e002bd576098700161b0944984401) )
- ROM_CONTINUE(0x80001, 0x40000)
- ROM_LOAD16_BYTE( "unico_5-27c040.bin", 0x00000, 0x40000, CRC(79c53627) SHA1(9e2673b3becf0508f630f3bd8ff5fc30520b120b) )
- ROM_CONTINUE(0x00001, 0x40000)
-
- ROM_REGION( 0x100000, "tilegfx", 0 )
- ROM_LOAD16_BYTE( "unico_6-27c040.bin", 0x00001, 0x40000, CRC(b25b5872) SHA1(88a6a110073060c3b7b2987cc41d23c4ca412b43) )
- ROM_CONTINUE(0x00000, 0x40000)
- ROM_LOAD16_BYTE( "unico_7-27c040.bin", 0x80001, 0x40000, CRC(d3c3a672) SHA1(5bbd67a953e1d47d05006a4ef4aa7a23e807f11b) )
- ROM_CONTINUE(0x80000, 0x40000)
-
- ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
- ROM_LOAD( "unico_1-27c020.bin", 0x000000, 0x040000, CRC(84dcf771) SHA1(f8a693a11b14608a582a90b7fd7d3be92e46a0e1) )
-ROM_END
-
-ROM_START( suprtrio )
- ROM_REGION( 0x80000, "maincpu", 0 ) /* 68k */
- ROM_LOAD16_BYTE( "rom2", 0x00000, 0x40000, CRC(4102e59d) SHA1(f06f1273dbbb91fa61d84541aa124d9c88ee94c1) )
- ROM_LOAD16_BYTE( "rom1", 0x00001, 0x40000, CRC(cc3a83c3) SHA1(6f8b1b6b666ce11c02e9defcba751d88621e572d) )
-
- ROM_REGION( 0x10000, "audiocpu", 0 ) /* Z80 */
- ROM_LOAD( "rom4l", 0x000000, 0x10000, CRC(466aa96d) SHA1(37f1ba148dbad27ed8e71a0b3434ff970fcb519f) )
-
- ROM_REGION( 0x100000, "tilegfx", 0 ) /* bg tiles */
- ROM_LOAD( "rom4", 0x00000, 0x20000, CRC(cd2dfae4) SHA1(1d872b5abaf72d34bd4a45f6be69aa6474887b4b) )
- ROM_CONTINUE( 0x40000, 0x20000 )
- ROM_CONTINUE( 0x20000, 0x20000 )
- ROM_CONTINUE( 0x60000, 0x20000 )
- ROM_LOAD( "rom5", 0x80000, 0x20000, CRC(4e64da64) SHA1(f2518b3d83d7fd46000ca982b2d91ce75034b411) )
- ROM_CONTINUE( 0xc0000, 0x20000 )
- ROM_CONTINUE( 0xa0000, 0x20000 )
- ROM_CONTINUE( 0xe0000, 0x20000 )
-
- ROM_REGION( 0x100000, "sprgfx", 0 ) /* sprites */
- ROM_LOAD16_BYTE( "rom9l", 0x00000, 0x40000, CRC(cc45f437) SHA1(fa735c3b3f96266ddfb611af6908abe72d5ae9d9) )
- ROM_LOAD16_BYTE( "rom8l", 0x00001, 0x40000, CRC(9bc90169) SHA1(3bc0d34911f063ff79c529346f41695376428f75) )
- ROM_LOAD16_BYTE( "rom7l", 0x80000, 0x40000, CRC(bfc7c756) SHA1(e533f633dec63c27ac78f170e222e590e815a022) )
- ROM_LOAD16_BYTE( "rom6l", 0x80001, 0x40000, CRC(bb3499af) SHA1(1a0a6a63227e8ad28aa23afc6d076037518b4802) )
-
- ROM_REGION( 0xb0000, "oki", 0 ) /* samples */
- ROM_LOAD( "rom3h", 0x00000, 0x30000, CRC(34ea7ec9) SHA1(1f80a2c7ed4fb13610731732b11268d1d7be5bb2) )
- ROM_CONTINUE( 0x40000, 0x50000 )
- ROM_LOAD( "rom3l", 0x90000, 0x20000, CRC(1b73233b) SHA1(5d82bbdc31d99f8d77bdb5c2f6e5e23037b4bca0) )
-ROM_END
-
-/*
-
-1x MC68000P10 (main)
-1x PIC16C57
-1x OKI M6295
-1x oscillator 8.000MHz (close to OKI)
-1x oscillator 14.000MHz
-1x oscillator 12.000000MHz
-
-*/
-
-ROM_START( pangpang )
- ROM_REGION( 0x80000, "maincpu", 0 ) /* 68000 code */
- ROM_LOAD16_BYTE ("2.bin", 0x00000, 0x40000, CRC(45436666) SHA1(a319d27320d74266b5e5af7eb1452ecc0b158318) )
- ROM_LOAD16_BYTE( "3.bin", 0x00001, 0x40000, CRC(2725cbe7) SHA1(3ce2d8b1460a26ac0d982103d8796cdc296a64e1) )
-
- ROM_REGION( 0x2d4c, "cpu1", 0 ) /* PIC16c57 */
- ROM_LOAD( "pic_16c57", 0x00000, 0x2d4c, BAD_DUMP CRC(1ca515b4) SHA1(b2d302a7e45ac5b783d408584b93b534eaee6523) ) // protected :-(
-
- ROM_REGION( 0x100000, "tilegfx", 0 ) // PF1 tilemap
- ROM_LOAD16_BYTE( "11.bin", 0x00000, 0x20000, CRC(a2b9fec8) SHA1(121771466c288e132cdcf6abdc3bbe2578de9260) )
- ROM_CONTINUE(0x80000,0x20000)
- ROM_LOAD16_BYTE( "10.bin", 0x00001, 0x20000, CRC(4f59d7b9) SHA1(a0eabb44ecb6922f656a5032c0ab757813b9cc13) )
- ROM_CONTINUE(0x80001,0x20000)
- ROM_LOAD16_BYTE( "6.bin", 0x40000, 0x20000, CRC(1ebbc4f1) SHA1(6fb745ebe7ee8ecf5036ac0c4a5dda71cbb40063) )
- ROM_CONTINUE(0xc0000,0x20000)
- ROM_LOAD16_BYTE( "7.bin", 0x40001, 0x20000, CRC(cd544173) SHA1(b929d771040a48356b449458d3125142b9bfc365) )
- ROM_CONTINUE(0xc0001,0x20000)
-
- ROM_REGION( 0x100000, "sprgfx", 0 )
- ROM_LOAD16_BYTE( "8.bin", 0x00000, 0x40000, CRC(ea0fa1e0) SHA1(1f2f6264097d15339782c2e399d125c3835fd852) )
- ROM_LOAD16_BYTE( "9.bin", 0x00001, 0x40000, CRC(1da5fe49) SHA1(338be1a9f8c42e685e1cefb12b2d169b7560e5f7) )
- ROM_LOAD16_BYTE( "4.bin", 0x80000, 0x40000, CRC(4f282eb1) SHA1(3731045a500082d37588edf7cbb0c0ebae566aab) )
- ROM_LOAD16_BYTE( "5.bin", 0x80001, 0x40000, CRC(00694df9) SHA1(f07373c7ef379daa4e788c169579e23a1133d884) )
-
- ROM_REGION( 0x100000, "oki", 0 ) /* Oki samples */
- ROM_LOAD( "1.bin", 0x00000, 0x80000, CRC(e722bb02) SHA1(ebb8c87d32dccbebf6d8a47703ac12be984f4a3d) )
- ROM_RELOAD(0x80000,0x80000)
-ROM_END
-
-
-/**************************************
-
- SemiCom Games
-
- Uses similar hardware with 87c52 MCU for protection
-
- SemiCom used the name "Mijin" in 1995
-
-
-**************************************/
-
-
-/*
-
-Metal Saver By First Amusement (1994)
-
-The pcb is identical to Final Tetris pcb
- (strange, final tetris is based on snowbros logic)
-
-1x 68k
-1x z80
-1x CA101 (compatible to YM2151)
-1x Oki 6295
-1x OSC 14mhz (near 68k)
-1x OSC 3.579545 (near z80)
-1x FPGA Actel 1020A PL84C
-1x 87c52 based MCU (very similar to tyical SemiCom mcu)
-2x banks of Dipswitch
-
-First Amusement logo is almost identical to SemiCom logo.
-
-There is a PC version of Metal Saver, so did SemiCom do
-the arcade version on SemiCom type hardware?
-
-*/
-
-ROM_START( metlsavr )
- ROM_REGION( 0x100000, "maincpu", 0 ) /* 68000 Code */
- ROM_LOAD16_BYTE( "first-3.ub18", 0x00001, 0x40000, CRC(87bf4ed2) SHA1(ee1a23232bc37d95dca6d612b4e22ed2b723bd01) )
- ROM_LOAD16_BYTE( "first-4.ub17", 0x00000, 0x40000, CRC(667a494d) SHA1(282391ed7fa994ec51d39c6b086a808ee43e8af1) )
-
- ROM_REGION( 0x10000, "audiocpu", 0 ) /* Z80 Code */
- ROM_LOAD( "first-2.ua7", 0x00000, 0x10000, CRC(49505edf) SHA1(ea3007f1adbe8e2597ee6201bbd5d07fa9f7c733) )
-
- ROM_REGION( 0x10000, "cpu2", 0 ) /* Intel 87C52 MCU Code */
- ROM_LOAD( "87c52.mcu", 0x00000, 0x2000, 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(17aa17a9) SHA1(5b83159c62473f79e7fced0d86acfaf697ad5537) )
-
- ROM_REGION( 0x040000, "oki", 0 ) /* Samples */
- ROM_LOAD( "first-1.uc1", 0x00000, 0x40000, CRC(e943dacb) SHA1(65a786467fc9efe503aad4e183df352e52143fc2) )
-
- ROM_REGION( 0x80000, "tilegfx", 0 ) /* tiles */
- ROM_LOAD16_BYTE( "first-5.rom5", 0x00001, 0x40000, CRC(dd4af746) SHA1(185a8080173b3c05fcc5f5ee2f71606987826e79) )
- ROM_LOAD16_BYTE( "first-6.rom6", 0x00000, 0x40000, CRC(808b0e0b) SHA1(f4913e135986b28b4e56bdcc4fd7dd5aad9aa467) )
-
- ROM_REGION( 0x200000, "sprgfx", 0 ) /* sprites */
- ROM_LOAD16_BYTE( "first-7.uor1", 0x000000, 0x80000, CRC(a6816747) SHA1(0ec288a1e23bb78de0e284b759a5e83304744960) )
- ROM_LOAD16_BYTE( "first-8.uor2", 0x000001, 0x80000, CRC(377020e5) SHA1(490dd2383a49554f2c5d65df798a3933f5c5a62e) )
- ROM_LOAD16_BYTE( "first-9.uor3", 0x100000, 0x80000, CRC(fccf1bb7) SHA1(12cb397fd6438068558ec4d64298cfbe4f9e0e7e) )
- ROM_LOAD16_BYTE( "first-10.uor4", 0x100001, 0x80000, CRC(a22b587b) SHA1(e2f6785eb17f66a8b4fc102524b5013e72f1a0f3) )
-ROM_END
-
-/* BC Story */
-
-ROM_START( bcstry )
- ROM_REGION( 0x100000, "maincpu", 0 ) /* 68000 Code */
- ROM_LOAD16_BYTE( "bcstry_u.35", 0x40001, 0x20000, CRC(d25b80a4) SHA1(6ea1c28cf508b856e93a06063e634a09291cb32c) )
- ROM_CONTINUE ( 0x00001, 0x20000)
- ROM_LOAD16_BYTE( "bcstry_u.62", 0x40000, 0x20000, CRC(7f7aa244) SHA1(ee9bb2bf22d16f06d7935168e2bd09296fba3abc) )
- ROM_CONTINUE ( 0x00000, 0x20000)
-
- ROM_REGION( 0x10000, "audiocpu", 0 ) /* Z80 Code */
- ROM_LOAD( "bcstry_u.21", 0x04000, 0x4000 , CRC(3ba072d4) SHA1(8b64d3ab4c63132f2f77b2cf38a88eea1a8f11e0) )
- ROM_CONTINUE( 0x0000, 0x4000 )
- ROM_CONTINUE( 0xc000, 0x4000 )
- ROM_CONTINUE( 0x8000, 0x4000 )
-
- ROM_REGION( 0x10000, "cpu2", 0 ) /* Intel 87C52 MCU Code */
- ROM_LOAD( "87c52.mcu", 0x00000, 0x2000, 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 */
- /* taken from other set, check... */
- ROM_LOAD16_WORD( "protdata.bin", 0x00000, 0x200 , CRC(e84e328c) SHA1(ce21988980654acb573bfb7396fd2f536204ecf0) )
-
- ROM_REGION( 0x040000, "oki", 0 ) /* Samples */
- ROM_LOAD( "bcstry_u.64", 0x00000, 0x40000, CRC(23f0e0fe) SHA1(a8c3cbb6378797db353ca2873e73ff157a6f8a3c) )
-
- ROM_REGION( 0x200000, "tilegfx", 0 ) /* Tiles */
- ROM_LOAD16_BYTE( "bcstry_u.109", 0x000000, 0x20000, CRC(eb04d37a) SHA1(818dc7aafac577920d94c65e47d965dc0474d92c) ) // tiles a plane 0
- ROM_CONTINUE ( 0x100000,0x20000) // tiles a plane 1
- ROM_CONTINUE ( 0x040000,0x20000) // tiles b plane 0
- ROM_CONTINUE ( 0x140000,0x20000) // tiles b plane 1
- ROM_LOAD16_BYTE( "bcstry_u.113", 0x000001, 0x20000, CRC(746ecdd7) SHA1(afb6dbc0fb94e7ce96a9b219f5f7cd3721d1c1c4) ) // tiles a plane 2
- ROM_CONTINUE ( 0x100001,0x20000) // tiles a plane 3
- ROM_CONTINUE ( 0x040001,0x20000) // tiles b plane 2
- ROM_CONTINUE ( 0x140001,0x20000) // tiles b plane 3
- ROM_LOAD16_BYTE( "bcstry_u.110", 0x080000, 0x20000, CRC(1bfe65c3) SHA1(27dec16b271866ff336d8b25d352977ca80c35bf) ) // tiles c plane 0
- ROM_CONTINUE ( 0x180000,0x20000) // tiles c plane 1
- ROM_CONTINUE ( 0x0c0000,0x20000) // tiles d plane 0
- ROM_CONTINUE ( 0x1c0000,0x20000) // tiles d plane 1
- ROM_LOAD16_BYTE( "bcstry_u.111", 0x080001, 0x20000, CRC(c8bf3a3c) SHA1(604fc57c4d3a581016aa2516236c568488d23c77) ) // tiles c plane 2
- ROM_CONTINUE ( 0x180001,0x20000) // tiles c plane 3
- ROM_CONTINUE ( 0x0c0001,0x20000) // tiles d plane 2
- ROM_CONTINUE ( 0x1c0001,0x20000) // tiles d plane 3
-
- ROM_REGION( 0x400000, "sprgfx", 0 ) /* Sprites */
- ROM_LOAD16_BYTE( "bcstry_u.100", 0x000000, 0x80000, CRC(8c11cbed) SHA1(e04e53af4fe732bf9d20a9ae5c2a90b576ee0b83) ) // b
- ROM_LOAD16_BYTE( "bcstry_u.106", 0x000001, 0x80000, CRC(5219bcbf) SHA1(4b88eab7ffc2dc1de451ae4ee52f1536e179ea13) ) // b
- ROM_LOAD16_BYTE( "bcstry_u.99", 0x100000, 0x80000, CRC(cdb1af87) SHA1(df1fbda5c7ce4fbd64d6db9eb80946e06119f096) ) // a
- ROM_LOAD16_BYTE( "bcstry_u.105", 0x100001, 0x80000, CRC(8166b596) SHA1(cbf6f5cec5f6991bb1d4ec0ea03cd617ff38fc3b) ) // a
- ROM_LOAD16_BYTE( "bcstry_u.104", 0x200000, 0x80000, CRC(377c0c71) SHA1(77efa9530b1c311d93c84dd8452701414f740269) ) // b
- ROM_LOAD16_BYTE( "bcstry_u.108", 0x200001, 0x80000, CRC(442307ed) SHA1(71b7f19af64d9961f0f9205b86b4b0ebc13fddda) ) // b
- ROM_LOAD16_BYTE( "bcstry_u.102", 0x300000, 0x80000, CRC(71b40ece) SHA1(1a13dfd7615a6f61851897ebcb10fa69bc8ae525) ) // a
- ROM_LOAD16_BYTE( "bcstry_u.107", 0x300001, 0x80000, CRC(ab3c923a) SHA1(aaca1d2ed7b53e0933e0bd94a19458dd1598f204) ) // a
-ROM_END
-
-ROM_START( bcstrya )
- ROM_REGION( 0x100000, "maincpu", 0 ) /* 68000 Code */
- ROM_LOAD16_BYTE( "prg1.ic35", 0x40001, 0x20000, CRC(2c55100a) SHA1(bc98a0015c99ef84ebd3fc3f7b7a3bdfd700e1da) )
- ROM_CONTINUE ( 0x00001, 0x20000)
- ROM_LOAD16_BYTE( "prg2.ic62", 0x40000, 0x20000, CRC(f54c0a96) SHA1(79a3635792a23f47fc914d1d5e118b5a643ca100) )
- ROM_CONTINUE ( 0x00000, 0x20000)
-
- ROM_REGION( 0x10000, "audiocpu", 0 ) /* Z80 Code */
- ROM_LOAD( "bcstry_u.21", 0x04000, 0x4000 , CRC(3ba072d4) SHA1(8b64d3ab4c63132f2f77b2cf38a88eea1a8f11e0) )
- ROM_CONTINUE( 0x0000, 0x4000 )
- ROM_CONTINUE( 0xc000, 0x4000 )
- ROM_CONTINUE( 0x8000, 0x4000 )
-
- ROM_REGION( 0x10000, "cpu2", 0 ) /* Intel 87C52 MCU Code */
- ROM_LOAD( "87c52.mcu", 0x00000, 0x2000, 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(e84e328c) SHA1(ce21988980654acb573bfb7396fd2f536204ecf0) )
-
- ROM_REGION( 0x040000, "oki", 0 ) /* Samples */
- ROM_LOAD( "bcstry_u.64", 0x00000, 0x40000, CRC(23f0e0fe) SHA1(a8c3cbb6378797db353ca2873e73ff157a6f8a3c) )
-
- ROM_REGION( 0x200000, "tilegfx", 0 ) /* Tiles */
- ROM_LOAD16_BYTE( "bcstry_u.109", 0x000000, 0x20000, CRC(eb04d37a) SHA1(818dc7aafac577920d94c65e47d965dc0474d92c) ) // tiles a plane 0
- ROM_CONTINUE ( 0x100000,0x20000) // tiles a plane 1
- ROM_CONTINUE ( 0x040000,0x20000) // tiles b plane 0
- ROM_CONTINUE ( 0x140000,0x20000) // tiles b plane 1
- ROM_LOAD16_BYTE( "bcstry_u.113", 0x000001, 0x20000, CRC(746ecdd7) SHA1(afb6dbc0fb94e7ce96a9b219f5f7cd3721d1c1c4) ) // tiles a plane 2
- ROM_CONTINUE ( 0x100001,0x20000) // tiles a plane 3
- ROM_CONTINUE ( 0x040001,0x20000) // tiles b plane 2
- ROM_CONTINUE ( 0x140001,0x20000) // tiles b plane 3
- ROM_LOAD16_BYTE( "bcstry_u.110", 0x080000, 0x20000, CRC(1bfe65c3) SHA1(27dec16b271866ff336d8b25d352977ca80c35bf) ) // tiles c plane 0
- ROM_CONTINUE ( 0x180000,0x20000) // tiles c plane 1
- ROM_CONTINUE ( 0x0c0000,0x20000) // tiles d plane 0
- ROM_CONTINUE ( 0x1c0000,0x20000) // tiles d plane 1
- ROM_LOAD16_BYTE( "bcstry_u.111", 0x080001, 0x20000, CRC(c8bf3a3c) SHA1(604fc57c4d3a581016aa2516236c568488d23c77) ) // tiles c plane 2
- ROM_CONTINUE ( 0x180001,0x20000) // tiles c plane 3
- ROM_CONTINUE ( 0x0c0001,0x20000) // tiles d plane 2
- ROM_CONTINUE ( 0x1c0001,0x20000) // tiles d plane 3
-
- ROM_REGION( 0x400000, "sprgfx", 0 ) /* Sprites */
- ROM_LOAD16_BYTE( "bcstry_u.100", 0x000000, 0x80000, CRC(8c11cbed) SHA1(e04e53af4fe732bf9d20a9ae5c2a90b576ee0b83) ) // b
- ROM_LOAD16_BYTE( "bcstry_u.106", 0x000001, 0x80000, CRC(5219bcbf) SHA1(4b88eab7ffc2dc1de451ae4ee52f1536e179ea13) ) // b
- ROM_LOAD16_BYTE( "bcstry_u.99", 0x100000, 0x80000, CRC(cdb1af87) SHA1(df1fbda5c7ce4fbd64d6db9eb80946e06119f096) ) // a
- ROM_LOAD16_BYTE( "bcstry_u.105", 0x100001, 0x80000, CRC(8166b596) SHA1(cbf6f5cec5f6991bb1d4ec0ea03cd617ff38fc3b) ) // a
- ROM_LOAD16_BYTE( "bcstry_u.104", 0x200000, 0x80000, CRC(377c0c71) SHA1(77efa9530b1c311d93c84dd8452701414f740269) ) // b
- ROM_LOAD16_BYTE( "bcstry_u.108", 0x200001, 0x80000, CRC(442307ed) SHA1(71b7f19af64d9961f0f9205b86b4b0ebc13fddda) ) // b
- ROM_LOAD16_BYTE( "bcstry_u.102", 0x300000, 0x80000, CRC(71b40ece) SHA1(1a13dfd7615a6f61851897ebcb10fa69bc8ae525) ) // a
- ROM_LOAD16_BYTE( "bcstry_u.107", 0x300001, 0x80000, CRC(ab3c923a) SHA1(aaca1d2ed7b53e0933e0bd94a19458dd1598f204) ) // a
-ROM_END
-
-/*
-
-Hatch Catch
-SemiCom, 1995
-
-PCB Layout
-----------
-
-|---------------------------------------------|
-| M6295 0.UC1 4.096MHz PAL 6.OR1|
-|YM3016 YM2151 6116 7.OR2|
-|uPC1241H PAL 1.UA7 8.OR3|
-| Z80B 6116 9.OR4|
-| 6116 6116 |
-| PAL 6116 |
-|J PAL PAL |
-|A PAL |
-|M 6116 PAL|
-|M 6116 |
-|A PAL PAL |
-| PAL 4.M5 |
-|DSW1 5.M6 |
-| 15MHz |
-|DSW2 62256 6264 |
-| 62256 6264 ACTEL |
-| 68000 2.B16 PAL A1020B |
-|87C52 3.B17 (PLCC84)|
-|---------------------------------------------|
-
-Notes:
- 68k clock: 15MHz
- Z80 clock: 3.42719MHz <-- should be 3.75
- M6295 clock: 1.024MHz, sample rate = /132
- 87C52 clock: 15MHz
- YM2151 clock: 3.42719MHz <-- should be 3.75
- VSync: 60Hz
-
-Interrupts:
-
-Lev 1 0x64 0000 00c0 <- just reset .. not used
-Lev 2 0x68 0000 00c0 ""
-Lev 3 0x6c 0000 00c0 ""
-Lev 4 0x70 0000 00c0 ""
-Lev 5 0x74 0000 00c0 ""
-Lev 6 0x78 0012 0000 <- RAM shared with protection device (first 0x200 bytes?)
-
-*/
-
-ROM_START( htchctch )
- ROM_REGION( 0x100000, "maincpu", 0 ) /* 68000 Code */
- ROM_LOAD16_BYTE( "p03.b16", 0x00001, 0x20000, CRC(eff14c40) SHA1(8fdda1fb859546c16f940e51f7e126768205154c) )
- ROM_LOAD16_BYTE( "p04.b17", 0x00000, 0x20000, CRC(6991483a) SHA1(c8d868ef1f87655c37f0b1efdbb71cd26918f270) )
-
- ROM_REGION( 0x10000, "audiocpu", 0 ) /* Z80 Code */
- ROM_LOAD( "p02.b5", 0x00000, 0x10000 , CRC(c5a03186) SHA1(42561ab36e6d7a43828d3094e64bd1229ab893ba) )
-
- ROM_REGION( 0x2000, "protection", 0 ) /* Intel 87C52 MCU Code */
- ROM_LOAD( "87c51fa.bin", 0x00000, 0x2000, CRC(a30312f3) SHA1(e61a89b4ed9555252fc1a64c50d345085f7674c7) ) // decapped
-
- ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
- ROM_LOAD( "p01.c1", 0x00000, 0x20000, CRC(18c06829) SHA1(46b180319ed33abeaba70d2cc61f17639e59bfdb) )
-
- ROM_REGION( 0x80000, "tilegfx", 0 ) /* Sprites */
- ROM_LOAD16_BYTE( "p06srom5.bin", 0x00001, 0x40000, CRC(3d2cbb0d) SHA1(bc80be594a40989e3c23539fc2021de65a2444c5) )
- ROM_LOAD16_BYTE( "p07srom6.bin", 0x00000, 0x40000, CRC(0207949c) SHA1(84b4dcd27fe89a5350b6642ef99719bb85514174) )
-
- ROM_REGION( 0x80000, "sprgfx", 0 ) /* GFX */
- ROM_LOAD16_BYTE( "p08uor1.bin", 0x00000, 0x20000, CRC(6811e7b6) SHA1(8157f92a3168ffbac86cd8c6294b9c0f3ee0835d) )
- ROM_LOAD16_BYTE( "p09uor2.bin", 0x00001, 0x20000, CRC(1c6549cf) SHA1(c05aba9b744144db4537e472842b0d53325aa78f) )
- ROM_LOAD16_BYTE( "p10uor3.bin", 0x40000, 0x20000, CRC(6462e6e0) SHA1(0d107214dfb257e15931701bad6b42c6aadd8a18) )
- ROM_LOAD16_BYTE( "p11uor4.bin", 0x40001, 0x20000, CRC(9c511d98) SHA1(6615cbb125bd1e1b4da400ec4c4a0f4df8f6fa75) )
-ROM_END
-
-/* Carket Ball */
-
-/*
-carket ball
-
-
-68000P10 Xtal 15Mhz
-2*62256
-27020.ub17
-27020.ub18 prg roms
-
-
-gfx ram (???) 2x6264
-near
-27040.srom5
-27040.srom6
-
-gfx
-27020.uor1
-27020.uor2
-27020.uor3
-27020.uor4
-
-sound Z80 (Xtal 4.096Mhz)
-27512.ub5 sound prg
-6116 sound ram
-
-
-27010.uc1 audio data
-
-
-sound hardware
-Z80+6295+YM2151+YM3012
-
-protection??
-Intel P8752BH (protected)
-*/
-
-ROM_START( carket )
- ROM_REGION( 0x100000, "maincpu", 0 ) /* 68000 Code */
- ROM_LOAD16_BYTE( "27020.ub18", 0x00001, 0x20000, CRC(3bedee05) SHA1(0d9ddbe0b34307ac02740f813f89937c3af24c30) )
- ROM_LOAD16_BYTE( "27020.ub17", 0x00000, 0x20000, CRC(b43fb7b6) SHA1(609e2626522bff49c13e253337072fcc6c0b8eae) )
-
- ROM_REGION( 0x10000, "audiocpu", 0 ) /* Z80 Code */
- ROM_LOAD( "27512.ub5", 0x00000, 0x10000 , CRC(750516fe) SHA1(5025ffc0fa2461047db0d847de863f8b633a0c7c) )
-
- ROM_REGION( 0x10000, "cpu2", 0 ) /* Intel 87C52 MCU Code */
- ROM_LOAD( "87c52.mcu", 0x00000, 0x2000, 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( "carket_protdata.bin", 0x00000, 0x200 , CRC(5778470a) SHA1(3bf0c90e32a1ecf9b4f0ab90f61f29d59616ffbc) )
-
- ROM_REGION( 0x040000, "oki", 0 ) /* Samples */
- ROM_LOAD( "27010.uc1", 0x00000, 0x20000, CRC(b825bb9c) SHA1(9e444306e7ac1282871f0132f0137bf7aa87b7e0) )
-
- ROM_REGION( 0x200000, "tilegfx", 0 ) /* tiles */
- ROM_LOAD16_BYTE( "27040.srom5", 0x00001, 0x20000, CRC(d3e2c243) SHA1(279905c56f7f8eada076c15de67a6f0c571cb317) )
- ROM_CONTINUE ( 0x100001,0x20000)
- ROM_CONTINUE ( 0x040001,0x20000)
- ROM_CONTINUE ( 0x140001,0x20000)
- ROM_LOAD16_BYTE( "27040.srom6", 0x00000, 0x20000, CRC(0291be4c) SHA1(3106e4d2eb3256ce9914e562ac335beb351f79e6) )
- ROM_CONTINUE ( 0x100000,0x20000)
- ROM_CONTINUE ( 0x040000,0x20000)
- ROM_CONTINUE ( 0x140000,0x20000)
-
- ROM_REGION( 0x100000, "sprgfx", 0 ) /* sprites */
- ROM_LOAD16_BYTE( "27020.uor1", 0x000000, 0x40000, CRC(e6a94756) SHA1(114808ab18dc15dc47126673d0ccc40c7d8b8c20) )
- ROM_LOAD16_BYTE( "27020.uor2", 0x000001, 0x40000, CRC(f7158b76) SHA1(e1e35a88aa18376593389fff0bbe3784b17dccab) )
- ROM_LOAD16_BYTE( "27020.uor3", 0x080000, 0x40000, CRC(9295c315) SHA1(97e6c7550abb0e20ff21d7307a3850a4cfc0985f) )
- ROM_LOAD16_BYTE( "27020.uor4", 0x080001, 0x40000, CRC(333f1ed1) SHA1(0eaa3e11cbbb181106639298dc1a551c9ccb1208) )
-ROM_END
-
-/* Cookie & Bibi */
-
-ROM_START( cookbib )
- ROM_REGION( 0x100000, "maincpu", 0 ) /* 68000 Code */
- ROM_LOAD16_BYTE( "prg1.ub16", 0x00001, 0x20000, CRC(cda6335f) SHA1(34a57785a458d3e9a66c91734b4511fbc9f3455c) )
- ROM_LOAD16_BYTE( "prg2.ub17", 0x00000, 0x20000, CRC(2664a335) SHA1(8d1c4825720a09db6156599ab905292640b04cba) )
-
- ROM_REGION( 0x10000, "audiocpu", 0 ) /* Z80 Code */
- ROM_LOAD( "prg-s.ub5", 0x00000, 0x10000 , CRC(547d6ea3) SHA1(42929e453c4f1c90c29197a9bed953139cfe2873) )
-
- ROM_REGION( 0x10000, "cpu2", 0 ) /* Intel 87C52 MCU Code */
- ROM_LOAD( "87c52.mcu", 0x00000, 0x2000, 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(a77d13f4) SHA1(13db72f5b171b0c1226e97ea98d9edd7144d56d9) )
-
- ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
- ROM_LOAD( "sound.uc1", 0x00000, 0x20000, CRC(545e19b6) SHA1(ef518bbe44b22e7ef77ee6af337ebcad9b2674e0) )
-
- ROM_REGION( 0x80000, "tilegfx", 0 ) /* */
- ROM_LOAD16_BYTE( "srom5.bin", 0x00001, 0x40000, CRC(73a46e43) SHA1(054fac2dc5dffcbb9d81600689c07774d2e200b6) )
- ROM_LOAD16_BYTE( "srom6.bin", 0x00000, 0x40000, CRC(ade2dbec) SHA1(12d385d22307d8251e711788dff2e503c8f8ca7c) )
-
- ROM_REGION( 0x80000, "sprgfx", 0 ) /* GFX */
- ROM_LOAD16_BYTE( "uor1.bin", 0x00000, 0x20000, CRC(a7d91f23) SHA1(eb9694e05b8a04ed1cdbb834e1bf745a2b0260be) )
- ROM_LOAD16_BYTE( "uor2.bin", 0x00001, 0x20000, CRC(9aacbec2) SHA1(c1cfe243a7d51c950785073f235d72cc01724cdb) )
- ROM_LOAD16_BYTE( "uor3.bin", 0x40000, 0x20000, CRC(3fee0c3c) SHA1(c71439ba8033c549e40522db5270caf4a297fb99) )
- ROM_LOAD16_BYTE( "uor4.bin", 0x40001, 0x20000, CRC(bed9ed2d) SHA1(7103b99cd0d54df864ea4a0f269011e30ad29ed7) )
-ROM_END
-
-ROM_START( cookbiba )
- ROM_REGION( 0x100000, "maincpu", 0 ) /* 68000 Code */
- ROM_LOAD16_BYTE( "d13.u818", 0x00001, 0x20000, CRC(19c75b1f) SHA1(c6c920d7cb1616b828cc8245cd8f7beb72753b7c) )
- ROM_LOAD16_BYTE( "d14.u817", 0x00000, 0x20000, CRC(0021349f) SHA1(ae3dbda2fd0e99ce037e35b87a554fbe28b5fe14) )
-
- ROM_REGION( 0x10000, "audiocpu", 0 ) /* Z80 Code */
- ROM_LOAD( "d12.ub5", 0x00000, 0x10000 , CRC(0a16e0b4) SHA1(c20e8cf2b4fc6cf22d9588ff4b3e15cac8ebf505) )
-
- ROM_REGION( 0x10000, "cpu2", 0 ) /* Intel 87C52 MCU Code */
- ROM_LOAD( "87c52.mcu", 0x00000, 0x2000, NO_DUMP ) /* can't be dumped */
-
- ROM_REGION16_BE( 0x200, "user1", 0 ) /* Data from Shared RAM */ // note, different to cookbib
- /* this is not a real rom but instead the data extracted from shared ram, the MCU puts it there */
- ROM_LOAD16_WORD( "cookbiba_protdata.bin", 0x00000, 0x200 , CRC(7f05b832) SHA1(c6141b15ee9e31f7a28748f330405b90c3b9508a) )
-
- ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
- ROM_LOAD( "sound.uc1", 0x00000, 0x20000, CRC(545e19b6) SHA1(ef518bbe44b22e7ef77ee6af337ebcad9b2674e0) )
-
- ROM_REGION( 0x80000, "tilegfx", 0 ) /* */
- ROM_LOAD16_BYTE( "srom5.bin", 0x00001, 0x40000, CRC(73a46e43) SHA1(054fac2dc5dffcbb9d81600689c07774d2e200b6) )
- ROM_LOAD16_BYTE( "srom6.bin", 0x00000, 0x40000, CRC(ade2dbec) SHA1(12d385d22307d8251e711788dff2e503c8f8ca7c) )
-
- ROM_REGION( 0x80000, "sprgfx", 0 ) /* GFX */
- ROM_LOAD16_BYTE( "d17.uor1", 0x00000, 0x20000, CRC(2fab7c2d) SHA1(6024d3428cc09905c791a3f394487b8bb484a131) )
- ROM_LOAD16_BYTE( "d18.uor2", 0x00001, 0x20000, CRC(341750a0) SHA1(a218ec0e61591b02bf1a8ba69f2af8d8d29fda8a) )
- ROM_LOAD16_BYTE( "d19.uor3", 0x40000, 0x20000, CRC(343d2e41) SHA1(d1b123bb4c8749a1cda2c4e25eef09f46ecd68aa) )
- ROM_LOAD16_BYTE( "d20.uor4", 0x40001, 0x20000, CRC(c35cc03d) SHA1(cbf51cee2a39e3ea3d421a9e0b2422b1ad306031))
-ROM_END
-
-
-/* Choky Choky */
-
-ROM_START( chokchok )
- ROM_REGION( 0x100000, "maincpu", 0 ) /* 68000 Code */
- ROM_LOAD16_BYTE( "ub18.bin", 0x00001, 0x40000, CRC(b183852a) SHA1(fd50c6d91dba64b936ac367e5e5235d09ed60fdd) )
- ROM_LOAD16_BYTE( "ub17.bin", 0x00000, 0x40000, CRC(ecdb45ca) SHA1(03eb2d27ae4de25aa15477135d3b4de8b3b7f7f0) )
-
- ROM_REGION( 0x10000, "audiocpu", 0 ) /* Z80 Code */
- ROM_LOAD( "ub5.bin", 0x00000, 0x10000 , CRC(30c2171d) SHA1(3954e286d57b955af6ba9b1a0b49c442d7f295ae) )
-
- ROM_REGION( 0x2000, "protection", 0 ) /* Intel 87C52 MCU Code */
- ROM_LOAD( "p87c52ebpn.bin", 0x00000, 0x2000, CRC(0d6b4918) SHA1(cfa2c035ef214a4097df12f868b13d4d10f00d0b) ) // decapped
-
- ROM_REGION( 0x040000, "oki", 0 ) /* Samples */
- ROM_LOAD( "uc1.bin", 0x00000, 0x40000, CRC(f3f57abd) SHA1(601dc669020ef9156fa221e768be9b88454e3f55) )
-
- ROM_REGION( 0x200000, "tilegfx", 0 ) /* tiles */
- ROM_LOAD16_BYTE( "srom5.bin", 0x00001, 0x20000, CRC(836608b8) SHA1(7aa624274efee0a7affb6a1a417752b5ce116c04) )
- ROM_CONTINUE ( 0x100001,0x20000)
- ROM_CONTINUE ( 0x040001,0x20000)
- ROM_CONTINUE ( 0x140001,0x20000)
- ROM_LOAD16_BYTE( "srom6.bin", 0x00000, 0x20000, CRC(31d5715d) SHA1(32612464124290b273c4b1a8b571291f9aeff01c) )
- ROM_CONTINUE ( 0x100000,0x20000)
- ROM_CONTINUE ( 0x040000,0x20000)
- ROM_CONTINUE ( 0x140000,0x20000)
-
- ROM_REGION( 0x200000, "sprgfx", 0 ) /* sprites */
- ROM_LOAD16_BYTE( "uor1.bin", 0x000000, 0x80000, CRC(ded6642a) SHA1(357c836ebe62e0f7f9e7afdf7428f42d827ede06) )
- ROM_LOAD16_BYTE( "uor2.bin", 0x000001, 0x80000, CRC(493f9516) SHA1(2e1d38493558dc79cd4d232ac421cd5649f4119a) )
- ROM_LOAD16_BYTE( "uor3.bin", 0x100000, 0x80000, CRC(e2dc3e12) SHA1(9e2571f93d27b9048fe8e42d3f13a8e509b3adca) )
- ROM_LOAD16_BYTE( "uor4.bin", 0x100001, 0x80000, CRC(6f377530) SHA1(1367987e3af0baa8e22f09d1b40ad838f33371bc) )
-ROM_END
-
-
-/* Date Quiz Go Go */
-
-ROM_START( dquizgo )
- ROM_REGION( 0x100000, "maincpu", 0 ) /* 68000 Code */
- ROM_LOAD16_BYTE( "ub18", 0x00001, 0x80000, CRC(07f869f2) SHA1(1e69f8a6ce3bcf0feaeb43cc7c0fc3fa324466b2) )
- ROM_LOAD16_BYTE( "ub17", 0x00000, 0x80000, CRC(0b96ab14) SHA1(fc132118eaa938c85d210713320b0a04425f48de) )
-
- ROM_REGION( 0x10000, "audiocpu", 0 ) /* Z80 Code */
- ROM_LOAD( "ub5", 0x00000, 0x10000, CRC(e40481da) SHA1(1c1fabcb67693235eaa6ff59ae12a35854b5564a) )
-
- ROM_REGION( 0x2000, "protection", 0 ) // P87C52EBPN MCU, after decapping the die was 87C51RA+
- ROM_LOAD( "87c51rap.bin", 0x00000, 0x2000, CRC(03bc1f83) SHA1(9ccd49edd8e47a04c5dfe4ac163fbd98ea90aea3) ) // decapped
-
- ROM_REGION( 0x040000, "oki", 0 ) /* Samples */
- ROM_LOAD( "uc1", 0x00000, 0x40000, CRC(d0f4c4ba) SHA1(669a04a977e98d8a594cc1621cbb9526c9081ec0) )
-
- ROM_REGION( 0x80000, "tilegfx", 0 ) /* tiles */
- ROM_LOAD16_BYTE( "srom5", 0x00001, 0x40000, CRC(f1cdd21d) SHA1(0bfc09abce40712c4e95f13ad0d4b78684e44630) )
- ROM_IGNORE(0x40000)
- ROM_LOAD16_BYTE( "srom6", 0x00000, 0x40000, CRC(f848939e) SHA1(bf5e62300dd13a37f4715c67a2eec88034a94311) )
- ROM_IGNORE(0x40000)
-
- ROM_REGION( 0x200000, "sprgfx", 0 ) /* sprites */
- ROM_LOAD16_BYTE( "uor1", 0x000000, 0x80000, CRC(b4912bf6) SHA1(ef827adba58470a201f3c1ecc3286d728a753eff) )
- ROM_LOAD16_BYTE( "uor2", 0x000001, 0x80000, CRC(b011cf93) SHA1(b993df91511ac17d5bf8e688333f2953b87d5be4) )
- ROM_LOAD16_BYTE( "uor3", 0x100000, 0x80000, CRC(d96c3582) SHA1(6b313462fd8985fae60bc59cd9c99c97ab70fdcc) )
- ROM_LOAD16_BYTE( "uor4", 0x100001, 0x80000, CRC(77ff23eb) SHA1(7fc891810591458fd62f3d4b9b4c966662e90403) )
-ROM_END
-
-/*
-
-SD Fighters (c) 1996 SemiCom
-
-Game released 1996-09-13
-
-PCB Layout
-----------
-
-YMET 961023
-
-+------------------------------------------+
-| M6295 UC1 |
-| 5.uj2 11.uk2|
-| YM3012 YM2151 6.uj3 12.uk3|
-|4.096MHZ Z80 UA7 pLSI1032 7.uj4 13.uk4|
-|J 8.uj5 14.uk5|
-|A |
-|M pLSI1032 9.uj2 15.uk2|
-|M 10.uj2 16.uk2|
-|A 68000 UM61256 UM6164 |
-|DSW1 U818 |
-| 87C52 UM61256 UM6164 |
-|DSW2 U817 |
-| 15.00MHz |
-+------------------------------------------+
-
-Motorola MC68000P10
-ZiLOG Z0840006PSC
-Intel P87C52 MCU
-
-Lattice pLSI 1032 (x2)
-Yamaha YM2151 & YM3012 (badged as BS901 & KA12)
-OKI M6295 (badged as AD-65)
-
-OSC: 4.096MHz, 15.000MHz
-
-*/
-
-ROM_START( sdfight )
- ROM_REGION( 0x100000, "maincpu", 0 ) /* 68000 Code */
- ROM_LOAD16_BYTE( "u818", 0xc0001, 0x20000, CRC(a60e5b22) SHA1(eda1a5de881718f78a45720c3ca43a6288a0e65d) )
- ROM_CONTINUE( 0x80001, 0x20000)
- ROM_CONTINUE( 0x40001, 0x20000)
- ROM_CONTINUE( 0x00001, 0x20000)
- ROM_LOAD16_BYTE( "u817", 0xc0000, 0x20000, CRC(9f284f4d) SHA1(f4a471fb09c2fd73692ddaa03083644493256aae) )
- ROM_CONTINUE( 0x80000, 0x20000)
- ROM_CONTINUE( 0x40000, 0x20000)
- ROM_CONTINUE( 0x00000, 0x20000)
-
- ROM_REGION( 0x10000, "audiocpu", 0 ) /* Z80 Code */
- ROM_LOAD( "ua7", 0x00000, 0x10000 , CRC(c3d36da4) SHA1(7290a977bfa9a3d5e0c98a0f589d877e38aa10a1) )
-
- ROM_REGION( 0x10000, "cpu2", 0 ) /* Intel 87C52 MCU Code */
- ROM_LOAD( "87c52.mcu", 0x00000, 0x2000, NO_DUMP ) /* can't be dumped */
-
- ROM_REGION16_BE( 0x200, "user1", ROMREGION_ERASE00 ) /* 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(efb8b822) SHA1(139c39771c057ae322d3601f7e0a58b43fa8860a) )
-
- ROM_REGION( 0x040000, "oki", 0 ) /* Samples */
- ROM_LOAD( "uc1", 0x00000, 0x40000, CRC(535cae2c) SHA1(e9d59ab23cbbc0375987ea68e170ddb1cc75cff8) )
-
- ROM_REGION( 0x200000, "tilegfx", 0 ) /* Tiles */
- ROM_LOAD16_BYTE( "9.ug11", 0x000001, 0x20000, CRC(bf809ccd) SHA1(4d648d7cdeb5ce4a918b8372dbd33c2fbf307dc0) ) // tiles a plane 0
- ROM_CONTINUE ( 0x100001,0x20000) // tiles a plane 1
- ROM_CONTINUE ( 0x040001,0x20000) // tiles b plane 0
- ROM_CONTINUE ( 0x140001,0x20000) // tiles b plane 1
- ROM_LOAD16_BYTE( "10.ug12", 0x000000, 0x20000, CRC(a5a3bfa2) SHA1(9b0d791f80f4cba14b7fab1aa7550784d6c4c4f7) ) // tiles a plane 2
- ROM_CONTINUE ( 0x100000,0x20000) // tiles a plane 3
- ROM_CONTINUE ( 0x040000,0x20000) // tiles b plane 2
- ROM_CONTINUE ( 0x140000,0x20000) // tiles b plane 3
- ROM_LOAD16_BYTE( "15.ui11", 0x080001, 0x20000, CRC(3bc8aa6d) SHA1(a8983957da5e286ec437f2fc83dfabf81fe56ca2) ) // tiles c plane 0
- ROM_CONTINUE ( 0x180001,0x20000) // tiles c plane 1
- ROM_CONTINUE ( 0x0c0001,0x20000) // tiles d plane 0
- ROM_CONTINUE ( 0x1c0001,0x20000) // tiles d plane 1
- ROM_LOAD16_BYTE( "16.ui12", 0x080000, 0x20000, CRC(71e6b78d) SHA1(a676395b2357093c4800d8520df10f7ef17cb3ee) ) // tiles c plane 2
- ROM_CONTINUE ( 0x180000,0x20000) // tiles c plane 3
- ROM_CONTINUE ( 0x0c0000,0x20000) // tiles d plane 2
- ROM_CONTINUE ( 0x1c0000,0x20000) // tiles d plane 3
-
- ROM_REGION( 0x400000, "sprgfx", 0 ) /* Sprites */
- ROM_LOAD16_BYTE( "11.uk2", 0x000000, 0x80000, CRC(d006fadc) SHA1(79014bc0c7909763829ba02d5434d4543b4b80e5) ) // b
- ROM_LOAD16_BYTE( "12.uk3", 0x000001, 0x80000, CRC(2a2f4153) SHA1(d86692ee17ad052fdd8fccded57e3e30012026f6) ) // b
- ROM_LOAD16_BYTE( "5.uj2", 0x100000, 0x80000, CRC(f1246cbf) SHA1(de80a8f0d29ee76e11f38d9982ffcb4fd228153a) ) // b
- ROM_LOAD16_BYTE( "6.uj3", 0x100001, 0x80000, CRC(d346878c) SHA1(93174f6f6cc797323c5e429bf324d4ffe081f072) ) // b
- ROM_LOAD16_BYTE( "13.uk4", 0x200000, 0x80000, CRC(9bc40774) SHA1(b56c57258ec9c07c7efff9c0c632390d2d5ce4e2) ) // a
- ROM_LOAD16_BYTE( "14.uk5", 0x200001, 0x80000, CRC(a1e61674) SHA1(a5a50f479a019b39082429fa3425a95480838f84) ) // a
- ROM_LOAD16_BYTE( "7.uj4", 0x300000, 0x80000, CRC(dbdece8a) SHA1(20199cc915a1f8088372682c054cac69bc3b4918) ) // a
- ROM_LOAD16_BYTE( "8.uj5", 0x300001, 0x80000, CRC(60be7dd1) SHA1(d212dee3acf696cac0843e968a71ec1fb9b16dc9) ) // a
-ROM_END
-
-
-
-ROM_START( magicbal )
- ROM_REGION( 0x100000, "maincpu", 0 ) /* 68000 Code */
- ROM_LOAD16_BYTE( "jb17", 0x00000, 0x40000, CRC(501e64dd) SHA1(938c1b5364d02fe982d490118a86d4ca4b1297f2) )
- ROM_LOAD16_BYTE( "jb18", 0x00001, 0x40000, CRC(84dcdf68) SHA1(83907705c1c45685e1888c187c8136865c43ee0b) )
-
- ROM_REGION( 0x10000, "audiocpu", 0 ) /* Z80 Code */
- ROM_LOAD( "ub5", 0x00000, 0x10000, CRC(48a9e99d) SHA1(d438f86b6cc9f8e145c89bac355a9bd2d634801e) )
-
- ROM_REGION( 0x10000, "protection", 0 ) /* Intel 87C52 MCU Code */
- ROM_LOAD( "87c52.mcu", 0x00000, 0x2000, NO_DUMP )
-
- ROM_REGION16_BE( 0x200, "user1", ROMREGION_ERASE00 ) /* 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(fb67d20d) SHA1(63f2862a7ded075d501e21919f211d156bef4fb4) )
-
- ROM_REGION( 0x040000, "oki", 0 ) /* Samples */
- ROM_LOAD( "uc1", 0x00000, 0x40000, CRC(6e4cec27) SHA1(9dd07684502300589e957d1bcde0239880eaada2) )
-
- ROM_REGION( 0x80000, "tilegfx", 0 ) /* tiles */
- ROM_LOAD16_BYTE( "rom5", 0x00001, 0x40000, CRC(b9561ae0) SHA1(e2fb11df167a984f98eb6d3a1b77e749646da403) )
- ROM_LOAD16_BYTE( "rom6", 0x00000, 0x40000, CRC(b03a19ea) SHA1(66ab219111c53f79104aa9db250e4b2133a29924) )
-
- ROM_REGION( 0x200000, "sprgfx", 0 ) /* sprites */
- ROM_LOAD16_BYTE( "uor1", 0x000000, 0x80000, CRC(1835ac6f) SHA1(3c0b171c248a98e1facb5f4fe1c94f98a07b7149) )
- ROM_LOAD16_BYTE( "uor2", 0x000001, 0x80000, CRC(c9db161e) SHA1(3b7b45db005a7144e4c6386d917e89096172385e) )
- ROM_LOAD16_BYTE( "uor3", 0x100000, 0x80000, CRC(69f54d5a) SHA1(10685a14304a0966027e729fc55433c05943391c) )
- ROM_LOAD16_BYTE( "uor4", 0x100001, 0x80000, CRC(3736eef4) SHA1(c801fbf743a9cea6a605f716fb22cee1322fa340) )
-ROM_END
-
-/*
-
-Wonderleague Star (c) 1995 Mijin (SemiCom traded under the Mijin name until 1995)
-
-Game released 1995-07-07
-
-PCB Layout
-----------
-
-950522
-
-+------------------------------------------+
-| M6295 UC1 4.096MHz |
-| UDR1 |
-| YM3012 YM2151 UA7 UDR2 |
-| Z80 UDR3 |
-|J UDR4 |
-|A |
-|M |
-|M 15.000MHz SROM5 |
-|A DSW1 SROM6 |
-| 68000 HY62256 HY6284A |
-| DSW2 HY62256 HY6284A |
-| U818 |
-| 87C52 U817 TCP1020AFN|
-+------------------------------------------+
-
-Motorola MC68000P10
-ZiLOG Z0840006PSC
-Philips P87C52IBPN MCU
-
-TI TPC1020AFN-084C
-Yamaha YM2151 & YM3012 (badged as BS901 & BS902)
-OKI M6295 (badged AD-65)
-
-OSC: 4.096MHz, 15.000MHz
-
-Second in a series of Baseball games:
-
-1. Magicball Fighting (1994)
-2. Wonder League Star (1995)
-3. Wonder League 96 (1996)
-4. MuHanSeungBu (1997)
-
-*/
-
-ROM_START( wlstar )
- ROM_REGION( 0x100000, "maincpu", 0 ) /* 68000 Code */
- ROM_LOAD16_BYTE( "n-3.u818", 0x00001, 0x40000, CRC(f01bc623) SHA1(ef9d32071bd259fad8243ff4622a82062e67c196) )
- ROM_LOAD16_BYTE( "n-4.u817", 0x00000, 0x40000, CRC(fc3e829b) SHA1(736835766f2b534c4ea3081f7a715a09a068a9f6) )
-
- ROM_REGION( 0x10000, "audiocpu", 0 ) /* Z80 Code */
- ROM_LOAD( "ua7", 0x00000, 0x10000, CRC(90cafa5f) SHA1(2d2ba8e395544e49899cac662d87585592b12040) )
-
- ROM_REGION( 0x10000, "protection", 0 ) /* Intel 87C52 MCU Code */
- ROM_LOAD( "87c52.mcu", 0x00000, 0x2000, CRC(ab5e2a7e) SHA1(9d3dbbbf0fac12ed82184222a077d81243abb39d) ) /* decapped */
-
- ROM_REGION( 0x040000, "oki", 0 ) /* Samples */
- ROM_LOAD( "ua1", 0x00000, 0x40000, CRC(de217d30) SHA1(5d7a6f82b106dd1185c7dcde193177cc46c4782f) )
-
- ROM_REGION( 0x200000, "tilegfx", 0 ) /* tiles */
- ROM_LOAD16_BYTE( "5.srom5", 0x00001, 0x20000, CRC(f7f8c859) SHA1(28b21abfaff2b0502459d1e219c4397ca78a1495) )
- ROM_CONTINUE ( 0x100001,0x20000)
- ROM_CONTINUE ( 0x040001,0x20000)
- ROM_CONTINUE ( 0x140001,0x20000)
- ROM_LOAD16_BYTE( "6.srom6", 0x00000, 0x20000, CRC(34ace2a8) SHA1(f4ab3eceaacf65b5417edbb74b719f2993fa53ef) )
- ROM_CONTINUE ( 0x100000,0x20000)
- ROM_CONTINUE ( 0x040000,0x20000)
- ROM_CONTINUE ( 0x140000,0x20000)
-
- ROM_REGION( 0x200000, "sprgfx", 0 ) /* sprites */
- ROM_LOAD16_BYTE( "7.udr1", 0x000000, 0x80000, CRC(6e47c31d) SHA1(c9c2d798197e6fc16d7750391c13506a87f8a49b) )
- ROM_LOAD16_BYTE( "8.udr2", 0x000001, 0x80000, CRC(09c5d57c) SHA1(0c53b90be28636008fa3f590b6a851022316f2e8) )
- ROM_LOAD16_BYTE( "9.udr3", 0x100000, 0x80000, CRC(3ec064f0) SHA1(642c49acfe8388717666d423ae94789eb61105a6) )
- ROM_LOAD16_BYTE( "10.udr4", 0x100001, 0x80000, CRC(b4693cdd) SHA1(031290586321b95436b30a3339a10dd8df12b245) )
-ROM_END
-
-/* Wonderleague '96 */
-
-ROM_START( wondl96 )
- ROM_REGION( 0x100000, "maincpu", 0 ) /* 68000 Code */
- ROM_LOAD16_BYTE( "ub17.bin", 0x00000, 0x40000, CRC(41d8e03c) SHA1(a3ff92ac2ef9b829cf89ceff606f8dd913025bef) )
- ROM_LOAD16_BYTE( "ub18.bin", 0x00001, 0x40000, CRC(0e4963af) SHA1(6c0607541ca0e5dd8aa4f8138d71150b1ab066cd) )
-
- ROM_REGION( 0x10000, "audiocpu", 0 ) /* Z80 Code */
- ROM_LOAD( "ub5.bin", 0x00000, 0x10000, CRC(d99d19c4) SHA1(a7fae11275bb156cdbf2805fcc3aec44892d0817) )
-
- ROM_REGION( 0x10000, "protection", 0 ) /* Intel 87C52 MCU Code */
- ROM_LOAD( "87c52.mcu", 0x00000, 0x2000, CRC(6f4c659a) SHA1(7a1453531d9ceb37af21b96becfa9b06bff0a528) ) /* decapped */
-
- ROM_REGION( 0x040000, "oki", 0 ) /* Samples */
- ROM_LOAD( "uc1.bin", 0x00000, 0x40000, CRC(0e7913e6) SHA1(9a44bd7ca4030627a26010583216ce1c8032ee1b) )
-
- ROM_REGION( 0x200000, "tilegfx", 0 ) /* tiles */
- ROM_LOAD16_BYTE( "srom5.bin", 0x00001, 0x20000, CRC(db8010c3) SHA1(db43d894d545a72e8da16555c54dcdbd89d87e3d) )
- ROM_CONTINUE ( 0x100001,0x20000)
- ROM_CONTINUE ( 0x040001,0x20000)
- ROM_CONTINUE ( 0x140001,0x20000)
- ROM_LOAD16_BYTE( "srom6.bin", 0x00000, 0x20000, CRC(2f364e54) SHA1(b0d3581567bd46565e9422f6bfb11273fc760fda) )
- ROM_CONTINUE ( 0x100000,0x20000)
- ROM_CONTINUE ( 0x040000,0x20000)
- ROM_CONTINUE ( 0x140000,0x20000)
-
- ROM_REGION( 0x200000, "sprgfx", 0 ) /* sprites */
- ROM_LOAD16_BYTE( "uor1.bin", 0x000000, 0x80000, CRC(e1e9eebb) SHA1(c92ca988a988c6c5f574654f263e239c2aea9f32) )
- ROM_LOAD16_BYTE( "uor2.bin", 0x000001, 0x80000, CRC(ddebfe83) SHA1(94e7ed19b9fb87fd7733b832d668449ab0442587) )
- ROM_LOAD16_BYTE( "uor3.bin", 0x100000, 0x80000, CRC(7efe4d67) SHA1(b96d42cbb9c62502aac6aad9122b44c165149707) )
- ROM_LOAD16_BYTE( "uor4.bin", 0x100001, 0x80000, CRC(7b1596d1) SHA1(2fab7d6c82318aa335a82af50835139f61e04a3d) )
-ROM_END
-
-
-/*
-
-SemiCom Baseball (MuHanSeungBu)
-
-PCB Layout
-----------
-
-+----------------------------------+
-| 65728 4.096MHz M6295 ic99 |
-| ic2 ic100|
-| YM3012 Z80 ic64 ic102|
-| YM2151 5814 ic104|
-|J 5814 ic105|
-|A 6264 QL2007 ic106|
-|M 65728 6264 ic107|
-|M 65728 ic108|
-|A DSW1 ic109|
-| 87c52 65728 ic110|
-| DSW2 65728 ic111|
-| ic35 ic62 68000 ic113|
-| 62256 62256 15MHz |
-+----------------------------------+
-
-Motorola MC68HC000P10
-Goldstar Z8400B PS
-Philips P87C52EBPN MCU
-
-QuickLogic QL2007-XPQ208C
-Yamaha YM2151 & YM3012 (badged as BS901 & BS902)
-OKI M6295 (badged AD-65)
-
-OSC: 4.096MHz, 15.000MHz
-
-Ram:
- UM62256E-70LL x 2 (by 68000)
- HY6264A LP-70 x 2 (by QuickLogic QL2007)
- Temic HM3-65728BK-5 (by Z80)
- Temic HM3-65728BK-5 x 2
- Sony CXK5814P-35L x 2
-
-No roms had any labels, the IC position and
-logical use (IE:z80 for the Z80 program rom)
-
-Fourth in a series of Baseball games:
-
-1. Magicball Fighting (1994)
-2. Wonder League Star (1995)
-3. Wonder League 96 (1996)
-4. MuHanSeungBu (1997)
-
-*/
-
-ROM_START( semibase )
- ROM_REGION( 0x100000, "maincpu", 0 ) /* 68000 Code */
- ROM_LOAD16_BYTE( "ic35.68k", 0x40001, 0x20000, CRC(d2249605) SHA1(ab3faa832f14f799e4a975673495d30160c6eae5) )
- ROM_CONTINUE ( 0x00001, 0x20000)
- ROM_LOAD16_BYTE( "ic62.68k", 0x40000, 0x20000, CRC(85ea81c3) SHA1(7e97316f5f373b98fa4063acd74f784b312a1cc4) )
- ROM_CONTINUE ( 0x00000, 0x20000)
-
- ROM_REGION( 0x10000, "audiocpu", 0 ) /* Z80 Code */
- ROM_LOAD( "ic21.z80", 0x04000, 0x4000 , CRC(d95c64d0) SHA1(1b239e8b23b820610dbf67cbd525d4a6c956ba35) )
- ROM_CONTINUE( 0x0000, 0x4000 )
- ROM_CONTINUE( 0xc000, 0x4000 )
- ROM_CONTINUE( 0x8000, 0x4000 )
-
- ROM_REGION( 0x10000, "cpu2", 0 ) /* Intel 87C52 MCU Code */
- ROM_LOAD( "87c52.mcu", 0x00000, 0x2000, 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 */
- /* once the game has decrypted this it's almost identical to bcstory with several ram addresses being 0x4 higher than in bcstory
- and 1200FE: andi.b #$f, D1 instead of #$3 (unless bcstory data is wrong?) */
- ROM_LOAD16_WORD( "protdata.bin", 0x00000, 0x200 , CRC(ecbf2163) SHA1(634b366a8c4ba8699851861bf935b55850f93a7f) )
-
- ROM_REGION( 0x040000, "oki", 0 ) /* Samples */
- ROM_LOAD( "ic64.snd", 0x00000, 0x40000, CRC(8a60649c) SHA1(aeb266436f6af4173b84dbb19362563b6c5db507) )
-
- ROM_REGION( 0x200000, "tilegfx", 0 ) /* Tiles */
- ROM_LOAD16_BYTE( "ic109.gfx", 0x000000, 0x20000, CRC(2b86e983) SHA1(f625da05d68c78173e346f9c60ab4b0672b9f357) ) // tiles a plane 0
- ROM_CONTINUE ( 0x100000,0x20000) // tiles a plane 1
- ROM_CONTINUE ( 0x040000,0x20000) // tiles b plane 0
- ROM_CONTINUE ( 0x140000,0x20000) // tiles b plane 1
- ROM_LOAD16_BYTE( "ic113.gfx", 0x000001, 0x20000, CRC(e39b6610) SHA1(604f876f0bf9ed70f627944397e78ee16869d0ba) ) // tiles a plane 2
- ROM_CONTINUE ( 0x100001,0x20000) // tiles a plane 3
- ROM_CONTINUE ( 0x040001,0x20000) // tiles b plane 2
- ROM_CONTINUE ( 0x140001,0x20000) // tiles b plane 3
- ROM_LOAD16_BYTE( "ic110.gfx", 0x080000, 0x20000, CRC(bba4a015) SHA1(4e03585ff493148b9eeaaabb8d37630962ab6c74) ) // tiles c plane 0
- ROM_CONTINUE ( 0x180000,0x20000) // tiles c plane 1
- ROM_CONTINUE ( 0x0c0000,0x20000) // tiles d plane 0
- ROM_CONTINUE ( 0x1c0000,0x20000) // tiles d plane 1
- ROM_LOAD16_BYTE( "ic111.gfx", 0x080001, 0x20000, CRC(61133b63) SHA1(8820c88297fbcf5e1102c01245391f49a9c63186) ) // tiles c plane 2
- ROM_CONTINUE ( 0x180001,0x20000) // tiles c plane 3
- ROM_CONTINUE ( 0x0c0001,0x20000) // tiles d plane 2
- ROM_CONTINUE ( 0x1c0001,0x20000) // tiles d plane 3
-
- ROM_REGION( 0x400000, "sprgfx", 0 ) /* Sprites */
- ROM_LOAD16_BYTE( "ic100.gfx", 0x000000, 0x80000, CRC(01c3d12a) SHA1(128c21b18f73445a8e77fe5dd3072c1b1e20c47a) ) // b
- ROM_LOAD16_BYTE( "ic106.gfx", 0x000001, 0x80000, CRC(db282ac2) SHA1(127637967e7620cd7e81aff268fb776d0211e58a) ) // b
- ROM_LOAD16_BYTE( "ic99.gfx", 0x100000, 0x80000, CRC(349df821) SHA1(34af8b748aad5807300f8e76eb8a99366878004b) ) // a
- ROM_LOAD16_BYTE( "ic105.gfx", 0x100001, 0x80000, CRC(f7caa81c) SHA1(2270d133c7b116d66581fc688086dd331b811478) ) // a
- ROM_LOAD16_BYTE( "ic104.gfx", 0x200000, 0x80000, CRC(51a5d38a) SHA1(0258ae29779f7f1246845622a579d37dca64fb2f) ) // b
- ROM_LOAD16_BYTE( "ic108.gfx", 0x200001, 0x80000, CRC(b253d60e) SHA1(aca2f6c2233372841908377407068c5d45f5f9c4) ) // b
- ROM_LOAD16_BYTE( "ic102.gfx", 0x300000, 0x80000, CRC(3caefe97) SHA1(e60c6ef9e1dd6abdd763648dbcebefa4f19364c4) ) // a
- ROM_LOAD16_BYTE( "ic107.gfx", 0x300001, 0x80000, CRC(68109898) SHA1(dbc0d431da33e22b8d0f918b9c8a3c1667bc4f8e) ) // a
-ROM_END
-
-
-/******************************************************************************/
-
-#if TUMBLEP_HACK
-void tumbleb_state::tumblepb_patch_code(uint16_t offset)
-{
- /* A hack which enables all Dip Switches effects */
- uint16_t *RAM = (uint16_t *)memregion("maincpu")->base();
- RAM[(offset + 0)/2] = 0x0240;
- RAM[(offset + 2)/2] = 0xffff; // andi.w #$f3ff, D0
-}
-#endif
-
-
-void tumbleb_state::tumblepb_gfx_rearrange(int rgn)
-{
- uint8_t* rom;
- int len;
-
- if (rgn == 1)
- {
- rom = memregion("tilegfx")->base();
- len = memregion("tilegfx")->bytes();
- }
- else
- {
- rom = memregion("sprgfx")->base();
- len = memregion("sprgfx")->bytes();
- }
-
- int i;
-
- /* gfx data is in the wrong order */
- for (i = 0; i < len; i++)
- {
- if ((i & 0x20) == 0)
- {
- int t = rom[i]; rom[i] = rom[i + 0x20]; rom[i + 0x20] = t;
- }
- }
- /* low/high half are also swapped */
- for (i = 0; i < len/2; i++)
- {
- int t = rom[i]; rom[i] = rom[i + len/2]; rom[i + len/2] = t;
- }
-}
-
-void tumbleb_state::init_tumblepb()
-{
- tumblepb_gfx_rearrange(1);
-
- #if TUMBLEP_HACK
- tumblepb_patch_code(0x000132);
- #endif
-}
-
-void tumbleb_state::init_tumblepba()
-{
- // rearrange the bg data instead of the sprite data on this one!
- tumblepb_gfx_rearrange(2);
-}
-
-void tumbleb_state::init_tumbleb2()
-{
- tumblepb_gfx_rearrange(1);
-
- #if TUMBLEP_HACK
- tumblepb_patch_code(0x000132);
- #endif
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x100000, 0x100001, write16smo_delegate(*this, FUNC(tumbleb_state::tumbleb2_soundmcu_w)));
-
-}
-
-void tumbleb_state::init_jumpkids()
-{
- tumblepb_gfx_rearrange(1);
-
- #if TUMBLEP_HACK
- tumblepb_patch_code(0x00013a);
- #endif
-}
-
-void tumbleb_state::init_fncywld()
-{
- tumblepb_gfx_rearrange(1);
-
- /* This is a hack to allow you to use the extra features
- of the 2 first "Unused" Dip Switch (see notes above). */
- //uint16_t *RAM = (uint16_t *)memregion("maincpu")->base();
- //RAM[0x0005fa/2] = 0x4e71;
- //RAM[0x00060a/2] = 0x4e71;
-}
-
-void tumbleb_state::init_magipur()
-{
- tumblepb_gfx_rearrange(1);
-
- uint16_t *src = (uint16_t*)memregion( "maincpu" )->base();
- // copy vector table? game expects RAM at 0, and ROM at f00000?!
- memcpy(m_mainram, src, 0x80);
-}
-
-
-uint16_t tumbleb_state::bcstory_1a0_read()
-{
- //osd_printf_debug("bcstory_io %06x\n",m_maincpu->pc());
-
- if (m_maincpu->pc()==0x0560) return 0x1a0;
- else return ioport("SYSTEM")->read();
-}
-
-void tumbleb_state::init_bcstory()
-{
- tumblepb_gfx_rearrange(1);
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x180008, 0x180009, read16smo_delegate(*this, FUNC(tumbleb_state::bcstory_1a0_read))); // io should be here??
-}
-
-
-void tumbleb_state::init_htchctch()
-{
- if (memregion("user1") != nullptr)
- {
- uint16_t *PROTDATA = (uint16_t*)memregion("user1")->base();
- int len = memregion("user1")->bytes();
- /* simulate RAM initialization done by the protection MCU */
-
- for (int i = 0; i < len / 2; i++)
- m_mainram[0x000/2 + i] = PROTDATA[i];
- }
-
- tumblepb_gfx_rearrange(1);
-
-}
-
-
-void tumbleb_state::suprtrio_decrypt_code()
-{
- uint16_t *rom = (uint16_t *)memregion("maincpu")->base();
- std::vector<uint16_t> buf(0x80000/2);
- int i;
-
- /* decrypt main ROMs */
- memcpy(&buf[0], rom, 0x80000);
- for (i = 0; i < 0x40000; i++)
- {
- int j = i ^ 0x06;
- if ((i & 1) == 0) j ^= 0x02;
- if ((i & 3) == 0) j ^= 0x08;
- rom[i] = buf[j];
- }
-}
-
-void tumbleb_state::suprtrio_decrypt_gfx()
-{
- uint16_t *rom = (uint16_t *)memregion("tilegfx")->base();
- std::vector<uint16_t> buf(0x100000/2);
- int i;
-
- /* decrypt tiles */
- memcpy(&buf[0], rom, 0x100000);
- for (i = 0; i < 0x80000; i++)
- {
- int j = i ^ 0x02;
- if (i & 1) j ^= 0x04;
- rom[i] = buf[j];
- }
-}
-
-void tumbleb_state::init_suprtrio()
-{
- suprtrio_decrypt_code();
- suprtrio_decrypt_gfx();
-}
-
-void tumbleb_state::init_chokchok()
-{
- init_htchctch();
-
- // different palette format, closer to tumblep -- is this controlled by a register? the palette was right with the hatch catch trojan
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x140000, 0x140fff, write16s_delegate(*m_palette, FUNC(palette_device::write16)));
-
- // slightly different banking
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x100002, 0x100003, write16s_delegate(*this, FUNC(tumbleb_state::chokchok_tilebank_w)));
-}
-
-void tumbleb_state::init_carket()
-{
- init_htchctch();
-
- // slightly different banking
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x100002, 0x100003, write16s_delegate(*this, FUNC(tumbleb_state::chokchok_tilebank_w)));
-}
-
-void tumbleb_state::init_wlstar()
-{
- tumblepb_gfx_rearrange(1);
-
- // slightly different banking
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x100002, 0x100003, write16smo_delegate(*this, FUNC(tumbleb_state::wlstar_tilebank_w)));
-
- m_protbase = 0x0000;
-}
-
-void tumbleb_state::init_wondl96()
-{
- init_wlstar();
- m_protbase = 0x0200;
-}
-
-void tumbleb_state::init_dquizgo()
-{
- tumblepb_gfx_rearrange(1);
-
- m_protbase = 0x0200;
-}
-
-
-
-/******************************************************************************/
-
-/* Misc 'bootleg' hardware - close to base Tumble Pop */
-GAME( 1991, tumbleb, tumblep, tumblepb, tumblepb, tumbleb_state, init_tumblepb, ROT0, "bootleg", "Tumble Pop (bootleg)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
-GAME( 1991, tumbleb2, tumblep, tumbleb2, tumblepb, tumbleb_state, init_tumbleb2, ROT0, "bootleg", "Tumble Pop (bootleg with PIC)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) // PIC is protected, sound simulation not 100%
-GAME( 1991, tumblepba,tumblep, tumblepba, tumblepb, tumbleb_state, init_tumblepba,ROT0, "bootleg (Playmark)", "Tumble Pop (Playmark bootleg)", MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING ) // Playmark stickers on ROMs, offset pf1_alt tilemap, OKI not hooked up
-
-GAME( 1992, funkyjetb,funkyjet,funkyjetb, tumblepb, tumbleb_pic_state, init_tumblepb, ROT0, "bootleg", "Funky Jet (bootleg)", MACHINE_NO_SOUND | MACHINE_WRONG_COLORS | MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) // wrong palette, inputs not working, PIC driving an OKI
-
-GAME( 1993, jumpkids, 0, jumpkids, tumblepb, tumbleb_state, init_jumpkids, ROT0, "Comad", "Jump Kids", MACHINE_SUPPORTS_SAVE )
-
-GAME( 1994, pangpang, 0, pangpang, tumblepb, tumbleb_state, init_tumbleb2, ROT0, "Dong Gue La Mi Ltd.", "Pang Pang", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) // PIC is protected, sound simulation not 100%
-
-/* Misc 'bootleg' hardware - more changes from base hardware */
-GAME( 1994, suprtrio, 0, suprtrio, suprtrio, tumbleb_state, init_suprtrio, ROT0, "Gameace", "Super Trio", MACHINE_SUPPORTS_SAVE )
-
-GAME( 1996, fncywld, 0, fncywld, fncywld, tumbleb_state, init_fncywld, ROT0, "Unico", "Fancy World - Earth of Crisis" , MACHINE_SUPPORTS_SAVE ) // game says 1996, testmode 1995?
-
-GAME( 1996, magipur, 0, magipur, magipur, tumbleb_state, init_magipur, ROT0, "Unico", "Magic Purple" , MACHINE_SUPPORTS_SAVE )
-
-/* First Amusement / Mijin / SemiCom hardware (MCU protected) */
-GAME( 1994, metlsavr, 0, metlsavr, metlsavr, tumbleb_state, init_chokchok, ROT0, "First Amusement", "Metal Saver", MACHINE_SUPPORTS_SAVE )
-
-GAME( 1994, magicbal, 0, metlsavr, magicbal, tumbleb_state, init_chokchok, ROT0, "SemiCom", "Magicball Fighting (Korea)", MACHINE_SUPPORTS_SAVE ) // also still has the Metal Saver (c)1994 First Amusement tiles in the GFX
-
-GAME( 1995, chokchok, 0, chokchok, chokchok, tumbleb_state, init_chokchok, ROT0, "SemiCom", "Choky! Choky!", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
-
-GAME( 1995, wlstar, 0, cookbib_mcu, wlstar, tumbleb_state, init_wlstar, ROT0, "Mijin", "Wonder League Star - Sok-Magicball Fighting (Korea)", MACHINE_SUPPORTS_SAVE ) // translates to 'Wonder League Star - Return of Magicball Fighting'
-
-GAME( 1995, htchctch, 0, htchctch_mcu, htchctch, tumbleb_state, init_htchctch, ROT0, "SemiCom", "Hatch Catch" , MACHINE_SUPPORTS_SAVE ) // not 100% sure about gfx offsets
-
-GAME( 1995, cookbib, 0, cookbib, cookbib, tumbleb_state, init_htchctch, ROT0, "SemiCom", "Cookie & Bibi (set 1)" , MACHINE_SUPPORTS_SAVE ) // not 100% sure about gfx offsets
-GAME( 1995, cookbiba, cookbib, cookbib, cookbib, tumbleb_state, init_htchctch, ROT0, "SemiCom", "Cookie & Bibi (set 2)" , MACHINE_SUPPORTS_SAVE )
-
-GAME( 1996, carket, 0, htchctch, carket, tumbleb_state, init_carket, ROT0, "SemiCom", "Carket Ball", MACHINE_SUPPORTS_SAVE )
-
-GAME( 1996, wondl96, 0, cookbib_mcu, wondl96, tumbleb_state, init_wondl96, ROT0, "SemiCom", "Wonder League '96 (Korea)", MACHINE_SUPPORTS_SAVE )
-
-GAME( 1996, sdfight, 0, sdfight, sdfight, tumbleb_state, init_bcstory, ROT0, "SemiCom / Tirano", "SD Fighters (Korea)", MACHINE_SUPPORTS_SAVE )
-
-GAME( 1997, bcstry, 0, bcstory, bcstory, tumbleb_state, init_bcstory, ROT0, "SemiCom / Tirano", "B.C. Story (set 1)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) // gfx offsets?
-GAME( 1997, bcstrya, bcstry, bcstory, bcstory, tumbleb_state, init_bcstory, ROT0, "SemiCom / Tirano", "B.C. Story (set 2)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) // gfx offsets?
-
-GAME( 1997, semibase, 0, semibase, semibase, tumbleb_state, init_bcstory, ROT0, "SemiCom / DMD", "MuHanSeungBu (SemiCom Baseball) (Korea)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )// sprite offsets..
-
-GAME( 1998, dquizgo, 0, cookbib_mcu, dquizgo, tumbleb_state, init_dquizgo, ROT0, "SemiCom / AceVer", "Date Quiz Go Go (Korea)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) // check layer offsets