From a7a9a8a0c34036f792eecb6bc78c53a9ef37009e Mon Sep 17 00:00:00 2001 From: angelosa Date: Wed, 13 Jun 2018 23:46:55 +0200 Subject: 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; --- src/mame/drivers/cischeat.cpp | 11 ++++++----- src/mame/video/cischeat.cpp | 42 +++++++++++++++--------------------------- 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; } -- cgit v1.2.3