warriorb : Soundchip Type identified (#3230)

ninjaw, warriorb : Cleanup duplicates
Demote Darius 2, Ninja Warriors with MACHINE_IMPERFECT_SOUND, because SSG Output isn't accurate
This commit is contained in:
cam900 2018-02-19 04:48:48 +09:00 committed by R. Belmont
parent 1ae84219fc
commit 543828eac2
6 changed files with 69 additions and 78 deletions

View File

@ -363,7 +363,7 @@ WRITE8_MEMBER(ninjaw_state::coin_control_w)
WRITE8_MEMBER(ninjaw_state::sound_bankswitch_w) WRITE8_MEMBER(ninjaw_state::sound_bankswitch_w)
{ {
membank("z80bank")->set_entry(data & 7); m_z80bank->set_entry(data & 7);
} }
WRITE16_MEMBER(ninjaw_state::sound_w) WRITE16_MEMBER(ninjaw_state::sound_w)
@ -397,10 +397,10 @@ WRITE8_MEMBER(ninjaw_state::pancontrol_w)
switch (offset) switch (offset)
{ {
case 0: flt = m_2610_1l; break; case 0: flt = m_2610_l[0]; break;
case 1: flt = m_2610_1r; break; case 1: flt = m_2610_r[0]; break;
case 2: flt = m_2610_2l; break; case 2: flt = m_2610_l[1]; break;
case 3: flt = m_2610_2r; break; case 3: flt = m_2610_r[1]; break;
} }
m_pandata[offset] = (float)data * (100.f / 255.0f); m_pandata[offset] = (float)data * (100.f / 255.0f);
@ -411,9 +411,9 @@ WRITE8_MEMBER(ninjaw_state::pancontrol_w)
WRITE16_MEMBER(ninjaw_state::tc0100scn_triple_screen_w) WRITE16_MEMBER(ninjaw_state::tc0100scn_triple_screen_w)
{ {
m_tc0100scn_1->word_w(space, offset, data, mem_mask); m_tc0100scn[0]->word_w(space, offset, data, mem_mask);
m_tc0100scn_2->word_w(space, offset, data, mem_mask); m_tc0100scn[1]->word_w(space, offset, data, mem_mask);
m_tc0100scn_3->word_w(space, offset, data, mem_mask); m_tc0100scn[2]->word_w(space, offset, data, mem_mask);
} }
/*********************************************************** /***********************************************************
@ -712,7 +712,7 @@ void ninjaw_state::postload()
void ninjaw_state::machine_start() void ninjaw_state::machine_start()
{ {
membank("z80bank")->configure_entries(0, 8, memregion("audiocpu")->base(), 0x4000); m_z80bank->configure_entries(0, 8, memregion("audiocpu")->base(), 0x4000);
save_item(NAME(m_cpua_ctrl)); save_item(NAME(m_cpua_ctrl));
save_item(NAME(m_pandata)); save_item(NAME(m_pandata));
@ -1245,8 +1245,8 @@ ROM_END
/* Working Games */ /* Working Games */
// YEAR, NAME, PARENT, MACHINE, INPUT, STATE INIT,MONITOR,COMPANY, FULLNAME,FLAGS // YEAR, NAME, PARENT, MACHINE, INPUT, STATE INIT,MONITOR,COMPANY, FULLNAME,FLAGS
GAME( 1987, ninjaw, 0, ninjaw, ninjaw, ninjaw_state, 0, ROT0, "Taito Corporation Japan", "The Ninja Warriors (World, later version)", MACHINE_SUPPORTS_SAVE ) GAME( 1987, ninjaw, 0, ninjaw, ninjaw, ninjaw_state, 0, ROT0, "Taito Corporation Japan", "The Ninja Warriors (World, later version)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND )
GAME( 1987, ninjaw1, ninjaw, ninjaw, ninjaw, ninjaw_state, 0, ROT0, "Taito Corporation Japan", "The Ninja Warriors (World, earlier version)", MACHINE_SUPPORTS_SAVE ) GAME( 1987, ninjaw1, ninjaw, ninjaw, ninjaw, ninjaw_state, 0, ROT0, "Taito Corporation Japan", "The Ninja Warriors (World, earlier version)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND )
GAME( 1987, ninjawj, ninjaw, ninjaw, ninjawj, ninjaw_state, 0, ROT0, "Taito Corporation", "The Ninja Warriors (Japan)", MACHINE_SUPPORTS_SAVE ) GAME( 1987, ninjawj, ninjaw, ninjaw, ninjawj, ninjaw_state, 0, ROT0, "Taito Corporation", "The Ninja Warriors (Japan)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND )
GAME( 1987, ninjawu, ninjaw, ninjaw, ninjawj, ninjaw_state, 0, ROT0, "Taito Corporation America (licensed to Romstar)", "The Ninja Warriors (US, Romstar license)", MACHINE_SUPPORTS_SAVE ) /* Uses same coinage as World, see notes */ GAME( 1987, ninjawu, ninjaw, ninjaw, ninjawj, ninjaw_state, 0, ROT0, "Taito Corporation America (licensed to Romstar)", "The Ninja Warriors (US, Romstar license)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND ) /* Uses same coinage as World, see notes */
GAME( 1989, darius2, 0, darius2, darius2, ninjaw_state, 0, ROT0, "Taito Corporation", "Darius II (triple screen) (Japan)", MACHINE_SUPPORTS_SAVE ) GAME( 1989, darius2, 0, darius2, darius2, ninjaw_state, 0, ROT0, "Taito Corporation", "Darius II (triple screen) (Japan)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND )

View File

@ -174,7 +174,7 @@ WRITE8_MEMBER(warriorb_state::coin_control_w)
WRITE8_MEMBER(warriorb_state::sound_bankswitch_w) WRITE8_MEMBER(warriorb_state::sound_bankswitch_w)
{ {
membank("z80bank")->set_entry(data & 7); m_z80bank->set_entry(data & 7);
} }
WRITE16_MEMBER(warriorb_state::sound_w) WRITE16_MEMBER(warriorb_state::sound_w)
@ -194,17 +194,17 @@ READ16_MEMBER(warriorb_state::sound_r)
} }
WRITE8_MEMBER(warriorb_state::pancontrol) WRITE8_MEMBER(warriorb_state::pancontrol_w)
{ {
filter_volume_device *flt = nullptr; filter_volume_device *flt = nullptr;
offset &= 3; offset &= 3;
switch (offset) switch (offset)
{ {
case 0: flt = m_2610_1l; break; case 0: flt = m_2610_l[0]; break;
case 1: flt = m_2610_1r; break; case 1: flt = m_2610_r[0]; break;
case 2: flt = m_2610_2l; break; case 2: flt = m_2610_l[1]; break;
case 3: flt = m_2610_2r; break; case 3: flt = m_2610_r[1]; break;
} }
m_pandata[offset] = (data << 1) + data; /* original volume*3 */ m_pandata[offset] = (data << 1) + data; /* original volume*3 */
@ -215,8 +215,8 @@ WRITE8_MEMBER(warriorb_state::pancontrol)
WRITE16_MEMBER(warriorb_state::tc0100scn_dual_screen_w) WRITE16_MEMBER(warriorb_state::tc0100scn_dual_screen_w)
{ {
m_tc0100scn_1->word_w(space, offset, data, mem_mask); m_tc0100scn[0]->word_w(space, offset, data, mem_mask);
m_tc0100scn_2->word_w(space, offset, data, mem_mask); m_tc0100scn[1]->word_w(space, offset, data, mem_mask);
} }
/*********************************************************** /***********************************************************
@ -263,7 +263,7 @@ ADDRESS_MAP_START(warriorb_state::z80_sound_map)
AM_RANGE(0xe000, 0xe003) AM_DEVREADWRITE("ymsnd", ym2610_device, read, write) AM_RANGE(0xe000, 0xe003) AM_DEVREADWRITE("ymsnd", ym2610_device, read, write)
AM_RANGE(0xe200, 0xe200) AM_READNOP AM_DEVWRITE("tc0140syt", tc0140syt_device, slave_port_w) AM_RANGE(0xe200, 0xe200) AM_READNOP AM_DEVWRITE("tc0140syt", tc0140syt_device, slave_port_w)
AM_RANGE(0xe201, 0xe201) AM_DEVREADWRITE("tc0140syt", tc0140syt_device, slave_comm_r, slave_comm_w) AM_RANGE(0xe201, 0xe201) AM_DEVREADWRITE("tc0140syt", tc0140syt_device, slave_comm_r, slave_comm_w)
AM_RANGE(0xe400, 0xe403) AM_WRITE(pancontrol) /* pan */ AM_RANGE(0xe400, 0xe403) AM_WRITE(pancontrol_w) /* pan */
AM_RANGE(0xea00, 0xea00) AM_READNOP AM_RANGE(0xea00, 0xea00) AM_READNOP
AM_RANGE(0xee00, 0xee00) AM_WRITENOP /* ? */ AM_RANGE(0xee00, 0xee00) AM_WRITENOP /* ? */
AM_RANGE(0xf000, 0xf000) AM_WRITENOP /* ? */ AM_RANGE(0xf000, 0xf000) AM_WRITENOP /* ? */
@ -421,7 +421,7 @@ GFXDECODE_END
void warriorb_state::machine_start() void warriorb_state::machine_start()
{ {
membank("z80bank")->configure_entries(0, 8, memregion("audiocpu")->base(), 0x4000); m_z80bank->configure_entries(0, 8, memregion("audiocpu")->base(), 0x4000);
save_item(NAME(m_pandata)); save_item(NAME(m_pandata));
} }
@ -587,7 +587,7 @@ MACHINE_CONFIG_START(warriorb_state::warriorb)
/* sound hardware */ /* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
MCFG_SOUND_ADD("ymsnd", YM2610, 16000000/2) MCFG_SOUND_ADD("ymsnd", YM2610B, 16000000/2)
MCFG_YM2610_IRQ_HANDLER(INPUTLINE("audiocpu", 0)) MCFG_YM2610_IRQ_HANDLER(INPUTLINE("audiocpu", 0))
MCFG_SOUND_ROUTE(0, "lspeaker", 0.25) MCFG_SOUND_ROUTE(0, "lspeaker", 0.25)
MCFG_SOUND_ROUTE(0, "rspeaker", 0.25) MCFG_SOUND_ROUTE(0, "rspeaker", 0.25)
@ -791,7 +791,7 @@ ROM_END
/* Working Games */ /* Working Games */
// YEAR, NAME, PARENT, MACHINE, INPUT, STATE, INIT,MONITOR,COMPANY,FULLNAME, FLAGS // YEAR, NAME, PARENT, MACHINE, INPUT, STATE, INIT,MONITOR,COMPANY,FULLNAME, FLAGS
GAME( 1989, sagaia, darius2, darius2d, sagaia, warriorb_state, 0, ROT0, "Taito Corporation Japan", "Sagaia (dual screen) (World)", MACHINE_SUPPORTS_SAVE ) GAME( 1989, sagaia, darius2, darius2d, sagaia, warriorb_state, 0, ROT0, "Taito Corporation Japan", "Sagaia (dual screen) (World)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND )
GAME( 1989, darius2d, darius2, darius2d, darius2d, warriorb_state, 0, ROT0, "Taito Corporation", "Darius II (dual screen) (Japan, Rev 2)", MACHINE_SUPPORTS_SAVE ) GAME( 1989, darius2d, darius2, darius2d, darius2d, warriorb_state, 0, ROT0, "Taito Corporation", "Darius II (dual screen) (Japan, Rev 2)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND )
GAME( 1989, darius2do, darius2, darius2d, darius2d, warriorb_state, 0, ROT0, "Taito Corporation", "Darius II (dual screen) (Japan, Rev 1)", MACHINE_SUPPORTS_SAVE ) GAME( 1989, darius2do, darius2, darius2d, darius2d, warriorb_state, 0, ROT0, "Taito Corporation", "Darius II (dual screen) (Japan, Rev 1)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND )
GAME( 1991, warriorb, 0, warriorb, warriorb, warriorb_state, 0, ROT0, "Taito Corporation", "Warrior Blade - Rastan Saga Episode III (Japan)", MACHINE_SUPPORTS_SAVE ) GAME( 1991, warriorb, 0, warriorb, warriorb, warriorb_state, 0, ROT0, "Taito Corporation", "Warrior Blade - Rastan Saga Episode III (Japan)", MACHINE_SUPPORTS_SAVE )

View File

@ -21,40 +21,32 @@ public:
m_maincpu(*this, "maincpu"), m_maincpu(*this, "maincpu"),
m_subcpu(*this, "sub"), m_subcpu(*this, "sub"),
m_tc0140syt(*this, "tc0140syt"), m_tc0140syt(*this, "tc0140syt"),
m_tc0100scn_1(*this, "tc0100scn_1"), m_tc0100scn(*this, "tc0100scn_%u", 1),
m_tc0100scn_2(*this, "tc0100scn_2"), m_tc0110pcr(*this, "tc0110pcr_%u", 1),
m_tc0100scn_3(*this, "tc0100scn_3"), m_2610_l(*this, "2610.%u.l", 1),
m_tc0110pcr_1(*this, "tc0110pcr_1"), m_2610_r(*this, "2610.%u.r", 1),
m_tc0110pcr_2(*this, "tc0110pcr_2"),
m_tc0110pcr_3(*this, "tc0110pcr_3"),
m_2610_1l(*this, "2610.1.l"),
m_2610_1r(*this, "2610.1.r"),
m_2610_2l(*this, "2610.2.l"),
m_2610_2r(*this, "2610.2.r"),
m_gfxdecode(*this, "gfxdecode"), m_gfxdecode(*this, "gfxdecode"),
m_palette(*this, "palette"), m_palette(*this, "palette"),
m_spriteram(*this, "spriteram") { } m_spriteram(*this, "spriteram"),
m_z80bank(*this, "z80bank") { }
/* devices */ /* devices */
required_device<cpu_device> m_maincpu; required_device<cpu_device> m_maincpu;
required_device<cpu_device> m_subcpu; required_device<cpu_device> m_subcpu;
required_device<tc0140syt_device> m_tc0140syt; required_device<tc0140syt_device> m_tc0140syt;
required_device<tc0100scn_device> m_tc0100scn_1; required_device_array<tc0100scn_device, 3> m_tc0100scn;
required_device<tc0100scn_device> m_tc0100scn_2; required_device_array<tc0110pcr_device, 3> m_tc0110pcr;
required_device<tc0100scn_device> m_tc0100scn_3; required_device_array<filter_volume_device, 2> m_2610_l;
required_device<tc0110pcr_device> m_tc0110pcr_1; required_device_array<filter_volume_device, 2> m_2610_r;
required_device<tc0110pcr_device> m_tc0110pcr_2;
required_device<tc0110pcr_device> m_tc0110pcr_3;
required_device<filter_volume_device> m_2610_1l;
required_device<filter_volume_device> m_2610_1r;
required_device<filter_volume_device> m_2610_2l;
required_device<filter_volume_device> m_2610_2r;
required_device<gfxdecode_device> m_gfxdecode; required_device<gfxdecode_device> m_gfxdecode;
required_device<palette_device> m_palette; required_device<palette_device> m_palette;
/* memory pointers */ /* memory pointers */
required_shared_ptr<uint16_t> m_spriteram; required_shared_ptr<uint16_t> m_spriteram;
/* memory regions */
required_memory_bank m_z80bank;
/* misc */ /* misc */
uint16_t m_cpua_ctrl; uint16_t m_cpua_ctrl;
int m_pandata[4]; int m_pandata[4];
@ -76,7 +68,7 @@ public:
void postload(); void postload();
void draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect, int primask, int x_offs, int y_offs ); void draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect, int primask, int x_offs, int y_offs );
void parse_control( ); void parse_control( );
uint32_t update_screen(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int xoffs, tc0100scn_device *tc0100scn); uint32_t update_screen(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int xoffs, int chip);
void darius2(machine_config &config); void darius2(machine_config &config);
void ninjaw(machine_config &config); void ninjaw(machine_config &config);
void darius2_master_map(address_map &map); void darius2_master_map(address_map &map);

View File

@ -20,39 +20,35 @@ public:
: driver_device(mconfig, type, tag), : driver_device(mconfig, type, tag),
m_maincpu(*this, "maincpu"), m_maincpu(*this, "maincpu"),
m_tc0140syt(*this, "tc0140syt"), m_tc0140syt(*this, "tc0140syt"),
m_tc0100scn_1(*this, "tc0100scn_1"), m_tc0100scn(*this, "tc0100scn_%u", 1),
m_tc0100scn_2(*this, "tc0100scn_2"), m_tc0110pcr(*this, "tc0110pcr_%u", 1),
m_tc0110pcr_1(*this, "tc0110pcr_1"),
m_tc0110pcr_2(*this, "tc0110pcr_2"),
m_tc0220ioc(*this, "tc0220ioc"), m_tc0220ioc(*this, "tc0220ioc"),
m_tc0510nio(*this, "tc0510nio"), m_tc0510nio(*this, "tc0510nio"),
m_2610_1l(*this, "2610.1.l"), m_2610_l(*this, "2610.%u.l", 1),
m_2610_1r(*this, "2610.1.r"), m_2610_r(*this, "2610.%u.r", 1),
m_2610_2l(*this, "2610.2.l"),
m_2610_2r(*this, "2610.2.r"),
m_gfxdecode(*this, "gfxdecode"), m_gfxdecode(*this, "gfxdecode"),
m_palette(*this, "palette"), m_palette(*this, "palette"),
m_spriteram(*this, "spriteram") { } m_spriteram(*this, "spriteram"),
m_z80bank(*this, "z80bank") { }
/* devices */ /* devices */
required_device<cpu_device> m_maincpu; required_device<cpu_device> m_maincpu;
required_device<tc0140syt_device> m_tc0140syt; required_device<tc0140syt_device> m_tc0140syt;
required_device<tc0100scn_device> m_tc0100scn_1; required_device_array<tc0100scn_device, 2> m_tc0100scn;
required_device<tc0100scn_device> m_tc0100scn_2; required_device_array<tc0110pcr_device, 2> m_tc0110pcr;
required_device<tc0110pcr_device> m_tc0110pcr_1;
required_device<tc0110pcr_device> m_tc0110pcr_2;
optional_device<tc0220ioc_device> m_tc0220ioc; optional_device<tc0220ioc_device> m_tc0220ioc;
optional_device<tc0510nio_device> m_tc0510nio; optional_device<tc0510nio_device> m_tc0510nio;
required_device<filter_volume_device> m_2610_1l; required_device_array<filter_volume_device, 2> m_2610_l;
required_device<filter_volume_device> m_2610_1r; required_device_array<filter_volume_device, 2> m_2610_r;
required_device<filter_volume_device> m_2610_2l;
required_device<filter_volume_device> m_2610_2r;
required_device<gfxdecode_device> m_gfxdecode; required_device<gfxdecode_device> m_gfxdecode;
required_device<palette_device> m_palette; required_device<palette_device> m_palette;
/* memory pointers */ /* memory pointers */
required_shared_ptr<uint16_t> m_spriteram; required_shared_ptr<uint16_t> m_spriteram;
/* memory regions */
required_memory_bank m_z80bank;
/* misc */ /* misc */
int m_pandata[4]; int m_pandata[4];
@ -60,7 +56,7 @@ public:
DECLARE_WRITE8_MEMBER(sound_bankswitch_w); DECLARE_WRITE8_MEMBER(sound_bankswitch_w);
DECLARE_WRITE16_MEMBER(sound_w); DECLARE_WRITE16_MEMBER(sound_w);
DECLARE_READ16_MEMBER(sound_r); DECLARE_READ16_MEMBER(sound_r);
DECLARE_WRITE8_MEMBER(pancontrol); DECLARE_WRITE8_MEMBER(pancontrol_w);
DECLARE_WRITE16_MEMBER(tc0100scn_dual_screen_w); DECLARE_WRITE16_MEMBER(tc0100scn_dual_screen_w);
virtual void machine_start() override; virtual void machine_start() override;
@ -69,7 +65,7 @@ public:
uint32_t screen_update_left(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); uint32_t screen_update_left(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
uint32_t screen_update_right(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); uint32_t screen_update_right(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
void draw_sprites( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int x_offs, int y_offs ); void draw_sprites( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int x_offs, int y_offs );
uint32_t update_screen(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int xoffs, tc0100scn_device *tc0100scn); uint32_t update_screen(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int xoffs, int chip);
void warriorb(machine_config &config); void warriorb(machine_config &config);
void darius2d(machine_config &config); void darius2d(machine_config &config);
void darius2d_map(address_map &map); void darius2d_map(address_map &map);

View File

@ -86,13 +86,15 @@ void ninjaw_state::draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect
SCREEN REFRESH SCREEN REFRESH
**************************************************************/ **************************************************************/
uint32_t ninjaw_state::update_screen(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int xoffs, tc0100scn_device *tc0100scn) uint32_t ninjaw_state::update_screen(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int xoffs, int chip)
{ {
tc0100scn_device *tc0100scn = m_tc0100scn[chip];
xoffs *= chip;
uint8_t layer[3], nodraw; uint8_t layer[3], nodraw;
tc0100scn->tilemap_update(); tc0100scn->tilemap_update();
layer[0] = m_tc0100scn_1->bottomlayer(); layer[0] = m_tc0100scn[0]->bottomlayer();
layer[1] = layer[0] ^ 1; layer[1] = layer[0] ^ 1;
layer[2] = 2; layer[2] = 2;
@ -117,6 +119,6 @@ uint32_t ninjaw_state::update_screen(screen_device &screen, bitmap_ind16 &bitmap
return 0; return 0;
} }
uint32_t ninjaw_state::screen_update_left(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect){ return update_screen(screen, bitmap, cliprect, 36 * 8 * 0, m_tc0100scn_1); } uint32_t ninjaw_state::screen_update_left(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect){ return update_screen(screen, bitmap, cliprect, 36 * 8, 0); }
uint32_t ninjaw_state::screen_update_middle(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect){ return update_screen(screen, bitmap, cliprect, 36 * 8 * 1, m_tc0100scn_2); } uint32_t ninjaw_state::screen_update_middle(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect){ return update_screen(screen, bitmap, cliprect, 36 * 8, 1); }
uint32_t ninjaw_state::screen_update_right(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect){ return update_screen(screen, bitmap, cliprect, 36 * 8 * 2, m_tc0100scn_3); } uint32_t ninjaw_state::screen_update_right(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect){ return update_screen(screen, bitmap, cliprect, 36 * 8, 2); }

View File

@ -73,8 +73,9 @@ void warriorb_state::draw_sprites( screen_device &screen, bitmap_ind16 &bitmap,
SCREEN REFRESH SCREEN REFRESH
**************************************************************/ **************************************************************/
uint32_t warriorb_state::update_screen(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int xoffs, tc0100scn_device *tc0100scn) uint32_t warriorb_state::update_screen(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int xoffs, int chip)
{ {
tc0100scn_device *tc0100scn = m_tc0100scn[chip];
uint8_t layer[3], nodraw; uint8_t layer[3], nodraw;
tc0100scn->tilemap_update(); tc0100scn->tilemap_update();
@ -98,12 +99,12 @@ uint32_t warriorb_state::update_screen(screen_device &screen, bitmap_ind16 &bitm
tc0100scn->tilemap_draw(screen, bitmap, cliprect, layer[1], 0, 1); tc0100scn->tilemap_draw(screen, bitmap, cliprect, layer[1], 0, 1);
/* Sprites can be under/over the layer below text layer */ /* Sprites can be under/over the layer below text layer */
draw_sprites(screen, bitmap, cliprect, xoffs, 8); // draw sprites draw_sprites(screen, bitmap, cliprect, xoffs * chip, 8); // draw sprites
// draw top(text) layer // draw top(text) layer
tc0100scn->tilemap_draw(screen, bitmap, cliprect, layer[2], 0, 0); tc0100scn->tilemap_draw(screen, bitmap, cliprect, layer[2], 0, 0);
return 0; return 0;
} }
uint32_t warriorb_state::screen_update_left(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect){ return update_screen(screen, bitmap, cliprect, 40 * 8 * 0, m_tc0100scn_1); } uint32_t warriorb_state::screen_update_left(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect){ return update_screen(screen, bitmap, cliprect, 40 * 8, 0); }
uint32_t warriorb_state::screen_update_right(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect){ return update_screen(screen, bitmap, cliprect, 40 * 8 * 1, m_tc0100scn_2); } uint32_t warriorb_state::screen_update_right(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect){ return update_screen(screen, bitmap, cliprect, 40 * 8, 1); }