From 2913757f7bda998e4c7ef3249a3339ce94246741 Mon Sep 17 00:00:00 2001 From: David Haywood Date: Sun, 25 Oct 2015 23:35:33 +0000 Subject: [PATCH 1/3] new MACHINES SegaSonic Popcorn Shop (Rev B) [ShouTime, The Dumping Union - insert full credit list here] can't really mark this as working as the mechanical / popcorn machine side of this needs simulating at least. interestingly this is for all regions, has a region dipswitch, I wonder if the physical machines ever made it out of Japan? --- src/mame/arcade.lst | 1 + src/mame/drivers/segac2.c | 73 +++++++++++++++++++++++++++++++++++++-- 2 files changed, 72 insertions(+), 2 deletions(-) diff --git a/src/mame/arcade.lst b/src/mame/arcade.lst index 4700acb72fb..b8a6f7bd5cb 100644 --- a/src/mame/arcade.lst +++ b/src/mame/arcade.lst @@ -5336,6 +5336,7 @@ tfrceacj // (c) 1990 Sega / Technosoft tfrceacb // bootleg twinsqua // (c) 1991 Sega soniccar // (c) 1991 Sega +sonicpop ribbit // (c) 1991 Sega tantr // (c) 1992 Sega tantrkor // (c) 1992 Sega diff --git a/src/mame/drivers/segac2.c b/src/mame/drivers/segac2.c index b77bcc53289..6c07073db19 100644 --- a/src/mame/drivers/segac2.c +++ b/src/mame/drivers/segac2.c @@ -30,6 +30,7 @@ 1992 Puyo Puyo Sega / Compile 317-0203 C2 171-5992A 1992 Tant-R (Japan) Sega 317-0211 C2 1992 Tant-R (Korea) Sega ? C2 + 1993 SegaSonic Popcorn Shop Sega 317-0140 C2 1994 PotoPoto (Japan) Sega 317-0218 C2 1994 Stack Columns (Japan) Sega 317-0219 C2 1994 Stack Columns (World) Sega 317-0223 C2 @@ -931,6 +932,61 @@ static INPUT_PORTS_START( soniccar ) INPUT_PORTS_END + +static INPUT_PORTS_START( sonicpop ) + PORT_INCLUDE( systemc_generic ) + + PORT_MODIFY("P1") + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_NAME("Relay") // relay (must be ON by default or machine will instantly give an 'assistance' error) + PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON4 ) PORT_NAME("Coinblock") // coinblock (inverted) + PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_NAME("Sensor") // sensor + PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNUSED ) + PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START2 ) PORT_NAME("Cup Select 1") // cup select 2 + PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START1 ) PORT_NAME("Cup Select 1") // cup select 1 + PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("Handle B") // handle B + PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("Handle A") // handle A + + PORT_MODIFY("P2") + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON9 ) PORT_NAME("Sold Out LED1") // sold out LED 1 + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON10 ) PORT_NAME("Sold Out LED2") // sold out LED 2 + PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON11 ) PORT_NAME("Sold Out LED3") // sold out LED 3 + PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNUSED ) + PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON7 ) PORT_NAME("Sold Out SW2") // sold out SW 2 + PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON8 ) PORT_NAME("Sold Out SW3") // sold out SW 3 + PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED ) + PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON6 ) PORT_NAME("Sold Out SW1") // sold out SW 1 + + PORT_MODIFY("SERVICE") + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) // coin + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SERVICE2 ) // 'reset' + PORT_SERVICE_NO_TOGGLE( 0x04, IP_ACTIVE_LOW ) + PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE1 ) + PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNUSED ) + PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNUSED ) + PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED ) + PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) + + PORT_MODIFY("DSW") + PORT_DIPNAME( 0x01, 0x00, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW2:1") + PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x02, 0x00, "Trouble BGM" ) PORT_DIPLOCATION("SW2:2") + PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x0c, 0x00, "Region" ) PORT_DIPLOCATION("SW2:34") + PORT_DIPSETTING( 0x00, DEF_STR( USA ) ) + PORT_DIPSETTING( 0x04, "Export" ) + PORT_DIPSETTING( 0x08, "USA (duplicate)" ) + PORT_DIPSETTING( 0x0c, DEF_STR( Japan ) ) + PORT_DIPNAME( 0x10, 0x00, "Sensor Advertise" ) PORT_DIPLOCATION("SW2:5") + PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPUNUSED_DIPLOC( 0x20, IP_ACTIVE_LOW, "SW2:6" ) + PORT_DIPUNUSED_DIPLOC( 0x40, IP_ACTIVE_LOW, "SW2:7" ) + PORT_DIPUNUSED_DIPLOC( 0x80, IP_ACTIVE_LOW, "SW2:8" ) +INPUT_PORTS_END + + static INPUT_PORTS_START( ribbit ) PORT_INCLUDE( systemc_generic ) @@ -1635,6 +1691,16 @@ ROM_START( soniccar ) /* Waku Waku Sonic Patrol Car (c)1991 Sega - 834-8401 SON ROM_LOAD( "epr-14394.ic4", 0x000000, 0x040000, CRC(476e30dd) SHA1(c9d381160c58b05763ea286a53c7ca6de074fda2) ) ROM_END +ROM_START( sonicpop ) /* Sega Sonic Popcorn Shop (EMP5032 labeled 317-0140) */ + ROM_REGION( 0x200000, "maincpu", 0 ) + ROM_LOAD16_BYTE( "epr-14592b.ic32", 0x000000, 0x040000, CRC(bac586a1) SHA1(0208213bfa1a5093e76edb1a7e0ba5ebc862801d) ) + ROM_LOAD16_BYTE( "epr-15491b.ic31", 0x000001, 0x040000, CRC(527106c3) SHA1(97f08006bba4b87c304c7ad3b1480b77e99dff10) ) + ROM_LOAD16_BYTE( "epr-15494.ic34", 0x100000, 0x040000, CRC(0520df5e) SHA1(5a795a1630d841406a106a566228223583deef44) ) + ROM_LOAD16_BYTE( "epr-15493.ic33", 0x100001, 0x040000, CRC(d51b3b85) SHA1(66f6b4656841ab70ffde0141a613eaf91c06f86b) ) + + ROM_REGION( 0x040000, "upd", 0 ) + ROM_LOAD( "epr-15495.ic4", 0x000000, 0x040000, CRC(d3ee4c68) SHA1(557c57b22521339d94d9a3e6fd2af68a67a153b6) ) +ROM_END ROM_START( ribbit ) /* Ribbit (c)1991 Sega */ ROM_REGION( 0x200000, "maincpu", 0 ) @@ -2319,10 +2385,10 @@ DRIVER_INIT_MEMBER(segac2_state,pclubjv5) // YEAR, NAME, PARENT, MACHINE,INPUT, INIT, MONITOR,COMPANY,FULLNAME,FLAGS /* System C Games */ GAME( 1989, bloxeedc, bloxeed, segac, bloxeedc, segac2_state, bloxeedc, ROT0, "Sega / Elorg", "Bloxeed (World, C System)", 0 ) -GAME( 1989, bloxeedu, bloxeed, segac, bloxeedc, segac2_state, bloxeedc, ROT0, "Sega / Elorg", "Bloxeed (US, C System)", 0 ) +GAME( 1989, bloxeedu, bloxeed, segac, bloxeedc, segac2_state, bloxeedc, ROT0, "Sega / Elorg", "Bloxeed (US, C System, Rev A)", 0 ) GAME( 1990, columns, 0, segac, columns, segac2_state, columns, ROT0, "Sega", "Columns (World)", 0 ) -GAME( 1990, columnsu, columns, segac, columnsu, segac2_state, columns, ROT0, "Sega", "Columns (US, cocktail)", 0 ) // has cocktail mode dsw +GAME( 1990, columnsu, columns, segac, columnsu, segac2_state, columns, ROT0, "Sega", "Columns (US, cocktail, Rev A)", 0 ) // has cocktail mode dsw GAME( 1990, columnsj, columns, segac, columns, segac2_state, columns, ROT0, "Sega", "Columns (Japan)", 0 ) GAME( 1990, columns2, 0, segac, columns2, segac2_state, columns2, ROT0, "Sega", "Columns II: The Voyage Through Time (World)", 0 ) @@ -2353,6 +2419,9 @@ GAME( 1992, tantrbl, tantr, segac2, ichir, segac2_state, c2boot, ROT0, GAME( 1994, tantrbl2, tantr, segac, ichir, segac2_state, tantr, ROT0, "bootleg", "Puzzle & Action: Tant-R (Japan) (bootleg set 2)", 0 ) // Common bootleg in Europe, C board, no samples GAME( 1994, tantrbl3, tantr, segac, ichir, segac2_state, tantr, ROT0, "bootleg", "Puzzle & Action: Tant-R (Japan) (bootleg set 3)", 0 ) // Common bootleg in Europe, C board, no samples +// not really sure how this should hook up, things like the 'sold out' flags could be mechanical sensors, or from another MCU / CPU board in the actual popcorn part of the machine? +GAME( 1993, sonicpop, 0, segac2, sonicpop, segac2_state, bloxeedc, ROT0, "Sega", "SegaSonic Popcorn Shop (Rev B)", MACHINE_NOT_WORKING ) // region DSW for USA / Export / Japan + GAME( 1994, potopoto, 0, segac2, potopoto, segac2_state, potopoto, ROT0, "Sega", "Poto Poto (Japan)", 0 ) GAME( 1994, stkclmns, 0, segac2, stkclmns, segac2_state, stkclmns, ROT0, "Sega", "Stack Columns (World)", 0 ) From 5c312ccf8720aede68b1794c08c9218e4a44a044 Mon Sep 17 00:00:00 2001 From: David Haywood Date: Sun, 25 Oct 2015 23:37:30 +0000 Subject: [PATCH 2/3] typo (nw) --- src/mame/drivers/segac2.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/mame/drivers/segac2.c b/src/mame/drivers/segac2.c index 6c07073db19..5691d4c09a5 100644 --- a/src/mame/drivers/segac2.c +++ b/src/mame/drivers/segac2.c @@ -973,7 +973,7 @@ static INPUT_PORTS_START( sonicpop ) PORT_DIPNAME( 0x02, 0x00, "Trouble BGM" ) PORT_DIPLOCATION("SW2:2") PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x0c, 0x00, "Region" ) PORT_DIPLOCATION("SW2:34") + PORT_DIPNAME( 0x0c, 0x00, "Region" ) PORT_DIPLOCATION("SW2:3,4") PORT_DIPSETTING( 0x00, DEF_STR( USA ) ) PORT_DIPSETTING( 0x04, "Export" ) PORT_DIPSETTING( 0x08, "USA (duplicate)" ) From 94c6be2e0bcc1e655412143b643e762171de019d Mon Sep 17 00:00:00 2001 From: MetalliC <0vetal0@gmail.com> Date: Mon, 26 Oct 2015 02:58:23 +0200 Subject: [PATCH 3/3] fix SonicPopcorn DIPSW polarity, it is somewhat playable (insert coin, press Relay button, repeatedly press Handle A and B buttons) --- src/mame/drivers/segac2.c | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/src/mame/drivers/segac2.c b/src/mame/drivers/segac2.c index 5691d4c09a5..8d57f09984a 100644 --- a/src/mame/drivers/segac2.c +++ b/src/mame/drivers/segac2.c @@ -937,8 +937,8 @@ static INPUT_PORTS_START( sonicpop ) PORT_INCLUDE( systemc_generic ) PORT_MODIFY("P1") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_NAME("Relay") // relay (must be ON by default or machine will instantly give an 'assistance' error) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON4 ) PORT_NAME("Coinblock") // coinblock (inverted) + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_NAME("Relay") // relay (must be ON by default or machine will instantly give an 'assistance' error) + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_NAME("Coinblock") // coinblock (inverted) PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_NAME("Sensor") // sensor PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START2 ) PORT_NAME("Cup Select 1") // cup select 2 @@ -967,20 +967,20 @@ static INPUT_PORTS_START( sonicpop ) PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_MODIFY("DSW") - PORT_DIPNAME( 0x01, 0x00, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW2:1") - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x00, "Trouble BGM" ) PORT_DIPLOCATION("SW2:2") - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x01, 0x01, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW2:1") + PORT_DIPSETTING( 0x01, DEF_STR( On ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPNAME( 0x02, 0x02, "Trouble BGM" ) PORT_DIPLOCATION("SW2:2") + PORT_DIPSETTING( 0x02, DEF_STR( On ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) PORT_DIPNAME( 0x0c, 0x00, "Region" ) PORT_DIPLOCATION("SW2:3,4") PORT_DIPSETTING( 0x00, DEF_STR( USA ) ) PORT_DIPSETTING( 0x04, "Export" ) PORT_DIPSETTING( 0x08, "USA (duplicate)" ) PORT_DIPSETTING( 0x0c, DEF_STR( Japan ) ) - PORT_DIPNAME( 0x10, 0x00, "Sensor Advertise" ) PORT_DIPLOCATION("SW2:5") - PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x10, 0x10, "Sensor Advertise" ) PORT_DIPLOCATION("SW2:5") + PORT_DIPSETTING( 0x10, DEF_STR( On ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) PORT_DIPUNUSED_DIPLOC( 0x20, IP_ACTIVE_LOW, "SW2:6" ) PORT_DIPUNUSED_DIPLOC( 0x40, IP_ACTIVE_LOW, "SW2:7" ) PORT_DIPUNUSED_DIPLOC( 0x80, IP_ACTIVE_LOW, "SW2:8" ) @@ -1691,7 +1691,7 @@ ROM_START( soniccar ) /* Waku Waku Sonic Patrol Car (c)1991 Sega - 834-8401 SON ROM_LOAD( "epr-14394.ic4", 0x000000, 0x040000, CRC(476e30dd) SHA1(c9d381160c58b05763ea286a53c7ca6de074fda2) ) ROM_END -ROM_START( sonicpop ) /* Sega Sonic Popcorn Shop (EMP5032 labeled 317-0140) */ +ROM_START( sonicpop ) /* Sega Sonic Popcorn Shop (Rev.B) (c)1993 Sega - 834-9555-02 (EMP5032 labeled 317-0140) */ ROM_REGION( 0x200000, "maincpu", 0 ) ROM_LOAD16_BYTE( "epr-14592b.ic32", 0x000000, 0x040000, CRC(bac586a1) SHA1(0208213bfa1a5093e76edb1a7e0ba5ebc862801d) ) ROM_LOAD16_BYTE( "epr-15491b.ic31", 0x000001, 0x040000, CRC(527106c3) SHA1(97f08006bba4b87c304c7ad3b1480b77e99dff10) )