diff options
-rw-r--r-- | src/mame/drivers/jpmimpct.cpp | 15 | ||||
-rw-r--r-- | src/mame/drivers/jpmimpctsw.cpp | 15 | ||||
-rw-r--r-- | src/mame/includes/jpmimpct.h | 3 | ||||
-rw-r--r-- | 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 <unsigned N> DECLARE_READ_LINE_MEMBER( coinsense_r ) { return (m_coinstate >> N) & 1; } @@ -117,6 +119,7 @@ protected: private: template <unsigned N> DECLARE_WRITE_LINE_MEMBER(reel_optic_cb) { if (state) m_optic_pattern |= (1 << N); else m_optic_pattern &= ~(1 << N); } + template <unsigned N> DECLARE_WRITE_LINE_MEMBER(reel_optic_inv_cb) { if (!state) m_optic_pattern |= (1 << N); else m_optic_pattern &= ~(1 << N); } template <unsigned N> 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 @@ <color red="0.0" green="0.0" blue="0.0"/> </reel> </element> - <element name="reel3" defstate="0"> - <reel reelreversed="0" stateoffset="8193" numsymbolsvisible="1" symbollist="3 9,2 8,A 7,K 6,Q 5,J 4,9 3,8 2,7 A,6 K,5 Q,4 J"> + + <!-- should be a single wheel, not a reel, technically all symbols are partially visible, and can be illuminated, not just the 2 at either edge used for gameplay --> + <!-- as the right hand side of the wheel appears to rotate in the opposite direction, this is currently handled with 2 views, with one being shifted --> + <!-- technically this illusion could be expanded to 12 views until a proper wheel type is available --> + <element name="reel3_viewleft" defstate="0"> + <reel reelreversed="1" stateoffset="-1600" numsymbolsvisible="1" symbollist="3,4,5,6,7,8,9,J,Q,K,A,2"> <color red="0.0" green="0.0" blue="0.0"/> </reel> </element> + <element name="reel3_viewright" defstate="0"> + <reel reelreversed="0" stateoffset="-1000" numsymbolsvisible="1" symbollist="9,8,7,6,5,4,3,2,A,K,Q,J"> + <color red="0.0" green="0.0" blue="0.0"/> + </reel> + </element> + <element name="led_background"> <rect> <color red="0.4" green="0.0" blue="0.0"/> @@ -3228,6 +3238,7 @@ <element name="sreel3" ref="reel2" state="0"> <bounds x="390" y="480" width="80" height="100"/> </element> + <element ref="reel_background"> <bounds x="253" y="353" width="140" height="50"/> </element> @@ -3249,9 +3260,15 @@ <element name="lamp20" ref="reel_lamp_layer_5" state="0"> <bounds x="282.1667" y="363.4167" width="81.6667" height="29.1667"/> </element> - <element name="sreel4" ref="reel3" state="0"> - <bounds x="253" y="353" width="140" height="50"/> + + <!-- 2 views into the same wheel --> + <element name="sreel4" ref="reel3_viewleft" state="0"> + <bounds x="253" y="353" width="40" height="50"/> </element> + <element name="sreel4" ref="reel3_viewright" state="0"> + <bounds x="353" y="353" width="40" height="50"/> + </element> + <element name="lamp60" ref="lamp_60_1_border" state="0"> <bounds x="32" y="421" width="56" height="18"/> </element> @@ -4144,4 +4161,4 @@ <bounds x="112" y="589" width="76" height="16"/> </element> </view> -</mamelayout>
\ No newline at end of file +</mamelayout> |