From 9f9da29a4bda236161d28ebc2965ccb03b7e85dd Mon Sep 17 00:00:00 2001 From: arcadez2003 <51386955+arcadez2003@users.noreply.github.com> Date: Mon, 16 Oct 2023 18:20:32 +0100 Subject: [PATCH] Add three recently released Sega C2 prototypes (#108) Head On Channel OOPArts SegaSonic Bros --- src/drivers/segac2.c | 127 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 127 insertions(+) diff --git a/src/drivers/segac2.c b/src/drivers/segac2.c index 9af2b68cc..3728bd00d 100644 --- a/src/drivers/segac2.c +++ b/src/drivers/segac2.c @@ -1192,6 +1192,99 @@ INPUT_PORTS_START( puyopuy2 ) PORT_DIPSETTING( 0x80, "2" ) INPUT_PORTS_END +INPUT_PORTS_START( headonch ) + PORT_INCLUDE( systemc_generic ) + + PORT_MODIFY("P1") + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNUSED ) /* Button 2 Unused */ + PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNUSED ) /* Button 3 Unused */ + + PORT_MODIFY("P2") + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNUSED ) /* Button 2 Unused */ + PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNUSED ) /* Button 3 Unused */ + + PORT_MODIFY("DSW") + PORT_DIPNAME( 0x01, 0x00, DEF_STR( Demo_Sounds ) ) + PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x06, 0x06, DEF_STR( Difficulty ) ) + PORT_DIPSETTING( 0x04, DEF_STR( Easy ) ) + PORT_DIPSETTING( 0x06, DEF_STR( Medium ) ) + PORT_DIPSETTING( 0x02, DEF_STR( Hard ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) ) + PORT_DIPNAME( 0x18, 0x18, DEF_STR( Lives ) ) + PORT_DIPSETTING( 0x10, "2" ) + PORT_DIPSETTING( 0x18, "3" ) + PORT_DIPSETTING( 0x08, "4" ) + PORT_DIPSETTING( 0x00, "5" ) + //"SW2:6" unused + //"SW2:7" unused + //"SW2:8" unused +INPUT_PORTS_END + + +INPUT_PORTS_START( ssonicbr ) + PORT_INCLUDE( systemc_generic ) + + PORT_MODIFY("P1") + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNUSED ) /* Button 2 Unused */ + PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNUSED ) /* Button 3 Unused */ + + PORT_MODIFY("P2") + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNUSED ) /* Button 2 Unused */ + PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNUSED ) /* Button 3 Unused */ + + PORT_MODIFY("DSW") + PORT_DIPNAME( 0x01, 0x01, DEF_STR( Demo_Sounds ) ) + PORT_DIPSETTING( 0x01, DEF_STR( On ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPNAME( 0x06, 0x06, DEF_STR( Difficulty ) ) + PORT_DIPSETTING( 0x04, DEF_STR( Easy ) ) + PORT_DIPSETTING( 0x06, DEF_STR( Medium ) ) + PORT_DIPSETTING( 0x02, DEF_STR( Hard ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) ) + //"SW2:4" unused + //"SW2:5" unused + //"SW2:6" unused + //"SW2:7" unused + //"SW2:8" unused +INPUT_PORTS_END + + +INPUT_PORTS_START( ooparts ) // testmode expects controls similar to twinsqua + PORT_INCLUDE( systemc_generic ) + + PORT_MODIFY("P1") + PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNUSED ) /* Button 3 Unused */ + + PORT_MODIFY("P2") + PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNUSED ) /* Button 3 Unused */ + + PORT_MODIFY("SERVICE") // "shot" button in testmode (needed for sound test) + PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) + PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) + + PORT_MODIFY("DSW") + PORT_DIPNAME( 0x01, 0x00, DEF_STR( Demo_Sounds ) ) + PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x06, 0x06, DEF_STR( Lives ) ) + PORT_DIPSETTING( 0x04, "2" ) + PORT_DIPSETTING( 0x06, "3" ) + PORT_DIPSETTING( 0x02, "4" ) + PORT_DIPSETTING( 0x00, "5" ) + PORT_DIPNAME( 0x18, 0x18, DEF_STR( Difficulty ) ) + PORT_DIPSETTING( 0x10, DEF_STR( Easy ) ) + PORT_DIPSETTING( 0x18, DEF_STR( Medium ) ) + PORT_DIPSETTING( 0x08, DEF_STR( Hard ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) ) + PORT_DIPNAME( 0x60, 0x60, "Region" ) // undocumented + PORT_DIPSETTING( 0x60, DEF_STR( Japan ) ) + PORT_DIPSETTING( 0x40, DEF_STR( USA ) ) + PORT_DIPSETTING( 0x20, "Export" ) + PORT_DIPSETTING( 0x00, "Export" ) + //"SW2:8" unused +INPUT_PORTS_END INPUT_PORTS_START( pclub ) PORT_INCLUDE( systemc_generic ) @@ -1499,6 +1592,25 @@ ROM_START( ribbit ) /* Ribbit (c)1991 Sega */ ROM_LOAD( "ep13834.4", 0x000000, 0x020000, CRC(ab0c1833) SHA1(f864e12ecf6c0524da20fc66747a4fa4280e67e9) ) ROM_END +ROM_START( ooparts ) /* Oo Parts (Prototype) (c)1992 Sega / Success */ + ROM_REGION( 0x200000, REGION_CPU1, 0 ) + ROM_LOAD16_BYTE( "ooparts.ic32", 0x000000, 0x080000, CRC(8dcf2940) SHA1(f72630e8a26e7f2089da56878a1599268c355246) ) + ROM_LOAD16_BYTE( "ooparts.ic31", 0x000001, 0x080000, CRC(35381899) SHA1(524f6e1b1292542079589275e20f45c2eb68605c) ) + ROM_LOAD16_BYTE( "ooparts.ic34", 0x100000, 0x080000, CRC(7192ac29) SHA1(d3028a9bbb7faa733285cf7e47fd840ec0d0bf69) ) + ROM_LOAD16_BYTE( "ooparts.ic33", 0x100001, 0x080000, CRC(42755dc2) SHA1(cd0aa79418b922266c5d41bf24b9136f9f105dc5) ) + + ROM_REGION( 0x040000, REGION_SOUND1, 0 ) + ROM_LOAD( "epr-13655.ic4", 0x000000, 0x040000, CRC(e09961f6) SHA1(e109b5f41502b765d191f22e3bbcff97d6defaa1) ) +ROM_END + +ROM_START( ssonicbr ) /* Sega Sonic Bros (Prototype) (c)1992 Sega */ + ROM_REGION( 0x200000, REGION_CPU1, 0 ) + ROM_LOAD16_BYTE( "ssonicbr.ic32", 0x000000, 0x040000, CRC(cf254ecd) SHA1(4bb295ec80f8ddfeab4e360eebf12c5e2dfb9800) ) + ROM_LOAD16_BYTE( "ssonicbr.ic31", 0x000001, 0x040000, CRC(03709746) SHA1(0b457f557da77acd3f43950428117c1decdfaf26) ) + + ROM_REGION( 0x020000, REGION_SOUND1, 0 ) + ROM_LOAD( "ssonicbr.ic4", 0x000000, 0x020000, CRC(78e56a51) SHA1(8a72c12975cd74919b4337e0f681273e6b5cbbc6) ) +ROM_END ROM_START( tantr ) /* Tant-R (Puzzle & Action) (c)1992 Sega */ ROM_REGION( 0x200000, REGION_CPU1, 0 ) @@ -1672,6 +1784,17 @@ ROM_START( zunkyou ) /* Zunzunkyou No Yabou (c)1994 Sega */ ROM_LOAD( "epr16810.4", 0x000000, 0x080000, CRC(d542f0fe) SHA1(23ea50110dfe1cd9f286a535d15e0c3bcba73b00) ) ROM_END +ROM_START( headonch ) /* Head On Channel (Prototype) (c)1994 Sega */ + ROM_REGION( 0x200000, REGION_CPU1, 0 ) + ROM_LOAD16_BYTE( "headonch.ic32", 0x000000, 0x080000, CRC(091cf538) SHA1(04673678f543743b395edea39ad4ee6177436dc0) ) + ROM_LOAD16_BYTE( "headonch.ic31", 0x000001, 0x080000, CRC(91f3b5f1) SHA1(15cbe7a172dde7de7b73f0c9eeddfee41e8d1f80) ) + ROM_LOAD16_BYTE( "headonch.ic34", 0x100000, 0x080000, CRC(d8dc6323) SHA1(e7e891324764641691dcb63e5222f2ed9207fb96) ) + ROM_LOAD16_BYTE( "headonch.ic33", 0x100001, 0x080000, CRC(3268e38b) SHA1(10ded2be01465014ca9e6c64ffab1190ec985359) ) + + ROM_REGION( 0x040000, REGION_SOUND1, 0 ) + ROM_LOAD( "headonch.ic4", 0x000000, 0x040000, CRC(90af7301) SHA1(227227cb5d0df6612bac7b4c94b99e2287686ccd) ) +ROM_END + ROM_START( pclubj ) /* Print Club (c)1995 Atlus */ ROM_REGION( 0x200000, REGION_CPU1, 0 ) @@ -2177,6 +2300,8 @@ GAME( 1990, tfrceacj, tfrceac, segac2, tfrceac, tfrceac, ROT0, "Sega / Tech GAME( 1990, tfrceacb, tfrceac, segac2, tfrceac, tfrceacb, ROT0, "bootleg", "ThunderForce AC (bootleg)", 0 ) GAME( 1991, twinsqua, 0, segac2, twinsqua, twinsqua, ROT0, "Sega", "Twin Squash", 0 ) GAME( 1991, ribbit, 0, segac2, ribbit, ribbit, ROT0, "Sega", "Ribbit!", 0 ) +GAME( 1992, ooparts, 0, segac2, ooparts, c2boot, ROT270, "Sega / Success", "OOPArts (Japan, Prototype)", 0 ) +GAME( 1992, ssonicbr, 0, segac2, ssonicbr, bloxeedc, ROT0, "Sega", "SegaSonic Bros (Japan, prototype)", 0 ) GAME( 1992, tantr, 0, segac2, ichir, tantr, ROT0, "Sega", "Puzzle & Action: Tant-R (Japan)", 0 ) GAME( 1993, tantrkor, tantr, segac2, ichir, tantrkor, ROT0, "Sega", "Puzzle & Action: Tant-R (Korea)", 0 ) GAME( 1992, tantrbl, tantr, segac2, ichir, c2boot, ROT0, "bootleg", "Puzzle & Action: Tant-R (Japan) (bootleg set 1)", 0 ) @@ -2194,6 +2319,8 @@ GAME( 1994, stkclmnj, stkclmns, segac2, stkclmns, stkclmnj, ROT0, "Sega", GAME( 1994, puyopuy2, 0, segac2, puyopuy2, puyopuy2, ROT0, "Compile (Sega license)", "Puyo Puyo 2 (Japan)", 0 ) GAME( 1994, potopoto, 0, segac2, potopoto, potopoto, ROT0, "Sega", "Poto Poto (Japan)", 0 ) GAME( 1994, zunkyou, 0, segac2, zunkyou, zunkyou, ROT0, "Sega", "Zunzunkyou No Yabou (Japan)", 0 ) +GAME( 1994, headonch, 0, segac2, headonch, c2boot, ROT0, "Sega", "Head On Channel (Japan, prototype)", 0 ) + /* Atlus Print Club 'Games' (C-2 Hardware, might not be possible to support them because they use camera + printer, really just put here for reference) */ GAME( 1995, pclubj, 0, segac2, pclub, pclub, ROT0, "Atlus", "Print Club (Japan Vol.1)", GAME_NOT_WORKING )