From e6ce906671fbb4e4fc2186cc4bcd0b842b4e8bc4 Mon Sep 17 00:00:00 2001 From: hap Date: Mon, 18 Nov 2024 18:08:25 +0100 Subject: [PATCH] shtrider: assume z80 is 6mhz --- src/mame/irem/travrusa.cpp | 27 +++++++++++------ src/mame/seibu/kncljoe.cpp | 61 +++++++++++++++++++------------------- 2 files changed, 48 insertions(+), 40 deletions(-) diff --git a/src/mame/irem/travrusa.cpp b/src/mame/irem/travrusa.cpp index 948f9b21b79..738119de64f 100644 --- a/src/mame/irem/travrusa.cpp +++ b/src/mame/irem/travrusa.cpp @@ -24,6 +24,8 @@ Notes: TODO: - shtrider dip switches and figure out flip screen (not same as travrusa) +- verify shtrider (not bootlegs) maincpu XTAL, 3.072MHz seems too slow: + see race countdown at start, and overall a lot of frame overflows **************************************************************************** @@ -416,6 +418,7 @@ void travrusa_state::flipscreen_w(uint8_t data) flip_screen_set(data & 1); + // and coincounters (not written by shtrider) machine().bookkeeping().coin_counter_w(0, data & 0x02); machine().bookkeeping().coin_counter_w(1, data & 0x20); } @@ -444,7 +447,7 @@ void travrusa_state::program_map(address_map &map) map(0xa000, 0xa000).w(FUNC(travrusa_state::scroll_x_high_w)); map(0xc800, 0xc9ff).writeonly().share(m_spriteram); map(0xd000, 0xd000).portr("SYSTEM").w("irem_audio", FUNC(irem_audio_device::cmd_w)); - map(0xd001, 0xd001).portr("P1").w(FUNC(travrusa_state::flipscreen_w)); // + coin counters - not written by shtrider + map(0xd001, 0xd001).portr("P1").w(FUNC(travrusa_state::flipscreen_w)); map(0xd002, 0xd002).portr("P2"); map(0xd003, 0xd003).portr("DSW1"); map(0xd004, 0xd004).portr("DSW2"); @@ -693,7 +696,7 @@ GFXDECODE_END void travrusa_state::travrusa(machine_config &config) { // basic machine hardware - Z80(config, m_maincpu, 18.432_MHz_XTAL / 6); + Z80(config, m_maincpu, 18.432_MHz_XTAL / 6); // 3.072MHz m_maincpu->set_addrmap(AS_PROGRAM, &travrusa_state::program_map); // video hardware @@ -701,7 +704,9 @@ void travrusa_state::travrusa(machine_config &config) screen.set_raw(18.432_MHz_XTAL / 3, 384, 8, 248, 282, 0, 256); // verified from schematics; accurate frequency, measured on a Moon Patrol board, is 56.75Hz screen.set_screen_update(FUNC(travrusa_state::screen_update)); screen.set_palette(m_palette); - // Race start countdown in shtrider needs multiple interrupts per frame to sync, mustache.cpp has the same, and is also a Seibu game + + // Race start countdown in shtrider needs multiple interrupts per frame to sync, + // mustache.cpp has the same, and is also a Seibu game screen.screen_vblank().set_inputline(m_maincpu, INPUT_LINE_IRQ0); GFXDECODE(config, m_gfxdecode, m_palette, gfx_travrusa); @@ -715,6 +720,9 @@ void travrusa_state::shtrider(machine_config &config) { travrusa(config); + // basic machine hardware + m_maincpu->set_clock(6'000'000); // 6MHz like Knuckle Joe? + // video hardware m_gfxdecode->set_info(gfx_shtrider); m_palette->set_init(FUNC(travrusa_state::shtrider_palette)); @@ -722,12 +730,13 @@ void travrusa_state::shtrider(machine_config &config) void travrusa_state::shtriderb(machine_config &config) { - travrusa(config); + shtrider(config); + // basic machine hardware m_maincpu->set_addrmap(AS_IO, &travrusa_state::shtriderb_io_map); // video hardware - m_gfxdecode->set_info(gfx_shtrider); + m_palette->set_init(FUNC(travrusa_state::travrusa_palette)); } @@ -823,7 +832,7 @@ ROM_END ROM_START( motorace ) ROM_REGION( 0x12000, "maincpu", 0 ) - ROM_LOAD( "mr.cpu", 0x0000, 0x2000, CRC(89030b0c) SHA1(dec4209385bbccff4a3c0d93d6507110ef841331) ) // encrypted + ROM_LOAD( "mr.cpu", 0x0000, 0x2000, CRC(89030b0c) SHA1(dec4209385bbccff4a3c0d93d6507110ef841331) ) // encrypted ROM_LOAD( "mr1.3l", 0x2000, 0x2000, CRC(0904ed58) SHA1(2776e031cb58f99103bc35299bffd7612d954608) ) ROM_LOAD( "mr2.3k", 0x4000, 0x2000, CRC(8a2374ec) SHA1(7159731f5ef2485e3c822e3e8e51e9583dd1c6bc) ) ROM_LOAD( "mr3.3j", 0x6000, 0x2000, CRC(2f04c341) SHA1(ae990d9d4abdd7d6ef9d21aa62125fe2e0067623) ) @@ -955,12 +964,12 @@ ROM_START( shtriderb ) ROM_REGION( 0x06000, "sprites", 0 ) ROM_LOAD( "sr8.17.n3", 0x0000, 0x2000, CRC(4072b096) SHA1(e43482ac916a0fa259f74f99dc6ef72e86c23d9d) ) - ROM_LOAD( "sr9.18.m3", 0x2000, 0x2000, CRC(fd4cc7e6) SHA1(3852883d32354e8c90c6cf701581ebc57d830c8b)) + ROM_LOAD( "sr9.18.m3", 0x2000, 0x2000, CRC(fd4cc7e6) SHA1(3852883d32354e8c90c6cf701581ebc57d830c8b) ) ROM_LOAD( "sr10.19.k3", 0x4000, 0x2000, CRC(0a117925) SHA1(e061254428874b6153c2e9e514122373395f4da1) ) ROM_REGION( 0x0420, "proms", 0 ) ROM_LOAD( "6349-2.k2", 0x0000, 0x0200, CRC(854487a7) SHA1(5f3a2a7f7ba89f945fda97debb5436af8a2c6885) ) - ROM_LOAD( "prom1.6.f1", 0x0200, 0x0020, CRC(ee97c581) SHA1(a5d0ba5e03f3bcbdd72f89f0495a98cef2821e59)) + ROM_LOAD( "prom1.6.f1", 0x0200, 0x0020, CRC(ee97c581) SHA1(a5d0ba5e03f3bcbdd72f89f0495a98cef2821e59) ) ROM_LOAD( "prom2.12.h2", 0x0220, 0x0100, CRC(5db47092) SHA1(8e234ee88143755a4fd5ec86a03b55be5f9c5db8) ) ROM_END @@ -984,7 +993,7 @@ void travrusa_state::init_shtridra() // D3/D4 and D5/D6 swapped for (int A = 0; A < 0x2000; A++) - rom[A] = bitswap<8>(rom[A],7 ,5, 6, 3, 4, 2, 1, 0); + rom[A] = bitswap<8>(rom[A], 7 ,5, 6, 3, 4, 2, 1, 0); } } // anonymous namespace diff --git a/src/mame/seibu/kncljoe.cpp b/src/mame/seibu/kncljoe.cpp index 38edea58df3..dab7885a23b 100644 --- a/src/mame/seibu/kncljoe.cpp +++ b/src/mame/seibu/kncljoe.cpp @@ -556,7 +556,6 @@ void kncljoe_state::kncljoe(machine_config &config) m_ay8910->add_route(ALL_OUTPUTS, "mono", 0.30); SN76489(config, "sn1", XTAL(3'579'545)).add_route(ALL_OUTPUTS, "mono", 0.30); // verified on PCB - SN76489(config, "sn2", XTAL(3'579'545)).add_route(ALL_OUTPUTS, "mono", 0.30); // verified on PCB } @@ -569,22 +568,22 @@ ROM_START( kncljoe ) ROM_LOAD( "kj-3.bin", 0x8000, 0x4000, CRC(0f50697b) SHA1(412c6aba270824299ca2a74e9bea42b83e69797b) ) ROM_REGION( 0x8000, "soundcpu", 0 ) - ROM_LOAD( "kj-13.bin",0x6000, 0x2000, CRC(0a0be3f5) SHA1(00be47fc76500843b6f5de63622edb1748ef5f7d) ) + ROM_LOAD( "kj-13.bin", 0x6000, 0x2000, CRC(0a0be3f5) SHA1(00be47fc76500843b6f5de63622edb1748ef5f7d) ) ROM_REGION( 0xc000, "tiles", 0 ) - ROM_LOAD( "kj-10.bin", 0x0000, 0x4000, CRC(74d3ba33) SHA1(c7887d690cb7f7a7b24d59d490ffc088fb6cc49c) ) - ROM_LOAD( "kj-11.bin", 0x4000, 0x4000, CRC(8ea01455) SHA1(b4b42fe373a1019b4f2a4b763a8a7219a5c9987e) ) - ROM_LOAD( "kj-12.bin", 0x8000, 0x4000, CRC(33367c41) SHA1(e6c56bcad008f3af4bc0f7d7afe8e23c8eb9d943) ) + ROM_LOAD( "kj-10.bin", 0x0000, 0x4000, CRC(74d3ba33) SHA1(c7887d690cb7f7a7b24d59d490ffc088fb6cc49c) ) + ROM_LOAD( "kj-11.bin", 0x4000, 0x4000, CRC(8ea01455) SHA1(b4b42fe373a1019b4f2a4b763a8a7219a5c9987e) ) + ROM_LOAD( "kj-12.bin", 0x8000, 0x4000, CRC(33367c41) SHA1(e6c56bcad008f3af4bc0f7d7afe8e23c8eb9d943) ) ROM_REGION( 0x18000, "sprites1", 0 ) - ROM_LOAD( "kj-4.bin", 0x00000, 0x8000, CRC(a499ea10) SHA1(cb671cc75b3c6029dd3529e62d83025f78b45271) ) - ROM_LOAD( "kj-6.bin", 0x08000, 0x8000, CRC(815f5c0a) SHA1(ad0b59eeebb2e57035a3f643ac0ef575569bec0f) ) - ROM_LOAD( "kj-5.bin", 0x10000, 0x8000, CRC(11111759) SHA1(504c62fc6778a4afa86cba69634652708535bef6) ) + ROM_LOAD( "kj-4.bin", 0x00000, 0x8000, CRC(a499ea10) SHA1(cb671cc75b3c6029dd3529e62d83025f78b45271) ) + ROM_LOAD( "kj-6.bin", 0x08000, 0x8000, CRC(815f5c0a) SHA1(ad0b59eeebb2e57035a3f643ac0ef575569bec0f) ) + ROM_LOAD( "kj-5.bin", 0x10000, 0x8000, CRC(11111759) SHA1(504c62fc6778a4afa86cba69634652708535bef6) ) ROM_REGION( 0xc000, "sprites2", 0 ) - ROM_LOAD( "kj-7.bin", 0x0000, 0x4000, CRC(121fcccb) SHA1(77f3e7e49787d6a893c5d8c0c3ac612b1180e866) ) - ROM_LOAD( "kj-9.bin", 0x4000, 0x4000, CRC(affbe3eb) SHA1(056111fc5b04ff14b114b5f724d02789c8e3ee10) ) - ROM_LOAD( "kj-8.bin", 0x8000, 0x4000, CRC(e057e72a) SHA1(3a85750c72caaa027f302dc6ca4086bdbd49b5ff) ) + ROM_LOAD( "kj-7.bin", 0x0000, 0x4000, CRC(121fcccb) SHA1(77f3e7e49787d6a893c5d8c0c3ac612b1180e866) ) + ROM_LOAD( "kj-9.bin", 0x4000, 0x4000, CRC(affbe3eb) SHA1(056111fc5b04ff14b114b5f724d02789c8e3ee10) ) + ROM_LOAD( "kj-8.bin", 0x8000, 0x4000, CRC(e057e72a) SHA1(3a85750c72caaa027f302dc6ca4086bdbd49b5ff) ) ROM_REGION( 0x420, "proms", 0 ) ROM_LOAD( "kjclr1.bin", 0x000, 0x100, CRC(c3378ac2) SHA1(264fdc0718b36e02fc1fc1064a9566e349f4bf25) ) // tile red @@ -601,22 +600,22 @@ ROM_START( kncljoea ) ROM_LOAD( "kj-3.bin", 0x8000, 0x4000, CRC(0f50697b) SHA1(412c6aba270824299ca2a74e9bea42b83e69797b) ) ROM_REGION( 0x8000, "soundcpu", 0 ) - ROM_LOAD( "kj-13.bin",0x6000, 0x2000, CRC(0a0be3f5) SHA1(00be47fc76500843b6f5de63622edb1748ef5f7d) ) + ROM_LOAD( "kj-13.bin", 0x6000, 0x2000, CRC(0a0be3f5) SHA1(00be47fc76500843b6f5de63622edb1748ef5f7d) ) ROM_REGION( 0xc000, "tiles", 0 ) - ROM_LOAD( "kj-10.bin", 0x0000, 0x4000, CRC(74d3ba33) SHA1(c7887d690cb7f7a7b24d59d490ffc088fb6cc49c) ) - ROM_LOAD( "kj-11.bin", 0x4000, 0x4000, CRC(8ea01455) SHA1(b4b42fe373a1019b4f2a4b763a8a7219a5c9987e) ) - ROM_LOAD( "kj-12.bin", 0x8000, 0x4000, CRC(33367c41) SHA1(e6c56bcad008f3af4bc0f7d7afe8e23c8eb9d943) ) + ROM_LOAD( "kj-10.bin", 0x0000, 0x4000, CRC(74d3ba33) SHA1(c7887d690cb7f7a7b24d59d490ffc088fb6cc49c) ) + ROM_LOAD( "kj-11.bin", 0x4000, 0x4000, CRC(8ea01455) SHA1(b4b42fe373a1019b4f2a4b763a8a7219a5c9987e) ) + ROM_LOAD( "kj-12.bin", 0x8000, 0x4000, CRC(33367c41) SHA1(e6c56bcad008f3af4bc0f7d7afe8e23c8eb9d943) ) ROM_REGION( 0x18000, "sprites1", 0 ) - ROM_LOAD( "kj-4.bin", 0x00000, 0x8000, CRC(a499ea10) SHA1(cb671cc75b3c6029dd3529e62d83025f78b45271) ) - ROM_LOAD( "kj-6.bin", 0x08000, 0x8000, CRC(815f5c0a) SHA1(ad0b59eeebb2e57035a3f643ac0ef575569bec0f) ) - ROM_LOAD( "kj-5.bin", 0x10000, 0x8000, CRC(11111759) SHA1(504c62fc6778a4afa86cba69634652708535bef6) ) + ROM_LOAD( "kj-4.bin", 0x00000, 0x8000, CRC(a499ea10) SHA1(cb671cc75b3c6029dd3529e62d83025f78b45271) ) + ROM_LOAD( "kj-6.bin", 0x08000, 0x8000, CRC(815f5c0a) SHA1(ad0b59eeebb2e57035a3f643ac0ef575569bec0f) ) + ROM_LOAD( "kj-5.bin", 0x10000, 0x8000, CRC(11111759) SHA1(504c62fc6778a4afa86cba69634652708535bef6) ) ROM_REGION( 0xc000, "sprites2", 0 ) - ROM_LOAD( "kj-7.bin", 0x0000, 0x4000, CRC(121fcccb) SHA1(77f3e7e49787d6a893c5d8c0c3ac612b1180e866) ) - ROM_LOAD( "kj-9.bin", 0x4000, 0x4000, CRC(affbe3eb) SHA1(056111fc5b04ff14b114b5f724d02789c8e3ee10) ) - ROM_LOAD( "kj-8.bin", 0x8000, 0x4000, CRC(e057e72a) SHA1(3a85750c72caaa027f302dc6ca4086bdbd49b5ff) ) + ROM_LOAD( "kj-7.bin", 0x0000, 0x4000, CRC(121fcccb) SHA1(77f3e7e49787d6a893c5d8c0c3ac612b1180e866) ) + ROM_LOAD( "kj-9.bin", 0x4000, 0x4000, CRC(affbe3eb) SHA1(056111fc5b04ff14b114b5f724d02789c8e3ee10) ) + ROM_LOAD( "kj-8.bin", 0x8000, 0x4000, CRC(e057e72a) SHA1(3a85750c72caaa027f302dc6ca4086bdbd49b5ff) ) ROM_REGION( 0x420, "proms", 0 ) ROM_LOAD( "kjclr1.bin", 0x000, 0x100, CRC(c3378ac2) SHA1(264fdc0718b36e02fc1fc1064a9566e349f4bf25) ) // tile red @@ -633,22 +632,22 @@ ROM_START( bcrusher ) ROM_LOAD( "bcrush3.bin", 0x8000, 0x4000, CRC(0772d993) SHA1(430f0319bd4765add2f1ee197e7217fdf9ae79c8) ) ROM_REGION( 0x8000, "soundcpu", 0 ) - ROM_LOAD( "kj-13.bin",0x6000, 0x2000, CRC(0a0be3f5) SHA1(00be47fc76500843b6f5de63622edb1748ef5f7d) ) + ROM_LOAD( "kj-13.bin", 0x6000, 0x2000, CRC(0a0be3f5) SHA1(00be47fc76500843b6f5de63622edb1748ef5f7d) ) ROM_REGION( 0xc000, "tiles", 0 ) - ROM_LOAD( "bcrush10.bin", 0x0000, 0x4000, CRC(a62f4572) SHA1(4e38e175e25a955e5f83cac8c935163e2e861e94) ) - ROM_LOAD( "bcrush11.bin", 0x4000, 0x4000, CRC(79cc5644) SHA1(bc356065a2475d0e0921fc5c84fa46f6629caae7) ) - ROM_LOAD( "bcrush12.bin", 0x8000, 0x4000, CRC(8f09641d) SHA1(5ccc423b15148d96c0a348d41a3f4fff7bbae7b9) ) + ROM_LOAD( "bcrush10.bin", 0x0000, 0x4000, CRC(a62f4572) SHA1(4e38e175e25a955e5f83cac8c935163e2e861e94) ) + ROM_LOAD( "bcrush11.bin", 0x4000, 0x4000, CRC(79cc5644) SHA1(bc356065a2475d0e0921fc5c84fa46f6629caae7) ) + ROM_LOAD( "bcrush12.bin", 0x8000, 0x4000, CRC(8f09641d) SHA1(5ccc423b15148d96c0a348d41a3f4fff7bbae7b9) ) ROM_REGION( 0x18000, "sprites1", 0 ) - ROM_LOAD( "kj-4.bin", 0x00000, 0x8000, CRC(a499ea10) SHA1(cb671cc75b3c6029dd3529e62d83025f78b45271) ) - ROM_LOAD( "kj-6.bin", 0x08000, 0x8000, CRC(815f5c0a) SHA1(ad0b59eeebb2e57035a3f643ac0ef575569bec0f) ) - ROM_LOAD( "kj-5.bin", 0x10000, 0x8000, CRC(11111759) SHA1(504c62fc6778a4afa86cba69634652708535bef6) ) + ROM_LOAD( "kj-4.bin", 0x00000, 0x8000, CRC(a499ea10) SHA1(cb671cc75b3c6029dd3529e62d83025f78b45271) ) + ROM_LOAD( "kj-6.bin", 0x08000, 0x8000, CRC(815f5c0a) SHA1(ad0b59eeebb2e57035a3f643ac0ef575569bec0f) ) + ROM_LOAD( "kj-5.bin", 0x10000, 0x8000, CRC(11111759) SHA1(504c62fc6778a4afa86cba69634652708535bef6) ) ROM_REGION( 0xc000, "sprites2", 0 ) - ROM_LOAD( "kj-7.bin", 0x0000, 0x4000, CRC(121fcccb) SHA1(77f3e7e49787d6a893c5d8c0c3ac612b1180e866) ) - ROM_LOAD( "kj-9.bin", 0x4000, 0x4000, CRC(affbe3eb) SHA1(056111fc5b04ff14b114b5f724d02789c8e3ee10) ) - ROM_LOAD( "kj-8.bin", 0x8000, 0x4000, CRC(e057e72a) SHA1(3a85750c72caaa027f302dc6ca4086bdbd49b5ff) ) + ROM_LOAD( "kj-7.bin", 0x0000, 0x4000, CRC(121fcccb) SHA1(77f3e7e49787d6a893c5d8c0c3ac612b1180e866) ) + ROM_LOAD( "kj-9.bin", 0x4000, 0x4000, CRC(affbe3eb) SHA1(056111fc5b04ff14b114b5f724d02789c8e3ee10) ) + ROM_LOAD( "kj-8.bin", 0x8000, 0x4000, CRC(e057e72a) SHA1(3a85750c72caaa027f302dc6ca4086bdbd49b5ff) ) ROM_REGION( 0x420, "proms", 0 ) ROM_LOAD( "kjclr1.bin", 0x000, 0x100, CRC(c3378ac2) SHA1(264fdc0718b36e02fc1fc1064a9566e349f4bf25) ) // tile red