mirror of
https://github.com/holub/mame
synced 2025-05-23 22:20:01 +03:00
03996: All games in taito_x.c: Crash before OK [Atari Ace]
---------- Forwarded message ---------- From: Atari Ace <atari_ace@frontier.com> Date: Thu, Aug 12, 2010 at 5:01 PM Subject: [patch] Fix taito_x (seta driver_data conversion fallout) To: submit@mamedev.org Cc: atariace@hotmail.com - Hide quoted text - Hi mamedev, I inexplicably missed the fact that taito_x depended on seta for video support, so the driver_data conversion broke it. This patch fixes it. ~aa
This commit is contained in:
parent
fde112a254
commit
8b8dfe62d6
@ -395,16 +395,18 @@ static WRITE16_HANDLER( kyustrkr_input_w )
|
||||
|
||||
/**************************************************************************/
|
||||
|
||||
static INT32 banknum;
|
||||
|
||||
static void reset_sound_region(running_machine *machine)
|
||||
{
|
||||
memory_set_bankptr(machine, "bank2", memory_region(machine, "audiocpu") + (banknum * 0x4000) + 0x10000 );
|
||||
seta_state *state = machine->driver_data<seta_state>();
|
||||
|
||||
memory_set_bankptr(machine, "bank2", memory_region(machine, "audiocpu") + (state->taitox_banknum * 0x4000) + 0x10000 );
|
||||
}
|
||||
|
||||
static WRITE8_HANDLER( sound_bankswitch_w )
|
||||
{
|
||||
banknum = (data - 1) & 3;
|
||||
seta_state *state = space->machine->driver_data<seta_state>();
|
||||
|
||||
state->taitox_banknum = (data - 1) & 3;
|
||||
reset_sound_region(space->machine);
|
||||
}
|
||||
|
||||
@ -423,8 +425,8 @@ static ADDRESS_MAP_START( superman_map, ADDRESS_SPACE_PROGRAM, 16 )
|
||||
AM_RANGE(0x900802, 0x900803) AM_READWRITE(cchip1_ctrl_r, cchip1_ctrl_w)
|
||||
AM_RANGE(0x900c00, 0x900c01) AM_WRITE(cchip1_bank_w)
|
||||
AM_RANGE(0xb00000, 0xb00fff) AM_RAM_WRITE(paletteram16_xRRRRRGGGGGBBBBB_word_w) AM_BASE_GENERIC(paletteram)
|
||||
AM_RANGE(0xd00000, 0xd007ff) AM_RAM AM_BASE_GENERIC(spriteram ) // Sprites Y
|
||||
AM_RANGE(0xe00000, 0xe03fff) AM_RAM AM_BASE_GENERIC(spriteram2 ) // Sprites Code + X + Attr
|
||||
AM_RANGE(0xd00000, 0xd007ff) AM_RAM AM_BASE_MEMBER(seta_state, spriteram) // Sprites Y
|
||||
AM_RANGE(0xe00000, 0xe03fff) AM_RAM AM_BASE_MEMBER(seta_state, spriteram2) // Sprites Code + X + Attr
|
||||
AM_RANGE(0xf00000, 0xf03fff) AM_RAM /* Main RAM */
|
||||
ADDRESS_MAP_END
|
||||
|
||||
@ -437,8 +439,8 @@ static ADDRESS_MAP_START( daisenpu_map, ADDRESS_SPACE_PROGRAM, 16 )
|
||||
AM_RANGE(0x800002, 0x800003) AM_DEVREADWRITE8("tc0140syt", tc0140syt_comm_r, tc0140syt_comm_w, 0x00ff)
|
||||
AM_RANGE(0x900000, 0x90000f) AM_READWRITE(daisenpu_input_r, daisenpu_input_w)
|
||||
AM_RANGE(0xb00000, 0xb00fff) AM_RAM_WRITE(paletteram16_xRRRRRGGGGGBBBBB_word_w) AM_BASE_GENERIC(paletteram)
|
||||
AM_RANGE(0xd00000, 0xd007ff) AM_RAM AM_BASE_GENERIC(spriteram ) // Sprites Y
|
||||
AM_RANGE(0xe00000, 0xe03fff) AM_RAM AM_BASE_GENERIC(spriteram2 ) // Sprites Code + X + Attr
|
||||
AM_RANGE(0xd00000, 0xd007ff) AM_RAM AM_BASE_MEMBER(seta_state, spriteram) // Sprites Y
|
||||
AM_RANGE(0xe00000, 0xe03fff) AM_RAM AM_BASE_MEMBER(seta_state, spriteram2) // Sprites Code + X + Attr
|
||||
AM_RANGE(0xf00000, 0xf03fff) AM_RAM /* Main RAM */
|
||||
ADDRESS_MAP_END
|
||||
|
||||
@ -451,8 +453,8 @@ static ADDRESS_MAP_START( gigandes_map, ADDRESS_SPACE_PROGRAM, 16 )
|
||||
AM_RANGE(0x800002, 0x800003) AM_DEVREADWRITE8("tc0140syt", tc0140syt_comm_r, tc0140syt_comm_w, 0x00ff)
|
||||
AM_RANGE(0x900000, 0x90000f) AM_READWRITE(daisenpu_input_r, daisenpu_input_w)
|
||||
AM_RANGE(0xb00000, 0xb00fff) AM_RAM_WRITE(paletteram16_xRRRRRGGGGGBBBBB_word_w) AM_BASE_GENERIC(paletteram)
|
||||
AM_RANGE(0xd00000, 0xd007ff) AM_RAM AM_BASE_GENERIC(spriteram) // Sprites Y
|
||||
AM_RANGE(0xe00000, 0xe03fff) AM_RAM AM_BASE_GENERIC(spriteram2 ) // Sprites Code + X + Attr
|
||||
AM_RANGE(0xd00000, 0xd007ff) AM_RAM AM_BASE_MEMBER(seta_state, spriteram) // Sprites Y
|
||||
AM_RANGE(0xe00000, 0xe03fff) AM_RAM AM_BASE_MEMBER(seta_state, spriteram2) // Sprites Code + X + Attr
|
||||
AM_RANGE(0xf00000, 0xf03fff) AM_RAM /* Main RAM */
|
||||
ADDRESS_MAP_END
|
||||
|
||||
@ -465,8 +467,8 @@ static ADDRESS_MAP_START( ballbros_map, ADDRESS_SPACE_PROGRAM, 16 )
|
||||
AM_RANGE(0x800002, 0x800003) AM_DEVREADWRITE8("tc0140syt", tc0140syt_comm_r, tc0140syt_comm_w, 0x00ff)
|
||||
AM_RANGE(0x900000, 0x90000f) AM_READWRITE(daisenpu_input_r, daisenpu_input_w)
|
||||
AM_RANGE(0xb00000, 0xb00fff) AM_RAM_WRITE(paletteram16_xRRRRRGGGGGBBBBB_word_w) AM_BASE_GENERIC(paletteram)
|
||||
AM_RANGE(0xd00000, 0xd007ff) AM_RAM AM_BASE_GENERIC(spriteram ) // Sprites Y
|
||||
AM_RANGE(0xe00000, 0xe03fff) AM_RAM AM_BASE_GENERIC(spriteram2 ) // Sprites Code + X + Attr
|
||||
AM_RANGE(0xd00000, 0xd007ff) AM_RAM AM_BASE_MEMBER(seta_state, spriteram) // Sprites Y
|
||||
AM_RANGE(0xe00000, 0xe03fff) AM_RAM AM_BASE_MEMBER(seta_state, spriteram2) // Sprites Code + X + Attr
|
||||
AM_RANGE(0xf00000, 0xf03fff) AM_RAM /* Main RAM */
|
||||
ADDRESS_MAP_END
|
||||
|
||||
@ -892,8 +894,10 @@ static STATE_POSTLOAD( taitox_postload )
|
||||
|
||||
static MACHINE_START( taitox )
|
||||
{
|
||||
banknum = -1;
|
||||
state_save_register_global(machine, banknum);
|
||||
seta_state *state = machine->driver_data<seta_state>();
|
||||
|
||||
state->taitox_banknum = -1;
|
||||
state_save_register_global(machine, state->taitox_banknum);
|
||||
state_save_register_postload(machine, taitox_postload, NULL);
|
||||
}
|
||||
|
||||
@ -907,6 +911,8 @@ static const tc0140syt_interface taitox_tc0140syt_intf =
|
||||
|
||||
static MACHINE_DRIVER_START( superman )
|
||||
|
||||
MDRV_DRIVER_DATA( seta_state )
|
||||
|
||||
/* basic machine hardware */
|
||||
MDRV_CPU_ADD("maincpu", M68000, XTAL_16MHz/2) /* verified on pcb */
|
||||
MDRV_CPU_PROGRAM_MAP(superman_map)
|
||||
@ -949,6 +955,8 @@ MACHINE_DRIVER_END
|
||||
|
||||
static MACHINE_DRIVER_START( daisenpu )
|
||||
|
||||
MDRV_DRIVER_DATA( seta_state )
|
||||
|
||||
/* basic machine hardware */
|
||||
MDRV_CPU_ADD("maincpu", M68000, XTAL_16MHz/2) /* verified on pcb */
|
||||
MDRV_CPU_PROGRAM_MAP(daisenpu_map)
|
||||
@ -988,6 +996,8 @@ MACHINE_DRIVER_END
|
||||
|
||||
static MACHINE_DRIVER_START( gigandes )
|
||||
|
||||
MDRV_DRIVER_DATA( seta_state )
|
||||
|
||||
/* basic machine hardware */
|
||||
MDRV_CPU_ADD("maincpu", M68000, 8000000) /* 8 MHz? */
|
||||
MDRV_CPU_PROGRAM_MAP(gigandes_map)
|
||||
@ -1029,6 +1039,8 @@ MACHINE_DRIVER_END
|
||||
|
||||
static MACHINE_DRIVER_START( ballbros )
|
||||
|
||||
MDRV_DRIVER_DATA( seta_state )
|
||||
|
||||
/* basic machine hardware */
|
||||
MDRV_CPU_ADD("maincpu", M68000, 8000000) /* 8 MHz? */
|
||||
MDRV_CPU_PROGRAM_MAP(ballbros_map)
|
||||
|
@ -51,6 +51,7 @@ public:
|
||||
tilemap_t *tilemap_3; // Layer 1
|
||||
int tilemaps_flip;
|
||||
int samples_bank;
|
||||
int taitox_banknum;
|
||||
|
||||
uPD71054_state uPD71054;
|
||||
const game_offset *global_offsets;
|
||||
|
Loading…
Reference in New Issue
Block a user