mirror of
https://github.com/holub/mame
synced 2025-05-23 14:19:01 +03:00
From: Atari Ace <atari_ace@verizon.net>
Date: Sat, Nov 28, 2009 at 5:49 PM Subject: [patch] Eliminate spriteram3 To: submit@mamedev.org Cc: atariace@hotmail.com Aaron's patch to move the generic pointers into machine conflicts with a patch I'd worked on some time ago to start eliminating those globals altogether, so I've become motivated to finally submit it ;-). This patch eliminates spriteram3, which unlike the other spriteram variables, is only a convenience for some drivers. ~aa
This commit is contained in:
parent
bd4199f31c
commit
90560a421d
@ -171,8 +171,6 @@ struct _generic_pointers
|
||||
UINT32 spriteram_size;
|
||||
generic_ptr spriteram2; /* secondary spriteram */
|
||||
UINT32 spriteram2_size;
|
||||
generic_ptr spriteram3; /* tertiary spriteram */
|
||||
UINT32 spriteram3_size;
|
||||
generic_ptr buffered_spriteram; /* buffered spriteram */
|
||||
generic_ptr buffered_spriteram2;/* secondary buffered spriteram */
|
||||
generic_ptr buffered_spriteram3;/* tertiary buffered spriteram */
|
||||
|
@ -548,30 +548,12 @@ TODO:
|
||||
|
||||
#include "driver.h"
|
||||
#include "cpu/m6809/m6809.h"
|
||||
#include "machine/namcoio.h"
|
||||
#include "sound/dac.h"
|
||||
#include "sound/namco.h"
|
||||
#include "machine/namcoio.h"
|
||||
#include "includes/mappy.h"
|
||||
|
||||
|
||||
/* video functions */
|
||||
VIDEO_START( phozon );
|
||||
PALETTE_INIT( phozon );
|
||||
VIDEO_UPDATE( phozon );
|
||||
|
||||
/* video driver data & functions */
|
||||
extern UINT8 *mappy_videoram;
|
||||
extern UINT8 *mappy_spriteram;
|
||||
PALETTE_INIT( superpac );
|
||||
PALETTE_INIT( mappy );
|
||||
VIDEO_START( superpac );
|
||||
VIDEO_START( mappy );
|
||||
VIDEO_UPDATE( superpac );
|
||||
VIDEO_UPDATE( mappy );
|
||||
WRITE8_HANDLER( superpac_videoram_w );
|
||||
WRITE8_HANDLER( mappy_videoram_w );
|
||||
WRITE8_HANDLER( mappy_scroll_w );
|
||||
READ8_HANDLER( superpac_flipscreen_r );
|
||||
WRITE8_HANDLER( superpac_flipscreen_w );
|
||||
|
||||
|
||||
|
||||
|
@ -22,21 +22,15 @@ TODO:
|
||||
***************************************************************************/
|
||||
|
||||
#include "driver.h"
|
||||
#include "cpu/z80/z80.h"
|
||||
#include "streams.h"
|
||||
#include "cpu/z80/z80.h"
|
||||
#include "sound/sn76496.h"
|
||||
#include "sound/okim6295.h"
|
||||
|
||||
extern UINT8 *mjkjidai_videoram;
|
||||
|
||||
VIDEO_START( mjkjidai );
|
||||
VIDEO_UPDATE( mjkjidai );
|
||||
WRITE8_HANDLER( mjkjidai_videoram_w );
|
||||
WRITE8_HANDLER( mjkjidai_ctrl_w );
|
||||
|
||||
#include "includes/mjkjidai.h"
|
||||
|
||||
/* Start of ADPCM custom chip code */
|
||||
static struct mjkjidai_adpcm_state
|
||||
typedef struct _mjkjidai_adpcm_state mjkjidai_adpcm_state;
|
||||
struct _mjkjidai_adpcm_state
|
||||
{
|
||||
struct adpcm_state adpcm;
|
||||
sound_stream *stream;
|
||||
@ -44,11 +38,11 @@ static struct mjkjidai_adpcm_state
|
||||
UINT8 nibble;
|
||||
UINT8 playing;
|
||||
UINT8 *base;
|
||||
} mjkjidai_adpcm;
|
||||
};
|
||||
|
||||
static STREAM_UPDATE( mjkjidai_adpcm_callback )
|
||||
{
|
||||
struct mjkjidai_adpcm_state *state = (struct mjkjidai_adpcm_state *)param;
|
||||
mjkjidai_adpcm_state *state = (mjkjidai_adpcm_state *)param;
|
||||
stream_sample_t *dest = outputs[0];
|
||||
|
||||
while (state->playing && samples > 0)
|
||||
@ -76,7 +70,8 @@ static STREAM_UPDATE( mjkjidai_adpcm_callback )
|
||||
static DEVICE_START( mjkjidai_adpcm )
|
||||
{
|
||||
running_machine *machine = device->machine;
|
||||
struct mjkjidai_adpcm_state *state = &mjkjidai_adpcm;
|
||||
mjkjidai_adpcm_state *state = (mjkjidai_adpcm_state *)device->token;
|
||||
|
||||
state->playing = 0;
|
||||
state->stream = stream_create(device, 0, 1, device->clock, state, mjkjidai_adpcm_callback);
|
||||
state->base = memory_region(machine, "adpcm");
|
||||
@ -87,6 +82,8 @@ static DEVICE_GET_INFO( mjkjidai_adpcm )
|
||||
{
|
||||
switch (state)
|
||||
{
|
||||
case DEVINFO_INT_TOKEN_BYTES: info->i = sizeof(mjkjidai_adpcm_state); break;
|
||||
|
||||
/* --- the following bits of info are returned as pointers to data or functions --- */
|
||||
case DEVINFO_FCT_START: info->start = DEVICE_START_NAME(mjkjidai_adpcm);break;
|
||||
|
||||
@ -99,25 +96,25 @@ static DEVICE_GET_INFO( mjkjidai_adpcm )
|
||||
#define SOUND_MJKJIDAI DEVICE_GET_INFO_NAME(mjkjidai_adpcm)
|
||||
|
||||
|
||||
static void mjkjidai_adpcm_play (int offset, int lenght)
|
||||
static void mjkjidai_adpcm_play (mjkjidai_adpcm_state *state, int offset, int length)
|
||||
{
|
||||
mjkjidai_adpcm.current = offset;
|
||||
mjkjidai_adpcm.end = offset + lenght/2;
|
||||
mjkjidai_adpcm.nibble = 4;
|
||||
mjkjidai_adpcm.playing = 1;
|
||||
state->current = offset;
|
||||
state->end = offset + length/2;
|
||||
state->nibble = 4;
|
||||
state->playing = 1;
|
||||
}
|
||||
|
||||
static WRITE8_HANDLER( adpcm_w )
|
||||
static WRITE8_DEVICE_HANDLER( adpcm_w )
|
||||
{
|
||||
mjkjidai_adpcm_play ((data & 0x07) * 0x1000, 0x1000 * 2);
|
||||
mjkjidai_adpcm_state *state = (mjkjidai_adpcm_state *)device->token;
|
||||
mjkjidai_adpcm_play (state, (data & 0x07) * 0x1000, 0x1000 * 2);
|
||||
}
|
||||
/* End of ADPCM custom chip code */
|
||||
|
||||
|
||||
static int keyb,nvram_init_count;
|
||||
|
||||
static READ8_HANDLER( keyboard_r )
|
||||
{
|
||||
mjkjidai_state *state = (mjkjidai_state *)space->machine->driver_data;
|
||||
int res = 0x3f,i;
|
||||
static const char *const keynames[] = { "PL2_1", "PL2_2", "PL2_3", "PL2_4", "PL2_5", "PL2_6", "PL1_1", "PL1_2", "PL1_3", "PL1_4", "PL1_5", "PL1_6" };
|
||||
|
||||
@ -125,7 +122,7 @@ static READ8_HANDLER( keyboard_r )
|
||||
|
||||
for (i = 0; i < 12; i++)
|
||||
{
|
||||
if (~keyb & (1 << i))
|
||||
if (~state->keyb & (1 << i))
|
||||
{
|
||||
res = input_port_read(space->machine, keynames[i]) & 0x3f;
|
||||
break;
|
||||
@ -134,9 +131,9 @@ static READ8_HANDLER( keyboard_r )
|
||||
|
||||
res |= (input_port_read(space->machine, "IN3") & 0xc0);
|
||||
|
||||
if (nvram_init_count)
|
||||
if (state->nvram_init_count)
|
||||
{
|
||||
nvram_init_count--;
|
||||
state->nvram_init_count--;
|
||||
res &= 0xbf;
|
||||
}
|
||||
|
||||
@ -145,27 +142,28 @@ static READ8_HANDLER( keyboard_r )
|
||||
|
||||
static WRITE8_HANDLER( keyboard_select_w )
|
||||
{
|
||||
mjkjidai_state *state = (mjkjidai_state *)space->machine->driver_data;
|
||||
|
||||
// logerror("%04x: keyboard_select %d = %02x\n",cpu_get_pc(space->cpu),offset,data);
|
||||
|
||||
switch (offset)
|
||||
{
|
||||
case 0: keyb = (keyb & 0xff00) | (data); break;
|
||||
case 1: keyb = (keyb & 0x00ff) | (data << 8); break;
|
||||
case 0: state->keyb = (state->keyb & 0xff00) | (data); break;
|
||||
case 1: state->keyb = (state->keyb & 0x00ff) | (data << 8); break;
|
||||
}
|
||||
}
|
||||
|
||||
static UINT8 *nvram;
|
||||
static size_t nvram_size;
|
||||
|
||||
static NVRAM_HANDLER( mjkjidai )
|
||||
{
|
||||
mjkjidai_state *state = (mjkjidai_state *)machine->driver_data;
|
||||
|
||||
if (read_or_write)
|
||||
mame_fwrite(file, nvram, nvram_size);
|
||||
mame_fwrite(file, state->nvram, state->nvram_size);
|
||||
else if (file)
|
||||
mame_fread(file, nvram, nvram_size);
|
||||
mame_fread(file, state->nvram, state->nvram_size);
|
||||
else
|
||||
{
|
||||
nvram_init_count = 1;
|
||||
state->nvram_init_count = 1;
|
||||
}
|
||||
}
|
||||
|
||||
@ -175,11 +173,11 @@ static ADDRESS_MAP_START( mjkjidai_map, ADDRESS_SPACE_PROGRAM, 8 )
|
||||
AM_RANGE(0x0000, 0x7fff) AM_ROM
|
||||
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK(1)
|
||||
AM_RANGE(0xc000, 0xcfff) AM_RAM
|
||||
AM_RANGE(0xd000, 0xdfff) AM_RAM AM_BASE(&nvram) AM_SIZE(&nvram_size) // cleared and initialized on startup if bit 6 if port 00 is 0
|
||||
AM_RANGE(0xe000, 0xe01f) AM_RAM AM_BASE_GENERIC(spriteram) // shared with tilemap ram
|
||||
AM_RANGE(0xe800, 0xe81f) AM_RAM AM_BASE_GENERIC(spriteram2) // shared with tilemap ram
|
||||
AM_RANGE(0xf000, 0xf01f) AM_RAM AM_BASE_GENERIC(spriteram3) // shared with tilemap ram
|
||||
AM_RANGE(0xe000, 0xf7ff) AM_RAM_WRITE(mjkjidai_videoram_w) AM_BASE(&mjkjidai_videoram)
|
||||
AM_RANGE(0xd000, 0xdfff) AM_RAM AM_BASE_MEMBER(mjkjidai_state,nvram) AM_SIZE_MEMBER(mjkjidai_state,nvram_size) // cleared and initialized on startup if bit 6 if port 00 is 0
|
||||
AM_RANGE(0xe000, 0xe01f) AM_RAM AM_BASE_MEMBER(mjkjidai_state,spriteram1) // shared with tilemap ram
|
||||
AM_RANGE(0xe800, 0xe81f) AM_RAM AM_BASE_MEMBER(mjkjidai_state,spriteram2) // shared with tilemap ram
|
||||
AM_RANGE(0xf000, 0xf01f) AM_RAM AM_BASE_MEMBER(mjkjidai_state,spriteram3) // shared with tilemap ram
|
||||
AM_RANGE(0xe000, 0xf7ff) AM_RAM_WRITE(mjkjidai_videoram_w) AM_BASE_MEMBER(mjkjidai_state,videoram)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
static ADDRESS_MAP_START( mjkjidai_io_map, ADDRESS_SPACE_IO, 8 )
|
||||
@ -193,7 +191,7 @@ static ADDRESS_MAP_START( mjkjidai_io_map, ADDRESS_SPACE_IO, 8 )
|
||||
AM_RANGE(0x12, 0x12) AM_READ_PORT("IN1")
|
||||
AM_RANGE(0x20, 0x20) AM_DEVWRITE("sn1", sn76496_w)
|
||||
AM_RANGE(0x30, 0x30) AM_DEVWRITE("sn2", sn76496_w)
|
||||
AM_RANGE(0x40, 0x40) AM_WRITE(adpcm_w)
|
||||
AM_RANGE(0x40, 0x40) AM_DEVWRITE("adpcm", adpcm_w)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
|
||||
@ -375,6 +373,8 @@ GFXDECODE_END
|
||||
|
||||
static MACHINE_DRIVER_START( mjkjidai )
|
||||
|
||||
MDRV_DRIVER_DATA(mjkjidai_state)
|
||||
|
||||
/* basic machine hardware */
|
||||
MDRV_CPU_ADD("maincpu", Z80,10000000/2) /* 5 MHz ??? */
|
||||
MDRV_CPU_PROGRAM_MAP(mjkjidai_map)
|
||||
|
@ -52,36 +52,12 @@ Note:
|
||||
|
||||
|
||||
#include "driver.h"
|
||||
#include "deprecat.h"
|
||||
#include "cpu/z80/z80.h"
|
||||
#include "cpu/m68000/m68000.h"
|
||||
#include "deprecat.h"
|
||||
#include "sound/ay8910.h"
|
||||
#include "sound/msm5205.h"
|
||||
|
||||
|
||||
/***************************************************************************
|
||||
|
||||
Variables
|
||||
|
||||
***************************************************************************/
|
||||
|
||||
PALETTE_INIT( srmp2 );
|
||||
VIDEO_UPDATE( srmp2 );
|
||||
PALETTE_INIT( srmp3 );
|
||||
VIDEO_UPDATE( srmp3 );
|
||||
VIDEO_UPDATE( mjyuugi );
|
||||
|
||||
|
||||
extern int srmp2_color_bank;
|
||||
extern int srmp3_gfx_bank;
|
||||
extern int mjyuugi_gfx_bank;
|
||||
|
||||
static int srmp2_adpcm_bank;
|
||||
static int srmp2_adpcm_data;
|
||||
static UINT32 srmp2_adpcm_sptr;
|
||||
static UINT32 srmp2_adpcm_eptr;
|
||||
|
||||
static int srmp2_port_select;
|
||||
#include "includes/srmp2.h"
|
||||
|
||||
|
||||
/***************************************************************************
|
||||
@ -133,12 +109,16 @@ static DRIVER_INIT( srmp3 )
|
||||
|
||||
static MACHINE_RESET( srmp2 )
|
||||
{
|
||||
srmp2_port_select = 0;
|
||||
srmp2_state *state = (srmp2_state *)machine->driver_data;
|
||||
|
||||
state->port_select = 0;
|
||||
}
|
||||
|
||||
static MACHINE_RESET( srmp3 )
|
||||
{
|
||||
srmp2_port_select = 0;
|
||||
srmp2_state *state = (srmp2_state *)machine->driver_data;
|
||||
|
||||
state->port_select = 0;
|
||||
}
|
||||
|
||||
|
||||
@ -157,10 +137,12 @@ static WRITE16_HANDLER( srmp2_flags_w )
|
||||
x--- ---- : Palette Bank
|
||||
*/
|
||||
|
||||
srmp2_state *state = (srmp2_state *)space->machine->driver_data;
|
||||
|
||||
coin_counter_w( space->machine, 0, ((data & 0x01) >> 0) );
|
||||
coin_lockout_w( space->machine, 0, (((~data) & 0x10) >> 4) );
|
||||
srmp2_adpcm_bank = ( (data & 0x20) >> 5 );
|
||||
srmp2_color_bank = ( (data & 0x80) >> 7 );
|
||||
state->adpcm_bank = ( (data & 0x20) >> 5 );
|
||||
state->color_bank = ( (data & 0x80) >> 7 );
|
||||
}
|
||||
|
||||
|
||||
@ -182,8 +164,11 @@ static WRITE16_HANDLER( mjyuugi_adpcm_bank_w )
|
||||
---- xxxx : ADPCM Bank
|
||||
--xx ---- : GFX Bank
|
||||
*/
|
||||
srmp2_adpcm_bank = (data & 0x0f);
|
||||
mjyuugi_gfx_bank = ((data >> 4) & 0x03);
|
||||
|
||||
srmp2_state *state = (srmp2_state *)space->machine->driver_data;
|
||||
|
||||
state->adpcm_bank = (data & 0x0f);
|
||||
state->gfx_bank = ((data >> 4) & 0x03);
|
||||
}
|
||||
|
||||
|
||||
@ -196,17 +181,18 @@ static WRITE16_DEVICE_HANDLER( srmp2_adpcm_code_w )
|
||||
table and plays the ADPCM for itself.
|
||||
*/
|
||||
|
||||
srmp2_state *state = (srmp2_state *)device->machine->driver_data;
|
||||
UINT8 *ROM = memory_region(device->machine, "adpcm");
|
||||
|
||||
srmp2_adpcm_sptr = (ROM[((srmp2_adpcm_bank * 0x10000) + (data << 2) + 0)] << 8);
|
||||
srmp2_adpcm_eptr = (ROM[((srmp2_adpcm_bank * 0x10000) + (data << 2) + 1)] << 8);
|
||||
srmp2_adpcm_eptr = (srmp2_adpcm_eptr - 1) & 0x0ffff;
|
||||
state->adpcm_sptr = (ROM[((state->adpcm_bank * 0x10000) + (data << 2) + 0)] << 8);
|
||||
state->adpcm_eptr = (ROM[((state->adpcm_bank * 0x10000) + (data << 2) + 1)] << 8);
|
||||
state->adpcm_eptr = (state->adpcm_eptr - 1) & 0x0ffff;
|
||||
|
||||
srmp2_adpcm_sptr += (srmp2_adpcm_bank * 0x10000);
|
||||
srmp2_adpcm_eptr += (srmp2_adpcm_bank * 0x10000);
|
||||
state->adpcm_sptr += (state->adpcm_bank * 0x10000);
|
||||
state->adpcm_eptr += (state->adpcm_bank * 0x10000);
|
||||
|
||||
msm5205_reset_w(device, 0);
|
||||
srmp2_adpcm_data = -1;
|
||||
state->adpcm_data = -1;
|
||||
}
|
||||
|
||||
|
||||
@ -219,46 +205,48 @@ static WRITE8_DEVICE_HANDLER( srmp3_adpcm_code_w )
|
||||
table and plays the ADPCM for itself.
|
||||
*/
|
||||
|
||||
srmp2_state *state = (srmp2_state *)device->machine->driver_data;
|
||||
UINT8 *ROM = memory_region(device->machine, "adpcm");
|
||||
|
||||
srmp2_adpcm_sptr = (ROM[((srmp2_adpcm_bank * 0x10000) + (data << 2) + 0)] << 8);
|
||||
srmp2_adpcm_eptr = (ROM[((srmp2_adpcm_bank * 0x10000) + (data << 2) + 1)] << 8);
|
||||
srmp2_adpcm_eptr = (srmp2_adpcm_eptr - 1) & 0x0ffff;
|
||||
state->adpcm_sptr = (ROM[((state->adpcm_bank * 0x10000) + (data << 2) + 0)] << 8);
|
||||
state->adpcm_eptr = (ROM[((state->adpcm_bank * 0x10000) + (data << 2) + 1)] << 8);
|
||||
state->adpcm_eptr = (state->adpcm_eptr - 1) & 0x0ffff;
|
||||
|
||||
srmp2_adpcm_sptr += (srmp2_adpcm_bank * 0x10000);
|
||||
srmp2_adpcm_eptr += (srmp2_adpcm_bank * 0x10000);
|
||||
state->adpcm_sptr += (state->adpcm_bank * 0x10000);
|
||||
state->adpcm_eptr += (state->adpcm_bank * 0x10000);
|
||||
|
||||
msm5205_reset_w(device, 0);
|
||||
srmp2_adpcm_data = -1;
|
||||
state->adpcm_data = -1;
|
||||
}
|
||||
|
||||
|
||||
static void srmp2_adpcm_int(const device_config *device)
|
||||
{
|
||||
srmp2_state *state = (srmp2_state *)device->machine->driver_data;
|
||||
UINT8 *ROM = memory_region(device->machine, "adpcm");
|
||||
|
||||
if (srmp2_adpcm_sptr)
|
||||
if (state->adpcm_sptr)
|
||||
{
|
||||
if (srmp2_adpcm_data == -1)
|
||||
if (state->adpcm_data == -1)
|
||||
{
|
||||
srmp2_adpcm_data = ROM[srmp2_adpcm_sptr];
|
||||
state->adpcm_data = ROM[state->adpcm_sptr];
|
||||
|
||||
if (srmp2_adpcm_sptr >= srmp2_adpcm_eptr)
|
||||
if (state->adpcm_sptr >= state->adpcm_eptr)
|
||||
{
|
||||
msm5205_reset_w(device, 1);
|
||||
srmp2_adpcm_data = 0;
|
||||
srmp2_adpcm_sptr = 0;
|
||||
state->adpcm_data = 0;
|
||||
state->adpcm_sptr = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
msm5205_data_w(device, ((srmp2_adpcm_data >> 4) & 0x0f));
|
||||
msm5205_data_w(device, ((state->adpcm_data >> 4) & 0x0f));
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
msm5205_data_w(device, ((srmp2_adpcm_data >> 0) & 0x0f));
|
||||
srmp2_adpcm_sptr++;
|
||||
srmp2_adpcm_data = -1;
|
||||
msm5205_data_w(device, ((state->adpcm_data >> 0) & 0x0f));
|
||||
state->adpcm_sptr++;
|
||||
state->adpcm_data = -1;
|
||||
}
|
||||
}
|
||||
else
|
||||
@ -286,6 +274,8 @@ static READ16_HANDLER( srmp2_input_1_r )
|
||||
---x xxxx : Key code
|
||||
--x- ---- : Player 1 and 2 side flag
|
||||
*/
|
||||
|
||||
srmp2_state *state = (srmp2_state *)space->machine->driver_data;
|
||||
static const char *const keynames[] = { "KEY0", "KEY1", "KEY2", "KEY3" };
|
||||
|
||||
if (!ACCESSING_BITS_0_7)
|
||||
@ -293,7 +283,7 @@ static READ16_HANDLER( srmp2_input_1_r )
|
||||
return 0xffff;
|
||||
}
|
||||
|
||||
if (srmp2_port_select != 2) /* Panel keys */
|
||||
if (state->port_select != 2) /* Panel keys */
|
||||
{
|
||||
int i, j, t;
|
||||
|
||||
@ -333,27 +323,17 @@ static READ16_HANDLER( srmp2_input_2_r )
|
||||
|
||||
static WRITE16_HANDLER( srmp2_input_1_w )
|
||||
{
|
||||
if (data != 0x0000)
|
||||
{
|
||||
srmp2_port_select = 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
srmp2_port_select = 0;
|
||||
}
|
||||
srmp2_state *state = (srmp2_state *)space->machine->driver_data;
|
||||
|
||||
state->port_select = (data != 0x0000) ? 1 : 0;
|
||||
}
|
||||
|
||||
|
||||
static WRITE16_HANDLER( srmp2_input_2_w )
|
||||
{
|
||||
if (data == 0x0000)
|
||||
{
|
||||
srmp2_port_select = 2;
|
||||
}
|
||||
else
|
||||
{
|
||||
srmp2_port_select = 0;
|
||||
}
|
||||
srmp2_state *state = (srmp2_state *)space->machine->driver_data;
|
||||
|
||||
state->port_select = (data == 0x0000) ? 2 : 0;
|
||||
}
|
||||
|
||||
|
||||
@ -364,10 +344,11 @@ static WRITE8_HANDLER( srmp3_rombank_w )
|
||||
xxx- ---- : ADPCM ROM bank
|
||||
*/
|
||||
|
||||
srmp2_state *state = (srmp2_state *)space->machine->driver_data;
|
||||
UINT8 *ROM = memory_region(space->machine, "maincpu");
|
||||
int addr;
|
||||
|
||||
srmp2_adpcm_bank = ((data & 0xe0) >> 5);
|
||||
state->adpcm_bank = ((data & 0xe0) >> 5);
|
||||
|
||||
if (data & 0x1f) addr = ((0x10000 + (0x2000 * (data & 0x0f))) - 0x8000);
|
||||
else addr = 0x10000;
|
||||
@ -385,8 +366,8 @@ static WRITE8_HANDLER( srmp3_rombank_w )
|
||||
static ADDRESS_MAP_START( srmp2_map, ADDRESS_SPACE_PROGRAM, 16 )
|
||||
AM_RANGE(0x000000, 0x03ffff) AM_ROM
|
||||
AM_RANGE(0x0c0000, 0x0c3fff) AM_RAM AM_BASE_SIZE_GENERIC(nvram)
|
||||
AM_RANGE(0x140000, 0x143fff) AM_RAM AM_BASE_GENERIC(spriteram2) /* Sprites Code + X + Attr */
|
||||
AM_RANGE(0x180000, 0x180609) AM_RAM AM_BASE_GENERIC(spriteram) /* Sprites Y */
|
||||
AM_RANGE(0x140000, 0x143fff) AM_RAM AM_BASE_MEMBER(srmp2_state,spriteram2.u16) /* Sprites Code + X + Attr */
|
||||
AM_RANGE(0x180000, 0x180609) AM_RAM AM_BASE_MEMBER(srmp2_state,spriteram1.u16) /* Sprites Y */
|
||||
AM_RANGE(0x1c0000, 0x1c0001) AM_WRITENOP /* ??? */
|
||||
AM_RANGE(0x800000, 0x800001) AM_WRITE(srmp2_flags_w) /* ADPCM bank, Color bank, etc. */
|
||||
AM_RANGE(0x900000, 0x900001) AM_READ_PORT("SYSTEM") /* Coinage */
|
||||
@ -424,9 +405,9 @@ static ADDRESS_MAP_START( mjyuugi_map, ADDRESS_SPACE_PROGRAM, 16 )
|
||||
AM_RANGE(0xb00000, 0xb00001) AM_DEVREAD8("aysnd", ay8910_r, 0x00ff)
|
||||
AM_RANGE(0xb00000, 0xb00003) AM_DEVWRITE8("aysnd", ay8910_address_data_w, 0x00ff)
|
||||
AM_RANGE(0xc00000, 0xc00001) AM_WRITENOP /* ??? */
|
||||
AM_RANGE(0xd00000, 0xd00609) AM_RAM AM_BASE_GENERIC(spriteram) /* Sprites Y */
|
||||
AM_RANGE(0xd00000, 0xd00609) AM_RAM AM_BASE_MEMBER(srmp2_state,spriteram1.u16) /* Sprites Y */
|
||||
AM_RANGE(0xd02000, 0xd023ff) AM_RAM /* ??? only writes $00fa */
|
||||
AM_RANGE(0xe00000, 0xe03fff) AM_RAM AM_BASE_GENERIC(spriteram2) /* Sprites Code + X + Attr */
|
||||
AM_RANGE(0xe00000, 0xe03fff) AM_RAM AM_BASE_MEMBER(srmp2_state,spriteram2.u16) /* Sprites Code + X + Attr */
|
||||
AM_RANGE(0xffc000, 0xffffff) AM_RAM AM_BASE_SIZE_GENERIC(nvram)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
@ -448,9 +429,10 @@ static WRITE8_HANDLER( srmp3_input_1_w )
|
||||
---- -x-- : Player 2 side flag ?
|
||||
*/
|
||||
|
||||
srmp2_state *state = (srmp2_state *)space->machine->driver_data;
|
||||
logerror("PC:%04X DATA:%02X srmp3_input_1_w\n", cpu_get_pc(space->cpu), data);
|
||||
|
||||
srmp2_port_select = 0;
|
||||
state->port_select = 0;
|
||||
|
||||
{
|
||||
static int qqq01 = 0;
|
||||
@ -469,12 +451,13 @@ static WRITE8_HANDLER( srmp3_input_1_w )
|
||||
|
||||
static WRITE8_HANDLER( srmp3_input_2_w )
|
||||
{
|
||||
srmp2_state *state = (srmp2_state *)space->machine->driver_data;
|
||||
|
||||
/* Key matrix reading related ? */
|
||||
|
||||
logerror("PC:%04X DATA:%02X srmp3_input_2_w\n", cpu_get_pc(space->cpu), data);
|
||||
|
||||
srmp2_port_select = 1;
|
||||
state->port_select = 1;
|
||||
|
||||
}
|
||||
|
||||
@ -532,9 +515,11 @@ static WRITE8_HANDLER( srmp3_flags_w )
|
||||
xx-- ---- : GFX Bank
|
||||
*/
|
||||
|
||||
srmp2_state *state = (srmp2_state *)space->machine->driver_data;
|
||||
|
||||
coin_counter_w( space->machine, 0, ((data & 0x01) >> 0) );
|
||||
coin_lockout_w( space->machine, 0, (((~data) & 0x10) >> 4) );
|
||||
srmp3_gfx_bank = (data >> 6) & 0x03;
|
||||
state->gfx_bank = (data >> 6) & 0x03;
|
||||
}
|
||||
|
||||
|
||||
@ -543,10 +528,10 @@ static ADDRESS_MAP_START( srmp3_map, ADDRESS_SPACE_PROGRAM, 8 )
|
||||
AM_RANGE(0x8000, 0x9fff) AM_ROMBANK(1) /* rom bank */
|
||||
AM_RANGE(0xa000, 0xa7ff) AM_RAM AM_BASE_SIZE_GENERIC(nvram) /* work ram */
|
||||
AM_RANGE(0xa800, 0xa800) AM_WRITENOP /* flag ? */
|
||||
AM_RANGE(0xb000, 0xb303) AM_RAM AM_BASE_GENERIC(spriteram) /* Sprites Y */
|
||||
AM_RANGE(0xb000, 0xb303) AM_RAM AM_BASE_MEMBER(srmp2_state,spriteram1.u8) /* Sprites Y */
|
||||
AM_RANGE(0xb800, 0xb800) AM_WRITENOP /* flag ? */
|
||||
AM_RANGE(0xc000, 0xdfff) AM_RAM AM_BASE_GENERIC(spriteram2) /* Sprites Code + X + Attr */
|
||||
AM_RANGE(0xe000, 0xffff) AM_RAM AM_BASE_GENERIC(spriteram3)
|
||||
AM_RANGE(0xc000, 0xdfff) AM_RAM AM_BASE_MEMBER(srmp2_state,spriteram2.u8) /* Sprites Code + X + Attr */
|
||||
AM_RANGE(0xe000, 0xffff) AM_RAM AM_BASE_MEMBER(srmp2_state,spriteram3.u8)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
static ADDRESS_MAP_START( srmp3_io_map, ADDRESS_SPACE_IO, 8 )
|
||||
@ -1024,6 +1009,8 @@ GFXDECODE_END
|
||||
|
||||
static MACHINE_DRIVER_START( srmp2 )
|
||||
|
||||
MDRV_DRIVER_DATA(srmp2_state)
|
||||
|
||||
/* basic machine hardware */
|
||||
MDRV_CPU_ADD("maincpu", M68000,16000000/2) /* 8.00 MHz */
|
||||
MDRV_CPU_PROGRAM_MAP(srmp2_map)
|
||||
@ -1061,6 +1048,8 @@ MACHINE_DRIVER_END
|
||||
|
||||
static MACHINE_DRIVER_START( srmp3 )
|
||||
|
||||
MDRV_DRIVER_DATA(srmp2_state)
|
||||
|
||||
/* basic machine hardware */
|
||||
|
||||
MDRV_CPU_ADD("maincpu", Z80, 3500000) /* 3.50 MHz ? */
|
||||
@ -1101,6 +1090,8 @@ MACHINE_DRIVER_END
|
||||
|
||||
static MACHINE_DRIVER_START( mjyuugi )
|
||||
|
||||
MDRV_DRIVER_DATA(srmp2_state)
|
||||
|
||||
/* basic machine hardware */
|
||||
MDRV_CPU_ADD("maincpu", M68000,16000000/2) /* 8.00 MHz */
|
||||
MDRV_CPU_PROGRAM_MAP(mjyuugi_map)
|
||||
|
@ -34,6 +34,7 @@ TODO:
|
||||
#include "cpu/m68000/m68000.h"
|
||||
#include "machine/namcoio.h"
|
||||
#include "sound/namco.h"
|
||||
#include "includes/mappy.h"
|
||||
|
||||
|
||||
// video\toypop.c
|
||||
@ -253,12 +254,7 @@ static WRITE16_HANDLER( toypop_m68000_interrupt_disable_w )
|
||||
|
||||
static ADDRESS_MAP_START( liblrabl_map, ADDRESS_SPACE_PROGRAM, 8 )
|
||||
AM_RANGE(0x0000, 0x07ff) AM_RAM_WRITE(toypop_videoram_w) AM_BASE(&toypop_videoram) /* video RAM */
|
||||
AM_RANGE(0x0800, 0x0f7f) AM_RAM /* general RAM, area 1 */
|
||||
AM_RANGE(0x0f80, 0x0fff) AM_RAM AM_BASE_GENERIC(spriteram) /* sprite RAM, area 1 */
|
||||
AM_RANGE(0x1000, 0x177f) AM_RAM /* general RAM, area 2 */
|
||||
AM_RANGE(0x1780, 0x17ff) AM_RAM AM_BASE_GENERIC(spriteram2) /* sprite RAM, area 2 */
|
||||
AM_RANGE(0x1800, 0x1f7f) AM_RAM /* general RAM, area 3 */
|
||||
AM_RANGE(0x1f80, 0x1fff) AM_RAM AM_BASE_GENERIC(spriteram3) /* sprite RAM, area 3 */
|
||||
AM_RANGE(0x0800, 0x1fff) AM_RAM AM_BASE(&mappy_spriteram) /* general RAM, area 1 */
|
||||
AM_RANGE(0x2800, 0x2fff) AM_RAM AM_BASE(&toypop_m68000_sharedram) /* shared RAM with the 68000 CPU */
|
||||
AM_RANGE(0x6000, 0x63ff) AM_DEVREADWRITE("namco", toypop_sound_sharedram_r, toypop_sound_sharedram_w) /* shared RAM with sound CPU */
|
||||
AM_RANGE(0x6800, 0x683f) AM_READWRITE(namcoio_r, namcoio_w) /* custom I/O */
|
||||
@ -274,12 +270,7 @@ ADDRESS_MAP_END
|
||||
|
||||
static ADDRESS_MAP_START( toypop_map, ADDRESS_SPACE_PROGRAM, 8 )
|
||||
AM_RANGE(0x0000, 0x07ff) AM_RAM_WRITE(toypop_videoram_w) AM_BASE(&toypop_videoram) /* video RAM */
|
||||
AM_RANGE(0x0800, 0x0f7f) AM_RAM /* general RAM, area 1 */
|
||||
AM_RANGE(0x0f80, 0x0fff) AM_RAM AM_BASE_GENERIC(spriteram) /* sprite RAM, area 1 */
|
||||
AM_RANGE(0x1000, 0x177f) AM_RAM /* general RAM, area 2 */
|
||||
AM_RANGE(0x1780, 0x17ff) AM_RAM AM_BASE_GENERIC(spriteram2) /* sprite RAM, area 2 */
|
||||
AM_RANGE(0x1800, 0x1f7f) AM_RAM /* general RAM, area 3 */
|
||||
AM_RANGE(0x1f80, 0x1fff) AM_RAM AM_BASE_GENERIC(spriteram3) /* sprite RAM, area 3 */
|
||||
AM_RANGE(0x0800, 0x1fff) AM_RAM AM_BASE(&mappy_spriteram) /* general RAM, area 1 */
|
||||
AM_RANGE(0x2800, 0x2fff) AM_RAM AM_BASE(&toypop_m68000_sharedram) /* shared RAM with the 68000 CPU */
|
||||
AM_RANGE(0x6000, 0x603f) AM_READWRITE(namcoio_r, namcoio_w) /* custom I/O */
|
||||
AM_RANGE(0x6800, 0x6bff) AM_DEVREADWRITE("namco", toypop_sound_sharedram_r, toypop_sound_sharedram_w) /* shared RAM with sound CPU */
|
||||
|
@ -65,23 +65,7 @@ write:
|
||||
#include "cpu/z80/z80.h"
|
||||
#include "deprecat.h"
|
||||
#include "sound/ay8910.h"
|
||||
|
||||
|
||||
extern UINT8 *vastar_bg1videoram,*vastar_bg2videoram,*vastar_fgvideoram;
|
||||
extern UINT8 *vastar_bg1_scroll,*vastar_bg2_scroll;
|
||||
extern UINT8 *vastar_sprite_priority;
|
||||
|
||||
WRITE8_HANDLER( vastar_bg1videoram_w );
|
||||
WRITE8_HANDLER( vastar_bg2videoram_w );
|
||||
WRITE8_HANDLER( vastar_fgvideoram_w );
|
||||
READ8_HANDLER( vastar_bg1videoram_r );
|
||||
READ8_HANDLER( vastar_bg2videoram_r );
|
||||
VIDEO_START( vastar );
|
||||
VIDEO_UPDATE( vastar );
|
||||
|
||||
static UINT8 *vastar_sharedram;
|
||||
|
||||
|
||||
#include "includes/vastar.h"
|
||||
|
||||
static MACHINE_RESET( vastar )
|
||||
{
|
||||
@ -100,12 +84,16 @@ static WRITE8_HANDLER( vastar_hold_cpu2_w )
|
||||
|
||||
static READ8_HANDLER( vastar_sharedram_r )
|
||||
{
|
||||
return vastar_sharedram[offset];
|
||||
vastar_state *state = (vastar_state *)space->machine->driver_data;
|
||||
|
||||
return state->sharedram[offset];
|
||||
}
|
||||
|
||||
static WRITE8_HANDLER( vastar_sharedram_w )
|
||||
{
|
||||
vastar_sharedram[offset] = data;
|
||||
vastar_state *state = (vastar_state *)space->machine->driver_data;
|
||||
|
||||
state->sharedram[offset] = data;
|
||||
}
|
||||
|
||||
static WRITE8_HANDLER( flip_screen_w )
|
||||
@ -117,22 +105,22 @@ static WRITE8_HANDLER( flip_screen_w )
|
||||
|
||||
static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 8 )
|
||||
AM_RANGE(0x0000, 0x7fff) AM_ROM
|
||||
AM_RANGE(0x8000, 0x8fff) AM_READWRITE(vastar_bg2videoram_r, vastar_bg2videoram_w) AM_BASE(&vastar_bg2videoram)
|
||||
AM_RANGE(0x9000, 0x9fff) AM_READWRITE(vastar_bg1videoram_r, vastar_bg1videoram_w) AM_BASE(&vastar_bg1videoram)
|
||||
AM_RANGE(0x8000, 0x8fff) AM_READWRITE(vastar_bg2videoram_r, vastar_bg2videoram_w) AM_BASE_MEMBER(vastar_state,bg2videoram)
|
||||
AM_RANGE(0x9000, 0x9fff) AM_READWRITE(vastar_bg1videoram_r, vastar_bg1videoram_w) AM_BASE_MEMBER(vastar_state,bg1videoram)
|
||||
AM_RANGE(0xa000, 0xafff) AM_READWRITE(vastar_bg2videoram_r, vastar_bg2videoram_w) /* mirror address */
|
||||
AM_RANGE(0xb000, 0xbfff) AM_READWRITE(vastar_bg1videoram_r, vastar_bg1videoram_w) /* mirror address */
|
||||
AM_RANGE(0xc000, 0xc000) AM_WRITE(SMH_RAM) AM_BASE(&vastar_sprite_priority) /* sprite/BG priority */
|
||||
AM_RANGE(0xc400, 0xcfff) AM_RAM_WRITE(vastar_fgvideoram_w) AM_BASE(&vastar_fgvideoram)
|
||||
AM_RANGE(0xc000, 0xc000) AM_WRITE(SMH_RAM) AM_BASE_MEMBER(vastar_state,sprite_priority) /* sprite/BG priority */
|
||||
AM_RANGE(0xc400, 0xcfff) AM_RAM_WRITE(vastar_fgvideoram_w) AM_BASE_MEMBER(vastar_state,fgvideoram)
|
||||
AM_RANGE(0xe000, 0xe000) AM_READWRITE(watchdog_reset_r, watchdog_reset_w)
|
||||
AM_RANGE(0xf000, 0xf0ff) AM_READWRITE(vastar_sharedram_r, vastar_sharedram_w) AM_BASE(&vastar_sharedram)
|
||||
AM_RANGE(0xf000, 0xf0ff) AM_READWRITE(vastar_sharedram_r, vastar_sharedram_w) AM_BASE_MEMBER(vastar_state,sharedram)
|
||||
AM_RANGE(0xf100, 0xf7ff) AM_RAM
|
||||
|
||||
/* in hidden portions of video RAM: (fallthrough) */
|
||||
AM_RANGE(0xc400, 0xc43f) AM_WRITE(SMH_RAM) AM_BASE_SIZE_GENERIC(spriteram) /* actually c410-c41f and c430-c43f */
|
||||
AM_RANGE(0xc7c0, 0xc7df) AM_WRITE(SMH_RAM) AM_BASE(&vastar_bg1_scroll)
|
||||
AM_RANGE(0xc7e0, 0xc7ff) AM_WRITE(SMH_RAM) AM_BASE(&vastar_bg2_scroll)
|
||||
AM_RANGE(0xc800, 0xc83f) AM_WRITE(SMH_RAM) AM_BASE_GENERIC(spriteram2) /* actually c810-c81f and c830-c83f */
|
||||
AM_RANGE(0xcc00, 0xcc3f) AM_WRITE(SMH_RAM) AM_BASE_GENERIC(spriteram3) /* actually cc10-cc1f and cc30-cc3f */
|
||||
AM_RANGE(0xc400, 0xc43f) AM_WRITE(SMH_RAM) AM_BASE_MEMBER(vastar_state,spriteram1) /* actually c410-c41f and c430-c43f */
|
||||
AM_RANGE(0xc7c0, 0xc7df) AM_WRITE(SMH_RAM) AM_BASE_MEMBER(vastar_state,bg1_scroll)
|
||||
AM_RANGE(0xc7e0, 0xc7ff) AM_WRITE(SMH_RAM) AM_BASE_MEMBER(vastar_state,bg2_scroll)
|
||||
AM_RANGE(0xc800, 0xc83f) AM_WRITE(SMH_RAM) AM_BASE_MEMBER(vastar_state,spriteram2) /* actually c810-c81f and c830-c83f */
|
||||
AM_RANGE(0xcc00, 0xcc3f) AM_WRITE(SMH_RAM) AM_BASE_MEMBER(vastar_state,spriteram3) /* actually cc10-cc1f and cc30-cc3f */
|
||||
ADDRESS_MAP_END
|
||||
|
||||
static ADDRESS_MAP_START( main_port_map, ADDRESS_SPACE_IO, 8 )
|
||||
@ -306,6 +294,8 @@ static const ay8910_interface ay8910_config =
|
||||
|
||||
static MACHINE_DRIVER_START( vastar )
|
||||
|
||||
MDRV_DRIVER_DATA(vastar_state)
|
||||
|
||||
/* basic machine hardware */
|
||||
MDRV_CPU_ADD("maincpu", Z80, 3072000) /* 3.072 MHz ???? */
|
||||
MDRV_CPU_PROGRAM_MAP(main_map)
|
||||
|
@ -154,10 +154,6 @@ VIDEO_START( digdug )
|
||||
|
||||
tilemap_set_transparent_pen(tx_tilemap, 0);
|
||||
|
||||
machine->generic.spriteram.u8 = digdug_objram + 0x380;
|
||||
machine->generic.spriteram2.u8 = digdug_posram + 0x380;
|
||||
machine->generic.spriteram3.u8 = digdug_flpram + 0x380;
|
||||
|
||||
state_save_register_global(machine, bg_select);
|
||||
state_save_register_global(machine, tx_color_mode);
|
||||
state_save_register_global(machine, bg_disable);
|
||||
@ -256,9 +252,9 @@ static const rectangle spritevisiblearea =
|
||||
|
||||
static void draw_sprites(running_machine* machine, bitmap_t *bitmap, const rectangle *cliprect )
|
||||
{
|
||||
UINT8 *spriteram = machine->generic.spriteram.u8;
|
||||
UINT8 *spriteram_2 = machine->generic.spriteram2.u8;
|
||||
UINT8 *spriteram_3 = machine->generic.spriteram3.u8;
|
||||
UINT8 *spriteram = digdug_objram + 0x380;
|
||||
UINT8 *spriteram_2 = digdug_posram + 0x380;
|
||||
UINT8 *spriteram_3 = digdug_flpram + 0x380;
|
||||
int offs;
|
||||
|
||||
for (offs = 0;offs < 0x80;offs += 2)
|
||||
|
@ -445,11 +445,6 @@ VIDEO_START( galaga )
|
||||
|
||||
galaga_gfxbank = 0;
|
||||
|
||||
machine->generic.spriteram.u8 = galaga_ram1 + 0x380;
|
||||
machine->generic.spriteram2.u8 = galaga_ram2 + 0x380;
|
||||
machine->generic.spriteram3.u8 = galaga_ram3 + 0x380;
|
||||
|
||||
|
||||
state_save_register_global_array(machine, galaga_starcontrol);
|
||||
state_save_register_global(machine, stars_scrollx);
|
||||
state_save_register_global(machine, stars_scrolly);
|
||||
@ -496,9 +491,9 @@ WRITE8_HANDLER ( gatsbee_bank_w )
|
||||
|
||||
static void draw_sprites(running_machine *machine, bitmap_t *bitmap, const rectangle *cliprect )
|
||||
{
|
||||
UINT8 *spriteram = machine->generic.spriteram.u8;
|
||||
UINT8 *spriteram_2 = machine->generic.spriteram2.u8;
|
||||
UINT8 *spriteram_3 = machine->generic.spriteram3.u8;
|
||||
UINT8 *spriteram = galaga_ram1 + 0x380;
|
||||
UINT8 *spriteram_2 = galaga_ram2 + 0x380;
|
||||
UINT8 *spriteram_3 = galaga_ram3 + 0x380;
|
||||
int offs;
|
||||
|
||||
|
||||
|
@ -199,10 +199,6 @@ VIDEO_START( gaplus )
|
||||
|
||||
colortable_configure_tilemap_groups(machine->colortable, bg_tilemap, machine->gfx[0], 0xff);
|
||||
|
||||
machine->generic.spriteram.u8 = gaplus_spriteram + 0x780;
|
||||
machine->generic.spriteram2.u8 = machine->generic.spriteram.u8 + 0x800;
|
||||
machine->generic.spriteram3.u8 = machine->generic.spriteram2.u8 + 0x800;
|
||||
|
||||
starfield_init(machine);
|
||||
}
|
||||
|
||||
@ -267,9 +263,9 @@ static void starfield_render(running_machine *machine, bitmap_t *bitmap)
|
||||
|
||||
static void draw_sprites(running_machine *machine, bitmap_t *bitmap, const rectangle *cliprect )
|
||||
{
|
||||
UINT8 *spriteram = machine->generic.spriteram.u8;
|
||||
UINT8 *spriteram_2 = machine->generic.spriteram2.u8;
|
||||
UINT8 *spriteram_3 = machine->generic.spriteram3.u8;
|
||||
UINT8 *spriteram = gaplus_spriteram + 0x780;
|
||||
UINT8 *spriteram_2 = spriteram + 0x800;
|
||||
UINT8 *spriteram_3 = spriteram_2 + 0x800;
|
||||
int offs;
|
||||
|
||||
for (offs = 0;offs < 0x80;offs += 2)
|
||||
|
@ -1,5 +1,6 @@
|
||||
#include "driver.h"
|
||||
#include "video/resnet.h"
|
||||
#include "includes/mappy.h"
|
||||
|
||||
|
||||
UINT8 *mappy_videoram;
|
||||
@ -326,10 +327,6 @@ VIDEO_START( superpac )
|
||||
sprite_bitmap = video_screen_auto_bitmap_alloc(machine->primary_screen);
|
||||
|
||||
colortable_configure_tilemap_groups(machine->colortable, bg_tilemap, machine->gfx[0], 31);
|
||||
|
||||
machine->generic.spriteram.u8 = mappy_spriteram + 0x780;
|
||||
machine->generic.spriteram2.u8 = machine->generic.spriteram.u8 + 0x800;
|
||||
machine->generic.spriteram3.u8 = machine->generic.spriteram2.u8 + 0x800;
|
||||
}
|
||||
|
||||
VIDEO_START( phozon )
|
||||
@ -338,11 +335,7 @@ VIDEO_START( phozon )
|
||||
|
||||
colortable_configure_tilemap_groups(machine->colortable, bg_tilemap, machine->gfx[0], 15);
|
||||
|
||||
machine->generic.spriteram.u8 = mappy_spriteram + 0x780;
|
||||
machine->generic.spriteram2.u8 = machine->generic.spriteram.u8 + 0x800;
|
||||
machine->generic.spriteram3.u8 = machine->generic.spriteram2.u8 + 0x800;
|
||||
|
||||
state_save_register_global(machine, mappy_scroll);
|
||||
state_save_register_global(machine, mappy_scroll);
|
||||
}
|
||||
|
||||
VIDEO_START( mappy )
|
||||
@ -351,10 +344,6 @@ VIDEO_START( mappy )
|
||||
|
||||
colortable_configure_tilemap_groups(machine->colortable, bg_tilemap, machine->gfx[0], 31);
|
||||
tilemap_set_scroll_cols(bg_tilemap, 36);
|
||||
|
||||
machine->generic.spriteram.u8 = mappy_spriteram + 0x780;
|
||||
machine->generic.spriteram2.u8 = machine->generic.spriteram.u8 + 0x800;
|
||||
machine->generic.spriteram3.u8 = machine->generic.spriteram2.u8 + 0x800;
|
||||
}
|
||||
|
||||
|
||||
@ -404,9 +393,9 @@ WRITE8_HANDLER( mappy_scroll_w )
|
||||
/* also used by toypop.c */
|
||||
void mappy_draw_sprites(running_machine *machine, bitmap_t *bitmap, const rectangle *cliprect, int xoffs, int yoffs, int transcolor)
|
||||
{
|
||||
UINT8 *spriteram = machine->generic.spriteram.u8;
|
||||
UINT8 *spriteram_2 = machine->generic.spriteram2.u8;
|
||||
UINT8 *spriteram_3 = machine->generic.spriteram3.u8;
|
||||
UINT8 *spriteram = mappy_spriteram + 0x780;
|
||||
UINT8 *spriteram_2 = spriteram + 0x800;
|
||||
UINT8 *spriteram_3 = spriteram_2 + 0x800;
|
||||
int offs;
|
||||
|
||||
for (offs = 0;offs < 0x80;offs += 2)
|
||||
@ -482,9 +471,9 @@ spriteram_3
|
||||
|
||||
static void phozon_draw_sprites(running_machine *machine, bitmap_t *bitmap, const rectangle *cliprect )
|
||||
{
|
||||
UINT8 *spriteram = machine->generic.spriteram.u8;
|
||||
UINT8 *spriteram_2 = machine->generic.spriteram2.u8;
|
||||
UINT8 *spriteram_3 = machine->generic.spriteram3.u8;
|
||||
UINT8 *spriteram = mappy_spriteram + 0x780;
|
||||
UINT8 *spriteram_2 = spriteram + 0x800;
|
||||
UINT8 *spriteram_3 = spriteram_2 + 0x800;
|
||||
int offs;
|
||||
|
||||
for (offs = 0;offs < 0x80;offs += 2)
|
||||
|
@ -1,7 +1,5 @@
|
||||
#include "driver.h"
|
||||
|
||||
|
||||
UINT8 *mjkjidai_videoram;
|
||||
#include "includes/mjkjidai.h"
|
||||
|
||||
static int display_enable;
|
||||
static tilemap *bg_tilemap;
|
||||
@ -16,9 +14,11 @@ static tilemap *bg_tilemap;
|
||||
|
||||
static TILE_GET_INFO( get_tile_info )
|
||||
{
|
||||
int attr = mjkjidai_videoram[tile_index + 0x800];
|
||||
int code = mjkjidai_videoram[tile_index] + ((attr & 0x1f) << 8);
|
||||
int color = mjkjidai_videoram[tile_index + 0x1000];
|
||||
mjkjidai_state *state = (mjkjidai_state *)machine->driver_data;
|
||||
|
||||
int attr = state->videoram[tile_index + 0x800];
|
||||
int code = state->videoram[tile_index] + ((attr & 0x1f) << 8);
|
||||
int color = state->videoram[tile_index + 0x1000];
|
||||
SET_TILE_INFO(0,code,color >> 3,0);
|
||||
}
|
||||
|
||||
@ -45,7 +45,9 @@ VIDEO_START( mjkjidai )
|
||||
|
||||
WRITE8_HANDLER( mjkjidai_videoram_w )
|
||||
{
|
||||
mjkjidai_videoram[offset] = data;
|
||||
mjkjidai_state *state = (mjkjidai_state *)space->machine->driver_data;
|
||||
|
||||
state->videoram[offset] = data;
|
||||
tilemap_mark_tile_dirty(bg_tilemap,offset & 0x7ff);
|
||||
}
|
||||
|
||||
@ -89,9 +91,10 @@ WRITE8_HANDLER( mjkjidai_ctrl_w )
|
||||
|
||||
static void draw_sprites(running_machine *machine, bitmap_t *bitmap,const rectangle *cliprect)
|
||||
{
|
||||
UINT8 *spriteram = machine->generic.spriteram.u8;
|
||||
UINT8 *spriteram_2 = machine->generic.spriteram2.u8;
|
||||
UINT8 *spriteram_3 = machine->generic.spriteram3.u8;
|
||||
mjkjidai_state *state = (mjkjidai_state *)machine->driver_data;
|
||||
UINT8 *spriteram = state->spriteram1;
|
||||
UINT8 *spriteram_2 = state->spriteram2;
|
||||
UINT8 *spriteram_3 = state->spriteram3;
|
||||
int offs;
|
||||
|
||||
for (offs = 0x20-2;offs >= 0;offs -= 2)
|
||||
|
@ -220,10 +220,6 @@ VIDEO_START( pacland )
|
||||
tilemap_set_transmask(fg_tilemap, color, mask, 0);
|
||||
}
|
||||
|
||||
machine->generic.spriteram.u8 = pacland_spriteram + 0x780;
|
||||
machine->generic.spriteram2.u8 = machine->generic.spriteram.u8 + 0x800;
|
||||
machine->generic.spriteram3.u8 = machine->generic.spriteram2.u8 + 0x800;
|
||||
|
||||
state_save_register_global(machine, palette_bank);
|
||||
state_save_register_global(machine, scroll0);
|
||||
state_save_register_global(machine, scroll1);
|
||||
@ -287,9 +283,9 @@ WRITE8_HANDLER( pacland_bankswitch_w )
|
||||
/* the sprite generator IC is the same as Mappy */
|
||||
static void draw_sprites(running_machine *machine, bitmap_t *bitmap, const rectangle *cliprect, int whichmask)
|
||||
{
|
||||
UINT8 *spriteram = machine->generic.spriteram.u8;
|
||||
UINT8 *spriteram_2 = machine->generic.spriteram2.u8;
|
||||
UINT8 *spriteram_3 = machine->generic.spriteram3.u8;
|
||||
UINT8 *spriteram = pacland_spriteram + 0x780;
|
||||
UINT8 *spriteram_2 = spriteram + 0x800;
|
||||
UINT8 *spriteram_3 = spriteram_2 + 0x800;
|
||||
int offs;
|
||||
|
||||
for (offs = 0;offs < 0x80;offs += 2)
|
||||
|
@ -115,10 +115,6 @@ VIDEO_START( retofinv )
|
||||
fg_tilemap = tilemap_create(machine, fg_get_tile_info,tilemap_scan,8,8,36,28);
|
||||
|
||||
colortable_configure_tilemap_groups(machine->colortable, fg_tilemap, machine->gfx[0], 0);
|
||||
|
||||
machine->generic.spriteram.u8 = retofinv_sharedram + 0x0780;
|
||||
machine->generic.spriteram2.u8 = retofinv_sharedram + 0x0f80;
|
||||
machine->generic.spriteram3.u8 = retofinv_sharedram + 0x1780;
|
||||
}
|
||||
|
||||
|
||||
@ -177,9 +173,9 @@ WRITE8_HANDLER( retofinv_gfx_ctrl_w )
|
||||
|
||||
static void draw_sprites(running_machine *machine, bitmap_t *bitmap)
|
||||
{
|
||||
UINT8 *spriteram = machine->generic.spriteram.u8;
|
||||
UINT8 *spriteram_2 = machine->generic.spriteram2.u8;
|
||||
UINT8 *spriteram_3 = machine->generic.spriteram3.u8;
|
||||
UINT8 *spriteram = retofinv_sharedram + 0x0780;
|
||||
UINT8 *spriteram_2 = retofinv_sharedram + 0x0f80;
|
||||
UINT8 *spriteram_3 = retofinv_sharedram + 0x1780;
|
||||
int offs;
|
||||
static const rectangle spritevisiblearea =
|
||||
{
|
||||
|
@ -116,10 +116,6 @@ VIDEO_START( skykid )
|
||||
|
||||
tilemap_set_transparent_pen(tx_tilemap, 0);
|
||||
|
||||
machine->generic.spriteram.u8 = skykid_spriteram + 0x780;
|
||||
machine->generic.spriteram2.u8 = machine->generic.spriteram.u8 + 0x0800;
|
||||
machine->generic.spriteram3.u8 = machine->generic.spriteram2.u8 + 0x0800;
|
||||
|
||||
state_save_register_global(machine, priority);
|
||||
state_save_register_global(machine, scroll_x);
|
||||
state_save_register_global(machine, scroll_y);
|
||||
@ -184,9 +180,9 @@ WRITE8_HANDLER( skykid_flipscreen_priority_w )
|
||||
/* the sprite generator IC is the same as Mappy */
|
||||
static void draw_sprites(running_machine *machine, bitmap_t *bitmap,const rectangle *cliprect)
|
||||
{
|
||||
UINT8 *spriteram = machine->generic.spriteram.u8;
|
||||
UINT8 *spriteram_2 = machine->generic.spriteram2.u8;
|
||||
UINT8 *spriteram_3 = machine->generic.spriteram3.u8;
|
||||
UINT8 *spriteram = skykid_spriteram + 0x780;
|
||||
UINT8 *spriteram_2 = spriteram + 0x0800;
|
||||
UINT8 *spriteram_3 = spriteram_2 + 0x0800;
|
||||
int offs;
|
||||
|
||||
for (offs = 0;offs < 0x80;offs += 2)
|
||||
|
@ -8,14 +8,7 @@ Functions to emulate the video hardware of the machine.
|
||||
|
||||
|
||||
#include "driver.h"
|
||||
|
||||
|
||||
|
||||
|
||||
int srmp2_color_bank;
|
||||
int srmp3_gfx_bank;
|
||||
int mjyuugi_gfx_bank;
|
||||
|
||||
#include "includes/srmp2.h"
|
||||
|
||||
PALETTE_INIT( srmp2 )
|
||||
{
|
||||
@ -68,7 +61,9 @@ static void srmp2_draw_sprites(running_machine *machine, bitmap_t *bitmap, const
|
||||
---- ---- -x-- ---- : Flip screen
|
||||
*/
|
||||
|
||||
UINT16 *spriteram16 = machine->generic.spriteram.u16;
|
||||
srmp2_state *state = (srmp2_state *)machine->driver_data;
|
||||
UINT16 *spriteram16 = state->spriteram1.u16;
|
||||
UINT16 *spriteram16_2 = state->spriteram2.u16;
|
||||
int offs;
|
||||
int xoffs, yoffs;
|
||||
|
||||
@ -78,7 +73,7 @@ static void srmp2_draw_sprites(running_machine *machine, bitmap_t *bitmap, const
|
||||
int flip = ctrl & 0x40;
|
||||
|
||||
/* Sprites Banking and/or Sprites Buffering */
|
||||
UINT16 *src = machine->generic.spriteram2.u16 + ( ((ctrl2 ^ (~ctrl2<<1)) & 0x40) ? 0x2000/2 : 0 );
|
||||
UINT16 *src = spriteram16_2 + ( ((ctrl2 ^ (~ctrl2<<1)) & 0x40) ? 0x2000/2 : 0 );
|
||||
|
||||
int max_y = video_screen_get_height(machine->primary_screen);
|
||||
|
||||
@ -106,7 +101,7 @@ static void srmp2_draw_sprites(running_machine *machine, bitmap_t *bitmap, const
|
||||
|
||||
code = code & 0x3fff;
|
||||
|
||||
if (srmp2_color_bank) color |= 0x20;
|
||||
if (state->color_bank) color |= 0x20;
|
||||
|
||||
drawgfx_transpen(bitmap, cliprect, machine->gfx[0],
|
||||
code,
|
||||
@ -120,9 +115,10 @@ static void srmp2_draw_sprites(running_machine *machine, bitmap_t *bitmap, const
|
||||
|
||||
static void srmp3_draw_sprites_map(running_machine *machine, bitmap_t *bitmap, const rectangle *cliprect)
|
||||
{
|
||||
UINT8 *spriteram = machine->generic.spriteram.u8;
|
||||
UINT8 *spriteram_2 = machine->generic.spriteram2.u8;
|
||||
UINT8 *spriteram_3 = machine->generic.spriteram3.u8;
|
||||
srmp2_state *state = (srmp2_state *)machine->driver_data;
|
||||
UINT8 *spriteram = state->spriteram1.u8;
|
||||
UINT8 *spriteram_2 = state->spriteram2.u8;
|
||||
UINT8 *spriteram_3 = state->spriteram3.u8;
|
||||
int offs, col;
|
||||
int xoffs, yoffs;
|
||||
|
||||
@ -229,16 +225,17 @@ static void srmp3_draw_sprites(running_machine *machine, bitmap_t *bitmap, const
|
||||
-x-- ---- : Flip screen
|
||||
*/
|
||||
|
||||
UINT8 *spriteram = machine->generic.spriteram.u8;
|
||||
UINT8 *spriteram_2 = machine->generic.spriteram2.u8;
|
||||
UINT8 *spriteram_3 = machine->generic.spriteram3.u8;
|
||||
srmp2_state *state = (srmp2_state *)machine->driver_data;
|
||||
UINT8 *spriteram = state->spriteram1.u8;
|
||||
UINT8 *spriteram_2 = state->spriteram2.u8;
|
||||
UINT8 *spriteram_3 = state->spriteram3.u8;
|
||||
int offs;
|
||||
int xoffs, yoffs;
|
||||
|
||||
int max_y = video_screen_get_height(machine->primary_screen);
|
||||
|
||||
int ctrl = spriteram[ 0x600/2 ];
|
||||
// int ctrl2 = spriteram[ 0x602/2 ];
|
||||
//int ctrl2 = spriteram[ 0x602/2 ];
|
||||
|
||||
int flip = ctrl & 0x40;
|
||||
|
||||
@ -261,7 +258,7 @@ static void srmp3_draw_sprites(running_machine *machine, bitmap_t *bitmap, const
|
||||
int flipy = code & 0x4000;
|
||||
|
||||
code = (code & 0x1fff);
|
||||
if (gfxbank) code += ((srmp3_gfx_bank + 1) * 0x2000);
|
||||
if (gfxbank) code += ((state->gfx_bank + 1) * 0x2000);
|
||||
|
||||
if (flip)
|
||||
{
|
||||
@ -282,7 +279,9 @@ static void srmp3_draw_sprites(running_machine *machine, bitmap_t *bitmap, const
|
||||
|
||||
static void mjyuugi_draw_sprites_map(running_machine *machine, bitmap_t *bitmap, const rectangle *cliprect)
|
||||
{
|
||||
UINT16 *spriteram16 = machine->generic.spriteram.u16;
|
||||
srmp2_state *state = (srmp2_state *)machine->driver_data;
|
||||
UINT16 *spriteram16 = state->spriteram1.u16;
|
||||
UINT16 *spriteram16_2 = state->spriteram2.u16;
|
||||
int offs, col;
|
||||
int xoffs, yoffs;
|
||||
|
||||
@ -295,7 +294,7 @@ static void mjyuugi_draw_sprites_map(running_machine *machine, bitmap_t *bitmap,
|
||||
int numcol = ctrl2 & 0x000f;
|
||||
|
||||
/* Sprites Banking and/or Sprites Buffering */
|
||||
UINT16 *src = machine->generic.spriteram2.u16 + ( ((ctrl2 ^ (~ctrl2<<1)) & 0x40) ? 0x2000/2 : 0 );
|
||||
UINT16 *src = spriteram16_2 + ( ((ctrl2 ^ (~ctrl2<<1)) & 0x40) ? 0x2000/2 : 0 );
|
||||
|
||||
int upper = ( spriteram16[ 0x604/2 ] & 0xFF ) +
|
||||
( spriteram16[ 0x606/2 ] & 0xFF ) * 256;
|
||||
@ -385,7 +384,9 @@ static void mjyuugi_draw_sprites(running_machine *machine, bitmap_t *bitmap, con
|
||||
---- ---- -x-- ---- : Flip screen
|
||||
*/
|
||||
|
||||
UINT16 *spriteram16 = machine->generic.spriteram.u16;
|
||||
srmp2_state *state = (srmp2_state *)machine->driver_data;
|
||||
UINT16 *spriteram16 = state->spriteram1.u16;
|
||||
UINT16 *spriteram16_2 = state->spriteram2.u16;
|
||||
int offs;
|
||||
int xoffs, yoffs;
|
||||
|
||||
@ -395,7 +396,7 @@ static void mjyuugi_draw_sprites(running_machine *machine, bitmap_t *bitmap, con
|
||||
int flip = ctrl & 0x40;
|
||||
|
||||
/* Sprites Banking and/or Sprites Buffering */
|
||||
UINT16 *src = machine->generic.spriteram2.u16 + ( ((ctrl2 ^ (~ctrl2<<1)) & 0x40) ? 0x2000/2 : 0 );
|
||||
UINT16 *src = spriteram16_2 + ( ((ctrl2 ^ (~ctrl2<<1)) & 0x40) ? 0x2000/2 : 0 );
|
||||
|
||||
int max_y = video_screen_get_height(machine->primary_screen);
|
||||
|
||||
@ -418,7 +419,7 @@ static void mjyuugi_draw_sprites(running_machine *machine, bitmap_t *bitmap, con
|
||||
int flipy = code & 0x4000;
|
||||
|
||||
code = (code & 0x1fff);
|
||||
if (gfxbank) code += ((mjyuugi_gfx_bank + 1) * 0x2000);
|
||||
if (gfxbank) code += ((state->gfx_bank + 1) * 0x2000);
|
||||
|
||||
if (flip)
|
||||
{
|
||||
|
@ -7,6 +7,7 @@
|
||||
***************************************************************************/
|
||||
|
||||
#include "driver.h"
|
||||
#include "includes/mappy.h"
|
||||
|
||||
UINT8 *toypop_videoram;
|
||||
|
||||
@ -218,9 +219,6 @@ static void draw_background(bitmap_t *bitmap)
|
||||
|
||||
***************************************************************************/
|
||||
|
||||
/* from mappy.c */
|
||||
void mappy_draw_sprites(running_machine *machine, bitmap_t *bitmap, const rectangle *cliprect, int xoffs, int yoffs, int transcolor);
|
||||
|
||||
|
||||
VIDEO_UPDATE( toypop )
|
||||
{
|
||||
|
@ -7,15 +7,7 @@
|
||||
***************************************************************************/
|
||||
|
||||
#include "driver.h"
|
||||
|
||||
|
||||
|
||||
UINT8 *vastar_bg1videoram,*vastar_bg2videoram,*vastar_fgvideoram;
|
||||
UINT8 *vastar_bg1_scroll,*vastar_bg2_scroll;
|
||||
UINT8 *vastar_sprite_priority;
|
||||
|
||||
static tilemap *fg_tilemap, *bg1_tilemap, *bg2_tilemap;
|
||||
|
||||
#include "includes/vastar.h"
|
||||
|
||||
|
||||
/***************************************************************************
|
||||
@ -26,10 +18,12 @@ static tilemap *fg_tilemap, *bg1_tilemap, *bg2_tilemap;
|
||||
|
||||
static TILE_GET_INFO( get_fg_tile_info )
|
||||
{
|
||||
vastar_state *state = (vastar_state *)machine->driver_data;
|
||||
UINT8 *videoram = state->fgvideoram;
|
||||
int code, color;
|
||||
|
||||
code = vastar_fgvideoram[tile_index + 0x800] | (vastar_fgvideoram[tile_index + 0x400] << 8);
|
||||
color = vastar_fgvideoram[tile_index];
|
||||
code = videoram[tile_index + 0x800] | (videoram[tile_index + 0x400] << 8);
|
||||
color = videoram[tile_index];
|
||||
SET_TILE_INFO(
|
||||
0,
|
||||
code,
|
||||
@ -39,10 +33,12 @@ static TILE_GET_INFO( get_fg_tile_info )
|
||||
|
||||
static TILE_GET_INFO( get_bg1_tile_info )
|
||||
{
|
||||
vastar_state *state = (vastar_state *)machine->driver_data;
|
||||
UINT8 *videoram = state->bg1videoram;
|
||||
int code, color;
|
||||
|
||||
code = vastar_bg1videoram[tile_index + 0x800] | (vastar_bg1videoram[tile_index] << 8);
|
||||
color = vastar_bg1videoram[tile_index + 0xc00];
|
||||
code = videoram[tile_index + 0x800] | (videoram[tile_index] << 8);
|
||||
color = videoram[tile_index + 0xc00];
|
||||
SET_TILE_INFO(
|
||||
4,
|
||||
code,
|
||||
@ -52,10 +48,12 @@ static TILE_GET_INFO( get_bg1_tile_info )
|
||||
|
||||
static TILE_GET_INFO( get_bg2_tile_info )
|
||||
{
|
||||
vastar_state *state = (vastar_state *)machine->driver_data;
|
||||
UINT8 *videoram = state->bg2videoram;
|
||||
int code, color;
|
||||
|
||||
code = vastar_bg2videoram[tile_index + 0x800] | (vastar_bg2videoram[tile_index] << 8);
|
||||
color = vastar_bg2videoram[tile_index + 0xc00];
|
||||
code = videoram[tile_index + 0x800] | (videoram[tile_index] << 8);
|
||||
color = videoram[tile_index + 0xc00];
|
||||
SET_TILE_INFO(
|
||||
3,
|
||||
code,
|
||||
@ -72,16 +70,18 @@ static TILE_GET_INFO( get_bg2_tile_info )
|
||||
|
||||
VIDEO_START( vastar )
|
||||
{
|
||||
fg_tilemap = tilemap_create(machine, get_fg_tile_info, tilemap_scan_rows,8,8,32,32);
|
||||
bg1_tilemap = tilemap_create(machine, get_bg1_tile_info,tilemap_scan_rows,8,8,32,32);
|
||||
bg2_tilemap = tilemap_create(machine, get_bg2_tile_info,tilemap_scan_rows,8,8,32,32);
|
||||
vastar_state *state = (vastar_state *)machine->driver_data;
|
||||
|
||||
tilemap_set_transparent_pen(fg_tilemap,0);
|
||||
tilemap_set_transparent_pen(bg1_tilemap,0);
|
||||
tilemap_set_transparent_pen(bg2_tilemap,0);
|
||||
state->fg_tilemap = tilemap_create(machine, get_fg_tile_info, tilemap_scan_rows,8,8,32,32);
|
||||
state->bg1_tilemap = tilemap_create(machine, get_bg1_tile_info,tilemap_scan_rows,8,8,32,32);
|
||||
state->bg2_tilemap = tilemap_create(machine, get_bg2_tile_info,tilemap_scan_rows,8,8,32,32);
|
||||
|
||||
tilemap_set_scroll_cols(bg1_tilemap, 32);
|
||||
tilemap_set_scroll_cols(bg2_tilemap, 32);
|
||||
tilemap_set_transparent_pen(state->fg_tilemap,0);
|
||||
tilemap_set_transparent_pen(state->bg1_tilemap,0);
|
||||
tilemap_set_transparent_pen(state->bg2_tilemap,0);
|
||||
|
||||
tilemap_set_scroll_cols(state->bg1_tilemap, 32);
|
||||
tilemap_set_scroll_cols(state->bg2_tilemap, 32);
|
||||
}
|
||||
|
||||
|
||||
@ -93,31 +93,41 @@ VIDEO_START( vastar )
|
||||
|
||||
WRITE8_HANDLER( vastar_fgvideoram_w )
|
||||
{
|
||||
vastar_fgvideoram[offset] = data;
|
||||
tilemap_mark_tile_dirty(fg_tilemap,offset & 0x3ff);
|
||||
vastar_state *state = (vastar_state *)space->machine->driver_data;
|
||||
|
||||
state->fgvideoram[offset] = data;
|
||||
tilemap_mark_tile_dirty(state->fg_tilemap,offset & 0x3ff);
|
||||
}
|
||||
|
||||
WRITE8_HANDLER( vastar_bg1videoram_w )
|
||||
{
|
||||
vastar_bg1videoram[offset] = data;
|
||||
tilemap_mark_tile_dirty(bg1_tilemap,offset & 0x3ff);
|
||||
vastar_state *state = (vastar_state *)space->machine->driver_data;
|
||||
|
||||
state->bg1videoram[offset] = data;
|
||||
tilemap_mark_tile_dirty(state->bg1_tilemap,offset & 0x3ff);
|
||||
}
|
||||
|
||||
WRITE8_HANDLER( vastar_bg2videoram_w )
|
||||
{
|
||||
vastar_bg2videoram[offset] = data;
|
||||
tilemap_mark_tile_dirty(bg2_tilemap,offset & 0x3ff);
|
||||
vastar_state *state = (vastar_state *)space->machine->driver_data;
|
||||
|
||||
state->bg2videoram[offset] = data;
|
||||
tilemap_mark_tile_dirty(state->bg2_tilemap,offset & 0x3ff);
|
||||
}
|
||||
|
||||
|
||||
READ8_HANDLER( vastar_bg1videoram_r )
|
||||
{
|
||||
return vastar_bg1videoram[offset];
|
||||
vastar_state *state = (vastar_state *)space->machine->driver_data;
|
||||
|
||||
return state->bg1videoram[offset];
|
||||
}
|
||||
|
||||
READ8_HANDLER( vastar_bg2videoram_r )
|
||||
{
|
||||
return vastar_bg2videoram[offset];
|
||||
vastar_state *state = (vastar_state *)space->machine->driver_data;
|
||||
|
||||
return state->bg2videoram[offset];
|
||||
}
|
||||
|
||||
|
||||
@ -129,13 +139,13 @@ READ8_HANDLER( vastar_bg2videoram_r )
|
||||
|
||||
static void draw_sprites(running_machine *machine, bitmap_t *bitmap,const rectangle *cliprect)
|
||||
{
|
||||
UINT8 *spriteram = machine->generic.spriteram.u8;
|
||||
UINT8 *spriteram_2 = machine->generic.spriteram2.u8;
|
||||
UINT8 *spriteram_3 = machine->generic.spriteram3.u8;
|
||||
vastar_state *state = (vastar_state *)machine->driver_data;
|
||||
UINT8 *spriteram = state->spriteram1;
|
||||
UINT8 *spriteram_2 = state->spriteram2;
|
||||
UINT8 *spriteram_3 = state->spriteram3;
|
||||
int offs;
|
||||
|
||||
|
||||
for (offs = 0; offs < machine->generic.spriteram_size; offs += 2)
|
||||
for (offs = 0; offs < 0x40; offs += 2)
|
||||
{
|
||||
int code, sx, sy, color, flipx, flipy;
|
||||
|
||||
@ -188,41 +198,42 @@ static void draw_sprites(running_machine *machine, bitmap_t *bitmap,const rectan
|
||||
|
||||
VIDEO_UPDATE( vastar )
|
||||
{
|
||||
vastar_state *state = (vastar_state *)screen->machine->driver_data;
|
||||
int i;
|
||||
|
||||
|
||||
for (i = 0;i < 32;i++)
|
||||
{
|
||||
tilemap_set_scrolly(bg1_tilemap,i,vastar_bg1_scroll[i]);
|
||||
tilemap_set_scrolly(bg2_tilemap,i,vastar_bg2_scroll[i]);
|
||||
tilemap_set_scrolly(state->bg1_tilemap,i,state->bg1_scroll[i]);
|
||||
tilemap_set_scrolly(state->bg2_tilemap,i,state->bg2_scroll[i]);
|
||||
}
|
||||
|
||||
switch (*vastar_sprite_priority)
|
||||
switch (*state->sprite_priority)
|
||||
{
|
||||
case 0:
|
||||
tilemap_draw(bitmap,cliprect, bg1_tilemap, TILEMAP_DRAW_OPAQUE,0);
|
||||
tilemap_draw(bitmap,cliprect, state->bg1_tilemap, TILEMAP_DRAW_OPAQUE,0);
|
||||
draw_sprites(screen->machine, bitmap,cliprect);
|
||||
tilemap_draw(bitmap,cliprect, bg2_tilemap, 0,0);
|
||||
tilemap_draw(bitmap,cliprect, fg_tilemap, 0,0);
|
||||
tilemap_draw(bitmap,cliprect, state->bg2_tilemap, 0,0);
|
||||
tilemap_draw(bitmap,cliprect, state->fg_tilemap, 0,0);
|
||||
break;
|
||||
|
||||
case 2:
|
||||
tilemap_draw(bitmap,cliprect, bg1_tilemap, TILEMAP_DRAW_OPAQUE,0);
|
||||
tilemap_draw(bitmap,cliprect, state->bg1_tilemap, TILEMAP_DRAW_OPAQUE,0);
|
||||
draw_sprites(screen->machine, bitmap,cliprect);
|
||||
tilemap_draw(bitmap,cliprect, bg1_tilemap, 0,0);
|
||||
tilemap_draw(bitmap,cliprect, bg2_tilemap, 0,0);
|
||||
tilemap_draw(bitmap,cliprect, fg_tilemap, 0,0);
|
||||
tilemap_draw(bitmap,cliprect, state->bg1_tilemap, 0,0);
|
||||
tilemap_draw(bitmap,cliprect, state->bg2_tilemap, 0,0);
|
||||
tilemap_draw(bitmap,cliprect, state->fg_tilemap, 0,0);
|
||||
break;
|
||||
|
||||
case 3:
|
||||
tilemap_draw(bitmap,cliprect, bg1_tilemap, TILEMAP_DRAW_OPAQUE,0);
|
||||
tilemap_draw(bitmap,cliprect, bg2_tilemap, 0,0);
|
||||
tilemap_draw(bitmap,cliprect, fg_tilemap, 0,0);
|
||||
tilemap_draw(bitmap,cliprect, state->bg1_tilemap, TILEMAP_DRAW_OPAQUE,0);
|
||||
tilemap_draw(bitmap,cliprect, state->bg2_tilemap, 0,0);
|
||||
tilemap_draw(bitmap,cliprect, state->fg_tilemap, 0,0);
|
||||
draw_sprites(screen->machine, bitmap,cliprect);
|
||||
break;
|
||||
|
||||
default:
|
||||
logerror("Unimplemented priority %X\n", *vastar_sprite_priority);
|
||||
logerror("Unimplemented priority %X\n", *state->sprite_priority);
|
||||
break;
|
||||
}
|
||||
return 0;
|
||||
|
@ -230,10 +230,6 @@ VIDEO_START( xevious )
|
||||
tilemap_set_scrolldy(fg_tilemap,-18,-10);
|
||||
tilemap_set_transparent_pen(fg_tilemap,0);
|
||||
|
||||
machine->generic.spriteram2.u8 = xevious_sr1 + 0x780;
|
||||
machine->generic.spriteram3.u8 = xevious_sr2 + 0x780;
|
||||
machine->generic.spriteram.u8 = xevious_sr3 + 0x780;
|
||||
|
||||
state_save_register_global_array(machine, xevious_bs);
|
||||
}
|
||||
|
||||
@ -426,12 +422,11 @@ ROM 3M,3L color replace table for sprite
|
||||
|
||||
static void draw_sprites(running_machine *machine, bitmap_t *bitmap,const rectangle *cliprect)
|
||||
{
|
||||
UINT8 *spriteram = machine->generic.spriteram.u8;
|
||||
UINT8 *spriteram_2 = machine->generic.spriteram2.u8;
|
||||
UINT8 *spriteram_3 = machine->generic.spriteram3.u8;
|
||||
UINT8 *spriteram = xevious_sr3 + 0x780;
|
||||
UINT8 *spriteram_2 = xevious_sr1 + 0x780;
|
||||
UINT8 *spriteram_3 = xevious_sr2 + 0x780;
|
||||
int offs,sx,sy;
|
||||
|
||||
|
||||
for (offs = 0;offs < 0x80;offs += 2)
|
||||
{
|
||||
if ((spriteram[offs + 1] & 0x40) == 0) /* I'm not sure about this one */
|
||||
|
Loading…
Reference in New Issue
Block a user