mirror of
https://github.com/holub/mame
synced 2025-10-07 17:27:06 +03:00
aerofgt.cpp Cleanups (#3402)
* aerofgt.cpp : Cleanup duplicates, Split spinbrk ROM lookup function, Fix object finder names related sprite lookup tables * aerofgt.cpp : Minor gfxdecode cleanup * aerofgt.cpp : Reduce duplicates
This commit is contained in:
parent
cbe6e758f8
commit
3e338cd0ec
@ -128,20 +128,39 @@ WRITE8_MEMBER(aerofgt_state::karatblzbl_d7759_reset_w)
|
||||
m_upd7759->reset_w(data & 0x80);
|
||||
}
|
||||
|
||||
template<int Layer>
|
||||
WRITE16_MEMBER(aerofgt_state::vram_w)
|
||||
{
|
||||
COMBINE_DATA(&m_vram[Layer][offset]);
|
||||
m_tilemap[Layer]->mark_tile_dirty(offset);
|
||||
}
|
||||
|
||||
template<int Layer>
|
||||
WRITE16_MEMBER(aerofgt_state::scrollx_w)
|
||||
{
|
||||
COMBINE_DATA(&m_scrollx[Layer]);
|
||||
}
|
||||
|
||||
template<int Layer>
|
||||
WRITE16_MEMBER(aerofgt_state::scrolly_w)
|
||||
{
|
||||
COMBINE_DATA(&m_scrolly[Layer]);
|
||||
}
|
||||
|
||||
void aerofgt_state::pspikes_map(address_map &map)
|
||||
{
|
||||
map(0x000000, 0x03ffff).rom();
|
||||
map(0x100000, 0x10ffff).ram(); /* work RAM */
|
||||
map(0x200000, 0x203fff).ram().share("spriteram1");
|
||||
map(0xff8000, 0xff8fff).ram().w(this, FUNC(aerofgt_state::aerofgt_bg1videoram_w)).share("bg1videoram");
|
||||
map(0xffc000, 0xffc3ff).writeonly().share("spriteram3");
|
||||
map(0x200000, 0x203fff).ram().share("sprlookupram1");
|
||||
map(0xff8000, 0xff8fff).ram().w(this, FUNC(aerofgt_state::vram_w<0>)).share("vram.0");
|
||||
map(0xffc000, 0xffc3ff).writeonly().share("spriteram");
|
||||
map(0xffd000, 0xffdfff).ram().share("rasterram"); /* bg1 scroll registers */
|
||||
map(0xffe000, 0xffefff).ram().w(m_palette, FUNC(palette_device::write16)).share("palette");
|
||||
map(0xfff000, 0xfff001).portr("IN0");
|
||||
map(0xfff001, 0xfff001).w(this, FUNC(aerofgt_state::pspikes_palette_bank_w));
|
||||
map(0xfff002, 0xfff003).portr("IN1");
|
||||
map(0xfff003, 0xfff003).w(this, FUNC(aerofgt_state::pspikes_gfxbank_w));
|
||||
map(0xfff004, 0xfff005).portr("DSW").w(this, FUNC(aerofgt_state::aerofgt_bg1scrolly_w));
|
||||
map(0xfff004, 0xfff005).portr("DSW").w(this, FUNC(aerofgt_state::scrolly_w<0>));
|
||||
map(0xfff007, 0xfff007).r(this, FUNC(aerofgt_state::pending_command_r)).w(m_soundlatch, FUNC(generic_latch_8_device::write)).umask16(0x00ff);
|
||||
map(0xfff400, 0xfff403).w("gga", FUNC(vsystem_gga_device::write)).umask16(0x00ff);
|
||||
}
|
||||
@ -150,16 +169,16 @@ void aerofgt_state::pspikesb_map(address_map &map)
|
||||
{
|
||||
map(0x000000, 0x03ffff).rom();
|
||||
map(0x100000, 0x10ffff).ram(); /* work RAM */
|
||||
map(0x200000, 0x203fff).ram().share("spriteram1");
|
||||
map(0x200000, 0x203fff).ram().share("sprlookupram1");
|
||||
map(0xc04000, 0xc04001).nopw();
|
||||
map(0xff8000, 0xff8fff).ram().w(this, FUNC(aerofgt_state::aerofgt_bg1videoram_w)).share("bg1videoram");
|
||||
map(0xffc000, 0xffcbff).ram().share("spriteram3");
|
||||
map(0xff8000, 0xff8fff).ram().w(this, FUNC(aerofgt_state::vram_w<0>)).share("vram.0");
|
||||
map(0xffc000, 0xffcbff).ram().share("spriteram");
|
||||
map(0xffd000, 0xffdfff).ram().share("rasterram"); /* bg1 scroll registers */
|
||||
map(0xffd200, 0xffd201).w(this, FUNC(aerofgt_state::pspikesb_gfxbank_w));
|
||||
map(0xffe000, 0xffefff).ram().w(m_palette, FUNC(palette_device::write16)).share("palette");
|
||||
map(0xfff000, 0xfff001).portr("IN0");
|
||||
map(0xfff002, 0xfff003).portr("IN1");
|
||||
map(0xfff004, 0xfff005).portr("DSW").w(this, FUNC(aerofgt_state::aerofgt_bg1scrolly_w));
|
||||
map(0xfff004, 0xfff005).portr("DSW").w(this, FUNC(aerofgt_state::scrolly_w<0>));
|
||||
map(0xfff007, 0xfff007).rw(m_oki, FUNC(okim6295_device::read), FUNC(okim6295_device::write));
|
||||
map(0xfff008, 0xfff009).w(this, FUNC(aerofgt_state::pspikesb_oki_banking_w));
|
||||
map(0xfff400, 0xfff403).nopw(); // GGA access
|
||||
@ -169,20 +188,20 @@ void aerofgt_state::spikes91_map(address_map &map)
|
||||
{
|
||||
map(0x000000, 0x03ffff).rom();
|
||||
map(0x100000, 0x10ffff).ram(); /* work RAM */
|
||||
map(0x200000, 0x203fff).ram().share("spriteram1");
|
||||
map(0x200000, 0x203fff).ram().share("sprlookupram1");
|
||||
map(0xc04000, 0xc04001).nopw();
|
||||
map(0xff8000, 0xff8fff).ram().w(this, FUNC(aerofgt_state::aerofgt_bg1videoram_w)).share("bg1videoram");
|
||||
map(0xff8000, 0xff8fff).ram().w(this, FUNC(aerofgt_state::vram_w<0>)).share("vram.0");
|
||||
|
||||
map(0xffa000, 0xffbfff).ram().share("tx_tilemap_ram");
|
||||
|
||||
map(0xffc000, 0xffcfff).ram().share("spriteram3");
|
||||
map(0xffc000, 0xffcfff).ram().share("spriteram");
|
||||
//map(0xffd200, 0xffd201).w(this, FUNC(aerofgt_state::pspikesb_gfxbank_w));
|
||||
map(0xffd000, 0xffdfff).ram().share("rasterram"); /* bg1 scroll registers */
|
||||
map(0xffe000, 0xffefff).ram().w(m_palette, FUNC(palette_device::write16)).share("palette");
|
||||
map(0xfff000, 0xfff001).portr("IN0");
|
||||
map(0xfff002, 0xfff003).portr("IN1");
|
||||
map(0xfff003, 0xfff003).w(this, FUNC(aerofgt_state::pspikes_gfxbank_w));
|
||||
map(0xfff004, 0xfff005).portr("DSW").w(this, FUNC(aerofgt_state::aerofgt_bg1scrolly_w));
|
||||
map(0xfff004, 0xfff005).portr("DSW").w(this, FUNC(aerofgt_state::scrolly_w<0>));
|
||||
map(0xfff006, 0xfff007).noprw();
|
||||
map(0xfff008, 0xfff009).w(this, FUNC(aerofgt_state::spikes91_lookup_w));
|
||||
}
|
||||
@ -191,9 +210,9 @@ void aerofgt_state::pspikesc_map(address_map &map)
|
||||
{
|
||||
map(0x000000, 0x03ffff).rom();
|
||||
map(0x100000, 0x10ffff).ram(); /* work RAM */
|
||||
map(0x200000, 0x203fff).ram().share("spriteram1");
|
||||
map(0xff8000, 0xff8fff).ram().w(this, FUNC(aerofgt_state::aerofgt_bg1videoram_w)).share("bg1videoram");
|
||||
map(0xffc000, 0xffcbff).ram().share("spriteram3");
|
||||
map(0x200000, 0x203fff).ram().share("sprlookupram1");
|
||||
map(0xff8000, 0xff8fff).ram().w(this, FUNC(aerofgt_state::vram_w<0>)).share("vram.0");
|
||||
map(0xffc000, 0xffcbff).ram().share("spriteram");
|
||||
map(0xffd000, 0xffdfff).ram().share("rasterram"); /* bg1 scroll registers */
|
||||
map(0xffe000, 0xffefff).ram().w(m_palette, FUNC(palette_device::write16)).share("palette");
|
||||
map(0xfff000, 0xfff001).portr("IN0");
|
||||
@ -201,7 +220,7 @@ void aerofgt_state::pspikesc_map(address_map &map)
|
||||
map(0xfff002, 0xfff003).portr("IN1");
|
||||
map(0xfff003, 0xfff003).w(this, FUNC(aerofgt_state::pspikes_gfxbank_w));
|
||||
map(0xfff004, 0xfff005).portr("DSW");
|
||||
map(0xfff004, 0xfff005).w(this, FUNC(aerofgt_state::aerofgt_bg1scrolly_w));
|
||||
map(0xfff004, 0xfff005).w(this, FUNC(aerofgt_state::scrolly_w<0>));
|
||||
map(0xfff007, 0xfff007).rw(m_oki, FUNC(okim6295_device::read), FUNC(okim6295_device::write));
|
||||
map(0xfff400, 0xfff403).nopw(); // GGA access
|
||||
}
|
||||
@ -210,16 +229,16 @@ void aerofgt_state::kickball_map(address_map &map)
|
||||
{
|
||||
map(0x000000, 0x07ffff).rom();
|
||||
map(0x100000, 0x10ffff).ram(); /* work RAM */
|
||||
map(0x200000, 0x20ffff).ram().share("spriteram1");
|
||||
map(0xff8000, 0xff8fff).ram().w(this, FUNC(aerofgt_state::aerofgt_bg1videoram_w)).share("bg1videoram");
|
||||
map(0xffc000, 0xffc3ff).writeonly().share("spriteram3");
|
||||
map(0x200000, 0x20ffff).ram().share("sprlookupram1");
|
||||
map(0xff8000, 0xff8fff).ram().w(this, FUNC(aerofgt_state::vram_w<0>)).share("vram.0");
|
||||
map(0xffc000, 0xffc3ff).writeonly().share("spriteram");
|
||||
map(0xffd000, 0xffdfff).ram().share("rasterram"); /* bg1 scroll registers */
|
||||
map(0xffe000, 0xffefff).ram().w(m_palette, FUNC(palette_device::write16)).share("palette");
|
||||
map(0xfff000, 0xfff001).portr("IN0");
|
||||
map(0xfff001, 0xfff001).w(this, FUNC(aerofgt_state::pspikes_palette_bank_w));
|
||||
map(0xfff002, 0xfff003).portr("IN1");
|
||||
map(0xfff003, 0xfff003).w(this, FUNC(aerofgt_state::kickball_gfxbank_w));
|
||||
map(0xfff004, 0xfff005).portr("DSW").w(this, FUNC(aerofgt_state::aerofgt_bg1scrolly_w));
|
||||
map(0xfff004, 0xfff005).portr("DSW").w(this, FUNC(aerofgt_state::scrolly_w<0>));
|
||||
map(0xfff007, 0xfff007).r(this, FUNC(aerofgt_state::pending_command_r)).w(m_soundlatch, FUNC(generic_latch_8_device::write)).umask16(0x00ff);
|
||||
map(0xfff400, 0xfff403).nopw(); // GGA access
|
||||
}
|
||||
@ -228,13 +247,13 @@ void aerofgt_state::karatblz_map(address_map &map)
|
||||
{
|
||||
map.global_mask(0xfffff);
|
||||
map(0x000000, 0x07ffff).rom();
|
||||
map(0x080000, 0x081fff).ram().w(this, FUNC(aerofgt_state::aerofgt_bg1videoram_w)).share("bg1videoram");
|
||||
map(0x082000, 0x083fff).ram().w(this, FUNC(aerofgt_state::aerofgt_bg2videoram_w)).share("bg2videoram");
|
||||
map(0x0a0000, 0x0affff).ram().share("spriteram1");
|
||||
map(0x0b0000, 0x0bffff).ram().share("spriteram2");
|
||||
map(0x080000, 0x081fff).ram().w(this, FUNC(aerofgt_state::vram_w<0>)).share("vram.0");
|
||||
map(0x082000, 0x083fff).ram().w(this, FUNC(aerofgt_state::vram_w<1>)).share("vram.1");
|
||||
map(0x0a0000, 0x0affff).ram().share("sprlookupram1");
|
||||
map(0x0b0000, 0x0bffff).ram().share("sprlookupram2");
|
||||
map(0x0c0000, 0x0cffff).ram(); /* work RAM */
|
||||
map(0x0f8000, 0x0fbfff).ram(); /* work RAM */
|
||||
map(0x0fc000, 0x0fc7ff).ram().share("spriteram3");
|
||||
map(0x0fc000, 0x0fc7ff).ram().share("spriteram");
|
||||
map(0x0fe000, 0x0fe7ff).ram().w(m_palette, FUNC(palette_device::write16)).share("palette");
|
||||
map(0x0ff000, 0x0ff001).portr("IN0");
|
||||
map(0x0ff000, 0x0ff000).w(this, FUNC(aerofgt_state::spinlbrk_flip_screen_w));
|
||||
@ -243,11 +262,11 @@ void aerofgt_state::karatblz_map(address_map &map)
|
||||
map(0x0ff004, 0x0ff005).portr("IN2");
|
||||
map(0x0ff006, 0x0ff007).portr("IN3");
|
||||
map(0x0ff007, 0x0ff007).w(m_soundlatch, FUNC(generic_latch_8_device::write));
|
||||
map(0x0ff008, 0x0ff009).portr("DSW").w(this, FUNC(aerofgt_state::aerofgt_bg1scrollx_w));
|
||||
map(0x0ff008, 0x0ff009).portr("DSW").w(this, FUNC(aerofgt_state::scrollx_w<0>));
|
||||
map(0x0ff00b, 0x0ff00b).r(this, FUNC(aerofgt_state::pending_command_r));
|
||||
map(0x0ff00a, 0x0ff00b).w(this, FUNC(aerofgt_state::aerofgt_bg1scrolly_w));
|
||||
map(0x0ff00c, 0x0ff00d).w(this, FUNC(aerofgt_state::aerofgt_bg2scrollx_w));
|
||||
map(0x0ff00e, 0x0ff00f).w(this, FUNC(aerofgt_state::aerofgt_bg2scrolly_w));
|
||||
map(0x0ff00a, 0x0ff00b).w(this, FUNC(aerofgt_state::scrolly_w<0>));
|
||||
map(0x0ff00c, 0x0ff00d).w(this, FUNC(aerofgt_state::scrollx_w<1>));
|
||||
map(0x0ff00e, 0x0ff00f).w(this, FUNC(aerofgt_state::scrolly_w<1>));
|
||||
map(0x0ff400, 0x0ff403).w("gga", FUNC(vsystem_gga_device::write)).umask16(0x00ff);
|
||||
}
|
||||
|
||||
@ -255,13 +274,13 @@ void aerofgt_state::karatblzbl_map(address_map &map)
|
||||
{
|
||||
map.global_mask(0xfffff);
|
||||
map(0x000000, 0x07ffff).rom();
|
||||
map(0x080000, 0x081fff).ram().w(this, FUNC(aerofgt_state::aerofgt_bg1videoram_w)).share("bg1videoram");
|
||||
map(0x082000, 0x083fff).ram().w(this, FUNC(aerofgt_state::aerofgt_bg2videoram_w)).share("bg2videoram");
|
||||
map(0x0a0000, 0x0affff).ram().share("spriteram1");
|
||||
map(0x0b0000, 0x0bffff).ram().share("spriteram2");
|
||||
map(0x080000, 0x081fff).ram().w(this, FUNC(aerofgt_state::vram_w<0>)).share("vram.0");
|
||||
map(0x082000, 0x083fff).ram().w(this, FUNC(aerofgt_state::vram_w<1>)).share("vram.1");
|
||||
map(0x0a0000, 0x0affff).ram().share("sprlookupram1");
|
||||
map(0x0b0000, 0x0bffff).ram().share("sprlookupram2");
|
||||
map(0x0c0000, 0x0cffff).ram(); /* work RAM */
|
||||
map(0x0f8000, 0x0fbfff).ram(); /* work RAM */
|
||||
map(0x0fc000, 0x0fc7ff).ram().share("spriteram3");
|
||||
map(0x0fc000, 0x0fc7ff).ram().share("spriteram");
|
||||
map(0x0fe000, 0x0fe7ff).ram().w(m_palette, FUNC(palette_device::write16)).share("palette");
|
||||
map(0x0ff000, 0x0ff001).portr("IN0");
|
||||
map(0x0ff000, 0x0ff000).w(this, FUNC(aerofgt_state::spinlbrk_flip_screen_w));
|
||||
@ -270,27 +289,27 @@ void aerofgt_state::karatblzbl_map(address_map &map)
|
||||
map(0x0ff004, 0x0ff005).portr("IN2");
|
||||
map(0x0ff006, 0x0ff007).portr("IN3");
|
||||
map(0x0ff007, 0x0ff007).w(this, FUNC(aerofgt_state::karatblzbl_soundlatch_w));
|
||||
map(0x0ff008, 0x0ff009).portr("DSW").w(this, FUNC(aerofgt_state::aerofgt_bg1scrollx_w));
|
||||
map(0x0ff008, 0x0ff009).portr("DSW").w(this, FUNC(aerofgt_state::scrollx_w<0>));
|
||||
map(0x0ff00b, 0x0ff00b).r(this, FUNC(aerofgt_state::pending_command_r));
|
||||
map(0x0ff00a, 0x0ff00b).w(this, FUNC(aerofgt_state::aerofgt_bg1scrolly_w));
|
||||
map(0x0ff00c, 0x0ff00d).w(this, FUNC(aerofgt_state::aerofgt_bg2scrollx_w));
|
||||
map(0x0ff00e, 0x0ff00f).w(this, FUNC(aerofgt_state::aerofgt_bg2scrolly_w));
|
||||
map(0x0ff00a, 0x0ff00b).w(this, FUNC(aerofgt_state::scrolly_w<0>));
|
||||
map(0x0ff00c, 0x0ff00d).w(this, FUNC(aerofgt_state::scrollx_w<1>));
|
||||
map(0x0ff00e, 0x0ff00f).w(this, FUNC(aerofgt_state::scrolly_w<1>));
|
||||
map(0x0ff400, 0x0ff403).nopw(); // GGA access
|
||||
}
|
||||
|
||||
void aerofgt_state::spinlbrk_map(address_map &map)
|
||||
{
|
||||
map(0x000000, 0x03ffff).rom();
|
||||
map(0x080000, 0x080fff).ram().w(this, FUNC(aerofgt_state::aerofgt_bg1videoram_w)).share("bg1videoram");
|
||||
map(0x082000, 0x082fff).ram().w(this, FUNC(aerofgt_state::aerofgt_bg2videoram_w)).share("bg2videoram");
|
||||
map(0x080000, 0x080fff).ram().w(this, FUNC(aerofgt_state::vram_w<0>)).share("vram.0");
|
||||
map(0x082000, 0x082fff).ram().w(this, FUNC(aerofgt_state::vram_w<1>)).share("vram.1");
|
||||
map(0xff8000, 0xffbfff).ram(); /* work RAM */
|
||||
map(0xffc000, 0xffc7ff).ram().share("spriteram3");
|
||||
map(0xffc000, 0xffc7ff).ram().share("spriteram");
|
||||
map(0xffd000, 0xffd1ff).ram().share("rasterram"); /* bg1 scroll registers */
|
||||
map(0xffe000, 0xffe7ff).ram().w(m_palette, FUNC(palette_device::write16)).share("palette");
|
||||
map(0xfff000, 0xfff001).portr("IN0");
|
||||
map(0xfff000, 0xfff000).w(this, FUNC(aerofgt_state::spinlbrk_flip_screen_w));
|
||||
map(0xfff001, 0xfff001).w(this, FUNC(aerofgt_state::spinlbrk_gfxbank_w));
|
||||
map(0xfff002, 0xfff003).portr("IN1").w(this, FUNC(aerofgt_state::aerofgt_bg2scrollx_w));
|
||||
map(0xfff002, 0xfff003).portr("IN1").w(this, FUNC(aerofgt_state::scrollx_w<1>));
|
||||
map(0xfff004, 0xfff005).portr("DSW");
|
||||
map(0xfff007, 0xfff007).w(m_soundlatch, FUNC(generic_latch_8_device::write));
|
||||
// map(0xfff008, 0xfff009); - read when analog inputs are enabled
|
||||
@ -303,20 +322,20 @@ void aerofgt_state::turbofrc_map(address_map &map)
|
||||
map.global_mask(0xfffff);
|
||||
map(0x000000, 0x0bffff).rom();
|
||||
map(0x0c0000, 0x0cffff).ram(); /* work RAM */
|
||||
map(0x0d0000, 0x0d1fff).ram().w(this, FUNC(aerofgt_state::aerofgt_bg1videoram_w)).share("bg1videoram");
|
||||
map(0x0d2000, 0x0d3fff).ram().w(this, FUNC(aerofgt_state::aerofgt_bg2videoram_w)).share("bg2videoram");
|
||||
map(0x0e0000, 0x0e3fff).ram().share("spriteram1");
|
||||
map(0x0e4000, 0x0e7fff).ram().share("spriteram2");
|
||||
map(0x0d0000, 0x0d1fff).ram().w(this, FUNC(aerofgt_state::vram_w<0>)).share("vram.0");
|
||||
map(0x0d2000, 0x0d3fff).ram().w(this, FUNC(aerofgt_state::vram_w<1>)).share("vram.1");
|
||||
map(0x0e0000, 0x0e3fff).ram().share("sprlookupram1");
|
||||
map(0x0e4000, 0x0e7fff).ram().share("sprlookupram2");
|
||||
map(0x0f8000, 0x0fbfff).ram(); /* work RAM */
|
||||
map(0x0fc000, 0x0fc7ff).ram().share("spriteram3");
|
||||
map(0x0fc000, 0x0fc7ff).ram().share("spriteram");
|
||||
map(0x0fd000, 0x0fdfff).ram().share("rasterram"); /* bg1 scroll registers */
|
||||
map(0x0fe000, 0x0fe7ff).ram().w(m_palette, FUNC(palette_device::write16)).share("palette");
|
||||
map(0x0ff000, 0x0ff001).portr("IN0");
|
||||
map(0x0ff001, 0x0ff001).w(this, FUNC(aerofgt_state::turbofrc_flip_screen_w));
|
||||
map(0x0ff002, 0x0ff003).portr("IN1").w(this, FUNC(aerofgt_state::aerofgt_bg1scrolly_w));
|
||||
map(0x0ff004, 0x0ff005).portr("DSW").w(this, FUNC(aerofgt_state::aerofgt_bg2scrollx_w));
|
||||
map(0x0ff002, 0x0ff003).portr("IN1").w(this, FUNC(aerofgt_state::scrolly_w<0>));
|
||||
map(0x0ff004, 0x0ff005).portr("DSW").w(this, FUNC(aerofgt_state::scrollx_w<1>));
|
||||
map(0x0ff007, 0x0ff007).r(this, FUNC(aerofgt_state::pending_command_r));
|
||||
map(0x0ff006, 0x0ff007).w(this, FUNC(aerofgt_state::aerofgt_bg2scrolly_w));
|
||||
map(0x0ff006, 0x0ff007).w(this, FUNC(aerofgt_state::scrolly_w<1>));
|
||||
map(0x0ff008, 0x0ff009).portr("IN2");
|
||||
map(0x0ff008, 0x0ff00b).w(this, FUNC(aerofgt_state::turbofrc_gfxbank_w));
|
||||
map(0x0ff00c, 0x0ff00d).nopw(); /* related to bg2 (written together with the scroll registers) */
|
||||
@ -328,19 +347,19 @@ void aerofgt_state::aerofgtb_map(address_map &map)
|
||||
{
|
||||
map(0x000000, 0x07ffff).rom();
|
||||
map(0x0c0000, 0x0cffff).ram(); /* work RAM */
|
||||
map(0x0d0000, 0x0d1fff).ram().w(this, FUNC(aerofgt_state::aerofgt_bg1videoram_w)).share("bg1videoram");
|
||||
map(0x0d2000, 0x0d3fff).ram().w(this, FUNC(aerofgt_state::aerofgt_bg2videoram_w)).share("bg2videoram");
|
||||
map(0x0e0000, 0x0e3fff).ram().share("spriteram1");
|
||||
map(0x0e4000, 0x0e7fff).ram().share("spriteram2");
|
||||
map(0x0d0000, 0x0d1fff).ram().w(this, FUNC(aerofgt_state::vram_w<0>)).share("vram.0");
|
||||
map(0x0d2000, 0x0d3fff).ram().w(this, FUNC(aerofgt_state::vram_w<1>)).share("vram.1");
|
||||
map(0x0e0000, 0x0e3fff).ram().share("sprlookupram1");
|
||||
map(0x0e4000, 0x0e7fff).ram().share("sprlookupram2");
|
||||
map(0x0f8000, 0x0fbfff).ram(); /* work RAM */
|
||||
map(0x0fc000, 0x0fc7ff).ram().share("spriteram3");
|
||||
map(0x0fc000, 0x0fc7ff).ram().share("spriteram");
|
||||
map(0x0fd000, 0x0fd7ff).ram().w(m_palette, FUNC(palette_device::write16)).share("palette");
|
||||
map(0x0fe000, 0x0fe001).portr("IN0");
|
||||
map(0x0fe001, 0x0fe001).w(this, FUNC(aerofgt_state::turbofrc_flip_screen_w));
|
||||
map(0x0fe002, 0x0fe003).portr("IN1").w(this, FUNC(aerofgt_state::aerofgt_bg1scrolly_w));
|
||||
map(0x0fe004, 0x0fe005).portr("DSW1").w(this, FUNC(aerofgt_state::aerofgt_bg2scrollx_w));
|
||||
map(0x0fe002, 0x0fe003).portr("IN1").w(this, FUNC(aerofgt_state::scrolly_w<0>));
|
||||
map(0x0fe004, 0x0fe005).portr("DSW1").w(this, FUNC(aerofgt_state::scrollx_w<1>));
|
||||
map(0x0fe007, 0x0fe007).r(this, FUNC(aerofgt_state::pending_command_r));
|
||||
map(0x0fe006, 0x0fe007).w(this, FUNC(aerofgt_state::aerofgt_bg2scrolly_w));
|
||||
map(0x0fe006, 0x0fe007).w(this, FUNC(aerofgt_state::scrolly_w<1>));
|
||||
map(0x0fe008, 0x0fe009).portr("DSW2");
|
||||
map(0x0fe008, 0x0fe00b).w(this, FUNC(aerofgt_state::turbofrc_gfxbank_w));
|
||||
map(0x0fe00e, 0x0fe00e).w(m_soundlatch, FUNC(generic_latch_8_device::write));
|
||||
@ -355,14 +374,14 @@ void aerofgt_state::aerofgt_map(address_map &map)
|
||||
map(0x1b0000, 0x1b07ff).ram().share("rasterram"); /* used only for the scroll registers */
|
||||
map(0x1b0800, 0x1b0801).ram(); /* tracks watchdog state */
|
||||
map(0x1b0ff0, 0x1b0fff).ram(); /* stack area during boot */
|
||||
map(0x1b2000, 0x1b3fff).ram().w(this, FUNC(aerofgt_state::aerofgt_bg1videoram_w)).share("bg1videoram");
|
||||
map(0x1b4000, 0x1b5fff).ram().w(this, FUNC(aerofgt_state::aerofgt_bg2videoram_w)).share("bg2videoram");
|
||||
map(0x1c0000, 0x1c7fff).ram().share("spriteram1");
|
||||
map(0x1d0000, 0x1d1fff).ram().share("spriteram3");
|
||||
map(0x1b2000, 0x1b3fff).ram().w(this, FUNC(aerofgt_state::vram_w<0>)).share("vram.0");
|
||||
map(0x1b4000, 0x1b5fff).ram().w(this, FUNC(aerofgt_state::vram_w<1>)).share("vram.1");
|
||||
map(0x1c0000, 0x1c7fff).ram().share("sprlookupram1");
|
||||
map(0x1d0000, 0x1d1fff).ram().share("spriteram");
|
||||
map(0xfef000, 0xffefff).ram(); /* work RAM */
|
||||
map(0xffff80, 0xffff87).w(this, FUNC(aerofgt_state::aerofgt_gfxbank_w));
|
||||
map(0xffff88, 0xffff89).w(this, FUNC(aerofgt_state::aerofgt_bg1scrolly_w)); /* + something else in the top byte */
|
||||
map(0xffff90, 0xffff91).w(this, FUNC(aerofgt_state::aerofgt_bg2scrolly_w)); /* + something else in the top byte */
|
||||
map(0xffff88, 0xffff89).w(this, FUNC(aerofgt_state::scrolly_w<0>)); /* + something else in the top byte */
|
||||
map(0xffff90, 0xffff91).w(this, FUNC(aerofgt_state::scrolly_w<1>)); /* + something else in the top byte */
|
||||
map(0xffffa0, 0xffffbf).rw("io", FUNC(vs9209_device::read), FUNC(vs9209_device::write)).umask16(0x00ff);
|
||||
map(0xffffc1, 0xffffc1).w(m_soundlatch, FUNC(generic_latch_8_device::write));
|
||||
}
|
||||
@ -371,20 +390,20 @@ void aerofgt_state::aerfboot_map(address_map &map)
|
||||
{
|
||||
map(0x000000, 0x07ffff).rom();
|
||||
map(0x0c0000, 0x0cffff).ram(); /* work RAM */
|
||||
map(0x0d0000, 0x0d1fff).ram().w(this, FUNC(aerofgt_state::aerofgt_bg1videoram_w)).share("bg1videoram");
|
||||
map(0x0d2000, 0x0d3fff).ram().w(this, FUNC(aerofgt_state::aerofgt_bg2videoram_w)).share("bg2videoram");
|
||||
map(0x0e0000, 0x0e3fff).ram().share("spriteram1");
|
||||
map(0x0e4000, 0x0e7fff).ram().share("spriteram2");
|
||||
map(0x0d0000, 0x0d1fff).ram().w(this, FUNC(aerofgt_state::vram_w<0>)).share("vram.0");
|
||||
map(0x0d2000, 0x0d3fff).ram().w(this, FUNC(aerofgt_state::vram_w<1>)).share("vram.1");
|
||||
map(0x0e0000, 0x0e3fff).ram().share("sprlookupram1");
|
||||
map(0x0e4000, 0x0e7fff).ram().share("sprlookupram2");
|
||||
map(0x0f8000, 0x0fbfff).ram(); /* work RAM */
|
||||
map(0x0fc000, 0x0fc7ff).ram(); //.share("spriteram3");
|
||||
map(0x0fc000, 0x0fc7ff).ram(); //.share("spriteram");
|
||||
map(0x0fd000, 0x0fd7ff).ram().w(m_palette, FUNC(palette_device::write16)).share("palette");
|
||||
map(0x0fe000, 0x0fe001).portr("IN0");
|
||||
map(0x0fe002, 0x0fe003).portr("IN1");
|
||||
map(0x0fe004, 0x0fe005).portr("DSW1");
|
||||
map(0x0fe008, 0x0fe009).portr("DSW2");
|
||||
map(0x0fe002, 0x0fe003).w(this, FUNC(aerofgt_state::aerofgt_bg1scrolly_w));
|
||||
map(0x0fe004, 0x0fe005).w(this, FUNC(aerofgt_state::aerofgt_bg2scrollx_w));
|
||||
map(0x0fe006, 0x0fe007).w(this, FUNC(aerofgt_state::aerofgt_bg2scrolly_w));
|
||||
map(0x0fe002, 0x0fe003).w(this, FUNC(aerofgt_state::scrolly_w<0>));
|
||||
map(0x0fe004, 0x0fe005).w(this, FUNC(aerofgt_state::scrollx_w<1>));
|
||||
map(0x0fe006, 0x0fe007).w(this, FUNC(aerofgt_state::scrolly_w<1>));
|
||||
map(0x0fe008, 0x0fe00b).w(this, FUNC(aerofgt_state::turbofrc_gfxbank_w));
|
||||
map(0x0fe00e, 0x0fe00e).w(m_soundlatch, FUNC(generic_latch_8_device::write));
|
||||
map(0x0fe010, 0x0fe011).nopw();
|
||||
@ -392,7 +411,7 @@ void aerofgt_state::aerfboot_map(address_map &map)
|
||||
map(0x0fe400, 0x0fe403).nopw(); // GGA access
|
||||
map(0x0ff000, 0x0fffff).ram().share("rasterram"); /* used only for the scroll registers */
|
||||
map(0x100000, 0x107fff).nopw();
|
||||
map(0x108000, 0x10bfff).ram().share("spriteram3");
|
||||
map(0x108000, 0x10bfff).ram().share("spriteram");
|
||||
map(0x10c000, 0x117fff).nopw();
|
||||
}
|
||||
|
||||
@ -400,20 +419,20 @@ void aerofgt_state::aerfboo2_map(address_map &map)
|
||||
{
|
||||
map(0x000000, 0x07ffff).rom();
|
||||
map(0x0c0000, 0x0cffff).ram(); /* work RAM */
|
||||
map(0x0d0000, 0x0d1fff).ram().w(this, FUNC(aerofgt_state::aerofgt_bg1videoram_w)).share("bg1videoram");
|
||||
map(0x0d2000, 0x0d3fff).ram().w(this, FUNC(aerofgt_state::aerofgt_bg2videoram_w)).share("bg2videoram");
|
||||
map(0x0e0000, 0x0e3fff).ram().share("spriteram1");
|
||||
map(0x0e4000, 0x0e7fff).ram().share("spriteram2");
|
||||
map(0x0d0000, 0x0d1fff).ram().w(this, FUNC(aerofgt_state::vram_w<0>)).share("vram.0");
|
||||
map(0x0d2000, 0x0d3fff).ram().w(this, FUNC(aerofgt_state::vram_w<1>)).share("vram.1");
|
||||
map(0x0e0000, 0x0e3fff).ram().share("sprlookupram1");
|
||||
map(0x0e4000, 0x0e7fff).ram().share("sprlookupram2");
|
||||
map(0x0f8000, 0x0fbfff).ram(); /* work RAM */
|
||||
map(0x0fc000, 0x0fc7ff).ram().share("spriteram3");
|
||||
map(0x0fc000, 0x0fc7ff).ram().share("spriteram");
|
||||
map(0x0fd000, 0x0fd7ff).ram().w(m_palette, FUNC(palette_device::write16)).share("palette");
|
||||
map(0x0fe000, 0x0fe001).portr("IN0");
|
||||
map(0x0fe002, 0x0fe003).portr("IN1");
|
||||
map(0x0fe004, 0x0fe005).portr("DSW1");
|
||||
map(0x0fe008, 0x0fe009).portr("DSW2");
|
||||
map(0x0fe002, 0x0fe003).w(this, FUNC(aerofgt_state::aerofgt_bg1scrolly_w));
|
||||
map(0x0fe004, 0x0fe005).w(this, FUNC(aerofgt_state::aerofgt_bg2scrollx_w));
|
||||
map(0x0fe006, 0x0fe007).w(this, FUNC(aerofgt_state::aerofgt_bg2scrolly_w));
|
||||
map(0x0fe002, 0x0fe003).w(this, FUNC(aerofgt_state::scrolly_w<0>));
|
||||
map(0x0fe004, 0x0fe005).w(this, FUNC(aerofgt_state::scrollx_w<1>));
|
||||
map(0x0fe006, 0x0fe007).w(this, FUNC(aerofgt_state::scrolly_w<1>));
|
||||
map(0x0fe008, 0x0fe00b).w(this, FUNC(aerofgt_state::turbofrc_gfxbank_w));
|
||||
map(0x0fe006, 0x0fe006).r(m_oki, FUNC(okim6295_device::read));
|
||||
map(0x0fe00e, 0x0fe00e).w(m_oki, FUNC(okim6295_device::write));
|
||||
@ -428,17 +447,17 @@ void aerofgt_state::wbbc97_map(address_map &map)
|
||||
{
|
||||
map(0x000000, 0x3fffff).rom();
|
||||
map(0x500000, 0x50ffff).ram(); /* work RAM */
|
||||
map(0x600000, 0x605fff).ram().share("spriteram1");
|
||||
map(0x600000, 0x605fff).ram().share("sprlookupram1");
|
||||
map(0xa00000, 0xa3ffff).ram().share("bitmapram");
|
||||
map(0xff8000, 0xff8fff).ram().w(this, FUNC(aerofgt_state::aerofgt_bg1videoram_w)).share("bg1videoram");
|
||||
map(0xffc000, 0xffc3ff).writeonly().share("spriteram3");
|
||||
map(0xff8000, 0xff8fff).ram().w(this, FUNC(aerofgt_state::vram_w<0>)).share("vram.0");
|
||||
map(0xffc000, 0xffc3ff).writeonly().share("spriteram");
|
||||
map(0xffd000, 0xffdfff).ram().share("rasterram"); /* bg1 scroll registers */
|
||||
map(0xffe000, 0xffefff).ram().w(m_palette, FUNC(palette_device::write16)).share("palette");
|
||||
map(0xfff000, 0xfff001).portr("IN0");
|
||||
map(0xfff001, 0xfff001).w(this, FUNC(aerofgt_state::pspikes_palette_bank_w));
|
||||
map(0xfff002, 0xfff003).portr("IN1");
|
||||
map(0xfff003, 0xfff003).w(this, FUNC(aerofgt_state::pspikes_gfxbank_w));
|
||||
map(0xfff004, 0xfff005).portr("DSW").w(this, FUNC(aerofgt_state::aerofgt_bg1scrolly_w));
|
||||
map(0xfff004, 0xfff005).portr("DSW").w(this, FUNC(aerofgt_state::scrolly_w<0>));
|
||||
map(0xfff007, 0xfff007).r(this, FUNC(aerofgt_state::pending_command_r)).w(m_soundlatch, FUNC(generic_latch_8_device::write)).umask16(0x00ff);
|
||||
map(0xfff00e, 0xfff00f).w(this, FUNC(aerofgt_state::wbbc97_bitmap_enable_w));
|
||||
map(0xfff400, 0xfff403).nopw(); // GGA access
|
||||
@ -1265,19 +1284,6 @@ static const gfx_layout pspikesb_spritelayout =
|
||||
32*8
|
||||
};
|
||||
|
||||
static const gfx_layout aerofgtb_spritelayout =
|
||||
{
|
||||
16,16,
|
||||
RGN_FRAC(1,2),
|
||||
4,
|
||||
{ 0, 1, 2, 3 },
|
||||
{ 3*4, 2*4, 1*4, 0*4, RGN_FRAC(1,2)+3*4, RGN_FRAC(1,2)+2*4, RGN_FRAC(1,2)+1*4, RGN_FRAC(1,2)+0*4,
|
||||
7*4, 6*4, 5*4, 4*4, RGN_FRAC(1,2)+7*4, RGN_FRAC(1,2)+6*4, RGN_FRAC(1,2)+5*4, RGN_FRAC(1,2)+4*4 },
|
||||
{ 0*32, 1*32, 2*32, 3*32, 4*32, 5*32, 6*32, 7*32,
|
||||
8*32, 9*32, 10*32, 11*32, 12*32, 13*32, 14*32, 15*32 },
|
||||
64*8
|
||||
};
|
||||
|
||||
static const gfx_layout aerofgt_spritelayout =
|
||||
{
|
||||
16,16,
|
||||
@ -1385,13 +1391,6 @@ static GFXDECODE_START( turbofrc )
|
||||
GFXDECODE_ENTRY( "gfx4", 0, pspikes_spritelayout, 768, 16 )
|
||||
GFXDECODE_END
|
||||
|
||||
static GFXDECODE_START( aerofgtb )
|
||||
GFXDECODE_ENTRY( "gfx1", 0, pspikes_charlayout, 0, 16 )
|
||||
GFXDECODE_ENTRY( "gfx2", 0, pspikes_charlayout, 256, 16 )
|
||||
GFXDECODE_ENTRY( "spritegfx", 0, aerofgtb_spritelayout, 512, 16 )
|
||||
GFXDECODE_ENTRY( "gfx4", 0, aerofgtb_spritelayout, 768, 16 )
|
||||
GFXDECODE_END
|
||||
|
||||
static GFXDECODE_START( aerofgt )
|
||||
GFXDECODE_ENTRY( "gfx1", 0, aerofgt_charlayout, 0, 16 )
|
||||
GFXDECODE_ENTRY( "gfx1", 0, aerofgt_charlayout, 256, 16 )
|
||||
@ -1475,7 +1474,7 @@ MACHINE_CONFIG_START(aerofgt_state::pspikes)
|
||||
MCFG_PALETTE_ADD("palette", 2048)
|
||||
MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB)
|
||||
|
||||
MCFG_DEVICE_ADD("vsystem_spr_old", VSYSTEM_SPR2, 0)
|
||||
MCFG_DEVICE_ADD("vsystem_spr_old1", VSYSTEM_SPR2, 0)
|
||||
MCFG_VSYSTEM_SPR2_SET_TILE_INDIRECT( aerofgt_state, aerofgt_old_tile_callback )
|
||||
MCFG_VSYSTEM_SPR2_SET_GFXREGION(1)
|
||||
MCFG_VSYSTEM_SPR2_GFXDECODE("gfxdecode")
|
||||
@ -1605,7 +1604,7 @@ MACHINE_CONFIG_START(aerofgt_state::kickball)
|
||||
MCFG_PALETTE_ADD("palette", 2048)
|
||||
MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB)
|
||||
|
||||
MCFG_DEVICE_ADD("vsystem_spr_old", VSYSTEM_SPR2, 0)
|
||||
MCFG_DEVICE_ADD("vsystem_spr_old1", VSYSTEM_SPR2, 0)
|
||||
MCFG_VSYSTEM_SPR2_SET_TILE_INDIRECT( aerofgt_state, aerofgt_old_tile_callback )
|
||||
MCFG_VSYSTEM_SPR2_SET_GFXREGION(1)
|
||||
MCFG_VSYSTEM_SPR2_GFXDECODE("gfxdecode")
|
||||
@ -1654,7 +1653,7 @@ MACHINE_CONFIG_START(aerofgt_state::pspikesc)
|
||||
|
||||
//MCFG_DEVICE_ADD("gga", VSYSTEM_GGA, 0)
|
||||
|
||||
MCFG_DEVICE_ADD("vsystem_spr_old", VSYSTEM_SPR2, 0)
|
||||
MCFG_DEVICE_ADD("vsystem_spr_old1", VSYSTEM_SPR2, 0)
|
||||
MCFG_VSYSTEM_SPR2_SET_TILE_INDIRECT( aerofgt_state, aerofgt_old_tile_callback )
|
||||
MCFG_VSYSTEM_SPR2_SET_GFXREGION(1)
|
||||
MCFG_VSYSTEM_SPR2_GFXDECODE("gfxdecode")
|
||||
@ -1698,12 +1697,12 @@ MACHINE_CONFIG_START(aerofgt_state::karatblz)
|
||||
|
||||
MCFG_DEVICE_ADD("gga", VSYSTEM_GGA, XTAL(14'318'181) / 2) // divider not verified
|
||||
|
||||
MCFG_DEVICE_ADD("vsystem_spr_old", VSYSTEM_SPR2, 0)
|
||||
MCFG_DEVICE_ADD("vsystem_spr_old1", VSYSTEM_SPR2, 0)
|
||||
MCFG_VSYSTEM_SPR2_SET_TILE_INDIRECT( aerofgt_state, aerofgt_old_tile_callback )
|
||||
MCFG_VSYSTEM_SPR2_SET_GFXREGION(2)
|
||||
MCFG_VSYSTEM_SPR2_GFXDECODE("gfxdecode")
|
||||
|
||||
MCFG_DEVICE_ADD("vsystem_spr_ol2", VSYSTEM_SPR2, 0)
|
||||
MCFG_DEVICE_ADD("vsystem_spr_old2", VSYSTEM_SPR2, 0)
|
||||
MCFG_VSYSTEM_SPR2_SET_TILE_INDIRECT( aerofgt_state, aerofgt_ol2_tile_callback )
|
||||
MCFG_VSYSTEM_SPR2_SET_GFXREGION(3)
|
||||
MCFG_VSYSTEM_SPR2_GFXDECODE("gfxdecode")
|
||||
@ -1752,12 +1751,12 @@ MACHINE_CONFIG_START(aerofgt_state::karatblzbl)
|
||||
MCFG_PALETTE_ADD("palette", 1024)
|
||||
MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB)
|
||||
|
||||
MCFG_DEVICE_ADD("vsystem_spr_old", VSYSTEM_SPR2, 0)
|
||||
MCFG_DEVICE_ADD("vsystem_spr_old1", VSYSTEM_SPR2, 0)
|
||||
MCFG_VSYSTEM_SPR2_SET_TILE_INDIRECT( aerofgt_state, aerofgt_old_tile_callback )
|
||||
MCFG_VSYSTEM_SPR2_SET_GFXREGION(2)
|
||||
MCFG_VSYSTEM_SPR2_GFXDECODE("gfxdecode")
|
||||
|
||||
MCFG_DEVICE_ADD("vsystem_spr_ol2", VSYSTEM_SPR2, 0)
|
||||
MCFG_DEVICE_ADD("vsystem_spr_old2", VSYSTEM_SPR2, 0)
|
||||
MCFG_VSYSTEM_SPR2_SET_TILE_INDIRECT( aerofgt_state, aerofgt_ol2_tile_callback )
|
||||
MCFG_VSYSTEM_SPR2_SET_GFXREGION(3)
|
||||
MCFG_VSYSTEM_SPR2_GFXDECODE("gfxdecode")
|
||||
@ -1811,13 +1810,13 @@ MACHINE_CONFIG_START(aerofgt_state::spinlbrk)
|
||||
|
||||
MCFG_DEVICE_ADD("gga", VSYSTEM_GGA, XTAL(14'318'181) / 2) // divider not verified
|
||||
|
||||
MCFG_DEVICE_ADD("vsystem_spr_old", VSYSTEM_SPR2, 0)
|
||||
MCFG_DEVICE_ADD("vsystem_spr_old1", VSYSTEM_SPR2, 0)
|
||||
MCFG_VSYSTEM_SPR2_SET_PRITYPE(1)
|
||||
MCFG_VSYSTEM_SPR2_SET_GFXREGION(2)
|
||||
MCFG_VSYSTEM_SPR2_GFXDECODE("gfxdecode")
|
||||
|
||||
MCFG_DEVICE_ADD("vsystem_spr_ol2", VSYSTEM_SPR2, 0)
|
||||
MCFG_VSYSTEM_SPR2_SET_TILE_INDIRECT( aerofgt_state, aerofgt_ol2_tile_callback ) // rom lookup
|
||||
MCFG_DEVICE_ADD("vsystem_spr_old2", VSYSTEM_SPR2, 0)
|
||||
MCFG_VSYSTEM_SPR2_SET_TILE_INDIRECT( aerofgt_state, spinbrk_tile_callback ) // rom lookup
|
||||
MCFG_VSYSTEM_SPR2_SET_PRITYPE(1)
|
||||
MCFG_VSYSTEM_SPR2_SET_GFXREGION(3)
|
||||
MCFG_VSYSTEM_SPR2_GFXDECODE("gfxdecode")
|
||||
@ -1869,12 +1868,12 @@ MACHINE_CONFIG_START(aerofgt_state::turbofrc)
|
||||
|
||||
MCFG_DEVICE_ADD("gga", VSYSTEM_GGA, XTAL(14'318'181) / 2) // divider not verified
|
||||
|
||||
MCFG_DEVICE_ADD("vsystem_spr_old", VSYSTEM_SPR2, 0)
|
||||
MCFG_DEVICE_ADD("vsystem_spr_old1", VSYSTEM_SPR2, 0)
|
||||
MCFG_VSYSTEM_SPR2_SET_TILE_INDIRECT( aerofgt_state, aerofgt_old_tile_callback )
|
||||
MCFG_VSYSTEM_SPR2_SET_GFXREGION(2)
|
||||
MCFG_VSYSTEM_SPR2_GFXDECODE("gfxdecode")
|
||||
|
||||
MCFG_DEVICE_ADD("vsystem_spr_ol2", VSYSTEM_SPR2, 0)
|
||||
MCFG_DEVICE_ADD("vsystem_spr_old2", VSYSTEM_SPR2, 0)
|
||||
MCFG_VSYSTEM_SPR2_SET_TILE_INDIRECT( aerofgt_state, aerofgt_ol2_tile_callback )
|
||||
MCFG_VSYSTEM_SPR2_SET_GFXREGION(3)
|
||||
MCFG_VSYSTEM_SPR2_GFXDECODE("gfxdecode")
|
||||
@ -1921,18 +1920,18 @@ MACHINE_CONFIG_START(aerofgt_state::aerofgtb)
|
||||
MCFG_SCREEN_UPDATE_DRIVER(aerofgt_state, screen_update_turbofrc)
|
||||
MCFG_SCREEN_PALETTE("palette")
|
||||
|
||||
MCFG_GFXDECODE_ADD("gfxdecode", "palette", aerofgtb)
|
||||
MCFG_GFXDECODE_ADD("gfxdecode", "palette", turbofrc)
|
||||
MCFG_PALETTE_ADD("palette", 1024)
|
||||
MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB)
|
||||
|
||||
MCFG_DEVICE_ADD("gga", VSYSTEM_GGA, XTAL(14'318'181) / 2) // divider not verified
|
||||
|
||||
MCFG_DEVICE_ADD("vsystem_spr_old", VSYSTEM_SPR2, 0)
|
||||
MCFG_DEVICE_ADD("vsystem_spr_old1", VSYSTEM_SPR2, 0)
|
||||
MCFG_VSYSTEM_SPR2_SET_TILE_INDIRECT( aerofgt_state, aerofgt_old_tile_callback )
|
||||
MCFG_VSYSTEM_SPR2_SET_GFXREGION(2)
|
||||
MCFG_VSYSTEM_SPR2_GFXDECODE("gfxdecode")
|
||||
|
||||
MCFG_DEVICE_ADD("vsystem_spr_ol2", VSYSTEM_SPR2, 0)
|
||||
MCFG_DEVICE_ADD("vsystem_spr_old2", VSYSTEM_SPR2, 0)
|
||||
MCFG_VSYSTEM_SPR2_SET_TILE_INDIRECT( aerofgt_state, aerofgt_ol2_tile_callback )
|
||||
MCFG_VSYSTEM_SPR2_SET_GFXREGION(3)
|
||||
MCFG_VSYSTEM_SPR2_GFXDECODE("gfxdecode")
|
||||
@ -2122,7 +2121,7 @@ MACHINE_CONFIG_START(aerofgt_state::wbbc97)
|
||||
|
||||
//MCFG_DEVICE_ADD("gga", VSYSTEM_GGA, 0)
|
||||
|
||||
MCFG_DEVICE_ADD("vsystem_spr_old", VSYSTEM_SPR2, 0)
|
||||
MCFG_DEVICE_ADD("vsystem_spr_old1", VSYSTEM_SPR2, 0)
|
||||
MCFG_VSYSTEM_SPR2_SET_TILE_INDIRECT( aerofgt_state, aerofgt_old_tile_callback )
|
||||
MCFG_VSYSTEM_SPR2_SET_GFXREGION(1)
|
||||
MCFG_VSYSTEM_SPR2_GFXDECODE("gfxdecode")
|
||||
@ -2377,9 +2376,9 @@ ROM_START( spikes91 )
|
||||
ROM_LOAD( "13.ic120", 0x80000, 0x40000, CRC(89213a8c) SHA1(8524d5c14669d9b03f1fe050c4318d4111bc8ef7) )
|
||||
ROM_LOAD( "14.ic121", 0xc0000, 0x40000, CRC(468cbf5b) SHA1(60fbc2771e40f8de51a51891b8ddcc14e2b1e52c) )
|
||||
|
||||
ROM_REGION( 0x020000, "user1", 0 ) /* lookup tables for the sprites */
|
||||
ROM_LOAD( "10.ic104", 0x00000, 0x10000, CRC(769ade77) SHA1(9cb581d02592c69f37d4b5a902d3515f40915ec4) )
|
||||
ROM_LOAD( "9.ic103", 0x10000, 0x10000, CRC(201cb748) SHA1(f78d384e4e9c5996a278f76fb4d5f28812a27de5) )
|
||||
ROM_REGION16_BE( 0x020000, "sprlookuprom", 0 ) /* lookup tables for the sprites */
|
||||
ROM_LOAD16_BYTE( "10.ic104", 0x00000, 0x10000, CRC(769ade77) SHA1(9cb581d02592c69f37d4b5a902d3515f40915ec4) )
|
||||
ROM_LOAD16_BYTE( "9.ic103", 0x00001, 0x10000, CRC(201cb748) SHA1(f78d384e4e9c5996a278f76fb4d5f28812a27de5) )
|
||||
|
||||
ROM_REGION( 0x20000, "cpu1", 0 ) /* Z80 Sound CPU + M5205 Samples */
|
||||
ROM_LOAD( "1.ic140", 0x00000, 0x10000, CRC(e3065b1d) SHA1(c4a3a95ba7f43cdf1b0c574f41de06d007ad2bd8) )
|
||||
@ -2406,9 +2405,9 @@ ROM_START( spikes91b ) // todo, check how this differs, only 1 of the 68k pair a
|
||||
ROM_LOAD( "13.ic120", 0x80000, 0x40000, CRC(89213a8c) SHA1(8524d5c14669d9b03f1fe050c4318d4111bc8ef7) )
|
||||
ROM_LOAD( "14.ic121", 0xc0000, 0x40000, CRC(468cbf5b) SHA1(60fbc2771e40f8de51a51891b8ddcc14e2b1e52c) )
|
||||
|
||||
ROM_REGION( 0x020000, "user1", 0 ) /* lookup tables for the sprites */
|
||||
ROM_LOAD( "10.ic104", 0x00000, 0x8000, CRC(b6fe4e57) SHA1(6b62936ff9d0f39fd02c3db488d53bc035c2272d) ) // sldh
|
||||
ROM_LOAD( "9.ic103", 0x10000, 0x8000, CRC(5479ed35) SHA1(ca26289318352901841fcdf26d9b43e797ac39b6) ) // sldh
|
||||
ROM_REGION16_BE( 0x020000, "sprlookuprom", 0 ) /* lookup tables for the sprites */
|
||||
ROM_LOAD16_BYTE( "10.ic104", 0x00000, 0x8000, CRC(b6fe4e57) SHA1(6b62936ff9d0f39fd02c3db488d53bc035c2272d) ) // sldh
|
||||
ROM_LOAD16_BYTE( "9.ic103", 0x00001, 0x8000, CRC(5479ed35) SHA1(ca26289318352901841fcdf26d9b43e797ac39b6) ) // sldh
|
||||
|
||||
ROM_REGION( 0x20000, "cpu1", 0 ) /* Z80 Sound CPU + M5205 Samples */
|
||||
ROM_LOAD( "1.ic140", 0x00000, 0x10000, CRC(e3065b1d) SHA1(c4a3a95ba7f43cdf1b0c574f41de06d007ad2bd8) )
|
||||
@ -2479,7 +2478,7 @@ ROM_START( spinlbrk )
|
||||
ROM_LOAD( "ic35", 0x100000, 0x80000, CRC(eba8e1a3) SHA1(976ef30437df9aba6fa6d5cd11728476f34eb05b) )
|
||||
ROM_LOAD( "ic40", 0x180000, 0x80000, CRC(5ef5aa7e) SHA1(8d4b0f2348c536c6781c8ba25722301673aca289) )
|
||||
|
||||
ROM_REGION16_BE( 0x24000, "gfx5", 0 ) /* hardcoded sprite maps */
|
||||
ROM_REGION16_BE( 0x24000, "sprlookuprom", 0 ) /* hardcoded sprite maps */
|
||||
ROM_LOAD16_BYTE( "ic19", 0x00000, 0x10000, CRC(db24eeaa) SHA1(300dd1ce81dd258b265bc3a64b8542ed152ed2cf) )
|
||||
ROM_LOAD16_BYTE( "ic13", 0x00001, 0x10000, CRC(97025bf4) SHA1(0519f0c94f3d417bf8ff0124a3a137035a4013dc) )
|
||||
/* 20000-23fff empty space, filled in vh_startup */
|
||||
@ -2529,7 +2528,7 @@ ROM_START( spinlbrku )
|
||||
ROM_LOAD( "ic35", 0x100000, 0x80000, CRC(eba8e1a3) SHA1(976ef30437df9aba6fa6d5cd11728476f34eb05b) )
|
||||
ROM_LOAD( "ic40", 0x180000, 0x80000, CRC(5ef5aa7e) SHA1(8d4b0f2348c536c6781c8ba25722301673aca289) )
|
||||
|
||||
ROM_REGION16_BE( 0x24000, "gfx5", 0 ) /* hardcoded sprite maps */
|
||||
ROM_REGION16_BE( 0x24000, "sprlookuprom", 0 ) /* hardcoded sprite maps */
|
||||
ROM_LOAD16_BYTE( "ic19", 0x00000, 0x10000, CRC(db24eeaa) SHA1(300dd1ce81dd258b265bc3a64b8542ed152ed2cf) )
|
||||
ROM_LOAD16_BYTE( "ic13", 0x00001, 0x10000, CRC(97025bf4) SHA1(0519f0c94f3d417bf8ff0124a3a137035a4013dc) )
|
||||
/* 20000-23fff empty space, filled in vh_startup */
|
||||
@ -2579,7 +2578,7 @@ ROM_START( spinlbrkj )
|
||||
ROM_LOAD( "ic35", 0x100000, 0x80000, CRC(eba8e1a3) SHA1(976ef30437df9aba6fa6d5cd11728476f34eb05b) )
|
||||
ROM_LOAD( "ic40", 0x180000, 0x80000, CRC(5ef5aa7e) SHA1(8d4b0f2348c536c6781c8ba25722301673aca289) )
|
||||
|
||||
ROM_REGION16_BE( 0x24000, "gfx5", 0 ) /* hardcoded sprite maps */
|
||||
ROM_REGION16_BE( 0x24000, "sprlookuprom", 0 ) /* hardcoded sprite maps */
|
||||
ROM_LOAD16_BYTE( "ic19", 0x00000, 0x10000, CRC(db24eeaa) SHA1(300dd1ce81dd258b265bc3a64b8542ed152ed2cf) )
|
||||
ROM_LOAD16_BYTE( "ic13", 0x00001, 0x10000, CRC(97025bf4) SHA1(0519f0c94f3d417bf8ff0124a3a137035a4013dc) )
|
||||
/* 20000-23fff empty space, filled in vh_startup */
|
||||
@ -2920,12 +2919,12 @@ ROM_START( aerofgtb )
|
||||
ROM_LOAD( "it-19-02", 0x000000, 0x80000, CRC(4f57f8ba) SHA1(aaad548e9a7490dfd48a975135716225f416b6f6) )
|
||||
|
||||
ROM_REGION( 0x100000, "spritegfx", 0 )
|
||||
ROM_LOAD( "it-19-04", 0x000000, 0x80000, CRC(3b329c1f) SHA1(279cb32d69ce1e71f42cfad93d395794a3e92bc6) )
|
||||
ROM_LOAD( "it-19-05", 0x080000, 0x80000, CRC(02b525af) SHA1(07f23d15938dfbdc4f0977ba1463a06090569026) )
|
||||
ROM_LOAD16_WORD_SWAP( "it-19-04", 0x000000, 0x80000, CRC(3b329c1f) SHA1(279cb32d69ce1e71f42cfad93d395794a3e92bc6) )
|
||||
ROM_LOAD16_WORD_SWAP( "it-19-05", 0x080000, 0x80000, CRC(02b525af) SHA1(07f23d15938dfbdc4f0977ba1463a06090569026) )
|
||||
|
||||
ROM_REGION( 0x080000, "gfx4", 0 )
|
||||
ROM_LOAD( "g27", 0x000000, 0x40000, CRC(4d89cbc8) SHA1(93f248f3dc1a15c32d14a147b37d5d660d0e4337) )
|
||||
ROM_LOAD( "g26", 0x040000, 0x40000, CRC(8072c1d2) SHA1(c14634f5f2686cf616f415d9ea4a0c6490054beb) )
|
||||
ROM_LOAD16_WORD_SWAP( "g27", 0x000000, 0x40000, CRC(4d89cbc8) SHA1(93f248f3dc1a15c32d14a147b37d5d660d0e4337) )
|
||||
ROM_LOAD16_WORD_SWAP( "g26", 0x040000, 0x40000, CRC(8072c1d2) SHA1(c14634f5f2686cf616f415d9ea4a0c6490054beb) )
|
||||
|
||||
ROM_REGION( 0x40000, "ymsnd.deltat", 0 ) /* sound samples */
|
||||
ROM_LOAD( "it-19-01", 0x00000, 0x40000, CRC(6d42723d) SHA1(57c59234e9925430a4c687733682efed06d7eed1) )
|
||||
@ -2950,12 +2949,12 @@ ROM_START( aerofgtc )
|
||||
ROM_LOAD( "it-19-02", 0x000000, 0x80000, CRC(4f57f8ba) SHA1(aaad548e9a7490dfd48a975135716225f416b6f6) )
|
||||
|
||||
ROM_REGION( 0x100000, "spritegfx", 0 )
|
||||
ROM_LOAD( "it-19-04", 0x000000, 0x80000, CRC(3b329c1f) SHA1(279cb32d69ce1e71f42cfad93d395794a3e92bc6) )
|
||||
ROM_LOAD( "it-19-05", 0x080000, 0x80000, CRC(02b525af) SHA1(07f23d15938dfbdc4f0977ba1463a06090569026) )
|
||||
ROM_LOAD16_WORD_SWAP( "it-19-04", 0x000000, 0x80000, CRC(3b329c1f) SHA1(279cb32d69ce1e71f42cfad93d395794a3e92bc6) )
|
||||
ROM_LOAD16_WORD_SWAP( "it-19-05", 0x080000, 0x80000, CRC(02b525af) SHA1(07f23d15938dfbdc4f0977ba1463a06090569026) )
|
||||
|
||||
ROM_REGION( 0x080000, "gfx4", 0 )
|
||||
ROM_LOAD( "g27", 0x000000, 0x40000, CRC(4d89cbc8) SHA1(93f248f3dc1a15c32d14a147b37d5d660d0e4337) )
|
||||
ROM_LOAD( "g26", 0x040000, 0x40000, CRC(8072c1d2) SHA1(c14634f5f2686cf616f415d9ea4a0c6490054beb) )
|
||||
ROM_LOAD16_WORD_SWAP( "g27", 0x000000, 0x40000, CRC(4d89cbc8) SHA1(93f248f3dc1a15c32d14a147b37d5d660d0e4337) )
|
||||
ROM_LOAD16_WORD_SWAP( "g26", 0x040000, 0x40000, CRC(8072c1d2) SHA1(c14634f5f2686cf616f415d9ea4a0c6490054beb) )
|
||||
|
||||
ROM_REGION( 0x40000, "ymsnd.deltat", 0 ) /* sound samples */
|
||||
ROM_LOAD( "it-19-01", 0x00000, 0x40000, CRC(6d42723d) SHA1(57c59234e9925430a4c687733682efed06d7eed1) )
|
||||
@ -2980,12 +2979,12 @@ ROM_START( sonicwi )
|
||||
ROM_LOAD( "it-19-02", 0x000000, 0x80000, CRC(4f57f8ba) SHA1(aaad548e9a7490dfd48a975135716225f416b6f6) )
|
||||
|
||||
ROM_REGION( 0x100000, "spritegfx", 0 )
|
||||
ROM_LOAD( "it-19-04", 0x000000, 0x80000, CRC(3b329c1f) SHA1(279cb32d69ce1e71f42cfad93d395794a3e92bc6) )
|
||||
ROM_LOAD( "it-19-05", 0x080000, 0x80000, CRC(02b525af) SHA1(07f23d15938dfbdc4f0977ba1463a06090569026) )
|
||||
ROM_LOAD16_WORD_SWAP( "it-19-04", 0x000000, 0x80000, CRC(3b329c1f) SHA1(279cb32d69ce1e71f42cfad93d395794a3e92bc6) )
|
||||
ROM_LOAD16_WORD_SWAP( "it-19-05", 0x080000, 0x80000, CRC(02b525af) SHA1(07f23d15938dfbdc4f0977ba1463a06090569026) )
|
||||
|
||||
ROM_REGION( 0x080000, "gfx4", 0 )
|
||||
ROM_LOAD( "g27", 0x000000, 0x40000, CRC(4d89cbc8) SHA1(93f248f3dc1a15c32d14a147b37d5d660d0e4337) )
|
||||
ROM_LOAD( "g26", 0x040000, 0x40000, CRC(8072c1d2) SHA1(c14634f5f2686cf616f415d9ea4a0c6490054beb) )
|
||||
ROM_LOAD16_WORD_SWAP( "g27", 0x000000, 0x40000, CRC(4d89cbc8) SHA1(93f248f3dc1a15c32d14a147b37d5d660d0e4337) )
|
||||
ROM_LOAD16_WORD_SWAP( "g26", 0x040000, 0x40000, CRC(8072c1d2) SHA1(c14634f5f2686cf616f415d9ea4a0c6490054beb) )
|
||||
|
||||
ROM_REGION( 0x40000, "ymsnd.deltat", 0 ) /* sound samples */
|
||||
ROM_LOAD( "it-19-01", 0x00000, 0x40000, CRC(6d42723d) SHA1(57c59234e9925430a4c687733682efed06d7eed1) )
|
||||
|
@ -11,36 +11,33 @@ class aerofgt_state : public driver_device
|
||||
{
|
||||
public:
|
||||
aerofgt_state(const machine_config &mconfig, device_type type, const char *tag)
|
||||
: driver_device(mconfig, type, tag),
|
||||
m_bg1videoram(*this, "bg1videoram"),
|
||||
m_bg2videoram(*this, "bg2videoram"),
|
||||
m_rasterram(*this, "rasterram"),
|
||||
m_bitmapram(*this, "bitmapram"),
|
||||
m_spriteram1(*this, "spriteram1"),
|
||||
m_spriteram2(*this, "spriteram2"),
|
||||
m_spriteram3(*this, "spriteram3"),
|
||||
m_tx_tilemap_ram(*this, "tx_tilemap_ram"),
|
||||
m_maincpu(*this, "maincpu"),
|
||||
m_audiocpu(*this, "audiocpu"),
|
||||
m_oki(*this, "oki"),
|
||||
m_upd7759(*this, "upd"),
|
||||
m_gfxdecode(*this, "gfxdecode"),
|
||||
m_palette(*this, "palette"),
|
||||
m_spr(*this, "vsystem_spr"),
|
||||
m_spr_old(*this, "vsystem_spr_old"),
|
||||
m_spr_old2(*this, "vsystem_spr_ol2"),
|
||||
m_soundlatch(*this, "soundlatch"),
|
||||
m_soundbank(*this, "soundbank"),
|
||||
m_okibank(*this, "okibank") { }
|
||||
: driver_device(mconfig, type, tag)
|
||||
, m_vram(*this, "vram.%u", 0)
|
||||
, m_rasterram(*this, "rasterram")
|
||||
, m_bitmapram(*this, "bitmapram")
|
||||
, m_sprlookupram(*this, "sprlookupram%u", 1)
|
||||
, m_spriteram(*this, "spriteram")
|
||||
, m_tx_tilemap_ram(*this, "tx_tilemap_ram")
|
||||
, m_maincpu(*this, "maincpu")
|
||||
, m_audiocpu(*this, "audiocpu")
|
||||
, m_oki(*this, "oki")
|
||||
, m_upd7759(*this, "upd")
|
||||
, m_gfxdecode(*this, "gfxdecode")
|
||||
, m_palette(*this, "palette")
|
||||
, m_spr(*this, "vsystem_spr")
|
||||
, m_spr_old(*this, "vsystem_spr_old%u", 1)
|
||||
, m_soundlatch(*this, "soundlatch")
|
||||
, m_sprlookuprom(*this, "sprlookuprom")
|
||||
, m_soundbank(*this, "soundbank")
|
||||
, m_okibank(*this, "okibank")
|
||||
{ }
|
||||
|
||||
/* memory pointers */
|
||||
required_shared_ptr<uint16_t> m_bg1videoram;
|
||||
optional_shared_ptr<uint16_t> m_bg2videoram;
|
||||
optional_shared_ptr_array<uint16_t, 2> m_vram;
|
||||
optional_shared_ptr<uint16_t> m_rasterram;
|
||||
optional_shared_ptr<uint16_t> m_bitmapram;
|
||||
optional_shared_ptr<uint16_t> m_spriteram1;
|
||||
optional_shared_ptr<uint16_t> m_spriteram2;
|
||||
required_shared_ptr<uint16_t> m_spriteram3;
|
||||
optional_shared_ptr_array<uint16_t, 2> m_sprlookupram;
|
||||
required_shared_ptr<uint16_t> m_spriteram;
|
||||
optional_shared_ptr<uint16_t> m_tx_tilemap_ram;
|
||||
|
||||
/* devices referenced above */
|
||||
@ -51,22 +48,19 @@ public:
|
||||
required_device<gfxdecode_device> m_gfxdecode;
|
||||
required_device<palette_device> m_palette;
|
||||
optional_device<vsystem_spr_device> m_spr; // only the aerofgt parent uses this chip
|
||||
optional_device<vsystem_spr2_device> m_spr_old; // every other (non-bootleg) uses this
|
||||
optional_device<vsystem_spr2_device> m_spr_old2; // or a pair of them..
|
||||
optional_device_array<vsystem_spr2_device, 2> m_spr_old; // every other (non-bootleg) uses this or a pair of them..
|
||||
optional_device<generic_latch_8_device> m_soundlatch;
|
||||
|
||||
optional_region_ptr<uint16_t> m_sprlookuprom;
|
||||
optional_memory_bank m_soundbank;
|
||||
optional_memory_bank m_okibank;
|
||||
|
||||
/* video-related */
|
||||
tilemap_t *m_bg1_tilemap;
|
||||
tilemap_t *m_bg2_tilemap;
|
||||
tilemap_t *m_tilemap[2];
|
||||
uint8_t m_gfxbank[8];
|
||||
uint16_t m_bank[4];
|
||||
uint16_t m_bg1scrollx;
|
||||
uint16_t m_bg1scrolly;
|
||||
uint16_t m_bg2scrollx;
|
||||
uint16_t m_bg2scrolly;
|
||||
uint16_t m_scrollx[2];
|
||||
uint16_t m_scrolly[2];
|
||||
bool m_flip_screen;
|
||||
uint16_t m_wbbc97_bitmap_enable;
|
||||
int m_charpalettebank;
|
||||
@ -77,6 +71,7 @@ public:
|
||||
|
||||
uint32_t aerofgt_old_tile_callback( uint32_t code );
|
||||
uint32_t aerofgt_ol2_tile_callback( uint32_t code );
|
||||
uint32_t spinbrk_tile_callback( uint32_t code );
|
||||
|
||||
/* handlers */
|
||||
DECLARE_WRITE8_MEMBER(karatblzbl_soundlatch_w);
|
||||
@ -84,8 +79,7 @@ public:
|
||||
DECLARE_WRITE8_MEMBER(aerofgt_sh_bankswitch_w);
|
||||
DECLARE_WRITE8_MEMBER(spinlbrk_sh_bankswitch_w);
|
||||
DECLARE_WRITE8_MEMBER(aerfboot_okim6295_banking_w);
|
||||
DECLARE_WRITE16_MEMBER(aerofgt_bg1videoram_w);
|
||||
DECLARE_WRITE16_MEMBER(aerofgt_bg2videoram_w);
|
||||
template<int Layer> DECLARE_WRITE16_MEMBER(vram_w);
|
||||
DECLARE_WRITE8_MEMBER(pspikes_gfxbank_w);
|
||||
DECLARE_WRITE16_MEMBER(pspikesb_gfxbank_w);
|
||||
DECLARE_WRITE16_MEMBER(spikes91_lookup_w);
|
||||
@ -94,10 +88,8 @@ public:
|
||||
DECLARE_WRITE8_MEMBER(kickball_gfxbank_w);
|
||||
DECLARE_WRITE16_MEMBER(turbofrc_gfxbank_w);
|
||||
DECLARE_WRITE16_MEMBER(aerofgt_gfxbank_w);
|
||||
DECLARE_WRITE16_MEMBER(aerofgt_bg1scrollx_w);
|
||||
DECLARE_WRITE16_MEMBER(aerofgt_bg1scrolly_w);
|
||||
DECLARE_WRITE16_MEMBER(aerofgt_bg2scrollx_w);
|
||||
DECLARE_WRITE16_MEMBER(aerofgt_bg2scrolly_w);
|
||||
template<int Layer> DECLARE_WRITE16_MEMBER(scrollx_w);
|
||||
template<int Layer> DECLARE_WRITE16_MEMBER(scrolly_w);
|
||||
DECLARE_WRITE8_MEMBER(pspikes_palette_bank_w);
|
||||
DECLARE_WRITE8_MEMBER(spinlbrk_flip_screen_w);
|
||||
DECLARE_WRITE8_MEMBER(turbofrc_flip_screen_w);
|
||||
@ -107,11 +99,9 @@ public:
|
||||
DECLARE_WRITE8_MEMBER(karatblzbl_d7759_write_port_0_w);
|
||||
DECLARE_WRITE8_MEMBER(karatblzbl_d7759_reset_w);
|
||||
TILE_GET_INFO_MEMBER(get_pspikes_tile_info);
|
||||
TILE_GET_INFO_MEMBER(karatblz_bg1_tile_info);
|
||||
TILE_GET_INFO_MEMBER(karatblz_bg2_tile_info);
|
||||
TILE_GET_INFO_MEMBER(spinlbrk_bg1_tile_info);
|
||||
TILE_GET_INFO_MEMBER(get_bg1_tile_info);
|
||||
TILE_GET_INFO_MEMBER(get_bg2_tile_info);
|
||||
template<int Layer> TILE_GET_INFO_MEMBER(karatblz_tile_info);
|
||||
template<int Layer> TILE_GET_INFO_MEMBER(spinlbrk_tile_info);
|
||||
template<int Layer> TILE_GET_INFO_MEMBER(get_tile_info);
|
||||
DECLARE_MACHINE_START(aerofgt);
|
||||
DECLARE_MACHINE_START(spinlbrk);
|
||||
DECLARE_MACHINE_RESET(aerofgt);
|
||||
@ -135,7 +125,7 @@ public:
|
||||
uint32_t screen_update_aerfboo2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||
uint32_t screen_update_wbbc97(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
|
||||
void aerofgt_register_state_globals( );
|
||||
void setbank( tilemap_t *tmap, int num, int bank );
|
||||
void setbank( int layer, int num, int bank );
|
||||
void aerfboo2_draw_sprites( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int chip, int chip_disabled_pri );
|
||||
void pspikesb_draw_sprites( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect );
|
||||
void spikes91_draw_sprites( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect );
|
||||
|
@ -12,7 +12,7 @@
|
||||
|
||||
TILE_GET_INFO_MEMBER(aerofgt_state::get_pspikes_tile_info)
|
||||
{
|
||||
uint16_t code = m_bg1videoram[tile_index];
|
||||
uint16_t code = m_vram[0][tile_index];
|
||||
int bank = (code & 0x1000) >> 12;
|
||||
SET_TILE_INFO_MEMBER(0,
|
||||
(code & 0x0fff) + (m_gfxbank[bank] << 12),
|
||||
@ -20,49 +20,33 @@ TILE_GET_INFO_MEMBER(aerofgt_state::get_pspikes_tile_info)
|
||||
0);
|
||||
}
|
||||
|
||||
TILE_GET_INFO_MEMBER(aerofgt_state::karatblz_bg1_tile_info)
|
||||
{
|
||||
uint16_t code = m_bg1videoram[tile_index];
|
||||
SET_TILE_INFO_MEMBER(0,
|
||||
(code & 0x1fff) + (m_gfxbank[0] << 13),
|
||||
(code & 0xe000) >> 13,
|
||||
0);
|
||||
}
|
||||
|
||||
/* also spinlbrk */
|
||||
TILE_GET_INFO_MEMBER(aerofgt_state::karatblz_bg2_tile_info)
|
||||
template<int Layer>
|
||||
TILE_GET_INFO_MEMBER(aerofgt_state::karatblz_tile_info)
|
||||
{
|
||||
uint16_t code = m_bg2videoram[tile_index];
|
||||
SET_TILE_INFO_MEMBER(1,
|
||||
(code & 0x1fff) + (m_gfxbank[1] << 13),
|
||||
uint16_t code = m_vram[Layer][tile_index];
|
||||
SET_TILE_INFO_MEMBER(Layer,
|
||||
(code & 0x1fff) + (m_gfxbank[Layer] << 13),
|
||||
(code & 0xe000) >> 13,
|
||||
0);
|
||||
}
|
||||
|
||||
TILE_GET_INFO_MEMBER(aerofgt_state::spinlbrk_bg1_tile_info)
|
||||
template<int Layer>
|
||||
TILE_GET_INFO_MEMBER(aerofgt_state::spinlbrk_tile_info)
|
||||
{
|
||||
uint16_t code = m_bg1videoram[tile_index];
|
||||
SET_TILE_INFO_MEMBER(0,
|
||||
(code & 0x0fff) + (m_gfxbank[0] << 12),
|
||||
uint16_t code = m_vram[Layer][tile_index];
|
||||
SET_TILE_INFO_MEMBER(Layer,
|
||||
(code & 0x0fff) + (m_gfxbank[Layer] << 12),
|
||||
(code & 0xf000) >> 12,
|
||||
0);
|
||||
}
|
||||
|
||||
TILE_GET_INFO_MEMBER(aerofgt_state::get_bg1_tile_info)
|
||||
template<int Layer>
|
||||
TILE_GET_INFO_MEMBER(aerofgt_state::get_tile_info)
|
||||
{
|
||||
uint16_t code = m_bg1videoram[tile_index];
|
||||
int bank = (code & 0x1800) >> 11;
|
||||
SET_TILE_INFO_MEMBER(0,
|
||||
(code & 0x07ff) + (m_gfxbank[bank] << 11),
|
||||
(code & 0xe000) >> 13,
|
||||
0);
|
||||
}
|
||||
|
||||
TILE_GET_INFO_MEMBER(aerofgt_state::get_bg2_tile_info)
|
||||
{
|
||||
uint16_t code = m_bg2videoram[tile_index];
|
||||
int bank = 4 + ((code & 0x1800) >> 11);
|
||||
SET_TILE_INFO_MEMBER(1,
|
||||
uint16_t code = m_vram[Layer][tile_index];
|
||||
int bank = (Layer << 2) + (code & 0x1800) >> 11;
|
||||
SET_TILE_INFO_MEMBER(Layer,
|
||||
(code & 0x07ff) + (m_gfxbank[bank] << 11),
|
||||
(code & 0xe000) >> 13,
|
||||
0);
|
||||
@ -76,15 +60,12 @@ TILE_GET_INFO_MEMBER(aerofgt_state::get_bg2_tile_info)
|
||||
***************************************************************************/
|
||||
|
||||
|
||||
|
||||
void aerofgt_state::aerofgt_register_state_globals( )
|
||||
{
|
||||
save_item(NAME(m_gfxbank));
|
||||
save_item(NAME(m_bank));
|
||||
save_item(NAME(m_bg1scrollx));
|
||||
save_item(NAME(m_bg1scrolly));
|
||||
save_item(NAME(m_bg2scrollx));
|
||||
save_item(NAME(m_bg2scrolly));
|
||||
save_item(NAME(m_scrollx));
|
||||
save_item(NAME(m_scrolly));
|
||||
save_item(NAME(m_flip_screen));
|
||||
save_item(NAME(m_charpalettebank));
|
||||
save_item(NAME(m_spritepalettebank));
|
||||
@ -92,7 +73,7 @@ void aerofgt_state::aerofgt_register_state_globals( )
|
||||
|
||||
VIDEO_START_MEMBER(aerofgt_state,pspikes)
|
||||
{
|
||||
m_bg1_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(aerofgt_state::get_pspikes_tile_info),this),TILEMAP_SCAN_ROWS,8,8,64,32);
|
||||
m_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(aerofgt_state::get_pspikes_tile_info),this),TILEMAP_SCAN_ROWS,8,8,64,32);
|
||||
/* no bg2 in this game */
|
||||
|
||||
m_sprite_gfx = 1;
|
||||
@ -101,13 +82,12 @@ VIDEO_START_MEMBER(aerofgt_state,pspikes)
|
||||
save_item(NAME(m_spikes91_lookup));
|
||||
}
|
||||
|
||||
|
||||
VIDEO_START_MEMBER(aerofgt_state,karatblz)
|
||||
{
|
||||
m_bg1_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(aerofgt_state::karatblz_bg1_tile_info),this),TILEMAP_SCAN_ROWS, 8,8,64,64);
|
||||
m_bg2_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(aerofgt_state::karatblz_bg2_tile_info),this),TILEMAP_SCAN_ROWS,8,8,64,64);
|
||||
m_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(aerofgt_state::karatblz_tile_info<0>),this),TILEMAP_SCAN_ROWS,8,8,64,64);
|
||||
m_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(aerofgt_state::karatblz_tile_info<1>),this),TILEMAP_SCAN_ROWS,8,8,64,64);
|
||||
|
||||
m_bg2_tilemap->set_transparent_pen(15);
|
||||
m_tilemap[1]->set_transparent_pen(15);
|
||||
m_spritepalettebank = 0;
|
||||
m_sprite_gfx = 2;
|
||||
|
||||
@ -116,28 +96,25 @@ VIDEO_START_MEMBER(aerofgt_state,karatblz)
|
||||
|
||||
VIDEO_START_MEMBER(aerofgt_state,spinlbrk)
|
||||
{
|
||||
m_bg1_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(aerofgt_state::spinlbrk_bg1_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
|
||||
m_bg2_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(aerofgt_state::karatblz_bg2_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
|
||||
m_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(aerofgt_state::spinlbrk_tile_info<0>),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
|
||||
m_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(aerofgt_state::karatblz_tile_info<1>),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
|
||||
|
||||
m_bg2_tilemap->set_transparent_pen(15);
|
||||
m_tilemap[1]->set_transparent_pen(15);
|
||||
|
||||
m_spritepalettebank = 0;
|
||||
m_sprite_gfx = 2;
|
||||
|
||||
/* sprite maps are hardcoded in this game */
|
||||
|
||||
/* enemy sprites use ROM instead of RAM */
|
||||
m_spriteram2.set_target(reinterpret_cast<uint16_t *>(memregion("gfx5")->base()), 0x20000);
|
||||
|
||||
aerofgt_register_state_globals();
|
||||
}
|
||||
|
||||
VIDEO_START_MEMBER(aerofgt_state,turbofrc)
|
||||
{
|
||||
m_bg1_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(aerofgt_state::get_bg1_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
|
||||
m_bg2_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(aerofgt_state::get_bg2_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
|
||||
m_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(aerofgt_state::get_tile_info<0>),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
|
||||
m_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(aerofgt_state::get_tile_info<1>),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
|
||||
|
||||
m_bg2_tilemap->set_transparent_pen(15);
|
||||
m_tilemap[1]->set_transparent_pen(15);
|
||||
|
||||
m_spritepalettebank = 0;
|
||||
m_sprite_gfx = 2;
|
||||
@ -149,23 +126,26 @@ VIDEO_START_MEMBER(aerofgt_state,turbofrc)
|
||||
/* new hw type */
|
||||
uint32_t aerofgt_state::aerofgt_tile_callback( uint32_t code )
|
||||
{
|
||||
return m_spriteram1[code&0x7fff];
|
||||
return m_sprlookupram[0][code&0x7fff];
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/* old hw type */
|
||||
uint32_t aerofgt_state::aerofgt_old_tile_callback( uint32_t code )
|
||||
{
|
||||
return m_spriteram1[code % (m_spriteram1.bytes()/2)];
|
||||
return m_sprlookupram[0][code % (m_sprlookupram[0].bytes()/2)];
|
||||
}
|
||||
|
||||
uint32_t aerofgt_state::aerofgt_ol2_tile_callback( uint32_t code )
|
||||
{
|
||||
return m_spriteram2[code % (m_spriteram2.bytes()/2)];
|
||||
return m_sprlookupram[1][code % (m_sprlookupram[1].bytes()/2)];
|
||||
}
|
||||
|
||||
uint32_t aerofgt_state::spinbrk_tile_callback( uint32_t code )
|
||||
{
|
||||
/* enemy sprites use ROM instead of RAM */
|
||||
return m_sprlookuprom[code % m_sprlookuprom.length()];
|
||||
}
|
||||
|
||||
|
||||
/***************************************************************************
|
||||
@ -174,93 +154,56 @@ uint32_t aerofgt_state::aerofgt_ol2_tile_callback( uint32_t code )
|
||||
|
||||
***************************************************************************/
|
||||
|
||||
WRITE16_MEMBER(aerofgt_state::aerofgt_bg1videoram_w)
|
||||
{
|
||||
COMBINE_DATA(&m_bg1videoram[offset]);
|
||||
m_bg1_tilemap->mark_tile_dirty(offset);
|
||||
}
|
||||
|
||||
WRITE16_MEMBER(aerofgt_state::aerofgt_bg2videoram_w)
|
||||
{
|
||||
COMBINE_DATA(&m_bg2videoram[offset]);
|
||||
m_bg2_tilemap->mark_tile_dirty(offset);
|
||||
}
|
||||
|
||||
|
||||
void aerofgt_state::setbank( tilemap_t *tmap, int num, int bank )
|
||||
void aerofgt_state::setbank( int layer, int num, int bank )
|
||||
{
|
||||
if (m_gfxbank[num] != bank)
|
||||
{
|
||||
m_gfxbank[num] = bank;
|
||||
tmap->mark_all_dirty();
|
||||
m_tilemap[layer]->mark_all_dirty();
|
||||
}
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(aerofgt_state::pspikes_gfxbank_w)
|
||||
{
|
||||
setbank(m_bg1_tilemap, 0, (data & 0xf0) >> 4);
|
||||
setbank(m_bg1_tilemap, 1, data & 0x0f);
|
||||
setbank(0, 0, (data & 0xf0) >> 4);
|
||||
setbank(0, 1, data & 0x0f);
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(aerofgt_state::karatblz_gfxbank_w)
|
||||
{
|
||||
setbank(m_bg1_tilemap, 0, (data & 0x01));
|
||||
setbank(m_bg2_tilemap, 1, (data & 0x08) >> 3);
|
||||
setbank(0, 0, (data & 0x01));
|
||||
setbank(1, 1, (data & 0x08) >> 3);
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(aerofgt_state::spinlbrk_gfxbank_w)
|
||||
{
|
||||
setbank(m_bg1_tilemap, 0, (data & 0x07));
|
||||
setbank(m_bg2_tilemap, 1, (data & 0x38) >> 3);
|
||||
setbank(0, 0, (data & 0x07));
|
||||
setbank(1, 1, (data & 0x38) >> 3);
|
||||
}
|
||||
|
||||
WRITE16_MEMBER(aerofgt_state::turbofrc_gfxbank_w)
|
||||
{
|
||||
tilemap_t *tmap = (offset == 0) ? m_bg1_tilemap : m_bg2_tilemap;
|
||||
|
||||
data = COMBINE_DATA(&m_bank[offset]);
|
||||
|
||||
setbank(tmap, 4 * offset + 0, (data >> 0) & 0x0f);
|
||||
setbank(tmap, 4 * offset + 1, (data >> 4) & 0x0f);
|
||||
setbank(tmap, 4 * offset + 2, (data >> 8) & 0x0f);
|
||||
setbank(tmap, 4 * offset + 3, (data >> 12) & 0x0f);
|
||||
setbank(offset, 4 * offset + 0, (data >> 0) & 0x0f);
|
||||
setbank(offset, 4 * offset + 1, (data >> 4) & 0x0f);
|
||||
setbank(offset, 4 * offset + 2, (data >> 8) & 0x0f);
|
||||
setbank(offset, 4 * offset + 3, (data >> 12) & 0x0f);
|
||||
}
|
||||
|
||||
WRITE16_MEMBER(aerofgt_state::aerofgt_gfxbank_w)
|
||||
{
|
||||
tilemap_t *tmap = (offset < 2) ? m_bg1_tilemap : m_bg2_tilemap;
|
||||
|
||||
data = COMBINE_DATA(&m_bank[offset]);
|
||||
|
||||
setbank(tmap, 2 * offset + 0, (data >> 8) & 0xff);
|
||||
setbank(tmap, 2 * offset + 1, (data >> 0) & 0xff);
|
||||
setbank(offset >> 1, 2 * offset + 0, (data >> 8) & 0xff);
|
||||
setbank(offset >> 1, 2 * offset + 1, (data >> 0) & 0xff);
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(aerofgt_state::kickball_gfxbank_w)
|
||||
{
|
||||
// I strongly doubt this logic is correct
|
||||
setbank(m_bg1_tilemap, 0, (data & 0x0f)&~0x01);
|
||||
setbank(m_bg1_tilemap, 1, (data & 0x0f));
|
||||
}
|
||||
|
||||
WRITE16_MEMBER(aerofgt_state::aerofgt_bg1scrollx_w)
|
||||
{
|
||||
COMBINE_DATA(&m_bg1scrollx);
|
||||
}
|
||||
|
||||
WRITE16_MEMBER(aerofgt_state::aerofgt_bg1scrolly_w)
|
||||
{
|
||||
COMBINE_DATA(&m_bg1scrolly);
|
||||
}
|
||||
|
||||
WRITE16_MEMBER(aerofgt_state::aerofgt_bg2scrollx_w)
|
||||
{
|
||||
COMBINE_DATA(&m_bg2scrollx);
|
||||
}
|
||||
|
||||
WRITE16_MEMBER(aerofgt_state::aerofgt_bg2scrolly_w)
|
||||
{
|
||||
COMBINE_DATA(&m_bg2scrolly);
|
||||
setbank(0, 0, (data & 0x0f)&~0x01);
|
||||
setbank(0, 1, (data & 0x0f));
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(aerofgt_state::pspikes_palette_bank_w)
|
||||
@ -269,25 +212,25 @@ WRITE8_MEMBER(aerofgt_state::pspikes_palette_bank_w)
|
||||
if (m_charpalettebank != (data & 0x1c) >> 2)
|
||||
{
|
||||
m_charpalettebank = (data & 0x1c) >> 2;
|
||||
m_bg1_tilemap->mark_all_dirty();
|
||||
m_tilemap[0]->mark_all_dirty();
|
||||
}
|
||||
|
||||
m_flip_screen = BIT(data, 7);
|
||||
m_bg1_tilemap->set_flip(m_flip_screen ? TILEMAP_FLIPX | TILEMAP_FLIPY : 0);
|
||||
m_tilemap[0]->set_flip(m_flip_screen ? TILEMAP_FLIPX | TILEMAP_FLIPY : 0);
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(aerofgt_state::spinlbrk_flip_screen_w)
|
||||
{
|
||||
m_flip_screen = BIT(data, 7);
|
||||
m_bg1_tilemap->set_flip(m_flip_screen ? TILEMAP_FLIPX | TILEMAP_FLIPY : 0);
|
||||
m_bg2_tilemap->set_flip(m_flip_screen ? TILEMAP_FLIPX | TILEMAP_FLIPY : 0);
|
||||
m_tilemap[0]->set_flip(m_flip_screen ? TILEMAP_FLIPX | TILEMAP_FLIPY : 0);
|
||||
m_tilemap[1]->set_flip(m_flip_screen ? TILEMAP_FLIPX | TILEMAP_FLIPY : 0);
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(aerofgt_state::turbofrc_flip_screen_w)
|
||||
{
|
||||
m_flip_screen = BIT(data, 7);
|
||||
m_bg1_tilemap->set_flip(m_flip_screen ? TILEMAP_FLIPX | TILEMAP_FLIPY : 0);
|
||||
m_bg2_tilemap->set_flip(m_flip_screen ? TILEMAP_FLIPX | TILEMAP_FLIPY : 0);
|
||||
m_tilemap[0]->set_flip(m_flip_screen ? TILEMAP_FLIPX | TILEMAP_FLIPY : 0);
|
||||
m_tilemap[1]->set_flip(m_flip_screen ? TILEMAP_FLIPX | TILEMAP_FLIPY : 0);
|
||||
|
||||
// bit 6 = ?
|
||||
}
|
||||
@ -304,39 +247,39 @@ uint32_t aerofgt_state::screen_update_pspikes(screen_device &screen, bitmap_ind1
|
||||
{
|
||||
int i, scrolly;
|
||||
|
||||
m_bg1_tilemap->set_scroll_rows(256);
|
||||
scrolly = m_bg1scrolly;
|
||||
m_tilemap[0]->set_scroll_rows(256);
|
||||
scrolly = m_scrolly[0];
|
||||
for (i = 0; i < 256; i++)
|
||||
m_bg1_tilemap->set_scrollx((i + scrolly) & 0xff, m_rasterram[i]);
|
||||
m_bg1_tilemap->set_scrolly(0, scrolly);
|
||||
m_tilemap[0]->set_scrollx((i + scrolly) & 0xff, m_rasterram[i]);
|
||||
m_tilemap[0]->set_scrolly(0, scrolly);
|
||||
|
||||
screen.priority().fill(0, cliprect);
|
||||
|
||||
m_bg1_tilemap->draw(screen, bitmap, cliprect, 0, 0);
|
||||
m_spr_old->turbofrc_draw_sprites(m_spriteram3,m_spriteram3.bytes(),m_spritepalettebank, bitmap, cliprect, screen.priority(), 1, m_flip_screen);
|
||||
m_spr_old->turbofrc_draw_sprites(m_spriteram3,m_spriteram3.bytes(),m_spritepalettebank, bitmap, cliprect, screen.priority(), 0, m_flip_screen);
|
||||
m_tilemap[0]->draw(screen, bitmap, cliprect, 0, 0);
|
||||
m_spr_old[0]->turbofrc_draw_sprites(m_spriteram,m_spriteram.bytes(),m_spritepalettebank, bitmap, cliprect, screen.priority(), 1, m_flip_screen);
|
||||
m_spr_old[0]->turbofrc_draw_sprites(m_spriteram,m_spriteram.bytes(),m_spritepalettebank, bitmap, cliprect, screen.priority(), 0, m_flip_screen);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
uint32_t aerofgt_state::screen_update_karatblz(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
|
||||
{
|
||||
m_bg1_tilemap->set_scrollx(0, m_bg1scrollx - 8);
|
||||
m_bg1_tilemap->set_scrolly(0, m_bg1scrolly);
|
||||
m_bg2_tilemap->set_scrollx(0, m_bg2scrollx - 4);
|
||||
m_bg2_tilemap->set_scrolly(0, m_bg2scrolly);
|
||||
m_tilemap[0]->set_scrollx(0, m_scrollx[0] - 8);
|
||||
m_tilemap[0]->set_scrolly(0, m_scrolly[0]);
|
||||
m_tilemap[1]->set_scrollx(0, m_scrollx[1] - 4);
|
||||
m_tilemap[1]->set_scrolly(0, m_scrolly[1]);
|
||||
|
||||
screen.priority().fill(0, cliprect);
|
||||
|
||||
m_bg1_tilemap->draw(screen, bitmap, cliprect, 0, 0);
|
||||
m_bg2_tilemap->draw(screen, bitmap, cliprect, 0, 0);
|
||||
m_tilemap[0]->draw(screen, bitmap, cliprect, 0, 0);
|
||||
m_tilemap[1]->draw(screen, bitmap, cliprect, 0, 0);
|
||||
|
||||
/* we use the priority buffer so sprites are drawn front to back */
|
||||
m_spr_old2->turbofrc_draw_sprites(m_spriteram3+0x200,m_spriteram3.bytes()/2,m_spritepalettebank, bitmap, cliprect, screen.priority(), 1, m_flip_screen);
|
||||
m_spr_old2->turbofrc_draw_sprites(m_spriteram3+0x200,m_spriteram3.bytes()/2,m_spritepalettebank, bitmap, cliprect, screen.priority(), 0, m_flip_screen);
|
||||
m_spr_old[1]->turbofrc_draw_sprites(m_spriteram+0x200,m_spriteram.bytes()/2,m_spritepalettebank, bitmap, cliprect, screen.priority(), 1, m_flip_screen);
|
||||
m_spr_old[1]->turbofrc_draw_sprites(m_spriteram+0x200,m_spriteram.bytes()/2,m_spritepalettebank, bitmap, cliprect, screen.priority(), 0, m_flip_screen);
|
||||
|
||||
m_spr_old->turbofrc_draw_sprites(m_spriteram3+0x000,m_spriteram3.bytes()/2,m_spritepalettebank, bitmap, cliprect, screen.priority(), 1, m_flip_screen);
|
||||
m_spr_old->turbofrc_draw_sprites(m_spriteram3+0x000,m_spriteram3.bytes()/2,m_spritepalettebank, bitmap, cliprect, screen.priority(), 0, m_flip_screen);
|
||||
m_spr_old[0]->turbofrc_draw_sprites(m_spriteram+0x000,m_spriteram.bytes()/2,m_spritepalettebank, bitmap, cliprect, screen.priority(), 1, m_flip_screen);
|
||||
m_spr_old[0]->turbofrc_draw_sprites(m_spriteram+0x000,m_spriteram.bytes()/2,m_spritepalettebank, bitmap, cliprect, screen.priority(), 0, m_flip_screen);
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -344,25 +287,25 @@ uint32_t aerofgt_state::screen_update_spinlbrk(screen_device &screen, bitmap_ind
|
||||
{
|
||||
int i, scrolly;
|
||||
|
||||
m_bg1_tilemap->set_scroll_rows(512);
|
||||
m_tilemap[0]->set_scroll_rows(512);
|
||||
scrolly = 0;
|
||||
for (i = 0; i < 256; i++)
|
||||
m_bg1_tilemap->set_scrollx((i + scrolly) & 0x1ff, m_rasterram[i] - 8);
|
||||
// m_bg1_tilemap->set_scrolly(0, m_bg1scrolly);
|
||||
m_bg2_tilemap->set_scrollx(0, m_bg2scrollx - 4);
|
||||
// m_bg2_tilemap->set_scrolly(0, m_bg2scrolly);
|
||||
m_tilemap[0]->set_scrollx((i + scrolly) & 0x1ff, m_rasterram[i] - 8);
|
||||
// m_tilemap[0]->set_scrolly(0, m_scrolly[0]);
|
||||
m_tilemap[1]->set_scrollx(0, m_scrollx[1] - 4);
|
||||
// m_tilemap[1]->set_scrolly(0, m_scrolly[1]);
|
||||
|
||||
screen.priority().fill(0, cliprect);
|
||||
|
||||
m_bg1_tilemap->draw(screen, bitmap, cliprect, 0, 0);
|
||||
m_bg2_tilemap->draw(screen, bitmap, cliprect, 0, 1);
|
||||
m_tilemap[0]->draw(screen, bitmap, cliprect, 0, 0);
|
||||
m_tilemap[1]->draw(screen, bitmap, cliprect, 0, 1);
|
||||
|
||||
/* we use the priority buffer so sprites are drawn front to back */
|
||||
m_spr_old->turbofrc_draw_sprites(m_spriteram3+0x000,m_spriteram3.bytes()/2,m_spritepalettebank, bitmap, cliprect, screen.priority(), 0, m_flip_screen);
|
||||
m_spr_old->turbofrc_draw_sprites(m_spriteram3+0x000,m_spriteram3.bytes()/2,m_spritepalettebank, bitmap, cliprect, screen.priority(), 1, m_flip_screen);
|
||||
m_spr_old[0]->turbofrc_draw_sprites(m_spriteram+0x000,m_spriteram.bytes()/2,m_spritepalettebank, bitmap, cliprect, screen.priority(), 0, m_flip_screen);
|
||||
m_spr_old[0]->turbofrc_draw_sprites(m_spriteram+0x000,m_spriteram.bytes()/2,m_spritepalettebank, bitmap, cliprect, screen.priority(), 1, m_flip_screen);
|
||||
|
||||
m_spr_old2->turbofrc_draw_sprites(m_spriteram3+0x200,m_spriteram3.bytes()/2,m_spritepalettebank, bitmap, cliprect, screen.priority(), 0, m_flip_screen);
|
||||
m_spr_old2->turbofrc_draw_sprites(m_spriteram3+0x200,m_spriteram3.bytes()/2,m_spritepalettebank, bitmap, cliprect, screen.priority(), 1, m_flip_screen);
|
||||
m_spr_old[1]->turbofrc_draw_sprites(m_spriteram+0x200,m_spriteram.bytes()/2,m_spritepalettebank, bitmap, cliprect, screen.priority(), 0, m_flip_screen);
|
||||
m_spr_old[1]->turbofrc_draw_sprites(m_spriteram+0x200,m_spriteram.bytes()/2,m_spritepalettebank, bitmap, cliprect, screen.priority(), 1, m_flip_screen);
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -370,47 +313,47 @@ uint32_t aerofgt_state::screen_update_turbofrc(screen_device &screen, bitmap_ind
|
||||
{
|
||||
int i, scrolly;
|
||||
|
||||
m_bg1_tilemap->set_scroll_rows(512);
|
||||
scrolly = m_bg1scrolly + 2;
|
||||
m_tilemap[0]->set_scroll_rows(512);
|
||||
scrolly = m_scrolly[0] + 2;
|
||||
for (i = 0; i < 256; i++)
|
||||
// m_bg1_tilemap->set_scrollx((i + scrolly) & 0x1ff, m_rasterram[i] - 11);
|
||||
m_bg1_tilemap->set_scrollx((i + scrolly) & 0x1ff, m_rasterram[7] - 11 - (m_flip_screen ? 188 : 0));
|
||||
m_bg1_tilemap->set_scrolly(0, scrolly - (m_flip_screen ? 2 : 0));
|
||||
m_bg2_tilemap->set_scrollx(0, m_bg2scrollx - (m_flip_screen ? 185 : 7));
|
||||
m_bg2_tilemap->set_scrolly(0, m_bg2scrolly + (m_flip_screen ? 0 : 2));
|
||||
// m_tilemap[0]->set_scrollx((i + scrolly) & 0x1ff, m_rasterram[i] - 11);
|
||||
m_tilemap[0]->set_scrollx((i + scrolly) & 0x1ff, m_rasterram[7] - 11 - (m_flip_screen ? 188 : 0));
|
||||
m_tilemap[0]->set_scrolly(0, scrolly - (m_flip_screen ? 2 : 0));
|
||||
m_tilemap[1]->set_scrollx(0, m_scrollx[1] - (m_flip_screen ? 185 : 7));
|
||||
m_tilemap[1]->set_scrolly(0, m_scrolly[1] + (m_flip_screen ? 0 : 2));
|
||||
|
||||
screen.priority().fill(0, cliprect);
|
||||
|
||||
m_bg1_tilemap->draw(screen, bitmap, cliprect, 0, 0);
|
||||
m_bg2_tilemap->draw(screen, bitmap, cliprect, 0, 1);
|
||||
m_tilemap[0]->draw(screen, bitmap, cliprect, 0, 0);
|
||||
m_tilemap[1]->draw(screen, bitmap, cliprect, 0, 1);
|
||||
|
||||
/* we use the priority buffer so sprites are drawn front to back */
|
||||
m_spr_old2->turbofrc_draw_sprites(m_spriteram3+0x200,m_spriteram3.bytes()/2,m_spritepalettebank, bitmap, cliprect, screen.priority(), 1, m_flip_screen); //ship
|
||||
m_spr_old2->turbofrc_draw_sprites(m_spriteram3+0x200,m_spriteram3.bytes()/2,m_spritepalettebank, bitmap, cliprect, screen.priority(), 0, m_flip_screen); //intro
|
||||
m_spr_old[1]->turbofrc_draw_sprites(m_spriteram+0x200,m_spriteram.bytes()/2,m_spritepalettebank, bitmap, cliprect, screen.priority(), 1, m_flip_screen); //ship
|
||||
m_spr_old[1]->turbofrc_draw_sprites(m_spriteram+0x200,m_spriteram.bytes()/2,m_spritepalettebank, bitmap, cliprect, screen.priority(), 0, m_flip_screen); //intro
|
||||
|
||||
m_spr_old->turbofrc_draw_sprites(m_spriteram3+0x000,m_spriteram3.bytes()/2,m_spritepalettebank, bitmap, cliprect, screen.priority(), 1, m_flip_screen); //enemy
|
||||
m_spr_old->turbofrc_draw_sprites(m_spriteram3+0x000,m_spriteram3.bytes()/2,m_spritepalettebank, bitmap, cliprect, screen.priority(), 0, m_flip_screen); //enemy
|
||||
m_spr_old[0]->turbofrc_draw_sprites(m_spriteram+0x000,m_spriteram.bytes()/2,m_spritepalettebank, bitmap, cliprect, screen.priority(), 1, m_flip_screen); //enemy
|
||||
m_spr_old[0]->turbofrc_draw_sprites(m_spriteram+0x000,m_spriteram.bytes()/2,m_spritepalettebank, bitmap, cliprect, screen.priority(), 0, m_flip_screen); //enemy
|
||||
return 0;
|
||||
}
|
||||
|
||||
uint32_t aerofgt_state::screen_update_aerofgt(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
|
||||
{
|
||||
m_bg1_tilemap->set_scrollx(0, m_rasterram[0x0000] - 18);
|
||||
m_bg1_tilemap->set_scrolly(0, m_bg1scrolly);
|
||||
m_bg2_tilemap->set_scrollx(0, m_rasterram[0x0200] - 20);
|
||||
m_bg2_tilemap->set_scrolly(0, m_bg2scrolly);
|
||||
m_tilemap[0]->set_scrollx(0, m_rasterram[0x0000] - 18);
|
||||
m_tilemap[0]->set_scrolly(0, m_scrolly[0]);
|
||||
m_tilemap[1]->set_scrollx(0, m_rasterram[0x0200] - 20);
|
||||
m_tilemap[1]->set_scrolly(0, m_scrolly[1]);
|
||||
|
||||
screen.priority().fill(0, cliprect);
|
||||
|
||||
m_bg1_tilemap->draw(screen, bitmap, cliprect, 0, 0);
|
||||
m_tilemap[0]->draw(screen, bitmap, cliprect, 0, 0);
|
||||
|
||||
m_spr->draw_sprites(m_spriteram3, m_spriteram3.bytes(), screen, bitmap, cliprect, 0x03, 0x00);
|
||||
m_spr->draw_sprites(m_spriteram3, m_spriteram3.bytes(), screen, bitmap, cliprect, 0x03, 0x01);
|
||||
m_spr->draw_sprites(m_spriteram, m_spriteram.bytes(), screen, bitmap, cliprect, 0x03, 0x00);
|
||||
m_spr->draw_sprites(m_spriteram, m_spriteram.bytes(), screen, bitmap, cliprect, 0x03, 0x01);
|
||||
|
||||
m_bg2_tilemap->draw(screen, bitmap, cliprect, 0, 0);
|
||||
m_tilemap[1]->draw(screen, bitmap, cliprect, 0, 0);
|
||||
|
||||
m_spr->draw_sprites(m_spriteram3, m_spriteram3.bytes(), screen, bitmap, cliprect, 0x03, 0x02);
|
||||
m_spr->draw_sprites(m_spriteram3, m_spriteram3.bytes(), screen, bitmap, cliprect, 0x03, 0x03);
|
||||
m_spr->draw_sprites(m_spriteram, m_spriteram.bytes(), screen, bitmap, cliprect, 0x03, 0x02);
|
||||
m_spr->draw_sprites(m_spriteram, m_spriteram.bytes(), screen, bitmap, cliprect, 0x03, 0x03);
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -424,10 +367,10 @@ uint32_t aerofgt_state::screen_update_aerofgt(screen_device &screen, bitmap_ind1
|
||||
// BOOTLEG
|
||||
VIDEO_START_MEMBER(aerofgt_state,wbbc97)
|
||||
{
|
||||
m_bg1_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(aerofgt_state::get_pspikes_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
|
||||
m_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(aerofgt_state::get_pspikes_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
|
||||
/* no bg2 in this game */
|
||||
|
||||
m_bg1_tilemap->set_transparent_pen(15);
|
||||
m_tilemap[0]->set_transparent_pen(15);
|
||||
|
||||
m_sprite_gfx = 1;
|
||||
|
||||
@ -441,8 +384,8 @@ WRITE16_MEMBER(aerofgt_state::pspikesb_gfxbank_w)
|
||||
{
|
||||
COMBINE_DATA(&m_rasterram[0x200 / 2]);
|
||||
|
||||
setbank(m_bg1_tilemap, 0, (data & 0xf000) >> 12);
|
||||
setbank(m_bg1_tilemap, 1, (data & 0x0f00) >> 8);
|
||||
setbank(0, 0, (data & 0xf000) >> 12);
|
||||
setbank(0, 1, (data & 0x0f00) >> 8);
|
||||
}
|
||||
|
||||
// BOOTLEG
|
||||
@ -463,7 +406,7 @@ void aerofgt_state::aerfboo2_draw_sprites( screen_device &screen, bitmap_ind16 &
|
||||
int attr_start, base, first;
|
||||
|
||||
base = chip * 0x0200;
|
||||
// first = 4 * m_spriteram3[0x1fe + base];
|
||||
// first = 4 * m_spriteram[0x1fe + base];
|
||||
first = 0;
|
||||
|
||||
for (attr_start = base + 0x0200 - 4; attr_start >= first + base; attr_start -= 4)
|
||||
@ -473,26 +416,26 @@ void aerofgt_state::aerfboo2_draw_sprites( screen_device &screen, bitmap_ind16 &
|
||||
// some other drivers still use this wrong table, they have to be upgraded
|
||||
// int zoomtable[16] = { 0,7,14,20,25,30,34,38,42,46,49,52,54,57,59,61 };
|
||||
|
||||
if (!(m_spriteram3[attr_start + 2] & 0x0080))
|
||||
if (!(m_spriteram[attr_start + 2] & 0x0080))
|
||||
continue;
|
||||
|
||||
pri = m_spriteram3[attr_start + 2] & 0x0010;
|
||||
pri = m_spriteram[attr_start + 2] & 0x0010;
|
||||
|
||||
if ( chip_disabled_pri && !pri)
|
||||
continue;
|
||||
if ((!chip_disabled_pri) && (pri >> 4))
|
||||
continue;
|
||||
ox = m_spriteram3[attr_start + 1] & 0x01ff;
|
||||
xsize = (m_spriteram3[attr_start + 2] & 0x0700) >> 8;
|
||||
zoomx = (m_spriteram3[attr_start + 1] & 0xf000) >> 12;
|
||||
oy = m_spriteram3[attr_start + 0] & 0x01ff;
|
||||
ysize = (m_spriteram3[attr_start + 2] & 0x7000) >> 12;
|
||||
zoomy = (m_spriteram3[attr_start + 0] & 0xf000) >> 12;
|
||||
flipx = m_spriteram3[attr_start + 2] & 0x0800;
|
||||
flipy = m_spriteram3[attr_start + 2] & 0x8000;
|
||||
color = (m_spriteram3[attr_start + 2] & 0x000f) + 16 * m_spritepalettebank;
|
||||
ox = m_spriteram[attr_start + 1] & 0x01ff;
|
||||
xsize = (m_spriteram[attr_start + 2] & 0x0700) >> 8;
|
||||
zoomx = (m_spriteram[attr_start + 1] & 0xf000) >> 12;
|
||||
oy = m_spriteram[attr_start + 0] & 0x01ff;
|
||||
ysize = (m_spriteram[attr_start + 2] & 0x7000) >> 12;
|
||||
zoomy = (m_spriteram[attr_start + 0] & 0xf000) >> 12;
|
||||
flipx = m_spriteram[attr_start + 2] & 0x0800;
|
||||
flipy = m_spriteram[attr_start + 2] & 0x8000;
|
||||
color = (m_spriteram[attr_start + 2] & 0x000f) + 16 * m_spritepalettebank;
|
||||
|
||||
map_start = m_spriteram3[attr_start + 3];
|
||||
map_start = m_spriteram[attr_start + 3];
|
||||
|
||||
// aerofgt has this adjustment, but doing it here would break turbo force title screen
|
||||
// ox += (xsize*zoomx+2)/4;
|
||||
@ -519,10 +462,7 @@ void aerofgt_state::aerfboo2_draw_sprites( screen_device &screen, bitmap_ind16 &
|
||||
else
|
||||
sx = ((ox + zoomx * x / 2 + 16) & 0x1ff) - 16;
|
||||
|
||||
if (chip == 0)
|
||||
code = m_spriteram1[map_start % (m_spriteram1.bytes()/2)];
|
||||
else
|
||||
code = m_spriteram2[map_start % (m_spriteram2.bytes()/2)];
|
||||
code = m_sprlookupram[chip][map_start % (m_sprlookupram[chip].bytes()/2)];
|
||||
|
||||
m_gfxdecode->gfx(m_sprite_gfx + chip)->prio_zoom_transpen(bitmap,cliprect,
|
||||
code,
|
||||
@ -547,19 +487,19 @@ void aerofgt_state::pspikesb_draw_sprites( screen_device &screen, bitmap_ind16 &
|
||||
{
|
||||
int i;
|
||||
|
||||
for (i = 4; i < m_spriteram3.bytes() / 2; i += 4)
|
||||
for (i = 4; i < m_spriteram.bytes() / 2; i += 4)
|
||||
{
|
||||
int xpos, ypos, color, flipx, flipy, code;
|
||||
|
||||
if (m_spriteram3[i + 3 - 4] & 0x8000)
|
||||
if (m_spriteram[i + 3 - 4] & 0x8000)
|
||||
break;
|
||||
|
||||
xpos = (m_spriteram3[i + 2] & 0x1ff) - 34;
|
||||
ypos = 256 - (m_spriteram3[i + 3 - 4] & 0x1ff) - 33;
|
||||
code = m_spriteram3[i + 0] & 0x1fff;
|
||||
xpos = (m_spriteram[i + 2] & 0x1ff) - 34;
|
||||
ypos = 256 - (m_spriteram[i + 3 - 4] & 0x1ff) - 33;
|
||||
code = m_spriteram[i + 0] & 0x1fff;
|
||||
flipy = 0;
|
||||
flipx = m_spriteram3[i + 1] & 0x0800;
|
||||
color = m_spriteram3[i + 1] & 0x000f;
|
||||
flipx = m_spriteram[i + 1] & 0x0800;
|
||||
color = m_spriteram[i + 1] & 0x000f;
|
||||
|
||||
m_gfxdecode->gfx(m_sprite_gfx)->transpen(bitmap,cliprect,
|
||||
code,
|
||||
@ -581,38 +521,34 @@ void aerofgt_state::pspikesb_draw_sprites( screen_device &screen, bitmap_ind16 &
|
||||
void aerofgt_state::spikes91_draw_sprites( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect )
|
||||
{
|
||||
int i;
|
||||
uint8_t *lookup;
|
||||
lookup = memregion("user1")->base();
|
||||
m_spritepalettebank = 1;
|
||||
|
||||
for (i = m_spriteram3.bytes() / 2 - 4; i >= 4; i -= 4)
|
||||
for (i = m_spriteram.bytes() / 2 - 4; i >= 4; i -= 4)
|
||||
{
|
||||
int xpos, ypos, color, flipx, flipy, code, realcode;
|
||||
int xpos, ypos, color, flipx, flipy, code;
|
||||
|
||||
code = m_spriteram3[i + 0] & 0x1fff;
|
||||
code = m_spriteram[i + 0] & 0x1fff;
|
||||
|
||||
if (!code)
|
||||
continue;
|
||||
|
||||
xpos = (m_spriteram3[i + 2] & 0x01ff) - 16;
|
||||
ypos = 256 - (m_spriteram3[i + 1] & 0x00ff) - 26;
|
||||
xpos = (m_spriteram[i + 2] & 0x01ff) - 16;
|
||||
ypos = 256 - (m_spriteram[i + 1] & 0x00ff) - 26;
|
||||
flipy = 0;
|
||||
flipx = m_spriteram3[i + 3] & 0x8000;
|
||||
color = ((m_spriteram3[i + 3] & 0x00f0) >> 4);
|
||||
flipx = m_spriteram[i + 3] & 0x8000;
|
||||
color = ((m_spriteram[i + 3] & 0x00f0) >> 4);
|
||||
|
||||
code |= m_spikes91_lookup * 0x2000;
|
||||
|
||||
realcode = (lookup[code] << 8) + lookup[0x10000 + code];
|
||||
|
||||
m_gfxdecode->gfx(m_sprite_gfx)->transpen(bitmap,cliprect,
|
||||
realcode,
|
||||
m_sprlookuprom[code],
|
||||
color,
|
||||
flipx,flipy,
|
||||
xpos,ypos,15);
|
||||
|
||||
/* wrap around y */
|
||||
m_gfxdecode->gfx(m_sprite_gfx)->transpen(bitmap,cliprect,
|
||||
realcode,
|
||||
m_sprlookuprom[code],
|
||||
color,
|
||||
flipx,flipy,
|
||||
xpos,ypos + 512,15);
|
||||
@ -626,23 +562,23 @@ void aerofgt_state::aerfboot_draw_sprites( screen_device &screen, bitmap_ind16 &
|
||||
|
||||
last = ((m_rasterram[0x404 / 2] << 5) - 0x8000) / 2;
|
||||
|
||||
for (attr_start = m_spriteram3.bytes() / 2 - 4; attr_start >= last; attr_start -= 4)
|
||||
for (attr_start = m_spriteram.bytes() / 2 - 4; attr_start >= last; attr_start -= 4)
|
||||
{
|
||||
int code;
|
||||
int ox, oy, sx, sy, zoomx, zoomy, flipx, flipy, color, pri;
|
||||
|
||||
ox = m_spriteram3[attr_start + 1] & 0x01ff;
|
||||
oy = m_spriteram3[attr_start + 0] & 0x01ff;
|
||||
flipx = m_spriteram3[attr_start + 2] & 0x0800;
|
||||
flipy = m_spriteram3[attr_start + 2] & 0x8000;
|
||||
color = m_spriteram3[attr_start + 2] & 0x000f;
|
||||
ox = m_spriteram[attr_start + 1] & 0x01ff;
|
||||
oy = m_spriteram[attr_start + 0] & 0x01ff;
|
||||
flipx = m_spriteram[attr_start + 2] & 0x0800;
|
||||
flipy = m_spriteram[attr_start + 2] & 0x8000;
|
||||
color = m_spriteram[attr_start + 2] & 0x000f;
|
||||
|
||||
zoomx = (m_spriteram3[attr_start + 1] & 0xf000) >> 12;
|
||||
zoomy = (m_spriteram3[attr_start + 0] & 0xf000) >> 12;
|
||||
pri = m_spriteram3[attr_start + 2] & 0x0010;
|
||||
code = m_spriteram3[attr_start + 3] & 0x1fff;
|
||||
zoomx = (m_spriteram[attr_start + 1] & 0xf000) >> 12;
|
||||
zoomy = (m_spriteram[attr_start + 0] & 0xf000) >> 12;
|
||||
pri = m_spriteram[attr_start + 2] & 0x0010;
|
||||
code = m_spriteram[attr_start + 3] & 0x1fff;
|
||||
|
||||
if (!(m_spriteram3[attr_start + 2] & 0x0040))
|
||||
if (!(m_spriteram[attr_start + 2] & 0x0040))
|
||||
code |= 0x2000;
|
||||
|
||||
zoomx = 32 + zoomx;
|
||||
@ -664,23 +600,23 @@ void aerofgt_state::aerfboot_draw_sprites( screen_device &screen, bitmap_ind16 &
|
||||
|
||||
last = ((m_rasterram[0x402 / 2] << 5) - 0x8000) / 2;
|
||||
|
||||
for (attr_start = ((m_spriteram3.bytes() / 2) / 2) - 4; attr_start >= last; attr_start -= 4)
|
||||
for (attr_start = ((m_spriteram.bytes() / 2) / 2) - 4; attr_start >= last; attr_start -= 4)
|
||||
{
|
||||
int code;
|
||||
int ox, oy, sx, sy, zoomx, zoomy, flipx, flipy, color, pri;
|
||||
|
||||
ox = m_spriteram3[attr_start + 1] & 0x01ff;
|
||||
oy = m_spriteram3[attr_start + 0] & 0x01ff;
|
||||
flipx = m_spriteram3[attr_start + 2] & 0x0800;
|
||||
flipy = m_spriteram3[attr_start + 2] & 0x8000;
|
||||
color = m_spriteram3[attr_start + 2] & 0x000f;
|
||||
ox = m_spriteram[attr_start + 1] & 0x01ff;
|
||||
oy = m_spriteram[attr_start + 0] & 0x01ff;
|
||||
flipx = m_spriteram[attr_start + 2] & 0x0800;
|
||||
flipy = m_spriteram[attr_start + 2] & 0x8000;
|
||||
color = m_spriteram[attr_start + 2] & 0x000f;
|
||||
|
||||
zoomx = (m_spriteram3[attr_start + 1] & 0xf000) >> 12;
|
||||
zoomy = (m_spriteram3[attr_start + 0] & 0xf000) >> 12;
|
||||
pri = m_spriteram3[attr_start + 2] & 0x0010;
|
||||
code = m_spriteram3[attr_start + 3] & 0x1fff;
|
||||
zoomx = (m_spriteram[attr_start + 1] & 0xf000) >> 12;
|
||||
zoomy = (m_spriteram[attr_start + 0] & 0xf000) >> 12;
|
||||
pri = m_spriteram[attr_start + 2] & 0x0010;
|
||||
code = m_spriteram[attr_start + 3] & 0x1fff;
|
||||
|
||||
if (!(m_spriteram3[attr_start + 2] & 0x0040))
|
||||
if (!(m_spriteram[attr_start + 2] & 0x0040))
|
||||
code |= 0x2000;
|
||||
|
||||
zoomx = 32 + zoomx;
|
||||
@ -726,13 +662,13 @@ uint32_t aerofgt_state::screen_update_pspikesb(screen_device &screen, bitmap_ind
|
||||
{
|
||||
int i, scrolly;
|
||||
|
||||
m_bg1_tilemap->set_scroll_rows(256);
|
||||
scrolly = m_bg1scrolly;
|
||||
m_tilemap[0]->set_scroll_rows(256);
|
||||
scrolly = m_scrolly[0];
|
||||
for (i = 0; i < 256; i++)
|
||||
m_bg1_tilemap->set_scrollx((i + scrolly) & 0xff, m_rasterram[i] + 22);
|
||||
m_bg1_tilemap->set_scrolly(0, scrolly);
|
||||
m_tilemap[0]->set_scrollx((i + scrolly) & 0xff, m_rasterram[i] + 22);
|
||||
m_tilemap[0]->set_scrolly(0, scrolly);
|
||||
|
||||
m_bg1_tilemap->draw(screen, bitmap, cliprect, 0, 0);
|
||||
m_tilemap[0]->draw(screen, bitmap, cliprect, 0, 0);
|
||||
pspikesb_draw_sprites(screen, bitmap, cliprect);
|
||||
return 0;
|
||||
}
|
||||
@ -745,14 +681,14 @@ uint32_t aerofgt_state::screen_update_spikes91(screen_device &screen, bitmap_ind
|
||||
int count;
|
||||
gfx_element *gfx = m_gfxdecode->gfx(0);
|
||||
|
||||
m_bg1_tilemap->set_scroll_rows(256);
|
||||
scrolly = m_bg1scrolly;
|
||||
m_tilemap[0]->set_scroll_rows(256);
|
||||
scrolly = m_scrolly[0];
|
||||
|
||||
for (i = 0; i < 256; i++)
|
||||
m_bg1_tilemap->set_scrollx((i + scrolly) & 0xff, m_rasterram[i + 0x01f0 / 2] + 0x96 + 0x16);
|
||||
m_bg1_tilemap->set_scrolly(0, scrolly);
|
||||
m_tilemap[0]->set_scrollx((i + scrolly) & 0xff, m_rasterram[i + 0x01f0 / 2] + 0x96 + 0x16);
|
||||
m_tilemap[0]->set_scrolly(0, scrolly);
|
||||
|
||||
m_bg1_tilemap->draw(screen, bitmap, cliprect, 0, 0);
|
||||
m_tilemap[0]->draw(screen, bitmap, cliprect, 0, 0);
|
||||
spikes91_draw_sprites(screen, bitmap, cliprect);
|
||||
|
||||
/* we could use a tilemap, but it's easier to just do it here */
|
||||
@ -783,18 +719,18 @@ uint32_t aerofgt_state::screen_update_aerfboot(screen_device &screen, bitmap_ind
|
||||
{
|
||||
int i, scrolly;
|
||||
|
||||
m_bg1_tilemap->set_scroll_rows(512);
|
||||
scrolly = m_bg1scrolly + 2;
|
||||
m_tilemap[0]->set_scroll_rows(512);
|
||||
scrolly = m_scrolly[0] + 2;
|
||||
for (i = 0; i < 256; i++)
|
||||
m_bg1_tilemap->set_scrollx((i + scrolly) & 0x1ff, m_rasterram[7] + 174);
|
||||
m_bg1_tilemap->set_scrolly(0, scrolly);
|
||||
m_bg2_tilemap->set_scrollx(0, m_bg2scrollx + 172);
|
||||
m_bg2_tilemap->set_scrolly(0, m_bg2scrolly + 2);
|
||||
m_tilemap[0]->set_scrollx((i + scrolly) & 0x1ff, m_rasterram[7] + 174);
|
||||
m_tilemap[0]->set_scrolly(0, scrolly);
|
||||
m_tilemap[1]->set_scrollx(0, m_scrollx[1] + 172);
|
||||
m_tilemap[1]->set_scrolly(0, m_scrolly[1] + 2);
|
||||
|
||||
screen.priority().fill(0, cliprect);
|
||||
|
||||
m_bg1_tilemap->draw(screen, bitmap, cliprect, 0, 0);
|
||||
m_bg2_tilemap->draw(screen, bitmap, cliprect, 0, 1);
|
||||
m_tilemap[0]->draw(screen, bitmap, cliprect, 0, 0);
|
||||
m_tilemap[1]->draw(screen, bitmap, cliprect, 0, 1);
|
||||
|
||||
/* we use the priority buffer so sprites are drawn front to back */
|
||||
aerfboot_draw_sprites(screen, bitmap, cliprect);
|
||||
@ -806,19 +742,19 @@ uint32_t aerofgt_state::screen_update_aerfboo2(screen_device &screen, bitmap_ind
|
||||
{
|
||||
int i, scrolly;
|
||||
|
||||
m_bg1_tilemap->set_scroll_rows(512);
|
||||
scrolly = m_bg1scrolly + 2;
|
||||
m_tilemap[0]->set_scroll_rows(512);
|
||||
scrolly = m_scrolly[0] + 2;
|
||||
for (i = 0; i < 256; i++)
|
||||
// m_bg1_tilemap->set_scrollx((i + scrolly) & 0x1ff, m_rasterram[i] - 11);
|
||||
m_bg1_tilemap->set_scrollx((i + scrolly) & 0x1ff, m_rasterram[7] - 11);
|
||||
m_bg1_tilemap->set_scrolly(0, scrolly);
|
||||
m_bg2_tilemap->set_scrollx(0, m_bg2scrollx - 7);
|
||||
m_bg2_tilemap->set_scrolly(0, m_bg2scrolly + 2);
|
||||
// m_tilemap[0]->set_scrollx((i + scrolly) & 0x1ff, m_rasterram[i] - 11);
|
||||
m_tilemap[0]->set_scrollx((i + scrolly) & 0x1ff, m_rasterram[7] - 11);
|
||||
m_tilemap[0]->set_scrolly(0, scrolly);
|
||||
m_tilemap[1]->set_scrollx(0, m_scrollx[1] - 7);
|
||||
m_tilemap[1]->set_scrolly(0, m_scrolly[1] + 2);
|
||||
|
||||
screen.priority().fill(0, cliprect);
|
||||
|
||||
m_bg1_tilemap->draw(screen, bitmap, cliprect, 0, 0);
|
||||
m_bg2_tilemap->draw(screen, bitmap, cliprect, 0, 1);
|
||||
m_tilemap[0]->draw(screen, bitmap, cliprect, 0, 0);
|
||||
m_tilemap[1]->draw(screen, bitmap, cliprect, 0, 1);
|
||||
|
||||
/* we use the priority buffer so sprites are drawn front to back */
|
||||
aerfboo2_draw_sprites(screen, bitmap, cliprect, 1, -1); //ship
|
||||
@ -833,25 +769,25 @@ uint32_t aerofgt_state::screen_update_wbbc97(screen_device &screen, bitmap_rgb32
|
||||
{
|
||||
int i, scrolly;
|
||||
|
||||
m_bg1_tilemap->set_scroll_rows(256);
|
||||
scrolly = m_bg1scrolly;
|
||||
m_tilemap[0]->set_scroll_rows(256);
|
||||
scrolly = m_scrolly[0];
|
||||
for (i = 0; i < 256; i++)
|
||||
m_bg1_tilemap->set_scrollx((i + scrolly) & 0xff, m_rasterram[i]);
|
||||
m_bg1_tilemap->set_scrolly(0, scrolly);
|
||||
m_tilemap[0]->set_scrollx((i + scrolly) & 0xff, m_rasterram[i]);
|
||||
m_tilemap[0]->set_scrolly(0, scrolly);
|
||||
|
||||
screen.priority().fill(0, cliprect);
|
||||
|
||||
if (m_wbbc97_bitmap_enable)
|
||||
{
|
||||
wbbc97_draw_bitmap(bitmap);
|
||||
m_bg1_tilemap->draw(screen, bitmap, cliprect, 0, 0);
|
||||
m_tilemap[0]->draw(screen, bitmap, cliprect, 0, 0);
|
||||
}
|
||||
else
|
||||
{
|
||||
m_bg1_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
|
||||
m_tilemap[0]->draw(screen, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
|
||||
}
|
||||
|
||||
m_spr_old->turbofrc_draw_sprites(m_spriteram3,m_spriteram3.bytes(),m_spritepalettebank, bitmap, cliprect, screen.priority(), 1, m_flip_screen);
|
||||
m_spr_old->turbofrc_draw_sprites(m_spriteram3,m_spriteram3.bytes(),m_spritepalettebank, bitmap, cliprect, screen.priority(), 0, m_flip_screen);
|
||||
m_spr_old[0]->turbofrc_draw_sprites(m_spriteram,m_spriteram.bytes(),m_spritepalettebank, bitmap, cliprect, screen.priority(), 1, m_flip_screen);
|
||||
m_spr_old[0]->turbofrc_draw_sprites(m_spriteram,m_spriteram.bytes(),m_spritepalettebank, bitmap, cliprect, screen.priority(), 0, m_flip_screen);
|
||||
return 0;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user