diff options
author | 2025-02-18 18:24:30 +0100 | |
---|---|---|
committer | 2025-02-18 18:24:30 +0100 | |
commit | bd8215c59b2ad3f9ec15f3538e41c4331185e24a (patch) | |
tree | b40cff277ea23a8dd964dc32adf9e968476c7a1b | |
parent | d912c4f2d05055ef05cce3c5c73db29c5a4f375d (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.cpp | 30 | ||||
-rw-r--r-- | src/mame/capcom/cps1_v.cpp | 1 | ||||
-rw-r--r-- | src/mame/igs/pgm.cpp | 30 | ||||
-rw-r--r-- | src/mame/mame.lst | 5 | ||||
-rw-r--r-- | src/mame/misc/gms.cpp | 262 | ||||
-rw-r--r-- | src/mame/playmark/sslam.cpp | 4 | ||||
-rw-r--r-- | src/mame/playmark/sslam.h | 2 | ||||
-rw-r--r-- | src/mame/valadon/tankbust.cpp | 3 | ||||
-rw-r--r-- | src/mame/wing/lucky37.cpp | 4 |
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 ) |