From 2750af7c63ecded05bd059d49e44ced91fb294ec Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C3=ABl=20Banaan=20Ananas?= Date: Thu, 15 Jul 2010 18:14:32 +0000 Subject: [PATCH] mt 'bug' fix, coinage info into source --- src/mame/drivers/punchout.c | 404 +++++++++++++++++++++++++++++++++--- 1 file changed, 374 insertions(+), 30 deletions(-) diff --git a/src/mame/drivers/punchout.c b/src/mame/drivers/punchout.c index 67e74429307..7453ae9e7ae 100644 --- a/src/mame/drivers/punchout.c +++ b/src/mame/drivers/punchout.c @@ -508,42 +508,386 @@ static INPUT_PORTS_START( armwrest ) PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_COIN2 ) PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_SERVICE1 ) - /* See http://www.mametesters.org/mantis/view.php?id=790 for more info about coinage */ + /* Coinage: + + R18 (Coin Slots setting) determines which table is used. + + L = number of credits per coin for left coin slot + R = number of credits per coin for right coin slot + C = number of credits needed for one play + +Table 1 (for 2 Coin Slots): + + DSW1 DSW2 +bit 3210 5432 L R C + + 0000 0000 1 1 1 + 0000 0001 8 1 1 + 0000 0010 2 1 1 + 0000 0011 8 3 3 + 0000 0100 3 1 2 + 0000 0101 3 12 4 + 0000 0110 1 2 2 + 0000 0111 3 24 2 + 0000 1000 1 3 3 + 0000 1001 4 1 3 + 0000 1010 1 4 4 + 0000 1011 3 3 4 + 0000 1100 1 5 5 + 0000 1101 1 1 1 + 0000 1110 2 3 3 + 0000 1111 5 5 3 + + 0001 0000 1 2 1 + 0001 0001 1 8 1 + 0001 0010 2 2 1 + 0001 0011 3 8 3 + 0001 0100 3 2 1 + 0001 0101 12 3 4 + 0001 0110 1 4 2 + 0001 0111 24 3 2 + 0001 1000 1 6 3 + 0001 1001 1 4 3 + 0001 1010 1 8 4 + 0001 1011 3 3 4 + 0001 1100 1 10 5 + 0001 1101 1 1 2 + 0001 1110 2 6 3 + 0001 1111 5 5 4 + + 0010 0000 1 3 1 + 0010 0001 9 1 1 + 0010 0010 2 3 1 + 0010 0011 3 4 4 + 0010 0100 3 3 1 + 0010 0101 4 4 1 + 0010 0110 1 6 2 + 0010 0111 3 1 2 + 0010 1000 1 9 3 + 0010 1001 10 1 3 + 0010 1010 1 12 4 + 0010 1011 1 1 6 + 0010 1100 1 15 5 + 0010 1101 2 2 1 + 0010 1110 2 9 3 + 0010 1111 2 2 5 + + 0011 0000 1 4 1 + 0011 0001 1 9 1 + 0011 0010 2 4 1 + 0011 0011 4 3 4 + 0011 0100 3 4 1 + 0011 0101 4 4 1 + 0011 0110 1 8 2 + 0011 0111 1 3 2 + 0011 1000 1 12 3 + 0011 1001 1 10 3 + 0011 1010 1 16 4 + 0011 1011 1 1 6 + 0011 1100 1 20 5 + 0011 1101 1 1 4 + 0011 1110 2 12 3 + 0011 1111 8 8 1 + + 0100 0000 1 5 1 + 0100 0001 10 1 1 + 0100 0010 2 5 1 + 0100 0011 2 5 5 + 0100 0100 3 5 1 + 0100 0101 4 4 1 + 0100 0110 1 10 2 + 0100 0111 10 1 2 + 0100 1000 1 15 3 + 0100 1001 20 1 3 + 0100 1010 1 20 4 + 0100 1011 16 1 2 + 0100 1100 1 25 5 + 0100 1101 1 1 5 + 0100 1110 2 15 3 + 0100 1111 8 8 3 + + 0101 0000 1 6 1 + 0101 0001 1 10 1 + 0101 0010 2 6 1 + 0101 0011 5 2 5 + 0101 0100 3 6 1 + 0101 0101 4 5 1 + 0101 0110 1 12 2 + 0101 0111 1 10 2 + 0101 1000 1 18 3 + 0101 1001 1 20 3 + 0101 1010 1 24 4 + 0101 1011 20 20 0 Not a "Freeplay": you MUST insert a coin! + 0101 1100 1 30 5 + 0101 1101 3 3 3 + 0101 1110 2 18 1 + 0101 1111 9 9 1 + + 0110 0000 2 1 2 + 0110 0001 12 1 1 + 0110 0010 4 1 2 + 0110 0011 10 2 1 + 0110 0100 6 1 2 + 0110 0101 3 8 2 + 0110 0110 1 1 2 + 0110 0111 3 2 4 + 0110 1000 2 3 6 + 0110 1001 9 4 12 + 0110 1010 1 2 4 + 0110 1011 1 1 1 + 0110 1100 2 5 10 + 0110 1101 4 4 1 + 0110 1110 4 3 6 + 0110 1111 9 9 2 + + 0111 0000 3 1 3 + 0111 0001 1 12 1 + 0111 0010 6 1 3 + 0111 0011 2 10 1 + 0111 0100 9 1 3 + 0111 0101 8 3 2 + 0111 0110 3 2 6 + 0111 0111 2 3 4 + 0111 1000 1 1 3 + 0111 1001 4 9 12 + 0111 1010 3 4 12 + 0111 1011 1 1 1 + 0111 1100 3 5 15 + 0111 1101 6 6 1 + 0111 1110 2 2 3 + 0111 1111 10 10 1 + + 1000 0000 4 1 4 + 1000 0001 3 2 2 + 1000 0010 8 1 4 + 1000 0011 12 2 1 + 1000 0100 12 1 4 + 1000 0101 5 5 1 + 1000 0110 2 1 4 + 1000 0111 3 3 2 + 1000 1000 4 3 12 + 1000 1001 4 2 3 + 1000 1010 1 1 4 + 1000 1011 1 1 1 + 1000 1100 4 5 20 + 1000 1101 1 1 6 + 1000 1110 8 3 12 + 1000 1111 10 10 3 + + 1001 0000 5 1 5 + 1001 0001 2 3 2 + 1001 0010 10 1 5 + 1001 0011 2 12 1 + 1001 0100 15 1 5 + 1001 0101 5 5 1 + 1001 0110 5 2 10 + 1001 0111 3 3 2 + 1001 1000 5 3 15 + 1001 1001 2 4 3 + 1001 1010 5 4 20 + 1001 1011 1 1 1 + 1001 1100 1 1 5 + 1001 1101 2 2 3 + 1001 1110 10 3 15 + 1001 1111 11 11 1 + + 1010 0000 3 2 3 + 1010 0001 5 2 2 + 1010 0010 6 2 3 + 1010 0011 3 4 2 + 1010 0100 9 2 3 + 1010 0101 6 6 1 + 1010 0110 3 4 6 + 1010 0111 4 9 6 + 1010 1000 1 2 3 + 1010 1001 10 2 3 + 1010 1010 3 8 12 + 1010 1011 1 1 1 + 1010 1100 2 10 15 + 1010 1101 5 5 1 + 1010 1110 2 2 3 + 1010 1111 11 11 3 + + 1011 0000 3 5 3 + 1011 0001 2 5 2 + 1011 0010 6 5 3 + 1011 0011 4 3 2 + 1011 0100 9 5 3 + 1011 0101 6 6 1 + 1011 0110 3 10 6 + 1011 0111 9 4 6 + 1011 1000 1 5 3 + 1011 1001 2 10 3 + 1011 1010 3 20 12 + 1011 1011 1 1 1 + 1011 1100 3 25 15 + 1011 1101 3 3 2 + 1011 1110 2 5 3 + 1011 1111 12 12 1 + + 1100 0000 4 5 4 + 1100 0001 9 2 2 + 1100 0010 8 5 4 + 1100 0011 3 8 4 + 1100 0100 12 5 4 + 1100 0101 3 12 2 + 1100 0110 2 5 4 + 1100 0111 8 9 6 + 1100 1000 4 15 12 + 1100 1001 11 2 3 + 1100 1010 1 5 4 + 1100 1011 1 1 1 + 1100 1100 4 25 20 + 1100 1101 1 1 3 + 1100 1110 8 15 12 + 1100 1111 20 20 3 + + 1101 0000 4 1 1 + 1101 0001 2 9 2 + 1101 0010 4 2 1 + 1101 0011 8 3 4 + 1101 0100 4 3 1 + 1101 0101 12 3 2 + 1101 0110 8 1 2 + 1101 0111 9 8 6 + 1101 1000 12 1 3 + 1101 1001 2 11 3 + 1101 1010 12 2 3 + 1101 1011 1 1 1 + 1101 1100 20 1 5 + 1101 1101 5 5 2 + 1101 1110 18 2 3 + 1101 1111 3 3 4 + + 1110 0000 5 5 1 + 1110 0001 4 4 3 + 1110 0010 5 2 1 + 1110 0011 11 2 1 + 1110 0100 5 3 1 + 1110 0101 3 24 4 + 1110 0110 10 1 2 + 1110 0111 1 6 4 + 1110 1000 15 1 3 + 1110 1001 9 8 12 + 1110 1010 20 1 4 + 1110 1011 1 1 1 + 1110 1100 25 1 5 + 1110 1101 4 4 3 + 1110 1110 20 4 4 + 1110 1111 20 20 0 Not a "Freeplay": you MUST insert a coin! + + 1111 0000 6 1 1 + 1111 0001 3 4 3 + 1111 0010 6 2 1 + 1111 0011 2 11 1 + 1111 0100 6 3 1 + 1111 0101 24 3 1 + 1111 0110 12 1 2 + 1111 0111 6 1 4 + 1111 1000 18 1 3 + 1111 1001 8 9 12 + 1111 1010 24 1 4 + 1111 1011 1 1 1 + 1111 1100 15 2 3 + 1111 1101 3 3 4 + 1111 1110 "Freeplay" + 1111 1111 "Freeplay" + + +Table 2 (for 1 Coin Slot): + + DSW1 DSW2 +bit 3210 5432 L R C + + 0000 0xxx 1 1 1 + 0000 1xxx 5 5 3 + + 0001 0xxx 1 1 2 + 0001 1xxx 5 5 4 + + 0010 0xxx 2 2 1 + 0010 1xxx 2 2 5 + + 0011 0xxx 1 1 4 + 0011 1xxx 8 8 1 + + 0100 0xxx 1 1 5 + 0100 1xxx 8 8 3 + + 0101 0xxx 3 3 1 + 0101 1xxx 9 9 1 + + 0110 0xxx 4 4 1 + 0110 1xxx 9 9 2 + + 0111 0xxx 6 6 1 + 0111 1xxx 10 10 1 + + 1000 0xxx 1 1 6 + 1000 1xxx 10 10 3 + + 1001 0xxx 5 1 5 + 1001 1xxx 11 11 1 + + 1010 0xxx 5 5 1 + 1010 1xxx 11 11 3 + + 1011 0xxx 3 3 2 + 1011 1xxx 12 12 1 + + 1100 0xxx 1 1 3 + 1100 1xxx 20 20 3 + + 1101 0xxx 5 5 2 + 1101 1xxx 3 3 4 + + 1110 0xxx 4 4 3 + 1110 1xxx 20 20 0 Not a "Freeplay": you MUST insert a coin! + + 1111 xxxx "Freeplay" + + */ + PORT_MODIFY("DSW2") - PORT_DIPNAME( 0x1c, 0x00, "Coinage 2" ) PORT_DIPLOCATION("SW2:!3,!4,!5") //K,L,M - PORT_DIPSETTING( 0x00, "0" ) - PORT_DIPSETTING( 0x04, "4" ) - PORT_DIPSETTING( 0x08, "8" ) - PORT_DIPSETTING( 0x0c, "c" ) - PORT_DIPSETTING( 0x10, "10" ) - PORT_DIPSETTING( 0x14, "14" ) - PORT_DIPSETTING( 0x18, "18" ) - PORT_DIPSETTING( 0x1c, "1c" ) - PORT_DIPNAME( 0x20, 0x00, "Coinage 3" ) PORT_DIPLOCATION("SW2:!6") //N - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x20, DEF_STR( On ) ) + PORT_DIPNAME( 0x3c, 0x00, "Coinage 2" ) PORT_DIPLOCATION("SW2:!3,!4,!5,!6") // K,L,M,N + PORT_DIPSETTING( 0x00, "0000" ) + PORT_DIPSETTING( 0x04, "0001" ) + PORT_DIPSETTING( 0x08, "0010" ) + PORT_DIPSETTING( 0x0c, "0011" ) + PORT_DIPSETTING( 0x10, "0100" ) + PORT_DIPSETTING( 0x14, "0101" ) + PORT_DIPSETTING( 0x18, "0110" ) + PORT_DIPSETTING( 0x1c, "0111" ) + PORT_DIPSETTING( 0x20, "1000" ) + PORT_DIPSETTING( 0x24, "1001" ) + PORT_DIPSETTING( 0x28, "1010" ) + PORT_DIPSETTING( 0x2c, "1011" ) + PORT_DIPSETTING( 0x30, "1100" ) + PORT_DIPSETTING( 0x34, "1101" ) + PORT_DIPSETTING( 0x38, "1110" ) + PORT_DIPSETTING( 0x3c, "1111" ) PORT_DIPNAME( 0x40, 0x00, "Rematches" ) PORT_DIPLOCATION("SW2:!7") PORT_DIPSETTING( 0x40, "3" ) PORT_DIPSETTING( 0x00, "7" ) PORT_MODIFY("DSW1") - PORT_DIPNAME( 0x0f, 0x00, "Coinage 1" ) PORT_DIPLOCATION("SW1:!1,!2,!3,!4") //A,B,C,D - PORT_DIPSETTING( 0x00, "0" ) - PORT_DIPSETTING( 0x01, "1" ) - PORT_DIPSETTING( 0x02, "2" ) - PORT_DIPSETTING( 0x03, "3" ) - PORT_DIPSETTING( 0x04, "4" ) - PORT_DIPSETTING( 0x05, "5" ) - PORT_DIPSETTING( 0x06, "6" ) - PORT_DIPSETTING( 0x07, "7" ) - PORT_DIPSETTING( 0x08, "8" ) - PORT_DIPSETTING( 0x09, "9" ) - PORT_DIPSETTING( 0x0a, "a" ) - PORT_DIPSETTING( 0x0b, "b" ) - PORT_DIPSETTING( 0x0c, "c" ) - PORT_DIPSETTING( 0x0d, "d" ) - PORT_DIPSETTING( 0x0e, "e" ) - PORT_DIPSETTING( 0x0f, "f" ) + PORT_DIPNAME( 0x0f, 0x00, "Coinage 1" ) PORT_DIPLOCATION("SW1:!1,!2,!3,!4") // A,B,C,D + PORT_DIPSETTING( 0x00, "0000" ) + PORT_DIPSETTING( 0x01, "0001" ) + PORT_DIPSETTING( 0x02, "0010" ) + PORT_DIPSETTING( 0x03, "0011" ) + PORT_DIPSETTING( 0x04, "0100" ) + PORT_DIPSETTING( 0x05, "0101" ) + PORT_DIPSETTING( 0x06, "0110" ) + PORT_DIPSETTING( 0x07, "0111" ) + PORT_DIPSETTING( 0x08, "1000" ) + PORT_DIPSETTING( 0x09, "1001" ) + PORT_DIPSETTING( 0x0a, "1010" ) + PORT_DIPSETTING( 0x0b, "1011" ) + PORT_DIPSETTING( 0x0c, "1100" ) + PORT_DIPSETTING( 0x0d, "1101" ) + PORT_DIPSETTING( 0x0e, "1110" ) + PORT_DIPSETTING( 0x0f, "1111" ) PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(punchout_vlm5030_busy_r, NULL) /* VLM5030 busy signal */ PORT_DIPNAME( 0x40, 0x00, "Coin Slots" ) PORT_DIPLOCATION("R18:!1") /* R18 resistor */ PORT_DIPSETTING( 0x40, "1" )