diff options
Diffstat (limited to 'src/mame/drivers/suprnova.c')
-rw-r--r-- | src/mame/drivers/suprnova.c | 215 |
1 files changed, 98 insertions, 117 deletions
diff --git a/src/mame/drivers/suprnova.c b/src/mame/drivers/suprnova.c index 0e4b82bbffb..7e095d68b90 100644 --- a/src/mame/drivers/suprnova.c +++ b/src/mame/drivers/suprnova.c @@ -225,11 +225,10 @@ static void hit_recalc(running_machine &machine) */ } -static WRITE32_HANDLER ( skns_hit_w ) +WRITE32_MEMBER(skns_state::skns_hit_w) //void hit_w(UINT32 adr, UINT32 data, int type) { - skns_state *state = space->machine().driver_data<skns_state>(); - hit_t &hit = state->m_hit; + hit_t &hit = m_hit; int adr = offset * 4; switch(adr) { @@ -288,19 +287,18 @@ static WRITE32_HANDLER ( skns_hit_w ) // log_write("HIT", adr, data, type); break; } - hit_recalc(space->machine()); + hit_recalc(machine()); } -static WRITE32_HANDLER ( skns_hit2_w ) +WRITE32_MEMBER(skns_state::skns_hit2_w) { - skns_state *state = space->machine().driver_data<skns_state>(); - hit_t &hit = state->m_hit; + hit_t &hit = m_hit; // Decide to unlock on country char of string "FOR xxxxx" in Bios ROM at offset 0x420 // this code simulates behaviour of protection PLD data>>= 24; hit.disconnect = 1; - switch (state->m_region) + switch (m_region) { case 'J': if (data == 0) hit.disconnect= 0; @@ -325,11 +323,10 @@ static WRITE32_HANDLER ( skns_hit2_w ) } -static READ32_HANDLER( skns_hit_r ) +READ32_MEMBER(skns_state::skns_hit_r) //UINT32 hit_r(UINT32 adr, int type) { - skns_state *state = space->machine().driver_data<skns_state>(); - hit_t &hit = state->m_hit; + hit_t &hit = m_hit; int adr = offset *4; // log_read("HIT", adr, type); @@ -339,7 +336,7 @@ static READ32_HANDLER( skns_hit_r ) switch(adr) { case 0x28: case 0x2a: - return (UINT16)space->machine().rand(); + return (UINT16)machine().rand(); case 0x00: case 0x10: return (UINT16)hit.x_in; @@ -603,16 +600,16 @@ INPUT_PORTS_END -static WRITE32_HANDLER( skns_io_w ) +WRITE32_MEMBER(skns_state::skns_io_w) { switch(offset) { case 2: if(ACCESSING_BITS_24_31) { /* Coin Lock/Count */ -// coin_counter_w(space->machine(), 0, data & 0x01000000); -// coin_counter_w(space->machine(), 1, data & 0x02000000); -// coin_lockout_w(space->machine(), 0, ~data & 0x04000000); -// coin_lockout_w(space->machine(), 1, ~data & 0x08000000); // Works in puzzloop, others behave strange. +// coin_counter_w(machine(), 0, data & 0x01000000); +// coin_counter_w(machine(), 1, data & 0x02000000); +// coin_lockout_w(machine(), 0, ~data & 0x04000000); +// coin_lockout_w(machine(), 1, ~data & 0x08000000); // Works in puzzloop, others behave strange. } if(ACCESSING_BITS_16_23) { /* Analogue Input Select */ @@ -628,28 +625,28 @@ static WRITE32_HANDLER( skns_io_w ) if(ACCESSING_BITS_8_15) { /* Interrupt Clear, do we need these? */ /* if(data&0x01) - cputag_set_input_line(space->machine(), "maincpu",1,CLEAR_LINE); + cputag_set_input_line(machine(), "maincpu",1,CLEAR_LINE); if(data&0x02) - cputag_set_input_line(space->machine(), "maincpu",3,CLEAR_LINE); + cputag_set_input_line(machine(), "maincpu",3,CLEAR_LINE); if(data&0x04) - cputag_set_input_line(space->machine(), "maincpu",5,CLEAR_LINE); + cputag_set_input_line(machine(), "maincpu",5,CLEAR_LINE); if(data&0x08) - cputag_set_input_line(space->machine(), "maincpu",7,CLEAR_LINE); + cputag_set_input_line(machine(), "maincpu",7,CLEAR_LINE); if(data&0x10) - cputag_set_input_line(space->machine(), "maincpu",9,CLEAR_LINE); + cputag_set_input_line(machine(), "maincpu",9,CLEAR_LINE); if(data&0x20) - cputag_set_input_line(space->machine(), "maincpu",0xb,CLEAR_LINE); + cputag_set_input_line(machine(), "maincpu",0xb,CLEAR_LINE); if(data&0x40) - cputag_set_input_line(space->machine(), "maincpu",0xd,CLEAR_LINE); + cputag_set_input_line(machine(), "maincpu",0xd,CLEAR_LINE); if(data&0x80) - cputag_set_input_line(space->machine(), "maincpu",0xf,CLEAR_LINE);*/ + cputag_set_input_line(machine(), "maincpu",0xf,CLEAR_LINE);*/ /* idle skip for vblokbrk/sarukani, i can't find a better place to put it :-( but i think it works ok unless its making the game too fast */ - if (cpu_get_pc(&space->device())==0x04013B42) + if (cpu_get_pc(&space.device())==0x04013B42) { - if (!strcmp(space->machine().system().name,"vblokbrk") || - !strcmp(space->machine().system().name,"sarukani")) - device_spin_until_interrupt(&space->device()); + if (!strcmp(machine().system().name,"vblokbrk") || + !strcmp(machine().system().name,"sarukani")) + device_spin_until_interrupt(&space.device()); } } @@ -666,17 +663,16 @@ static WRITE32_HANDLER( skns_io_w ) /* end old driver code */ -static WRITE32_HANDLER( skns_v3t_w ) +WRITE32_MEMBER(skns_state::skns_v3t_w) { - skns_state *state = space->machine().driver_data<skns_state>(); - UINT8 *btiles = space->machine().region("gfx3")->base(); + UINT8 *btiles = machine().region("gfx3")->base(); - COMBINE_DATA(&state->m_v3t_ram[offset]); + COMBINE_DATA(&m_v3t_ram[offset]); - gfx_element_mark_dirty(space->machine().gfx[1], offset/0x40); - gfx_element_mark_dirty(space->machine().gfx[3], offset/0x20); + gfx_element_mark_dirty(machine().gfx[1], offset/0x40); + gfx_element_mark_dirty(machine().gfx[3], offset/0x20); - data = state->m_v3t_ram[offset]; + data = m_v3t_ram[offset]; // i think we need to swap around to decode .. endian issues? btiles[offset*4+0] = (data & 0xff000000) >> 24; btiles[offset*4+1] = (data & 0x00ff0000) >> 16; @@ -686,7 +682,7 @@ static WRITE32_HANDLER( skns_v3t_w ) static ADDRESS_MAP_START( skns_map, AS_PROGRAM, 32, skns_state ) AM_RANGE(0x00000000, 0x0007ffff) AM_ROM /* BIOS ROM */ - AM_RANGE(0x00400000, 0x0040000f) AM_WRITE_LEGACY(skns_io_w) /* I/O Write */ + AM_RANGE(0x00400000, 0x0040000f) AM_WRITE(skns_io_w) /* I/O Write */ AM_RANGE(0x00400000, 0x00400003) AM_READ_PORT("400000") AM_RANGE(0x00400004, 0x00400007) AM_READ_PORT("400004") /* In between is write only */ @@ -694,7 +690,7 @@ static ADDRESS_MAP_START( skns_map, AS_PROGRAM, 32, skns_state ) AM_RANGE(0x00800000, 0x00801fff) AM_RAM AM_SHARE("nvram") /* 'backup' RAM */ AM_RANGE(0x00c00000, 0x00c00003) AM_DEVREADWRITE8_LEGACY("ymz", ymz280b_r, ymz280b_w, 0xffff0000) /* ymz280_w (sound) */ AM_RANGE(0x01000000, 0x0100000f) AM_DEVREADWRITE8("rtc", msm6242_device, read, write, 0xffffffff) - AM_RANGE(0x01800000, 0x01800003) AM_WRITE_LEGACY(skns_hit2_w) + AM_RANGE(0x01800000, 0x01800003) AM_WRITE(skns_hit2_w) AM_RANGE(0x02000000, 0x02003fff) AM_RAM AM_SHARE("spriteram") /* sprite ram */ AM_RANGE(0x02100000, 0x0210003f) AM_RAM AM_BASE(m_spc_regs) /* sprite registers */ AM_RANGE(0x02400000, 0x0240007f) AM_RAM_WRITE_LEGACY(skns_v3_regs_w) AM_BASE(m_v3_regs) /* tilemap registers */ @@ -703,9 +699,9 @@ static ADDRESS_MAP_START( skns_map, AS_PROGRAM, 32, skns_state ) AM_RANGE(0x02600000, 0x02607fff) AM_RAM AM_BASE(m_v3slc_ram) /* tilemap linescroll */ AM_RANGE(0x02a00000, 0x02a0001f) AM_RAM_WRITE_LEGACY(skns_pal_regs_w) AM_BASE(m_pal_regs) AM_RANGE(0x02a40000, 0x02a5ffff) AM_RAM_WRITE_LEGACY(skns_palette_ram_w) AM_BASE(m_palette_ram) - AM_RANGE(0x02f00000, 0x02f000ff) AM_READWRITE_LEGACY(skns_hit_r, skns_hit_w) + AM_RANGE(0x02f00000, 0x02f000ff) AM_READWRITE(skns_hit_r, skns_hit_w) AM_RANGE(0x04000000, 0x041fffff) AM_ROMBANK("bank1") /* GAME ROM */ - AM_RANGE(0x04800000, 0x0483ffff) AM_RAM_WRITE_LEGACY(skns_v3t_w) AM_BASE(m_v3t_ram) /* tilemap b ram based tiles */ + AM_RANGE(0x04800000, 0x0483ffff) AM_RAM_WRITE(skns_v3t_w) AM_BASE(m_v3t_ram) /* tilemap b ram based tiles */ AM_RANGE(0x06000000, 0x060fffff) AM_RAM AM_BASE(m_main_ram) AM_RANGE(0xc0000000, 0xc0000fff) AM_RAM AM_BASE(m_cache_ram) /* 'cache' RAM */ ADDRESS_MAP_END @@ -861,9 +857,8 @@ MACHINE_CONFIG_END /***** IDLE SKIPPING *****/ -static READ32_HANDLER( gutsn_speedup_r ) +READ32_MEMBER(skns_state::gutsn_speedup_r) { - skns_state *state = space->machine().driver_data<skns_state>(); /* 0402206A: MOV.L @($8C,PC),R5 0402206C: MOV.L @($8C,PC),R1 @@ -872,45 +867,40 @@ static READ32_HANDLER( gutsn_speedup_r ) 04022072: CMP/EQ R2,R3 04022074: BT $0402206C */ - if (cpu_get_pc(&space->device())==0x402206e) + if (cpu_get_pc(&space.device())==0x402206e) { - if(state->m_main_ram[0x00078/4] == state->m_main_ram[0x0c780/4]) - device_spin_until_interrupt(&space->device()); + if(m_main_ram[0x00078/4] == m_main_ram[0x0c780/4]) + device_spin_until_interrupt(&space.device()); } - return state->m_main_ram[0x0c780/4]; + return m_main_ram[0x0c780/4]; } -static READ32_HANDLER( cyvern_speedup_r ) +READ32_MEMBER(skns_state::cyvern_speedup_r) { - skns_state *state = space->machine().driver_data<skns_state>(); - if (cpu_get_pc(&space->device())==0x402ebd2) device_spin_until_interrupt(&space->device()); - return state->m_main_ram[0x4d3c8/4]; + if (cpu_get_pc(&space.device())==0x402ebd2) device_spin_until_interrupt(&space.device()); + return m_main_ram[0x4d3c8/4]; } -static READ32_HANDLER( puzzloopj_speedup_r ) +READ32_MEMBER(skns_state::puzzloopj_speedup_r) { - skns_state *state = space->machine().driver_data<skns_state>(); - if (cpu_get_pc(&space->device())==0x401dca0) device_spin_until_interrupt(&space->device()); - return state->m_main_ram[0x86714/4]; + if (cpu_get_pc(&space.device())==0x401dca0) device_spin_until_interrupt(&space.device()); + return m_main_ram[0x86714/4]; } -static READ32_HANDLER( puzzloopa_speedup_r ) +READ32_MEMBER(skns_state::puzzloopa_speedup_r) { - skns_state *state = space->machine().driver_data<skns_state>(); - if (cpu_get_pc(&space->device())==0x401d9d4) device_spin_until_interrupt(&space->device()); - return state->m_main_ram[0x85bcc/4]; + if (cpu_get_pc(&space.device())==0x401d9d4) device_spin_until_interrupt(&space.device()); + return m_main_ram[0x85bcc/4]; } -static READ32_HANDLER( puzzloopu_speedup_r ) +READ32_MEMBER(skns_state::puzzloopu_speedup_r) { - skns_state *state = space->machine().driver_data<skns_state>(); - if (cpu_get_pc(&space->device())==0x401dab0) device_spin_until_interrupt(&space->device()); - return state->m_main_ram[0x85cec/4]; + if (cpu_get_pc(&space.device())==0x401dab0) device_spin_until_interrupt(&space.device()); + return m_main_ram[0x85cec/4]; } -static READ32_HANDLER( puzzloope_speedup_r ) +READ32_MEMBER(skns_state::puzzloope_speedup_r) { - skns_state *state = space->machine().driver_data<skns_state>(); /* 0401DA12: MOV.L @($80,PC),R1 0401DA14: MOV.L @R1,R0 (R1=0x6081d38) @@ -918,71 +908,62 @@ static READ32_HANDLER( puzzloope_speedup_r ) 0401DA18: BF $0401DA26 0401DA26: BRA $0401DA12 */ - if (cpu_get_pc(&space->device())==0x401da14) device_spin_until_interrupt(&space->device()); - return state->m_main_ram[0x81d38/4]; + if (cpu_get_pc(&space.device())==0x401da14) device_spin_until_interrupt(&space.device()); + return m_main_ram[0x81d38/4]; } -static READ32_HANDLER( senknow_speedup_r ) +READ32_MEMBER(skns_state::senknow_speedup_r) { - skns_state *state = space->machine().driver_data<skns_state>(); - if (cpu_get_pc(&space->device())==0x4017dce) device_spin_until_interrupt(&space->device()); - return state->m_main_ram[0x0000dc/4]; + if (cpu_get_pc(&space.device())==0x4017dce) device_spin_until_interrupt(&space.device()); + return m_main_ram[0x0000dc/4]; } -static READ32_HANDLER( teljan_speedup_r ) +READ32_MEMBER(skns_state::teljan_speedup_r) { - skns_state *state = space->machine().driver_data<skns_state>(); - if (cpu_get_pc(&space->device())==0x401ba32) device_spin_until_interrupt(&space->device()); - return state->m_main_ram[0x002fb4/4]; + if (cpu_get_pc(&space.device())==0x401ba32) device_spin_until_interrupt(&space.device()); + return m_main_ram[0x002fb4/4]; } -static READ32_HANDLER( jjparads_speedup_r ) +READ32_MEMBER(skns_state::jjparads_speedup_r) { - skns_state *state = space->machine().driver_data<skns_state>(); - if (cpu_get_pc(&space->device())==0x4015e84) device_spin_until_interrupt(&space->device()); - return state->m_main_ram[0x000994/4]; + if (cpu_get_pc(&space.device())==0x4015e84) device_spin_until_interrupt(&space.device()); + return m_main_ram[0x000994/4]; } -static READ32_HANDLER( jjparad2_speedup_r ) +READ32_MEMBER(skns_state::jjparad2_speedup_r) { - skns_state *state = space->machine().driver_data<skns_state>(); - if (cpu_get_pc(&space->device())==0x401620a) device_spin_until_interrupt(&space->device()); - return state->m_main_ram[0x000984/4]; + if (cpu_get_pc(&space.device())==0x401620a) device_spin_until_interrupt(&space.device()); + return m_main_ram[0x000984/4]; } -static READ32_HANDLER( ryouran_speedup_r ) +READ32_MEMBER(skns_state::ryouran_speedup_r) { - skns_state *state = space->machine().driver_data<skns_state>(); - if (cpu_get_pc(&space->device())==0x40182ce) device_spin_until_interrupt(&space->device()); - return state->m_main_ram[0x000a14/4]; + if (cpu_get_pc(&space.device())==0x40182ce) device_spin_until_interrupt(&space.device()); + return m_main_ram[0x000a14/4]; } -static READ32_HANDLER( galpans2_speedup_r ) +READ32_MEMBER(skns_state::galpans2_speedup_r) { - skns_state *state = space->machine().driver_data<skns_state>(); - if (cpu_get_pc(&space->device())==0x4049ae2) device_spin_until_interrupt(&space->device()); - return state->m_main_ram[0x0fb6bc/4]; + if (cpu_get_pc(&space.device())==0x4049ae2) device_spin_until_interrupt(&space.device()); + return m_main_ram[0x0fb6bc/4]; } -static READ32_HANDLER( panicstr_speedup_r ) +READ32_MEMBER(skns_state::panicstr_speedup_r) { - skns_state *state = space->machine().driver_data<skns_state>(); - if (cpu_get_pc(&space->device())==0x404e68a) device_spin_until_interrupt(&space->device()); - return state->m_main_ram[0x0f19e4/4]; + if (cpu_get_pc(&space.device())==0x404e68a) device_spin_until_interrupt(&space.device()); + return m_main_ram[0x0f19e4/4]; } -static READ32_HANDLER( sengekis_speedup_r ) // 60006ee 600308e +READ32_MEMBER(skns_state::sengekis_speedup_r)// 60006ee 600308e { - skns_state *state = space->machine().driver_data<skns_state>(); - if (cpu_get_pc(&space->device())==0x60006ec) device_spin_until_interrupt(&space->device()); - return state->m_main_ram[0xb74bc/4]; + if (cpu_get_pc(&space.device())==0x60006ec) device_spin_until_interrupt(&space.device()); + return m_main_ram[0xb74bc/4]; } -static READ32_HANDLER( sengekij_speedup_r ) // 60006ee 600308e +READ32_MEMBER(skns_state::sengekij_speedup_r)// 60006ee 600308e { - skns_state *state = space->machine().driver_data<skns_state>(); - if (cpu_get_pc(&space->device())==0x60006ec) device_spin_until_interrupt(&space->device()); - return state->m_main_ram[0xb7380/4]; + if (cpu_get_pc(&space.device())==0x60006ec) device_spin_until_interrupt(&space.device()); + return m_main_ram[0xb7380/4]; } static void init_skns(running_machine &machine) @@ -998,21 +979,21 @@ static void set_drc_pcflush(running_machine &machine, UINT32 addr) static DRIVER_INIT( galpani4 ) { machine.device<sknsspr_device>("spritegen")->skns_sprite_kludge(-5,-1); init_skns(machine); } static DRIVER_INIT( galpanis ) { machine.device<sknsspr_device>("spritegen")->skns_sprite_kludge(-5,-1); init_skns(machine); } -static DRIVER_INIT( cyvern ) { machine.device<sknsspr_device>("spritegen")->skns_sprite_kludge(+0,+2); init_skns(machine); machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_read_handler(0x604d3c8, 0x604d3cb, FUNC(cyvern_speedup_r) ); set_drc_pcflush(machine, 0x402ebd2); } -static DRIVER_INIT( galpans2 ) { machine.device<sknsspr_device>("spritegen")->skns_sprite_kludge(-1,-1); init_skns(machine); machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_read_handler(0x60fb6bc, 0x60fb6bf, FUNC(galpans2_speedup_r) ); set_drc_pcflush(machine, 0x4049ae2); } -static DRIVER_INIT( gutsn ) { machine.device<sknsspr_device>("spritegen")->skns_sprite_kludge(+0,+0); init_skns(machine); machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_read_handler(0x600c780, 0x600c783, FUNC(gutsn_speedup_r) ); set_drc_pcflush(machine, 0x402206e); } -static DRIVER_INIT( panicstr ) { machine.device<sknsspr_device>("spritegen")->skns_sprite_kludge(-1,-1); init_skns(machine); machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_read_handler(0x60f19e4, 0x60f19e7, FUNC(panicstr_speedup_r) ); set_drc_pcflush(machine, 0x404e68a); } -static DRIVER_INIT( senknow ) { machine.device<sknsspr_device>("spritegen")->skns_sprite_kludge(+1,+1); init_skns(machine); machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_read_handler(0x60000dc, 0x60000df, FUNC(senknow_speedup_r) ); set_drc_pcflush(machine, 0x4017dce); } -static DRIVER_INIT( puzzloope ) { machine.device<sknsspr_device>("spritegen")->skns_sprite_kludge(-9,-1); init_skns(machine); machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_read_handler(0x6081d38, 0x6081d3b, FUNC(puzzloope_speedup_r) ); set_drc_pcflush(machine, 0x401da14); } -static DRIVER_INIT( puzzloopj ) { machine.device<sknsspr_device>("spritegen")->skns_sprite_kludge(-9,-1); init_skns(machine); machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_read_handler(0x6086714, 0x6086717, FUNC(puzzloopj_speedup_r) ); set_drc_pcflush(machine, 0x401dca0); } -static DRIVER_INIT( puzzloopa ) { machine.device<sknsspr_device>("spritegen")->skns_sprite_kludge(-9,-1); init_skns(machine); machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_read_handler(0x6085bcc, 0x6085bcf, FUNC(puzzloopa_speedup_r) ); set_drc_pcflush(machine, 0x401d9d4); } -static DRIVER_INIT( puzzloopu ) { machine.device<sknsspr_device>("spritegen")->skns_sprite_kludge(-9,-1); init_skns(machine); machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_read_handler(0x6085cec, 0x6085cef, FUNC(puzzloopu_speedup_r) ); set_drc_pcflush(machine, 0x401dab0); } -static DRIVER_INIT( jjparads ) { machine.device<sknsspr_device>("spritegen")->skns_sprite_kludge(+5,+1); init_skns(machine); machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_read_handler(0x6000994, 0x6000997, FUNC(jjparads_speedup_r) ); set_drc_pcflush(machine, 0x4015e84); } -static DRIVER_INIT( jjparad2 ) { machine.device<sknsspr_device>("spritegen")->skns_sprite_kludge(+5,+1); init_skns(machine); machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_read_handler(0x6000984, 0x6000987, FUNC(jjparad2_speedup_r) ); set_drc_pcflush(machine, 0x401620a); } -static DRIVER_INIT( ryouran ) { machine.device<sknsspr_device>("spritegen")->skns_sprite_kludge(+5,+1); init_skns(machine); machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_read_handler(0x6000a14, 0x6000a17, FUNC(ryouran_speedup_r) ); set_drc_pcflush(machine, 0x40182ce); } -static DRIVER_INIT( teljan ) { machine.device<sknsspr_device>("spritegen")->skns_sprite_kludge(+5,+1); init_skns(machine); machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_read_handler(0x6002fb4, 0x6002fb7, FUNC(teljan_speedup_r) ); set_drc_pcflush(machine, 0x401ba32); } -static DRIVER_INIT( sengekis ) { machine.device<sknsspr_device>("spritegen")->skns_sprite_kludge(-192,-272); init_skns(machine); machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_read_handler(0x60b74bc, 0x60b74bf, FUNC(sengekis_speedup_r) ); set_drc_pcflush(machine, 0x60006ec); } -static DRIVER_INIT( sengekij ) { machine.device<sknsspr_device>("spritegen")->skns_sprite_kludge(-192,-272); init_skns(machine); machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_read_handler(0x60b7380, 0x60b7383, FUNC(sengekij_speedup_r) ); set_drc_pcflush(machine, 0x60006ec); } +static DRIVER_INIT( cyvern ) { machine.device<sknsspr_device>("spritegen")->skns_sprite_kludge(+0,+2); init_skns(machine); skns_state *state = machine.driver_data<skns_state>(); machine.device("maincpu")->memory().space(AS_PROGRAM)->install_read_handler(0x604d3c8, 0x604d3cb, read32_delegate(FUNC(skns_state::cyvern_speedup_r),state) ); set_drc_pcflush(machine, 0x402ebd2); } +static DRIVER_INIT( galpans2 ) { machine.device<sknsspr_device>("spritegen")->skns_sprite_kludge(-1,-1); init_skns(machine); skns_state *state = machine.driver_data<skns_state>(); machine.device("maincpu")->memory().space(AS_PROGRAM)->install_read_handler(0x60fb6bc, 0x60fb6bf, read32_delegate(FUNC(skns_state::galpans2_speedup_r),state) ); set_drc_pcflush(machine, 0x4049ae2); } +static DRIVER_INIT( gutsn ) { machine.device<sknsspr_device>("spritegen")->skns_sprite_kludge(+0,+0); init_skns(machine); skns_state *state = machine.driver_data<skns_state>(); machine.device("maincpu")->memory().space(AS_PROGRAM)->install_read_handler(0x600c780, 0x600c783, read32_delegate(FUNC(skns_state::gutsn_speedup_r),state) ); set_drc_pcflush(machine, 0x402206e); } +static DRIVER_INIT( panicstr ) { machine.device<sknsspr_device>("spritegen")->skns_sprite_kludge(-1,-1); init_skns(machine); skns_state *state = machine.driver_data<skns_state>(); machine.device("maincpu")->memory().space(AS_PROGRAM)->install_read_handler(0x60f19e4, 0x60f19e7, read32_delegate(FUNC(skns_state::panicstr_speedup_r),state) ); set_drc_pcflush(machine, 0x404e68a); } +static DRIVER_INIT( senknow ) { machine.device<sknsspr_device>("spritegen")->skns_sprite_kludge(+1,+1); init_skns(machine); skns_state *state = machine.driver_data<skns_state>(); machine.device("maincpu")->memory().space(AS_PROGRAM)->install_read_handler(0x60000dc, 0x60000df, read32_delegate(FUNC(skns_state::senknow_speedup_r),state) ); set_drc_pcflush(machine, 0x4017dce); } +static DRIVER_INIT( puzzloope ) { machine.device<sknsspr_device>("spritegen")->skns_sprite_kludge(-9,-1); init_skns(machine);skns_state *state = machine.driver_data<skns_state>(); machine.device("maincpu")->memory().space(AS_PROGRAM)->install_read_handler(0x6081d38, 0x6081d3b, read32_delegate(FUNC(skns_state::puzzloope_speedup_r),state) ); set_drc_pcflush(machine, 0x401da14); } +static DRIVER_INIT( puzzloopj ) { machine.device<sknsspr_device>("spritegen")->skns_sprite_kludge(-9,-1); init_skns(machine);skns_state *state = machine.driver_data<skns_state>(); machine.device("maincpu")->memory().space(AS_PROGRAM)->install_read_handler(0x6086714, 0x6086717, read32_delegate(FUNC(skns_state::puzzloopj_speedup_r),state) ); set_drc_pcflush(machine, 0x401dca0); } +static DRIVER_INIT( puzzloopa ) { machine.device<sknsspr_device>("spritegen")->skns_sprite_kludge(-9,-1); init_skns(machine);skns_state *state = machine.driver_data<skns_state>(); machine.device("maincpu")->memory().space(AS_PROGRAM)->install_read_handler(0x6085bcc, 0x6085bcf, read32_delegate(FUNC(skns_state::puzzloopa_speedup_r),state) ); set_drc_pcflush(machine, 0x401d9d4); } +static DRIVER_INIT( puzzloopu ) { machine.device<sknsspr_device>("spritegen")->skns_sprite_kludge(-9,-1); init_skns(machine);skns_state *state = machine.driver_data<skns_state>(); machine.device("maincpu")->memory().space(AS_PROGRAM)->install_read_handler(0x6085cec, 0x6085cef, read32_delegate(FUNC(skns_state::puzzloopu_speedup_r),state) ); set_drc_pcflush(machine, 0x401dab0); } +static DRIVER_INIT( jjparads ) { machine.device<sknsspr_device>("spritegen")->skns_sprite_kludge(+5,+1); init_skns(machine);skns_state *state = machine.driver_data<skns_state>(); machine.device("maincpu")->memory().space(AS_PROGRAM)->install_read_handler(0x6000994, 0x6000997, read32_delegate(FUNC(skns_state::jjparads_speedup_r),state) ); set_drc_pcflush(machine, 0x4015e84); } +static DRIVER_INIT( jjparad2 ) { machine.device<sknsspr_device>("spritegen")->skns_sprite_kludge(+5,+1); init_skns(machine);skns_state *state = machine.driver_data<skns_state>(); machine.device("maincpu")->memory().space(AS_PROGRAM)->install_read_handler(0x6000984, 0x6000987, read32_delegate(FUNC(skns_state::jjparad2_speedup_r),state) ); set_drc_pcflush(machine, 0x401620a); } +static DRIVER_INIT( ryouran ) { machine.device<sknsspr_device>("spritegen")->skns_sprite_kludge(+5,+1); init_skns(machine);skns_state *state = machine.driver_data<skns_state>(); machine.device("maincpu")->memory().space(AS_PROGRAM)->install_read_handler(0x6000a14, 0x6000a17, read32_delegate(FUNC(skns_state::ryouran_speedup_r),state) ); set_drc_pcflush(machine, 0x40182ce); } +static DRIVER_INIT( teljan ) { machine.device<sknsspr_device>("spritegen")->skns_sprite_kludge(+5,+1); init_skns(machine);skns_state *state = machine.driver_data<skns_state>(); machine.device("maincpu")->memory().space(AS_PROGRAM)->install_read_handler(0x6002fb4, 0x6002fb7, read32_delegate(FUNC(skns_state::teljan_speedup_r),state) ); set_drc_pcflush(machine, 0x401ba32); } +static DRIVER_INIT( sengekis ) { machine.device<sknsspr_device>("spritegen")->skns_sprite_kludge(-192,-272); init_skns(machine);skns_state *state = machine.driver_data<skns_state>(); machine.device("maincpu")->memory().space(AS_PROGRAM)->install_read_handler(0x60b74bc, 0x60b74bf, read32_delegate(FUNC(skns_state::sengekis_speedup_r),state) ); set_drc_pcflush(machine, 0x60006ec); } +static DRIVER_INIT( sengekij ) { machine.device<sknsspr_device>("spritegen")->skns_sprite_kludge(-192,-272); init_skns(machine);skns_state *state = machine.driver_data<skns_state>(); machine.device("maincpu")->memory().space(AS_PROGRAM)->install_read_handler(0x60b7380, 0x60b7383, read32_delegate(FUNC(skns_state::sengekij_speedup_r),state) ); set_drc_pcflush(machine, 0x60006ec); } static DRIVER_INIT( sarukani ) { machine.device<sknsspr_device>("spritegen")->skns_sprite_kludge(-1,-1); init_skns(machine); set_drc_pcflush(machine, 0x4013b42); } // Speedup is in skns_io_w() static DRIVER_INIT( galpans3 ) { machine.device<sknsspr_device>("spritegen")->skns_sprite_kludge(-1,-1); init_skns(machine); } |