drivers cleanup (nw)

This commit is contained in:
Miodrag Milanovic 2013-02-18 09:12:24 +00:00
parent c2cad72a5c
commit 58f2a9158b
14 changed files with 139 additions and 193 deletions

View File

@ -320,9 +320,9 @@ static ADDRESS_MAP_START( bonzeadv_map, AS_PROGRAM, 16, asuka_state )
AM_RANGE(0x3d0000, 0x3d0001) AM_READNOP
AM_RANGE(0x3e0000, 0x3e0001) AM_DEVWRITE8_LEGACY("tc0140syt", tc0140syt_port_w, 0x00ff)
AM_RANGE(0x3e0002, 0x3e0003) AM_DEVREADWRITE8_LEGACY("tc0140syt", tc0140syt_comm_r, tc0140syt_comm_w, 0x00ff)
AM_RANGE(0x800000, 0x8007ff) AM_READWRITE_LEGACY(bonzeadv_cchip_ram_r, bonzeadv_cchip_ram_w)
AM_RANGE(0x800802, 0x800803) AM_READWRITE_LEGACY(bonzeadv_cchip_ctrl_r, bonzeadv_cchip_ctrl_w)
AM_RANGE(0x800c00, 0x800c01) AM_WRITE_LEGACY(bonzeadv_cchip_bank_w)
AM_RANGE(0x800000, 0x8007ff) AM_READWRITE(bonzeadv_cchip_ram_r, bonzeadv_cchip_ram_w)
AM_RANGE(0x800802, 0x800803) AM_READWRITE(bonzeadv_cchip_ctrl_r, bonzeadv_cchip_ctrl_w)
AM_RANGE(0x800c00, 0x800c01) AM_WRITE(bonzeadv_cchip_bank_w)
AM_RANGE(0xc00000, 0xc0ffff) AM_DEVREADWRITE_LEGACY("tc0100scn", tc0100scn_word_r, tc0100scn_word_w) /* tilemaps */
AM_RANGE(0xc20000, 0xc2000f) AM_DEVREADWRITE_LEGACY("tc0100scn", tc0100scn_ctrl_word_r, tc0100scn_ctrl_word_w)
AM_RANGE(0xd00000, 0xd03fff) AM_DEVREADWRITE_LEGACY("pc090oj", pc090oj_word_r, pc090oj_word_w) /* sprite ram */

View File

@ -173,22 +173,22 @@ WRITE8_MEMBER(fastfred_state::sound_nmi_mask_w)
static ADDRESS_MAP_START( fastfred_map, AS_PROGRAM, 8, fastfred_state )
AM_RANGE(0x0000, 0xbfff) AM_ROM
AM_RANGE(0xc000, 0xc7ff) AM_RAM
AM_RANGE(0xd000, 0xd3ff) AM_MIRROR(0x400) AM_RAM_WRITE_LEGACY(fastfred_videoram_w) AM_SHARE("videoram")
AM_RANGE(0xd800, 0xd83f) AM_RAM_WRITE_LEGACY(fastfred_attributes_w) AM_SHARE("attributesram")
AM_RANGE(0xd000, 0xd3ff) AM_MIRROR(0x400) AM_RAM_WRITE(fastfred_videoram_w) AM_SHARE("videoram")
AM_RANGE(0xd800, 0xd83f) AM_RAM_WRITE(fastfred_attributes_w) AM_SHARE("attributesram")
AM_RANGE(0xd840, 0xd85f) AM_RAM AM_SHARE("spriteram")
AM_RANGE(0xd860, 0xdbff) AM_RAM // Unused, but initialized
AM_RANGE(0xe000, 0xe000) AM_READ_PORT("BUTTONS") AM_WRITEONLY AM_SHARE("bgcolor")
AM_RANGE(0xe800, 0xe800) AM_READ_PORT("JOYS")
AM_RANGE(0xf000, 0xf000) AM_READ_PORT("DSW") AM_WRITENOP
AM_RANGE(0xf001, 0xf001) AM_WRITE(nmi_mask_w)
AM_RANGE(0xf002, 0xf002) AM_WRITE_LEGACY(fastfred_colorbank1_w)
AM_RANGE(0xf003, 0xf003) AM_WRITE_LEGACY(fastfred_colorbank2_w)
AM_RANGE(0xf004, 0xf004) AM_WRITE_LEGACY(fastfred_charbank1_w)
AM_RANGE(0xf005, 0xf005) AM_WRITE_LEGACY(fastfred_charbank2_w)
AM_RANGE(0xf006, 0xf006) AM_WRITE_LEGACY(fastfred_flip_screen_x_w)
AM_RANGE(0xf007, 0xf007) AM_WRITE_LEGACY(fastfred_flip_screen_y_w)
AM_RANGE(0xf116, 0xf116) AM_WRITE_LEGACY(fastfred_flip_screen_x_w)
AM_RANGE(0xf117, 0xf117) AM_WRITE_LEGACY(fastfred_flip_screen_y_w)
AM_RANGE(0xf002, 0xf002) AM_WRITE(fastfred_colorbank1_w)
AM_RANGE(0xf003, 0xf003) AM_WRITE(fastfred_colorbank2_w)
AM_RANGE(0xf004, 0xf004) AM_WRITE(fastfred_charbank1_w)
AM_RANGE(0xf005, 0xf005) AM_WRITE(fastfred_charbank2_w)
AM_RANGE(0xf006, 0xf006) AM_WRITE(fastfred_flip_screen_x_w)
AM_RANGE(0xf007, 0xf007) AM_WRITE(fastfred_flip_screen_y_w)
AM_RANGE(0xf116, 0xf116) AM_WRITE(fastfred_flip_screen_x_w)
AM_RANGE(0xf117, 0xf117) AM_WRITE(fastfred_flip_screen_y_w)
AM_RANGE(0xf800, 0xf800) AM_READWRITE(watchdog_reset_r, soundlatch_byte_w)
ADDRESS_MAP_END
@ -196,10 +196,10 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( jumpcoas_map, AS_PROGRAM, 8, fastfred_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0xc000, 0xc7ff) AM_RAM
AM_RANGE(0xd000, 0xd03f) AM_RAM_WRITE_LEGACY(fastfred_attributes_w) AM_SHARE("attributesram")
AM_RANGE(0xd000, 0xd03f) AM_RAM_WRITE(fastfred_attributes_w) AM_SHARE("attributesram")
AM_RANGE(0xd040, 0xd05f) AM_RAM AM_SHARE("spriteram")
AM_RANGE(0xd060, 0xd3ff) AM_RAM
AM_RANGE(0xd800, 0xdbff) AM_MIRROR(0x400) AM_RAM_WRITE_LEGACY(fastfred_videoram_w) AM_SHARE("videoram")
AM_RANGE(0xd800, 0xdbff) AM_MIRROR(0x400) AM_RAM_WRITE(fastfred_videoram_w) AM_SHARE("videoram")
AM_RANGE(0xe000, 0xe000) AM_WRITEONLY AM_SHARE("bgcolor")
AM_RANGE(0xe800, 0xe800) AM_READ_PORT("DSW1")
AM_RANGE(0xe801, 0xe801) AM_READ_PORT("DSW2")
@ -207,14 +207,14 @@ static ADDRESS_MAP_START( jumpcoas_map, AS_PROGRAM, 8, fastfred_state )
AM_RANGE(0xe803, 0xe803) AM_READ_PORT("JOYS")
AM_RANGE(0xf000, 0xf000) AM_WRITENOP // Unused, but initialized
AM_RANGE(0xf001, 0xf001) AM_WRITE(nmi_mask_w)
AM_RANGE(0xf002, 0xf002) AM_WRITE_LEGACY(fastfred_colorbank1_w)
AM_RANGE(0xf003, 0xf003) AM_WRITE_LEGACY(fastfred_colorbank2_w)
AM_RANGE(0xf004, 0xf004) AM_WRITE_LEGACY(fastfred_charbank1_w)
AM_RANGE(0xf005, 0xf005) AM_WRITE_LEGACY(fastfred_charbank2_w)
AM_RANGE(0xf006, 0xf006) AM_WRITE_LEGACY(fastfred_flip_screen_x_w)
AM_RANGE(0xf007, 0xf007) AM_WRITE_LEGACY(fastfred_flip_screen_y_w)
AM_RANGE(0xf116, 0xf116) AM_WRITE_LEGACY(fastfred_flip_screen_x_w)
AM_RANGE(0xf117, 0xf117) AM_WRITE_LEGACY(fastfred_flip_screen_y_w)
AM_RANGE(0xf002, 0xf002) AM_WRITE(fastfred_colorbank1_w)
AM_RANGE(0xf003, 0xf003) AM_WRITE(fastfred_colorbank2_w)
AM_RANGE(0xf004, 0xf004) AM_WRITE(fastfred_charbank1_w)
AM_RANGE(0xf005, 0xf005) AM_WRITE(fastfred_charbank2_w)
AM_RANGE(0xf006, 0xf006) AM_WRITE(fastfred_flip_screen_x_w)
AM_RANGE(0xf007, 0xf007) AM_WRITE(fastfred_flip_screen_y_w)
AM_RANGE(0xf116, 0xf116) AM_WRITE(fastfred_flip_screen_x_w)
AM_RANGE(0xf117, 0xf117) AM_WRITE(fastfred_flip_screen_y_w)
//AM_RANGE(0xf800, 0xf800) AM_READ(watchdog_reset_r) // Why doesn't this work???
AM_RANGE(0xf800, 0xf801) AM_READNOP AM_DEVWRITE_LEGACY("ay8910.1", ay8910_address_data_w)
ADDRESS_MAP_END
@ -227,21 +227,21 @@ static ADDRESS_MAP_START( imago_map, AS_PROGRAM, 8, fastfred_state )
AM_RANGE(0xb000, 0xb3ff) AM_RAM // same fg videoram (which one of the 2 is really used?)
AM_RANGE(0xb800, 0xbfff) AM_RAM_WRITE(imago_sprites_dma_w)
AM_RANGE(0xc000, 0xc7ff) AM_RAM
AM_RANGE(0xc800, 0xcbff) AM_RAM_WRITE_LEGACY(imago_fg_videoram_w) AM_SHARE("imago_fg_vram")
AM_RANGE(0xd000, 0xd3ff) AM_RAM_WRITE_LEGACY(fastfred_videoram_w) AM_SHARE("videoram")
AM_RANGE(0xd800, 0xd83f) AM_RAM_WRITE_LEGACY(fastfred_attributes_w) AM_SHARE("attributesram")
AM_RANGE(0xc800, 0xcbff) AM_RAM_WRITE(imago_fg_videoram_w) AM_SHARE("imago_fg_vram")
AM_RANGE(0xd000, 0xd3ff) AM_RAM_WRITE(fastfred_videoram_w) AM_SHARE("videoram")
AM_RANGE(0xd800, 0xd83f) AM_RAM_WRITE(fastfred_attributes_w) AM_SHARE("attributesram")
AM_RANGE(0xd840, 0xd85f) AM_RAM AM_SHARE("spriteram")
AM_RANGE(0xd860, 0xd8ff) AM_RAM // Unused, but initialized
AM_RANGE(0xe000, 0xe000) AM_READ_PORT("BUTTONS")
AM_RANGE(0xe800, 0xe800) AM_READ_PORT("JOYS")
AM_RANGE(0xf000, 0xf000) AM_READ_PORT("DSW") AM_WRITENOP // writes 1 when level starts, 0 when game over
AM_RANGE(0xf001, 0xf001) AM_WRITE(nmi_mask_w)
AM_RANGE(0xf002, 0xf002) AM_WRITE_LEGACY(fastfred_colorbank1_w)
AM_RANGE(0xf003, 0xf003) AM_WRITE_LEGACY(fastfred_colorbank2_w)
AM_RANGE(0xf002, 0xf002) AM_WRITE(fastfred_colorbank1_w)
AM_RANGE(0xf003, 0xf003) AM_WRITE(fastfred_colorbank2_w)
AM_RANGE(0xf004, 0xf004) AM_WRITE(imago_dma_irq_w)
AM_RANGE(0xf005, 0xf005) AM_WRITE_LEGACY(imago_charbank_w)
AM_RANGE(0xf006, 0xf006) AM_WRITE_LEGACY(fastfred_flip_screen_x_w)
AM_RANGE(0xf007, 0xf007) AM_WRITE_LEGACY(fastfred_flip_screen_y_w)
AM_RANGE(0xf005, 0xf005) AM_WRITE(imago_charbank_w)
AM_RANGE(0xf006, 0xf006) AM_WRITE(fastfred_flip_screen_x_w)
AM_RANGE(0xf007, 0xf007) AM_WRITE(fastfred_flip_screen_y_w)
AM_RANGE(0xf400, 0xf400) AM_WRITENOP // writes 0 or 2
AM_RANGE(0xf401, 0xf401) AM_WRITE(imago_sprites_bank_w)
AM_RANGE(0xf800, 0xf800) AM_READNOP AM_WRITE(soundlatch_byte_w)

View File

@ -37,12 +37,3 @@ public:
void register_savestate( );
};
/*----------- defined in video/actfancr.c -----------*/
DECLARE_WRITE8_HANDLER( actfancr_pf1_data_w );
DECLARE_READ8_HANDLER( actfancr_pf1_data_r );
DECLARE_WRITE8_HANDLER( actfancr_pf1_control_w );
DECLARE_WRITE8_HANDLER( actfancr_pf2_data_w );
DECLARE_READ8_HANDLER( actfancr_pf2_data_r );
DECLARE_WRITE8_HANDLER( actfancr_pf2_control_w );

View File

@ -52,12 +52,14 @@ public:
void screen_eof_asuka(screen_device &screen, bool state);
INTERRUPT_GEN_MEMBER(cadash_interrupt);
TIMER_CALLBACK_MEMBER(cadash_interrupt5);
/*----------- defined in machine/bonzeadv.c -----------*/
void WriteLevelData();
void WriteRestartPos(int level );
DECLARE_READ16_MEMBER( bonzeadv_cchip_ctrl_r );
DECLARE_READ16_MEMBER( bonzeadv_cchip_ram_r );
DECLARE_WRITE16_MEMBER( bonzeadv_cchip_ctrl_w );
DECLARE_WRITE16_MEMBER( bonzeadv_cchip_bank_w );
DECLARE_WRITE16_MEMBER( bonzeadv_cchip_ram_w );
};
/*----------- defined in machine/bonzeadv.c -----------*/
DECLARE_READ16_HANDLER( bonzeadv_cchip_ctrl_r );
DECLARE_READ16_HANDLER( bonzeadv_cchip_ram_r );
DECLARE_WRITE16_HANDLER( bonzeadv_cchip_ctrl_w );
DECLARE_WRITE16_HANDLER( bonzeadv_cchip_bank_w );
DECLARE_WRITE16_HANDLER( bonzeadv_cchip_ram_w );

View File

@ -40,8 +40,5 @@ public:
UINT32 screen_update_copsnrob(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
/*----------- defined in machine/copsnrob.c -----------*/
DECLARE_READ8_HANDLER( copsnrob_gun_position_r );
/*----------- defined in audio/copsnrob.c -----------*/
DISCRETE_SOUND_EXTERN( copsnrob );

View File

@ -115,10 +115,3 @@ public:
UINT32 screen_update_automat(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
UINT32 screen_update_secretab(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
/*----------- defined in machine/dec0.c -----------*/
DECLARE_READ16_HANDLER( slyspy_controls_r );
extern void dec0_i8751_write(running_machine &machine, int data);
extern void dec0_i8751_reset(running_machine &machine);

View File

@ -135,9 +135,3 @@ public:
TIMER_CALLBACK_MEMBER(dec8_i8751_timer_callback);
void srdarwin_draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect, int pri );
};
/*----------- defined in video/dec8.c -----------*/
DECLARE_WRITE8_HANDLER( dec8_bac06_0_w );
DECLARE_WRITE8_HANDLER( dec8_bac06_1_w );
DECLARE_WRITE8_HANDLER( dec8_pf1_data_w );
DECLARE_READ8_HANDLER( dec8_pf1_data_r );

View File

@ -154,8 +154,3 @@ public:
void dragngun_draw_sprites( bitmap_rgb32 &bitmap, const rectangle &cliprect, const UINT32 *spritedata);
};
/*----------- defined in video/deco32.c -----------*/
DECLARE_WRITE32_HANDLER( deco32_pf1_data_w );
DECLARE_WRITE32_HANDLER( deco32_pf2_data_w );
DECLARE_WRITE32_HANDLER( deco32_pf3_data_w );
DECLARE_WRITE32_HANDLER( deco32_pf4_data_w );

View File

@ -66,18 +66,15 @@ public:
INTERRUPT_GEN_MEMBER(vblank_irq);
INTERRUPT_GEN_MEMBER(sound_timer_irq);
void draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect);
DECLARE_WRITE8_MEMBER(fastfred_videoram_w);
DECLARE_WRITE8_MEMBER(fastfred_attributes_w);
DECLARE_WRITE8_MEMBER(fastfred_charbank1_w);
DECLARE_WRITE8_MEMBER(fastfred_charbank2_w);
DECLARE_WRITE8_MEMBER(fastfred_colorbank1_w);
DECLARE_WRITE8_MEMBER(fastfred_colorbank2_w);
DECLARE_WRITE8_MEMBER(fastfred_flip_screen_x_w);
DECLARE_WRITE8_MEMBER(fastfred_flip_screen_y_w);
DECLARE_WRITE8_MEMBER(imago_fg_videoram_w);
DECLARE_WRITE8_MEMBER(imago_charbank_w);
};
/*----------- defined in video/fastfred.c -----------*/
DECLARE_WRITE8_HANDLER( fastfred_videoram_w );
DECLARE_WRITE8_HANDLER( fastfred_attributes_w );
DECLARE_WRITE8_HANDLER( fastfred_charbank1_w );
DECLARE_WRITE8_HANDLER( fastfred_charbank2_w );
DECLARE_WRITE8_HANDLER( fastfred_colorbank1_w );
DECLARE_WRITE8_HANDLER( fastfred_colorbank2_w );
DECLARE_WRITE8_HANDLER( fastfred_flip_screen_x_w );
DECLARE_WRITE8_HANDLER( fastfred_flip_screen_y_w );
DECLARE_WRITE8_HANDLER( imago_fg_videoram_w );
DECLARE_WRITE8_HANDLER( imago_charbank_w );

View File

@ -60,8 +60,3 @@ public:
UINT32 screen_update_ninjemak(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
void draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect );
};
/*----------- defined in video/galivan.c -----------*/
DECLARE_WRITE8_HANDLER( ninjemak_scrollx_w );
DECLARE_WRITE8_HANDLER( ninjemak_scrolly_w );

View File

@ -70,7 +70,7 @@ public:
DECLARE_WRITE8_MEMBER(okibank_w);
DECLARE_WRITE8_MEMBER(raphero_sound_rombank_w);
DECLARE_READ16_MEMBER(vandykeb_r);
DECLARE_READ16_HANDLER(tdragonb_prot_r);
DECLARE_READ16_MEMBER(tdragonb_prot_r);
DECLARE_READ16_MEMBER(afega_unknown_r);
DECLARE_WRITE16_MEMBER(afega_scroll0_w);
DECLARE_WRITE16_MEMBER(afega_scroll1_w);

View File

@ -59,7 +59,7 @@ public:
int draw_video(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect, bool alt_sprites);
// temp hack
DECLARE_READ16_HANDLER(temp_read_handler_r)
DECLARE_READ16_MEMBER(temp_read_handler_r)
{
return 0xffff;
}

View File

@ -302,21 +302,20 @@ static const struct cchip_mapping *const levelData[]=
level08
};
static void WriteLevelData( running_machine &machine )
void asuka_state::WriteLevelData()
{
asuka_state *state = machine.driver_data<asuka_state>();
int i;
for (i = 0; i < 13; i++)
{
UINT16 v = CLEV[state->m_current_round][i];
UINT16 v = CLEV[m_current_round][i];
state->m_cval[2 * i + 0] = v & 0xff;
state->m_cval[2 * i + 1] = v >> 8;
m_cval[2 * i + 0] = v & 0xff;
m_cval[2 * i + 1] = v >> 8;
}
}
static void WriteRestartPos( running_machine &machine, int level )
void asuka_state::WriteRestartPos(int level )
{
/*
Cval0/1 = scroll x position
@ -328,10 +327,8 @@ static void WriteRestartPos( running_machine &machine, int level )
on the map, which is then given to the C-Chip in order
for the restart position to be returned.
*/
asuka_state *state = machine.driver_data<asuka_state>();
int x = state->m_cval[0] + 256 * state->m_cval[1] + state->m_cval[4] + 256 * state->m_cval[5];
int y = state->m_cval[2] + 256 * state->m_cval[3] + state->m_cval[6] + 256 * state->m_cval[7];
int x = m_cval[0] + 256 * m_cval[1] + m_cval[4] + 256 * m_cval[5];
int y = m_cval[2] + 256 * m_cval[3] + m_cval[6] + 256 * m_cval[7];
const struct cchip_mapping* thisLevel = levelData[level];
@ -340,17 +337,17 @@ static void WriteRestartPos( running_machine &machine, int level )
if (x >= thisLevel->xmin && x < thisLevel->xmax &&
y >= thisLevel->ymin && y < thisLevel->ymax)
{
state->m_cval[0] = thisLevel->sx & 0xff;
state->m_cval[1] = thisLevel->sx >> 8;
state->m_cval[2] = thisLevel->sy & 0xff;
state->m_cval[3] = thisLevel->sy >> 8;
state->m_cval[4] = thisLevel->px & 0xff;
state->m_cval[5] = thisLevel->px >> 8;
state->m_cval[6] = thisLevel->py & 0xff;
state->m_cval[7] = thisLevel->py >> 8;
m_cval[0] = thisLevel->sx & 0xff;
m_cval[1] = thisLevel->sx >> 8;
m_cval[2] = thisLevel->sy & 0xff;
m_cval[3] = thisLevel->sy >> 8;
m_cval[4] = thisLevel->px & 0xff;
m_cval[5] = thisLevel->px >> 8;
m_cval[6] = thisLevel->py & 0xff;
m_cval[7] = thisLevel->py >> 8;
// Restart position found ok
state->m_restart_status = 0;
m_restart_status = 0;
return;
}
@ -359,7 +356,7 @@ static void WriteRestartPos( running_machine &machine, int level )
}
// No restart position found for this position (cval0-7 confirmed unchanged in this case)
state->m_restart_status = 0xff;
m_restart_status = 0xff;
}
@ -369,54 +366,51 @@ static void WriteRestartPos( running_machine &machine, int level )
*
*************************************/
WRITE16_HANDLER( bonzeadv_cchip_ctrl_w )
WRITE16_MEMBER(asuka_state::bonzeadv_cchip_ctrl_w)
{
/* value 2 is written here */
}
WRITE16_HANDLER( bonzeadv_cchip_bank_w )
WRITE16_MEMBER(asuka_state::bonzeadv_cchip_bank_w)
{
asuka_state *state = space.machine().driver_data<asuka_state>();
state->m_current_bank = data & 7;
m_current_bank = data & 7;
}
WRITE16_HANDLER( bonzeadv_cchip_ram_w )
WRITE16_MEMBER(asuka_state::bonzeadv_cchip_ram_w)
{
asuka_state *state = space.machine().driver_data<asuka_state>();
// if (space.device().safe_pc()!=0xa028)
// logerror("%08x: write %04x %04x cchip\n", space.device().safe_pc(), offset, data);
if (state->m_current_bank == 0)
if (m_current_bank == 0)
{
if (offset == 0x08)
{
state->m_cc_port = data;
m_cc_port = data;
coin_lockout_w(space.machine(), 1, data & 0x80);
coin_lockout_w(space.machine(), 0, data & 0x40);
coin_counter_w(space.machine(), 1, data & 0x20);
coin_counter_w(space.machine(), 0, data & 0x10);
coin_lockout_w(machine(), 1, data & 0x80);
coin_lockout_w(machine(), 0, data & 0x40);
coin_counter_w(machine(), 1, data & 0x20);
coin_counter_w(machine(), 0, data & 0x10);
}
if (offset == 0x0e && data != 0x00)
{
WriteRestartPos(space.machine(), state->m_current_round);
WriteRestartPos(m_current_round);
}
if (offset == 0x0f && data != 0x00)
{
WriteLevelData(space.machine());
WriteLevelData();
}
if (offset == 0x10)
{
state->m_current_round = data;
m_current_round = data;
}
if (offset >= 0x11 && offset <= 0x2a)
{
state->m_cval[offset - 0x11] = data;
m_cval[offset - 0x11] = data;
}
}
}
@ -427,7 +421,7 @@ WRITE16_HANDLER( bonzeadv_cchip_ram_w )
*
*************************************/
READ16_HANDLER( bonzeadv_cchip_ctrl_r )
READ16_MEMBER(asuka_state::bonzeadv_cchip_ctrl_r)
{
/*
Bit 2 = Error signal
@ -436,31 +430,29 @@ READ16_HANDLER( bonzeadv_cchip_ctrl_r )
return 0x01; /* Return 0x05 for C-Chip error */
}
READ16_HANDLER( bonzeadv_cchip_ram_r )
READ16_MEMBER(asuka_state::bonzeadv_cchip_ram_r)
{
asuka_state *state = space.machine().driver_data<asuka_state>();
// logerror("%08x: read %04x cchip\n", space.device().safe_pc(), offset);
if (state->m_current_bank == 0)
if (m_current_bank == 0)
{
switch (offset)
{
case 0x03: return state->ioport("800007")->read(); /* STARTn + SERVICE1 */
case 0x04: return state->ioport("800009")->read(); /* COINn */
case 0x05: return state->ioport("80000B")->read(); /* Player controls + TILT */
case 0x06: return state->ioport("80000D")->read(); /* Player controls (cocktail) */
case 0x08: return state->m_cc_port;
case 0x03: return ioport("800007")->read(); /* STARTn + SERVICE1 */
case 0x04: return ioport("800009")->read(); /* COINn */
case 0x05: return ioport("80000B")->read(); /* Player controls + TILT */
case 0x06: return ioport("80000D")->read(); /* Player controls (cocktail) */
case 0x08: return m_cc_port;
}
if (offset == 0x0e)
{
return state->m_restart_status; /* 0xff signals error, 0 signals ok */
return m_restart_status; /* 0xff signals error, 0 signals ok */
}
if (offset >= 0x11 && offset <= 0x2a)
{
return state->m_cval[offset - 0x11];
return m_cval[offset - 0x11];
}
}

View File

@ -113,18 +113,16 @@ VIDEO_START_MEMBER(fastfred_state,fastfred)
*
*************************************/
WRITE8_HANDLER( fastfred_videoram_w )
{
fastfred_state *state = space.machine().driver_data<fastfred_state>();
state->m_videoram[offset] = data;
state->m_bg_tilemap->mark_tile_dirty(offset);
WRITE8_MEMBER(fastfred_state::fastfred_videoram_w )
{
m_videoram[offset] = data;
m_bg_tilemap->mark_tile_dirty(offset);
}
WRITE8_HANDLER( fastfred_attributes_w )
WRITE8_MEMBER(fastfred_state::fastfred_attributes_w )
{
fastfred_state *state = space.machine().driver_data<fastfred_state>();
if (state->m_attributesram[offset] != data)
if (m_attributesram[offset] != data)
{
if (offset & 0x01)
{
@ -132,93 +130,87 @@ WRITE8_HANDLER( fastfred_attributes_w )
int i;
for (i = offset / 2; i < 0x0400; i += 32)
state->m_bg_tilemap->mark_tile_dirty(i);
m_bg_tilemap->mark_tile_dirty(i);
}
else
{
/* coloumn scroll */
state->m_bg_tilemap->set_scrolly(offset / 2, data);
m_bg_tilemap->set_scrolly(offset / 2, data);
}
state->m_attributesram[offset] = data;
m_attributesram[offset] = data;
}
}
WRITE8_HANDLER( fastfred_charbank1_w )
WRITE8_MEMBER(fastfred_state::fastfred_charbank1_w )
{
fastfred_state *state = space.machine().driver_data<fastfred_state>();
UINT16 new_data = (state->m_charbank & 0x0200) | ((data & 0x01) << 8);
UINT16 new_data = (m_charbank & 0x0200) | ((data & 0x01) << 8);
if (new_data != state->m_charbank)
if (new_data != m_charbank)
{
state->m_bg_tilemap->mark_all_dirty();
m_bg_tilemap->mark_all_dirty();
state->m_charbank = new_data;
m_charbank = new_data;
}
}
WRITE8_HANDLER( fastfred_charbank2_w )
WRITE8_MEMBER(fastfred_state::fastfred_charbank2_w )
{
fastfred_state *state = space.machine().driver_data<fastfred_state>();
UINT16 new_data = (state->m_charbank & 0x0100) | ((data & 0x01) << 9);
UINT16 new_data = (m_charbank & 0x0100) | ((data & 0x01) << 9);
if (new_data != state->m_charbank)
if (new_data != m_charbank)
{
state->m_bg_tilemap->mark_all_dirty();
m_bg_tilemap->mark_all_dirty();
state->m_charbank = new_data;
m_charbank = new_data;
}
}
WRITE8_HANDLER( fastfred_colorbank1_w )
WRITE8_MEMBER(fastfred_state::fastfred_colorbank1_w )
{
fastfred_state *state = space.machine().driver_data<fastfred_state>();
UINT8 new_data = (state->m_colorbank & 0x10) | ((data & 0x01) << 3);
UINT8 new_data = (m_colorbank & 0x10) | ((data & 0x01) << 3);
if (new_data != state->m_colorbank)
if (new_data != m_colorbank)
{
state->m_bg_tilemap->mark_all_dirty();
m_bg_tilemap->mark_all_dirty();
state->m_colorbank = new_data;
m_colorbank = new_data;
}
}
WRITE8_HANDLER( fastfred_colorbank2_w )
WRITE8_MEMBER(fastfred_state::fastfred_colorbank2_w )
{
fastfred_state *state = space.machine().driver_data<fastfred_state>();
UINT8 new_data = (state->m_colorbank & 0x08) | ((data & 0x01) << 4);
UINT8 new_data = (m_colorbank & 0x08) | ((data & 0x01) << 4);
if (new_data != state->m_colorbank)
if (new_data != m_colorbank)
{
state->m_bg_tilemap->mark_all_dirty();
m_bg_tilemap->mark_all_dirty();
state->m_colorbank = new_data;
m_colorbank = new_data;
}
}
WRITE8_HANDLER( fastfred_flip_screen_x_w )
WRITE8_MEMBER(fastfred_state::fastfred_flip_screen_x_w )
{
fastfred_state *state = space.machine().driver_data<fastfred_state>();
if (state->flip_screen_x() != (data & 0x01))
if (flip_screen_x() != (data & 0x01))
{
state->flip_screen_x_set(data & 0x01);
flip_screen_x_set(data & 0x01);
state->m_bg_tilemap->set_flip((state->flip_screen_x() ? TILEMAP_FLIPX : 0) | (state->flip_screen_y() ? TILEMAP_FLIPY : 0));
m_bg_tilemap->set_flip((flip_screen_x() ? TILEMAP_FLIPX : 0) | (flip_screen_y() ? TILEMAP_FLIPY : 0));
}
}
WRITE8_HANDLER( fastfred_flip_screen_y_w )
WRITE8_MEMBER(fastfred_state::fastfred_flip_screen_y_w )
{
fastfred_state *state = space.machine().driver_data<fastfred_state>();
if (state->flip_screen_y() != (data & 0x01))
if (flip_screen_y() != (data & 0x01))
{
state->flip_screen_y_set(data & 0x01);
flip_screen_y_set(data & 0x01);
state->m_bg_tilemap->set_flip((state->flip_screen_x() ? TILEMAP_FLIPX : 0) | (state->flip_screen_y() ? TILEMAP_FLIPY : 0));
m_bg_tilemap->set_flip((flip_screen_x() ? TILEMAP_FLIPX : 0) | (flip_screen_y() ? TILEMAP_FLIPY : 0));
}
}
@ -325,20 +317,18 @@ TILE_GET_INFO_MEMBER(fastfred_state::imago_get_tile_info_web)
SET_TILE_INFO_MEMBER(3, tile_index & 0x1ff, 0, 0);
}
WRITE8_HANDLER( imago_fg_videoram_w )
WRITE8_MEMBER(fastfred_state::imago_fg_videoram_w )
{
fastfred_state *state = space.machine().driver_data<fastfred_state>();
state->m_imago_fg_videoram[offset] = data;
state->m_fg_tilemap->mark_tile_dirty(offset);
m_imago_fg_videoram[offset] = data;
m_fg_tilemap->mark_tile_dirty(offset);
}
WRITE8_HANDLER( imago_charbank_w )
WRITE8_MEMBER(fastfred_state::imago_charbank_w )
{
fastfred_state *state = space.machine().driver_data<fastfred_state>();
if( state->m_charbank != data )
if( m_charbank != data )
{
state->m_charbank = data;
state->m_bg_tilemap->mark_all_dirty();
m_charbank = data;
m_bg_tilemap->mark_all_dirty();
}
}