diff options
author | David Haywood <28625134+DavidHaywood@users.noreply.github.com> | 2021-05-23 17:16:35 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-05-23 18:16:35 +0200 |
commit | e3aa064b18d74cb5e3fe0fa314f15e1a99afd44e (patch) | |
tree | c8f0754f761008efbc208184d94a9150dc7c1592 /src/mame/drivers/namcos2.cpp | |
parent | f3480fec67978a39ae804ee1ae686be735a46439 (diff) |
use derived classes for Namco System 2 sprites, give Final Lap its own based on schematics showing 32x32 select is different. (#8096)
Diffstat (limited to 'src/mame/drivers/namcos2.cpp')
-rw-r--r-- | src/mame/drivers/namcos2.cpp | 86 |
1 files changed, 44 insertions, 42 deletions
diff --git a/src/mame/drivers/namcos2.cpp b/src/mame/drivers/namcos2.cpp index ca8b0308fbf..e1472c894e8 100644 --- a/src/mame/drivers/namcos2.cpp +++ b/src/mame/drivers/namcos2.cpp @@ -1927,20 +1927,28 @@ void namcos2_state::finallap_noio(machine_config &config) configure_c123tmap_standard(config); configure_c45road_standard(config); - m_ns2sprite->force_32x32_sprites(true); - m_c140->add_route(0, "lspeaker", 0.75); m_c140->add_route(1, "rspeaker", 0.75); YM2151(config, "ymsnd", YM2151_SOUND_CLOCK).add_route(0, "lspeaker", 0.80).add_route(1, "rspeaker", 0.80); /* 3.579545MHz */ } -void namcos2_state::finallap(machine_config &config) +void namcos2_state::base_fl(machine_config &config) { finallap_noio(config); configure_c65_standard(config); } +void namcos2_state::finallap(machine_config &config) +{ + base_fl(config); + + NAMCOS2_SPRITE_FINALLAP(config.replace(), m_ns2sprite, 0); + m_ns2sprite->set_gfxdecode_tag("gfxdecode"); + m_ns2sprite->set_spriteram_tag("spriteram"); +} + + void namcos2_state::finallap_c68(machine_config &config) { finallap_noio(config); @@ -1951,11 +1959,9 @@ void namcos2_state::finallap_c68(machine_config &config) // finalap2 has different mangle void namcos2_state::finalap2(machine_config &config) { - finallap(config); + base_fl(config); m_c123tmap->set_tile_callback(namco_c123tmap_device::c123_tilemap_delegate(&namcos2_state::TilemapCB_finalap2, this)); - - m_ns2sprite->force_32x32_sprites(false); } void namcos2_state::finalap3(machine_config &config) @@ -1963,8 +1969,6 @@ void namcos2_state::finalap3(machine_config &config) finallap_c68(config); m_c123tmap->set_tile_callback(namco_c123tmap_device::c123_tilemap_delegate(&namcos2_state::TilemapCB_finalap2, this)); - - m_ns2sprite->force_32x32_sprites(false); } @@ -2088,7 +2092,10 @@ void namcos2_state::metlhawk(machine_config &config) GFXDECODE(config, m_gfxdecode, m_c116, gfx_metlhawk); - configure_namcos2_sprite_standard(config); + NAMCOS2_SPRITE_METALHAWK(config, m_ns2sprite, 0); + m_ns2sprite->set_gfxdecode_tag("gfxdecode"); + m_ns2sprite->set_spriteram_tag("spriteram"); + configure_c123tmap_standard(config); configure_c169roz_standard(config); m_c169roz->set_tile_callback(namco_c169roz_device::c169_tilemap_delegate(&namcos2_state::RozCB_metlhawk, this)); @@ -2702,12 +2709,11 @@ ROM_START( finallap ) ROM_REGION( 0x8000, "c65mcu:external", ROMREGION_ERASE00 ) /* I/O MCU */ /* no external MCU ROM? previously loaded type C, but the game predates it */ - ROM_REGION( 0x400000, "sprite", 0 ) /* Sprites */ - ROM_FILL( 0, 0x200000, 0xff ) - ROM_LOAD32_BYTE( "obj-0b", 0x200003, 0x80000, CRC(c6986523) SHA1(1a4b0e95ade6314850b6e44f2debda0ab6e91397) ) - ROM_LOAD32_BYTE( "obj-1b", 0x200002, 0x80000, CRC(6af7d284) SHA1(c74f975c301ff15040be1b38359624ec9c83ac76) ) - ROM_LOAD32_BYTE( "obj-2b", 0x200001, 0x80000, CRC(de45ca8d) SHA1(f476ff1719f60d721d55fd1e40e465f48e7ed019) ) - ROM_LOAD32_BYTE( "obj-3b", 0x200000, 0x80000, CRC(dba830a2) SHA1(5bd899b39458978dd419bf01082782a02b2d9c20) ) + ROM_REGION( 0x200000, "sprite", 0 ) /* Sprites */ + ROM_LOAD32_BYTE( "obj-0b", 0x000003, 0x80000, CRC(c6986523) SHA1(1a4b0e95ade6314850b6e44f2debda0ab6e91397) ) + ROM_LOAD32_BYTE( "obj-1b", 0x000002, 0x80000, CRC(6af7d284) SHA1(c74f975c301ff15040be1b38359624ec9c83ac76) ) + ROM_LOAD32_BYTE( "obj-2b", 0x000001, 0x80000, CRC(de45ca8d) SHA1(f476ff1719f60d721d55fd1e40e465f48e7ed019) ) + ROM_LOAD32_BYTE( "obj-3b", 0x000000, 0x80000, CRC(dba830a2) SHA1(5bd899b39458978dd419bf01082782a02b2d9c20) ) ROM_REGION( 0x400000, "c123tmap", 0 ) /* Tiles */ NAMCOS2_GFXROM_LOAD_128K( "fl1-c0", 0x000000, CRC(cd9d2966) SHA1(39671f846542ba6ae47764674509127cf73e3d71) ) @@ -2748,12 +2754,11 @@ ROM_START( finallapd ) ROM_REGION( 0x8000, "c65mcu:external", ROMREGION_ERASE00 ) /* I/O MCU */ /* no external MCU ROM? previously loaded type C, but the game predates it */ - ROM_REGION( 0x400000, "sprite", 0 ) /* Sprites */ - ROM_FILL( 0, 0x200000, 0xff ) - ROM_LOAD32_BYTE( "obj-0b", 0x200003, 0x80000, CRC(c6986523) SHA1(1a4b0e95ade6314850b6e44f2debda0ab6e91397) ) - ROM_LOAD32_BYTE( "obj-1b", 0x200002, 0x80000, CRC(6af7d284) SHA1(c74f975c301ff15040be1b38359624ec9c83ac76) ) - ROM_LOAD32_BYTE( "obj-2b", 0x200001, 0x80000, CRC(de45ca8d) SHA1(f476ff1719f60d721d55fd1e40e465f48e7ed019) ) - ROM_LOAD32_BYTE( "obj-3b", 0x200000, 0x80000, CRC(dba830a2) SHA1(5bd899b39458978dd419bf01082782a02b2d9c20) ) + ROM_REGION( 0x200000, "sprite", 0 ) /* Sprites */ + ROM_LOAD32_BYTE( "obj-0b", 0x000003, 0x80000, CRC(c6986523) SHA1(1a4b0e95ade6314850b6e44f2debda0ab6e91397) ) + ROM_LOAD32_BYTE( "obj-1b", 0x000002, 0x80000, CRC(6af7d284) SHA1(c74f975c301ff15040be1b38359624ec9c83ac76) ) + ROM_LOAD32_BYTE( "obj-2b", 0x000001, 0x80000, CRC(de45ca8d) SHA1(f476ff1719f60d721d55fd1e40e465f48e7ed019) ) + ROM_LOAD32_BYTE( "obj-3b", 0x000000, 0x80000, CRC(dba830a2) SHA1(5bd899b39458978dd419bf01082782a02b2d9c20) ) ROM_REGION( 0x400000, "c123tmap", 0 ) /* Tiles */ NAMCOS2_GFXROM_LOAD_128K( "fl1-c0", 0x000000, CRC(cd9d2966) SHA1(39671f846542ba6ae47764674509127cf73e3d71) ) @@ -2794,12 +2799,11 @@ ROM_START( finallapc ) ROM_REGION( 0x8000, "c65mcu:external", ROMREGION_ERASE00 ) /* I/O MCU */ /* no external MCU ROM? previously loaded type C, but the game predates it */ - ROM_REGION( 0x400000, "sprite", 0 ) /* Sprites */ - ROM_FILL( 0, 0x200000, 0xff ) - ROM_LOAD32_BYTE( "obj-0b", 0x200003, 0x80000, CRC(c6986523) SHA1(1a4b0e95ade6314850b6e44f2debda0ab6e91397) ) - ROM_LOAD32_BYTE( "obj-1b", 0x200002, 0x80000, CRC(6af7d284) SHA1(c74f975c301ff15040be1b38359624ec9c83ac76) ) - ROM_LOAD32_BYTE( "obj-2b", 0x200001, 0x80000, CRC(de45ca8d) SHA1(f476ff1719f60d721d55fd1e40e465f48e7ed019) ) - ROM_LOAD32_BYTE( "obj-3b", 0x200000, 0x80000, CRC(dba830a2) SHA1(5bd899b39458978dd419bf01082782a02b2d9c20) ) + ROM_REGION( 0x200000, "sprite", 0 ) /* Sprites */ + ROM_LOAD32_BYTE( "obj-0b", 0x000003, 0x80000, CRC(c6986523) SHA1(1a4b0e95ade6314850b6e44f2debda0ab6e91397) ) + ROM_LOAD32_BYTE( "obj-1b", 0x000002, 0x80000, CRC(6af7d284) SHA1(c74f975c301ff15040be1b38359624ec9c83ac76) ) + ROM_LOAD32_BYTE( "obj-2b", 0x000001, 0x80000, CRC(de45ca8d) SHA1(f476ff1719f60d721d55fd1e40e465f48e7ed019) ) + ROM_LOAD32_BYTE( "obj-3b", 0x000000, 0x80000, CRC(dba830a2) SHA1(5bd899b39458978dd419bf01082782a02b2d9c20) ) ROM_REGION( 0x400000, "c123tmap", 0 ) /* Tiles */ NAMCOS2_GFXROM_LOAD_128K( "fl1-c0", 0x000000, CRC(cd9d2966) SHA1(39671f846542ba6ae47764674509127cf73e3d71) ) @@ -2840,12 +2844,11 @@ ROM_START( finallapjc ) ROM_REGION( 0x8000, "c65mcu:external", ROMREGION_ERASE00 ) /* I/O MCU */ /* no external MCU ROM? previously loaded type C, but the game predates it */ - ROM_REGION( 0x400000, "sprite", 0 ) /* Sprites */ - ROM_FILL( 0, 0x200000, 0xff ) - ROM_LOAD32_BYTE( "obj-0b", 0x200003, 0x80000, CRC(c6986523) SHA1(1a4b0e95ade6314850b6e44f2debda0ab6e91397) ) - ROM_LOAD32_BYTE( "obj-1b", 0x200002, 0x80000, CRC(6af7d284) SHA1(c74f975c301ff15040be1b38359624ec9c83ac76) ) - ROM_LOAD32_BYTE( "obj-2b", 0x200001, 0x80000, CRC(de45ca8d) SHA1(f476ff1719f60d721d55fd1e40e465f48e7ed019) ) - ROM_LOAD32_BYTE( "obj-3b", 0x200000, 0x80000, CRC(dba830a2) SHA1(5bd899b39458978dd419bf01082782a02b2d9c20) ) + ROM_REGION( 0x200000, "sprite", 0 ) /* Sprites */ + ROM_LOAD32_BYTE( "obj-0b", 0x000003, 0x80000, CRC(c6986523) SHA1(1a4b0e95ade6314850b6e44f2debda0ab6e91397) ) + ROM_LOAD32_BYTE( "obj-1b", 0x000002, 0x80000, CRC(6af7d284) SHA1(c74f975c301ff15040be1b38359624ec9c83ac76) ) + ROM_LOAD32_BYTE( "obj-2b", 0x000001, 0x80000, CRC(de45ca8d) SHA1(f476ff1719f60d721d55fd1e40e465f48e7ed019) ) + ROM_LOAD32_BYTE( "obj-3b", 0x000000, 0x80000, CRC(dba830a2) SHA1(5bd899b39458978dd419bf01082782a02b2d9c20) ) ROM_REGION( 0x400000, "c123tmap", 0 ) /* Tiles */ NAMCOS2_GFXROM_LOAD_128K( "fl1-c0", 0x000000, CRC(cd9d2966) SHA1(39671f846542ba6ae47764674509127cf73e3d71) ) @@ -2886,12 +2889,11 @@ ROM_START( finallapjb ) ROM_REGION( 0x8000, "c65mcu:external", ROMREGION_ERASE00 ) /* I/O MCU */ /* no external MCU ROM? previously loaded type C, but the game predates it */ - ROM_REGION( 0x400000, "sprite", 0 ) /* Sprites */ - ROM_FILL( 0, 0x200000, 0xff ) - ROM_LOAD32_BYTE( "obj-0b", 0x200003, 0x80000, CRC(c6986523) SHA1(1a4b0e95ade6314850b6e44f2debda0ab6e91397) ) - ROM_LOAD32_BYTE( "obj-1b", 0x200002, 0x80000, CRC(6af7d284) SHA1(c74f975c301ff15040be1b38359624ec9c83ac76) ) - ROM_LOAD32_BYTE( "obj-2b", 0x200001, 0x80000, CRC(de45ca8d) SHA1(f476ff1719f60d721d55fd1e40e465f48e7ed019) ) - ROM_LOAD32_BYTE( "obj-3b", 0x200000, 0x80000, CRC(dba830a2) SHA1(5bd899b39458978dd419bf01082782a02b2d9c20) ) + ROM_REGION( 0x200000, "sprite", 0 ) /* Sprites */ + ROM_LOAD32_BYTE( "obj-0b", 0x000003, 0x80000, CRC(c6986523) SHA1(1a4b0e95ade6314850b6e44f2debda0ab6e91397) ) + ROM_LOAD32_BYTE( "obj-1b", 0x000002, 0x80000, CRC(6af7d284) SHA1(c74f975c301ff15040be1b38359624ec9c83ac76) ) + ROM_LOAD32_BYTE( "obj-2b", 0x000001, 0x80000, CRC(de45ca8d) SHA1(f476ff1719f60d721d55fd1e40e465f48e7ed019) ) + ROM_LOAD32_BYTE( "obj-3b", 0x000000, 0x80000, CRC(dba830a2) SHA1(5bd899b39458978dd419bf01082782a02b2d9c20) ) ROM_REGION( 0x400000, "c123tmap", 0 ) /* Tiles */ NAMCOS2_GFXROM_LOAD_128K( "fl1-c0", 0x000000, CRC(cd9d2966) SHA1(39671f846542ba6ae47764674509127cf73e3d71) ) @@ -5712,9 +5714,9 @@ GAME( 1988, pheliosj, phelios, base2, base, namcos2_state, init_pheli GAME( 1989, dirtfoxj, 0, base2, dirtfox, namcos2_state, init_dirtfoxj, ROT90, "Namco", "Dirt Fox (Japan)", MACHINE_NODEVICE_LAN | MACHINE_SUPPORTS_SAVE ) -GAMEL( 1989, fourtrax, 0, finallap, fourtrax, namcos2_state, init_fourtrax, ROT0, "Namco", "Four Trax (World)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NODEVICE_LAN | MACHINE_SUPPORTS_SAVE, layout_finallap ) -GAMEL( 1989, fourtraxj, fourtrax, finallap, fourtrax, namcos2_state, init_fourtrax, ROT0, "Namco", "Four Trax (Japan)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NODEVICE_LAN | MACHINE_SUPPORTS_SAVE, layout_finallap ) -GAMEL( 1989, fourtraxa, fourtrax, finallap, fourtrax, namcos2_state, init_fourtrax, ROT0, "Namco (Atari license?)", "Four Trax (US?, censored banners)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NODEVICE_LAN | MACHINE_SUPPORTS_SAVE, layout_finallap ) // boards using the ROM code FX4 were produced for Atari? there's no US region warning or Atari copyright tho, modded version of the World code +GAMEL( 1989, fourtrax, 0, base_fl, fourtrax, namcos2_state, init_fourtrax, ROT0, "Namco", "Four Trax (World)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NODEVICE_LAN | MACHINE_SUPPORTS_SAVE, layout_finallap ) +GAMEL( 1989, fourtraxj, fourtrax, base_fl, fourtrax, namcos2_state, init_fourtrax, ROT0, "Namco", "Four Trax (Japan)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NODEVICE_LAN | MACHINE_SUPPORTS_SAVE, layout_finallap ) +GAMEL( 1989, fourtraxa, fourtrax, base_fl, fourtrax, namcos2_state, init_fourtrax, ROT0, "Namco (Atari license?)", "Four Trax (US?, censored banners)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NODEVICE_LAN | MACHINE_SUPPORTS_SAVE, layout_finallap ) // boards using the ROM code FX4 were produced for Atari? there's no US region warning or Atari copyright tho, modded version of the World code GAME( 1989, valkyrie, 0, base3, base, namcos2_state, init_valkyrie, ROT90, "Namco", "Valkyrie no Densetsu (Japan)", MACHINE_SUPPORTS_SAVE ) |