summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author angelosa <lordkale4@gmail.com>2018-06-13 23:46:55 +0200
committer angelosa <lordkale4@gmail.com>2018-06-13 23:48:50 +0200
commita7a9a8a0c34036f792eecb6bc78c53a9ef37009e (patch)
treeec75a491693e21a5895deab4c9e420de7773e19d
parent1f1c60cbe86e5585e0fb1924ff459715715fe033 (diff)
cischeat.cpp: Big Run improvements: [Angelo Salese]
* Fixed road / sprite priorities; * Fixed long standing road colors regression (dawn effect & left edge at start of game); * Handtuned sound frequencies to match reference;
-rw-r--r--src/mame/drivers/cischeat.cpp11
-rw-r--r--src/mame/video/cischeat.cpp42
2 files changed, 21 insertions, 32 deletions
diff --git a/src/mame/drivers/cischeat.cpp b/src/mame/drivers/cischeat.cpp
index 9ac20947178..8ad87ffc1e8 100644
--- a/src/mame/drivers/cischeat.cpp
+++ b/src/mame/drivers/cischeat.cpp
@@ -1849,8 +1849,8 @@ static GFXDECODE_START( gfx_bigrun )
//GFXDECODE_ENTRY( "scroll1", 0, tiles_8x8, 0x1600/2 , 16 ) // Scroll 1
//GFXDECODE_ENTRY( "scroll2", 0, tiles_8x8, 0x3600/2 , 16 ) // Scroll 2
GFXDECODE_ENTRY( "sprites", 0, tiles_16x16,0x2800/2 , 64 ) // [0] Sprites
- GFXDECODE_ENTRY( "road0", 0, road_layout,0x1800/2 , 64 ) // [1] Road 0
- GFXDECODE_ENTRY( "road1", 0, road_layout,0x2000/2 , 64 ) // [2] Road 1
+ GFXDECODE_ENTRY( "road0", 0, road_layout,0x2000/2 , 64 ) // [1] Road 0
+ GFXDECODE_ENTRY( "road1", 0, road_layout,0x1800/2 , 64 ) // [2] Road 1
GFXDECODE_END
/**************************************************************************
@@ -1977,15 +1977,16 @@ MACHINE_CONFIG_START(cischeat_state::bigrun)
MCFG_GENERIC_LATCH_16_ADD("soundlatch")
MCFG_GENERIC_LATCH_16_ADD("soundlatch2")
- MCFG_DEVICE_ADD("ymsnd", YM2151, STD_FM_CLOCK)
+ // TODO: all sound frequencies unverified (assume same as Mega System 1)
+ MCFG_DEVICE_ADD("ymsnd", YM2151, 7000000/2)
MCFG_SOUND_ROUTE(0, "lspeaker", 0.50)
MCFG_SOUND_ROUTE(1, "rspeaker", 0.50)
- MCFG_DEVICE_ADD("oki1", OKIM6295, STD_OKI_CLOCK, okim6295_device::PIN7_HIGH) // clock frequency & pin 7 not verified
+ MCFG_DEVICE_ADD("oki1", OKIM6295, 4000000, okim6295_device::PIN7_HIGH) // clock frequency & pin 7 not verified
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.25)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.25)
- MCFG_DEVICE_ADD("oki2", OKIM6295, STD_OKI_CLOCK, okim6295_device::PIN7_HIGH) // clock frequency & pin 7 not verified
+ MCFG_DEVICE_ADD("oki2", OKIM6295, 4000000, okim6295_device::PIN7_HIGH) // clock frequency & pin 7 not verified
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.25)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.25)
MACHINE_CONFIG_END
diff --git a/src/mame/video/cischeat.cpp b/src/mame/video/cischeat.cpp
index 80942c6f944..de44f2111a5 100644
--- a/src/mame/video/cischeat.cpp
+++ b/src/mame/video/cischeat.cpp
@@ -840,41 +840,29 @@ if ( machine().input().code_pressed(KEYCODE_Z) || machine().input().code_pressed
uint32_t cischeat_state::screen_update_bigrun(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
int i;
- int active_layers1, flag;
-
-#ifdef MAME_DEBUG
- /* FAKE Videoreg */
- active_layers1 = m_active_layers;
- if (active_layers1 == 0) active_layers1 = 0x3f;
-#else
- active_layers1 = 0x3f;
-#endif
-
-#ifdef MAME_DEBUG
- CISCHEAT_LAYERSCTRL
-#endif
-
- bitmap.fill(0, cliprect);
+ bitmap.fill(0x1000, cliprect);
+
for (i = 7; i >= 4; i--)
- { /* bitmap, road, min_priority, max_priority, transparency */
- if (active_layers1 & 0x10) cischeat_draw_road(bitmap,cliprect,0,i,i,false);
- if (active_layers1 & 0x20) cischeat_draw_road(bitmap,cliprect,1,i,i,true);
+ {
+ /* bitmap, cliprect, road, min_priority, max_priority, transparency */
+ cischeat_draw_road(bitmap,cliprect,0,i,i,(i != 7));
+ cischeat_draw_road(bitmap,cliprect,1,i,i,true);
+ bigrun_draw_sprites(bitmap,cliprect,i+1,i);
}
- flag = 0;
- cischeat_tmap_DRAW(0)
- cischeat_tmap_DRAW(1)
+ m_tmap[0]->draw(screen, bitmap, cliprect, 0, 0 );
+ m_tmap[1]->draw(screen, bitmap, cliprect, 0, 0 );
for (i = 3; i >= 0; i--)
- { /* bitmap, road, min_priority, max_priority, transparency */
- if (active_layers1 & 0x10) cischeat_draw_road(bitmap,cliprect,0,i,i,true);
- if (active_layers1 & 0x20) cischeat_draw_road(bitmap,cliprect,1,i,i,true);
+ {
+ /* bitmap, cliprect, road, min_priority, max_priority, transparency */
+ cischeat_draw_road(bitmap,cliprect,0,i,i,true);
+ cischeat_draw_road(bitmap,cliprect,1,i,i,true);
+ bigrun_draw_sprites(bitmap,cliprect,i+1,i);
}
- if (active_layers1 & 0x08) bigrun_draw_sprites(bitmap,cliprect,15,0);
-
- cischeat_tmap_DRAW(2)
+ m_tmap[2]->draw(screen, bitmap, cliprect, 0, 0 );
return 0;
}