mirror of
https://github.com/holub/mame
synced 2025-04-25 01:40:16 +03:00
sf.cpp : Cleanups (#3630)
* sf.cpp : Reduce duplicates, Reduce RAM usage of tilemap, Reduce runtime tag lookups * sf.cpp : Revert tilemap things - each tile of tilemaps are never updated, Fix build
This commit is contained in:
parent
8e1d728868
commit
c0f052599e
@ -140,25 +140,17 @@ WRITE8_MEMBER(sf_state::soundcmd_w)
|
||||
|
||||
WRITE8_MEMBER(sf_state::sound2_bank_w)
|
||||
{
|
||||
membank("bank1")->set_entry(data);
|
||||
m_audiobank->set_entry(data);
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(sf_state::msm1_5205_w)
|
||||
template<int Chip>
|
||||
WRITE8_MEMBER(sf_state::msm_w)
|
||||
{
|
||||
m_msm1->reset_w(BIT(data, 7));
|
||||
m_msm[Chip]->reset_w(BIT(data, 7));
|
||||
/* ?? bit 6?? */
|
||||
m_msm1->data_w(data);
|
||||
m_msm1->vclk_w(1);
|
||||
m_msm1->vclk_w(0);
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(sf_state::msm2_5205_w)
|
||||
{
|
||||
m_msm2->reset_w(BIT(data, 7));
|
||||
/* ?? bit 6?? */
|
||||
m_msm2->data_w(data);
|
||||
m_msm2->vclk_w(1);
|
||||
m_msm2->vclk_w(0);
|
||||
m_msm[Chip]->data_w(data);
|
||||
m_msm[Chip]->vclk_w(1);
|
||||
m_msm[Chip]->vclk_w(0);
|
||||
}
|
||||
|
||||
void sf_state::sfan_map(address_map &map)
|
||||
@ -245,15 +237,15 @@ void sf_state::sound_map(address_map &map)
|
||||
void sf_state::sound2_map(address_map &map)
|
||||
{
|
||||
map(0x0000, 0x7fff).rom();
|
||||
map(0x8000, 0xffff).bankr("bank1");
|
||||
map(0x8000, 0xffff).bankr("audiobank");
|
||||
map(0x0000, 0xffff).nopw(); /* avoid cluttering up error.log */
|
||||
}
|
||||
|
||||
void sf_state::sound2_io_map(address_map &map)
|
||||
{
|
||||
map.global_mask(0xff);
|
||||
map(0x00, 0x00).w(FUNC(sf_state::msm1_5205_w));
|
||||
map(0x01, 0x01).w(FUNC(sf_state::msm2_5205_w));
|
||||
map(0x00, 0x00).w(FUNC(sf_state::msm_w<0>));
|
||||
map(0x01, 0x01).w(FUNC(sf_state::msm_w<1>));
|
||||
map(0x01, 0x01).r(m_soundlatch, FUNC(generic_latch_8_device::read));
|
||||
map(0x02, 0x02).w(FUNC(sf_state::sound2_bank_w));
|
||||
}
|
||||
@ -497,8 +489,8 @@ static const gfx_layout char_layout =
|
||||
RGN_FRAC(1,1),
|
||||
2,
|
||||
{ 4, 0 },
|
||||
{ 0, 1, 2, 3, 8+0, 8+1, 8+2, 8+3 },
|
||||
{ 0*16, 1*16, 2*16, 3*16, 4*16, 5*16, 6*16, 7*16 },
|
||||
{ STEP4(0,1), STEP4(4*2,1) },
|
||||
{ STEP8(0,1*16) },
|
||||
16*8
|
||||
};
|
||||
|
||||
@ -508,10 +500,8 @@ static const gfx_layout sprite_layout =
|
||||
RGN_FRAC(1,2),
|
||||
4,
|
||||
{ 4, 0, RGN_FRAC(1,2)+4, RGN_FRAC(1,2) },
|
||||
{ 0, 1, 2, 3, 8+0, 8+1, 8+2, 8+3,
|
||||
16*16+0, 16*16+1, 16*16+2, 16*16+3, 16*16+8+0, 16*16+8+1, 16*16+8+2, 16*16+8+3 },
|
||||
{ 0*16, 1*16, 2*16, 3*16, 4*16, 5*16, 6*16, 7*16,
|
||||
8*16, 9*16, 10*16, 11*16, 12*16, 13*16, 14*16, 15*16 },
|
||||
{ STEP4(0,1), STEP4(4*2,1), STEP4(4*2*2*16,1), STEP4(4*2*2*16+8,1) },
|
||||
{ STEP16(0,1*16) },
|
||||
64*8
|
||||
};
|
||||
|
||||
@ -530,7 +520,7 @@ void sf_state::machine_start()
|
||||
save_item(NAME(m_bgscroll));
|
||||
save_item(NAME(m_fgscroll));
|
||||
|
||||
membank("bank1")->configure_entries(0, 256, memregion("audio2")->base() + 0x8000, 0x8000);
|
||||
m_audiobank->configure_entries(0, 256, memregion("audio2")->base() + 0x8000, 0x8000);
|
||||
}
|
||||
|
||||
void sf_state::machine_reset()
|
||||
@ -679,7 +669,7 @@ ROM_START( sf )
|
||||
ROM_REGION( 0x004000, "gfx4", 0 )
|
||||
ROM_LOAD( "sf-27.4d", 0x000000, 0x004000, CRC(2b09b36d) SHA1(9fe1dd3a9396fbb06f30247cfe526653553beca1) ) /* Characters planes 1-2 */
|
||||
|
||||
ROM_REGION( 0x40000, "gfx5", 0 ) /* background tilemaps */
|
||||
ROM_REGION( 0x40000, "tilerom", 0 ) /* background tilemaps */
|
||||
ROM_LOAD( "sf-37.4h", 0x000000, 0x010000, CRC(23d09d3d) SHA1(a0c71abc49c5fe59487a63b502e3d03021bfef13) )
|
||||
ROM_LOAD( "sf-36.3h", 0x010000, 0x010000, CRC(ea16df6c) SHA1(68709a314b775c500817fc17d40a80204b2ae06c) )
|
||||
ROM_LOAD( "sf-32.3g", 0x020000, 0x010000, CRC(72df2bd9) SHA1(9a0da618139673738b6b3302207255e44c5491a2) )
|
||||
@ -749,7 +739,7 @@ ROM_START( sfua )
|
||||
ROM_REGION( 0x004000, "gfx4", 0 )
|
||||
ROM_LOAD( "sf-27.4d", 0x000000, 0x004000, CRC(2b09b36d) SHA1(9fe1dd3a9396fbb06f30247cfe526653553beca1) ) /* Characters planes 1-2 */
|
||||
|
||||
ROM_REGION( 0x40000, "gfx5", 0 ) /* background tilemaps */
|
||||
ROM_REGION( 0x40000, "tilerom", 0 ) /* background tilemaps */
|
||||
ROM_LOAD( "sf-37.4h", 0x000000, 0x010000, CRC(23d09d3d) SHA1(a0c71abc49c5fe59487a63b502e3d03021bfef13) )
|
||||
ROM_LOAD( "sf-36.3h", 0x010000, 0x010000, CRC(ea16df6c) SHA1(68709a314b775c500817fc17d40a80204b2ae06c) )
|
||||
ROM_LOAD( "sf-32.3g", 0x020000, 0x010000, CRC(72df2bd9) SHA1(9a0da618139673738b6b3302207255e44c5491a2) )
|
||||
@ -819,7 +809,7 @@ ROM_START( sfj )
|
||||
ROM_REGION( 0x004000, "gfx4", 0 )
|
||||
ROM_LOAD( "sf-27.4d", 0x000000, 0x004000, CRC(2b09b36d) SHA1(9fe1dd3a9396fbb06f30247cfe526653553beca1) ) /* Characters planes 1-2 */
|
||||
|
||||
ROM_REGION( 0x40000, "gfx5", 0 ) /* background tilemaps */
|
||||
ROM_REGION( 0x40000, "tilerom", 0 ) /* background tilemaps */
|
||||
ROM_LOAD( "sf-37.4h", 0x000000, 0x010000, CRC(23d09d3d) SHA1(a0c71abc49c5fe59487a63b502e3d03021bfef13) )
|
||||
ROM_LOAD( "sf-36.3h", 0x010000, 0x010000, CRC(ea16df6c) SHA1(68709a314b775c500817fc17d40a80204b2ae06c) )
|
||||
ROM_LOAD( "sf-32.3g", 0x020000, 0x010000, CRC(72df2bd9) SHA1(9a0da618139673738b6b3302207255e44c5491a2) )
|
||||
@ -886,7 +876,7 @@ ROM_START( sfan )
|
||||
ROM_REGION( 0x004000, "gfx4", 0 )
|
||||
ROM_LOAD( "sf-27.4d", 0x000000, 0x004000, CRC(2b09b36d) SHA1(9fe1dd3a9396fbb06f30247cfe526653553beca1) ) /* Characters planes 1-2 */
|
||||
|
||||
ROM_REGION( 0x40000, "gfx5", 0 ) /* background tilemaps */
|
||||
ROM_REGION( 0x40000, "tilerom", 0 ) /* background tilemaps */
|
||||
ROM_LOAD( "sf-37.4h", 0x000000, 0x010000, CRC(23d09d3d) SHA1(a0c71abc49c5fe59487a63b502e3d03021bfef13) )
|
||||
ROM_LOAD( "sf-36.3h", 0x010000, 0x010000, CRC(ea16df6c) SHA1(68709a314b775c500817fc17d40a80204b2ae06c) )
|
||||
ROM_LOAD( "sf-32.3g", 0x020000, 0x010000, CRC(72df2bd9) SHA1(9a0da618139673738b6b3302207255e44c5491a2) )
|
||||
@ -954,7 +944,7 @@ ROM_START( sfjan )
|
||||
ROM_LOAD( "sf_27.4d.27256", 0x000000, 0x004000, CRC(59416e03) SHA1(028e74e0b23c5063883d19f94da35719be4feada) ) // First half FF, second half matches known
|
||||
ROM_CONTINUE( 0, 0x004000 )
|
||||
|
||||
ROM_REGION( 0x40000, "gfx5", 0 ) /* background tilemaps */
|
||||
ROM_REGION( 0x40000, "tilerom", 0 ) /* background tilemaps */
|
||||
ROM_LOAD( "sf-37.4h", 0x000000, 0x010000, CRC(23d09d3d) SHA1(a0c71abc49c5fe59487a63b502e3d03021bfef13) ) // sf_37.4h.27c512
|
||||
ROM_LOAD( "sf-36.3h", 0x010000, 0x010000, CRC(ea16df6c) SHA1(68709a314b775c500817fc17d40a80204b2ae06c) ) // sf_36.3h.27c512
|
||||
ROM_LOAD( "sf-32.3g", 0x020000, 0x010000, CRC(72df2bd9) SHA1(9a0da618139673738b6b3302207255e44c5491a2) ) // sf_32.3g.27c512
|
||||
@ -1023,7 +1013,7 @@ ROM_START( sfw )
|
||||
ROM_REGION( 0x004000, "gfx4", 0 )
|
||||
ROM_LOAD( "sf-27.4d", 0x000000, 0x004000, CRC(2b09b36d) SHA1(9fe1dd3a9396fbb06f30247cfe526653553beca1) ) /* Characters planes 1-2 */
|
||||
|
||||
ROM_REGION( 0x40000, "gfx5", 0 ) /* background tilemaps */
|
||||
ROM_REGION( 0x40000, "tilerom", 0 ) /* background tilemaps */
|
||||
ROM_LOAD( "sf-37.4h", 0x000000, 0x010000, CRC(23d09d3d) SHA1(a0c71abc49c5fe59487a63b502e3d03021bfef13) )
|
||||
ROM_LOAD( "sf-36.3h", 0x010000, 0x010000, CRC(ea16df6c) SHA1(68709a314b775c500817fc17d40a80204b2ae06c) )
|
||||
ROM_LOAD( "sf-32.3g", 0x020000, 0x010000, CRC(72df2bd9) SHA1(9a0da618139673738b6b3302207255e44c5491a2) )
|
||||
@ -1087,7 +1077,7 @@ ROM_START( sfp )
|
||||
ROM_REGION( 0x004000, "gfx4", 0 )
|
||||
ROM_LOAD( "vram.4d", 0x000000, 0x004000, CRC(bfadfb32) SHA1(8443ad9f02da5fb032017fc0c657b1bdc15e4f27) ) /* Characters planes 1-2 */
|
||||
|
||||
ROM_REGION( 0x40000, "gfx5", 0 ) /* background tilemaps */
|
||||
ROM_REGION( 0x40000, "tilerom", 0 ) /* background tilemaps */
|
||||
ROM_LOAD( "bks1j10.5h", 0x000000, 0x010000, CRC(4934aacd) SHA1(15274ae8b26799e15c7a66ff89ffd386de1659d3) )
|
||||
ROM_LOAD( "bks1j18.3h", 0x010000, 0x010000, CRC(551ffc88) SHA1(4f9213f4e80033f910dd8aae44b2c6d9ba760d61) )
|
||||
ROM_LOAD( "ms1j10.3g", 0x020000, 0x010000, CRC(f92958b8) SHA1(da8fa64ea9ad27c737225681c49f7c57cc7afeed) )
|
||||
|
@ -13,24 +13,24 @@
|
||||
class sf_state : public driver_device
|
||||
{
|
||||
public:
|
||||
sf_state(const machine_config &mconfig, device_type type, const char *tag)
|
||||
: driver_device(mconfig, type, tag),
|
||||
sf_state(const machine_config &mconfig, device_type type, const char *tag) :
|
||||
driver_device(mconfig, type, tag),
|
||||
m_maincpu(*this, "maincpu"),
|
||||
m_audiocpu(*this, "audiocpu"),
|
||||
m_msm1(*this, "msm1"),
|
||||
m_msm2(*this, "msm2"),
|
||||
m_msm(*this, "msm%u", 1U),
|
||||
m_gfxdecode(*this, "gfxdecode"),
|
||||
m_palette(*this, "palette"),
|
||||
m_soundlatch(*this, "soundlatch"),
|
||||
m_videoram(*this, "videoram"),
|
||||
m_objectram(*this, "objectram")
|
||||
m_objectram(*this, "objectram"),
|
||||
m_tilerom(*this, "tilerom"),
|
||||
m_audiobank(*this, "audiobank")
|
||||
{ }
|
||||
|
||||
/* devices */
|
||||
required_device<cpu_device> m_maincpu;
|
||||
required_device<cpu_device> m_audiocpu;
|
||||
required_device<msm5205_device> m_msm1;
|
||||
required_device<msm5205_device> m_msm2;
|
||||
required_device_array<msm5205_device, 2> m_msm;
|
||||
required_device<gfxdecode_device> m_gfxdecode;
|
||||
required_device<palette_device> m_palette;
|
||||
required_device<generic_latch_8_device> m_soundlatch;
|
||||
@ -38,6 +38,9 @@ public:
|
||||
/* memory pointers */
|
||||
required_shared_ptr<uint16_t> m_videoram;
|
||||
required_shared_ptr<uint16_t> m_objectram;
|
||||
required_region_ptr<uint8_t> m_tilerom;
|
||||
|
||||
required_memory_bank m_audiobank;
|
||||
|
||||
/* video-related */
|
||||
tilemap_t *m_bg_tilemap;
|
||||
@ -55,8 +58,7 @@ public:
|
||||
DECLARE_WRITE16_MEMBER(bg_scroll_w);
|
||||
DECLARE_WRITE16_MEMBER(fg_scroll_w);
|
||||
DECLARE_WRITE16_MEMBER(gfxctrl_w);
|
||||
DECLARE_WRITE8_MEMBER(msm1_5205_w);
|
||||
DECLARE_WRITE8_MEMBER(msm2_5205_w);
|
||||
template<int Chip> DECLARE_WRITE8_MEMBER(msm_w);
|
||||
TILE_GET_INFO_MEMBER(get_bg_tile_info);
|
||||
TILE_GET_INFO_MEMBER(get_fg_tile_info);
|
||||
TILE_GET_INFO_MEMBER(get_tx_tile_info);
|
||||
|
@ -11,7 +11,7 @@
|
||||
|
||||
TILE_GET_INFO_MEMBER(sf_state::get_bg_tile_info)
|
||||
{
|
||||
uint8_t *base = memregion("gfx5")->base() + 2 * tile_index;
|
||||
uint8_t *base = &m_tilerom[2 * tile_index];
|
||||
int attr = base[0x10000];
|
||||
int color = base[0];
|
||||
int code = (base[0x10000 + 1] << 8) | base[1];
|
||||
@ -23,7 +23,7 @@ TILE_GET_INFO_MEMBER(sf_state::get_bg_tile_info)
|
||||
|
||||
TILE_GET_INFO_MEMBER(sf_state::get_fg_tile_info)
|
||||
{
|
||||
uint8_t *base = memregion("gfx5")->base() + 0x20000 + 2 * tile_index;
|
||||
uint8_t *base = &m_tilerom[0x20000 + 2 * tile_index];
|
||||
int attr = base[0x10000];
|
||||
int color = base[0];
|
||||
int code = (base[0x10000 + 1] << 8) | base[1];
|
||||
|
Loading…
Reference in New Issue
Block a user