From 8541cb9383d2dcbac9488884f12bdff968649b6a Mon Sep 17 00:00:00 2001 From: angelosa Date: Wed, 12 Apr 2017 01:35:46 +0200 Subject: Fixed Gun Card logic in Double Dealer [Angelo Salese] --- src/mame/drivers/ddealer.cpp | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/src/mame/drivers/ddealer.cpp b/src/mame/drivers/ddealer.cpp index 5ec30e5d35f..5d1798b0ef5 100644 --- a/src/mame/drivers/ddealer.cpp +++ b/src/mame/drivers/ddealer.cpp @@ -9,10 +9,9 @@ Appears to be a down-grade of the nmk16 HW TODO: - -When you use the "gun card" the game gives "minus" points, but points are always added, inaccurate protection? - -Understand better the video emulation and convert it to tilemaps; - -Coinage settings based on those listed at www.crazykong.com/dips/DoubleDealer.txt - coin/credit simulation need fixing; - -Decap + emulate MCU, required if the random number generation is going to be accurate; + - Fix MCU simulation for credit subtractions & add coinage settings (currently set to free play for convenience); + - Understand better the video emulation and convert it to tilemaps; + - Decap + emulate MCU, required if the random number generation is going to be accurate; ========================================================================================================== -- @@ -433,7 +432,7 @@ WRITE16_MEMBER(ddealer_state::mcu_shared_w) case 0x41e/2: break;//unused case 0x42e/2: PROT_JSR(0x42e,0x8007,0x6004); break;//cards on playfield/hand (ram side) case 0x43e/2: PROT_JSR(0x43e,0x801d,0x6176); break;//second player sub-routine - case 0x44e/2: PROT_JSR(0x44e,0x8028,0x6932); break;//"gun card" logic + case 0x44e/2: PROT_JSR(0x44e,0x8028,0x6f68); break;//"gun card" logic case 0x45e/2: PROT_JSR(0x45e,0x803e,0x6f90); break;//card delete case 0x46e/2: PROT_JSR(0x46e,0x8033,0x93c2); break;//card movements case 0x47e/2: PROT_JSR(0x47e,0x8026,0x67a0); break;//cards on playfield (vram side) @@ -526,7 +525,7 @@ static INPUT_PORTS_START( ddealer ) PORT_START("DSW1") PORT_DIPUNUSED_DIPLOC( 0x0001, IP_ACTIVE_LOW, "SW1:8" ) /* Listed as "Always Off" */ PORT_DIPUNUSED_DIPLOC( 0x0002, IP_ACTIVE_LOW, "SW1:7" ) /* Listed as "Always Off" */ - PORT_DIPNAME( 0x001c, 0x001c, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("SW1:6,5,4") + PORT_DIPNAME( 0x001c, 0x0000, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("SW1:6,5,4") PORT_DIPSETTING( 0x0010, DEF_STR( 4C_1C ) ) PORT_DIPSETTING( 0x0008, DEF_STR( 3C_1C ) ) PORT_DIPSETTING( 0x0018, DEF_STR( 2C_1C ) ) @@ -535,7 +534,7 @@ static INPUT_PORTS_START( ddealer ) PORT_DIPSETTING( 0x0014, DEF_STR( 1C_3C ) ) PORT_DIPSETTING( 0x0004, DEF_STR( 1C_4C ) ) PORT_DIPSETTING( 0x0000, DEF_STR( Free_Play ) ) - PORT_DIPNAME( 0x00e0, 0x00e0, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SW1:3,2,1") + PORT_DIPNAME( 0x00e0, 0x0000, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SW1:3,2,1") PORT_DIPSETTING( 0x0080, DEF_STR( 4C_1C ) ) PORT_DIPSETTING( 0x0040, DEF_STR( 3C_1C ) ) PORT_DIPSETTING( 0x00c0, DEF_STR( 2C_1C ) ) @@ -692,4 +691,4 @@ ROM_START( ddealer ) ROM_LOAD( "6.ic86", 0x100, 0x100, NO_DUMP ) ROM_END -GAME( 1991, ddealer, 0, ddealer, ddealer, ddealer_state, ddealer, ROT0, "NMK", "Double Dealer", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, ddealer, 0, ddealer, ddealer, ddealer_state, ddealer, ROT0, "NMK", "Double Dealer", MACHINE_SUPPORTS_SAVE | MACHINE_UNEMULATED_PROTECTION ) -- cgit v1.2.3