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
This commit is contained in:
David Haywood 2021-03-09 10:33:12 +00:00 committed by GitHub
parent 40acc597d4
commit 3a2d9b490e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 48 additions and 12 deletions

View File

@ -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)
{

View File

@ -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

View File

@ -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); }

View File

@ -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>
</mamelayout>