new NOT WORKING machines (#13252)

--------
Gwasuwon (Korea) [Taksangs, David Haywood]

Co-authored-by: David Haywood <hazemamewip@hotmail.com>
This commit is contained in:
mamehaze 2025-01-21 16:07:46 +00:00 committed by GitHub
parent b19ec71549
commit 9a8d047011
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 124 additions and 3 deletions

View File

@ -1182,6 +1182,88 @@ static INPUT_PORTS_START( sutjarod )
PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN )
INPUT_PORTS_END
static INPUT_PORTS_START( gwasu )
PORT_START("DSW1")
PORT_DIPNAME( 0x0001, 0x0000, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW1:1")
PORT_DIPSETTING( 0x0001, DEF_STR( Off ) )
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
PORT_DIPNAME( 0x0002, 0x0002, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW1:2")
PORT_DIPSETTING( 0x0002, DEF_STR( Off ) )
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
PORT_DIPNAME( 0x0004, 0x0004, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW1:3")
PORT_DIPSETTING( 0x0004, DEF_STR( Off ) )
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
PORT_DIPNAME( 0x0008, 0x0008, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW1:4")
PORT_DIPSETTING( 0x0008, DEF_STR( Off ) )
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
PORT_DIPNAME( 0x0010, 0x0010, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW1:5")
PORT_DIPSETTING( 0x0010, DEF_STR( Off ) )
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
PORT_DIPNAME( 0x0020, 0x0020, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW1:6")
PORT_DIPSETTING( 0x0020, DEF_STR( Off ) )
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW1:7")
PORT_DIPSETTING( 0x0040, DEF_STR( Off ) )
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
PORT_DIPNAME( 0x0080, 0x0080, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW1:8")
PORT_DIPSETTING( 0x0080, DEF_STR( Off ) )
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
PORT_BIT( 0x0100, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1)
PORT_BIT( 0x0200, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1)
PORT_BIT( 0x0400, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1)
PORT_BIT( 0x0800, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1)
PORT_BIT( 0x1000, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(1)
PORT_BIT( 0x2000, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_PLAYER(1)
PORT_BIT( 0x4000, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_PLAYER(1)
PORT_BIT( 0x8000, IP_ACTIVE_HIGH, IPT_UNKNOWN )
PORT_START("DSW2")
PORT_DIPNAME( 0x0001, 0x0001, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW2:1")
PORT_DIPSETTING( 0x0001, DEF_STR( Off ) )
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
PORT_DIPNAME( 0x0002, 0x0002, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW2:2")
PORT_DIPSETTING( 0x0002, DEF_STR( Off ) )
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
PORT_DIPNAME( 0x0004, 0x0004, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW2:3")
PORT_DIPSETTING( 0x0004, DEF_STR( Off ) )
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
PORT_DIPNAME( 0x0008, 0x0008, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW2:4")
PORT_DIPSETTING( 0x0008, DEF_STR( Off ) )
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
PORT_DIPNAME( 0x0010, 0x0010, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW2:5")
PORT_DIPSETTING( 0x0010, DEF_STR( Off ) )
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
PORT_DIPNAME( 0x0020, 0x0020, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW2:6")
PORT_DIPSETTING( 0x0020, DEF_STR( Off ) )
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW2:7")
PORT_DIPSETTING( 0x0040, DEF_STR( Off ) )
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
PORT_DIPNAME( 0x0080, 0x0080, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW2:8")
PORT_DIPSETTING( 0x0080, DEF_STR( Off ) )
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
// player 2 listed in service mode, but service mode could be leftover from another game
PORT_BIT( 0x0100, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2)
PORT_BIT( 0x0200, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2)
PORT_BIT( 0x0400, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2)
PORT_BIT( 0x0800, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2)
PORT_BIT( 0x1000, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(2)
PORT_BIT( 0x2000, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_PLAYER(2)
PORT_BIT( 0x4000, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_PLAYER(2)
PORT_BIT( 0x8000, IP_ACTIVE_HIGH, IPT_UNKNOWN )
PORT_START("SYSTEM") /* 500004.w */
PORT_BIT( 0x0100, IP_ACTIVE_HIGH, IPT_START1 )
PORT_BIT( 0x0200, IP_ACTIVE_HIGH, IPT_START2 )
PORT_BIT( 0x0400, IP_ACTIVE_HIGH, IPT_COIN1 )
PORT_BIT( 0x0800, IP_ACTIVE_HIGH, IPT_COIN2 )
PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN )
INPUT_PORTS_END
static INPUT_PORTS_START( moremore )
PORT_START("DSW1") /* 500000.w */
PORT_DIPNAME( 0x0001, 0x0000, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW1:1")
@ -3062,6 +3144,29 @@ ROM_START( sutjarod ) // 숫자로 해요 Deluxe
ROM_END
ROM_START( gwasu )
ROM_REGION( 0x100000, "maincpu", 0 ) /* 68000 Code */
ROM_LOAD16_BYTE( "ul12_tms27c010a.bin", 0x00000, 0x20000, CRC(af76012a) SHA1(05177440db95d15ade683d13a255043a2bfb6a5c) )
ROM_LOAD16_BYTE( "uh12_tms27c010a.bin", 0x00001, 0x20000, CRC(9c595f4c) SHA1(406f87d11aac4eb3cdb01e46061923426ca91f6a) )
ROM_REGION( 0x10000, "soundcpu", 0 ) /* Z80 Code */
ROM_LOAD( "u1_am27c512.bin", 0x00000, 0x10000, CRC(91127141) SHA1(03b6f55fa6ce4fee4cfb350768d0f0b1f0049944) )
ROM_REGION( 0x10000, "cpu2", 0 ) /* Intel 87C52 MCU Code */
ROM_LOAD( "87c52.mcu", 0x00000, 0x10000 , NO_DUMP )
ROM_REGION16_BE( 0x200, "user1", 0 ) /* Data from Shared RAM */
// see note in sutjarod, same workaround is being used
ROM_LOAD16_WORD( "protdata.bin", 0x00000, 0x200, BAD_DUMP CRC(c819b9a8) SHA1(1d425e8c9940c0e691149e5406dd71808bd73832) )
ROM_REGION( 0x040000, "oki", 0 ) /* Samples */
ROM_LOAD( "uj15_tms27c010a.bin", 0x00000, 0x20000, CRC(a3c3fe53) SHA1(318e017b86e96f3adda830216fe6da3680a7cfab) )
ROM_REGION( 0x100000, "gfx1", 0 ) /* Sprites */
ROM_LOAD( "ua4_nm27c040q.bin", 0x00000, 0x80000, CRC(f53c35b4) SHA1(7a1b5ac04de40dc5fc2cadd730e8ea833f02b621) )
ROM_LOAD( "ua5_nm27c040q.bin", 0x80000, 0x80000, CRC(0444f497) SHA1(b399c1d8becdd9ca7d9cef9db1e7365199916bd4) )
ROM_END
void snowbros_state::init_cookbib2()
{
@ -3161,6 +3266,19 @@ void snowbros_state::init_sutjarod()
rom[0x54 / 2] = 0x2508;
}
void snowbros_state::init_gwasu()
{
// same reason for patch as init_sutjarod
uint16_t *rom = (uint16_t*)memregion("maincpu")->base();
rom[0xfda8 / 2] = 0x434b;
rom[0xfdaa / 2] = 0x3345;
// checksum is done on startup, must equal 0
rom[0x54 / 2] = 0x11ef;
}
void snowbros_state::init_pzlbreak()
{
m_pandora->set_bg_pen(0xc0);
@ -3236,16 +3354,17 @@ GAME( 1996, cookbib2a, cookbib2, semicom_mcu, cookbib2, snowbros_state, init_co
GAME( 1996, cookbib2b, cookbib2, semiprot, cookbib2, snowbros_state, init_cookbib2, ROT0, "SemiCom", "Cookie & Bibi 2 (English, set 3)", MACHINE_SUPPORTS_SAVE ) // older? test mode looks even worse on this, but neither shows the correct dip info anyway
GAME( 1996, cookbib2c, cookbib2, semiprot, cookbib2c,snowbros_state, init_cookbib2, ROT0, "SemiCom", "Cookie & Bibi 2 (English / Korean)", MACHINE_SUPPORTS_SAVE ) // in this set the language switch actually works but its effects are inverted to what test mode shows. Sticker on PCB shows 95 so maybe earliest set?
GAME( 1996, toppyrap, 0, semiprot, toppyrap, snowbros_state, empty_init, ROT0, "SemiCom", "Toppy & Rappy", MACHINE_SUPPORTS_SAVE )
GAME( 1996, sutjarod, 0, semiprot, sutjarod, snowbros_state, init_sutjarod, ROT0, "SemiCom", "Sutjaro Haeyo Deluxe", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
GAME( 1996, sutjarod, 0, semiprot, sutjarod, snowbros_state, init_sutjarod, ROT0, "SemiCom", "Sutjaro Haeyo Deluxe (Korea)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) // playable, but left as not working until protection data is extracted
GAME( 1997, gwasu, 0, semiprot, gwasu, snowbros_state, init_gwasu, ROT0, "SemiCom / DMD", "Gwasuwon (Korea)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) // playable, but left as not working until protection data is extracted
GAME( 1997, cookbib3, 0, semiprot, cookbib3, snowbros_state, init_cookbib3, ROT0, "SemiCom", "Cookie & Bibi 3", MACHINE_SUPPORTS_SAVE )
GAME( 1997, pzlbreak, 0, semiprot, pzlbreak, snowbros_state, init_pzlbreak, ROT0, "SemiCom / Tirano", "Puzzle Break (set 1)", MACHINE_SUPPORTS_SAVE )
GAME( 1997, pzlbreaka, pzlbreak, semiprot, pzlbreak, snowbros_state, init_pzlbreak, ROT0, "SemiCom / Tirano", "Puzzle Break (set 2)", MACHINE_SUPPORTS_SAVE )
GAME( 1997, suhosong, 0, semiprot, suhosong, snowbros_state, empty_init, ROT0, "SemiCom", "Su Ho Seong", MACHINE_SUPPORTS_SAVE )
GAME( 1997, suhosong, 0, semiprot, suhosong, snowbros_state, empty_init, ROT0, "SemiCom", "Su Ho Seong (Korea)", MACHINE_SUPPORTS_SAVE )
GAME( 1997, twinkle, 0, semiprot, twinkle, snowbros_state, empty_init, ROT0, "SemiCom / Tirano", "Twinkle (set 1)", MACHINE_SUPPORTS_SAVE )
GAME( 1997, twinklea, twinkle, semiprot, twinkle, snowbros_state, empty_init, ROT0, "SemiCom / Tirano", "Twinkle (set 2)", MACHINE_SUPPORTS_SAVE )
GAME( 1998, 3in1semi, 0, semiprot, moremore, snowbros_state, init_3in1semi, ROT0, "SemiCom / XESS", "New HyperMan (3-in-1 with Cookie & Bibi & HyperMan) (set 1)", MACHINE_SUPPORTS_SAVE )
GAME( 1998, 3in1semia, 3in1semi, semiprot, moremore, snowbros_state, init_3in1semi, ROT0, "SemiCom / XESS", "New HyperMan (3-in-1 with Cookie & Bibi & HyperMan) (set 2)", MACHINE_SUPPORTS_SAVE )
GAME( 1999, mcheonru, 0, semiprot, mcheonru, snowbros_state, init_3in1semi, ROT0, "SemiCom / AceVer", "Ma Cheon Ru", MACHINE_SUPPORTS_SAVE ) // a flyer exists for an English version called Arirang, AceVer team logo is displayed on it
GAME( 1999, mcheonru, 0, semiprot, mcheonru, snowbros_state, init_3in1semi, ROT0, "SemiCom / AceVer", "Ma Cheon Ru (Korea)", MACHINE_SUPPORTS_SAVE ) // a flyer exists for an English version called Arirang, AceVer team logo is displayed on it
GAME( 1999, moremore, 0, semiprot, moremore, snowbros_state, init_3in1semi, ROT0, "SemiCom / Exit", "More More", MACHINE_SUPPORTS_SAVE )
GAME( 1999, moremorp, 0, semiprot, moremore, snowbros_state, init_3in1semi, ROT0, "SemiCom / Exit", "More More Plus", MACHINE_SUPPORTS_SAVE )
// This is very similar to the SemiCom titles, but unprotected.

View File

@ -56,6 +56,7 @@ public:
void init_hyperpac();
void init_yutnori();
void init_sutjarod();
void init_gwasu();
private:
required_device<cpu_device> m_maincpu;

View File

@ -23884,6 +23884,7 @@ cookbib2b // (c) 1996 SemiCom
cookbib2c // (c) 1996 SemiCom
cookbib3 // (c) 1997 SemiCom
finalttr // (c) 1993 Jeil Computer System
gwasu // (c) 1997 SemiCom
honeydol // (c) 1995 Barko Corp
hyperpac // (c) 1995 SemiCom
hyperpacb // bootleg