mirror of
https://github.com/holub/mame
synced 2025-10-05 08:41:31 +03:00
warpwarp.cpp: added sos overlay, and added optional color setting for kaitei [Angelo Salese]
This commit is contained in:
parent
562f1b92b1
commit
b152071023
@ -136,6 +136,7 @@ Notes:
|
||||
|
||||
#include "geebee.lh"
|
||||
#include "navarone.lh"
|
||||
#include "sos.lh"
|
||||
|
||||
#define MASTER_CLOCK XTAL(18'432'000)
|
||||
|
||||
@ -438,7 +439,16 @@ static INPUT_PORTS_START( navarone )
|
||||
PORT_BIT( 0x02, 0x00, IPT_JOYSTICK_LEFT ) PORT_COCKTAIL
|
||||
INPUT_PORTS_END
|
||||
|
||||
static INPUT_PORTS_START( kaitei_config )
|
||||
PORT_START("CONFIG")
|
||||
PORT_CONFNAME( 0x01, 0x00, "Color Type" )
|
||||
PORT_CONFSETTING( 0x00, "Black & White" )
|
||||
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
|
||||
@ -479,6 +489,8 @@ static INPUT_PORTS_START( kaitein )
|
||||
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 )
|
||||
@ -764,6 +776,18 @@ MACHINE_CONFIG_START(warpwarp_state::navarone)
|
||||
MCFG_VIDEO_START_OVERRIDE(warpwarp_state,navarone)
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
MACHINE_CONFIG_START(warpwarp_state::kaitei)
|
||||
geebee(config);
|
||||
|
||||
/* basic machine hardware */
|
||||
MCFG_GFXDECODE_MODIFY("gfxdecode", 1k)
|
||||
MCFG_PALETTE_MODIFY("palette")
|
||||
MCFG_PALETTE_ENTRIES(4*2+1)
|
||||
|
||||
MCFG_MACHINE_RESET_OVERRIDE(warpwarp_state,kaitei)
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
|
||||
MACHINE_CONFIG_START(warpwarp_state::bombbee)
|
||||
|
||||
/* basic machine hardware */
|
||||
@ -972,7 +996,7 @@ DRIVER_INIT_MEMBER(warpwarp_state,kaitein)
|
||||
{
|
||||
m_handle_joystick = 1;
|
||||
|
||||
m_ball_pen = 1;
|
||||
m_ball_pen = 8;
|
||||
m_ball_sizex = 1;
|
||||
m_ball_sizey = 16;
|
||||
}
|
||||
@ -981,7 +1005,7 @@ DRIVER_INIT_MEMBER(warpwarp_state,kaitei)
|
||||
{
|
||||
m_handle_joystick = 0;
|
||||
|
||||
m_ball_pen = 1;
|
||||
m_ball_pen = 8;
|
||||
m_ball_sizex = 1;
|
||||
m_ball_sizey = 16;
|
||||
}
|
||||
@ -1021,9 +1045,9 @@ GAMEL(1978, geebeeb, geebee, geebeeb, geebeeb, warpwarp_state, geebee,
|
||||
GAMEL(1978, geebeeg, geebee, geebee, geebee, warpwarp_state, geebee, ROT90, "Namco (Gremlin license)", "Gee Bee (US)", MACHINE_SUPPORTS_SAVE, layout_geebee )
|
||||
|
||||
GAMEL(1980, navarone, 0, navarone, navarone, warpwarp_state, navarone, ROT90, "Namco", "Navarone", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE, layout_navarone )
|
||||
GAME( 1980, kaitein, kaitei, navarone, kaitein, warpwarp_state, 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, navarone, kaitei, warpwarp_state, kaitei, ROT90, "K.K. Tokki", "Kaitei Takara Sagashi", MACHINE_SUPPORTS_SAVE ) // "
|
||||
GAME( 1980, sos, 0, navarone, sos, warpwarp_state, sos, ROT90, "Namco", "SOS", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) // developed by Shoei?
|
||||
GAME( 1980, kaitein, kaitei, kaitei, kaitein, warpwarp_state, 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, kaitei, ROT90, "K.K. Tokki", "Kaitei Takara Sagashi", MACHINE_SUPPORTS_SAVE ) // "
|
||||
GAMEL( 1980, sos, 0, navarone, sos, warpwarp_state, sos, ROT90, "Namco", "SOS", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE, layout_sos ) // developed by Shoei?
|
||||
|
||||
/* Color games */
|
||||
GAME( 1979, bombbee, 0, bombbee, bombbee, warpwarp_state, bombbee, ROT90, "Namco", "Bomb Bee", MACHINE_SUPPORTS_SAVE )
|
||||
|
@ -17,12 +17,14 @@ public:
|
||||
m_geebee_sound(*this, "geebee_custom"),
|
||||
m_geebee_videoram(*this, "geebee_videoram"),
|
||||
m_videoram(*this, "videoram"),
|
||||
m_palette(*this, "palette"),
|
||||
m_in0(*this, "IN0"),
|
||||
m_in1(*this, "IN1"),
|
||||
m_in2(*this, "IN2"),
|
||||
m_dsw1(*this, "DSW1"),
|
||||
m_volin1(*this, "VOLIN1"),
|
||||
m_volin2(*this, "VOLIN2"),
|
||||
m_in_config(*this, "CONFIG"),
|
||||
m_ports(*this, { { "SW0", "SW1", "DSW2", "PLACEHOLDER" } }) // "IN1" & "IN2" are read separately when offset==3
|
||||
{ }
|
||||
|
||||
@ -33,12 +35,14 @@ public:
|
||||
optional_device<geebee_sound_device> m_geebee_sound;
|
||||
optional_shared_ptr<uint8_t> m_geebee_videoram;
|
||||
optional_shared_ptr<uint8_t> m_videoram;
|
||||
optional_device<palette_device> m_palette;
|
||||
optional_ioport m_in0;
|
||||
optional_ioport m_in1;
|
||||
optional_ioport m_in2;
|
||||
optional_ioport m_dsw1;
|
||||
optional_ioport m_volin1;
|
||||
optional_ioport m_volin2;
|
||||
optional_ioport m_in_config;
|
||||
optional_ioport_array<4> m_ports;
|
||||
|
||||
int m_geebee_bgw;
|
||||
@ -73,6 +77,7 @@ public:
|
||||
DECLARE_WRITE8_MEMBER(geebee_videoram_w);
|
||||
|
||||
virtual void machine_start() override;
|
||||
DECLARE_MACHINE_RESET(kaitei);
|
||||
DECLARE_DRIVER_INIT(navarone);
|
||||
DECLARE_DRIVER_INIT(geebee);
|
||||
DECLARE_DRIVER_INIT(kaitein);
|
||||
@ -100,6 +105,7 @@ public:
|
||||
void warpwarp(machine_config &config);
|
||||
void geebee(machine_config &config);
|
||||
void navarone(machine_config &config);
|
||||
void kaitei(machine_config &config);
|
||||
void bombbee(machine_config &config);
|
||||
void geebeeb(machine_config &config);
|
||||
void bombbee_map(address_map &map);
|
||||
|
29
src/mame/layout/sos.lay
Normal file
29
src/mame/layout/sos.lay
Normal file
@ -0,0 +1,29 @@
|
||||
<?xml version="1.0"?>
|
||||
<mamelayout version="2">
|
||||
<element name="overlay">
|
||||
<rect>
|
||||
<bounds left="0" top="0" right="224" bottom="272" />
|
||||
<color red="0.2" green="0.2" blue="0.5" />
|
||||
</rect>
|
||||
|
||||
<rect>
|
||||
<bounds left="0" top="0" right="224" bottom="8" />
|
||||
<color red="0.5" green="0.5" blue="0.5" />
|
||||
</rect>
|
||||
|
||||
<rect>
|
||||
<bounds left="0" top="264" right="224" bottom="272" />
|
||||
<color red="0.5" green="0.5" blue="0.5" />
|
||||
</rect>
|
||||
|
||||
</element>
|
||||
|
||||
<view name="Color Overlay">
|
||||
<screen index="0">
|
||||
<bounds left="0" top="0" right="3" bottom="4" />
|
||||
</screen>
|
||||
<overlay name="overlay" element="overlay">
|
||||
<bounds left="0" top="0" right="3" bottom="4" />
|
||||
</overlay>
|
||||
</view>
|
||||
</mamelayout>
|
@ -40,6 +40,36 @@ PALETTE_INIT_MEMBER(warpwarp_state,navarone)
|
||||
palette.set_pen_color(3, geebee_palette[0]);
|
||||
}
|
||||
|
||||
MACHINE_RESET_MEMBER(warpwarp_state,kaitei)
|
||||
{
|
||||
// TODO: some PCB videos/images shows a b&w arrangement, others a full colorized one.
|
||||
// Both versions seems to have equal distribution (latter is hack/homebrew?) therefore
|
||||
// support both under machine configuration.
|
||||
if(m_in_config->read() & 1) // color
|
||||
{
|
||||
m_palette->set_pen_color(0, rgb_t(0x00,0x00,0x00));
|
||||
m_palette->set_pen_color(1, rgb_t(0x00,0xff,0xff));
|
||||
m_palette->set_pen_color(2, rgb_t(0x00,0xff,0xff));
|
||||
m_palette->set_pen_color(3, rgb_t(0x00,0x00,0x00));
|
||||
m_palette->set_pen_color(4, rgb_t(0x00,0x00,0x00));
|
||||
m_palette->set_pen_color(5, rgb_t(0x00,0xff,0x00));
|
||||
m_palette->set_pen_color(6, rgb_t(0x00,0xff,0x00));
|
||||
m_palette->set_pen_color(7, rgb_t(0x00,0x00,0x00));
|
||||
m_palette->set_pen_color(8, rgb_t(0xff,0x00,0x00)); // ball pen
|
||||
}
|
||||
else // b & w
|
||||
{
|
||||
m_palette->set_pen_color(0, geebee_palette[0]);
|
||||
m_palette->set_pen_color(1, geebee_palette[1]);
|
||||
m_palette->set_pen_color(2, geebee_palette[1]);
|
||||
m_palette->set_pen_color(3, geebee_palette[0]);
|
||||
m_palette->set_pen_color(4, geebee_palette[0]);
|
||||
m_palette->set_pen_color(5, geebee_palette[1]);
|
||||
m_palette->set_pen_color(6, geebee_palette[1]);
|
||||
m_palette->set_pen_color(7, geebee_palette[0]);
|
||||
m_palette->set_pen_color(8, geebee_palette[1]); // ball pen
|
||||
}
|
||||
}
|
||||
|
||||
/***************************************************************************
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user