From 3a2d9b490ed8efd2bd575e4573009bd4f8705de3 Mon Sep 17 00:00:00 2001 From: David Haywood <28625134+DavidHaywood@users.noreply.github.com> Date: Tue, 9 Mar 2021 10:33:12 +0000 Subject: jpmimpct.cpp: fixed reel display in j6big50, added sound ROM used by other emulators to j6untch (#7847) * fixed reel display in j6big50, added sound ROM used by other emulators to j6untch * improve illusion of this being 2 sides of the same wheel * tweak reel offset --- src/mame/drivers/jpmimpct.cpp | 15 +++++++++++++++ src/mame/drivers/jpmimpctsw.cpp | 15 ++++++++------- src/mame/includes/jpmimpct.h | 3 +++ src/mame/layout/j6big50.lay | 27 ++++++++++++++++++++++----- 4 files changed, 48 insertions(+), 12 deletions(-) diff --git a/src/mame/drivers/jpmimpct.cpp b/src/mame/drivers/jpmimpct.cpp index 52180f481b1..dfe71a633aa 100644 --- a/src/mame/drivers/jpmimpct.cpp +++ b/src/mame/drivers/jpmimpct.cpp @@ -1369,6 +1369,21 @@ void jpmimpct_state::impact_nonvideo_altreels(machine_config &config) m_reel[5]->optic_handler().set(FUNC(jpmimpct_state::reel_optic_cb<5>)); } +void jpmimpct_state::impact_nonvideo_big50(machine_config &config) +{ + impact_nonvideo_base(config); + + REEL(config, m_reel[0], STARPOINT_48STEP_REEL, 1, 3, 0x09, 4); + m_reel[0]->optic_handler().set(FUNC(jpmimpct_state::reel_optic_cb<0>)); + REEL(config, m_reel[1], STARPOINT_48STEP_REEL, 1, 3, 0x09, 4); + m_reel[1]->optic_handler().set(FUNC(jpmimpct_state::reel_optic_cb<1>)); + REEL(config, m_reel[2], STARPOINT_48STEP_REEL, 1, 3, 0x09, 4); + m_reel[2]->optic_handler().set(FUNC(jpmimpct_state::reel_optic_cb<2>)); + // this is a wheel, not a standard reel, there are 2 open windows into it, and all other cards on it can be seen through grilles + // to render this properly in the layout would require a new type of element + REEL(config, m_reel[3], STARPOINT_48STEP_REEL, 1, 3, 0x09, 4); + m_reel[3]->optic_handler().set(FUNC(jpmimpct_state::reel_optic_inv_cb<3>)); +} void jpmimpct_video_state::impact_video(machine_config &config) { diff --git a/src/mame/drivers/jpmimpctsw.cpp b/src/mame/drivers/jpmimpctsw.cpp index 81710c93a82..3f31e11f5e6 100644 --- a/src/mame/drivers/jpmimpctsw.cpp +++ b/src/mame/drivers/jpmimpctsw.cpp @@ -10220,9 +10220,10 @@ ROM_START( j6twstdt ) ROM_END + #define j6untch_sound \ ROM_REGION( 0x80000, "upd", ROMREGION_ERASE00 ) \ - /* missing? */ + ROM_LOAD( "untouchablesnd.bin", 0x000000, 0x080000, CRC(b7fd3b56) SHA1(cd1a7f766d5ffa7c203248f5caa8bf7bd64cd4d6) ) ROM_START( j6untch ) ROM_REGION( 0x200000, "maincpu", ROMREGION_ERASEFF ) @@ -11600,11 +11601,11 @@ GAMEL( 199?, j6bnkrcla, j6bnkrcl, impact_nonvideo, j6bnkrcl, jpmimpct_state GAMEL( 199?, j6bnkrclb, j6bnkrcl, impact_nonvideo, j6bnkrcl, jpmimpct_state, empty_init, ROT0, "JPM", "Banker Club (JPM) (IMPACT) (V6, set 3)", GAME_FLAGS_SOUND, layout_j6bnkrcl ) GAMEL( 199?, j6bnkrclc, j6bnkrcl, impact_nonvideo, j6bnkrcl, jpmimpct_state, empty_init, ROT0, "JPM", "Banker Club (JPM) (IMPACT) (V2)", GAME_FLAGS_SOUND, layout_j6bnkrcl ) -GAMEL( 199?, j6big50, 0, impact_nonvideo, j6big50, jpmimpct_state, empty_init, ROT0, "JPM", "Big 50 (JPM) (IMPACT) (BF12 L12)", GAME_FLAGS_SOUND, layout_j6big50 ) -GAMEL( 199?, j6big50a, j6big50, impact_nonvideo, j6big50, jpmimpct_state, empty_init, ROT0, "JPM", "Big 50 (JPM) (IMPACT) (BF12P F12, Protocol)", GAME_FLAGS_SOUND, layout_j6big50 ) -GAMEL( 199?, j6big50b, j6big50, impact_nonvideo, j6big50, jpmimpct_state, empty_init, ROT0, "JPM", "Big 50 (JPM) (IMPACT) (BF12 AH12)", GAME_FLAGS_SOUND, layout_j6big50 ) -GAMEL( 199?, j6big50c, j6big50, impact_nonvideo, j6big50, jpmimpct_state, empty_init, ROT0, "JPM", "Big 50 (JPM) (IMPACT) (BF12 L12, Whitbread)", GAME_FLAGS_SOUND, layout_j6big50 ) -GAMEL( 199?, j6big50d, j6big50, impact_nonvideo, j6big50, jpmimpct_state, empty_init, ROT0, "JPM", "Big 50 (JPM) (IMPACT) (BF L8)", GAME_FLAGS_SOUND, layout_j6big50 ) +GAMEL( 199?, j6big50, 0, impact_nonvideo_big50, j6big50, jpmimpct_state, empty_init, ROT0, "JPM", "Big 50 (JPM) (IMPACT) (BF12 L12)", GAME_FLAGS_WORKING, layout_j6big50 ) +GAMEL( 199?, j6big50a, j6big50, impact_nonvideo_big50, j6big50, jpmimpct_state, empty_init, ROT0, "JPM", "Big 50 (JPM) (IMPACT) (BF12P F12, Protocol)", GAME_FLAGS_WORKING, layout_j6big50 ) +GAMEL( 199?, j6big50b, j6big50, impact_nonvideo_big50, j6big50, jpmimpct_state, empty_init, ROT0, "JPM", "Big 50 (JPM) (IMPACT) (BF12 AH12)", GAME_FLAGS_WORKING, layout_j6big50 ) +GAMEL( 199?, j6big50c, j6big50, impact_nonvideo_big50, j6big50, jpmimpct_state, empty_init, ROT0, "JPM", "Big 50 (JPM) (IMPACT) (BF12 L12, Whitbread)", GAME_FLAGS_WORKING, layout_j6big50 ) +GAMEL( 199?, j6big50d, j6big50, impact_nonvideo_big50, j6big50, jpmimpct_state, empty_init, ROT0, "JPM", "Big 50 (JPM) (IMPACT) (BF L8)", GAME_FLAGS_WORKING, layout_j6big50 ) GAMEL( 199?, j6bigbuk, 0, impact_nonvideo, j6bigbuk, jpmimpct_state, empty_init, ROT0, "JPM", "Big Bucks (JPM) (IMPACT) (set 1)", GAME_FLAGS_WORKING, layout_j6bigbukc ) GAMEL( 199?, j6bigbuka, j6bigbuk, impact_nonvideo, j6bigbuk, jpmimpct_state, empty_init, ROT0, "JPM", "Big Bucks (JPM) (IMPACT) (set 2)", GAME_FLAGS_WORKING, layout_j6bigbukc ) @@ -11990,7 +11991,7 @@ GAME( 199?, j6sonich, j6sonic, impact_nonvideo, j6sonic, jpmimpct_state, GAME( 199?, j6roof, 0, impact_nonvideo, j6roof, jpmimpct_state, empty_init, ROT0, "Ace", "Thru' The Roof (Ace) (IMPACT) (set 1)", GAME_FLAGS ) GAME( 199?, j6roofa, j6roof, impact_nonvideo, j6roof, jpmimpct_state, empty_init, ROT0, "Ace", "Thru' The Roof (Ace) (IMPACT) (set 2)", GAME_FLAGS ) -GAMEL( 199?, j6untch, 0, impact_nonvideo, j6untch, jpmimpct_state, empty_init, ROT0, "JPM", "Untouchable (JPM) (IMPACT) (UN3B LO6)", GAME_FLAGS, layout_j6untch ) //Works but no sound, and may hang +GAMEL( 199?, j6untch, 0, impact_nonvideo, j6untch, jpmimpct_state, empty_init, ROT0, "JPM", "Untouchable (JPM) (IMPACT) (UN3B LO6)", GAME_FLAGS, layout_j6untch ) GAMEL( 199?, j6untcha, j6untch, impact_nonvideo, j6untch, jpmimpct_state, empty_init, ROT0, "JPM", "Untouchable (JPM) (IMPACT) (UN3BI LO6)", GAME_FLAGS, layout_j6untch ) // VFD issues, but VFD is likely unused as it calls the game 'Some Indeterminate Club Machine' with clear placeholder text diff --git a/src/mame/includes/jpmimpct.h b/src/mame/includes/jpmimpct.h index 8511ea487be..c99687e302e 100644 --- a/src/mame/includes/jpmimpct.h +++ b/src/mame/includes/jpmimpct.h @@ -74,6 +74,8 @@ public: void impact_nonvideo(machine_config &config); void impact_nonvideo_altreels(machine_config &config); + void impact_nonvideo_big50(machine_config &config); + DECLARE_INPUT_CHANGED_MEMBER(coin_changed); template DECLARE_READ_LINE_MEMBER( coinsense_r ) { return (m_coinstate >> N) & 1; } @@ -117,6 +119,7 @@ protected: private: template DECLARE_WRITE_LINE_MEMBER(reel_optic_cb) { if (state) m_optic_pattern |= (1 << N); else m_optic_pattern &= ~(1 << N); } + template DECLARE_WRITE_LINE_MEMBER(reel_optic_inv_cb) { if (!state) m_optic_pattern |= (1 << N); else m_optic_pattern &= ~(1 << N); } template TIMER_DEVICE_CALLBACK_MEMBER(coinoff) { m_coinstate |= (1 << N); logerror("coin state lowered %d\n", N+1); } diff --git a/src/mame/layout/j6big50.lay b/src/mame/layout/j6big50.lay index 0b0e239081b..074857f4659 100644 --- a/src/mame/layout/j6big50.lay +++ b/src/mame/layout/j6big50.lay @@ -2947,11 +2947,21 @@ - - + + + + + + + + + + + + @@ -3228,6 +3238,7 @@ + @@ -3249,9 +3260,15 @@ - - + + + + + + + + @@ -4144,4 +4161,4 @@ - \ No newline at end of file + -- cgit v1.2.3