summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author Ivan Vangelista <mesgnet@yahoo.it>2025-02-18 18:24:30 +0100
committer Ivan Vangelista <mesgnet@yahoo.it>2025-02-18 18:24:30 +0100
commitbd8215c59b2ad3f9ec15f3538e41c4331185e24a (patch)
treeb40cff277ea23a8dd964dc32adf9e968476c7a1b
parentd912c4f2d05055ef05cce3c5c73db29c5a4f375d (diff)
New systems marked not working
------------------------------ Baile 2005 (V3.2 2005-01-12) [little0] Jinpai Show Hand (Chinese version 2004-09-22) [little0] Yuanyan Hudie Meng (Version 8.8A 2005-09-25) [little0] New clones marked not working ----------------------------- Quanhuang Sanguo Tebie Ban (bootleg of Knights of Valour Super Heroes, V302CN, Dec 29 2010 16:31:32) [Guru] Three Wonders (Italian bootleg) [Manuel Assoni]
-rw-r--r--src/mame/capcom/cps1.cpp30
-rw-r--r--src/mame/capcom/cps1_v.cpp1
-rw-r--r--src/mame/igs/pgm.cpp30
-rw-r--r--src/mame/mame.lst5
-rw-r--r--src/mame/misc/gms.cpp262
-rw-r--r--src/mame/playmark/sslam.cpp4
-rw-r--r--src/mame/playmark/sslam.h2
-rw-r--r--src/mame/valadon/tankbust.cpp3
-rw-r--r--src/mame/wing/lucky37.cpp4
9 files changed, 319 insertions, 22 deletions
diff --git a/src/mame/capcom/cps1.cpp b/src/mame/capcom/cps1.cpp
index 856e9583ae6..d745393c2d2 100644
--- a/src/mame/capcom/cps1.cpp
+++ b/src/mame/capcom/cps1.cpp
@@ -9085,6 +9085,35 @@ ROM_START( 3wondersb )
ROM_LOAD( "27020.1", 0x00000, 0x40000, CRC(3c4348cf) SHA1(cfa9fd2f9692ddfef856106de191d3bdb5289297) )
ROM_END
+/* Three Wonders (Italian bootleg) - "Wonder3 rev.2" PCB
+ The program has only minor differences from 3wondersb (scroll x base in RAM and a routine that currently stops the game from booting)
+ GFX ROMs use a rather different format */
+ROM_START( 3wondersbi )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "3.u11", 0x00000, 0x80000, CRC(65ae8c7e) SHA1(fd38e9953f10fc6ab4ae681b2644f09482af351f) ) // 27C4001
+ ROM_LOAD16_BYTE( "4.u8", 0x00001, 0x80000, CRC(67a60fe6) SHA1(3e7d0e6090ccc961d85e460cdefcd069dc851d20) ) // 27C4001
+
+ ROM_REGION( 0x500000, "gfx", 0 ) // all 27C4001 TODO: correct ROM loading
+ ROM_LOAD( "5.u140", 0x000000, 0x80000, CRC(156c487b) SHA1(f6f5cccd0cad48b0e1082c57cea31b933a7244bd) )
+ ROM_LOAD( "6.u128", 0x080000, 0x80000, CRC(b671f752) SHA1(3c766a3456183d7e2276fcdf210aa171ffb6a9ef) )
+ ROM_LOAD( "7.u126", 0x100000, 0x80000, CRC(2f835213) SHA1(457ceeb3a970124e5cf588c85a1bf9f32e9c9383) )
+ ROM_LOAD( "8.u139", 0x180000, 0x80000, CRC(e9421cba) SHA1(171966bb3127d0d860b6e780ba6ad09fe3689345) )
+ ROM_LOAD( "9.u127", 0x200000, 0x80000, CRC(8d08103c) SHA1(0878edf5ca09922fbd4361d2e0bf793eccb86b81) )
+ ROM_LOAD( "10.u125", 0x280000, 0x80000, CRC(da529062) SHA1(e46359d8e6dfb5b75103fc16cda45f75ea8036ce) )
+ ROM_LOAD( "11.u138", 0x300000, 0x80000, CRC(2007b45a) SHA1(6a55b55f92bd0a02a5c4fbcac8caab915a4de584) )
+ ROM_LOAD( "12.u137", 0x380000, 0x80000, CRC(7dff1790) SHA1(f4d83c81eab3ba8a538a9a89995d10c1e8119c54) )
+ ROM_LOAD( "13.u130", 0x400000, 0x80000, CRC(1054d40c) SHA1(68145385c01a5d9d94f17f74f36f5939484308e8) )
+ ROM_LOAD( "14.u129", 0x480000, 0x80000, CRC(2e32610b) SHA1(ff4b351a53a16191dc3ef6e0fce2421191b5312b) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "1.u18", 0x00000, 0x08000, CRC(9f4017fb) SHA1(a4c652c406dd521cc26ef21ad4a2b7091ed9defe) ) // 27c512
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "2.u24", 0x00000, 0x40000, CRC(db01f9fe) SHA1(b78c77ab29fb667e796b07dc5f3a53b47250e713) ) // 27C4001
+ ROM_CONTINUE( 0x00000, 0x40000 ) // 0xxxxxxxxxxxxxxxxxx = 0xFF
+ROM_END
+
/* Three Wonders (hack) */
ROM_START( 3wondersh )
ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
@@ -14995,6 +15024,7 @@ GAME( 1991, 3wondersr1, 3wonders, cps1_10MHz, 3wonders, cps_state, init_cps1,
GAME( 1991, 3wondersu, 3wonders, cps1_10MHz, 3wonders, cps_state, init_cps1, ROT0, "Capcom", "Three Wonders (USA 910520)", MACHINE_SUPPORTS_SAVE )
GAME( 1991, wonder3, 3wonders, cps1_10MHz, 3wonders, cps_state, init_cps1, ROT0, "Capcom", "Wonder 3 (Japan 910520)", MACHINE_SUPPORTS_SAVE )
GAME( 1991, 3wondersb, 3wonders, cps1_10MHz, 3wonders, cps_state, init_cps1, ROT0, "bootleg", "Three Wonders (bootleg)", MACHINE_SUPPORTS_SAVE ) // 910520 - based on World version
+GAME( 1991, 3wondersbi, 3wonders, cps1_10MHz, 3wonders, cps_state, init_cps1, ROT0, "bootleg (Impeuropex)", "Three Wonders (Italian bootleg)", MACHINE_NOT_WORKING |MACHINE_SUPPORTS_SAVE ) // 910520 - based on World version
GAME( 1991, 3wondersh, 3wonders, cps1_10MHz, 3wonders, cps_state, init_cps1, ROT0, "bootleg", "Three Wonders (hack)", MACHINE_SUPPORTS_SAVE ) // 910520 - based on World version
GAME( 1991, kod, 0, cps1_10MHz, kod, cps_state, init_cps1, ROT0, "Capcom", "The King of Dragons (World 910805)", MACHINE_SUPPORTS_SAVE ) // "ETC"
GAME( 1991, kodr1, kod, cps1_10MHz, kodr1, cps_state, init_cps1, ROT0, "Capcom", "The King of Dragons (World 910711)", MACHINE_SUPPORTS_SAVE ) // "ETC"
diff --git a/src/mame/capcom/cps1_v.cpp b/src/mame/capcom/cps1_v.cpp
index 210dcc7e072..673c207da96 100644
--- a/src/mame/capcom/cps1_v.cpp
+++ b/src/mame/capcom/cps1_v.cpp
@@ -1853,6 +1853,7 @@ static const struct CPS1config cps1_config_table[]=
{"3wondersu", CPS_B_21_BT1, mapper_RT24B },
{"wonder3", CPS_B_21_BT1, mapper_RT22B }, // equivalent to RT24B
{"3wondersb", CPS_B_21_BT1, mapper_RT24B, 0x36, 0, 0, 0x88 }, // same as 3wonders except some registers are hard wired rather than written to
+ {"3wondersbi", CPS_B_21_BT1, mapper_RT24B, 0x36, 0, 0, 0x88 }, // same as 3wonders except some registers are hard wired rather than written to
{"3wondersh", HACK_B_2, mapper_RT24B }, // one port is changed from 3wonders, and no protection
{"kod", CPS_B_21_BT2, mapper_KD29B, 0x36, 0, 0x34 },
{"kodr1", CPS_B_21_BT2, mapper_KD29B, 0x36, 0, 0x34 },
diff --git a/src/mame/igs/pgm.cpp b/src/mame/igs/pgm.cpp
index 9179a3fa003..8e0f543aab8 100644
--- a/src/mame/igs/pgm.cpp
+++ b/src/mame/igs/pgm.cpp
@@ -1983,6 +1983,35 @@ ROM_START( kovqhsgs )
ROM_IGNORE( 0x400000 ) // c00000-ffffff empty
ROM_END
+ROM_START( kovqhsgs302 ) // cart with 2010--04--16 main PCB and 2009-09-01 ROM PCB
+ ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code, on main PCB */
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "27c322.u3", 0x100000, 0x400000, CRC(4018559f) SHA1(e7e97ce89e1f563e8e08501ec3c2be6d81107253) ) // V300CN V302CN Dec 29 2010 16:31:32
+
+ ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom (NXP LPC2132 ARM7 TDMI-S CPU with 64kB internal flash ROM on main PCB) */
+ ROM_LOAD( "qhsg_prot.c51", 0x000000, 0x04000, BAD_DUMP CRC(0f09a5c1) SHA1(621b38c05f33277608d58b49822aebc930ae4870) ) // not dumped for this set
+
+ ROM_REGION( 0xa00000, "igs023", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles, on main PCB */
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t01.u8",0x180000, 0x800000, CRC(d498d97f) SHA1(97a7b6d2ed1170449e7c2899448af7cbbca4c94f) )
+ ROM_IGNORE( 0x800000 ) // 1ST AND 2ND HALF IDENTICAL
+
+ ROM_REGION16_LE( 0x4000000, "igs023:sprcol", 0 ) /* Sprite Colour Data, on ROM PCB */
+ ROM_LOAD( "a01.u8", 0x0000000, 0x1000000, CRC(25ae3efd) SHA1(083d977602ddb5ad54fbdcba000cd4287de8d463) )
+ ROM_LOAD( "a23.u9", 0x1000000, 0x1000000, CRC(1f51c140) SHA1(638a7449449716a2ae862a11b4333c09d369050a) )
+ ROM_LOAD( "a45.u10", 0x2000000, 0x1000000, CRC(5e44fd82) SHA1(bb7b9258a37a7fc7caf14ac5b606dd0ce6d43135) ) // 1ST AND 2ND HALF IDENTICAL
+
+ ROM_REGION16_LE( 0x1000000, "igs023:sprmask", 0 ) /* Sprite Masks + Colour Indexes, on ROM PCB */
+ ROM_LOAD( "b01.u6", 0x0000000, 0x1000000, CRC(779825d3) SHA1(eb179111eb4f0c98d502622f094b1e5aa1f98225) )
+
+ ROM_REGION( 0xc00000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) -, on ROM PCB */
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m01.u5",0x400000, 0x400000, CRC(af5e9be0) SHA1(be9da327f2a26bf14a6bc1c0b2dd114ac13b8c74) )
+ ROM_IGNORE( 0x400000 ) // 400000-7fffff almost completely empty
+ ROM_CONTINUE( 0x800000, 0x400000 )
+ ROM_IGNORE( 0x400000 ) // c00000-ffffff almost completely empty
+ROM_END
+
/*
@@ -5467,6 +5496,7 @@ GAME( 1999, kovsh100, kovsh, pgm_arm_type1, kovsh, pgm_arm_
// 拳皇三国特別版/Quánhuáng sānguó Tèbié bǎn
// nasty modern asian bootleg of Knights of Valour Super Heroes with characters ripped from SNK's The King of Fighters series!
GAME( 2008, kovqhsgs, kovsh, pgm_arm_type1, kovsh, pgm_arm_type1_state, init_kovqhsgs, ROT0, "bootleg", "Quanhuang Sanguo Tebie Ban (bootleg of Knights of Valour Super Heroes, V303CN, Nov 21 2008 19:03:49)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
+GAME( 2010, kovqhsgs302, kovsh, pgm_arm_type1, kovsh, pgm_arm_type1_state, init_kovqhsgs, ROT0, "bootleg", "Quanhuang Sanguo Tebie Ban (bootleg of Knights of Valour Super Heroes, V302CN, Dec 29 2010 16:31:32)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) // needs decryption, actual title is probably different
//三國戰紀2/Sānguó zhàn jì 2 (Traditional Chinese only in title screen)
// region provided by internal ARM rom
diff --git a/src/mame/mame.lst b/src/mame/mame.lst
index 33925330e23..73df2d7544a 100644
--- a/src/mame/mame.lst
+++ b/src/mame/mame.lst
@@ -15292,6 +15292,7 @@ sinvasnb
1941u
3wonders
3wondersb
+3wondersbi
3wondersh
3wondersr1
3wondersu
@@ -20692,6 +20693,7 @@ kovlsqh2
kovplus
kovplusa
kovqhsgs
+kovqhsgs302
kovsgqyz
kovsgqyza
kovsgqyzb
@@ -30713,8 +30715,10 @@ nfsug
gluck2
@source:misc/gms.cpp
+baile
ballch
cots
+jinpaish
magslot
rbmk
rbspm
@@ -30723,6 +30727,7 @@ sc2in1
ssanguoj
sscs
super555
+yyhm
@source:misc/goldngam.cpp
moviecrd
diff --git a/src/mame/misc/gms.cpp b/src/mame/misc/gms.cpp
index 9b5d69b245f..a554f41e9b2 100644
--- a/src/mame/misc/gms.cpp
+++ b/src/mame/misc/gms.cpp
@@ -75,6 +75,11 @@ TODO:
- hookup lamps and do layouts
- keyboard inputs for mahjong games
- use real values for reel tilemaps offsets instead of hardcoded ones (would fix magslot)
+- complete inputs for baile, yyhm, jinpaish (needs someone who understands Chinese and
+ knows how to play)
+- game logic in baile seems broken (you always win), maybe due to the patches?
+- broken title GFX in yyhm (transparent pen problem?)
+- the newer games seem to use range 0x9e1000-0x9e1fff during gameplay
Video references:
rbspm: https://www.youtube.com/watch?v=pPk-6N1wXoE
@@ -129,19 +134,19 @@ public:
{
}
- void rbmk(machine_config &config);
- void rbspm(machine_config &config);
- void ssanguoj(machine_config &config);
+ void rbmk(machine_config &config) ATTR_COLD;
+ void rbspm(machine_config &config) ATTR_COLD;
+ void ssanguoj(machine_config &config) ATTR_COLD;
- void super555(machine_config &config);
+ void super555(machine_config &config) ATTR_COLD;
- void init_ballch();
- void init_cots();
- void init_rbspm();
- void init_sball2k1();
- void init_ssanguoj();
- void init_sscs();
- void init_super555();
+ void init_ballch() ATTR_COLD;
+ void init_cots() ATTR_COLD;
+ void init_rbspm() ATTR_COLD;
+ void init_sball2k1() ATTR_COLD;
+ void init_ssanguoj() ATTR_COLD;
+ void init_sscs() ATTR_COLD;
+ void init_super555() ATTR_COLD;
protected:
virtual void video_start() override ATTR_COLD;
@@ -202,9 +207,12 @@ public:
{
}
- void init_sc2in1();
+ void init_baile() ATTR_COLD;
+ void init_jinpaish() ATTR_COLD;
+ void init_sc2in1() ATTR_COLD;
+ void init_yyhm() ATTR_COLD;
- void magslot(machine_config &config);
+ void magslot(machine_config &config) ATTR_COLD;
protected:
virtual void video_start() override ATTR_COLD;
@@ -1256,6 +1264,127 @@ static INPUT_PORTS_START( sc2in1 )
PORT_DIPSETTING( 0x0080, "Joystick" )
INPUT_PORTS_END
+static INPUT_PORTS_START( jinpaish )
+ PORT_INCLUDE( sc2in1 )
+
+ PORT_MODIFY("IN1") // TODO: likely incomplete
+ PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_UNKNOWN )
+ PORT_SERVICE_NO_TOGGLE(0x02, IP_ACTIVE_LOW)
+ PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_COIN1 )
+ PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_START1 )
+ PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_JOYSTICK_UP )
+ PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN )
+ PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN )
+ PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN )
+ PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_GAMBLE_BET )
+ PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME( "Select" )
+ PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME( "Show Card" )
+ PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_UNKNOWN )
+ 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 )
+
+ // Only 1 8-DIP bank on PCB. Dips' effects as per test mode.
+ PORT_MODIFY("DSW1")
+ PORT_DIPUNUSED_DIPLOC( 0x0001, 0x0000, "SW1:1") // first 5 seem hardcoded to Single Player / No connection
+ PORT_DIPUNUSED_DIPLOC( 0x0002, 0x0000, "SW1:2")
+ PORT_DIPUNUSED_DIPLOC( 0x0004, 0x0000, "SW1:3")
+ PORT_DIPUNUSED_DIPLOC( 0x0008, 0x0000, "SW1:4")
+ PORT_DIPUNUSED_DIPLOC( 0x0010, 0x0000, "SW1:5")
+ PORT_DIPNAME( 0x0020, 0x0000, "Display Game Title" ) PORT_DIPLOCATION("SW1:6")
+ PORT_DIPSETTING( 0x0020, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
+ PORT_DIPNAME( 0x0040, 0x0000, "Game Password" ) PORT_DIPLOCATION("SW1:7")
+ PORT_DIPSETTING( 0x0000, DEF_STR( Normal ) )
+ PORT_DIPSETTING( 0x0040, "Power On" )
+ PORT_DIPNAME( 0x0080, 0x0000, "Connector" ) PORT_DIPLOCATION("SW1:8")
+ PORT_DIPSETTING( 0x0000, "Joystick" )
+ PORT_DIPSETTING( 0x0080, "Mahjong" )
+INPUT_PORTS_END
+
+static INPUT_PORTS_START( baile )
+ PORT_INCLUDE( sc2in1 )
+
+ PORT_MODIFY("IN1") // TODO: likely incomplete
+ PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_UNKNOWN )
+ PORT_SERVICE_NO_TOGGLE(0x02, IP_ACTIVE_LOW)
+ PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_COIN1 )
+ PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_START1 )
+ PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME( "Tie Bet" )
+ PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_UNKNOWN )
+ PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME( "Player Bet" )
+ PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_NAME( "Banker Bet" )
+ PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_NAME( "Bet Modifier" )
+ PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_UNKNOWN )
+ PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_POKER_CANCEL )
+ PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_UNKNOWN )
+ 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 )
+
+ // Only 1 8-DIP bank on PCB. Most options appear to be software settings.
+ PORT_MODIFY("DSW1")
+ PORT_DIPNAME( 0x0001, 0x0000, DEF_STR( Test ) ) PORT_DIPLOCATION("SW1:1")
+ PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x0001, DEF_STR( On ) )
+ PORT_DIPNAME( 0x0002, 0x0002, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW1:2")
+ PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x0002, DEF_STR( On ) )
+ PORT_DIPUNKNOWN_DIPLOC( 0x0004, 0x0004, "SW1:3")
+ PORT_DIPUNKNOWN_DIPLOC( 0x0008, 0x0008, "SW1:4")
+ PORT_DIPUNKNOWN_DIPLOC( 0x0010, 0x0010, "SW1:5")
+ PORT_DIPUNKNOWN_DIPLOC( 0x0020, 0x0020, "SW1:6")
+ PORT_DIPUNKNOWN_DIPLOC( 0x0040, 0x0040, "SW1:7")
+ PORT_DIPNAME( 0x0080, 0x0000, "Connector" ) PORT_DIPLOCATION("SW1:8")
+ PORT_DIPSETTING( 0x0000, "Joystick" )
+ PORT_DIPSETTING( 0x0080, "Mahjong" )
+INPUT_PORTS_END
+
+static INPUT_PORTS_START( yyhm )
+ PORT_INCLUDE( sc2in1 )
+
+ PORT_MODIFY("IN1") // TODO: likely incomplete
+ PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_UNKNOWN )
+ PORT_SERVICE_NO_TOGGLE(0x02, IP_ACTIVE_LOW)
+ PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_COIN1 )
+ PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_START1 )
+ PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_UNKNOWN )
+ PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_UNKNOWN )
+ PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT )
+ PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT )
+ PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_BUTTON1 )
+ PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_UNKNOWN )
+ PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_BUTTON2 ) // also used to select in test mode
+ PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_UNKNOWN )
+ 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 )
+
+ // Only 1 8-DIP bank on PCB. Dips' effects as per test mode.
+ PORT_MODIFY("DSW1")
+ PORT_DIPNAME( 0x0001, 0x0001, DEF_STR( Test ) ) PORT_DIPLOCATION("SW1:1")
+ PORT_DIPSETTING( 0x0001, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
+ PORT_DIPNAME( 0x0002, 0x0002, "Voice Announcements" ) PORT_DIPLOCATION("SW1:2")
+ PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x0002, DEF_STR( On ) )
+ PORT_DIPNAME( 0x0004, 0x0004, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW1:3")
+ PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x0004, DEF_STR( On ) )
+ PORT_DIPNAME( 0x0008, 0x0008, "Scoring Type" ) PORT_DIPLOCATION("SW1:4")
+ PORT_DIPSETTING( 0x0000, "Mahjong Tile Scoring" )
+ PORT_DIPSETTING( 0x0008, "Numeric Scoring" )
+ PORT_DIPUNUSED_DIPLOC( 0x0010, 0x0010, "SW1:5") // No effect listed in test mode
+ PORT_DIPUNUSED_DIPLOC( 0x0020, 0x0020, "SW1:6") // "
+ PORT_DIPUNUSED_DIPLOC( 0x0040, 0x0040, "SW1:7") // "
+ PORT_DIPNAME( 0x0080, 0x0000, "Connector" ) PORT_DIPLOCATION("SW1:8")
+ PORT_DIPSETTING( 0x0000, "Joystick" )
+ PORT_DIPSETTING( 0x0080, "Mahjong" )
+INPUT_PORTS_END
+
static INPUT_PORTS_START( ballch )
PORT_START("IN1")
PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_UNKNOWN )
@@ -2037,6 +2166,57 @@ ROM_START( sc2in1 )
ROM_LOAD16_WORD_SWAP( "is93c46.u136", 0x00, 0x080, CRC(f0552ce8) SHA1(2dae746d9808d8a37f4f928dedda500063efdcfe) )
ROM_END
+ROM_START( jinpaish ) // some of the labels were partly unreadable, all labels have 金牌 梭哈 before what's reported below
+ ROM_REGION( 0x80000, "maincpu", 0 ) // 68000 code
+ ROM_LOAD( "0922_1a59.u64", 0x00000, 0x80000, CRC(e0d9d814) SHA1(f3c9adabdfe517c2b944a82b36483af1088819b4) )
+
+ ROM_REGION( 0x80000, "oki", 0 )
+ ROM_LOAD( "s1_dce4.u83", 0x00000, 0x80000, BAD_DUMP CRC(e236a02d) SHA1(21361739c2d9b62249dfccc176638a6f375c313c) ) // same as cots??? label seems original, but sounds are clearly wrong
+
+ ROM_REGION( 0x200000, "gfx1", 0 )
+ ROM_LOAD( "a1.u178", 0x000000, 0x200000, CRC(eaceb446) SHA1(db312f555e060eea6450f506cbbdca8874a05d58) )
+
+ ROM_REGION( 0x80000, "gfx2", 0 )
+ ROM_LOAD( "t1_9269.u39", 0x00000, 0x80000, CRC(b87f62c0) SHA1(108c32271fb4802aec0606ff70d10be4fb0846bd) )
+
+ ROM_REGION( 0x80000, "gfx3", 0 )
+ ROM_LOAD( "u1_2b6_.u169", 0x00000, 0x80000, CRC(31cdca7c) SHA1(eb60bc85408ecfc40dabac2b11f3d9bfc5467d3e) )
+ROM_END
+
+ROM_START( baile ) // all labels have 百乐 before what's reported below
+ ROM_REGION( 0x80000, "maincpu", 0 ) // 68000 code
+ ROM_LOAD( "2005_v3.2_918a.u64", 0x00000, 0x80000, CRC(f1d01a43) SHA1(a36af064cf45261d360bf3c8abc9c7a919fe40c0) )
+
+ ROM_REGION( 0x80000, "oki", 0 )
+ ROM_LOAD( "2005_s1_78ac.u83", 0x00000, 0x80000, CRC(ab51ca24) SHA1(a867b52af2938779c83f4d5a24bc99ec7c2bf90e) )
+
+ ROM_REGION( 0x200000, "gfx1", 0 )
+ ROM_LOAD( "2005_a1_1a5e.u178", 0x000000, 0x200000, CRC(0e338aeb) SHA1(8c645b0658bbbbd53bab7d769723abe08eee7acd) ) // 1xxxxxxxxxxxxxxxxxxxx = 0xFF
+
+ ROM_REGION( 0x80000, "gfx2", 0 )
+ ROM_LOAD( "2005_t1_20cb.u39", 0x00000, 0x80000, CRC(bdb9a0d3) SHA1(0e8f675d244e7fe2eada90d02e836afc0e2840ca) )
+
+ ROM_REGION( 0x20000, "gfx3", 0 )
+ ROM_LOAD( "2005_u1_7fe2.u169", 0x00000, 0x20000, CRC(d6216c9d) SHA1(693c6cd44e5d74f372ee3c8e5a0b1bd59f42bf22) )
+ROM_END
+
+ROM_START( yyhm ) // some of the labels were partly unreadable, all have 鸳鸯蝴蝶梦 before what's reported below
+ ROM_REGION( 0x80000, "maincpu", 0 ) // 68000 code
+ ROM_LOAD( "8a_9___.u64", 0x00000, 0x80000, CRC(ed1572fd) SHA1(d9bddc105b1c4eaa22226785d12152a058f283e6) )
+
+ ROM_REGION( 0x80000, "oki", 0 )
+ ROM_LOAD( "s1_f___.u83", 0x00000, 0x80000, CRC(beaf22fb) SHA1(cccb547360a6b694bc3c976406ad36a5b7cc785d) )
+
+ ROM_REGION( 0x200000, "gfx1", 0 )
+ ROM_LOAD( "a1_c___.u178", 0x000000, 0x200000, CRC(a8e8aad5) SHA1(7576549fc23d5863d0affc27717492199bda2a6f) ) // 1xxxxxxxxxxxxxxxxxxxx = 0xFF
+
+ ROM_REGION( 0x80000, "gfx2", 0 )
+ ROM_LOAD( "t1_aabe.u39", 0x00000, 0x80000, CRC(767bc6c3) SHA1(c1ccd6940e00c82278030a2c0875c411f1a0c1af) )
+
+ ROM_REGION( 0x40000, "gfx3", 0 )
+ ROM_LOAD( "u1_333a.u169", 0x00000, 0x40000, CRC(4ceec182) SHA1(6c43db0ccf8f6c9c4350b072ebe7101cfbb1763f) ) // 1xxxxxxxxxxxxxxxxx = 0xFF
+ROM_END
+
// the PCB is slightly different from the others, both layout-wise and component-wise, but it's mostly compatible. It seems to use one more GFX layer and not to have the 89C51.
// GMS-branded chips: A66, A89, A201, A202. Not populated: M88
@@ -2186,6 +2366,45 @@ void gms_2layers_state::init_sball2k1()
rom[0x1552a / 2] = 0x4e71; // U135 ERROR
}
+void gms_3layers_state::init_baile()
+{
+ uint16_t *rom = (uint16_t *)memregion("maincpu")->base();
+
+ // U135 ERROR
+ rom[0xb494 / 2] = 0x6000;
+ rom[0xb4a6 / 2] = 0x4e71;
+ rom[0xb4a8 / 2] = 0x4e71;
+
+ // U136 ERROR
+ rom[0xb4ba / 2] = 0x6000;
+ rom[0xb530 / 2] = 0x6000;
+ rom[0xb542 / 2] = 0x4e71;
+ rom[0xb544 / 2] = 0x4e71;
+}
+
+void gms_3layers_state::init_jinpaish()
+{
+ uint16_t *rom = (uint16_t *)memregion("maincpu")->base();
+
+ // U135 ERROR
+ rom[0x319f0 / 2] = 0x4e71;
+ rom[0x319f2 / 2] = 0x4e71;
+ rom[0x31a0a / 2] = 0x6000;
+ rom[0x31a1a / 2] = 0x4e71;
+ rom[0x31a1c / 2] = 0x4e71;
+
+ // U136 ERROR
+ rom[0x31a4a / 2] = 0x6000;
+ rom[0x31f38 / 2] = 0x6000;
+ rom[0x31f4a / 2] = 0x4e71;
+ rom[0x31f4c / 2] = 0x4e71;
+
+ // U181 ERROR
+ rom[0x31f64 / 2] = 0x6000;
+ rom[0x31f74 / 2] = 0x4e71;
+ rom[0x31f76 / 2] = 0x4e71;
+}
+
void gms_3layers_state::init_sc2in1()
{
uint16_t *rom = (uint16_t *)memregion("maincpu")->base();
@@ -2202,6 +2421,20 @@ void gms_3layers_state::init_sc2in1()
rom[0x46844 / 2] = 0x4e71;
}
+void gms_3layers_state::init_yyhm()
+{
+ uint16_t *rom = (uint16_t *)memregion("maincpu")->base();
+
+ // REPAIR ERROR
+ rom[0x9a2 / 2] = 0x6000;
+ rom[0x9b4 / 2] = 0x4e71;
+ rom[0x9b6 / 2] = 0x4e71;
+ rom[0x9d4 / 2] = 0x6000;
+ rom[0xb7a / 2] = 0x6000;
+ rom[0xb8c / 2] = 0x4e71;
+ rom[0xb8e / 2] = 0x4e71;
+}
+
void gms_2layers_state::init_super555()
{
uint16_t *rom = (uint16_t *)memregion("maincpu")->base();
@@ -2252,12 +2485,15 @@ void gms_2layers_state::init_sscs()
GAME( 1998, rbmk, 0, rbmk, rbmk, gms_2layers_state, empty_init, ROT0, "GMS", "Shizhan Majiang Wang (Version 8.8)", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) // misses YM2151 hookup
GAME( 1998, rbspm, 0, rbspm, rbspm, gms_2layers_state, init_rbspm, ROT0, "GMS", "Shizhan Ding Huang Maque (Version 4.1)", MACHINE_UNEMULATED_PROTECTION | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) // stops during boot, patched for now. Misses YM2151 hookup
GAME( 1998, ssanguoj, 0, ssanguoj, ssanguoj, gms_2layers_state, init_ssanguoj, ROT0, "GMS", "Shizhan Sanguo Ji Jiaqiang Ban (Version 8.9 980413)", MACHINE_UNEMULATED_PROTECTION | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) // stops during boot, patched for now. YM3812 isn't hooked up (goes through undumped MCU).
+GAME( 2005, yyhm, 0, magslot, yyhm, gms_3layers_state, init_yyhm, ROT0, "GMS", "Yuanyan Hudie Meng (Version 8.8A 2005-09-25)", MACHINE_UNEMULATED_PROTECTION | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) // stops during boot, patched for now. Also needs EEPROM support.
// card games
GAME( 1999, super555, 0, super555, super555, gms_2layers_state, init_super555, ROT0, "GMS", "Super 555 (English version V1.5)", MACHINE_UNEMULATED_PROTECTION | MACHINE_NOT_WORKING ) // stops during boot, patched for now. Also needs EEPROM support.
GAME( 1999, sscs, 0, super555, sscs, gms_2layers_state, init_sscs, ROT0, "GMS", "San Se Caishen (Version 0502)", MACHINE_UNEMULATED_PROTECTION | MACHINE_NOT_WORKING ) // stops during boot, patched for now. Also needs EEPROM support.
GAME( 2001, sball2k1, 0, super555, sball2k1, gms_2layers_state, init_sball2k1, ROT0, "GMS", "Super Ball 2001 (Italy version 5.23)", MACHINE_UNEMULATED_PROTECTION | MACHINE_NOT_WORKING ) // stops during boot, patched for now. Also needs EEPROM support.
GAME( 2001, sc2in1, 0, magslot, sc2in1, gms_3layers_state, init_sc2in1, ROT0, "GMS", "Super Card 2 in 1 (English version 03.23)", MACHINE_UNEMULATED_PROTECTION | MACHINE_NOT_WORKING ) // stops during boot, patched for now. Also needs EEPROM support.
+GAME( 2004, jinpaish, 0, magslot, jinpaish, gms_3layers_state, init_jinpaish, ROT0, "GMS", "Jinpai Show Hand (Chinese version 2004-09-22)", MACHINE_UNEMULATED_PROTECTION | MACHINE_NOT_WORKING ) // stops during boot, patched for now. Also needs EEPROM support. Also needs correct controls.
+GAME( 2005, baile, 0, magslot, baile, gms_3layers_state, init_baile, ROT0, "GMS", "Baile 2005 (V3.2 2005-01-12)", MACHINE_UNEMULATED_PROTECTION | MACHINE_NOT_WORKING ) // stops during boot, patched for now. Also needs EEPROM support.
// slot, on slightly different PCB
GAME( 2003, magslot, 0, magslot, magslot, gms_3layers_state, empty_init, ROT0, "GMS", "Magic Slot (normal 1.0C)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING ) // reel / tilemaps priorities are wrong, inputs to be verified. Also needs EEPROM support.
diff --git a/src/mame/playmark/sslam.cpp b/src/mame/playmark/sslam.cpp
index 0e9f57ffcee..732aa71be99 100644
--- a/src/mame/playmark/sslam.cpp
+++ b/src/mame/playmark/sslam.cpp
@@ -90,10 +90,6 @@ Notes:
#include "speaker.h"
-#define oki_time_base 0x08
-
-
-
/**************************************************************************
This table converts commands sent from the main CPU, into sample numbers
diff --git a/src/mame/playmark/sslam.h b/src/mame/playmark/sslam.h
index 7618e4b2bd7..13720d0a5f5 100644
--- a/src/mame/playmark/sslam.h
+++ b/src/mame/playmark/sslam.h
@@ -80,8 +80,6 @@ protected:
TILE_GET_INFO_MEMBER(get_sslam_tx_tile_info);
TILE_GET_INFO_MEMBER(get_sslam_md_tile_info);
TILE_GET_INFO_MEMBER(get_sslam_bg_tile_info);
- DECLARE_VIDEO_START(sslam);
- DECLARE_VIDEO_START(powerbls);
uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
TIMER_CALLBACK_MEMBER(music_playback);
void draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect);
diff --git a/src/mame/valadon/tankbust.cpp b/src/mame/valadon/tankbust.cpp
index ddf9286e8c6..7adc10644ab 100644
--- a/src/mame/valadon/tankbust.cpp
+++ b/src/mame/valadon/tankbust.cpp
@@ -2,7 +2,8 @@
// copyright-holders:Jarek Burczynski
/***************************************************************************
-Tank Busters memory map
+Tank Busters
+6009-A + 6009-B PCBs
driver by Jarek Burczynski
diff --git a/src/mame/wing/lucky37.cpp b/src/mame/wing/lucky37.cpp
index 74d10a7e9fe..f6b6df58a80 100644
--- a/src/mame/wing/lucky37.cpp
+++ b/src/mame/wing/lucky37.cpp
@@ -311,11 +311,11 @@ ROM_END
} // anonymous namespace
-GAME( 199?, lucky21, 0, lucky37, lucky37, lucky37_state, empty_init, ROT0, "Wing Co., Ltd.", "Lucky 21", MACHINE_NO_SOUND | MACHINE_NOT_WORKING )
+GAME( 1990, lucky21, 0, lucky37, lucky37, lucky37_state, empty_init, ROT0, "Wing Co., Ltd.", "Lucky 21", MACHINE_NO_SOUND | MACHINE_NOT_WORKING )
GAME( 199?, lucky21d, 0, lucky37, lucky37, lucky37_state, empty_init, ROT0, "Wing Co., Ltd.", "Lucky 21-D", MACHINE_NO_SOUND | MACHINE_NOT_WORKING )
GAME( 199?, lucky25, 0, lucky37, lucky37, lucky37_state, empty_init, ROT0, "Wing Co., Ltd.", "Lucky 25", MACHINE_NO_SOUND | MACHINE_NOT_WORKING )
GAME( 199?, lucky37, 0, lucky37, lucky37, lucky37_state, empty_init, ROT0, "Wing Co., Ltd.", "Lucky 37", MACHINE_NO_SOUND | MACHINE_NOT_WORKING )
GAME( 199?, bingo75, 0, lucky37, lucky37, lucky37_state, empty_init, ROT0, "Wing Co., Ltd.", "Bingo 75", MACHINE_NO_SOUND | MACHINE_NOT_WORKING )
-GAME( 199?, lucky75, 0, lucky37, lucky37, lucky37_state, empty_init, ROT0, "Wing Co., Ltd.", "Lucky 75", MACHINE_NO_SOUND | MACHINE_NOT_WORKING )
+GAME( 1991, lucky75, 0, lucky37, lucky37, lucky37_state, empty_init, ROT0, "Wing Co., Ltd.", "Lucky 75", MACHINE_NO_SOUND | MACHINE_NOT_WORKING )
GAME( 199?, luckystr, 0, lucky37, lucky37, lucky37_state, empty_init, ROT0, "Wing Co., Ltd.", "Lucky Star", MACHINE_NO_SOUND | MACHINE_NOT_WORKING )