mirror of
https://github.com/holub/mame
synced 2025-05-24 23:05:32 +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)
|
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 )
|
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);
|
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(0x900802, 0x900803) AM_READWRITE(cchip1_ctrl_r, cchip1_ctrl_w)
|
||||||
AM_RANGE(0x900c00, 0x900c01) AM_WRITE(cchip1_bank_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(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(0xd00000, 0xd007ff) AM_RAM AM_BASE_MEMBER(seta_state, spriteram) // Sprites Y
|
||||||
AM_RANGE(0xe00000, 0xe03fff) AM_RAM AM_BASE_GENERIC(spriteram2 ) // Sprites Code + X + Attr
|
AM_RANGE(0xe00000, 0xe03fff) AM_RAM AM_BASE_MEMBER(seta_state, spriteram2) // Sprites Code + X + Attr
|
||||||
AM_RANGE(0xf00000, 0xf03fff) AM_RAM /* Main RAM */
|
AM_RANGE(0xf00000, 0xf03fff) AM_RAM /* Main RAM */
|
||||||
ADDRESS_MAP_END
|
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(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(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(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(0xd00000, 0xd007ff) AM_RAM AM_BASE_MEMBER(seta_state, spriteram) // Sprites Y
|
||||||
AM_RANGE(0xe00000, 0xe03fff) AM_RAM AM_BASE_GENERIC(spriteram2 ) // Sprites Code + X + Attr
|
AM_RANGE(0xe00000, 0xe03fff) AM_RAM AM_BASE_MEMBER(seta_state, spriteram2) // Sprites Code + X + Attr
|
||||||
AM_RANGE(0xf00000, 0xf03fff) AM_RAM /* Main RAM */
|
AM_RANGE(0xf00000, 0xf03fff) AM_RAM /* Main RAM */
|
||||||
ADDRESS_MAP_END
|
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(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(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(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(0xd00000, 0xd007ff) AM_RAM AM_BASE_MEMBER(seta_state, spriteram) // Sprites Y
|
||||||
AM_RANGE(0xe00000, 0xe03fff) AM_RAM AM_BASE_GENERIC(spriteram2 ) // Sprites Code + X + Attr
|
AM_RANGE(0xe00000, 0xe03fff) AM_RAM AM_BASE_MEMBER(seta_state, spriteram2) // Sprites Code + X + Attr
|
||||||
AM_RANGE(0xf00000, 0xf03fff) AM_RAM /* Main RAM */
|
AM_RANGE(0xf00000, 0xf03fff) AM_RAM /* Main RAM */
|
||||||
ADDRESS_MAP_END
|
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(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(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(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(0xd00000, 0xd007ff) AM_RAM AM_BASE_MEMBER(seta_state, spriteram) // Sprites Y
|
||||||
AM_RANGE(0xe00000, 0xe03fff) AM_RAM AM_BASE_GENERIC(spriteram2 ) // Sprites Code + X + Attr
|
AM_RANGE(0xe00000, 0xe03fff) AM_RAM AM_BASE_MEMBER(seta_state, spriteram2) // Sprites Code + X + Attr
|
||||||
AM_RANGE(0xf00000, 0xf03fff) AM_RAM /* Main RAM */
|
AM_RANGE(0xf00000, 0xf03fff) AM_RAM /* Main RAM */
|
||||||
ADDRESS_MAP_END
|
ADDRESS_MAP_END
|
||||||
|
|
||||||
@ -892,8 +894,10 @@ static STATE_POSTLOAD( taitox_postload )
|
|||||||
|
|
||||||
static MACHINE_START( taitox )
|
static MACHINE_START( taitox )
|
||||||
{
|
{
|
||||||
banknum = -1;
|
seta_state *state = machine->driver_data<seta_state>();
|
||||||
state_save_register_global(machine, banknum);
|
|
||||||
|
state->taitox_banknum = -1;
|
||||||
|
state_save_register_global(machine, state->taitox_banknum);
|
||||||
state_save_register_postload(machine, taitox_postload, NULL);
|
state_save_register_postload(machine, taitox_postload, NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -907,6 +911,8 @@ static const tc0140syt_interface taitox_tc0140syt_intf =
|
|||||||
|
|
||||||
static MACHINE_DRIVER_START( superman )
|
static MACHINE_DRIVER_START( superman )
|
||||||
|
|
||||||
|
MDRV_DRIVER_DATA( seta_state )
|
||||||
|
|
||||||
/* basic machine hardware */
|
/* basic machine hardware */
|
||||||
MDRV_CPU_ADD("maincpu", M68000, XTAL_16MHz/2) /* verified on pcb */
|
MDRV_CPU_ADD("maincpu", M68000, XTAL_16MHz/2) /* verified on pcb */
|
||||||
MDRV_CPU_PROGRAM_MAP(superman_map)
|
MDRV_CPU_PROGRAM_MAP(superman_map)
|
||||||
@ -949,6 +955,8 @@ MACHINE_DRIVER_END
|
|||||||
|
|
||||||
static MACHINE_DRIVER_START( daisenpu )
|
static MACHINE_DRIVER_START( daisenpu )
|
||||||
|
|
||||||
|
MDRV_DRIVER_DATA( seta_state )
|
||||||
|
|
||||||
/* basic machine hardware */
|
/* basic machine hardware */
|
||||||
MDRV_CPU_ADD("maincpu", M68000, XTAL_16MHz/2) /* verified on pcb */
|
MDRV_CPU_ADD("maincpu", M68000, XTAL_16MHz/2) /* verified on pcb */
|
||||||
MDRV_CPU_PROGRAM_MAP(daisenpu_map)
|
MDRV_CPU_PROGRAM_MAP(daisenpu_map)
|
||||||
@ -988,6 +996,8 @@ MACHINE_DRIVER_END
|
|||||||
|
|
||||||
static MACHINE_DRIVER_START( gigandes )
|
static MACHINE_DRIVER_START( gigandes )
|
||||||
|
|
||||||
|
MDRV_DRIVER_DATA( seta_state )
|
||||||
|
|
||||||
/* basic machine hardware */
|
/* basic machine hardware */
|
||||||
MDRV_CPU_ADD("maincpu", M68000, 8000000) /* 8 MHz? */
|
MDRV_CPU_ADD("maincpu", M68000, 8000000) /* 8 MHz? */
|
||||||
MDRV_CPU_PROGRAM_MAP(gigandes_map)
|
MDRV_CPU_PROGRAM_MAP(gigandes_map)
|
||||||
@ -1029,6 +1039,8 @@ MACHINE_DRIVER_END
|
|||||||
|
|
||||||
static MACHINE_DRIVER_START( ballbros )
|
static MACHINE_DRIVER_START( ballbros )
|
||||||
|
|
||||||
|
MDRV_DRIVER_DATA( seta_state )
|
||||||
|
|
||||||
/* basic machine hardware */
|
/* basic machine hardware */
|
||||||
MDRV_CPU_ADD("maincpu", M68000, 8000000) /* 8 MHz? */
|
MDRV_CPU_ADD("maincpu", M68000, 8000000) /* 8 MHz? */
|
||||||
MDRV_CPU_PROGRAM_MAP(ballbros_map)
|
MDRV_CPU_PROGRAM_MAP(ballbros_map)
|
||||||
|
@ -51,6 +51,7 @@ public:
|
|||||||
tilemap_t *tilemap_3; // Layer 1
|
tilemap_t *tilemap_3; // Layer 1
|
||||||
int tilemaps_flip;
|
int tilemaps_flip;
|
||||||
int samples_bank;
|
int samples_bank;
|
||||||
|
int taitox_banknum;
|
||||||
|
|
||||||
uPD71054_state uPD71054;
|
uPD71054_state uPD71054;
|
||||||
const game_offset *global_offsets;
|
const game_offset *global_offsets;
|
||||||
|
Loading…
Reference in New Issue
Block a user