summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/namcos2.cpp
diff options
context:
space:
mode:
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
commite3aa064b18d74cb5e3fe0fa314f15e1a99afd44e (patch)
treec8f0754f761008efbc208184d94a9150dc7c1592 /src/mame/drivers/namcos2.cpp
parentf3480fec67978a39ae804ee1ae686be735a46439 (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.cpp86
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 )