diff options
Diffstat (limited to 'src/mame/drivers/warpwarp.cpp')
-rw-r--r-- | src/mame/drivers/warpwarp.cpp | 1044 |
1 files changed, 0 insertions, 1044 deletions
diff --git a/src/mame/drivers/warpwarp.cpp b/src/mame/drivers/warpwarp.cpp deleted file mode 100644 index 12328a00d8f..00000000000 --- a/src/mame/drivers/warpwarp.cpp +++ /dev/null @@ -1,1044 +0,0 @@ -// license:BSD-3-Clause -// copyright-holders:Chris Hardy -/*************************************************************************** - -Namco early 8080-based games - -All these games run on the same hardware design, with minor differences. - -Gee Bee was the very first videogame released by Namco, and runs on a b&w board. -The year after, the design was upgraded to add color and a second sound channel; -however, the b&w board was not abandoned, and more games were written for it with -the only difference of a larger gfx ROM (losing the ability to choose full or half -brightness for each character). - - -Gee Bee memory map -Navarone, Kaitei, SOS are the same but CGROM is twice as large - -Address Dir Data Name Description ----------------- --- -------- --------- ----------------------- --000xxxxxxxxxxxx R xxxxxxxx ROM2/ROM0 program ROM --001xxxxxxxxxxxx R xxxxxxxx ROM1 program ROM --010--xxxxxxxxxx R/W xxxxxxxx VRAM tile code --011--xxxxxxxxxx R xxxxxxxx CGROM Character Generator ROM --100----xxxxxxxx R/W xxxxxxxx RAM work RAM --101----------00*R --xxxxxx SW READ 0 switch inputs bank #1 (coins, buttons) --101----------01*R --xxxxxx SW READ 1 switch inputs bank #2 (optional, only kaiteik uses it) --101----------10*R --xxxxxx SW READ 2 dip switches --101----------11*R xxxxxxxx VOL READ paddle input (digital joystick is hacked in for the other games) --110----------00* W xxxxxxxx BHD ball horizontal position --110----------01* W xxxxxxxx BVD ball vertical position --110----------10* W -------- n.c. --110----------11* W ----xxxx SOUND select frequency and wave shape for sound --111---------000* W -------x LAMP 1 player 1 start lamp --111---------001* W -------x LAMP 2 player 2 start lamp --111---------010* W -------x LAMP 3 serve lamp --111---------011* W -------x COUNTER coin counter --111---------100* W -------x LOCK OUT COIL coin lock out --111---------101* W -------x BGW invert CGROM data --111---------110* W -------x BALL ON ball enable --111---------111* W -------x INV screen flip - -* = usually accessed using the in/out instructions - -Bomb Bee / Cutie Q memory map -Warp Warp is the same but A13 and A15 are swapped to make space for more program ROM. - -Address Dir Data Name Description ----------------- --- -------- --------- ----------------------- --00xxxxxxxxxxxxx R xxxxxxxx ROM program ROM --01---xxxxxxxxxx R/W xxxxxxxx RAM work RAM --10-00xxxxxxxxxx R/W xxxxxxxx V-RAM 1 tile code --10-01xxxxxxxxxx R/W xxxxxxxx V-RAM 2 tile color --10-1xxxxxxxxxxx R xxxxxxxx CGROM Character Generator ROM --11-------00-xxx R -------x SW READ switch inputs (coins, buttons) --11-------01---- R xxxxxxxx VOL READ paddle input (digital joystick is hacked in for warpwarp) --11-------10-xxx R -------x DIP SW 1 dip switches bank #1 --11-------11-xxx R -------x DIP SW 2 dip switches bank #2 (optional, not used by any game) --11-------00--00 W xxxxxxxx BHD ball horizontal position --11-------00--01 W xxxxxxxx BVD ball vertical position --11-------00--10 W ----xxxx SOUND select frequency and wave shape for sound channel #1 --11-------00--11 W -------- WATCH DOG RESET --11-------01---- W --xxxxxx MUSIC 1 sound channel #2 frequency --11-------10---- W --xxxxxx MUSIC 2 sound channel #2 shape --11-------11-000 W -------x LAMP 1 player 1 start lamp --11-------11-001 W -------x LAMP 2 player 2 start lamp --11-------11-010 W -------x LAMP 3 serve lamp (not used by warp warp) --11-------11-011 W -------x n.c. --11-------11-100 W -------x LOCK OUT coin lock out --11-------11-101 W -------x COUNTER coin counter --11-------11-110 W -------x BALL ON ball enable + irq enable --11-------11-111 W -------x INV screen flip - - -Notes: -- Warp Warp Easter egg: - - enter service mode - - keep B1 pressed and enter the following sequence: - 2xR 6xD L 4xU - (c) 1981 NAMCO LTD. will be added at the bottom of the screen. - -- In the pinball games, there isn't a player 2 "serve" button - both players use - the same input. I think this is correct behaviour, because there is nothing in - the schematics suggesting otherwise (while there is a provision to switch from - one paddle to the other). The Bomb Bee flyer shows that the cocktail cabinet - did have one serve button per player, but I guess they were just wired together - on the same input. - -- The ball size changes from game to game. I have determined what I believe are - the correct sizes by checking how the games handle the ball position in - cocktail mode (the ball isn't automatically flipped by the hardware). - -- kaitein and kaitei are intriguing. The game is more or less the same, but the - code is radically different, and the gfx ROMs are arranged differently. - kaitein is by Namco and kaitei is by "K'K-TOKKI". kaitein does a ROM/RAM - test on startup, while kaitei jumps straight into the game. kaitein is - locked in cocktail mode, while kaitei has support for a cabinet dip - switch. The title screen in kaitein is nice and polished, while in kaitei - it's confused, with fishes going over the text. There are several other - differences. - The code in kaitei is longer (0x1800 bytes vs. just 0x1000 in kaitein) and - less efficient, while kaitein has some clever space optimizations. - - Kaitei (and SOS) is developed by Kazuharu Yoshioka of K.K.Tokki (Universal Tokki). - Namco acquired license for these games. - -- The coin counter doesn't work in kaitei. This might be the expected behaviour. - -- sos does a "coffee break" every 2000 points, showing a girl. The first times, - she wears a bikini. If the "nudity" switch is on, after 6000 points she's - topless and every 10000 points she's nude. - -- The only difference between 'warpwarpr' and 'warpwarpr2' is the copyright - string on the first screen (when the scores are displayed) : - * 'warpwarpr' : "(c) 1981 ROCK-OLA MFG.CORP." (text stored at 0x33ff to 0x3417) - * 'warpwarp2' : "(c) 1981 ROCK-OLA MFG.CO." (text stored at 0x33ff to 0x3415) - Note that the checksum at 0x37ff (used for checking ROM at 0x3000 to 0x37ff) - is different of course. - -- warpwarpr doesn't have an explicit Namco copyright notice, but in the default - high score table the names are NNN AAA MMM CCC OOO. warpwarp doesn't have an - high score table at all. - -- There are images/videos on the net of kaitei and geebee running in 3bpp - (aka 7 colors), this is assumed to be a homebrew repair or hack. - Update: Gee Bee definitely uses an overlay while kaitei actually outputs - colors depending on the monitor type used (color or b&w). - sos is the odd one: it seems to be running in a b&w environment but a pic - on the net shows it with reversed black and white compared to current - implementation. - Also the flyer shows the girl to be colorized purple, while the points - numbers are in cyan and text in red (and this arrangement doesn't - make much sense, different version maybe?). - -***************************************************************************/ - -#include "emu.h" -#include "includes/warpwarp.h" - -#include "cpu/i8085/i8085.h" -#include "screen.h" -#include "speaker.h" - -#include "geebee.lh" -#include "navarone.lh" - -#define MASTER_CLOCK XTAL(18'432'000) - -void warpwarp_state::machine_start() -{ - save_item(NAME(m_geebee_bgw)); - save_item(NAME(m_ball_on)); - save_item(NAME(m_ball_h)); - save_item(NAME(m_ball_v)); -} - -/* Interrupt Gen */ -WRITE_LINE_MEMBER(warpwarp_state::vblank_irq) -{ - if (state && m_ball_on) - m_maincpu->set_input_line(0, ASSERT_LINE); -} - -/* B&W Games I/O */ -READ8_MEMBER(warpwarp_state::geebee_in_r) -{ - int res; - - offset &= 3; - res = m_ports[offset].read_safe(0); - if (offset == 3) - { - res = (flip_screen() & 1) ? m_in2->read() : m_in1->read(); // read player 2 input in cocktail mode - if (m_handle_joystick) - { - /* map digital two-way joystick to two fixed VOLIN values */ - if (res & 2) return 0x9f; - if (res & 1) return 0x0f; - return 0x60; - } - } - return res; -} - -WRITE8_MEMBER(warpwarp_state::geebee_out6_w) -{ - switch (offset & 3) - { - case 0: - m_ball_h = data; - break; - case 1: - m_ball_v = data; - break; - case 2: - /* n.c. */ - break; - case 3: - m_geebee_sound->sound_w(data); - break; - } -} - -WRITE_LINE_MEMBER(warpwarp_state::counter_w) -{ - machine().bookkeeping().coin_counter_w(0, state); -} - -WRITE_LINE_MEMBER(warpwarp_state::lock_out_w) -{ - machine().bookkeeping().coin_lockout_global_w(!state); -} - -WRITE_LINE_MEMBER(warpwarp_state::geebee_bgw_w) -{ - m_geebee_bgw = state; - machine().tilemap().mark_all_dirty(); -} - -WRITE_LINE_MEMBER(warpwarp_state::ball_on_w) -{ - m_ball_on = state; - if (!state) - m_maincpu->set_input_line(0, CLEAR_LINE); -} - -WRITE_LINE_MEMBER(warpwarp_state::inv_w) -{ - flip_screen_set(state); -} - - -/* Color Games I/O */ - -/* Read Switch Inputs */ -READ8_MEMBER(warpwarp_state::warpwarp_sw_r) -{ - return (m_in0->read() >> (offset & 7)) & 1; -} - -/* Read Dipswitches */ -READ8_MEMBER(warpwarp_state::warpwarp_dsw1_r) -{ - return (m_dsw1->read() >> (offset & 7)) & 1; -} - -/* Read mux Controller Inputs */ -READ8_MEMBER(warpwarp_state::warpwarp_vol_r) -{ - int res; - - res = (flip_screen() & 1) ? m_volin2->read() : m_volin1->read(); - if (m_handle_joystick) - { - if (res & 1) return 0x0f; - if (res & 2) return 0x3f; - if (res & 4) return 0x6f; - if (res & 8) return 0x9f; - return 0xff; - } - return res; -} - -WRITE8_MEMBER(warpwarp_state::warpwarp_out0_w) -{ - switch (offset & 3) - { - case 0: - m_ball_h = data; - break; - case 1: - m_ball_v = data; - break; - case 2: - m_warpwarp_sound->sound_w(data); - break; - case 3: - m_watchdog->watchdog_reset(); - break; - } -} - - - -void warpwarp_state::geebee_map(address_map &map) -{ - map(0x0000, 0x1fff).rom(); - map(0x2000, 0x23ff).mirror(0x400).ram().w(FUNC(warpwarp_state::geebee_videoram_w)).share("geebee_videoram"); // mirror used by kaitei due to a bug - map(0x3000, 0x37ff).rom().region("gfx1", 0); // 3000-33ff in geebee - map(0x4000, 0x40ff).ram(); - map(0x5000, 0x53ff).r(FUNC(warpwarp_state::geebee_in_r)); - map(0x6000, 0x6fff).w(FUNC(warpwarp_state::geebee_out6_w)); - map(0x7000, 0x7007).mirror(0x0ff8).w(m_latch, FUNC(ls259_device::write_d0)); -} - -void warpwarp_state::geebee_port_map(address_map &map) -{ - map(0x50, 0x53).r(FUNC(warpwarp_state::geebee_in_r)); - map(0x60, 0x6f).w(FUNC(warpwarp_state::geebee_out6_w)); - map(0x70, 0x77).mirror(0x08).w(m_latch, FUNC(ls259_device::write_d0)); -} - - -void warpwarp_state::bombbee_map(address_map &map) -{ - map(0x0000, 0x1fff).rom(); - map(0x2000, 0x23ff).ram(); - map(0x4000, 0x47ff).ram().w(FUNC(warpwarp_state::warpwarp_videoram_w)).share("videoram"); - map(0x4800, 0x4fff).rom().region("gfx1", 0); - map(0x6000, 0x600f).rw(FUNC(warpwarp_state::warpwarp_sw_r), FUNC(warpwarp_state::warpwarp_out0_w)); - map(0x6010, 0x601f).r(FUNC(warpwarp_state::warpwarp_vol_r)).w(m_warpwarp_sound, FUNC(warpwarp_sound_device::music1_w)); - map(0x6020, 0x602f).r(FUNC(warpwarp_state::warpwarp_dsw1_r)).w(m_warpwarp_sound, FUNC(warpwarp_sound_device::music2_w)); - map(0x6030, 0x6037).mirror(0x0008).w(m_latch, FUNC(ls259_device::write_d0)); -} - -void warpwarp_state::warpwarp_map(address_map &map) -{ - map(0x0000, 0x3fff).rom(); - map(0x8000, 0x83ff).ram(); - map(0x4000, 0x47ff).ram().w(FUNC(warpwarp_state::warpwarp_videoram_w)).share("videoram"); - map(0x4800, 0x4fff).rom().region("gfx1", 0); - map(0xc000, 0xc00f).rw(FUNC(warpwarp_state::warpwarp_sw_r), FUNC(warpwarp_state::warpwarp_out0_w)); - map(0xc010, 0xc01f).r(FUNC(warpwarp_state::warpwarp_vol_r)).w(m_warpwarp_sound, FUNC(warpwarp_sound_device::music1_w)); - map(0xc020, 0xc02f).r(FUNC(warpwarp_state::warpwarp_dsw1_r)).w(m_warpwarp_sound, FUNC(warpwarp_sound_device::music2_w)); - map(0xc030, 0xc037).mirror(0x0008).w(m_latch, FUNC(ls259_device::write_d0)); -} - - - -static INPUT_PORTS_START( geebee ) - PORT_START("SW0") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_SERVICE( 0x20, IP_ACTIVE_LOW ) - PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START("SW1") - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START("DSW2") - PORT_DIPNAME( 0x01, 0x00, DEF_STR( Cabinet ) ) PORT_DIPLOCATION("DSW2:1") - PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Cocktail) ) - PORT_DIPNAME( 0x02, 0x00, DEF_STR( Lives ) ) PORT_DIPLOCATION("DSW2:2") - PORT_DIPSETTING( 0x00, "3" ) - PORT_DIPSETTING( 0x02, "5" ) - PORT_DIPNAME( 0x0c, 0x00, DEF_STR( Coinage ) ) PORT_DIPLOCATION("DSW2:3,4") - PORT_DIPSETTING( 0x08, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x04, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x0c, DEF_STR( Free_Play ) ) - PORT_DIPNAME( 0x30, 0x10, "Replay" ) PORT_DIPLOCATION("DSW2:5,6") // awards 1 credit - PORT_DIPSETTING( 0x10, "40k 80k" ) PORT_CONDITION("DSW2", 0x02, EQUALS, 0x00) - PORT_DIPSETTING( 0x20, "70k 140k" ) PORT_CONDITION("DSW2", 0x02, EQUALS, 0x00) - PORT_DIPSETTING( 0x30, "100k 200k" ) PORT_CONDITION("DSW2", 0x02, EQUALS, 0x00) - PORT_DIPSETTING( 0x00, DEF_STR( None ) ) PORT_CONDITION("DSW2", 0x02, EQUALS, 0x00) - PORT_DIPSETTING( 0x10, "60k 120k" ) PORT_CONDITION("DSW2", 0x02, EQUALS, 0x02) - PORT_DIPSETTING( 0x20, "100k 200k" ) PORT_CONDITION("DSW2", 0x02, EQUALS, 0x02) - PORT_DIPSETTING( 0x30, "150k 300k" ) PORT_CONDITION("DSW2", 0x02, EQUALS, 0x02) - PORT_DIPSETTING( 0x00, DEF_STR( None ) ) PORT_CONDITION("DSW2", 0x02, EQUALS, 0x02) - PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START("IN1") - PORT_BIT( 0xff, 0x58, IPT_PADDLE ) PORT_MINMAX(0x10,0xa0) PORT_SENSITIVITY(30) PORT_KEYDELTA(15) PORT_CENTERDELTA(0) PORT_REVERSE - - PORT_START("IN2") /* Cocktail */ - PORT_BIT( 0xff, 0x58, IPT_PADDLE ) PORT_MINMAX(0x10,0xa0) PORT_SENSITIVITY(30) PORT_KEYDELTA(15) PORT_CENTERDELTA(0) PORT_REVERSE PORT_COCKTAIL -INPUT_PORTS_END - -static INPUT_PORTS_START( geebeeb ) - PORT_INCLUDE( geebee ) - - PORT_MODIFY("DSW2") - PORT_DIPNAME( 0x30, 0x10, "Replay" ) // awards 1 credit - PORT_DIPSETTING( 0x10, "40k" ) PORT_CONDITION("DSW2", 0x02, EQUALS, 0x00) - PORT_DIPSETTING( 0x20, "70k" ) PORT_CONDITION("DSW2", 0x02, EQUALS, 0x00) - PORT_DIPSETTING( 0x30, "100k" ) PORT_CONDITION("DSW2", 0x02, EQUALS, 0x00) - PORT_DIPSETTING( 0x00, DEF_STR( None ) ) PORT_CONDITION("DSW2", 0x02, EQUALS, 0x00) - PORT_DIPSETTING( 0x10, "60k" ) PORT_CONDITION("DSW2", 0x02, EQUALS, 0x02) - PORT_DIPSETTING( 0x20, "100k" ) PORT_CONDITION("DSW2", 0x02, EQUALS, 0x02) - PORT_DIPSETTING( 0x30, "150k" ) PORT_CONDITION("DSW2", 0x02, EQUALS, 0x02) - PORT_DIPSETTING( 0x00, DEF_STR( None ) ) PORT_CONDITION("DSW2", 0x02, EQUALS, 0x02) -INPUT_PORTS_END - -static INPUT_PORTS_START( navarone ) - PORT_START("SW0") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START("SW1") - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START("DSW2") - PORT_DIPNAME( 0x01, 0x00, DEF_STR( Cabinet ) ) PORT_DIPLOCATION("DSW2:1") - PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Cocktail) ) - PORT_DIPNAME( 0x02, 0x02, DEF_STR( Lives ) ) PORT_DIPLOCATION("DSW2:2") - PORT_DIPSETTING( 0x00, "2" ) - PORT_DIPSETTING( 0x02, "3" ) - PORT_DIPNAME( 0x0c, 0x04, DEF_STR( Bonus_Life ) ) PORT_DIPLOCATION("DSW2:3,4") - PORT_DIPSETTING( 0x04, "5000" ) PORT_CONDITION("DSW2", 0x02, EQUALS, 0x00) - PORT_DIPSETTING( 0x08, "6000" ) PORT_CONDITION("DSW2", 0x02, EQUALS, 0x00) - PORT_DIPSETTING( 0x0c, "7000" ) PORT_CONDITION("DSW2", 0x02, EQUALS, 0x00) - PORT_DIPSETTING( 0x00, DEF_STR( None ) ) PORT_CONDITION("DSW2", 0x02, EQUALS, 0x00) - PORT_DIPSETTING( 0x04, "6000" ) PORT_CONDITION("DSW2", 0x02, EQUALS, 0x02) - PORT_DIPSETTING( 0x08, "7000" ) PORT_CONDITION("DSW2", 0x02, EQUALS, 0x02) - PORT_DIPSETTING( 0x0c, "8000" ) PORT_CONDITION("DSW2", 0x02, EQUALS, 0x02) - PORT_DIPSETTING( 0x00, DEF_STR( None ) ) PORT_CONDITION("DSW2", 0x02, EQUALS, 0x02) - PORT_DIPNAME( 0x30, 0x10, DEF_STR( Coinage ) ) PORT_DIPLOCATION("DSW2:5,6") - PORT_DIPSETTING( 0x30, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x10, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x20, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) - PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START("IN1") /* Fake input port to support digital joystick */ - PORT_BIT( 0x01, 0x00, IPT_JOYSTICK_RIGHT ) - PORT_BIT( 0x02, 0x00, IPT_JOYSTICK_LEFT ) - - PORT_START("IN2") /* Fake input port to support digital joystick */ - PORT_BIT( 0x01, 0x00, IPT_JOYSTICK_RIGHT ) PORT_COCKTAIL - PORT_BIT( 0x02, 0x00, IPT_JOYSTICK_LEFT ) PORT_COCKTAIL -INPUT_PORTS_END - -static INPUT_PORTS_START( kaitei_config ) - PORT_START("CONFIG") - PORT_CONFNAME( 0x01, 0x01, "Monitor Type" ) - PORT_CONFSETTING( 0x00, "Monochrome" ) - PORT_CONFSETTING( 0x01, "Color" ) -INPUT_PORTS_END - -static INPUT_PORTS_START( kaitein ) - PORT_INCLUDE( kaitei_config ) - - PORT_START("SW0") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START("SW1") - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START("DSW2") - PORT_DIPNAME( 0x03, 0x01, DEF_STR( Lives ) ) PORT_DIPLOCATION("DSW2:1,2") - PORT_DIPSETTING( 0x00, "2" ) - PORT_DIPSETTING( 0x01, "3" ) - PORT_DIPSETTING( 0x02, "4" ) - PORT_DIPSETTING( 0x03, "5" ) - PORT_DIPNAME( 0x0c, 0x04, DEF_STR( Bonus_Life ) ) PORT_DIPLOCATION("DSW2:3,4") - PORT_DIPSETTING( 0x04, "2000" ) - PORT_DIPSETTING( 0x08, "4000" ) - PORT_DIPSETTING( 0x0c, "6000" ) - PORT_DIPSETTING( 0x00, DEF_STR( None ) ) - PORT_DIPNAME( 0x30, 0x10, DEF_STR( Coinage ) ) PORT_DIPLOCATION("DSW2:5,6") - PORT_DIPSETTING( 0x30, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x10, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x20, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) - PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START("IN1") /* Fake input port to support digital joystick */ - PORT_BIT( 0x01, 0x00, IPT_JOYSTICK_RIGHT ) - PORT_BIT( 0x02, 0x00, IPT_JOYSTICK_LEFT ) - - PORT_START("IN2") /* Fake input port to support digital joystick */ - PORT_BIT( 0x01, 0x00, IPT_JOYSTICK_RIGHT ) PORT_COCKTAIL - PORT_BIT( 0x02, 0x00, IPT_JOYSTICK_LEFT ) PORT_COCKTAIL -INPUT_PORTS_END - -static INPUT_PORTS_START( kaitei ) - PORT_INCLUDE( kaitei_config ) - - PORT_START("SW0") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0xf2, 0xa0, IPT_UNKNOWN ) // game verifies these bits and freezes if they don't match - - PORT_START("SW1") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_COCKTAIL - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_COCKTAIL - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL - PORT_BIT( 0xc0, 0x80, IPT_UNKNOWN ) // game verifies these two bits and freezes if they don't match - - PORT_START("DSW2") - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Cabinet ) ) PORT_DIPLOCATION("DSW2:1") - PORT_DIPSETTING( 0x01, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Cocktail ) ) - PORT_DIPNAME( 0x06, 0x06, DEF_STR( Lives ) ) PORT_DIPLOCATION("DSW2:2,3") - PORT_DIPSETTING( 0x06, "4" ) - PORT_DIPSETTING( 0x04, "5" ) - PORT_DIPSETTING( 0x02, "6" ) - PORT_DIPSETTING( 0x00, "7" ) - PORT_DIPNAME( 0x18, 0x18, DEF_STR( Bonus_Life ) ) PORT_DIPLOCATION("DSW2:4,5") - PORT_DIPSETTING( 0x18, "4000" ) - PORT_DIPSETTING( 0x10, "6000" ) - PORT_DIPSETTING( 0x08, "8000" ) - PORT_DIPSETTING( 0x00, "10000" ) - PORT_DIPUNUSED_DIPLOC( 0x20, 0x20, "DSW2:6" ) - PORT_BIT( 0xc0, 0x80, IPT_UNKNOWN ) // game verifies these two bits and freezes if they don't match - - PORT_START("IN1") - PORT_BIT( 0x3f, 0x00, IPT_UNKNOWN ) - PORT_BIT( 0xc0, 0x80, IPT_UNKNOWN ) // game verifies these two bits and freezes if they don't match - - PORT_START("IN2") - PORT_BIT( 0x3f, 0x00, IPT_UNKNOWN ) - PORT_BIT( 0xc0, 0x80, IPT_UNKNOWN ) // game verifies these two bits and freezes if they don't match -INPUT_PORTS_END - -static INPUT_PORTS_START( sos ) - PORT_START("SW0") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START("SW1") - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START("DSW2") - PORT_DIPNAME( 0x01, 0x00, DEF_STR( Cabinet ) ) PORT_DIPLOCATION("DSW2:1") - PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Cocktail) ) - PORT_DIPNAME( 0x06, 0x02, DEF_STR( Lives ) ) PORT_DIPLOCATION("DSW2:2,3") - PORT_DIPSETTING( 0x00, "2" ) - PORT_DIPSETTING( 0x02, "3" ) - PORT_DIPSETTING( 0x04, "4" ) - PORT_DIPSETTING( 0x06, "5" ) - PORT_DIPNAME( 0x18, 0x08, DEF_STR( Coinage ) ) PORT_DIPLOCATION("DSW2:4,5") - PORT_DIPSETTING( 0x18, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x08, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x10, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) - PORT_DIPNAME( 0x20, 0x20, "Nudity" ) PORT_DIPLOCATION("DSW2:6") - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x20, DEF_STR( On ) ) - PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START("IN1") /* Fake input port to support digital joystick */ - PORT_BIT( 0x01, 0x00, IPT_JOYSTICK_RIGHT ) - PORT_BIT( 0x02, 0x00, IPT_JOYSTICK_LEFT ) - - PORT_START("IN2") /* Fake input port to support digital joystick */ - PORT_BIT( 0x01, 0x00, IPT_JOYSTICK_RIGHT ) PORT_COCKTAIL - PORT_BIT( 0x02, 0x00, IPT_JOYSTICK_LEFT ) PORT_COCKTAIL -INPUT_PORTS_END - -static INPUT_PORTS_START( bombbee ) - PORT_START("IN0") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_SERVICE( 0x20, IP_ACTIVE_LOW ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Cocktail ) ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_SERVICE1 ) - - PORT_START("DSW1") - PORT_DIPNAME( 0x03, 0x03, DEF_STR( Coinage ) ) PORT_DIPLOCATION("DSW1:1,2") - PORT_DIPSETTING( 0x02, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x03, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x01, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) - PORT_DIPNAME( 0x0c, 0x00, DEF_STR( Lives ) ) PORT_DIPLOCATION("DSW1:3,4") - PORT_DIPSETTING( 0x00, "3" ) - PORT_DIPSETTING( 0x04, "4" ) -// PORT_DIPSETTING( 0x08, "4" ) // duplicated setting - PORT_DIPSETTING( 0x0c, "5" ) - PORT_DIPUNUSED_DIPLOC( 0x10, 0x10, "DSW1:5" ) - PORT_DIPNAME( 0xe0, 0x00, "Replay" ) PORT_DIPLOCATION("DSW1:6,7,8") // awards 1 credit - PORT_DIPSETTING( 0x00, "50000" ) - PORT_DIPSETTING( 0x20, "60000" ) - PORT_DIPSETTING( 0x40, "70000" ) - PORT_DIPSETTING( 0x60, "80000" ) - PORT_DIPSETTING( 0x80, "100000" ) - PORT_DIPSETTING( 0xa0, "120000" ) - PORT_DIPSETTING( 0xc0, "150000" ) - PORT_DIPSETTING( 0xe0, DEF_STR( None ) ) - - PORT_START("VOLIN1") /* Mux input - player 1 controller - handled by warpwarp_vol_r */ - PORT_BIT( 0xff, 0x60, IPT_PADDLE ) PORT_MINMAX(0x14,0xac) PORT_SENSITIVITY(30) PORT_KEYDELTA(10) PORT_CENTERDELTA(0) PORT_REVERSE - - PORT_START("VOLIN2") /* Mux input - player 2 controller - handled by warpwarp_vol_r */ - PORT_BIT( 0xff, 0x60, IPT_PADDLE ) PORT_MINMAX(0x14,0xac) PORT_SENSITIVITY(30) PORT_KEYDELTA(10) PORT_CENTERDELTA(0) PORT_REVERSE PORT_COCKTAIL -INPUT_PORTS_END - -static INPUT_PORTS_START( cutieq ) - PORT_INCLUDE( bombbee ) - - PORT_MODIFY("DSW1") - PORT_DIPNAME( 0xe0, 0x00, DEF_STR( Bonus_Life ) ) PORT_DIPLOCATION("DSW1:6,7,8") - PORT_DIPSETTING( 0x00, "50000" ) - PORT_DIPSETTING( 0x20, "60000" ) - PORT_DIPSETTING( 0x40, "80000" ) - PORT_DIPSETTING( 0x60, "100000" ) - PORT_DIPSETTING( 0x80, "120000" ) - PORT_DIPSETTING( 0xa0, "150000" ) - PORT_DIPSETTING( 0xc0, "200000" ) - PORT_DIPSETTING( 0xe0, DEF_STR( None ) ) -INPUT_PORTS_END - -static INPUT_PORTS_START( warpwarp ) - PORT_START("IN0") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_SERVICE( 0x20, IP_ACTIVE_LOW ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Cocktail ) ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_SERVICE1 ) - - PORT_START("DSW1") - PORT_DIPNAME( 0x03, 0x01, DEF_STR( Coinage ) ) PORT_DIPLOCATION("DSW1:1,2") - PORT_DIPSETTING( 0x03, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x01, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x02, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) - PORT_DIPNAME( 0x0c, 0x04, DEF_STR( Lives ) ) PORT_DIPLOCATION("DSW1:3,4") - PORT_DIPSETTING( 0x00, "2" ) - PORT_DIPSETTING( 0x04, "3" ) - PORT_DIPSETTING( 0x08, "4" ) - PORT_DIPSETTING( 0x0c, "5" ) - PORT_DIPNAME( 0x30, 0x00, DEF_STR( Bonus_Life ) ) PORT_DIPLOCATION("DSW1:5,6") - PORT_DIPSETTING( 0x00, "8k 30k 30k+" ) PORT_CONDITION("DSW1", 0x0c, NOTEQUALS, 0x0c) - PORT_DIPSETTING( 0x10, "10k 40k 40k+" ) PORT_CONDITION("DSW1", 0x0c, NOTEQUALS, 0x0c) - PORT_DIPSETTING( 0x20, "15k 60k 60k+" ) PORT_CONDITION("DSW1", 0x0c, NOTEQUALS, 0x0c) - PORT_DIPSETTING(0x30, DEF_STR( None ) ) PORT_CONDITION("DSW1", 0x0c, NOTEQUALS, 0x0c) - PORT_DIPSETTING( 0x00, "30k" ) PORT_CONDITION("DSW1", 0x0c, EQUALS, 0x0c) - PORT_DIPSETTING( 0x10, "40k" ) PORT_CONDITION("DSW1", 0x0c, EQUALS, 0x0c) - PORT_DIPSETTING( 0x20, "60k" ) PORT_CONDITION("DSW1", 0x0c, EQUALS, 0x0c) - PORT_DIPSETTING( 0x30, DEF_STR( None ) ) PORT_CONDITION("DSW1", 0x0c, EQUALS, 0x0c) - PORT_DIPNAME( 0x40, 0x00, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("DSW1:7") - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - /* when level selection is On, press 1 to increase level */ - PORT_DIPNAME( 0x80, 0x80, "Level Selection (Cheat)") PORT_DIPLOCATION("DSW1:8") - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - - PORT_START("VOLIN1") /* FAKE - input port to simulate an analog stick - handled by warpwarp_vol_r */ - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_4WAY - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_4WAY - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_4WAY - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_4WAY - - PORT_START("VOLIN2") /* FAKE - input port to simulate an analog stick - handled by warpwarp_vol_r */ - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_4WAY PORT_COCKTAIL - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_4WAY PORT_COCKTAIL - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_4WAY PORT_COCKTAIL - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_4WAY PORT_COCKTAIL -INPUT_PORTS_END - -/* has High Score Initials dip switch instead of rack test */ -static INPUT_PORTS_START( warpwarpr ) - PORT_INCLUDE( warpwarp ) - - PORT_MODIFY("DSW1") - PORT_DIPNAME( 0x80, 0x00, "High Score Initials" ) PORT_DIPLOCATION("DSW1:8") - PORT_DIPSETTING( 0x80, DEF_STR( No ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Yes ) ) -INPUT_PORTS_END - - - -static const gfx_layout charlayout = -{ - 8,8, - RGN_FRAC(1,1), - 1, - { 0 }, - { 0, 1, 2, 3, 4, 5, 6, 7 }, - { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8 }, - 8*8 -}; - -static GFXDECODE_START( gfx_1k ) - GFXDECODE_ENTRY( "gfx1", 0x0000, charlayout, 0, 4 ) -GFXDECODE_END - -static GFXDECODE_START( gfx_2k ) - GFXDECODE_ENTRY( "gfx1", 0x0000, charlayout, 0, 2 ) -GFXDECODE_END - -static GFXDECODE_START( gfx_color ) - GFXDECODE_ENTRY( "gfx1", 0x0000, charlayout, 0, 256 ) -GFXDECODE_END - - - -void warpwarp_state::geebee(machine_config &config) -{ - /* basic machine hardware */ - I8080(config, m_maincpu, MASTER_CLOCK/9); /* verified on pcb */ - m_maincpu->set_addrmap(AS_PROGRAM, &warpwarp_state::geebee_map); - m_maincpu->set_addrmap(AS_IO, &warpwarp_state::geebee_port_map); - - LS259(config, m_latch); // 5N - m_latch->q_out_cb<0>().set_output("led0"); // LAMP 1 - m_latch->q_out_cb<1>().set_output("led1"); // LAMP 2 - m_latch->q_out_cb<2>().set_output("led2"); // LAMP 3 - m_latch->q_out_cb<3>().set(FUNC(warpwarp_state::counter_w)); - m_latch->q_out_cb<4>().set(FUNC(warpwarp_state::lock_out_w)); - m_latch->q_out_cb<5>().set(FUNC(warpwarp_state::geebee_bgw_w)); - m_latch->q_out_cb<6>().set(FUNC(warpwarp_state::ball_on_w)); - m_latch->q_out_cb<7>().set(FUNC(warpwarp_state::inv_w)); - - /* video hardware */ - screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); - screen.set_raw(MASTER_CLOCK/3, 384, 0, 272, 264, 0, 224); - screen.set_screen_update(FUNC(warpwarp_state::screen_update)); - screen.set_palette(m_palette); - screen.screen_vblank().set(FUNC(warpwarp_state::vblank_irq)); - - GFXDECODE(config, m_gfxdecode, m_palette, gfx_1k); - PALETTE(config, m_palette, FUNC(warpwarp_state::geebee_palette), 4*2); - - MCFG_VIDEO_START_OVERRIDE(warpwarp_state,geebee) - - /* sound hardware */ - SPEAKER(config, "mono").front_center(); - - GEEBEE_SOUND(config, m_geebee_sound, MASTER_CLOCK).add_route(ALL_OUTPUTS, "mono", 1.0); -} - -void warpwarp_state::geebeeb(machine_config &config) -{ - geebee(config); - m_latch->q_out_cb<4>().set_nop(); // remove coin lockout -} - -void warpwarp_state::navarone(machine_config &config) -{ - geebee(config); - - /* basic machine hardware */ - m_gfxdecode->set_info(gfx_2k); - m_palette->set_entries(2*2); - m_palette->set_init(FUNC(warpwarp_state::navarone_palette)); - - MCFG_VIDEO_START_OVERRIDE(warpwarp_state,navarone) -} - -void warpwarp_state::kaitei(machine_config &config) -{ - geebee(config); - - /* basic machine hardware */ - m_gfxdecode->set_info(gfx_1k); - m_palette->set_entries(4*2+1); - - MCFG_MACHINE_RESET_OVERRIDE(warpwarp_state,kaitei) -} - - -void warpwarp_state::bombbee(machine_config &config) -{ - /* basic machine hardware */ - I8080(config, m_maincpu, MASTER_CLOCK/9); - m_maincpu->set_addrmap(AS_PROGRAM, &warpwarp_state::bombbee_map); - - LS259(config, m_latch); // 6L on Warp Warp - m_latch->q_out_cb<0>().set_output("led0"); // LAMP 1 - m_latch->q_out_cb<1>().set_output("led1"); // LAMP 2 - m_latch->q_out_cb<2>().set_output("led2"); // LAMP 3 - m_latch->q_out_cb<3>().set_nop(); // n.c. - m_latch->q_out_cb<4>().set(FUNC(warpwarp_state::lock_out_w)); - m_latch->q_out_cb<5>().set(FUNC(warpwarp_state::counter_w)); - m_latch->q_out_cb<6>().set(FUNC(warpwarp_state::ball_on_w)); - m_latch->q_out_cb<7>().set(FUNC(warpwarp_state::inv_w)); - - WATCHDOG_TIMER(config, m_watchdog); - - /* video hardware */ - screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); - screen.set_raw(MASTER_CLOCK/3, 384, 0, 272, 264, 0, 224); - screen.set_screen_update(FUNC(warpwarp_state::screen_update)); - screen.set_palette(m_palette); - screen.screen_vblank().set(FUNC(warpwarp_state::vblank_irq)); - - GFXDECODE(config, m_gfxdecode, m_palette, gfx_color); - - PALETTE(config, m_palette, FUNC(warpwarp_state::warpwarp_palette), 2*256+1); - MCFG_VIDEO_START_OVERRIDE(warpwarp_state,warpwarp) - - /* sound hardware */ - SPEAKER(config, "mono").front_center(); - - WARPWARP_SOUND(config, m_warpwarp_sound, MASTER_CLOCK).add_route(ALL_OUTPUTS, "mono", 1.0); -} - -void warpwarp_state::warpwarp(machine_config &config) -{ - bombbee(config); - - /* basic machine hardware */ - m_maincpu->set_addrmap(AS_PROGRAM, &warpwarp_state::warpwarp_map); -} - - -/*************************************************************************** - - Game driver(s) - -***************************************************************************/ - -ROM_START( geebee ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "geebee.1k", 0x0000, 0x1000, CRC(8a5577e0) SHA1(356d33e19c6b4f519816ee4b65ff9b59d6c1b565) ) - - ROM_REGION( 0x800, "gfx1", 0 ) - ROM_LOAD( "geebee.3a", 0x0000, 0x0400, CRC(f257b21b) SHA1(c788fd923438f1bffbff9ff3cd4c5c8b547c0c14) ) - ROM_RELOAD( 0x0400, 0x0400 ) -ROM_END - -ROM_START( geebeea ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "132", 0x0000, 0x0400, CRC(23252fc7) SHA1(433f0f435ff741a789942194356aaec53192608a) ) - ROM_LOAD( "133", 0x0400, 0x0400, CRC(0bc4d4ca) SHA1(46028ce1dbf46e49b921cfabec78cded914af358) ) - ROM_LOAD( "134", 0x0800, 0x0400, CRC(7899b4c1) SHA1(70f609f9873f1a4d9c8a90361c7519bdd24ad9ea) ) - ROM_LOAD( "135", 0x0c00, 0x0400, CRC(0b6e6fcb) SHA1(e7c3e8a13e3d2be6cfb6675fb57cc4a2fda6bec2) ) - - ROM_REGION( 0x800, "gfx1", 0 ) - ROM_LOAD( "a_136", 0x0000, 0x0400, CRC(bd01437d) SHA1(4324c68472f762a13f978e54b3c4a7984cc7195a) ) - ROM_RELOAD( 0x0400, 0x0400 ) -ROM_END - -ROM_START( geebeeb ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "1.1m", 0x0000, 0x0400, CRC(23252fc7) SHA1(433f0f435ff741a789942194356aaec53192608a) ) - ROM_LOAD( "2.1p", 0x0400, 0x0400, CRC(0bc4d4ca) SHA1(46028ce1dbf46e49b921cfabec78cded914af358) ) - ROM_LOAD( "3.1s", 0x0800, 0x0400, CRC(7899b4c1) SHA1(70f609f9873f1a4d9c8a90361c7519bdd24ad9ea) ) - ROM_LOAD( "4.1t", 0x0c00, 0x0400, CRC(0b6e6fcb) SHA1(e7c3e8a13e3d2be6cfb6675fb57cc4a2fda6bec2) ) - - ROM_REGION( 0x800, "gfx1", 0 ) - ROM_LOAD( "geebee.3a", 0x0000, 0x0400, CRC(f257b21b) SHA1(c788fd923438f1bffbff9ff3cd4c5c8b547c0c14) ) - ROM_RELOAD( 0x0400, 0x0400 ) -ROM_END - -ROM_START( geebeeg ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "geebee.1k", 0x0000, 0x1000, CRC(8a5577e0) SHA1(356d33e19c6b4f519816ee4b65ff9b59d6c1b565) ) - - ROM_REGION( 0x800, "gfx1", 0 ) - ROM_LOAD( "geebeeg.3a", 0x0000, 0x0400, CRC(a45932ba) SHA1(48f70742c42a9377f31fac3a1e43123751e57656) ) - ROM_RELOAD( 0x0400, 0x0400 ) -ROM_END - -ROM_START( navarone ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "navalone.p1", 0x0000, 0x0800, CRC(5a32016b) SHA1(d856d069eba470a81341de0bf47eca2a629a69a6) ) - ROM_LOAD( "navalone.p2", 0x0800, 0x0800, CRC(b1c86fe3) SHA1(0293b742806c1517cb126443701115a3427fc60a) ) - - ROM_REGION( 0x800, "gfx1", 0 ) - ROM_LOAD( "navalone.chr", 0x0000, 0x0800, CRC(b26c6170) SHA1(ae0aec2b60e1fd3b212e311afb1c588b2b286433) ) -ROM_END - -ROM_START( kaitein ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "kaitein.p1", 0x0000, 0x0800, CRC(d88e10ae) SHA1(76d6cd46b6e59e528e7a8fff9965375a1446a91d) ) - ROM_LOAD( "kaitein.p2", 0x0800, 0x0800, CRC(aa9b5763) SHA1(64a6c8f25b0510841dcce0b57505731aa0deeda7) ) - - ROM_REGION( 0x800, "gfx1", 0 ) - ROM_LOAD( "kaitein.chr", 0x0000, 0x0800, CRC(3125af4d) SHA1(9e6b161636665ee48d6bde2d5fc412fde382c687) ) -ROM_END - -ROM_START( kaitei ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "kaitei_7.1k", 0x0000, 0x0800, CRC(32f70d48) SHA1(c5ae606df1d0e513daea909f5474309a176096c1) ) - ROM_RELOAD( 0x0800, 0x0800 ) - ROM_LOAD( "kaitei_1.1m", 0x1000, 0x0400, CRC(9a7ab3b9) SHA1(94a82ba66e51c8203ec61c9320edbddbb6462d33) ) - ROM_LOAD( "kaitei_2.1p", 0x1400, 0x0400, CRC(5eeb0fff) SHA1(91cb84a9af8e4df4e6c896e7655199328b7da30b) ) - ROM_LOAD( "kaitei_3.1s", 0x1800, 0x0400, CRC(5dff4df7) SHA1(c179c93a559a0d18db3092c842634de02f3f03ea) ) - ROM_LOAD( "kaitei_4.1t", 0x1c00, 0x0400, CRC(e5f303d6) SHA1(6dd57e0b17f51d101c6c5dbfeadb7418098cc440) ) - - ROM_REGION( 0x800, "gfx1", 0 ) - ROM_LOAD( "kaitei_5.bin", 0x0000, 0x0400, CRC(60fdb795) SHA1(723e635eed9937a28bee0b7978413984651ee87f) ) - ROM_LOAD( "kaitei_6.bin", 0x0400, 0x0400, CRC(21399ace) SHA1(0ad49be2c9bdab2f9dc41c7348d1d4b4b769e3c4) ) -ROM_END - -ROM_START( sos ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "sos.p1", 0x0000, 0x0800, CRC(f70bdafb) SHA1(e71d552ccc9adad48225bdb4d62c31c5741a3e95) ) - ROM_LOAD( "sos.p2", 0x0800, 0x0800, CRC(58e9c480) SHA1(0eeb5982183d0e9f9dbae04839b604a0c22b420e) ) - - ROM_REGION( 0x800, "gfx1", 0 ) - ROM_LOAD( "sos.chr", 0x0000, 0x0800, CRC(66f983e4) SHA1(b3cf8bff4ac6b554d3fc06eeb8227b3b2a0dd554) ) -ROM_END - -ROM_START( bombbee ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "bombbee.1k", 0x0000, 0x2000, CRC(9f8cd7af) SHA1(0d6e1ee5519660d1498eb7a093872ed5034423f2) ) - - ROM_REGION( 0x800, "gfx1", 0 ) - ROM_LOAD( "bombbee.4c", 0x0000, 0x0800, CRC(5f37d569) SHA1(d5e3fb4c5a1612a6e568c8970161b0290b88993f) ) -ROM_END - -ROM_START( cutieq ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "cutieq.1k", 0x0000, 0x2000, CRC(6486cdca) SHA1(914c36487fba2dd57c3fd1f011b2225d2baac2bf) ) - - ROM_REGION( 0x800, "gfx1", 0 ) - ROM_LOAD( "cutieq.4c", 0x0000, 0x0800, CRC(0e1618c9) SHA1(456e9b3d6bae8b4af7778a38e4f40bb6736b0690) ) -ROM_END - -ROM_START( warpwarp ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "ww1_prg1.s10", 0x0000, 0x1000, CRC(f5262f38) SHA1(1c64d0282b0a209390a548ceeaaf8b7b55e50896) ) - ROM_LOAD( "ww1_prg2.s8", 0x1000, 0x1000, CRC(de8355dd) SHA1(133d137711d79aaeb45cd3ee041c0be3b73e1b2f) ) - ROM_LOAD( "ww1_prg3.s4", 0x2000, 0x1000, CRC(bdd1dec5) SHA1(bb3d9d1500e31bb271a394facaec7adc3c987e5e) ) - - ROM_REGION( 0x800, "gfx1", 0 ) - ROM_LOAD( "ww1_chg1.s12", 0x0000, 0x0800, CRC(380994c8) SHA1(0cdf6a05db52c423365bff9c9df6d93ac885794e) ) -ROM_END - -ROM_START( warpwarpr ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "g-09601.2r", 0x0000, 0x1000, CRC(916ffa35) SHA1(bca2087f8b78a128cdffc55db9814854b72daab5) ) - ROM_LOAD( "g-09602.2m", 0x1000, 0x1000, CRC(398bb87b) SHA1(74373336288dc13d59e6f7e7c718aa51d857b087) ) - ROM_LOAD( "g-09603.1p", 0x2000, 0x1000, CRC(6b962fc4) SHA1(0291d0c574a1048e52121ca57e01098bff04da40) ) - ROM_LOAD( "g-09613.1t", 0x3000, 0x0800, CRC(60a67e76) SHA1(af65e7bf16a5e69fee05c0134e3b8d5bca142402) ) - - ROM_REGION( 0x800, "gfx1", 0 ) - ROM_LOAD( "g-9611.4c", 0x0000, 0x0800, CRC(00e6a326) SHA1(67b7ab5b7b2c9a97d4d690d88561da48b86bc66e) ) -ROM_END - -ROM_START( warpwarpr2 ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "g-09601.2r", 0x0000, 0x1000, CRC(916ffa35) SHA1(bca2087f8b78a128cdffc55db9814854b72daab5) ) - ROM_LOAD( "g-09602.2m", 0x1000, 0x1000, CRC(398bb87b) SHA1(74373336288dc13d59e6f7e7c718aa51d857b087) ) - ROM_LOAD( "g-09603.1p", 0x2000, 0x1000, CRC(6b962fc4) SHA1(0291d0c574a1048e52121ca57e01098bff04da40) ) - ROM_LOAD( "g-09612.1t", 0x3000, 0x0800, CRC(b91e9e79) SHA1(378323d83c550b3acabc83dba946ab089b9195cb) ) - - ROM_REGION( 0x800, "gfx1", 0 ) - ROM_LOAD( "g-9611.4c", 0x0000, 0x0800, CRC(00e6a326) SHA1(67b7ab5b7b2c9a97d4d690d88561da48b86bc66e) ) -ROM_END - - - -void warpwarp_state::init_geebee() -{ - m_handle_joystick = 0; - - m_ball_pen = 1; - m_ball_sizex = 4; - m_ball_sizey = 4; -} - -void warpwarp_state::init_navarone() -{ - m_handle_joystick = 1; - - m_ball_pen = 1; - m_ball_sizex = 4; - m_ball_sizey = 4; -} - -void warpwarp_state::init_kaitein() -{ - m_handle_joystick = 1; - - m_ball_pen = 8; - m_ball_sizex = 1; - m_ball_sizey = 16; -} - -void warpwarp_state::init_kaitei() -{ - m_handle_joystick = 0; - - m_ball_pen = 8; - m_ball_sizex = 1; - m_ball_sizey = 16; -} - -void warpwarp_state::init_sos() -{ - m_handle_joystick = 1; - - m_ball_pen = 0; - m_ball_sizex = 4; - m_ball_sizey = 2; -} - -void warpwarp_state::init_bombbee() -{ - m_handle_joystick = 0; - - m_ball_pen = 0x200; - m_ball_sizex = 4; - m_ball_sizey = 4; -} - -void warpwarp_state::init_warpwarp() -{ - m_handle_joystick = 1; - - m_ball_pen = 0x200; - m_ball_sizex = 4; - m_ball_sizey = 4; -} - - -/* B & W games */ -GAMEL( 1978, geebee, 0, geebee, geebee, warpwarp_state, init_geebee, ROT90, "Namco", "Gee Bee (Japan)", MACHINE_SUPPORTS_SAVE, layout_geebee ) -GAMEL( 1978, geebeea, geebee, geebeeb, geebeeb, warpwarp_state, init_geebee, ROT90, "Namco (Alca license)", "Gee Bee (UK)", MACHINE_SUPPORTS_SAVE, layout_geebee ) -GAMEL( 1978, geebeeb, geebee, geebeeb, geebeeb, warpwarp_state, init_geebee, ROT90, "Namco (F.lli Bertolino license)", "Gee Bee (Europe)", MACHINE_SUPPORTS_SAVE, layout_geebee ) // Fratelli Bertolino -GAMEL( 1978, geebeeg, geebee, geebee, geebee, warpwarp_state, init_geebee, ROT90, "Namco (Gremlin license)", "Gee Bee (US)", MACHINE_SUPPORTS_SAVE, layout_geebee ) - -GAMEL( 1980, navarone, 0, navarone, navarone, warpwarp_state, init_navarone, ROT90, "Namco", "Navarone", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE, layout_navarone ) -GAME( 1980, kaitein, kaitei, kaitei, kaitein, warpwarp_state, init_kaitein, ROT90, "K.K. Tokki (Namco license)", "Kaitei Takara Sagashi (Namco license)", MACHINE_SUPPORTS_SAVE ) // pretty sure it didn't have a color overlay -GAME( 1980, kaitei, 0, kaitei, kaitei, warpwarp_state, init_kaitei, ROT90, "K.K. Tokki", "Kaitei Takara Sagashi", MACHINE_SUPPORTS_SAVE ) // " -GAME( 1980, sos, 0, navarone, sos, warpwarp_state, init_sos, ROT90, "Namco", "SOS", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) // developed by Shoei? Flyer shows a Shoei logo. - -/* Color games */ -GAME( 1979, bombbee, 0, bombbee, bombbee, warpwarp_state, init_bombbee, ROT90, "Namco", "Bomb Bee", MACHINE_SUPPORTS_SAVE ) -GAME( 1979, cutieq, 0, bombbee, cutieq, warpwarp_state, init_bombbee, ROT90, "Namco", "Cutie Q", MACHINE_SUPPORTS_SAVE ) -GAME( 1981, warpwarp, 0, warpwarp, warpwarp, warpwarp_state, init_warpwarp, ROT90, "Namco", "Warp & Warp", MACHINE_SUPPORTS_SAVE ) -GAME( 1981, warpwarpr, warpwarp, warpwarp, warpwarpr, warpwarp_state, init_warpwarp, ROT90, "Namco (Rock-Ola license)", "Warp Warp (Rock-Ola set 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1981, warpwarpr2, warpwarp, warpwarp, warpwarpr, warpwarp_state, init_warpwarp, ROT90, "Namco (Rock-Ola license)", "Warp Warp (Rock-Ola set 2)", MACHINE_SUPPORTS_SAVE ) |