From a08184c8f04c614d92d4a91029a3446baf04fefe Mon Sep 17 00:00:00 2001 From: Robbbert Date: Thu, 3 Mar 2022 16:36:02 +1100 Subject: New machines marked as NOT_WORKING ---------------------------------- Spellbinder --- src/mame/drivers/s7.cpp | 104 ++++++++++++++++++++++++++++++------------------ src/mame/drivers/s8.cpp | 2 +- src/mame/drivers/s9.cpp | 28 ++++++++----- src/mame/includes/s11.h | 2 +- src/mame/mame.lst | 1 + 5 files changed, 87 insertions(+), 50 deletions(-) diff --git a/src/mame/drivers/s7.cpp b/src/mame/drivers/s7.cpp index e2d75d88245..a8232286c72 100644 --- a/src/mame/drivers/s7.cpp +++ b/src/mame/drivers/s7.cpp @@ -35,37 +35,48 @@ and start playing. Most games are multiball - here are the key codes: -Game NUM Start game End ball +Game NUM Start game End ball ----------------------------------------------------------------------------------------------- -Black Knight 500 ASD hit 1 Hit X, hold A, hit X, hold S, hit X, hit D -Cosmic Gunfight 502 AS hit 1 AS -Jungle Lord 503 AS hit 1 Hit X, hold A, hit X, hit S -Pharaoh 504 AS hit 1 AS -Solar Fire 507 ASD hit 1 ASD -Thunderball 508 1 unknown -HyperBall 509 1 unknown -Barracora 510 ASD hit 1 ASD -Varkon 512 AX hit 1 AX -Time Fantasy 515 1 X -Warlok 516 1 X -Defender 517 hold up,left,right,hit 1 Hit X, hold Left, hit X, hold Up, Hit X, hit Right. -Joust 519 ABCD hit 1 unknown -Laser Cue 520 1 X -Firepower II 521 AS hit 1 AS -Wild Texas *(521) AS hit 1 AS -Starlight 530 AS hit 1 AS +Black Knight 500 ASD hit 1 Hit X, hold A, hit X, hold S, hit X, hit D +Cosmic Gunfight (Dragonfly) 502 AS hit 1 AS +Jungle Lord 503 AS hit 1 Hit X, hold A, hit X, hit S +Pharaoh 504 AS hit 1 AS +Cyclone (unreleased) 505 +Black Knight Limited Edition 506 (600 produced) +Solar Fire 507 ASD hit 1 ASD +Thunderball 508 1 unknown +HyperBall 509 1 unknown +Barracora 510 ASD hit 1 ASD +Varkon 512 AX hit 1 AX +Spellbinder (unreleased) 513 (mnw) +Reflex (unreleased) 514 +Time Fantasy 515 1 X +Warlok 516 1 X +Defender 517 hold up,left,right,hit 1 Hit X, hold Left, hit X, hold Up, Hit X, hit Right. +Joust 519 ABCD hit 1 unknown +Laser Cue 520 1 X +Firepower II 521 AS hit 1 AS +Wild Texas *(521) AS hit 1 AS +Guardian (unreleased) 523 +Star Fighter (unreleased) 524 +Rat Race 527 (10 produced, see s9.cpp) +Light Speed (unreleased) 528 +Starlight 530 AS hit 1 AS *Wild Texas is a clone/bootleg of Firepower II, and shows the same game number. Status: -- All machines are playable +- All machines are playable (except Spellbinder). - Thunderball: turn Speech DIP off, or you get corrupt sound. ToDo: - Some games have an additional alphanumeric display, or different display arrangements - Mechanical sounds vary per machine - Hyperball, status display is different - +- Spellbinder, appears to be a non-working beta, runs into the weeds. If num-0 pressed it + fills everything with FF and freezes. Uses another PIA at 4000. Display is bad. If + game started it will soon end by itself. Makes random loud noises even in attract + mode. Doesn't display the game number on first boot, unlike every other game. *****************************************************************************************/ @@ -146,7 +157,7 @@ private: u8 m_lamp_data = 0U; bool m_memprotect = 0; u8 m_game = 0U; - emu_timer* m_irq_timer; + emu_timer* m_irq_timer = 0; static const device_timer_id TIMER_IRQ = 0; required_device m_maincpu; required_device m_s6sound; @@ -173,6 +184,7 @@ void s7_state::main_map(address_map &map) map(0x2400, 0x2403).rw(m_pia24, FUNC(pia6821_device::read), FUNC(pia6821_device::write)); // lamps map(0x2800, 0x2803).rw(m_pia28, FUNC(pia6821_device::read), FUNC(pia6821_device::write)); // display map(0x3000, 0x3003).rw(m_pia30, FUNC(pia6821_device::read), FUNC(pia6821_device::write)); // inputs + map(0x4000, 0x4003).nopw(); // splbn writes here map(0x5000, 0x7fff).rom().region("maincpu", 0 ); } @@ -737,7 +749,7 @@ void s7_state::s7(machine_config &config) /*---------------------------- -/ Black Knight - Sys.7 (Game #500) +/ Black Knight (#500) /----------------------------*/ ROM_START(bk_l4) ROM_REGION(0x3000, "maincpu", ROMREGION_ERASEFF) @@ -785,7 +797,7 @@ ROM_START(bk_l3) ROM_END /*----------------------------------- -/ Cosmic Gunfight - Sys.7 (Game #502) +/ Cosmic Gunfight (#502) /-----------------------------------*/ ROM_START(csmic_l1) ROM_REGION(0x3000, "maincpu", ROMREGION_ERASEFF) @@ -799,7 +811,7 @@ ROM_START(csmic_l1) ROM_END /*-------------------------------- -/ Jungle Lord - Sys.7 (Game #503) +/ Jungle Lord (#503) /--------------------------------*/ ROM_START(jngld_l2) ROM_REGION(0x3000, "maincpu", ROMREGION_ERASEFF) @@ -830,7 +842,7 @@ ROM_START(jngld_l1) ROM_END /*-------------------------------- -/ Pharaoh - Sys.7 (Game #504) +/ Pharaoh (#504) /--------------------------------*/ ROM_START(pharo_l2) ROM_REGION(0x3000, "maincpu", ROMREGION_ERASEFF) @@ -848,7 +860,7 @@ ROM_START(pharo_l2) ROM_END /*----------------------------------- -/ Solar Fire - Sys.7 (Game #507) +/ Solar Fire (#507) /-----------------------------------*/ ROM_START(solar_l2) ROM_REGION(0x3000, "maincpu", ROMREGION_ERASEFF) @@ -862,7 +874,7 @@ ROM_START(solar_l2) ROM_END /*----------------------------------- -/ Thunderball - Sys.7 (Game #508) - Prototype +/ Thunderball (#508) - Prototype /-----------------------------------*/ ROM_START(thund_p1) // dated 1982-06-22 ROM_REGION(0x3000, "maincpu", ROMREGION_ERASEFF) @@ -908,7 +920,7 @@ ROM_END /*------------------------------- -/ Hyperball - Sys.7 - (Game #509) +/ Hyperball (#509) /-------------------------------*/ ROM_START(hypbl_l4) ROM_REGION(0x3000, "maincpu", ROMREGION_ERASEFF) @@ -942,7 +954,7 @@ ROM_END /*---------------------------- -/ Barracora- Sys.7 (Game #510) +/ Barracora (#510) /----------------------------*/ ROM_START(barra_l1) ROM_REGION(0x3000, "maincpu", ROMREGION_ERASEFF) @@ -956,7 +968,7 @@ ROM_START(barra_l1) ROM_END /*---------------------------- -/ Varkon- Sys.7 (Game #512) +/ Varkon (#512) /----------------------------*/ ROM_START(vrkon_l1) ROM_REGION(0x3000, "maincpu", ROMREGION_ERASEFF) @@ -966,11 +978,26 @@ ROM_START(vrkon_l1) ROM_LOAD("ic17.532", 0x2000, 0x1000, CRC(bb571a17) SHA1(fb0b7f247673dae0744d4188e1a03749a2237165) ) ROM_REGION(0x5000, "s6sound:audiocpu", ROMREGION_ERASEFF) - ROM_LOAD("sound12.716", 0x4800, 0x0800, CRC(d13db2bb) SHA1(862546bbdd1476906948f7324b7434c29df79baa)) + ROM_LOAD("sound12.716", 0x4800, 0x0800, CRC(d13db2bb) SHA1(862546bbdd1476906948f7324b7434c29df79baa) ) +ROM_END + +/*---------------------------------------------------------------------- +/ Spellbinder (#513) Not-working beta. +/ Reconstructed from the source by jessakey +/ No soundrom supplied, using one from hyperball (as PinMAME has done). +/----------------------------------------------------------------------*/ +ROM_START(splbn_l0) + ROM_REGION(0x3000, "maincpu", ROMREGION_ERASEFF) + ROM_LOAD("ic20.532", 0x0000, 0x1000, CRC(ff765ebf) SHA1(14d42735291c3f6e112f19bd49a39e00059cf907) ) + ROM_LOAD("ic14.532", 0x1000, 0x1000, CRC(940a817a) SHA1(2583ff6f6b6985d3ac85b4f120ebb002a10b65af) ) + ROM_LOAD("ic17.532", 0x2000, 0x1000, CRC(b38fde72) SHA1(17ef3ca354431307b6a79992c50cb2491b8a7631) ) + + ROM_REGION(0x5000, "s6sound:audiocpu", ROMREGION_ERASEFF) + ROM_LOAD("sound12.532", 0x4000, 0x1000, CRC(06051e5e) SHA1(f0ab4be812ceaf771829dd549f2a612156102a93) ) ROM_END /*----------------------------- -/ Time Fantasy - Sys.7 (Game #515) +/ Time Fantasy (#515) /-----------------------------*/ ROM_START(tmfnt_l5) ROM_REGION(0x3000, "maincpu", ROMREGION_ERASEFF) @@ -984,7 +1011,7 @@ ROM_START(tmfnt_l5) ROM_END /*---------------------------- -/ Warlok- Sys.7 (Game #516) +/ Warlok (#516) /----------------------------*/ ROM_START(wrlok_l3) ROM_REGION(0x3000, "maincpu", ROMREGION_ERASEFF) @@ -998,7 +1025,7 @@ ROM_START(wrlok_l3) ROM_END /*---------------------------- -/ Defender - Sys.7 (Game #517) +/ Defender (#517) /----------------------------*/ // Multiplex solenoid requires custom solenoid handler. ROM_START(dfndr_l4) @@ -1012,7 +1039,7 @@ ROM_START(dfndr_l4) ROM_END /*--------------------------- -/ Joust - Sys.7 (Game #519) +/ Joust (#519) /--------------------------*/ ROM_START(jst_l2) ROM_REGION(0x3000, "maincpu", ROMREGION_ERASEFF) @@ -1037,7 +1064,7 @@ ROM_START(jst_l1) ROM_END /*--------------------------- -/ Laser Cue - Sys.7 (Game #520) +/ Laser Cue (#520) /--------------------------*/ ROM_START(lsrcu_l2) ROM_REGION(0x3000, "maincpu", ROMREGION_ERASEFF) @@ -1051,7 +1078,7 @@ ROM_START(lsrcu_l2) ROM_END /*-------------------------------- -/ Firepower II- Sys.7 (Game #521) +/ Firepower II (#521) /-------------------------------*/ ROM_START(fpwr2_l2) ROM_REGION(0x3000, "maincpu", ROMREGION_ERASEFF) @@ -1080,7 +1107,7 @@ ROM_START(wldtexas) ROM_END /*----------------------------- -/ Star Light - Sys.7 (Game #530) +/ Star Light (#530) /-----------------------------*/ ROM_START(strlt_l1) ROM_REGION(0x3000, "maincpu", ROMREGION_ERASEFF) @@ -1111,6 +1138,7 @@ GAME( 1981, hypbl_l3, hypbl_l4, s7, hypbl, s7_state, empty_init, ROT0, "Williams GAME( 1981, hypbl_l2, hypbl_l4, s7, hypbl, s7_state, empty_init, ROT0, "Williams", "HyperBall (L-2)", MACHINE_IS_SKELETON_MECHANICAL ) GAME( 1981, barra_l1, 0, s7, barra, s7_state, empty_init, ROT0, "Williams", "Barracora (L-1)", MACHINE_IS_SKELETON_MECHANICAL ) GAME( 1982, vrkon_l1, 0, s7, vrkon, s7_state, empty_init, ROT0, "Williams", "Varkon (L-1)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 1982, splbn_l0, 0, s7, s7, s7_state, empty_init, ROT0, "Williams", "Spellbinder (L-0)", MACHINE_IS_SKELETON_MECHANICAL ) GAME( 1982, tmfnt_l5, 0, s7, tmfnt, s7_state, empty_init, ROT0, "Williams", "Time Fantasy (L-5)", MACHINE_IS_SKELETON_MECHANICAL ) GAME( 1982, wrlok_l3, 0, s7, wrlok, s7_state, empty_init, ROT0, "Williams", "Warlok (L-3)", MACHINE_IS_SKELETON_MECHANICAL ) GAME( 1982, dfndr_l4, 0, s7, dfndr, s7_state, empty_init, ROT0, "Williams", "Defender (L-4)", MACHINE_IS_SKELETON_MECHANICAL ) diff --git a/src/mame/drivers/s8.cpp b/src/mame/drivers/s8.cpp index 85ace5a91d5..f2db30dc38a 100644 --- a/src/mame/drivers/s8.cpp +++ b/src/mame/drivers/s8.cpp @@ -127,7 +127,7 @@ private: u8 m_row = 0U; bool m_data_ok = 0; u8 m_lamp_data = 0U; - emu_timer* m_irq_timer; + emu_timer* m_irq_timer = 0; static const device_timer_id TIMER_IRQ = 0; required_device m_maincpu; required_device m_audiocpu; diff --git a/src/mame/drivers/s9.cpp b/src/mame/drivers/s9.cpp index 16bd3df6149..474786bd9a5 100644 --- a/src/mame/drivers/s9.cpp +++ b/src/mame/drivers/s9.cpp @@ -20,13 +20,15 @@ Games: The first time run, the display will show the model number. Press F3 to clear this. -Rat Race is played in a one-player cocktail cabinet, the player uses a joystick -to tilt the board, to coax the ball into following lit arrows in a maze. After -a successful navigation, the maze changes to something else faster and harder. -It's almost an arcade game done mechanically. Obviously there is no way to emulate it -in its intended form. Probably would have been a nice game, but it never passed the -prototype stage. Currently it runs but the player display flashes randoms ones while -a sound is produced every couple of seconds. Bad byte at "maincpu" D7FF. +Rat Race is played in a cocktail cabinet, the player uses a joystick to tilt the + board, to coax the ball into following lit arrows in a maze. After a successful + navigation, the maze changes to something else faster and harder. It's almost an + arcade game done mechanically. Obviously there is no way to emulate it in its intended + form. Probably would have been a nice game, but it never passed the prototype stage. + Currently it runs but the player display flashes randoms ones while a sound is produced + every couple of seconds. Bad byte at "maincpu" D7FF. Technically the machine is a + mixture of sys7 and sys9, so it will require more work. + Here are the key codes to enable play: @@ -72,6 +74,7 @@ public: , m_io_outputs(*this, "out%d", 0U) { } + void init_rr() { m_game = 1; } void s9(machine_config &config); DECLARE_INPUT_CHANGED_MEMBER(main_nmi); @@ -101,11 +104,12 @@ private: u8 m_strobe = 0U; u8 m_row = 0U; + bool m_game = 0; bool m_comma12 = 0; bool m_comma34 = 0; bool m_data_ok = 0; u8 m_lamp_data = 0U; - emu_timer* m_irq_timer; + emu_timer* m_irq_timer = 0; static const device_timer_id TIMER_IRQ = 0; required_device m_maincpu; required_device m_s9sound; @@ -248,6 +252,11 @@ READ_LINE_MEMBER( s9_state::pia21_ca1_r ) void s9_state::sol2_w(u8 data) { + if (m_game) + { + m_comma12 = BIT(data, 7); + m_comma34 = BIT(data, 6); + } for (u8 i = 0; i < 8; i++) m_io_outputs[16U+i] = BIT(data, i); } @@ -418,7 +427,6 @@ void s9_state::s9(machine_config &config) /*----------------------------------------------------------------------------- / Rat Race - Sys.9 (Game #527)- Prototype (displays as #500L1) -/ IMPD shows this as System 7, however the writes to 0x2200 indicate System 9. /-----------------------------------------------------------------------------*/ ROM_START(ratrc_l1) ROM_REGION(0x4000, "maincpu", ROMREGION_ERASEFF) @@ -520,7 +528,7 @@ ROM_END } // Anonymous namespace // Novelty -GAME( 1983, ratrc_l1, 0, s9, s9, s9_state, empty_init, ROT0, "Williams", "Rat Race (L-1)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 1983, ratrc_l1, 0, s9, s9, s9_state, init_rr, ROT0, "Williams", "Rat Race (L-1)", MACHINE_IS_SKELETON_MECHANICAL ) // Pinball GAME( 1985, sorcr_l1, sorcr_l2, s9, sorcr, s9_state, empty_init, ROT0, "Williams", "Sorcerer (L-1)", MACHINE_IS_SKELETON_MECHANICAL ) diff --git a/src/mame/includes/s11.h b/src/mame/includes/s11.h index 2e9467d675d..cb2eeba2f6c 100644 --- a/src/mame/includes/s11.h +++ b/src/mame/includes/s11.h @@ -163,7 +163,7 @@ protected: u32 m_segment1 = 0U; u32 m_segment2 = 0U; u32 m_timer_count = 0U; - emu_timer* m_irq_timer; + emu_timer* m_irq_timer = 0; bool m_timer_irq_active = false; bool m_pia_irq_active = false; u8 m_lock1 = 0U; diff --git a/src/mame/mame.lst b/src/mame/mame.lst index d78ca4c45a1..9e297de09e2 100644 --- a/src/mame/mame.lst +++ b/src/mame/mame.lst @@ -37012,6 +37012,7 @@ jst_l2 // lsrcu_l2 // pharo_l2 // solar_l2 // +splbn_l0 // strlt_l1 // thund_p1 // thund_p2 // -- cgit v1.2.3