diff options
| author | 2025-07-07 22:23:05 +0200 | |
|---|---|---|
| committer | 2025-07-07 22:23:05 +0200 | |
| commit | 514b5c1268364ce90f500afd3227e55516b16795 (patch) | |
| tree | efcb7f48cbb7776d469e9e6882ab8e43a6650439 | |
| parent | 860a9cf5751a677af3dcd8aa05e68aa3c8f4ac6e (diff) | |
New systems marked not working
------------------------------
unknown Alba game [hammy]
New clones marked not working
-----------------------------
Hana Awase (set 2) [hammy]
- astrocorp/astrcorp.cpp: reversed 'CPU code' for gostopac, goes in game
| -rw-r--r-- | src/mame/astrocorp/astrcorp.cpp | 18 | ||||
| -rw-r--r-- | src/mame/mame.lst | 2 | ||||
| -rw-r--r-- | src/mame/seta/hanaawas.cpp | 46 | ||||
| -rw-r--r-- | src/mame/seta/speedatk.cpp | 24 |
4 files changed, 68 insertions, 22 deletions
diff --git a/src/mame/astrocorp/astrcorp.cpp b/src/mame/astrocorp/astrcorp.cpp index 7644af954a3..8e61163f604 100644 --- a/src/mame/astrocorp/astrcorp.cpp +++ b/src/mame/astrocorp/astrcorp.cpp @@ -48,7 +48,7 @@ Year + Game PCB ID CPU Video 07 Happy Farm (US.01.02B) _P_ROHS ASTRO V102PX-008 ASTRO V07 ASTRO ROHS BA21C00009 M835KK01 Encrypted 11 Happy Farm (IN.01.02B) P1 ASTRO V102PX-008 ASTRO V07 ASTRO ROHS BA21C00009 N011483 Encrypted 13 Monkey Land (EN.20B) N1 ASTRO V102PX-005 ASTRO V05 ? Encrypted -14 Magic Bomb (BR.71A) P1 ASTRO V102PX-014 ASTRO V07 ASTRO ROHS BA21C00009 JF13022 Encrypted +14 Magic Bomb (BR.71A) P1 (CS350P087) ASTRO V102PX-014 ASTRO V07 ASTRO ROHS BA21C00009 JF13022 Encrypted ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ Note: ASTRO F01 is a QuickLogic pASIC 3 FPGA (die-marked as QL3161A/1999). @@ -77,8 +77,7 @@ TODO: - hacher: need a redump of the sprite ROMs. - astoneag, dinodino, magibombd, magibombg: exiting from test menu goes haywire (requires a soft-reset with F3). - magibombg,m: need RE of the CPU code and correct EEPROM. -- gostopac: stops with 'S4' message during boot. Needs RE of the CPU code and emulation of its peculiarities. - when the "S4" message is on screen, enter PC=5f6 in the debugger to go to attract, but inputs and sound don't work. +- gostopac: needs verifying of inputs, outputs and layout. Sound doesn't seem 100% correct (Oki banking problem?) - monkeyl and clones: need RE of the CPU code, inputs and layout. After reset it initializes. - speedmst,a,b: needs verifying of inputs, outputs and layout. - cptshark: needs verifying of inputs and layout @@ -1016,7 +1015,7 @@ void zoo_state::zulu_map(address_map &map) void zoo_state::gostopac_map(address_map &map) { map(0x000000, 0x03ffff).rom().mirror(0x800000); // POST checks for ROM checksum at mirror - map(0xb00001, 0xb00001).rw(m_oki, FUNC(okim6295_device::read), FUNC(okim6295_device::write)); + map(0xb00000, 0xb00000).rw(m_oki, FUNC(okim6295_device::read), FUNC(okim6295_device::write)); map(0xb80000, 0xb80001).portr("CPUCODE_IN"); map(0xc00000, 0xc00fff).ram().share("spriteram"); map(0xc02000, 0xc02001).nopr().w(FUNC(zoo_state::draw_sprites_w)); @@ -1026,8 +1025,7 @@ void zoo_state::gostopac_map(address_map &map) map(0xc0e000, 0xc0e001).portr("EEPROM_IN"); map(0xc80000, 0xc801ff).ram().w(m_palette, FUNC(palette_device::write16)).share("palette"); map(0xd00000, 0xd03fff).ram().share("nvram"); // battery -// map(0xb00001, 0xb00001).w(FUNC(zoo_state::oki_bank_w)); // TODO once it runs -// map(0xc00000, 0xc00001).nopr().w(FUNC(zoo_state::screen_enable_w)).umask16(0x00ff); // unknown location + map(0xd80001, 0xd80001).w(FUNC(zoo_state::oki_bank_w)); } void zoo_state::monkeyl_map(address_map &map) @@ -2723,7 +2721,7 @@ ROM_START( gostopac ) ROM_LOAD( "93c46.u10", 0x0000, 0x0080, CRC(c5bfafa4) SHA1(b482fad6445487a5c14c4360c7b3b0b02f16944c) ) // TODO: factory default ROM_REGION16_LE( 0x02, "astro_cpucode", 0 ) - ROM_LOAD( "gostopac_cpucode.key", 0x00, 0x02, NO_DUMP ) + ROM_LOAD( "gostopac_cpucode.key", 0x00, 0x02, CRC(e14ff981) SHA1(322130632f4a29531f53755594f19876b371a223) ) ROM_END /*************************************************************************** @@ -3541,8 +3539,8 @@ void zoo_state::init_gostopac() // TODO: There's more stuff happening for addresses < 0x400... // override reset vector for now u16 * const rom = (u16 *)memregion("maincpu")->base(); - rom[0x00004/2] = 0x0000; - rom[0x00006/2] = 0x040e; + rom[0x00004/2] = 0x0400; + rom[0x00006/2] = 0x0400; rom[0x00010/2] = 0x0000; rom[0x00012/2] = 0x1594; @@ -3893,7 +3891,7 @@ GAMEL( 2001, magibombn, magibomb, magibombf, magibomb, magibomb_state, init_m // Heavier encryption GAMEL( 2004, zoo, 0, zoo, magibombd, zoo_state, init_zoo, ROT0, "Astro Corp.", "Zoo (Ver. ZO.02.D, Aug 27 2004)", MACHINE_SUPPORTS_SAVE | MACHINE_UNEMULATED_PROTECTION, layout_zoo ) // 10:53:44 Aug 27 2004 GAMEL( 2004, zulu, zoo, zulu, dinodino, zoo_state, init_zulu, ROT0, "Astro Corp.", "Zulu (Ver. 2.04J, Feb 3 2004)", MACHINE_SUPPORTS_SAVE | MACHINE_UNEMULATED_PROTECTION | MACHINE_NOT_WORKING, layout_zoo ) // 14:06:51 Feb 3 2004 -GAME( 2004, gostopac, 0, gostopac, dinodino, zoo_state, init_gostopac, ROT0, "Astro Corp.", "Go & Stop (Ver. EN1.10)", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING ) +GAME( 2004, gostopac, 0, gostopac, dinodino, zoo_state, init_gostopac, ROT0, "Astro Corp.", "Go & Stop (Ver. EN1.10)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING ) GAMEL( 2005, dinodino, 0, dinodino, dinodino, zoo_state, init_dinodino, ROT0, "Astro Corp.", "Dino Dino (Ver. A1.1, 01/13/2005)", MACHINE_SUPPORTS_SAVE | MACHINE_UNEMULATED_PROTECTION, layout_dinodino ) // 13/01.2005 10:59 GAMEL( 2005, astoneag, 0, astoneag, astoneag, astoneag_state, init_astoneag, ROT0, "Astro Corp.", "Stone Age (Astro, Ver. EN.03.A, 2005/02/21)", MACHINE_SUPPORTS_SAVE | MACHINE_UNEMULATED_PROTECTION, layout_astoneag ) GAME( 2005, monkeyl, 0, monkeyl, magibombd, zoo_state, init_monkeyl, ROT0, "Astro Corp.", "Monkey Land (Ver. AA.21.A)", MACHINE_SUPPORTS_SAVE | MACHINE_UNEMULATED_PROTECTION | MACHINE_NOT_WORKING ) // 18/02/2005 15:47 diff --git a/src/mame/mame.lst b/src/mame/mame.lst index 4c6bf275d22..4dd72fbb7f7 100644 --- a/src/mame/mame.lst +++ b/src/mame/mame.lst @@ -42286,6 +42286,7 @@ usclssic @source:seta/hanaawas.cpp hanaawas +hanaawasa @source:seta/hanadojo.cpp hanadojo @@ -42454,6 +42455,7 @@ daifugo hanaren2 harashi speedatk +unkalba @source:seta/speglsht.cpp speglsht diff --git a/src/mame/seta/hanaawas.cpp b/src/mame/seta/hanaawas.cpp index 2ef9d4ffbc1..efac331c881 100644 --- a/src/mame/seta/hanaawas.cpp +++ b/src/mame/seta/hanaawas.cpp @@ -25,12 +25,16 @@ NC |U|17| NC 1P "1" |V|18| 1P "2" + +TODO: +- hanaawasa reads inputs differently. Not implemented yet. ***************************************************************************/ #include "emu.h" #include "cpu/z80/z80.h" #include "sound/ay8910.h" + #include "emupal.h" #include "screen.h" #include "speaker.h" @@ -53,7 +57,7 @@ public: m_player(*this, "P%u", 1U) { } - void hanaawas(machine_config &config); + void hanaawas(machine_config &config) ATTR_COLD; protected: virtual void machine_start() override ATTR_COLD; @@ -70,11 +74,11 @@ private: required_ioport m_coins, m_start; required_ioport_array<2> m_player; - tilemap_t *m_bg_tilemap; + tilemap_t *m_bg_tilemap = nullptr; - uint8_t m_mux; - uint8_t m_coin_settings; - uint8_t m_coin_impulse; + uint8_t m_mux = 0; + uint8_t m_coin_settings = 0; + uint8_t m_coin_impulse = 0; uint8_t input_port_0_r(); void inputs_mux_w(uint8_t data); @@ -83,7 +87,7 @@ private: void key_matrix_status_w(uint8_t data); void irq_ack_w(uint8_t data); TILE_GET_INFO_MEMBER(get_bg_tile_info); - void palette(palette_device &palette) const; + void palette(palette_device &palette) const ATTR_COLD; uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); void portb_w(uint8_t data); void prg_map(address_map &map) ATTR_COLD; @@ -368,12 +372,11 @@ void hanaawas_state::machine_reset() void hanaawas_state::hanaawas(machine_config &config) { // basic machine hardware - Z80(config, m_maincpu, 18432000 / 6); // 3.072 MHz ??? + Z80(config, m_maincpu, 18.432_MHz_XTAL / 6); // 3.072 MHz ??? m_maincpu->set_addrmap(AS_PROGRAM, &hanaawas_state::prg_map); m_maincpu->set_addrmap(AS_IO, &hanaawas_state::io_map); m_maincpu->set_vblank_int("screen", FUNC(hanaawas_state::irq0_line_assert)); - // video hardware screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); screen.set_refresh_hz(60); @@ -389,7 +392,7 @@ void hanaawas_state::hanaawas(machine_config &config) // sound hardware SPEAKER(config, "mono").front_center(); - ay8910_device &aysnd(AY8910(config, "aysnd", 18432000 / 12)); + ay8910_device &aysnd(AY8910(config, "aysnd", 18.432_MHz_XTAL / 12)); aysnd.port_a_read_callback().set_ioport("DSW"); aysnd.port_b_write_callback().set(FUNC(hanaawas_state::portb_w)); aysnd.add_route(ALL_OUTPUTS, "mono", 0.50); @@ -421,7 +424,28 @@ ROM_START( hanaawas ) ROM_LOAD( "6g.bpr", 0x0120, 0x0100, CRC(4d94fed5) SHA1(3ea8e6fb95d5677991dc90fe7435f91e5320bb16) ) // I don't know what this is ROM_END -} // Anonymous namespace +ROM_START( hanaawasa ) // PC0-017-41 PCB + ROM_REGION( 0x8000, "maincpu", 0 ) + ROM_LOAD( "za51.1e", 0x0000, 0x2000, CRC(9f7d97cb) SHA1(d9172105acb268056ec53774c869cde91534aeb5) ) + ROM_LOAD( "za12.3e", 0x2000, 0x1000, CRC(b29222f6) SHA1(7cafdd66cfd9cc6c0e9284095ef77859f2dadb12) ) + ROM_LOAD( "za13.4e", 0x4000, 0x1000, CRC(8ba0ee3c) SHA1(dd5e9a1285ad19800d32ff029bb2ae4ea5ff8a57) ) + ROM_LOAD( "za34.6e", 0x6000, 0x1000, CRC(7dd06d73) SHA1(2172c5e31afec023c585cc7e3a01fce20a0fa01c) ) + + ROM_REGION( 0x4000, "tiles", 0 ) + ROM_LOAD( "za05.9a", 0x0000, 0x1000, CRC(304ae219) SHA1(c1eac4973a6aec9fd8e848c206870667a8bb0922) ) + ROM_LOAD( "za06.10a", 0x1000, 0x1000, CRC(765a4e5f) SHA1(b2f148c60cffb75d1a841be8b924a874bff22ce4) ) + ROM_LOAD( "za07.12a", 0x2000, 0x1000, CRC(4bffdd52) SHA1(c077506da0af589cdf366b3f1f1be9faa469771c) ) + ROM_LOAD( "za38.13a", 0x3000, 0x1000, CRC(7dfd9deb) SHA1(bcddaf74be8d2d845a6f08fb9ad2a84d57712a53) ) + + ROM_REGION( 0x0220, "proms", 0 ) + ROM_LOAD( "z2.13j", 0x0000, 0x0020, CRC(99300d85) SHA1(dd383db1f3c8c6d784121d32f20ffed3d83e2278) ) // color PROM, N82S123 + ROM_LOAD( "z1.2a", 0x0020, 0x0100, BAD_DUMP CRC(e26f21a2) SHA1(d0df06f833e0f97872d9d2ffeb7feef94aaaa02a) ) // lookup table, not dumped for this set but expected to match + ROM_LOAD( "6g.bpr", 0x0120, 0x0100, BAD_DUMP CRC(4d94fed5) SHA1(3ea8e6fb95d5677991dc90fe7435f91e5320bb16) ) // not dumped for this set +ROM_END + +} // anonymous namespace + +GAME( 1982, hanaawas, 0, hanaawas, hanaawas, hanaawas_state, empty_init, ROT0, "Seta Kikaku", "Hana Awase (set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1982, hanaawasa, hanaawas, hanaawas, hanaawas, hanaawas_state, empty_init, ROT0, "Seta Kikaku", "Hana Awase (set 2)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) -GAME( 1982, hanaawas, 0, hanaawas, hanaawas, hanaawas_state, empty_init, ROT0, "Seta Kikaku", "Hana Awase", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/seta/speedatk.cpp b/src/mame/seta/speedatk.cpp index f4451ccfe26..b50a0de143a 100644 --- a/src/mame/seta/speedatk.cpp +++ b/src/mame/seta/speedatk.cpp @@ -13,7 +13,8 @@ TODO: - daifugo: Improve IOX device (many hardwired reads); - It's possible that there is only one coin chute and not two, needs a real board to know more about it. - - hanaren2, harashi: Everything. They seem to run on similar hardware, similar address maps, etc. + - hanaren2, harashi, unkalba: Everything. They seem to run on similar hardware, similar + address maps, etc. How to play: - A to D select a card. @@ -764,6 +765,26 @@ ROM_START( harashi ) ROM_LOAD( "tbp24s10.6k", 0x0020, 0x0100, BAD_DUMP CRC(6bd28c7a) SHA1(6840481a9b496cb37a45895b73d3270e49212a3e) ) // lookup table ROM_END +// AAA-51 PCB with original Alba sticker +// NEC D780C-1, LH5164-12, HD46505SP, D8255AC-2, AY-3-8910A, X1-019B and X2-001C, 11 MHz XTAL, 2 banks of 8 switches and 1 bank of 4 switches +// strangely has Bonanza and Black Jack strings at the end of the program ROM +ROM_START( unkalba ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "zb002.001.h1", 0x0000, 0x8000, CRC(65eda973) SHA1(493e0a86209bc53157fa061aecd2cff3bb7bb993) ) // M27C256 + + ROM_REGION( 0x6000, "gfx1", ROMREGION_ERASE00 ) + // unused? + + ROM_REGION( 0x4000, "gfx2", 0 ) + ROM_LOAD( "zb0.004.c7", 0x0000, 0x1000, CRC(bd800379) SHA1(3db8930e2a1cac38169c31566ff000f28c0f8a4a) ) + ROM_LOAD( "zb0.005.e7", 0x1000, 0x1000, CRC(5526ce20) SHA1(01c4b364ed43824044a14b0d469018dfe14fdd26) ) + ROM_LOAD( "zb0.006.f7", 0x2000, 0x2000, CRC(4da4cb11) SHA1(101846ff103423f3be8eff4f5493c6e6ee41e8a8) ) + + ROM_REGION( 0x40, "proms", 0 ) + ROM_LOAD( "zb-1", 0x00, 0x20, CRC(6c511ba4) SHA1(a9190b7fc3c4af3a7f9941e49dde3b4b69a05aa1) ) + ROM_LOAD( "zb-2", 0x20, 0x20, CRC(e2357591) SHA1(197c94dc03e7f4e5873b226ebf11462ab1e59905) ) +ROM_END + } // anonymous namespace @@ -771,3 +792,4 @@ GAME( 1983, daifugo, 0, daifugo, daifugo, speedatk_state, empty_init, ROT90, GAME( 1984, speedatk, 0, speedatk, speedatk, speedatk_state, empty_init, ROT0, "Seta Kikaku", "Speed Attack! (Japan)", MACHINE_SUPPORTS_SAVE ) GAME( 1985, hanaren2, 0, harashi, speedatk, speedatk_state, empty_init, ROT0, "K & K Electron", "Hana no Ren-Chan II (Japan)", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING ) GAME( 1993, harashi, 0, harashi, speedatk, speedatk_state, empty_init, ROT0, "Asahi Bussan", "Hana Arashi (Japan)", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING ) +GAME( 1982, unkalba, 0, harashi, speedatk, speedatk_state, empty_init, ROT90, "Alba", "unknown Alba game", MACHINE_SUPPORTS_SAVE | MACHINE_UNEMULATED_PROTECTION ) |
