Hook up AY on unkch hardware for sound and DSW1/DSW2 [Vas Crabb]

Document more DIP switches [Bad A. Billy, Vas Crabb]
This commit is contained in:
Vas Crabb 2015-03-20 18:45:42 +11:00
parent 47d6c80bd9
commit 88ce8a6844
2 changed files with 180 additions and 123 deletions

View File

@ -933,14 +933,6 @@ static ADDRESS_MAP_START( wcat3_map, AS_PROGRAM, 8, goldstar_state )
ADDRESS_MAP_END
/*
READ8_MEMBER(unkch_state::unk_r)
{
return 0xff;
}
*/
/* newer / more capable hw */
static ADDRESS_MAP_START( unkch_map, AS_PROGRAM, 8, unkch_state )
AM_RANGE(0x0000, 0x9fff) AM_ROM
@ -967,6 +959,23 @@ static ADDRESS_MAP_START( unkch_map, AS_PROGRAM, 8, unkch_state )
AM_RANGE(0xfe00, 0xffff) AM_RAM
ADDRESS_MAP_END
WRITE8_MEMBER(unkch_state::coincount_w)
{
/*
7654 3210
---- -x-- Credit counter (1 pulse/10 credits)
---- x--- Key In counter
xxxx --xx Unknown
*/
coin_counter_w(machine(), 0, data & 0x04); /* Credit counter */
coin_counter_w(machine(), 1, data & 0x08); /* Key In counter */
if (data & 0xf3)
popmessage("coin counters: %02x", data);
}
WRITE8_MEMBER(unkch_state::unkcm_0x02_w)
{
//popmessage("unkcm_0x02_w %02x", data);
@ -982,31 +991,21 @@ WRITE8_MEMBER(unkch_state::unkcm_0x03_w)
}
WRITE8_MEMBER(unkch_state::unkcm_0x11_w)
{
//popmessage("unkcm_0x11_w %02x", data);
}
WRITE8_MEMBER(unkch_state::unkcm_0x12_w)
{
// popmessage("unkcm_0x12_w %02x", data);
}
static ADDRESS_MAP_START( unkch_portmap, AS_IO, 8, unkch_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x01, 0x01) AM_WRITE(coincount_w)
AM_RANGE(0x02, 0x02) AM_WRITE(unkcm_0x02_w)
AM_RANGE(0x03, 0x03) AM_WRITE(unkcm_0x03_w)
AM_RANGE(0x11, 0x11) AM_WRITE(unkcm_0x11_w)
AM_RANGE(0x12, 0x12) AM_WRITE(unkcm_0x12_w)
AM_RANGE(0x08, 0x08) AM_READ_PORT("IN0")
AM_RANGE(0x09, 0x09) AM_READ_PORT("IN1")
AM_RANGE(0x0a, 0x0a) AM_READ_PORT("DSW4")
AM_RANGE(0x0b, 0x0b) AM_READ_PORT("DSW3")
AM_RANGE(0x10, 0x10) AM_READ_PORT("DSW2")
/* Where is DSW1? It's possible the games are buggy and use the value read from DSW3 for DSW1 as well. */
AM_RANGE(0x10, 0x10) AM_DEVREAD("aysnd", ay8910_device, data_r)
AM_RANGE(0x11, 0x11) AM_DEVWRITE("aysnd", ay8910_device, data_w)
AM_RANGE(0x12, 0x12) AM_DEVWRITE("aysnd", ay8910_device, address_w)
ADDRESS_MAP_END
@ -4730,15 +4729,13 @@ static INPUT_PORTS_START( unkch_controls )
PORT_START("IN1")
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_GAMBLE_BOOK )
PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) )
PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) ) /* Trips "call attendant" state if activated while credited - something to do with hopper out? */
PORT_DIPSETTING( 0x02, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) )
PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) )
PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_GAMBLE_KEYOUT )
PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) )
PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
@ -4750,47 +4747,71 @@ INPUT_PORTS_END
static INPUT_PORTS_START( unkch )
PORT_INCLUDE( unkch_controls )
/* Is there a DSW1? - Like many of the other games on this hardware, there is an
/* Like many of the other games on this hardware, there is an
input & dip test screen that you can stumble in to. Also a picture viewer option. Can't figure
out exactly how to make it repeatable... */
PORT_START("DSW2")
PORT_DIPNAME( 0x03, 0x03, "Game Level" ) PORT_DIPLOCATION("DSW2:1,2") /* OK */
PORT_START("DSW1")
PORT_DIPNAME( 0x03, 0x03, "Game Level" ) PORT_DIPLOCATION("DSW1:1,2") /* OK */
PORT_DIPSETTING( 0x03, "Easy" )
PORT_DIPSETTING( 0x02, "Mid 1" )
PORT_DIPSETTING( 0x01, "Mid 2" )
PORT_DIPSETTING( 0x00, "Hard" )
PORT_DIPNAME( 0x04, 0x04, "Punti" ) PORT_DIPLOCATION("DSW2:3") /* OK */
PORT_DIPNAME( 0x04, 0x04, "Punti" ) PORT_DIPLOCATION("DSW1:3") /* OK */
PORT_DIPSETTING( 0x04, "Ticket" )
PORT_DIPSETTING( 0x00, "Gettoni" )
PORT_DIPNAME( 0x08, 0x08, "Main/Bonus Game Rate" ) PORT_DIPLOCATION("DSW2:4") /* OK */
PORT_DIPSETTING( 0x08, "83% / 88%" )
PORT_DIPSETTING( 0x00, "71% / 76%" ) PORT_CONDITION("DSW2",0x03,EQUALS,0x03) /* Easy */
PORT_DIPSETTING( 0x00, "68% / 73%" ) PORT_CONDITION("DSW2",0x03,EQUALS,0x02) /* Mid 1 */
PORT_DIPSETTING( 0x00, "65% / 70%" ) PORT_CONDITION("DSW2",0x03,EQUALS,0x01) /* Mid 2 */
PORT_DIPSETTING( 0x00, "62% / 67%" ) PORT_CONDITION("DSW2",0x03,EQUALS,0x00) /* Hard */
PORT_DIPNAME( 0x10, 0x10, "Reel Speed / Max Bet" ) PORT_DIPLOCATION("DSW2:5") /* OK */
PORT_DIPSETTING( 0x10, "Low / 64" )
PORT_DIPSETTING( 0x00, "High / 40 (20)" ) /* shows 20 in settings screen but limits to 40 in gameplay */
PORT_DIPNAME( 0x60, 0x60, "Super Jackpot" ) PORT_DIPLOCATION("DSW2:6,7") /* OK */
PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) ) PORT_DIPLOCATION("DSW1:4")
PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x10, 0x10, "Reel Speed" ) PORT_DIPLOCATION("DSW1:5") /* OK */
PORT_DIPSETTING( 0x10, DEF_STR( Low ) )
PORT_DIPSETTING( 0x00, DEF_STR( High ) )
PORT_DIPNAME( 0x60, 0x60, "Super Jackpot" ) PORT_DIPLOCATION("DSW1:6,7") /* OK */
PORT_DIPSETTING( 0x60, DEF_STR( No ) )
PORT_DIPSETTING( 0x20, "5%" )
PORT_DIPSETTING( 0x00, "10%" )
PORT_DIPSETTING( 0x40, "20%" )
PORT_DIPNAME( 0x80, 0x80, "Bet Step On 8" ) PORT_DIPLOCATION("DSW2:8") /* OK */
PORT_DIPNAME( 0x80, 0x80, "Bet Step On 8" ) PORT_DIPLOCATION("DSW1:8") /* OK */
PORT_DIPSETTING( 0x80, DEF_STR( No ) )
PORT_DIPSETTING( 0x00, DEF_STR( Yes ) )
PORT_START("DSW2")
PORT_DIPNAME( 0x0f, 0x0f, "Main/Bonus Game Rate" ) PORT_DIPLOCATION("DSW2:1,2,3,4") /* OK - all other values are 83% / 88% */
PORT_DIPSETTING( 0x00, "50% / 55%" )
PORT_DIPSETTING( 0x01, "53% / 58%" )
PORT_DIPSETTING( 0x02, "56% / 61%" )
PORT_DIPSETTING( 0x03, "59% / 64%" )
PORT_DIPSETTING( 0x04, "62% / 67%" )
PORT_DIPSETTING( 0x05, "65% / 70%" )
PORT_DIPSETTING( 0x06, "68% / 73%" )
PORT_DIPSETTING( 0x07, "71% / 76%" )
PORT_DIPSETTING( 0x08, "74% / 79%" )
PORT_DIPSETTING( 0x09, "77% / 82%" )
PORT_DIPSETTING( 0x0a, "80% / 85%" )
PORT_DIPSETTING( 0x0f, "83% / 88%" )
PORT_DIPNAME( 0x10, 0x10, "Max Bet" ) PORT_DIPLOCATION("DSW2:5") /* OK */
PORT_DIPSETTING( 0x10, "64" )
PORT_DIPSETTING( 0x00, "40 (20)" ) /* shows 20 in settings screen but limits to 40 in gameplay */
PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) ) PORT_DIPLOCATION("DSW2:6")
PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) ) PORT_DIPLOCATION("DSW2:7")
PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) ) PORT_DIPLOCATION("DSW2:8")
PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_START("DSW3")
PORT_DIPNAME( 0x03, 0x03, "Coin A Rate" ) PORT_DIPLOCATION("DSW3:1,2") /* OK */
PORT_DIPNAME( 0x03, 0x03, "Coin A Rate" ) PORT_DIPLOCATION("DSW3:1,2") /* OK */
PORT_DIPSETTING( 0x00, DEF_STR( 1C_5C ) )
PORT_DIPSETTING( 0x01, "1 Coin/10 Credits" )
PORT_DIPSETTING( 0x02, "1 Coin/20 Credits" )
PORT_DIPSETTING( 0x03, "1 Coin/50 Credits" )
PORT_DIPNAME( 0x04, 0x04, "Gettoni/Ticket" ) PORT_DIPLOCATION("DSW3:3") /* OK */
PORT_DIPNAME( 0x04, 0x04, "Gettoni/Ticket" ) PORT_DIPLOCATION("DSW3:3") /* OK */
PORT_DIPSETTING( 0x04, "20/200" )
PORT_DIPSETTING( 0x00, "10/100" )
PORT_DIPNAME( 0x18, 0x18, "Key In Rate" ) PORT_DIPLOCATION("DSW3:4,5") /* OK */
PORT_DIPNAME( 0x18, 0x18, "Key In Rate" ) PORT_DIPLOCATION("DSW3:4,5") /* OK */
PORT_DIPSETTING( 0x00, "1 Coin/25 Credits" ) PORT_CONDITION("DSW3",0x03,EQUALS,0x00) /* 5*5 */
PORT_DIPSETTING( 0x08, "1 Coin/50 Credits" ) PORT_CONDITION("DSW3",0x03,EQUALS,0x00) /* 5*10 */
PORT_DIPSETTING( 0x10, "1 Coin/100 Credits" ) PORT_CONDITION("DSW3",0x03,EQUALS,0x00) /* 5*20 */
@ -4807,10 +4828,10 @@ static INPUT_PORTS_START( unkch )
PORT_DIPSETTING( 0x08, "1 Coin/500 Credits" ) PORT_CONDITION("DSW3",0x03,EQUALS,0x03) /* 50*10 */
PORT_DIPSETTING( 0x10, "1 Coin/1,000 Credits" ) PORT_CONDITION("DSW3",0x03,EQUALS,0x03) /* 50*20 */
PORT_DIPSETTING( 0x18, "1 Coin/2,500 Credits" ) PORT_CONDITION("DSW3",0x03,EQUALS,0x03) /* 50*50 */
PORT_DIPNAME( 0x20, 0x20, "Coin B Enable" ) PORT_DIPLOCATION("DSW3:6") /* OK */
PORT_DIPNAME( 0x20, 0x20, "Coin B Enable" ) PORT_DIPLOCATION("DSW3:6") /* OK */
PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x40, 0x40, "Coin B Rate" ) PORT_DIPLOCATION("DSW3:7") /* OK */
PORT_DIPNAME( 0x40, 0x40, "Coin B Rate" ) PORT_DIPLOCATION("DSW3:7") /* OK */
PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) )
PORT_DIPSETTING( 0x40, DEF_STR( 1C_2C ) )
PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) ) PORT_DIPLOCATION("DSW3:8")
@ -4827,13 +4848,13 @@ static INPUT_PORTS_START( unkch )
PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) ) PORT_DIPLOCATION("DSW4:3")
PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x08, 0x08, "Super Jackpot Half" ) PORT_DIPLOCATION("DSW4:4") /* OK */
PORT_DIPNAME( 0x08, 0x08, "Super Jackpot Half" ) PORT_DIPLOCATION("DSW4:4") /* OK */
PORT_DIPSETTING( 0x08, DEF_STR( No ) )
PORT_DIPSETTING( 0x00, DEF_STR( Yes ) )
PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) ) PORT_DIPLOCATION("DSW4:5")
PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x60, 0x60, "Red Game Credit" ) PORT_DIPLOCATION("DSW4:6,7") /* OK */
PORT_DIPNAME( 0x60, 0x60, "Red Game Credit" ) PORT_DIPLOCATION("DSW4:6,7") /* OK */
PORT_DIPSETTING( 0x40, "0" )
PORT_DIPSETTING( 0x20, "1" )
PORT_DIPSETTING( 0x00, "10" )
@ -4846,30 +4867,49 @@ INPUT_PORTS_END
static INPUT_PORTS_START( unkch3 )
PORT_INCLUDE( unkch_controls )
/* Is there a DSW1? - Like many of the other games on this hardware, there is an
input & dip test screen that you can stumble in to. Also a picture viewer option. Can't figure
out exactly how to make it repeatable... */
PORT_START("DSW2")
PORT_DIPNAME( 0x03, 0x03, "Game Level" ) PORT_DIPLOCATION("DSW2:1,2") /* OK */
PORT_START("DSW1")
PORT_DIPNAME( 0x03, 0x03, "Game Level" ) PORT_DIPLOCATION("DSW1:1,2") /* OK */
PORT_DIPSETTING( 0x03, "Easy" )
PORT_DIPSETTING( 0x02, "Mid 1" )
PORT_DIPSETTING( 0x01, "Mid 2" )
PORT_DIPSETTING( 0x00, "Hard" )
PORT_DIPNAME( 0x04, 0x04, "Punti Unit" ) PORT_DIPLOCATION("DSW2:3") /* OK */
PORT_DIPNAME( 0x04, 0x04, "Punti Unit" ) PORT_DIPLOCATION("DSW1:3") /* OK */
PORT_DIPSETTING( 0x00, "500" )
PORT_DIPSETTING( 0x04, "1000" )
PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) ) PORT_DIPLOCATION("DSW1:4")
PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x10, 0x10, "Reel Speed" ) PORT_DIPLOCATION("DSW1:5") /* OK */
PORT_DIPSETTING( 0x10, DEF_STR( Low ) )
PORT_DIPSETTING( 0x00, DEF_STR( High ) )
PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) ) PORT_DIPLOCATION("DSW1:6")
PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) ) PORT_DIPLOCATION("DSW1:7")
PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) ) PORT_DIPLOCATION("DSW1:8")
PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_START("DSW2")
PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) ) PORT_DIPLOCATION("DSW2:1")
PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) ) PORT_DIPLOCATION("DSW2:2")
PORT_DIPSETTING( 0x02, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) ) PORT_DIPLOCATION("DSW2:3")
PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) ) PORT_DIPLOCATION("DSW2:4")
PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x10, 0x10, "Reel Speed" ) PORT_DIPLOCATION("DSW2:5") /* OK */
PORT_DIPSETTING( 0x10, DEF_STR( Low ) ) /* manual start at max bet */
PORT_DIPSETTING( 0x00, DEF_STR( High ) ) /* auto start at max bet */
PORT_DIPNAME( 0x20, 0x20, "Bet Maximum" ) PORT_DIPLOCATION("DSW2:6") /* OK */
PORT_DIPSETTING( 0x00, "10" ) PORT_CONDITION("DSW2",0x10,EQUALS,0x10)
PORT_DIPSETTING( 0x20, "64" ) PORT_CONDITION("DSW2",0x10,EQUALS,0x10)
PORT_DIPSETTING( 0x00, "10 (5)" ) PORT_CONDITION("DSW2",0x10,EQUALS,0x00) /* shows 5 in settings screen but limits at 10 in gameplay */
PORT_DIPSETTING( 0x20, "40 (20)" ) PORT_CONDITION("DSW2",0x10,EQUALS,0x00) /* shows 20 in settings screen but limits at 40 in gameplay */
PORT_DIPNAME( 0x30, 0x30, "Bet Maximum" ) PORT_DIPLOCATION("DSW2:5,6") /* OK */
PORT_DIPSETTING( 0x00, "10 (5)" ) /* shows 5 in settings screen but limits at 10 in gameplay */
PORT_DIPSETTING( 0x10, "20 (10)" ) /* shows 10 in settings screen but limits at 20 in gameplay */
PORT_DIPSETTING( 0x20, "40 (20)" ) /* shows 20 in settings screen but limits at 40 in gameplay */
PORT_DIPSETTING( 0x30, "64" )
PORT_DIPNAME( 0x40, 0x40, "Bet Minimum" ) PORT_DIPLOCATION("DSW2:7") /* shows in settings screen but has no effect */
PORT_DIPSETTING( 0x00, "8" )
PORT_DIPSETTING( 0x40, "16" )
@ -4880,6 +4920,7 @@ static INPUT_PORTS_START( unkch3 )
PORT_START("DSW3")
PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) ) PORT_DIPLOCATION("DSW3:1")
PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) ) PORT_DIPLOCATION("DSW3:2")
PORT_DIPSETTING( 0x02, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
@ -4915,15 +4956,15 @@ static INPUT_PORTS_START( unkch3 )
PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) ) PORT_DIPLOCATION("DSW4:4")
PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) ) PORT_DIPLOCATION("DSW4:5")
PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x10, 0x10, "Test Mode" ) PORT_DIPLOCATION("DSW4:5") /* OK */
PORT_DIPSETTING( 0x10, "Disable" )
PORT_DIPSETTING( 0x00, "Enable" ) /* hold 'Settings' on reset to access */
PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) ) PORT_DIPLOCATION("DSW4:6")
PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) ) PORT_DIPLOCATION("DSW4:7")
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) ) PORT_DIPLOCATION("DSW4:8")
PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
@ -4935,39 +4976,63 @@ static INPUT_PORTS_START( unkch4 )
PORT_MODIFY("IN0")
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN3 ) PORT_IMPULSE(2) PORT_NAME("Coin C")
/* Is there a DSW1? - Like many of the other games on this hardware, there is an
/* Like many of the other games on this hardware, there is an
input & dip test screen that you can stumble in to. Also a picture viewer option. Can't figure
out exactly how to make it repeatable... */
PORT_START("DSW2")
PORT_DIPNAME( 0x03, 0x03, "Game Level" ) PORT_DIPLOCATION("DSW2:1,2") /* OK */
PORT_START("DSW1")
PORT_DIPNAME( 0x03, 0x03, "Game Level" ) PORT_DIPLOCATION("DSW1:1,2") /* OK */
PORT_DIPSETTING( 0x03, "Easy" )
PORT_DIPSETTING( 0x02, "Mid 1" )
PORT_DIPSETTING( 0x01, "Mid 2" )
PORT_DIPSETTING( 0x00, "Hard" )
PORT_DIPNAME( 0x04, 0x04, "Punti" ) PORT_DIPLOCATION("DSW2:3") /* OK */
PORT_DIPNAME( 0x04, 0x04, "Punti" ) PORT_DIPLOCATION("DSW1:3") /* OK */
PORT_DIPSETTING( 0x04, "Ticket" )
PORT_DIPSETTING( 0x00, "Gettoni" )
PORT_DIPNAME( 0x08, 0x08, "Main/Bonus Game Rate" ) PORT_DIPLOCATION("DSW2:4") /* OK */
PORT_DIPSETTING( 0x08, "83% / 88%" )
PORT_DIPSETTING( 0x00, "71% / 76%" ) PORT_CONDITION("DSW2",0x03,EQUALS,0x03) /* Easy */
PORT_DIPSETTING( 0x00, "68% / 73%" ) PORT_CONDITION("DSW2",0x03,EQUALS,0x02) /* Mid 1 */
PORT_DIPSETTING( 0x00, "65% / 70%" ) PORT_CONDITION("DSW2",0x03,EQUALS,0x01) /* Mid 2 */
PORT_DIPSETTING( 0x00, "62% / 67%" ) PORT_CONDITION("DSW2",0x03,EQUALS,0x00) /* Hard */
PORT_DIPNAME( 0x10, 0x10, "Reel Speed / Max Bet" ) PORT_DIPLOCATION("DSW2:5") /* OK */
PORT_DIPSETTING( 0x10, "Low / 64" )
PORT_DIPSETTING( 0x00, "High / 32" )
PORT_DIPNAME( 0x60, 0x60, "Super Jackpot" ) PORT_DIPLOCATION("DSW2:6,7") /* OK */
PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) ) PORT_DIPLOCATION("DSW1:4")
PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x10, 0x10, "Reel Speed" ) PORT_DIPLOCATION("DSW1:5") /* OK */
PORT_DIPSETTING( 0x10, DEF_STR( Low ) )
PORT_DIPSETTING( 0x00, DEF_STR( High ) )
PORT_DIPNAME( 0x60, 0x60, "Super Jackpot" ) PORT_DIPLOCATION("DSW1:6,7") /* OK */
PORT_DIPSETTING( 0x60, DEF_STR( No ) )
PORT_DIPSETTING( 0x20, "5%" )
PORT_DIPSETTING( 0x00, "10%" )
PORT_DIPSETTING( 0x40, "20%" )
PORT_DIPNAME( 0x80, 0x80, "Bet Step On 8" ) PORT_DIPLOCATION("DSW2:8") /* OK */
PORT_DIPNAME( 0x80, 0x80, "Bet Step On 8" ) PORT_DIPLOCATION("DSW1:8") /* OK */
PORT_DIPSETTING( 0x80, DEF_STR( No ) )
PORT_DIPSETTING( 0x00, DEF_STR( Yes ) )
PORT_START("DSW2")
PORT_DIPNAME( 0x0f, 0x0f, "Main/Bonus Game Rate" ) PORT_DIPLOCATION("DSW2:1,2,3,4") /* OK - all other values are 83% / 88% */
PORT_DIPSETTING( 0x00, "50% / 55%" )
PORT_DIPSETTING( 0x01, "53% / 58%" )
PORT_DIPSETTING( 0x02, "56% / 61%" )
PORT_DIPSETTING( 0x03, "59% / 64%" )
PORT_DIPSETTING( 0x04, "62% / 67%" )
PORT_DIPSETTING( 0x05, "65% / 70%" )
PORT_DIPSETTING( 0x06, "68% / 73%" )
PORT_DIPSETTING( 0x07, "71% / 76%" )
PORT_DIPSETTING( 0x08, "74% / 79%" )
PORT_DIPSETTING( 0x09, "77% / 82%" )
PORT_DIPSETTING( 0x0a, "80% / 85%" )
PORT_DIPSETTING( 0x0f, "83% / 88%" )
PORT_DIPNAME( 0x10, 0x10, "Max Bet" ) PORT_DIPLOCATION("DSW2:5") /* OK */
PORT_DIPSETTING( 0x00, "32" )
PORT_DIPSETTING( 0x10, "64" )
PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) ) PORT_DIPLOCATION("DSW2:6")
PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) ) PORT_DIPLOCATION("DSW2:7")
PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) ) PORT_DIPLOCATION("DSW2:8")
PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_START("DSW3")
PORT_DIPNAME( 0x03, 0x03, "Coin A Rate" ) PORT_DIPLOCATION("DSW3:1,2") /* OK */
PORT_DIPNAME( 0x03, 0x03, "Coin A Rate" ) PORT_DIPLOCATION("DSW3:1,2") /* OK */
PORT_DIPSETTING( 0x00, DEF_STR( 1C_8C ) )
PORT_DIPSETTING( 0x01, "1 Coin/10 Credits" )
PORT_DIPSETTING( 0x02, "1 Coin/20 Credits" )
@ -4975,7 +5040,7 @@ static INPUT_PORTS_START( unkch4 )
PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) ) PORT_DIPLOCATION("DSW3:3")
PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x18, 0x18, "Key In Rate" ) PORT_DIPLOCATION("DSW3:4,5") /* OK */
PORT_DIPNAME( 0x18, 0x18, "Key In Rate" ) PORT_DIPLOCATION("DSW3:4,5") /* OK */
PORT_DIPSETTING( 0x00, "1 Coin/40 Credits" ) PORT_CONDITION("DSW3",0x03,EQUALS,0x00) /* 8*5 */
PORT_DIPSETTING( 0x08, "1 Coin/80 Credits" ) PORT_CONDITION("DSW3",0x03,EQUALS,0x00) /* 8*10 */
PORT_DIPSETTING( 0x10, "1 Coin/160 Credits" ) PORT_CONDITION("DSW3",0x03,EQUALS,0x00) /* 8*20 */
@ -4992,7 +5057,7 @@ static INPUT_PORTS_START( unkch4 )
PORT_DIPSETTING( 0x08, "1 Coin/500 Credits" ) PORT_CONDITION("DSW3",0x03,EQUALS,0x03) /* 50*10 */
PORT_DIPSETTING( 0x10, "1 Coin/1,000 Credits" ) PORT_CONDITION("DSW3",0x03,EQUALS,0x03) /* 50*20 */
PORT_DIPSETTING( 0x18, "1 Coin/2,500 Credits" ) PORT_CONDITION("DSW3",0x03,EQUALS,0x03) /* 50*50 */
PORT_DIPNAME( 0x20, 0x20, "Coin C Rate" ) PORT_DIPLOCATION("DSW3:6") /* OK */
PORT_DIPNAME( 0x20, 0x20, "Coin C Rate" ) PORT_DIPLOCATION("DSW3:6") /* OK */
PORT_DIPSETTING( 0x00, "1 Coin/40 Credits" ) PORT_CONDITION("DSW3",0x03,EQUALS,0x00) /* 8*5 */
PORT_DIPSETTING( 0x20, "1 Coin/80 Credits" ) PORT_CONDITION("DSW3",0x03,EQUALS,0x00) /* 8*10 */
PORT_DIPSETTING( 0x00, "1 Coin/50 Credits" ) PORT_CONDITION("DSW3",0x03,EQUALS,0x01) /* 10*5 */
@ -5001,7 +5066,7 @@ static INPUT_PORTS_START( unkch4 )
PORT_DIPSETTING( 0x20, "1 Coin/200 Credits" ) PORT_CONDITION("DSW3",0x03,EQUALS,0x02) /* 20*10 */
PORT_DIPSETTING( 0x00, "1 Coin/250 Credits" ) PORT_CONDITION("DSW3",0x03,EQUALS,0x03) /* 50*5 */
PORT_DIPSETTING( 0x20, "1 Coin/500 Credits" ) PORT_CONDITION("DSW3",0x03,EQUALS,0x03) /* 50*10 */
PORT_DIPNAME( 0x40, 0x40, "Coin B Rate" ) PORT_DIPLOCATION("DSW3:7") /* OK */
PORT_DIPNAME( 0x40, 0x40, "Coin B Rate" ) PORT_DIPLOCATION("DSW3:7") /* OK */
PORT_DIPSETTING( 0x00, "1 Coin/80 Credits" ) PORT_CONDITION("DSW3",0x03,EQUALS,0x00) /* 8*10 */
PORT_DIPSETTING( 0x40, "1 Coin/160 Credits" ) PORT_CONDITION("DSW3",0x03,EQUALS,0x00) /* 8*20 */
PORT_DIPSETTING( 0x00, "1 Coin/100 Credits" ) PORT_CONDITION("DSW3",0x03,EQUALS,0x01) /* 10*10 */
@ -5034,8 +5099,8 @@ static INPUT_PORTS_START( unkch4 )
PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) ) PORT_DIPLOCATION("DSW4:7")
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) ) PORT_DIPLOCATION("DSW4:8")
PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
@ -5852,7 +5917,7 @@ static INPUT_PORTS_START( crazybon )
PORT_INCLUDE( cmv4_coins )
PORT_MODIFY("IN1")
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* Unused coin switch */
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNUSED ) /* Unused coin switch */
PORT_INCLUDE( cmv4_service )
@ -5860,7 +5925,7 @@ static INPUT_PORTS_START( crazybon )
PORT_DIPNAME( 0x01, 0x00, DEF_STR( Unknown ) ) PORT_DIPLOCATION("DSW1:1")
PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x02, 0x00, DEF_STR( Unknown ) ) PORT_DIPLOCATION("DSW1:2")
PORT_DIPNAME( 0x02, 0x00, "Hopper Out Switch" ) PORT_DIPLOCATION("DSW1:2") /* not checked */
PORT_DIPSETTING( 0x02, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x04, 0x00, "Coin Out Rate" ) PORT_DIPLOCATION("DSW1:3") /* OK */
@ -5891,13 +5956,12 @@ static INPUT_PORTS_START( crazybon )
PORT_DIPSETTING( 0x05, "80%" )
PORT_DIPSETTING( 0x06, "85%" )
PORT_DIPSETTING( 0x07, "90%" )
PORT_DIPNAME( 0x08, 0x00, DEF_STR( Unknown ) ) PORT_DIPLOCATION("DSW2:4")
PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x10, 0x00, DEF_STR( Unknown ) ) PORT_DIPLOCATION("DSW2:5")
PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x20, 0x00, "Mode" ) PORT_DIPLOCATION("DSW2:6")
PORT_DIPNAME( 0x18, 0x18, "Hopper Limit" ) PORT_DIPLOCATION("DSW2:4,5") /* not checked */
PORT_DIPSETTING( 0x18, "300" )
PORT_DIPSETTING( 0x08, "500" )
PORT_DIPSETTING( 0x10, "1000" )
PORT_DIPSETTING( 0x00, "Unlimited" )
PORT_DIPNAME( 0x20, 0x00, "Mode" ) PORT_DIPLOCATION("DSW2:6") /* OK */
PORT_DIPSETTING( 0x00, "Game" )
PORT_DIPSETTING( 0x20, "Stealth" )
PORT_DIPNAME( 0x40, 0x00, DEF_STR( Unknown ) ) PORT_DIPLOCATION("DSW2:7")
@ -5930,9 +5994,9 @@ static INPUT_PORTS_START( crazybon )
PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) ) PORT_DIPLOCATION("DSW3:7")
PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) ) PORT_DIPLOCATION("DSW3:8")
PORT_DIPNAME( 0x08, 0x08, "Lock Into Stealth Mode" ) PORT_DIPLOCATION("DSW3:8") /* OK */
PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) ) /* prevents switching to game mode with start/bet buttons */
PORT_BIT( 0xf0, IP_ACTIVE_LOW, IPT_UNUSED )
PORT_START("DSW4")
@ -5954,10 +6018,10 @@ static INPUT_PORTS_START( crazybon )
PORT_DIPNAME( 0x20, 0x20, "Bonus Min Bet" ) PORT_DIPLOCATION("DSW4:6") /* OK */
PORT_DIPSETTING( 0x20, "16" )
PORT_DIPSETTING( 0x00, "32" )
PORT_DIPNAME( 0x40, 0x40, "C.M. Reel Speed" ) PORT_DIPLOCATION("DSW4:7") /* OK */
PORT_DIPNAME( 0x40, 0x40, "Reel Speed" ) PORT_DIPLOCATION("DSW4:7") /* OK */
PORT_DIPSETTING( 0x40, DEF_STR( Low ) )
PORT_DIPSETTING( 0x00, DEF_STR( High ) )
PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) ) PORT_DIPLOCATION("DSW4:8")
PORT_DIPNAME( 0x80, 0x80, "Hopper Out By Coin A" ) PORT_DIPLOCATION("DSW4:8") /* not working */
PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
@ -5970,18 +6034,17 @@ static INPUT_PORTS_START( crazybon )
PORT_DIPSETTING( 0x04, "5,000" )
PORT_DIPSETTING( 0x02, "10,000" )
PORT_DIPSETTING( 0x00, "20,000" )
PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) ) PORT_DIPLOCATION("DSW5:4")
PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) ) PORT_DIPLOCATION("DSW5:5")
PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x18, 0x18, "Condition For 3 Fruit Bonus" ) PORT_DIPLOCATION("DSW5:4,5") /* OK */
PORT_DIPSETTING( 0x18, "5-<-7" ) /* not sure about the "<" ??? */
PORT_DIPSETTING( 0x10, "5-9-5" )
PORT_DIPSETTING( 0x08, "5-6-3" )
PORT_DIPSETTING( 0x00, "5-3-2" )
PORT_DIPNAME( 0x60, 0x60, "Game Min Bet" ) PORT_DIPLOCATION("DSW5:6,7") /* OK */
PORT_DIPSETTING( 0x60, "1" )
PORT_DIPSETTING( 0x40, "8" )
PORT_DIPSETTING( 0x20, "16" )
PORT_DIPSETTING( 0x00, "32" )
PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) ) PORT_DIPLOCATION("DSW5:8")
PORT_DIPNAME( 0x80, 0x80, "Card Shuffle Animation" ) PORT_DIPLOCATION("DSW5:8") /* OK */
PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
INPUT_PORTS_END
@ -7615,13 +7678,10 @@ static MACHINE_CONFIG_START( unkch, unkch_state )
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
// MCFG_SOUND_ADD("aysnd", AY8910, AY_CLOCK)
//
//
// MCFG_AY8910_PORT_A_READ_CB(IOPORT("DSW4"))
// MCFG_AY8910_PORT_B_READ_CB(IOPORT("DSW3"))
// MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
MCFG_SOUND_ADD("aysnd", AY8910, AY_CLOCK)
MCFG_AY8910_PORT_A_READ_CB(IOPORT("DSW1"))
MCFG_AY8910_PORT_B_READ_CB(IOPORT("DSW2"))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
MACHINE_CONFIG_END
@ -13008,10 +13068,10 @@ GAME( 2003, carb2003, nfb96, amcoe2, nfb96bl, driver_device, 0,
GAME( 2003, nfm, 0, nfm, nfb96bl, driver_device, 0, ROT0, "Ming-Yang Electronic", "New Fruit Machine (Ming-Yang Electronic)", GAME_NOT_WORKING ) // vFB02-07A "Copyright By Ms. Liu Orchis 2003/03/06"
// these have 'cherry 1994' in the program roms, but also "Super Cherry / New Cherry Gold '99" probably hacks of a 1994 version of Cherry Bonus / Cherry Master (Super Cherry Master?)
GAME( 1999, unkch1, 0, unkch, unkch, unkch_state, unkch1, ROT0, "bootleg", "New Cherry Gold '99 (bootleg of Super Cherry Master) (set 1)", GAME_NOT_WORKING|GAME_NO_SOUND )
GAME( 1999, unkch2, unkch1, unkch, unkch, unkch_state, unkch1, ROT0, "bootleg", "Super Cherry Gold (bootleg of Super Cherry Master)", GAME_NOT_WORKING|GAME_NO_SOUND )
GAME( 1999, unkch3, unkch1, unkch, unkch3, unkch_state, unkch3, ROT0, "bootleg", "New Cherry Gold '99 (bootleg of Super Cherry Master) (set 2)", GAME_NOT_WORKING|GAME_NO_SOUND ) // cards have been hacked to look like barrels, girl removed?
GAME( 1999, unkch4, unkch1, unkch, unkch4, unkch_state, unkch4, ROT0, "bootleg", "Grand Cherry Master (bootleg of Super Cherry Master)", GAME_NOT_WORKING|GAME_NO_SOUND ) // by 'Toy System' Hungary
GAME( 1999, unkch1, 0, unkch, unkch, unkch_state, unkch1, ROT0, "bootleg", "New Cherry Gold '99 (bootleg of Super Cherry Master) (set 1)", GAME_NOT_WORKING )
GAME( 1999, unkch2, unkch1, unkch, unkch, unkch_state, unkch1, ROT0, "bootleg", "Super Cherry Gold (bootleg of Super Cherry Master)", GAME_NOT_WORKING )
GAME( 1999, unkch3, unkch1, unkch, unkch3, unkch_state, unkch3, ROT0, "bootleg", "New Cherry Gold '99 (bootleg of Super Cherry Master) (set 2)", GAME_NOT_WORKING ) // cards have been hacked to look like barrels, girl removed?
GAME( 1999, unkch4, unkch1, unkch, unkch4, unkch_state, unkch4, ROT0, "bootleg", "Grand Cherry Master (bootleg of Super Cherry Master)", GAME_NOT_WORKING ) // by 'Toy System' Hungary
/* Stealth sets.

View File

@ -254,12 +254,9 @@ public:
{
}
DECLARE_READ8_MEMBER(unk_r);
DECLARE_WRITE8_MEMBER(coincount_w);
DECLARE_WRITE8_MEMBER(unkcm_0x02_w);
DECLARE_WRITE8_MEMBER(unkcm_0x03_w);
DECLARE_WRITE8_MEMBER(unkcm_0x11_w);
DECLARE_WRITE8_MEMBER(unkcm_0x12_w);
DECLARE_WRITE8_MEMBER(reel1_attrram_w);
DECLARE_WRITE8_MEMBER(reel2_attrram_w);