mirror of
https://github.com/holub/mame
synced 2025-07-01 16:19:38 +03:00
cyclwarr: Driver state class separation (nw)
This commit is contained in:
parent
3f43c81b58
commit
2e14216324
@ -159,42 +159,42 @@
|
||||
|
||||
/***************************************************************************/
|
||||
|
||||
READ16_MEMBER(tatsumi_state::cyclwarr_sprite_r)
|
||||
READ16_MEMBER(cyclwarr_state::cyclwarr_sprite_r)
|
||||
{
|
||||
return m_spriteram[offset];
|
||||
}
|
||||
|
||||
WRITE16_MEMBER(tatsumi_state::cyclwarr_sprite_w)
|
||||
WRITE16_MEMBER(cyclwarr_state::cyclwarr_sprite_w)
|
||||
{
|
||||
COMBINE_DATA(&m_spriteram[offset]);
|
||||
}
|
||||
|
||||
WRITE16_MEMBER(tatsumi_state::bigfight_a20000_w)
|
||||
WRITE16_MEMBER(cyclwarr_state::bigfight_a20000_w)
|
||||
{
|
||||
COMBINE_DATA(&m_bigfight_a20000[offset]);
|
||||
}
|
||||
|
||||
WRITE16_MEMBER(tatsumi_state::bigfight_a40000_w)
|
||||
WRITE16_MEMBER(cyclwarr_state::bigfight_a40000_w)
|
||||
{
|
||||
COMBINE_DATA(&m_bigfight_a40000[offset]);
|
||||
}
|
||||
|
||||
WRITE16_MEMBER(tatsumi_state::bigfight_a60000_w)
|
||||
WRITE16_MEMBER(cyclwarr_state::bigfight_a60000_w)
|
||||
{
|
||||
COMBINE_DATA(&m_bigfight_a60000[offset]);
|
||||
}
|
||||
|
||||
WRITE16_MEMBER(tatsumi_state::io1_byte_smear_w)
|
||||
WRITE16_MEMBER(cyclwarr_state::io1_byte_smear_w)
|
||||
{
|
||||
m_io[0]->write(space, offset, data & 0xff);
|
||||
}
|
||||
|
||||
WRITE16_MEMBER(tatsumi_state::io2_byte_smear_w)
|
||||
WRITE16_MEMBER(cyclwarr_state::io2_byte_smear_w)
|
||||
{
|
||||
m_io[1]->write(space, offset, data & 0xff);
|
||||
}
|
||||
|
||||
WRITE16_MEMBER(tatsumi_state::cyclwarr_sound_w)
|
||||
WRITE16_MEMBER(cyclwarr_state::cyclwarr_sound_w)
|
||||
{
|
||||
m_soundlatch->write(space, 0, data >> 8);
|
||||
m_audiocpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE);
|
||||
@ -284,7 +284,7 @@ ADDRESS_MAP_END
|
||||
|
||||
/******************************************************************************/
|
||||
|
||||
static ADDRESS_MAP_START( cyclwarr_68000a_map, AS_PROGRAM, 16, tatsumi_state )
|
||||
static ADDRESS_MAP_START( cyclwarr_68000a_map, AS_PROGRAM, 16, cyclwarr_state )
|
||||
AM_RANGE(0x000000, 0x00ffff) AM_RAM AM_SHARE("cw_cpua_ram")
|
||||
AM_RANGE(0x03e000, 0x03efff) AM_RAM
|
||||
AM_RANGE(0x040000, 0x04ffff) AM_RAM AM_SHARE("cw_cpub_ram")
|
||||
@ -305,7 +305,7 @@ static ADDRESS_MAP_START( cyclwarr_68000a_map, AS_PROGRAM, 16, tatsumi_state )
|
||||
AM_RANGE(0x2c0000, 0x33ffff) AM_ROMBANK("bank1") /* CPU A ROM */
|
||||
ADDRESS_MAP_END
|
||||
|
||||
static ADDRESS_MAP_START( cyclwarr_68000b_map, AS_PROGRAM, 16, tatsumi_state )
|
||||
static ADDRESS_MAP_START( cyclwarr_68000b_map, AS_PROGRAM, 16, cyclwarr_state )
|
||||
AM_RANGE(0x000000, 0x00ffff) AM_RAM AM_SHARE("cw_cpub_ram")
|
||||
|
||||
AM_RANGE(0x080000, 0x08ffff) AM_READWRITE(cyclwarr_videoram1_r, cyclwarr_videoram1_w)
|
||||
@ -324,7 +324,7 @@ static ADDRESS_MAP_START( cyclwarr_68000b_map, AS_PROGRAM, 16, tatsumi_state )
|
||||
AM_RANGE(0x2c0000, 0x33ffff) AM_ROMBANK("bank1") /* CPU A ROM */
|
||||
ADDRESS_MAP_END
|
||||
|
||||
static ADDRESS_MAP_START( cyclwarr_z80_map, AS_PROGRAM, 8, tatsumi_state )
|
||||
static ADDRESS_MAP_START( cyclwarr_z80_map, AS_PROGRAM, 8, cyclwarr_state )
|
||||
AM_RANGE(0x0000, 0xdfff) AM_ROM
|
||||
AM_RANGE(0xe000, 0xffef) AM_RAM
|
||||
AM_RANGE(0xfff0, 0xfff1) AM_READ(tatsumi_hack_ym2151_r) AM_DEVWRITE("ymsnd", ym2151_device, write)
|
||||
@ -335,7 +335,7 @@ ADDRESS_MAP_END
|
||||
|
||||
/******************************************************************************/
|
||||
|
||||
static ADDRESS_MAP_START( bigfight_68000a_map, AS_PROGRAM, 16, tatsumi_state )
|
||||
static ADDRESS_MAP_START( bigfight_68000a_map, AS_PROGRAM, 16, cyclwarr_state )
|
||||
AM_RANGE(0x000000, 0x00ffff) AM_RAM AM_SHARE("cw_cpua_ram")
|
||||
|
||||
AM_RANGE(0x03e000, 0x03efff) AM_RAM
|
||||
@ -358,7 +358,7 @@ static ADDRESS_MAP_START( bigfight_68000a_map, AS_PROGRAM, 16, tatsumi_state )
|
||||
AM_RANGE(0x200000, 0x27ffff) AM_ROMBANK("bank1") /* CPU B ROM */
|
||||
ADDRESS_MAP_END
|
||||
|
||||
static ADDRESS_MAP_START( bigfight_68000b_map, AS_PROGRAM, 16, tatsumi_state )
|
||||
static ADDRESS_MAP_START( bigfight_68000b_map, AS_PROGRAM, 16, cyclwarr_state )
|
||||
AM_RANGE(0x000000, 0x00ffff) AM_RAM AM_SHARE("cw_cpub_ram")
|
||||
AM_RANGE(0x080000, 0x08ffff) AM_READWRITE(cyclwarr_videoram1_r, cyclwarr_videoram1_w)
|
||||
AM_RANGE(0x090000, 0x09ffff) AM_READWRITE(cyclwarr_videoram0_r, cyclwarr_videoram0_w)
|
||||
@ -951,11 +951,11 @@ static MACHINE_CONFIG_START( cyclwarr )
|
||||
/* basic machine hardware */
|
||||
MCFG_CPU_ADD("maincpu", M68000, CLOCK_2 / 4)
|
||||
MCFG_CPU_PROGRAM_MAP(cyclwarr_68000a_map)
|
||||
MCFG_CPU_VBLANK_INT_DRIVER("screen", tatsumi_state, irq5_line_hold)
|
||||
MCFG_CPU_VBLANK_INT_DRIVER("screen", cyclwarr_state, irq5_line_hold)
|
||||
|
||||
MCFG_CPU_ADD("sub", M68000, CLOCK_2 / 4)
|
||||
MCFG_CPU_PROGRAM_MAP(cyclwarr_68000b_map)
|
||||
MCFG_CPU_VBLANK_INT_DRIVER("screen", tatsumi_state, irq5_line_hold)
|
||||
MCFG_CPU_VBLANK_INT_DRIVER("screen", cyclwarr_state, irq5_line_hold)
|
||||
|
||||
MCFG_CPU_ADD("audiocpu", Z80, CLOCK_1 / 4)
|
||||
MCFG_CPU_PROGRAM_MAP(cyclwarr_z80_map)
|
||||
@ -973,7 +973,7 @@ static MACHINE_CONFIG_START( cyclwarr )
|
||||
MCFG_CXD1095_IN_PORTB_CB(IOPORT("DSW2"))
|
||||
MCFG_CXD1095_IN_PORTC_CB(IOPORT("P3"))
|
||||
MCFG_CXD1095_IN_PORTD_CB(IOPORT("P4"))
|
||||
MCFG_CXD1095_OUT_PORTE_CB(WRITE8(tatsumi_state, cyclwarr_control_w))
|
||||
MCFG_CXD1095_OUT_PORTE_CB(WRITE8(cyclwarr_state, cyclwarr_control_w))
|
||||
|
||||
/* video hardware */
|
||||
MCFG_SCREEN_ADD("screen", RASTER)
|
||||
@ -981,13 +981,13 @@ static MACHINE_CONFIG_START( cyclwarr )
|
||||
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
|
||||
MCFG_SCREEN_SIZE(40*8, 32*8)
|
||||
MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 30*8-1)
|
||||
MCFG_SCREEN_UPDATE_DRIVER(tatsumi_state, screen_update_cyclwarr)
|
||||
MCFG_SCREEN_UPDATE_DRIVER(cyclwarr_state, screen_update_cyclwarr)
|
||||
|
||||
MCFG_GFXDECODE_ADD("gfxdecode", "palette", cyclwarr)
|
||||
MCFG_PALETTE_ADD("palette", 8192 + 8192)
|
||||
MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB)
|
||||
|
||||
MCFG_VIDEO_START_OVERRIDE(tatsumi_state,cyclwarr)
|
||||
MCFG_VIDEO_START_OVERRIDE(cyclwarr_state, cyclwarr)
|
||||
|
||||
/* sound hardware */
|
||||
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
|
||||
@ -1009,11 +1009,11 @@ static MACHINE_CONFIG_START( bigfight )
|
||||
/* basic machine hardware */
|
||||
MCFG_CPU_ADD("maincpu", M68000, CLOCK_2 / 4)
|
||||
MCFG_CPU_PROGRAM_MAP(bigfight_68000a_map)
|
||||
MCFG_CPU_VBLANK_INT_DRIVER("screen", tatsumi_state, irq5_line_hold)
|
||||
MCFG_CPU_VBLANK_INT_DRIVER("screen", cyclwarr_state, irq5_line_hold)
|
||||
|
||||
MCFG_CPU_ADD("sub", M68000, CLOCK_2 / 4)
|
||||
MCFG_CPU_PROGRAM_MAP(bigfight_68000b_map)
|
||||
MCFG_CPU_VBLANK_INT_DRIVER("screen", tatsumi_state, irq5_line_hold)
|
||||
MCFG_CPU_VBLANK_INT_DRIVER("screen", cyclwarr_state, irq5_line_hold)
|
||||
|
||||
MCFG_CPU_ADD("audiocpu", Z80, CLOCK_1 / 4)
|
||||
MCFG_CPU_PROGRAM_MAP(cyclwarr_z80_map)
|
||||
@ -1031,7 +1031,7 @@ static MACHINE_CONFIG_START( bigfight )
|
||||
MCFG_CXD1095_IN_PORTB_CB(IOPORT("DSW2"))
|
||||
MCFG_CXD1095_IN_PORTC_CB(IOPORT("P3"))
|
||||
MCFG_CXD1095_IN_PORTD_CB(IOPORT("P4"))
|
||||
MCFG_CXD1095_OUT_PORTE_CB(WRITE8(tatsumi_state, cyclwarr_control_w))
|
||||
MCFG_CXD1095_OUT_PORTE_CB(WRITE8(cyclwarr_state, cyclwarr_control_w))
|
||||
|
||||
/* video hardware */
|
||||
MCFG_SCREEN_ADD("screen", RASTER)
|
||||
@ -1039,13 +1039,13 @@ static MACHINE_CONFIG_START( bigfight )
|
||||
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
|
||||
MCFG_SCREEN_SIZE(40*8, 32*8)
|
||||
MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 30*8-1)
|
||||
MCFG_SCREEN_UPDATE_DRIVER(tatsumi_state, screen_update_bigfight)
|
||||
MCFG_SCREEN_UPDATE_DRIVER(cyclwarr_state, screen_update_bigfight)
|
||||
|
||||
MCFG_GFXDECODE_ADD("gfxdecode", "palette", cyclwarr)
|
||||
MCFG_PALETTE_ADD("palette", 8192 + 8192)
|
||||
MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB)
|
||||
|
||||
MCFG_VIDEO_START_OVERRIDE(tatsumi_state,bigfight)
|
||||
MCFG_VIDEO_START_OVERRIDE(cyclwarr_state, bigfight)
|
||||
|
||||
/* sound hardware */
|
||||
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
|
||||
@ -1409,7 +1409,7 @@ DRIVER_INIT_MEMBER(tatsumi_state,roundup5)
|
||||
tatsumi_reset();
|
||||
}
|
||||
|
||||
DRIVER_INIT_MEMBER(tatsumi_state,cyclwarr)
|
||||
DRIVER_INIT_MEMBER(cyclwarr_state, cyclwarr)
|
||||
{
|
||||
uint8_t *dst = memregion("gfx1")->base();
|
||||
uint8_t *src1 = memregion("gfx2")->base();
|
||||
@ -1449,9 +1449,9 @@ DRIVER_INIT_MEMBER(tatsumi_state,cyclwarr)
|
||||
/* http://www.tatsu-mi.co.jp/game/trace/index.html */
|
||||
|
||||
/* ** 1987 grayout - Gray Out (not dumped yet) */
|
||||
GAME( 1988, apache3, 0, apache3, apache3, tatsumi_state, apache3, ROT0, "Tatsumi", "Apache 3", MACHINE_IMPERFECT_GRAPHICS )
|
||||
GAME( 1988, apache3a, apache3, apache3, apache3, tatsumi_state, apache3, ROT0, "Tatsumi (Kana Corporation license)", "Apache 3 (Kana Corporation license)", MACHINE_IMPERFECT_GRAPHICS )
|
||||
GAMEL(1989, roundup5, 0, roundup5, roundup5, tatsumi_state, roundup5, ROT0, "Tatsumi", "Round Up 5 - Super Delta Force", MACHINE_IMPERFECT_GRAPHICS, layout_roundup5 )
|
||||
GAME( 1991, cyclwarr, 0, cyclwarr, cyclwarr, tatsumi_state, cyclwarr, ROT0, "Tatsumi", "Cycle Warriors (rev C)", MACHINE_IMPERFECT_GRAPHICS ) // Rev C & B CPU code
|
||||
GAME( 1991, cyclwarra, cyclwarr, cyclwarr, cyclwarb, tatsumi_state, cyclwarr, ROT0, "Tatsumi", "Cycle Warriors (rev B)", MACHINE_IMPERFECT_GRAPHICS ) // Rev B & A CPU code
|
||||
GAME( 1992, bigfight, 0, bigfight, bigfight, tatsumi_state, cyclwarr, ROT0, "Tatsumi", "Big Fight - Big Trouble In The Atlantic Ocean", MACHINE_IMPERFECT_GRAPHICS )
|
||||
GAME( 1988, apache3, 0, apache3, apache3, tatsumi_state, apache3, ROT0, "Tatsumi", "Apache 3", MACHINE_IMPERFECT_GRAPHICS )
|
||||
GAME( 1988, apache3a, apache3, apache3, apache3, tatsumi_state, apache3, ROT0, "Tatsumi (Kana Corporation license)", "Apache 3 (Kana Corporation license)", MACHINE_IMPERFECT_GRAPHICS )
|
||||
GAMEL(1989, roundup5, 0, roundup5, roundup5, tatsumi_state, roundup5, ROT0, "Tatsumi", "Round Up 5 - Super Delta Force", MACHINE_IMPERFECT_GRAPHICS, layout_roundup5 )
|
||||
GAME( 1991, cyclwarr, 0, cyclwarr, cyclwarr, cyclwarr_state, cyclwarr, ROT0, "Tatsumi", "Cycle Warriors (rev C)", MACHINE_IMPERFECT_GRAPHICS ) // Rev C & B CPU code
|
||||
GAME( 1991, cyclwarra, cyclwarr, cyclwarr, cyclwarb, cyclwarr_state, cyclwarr, ROT0, "Tatsumi", "Cycle Warriors (rev B)", MACHINE_IMPERFECT_GRAPHICS ) // Rev B & A CPU code
|
||||
GAME( 1992, bigfight, 0, bigfight, bigfight, cyclwarr_state, cyclwarr, ROT0, "Tatsumi", "Big Fight - Big Trouble In The Atlantic Ocean", MACHINE_IMPERFECT_GRAPHICS )
|
||||
|
@ -18,11 +18,7 @@ public:
|
||||
m_oki(*this, "oki"),
|
||||
m_gfxdecode(*this, "gfxdecode"),
|
||||
m_palette(*this, "palette"),
|
||||
m_soundlatch(*this, "soundlatch"),
|
||||
m_io(*this, {"io1", "io2"}),
|
||||
m_videoram(*this, "videoram"),
|
||||
m_cyclwarr_cpua_ram(*this, "cw_cpua_ram"),
|
||||
m_cyclwarr_cpub_ram(*this, "cw_cpub_ram"),
|
||||
m_apache3_g_ram(*this, "apache3_g_ram"),
|
||||
m_roundup5_d0000_ram(*this, "ru5_d0000_ram"),
|
||||
m_roundup5_e0000_ram(*this, "ru5_e0000_ram"),
|
||||
@ -32,8 +28,6 @@ public:
|
||||
m_68k_ram(*this, "68k_ram"),
|
||||
m_apache3_z80_ram(*this, "apache3_z80_ram"),
|
||||
m_sprite_control_ram(*this, "sprite_ctlram"),
|
||||
m_cyclwarr_videoram0(*this, "cw_videoram0"),
|
||||
m_cyclwarr_videoram1(*this, "cw_videoram1"),
|
||||
m_roundup_r_ram(*this, "roundup_r_ram"),
|
||||
m_roundup_p_ram(*this, "roundup_p_ram"),
|
||||
m_roundup_l_ram(*this, "roundup_l_ram"),
|
||||
@ -46,12 +40,8 @@ public:
|
||||
required_device<okim6295_device> m_oki;
|
||||
required_device<gfxdecode_device> m_gfxdecode;
|
||||
required_device<palette_device> m_palette;
|
||||
optional_device<generic_latch_8_device> m_soundlatch;
|
||||
optional_device_array<cxd1095_device, 2> m_io;
|
||||
|
||||
optional_shared_ptr<uint16_t> m_videoram;
|
||||
optional_shared_ptr<uint16_t> m_cyclwarr_cpua_ram;
|
||||
optional_shared_ptr<uint16_t> m_cyclwarr_cpub_ram;
|
||||
optional_shared_ptr<uint16_t> m_apache3_g_ram;
|
||||
optional_shared_ptr<uint16_t> m_roundup5_d0000_ram;
|
||||
optional_shared_ptr<uint16_t> m_roundup5_e0000_ram;
|
||||
@ -61,16 +51,11 @@ public:
|
||||
optional_shared_ptr<uint16_t> m_68k_ram;
|
||||
optional_shared_ptr<uint8_t> m_apache3_z80_ram;
|
||||
required_shared_ptr<uint16_t> m_sprite_control_ram;
|
||||
optional_shared_ptr<uint16_t> m_cyclwarr_videoram0;
|
||||
optional_shared_ptr<uint16_t> m_cyclwarr_videoram1;
|
||||
optional_shared_ptr<uint16_t> m_roundup_r_ram;
|
||||
optional_shared_ptr<uint16_t> m_roundup_p_ram;
|
||||
optional_shared_ptr<uint16_t> m_roundup_l_ram;
|
||||
required_shared_ptr<uint16_t> m_spriteram;
|
||||
|
||||
uint16_t m_bigfight_a20000[8];
|
||||
uint16_t m_bigfight_a60000[2];
|
||||
uint16_t m_bigfight_a40000[2];
|
||||
uint8_t *m_rom_sprite_lookup1;
|
||||
uint8_t *m_rom_sprite_lookup2;
|
||||
uint8_t *m_rom_clut0;
|
||||
@ -81,27 +66,13 @@ public:
|
||||
uint8_t m_apache3_adc;
|
||||
int m_apache3_rot_idx;
|
||||
tilemap_t *m_tx_layer;
|
||||
tilemap_t *m_layer0;
|
||||
tilemap_t *m_layer1;
|
||||
tilemap_t *m_layer2;
|
||||
tilemap_t *m_layer3;
|
||||
bitmap_rgb32 m_temp_bitmap;
|
||||
std::unique_ptr<uint8_t[]> m_apache3_road_x_ram;
|
||||
uint8_t m_apache3_road_z;
|
||||
std::unique_ptr<uint16_t[]> m_roundup5_vram;
|
||||
uint16_t m_bigfight_bank;
|
||||
uint16_t m_bigfight_last_bank;
|
||||
uint8_t m_roundupt_crt_selected_reg;
|
||||
uint8_t m_roundupt_crt_reg[64];
|
||||
std::unique_ptr<uint8_t[]> m_shadow_pen_array;
|
||||
DECLARE_READ16_MEMBER(cyclwarr_sprite_r);
|
||||
DECLARE_WRITE16_MEMBER(cyclwarr_sprite_w);
|
||||
DECLARE_WRITE16_MEMBER(bigfight_a20000_w);
|
||||
DECLARE_WRITE16_MEMBER(bigfight_a40000_w);
|
||||
DECLARE_WRITE16_MEMBER(bigfight_a60000_w);
|
||||
DECLARE_WRITE16_MEMBER(io1_byte_smear_w);
|
||||
DECLARE_WRITE16_MEMBER(io2_byte_smear_w);
|
||||
DECLARE_WRITE16_MEMBER(cyclwarr_sound_w);
|
||||
DECLARE_READ16_MEMBER(apache3_bank_r);
|
||||
DECLARE_WRITE16_MEMBER(apache3_bank_w);
|
||||
DECLARE_WRITE16_MEMBER(apache3_z80_ctrl_w);
|
||||
@ -126,29 +97,74 @@ public:
|
||||
DECLARE_READ16_MEMBER(roundup5_vram_r);
|
||||
DECLARE_WRITE16_MEMBER(roundup5_vram_w);
|
||||
DECLARE_WRITE16_MEMBER(roundup5_text_w);
|
||||
DECLARE_READ16_MEMBER(cyclwarr_videoram0_r);
|
||||
DECLARE_READ16_MEMBER(cyclwarr_videoram1_r);
|
||||
DECLARE_WRITE16_MEMBER(cyclwarr_videoram0_w);
|
||||
DECLARE_WRITE16_MEMBER(cyclwarr_videoram1_w);
|
||||
DECLARE_WRITE16_MEMBER(roundup5_crt_w);
|
||||
DECLARE_DRIVER_INIT(roundup5);
|
||||
DECLARE_DRIVER_INIT(apache3);
|
||||
DECLARE_DRIVER_INIT(cyclwarr);
|
||||
TILE_GET_INFO_MEMBER(get_text_tile_info);
|
||||
TILE_GET_INFO_MEMBER(get_tile_info_bigfight_0);
|
||||
TILE_GET_INFO_MEMBER(get_tile_info_bigfight_1);
|
||||
DECLARE_MACHINE_RESET(apache3);
|
||||
DECLARE_VIDEO_START(apache3);
|
||||
DECLARE_VIDEO_START(roundup5);
|
||||
DECLARE_VIDEO_START(cyclwarr);
|
||||
DECLARE_VIDEO_START(bigfight);
|
||||
uint32_t screen_update_apache3(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
|
||||
uint32_t screen_update_roundup5(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
|
||||
uint32_t screen_update_cyclwarr(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
|
||||
uint32_t screen_update_bigfight(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
|
||||
INTERRUPT_GEN_MEMBER(roundup5_interrupt);
|
||||
DECLARE_READ8_MEMBER(tatsumi_hack_ym2151_r);
|
||||
DECLARE_READ8_MEMBER(tatsumi_hack_oki_r);
|
||||
DECLARE_WRITE_LINE_MEMBER(apache3_68000_reset);
|
||||
void tatsumi_reset();
|
||||
};
|
||||
|
||||
class cyclwarr_state : public tatsumi_state
|
||||
{
|
||||
public:
|
||||
cyclwarr_state(const machine_config &mconfig, device_type type, const char *tag)
|
||||
: tatsumi_state(mconfig, type, tag),
|
||||
m_io(*this, "io%u", 1),
|
||||
m_soundlatch(*this, "soundlatch"),
|
||||
m_cyclwarr_cpua_ram(*this, "cw_cpua_ram"),
|
||||
m_cyclwarr_cpub_ram(*this, "cw_cpub_ram"),
|
||||
m_cyclwarr_videoram0(*this, "cw_videoram0"),
|
||||
m_cyclwarr_videoram1(*this, "cw_videoram1")
|
||||
{
|
||||
}
|
||||
|
||||
DECLARE_READ16_MEMBER(cyclwarr_sprite_r);
|
||||
DECLARE_WRITE16_MEMBER(cyclwarr_sprite_w);
|
||||
DECLARE_WRITE16_MEMBER(bigfight_a20000_w);
|
||||
DECLARE_WRITE16_MEMBER(bigfight_a40000_w);
|
||||
DECLARE_WRITE16_MEMBER(bigfight_a60000_w);
|
||||
DECLARE_WRITE16_MEMBER(io1_byte_smear_w);
|
||||
DECLARE_WRITE16_MEMBER(io2_byte_smear_w);
|
||||
DECLARE_WRITE16_MEMBER(cyclwarr_sound_w);
|
||||
DECLARE_READ16_MEMBER(cyclwarr_videoram0_r);
|
||||
DECLARE_READ16_MEMBER(cyclwarr_videoram1_r);
|
||||
DECLARE_WRITE16_MEMBER(cyclwarr_videoram0_w);
|
||||
DECLARE_WRITE16_MEMBER(cyclwarr_videoram1_w);
|
||||
|
||||
DECLARE_DRIVER_INIT(cyclwarr);
|
||||
TILE_GET_INFO_MEMBER(get_tile_info_bigfight_0);
|
||||
TILE_GET_INFO_MEMBER(get_tile_info_bigfight_1);
|
||||
DECLARE_VIDEO_START(cyclwarr);
|
||||
DECLARE_VIDEO_START(bigfight);
|
||||
uint32_t screen_update_cyclwarr(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
|
||||
uint32_t screen_update_bigfight(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
|
||||
|
||||
private:
|
||||
required_device_array<cxd1095_device, 2> m_io;
|
||||
required_device<generic_latch_8_device> m_soundlatch;
|
||||
|
||||
required_shared_ptr<uint16_t> m_cyclwarr_cpua_ram;
|
||||
required_shared_ptr<uint16_t> m_cyclwarr_cpub_ram;
|
||||
required_shared_ptr<uint16_t> m_cyclwarr_videoram0;
|
||||
required_shared_ptr<uint16_t> m_cyclwarr_videoram1;
|
||||
|
||||
tilemap_t *m_layer0;
|
||||
tilemap_t *m_layer1;
|
||||
tilemap_t *m_layer2;
|
||||
tilemap_t *m_layer3;
|
||||
|
||||
uint16_t m_bigfight_a20000[8];
|
||||
uint16_t m_bigfight_a60000[2];
|
||||
uint16_t m_bigfight_a40000[2];
|
||||
uint16_t m_bigfight_bank;
|
||||
uint16_t m_bigfight_last_bank;
|
||||
};
|
||||
|
@ -56,17 +56,17 @@ WRITE16_MEMBER(tatsumi_state::roundup5_text_w)
|
||||
m_tx_layer->mark_tile_dirty(offset);
|
||||
}
|
||||
|
||||
READ16_MEMBER(tatsumi_state::cyclwarr_videoram0_r)
|
||||
READ16_MEMBER(cyclwarr_state::cyclwarr_videoram0_r)
|
||||
{
|
||||
return m_cyclwarr_videoram0[offset];
|
||||
return m_cyclwarr_videoram0[offset];
|
||||
}
|
||||
|
||||
READ16_MEMBER(tatsumi_state::cyclwarr_videoram1_r)
|
||||
READ16_MEMBER(cyclwarr_state::cyclwarr_videoram1_r)
|
||||
{
|
||||
return m_cyclwarr_videoram1[offset];
|
||||
return m_cyclwarr_videoram1[offset];
|
||||
}
|
||||
|
||||
WRITE16_MEMBER(tatsumi_state::cyclwarr_videoram0_w)
|
||||
WRITE16_MEMBER(cyclwarr_state::cyclwarr_videoram0_w)
|
||||
{
|
||||
COMBINE_DATA(&m_cyclwarr_videoram0[offset]);
|
||||
if (offset>=0x400)
|
||||
@ -76,7 +76,7 @@ WRITE16_MEMBER(tatsumi_state::cyclwarr_videoram0_w)
|
||||
}
|
||||
}
|
||||
|
||||
WRITE16_MEMBER(tatsumi_state::cyclwarr_videoram1_w)
|
||||
WRITE16_MEMBER(cyclwarr_state::cyclwarr_videoram1_w)
|
||||
{
|
||||
COMBINE_DATA(&m_cyclwarr_videoram1[offset]);
|
||||
if (offset>=0x400)
|
||||
@ -109,14 +109,14 @@ TILE_GET_INFO_MEMBER(tatsumi_state::get_text_tile_info)
|
||||
0);
|
||||
}
|
||||
|
||||
TILE_GET_INFO_MEMBER(tatsumi_state::get_tile_info_bigfight_0)
|
||||
TILE_GET_INFO_MEMBER(cyclwarr_state::get_tile_info_bigfight_0)
|
||||
{
|
||||
int tile=m_cyclwarr_videoram0[(tile_index+0x400)%0x8000];
|
||||
int bank = (m_bigfight_a40000[0] >> (((tile&0xc00)>>10)*4))&0xf;
|
||||
SET_TILE_INFO_MEMBER(1,(tile&0x3ff)+(bank<<10),(tile>>12)&0xf,0);
|
||||
}
|
||||
|
||||
TILE_GET_INFO_MEMBER(tatsumi_state::get_tile_info_bigfight_1)
|
||||
TILE_GET_INFO_MEMBER(cyclwarr_state::get_tile_info_bigfight_1)
|
||||
{
|
||||
int tile=m_cyclwarr_videoram1[(tile_index+0x400)%0x8000];
|
||||
int bank = (m_bigfight_a40000[0] >> (((tile&0xc00)>>10)*4))&0xf;
|
||||
@ -146,23 +146,23 @@ VIDEO_START_MEMBER(tatsumi_state,roundup5)
|
||||
m_gfxdecode->gfx(1)->set_source((uint8_t *)m_roundup5_vram.get());
|
||||
}
|
||||
|
||||
VIDEO_START_MEMBER(tatsumi_state,cyclwarr)
|
||||
VIDEO_START_MEMBER(cyclwarr_state,cyclwarr)
|
||||
{
|
||||
m_layer0 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(tatsumi_state::get_tile_info_bigfight_0),this),TILEMAP_SCAN_ROWS,8,8,64,512);
|
||||
//m_layer1 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(tatsumi_state::get_tile_info_bigfight_0),this),TILEMAP_SCAN_ROWS,8,8,64,512);
|
||||
m_layer1 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(tatsumi_state::get_tile_info_bigfight_0),this),TILEMAP_SCAN_ROWS,8,8,128,256);
|
||||
m_layer2 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(tatsumi_state::get_tile_info_bigfight_1),this),TILEMAP_SCAN_ROWS,8,8,64,512);
|
||||
m_layer3 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(tatsumi_state::get_tile_info_bigfight_1),this),TILEMAP_SCAN_ROWS,8,8,64,512);
|
||||
m_layer0 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(cyclwarr_state::get_tile_info_bigfight_0),this),TILEMAP_SCAN_ROWS,8,8,64,512);
|
||||
//m_layer1 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(cyclwarr_state::get_tile_info_bigfight_0),this),TILEMAP_SCAN_ROWS,8,8,64,512);
|
||||
m_layer1 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(cyclwarr_state::get_tile_info_bigfight_0),this),TILEMAP_SCAN_ROWS,8,8,128,256);
|
||||
m_layer2 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(cyclwarr_state::get_tile_info_bigfight_1),this),TILEMAP_SCAN_ROWS,8,8,64,512);
|
||||
m_layer3 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(cyclwarr_state::get_tile_info_bigfight_1),this),TILEMAP_SCAN_ROWS,8,8,64,512);
|
||||
|
||||
m_shadow_pen_array = make_unique_clear<uint8_t[]>(8192);
|
||||
}
|
||||
|
||||
VIDEO_START_MEMBER(tatsumi_state,bigfight)
|
||||
VIDEO_START_MEMBER(cyclwarr_state,bigfight)
|
||||
{
|
||||
m_layer0 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(tatsumi_state::get_tile_info_bigfight_0),this),TILEMAP_SCAN_ROWS,8,8,128,256);
|
||||
m_layer1 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(tatsumi_state::get_tile_info_bigfight_0),this),TILEMAP_SCAN_ROWS,8,8,128,256);
|
||||
m_layer2 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(tatsumi_state::get_tile_info_bigfight_1),this),TILEMAP_SCAN_ROWS,8,8,128,256);
|
||||
m_layer3 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(tatsumi_state::get_tile_info_bigfight_1),this),TILEMAP_SCAN_ROWS,8,8,128,256);
|
||||
m_layer0 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(cyclwarr_state::get_tile_info_bigfight_0),this),TILEMAP_SCAN_ROWS,8,8,128,256);
|
||||
m_layer1 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(cyclwarr_state::get_tile_info_bigfight_0),this),TILEMAP_SCAN_ROWS,8,8,128,256);
|
||||
m_layer2 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(cyclwarr_state::get_tile_info_bigfight_1),this),TILEMAP_SCAN_ROWS,8,8,128,256);
|
||||
m_layer3 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(cyclwarr_state::get_tile_info_bigfight_1),this),TILEMAP_SCAN_ROWS,8,8,128,256);
|
||||
|
||||
m_shadow_pen_array = make_unique_clear<uint8_t[]>(8192);
|
||||
}
|
||||
@ -1034,7 +1034,7 @@ uint32_t tatsumi_state::screen_update_roundup5(screen_device &screen, bitmap_rgb
|
||||
return 0;
|
||||
}
|
||||
|
||||
uint32_t tatsumi_state::screen_update_cyclwarr(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
|
||||
uint32_t cyclwarr_state::screen_update_cyclwarr(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
|
||||
{
|
||||
m_bigfight_bank=m_bigfight_a40000[0];
|
||||
if (m_bigfight_bank!=m_bigfight_last_bank)
|
||||
@ -1058,7 +1058,7 @@ uint32_t tatsumi_state::screen_update_cyclwarr(screen_device &screen, bitmap_rgb
|
||||
return 0;
|
||||
}
|
||||
|
||||
uint32_t tatsumi_state::screen_update_bigfight(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
|
||||
uint32_t cyclwarr_state::screen_update_bigfight(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
|
||||
{
|
||||
m_bigfight_bank=m_bigfight_a40000[0];
|
||||
if (m_bigfight_bank!=m_bigfight_last_bank)
|
||||
|
Loading…
Reference in New Issue
Block a user