From c7e5a6fc6eb8ac1fa52c36fe035354ae9cdc9fe8 Mon Sep 17 00:00:00 2001 From: braintro Date: Mon, 13 Jan 2020 20:48:37 -0600 Subject: New working clone New working clone ------------------ The Last Apostle Puppetshow [smitdogg, David Haywood, The Dumping Union] --- src/emu/xtal.cpp | 1 + src/mame/drivers/homedata.cpp | 53 +++++++++++++++++++++++++++++++++++-------- src/mame/mame.lst | 3 ++- src/mame/video/homedata.cpp | 8 +++---- 4 files changed, 50 insertions(+), 15 deletions(-) diff --git a/src/emu/xtal.cpp b/src/emu/xtal.cpp index b9f28f9c137..da2c0e7d8bb 100644 --- a/src/emu/xtal.cpp +++ b/src/emu/xtal.cpp @@ -141,6 +141,7 @@ const double XTAL::known_xtals[] = { 8'867'236, /* 8.867236_MHz_XTAL RCA CDP1869 PAL color clock (~2x PAL subcarrier) */ 8'867'238, /* 8.867238_MHz_XTAL ETI-660 (~2x PAL subcarrier) */ 8'945'000, /* 8.945_MHz_XTAL Hit Me */ + 9'000'000, /* 9_MHz_XTAL Homedata PCBs */ 9'216'000, /* 9.216_MHz_XTAL Univac UTS 20 */ 9'600'000, /* 9.6_MHz_XTAL WD37C65 second clock (for 300 KB/sec rate) */ 9'828'000, /* 9.828_MHz_XTAL Universal PCBs */ diff --git a/src/mame/drivers/homedata.cpp b/src/mame/drivers/homedata.cpp index 8331cef3813..987e245ff54 100644 --- a/src/mame/drivers/homedata.cpp +++ b/src/mame/drivers/homedata.cpp @@ -13,6 +13,7 @@ driver by Phil Stroffolino and Nicola Salmoria *1988 A74 Mahjong Hourouki Okite *1988 X80 Mahjong Clinic *1988 M81 Mahjong Rokumeikan +*1988 E82 The Last Apostle Puppetshow *1988 J82 Reikai Doushi / Chinese Exorcist *1989 X83 Mahjong Kojin Kyouju (Private Teacher) 1989 S88 Battle Cry (not released in Japan) @@ -1313,11 +1314,11 @@ void homedata_state::mrokumei(machine_config &config) void homedata_state::reikaids(machine_config &config) { /* basic machine hardware */ - MC6809E(config, m_maincpu, 16000000/4); /* 4MHz ? */ + MC6809E(config, m_maincpu, 16_MHz_XTAL/4); /* MC68B09EP 4MHz ? */ m_maincpu->set_addrmap(AS_PROGRAM, &homedata_state::reikaids_map); m_maincpu->set_vblank_int("screen", FUNC(homedata_state::homedata_irq)); /* also triggered by the blitter */ - upd7807_device &audiocpu(UPD7807(config, m_audiocpu, 9000000)); /* 9MHz ? */ + upd7807_device &audiocpu(UPD7807(config, m_audiocpu, 9_MHz_XTAL)); /* 9MHz ? */ audiocpu.set_addrmap(AS_PROGRAM, &homedata_state::reikaids_upd7807_map); audiocpu.pa_in_cb().set(FUNC(homedata_state::reikaids_upd7807_porta_r)); audiocpu.pa_out_cb().set(FUNC(homedata_state::reikaids_upd7807_porta_w)); @@ -1351,7 +1352,7 @@ void homedata_state::reikaids(machine_config &config) GENERIC_LATCH_8(config, m_soundlatch); - YM2203(config, m_ymsnd, 16000000/4); /* 4 MHz */ + YM2203(config, m_ymsnd, 16_MHz_XTAL/4); /* 4 MHz */ m_ymsnd->port_a_read_callback().set_ioport("DSW1"); m_ymsnd->port_b_read_callback().set_ioport("DSW2"); m_ymsnd->add_route(0, "speaker", 0.25); @@ -1748,6 +1749,42 @@ ROM_START( mrokumei ) ROM_LOAD( "m81a08.bin", 0x0000, 0x20000, CRC(dba706b9) SHA1(467c8c3e12cd64002d2516dd117bc87d03448f49) ) ROM_END +ROM_START( lastapos ) + ROM_REGION( 0x02c000, "maincpu", 0 ) /* 6809 Code */ + ROM_LOAD( "e82a01.j14", 0x010000, 0x01c000, CRC(236475ae) SHA1(e14176682fda9195b2919868134ee8491f59badd) ) + ROM_CONTINUE( 0x00c000, 0x004000) + + ROM_REGION( 0x40000, "audiocpu", 0) /* uPD7807 code */ + ROM_LOAD( "x82a04.e20", 0x000000, 0x040000, CRC(52c9028a) SHA1(9d5e37b2f741d5c0e64ba3d674a72330058b96f2) ) + + ROM_REGION( 0x200000, "gfx1", 0 ) + ROM_LOAD( "x82a13.d2", 0x000000, 0x80000, CRC(954c8844) SHA1(94e09009d0ad40a62f2a92cd5bd500ffe2c4650a) ) + ROM_LOAD( "x82a14.d1", 0x080000, 0x80000, CRC(a748305e) SHA1(ee01025820a0915621d2c056d65e67a84a5f724c) ) + ROM_LOAD( "x82a15.f2", 0x100000, 0x80000, CRC(c50f7047) SHA1(13fcd1abaf88c759e747cf5f2c94a522276945c9) ) + ROM_LOAD( "x82a16.f1", 0x180000, 0x80000, CRC(b270094a) SHA1(edd4f7e3fd082c12758d82ea6eba2a060398b9ef) ) + + ROM_REGION( 0x200000, "gfx2", 0 ) + ROM_LOAD( "x82a09.d5", 0x000000, 0x80000, CRC(c496b187) SHA1(8ec4e09469c9f425681671f5ddb2d2d8768af42b) ) + ROM_LOAD( "x82a10.d4", 0x080000, 0x80000, CRC(4243fe28) SHA1(01260543a6f61f46ba56840c1b96ecedf637451c) ) + ROM_LOAD16_BYTE( "e82a12.f4", 0x100000, 0x20000, CRC(0e2cdd40) SHA1(254b4f1f986ad5fd9437a5c8bbaf6683d9edf02b) ) + ROM_LOAD16_BYTE( "e82a11.f5", 0x100001, 0x20000, CRC(141ced2e) SHA1(90b5be2e488ad2793750225ab20c1649d709b578) ) + + ROM_REGION( 0x80000, "gfx3", 0 ) + ROM_LOAD( "x82a08.d6", 0x000000, 0x80000, CRC(51cfd790) SHA1(208f00b1ccf420fe891dd30684481bf871c1aa63) ) + + ROM_REGION( 0x80000, "gfx4", 0 ) + ROM_LOAD( "x82a05.d8", 0x000000, 0x80000, CRC(fb65e0e0) SHA1(d560091cfad17af6539913db1279c62a680de4fc) ) + + ROM_REGION( 0x010000, "proms", 0 ) /* static palette */ + ROM_LOAD16_BYTE( "e82a18.e12", 0x00000, 0x8000, CRC(1f52a7aa) SHA1(55bbba5bfad1eee4872939d23ac643aa3074b3cf) ) + ROM_LOAD16_BYTE( "e82a17.e9", 0x00001, 0x8000, CRC(f91d77a1) SHA1(a650a68e7e75719819fd04dda86d7fc8849dfe7d) ) + + ROM_REGION( 0x040000, "blit_rom", 0 ) /* blitter data */ + ROM_LOAD( "x82a02.e19", 0x00000, 0x040000, CRC(90fe700f) SHA1(bf7f9955a2cb1af43a272bf3366ff8c09ff6f7e6) ) + + ROM_REGION( 0x0100, "user2", 0 ) + ROM_LOAD( "x82a19.l4", 0x0000, 0x0100, CRC(7ed947b4) SHA1(40c74a17976fab5d7f9da367083764934bb87281) ) // N82S129AN - priority (not used) +ROM_END ROM_START( reikaids ) ROM_REGION( 0x02c000, "maincpu", 0 ) /* 6809 Code */ @@ -1784,7 +1821,6 @@ ROM_START( reikaids ) ROM_LOAD( "x82a19.l4", 0x0000, 0x0100, CRC(7ed947b4) SHA1(40c74a17976fab5d7f9da367083764934bb87281) ) // N82S129AN - priority (not used) ROM_END - ROM_START( battlcry ) ROM_REGION( 0x02c000, "maincpu", 0 ) /* 6809 Code */ ROM_LOAD( "s88e01.j13", 0x010000, 0x01c000, CRC(b08438fe) SHA1(41a0fcdabee449081840848c45983984d7153d1b) ) @@ -1820,7 +1856,6 @@ ROM_START( battlcry ) ROM_LOAD( "s88a19.l5", 0x0000, 0x0100, CRC(c8ead41e) SHA1(d1e733691de9f9b71c9724de73086d36f381fc74) ) // priority (not used) ROM_END - ROM_START( battlcryc ) ROM_REGION( 0x02c000, "maincpu", 0 ) /* 6809 Code */ ROM_LOAD( "s88c01.j14", 0x010000, 0x01c000, CRC(4aa6d637) SHA1(e10c6c4a6adeb3b4837ebe5ff0a49ec1204b2e54) ) // 27C1000 @@ -1856,7 +1891,6 @@ ROM_START( battlcryc ) ROM_LOAD( "s88a19.l5", 0x0000, 0x0100, CRC(c8ead41e) SHA1(d1e733691de9f9b71c9724de73086d36f381fc74) ) // priority (not used) ROM_END - ROM_START( battlcryp ) // prototype presented at AOU 1989 ROM_REGION( 0x02c000, "maincpu", 0 ) /* 6809 Code */ ROM_LOAD( "s88_b01.ic31", 0x010000, 0x01c000, CRC(8dae51b5) SHA1(52a4ec602c9c5bb185dd66b4b98dbfaa91189ced) ) // 27C1000 @@ -1918,7 +1952,6 @@ ROM_START( battlcryp ) // prototype presented at AOU 1989 ROM_LOAD( "s88_a19.ic42", 0x0000, 0x0100, CRC(c8ead41e) SHA1(d1e733691de9f9b71c9724de73086d36f381fc74) ) // 82s129, priority (not used) ROM_END - ROM_START( mjkojink ) ROM_REGION( 0x01c000, "maincpu", 0 ) /* 6809 Code */ ROM_LOAD( "x83j01.16e", 0x010000, 0xc000, CRC(91f90376) SHA1(d452f538f4a1b774640ced49f0ab2784b112e8ba) ) @@ -1979,7 +2012,6 @@ ROM_START( mjjoship ) ROM_LOAD( "x73a03.12e", 0x0000, 0x20000, CRC(fd32eb8c) SHA1(584afb1ed2da776a4ff9c0b9eb2906c914b28928) ) ROM_END - ROM_START( vitaminc ) ROM_REGION( 0x01c000, "maincpu", 0 ) /* 6809 Code */ ROM_LOAD( "x90e01.bin", 0x010000, 0xc000, CRC(bc982525) SHA1(30f5e9ab27f799b895a3d979109e331603d94249) ) @@ -2092,7 +2124,6 @@ ROM_START( jogakuen ) ROM_LOAD( "a03.bin", 0x0000, 0x40000, CRC(bb1507ab) SHA1(465f45c9cae2d4e064b784cc5ba25b60839e4b5f) ) ROM_END - ROM_START( lemnangl ) ROM_REGION( 0x01c000, "maincpu", 0 ) /* 6809 Code */ ROM_LOAD( "x02_d01.16e", 0x010000, 0xc000, CRC(4c2fae05) SHA1(86516399bd1eb1565b446dfa0f9a974bde6f9af2) ) @@ -2224,7 +2255,9 @@ GAME( 1988, mjclinic, 0, mrokumei, mjhokite, homedata_state, empty_init, GAME( 1988, mjclinica, mjclinic, mrokumei, mjhokite, homedata_state, empty_init, ROT0, "Home Data", "Mahjong Clinic (Japan, set 2)", MACHINE_SUPPORTS_SAVE ) GAME( 1988, mrokumei, 0, mrokumei, mjhokite, homedata_state, empty_init, ROT0, "Home Data", "Mahjong Rokumeikan (Japan)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) -GAME( 1988, reikaids, 0, reikaids, reikaids, homedata_state, init_reikaids, ROT0, "Home Data", "Reikai Doushi (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, lastapos, 0, reikaids, reikaids, homedata_state, init_reikaids, ROT0, "Home Data", "The Last Apostle Puppetshow", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, reikaids, lastapos, reikaids, reikaids, homedata_state, init_reikaids, ROT0, "Home Data", "Reikai Doushi (Japan)", MACHINE_SUPPORTS_SAVE ) + GAME( 1991, battlcry, 0, reikaids, battlcry, homedata_state, init_battlcry, ROT0, "Home Data", "Battlecry (Version E)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) GAME( 1989, battlcryc, battlcry, reikaids, battlcry, homedata_state, init_battlcry, ROT0, "Home Data", "Battlecry (Version C)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) GAME( 1989, battlcryp, battlcry, reikaids, battlcry, homedata_state, init_battlcry, ROT0, "Home Data", "Battlecry (Prototype)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/mame.lst b/src/mame/mame.lst index 8371ec218ae..3358546e39d 100644 --- a/src/mame/mame.lst +++ b/src/mame/mame.lst @@ -15965,6 +15965,7 @@ battlcryc // (c) 1989 Home Data battlcryp // (c) 1989 Home Data hourouki // (c) 1987 Home Data jogakuen // (c) 1992 Windom corporation +lastapos // (c) 1988 Home Data lemnangl // (c) 1990 Home Data mhgaiden // (c) 1987 Home Data mirderby // (c) 1988 Home Data? @@ -15976,7 +15977,7 @@ mjkinjas // (c) 1991 Home Data mjkojink // (c) 1989 Home Data mjprivat // (c) 1991 Matoba mjyougo // (c) 1989 Home Data -mjjoship // (c) 1988 Home Data +mjjoship // (c) 1988 Home Data mrokumei // (c) 1988 Home Data reikaids // (c) 1988 Home Data vitaminc // (c) 1989 Home Data diff --git a/src/mame/video/homedata.cpp b/src/mame/video/homedata.cpp index 41b3bbfc7ce..de4fe30f65d 100644 --- a/src/mame/video/homedata.cpp +++ b/src/mame/video/homedata.cpp @@ -148,7 +148,7 @@ void homedata_state::reikaids_handleblit( int rom_base ) dest_addr = (dest_param & 0x3fff); flipx = (dest_param & 0x8000); -// logerror( "[blit %02x %04x %04x]\n",blitter_bank,source_addr,dest_param); + //logerror( "[blit %02x %04x %04x]\n",m_blitter_bank,source_addr,dest_param); if (m_visible_page == 0) base_addr += 0x2000 << 2; @@ -452,7 +452,7 @@ inline void homedata_state::reikaids_info( tile_data &tileinfo, int tile_index, } /* reikaids_gfx_bank[0]: - * -xxx.x--- layer#1 + * xxxx.x--- layer#1 * ----.-xxx layer#3 * * reikaids_gfx_bank[1]: @@ -471,12 +471,12 @@ TILE_GET_INFO_MEMBER(homedata_state::reikaids_get_info1_0) TILE_GET_INFO_MEMBER(homedata_state::reikaids_get_info0_1) { - reikaids_info(tileinfo, tile_index, 0, 1, ((m_gfx_bank[0] & 0x78) >> 3)); + reikaids_info(tileinfo, tile_index, 0, 1, ((m_gfx_bank[0]) >> 3)); } TILE_GET_INFO_MEMBER(homedata_state::reikaids_get_info1_1) { - reikaids_info(tileinfo, tile_index, 1, 1, ((m_gfx_bank[0] & 0x78) >> 3)); + reikaids_info(tileinfo, tile_index, 1, 1, ((m_gfx_bank[0]) >> 3)); } TILE_GET_INFO_MEMBER(homedata_state::reikaids_get_info0_2) -- cgit v1.2.3