Galaxian rewrite. Ultimately will combine the existing drivers

for galaxian, scramble, frogger, scobra, amidar, and dambustr.
For the moment, only a subset of games are implemented in the
new system; the remainder are running on the old code.

Main features are accurate video timing, correct stars 
implementation, better organization, simplified input ports,
and many other smaller fixes. In addition, the following
MAMETesters bugs are addressed:

- 01598: [Graphics] 4in1, gmgalax, pacmanbl: Sprites are cut off on the top row
- 01563: [DIP/Input] gmgalax: Duplicated Inputs
- 00300: [Graphics] zigzag: in cocktail mode player 2 screen is shift over to the right
- 01454: [Graphics] mshuttle, mshuttlj, mshutlj2: The display of the screen is shifted
- 01473: [Graphics] orbitron: Orbitron graphics not correctly displayed
- 01600: [Graphics] pacmanbl, batman2: The background is shifted to the right and cut off on the right side
- 01602: [Misc.] luctoday: Messed up graphics. (Screen Offset)
- 01599: [Graphics] omega: Screen is vertically offset
- 01605: [Graphics] gteikokb, gteikob2: Wrong screen offset (aaron)
This commit is contained in:
Aaron Giles 2008-03-28 08:34:31 +00:00
parent ec36f9c06f
commit 6979179c11
19 changed files with 9185 additions and 5710 deletions

6
.gitattributes vendored
View File

@ -1175,7 +1175,6 @@ src/mame/drivers/alg.c svneol=native#text/plain
src/mame/drivers/aliens.c svneol=native#text/plain
src/mame/drivers/alpha68k.c svneol=native#text/plain
src/mame/drivers/ambush.c svneol=native#text/plain
src/mame/drivers/amidar.c svneol=native#text/plain
src/mame/drivers/ampoker2.c svneol=native#text/plain
src/mame/drivers/amspdwy.c svneol=native#text/plain
src/mame/drivers/angelkds.c svneol=native#text/plain
@ -1430,7 +1429,6 @@ src/mame/drivers/flyball.c svneol=native#text/plain
src/mame/drivers/foodf.c svneol=native#text/plain
src/mame/drivers/fortecar.c svneol=native#text/plain
src/mame/drivers/freekick.c svneol=native#text/plain
src/mame/drivers/frogger.c svneol=native#text/plain
src/mame/drivers/fromanc2.c svneol=native#text/plain
src/mame/drivers/fromance.c svneol=native#text/plain
src/mame/drivers/funkybee.c svneol=native#text/plain
@ -1445,7 +1443,9 @@ src/mame/drivers/gaelco3d.c svneol=native#text/plain
src/mame/drivers/gaiden.c svneol=native#text/plain
src/mame/drivers/galaga.c svneol=native#text/plain
src/mame/drivers/galaxia.c svneol=native#text/plain
src/mame/drivers/galaxian.c svneol=native#text/plain
src/mame/drivers/galaxold.c svneol=native#text/plain
src/mame/drivers/galdrvr.c svneol=native#text/plain
src/mame/drivers/galivan.c svneol=native#text/plain
src/mame/drivers/galpani2.c svneol=native#text/plain
src/mame/drivers/galpani3.c svneol=native#text/plain
@ -2189,6 +2189,7 @@ src/mame/includes/foodf.h svneol=native#text/plain
src/mame/includes/fromance.h svneol=native#text/plain
src/mame/includes/gaelco3d.h svneol=native#text/plain
src/mame/includes/galaga.h svneol=native#text/plain
src/mame/includes/galaxian.h svneol=native#text/plain
src/mame/includes/galaxold.h svneol=native#text/plain
src/mame/includes/gameplan.h svneol=native#text/plain
src/mame/includes/gauntlet.h svneol=native#text/plain
@ -2791,6 +2792,7 @@ src/mame/video/gaelco2.c svneol=native#text/plain
src/mame/video/gaelco3d.c svneol=native#text/plain
src/mame/video/gaiden.c svneol=native#text/plain
src/mame/video/galaga.c svneol=native#text/plain
src/mame/video/galaxian.c svneol=native#text/plain
src/mame/video/galaxold.c svneol=native#text/plain
src/mame/video/galivan.c svneol=native#text/plain
src/mame/video/galpani2.c svneol=native#text/plain

View File

@ -105,6 +105,36 @@ static void tone_update(void *param, stream_sample_t **input, stream_sample_t **
}
}
WRITE8_HANDLER( galaxian_sound_w )
{
data &= 0x01;
switch (offset & 7)
{
case 0: /* FS1 (controls 555 timer at 8R) */
case 1: /* FS2 (controls 555 timer at 8S) */
case 2: /* FS3 (controls 555 timer at 8T) */
galaxian_background_enable_w(machine, offset, data);
break;
case 3: /* HIT */
galaxian_noise_enable_w(machine, 0, data);
break;
case 4: /* n/c */
break;
case 5: /* FIRE */
galaxian_shoot_enable_w(machine, 0, data);
break;
case 6: /* VOL1 */
case 7: /* VOL2 */
galaxian_vol_w(machine, offset & 1, data);
break;
}
}
WRITE8_HANDLER( galaxian_pitch_w )
{
stream_update(tone_stream);
@ -528,3 +558,10 @@ const struct Samplesinterface galaxian_samples_interface =
NULL,
galaxian_sh_start
};
const struct Samplesinterface galaxian_custom_interface =
{
5,
NULL,
galaxian_sh_start
};

View File

@ -1,538 +0,0 @@
/***************************************************************************
Amidar hardware
***************************************************************************/
#include "driver.h"
#include "galaxold.h"
#include "sound/ay8910.h"
#include "machine/8255ppi.h"
static const gfx_layout amidar_charlayout =
{
8,8,
RGN_FRAC(1,2),
2,
{ RGN_FRAC(0,2), RGN_FRAC(1,2) },
{ 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 const gfx_layout amidar_spritelayout =
{
16,16,
RGN_FRAC(1,2),
2,
{ RGN_FRAC(0,2), RGN_FRAC(1,2) },
{ 0, 1, 2, 3, 4, 5, 6, 7,
8*8+0, 8*8+1, 8*8+2, 8*8+3, 8*8+4, 8*8+5, 8*8+6, 8*8+7 },
{ 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8,
16*8, 17*8, 18*8, 19*8, 20*8, 21*8, 22*8, 23*8 },
32*8
};
static GFXDECODE_START( amidar )
GFXDECODE_ENTRY( REGION_GFX1, 0x0000, amidar_charlayout, 0, 8 )
GFXDECODE_ENTRY( REGION_GFX1, 0x0000, amidar_spritelayout, 0, 8 )
GFXDECODE_END
static UINT8 *amidar_soundram;
static READ8_HANDLER(amidar_soundram_r)
{
return amidar_soundram[offset & 0x03ff];
}
static WRITE8_HANDLER(amidar_soundram_w)
{
amidar_soundram[offset & 0x03ff] = data;
}
static const struct AY8910interface amidar_ay8910_interface_2 =
{
soundlatch_r,
scramble_portB_r
};
static READ8_HANDLER(amidar_ppi8255_0_r)
{
return ppi8255_0_r(machine, offset >> 4);
}
static READ8_HANDLER(amidar_ppi8255_1_r)
{
return ppi8255_1_r(machine, offset >> 4);
}
static WRITE8_HANDLER(amidar_ppi8255_0_w)
{
ppi8255_0_w(machine, offset >> 4, data);
}
static WRITE8_HANDLER(amidar_ppi8255_1_w)
{
ppi8255_1_w(machine, offset >> 4, data);
}
static ADDRESS_MAP_START( readmem, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x7fff) AM_READ(SMH_ROM)
AM_RANGE(0x8000, 0x87ff) AM_READ(SMH_RAM)
AM_RANGE(0x9000, 0x93ff) AM_READ(SMH_RAM)
AM_RANGE(0x9800, 0x98ff) AM_READ(SMH_RAM)
AM_RANGE(0xa800, 0xa800) AM_READ(watchdog_reset_r)
AM_RANGE(0xb000, 0xb03f) AM_READ(amidar_ppi8255_0_r)
AM_RANGE(0xb800, 0xb83f) AM_READ(amidar_ppi8255_1_r)
ADDRESS_MAP_END
static ADDRESS_MAP_START( writemem, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x7fff) AM_WRITE(SMH_ROM)
AM_RANGE(0x8000, 0x87ff) AM_WRITE(SMH_RAM)
AM_RANGE(0x9000, 0x93ff) AM_WRITE(galaxold_videoram_w) AM_BASE(&galaxold_videoram)
AM_RANGE(0x9800, 0x983f) AM_WRITE(galaxold_attributesram_w) AM_BASE(&galaxold_attributesram)
AM_RANGE(0x9840, 0x985f) AM_WRITE(SMH_RAM) AM_BASE(&galaxold_spriteram) AM_SIZE(&galaxold_spriteram_size)
AM_RANGE(0x9860, 0x98ff) AM_WRITE(SMH_RAM)
AM_RANGE(0xa000, 0xa000) AM_WRITE(scramble_background_red_w)
AM_RANGE(0xa008, 0xa008) AM_WRITE(galaxold_nmi_enable_w)
AM_RANGE(0xa010, 0xa010) AM_WRITE(galaxold_flip_screen_x_w)
AM_RANGE(0xa018, 0xa018) AM_WRITE(galaxold_flip_screen_y_w)
AM_RANGE(0xa020, 0xa020) AM_WRITE(scramble_background_green_w)
AM_RANGE(0xa028, 0xa028) AM_WRITE(scramble_background_blue_w)
AM_RANGE(0xa030, 0xa030) AM_WRITE(galaxold_coin_counter_0_w)
AM_RANGE(0xa038, 0xa038) AM_WRITE(galaxold_coin_counter_1_w)
AM_RANGE(0xb000, 0xb03f) AM_WRITE(amidar_ppi8255_0_w)
AM_RANGE(0xb800, 0xb83f) AM_WRITE(amidar_ppi8255_1_w)
ADDRESS_MAP_END
static ADDRESS_MAP_START( amidar_sound_readmem, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x2fff) AM_READ(SMH_ROM)
AM_RANGE(0x8000, 0x8fff) AM_READ(amidar_soundram_r)
ADDRESS_MAP_END
static ADDRESS_MAP_START( amidar_sound_writemem, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x2fff) AM_WRITE(SMH_ROM)
AM_RANGE(0x8000, 0x8fff) AM_WRITE(amidar_soundram_w)
AM_RANGE(0x8000, 0x83ff) AM_WRITE(SMH_NOP) AM_BASE(&amidar_soundram) /* only here to initialize pointer */
AM_RANGE(0x9000, 0x9fff) AM_WRITE(scramble_filter_w)
ADDRESS_MAP_END
static ADDRESS_MAP_START( amidar_sound_readport, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x20, 0x20) AM_READ(AY8910_read_port_0_r)
AM_RANGE(0x80, 0x80) AM_READ(AY8910_read_port_1_r)
ADDRESS_MAP_END
static ADDRESS_MAP_START( amidar_sound_writeport, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x10, 0x10) AM_WRITE(AY8910_control_port_0_w)
AM_RANGE(0x20, 0x20) AM_WRITE(AY8910_write_port_0_w)
AM_RANGE(0x40, 0x40) AM_WRITE(AY8910_control_port_1_w)
AM_RANGE(0x80, 0x80) AM_WRITE(AY8910_write_port_1_w)
ADDRESS_MAP_END
#define AMIDAR_IN0 \
PORT_START_TAG("IN0") \
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_4WAY PORT_COCKTAIL\
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* probably space for button 2 */\
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 )\
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON1 )\
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_4WAY\
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_4WAY\
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN2 )\
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN1 )
#define AMIDAR_IN1 \
PORT_START_TAG("IN1")\
PORT_DIPNAME( 0x03, 0x03, DEF_STR( Lives ) )\
PORT_DIPSETTING( 0x03, "3" )\
PORT_DIPSETTING( 0x02, "4" )\
PORT_DIPSETTING( 0x01, "5" )\
PORT_DIPSETTING( 0x00, "255 (Cheat)")\
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* probably space for player 2 button 2 */\
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL\
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_4WAY PORT_COCKTAIL\
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_4WAY PORT_COCKTAIL\
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START2 )\
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 )
#define AMIDAR_DSW \
PORT_START_TAG("DSW")\
PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) )\
PORT_DIPSETTING( 0x04, DEF_STR( 4C_1C ) )\
PORT_DIPSETTING( 0x0a, DEF_STR( 3C_1C ) )\
PORT_DIPSETTING( 0x01, DEF_STR( 2C_1C ) )\
PORT_DIPSETTING( 0x02, DEF_STR( 3C_2C ) )\
PORT_DIPSETTING( 0x08, DEF_STR( 4C_3C ) )\
PORT_DIPSETTING( 0x0f, DEF_STR( 1C_1C ) )\
PORT_DIPSETTING( 0x0c, DEF_STR( 3C_4C ) )\
PORT_DIPSETTING( 0x0e, DEF_STR( 2C_3C ) )\
PORT_DIPSETTING( 0x07, DEF_STR( 1C_2C ) )\
PORT_DIPSETTING( 0x06, DEF_STR( 2C_5C ) )\
PORT_DIPSETTING( 0x0b, DEF_STR( 1C_3C ) )\
PORT_DIPSETTING( 0x03, DEF_STR( 1C_4C ) )\
PORT_DIPSETTING( 0x0d, DEF_STR( 1C_5C ) )\
PORT_DIPSETTING( 0x05, DEF_STR( 1C_6C ) )\
PORT_DIPSETTING( 0x09, DEF_STR( 1C_7C ) )\
PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) )\
PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_B ) )\
PORT_DIPSETTING( 0x40, DEF_STR( 4C_1C ) )\
PORT_DIPSETTING( 0xa0, DEF_STR( 3C_1C ) )\
PORT_DIPSETTING( 0x10, DEF_STR( 2C_1C ) )\
PORT_DIPSETTING( 0x20, DEF_STR( 3C_2C ) )\
PORT_DIPSETTING( 0x80, DEF_STR( 4C_3C ) )\
PORT_DIPSETTING( 0xf0, DEF_STR( 1C_1C ) )\
PORT_DIPSETTING( 0xc0, DEF_STR( 3C_4C ) )\
PORT_DIPSETTING( 0xe0, DEF_STR( 2C_3C ) )\
PORT_DIPSETTING( 0x70, DEF_STR( 1C_2C ) )\
PORT_DIPSETTING( 0x60, DEF_STR( 2C_5C ) )\
PORT_DIPSETTING( 0xb0, DEF_STR( 1C_3C ) )\
PORT_DIPSETTING( 0x30, DEF_STR( 1C_4C ) )\
PORT_DIPSETTING( 0xd0, DEF_STR( 1C_5C ) )\
PORT_DIPSETTING( 0x50, DEF_STR( 1C_6C ) )\
PORT_DIPSETTING( 0x90, DEF_STR( 1C_7C ) )\
PORT_DIPSETTING( 0x00, "Disable All Coins" )
static INPUT_PORTS_START( amidar )
AMIDAR_IN0
AMIDAR_IN1
PORT_START_TAG("IN2")
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_4WAY PORT_COCKTAIL
PORT_DIPNAME( 0x02, 0x00, DEF_STR( Demo_Sounds ) )
PORT_DIPSETTING( 0x02, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x04, 0x00, DEF_STR( Bonus_Life ) )
PORT_DIPSETTING( 0x00, "30000 50000" )
PORT_DIPSETTING( 0x04, "Every 50000" )
PORT_DIPNAME( 0x08, 0x00, DEF_STR( Cabinet ) )
PORT_DIPSETTING( 0x00, DEF_STR( Upright ) )
PORT_DIPSETTING( 0x08, DEF_STR( Cocktail ) )
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_4WAY
PORT_DIPNAME( 0x20, 0x00, DEF_STR( Unknown ) )
PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_4WAY
PORT_DIPNAME( 0x80, 0x00, DEF_STR( Unknown ) )
PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
AMIDAR_DSW
INPUT_PORTS_END
/* absolutely identical to amidar, the only difference is the BONUS dip switch */
static INPUT_PORTS_START( amidaru )
PORT_INCLUDE( amidar )
PORT_MODIFY("IN2")
PORT_DIPNAME( 0x04, 0x00, DEF_STR( Bonus_Life ) )
PORT_DIPSETTING( 0x00, "30000 70000" )
PORT_DIPSETTING( 0x04, "50000 80000" )
INPUT_PORTS_END
static INPUT_PORTS_START( amidaro )
PORT_INCLUDE( amidar )
PORT_MODIFY("IN1")
PORT_DIPNAME( 0x03, 0x01, DEF_STR( Lives ) )
PORT_DIPSETTING( 0x03, "1" )
PORT_DIPSETTING( 0x02, "2" )
PORT_DIPSETTING( 0x01, "3" )
PORT_DIPSETTING( 0x00, "4" )
PORT_MODIFY("IN2")
PORT_DIPNAME( 0x02, 0x00, "Level Progression" )
PORT_DIPSETTING( 0x00, "Slow" )
PORT_DIPSETTING( 0x02, "Fast" )
PORT_DIPNAME( 0x04, 0x00, DEF_STR( Bonus_Life ) )
PORT_DIPSETTING( 0x00, "30000 70000" )
PORT_DIPSETTING( 0x04, "50000 80000" )
INPUT_PORTS_END
/* similar to Amidar, dip switches are different and port 3, which in Amidar */
/* selects coins per credit, is not used. */
static INPUT_PORTS_START( turtles )
PORT_START_TAG("IN0")
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_COCKTAIL
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* probably space for button 2 */
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 )
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON1 )
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN2 )
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN1 )
PORT_START_TAG("IN1")
PORT_DIPNAME( 0x03, 0x01, DEF_STR( Lives ) )
PORT_DIPSETTING( 0x00, "3" )
PORT_DIPSETTING( 0x01, "4" )
PORT_DIPSETTING( 0x02, "5" )
PORT_DIPSETTING( 0x03, "126 (Cheat)")
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* probably space for player 2 button 2 */
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_COCKTAIL
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_COCKTAIL
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START2 )
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 )
PORT_START_TAG("IN2")
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_COCKTAIL
PORT_DIPNAME( 0x06, 0x00, DEF_STR( Coinage ) )
PORT_DIPSETTING( 0x00, "A 1/1 B 2/1 C 1/1" )
PORT_DIPSETTING( 0x02, "A 1/2 B 1/1 C 1/2" )
PORT_DIPSETTING( 0x04, "A 1/3 B 3/1 C 1/3" )
PORT_DIPSETTING( 0x06, "A 1/4 B 4/1 C 1/4" )
PORT_DIPNAME( 0x08, 0x00, DEF_STR( Cabinet ) )
PORT_DIPSETTING( 0x00, DEF_STR( Upright ) )
PORT_DIPSETTING( 0x08, DEF_STR( Cocktail ) )
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY
PORT_DIPNAME( 0x20, 0x00, DEF_STR( Unknown ) )
PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY
PORT_DIPNAME( 0x80, 0x00, DEF_STR( Unknown ) )
PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
INPUT_PORTS_END
/* same as Turtles, but dip switches are different. */
static INPUT_PORTS_START( turpin )
PORT_INCLUDE( turtles )
PORT_MODIFY("IN1")
PORT_DIPNAME( 0x03, 0x00, DEF_STR( Lives ) )
PORT_DIPSETTING( 0x00, "3" )
PORT_DIPSETTING( 0x01, "5" )
PORT_DIPSETTING( 0x02, "7" )
PORT_DIPSETTING( 0x03, "126 (Cheat)")
PORT_MODIFY("IN2")
PORT_DIPNAME( 0x06, 0x00, DEF_STR( Coinage ) )
PORT_DIPSETTING( 0x06, DEF_STR( 4C_1C ) )
PORT_DIPSETTING( 0x02, DEF_STR( 2C_1C ) )
PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) )
PORT_DIPSETTING( 0x04, DEF_STR( 1C_2C ) )
INPUT_PORTS_END
static MACHINE_DRIVER_START( amidar )
/* basic machine hardware */
MDRV_CPU_ADD_TAG("main", Z80, 18432000/6) /* 3.072 MHz */
MDRV_CPU_PROGRAM_MAP(readmem,writemem)
MDRV_CPU_ADD(Z80,14318000/8)
/* audio CPU */ /* 1.78975 MHz */
MDRV_CPU_PROGRAM_MAP(amidar_sound_readmem,amidar_sound_writemem)
MDRV_CPU_IO_MAP(amidar_sound_readport,amidar_sound_writeport)
MDRV_MACHINE_RESET(scramble)
/* video hardware */
MDRV_SCREEN_ADD("main", RASTER)
MDRV_SCREEN_REFRESH_RATE(16000.0/132/2)
MDRV_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16)
MDRV_SCREEN_SIZE(32*8, 32*8)
MDRV_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
MDRV_GFXDECODE(amidar)
MDRV_PALETTE_LENGTH(32+64+2+8)
MDRV_PALETTE_INIT(turtles)
MDRV_VIDEO_START(turtles)
MDRV_VIDEO_UPDATE(galaxian)
/* sound hardware */
MDRV_SPEAKER_STANDARD_MONO("mono")
MDRV_SOUND_ADD(AY8910, 14318000/8)
MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.16)
MDRV_SOUND_ADD(AY8910, 14318000/8)
MDRV_SOUND_CONFIG(amidar_ay8910_interface_2)
MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.16)
MACHINE_DRIVER_END
/***************************************************************************
Game driver(s)
***************************************************************************/
ROM_START( amidar )
ROM_REGION( 0x10000, REGION_CPU1, 0 )
ROM_LOAD( "amidar.2c", 0x0000, 0x1000, CRC(c294bf27) SHA1(399325bf1559e8cdbddf7cfbf0dc739f9ed72ef0) )
ROM_LOAD( "amidar.2e", 0x1000, 0x1000, CRC(e6e96826) SHA1(e9c4f8c594640424b456505e676352a98b758c03) )
ROM_LOAD( "amidar.2f", 0x2000, 0x1000, CRC(3656be6f) SHA1(9d652f66bedcf17a6453c0e0ead30bfd7ea0bd0a) )
ROM_LOAD( "amidar.2h", 0x3000, 0x1000, CRC(1be170bd) SHA1(c047bc393b297c0d47668a5f6f4870e3fac937ef) )
ROM_REGION( 0x10000, REGION_CPU2, 0 )
ROM_LOAD( "amidar.5c", 0x0000, 0x1000, CRC(c4b66ae4) SHA1(9d09dbde4019f7be3abe0815b0e06d542c01c255) )
ROM_LOAD( "amidar.5d", 0x1000, 0x1000, CRC(806785af) SHA1(c8c85e3a6a204feccd7859b4527bd649e96134b4) )
ROM_REGION( 0x1000, REGION_GFX1, ROMREGION_DISPOSE )
ROM_LOAD( "amidar.5f", 0x0000, 0x0800, CRC(5e51e84d) SHA1(dfe84db7e2b1a45a1d484fcf37291f536bc5324c) )
ROM_LOAD( "amidar.5h", 0x0800, 0x0800, CRC(2f7f1c30) SHA1(83c330eca20dfcc6a4099001943b9ed7a7c3db5b) )
ROM_REGION( 0x0020, REGION_PROMS, 0 )
ROM_LOAD( "amidar.clr", 0x0000, 0x0020, CRC(f940dcc3) SHA1(1015e56f37c244a850a8f4bf0e36668f047fd46d) )
ROM_END
ROM_START( amidaru )
ROM_REGION( 0x10000, REGION_CPU1, 0 )
ROM_LOAD( "amidarus.2c", 0x0000, 0x1000, CRC(951e0792) SHA1(3a68b829c9ffb465bd6582c9ea566e0e947c6c19) )
ROM_LOAD( "amidarus.2e", 0x1000, 0x1000, CRC(a1a3a136) SHA1(330ec857fdf4c1b28e2560a5f63a2432f87f9b2f) )
ROM_LOAD( "amidarus.2f", 0x2000, 0x1000, CRC(a5121bf5) SHA1(fe15b91724758ede43dd332327919f164772c592) )
ROM_LOAD( "amidarus.2h", 0x3000, 0x1000, CRC(051d1c7f) SHA1(3cfa0f728a5c27da0a3fe2579ad226129ccde232) )
ROM_LOAD( "amidarus.2j", 0x4000, 0x1000, CRC(351f00d5) SHA1(6659357f40f888b21be00826246200fd3a8a88ce) )
ROM_REGION( 0x10000, REGION_CPU2, 0 )
ROM_LOAD( "amidarus.5c", 0x0000, 0x1000, CRC(8ca7b750) SHA1(4f4c2915503b85abe141d717fd254ee10c9da99e) )
ROM_LOAD( "amidarus.5d", 0x1000, 0x1000, CRC(9b5bdc0a) SHA1(84d953618c8bf510d23b42232a856ac55f1baff5) )
ROM_REGION( 0x1000, REGION_GFX1, ROMREGION_DISPOSE )
ROM_LOAD( "amidarus.5f", 0x0000, 0x0800, CRC(2cfe5ede) SHA1(0d86a78008ac8653c17fff5be5ebdf1f0a9d31eb) )
ROM_LOAD( "amidarus.5h", 0x0800, 0x0800, CRC(57c4fd0d) SHA1(8764deec9fbff4220d61df621b12fc36c3702601) )
ROM_REGION( 0x0020, REGION_PROMS, 0 )
ROM_LOAD( "amidar.clr", 0x0000, 0x0020, CRC(f940dcc3) SHA1(1015e56f37c244a850a8f4bf0e36668f047fd46d) )
ROM_END
ROM_START( amidaro )
ROM_REGION( 0x10000, REGION_CPU1, 0 )
ROM_LOAD( "107.2cd", 0x0000, 0x1000, CRC(c52536be) SHA1(3f64578214d2d9f0e4e7ee87e09b0aac33a73098) )
ROM_LOAD( "108.2fg", 0x1000, 0x1000, CRC(38538b98) SHA1(12b2a0c09926d006781bee5d450bc0c391cc1fb5) )
ROM_LOAD( "109.2fg", 0x2000, 0x1000, CRC(69907f0f) SHA1(f1d19a76ffc41ee8c5c574f10108cfdfe525b732) )
ROM_LOAD( "110.2h", 0x3000, 0x1000, CRC(ba149a93) SHA1(9ef1d27f0780612be0ea2be94c3a2c781a4924c8) )
ROM_LOAD( "111.2j", 0x4000, 0x1000, CRC(20d01c2e) SHA1(e09437ff440f04036d5ec74b355e97bbbbfefb95) )
ROM_REGION( 0x10000, REGION_CPU2, 0 )
ROM_LOAD( "amidarus.5c", 0x0000, 0x1000, CRC(8ca7b750) SHA1(4f4c2915503b85abe141d717fd254ee10c9da99e) )
ROM_LOAD( "amidarus.5d", 0x1000, 0x1000, CRC(9b5bdc0a) SHA1(84d953618c8bf510d23b42232a856ac55f1baff5) )
ROM_REGION( 0x1000, REGION_GFX1, ROMREGION_DISPOSE )
ROM_LOAD( "amidarus.5f", 0x0000, 0x0800, CRC(2cfe5ede) SHA1(0d86a78008ac8653c17fff5be5ebdf1f0a9d31eb) )
ROM_LOAD( "113.5h", 0x0800, 0x0800, CRC(bcdce168) SHA1(e593d03c460ef4607e3ba25019d9f01d4a717dd9) ) /* The letter 'S' is slightly different */
ROM_REGION( 0x0020, REGION_PROMS, 0 )
ROM_LOAD( "amidar.clr", 0x0000, 0x0020, CRC(f940dcc3) SHA1(1015e56f37c244a850a8f4bf0e36668f047fd46d) )
ROM_END
ROM_START( amidarb )
ROM_REGION( 0x10000, REGION_CPU1, 0 )
ROM_LOAD( "ami2gor.2c", 0x0000, 0x1000, CRC(9ad2dcd2) SHA1(43ceb93d891c1ebf55e7c26de13e3db8e1d26f6d) )
ROM_LOAD( "2.2f", 0x1000, 0x1000, CRC(66282ff5) SHA1(986778278eb339768d190460680e7aa698812488) )
ROM_LOAD( "3.2j", 0x2000, 0x1000, CRC(b0860e31) SHA1(8fb92b0e71c826a509a8f712553de0f4a636286f) )
ROM_LOAD( "4.2m", 0x3000, 0x1000, CRC(4a4086c9) SHA1(6f309b67dc68e06e6eb1d3ee2ae75afe253a4ce3) )
ROM_REGION( 0x10000, REGION_CPU2, 0 )
ROM_LOAD( "8.11d", 0x0000, 0x1000, CRC(8ca7b750) SHA1(4f4c2915503b85abe141d717fd254ee10c9da99e) )
ROM_LOAD( "9.9d", 0x1000, 0x1000, CRC(9b5bdc0a) SHA1(84d953618c8bf510d23b42232a856ac55f1baff5) )
ROM_REGION( 0x1000, REGION_GFX1, ROMREGION_DISPOSE )
ROM_LOAD( "5.5f", 0x0000, 0x0800, CRC(2082ad0a) SHA1(c6014d9575e92adf09b0961c2158a779ebe940c4) )
ROM_LOAD( "6.5h", 0x0800, 0x0800, CRC(3029f94f) SHA1(3b432b42e79f8b0a7d65e197f373a04e3c92ff20) )
ROM_REGION( 0x0020, REGION_PROMS, 0 )
ROM_LOAD( "n82s123n.6e", 0x0000, 0x0020, CRC(01004d3f) SHA1(e53cbc54ea96e846481a67bbcccf6b1726e70f9c) )
ROM_END
ROM_START( amigo )
ROM_REGION( 0x10000, REGION_CPU1, 0 )
ROM_LOAD( "2732.a1", 0x0000, 0x1000, CRC(930dc856) SHA1(7022f1f26830baccdc8b8f0b10fb1d1ccb080f22) )
ROM_LOAD( "2732.a2", 0x1000, 0x1000, CRC(66282ff5) SHA1(986778278eb339768d190460680e7aa698812488) )
ROM_LOAD( "2732.a3", 0x2000, 0x1000, CRC(e9d3dc76) SHA1(627c6068c65985175388aec43ac2a4248b004c97) )
ROM_LOAD( "2732.a4", 0x3000, 0x1000, CRC(4a4086c9) SHA1(6f309b67dc68e06e6eb1d3ee2ae75afe253a4ce3) )
ROM_REGION( 0x10000, REGION_CPU2, 0 )
ROM_LOAD( "amidarus.5c", 0x0000, 0x1000, CRC(8ca7b750) SHA1(4f4c2915503b85abe141d717fd254ee10c9da99e) )
ROM_LOAD( "amidarus.5d", 0x1000, 0x1000, CRC(9b5bdc0a) SHA1(84d953618c8bf510d23b42232a856ac55f1baff5) )
ROM_REGION( 0x1000, REGION_GFX1, ROMREGION_DISPOSE )
ROM_LOAD( "2716.a6", 0x0000, 0x0800, CRC(2082ad0a) SHA1(c6014d9575e92adf09b0961c2158a779ebe940c4) )
ROM_LOAD( "2716.a5", 0x0800, 0x0800, CRC(3029f94f) SHA1(3b432b42e79f8b0a7d65e197f373a04e3c92ff20) )
ROM_REGION( 0x0020, REGION_PROMS, 0 )
ROM_LOAD( "amidar.clr", 0x0000, 0x0020, CRC(f940dcc3) SHA1(1015e56f37c244a850a8f4bf0e36668f047fd46d) )
ROM_END
ROM_START( turtles )
ROM_REGION( 0x10000, REGION_CPU1, 0 )
ROM_LOAD( "turt_vid.2c", 0x0000, 0x1000, CRC(ec5e61fb) SHA1(3ca89800fda7a7e61f54d71d5302908be2706def) )
ROM_LOAD( "turt_vid.2e", 0x1000, 0x1000, CRC(fd10821e) SHA1(af74602bf2454eb8f3b9bb5c425e2476feeecd69) )
ROM_LOAD( "turt_vid.2f", 0x2000, 0x1000, CRC(ddcfc5fa) SHA1(2af9383e5a289c2d7fbe6cf5e5b1519c352afbab) )
ROM_LOAD( "turt_vid.2h", 0x3000, 0x1000, CRC(9e71696c) SHA1(3dcdf5dc601c875fc9d8b9a46e3ef588e7478e0d) )
ROM_LOAD( "turt_vid.2j", 0x4000, 0x1000, CRC(fcd49fef) SHA1(bb1e91b2e6d4b5a861bf37907ef6b198328d8d83) )
ROM_REGION( 0x10000, REGION_CPU2, 0 )
ROM_LOAD( "turt_snd.5c", 0x0000, 0x1000, CRC(f0c30f9a) SHA1(5621f336e9be8acf986a34bbb8855ed5d45c28ef) )
ROM_LOAD( "turt_snd.5d", 0x1000, 0x1000, CRC(af5fc43c) SHA1(8a49c55feba094b07380615cf0b6f0878c25a260) )
ROM_REGION( 0x1000, REGION_GFX1, ROMREGION_DISPOSE )
ROM_LOAD( "turt_vid.5h", 0x0000, 0x0800, CRC(e5999d52) SHA1(bc3f52cf6c6e19dfd2dacd1e8c9128f437e995fc) )
ROM_LOAD( "turt_vid.5f", 0x0800, 0x0800, CRC(c3ffd655) SHA1(dee51d77be262a2944488e381541c10a2b6e5d83) )
ROM_REGION( 0x0020, REGION_PROMS, 0 )
ROM_LOAD( "turtles.clr", 0x0000, 0x0020, CRC(f3ef02dd) SHA1(09fd795170d7d30f101d579f57553da5ff3800ab) )
ROM_END
ROM_START( turpin )
ROM_REGION( 0x10000, REGION_CPU1, 0 )
ROM_LOAD( "m1", 0x0000, 0x1000, CRC(89177473) SHA1(0717b1e7308ffe527edfc578ec4353809e7d9eea) )
ROM_LOAD( "m2", 0x1000, 0x1000, CRC(4c6ca5c6) SHA1(dd4ca7adaa523a8e775cdfaa99bb3cc25da32c08) )
ROM_LOAD( "m3", 0x2000, 0x1000, CRC(62291652) SHA1(82965d3e9608afde4ff06cba1d7a4b11cd904c11) )
ROM_LOAD( "turt_vid.2h", 0x3000, 0x1000, CRC(9e71696c) SHA1(3dcdf5dc601c875fc9d8b9a46e3ef588e7478e0d) )
ROM_LOAD( "m5", 0x4000, 0x1000, CRC(7d2600f2) SHA1(1a9bdf63b50419c6e0d9c401c3dcf29d5b459fa6) )
ROM_REGION( 0x10000, REGION_CPU2, 0 )
ROM_LOAD( "turt_snd.5c", 0x0000, 0x1000, CRC(f0c30f9a) SHA1(5621f336e9be8acf986a34bbb8855ed5d45c28ef) )
ROM_LOAD( "turt_snd.5d", 0x1000, 0x1000, CRC(af5fc43c) SHA1(8a49c55feba094b07380615cf0b6f0878c25a260) )
ROM_REGION( 0x1000, REGION_GFX1, ROMREGION_DISPOSE )
ROM_LOAD( "turt_vid.5h", 0x0000, 0x0800, CRC(e5999d52) SHA1(bc3f52cf6c6e19dfd2dacd1e8c9128f437e995fc) )
ROM_LOAD( "turt_vid.5f", 0x0800, 0x0800, CRC(c3ffd655) SHA1(dee51d77be262a2944488e381541c10a2b6e5d83) )
ROM_REGION( 0x0020, REGION_PROMS, 0 )
ROM_LOAD( "turtles.clr", 0x0000, 0x0020, CRC(f3ef02dd) SHA1(09fd795170d7d30f101d579f57553da5ff3800ab) )
ROM_END
ROM_START( 600 )
ROM_REGION( 0x10000, REGION_CPU1, 0 )
ROM_LOAD( "600_vid.2c", 0x0000, 0x1000, CRC(8ee090ae) SHA1(3d491313da6cccd6dbc15774569be0555fe2f73a) )
ROM_LOAD( "600_vid.2e", 0x1000, 0x1000, CRC(45bfaff2) SHA1(ba4f7aa499f4993ec2191b8832b5604fd41964bc) )
ROM_LOAD( "600_vid.2f", 0x2000, 0x1000, CRC(9f4c8ed7) SHA1(2564dae82019097227351a7ddc9c5156ca00297a) )
ROM_LOAD( "600_vid.2h", 0x3000, 0x1000, CRC(a92ef056) SHA1(c319d41a3345b84670fe9110f78332c1cfe1e163) )
ROM_LOAD( "600_vid.2j", 0x4000, 0x1000, CRC(6dadd72d) SHA1(5602b5ebb2c287f72a5ce873b4e3dfd19b8412a0) )
ROM_REGION( 0x10000, REGION_CPU2, 0 )
ROM_LOAD( "600_snd.5c", 0x0000, 0x1000, CRC(1773c68e) SHA1(cc4aa3a98e85bc6300f8c1ee1a0448071d7c6dfa) )
ROM_LOAD( "600_snd.5d", 0x1000, 0x1000, CRC(a311b998) SHA1(39af321b8c3f211ed6d083a2aba4fbc8af11c9e8) )
ROM_REGION( 0x1000, REGION_GFX1, ROMREGION_DISPOSE )
ROM_LOAD( "600_vid.5h", 0x0000, 0x0800, CRC(006c3d56) SHA1(0c773e0e84d0bf45be5a5a7cfff960c1ca2f0320) )
ROM_LOAD( "600_vid.5f", 0x0800, 0x0800, CRC(7dbc0426) SHA1(29eeb3cdb5a3bcf7115d8099e4d04cf76216b003) )
ROM_REGION( 0x0020, REGION_PROMS, 0 )
ROM_LOAD( "turtles.clr", 0x0000, 0x0020, CRC(f3ef02dd) SHA1(09fd795170d7d30f101d579f57553da5ff3800ab) )
ROM_END
GAME( 1981, amidar, 0, amidar, amidar, amidar, ROT90, "Konami", "Amidar", GAME_SUPPORTS_SAVE )
GAME( 1982, amidaru, amidar, amidar, amidaru, amidar, ROT90, "Konami (Stern license)", "Amidar (Stern)", GAME_SUPPORTS_SAVE )
GAME( 1982, amidaro, amidar, amidar, amidaro, amidar, ROT90, "Konami (Olympia license)", "Amidar (Olympia)", GAME_SUPPORTS_SAVE )
GAME( 1982, amidarb, amidar, amidar, amidaru, amidar, ROT90, "bootleg", "Amidar (Bootleg)", GAME_SUPPORTS_SAVE ) /* Simular to Amigo bootleg */
GAME( 1982, amigo, amidar, amidar, amidaru, amidar, ROT90, "bootleg", "Amigo", GAME_SUPPORTS_SAVE )
GAME( 1981, turtles, 0, amidar, turtles, scramble_ppi, ROT90, "[Konami] (Stern license)", "Turtles", GAME_SUPPORTS_SAVE )
GAME( 1981, turpin, turtles, amidar, turpin, scramble_ppi, ROT90, "[Konami] (Sega license)", "Turpin", GAME_SUPPORTS_SAVE )
GAME( 1981, 600, turtles, amidar, turtles, scramble_ppi, ROT90, "Konami", "600", GAME_SUPPORTS_SAVE )

View File

@ -190,7 +190,7 @@ static MACHINE_DRIVER_START( dambustr )
MDRV_CPU_ADD_TAG("main", Z80, 18432000/6) /* 3.072 MHz */
MDRV_CPU_PROGRAM_MAP(dambustr_readmem, dambustr_writemem)
MDRV_MACHINE_RESET(galaxian)
MDRV_MACHINE_RESET(galaxold)
/* video hardware */
MDRV_SCREEN_ADD("main", RASTER)

View File

@ -1,368 +0,0 @@
/***************************************************************************
Frogger hardware
***************************************************************************/
#include "driver.h"
#include "galaxold.h"
#include "machine/8255ppi.h"
#include "sound/ay8910.h"
static const gfx_layout frogger_charlayout =
{
8,8,
RGN_FRAC(1,2),
2,
{ RGN_FRAC(0,2), RGN_FRAC(1,2) },
{ 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 const gfx_layout frogger_spritelayout =
{
16,16,
RGN_FRAC(1,2),
2,
{ RGN_FRAC(0,2), RGN_FRAC(1,2) },
{ 0, 1, 2, 3, 4, 5, 6, 7,
8*8+0, 8*8+1, 8*8+2, 8*8+3, 8*8+4, 8*8+5, 8*8+6, 8*8+7 },
{ 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8,
16*8, 17*8, 18*8, 19*8, 20*8, 21*8, 22*8, 23*8 },
32*8
};
static GFXDECODE_START( frogger )
GFXDECODE_ENTRY( REGION_GFX1, 0x0000, frogger_charlayout, 0, 8 )
GFXDECODE_ENTRY( REGION_GFX1, 0x0000, frogger_spritelayout, 0, 8 )
GFXDECODE_END
static READ8_HANDLER(frogger_ppi8255_0_r)
{
return ppi8255_0_r(machine, offset >> 1);
}
static READ8_HANDLER(frogger_ppi8255_1_r)
{
return ppi8255_1_r(machine, offset >> 1);
}
static WRITE8_HANDLER(frogger_ppi8255_0_w)
{
ppi8255_0_w(machine, offset >> 1, data);
}
static WRITE8_HANDLER(frogger_ppi8255_1_w)
{
ppi8255_1_w(machine, offset >> 1, data);
}
static ADDRESS_MAP_START( readmem, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x3fff) AM_READ(SMH_ROM)
AM_RANGE(0x8000, 0x87ff) AM_READ(SMH_RAM)
AM_RANGE(0x8800, 0x8800) AM_READ(watchdog_reset_r)
AM_RANGE(0xa800, 0xabff) AM_READ(SMH_RAM)
AM_RANGE(0xb000, 0xb0ff) AM_READ(SMH_RAM)
AM_RANGE(0xd000, 0xd007) AM_READ(frogger_ppi8255_1_r)
AM_RANGE(0xe000, 0xe007) AM_READ(frogger_ppi8255_0_r)
ADDRESS_MAP_END
static ADDRESS_MAP_START( writemem, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x3fff) AM_WRITE(SMH_ROM)
AM_RANGE(0x8000, 0x87ff) AM_WRITE(SMH_RAM)
AM_RANGE(0xa800, 0xabff) AM_WRITE(galaxold_videoram_w) AM_BASE(&galaxold_videoram)
AM_RANGE(0xb000, 0xb03f) AM_WRITE(galaxold_attributesram_w) AM_BASE(&galaxold_attributesram)
AM_RANGE(0xb040, 0xb05f) AM_WRITE(SMH_RAM) AM_BASE(&galaxold_spriteram) AM_SIZE(&galaxold_spriteram_size)
AM_RANGE(0xb060, 0xb0ff) AM_WRITE(SMH_RAM)
AM_RANGE(0xb808, 0xb808) AM_WRITE(galaxold_nmi_enable_w)
AM_RANGE(0xb80c, 0xb80c) AM_WRITE(galaxold_flip_screen_y_w)
AM_RANGE(0xb810, 0xb810) AM_WRITE(galaxold_flip_screen_x_w)
AM_RANGE(0xb818, 0xb818) AM_WRITE(galaxold_coin_counter_0_w)
AM_RANGE(0xb81c, 0xb81c) AM_WRITE(galaxold_coin_counter_1_w)
AM_RANGE(0xd000, 0xd007) AM_WRITE(frogger_ppi8255_1_w)
AM_RANGE(0xe000, 0xe007) AM_WRITE(frogger_ppi8255_0_w)
ADDRESS_MAP_END
static ADDRESS_MAP_START( froggrmc_readmem, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x5fff) AM_READ(SMH_ROM)
AM_RANGE(0x8000, 0x87ff) AM_READ(SMH_RAM)
AM_RANGE(0x9000, 0x93ff) AM_READ(SMH_RAM)
AM_RANGE(0x9400, 0x97ff) AM_READ(galaxold_videoram_r)
AM_RANGE(0x9800, 0x98ff) AM_READ(SMH_RAM)
AM_RANGE(0xa000, 0xa000) AM_READ(input_port_0_r)
AM_RANGE(0xa800, 0xa800) AM_READ(input_port_1_r)
AM_RANGE(0xb000, 0xb000) AM_READ(input_port_2_r)
AM_RANGE(0xb800, 0xb800) AM_READ(watchdog_reset_r)
ADDRESS_MAP_END
static ADDRESS_MAP_START( froggrmc_writemem, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x3fff) AM_WRITE(SMH_ROM)
AM_RANGE(0x8000, 0x87ff) AM_WRITE(SMH_RAM)
AM_RANGE(0x9000, 0x93ff) AM_WRITE(galaxold_videoram_w) AM_BASE(&galaxold_videoram)
AM_RANGE(0x9800, 0x983f) AM_WRITE(galaxold_attributesram_w) AM_BASE(&galaxold_attributesram)
AM_RANGE(0x9840, 0x985f) AM_WRITE(SMH_RAM) AM_BASE(&galaxold_spriteram) AM_SIZE(&galaxold_spriteram_size)
AM_RANGE(0x9860, 0x98ff) AM_WRITE(SMH_RAM)
AM_RANGE(0xa800, 0xa800) AM_WRITE(soundlatch_w)
AM_RANGE(0xb000, 0xb000) AM_WRITE(galaxold_nmi_enable_w)
AM_RANGE(0xb001, 0xb001) AM_WRITE(froggrmc_sh_irqtrigger_w)
AM_RANGE(0xb006, 0xb006) AM_WRITE(galaxold_flip_screen_x_w)
AM_RANGE(0xb007, 0xb007) AM_WRITE(galaxold_flip_screen_y_w)
ADDRESS_MAP_END
static ADDRESS_MAP_START( frogger_sound_readmem, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x1fff) AM_READ(SMH_ROM)
AM_RANGE(0x4000, 0x43ff) AM_READ(SMH_RAM)
ADDRESS_MAP_END
static ADDRESS_MAP_START( frogger_sound_writemem, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x1fff) AM_WRITE(SMH_ROM)
AM_RANGE(0x4000, 0x43ff) AM_WRITE(SMH_RAM)
AM_RANGE(0x6000, 0x6fff) AM_WRITE(frogger_filter_w)
ADDRESS_MAP_END
static ADDRESS_MAP_START( frogger_sound_readport, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x40, 0x40) AM_READ(AY8910_read_port_0_r)
ADDRESS_MAP_END
static ADDRESS_MAP_START( frogger_sound_writeport, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x40, 0x40) AM_WRITE(AY8910_write_port_0_w)
AM_RANGE(0x80, 0x80) AM_WRITE(AY8910_control_port_0_w)
ADDRESS_MAP_END
static INPUT_PORTS_START( frogger )
PORT_START_TAG("IN0")
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_4WAY PORT_COCKTAIL
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* 1P shoot2 - unused */
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 )
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* 1P shoot1 - unused */
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_4WAY
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_4WAY
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN2 )
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN1 )
PORT_START_TAG("IN1")
PORT_DIPNAME( 0x03, 0x00, DEF_STR( Lives ) )
PORT_DIPSETTING( 0x00, "3" )
PORT_DIPSETTING( 0x01, "5" )
PORT_DIPSETTING( 0x02, "7" )
PORT_DIPSETTING( 0x03, "256 (Cheat)")
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* 2P shoot2 - unused */
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* 2P shoot1 - unused */
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_4WAY PORT_COCKTAIL
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_4WAY PORT_COCKTAIL
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START2 )
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 )
PORT_START_TAG("IN2")
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_4WAY PORT_COCKTAIL
PORT_DIPNAME( 0x06, 0x00, DEF_STR( Coinage ) )
PORT_DIPSETTING( 0x02, "A 2/1 B 2/1 C 2/1" )
PORT_DIPSETTING( 0x04, "A 2/1 B 1/3 C 2/1" )
PORT_DIPSETTING( 0x00, "A 1/1 B 1/1 C 1/1" )
PORT_DIPSETTING( 0x06, "A 1/1 B 1/6 C 1/1" )
PORT_DIPNAME( 0x08, 0x00, DEF_STR( Cabinet ) )
PORT_DIPSETTING( 0x00, DEF_STR( Upright ) )
PORT_DIPSETTING( 0x08, DEF_STR( Cocktail ) )
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_4WAY
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNUSED )
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_4WAY
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED )
INPUT_PORTS_END
static INPUT_PORTS_START( froggrmc )
PORT_START_TAG("IN0")
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN1 )
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_COIN2 )
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_4WAY
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_4WAY
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_4WAY
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_4WAY
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNKNOWN )
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SERVICE1 )
PORT_START_TAG("IN1")
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_START1 )
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_START2 )
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
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_4WAY PORT_COCKTAIL
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_4WAY PORT_COCKTAIL
PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Lives ) )
PORT_DIPSETTING( 0xc0, "3" )
PORT_DIPSETTING( 0x80, "5" )
PORT_DIPSETTING( 0x40, "7" )
PORT_DIPSETTING( 0x00, "256 (Cheat)")
PORT_START_TAG("IN2")
PORT_DIPNAME( 0x01, 0x01, DEF_STR( Cabinet ) )
PORT_DIPSETTING( 0x01, DEF_STR( Upright ) )
PORT_DIPSETTING( 0x00, DEF_STR( Cocktail ) )
PORT_DIPNAME( 0x06, 0x06, DEF_STR( Coinage ) )
PORT_DIPSETTING( 0x02, "A 2/1 B 2/1 C 2/1" )
PORT_DIPSETTING( 0x04, "A 2/1 B 1/3 C 2/1" )
PORT_DIPSETTING( 0x06, "A 1/1 B 1/1 C 1/1" )
PORT_DIPSETTING( 0x00, "A 1/1 B 1/6 C 1/1" )
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNKNOWN )
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNKNOWN )
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNKNOWN )
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNKNOWN )
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN )
INPUT_PORTS_END
static const struct AY8910interface frogger_ay8910_interface =
{
soundlatch_r,
frogger_portB_r
};
static MACHINE_DRIVER_START( frogger )
/* basic machine hardware */
MDRV_CPU_ADD_TAG("main", Z80, 18432000/6) /* 3.072 MHz */
MDRV_CPU_PROGRAM_MAP(readmem,writemem)
MDRV_CPU_ADD(Z80,14318000/8)
/* audio CPU */ /* 1.78975 MHz */
MDRV_CPU_PROGRAM_MAP(frogger_sound_readmem,frogger_sound_writemem)
MDRV_CPU_IO_MAP(frogger_sound_readport,frogger_sound_writeport)
MDRV_MACHINE_RESET(scramble)
/* video hardware */
MDRV_SCREEN_ADD("main", RASTER)
MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16)
MDRV_SCREEN_REFRESH_RATE(16000.0/132/2)
MDRV_SCREEN_SIZE(32*8, 32*8)
MDRV_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
MDRV_GFXDECODE(frogger)
MDRV_PALETTE_LENGTH(32+64+2+1) /* 32 for characters, 64 for stars, 2 for bullets, 1 for background */
MDRV_PALETTE_INIT(frogger)
MDRV_VIDEO_START(frogger)
MDRV_VIDEO_UPDATE(galaxian)
/* sound hardware */
MDRV_SPEAKER_STANDARD_MONO("mono")
MDRV_SOUND_ADD(AY8910, 14318000/8)
MDRV_SOUND_CONFIG(frogger_ay8910_interface)
MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.33)
MACHINE_DRIVER_END
static MACHINE_DRIVER_START( froggrmc )
/* basic machine hardware */
MDRV_IMPORT_FROM(frogger)
MDRV_CPU_MODIFY("main")
MDRV_CPU_PROGRAM_MAP(froggrmc_readmem,froggrmc_writemem)
MDRV_VIDEO_START(froggers)
MACHINE_DRIVER_END
/***************************************************************************
Game driver(s)
***************************************************************************/
ROM_START( frogger )
ROM_REGION( 0x10000, REGION_CPU1, 0 )
ROM_LOAD( "frogger.26", 0x0000, 0x1000, CRC(597696d6) SHA1(e7e021776cad00f095a1ebbef407b7c0a8f5d835) )
ROM_LOAD( "frogger.27", 0x1000, 0x1000, CRC(b6e6fcc3) SHA1(5e8692f2b0c7f4b3642b3ee6670e1c3b20029cdc) )
ROM_LOAD( "frsm3.7", 0x2000, 0x1000, CRC(aca22ae0) SHA1(5a99060ea2506a3ac7d61ca5876ce5cb3e493565) )
ROM_REGION( 0x10000, REGION_CPU2, 0 )
ROM_LOAD( "frogger.608", 0x0000, 0x0800, CRC(e8ab0256) SHA1(f090afcfacf5f13cdfa0dfda8e3feb868c6ce8bc) )
ROM_LOAD( "frogger.609", 0x0800, 0x0800, CRC(7380a48f) SHA1(75582a94b696062cbdb66a4c5cf0bc0bb94f81ee) )
ROM_LOAD( "frogger.610", 0x1000, 0x0800, CRC(31d7eb27) SHA1(2e1d34ae4da385fd7cac94707d25eeddf4604e1a) )
ROM_REGION( 0x1000, REGION_GFX1, ROMREGION_DISPOSE )
ROM_LOAD( "frogger.607", 0x0000, 0x0800, CRC(05f7d883) SHA1(78831fd287da18928651a8adb7e578d291493eff) )
ROM_LOAD( "frogger.606", 0x0800, 0x0800, CRC(f524ee30) SHA1(dd768967add61467baa08d5929001f157d6cd911) )
ROM_REGION( 0x0020, REGION_PROMS, 0 )
ROM_LOAD( "pr-91.6l", 0x0000, 0x0020, CRC(413703bf) SHA1(66648b2b28d3dcbda5bdb2605d1977428939dd3c) )
ROM_END
ROM_START( frogseg1 )
ROM_REGION( 0x10000, REGION_CPU1, 0 )
ROM_LOAD( "frogger.26", 0x0000, 0x1000, CRC(597696d6) SHA1(e7e021776cad00f095a1ebbef407b7c0a8f5d835) )
ROM_LOAD( "frogger.27", 0x1000, 0x1000, CRC(b6e6fcc3) SHA1(5e8692f2b0c7f4b3642b3ee6670e1c3b20029cdc) )
ROM_LOAD( "frogger.34", 0x2000, 0x1000, CRC(ed866bab) SHA1(24e1bbde44eb5480b7a0570fa0dc1de388cb95ba) )
ROM_REGION( 0x10000, REGION_CPU2, 0 )
ROM_LOAD( "frogger.608", 0x0000, 0x0800, CRC(e8ab0256) SHA1(f090afcfacf5f13cdfa0dfda8e3feb868c6ce8bc) )
ROM_LOAD( "frogger.609", 0x0800, 0x0800, CRC(7380a48f) SHA1(75582a94b696062cbdb66a4c5cf0bc0bb94f81ee) )
ROM_LOAD( "frogger.610", 0x1000, 0x0800, CRC(31d7eb27) SHA1(2e1d34ae4da385fd7cac94707d25eeddf4604e1a) )
ROM_REGION( 0x1000, REGION_GFX1, ROMREGION_DISPOSE )
ROM_LOAD( "frogger.607", 0x0000, 0x0800, CRC(05f7d883) SHA1(78831fd287da18928651a8adb7e578d291493eff) )
ROM_LOAD( "frogger.606", 0x0800, 0x0800, CRC(f524ee30) SHA1(dd768967add61467baa08d5929001f157d6cd911) )
ROM_REGION( 0x0020, REGION_PROMS, 0 )
ROM_LOAD( "pr-91.6l", 0x0000, 0x0020, CRC(413703bf) SHA1(66648b2b28d3dcbda5bdb2605d1977428939dd3c) )
ROM_END
ROM_START( frogseg2 )
ROM_REGION( 0x10000, REGION_CPU1, 0 )
ROM_LOAD( "frogger.ic5", 0x0000, 0x1000, CRC(efab0c79) SHA1(68c99b6cdcb9396bb473739a62ffc009b4bf57d5) )
ROM_LOAD( "frogger.ic6", 0x1000, 0x1000, CRC(aeca9c13) SHA1(cdf560adbd7f2813e86e378da7781cccf7928a44) )
ROM_LOAD( "frogger.ic7", 0x2000, 0x1000, CRC(dd251066) SHA1(4612e1fe1ab7182a277140b1a1976cc17e0746a5) )
ROM_LOAD( "frogger.ic8", 0x3000, 0x1000, CRC(bf293a02) SHA1(be94e9f5caa74c3de6fd95bd20928f4a9c514227) )
ROM_REGION( 0x10000, REGION_CPU2, 0 )
ROM_LOAD( "frogger.608", 0x0000, 0x0800, CRC(e8ab0256) SHA1(f090afcfacf5f13cdfa0dfda8e3feb868c6ce8bc) )
ROM_LOAD( "frogger.609", 0x0800, 0x0800, CRC(7380a48f) SHA1(75582a94b696062cbdb66a4c5cf0bc0bb94f81ee) )
ROM_LOAD( "frogger.610", 0x1000, 0x0800, CRC(31d7eb27) SHA1(2e1d34ae4da385fd7cac94707d25eeddf4604e1a) )
ROM_REGION( 0x1000, REGION_GFX1, ROMREGION_DISPOSE )
ROM_LOAD( "frogger.607", 0x0000, 0x0800, CRC(05f7d883) SHA1(78831fd287da18928651a8adb7e578d291493eff) )
ROM_LOAD( "frogger.606", 0x0800, 0x0800, CRC(f524ee30) SHA1(dd768967add61467baa08d5929001f157d6cd911) )
ROM_REGION( 0x0020, REGION_PROMS, 0 )
ROM_LOAD( "pr-91.6l", 0x0000, 0x0020, CRC(413703bf) SHA1(66648b2b28d3dcbda5bdb2605d1977428939dd3c) )
ROM_END
ROM_START( froggrmc )
ROM_REGION( 0x10000, REGION_CPU1, 0 )
ROM_LOAD( "epr-1031.15", 0x0000, 0x1000, CRC(4b7c8d11) SHA1(9200b33cac0ef5a6647c95ebd25237fa62fcdf30) )
ROM_LOAD( "epr-1032.16", 0x1000, 0x1000, CRC(ac00b9d9) SHA1(6414d2aa2c0ccb8cb567ffde3acdb693cfd28dbb) )
ROM_LOAD( "epr-1033.33", 0x2000, 0x1000, CRC(bc1d6fbc) SHA1(c9c040418f0bf7b7fce599592f806e7aaf448c3d) )
ROM_LOAD( "epr-1034.34", 0x3000, 0x1000, CRC(9efe7399) SHA1(77355160169db256f45286e60ebf6a406527d346) )
ROM_REGION( 0x10000, REGION_CPU2, 0 )
ROM_LOAD( "epr-1082.42", 0x0000, 0x1000, CRC(802843c2) SHA1(059b26ddf1cdc8076d160b872f9d50b97af7f316) )
ROM_LOAD( "epr-1035.43", 0x1000, 0x0800, CRC(14e74148) SHA1(0023394e971f191c41ff20b47835f1dafb924d15) )
ROM_REGION( 0x1000, REGION_GFX1, ROMREGION_DISPOSE )
ROM_LOAD( "frogger.607", 0x0000, 0x0800, CRC(05f7d883) SHA1(78831fd287da18928651a8adb7e578d291493eff) )
ROM_LOAD( "epr-1036.1k", 0x0800, 0x0800, CRC(658745f8) SHA1(e4e5c3e011c8a7233a36d29e10e08905873500aa) )
ROM_REGION( 0x0020, REGION_PROMS, 0 )
ROM_LOAD( "pr-91.6l", 0x0000, 0x0020, CRC(413703bf) SHA1(66648b2b28d3dcbda5bdb2605d1977428939dd3c) )
ROM_END
GAME( 1981, frogger, 0, frogger, frogger, frogger, ROT90, "Konami", "Frogger", GAME_SUPPORTS_SAVE )
GAME( 1981, frogseg1, frogger, frogger, frogger, frogger, ROT90, "[Konami] (Sega license)", "Frogger (Sega set 1)", GAME_SUPPORTS_SAVE )
GAME( 1981, frogseg2, frogger, frogger, frogger, frogger, ROT90, "[Konami] (Sega license)", "Frogger (Sega set 2)", GAME_SUPPORTS_SAVE )
GAME( 1981, froggrmc, frogger, froggrmc, froggrmc, froggers, ROT90, "bootleg?", "Frogger (Moon Cresta hardware)", GAME_SUPPORTS_SAVE )

2590
src/mame/drivers/galaxian.c Normal file

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

4857
src/mame/drivers/galdrvr.c Normal file

File diff suppressed because it is too large Load Diff

View File

@ -350,7 +350,7 @@ static ADDRESS_MAP_START( anteatg_writemem, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x2621, 0x2621) AM_WRITE(galaxold_nmi_enable_w)
AM_RANGE(0x2624, 0x2624) AM_WRITE(galaxold_stars_enable_w)
AM_RANGE(0x2647, 0x2647) AM_WRITE(galaxold_flip_screen_y_w)
AM_RANGE(0x2653, 0x2653) AM_WRITE(scramble_background_enable_w)
AM_RANGE(0x2653, 0x2653) AM_WRITE(scrambold_background_enable_w)
AM_RANGE(0x2702, 0x2702) AM_WRITE(galaxold_coin_counter_w)
AM_RANGE(0x2736, 0x2736) AM_WRITE(galaxold_flip_screen_x_w)
AM_RANGE(0x4600, 0x4fff) AM_WRITE(SMH_ROM)
@ -388,7 +388,7 @@ static ADDRESS_MAP_START( anteatgb_writemem, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x1171, 0x1171) AM_WRITE(galaxold_nmi_enable_w)
AM_RANGE(0x1174, 0x1174) AM_WRITE(galaxold_stars_enable_w)
AM_RANGE(0x1177, 0x1177) AM_WRITE(galaxold_flip_screen_y_w)
AM_RANGE(0x1173, 0x1173) AM_WRITE(scramble_background_enable_w)
AM_RANGE(0x1173, 0x1173) AM_WRITE(scrambold_background_enable_w)
AM_RANGE(0x1172, 0x1172) AM_WRITE(galaxold_coin_counter_w)
AM_RANGE(0x1176, 0x1176) AM_WRITE(galaxold_flip_screen_x_w)
AM_RANGE(0x4600, 0x4fff) AM_WRITE(SMH_ROM)
@ -1404,9 +1404,9 @@ static MACHINE_DRIVER_START( type1 )
MDRV_GFXDECODE(scobra)
MDRV_PALETTE_LENGTH(32+64+2+1) /* 32 for characters, 64 for stars, 2 for bullets, 1 for background */
MDRV_PALETTE_INIT(scramble)
MDRV_VIDEO_START(scramble)
MDRV_VIDEO_UPDATE(galaxian)
MDRV_PALETTE_INIT(scrambold)
MDRV_VIDEO_START(scrambold)
MDRV_VIDEO_UPDATE(galaxold)
/* sound hardware */
MDRV_SPEAKER_STANDARD_MONO("mono")
@ -1428,7 +1428,7 @@ static MACHINE_DRIVER_START( armorcar )
/* video hardware */
MDRV_PALETTE_LENGTH(32+64+2) /* 32 for characters, 64 for stars, 2 for bullets */
MDRV_PALETTE_INIT(galaxian)
MDRV_PALETTE_INIT(galaxold)
MDRV_VIDEO_START(theend)
MACHINE_DRIVER_END
@ -1561,9 +1561,9 @@ static MACHINE_DRIVER_START( hustler )
MDRV_GFXDECODE(scobra)
MDRV_PALETTE_LENGTH(32+64+2) /* 32 for characters, 64 for stars, 2 for bullets */
MDRV_PALETTE_INIT(galaxian)
MDRV_VIDEO_START(scramble)
MDRV_VIDEO_UPDATE(galaxian)
MDRV_PALETTE_INIT(galaxold)
MDRV_VIDEO_START(scrambold)
MDRV_VIDEO_UPDATE(galaxold)
/* sound hardware */
MDRV_SPEAKER_STANDARD_MONO("mono")
@ -2221,29 +2221,19 @@ ROM_START( mimonsco )
ROM_END
GAME( 1981, scobra, 0, type1, scobra, scobra, ROT90, "Konami", "Super Cobra", GAME_SUPPORTS_SAVE )
GAME( 1981, scobras, scobra, type1, scobras, scobra, ROT90, "[Konami] (Stern license)", "Super Cobra (Stern)", GAME_SUPPORTS_SAVE )
GAME( 1981, scobrase, scobra, type1, scobras, scobra, ROT90, "[Konami] (Sega license)", "Super Cobra (Sega)", GAME_SUPPORTS_SAVE )
GAME( 1981, scobrab, scobra, type1, scobras, scobra, ROT90, "bootleg", "Super Cobra (bootleg)", GAME_SUPPORTS_SAVE )
GAME( 1981, stratgyx, 0, stratgyx, stratgyx, stratgyx, ROT0, "Konami", "Strategy X", GAME_SUPPORTS_SAVE )
GAME( 1981, stratgys, stratgyx, stratgyx, stratgyx, stratgyx, ROT0, "[Konami] (Stern license)", "Strategy X (Stern)", GAME_SUPPORTS_SAVE )
GAME( 1981, armorcar, 0, armorcar, armorcar, scramble_ppi, ROT90, "Stern", "Armored Car (set 1)", GAME_SUPPORTS_SAVE )
GAME( 1981, armorca2, armorcar, armorcar, armorcar, scramble_ppi, ROT90, "Stern", "Armored Car (set 2)", GAME_SUPPORTS_SAVE )
GAME( 1981, moonwar, 0, moonwar, moonwar, moonwar, ROT90, "Stern", "Moonwar", GAME_SUPPORTS_SAVE )
GAME( 1981, moonwara, moonwar, moonwar, moonwara, moonwar, ROT90, "Stern", "Moonwar (older)", GAME_SUPPORTS_SAVE )
GAME( 1984, spdcoin, 0, type1, spdcoin, scramble_ppi, ROT90, "Stern", "Speed Coin (prototype)", GAME_SUPPORTS_SAVE )
GAME( 1982, darkplnt, 0, darkplnt, darkplnt, darkplnt, ROT180, "Stern", "Dark Planet", GAME_SUPPORTS_SAVE )
GAME( 1982, tazmania, 0, type1, tazmania, scobra, ROT90, "Stern", "Tazz-Mania (set 1)", GAME_SUPPORTS_SAVE )
GAME( 1982, tazmani2, tazmania, type2, tazmania, tazmani2, ROT90, "Stern", "Tazz-Mania (set 2)", GAME_SUPPORTS_SAVE )
GAME( 1982, calipso, 0, calipso, calipso, scobra, ROT90, "[Stern] (Tago license)", "Calipso", GAME_SUPPORTS_SAVE )
GAME( 1982, anteater, 0, type1, anteater, anteater, ROT90, "[Stern] (Tago license)", "Anteater", GAME_SUPPORTS_SAVE )
GAME( 1983, anteatg, anteater, anteatg, anteatg, scramble_ppi, ROT90, "TV-Tuning (F.E.G. license)", "Ameisenbaer (German)", GAME_SUPPORTS_SAVE )
GAME( 1983, anteatgb, anteater, anteatgb, anteatgb, scramble_ppi, ROT90, "Free Enterprise Games", "The Anteater (UK)", GAME_SUPPORTS_SAVE )
GAME( 1982, rescue, 0, rescue, rescue, rescue, ROT90, "Stern", "Rescue", GAME_SUPPORTS_SAVE )
GAME( 1982, aponow, rescue, rescue, rescue, rescue, ROT90, "bootleg", "Apocaljpse Now", GAME_SUPPORTS_SAVE )
GAME( 1983, minefld, 0, minefld, minefld, minefld, ROT90, "Stern", "Minefield", GAME_SUPPORTS_SAVE )
GAME( 1982, losttomb, 0, type1, losttomb, losttomb, ROT90, "Stern", "Lost Tomb (easy)", GAME_SUPPORTS_SAVE )
GAME( 1982, losttmbh, losttomb, type1, losttomb, losttomb, ROT90, "Stern", "Lost Tomb (hard)", GAME_SUPPORTS_SAVE )
GAME( 198?, superbon, 0, type1, superbon, superbon, ROT90, "bootleg", "Super Bond", GAME_WRONG_COLORS | GAME_SUPPORTS_SAVE )
GAME( 1981, hustler, 0, hustler, hustler, hustler, ROT90, "Konami", "Video Hustler", GAME_SUPPORTS_SAVE )
GAME( 1981, billiard, hustler, hustler, hustler, billiard, ROT90, "bootleg", "The Billiards", GAME_SUPPORTS_SAVE )

View File

@ -33,50 +33,6 @@ Notes:
#include "galaxold.h"
//cpu #0 (PC=00003F6C): warning - op-code execute on mapped I/O
extern int monsterz_count;
static READ8_HANDLER( monsterz_prot_r )
{
int pc = activecpu_get_pc();
if(pc != 0xc5e0 && pc != 0xC604 && pc != 0xc62c)
printf("%X\n",pc);
if( !(monsterz_count % 0x200) )
{
UINT8 ret = memory_region(REGION_CPU1)[0x19 - monsterz_count / 0x200];
printf("count = %X\n",monsterz_count );
ret ^= memory_region(REGION_CPU1)[0x100 + monsterz_count / 2];
monsterz_count++;
return ret;
}
else
{
UINT8 ret;
if(monsterz_count & 0x100)
// missing data?
ret = 0;//memory_region(REGION_CPU1)[0xc000 + monsterz_count2+ (monsterz_count / 0x200) * 0x100 + (monsterz_count % 0x200)];
else
ret = memory_region(REGION_CPU1)[0x100 + (monsterz_count / 0x200) * 0x100 + (monsterz_count % 0x200)];
printf("count = %X\n",monsterz_count);
monsterz_count++;
if(monsterz_count == 0x200*9)
{
UINT8 *ROM = memory_region(REGION_CPU1);
memcpy(&ROM[0x3800],&ROM[0xc01f],0x800);
monsterz_count = 0;
}
return ret;
}
}
static ADDRESS_MAP_START( scramble_readmem, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x3fff) AM_READ(SMH_ROM)
@ -379,100 +335,6 @@ static ADDRESS_MAP_START( hunchbks_writemem, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( sfx_readmem, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x3fff) AM_READ(SMH_ROM)
AM_RANGE(0x4000, 0x4bff) AM_READ(SMH_RAM)
AM_RANGE(0x4c00, 0x4fff) AM_READ(galaxold_videoram_r) /* mirror */
AM_RANGE(0x5000, 0x50ff) AM_READ(SMH_RAM)
AM_RANGE(0x7000, 0x7fff) AM_READ(SMH_ROM)
AM_RANGE(0x8100, 0x8103) AM_READ(ppi8255_0_r)
AM_RANGE(0x8200, 0x8203) AM_READ(ppi8255_1_r)
AM_RANGE(0xc000, 0xefff) AM_READ(SMH_ROM)
ADDRESS_MAP_END
static ADDRESS_MAP_START( sfx_writemem, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x3fff) AM_WRITE(SMH_ROM)
AM_RANGE(0x4000, 0x47ff) AM_WRITE(SMH_RAM)
AM_RANGE(0x4800, 0x4bff) AM_WRITE(galaxold_videoram_w) AM_BASE(&galaxold_videoram)
AM_RANGE(0x4c00, 0x4fff) AM_WRITE(galaxold_videoram_w) /* mirror address */
AM_RANGE(0x5000, 0x503f) AM_WRITE(galaxold_attributesram_w) AM_BASE(&galaxold_attributesram)
AM_RANGE(0x5040, 0x505f) AM_WRITE(SMH_RAM) AM_BASE(&galaxold_spriteram) AM_SIZE(&galaxold_spriteram_size)
AM_RANGE(0x5060, 0x507f) AM_WRITE(SMH_RAM) AM_BASE(&galaxold_bulletsram) AM_SIZE(&galaxold_bulletsram_size)
AM_RANGE(0x5080, 0x50ff) AM_WRITE(SMH_RAM)
AM_RANGE(0x6800, 0x6800) AM_WRITE(scramble_background_red_w)
AM_RANGE(0x6801, 0x6801) AM_WRITE(galaxold_nmi_enable_w)
AM_RANGE(0x6802, 0x6802) AM_WRITE(galaxold_coin_counter_w)
AM_RANGE(0x6803, 0x6803) AM_WRITE(scramble_background_blue_w)
AM_RANGE(0x6804, 0x6804) AM_WRITE(galaxold_stars_enable_w)
AM_RANGE(0x6805, 0x6805) AM_WRITE(scramble_background_green_w)
AM_RANGE(0x6806, 0x6806) AM_WRITE(galaxold_flip_screen_x_w)
AM_RANGE(0x6807, 0x6807) AM_WRITE(galaxold_flip_screen_y_w)
AM_RANGE(0x7000, 0x7fff) AM_WRITE(SMH_ROM)
AM_RANGE(0x8100, 0x8103) AM_WRITE(ppi8255_0_w)
AM_RANGE(0x8200, 0x8203) AM_WRITE(ppi8255_1_w)
AM_RANGE(0xc000, 0xefff) AM_WRITE(SMH_ROM)
ADDRESS_MAP_END
static ADDRESS_MAP_START( sfx_sample_readmem, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x5fff) AM_READ(SMH_ROM)
AM_RANGE(0x8000, 0x83ff) AM_READ(SMH_RAM)
ADDRESS_MAP_END
static ADDRESS_MAP_START( sfx_sample_writemem, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x5fff) AM_WRITE(SMH_ROM)
AM_RANGE(0x8000, 0x83ff) AM_WRITE(SMH_RAM)
ADDRESS_MAP_END
static ADDRESS_MAP_START( sfx_sample_readport, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x04, 0x07) AM_READ(ppi8255_2_r)
ADDRESS_MAP_END
static ADDRESS_MAP_START( sfx_sample_writeport, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x04, 0x07) AM_WRITE(ppi8255_2_w)
AM_RANGE(0x10, 0x10) AM_WRITE(DAC_0_signed_data_w)
ADDRESS_MAP_END
static READ8_HANDLER( monsterz_sound_status_r )
{
return 0x80;
}
static ADDRESS_MAP_START( monsterz_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x37ff) AM_ROM
AM_RANGE(0x3800, 0x3fff) AM_RAM
AM_RANGE(0x4000, 0x47ff) AM_RAM
AM_RANGE(0x4800, 0x4bff) AM_READWRITE(galaxold_videoram_r, galaxold_videoram_w) AM_BASE(&galaxold_videoram)
AM_RANGE(0x4c00, 0x4fff) AM_READWRITE(galaxold_videoram_r, galaxold_videoram_w) /* mirror address */
AM_RANGE(0x5000, 0x503f) AM_RAM AM_WRITE(galaxold_attributesram_w) AM_BASE(&galaxold_attributesram)
AM_RANGE(0x5040, 0x505f) AM_RAM AM_BASE(&galaxold_spriteram) AM_SIZE(&galaxold_spriteram_size)
AM_RANGE(0x5060, 0x507f) AM_RAM AM_BASE(&galaxold_bulletsram) AM_SIZE(&galaxold_bulletsram_size)
AM_RANGE(0x7000, 0x7000) AM_READ(watchdog_reset_r)
AM_RANGE(0x8100, 0x8103) AM_READWRITE(ppi8255_0_r, ppi8255_0_w)
AM_RANGE(0x8200, 0x8203) AM_READWRITE(ppi8255_1_r, ppi8255_1_w)
AM_RANGE(0x6800, 0x6800) AM_WRITE(scramble_background_red_w)
AM_RANGE(0x6801, 0x6801) AM_WRITE(galaxold_nmi_enable_w)
AM_RANGE(0x6802, 0x6802) AM_WRITE(galaxold_coin_counter_w)
AM_RANGE(0x6803, 0x6803) AM_WRITE(scramble_background_blue_w)
AM_RANGE(0x6804, 0x6804) AM_WRITE(galaxold_stars_enable_w)
AM_RANGE(0x6805, 0x6805) AM_WRITE(scramble_background_green_w)
AM_RANGE(0x6806, 0x6806) AM_WRITE(galaxold_flip_screen_x_w)
AM_RANGE(0x6807, 0x6807) AM_WRITE(galaxold_flip_screen_y_w)
AM_RANGE(0xc000, 0xd7ff) AM_ROM
AM_RANGE(0xd800, 0xd800) AM_READ(monsterz_prot_r)
ADDRESS_MAP_END
static ADDRESS_MAP_START( monsterz_sound_io_map, ADDRESS_SPACE_IO, 8 )
AM_RANGE(0x04, 0x04) AM_READ(monsterz_sound_status_r)
AM_RANGE(0x10, 0x10) AM_WRITE(AY8910_control_port_0_w)
AM_RANGE(0x20, 0x20) AM_READWRITE(AY8910_read_port_0_r, AY8910_write_port_0_w)
AM_RANGE(0x40, 0x40) AM_WRITE(AY8910_control_port_1_w)
AM_RANGE(0x80, 0x80) AM_READWRITE(AY8910_read_port_1_r, AY8910_write_port_1_w)
ADDRESS_MAP_END
static ADDRESS_MAP_START( mimonscr_readmem, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x3fff) AM_READ(SMH_ROM)
AM_RANGE(0x4000, 0x43ff) AM_READ(galaxold_videoram_r) /* mirror address?, probably not */
@ -551,10 +413,10 @@ static ADDRESS_MAP_START( ad2083_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x6800, 0x6800) AM_WRITE(galaxold_coin_counter_2_w)
AM_RANGE(0x6801, 0x6801) AM_WRITE(galaxold_nmi_enable_w)
AM_RANGE(0x6802, 0x6802) AM_WRITE(galaxold_coin_counter_0_w)
AM_RANGE(0x6803, 0x6803) AM_WRITE(scramble_background_blue_w)
AM_RANGE(0x6803, 0x6803) AM_WRITE(scrambold_background_blue_w)
AM_RANGE(0x6805, 0x6805) AM_WRITE(galaxold_coin_counter_1_w)
AM_RANGE(0x6806, 0x6806) AM_WRITE(scramble_background_red_w)
AM_RANGE(0x6807, 0x6807) AM_WRITE(scramble_background_green_w)
AM_RANGE(0x6806, 0x6806) AM_WRITE(scrambold_background_red_w)
AM_RANGE(0x6807, 0x6807) AM_WRITE(scrambold_background_green_w)
AM_RANGE(0x8000, 0x8000) AM_WRITE(soundlatch_w)
AM_RANGE(0x9000, 0x9000) AM_WRITE(hotshock_sh_irqtrigger_w)
AM_RANGE(0x7000, 0x7000) AM_READ(watchdog_reset_r)
@ -2009,9 +1871,9 @@ static MACHINE_DRIVER_START( scramble )
MDRV_GFXDECODE(scramble)
MDRV_PALETTE_LENGTH(32+64+2+1) /* 32 for characters, 64 for stars, 2 for bullets, 0/1 for background */
MDRV_PALETTE_INIT(scramble)
MDRV_VIDEO_START(scramble)
MDRV_VIDEO_UPDATE(galaxian)
MDRV_PALETTE_INIT(scrambold)
MDRV_VIDEO_START(scrambold)
MDRV_VIDEO_UPDATE(galaxold)
/* sound hardware */
MDRV_SPEAKER_STANDARD_MONO("mono")
@ -2080,86 +1942,11 @@ static MACHINE_DRIVER_START( theend )
/* video hardware */
MDRV_PALETTE_LENGTH(32+64+2+0) /* 32 for characters, 64 for stars, 2 for bullets, 0/1 for background */
MDRV_PALETTE_INIT(galaxian)
MDRV_PALETTE_INIT(galaxold)
MDRV_VIDEO_START(theend)
MACHINE_DRIVER_END
static ADDRESS_MAP_START( frogger_sound_readmem, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x1fff) AM_READ(SMH_ROM)
AM_RANGE(0x4000, 0x43ff) AM_READ(SMH_RAM)
ADDRESS_MAP_END
static ADDRESS_MAP_START( frogger_sound_writemem, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x1fff) AM_WRITE(SMH_ROM)
AM_RANGE(0x4000, 0x43ff) AM_WRITE(SMH_RAM)
AM_RANGE(0x6000, 0x6fff) AM_WRITE(frogger_filter_w)
ADDRESS_MAP_END
static ADDRESS_MAP_START( frogger_sound_readport, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x40, 0x40) AM_READ(AY8910_read_port_0_r)
ADDRESS_MAP_END
static ADDRESS_MAP_START( frogger_sound_writeport, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x40, 0x40) AM_WRITE(AY8910_write_port_0_w)
AM_RANGE(0x80, 0x80) AM_WRITE(AY8910_control_port_0_w)
ADDRESS_MAP_END
static const struct AY8910interface frogger_ay8910_interface =
{
soundlatch_r,
frogger_portB_r
};
static MACHINE_DRIVER_START( froggers )
/* basic machine hardware */
MDRV_IMPORT_FROM(scramble)
MDRV_CPU_MODIFY("audio")
MDRV_CPU_PROGRAM_MAP(frogger_sound_readmem,frogger_sound_writemem)
MDRV_CPU_IO_MAP(frogger_sound_readport,frogger_sound_writeport)
/* video hardware */
MDRV_PALETTE_INIT(frogger)
MDRV_VIDEO_START(froggers)
/* sound hardware */
MDRV_SOUND_MODIFY("8910.1")
MDRV_SOUND_CONFIG(frogger_ay8910_interface)
MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.33)
MDRV_SOUND_REMOVE("8910.2")
MACHINE_DRIVER_END
static MACHINE_DRIVER_START( frogf )
/* basic machine hardware */
MDRV_IMPORT_FROM(scramble)
MDRV_CPU_MODIFY("main")
MDRV_CPU_PROGRAM_MAP(frogf_map,0)
MDRV_CPU_MODIFY("audio")
MDRV_CPU_PROGRAM_MAP(frogger_sound_readmem,frogger_sound_writemem)
MDRV_CPU_IO_MAP(frogger_sound_readport,frogger_sound_writeport)
/* video hardware */
MDRV_PALETTE_INIT(frogger)
MDRV_VIDEO_START(froggers)
/* sound hardware */
MDRV_SOUND_MODIFY("8910.1")
MDRV_SOUND_CONFIG(frogger_ay8910_interface)
MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.33)
MDRV_SOUND_REMOVE("8910.2")
MACHINE_DRIVER_END
static MACHINE_DRIVER_START( mars )
/* basic machine hardware */
@ -2169,7 +1956,7 @@ static MACHINE_DRIVER_START( mars )
/* video hardware */
MDRV_PALETTE_LENGTH(32+64+2+0) /* 32 for characters, 64 for stars, 2 for bullets, 0/1 for background */
MDRV_PALETTE_INIT(galaxian)
MDRV_PALETTE_INIT(galaxold)
MACHINE_DRIVER_END
static MACHINE_DRIVER_START( devilfsh )
@ -2182,7 +1969,7 @@ static MACHINE_DRIVER_START( devilfsh )
/* video hardware */
MDRV_GFXDECODE(devilfsh)
MDRV_PALETTE_LENGTH(32+64+2+0) /* 32 for characters, 64 for stars, 2 for bullets, 0/1 for background */
MDRV_PALETTE_INIT(galaxian)
MDRV_PALETTE_INIT(galaxold)
MACHINE_DRIVER_END
static MACHINE_DRIVER_START( newsin7 )
@ -2195,7 +1982,7 @@ static MACHINE_DRIVER_START( newsin7 )
/* video hardware */
MDRV_GFXDECODE(newsin7)
MDRV_PALETTE_LENGTH(32+64+2+0) /* 32 for characters, 64 for stars, 2 for bullets, 0/1 for background */
MDRV_PALETTE_INIT(galaxian)
MDRV_PALETTE_INIT(galaxold)
MDRV_VIDEO_START(newsin7)
MACHINE_DRIVER_END
@ -2209,7 +1996,7 @@ static MACHINE_DRIVER_START( mrkougar )
/* video hardware */
MDRV_GFXDECODE(mrkougar)
MDRV_PALETTE_LENGTH(32+64+2+0) /* 32 for characters, 64 for stars, 2 for bullets, 0/1 for background */
MDRV_PALETTE_INIT(galaxian)
MDRV_PALETTE_INIT(galaxold)
MACHINE_DRIVER_END
static MACHINE_DRIVER_START( mrkougb )
@ -2221,7 +2008,7 @@ static MACHINE_DRIVER_START( mrkougb )
/* video hardware */
MDRV_PALETTE_LENGTH(32+64+2+0) /* 32 for characters, 64 for stars, 2 for bullets, 0/1 for background */
MDRV_PALETTE_INIT(galaxian)
MDRV_PALETTE_INIT(galaxold)
MACHINE_DRIVER_END
static MACHINE_DRIVER_START( ckongs )
@ -2233,7 +2020,7 @@ static MACHINE_DRIVER_START( ckongs )
/* video hardware */
MDRV_PALETTE_LENGTH(32+64+2+0) /* 32 for characters, 64 for stars, 2 for bullets, 0/1 for background */
MDRV_PALETTE_INIT(galaxian)
MDRV_PALETTE_INIT(galaxold)
MDRV_VIDEO_START(ckongs)
MACHINE_DRIVER_END
@ -2247,11 +2034,11 @@ static MACHINE_DRIVER_START( hotshock )
MDRV_CPU_MODIFY("audio")
MDRV_CPU_IO_MAP(hotshock_sound_readport,hotshock_sound_writeport)
MDRV_MACHINE_RESET(galaxian)
MDRV_MACHINE_RESET(galaxold)
/* video hardware */
MDRV_PALETTE_LENGTH(32+64+2+0) /* 32 for characters, 64 for stars, 2 for bullets, 0/1 for background */
MDRV_PALETTE_INIT(galaxian)
MDRV_PALETTE_INIT(galaxold)
MDRV_VIDEO_START(pisces)
MDRV_SOUND_MODIFY("8910.1")
@ -2269,89 +2056,15 @@ static MACHINE_DRIVER_START( cavelon )
/* video hardware */
MDRV_PALETTE_LENGTH(32+64+2+0) /* 32 for characters, 64 for stars, 2 for bullets, 0/1 for background */
MDRV_PALETTE_INIT(galaxian)
MDRV_PALETTE_INIT(galaxold)
MDRV_VIDEO_START(ckongs)
MACHINE_DRIVER_END
static MACHINE_DRIVER_START( sfx )
/* basic machine hardware */
MDRV_IMPORT_FROM(scramble)
MDRV_CPU_MODIFY("main")
MDRV_CPU_PROGRAM_MAP(sfx_readmem,sfx_writemem)
MDRV_CPU_ADD(Z80, 14318000/8) /* 1.78975 MHz */
/* audio CPU */
MDRV_CPU_PROGRAM_MAP(sfx_sample_readmem,sfx_sample_writemem)
MDRV_CPU_IO_MAP(sfx_sample_readport,sfx_sample_writeport)
MDRV_MACHINE_RESET(sfx)
/* video hardware */
MDRV_SCREEN_MODIFY("main")
MDRV_SCREEN_VISIBLE_AREA(2*8, 30*8-1, 2*8, 30*8-1)
MDRV_PALETTE_LENGTH(32+64+2+8) /* 32 for characters, 64 for stars, 2 for bullets, 8 for background */
MDRV_GFXDECODE(sfx)
MDRV_PALETTE_INIT(turtles)
MDRV_VIDEO_START(sfx)
/* sound hardware */
MDRV_SOUND_MODIFY("8910.1")
MDRV_SOUND_CONFIG(sfx_ay8910_interface_1)
MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.16)
MDRV_SOUND_MODIFY("8910.2")
MDRV_SOUND_CONFIG(scramble_ay8910_interface_2)
MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.16)
MDRV_SOUND_ADD(DAC, 0)
MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
MACHINE_DRIVER_END
static MACHINE_DRIVER_START( monsterz )
/* basic machine hardware */
MDRV_IMPORT_FROM(scramble)
MDRV_CPU_MODIFY("main")
MDRV_CPU_PROGRAM_MAP(monsterz_map,0)
MDRV_CPU_PERIODIC_INT(irq0_line_hold,16*4) //?
MDRV_CPU_MODIFY("audio")
MDRV_CPU_IO_MAP(monsterz_sound_io_map,0)
MDRV_CPU_ADD(Z80, 14318000/8) /* 1.78975 MHz */
/* audio CPU */
MDRV_CPU_PROGRAM_MAP(sfx_sample_readmem,sfx_sample_writemem)
MDRV_CPU_IO_MAP(sfx_sample_readport,sfx_sample_writeport)
MDRV_MACHINE_RESET(monsterz)
/* video hardware */
MDRV_SCREEN_MODIFY("main")
MDRV_SCREEN_VISIBLE_AREA(2*8, 30*8-1, 2*8, 30*8-1)
MDRV_PALETTE_LENGTH(32+64+2+8) /* 32 for characters, 64 for stars, 2 for bullets, 8 for background */
MDRV_GFXDECODE(sfx)
MDRV_PALETTE_INIT(turtles)
MDRV_VIDEO_START(sfx)
/* sound hardware */
MDRV_SOUND_MODIFY("8910.1")
MDRV_SOUND_CONFIG(sfx_ay8910_interface_1)
MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.16)
MDRV_SOUND_MODIFY("8910.2")
MDRV_SOUND_CONFIG(scramble_ay8910_interface_2)
MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.16)
MDRV_SOUND_ADD(DAC, 0)
MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
MACHINE_DRIVER_END
static MACHINE_DRIVER_START( mimonscr )
/* basic machine hardware */
@ -2376,7 +2089,7 @@ static MACHINE_DRIVER_START( triplep )
/* video hardware */
MDRV_PALETTE_LENGTH(32+64+2+0) /* 32 for characters, 64 for stars, 2 for bullets */
MDRV_PALETTE_INIT(galaxian)
MDRV_PALETTE_INIT(galaxold)
/* sound hardware */
MDRV_SOUND_MODIFY("8910.1")
@ -2414,7 +2127,7 @@ static MACHINE_DRIVER_START( hunchbks )
/* video hardware */
MDRV_PALETTE_LENGTH(32+64+2+0) /* 32 for characters, 64 for stars, 2 for bullets */
MDRV_PALETTE_INIT(galaxian)
MDRV_PALETTE_INIT(galaxold)
MACHINE_DRIVER_END
static MACHINE_DRIVER_START( hncholms )
@ -2455,7 +2168,7 @@ static MACHINE_DRIVER_START( ad2083 )
MDRV_CPU_ADD(Z80, 18432000/6) /* 3.072 MHz */
MDRV_CPU_PROGRAM_MAP(ad2083_map,0)
MDRV_MACHINE_RESET(galaxian)
MDRV_MACHINE_RESET(galaxold)
/* video hardware */
MDRV_SCREEN_ADD("main", RASTER)
@ -2470,7 +2183,7 @@ static MACHINE_DRIVER_START( ad2083 )
MDRV_PALETTE_INIT(turtles)
MDRV_VIDEO_START(ad2083)
MDRV_VIDEO_UPDATE(galaxian)
MDRV_VIDEO_UPDATE(galaxold)
/* sound hardware */
@ -2671,72 +2384,6 @@ ROM_START( theends )
ROM_LOAD( "6331-1j.86", 0x0000, 0x0020, CRC(24652bc4) SHA1(d89575f3749c75dc963317fe451ffeffd9856e4d) )
ROM_END
ROM_START( froggers )
ROM_REGION( 0x10000, REGION_CPU1, 0 )
ROM_LOAD( "vid_d2.bin", 0x0000, 0x0800, CRC(c103066e) SHA1(8c2d4c825e9c4180fe70b0db18a547dc3ddc3c2c) )
ROM_LOAD( "vid_e2.bin", 0x0800, 0x0800, CRC(f08bc094) SHA1(23ad1e57f244d6b63fd9640249dcb1eeafb8206e) )
ROM_LOAD( "vid_f2.bin", 0x1000, 0x0800, CRC(637a2ff8) SHA1(e9b9fc692ca5d8deb9cd30d9d73ad25c8d8bafe1) )
ROM_LOAD( "vid_h2.bin", 0x1800, 0x0800, CRC(04c027a5) SHA1(193550731513c02cad464661a1ceb230819ca70f) )
ROM_LOAD( "vid_j2.bin", 0x2000, 0x0800, CRC(fbdfbe74) SHA1(48d5d1247d09eaea2a9a29f4ed6543d0411597aa) )
ROM_LOAD( "vid_l2.bin", 0x2800, 0x0800, CRC(8a4389e1) SHA1(b2c74afb93927dac0d8bb24e02e0b2a069f2d3c8) )
ROM_REGION( 0x10000, REGION_CPU2, 0 )
ROM_LOAD( "frogger.608", 0x0000, 0x0800, CRC(e8ab0256) SHA1(f090afcfacf5f13cdfa0dfda8e3feb868c6ce8bc) )
ROM_LOAD( "frogger.609", 0x0800, 0x0800, CRC(7380a48f) SHA1(75582a94b696062cbdb66a4c5cf0bc0bb94f81ee) )
ROM_LOAD( "frogger.610", 0x1000, 0x0800, CRC(31d7eb27) SHA1(2e1d34ae4da385fd7cac94707d25eeddf4604e1a) )
ROM_REGION( 0x1000, REGION_GFX1, ROMREGION_DISPOSE )
ROM_LOAD( "frogger.607", 0x0000, 0x0800, CRC(05f7d883) SHA1(78831fd287da18928651a8adb7e578d291493eff) )
ROM_LOAD( "epr-1036.1k", 0x0800, 0x0800, CRC(658745f8) SHA1(e4e5c3e011c8a7233a36d29e10e08905873500aa) )
ROM_REGION( 0x0020, REGION_PROMS, 0 )
ROM_LOAD( "pr-91.6l", 0x0000, 0x0020, CRC(413703bf) SHA1(66648b2b28d3dcbda5bdb2605d1977428939dd3c) )
ROM_END
ROM_START( frogf )
ROM_REGION( 0x10000, REGION_CPU1, 0 )
ROM_LOAD( "6.bin", 0x0000, 0x1000, CRC(8ff0a973) SHA1(adb1c28617d915fbcfa9190bd8589a56a8858e25) )
ROM_LOAD( "7.bin", 0x1000, 0x1000, CRC(3087bb4b) SHA1(3fe1f68a2ad12b1cadba89d99afe574cf5342d81) )
ROM_LOAD( "8.bin", 0x2000, 0x1000, CRC(c3869d12) SHA1(7bd95c12fc1fe1a3cfc0140b64cf76fa57aa3fb4) )
ROM_REGION( 0x10000, REGION_CPU2, 0 )
ROM_LOAD( "frogger.608", 0x0000, 0x0800, CRC(e8ab0256) SHA1(f090afcfacf5f13cdfa0dfda8e3feb868c6ce8bc) )
ROM_LOAD( "frogger.609", 0x0800, 0x0800, CRC(7380a48f) SHA1(75582a94b696062cbdb66a4c5cf0bc0bb94f81ee) )
ROM_LOAD( "frogger.610", 0x1000, 0x0800, CRC(31d7eb27) SHA1(2e1d34ae4da385fd7cac94707d25eeddf4604e1a) )
ROM_REGION( 0x1000, REGION_GFX1, ROMREGION_DISPOSE )
ROM_LOAD( "frogger.607", 0x0000, 0x0800, CRC(05f7d883) SHA1(78831fd287da18928651a8adb7e578d291493eff) )
ROM_LOAD( "epr-1036.1k", 0x0800, 0x0800, CRC(658745f8) SHA1(e4e5c3e011c8a7233a36d29e10e08905873500aa) )
ROM_REGION( 0x0020, REGION_PROMS, 0 )
ROM_LOAD( "pr-91.6l", 0x0000, 0x0020, CRC(413703bf) SHA1(66648b2b28d3dcbda5bdb2605d1977428939dd3c) )
ROM_END
ROM_START( amidars )
ROM_REGION( 0x10000, REGION_CPU1, 0 )
ROM_LOAD( "am2d", 0x0000, 0x0800, CRC(24b79547) SHA1(eca735c6a35561a9a6ba8a20dca1e1c78ed073fc) )
ROM_LOAD( "am2e", 0x0800, 0x0800, CRC(4c64161e) SHA1(5b2e49ff915295617671b13f15b566046a5dbc15) )
ROM_LOAD( "am2f", 0x1000, 0x0800, CRC(b3987a72) SHA1(1d72e9ae3005029628c6f9beb6ca65afcb1f7893) )
ROM_LOAD( "am2h", 0x1800, 0x0800, CRC(29873461) SHA1(7d0ee9a82f02163b4cc6a7097e88ae34e96ebf58) )
ROM_LOAD( "am2j", 0x2000, 0x0800, CRC(0fdd54d8) SHA1(c32fdc8e292d91159e6c80c7033abea6404a4f2c) )
ROM_LOAD( "am2l", 0x2800, 0x0800, CRC(5382f7ed) SHA1(425ec2c2caf404fc8ab13ee38d6567413022e1a1) )
ROM_LOAD( "am2m", 0x3000, 0x0800, CRC(1d7109e9) SHA1(e0d24475547bbe5a94b45be6abefb84ad84d2534) )
ROM_LOAD( "am2p", 0x3800, 0x0800, CRC(c9163ac6) SHA1(46d757180426b71c827d14a35824a248f2c787b6) )
ROM_REGION( 0x10000, REGION_CPU2, 0 )
ROM_LOAD( "amidarus.5c", 0x0000, 0x1000, CRC(8ca7b750) SHA1(4f4c2915503b85abe141d717fd254ee10c9da99e) )
ROM_LOAD( "amidarus.5d", 0x1000, 0x1000, CRC(9b5bdc0a) SHA1(84d953618c8bf510d23b42232a856ac55f1baff5) )
ROM_REGION( 0x1000, REGION_GFX1, ROMREGION_DISPOSE )
ROM_LOAD( "2716.a6", 0x0000, 0x0800, CRC(2082ad0a) SHA1(c6014d9575e92adf09b0961c2158a779ebe940c4) ) /* Same graphics ROMs as Amigo */
ROM_LOAD( "2716.a5", 0x0800, 0x0800, CRC(3029f94f) SHA1(3b432b42e79f8b0a7d65e197f373a04e3c92ff20) )
ROM_REGION( 0x0020, REGION_PROMS, 0 )
ROM_LOAD( "amidar.clr", 0x0000, 0x0020, CRC(f940dcc3) SHA1(1015e56f37c244a850a8f4bf0e36668f047fd46d) )
ROM_END
ROM_START( triplep )
ROM_REGION( 0x10000, REGION_CPU1, 0 )
ROM_LOAD( "triplep.2g", 0x0000, 0x1000, CRC(c583a93d) SHA1(2bd4a02f945d64ef3ff814d0b8cbf32380d3f790) )
@ -3098,37 +2745,6 @@ ROM_START( cavelon )
ROM_LOAD( "cavelon.clr", 0x0000, 0x0020, CRC(d133356b) SHA1(58db4013a9ad77107f0d462c96363d7c38d86fa2) )
ROM_END
ROM_START( sfx )
ROM_REGION( 0x10000, REGION_CPU1, 0 )
ROM_LOAD( "sfx_b-0.1j", 0x0000, 0x1000, CRC(e5bc6952) SHA1(7bfb772418d738d3c49fd59c0bfc04590945977a) )
ROM_CONTINUE( 0xe000, 0x1000 )
ROM_LOAD( "1.1c", 0x1000, 0x1000, CRC(1b3c48e7) SHA1(2f245aaf9b4bb5d949aae18ee89a0be639e7b2df) )
ROM_LOAD( "22.1d", 0x2000, 0x1000, CRC(ed44950d) SHA1(f8c54ff89ac461171df951d703d5571be1b8da38) )
ROM_LOAD( "23.1e", 0x3000, 0x1000, CRC(f44a3ca0) SHA1(3917ea960329a06d3d0c447cb6a4ba710fb7ca92) )
ROM_LOAD( "27.1a", 0x7000, 0x1000, CRC(ed86839f) SHA1(a0d8c941a6e01058eab66d5da9b49b6b5695b981) )
ROM_LOAD( "24.1g", 0xc000, 0x1000, CRC(e6d7dc74) SHA1(c1e6d9598fb837775ee6550fea3cd4910572615e) )
ROM_LOAD( "5.1h", 0xd000, 0x1000, CRC(d1e8d390) SHA1(f8fe9f69e6500fbcf25f8151c1070d9a1a20a38c) )
ROM_REGION( 0x10000, REGION_CPU2, 0 )
ROM_LOAD( "5.5j", 0x0000, 0x1000, CRC(59028fb6) SHA1(94105b5b03c81a948a409f7ea20312bb9c79c150) )
ROM_LOAD( "6.6j", 0x1000, 0x1000, CRC(5427670f) SHA1(ffc3f7186d0319f0fd7ed25eb97bb0db7bc107c6) )
ROM_REGION( 0x10000, REGION_CPU3, 0 ) /* 64k for the sample CPU */
ROM_LOAD( "1.1j", 0x0000, 0x1000, CRC(2f172c58) SHA1(4706d55fcfad4d5a87d96a0a0187f59997ef9720) )
ROM_LOAD( "2.2j", 0x1000, 0x1000, CRC(a6ad2f6b) SHA1(14d1a93e507c349b14a1b26408cce23f089fa33c) )
ROM_LOAD( "3.3j", 0x2000, 0x1000, CRC(fa1274fa) SHA1(e98cb602b265b209eaa4a9b3972e47c869ff863b) )
ROM_LOAD( "4.4j", 0x3000, 0x1000, CRC(1cd33f3a) SHA1(cf9248fd6cb56ec81d354afe032a2dea810e834b) )
ROM_LOAD( "10.3h", 0x4000, 0x1000, CRC(b833a15b) SHA1(0d21aaa0ca5ccba89118b205a6b3b36b15663c47) )
ROM_LOAD( "11.4h", 0x5000, 0x1000, CRC(cbd76ec2) SHA1(9434350ee93ca71efe78018b69913386353306ff) )
ROM_REGION( 0x2000, REGION_GFX1, ROMREGION_DISPOSE )
ROM_LOAD( "28.5a", 0x0000, 0x1000, CRC(d73a8252) SHA1(59d14f41f1a806f98ee33596b84fe5aefe606944) )
ROM_LOAD( "29.5c", 0x1000, 0x1000, CRC(1401ccf2) SHA1(5762eafd9f402330e1d4ac677f46595087716c47) )
ROM_REGION( 0x0020, REGION_PROMS, 0 )
ROM_LOAD( "6331.9g", 0x0000, 0x0020, CRC(ca1d9ccd) SHA1(27124759a06497c1bc1a64b6d3faa6ba924a8447) )
ROM_END
ROM_START( skelagon )
ROM_REGION( 0x10000, REGION_CPU1, 0 )
/* first half of 36.bin is missing */
@ -3160,50 +2776,6 @@ ROM_START( skelagon )
ROM_LOAD( "6331.9g", 0x0000, 0x0020, CRC(ca1d9ccd) SHA1(27124759a06497c1bc1a64b6d3faa6ba924a8447) )
ROM_END
/*
Monster Zero
CPU: Z80 (x3)
Sound: AY-3-8910 (x2)
Other: 8255 (x3)
RAM: 2114 (x2), 2114 (x2), TMM2016P, TMM314A (x4), MPB8216 (x2), MPB8216 (x2), 2114 (x2), TMM314A (x2), D2125A (x5)
PAL: 16R8C (protected x2)
PROM: 82S123
X1: 1431818
X2: 16000
*/
ROM_START( monsterz )
ROM_REGION( 0x10000, REGION_CPU1, 0 )
ROM_LOAD( "b-1e.a1", 0x0000, 0x1000, CRC(97886542) SHA1(01f4f9bd55f9eae28162cbb22a26f7cda22cd3f3) )
ROM_LOAD( "b-2e.c1", 0x1000, 0x1000, CRC(184ffcb4) SHA1(829d6ca13773aba7c3a81e122171befbe3666110) )
ROM_LOAD( "b-3e.d1", 0x2000, 0x1000, CRC(b7b10ac7) SHA1(51d544d4db456df756a95d7f1853fffed9259647) )
ROM_LOAD( "b-4e.e1", 0x3000, 0x1000, CRC(fb02c736) SHA1(24466116dd07b856b1afff62b8312c67ff466b95) )
ROM_LOAD( "b-5e.g1", 0xc000, 0x1000, CRC(b2788ab9) SHA1(eb1a6b41f4c7a243481bfccf2b068ce1bc292366) )
ROM_LOAD( "b-6e.h1", 0xd000, 0x1000, CRC(77d7aa8d) SHA1(62aaf582ba55f7b21f6cf13b4fb6c2c54bb729f5) )
ROM_REGION( 0x10000, REGION_CPU2, 0 )
ROM_LOAD( "a-1e.k1", 0x0000, 0x1000, CRC(b88ba44e) SHA1(85c141fb411d541b1e20412f5fefd18395f635ae) )
ROM_LOAD( "a-2.k2", 0x1000, 0x1000, CRC(8913c94e) SHA1(6c4fe065217a234d45761f8ad4d2c4e7078a0abd) )
ROM_LOAD( "a-3e.k3", 0x2000, 0x1000, CRC(a8fa5095) SHA1(5cabe5497a79a0c43e78a84ae87c824af60a2a3f) )
ROM_LOAD( "a-4.k4", 0x3000, 0x1000, CRC(93f81317) SHA1(167708be94cb9a47290067a20bc5ff6f018b93b6) )
ROM_REGION( 0x10000, REGION_CPU3, 0 ) /* 64k for the sample CPU */
ROM_LOAD( "a-5e.k5", 0x0000, 0x1000, CRC(b5bcdb4e) SHA1(db0965e5636e0f4e9cd4f4a7d808c413ecf733db) )
ROM_LOAD( "a-6.k6", 0x1000, 0x1000, CRC(24832b2e) SHA1(2a67888e86ce1a3182303e841513ba2a07977359) )
ROM_LOAD( "a-7e.k7", 0x2000, 0x1000, CRC(20ebea81) SHA1(473c688365b256d8593663ff95768f4a5bb1289d) )
// 0x3000 empty ?
ROM_LOAD( "a-8.k8", 0x4000, 0x1000, CRC(b833a15b) SHA1(0d21aaa0ca5ccba89118b205a6b3b36b15663c47) )
ROM_LOAD( "a-9.k9", 0x5000, 0x1000, CRC(cbd76ec2) SHA1(9434350ee93ca71efe78018b69913386353306ff) )
ROM_REGION( 0x2000, REGION_GFX1, ROMREGION_DISPOSE )
ROM_LOAD( "b-7e.a5", 0x0000, 0x1000, CRC(ddd4158d) SHA1(9701e2d8a0226455dfbed650e58bb4be05918fe8) )
ROM_LOAD( "b-8e.c5", 0x1000, 0x1000, CRC(b1331b4c) SHA1(fa1af406ecd6919b4846aea68d3edb70106f9273) )
ROM_REGION( 0x0020, REGION_PROMS, 0 )
ROM_LOAD( "prom.g9", 0x0000, 0x0020, CRC(b7ea00d7) SHA1(f658c6ac8123ae1e6b68ae513cc02c4d9d2b4e47) )
ROM_END
ROM_START( mimonscr )
ROM_REGION( 0x10000, REGION_CPU1, 0 )
ROM_LOAD( "mm1", 0x0000, 0x1000, CRC(0399a0c4) SHA1(8314124f9b535ce531663625d19cd3a76782ed3b) )
@ -3355,17 +2927,6 @@ ROM_START( turpins )
ROM_LOAD( "turtles.clr", 0x0000, 0x0020, CRC(f3ef02dd) SHA1(09fd795170d7d30f101d579f57553da5ff3800ab) )
ROM_END
GAME( 1981, scramble, 0, fscramble,scramble, scramble, ROT90, "Konami", "Scramble", GAME_SUPPORTS_SAVE )
GAME( 1981, scrambls, scramble, fscramble,scramble, scrambls, ROT90, "[Konami] (Stern license)", "Scramble (Stern)", GAME_SUPPORTS_SAVE )
GAME( 1981, explorer, scramble, explorer, explorer, 0, ROT90, "bootleg", "Explorer", GAME_SUPPORTS_SAVE )
GAME( 1981, strfbomb, scramble, scramble, strfbomb, scramble, ROT90, "Omni", "Strafe Bomb", GAME_SUPPORTS_SAVE )
GAME( 1981, atlantis, 0, scramble, atlantis, atlantis, ROT90, "Comsoft", "Battle of Atlantis (set 1)", GAME_SUPPORTS_SAVE )
GAME( 1981, atlants2, atlantis, scramble, atlantis, atlantis, ROT90, "Comsoft", "Battle of Atlantis (set 2)", GAME_SUPPORTS_SAVE )
GAME( 1980, theend, 0, theend, theend, theend, ROT90, "Konami", "The End", GAME_SUPPORTS_SAVE )
GAME( 1980, theends, theend, theend, theend, theend, ROT90, "[Konami] (Stern license)", "The End (Stern)", GAME_SUPPORTS_SAVE )
GAME( 1981, froggers, frogger, froggers, froggers, froggers, ROT90, "bootleg", "Frog", GAME_SUPPORTS_SAVE )
GAME( 1981, frogf, frogger, frogf, froggers, froggers, ROT90, "Falcon", "Frogger (Falcon bootleg)", GAME_SUPPORTS_SAVE )
GAME( 1982, amidars, amidar, scramble, amidars, atlantis, ROT90, "Konami", "Amidar (Scramble hardware)", GAME_SUPPORTS_SAVE )
GAME( 1982, triplep, 0, triplep, triplep, scramble_ppi, ROT90, "KKI", "Triple Punch", GAME_SUPPORTS_SAVE )
GAME( 1982, knockout, triplep, triplep, triplep, scramble_ppi, ROT90, "KKK", "Knock Out!!", GAME_SUPPORTS_SAVE )
GAME( 1981, mariner, 0, mariner, scramble, mariner, ROT90, "Amenip", "Mariner", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE)
@ -3383,12 +2944,6 @@ GAME( 1982, conquer, 0, hotshock, hotshock, 0, ROT90, "<unkno
GAME( 1983, hunchbks, hunchbak, hunchbks, hunchbks, scramble_ppi, ROT90, "Century Electronics", "Hunchback (Scramble hardware)", GAME_SUPPORTS_SAVE )
GAME( 1984, hncholms, huncholy, hncholms, hncholms, scramble_ppi, ROT90, "Century Electronics", "Hunchback Olympic (Scramble hardware)", GAME_SUPPORTS_SAVE )
GAME( 1983, cavelon, 0, cavelon, cavelon, cavelon, ROT90, "Jetsoft", "Cavelon", GAME_SUPPORTS_SAVE )
GAME( 1983, sfx, 0, sfx, sfx, sfx, ORIENTATION_FLIP_X, "Nichibutsu", "SF-X", GAME_SUPPORTS_SAVE )
GAME( 1983, skelagon, sfx, sfx, sfx, sfx, ORIENTATION_FLIP_X, "Nichibutsu USA", "Skelagon", GAME_NOT_WORKING | GAME_SUPPORTS_SAVE)
GAME( 198?, monsterz, 0, monsterz, sfx, monsterz, ORIENTATION_FLIP_X, "Nihon", "Monster Zero", GAME_UNEMULATED_PROTECTION | GAME_IMPERFECT_SOUND | GAME_NOT_WORKING )
GAME( 198?, mimonscr, mimonkey, mimonscr, mimonscr, mimonscr, ROT90, "bootleg", "Mighty Monkey (bootleg on Scramble hardware)", GAME_SUPPORTS_SAVE )
GAME( 1982, scorpion, 0, scorpion, scorpion, scorpion, ROT90, "Zaccaria", "Scorpion (set 1)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE)
GAME( 1982, scrpiona, scorpion, scorpion, scorpion, scorpion, ROT90, "Zaccaria", "Scorpion (set 2)", GAME_NOT_WORKING | GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE)
GAME( 1982, scrpionb, scorpion, scorpion, scorpion, scorpion, ROT90, "Zaccaria", "Scorpion (set 3)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE)
GAME( 1983, ad2083, 0, ad2083, ad2083, ad2083, ROT90, "Midcoin", "A. D. 2083", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE)
GAME( 1981, turpins, turtles, turpins, turpins, 0, ROT90, "[Sega] (bootleg)", "Turpin (bootleg on Scramble hardware)", GAME_NO_SOUND | GAME_SUPPORTS_SAVE ) // haven't hooked up the sound CPU yet

View File

@ -2,7 +2,8 @@
DRIVER_INIT( cclimber );
DRIVER_INIT( cclimbrj );
DRIVER_INIT( mshuttle );
void cclimbrj_decode(void);
void mshuttle_decode(void);
DRIVER_INIT( cannonb );
DRIVER_INIT( cannonb2 );
DRIVER_INIT( ckongb );

View File

@ -0,0 +1,128 @@
/***************************************************************************
Galaxian hardware family
***************************************************************************/
/* we scale horizontally by 3 to render stars correctly */
#define GALAXIAN_XSCALE 3
/* master clocks */
#define GALAXIAN_MASTER_CLOCK (18432000)
#define GALAXIAN_PIXEL_CLOCK (GALAXIAN_XSCALE*GALAXIAN_MASTER_CLOCK/3)
/* H counts from 128->511, HBLANK starts at 130 and ends at 250 */
/* we normalize this here so that we count 0->383 with HBLANK */
/* from 264-383 */
#define GALAXIAN_HTOTAL (384*GALAXIAN_XSCALE)
#define GALAXIAN_HBEND (0*GALAXIAN_XSCALE)
//#define GALAXIAN_H0START (6*GALAXIAN_XSCALE)
//#define GALAXIAN_HBSTART (264*GALAXIAN_XSCALE)
#define GALAXIAN_H0START (0*GALAXIAN_XSCALE)
#define GALAXIAN_HBSTART (256*GALAXIAN_XSCALE)
#define GALAXIAN_VTOTAL (264)
#define GALAXIAN_VBEND (16)
#define GALAXIAN_VBSTART (224+16)
/*----------- defined in video/galaxian.c -----------*/
extern UINT8 galaxian_frogger_adjust;
extern UINT8 galaxian_sfx_tilemap;
PALETTE_INIT( galaxian );
VIDEO_START( galaxian );
VIDEO_UPDATE( galaxian );
WRITE8_HANDLER( galaxian_videoram_w );
WRITE8_HANDLER( galaxian_objram_w );
WRITE8_HANDLER( galaxian_flip_screen_x_w );
WRITE8_HANDLER( galaxian_flip_screen_y_w );
WRITE8_HANDLER( galaxian_flip_screen_xy_w );
WRITE8_HANDLER( galaxian_stars_enable_w );
WRITE8_HANDLER( scramble_background_enable_w );
WRITE8_HANDLER( scramble_background_red_w );
WRITE8_HANDLER( scramble_background_green_w );
WRITE8_HANDLER( scramble_background_blue_w );
WRITE8_HANDLER( galaxian_gfxbank_w );
TIMER_CALLBACK( galaxian_stars_blink_timer );
/* video extension callbacks */
typedef void (*galaxian_extend_tile_info_func)(UINT16 *code, UINT8 *color, UINT8 attrib, UINT8 x);
typedef void (*galaxian_extend_sprite_info_func)(const UINT8 *base, UINT8 *sx, UINT8 *sy, UINT8 *flipx, UINT8 *flipy, UINT16 *code, UINT8 *color);
typedef void (*galaxian_draw_bullet_func)(running_machine *machine, bitmap_t *bitmap, const rectangle *cliprect, int offs, int x, int y);
typedef void (*galaxian_draw_background_func)(running_machine *machine, bitmap_t *bitmap, const rectangle *cliprect);
extern galaxian_extend_tile_info_func galaxian_extend_tile_info_ptr;
extern galaxian_extend_sprite_info_func galaxian_extend_sprite_info_ptr;
extern galaxian_draw_bullet_func galaxian_draw_bullet_ptr;
extern galaxian_draw_background_func galaxian_draw_background_ptr;
/* special purpose background rendering */
void galaxian_draw_background(running_machine *machine, bitmap_t *bitmap, const rectangle *cliprect);
void frogger_draw_background(running_machine *machine, bitmap_t *bitmap, const rectangle *cliprect);
void amidar_draw_background(running_machine *machine, bitmap_t *bitmap, const rectangle *cliprect);
void turtles_draw_background(running_machine *machine, bitmap_t *bitmap, const rectangle *cliprect);
void scramble_draw_background(running_machine *machine, bitmap_t *bitmap, const rectangle *cliprect);
void jumpbug_draw_background(running_machine *machine, bitmap_t *bitmap, const rectangle *cliprect);
/* special purpose bullet rendering */
void galaxian_draw_bullet(running_machine *machine, bitmap_t *bitmap, const rectangle *cliprect, int offs, int x, int y);
void mshuttle_draw_bullet(running_machine *machine, bitmap_t *bitmap, const rectangle *cliprect, int offs, int x, int y);
void scramble_draw_bullet(running_machine *machine, bitmap_t *bitmap, const rectangle *cliprect, int offs, int x, int y);
void theend_draw_bullet(running_machine *machine, bitmap_t *bitmap, const rectangle *cliprect, int offs, int x, int y);
/* generic extensions */
void upper_extend_tile_info(UINT16 *code, UINT8 *color, UINT8 attrib, UINT8 x);
void upper_extend_sprite_info(const UINT8 *base, UINT8 *sx, UINT8 *sy, UINT8 *flipx, UINT8 *flipy, UINT16 *code, UINT8 *color);
/* Frogger extensions */
void frogger_extend_tile_info(UINT16 *code, UINT8 *color, UINT8 attrib, UINT8 x);
void frogger_extend_sprite_info(const UINT8 *base, UINT8 *sx, UINT8 *sy, UINT8 *flipx, UINT8 *flipy, UINT16 *code, UINT8 *color);
/* Ghostmuncher Galaxian extensions */
void gmgalax_extend_tile_info(UINT16 *code, UINT8 *color, UINT8 attrib, UINT8 x);
void gmgalax_extend_sprite_info(const UINT8 *base, UINT8 *sx, UINT8 *sy, UINT8 *flipx, UINT8 *flipy, UINT16 *code, UINT8 *color);
/* Pisces extensions */
void pisces_extend_tile_info(UINT16 *code, UINT8 *color, UINT8 attrib, UINT8 x);
void pisces_extend_sprite_info(const UINT8 *base, UINT8 *sx, UINT8 *sy, UINT8 *flipx, UINT8 *flipy, UINT16 *code, UINT8 *color);
/* Batman Part 2 extensions */
void batman2_extend_tile_info(UINT16 *code, UINT8 *color, UINT8 attrib, UINT8 x);
void batman2_extend_sprite_info(const UINT8 *base, UINT8 *sx, UINT8 *sy, UINT8 *flipx, UINT8 *flipy, UINT16 *code, UINT8 *color);
/* Moon Cresta extensions */
void mooncrst_extend_tile_info(UINT16 *code, UINT8 *color, UINT8 attrib, UINT8 x);
void mooncrst_extend_sprite_info(const UINT8 *base, UINT8 *sx, UINT8 *sy, UINT8 *flipx, UINT8 *flipy, UINT16 *code, UINT8 *color);
/* Moon Quasar extensions */
void moonqsr_extend_tile_info(UINT16 *code, UINT8 *color, UINT8 attrib, UINT8 x);
void moonqsr_extend_sprite_info(const UINT8 *base, UINT8 *sx, UINT8 *sy, UINT8 *flipx, UINT8 *flipy, UINT16 *code, UINT8 *color);
/* Moon Shuttle extensions */
void mshuttle_extend_tile_info(UINT16 *code, UINT8 *color, UINT8 attrib, UINT8 x);
void mshuttle_extend_sprite_info(const UINT8 *base, UINT8 *sx, UINT8 *sy, UINT8 *flipx, UINT8 *flipy, UINT16 *code, UINT8 *color);
/* Jumpbug extensions */
void jumpbug_extend_tile_info(UINT16 *code, UINT8 *color, UINT8 attrib, UINT8 x);
void jumpbug_extend_sprite_info(const UINT8 *base, UINT8 *sx, UINT8 *sy, UINT8 *flipx, UINT8 *flipy, UINT16 *code, UINT8 *color);
/*----------- defined in audio/galaxian.c -----------*/
extern const struct Samplesinterface galaxian_custom_interface;
WRITE8_HANDLER( galaxian_sound_w );
WRITE8_HANDLER( galaxian_pitch_w );
WRITE8_HANDLER( galaxian_vol_w );
WRITE8_HANDLER( galaxian_noise_enable_w );
WRITE8_HANDLER( galaxian_background_enable_w );
WRITE8_HANDLER( galaxian_shoot_enable_w );
WRITE8_HANDLER( galaxian_lfo_freq_w );

View File

@ -26,17 +26,16 @@ extern size_t galaxold_spriteram_size;
extern size_t galaxold_spriteram2_size;
extern size_t galaxold_bulletsram_size;
PALETTE_INIT( galaxian );
PALETTE_INIT( scramble );
PALETTE_INIT( turtles );
PALETTE_INIT( galaxold );
PALETTE_INIT( scrambold );
PALETTE_INIT( moonwar );
PALETTE_INIT( darkplnt );
PALETTE_INIT( rescue );
PALETTE_INIT( minefld );
PALETTE_INIT( stratgyx );
PALETTE_INIT( mariner );
PALETTE_INIT( frogger );
PALETTE_INIT( rockclim );
PALETTE_INIT( turtles );
WRITE8_HANDLER( galaxold_videoram_w );
READ8_HANDLER( galaxold_videoram_r );
@ -48,28 +47,26 @@ READ8_HANDLER( rockclim_videoram_r );
WRITE8_HANDLER( galaxold_attributesram_w );
WRITE8_HANDLER( galaxold_stars_enable_w );
WRITE8_HANDLER( scramble_background_enable_w );
WRITE8_HANDLER( scramble_background_red_w );
WRITE8_HANDLER( scramble_background_green_w );
WRITE8_HANDLER( scramble_background_blue_w );
WRITE8_HANDLER( scrambold_background_enable_w );
WRITE8_HANDLER( scrambold_background_red_w );
WRITE8_HANDLER( scrambold_background_green_w );
WRITE8_HANDLER( scrambold_background_blue_w );
WRITE8_HANDLER( hotshock_flip_screen_w );
WRITE8_HANDLER( darkplnt_bullet_color_w );
WRITE8_HANDLER( racknrol_tiles_bank_w );
VIDEO_START( galaxold_plain );
VIDEO_START( galaxian );
VIDEO_START( gmgalax );
VIDEO_START( galaxold );
VIDEO_START( mooncrst );
VIDEO_START( mooncrgx );
VIDEO_START( moonqsr );
VIDEO_START( mshuttle );
VIDEO_START( pisces );
VIDEO_START( gteikob2 );
VIDEO_START( batman2 );
VIDEO_START( jumpbug );
VIDEO_START( azurian );
VIDEO_START( dkongjrm );
VIDEO_START( scramble );
VIDEO_START( scrambold );
VIDEO_START( theend );
VIDEO_START( darkplnt );
VIDEO_START( rescue );
@ -91,7 +88,7 @@ VIDEO_START( scorpion );
VIDEO_START( racknrol );
VIDEO_START( ad2083 );
VIDEO_UPDATE( galaxian );
VIDEO_UPDATE( galaxold );
WRITE8_HANDLER( galaxold_gfxbank_w );
WRITE8_HANDLER( galaxold_flip_screen_x_w );
@ -113,7 +110,6 @@ DRIVER_INIT( mooncrst );
DRIVER_INIT( mooncrgx );
DRIVER_INIT( moonqsr );
DRIVER_INIT( checkman );
DRIVER_INIT( gteikob2 );
DRIVER_INIT( azurian );
DRIVER_INIT( 4in1 );
DRIVER_INIT( ladybugg );
@ -121,7 +117,7 @@ DRIVER_INIT( gmgalax );
WRITE8_HANDLER( galaxold_nmi_enable_w );
MACHINE_RESET( galaxian );
MACHINE_RESET( galaxold );
MACHINE_RESET( devilfsg );
WRITE8_HANDLER( galaxold_coin_lockout_w );

View File

@ -50,7 +50,7 @@ DRIVER_INIT( cclimber )
cclimber_decode(convtable);
}
DRIVER_INIT( cclimbrj )
void cclimbrj_decode(void)
{
static const UINT8 convtable[8][16] =
{
@ -67,7 +67,12 @@ DRIVER_INIT( cclimbrj )
cclimber_decode(convtable);
}
DRIVER_INIT( mshuttle )
DRIVER_INIT( cclimbrj )
{
cclimbrj_decode();
}
void mshuttle_decode(void)
{
static const UINT8 convtable[8][16] =
{

View File

@ -89,7 +89,7 @@ static void machine_reset_common(running_machine *machine, int line)
timer_adjust_oneshot(int_timer, video_screen_get_time_until_pos(machine->primary_screen, 0, 0), 0);
}
MACHINE_RESET( galaxian )
MACHINE_RESET( galaxold )
{
machine_reset_common(machine, INPUT_LINE_NMI);
}
@ -100,7 +100,6 @@ MACHINE_RESET( devilfsg )
}
WRITE8_HANDLER( galaxold_coin_lockout_w )
{
coin_lockout_global_w(~data & 1);
@ -129,24 +128,6 @@ WRITE8_HANDLER( galaxold_leds_w )
}
READ8_HANDLER( jumpbug_protection_r )
{
switch (offset)
{
case 0x0114: return 0x4f;
case 0x0118: return 0xd3;
case 0x0214: return 0xcf;
case 0x0235: return 0x02;
case 0x0311: return 0x00; /* not checked */
default:
logerror("Unknown protection read. Offset: %04X PC=%04X\n",0xb000+offset,activecpu_get_pc());
}
return 0;
}
static READ8_HANDLER( checkmaj_protection_r )
{
switch (activecpu_get_pc())
@ -492,14 +473,6 @@ Pin layout is such that links can replace the PAL if encryption is not used.
}
}
DRIVER_INIT( gteikob2 )
{
DRIVER_INIT_CALL(pisces);
memory_install_write8_handler(0, ADDRESS_SPACE_PROGRAM, 0x7006, 0x7006, 0, 0, gteikob2_flip_screen_x_w);
memory_install_write8_handler(0, ADDRESS_SPACE_PROGRAM, 0x7007, 0x7007, 0, 0, gteikob2_flip_screen_y_w);
}
DRIVER_INIT( azurian )
{
DRIVER_INIT_CALL(pisces);

View File

@ -20,7 +20,7 @@ static UINT8 security_2B_counter;
MACHINE_RESET( scramble )
{
MACHINE_RESET_CALL(galaxian);
MACHINE_RESET_CALL(galaxold);
if (cpu_gettotalcpu() > 1)
{
@ -61,7 +61,7 @@ MACHINE_RESET( explorer )
UINT8 *RAM = memory_region(REGION_CPU1);
RAM[0x47ff] = 0; /* If not set, it doesn't reset after the 1st time */
MACHINE_RESET_CALL(galaxian);
MACHINE_RESET_CALL(galaxold);
}
static READ8_HANDLER( scrambls_input_port_2_r )
@ -333,14 +333,14 @@ DRIVER_INIT( scobra )
{
DRIVER_INIT_CALL(scramble_ppi);
memory_install_write8_handler(0, ADDRESS_SPACE_PROGRAM, 0xa803, 0xa803, 0, 0, scramble_background_enable_w);
memory_install_write8_handler(0, ADDRESS_SPACE_PROGRAM, 0xa803, 0xa803, 0, 0, scrambold_background_enable_w);
}
DRIVER_INIT( atlantis )
{
DRIVER_INIT_CALL(scramble_ppi);
memory_install_write8_handler(0, ADDRESS_SPACE_PROGRAM, 0x6803, 0x6803, 0, 0, scramble_background_enable_w);
memory_install_write8_handler(0, ADDRESS_SPACE_PROGRAM, 0x6803, 0x6803, 0, 0, scrambold_background_enable_w);
}
DRIVER_INIT( scramble )
@ -371,9 +371,9 @@ DRIVER_INIT( stratgyx )
{
DRIVER_INIT_CALL(scramble_ppi);
memory_install_write8_handler(0, ADDRESS_SPACE_PROGRAM, 0xb000, 0xb000, 0, 0, scramble_background_green_w);
memory_install_write8_handler(0, ADDRESS_SPACE_PROGRAM, 0xb002, 0xb002, 0, 0, scramble_background_blue_w);
memory_install_write8_handler(0, ADDRESS_SPACE_PROGRAM, 0xb00a, 0xb00a, 0, 0, scramble_background_red_w);
memory_install_write8_handler(0, ADDRESS_SPACE_PROGRAM, 0xb000, 0xb000, 0, 0, scrambold_background_green_w);
memory_install_write8_handler(0, ADDRESS_SPACE_PROGRAM, 0xb002, 0xb002, 0, 0, scrambold_background_blue_w);
memory_install_write8_handler(0, ADDRESS_SPACE_PROGRAM, 0xb00a, 0xb00a, 0, 0, scrambold_background_red_w);
ppi8255_set_portCread(0, stratgyx_input_port_2_r);
ppi8255_set_portCread(1, stratgyx_input_port_3_r);
@ -383,7 +383,7 @@ DRIVER_INIT( tazmani2 )
{
DRIVER_INIT_CALL(scramble_ppi);
memory_install_write8_handler(0, ADDRESS_SPACE_PROGRAM, 0xb002, 0xb002, 0, 0, scramble_background_enable_w);
memory_install_write8_handler(0, ADDRESS_SPACE_PROGRAM, 0xb002, 0xb002, 0, 0, scrambold_background_enable_w);
}
DRIVER_INIT( amidar )
@ -576,21 +576,21 @@ DRIVER_INIT( mimonkey )
DRIVER_INIT_CALL(scramble_ppi);
memory_install_write8_handler(0, ADDRESS_SPACE_PROGRAM, 0xa804, 0xa804, 0, 0, scramble_background_enable_w);
memory_install_write8_handler(0, ADDRESS_SPACE_PROGRAM, 0xa804, 0xa804, 0, 0, scrambold_background_enable_w);
}
DRIVER_INIT( mimonsco )
{
DRIVER_INIT_CALL(scramble_ppi);
memory_install_write8_handler(0, ADDRESS_SPACE_PROGRAM, 0xa804, 0xa804, 0, 0, scramble_background_enable_w);
memory_install_write8_handler(0, ADDRESS_SPACE_PROGRAM, 0xa804, 0xa804, 0, 0, scrambold_background_enable_w);
}
DRIVER_INIT( mimonscr )
{
DRIVER_INIT_CALL(scramble_ppi);
memory_install_write8_handler(0, ADDRESS_SPACE_PROGRAM, 0x6804, 0x6804, 0, 0, scramble_background_enable_w);
memory_install_write8_handler(0, ADDRESS_SPACE_PROGRAM, 0x6804, 0x6804, 0, 0, scrambold_background_enable_w);
}

View File

@ -818,7 +818,6 @@ $(MAMEOBJ)/konami.a: \
$(DRIVERS)/88games.o $(VIDEO)/88games.o \
$(DRIVERS)/ajax.o $(MACHINE)/ajax.o $(VIDEO)/ajax.o \
$(DRIVERS)/aliens.o $(VIDEO)/aliens.o \
$(DRIVERS)/amidar.o \
$(DRIVERS)/asterix.o $(VIDEO)/asterix.o \
$(DRIVERS)/battlnts.o $(VIDEO)/battlnts.o \
$(DRIVERS)/bishi.o $(VIDEO)/bishi.o \
@ -838,7 +837,6 @@ $(MAMEOBJ)/konami.a: \
$(DRIVERS)/finalizr.o $(VIDEO)/finalizr.o \
$(DRIVERS)/firebeat.o \
$(DRIVERS)/flkatck.o $(VIDEO)/flkatck.o \
$(DRIVERS)/frogger.o \
$(DRIVERS)/gberet.o $(VIDEO)/gberet.o \
$(DRIVERS)/gbusters.o $(VIDEO)/gbusters.o \
$(DRIVERS)/gijoe.o $(VIDEO)/gijoe.o \
@ -961,7 +959,8 @@ $(MAMEOBJ)/namco.a: \
$(DRIVERS)/baraduke.o $(VIDEO)/baraduke.o \
$(DRIVERS)/dambustr.o \
$(DRIVERS)/galaga.o $(AUDIO)/galaga.o $(VIDEO)/galaga.o \
$(DRIVERS)/galaxold.o $(MACHINE)/galaxold.o $(AUDIO)/galaxian.o $(VIDEO)/galaxold.o \
$(DRIVERS)/galaxian.o $(AUDIO)/galaxian.o $(VIDEO)/galaxian.o \
$(DRIVERS)/galaxold.o $(MACHINE)/galaxold.o $(VIDEO)/galaxold.o \
$(DRIVERS)/gaplus.o $(MACHINE)/gaplus.o $(VIDEO)/gaplus.o \
$(DRIVERS)/mappy.o $(VIDEO)/mappy.o \
$(DRIVERS)/namcofl.o $(VIDEO)/namcofl.o \
@ -1741,5 +1740,6 @@ $(DRIVERS)/zac2650.o: $(LAYOUT)/tinv2650.lh
# misc dependencies
#-------------------------------------------------
$(DRIVERS)/neogeo.o: $(MAMESRC)/drivers/neodrvr.c
$(DRIVERS)/galaxian.o: $(MAMESRC)/drivers/galdrvr.c
$(DRIVERS)/mpu4.o: $(MAMESRC)/drivers/mpu4drvr.c
$(DRIVERS)/neogeo.o: $(MAMESRC)/drivers/neodrvr.c

1369
src/mame/video/galaxian.c Normal file

File diff suppressed because it is too large Load Diff

View File

@ -51,40 +51,25 @@ static UINT8 color_mask;
static tilemap *dambustr_tilemap2;
static UINT8 *dambustr_videoram2;
static void (*modify_charcode)(UINT16 *code,UINT8 x); /* function to call to do character banking */
static void gmgalax_modify_charcode(UINT16 *code,UINT8 x);
static void mooncrst_modify_charcode(UINT16 *code,UINT8 x);
static void mooncrgx_modify_charcode(UINT16 *code,UINT8 x);
static void moonqsr_modify_charcode(UINT16 *code,UINT8 x);
static void mshuttle_modify_charcode(UINT16 *code,UINT8 x);
static void pisces_modify_charcode(UINT16 *code,UINT8 x);
static void mimonkey_modify_charcode(UINT16 *code,UINT8 x);
static void batman2_modify_charcode(UINT16 *code,UINT8 x);
static void mariner_modify_charcode(UINT16 *code,UINT8 x);
static void jumpbug_modify_charcode(UINT16 *code,UINT8 x);
static void dambustr_modify_charcode(UINT16 *code,UINT8 x);
static void (*modify_spritecode)(UINT8 *spriteram,int*,int*,int*,int); /* function to call to do sprite banking */
static void gmgalax_modify_spritecode(UINT8 *spriteram,int *code,int *flipx,int *flipy,int offs);
static void mooncrst_modify_spritecode(UINT8 *spriteram,int *code,int *flipx,int *flipy,int offs);
static void mooncrgx_modify_spritecode(UINT8 *spriteram,int *code,int *flipx,int *flipy,int offs);
static void moonqsr_modify_spritecode(UINT8 *spriteram,int *code,int *flipx,int *flipy,int offs);
static void mshuttle_modify_spritecode(UINT8 *spriteram,int *code,int *flipx,int *flipy,int offs);
static void calipso_modify_spritecode(UINT8 *spriteram,int *code,int *flipx,int *flipy,int offs);
static void pisces_modify_spritecode(UINT8 *spriteram,int *code,int *flipx,int *flipy,int offs);
static void mimonkey_modify_spritecode(UINT8 *spriteram,int *code,int *flipx,int *flipy,int offs);
static void batman2_modify_spritecode(UINT8 *spriteram,int *code,int *flipx,int *flipy,int offs);
static void jumpbug_modify_spritecode(UINT8 *spriteram,int *code,int *flipx,int *flipy,int offs);
static void dkongjrm_modify_spritecode(UINT8 *spriteram,int *code,int *flipx,int *flipy,int offs);
static void ad2083_modify_spritecode(UINT8 *spriteram,int *code,int *flipx,int *flipy,int offs);
static void dambustr_modify_spritecode(UINT8 *spriteram,int *code,int *flipx,int *flipy,int offs);
static void (*modify_color)(UINT8 *color); /* function to call to do modify how the color codes map to the PROM */
static void frogger_modify_color(UINT8 *color);
static void gmgalax_modify_color(UINT8 *color);
static void drivfrcg_modify_color(UINT8 *color);
static void (*modify_ypos)(UINT8*); /* function to call to do modify how vertical positioning bits are connected */
static void frogger_modify_ypos(UINT8 *sy);
static TIMER_CALLBACK( stars_blink_callback );
static TIMER_CALLBACK( stars_scroll_callback );
@ -112,7 +97,6 @@ static void noop_draw_stars(running_machine *machine, bitmap_t *bitmap, cons
static void scramble_draw_stars(running_machine *machine, bitmap_t *bitmap, const rectangle *cliprect);
static void rescue_draw_stars(running_machine *machine, bitmap_t *bitmap, const rectangle *cliprect);
static void mariner_draw_stars(running_machine *machine, bitmap_t *bitmap, const rectangle *cliprect);
static void jumpbug_draw_stars(running_machine *machine, bitmap_t *bitmap, const rectangle *cliprect);
static void start_stars_blink_timer(double ra, double rb, double c);
static void start_stars_scroll_timer(running_machine *machine);
@ -120,9 +104,7 @@ static void start_stars_scroll_timer(running_machine *machine);
static UINT8 darkplnt_bullet_color;
static void (*draw_bullets)(bitmap_t *,int,int,int,const rectangle *); /* function to call to draw a bullet */
static void galaxold_draw_bullets(bitmap_t *bitmap, int offs, int x, int y, const rectangle *cliprect);
static void gteikob2_draw_bullets(bitmap_t *bitmap, int offs, int x, int y, const rectangle *cliprect);
static void scramble_draw_bullets(bitmap_t *bitmap, int offs, int x, int y, const rectangle *cliprect);
static void theend_draw_bullets(bitmap_t *bitmap, int offs, int x, int y, const rectangle *cliprect);
static void darkplnt_draw_bullets(bitmap_t *bitmap, int offs, int x, int y, const rectangle *cliprect);
static void dambustr_draw_bullets(bitmap_t *bitmap, int offs, int x, int y, const rectangle *cliprect);
@ -134,7 +116,6 @@ static void galaxold_draw_background(bitmap_t *bitmap, const rectangle *cliprect
static void scramble_draw_background(bitmap_t *bitmap, const rectangle *cliprect);
static void turtles_draw_background(bitmap_t *bitmap, const rectangle *cliprect);
static void mariner_draw_background(bitmap_t *bitmap, const rectangle *cliprect);
static void frogger_draw_background(bitmap_t *bitmap, const rectangle *cliprect);
static void stratgyx_draw_background(bitmap_t *bitmap, const rectangle *cliprect);
static void minefld_draw_background(bitmap_t *bitmap, const rectangle *cliprect);
static void rescue_draw_background(bitmap_t *bitmap, const rectangle *cliprect);
@ -183,7 +164,7 @@ static bitmap_t *dambustr_tmpbitmap;
The RGB outputs have a 470 ohm pull-down each.
***************************************************************************/
PALETTE_INIT( galaxian )
PALETTE_INIT( galaxold )
{
int i;
@ -222,9 +203,9 @@ PALETTE_INIT( galaxian )
palette_set_color(machine,BULLETS_COLOR_BASE+1,MAKE_RGB(0xef,0xef,0xef));
}
PALETTE_INIT( scramble )
PALETTE_INIT( scrambold )
{
PALETTE_INIT_CALL(galaxian);
PALETTE_INIT_CALL(galaxold);
/* blue background - 390 ohm resistor */
@ -233,43 +214,19 @@ PALETTE_INIT( scramble )
PALETTE_INIT( moonwar )
{
PALETTE_INIT_CALL(scramble);
PALETTE_INIT_CALL(scrambold);
/* wire mod to connect the bullet blue output to the 220 ohm resistor */
palette_set_color(machine,BULLETS_COLOR_BASE+0,MAKE_RGB(0xef,0xef,0x97));
}
PALETTE_INIT( turtles )
{
int i;
PALETTE_INIT_CALL(galaxian);
/* The background color generator is connected this way:
RED - 390 ohm resistor
GREEN - 470 ohm resistor
BLUE - 390 ohm resistor */
for (i = 0; i < 8; i++)
{
int r = BIT(i,0) * 0x55;
int g = BIT(i,1) * 0x47;
int b = BIT(i,2) * 0x55;
palette_set_color_rgb(machine,BACKGROUND_COLOR_BASE+i,r,g,b);
}
}
PALETTE_INIT( stratgyx )
{
int i;
PALETTE_INIT_CALL(galaxian);
PALETTE_INIT_CALL(galaxold);
/* The background color generator is connected this way:
@ -288,15 +245,6 @@ PALETTE_INIT( stratgyx )
}
}
PALETTE_INIT( frogger )
{
PALETTE_INIT_CALL(galaxian);
/* blue background - 470 ohm resistor */
palette_set_color(machine,BACKGROUND_COLOR_BASE,MAKE_RGB(0,0,0x47));
}
PALETTE_INIT( rockclim )
{
int i;
@ -384,7 +332,7 @@ PALETTE_INIT( minefld )
int i;
PALETTE_INIT_CALL(galaxian);
PALETTE_INIT_CALL(galaxold);
/* set up background colors */
@ -415,7 +363,7 @@ PALETTE_INIT( rescue )
int i;
PALETTE_INIT_CALL(galaxian);
PALETTE_INIT_CALL(galaxold);
/* set up background colors */
@ -436,7 +384,7 @@ PALETTE_INIT( mariner )
int i;
PALETTE_INIT_CALL(galaxian);
PALETTE_INIT_CALL(galaxold);
/* set up background colors */
@ -465,7 +413,7 @@ PALETTE_INIT( dambustr )
{
int i;
PALETTE_INIT_CALL(galaxian);
PALETTE_INIT_CALL(galaxold);
/*
@ -487,6 +435,30 @@ PALETTE_INIT( dambustr )
}
PALETTE_INIT( turtles )
{
int i;
PALETTE_INIT_CALL(galaxold);
/* The background color generator is connected this way:
RED - 390 ohm resistor
GREEN - 470 ohm resistor
BLUE - 390 ohm resistor */
for (i = 0; i < 8; i++)
{
int r = BIT(i,0) * 0x55;
int g = BIT(i,1) * 0x47;
int b = BIT(i,2) * 0x55;
palette_set_color_rgb(machine,BACKGROUND_COLOR_BASE+i,r,g,b);
}
}
/***************************************************************************
@ -557,7 +529,7 @@ VIDEO_START( galaxold_plain )
tilemap_set_scroll = tilemap_set_scrolly;
}
VIDEO_START( galaxian )
VIDEO_START( galaxold )
{
VIDEO_START_CALL(galaxold_plain);
@ -566,72 +538,7 @@ VIDEO_START( galaxian )
draw_bullets = galaxold_draw_bullets;
}
VIDEO_START( gmgalax )
{
VIDEO_START_CALL(galaxian);
modify_charcode = gmgalax_modify_charcode;
modify_spritecode = gmgalax_modify_spritecode;
modify_color = gmgalax_modify_color;
}
VIDEO_START( mooncrst )
{
VIDEO_START_CALL(galaxian);
modify_charcode = mooncrst_modify_charcode;
modify_spritecode = mooncrst_modify_spritecode;
}
VIDEO_START( mooncrgx )
{
VIDEO_START_CALL(galaxian);
modify_charcode = mooncrgx_modify_charcode;
modify_spritecode = mooncrgx_modify_spritecode;
}
VIDEO_START( moonqsr )
{
VIDEO_START_CALL(galaxian);
modify_charcode = moonqsr_modify_charcode;
modify_spritecode = moonqsr_modify_spritecode;
}
VIDEO_START( mshuttle )
{
VIDEO_START_CALL(galaxian);
modify_charcode = mshuttle_modify_charcode;
modify_spritecode = mshuttle_modify_spritecode;
}
VIDEO_START( pisces )
{
VIDEO_START_CALL(galaxian);
modify_charcode = pisces_modify_charcode;
modify_spritecode = pisces_modify_spritecode;
}
VIDEO_START( gteikob2 )
{
VIDEO_START_CALL(pisces);
draw_bullets = gteikob2_draw_bullets;
}
VIDEO_START( batman2 )
{
VIDEO_START_CALL(galaxian);
modify_charcode = batman2_modify_charcode;
modify_spritecode = batman2_modify_spritecode;
}
VIDEO_START( scramble )
VIDEO_START( scrambold )
{
VIDEO_START_CALL(galaxold_plain);
@ -647,34 +554,6 @@ VIDEO_START( scramble )
draw_background = scramble_draw_background;
}
VIDEO_START( sfx )
{
video_start_common(machine,tilemap_scan_cols);
tilemap_set_scroll_rows(bg_tilemap, 32);
tilemap_set_scroll = tilemap_set_scrollx;
draw_stars = scramble_draw_stars;
draw_bullets = scramble_draw_bullets;
draw_background = turtles_draw_background;
}
VIDEO_START( turtles )
{
VIDEO_START_CALL(galaxold_plain);
draw_background = turtles_draw_background;
}
VIDEO_START( theend )
{
VIDEO_START_CALL(galaxian);
draw_bullets = theend_draw_bullets;
}
VIDEO_START( darkplnt )
{
VIDEO_START_CALL(galaxold_plain);
@ -685,7 +564,7 @@ VIDEO_START( darkplnt )
VIDEO_START( rescue )
{
VIDEO_START_CALL(scramble);
VIDEO_START_CALL(scrambold);
draw_stars = rescue_draw_stars;
@ -694,7 +573,7 @@ VIDEO_START( rescue )
VIDEO_START( minefld )
{
VIDEO_START_CALL(scramble);
VIDEO_START_CALL(scrambold);
draw_stars = rescue_draw_stars;
@ -710,7 +589,7 @@ VIDEO_START( stratgyx )
VIDEO_START( ckongs )
{
VIDEO_START_CALL(scramble);
VIDEO_START_CALL(scrambold);
modify_spritecode = mshuttle_modify_spritecode;
}
@ -739,42 +618,9 @@ VIDEO_START( mariner )
modify_charcode = mariner_modify_charcode;
}
VIDEO_START( froggers )
{
VIDEO_START_CALL(galaxold_plain);
draw_background = frogger_draw_background;
modify_color = frogger_modify_color;
}
VIDEO_START( frogger )
{
VIDEO_START_CALL(froggers);
modify_ypos = frogger_modify_ypos;
}
VIDEO_START( jumpbug )
{
VIDEO_START_CALL(scramble);
draw_stars = jumpbug_draw_stars;
modify_charcode = jumpbug_modify_charcode;
modify_spritecode = jumpbug_modify_spritecode;
}
VIDEO_START( azurian )
{
VIDEO_START_CALL(galaxold_plain);
draw_stars = galaxold_draw_stars;
draw_bullets = scramble_draw_bullets; /* Shots are yellow like in Scramble */
}
VIDEO_START( mimonkey )
{
VIDEO_START_CALL(scramble);
VIDEO_START_CALL(scrambold);
modify_charcode = mimonkey_modify_charcode;
modify_spritecode = mimonkey_modify_spritecode;
@ -792,7 +638,7 @@ VIDEO_START( dkongjrm )
VIDEO_START( newsin7 )
{
VIDEO_START_CALL(scramble);
VIDEO_START_CALL(scrambold);
spritevisiblearea = &_spritevisibleareaflipx;
spritevisibleareaflipx = &_spritevisiblearea;
@ -800,11 +646,81 @@ VIDEO_START( newsin7 )
VIDEO_START( scorpion )
{
VIDEO_START_CALL(scramble);
VIDEO_START_CALL(scrambold);
modify_spritecode = batman2_modify_spritecode;
}
static void pisces_modify_spritecode(UINT8 *spriteram,int *code,int *flipx,int *flipy,int offs)
{
*code |= (gfxbank[0] << 6);
}
VIDEO_START( pisces )
{
VIDEO_START_CALL(galaxold);
modify_charcode = pisces_modify_charcode;
modify_spritecode = pisces_modify_spritecode;
}
static void theend_draw_bullets(bitmap_t *bitmap, int offs, int x, int y, const rectangle *cliprect)
{
int i;
/* same as Galaxian, but all bullets are yellow */
for (i = 0; i < 4; i++)
{
x--;
if ((x >= cliprect->min_x) && (x <= cliprect->max_x) && (y >= cliprect->min_y) && (y <= cliprect->max_y))
*BITMAP_ADDR16(bitmap, y, x) = BULLETS_COLOR_BASE;
}
}
VIDEO_START( theend )
{
VIDEO_START_CALL(galaxold);
draw_bullets = theend_draw_bullets;
}
static void mooncrst_modify_spritecode(UINT8 *spriteram,int *code,int *flipx,int *flipy,int offs)
{
if (gfxbank[2] && ((*code & 0x30) == 0x20))
{
*code = (*code & 0x0f) | (gfxbank[0] << 4) | (gfxbank[1] << 5) | 0x40;
}
}
VIDEO_START( mooncrst )
{
VIDEO_START_CALL(galaxold);
modify_charcode = mooncrst_modify_charcode;
modify_spritecode = mooncrst_modify_spritecode;
}
static void batman2_modify_charcode(UINT16 *code,UINT8 x)
{
if (*code & 0x80)
{
*code |= (gfxbank[0] << 8);
}
}
VIDEO_START( batman2 )
{
VIDEO_START_CALL(galaxold);
modify_charcode = batman2_modify_charcode;
modify_spritecode = batman2_modify_spritecode;
}
static void rockclim_draw_background(bitmap_t *bitmap, const rectangle *cliprect)
{
tilemap_draw(bitmap,cliprect,rockclim_tilemap, 0,0);
@ -817,7 +733,7 @@ static void rockclim_modify_spritecode(UINT8 *spriteram,int *code,int *flipx,int
VIDEO_START( rockclim )
{
VIDEO_START_CALL(galaxian);
VIDEO_START_CALL(galaxold);
rockclim_tilemap = tilemap_create(rockclim_get_tile_info,tilemap_scan_rows,8,8,64,32);
draw_background = rockclim_draw_background;
modify_charcode = mooncrst_modify_charcode;
@ -1003,7 +919,7 @@ static TILE_GET_INFO( dambustr_get_tile_info2 )
VIDEO_START( dambustr )
{
VIDEO_START_CALL(galaxian);
VIDEO_START_CALL(galaxold);
dambustr_bg_split_line = 0;
dambustr_bg_color_1 = 0;
@ -1107,22 +1023,22 @@ WRITE8_HANDLER( hotshock_flip_screen_w )
}
WRITE8_HANDLER( scramble_background_enable_w )
WRITE8_HANDLER( scrambold_background_enable_w )
{
background_enable = data & 0x01;
}
WRITE8_HANDLER( scramble_background_red_w )
WRITE8_HANDLER( scrambold_background_red_w )
{
background_red = data & 0x01;
}
WRITE8_HANDLER( scramble_background_green_w )
WRITE8_HANDLER( scrambold_background_green_w )
{
background_green = data & 0x01;
}
WRITE8_HANDLER( scramble_background_blue_w )
WRITE8_HANDLER( scrambold_background_blue_w )
{
background_blue = data & 0x01;
}
@ -1200,11 +1116,6 @@ WRITE8_HANDLER( dambustr_bg_color_w )
/* character banking functions */
static void gmgalax_modify_charcode(UINT16 *code,UINT8 x)
{
*code |= (gfxbank[0] << 9);
}
static void mooncrst_modify_charcode(UINT16 *code,UINT8 x)
{
if (gfxbank[2] && ((*code & 0xc0) == 0x80))
@ -1213,24 +1124,6 @@ static void mooncrst_modify_charcode(UINT16 *code,UINT8 x)
}
}
static void mooncrgx_modify_charcode(UINT16 *code,UINT8 x)
{
if (gfxbank[2] && ((*code & 0xc0) == 0x80))
{
*code = (*code & 0x3f) | (gfxbank[1] << 6) | (gfxbank[0] << 7) | 0x0100;
}
}
static void moonqsr_modify_charcode(UINT16 *code,UINT8 x)
{
*code |= ((galaxold_attributesram[(x << 1) | 1] & 0x20) << 3);
}
static void mshuttle_modify_charcode(UINT16 *code,UINT8 x)
{
*code |= ((galaxold_attributesram[(x << 1) | 1] & 0x30) << 4);
}
static void pisces_modify_charcode(UINT16 *code,UINT8 x)
{
*code |= (gfxbank[0] << 8);
@ -1241,14 +1134,6 @@ static void mimonkey_modify_charcode(UINT16 *code,UINT8 x)
*code |= (gfxbank[0] << 8) | (gfxbank[2] << 9);
}
static void batman2_modify_charcode(UINT16 *code,UINT8 x)
{
if (*code & 0x80)
{
*code |= (gfxbank[0] << 8);
}
}
static void mariner_modify_charcode(UINT16 *code,UINT8 x)
{
UINT8 *prom;
@ -1261,18 +1146,6 @@ static void mariner_modify_charcode(UINT16 *code,UINT8 x)
*code |= ((prom[x] & 0x01) << 8);
}
static void jumpbug_modify_charcode(UINT16 *code,UINT8 x)
{
if (((*code & 0xc0) == 0x80) &&
(gfxbank[2] & 0x01))
{
*code += 128 + (( gfxbank[0] & 0x01) << 6) +
(( gfxbank[1] & 0x01) << 7) +
((~gfxbank[4] & 0x01) << 8);
}
}
static void dambustr_modify_charcode(UINT16 *code,UINT8 x)
{
if (dambustr_char_bank == 0) { // text mode
@ -1290,32 +1163,6 @@ static void dambustr_modify_charcode(UINT16 *code,UINT8 x)
/* sprite banking functions */
static void gmgalax_modify_spritecode(UINT8 *spriteram,int *code,int *flipx,int *flipy,int offs)
{
*code |= (gfxbank[0] << 7) | 0x40;
}
static void mooncrst_modify_spritecode(UINT8 *spriteram,int *code,int *flipx,int *flipy,int offs)
{
if (gfxbank[2] && ((*code & 0x30) == 0x20))
{
*code = (*code & 0x0f) | (gfxbank[0] << 4) | (gfxbank[1] << 5) | 0x40;
}
}
static void mooncrgx_modify_spritecode(UINT8 *spriteram,int *code,int *flipx,int *flipy,int offs)
{
if (gfxbank[2] && ((*code & 0x30) == 0x20))
{
*code = (*code & 0x0f) | (gfxbank[1] << 4) | (gfxbank[0] << 5) | 0x40;
}
}
static void moonqsr_modify_spritecode(UINT8 *spriteram,int *code,int *flipx,int *flipy,int offs)
{
*code |= ((spriteram[offs + 2] & 0x20) << 1);
}
static void mshuttle_modify_spritecode(UINT8 *spriteram,int *code,int *flipx,int *flipy,int offs)
{
*code |= ((spriteram[offs + 2] & 0x30) << 2);
@ -1329,11 +1176,6 @@ static void calipso_modify_spritecode(UINT8 *spriteram,int *code,int *flipx,int
*flipy = 0;
}
static void pisces_modify_spritecode(UINT8 *spriteram,int *code,int *flipx,int *flipy,int offs)
{
*code |= (gfxbank[0] << 6);
}
static void mimonkey_modify_spritecode(UINT8 *spriteram,int *code,int *flipx,int *flipy,int offs)
{
*code |= (gfxbank[0] << 6) | (gfxbank[2] << 7);
@ -1345,17 +1187,6 @@ static void batman2_modify_spritecode(UINT8 *spriteram,int *code,int *flipx,int
*code |= 0x40;
}
static void jumpbug_modify_spritecode(UINT8 *spriteram,int *code,int *flipx,int *flipy,int offs)
{
if (((*code & 0x30) == 0x20) &&
(gfxbank[2] & 0x01) != 0)
{
*code += 32 + (( gfxbank[0] & 0x01) << 4) +
(( gfxbank[1] & 0x01) << 5) +
((~gfxbank[4] & 0x01) << 6);
}
}
static void dkongjrm_modify_spritecode(UINT8 *spriteram,int *code,int *flipx,int *flipy,int offs)
{
/* No x flip */
@ -1378,16 +1209,6 @@ static void dambustr_modify_spritecode(UINT8 *spriteram,int *code,int *flipx,int
/* color PROM mapping functions */
static void frogger_modify_color(UINT8 *color)
{
*color = ((*color >> 1) & 0x03) | ((*color << 2) & 0x04);
}
static void gmgalax_modify_color(UINT8 *color)
{
*color |= (gfxbank[0] << 3);
}
static void drivfrcg_modify_color(UINT8 *color)
{
*color = ((*color & 0x40) >> 3) | (*color & 7);
@ -1395,11 +1216,6 @@ static void drivfrcg_modify_color(UINT8 *color)
/* y position mapping functions */
static void frogger_modify_ypos(UINT8 *sy)
{
*sy = (*sy << 4) | (*sy >> 4);
}
/* bullet drawing functions */
@ -1425,11 +1241,6 @@ static void galaxold_draw_bullets(bitmap_t *bitmap, int offs, int x, int y, cons
}
}
static void gteikob2_draw_bullets(bitmap_t *bitmap, int offs, int x, int y, const rectangle *cliprect)
{
galaxold_draw_bullets(bitmap, offs, 260 - x, y, cliprect);
}
static void scramble_draw_bullets(bitmap_t *bitmap, int offs, int x, int y, const rectangle *cliprect)
{
if (flipscreen_x) x++;
@ -1451,21 +1262,6 @@ static void darkplnt_draw_bullets(bitmap_t *bitmap, int offs, int x, int y, cons
*BITMAP_ADDR16(bitmap, y, x) = 32 + darkplnt_bullet_color;
}
static void theend_draw_bullets(bitmap_t *bitmap, int offs, int x, int y, const rectangle *cliprect)
{
int i;
/* same as Galaxian, but all bullets are yellow */
for (i = 0; i < 4; i++)
{
x--;
if ((x >= cliprect->min_x) && (x <= cliprect->max_x) && (y >= cliprect->min_y) && (y <= cliprect->max_y))
*BITMAP_ADDR16(bitmap, y, x) = BULLETS_COLOR_BASE;
}
}
static void dambustr_draw_bullets(bitmap_t *bitmap, int offs, int x, int y, const rectangle *cliprect)
{
int i, color;
@ -1517,21 +1313,6 @@ static void turtles_draw_background(bitmap_t *bitmap, const rectangle *cliprect)
fillbitmap(bitmap,BACKGROUND_COLOR_BASE + color,cliprect);
}
static void frogger_draw_background(bitmap_t *bitmap, const rectangle *cliprect)
{
/* color split point verified on real machine */
if (flipscreen_x)
{
plot_box(bitmap, 0, 0, 128, 256, 0);
plot_box(bitmap, 128, 0, 128, 256, BACKGROUND_COLOR_BASE);
}
else
{
plot_box(bitmap, 0, 0, 128, 256, BACKGROUND_COLOR_BASE);
plot_box(bitmap, 128, 0, 128, 256, 0);
}
}
static void stratgyx_draw_background(bitmap_t *bitmap, const rectangle *cliprect)
{
UINT8 x;
@ -1929,58 +1710,6 @@ static void mariner_draw_stars(running_machine *machine, bitmap_t *bitmap, const
}
}
static void jumpbug_draw_stars(running_machine *machine, bitmap_t *bitmap, const rectangle *cliprect)
{
int offs;
if (!timer_adjusted)
{
start_stars_blink_timer(100000, 10000, 0.00001);
start_stars_scroll_timer(machine);
timer_adjusted = 1;
}
for (offs = 0;offs < STAR_COUNT;offs++)
{
int x,y;
x = stars[offs].x >> 1;
y = stars[offs].y;
/* determine when to skip plotting */
if ((y & 0x01) ^ ((x >> 3) & 0x01))
{
switch (stars_blink_state & 0x03)
{
case 0:
if (!(stars[offs].color & 0x01)) continue;
break;
case 1:
if (!(stars[offs].color & 0x04)) continue;
break;
case 2:
if (!(stars[offs].y & 0x02)) continue;
break;
case 3:
/* always plot */
break;
}
x = ((stars[offs].x + stars_scrollpos) & 0x01ff) >> 1;
y = ( stars[offs].y + ((stars_scrollpos + stars[offs].x) >> 9)) & 0xff;
/* no stars in the status area */
if (x >= 240) continue;
plot_star(bitmap, x, y, stars[offs].color, cliprect);
}
}
}
static TIMER_CALLBACK( stars_blink_callback )
{
stars_blink_state++;
@ -2122,7 +1851,7 @@ static void draw_sprites(running_machine *machine, bitmap_t *bitmap, UINT8 *spri
}
VIDEO_UPDATE( galaxian )
VIDEO_UPDATE( galaxold )
{
draw_background(bitmap, cliprect);