mirror of
https://github.com/mamedev/mame.git
synced 2024-11-16 07:48:32 +01:00
- merit/merit.cpp: corrected some inputs for couple and clones
- misc/gms.cpp: added tilemap priority for cots and ballch, corrected 3rd layer colors for sc2in1 and magslot
This commit is contained in:
parent
52e02b8dc6
commit
49db8b5e2c
3 changed files with 125 additions and 53 deletions
|
@ -720,7 +720,7 @@ license:CC0-1.0
|
||||||
<publisher>unknown</publisher>
|
<publisher>unknown</publisher>
|
||||||
<part name="cart" interface="svision_cart">
|
<part name="cart" interface="svision_cart">
|
||||||
<dataarea name="rom" size="0x10000">
|
<dataarea name="rom" size="0x10000">
|
||||||
<rom name="sonnyxpr.bin" size="0x10000" crc="cb67bcd8" sha1="578cdce33420facf19d2b7227b41693adde5b60e"/>
|
<rom name="sonnyxpra.bin" size="0x10000" crc="cb67bcd8" sha1="578cdce33420facf19d2b7227b41693adde5b60e"/>
|
||||||
</dataarea>
|
</dataarea>
|
||||||
</part>
|
</part>
|
||||||
</software>
|
</software>
|
||||||
|
|
|
@ -424,6 +424,7 @@ void merit_state::misc_w(uint8_t data)
|
||||||
m_lscnblk = (data >> 3) & 1;
|
m_lscnblk = (data >> 3) & 1;
|
||||||
|
|
||||||
// other bits unknown
|
// other bits unknown
|
||||||
|
// TODO: bit 0 gets set by couple and clones in the levels where the tiles' GFX are wrong. Another video bank bit?
|
||||||
}
|
}
|
||||||
|
|
||||||
void merit_banked_state::bank_w(uint8_t data)
|
void merit_banked_state::bank_w(uint8_t data)
|
||||||
|
@ -804,7 +805,7 @@ static INPUT_PORTS_START( iowapp )
|
||||||
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_POKER_HOLD1 )
|
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_POKER_HOLD1 )
|
||||||
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_POKER_HOLD5 )
|
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_POKER_HOLD5 )
|
||||||
|
|
||||||
// PORT_MODIFY("IN1") /* Pins #57 through #51 of J3 in descending order */
|
// PORT_MODIFY("IN1") // Pins #57 through #51 of J3 in descending order
|
||||||
// PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) // If HIGH triggers a "TOKEN LOW" error - Hopper related
|
// PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) // If HIGH triggers a "TOKEN LOW" error - Hopper related
|
||||||
|
|
||||||
PORT_MODIFY("DSW")
|
PORT_MODIFY("DSW")
|
||||||
|
@ -840,7 +841,7 @@ INPUT_PORTS_END
|
||||||
|
|
||||||
static INPUT_PORTS_START( pitboss ) // PCB pinout maps 12 lamp outputs - Where are they mapped?
|
static INPUT_PORTS_START( pitboss ) // PCB pinout maps 12 lamp outputs - Where are they mapped?
|
||||||
|
|
||||||
PORT_START("IN0") /* Pins #65 through #58 of J3 in descending order */
|
PORT_START("IN0") // Pins #65 through #58 of J3 in descending order
|
||||||
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_CODE(KEYCODE_Z) PORT_NAME("P1/P2 Button 1")
|
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_CODE(KEYCODE_Z) PORT_NAME("P1/P2 Button 1")
|
||||||
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_CODE(KEYCODE_X) PORT_NAME("P1/P2 Button 2")
|
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_CODE(KEYCODE_X) PORT_NAME("P1/P2 Button 2")
|
||||||
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_CODE(KEYCODE_C) PORT_NAME("P1/P2 Button 3")
|
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_CODE(KEYCODE_C) PORT_NAME("P1/P2 Button 3")
|
||||||
|
@ -848,7 +849,7 @@ static INPUT_PORTS_START( pitboss ) // PCB pinout maps 12 lamp outputs - Where a
|
||||||
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_CODE(KEYCODE_B) PORT_NAME("P1/P2 Button 5")
|
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_CODE(KEYCODE_B) PORT_NAME("P1/P2 Button 5")
|
||||||
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START1 ) PORT_NAME("P1/P2 Play")
|
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START1 ) PORT_NAME("P1/P2 Play")
|
||||||
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON6 ) PORT_CODE(KEYCODE_Q) PORT_NAME("P1/P2 Cancel")
|
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON6 ) PORT_CODE(KEYCODE_Q) PORT_NAME("P1/P2 Cancel")
|
||||||
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN ) // pulling this LOW causes "unathorized conversion" msg.
|
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN ) // pulling this LOW causes "unauthorized conversion" msg.
|
||||||
|
|
||||||
PORT_START("IN1") // Pins #57 through #51 of J3 in descending order
|
PORT_START("IN1") // Pins #57 through #51 of J3 in descending order
|
||||||
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 )
|
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 )
|
||||||
|
@ -932,7 +933,7 @@ static INPUT_PORTS_START( mroundup ) // TODO: Find were Player 2 "Play" is mappe
|
||||||
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_COCKTAIL PORT_CODE(KEYCODE_D) PORT_NAME("P2 Button 3")
|
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_COCKTAIL PORT_CODE(KEYCODE_D) PORT_NAME("P2 Button 3")
|
||||||
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_COCKTAIL PORT_CODE(KEYCODE_F) PORT_NAME("P2 Button 4")
|
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_COCKTAIL PORT_CODE(KEYCODE_F) PORT_NAME("P2 Button 4")
|
||||||
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_COCKTAIL PORT_CODE(KEYCODE_G) PORT_NAME("P2 Button 5")
|
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_COCKTAIL PORT_CODE(KEYCODE_G) PORT_NAME("P2 Button 5")
|
||||||
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNKNOWN ) // pulling this LOW causes "unathorized conversion" msg.
|
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNKNOWN ) // pulling this LOW causes "unauthorized conversion" msg.
|
||||||
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||||
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_CUSTOM ) PORT_READ_LINE_MEMBER(merit_state, rndbit_r)
|
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_CUSTOM ) PORT_READ_LINE_MEMBER(merit_state, rndbit_r)
|
||||||
|
|
||||||
|
@ -1052,7 +1053,7 @@ static INPUT_PORTS_START( mpchoicea ) // pitbossc games but dips like The Round
|
||||||
PORT_MODIFY("IN1") // Pins #57 through #51 of J3 in descending order
|
PORT_MODIFY("IN1") // Pins #57 through #51 of J3 in descending order
|
||||||
PORT_DIPNAME( 0xc0, 0xc0, "Percentage Out" ) PORT_DIPLOCATION("Special:1,2") // Pins #52 & #51?? Listed as "Switch Common Ground"
|
PORT_DIPNAME( 0xc0, 0xc0, "Percentage Out" ) PORT_DIPLOCATION("Special:1,2") // Pins #52 & #51?? Listed as "Switch Common Ground"
|
||||||
PORT_DIPSETTING( 0x80, "80%" )
|
PORT_DIPSETTING( 0x80, "80%" )
|
||||||
PORT_DIPSETTING( 0x00, "85%" ) /* Duplicate */
|
PORT_DIPSETTING( 0x00, "85%" ) // Duplicate
|
||||||
PORT_DIPSETTING( 0xc0, "85%" )
|
PORT_DIPSETTING( 0xc0, "85%" )
|
||||||
PORT_DIPSETTING( 0x40, "90%" )
|
PORT_DIPSETTING( 0x40, "90%" )
|
||||||
|
|
||||||
|
@ -1358,15 +1359,15 @@ static INPUT_PORTS_START( dtrvwh5 )
|
||||||
INPUT_PORTS_END
|
INPUT_PORTS_END
|
||||||
|
|
||||||
static INPUT_PORTS_START( couple )
|
static INPUT_PORTS_START( couple )
|
||||||
PORT_START("IN0")
|
PORT_START("IN0") // both players use the same controls. Start a 1 player game with button 1 or a 2 player game with button 2.
|
||||||
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(1)
|
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT )
|
||||||
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(1)
|
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT )
|
||||||
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(1)
|
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP )
|
||||||
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(1)
|
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN )
|
||||||
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1)
|
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON2 )
|
||||||
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1)
|
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON1 )
|
||||||
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1)
|
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||||
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(1)
|
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||||
|
|
||||||
PORT_START("DSW")
|
PORT_START("DSW")
|
||||||
PORT_DIPNAME( 0x01, 0x00, "Number of Attempts" ) PORT_DIPLOCATION("SW1:1")
|
PORT_DIPNAME( 0x01, 0x00, "Number of Attempts" ) PORT_DIPLOCATION("SW1:1")
|
||||||
|
@ -1395,10 +1396,8 @@ static INPUT_PORTS_START( couple )
|
||||||
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||||
|
|
||||||
PORT_START("IN1")
|
PORT_START("IN1")
|
||||||
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_IMPULSE(1)
|
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 )
|
||||||
PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) )
|
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 )
|
||||||
PORT_DIPSETTING( 0x02, DEF_STR( Off ) )
|
|
||||||
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
|
||||||
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_GAMBLE_BOOK )
|
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_GAMBLE_BOOK )
|
||||||
PORT_SERVICE_NO_TOGGLE( 0x08, IP_ACTIVE_LOW )
|
PORT_SERVICE_NO_TOGGLE( 0x08, IP_ACTIVE_LOW )
|
||||||
PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) )
|
PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) )
|
||||||
|
@ -1454,6 +1453,24 @@ static INPUT_PORTS_START( couplep )
|
||||||
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||||
INPUT_PORTS_END
|
INPUT_PORTS_END
|
||||||
|
|
||||||
|
static INPUT_PORTS_START( matchemg )
|
||||||
|
PORT_INCLUDE( couple )
|
||||||
|
|
||||||
|
PORT_MODIFY("DSW")
|
||||||
|
PORT_DIPNAME( 0x04, 0x04, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("SW1:3") // it always gives 6 credits, but it only shows the possibility when off, maybe it locks out the second coin instead?
|
||||||
|
PORT_DIPSETTING( 0x04, DEF_STR( 1C_6C ) ) // 6 games for 5 DM
|
||||||
|
PORT_DIPSETTING( 0x00, DEF_STR( 1C_5C ) ) // 5 games for 5 DM
|
||||||
|
PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unused ) ) PORT_DIPLOCATION("SW1:4")
|
||||||
|
PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
|
||||||
|
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||||
|
PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unused ) ) PORT_DIPLOCATION("SW1:6")
|
||||||
|
PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
|
||||||
|
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||||
|
PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unused ) ) PORT_DIPLOCATION("SW1:8")
|
||||||
|
PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
|
||||||
|
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||||
|
INPUT_PORTS_END
|
||||||
|
|
||||||
|
|
||||||
void merit_state::pitboss(machine_config &config)
|
void merit_state::pitboss(machine_config &config)
|
||||||
{
|
{
|
||||||
|
@ -1736,7 +1753,7 @@ ROM_END
|
||||||
|
|
||||||
ROM_START( mpchoicea ) // Like the M4C1 set above, but only 3 games here
|
ROM_START( mpchoicea ) // Like the M4C1 set above, but only 3 games here
|
||||||
ROM_REGION( 0x10000, "maincpu", 0 )
|
ROM_REGION( 0x10000, "maincpu", 0 )
|
||||||
ROM_LOAD( "m3c1_u5b.u5", 0x0000, 0x2000, CRC(685eb48a) SHA1(31f41527f7a29379bf783f48ea50c3b74523d304) ) /* Internal designation: M3CG */
|
ROM_LOAD( "m3c1_u5b.u5", 0x0000, 0x2000, CRC(685eb48a) SHA1(31f41527f7a29379bf783f48ea50c3b74523d304) ) // Internal designation: M3CG
|
||||||
ROM_LOAD( "m3c1_u6b.u6", 0x2000, 0x2000, CRC(4cf91cca) SHA1(aaf685e66e153fa2c47b90c17af9f70751008e9a) ) // Games included in this set are:
|
ROM_LOAD( "m3c1_u6b.u6", 0x2000, 0x2000, CRC(4cf91cca) SHA1(aaf685e66e153fa2c47b90c17af9f70751008e9a) ) // Games included in this set are:
|
||||||
ROM_LOAD( "m3c1_u7.u7", 0x4000, 0x2000, CRC(5a2aca08) SHA1(0fb4600f61ff1aef2d79ce7a63ee3fd9e79f7f3f) ) // Draw Poker, Blackjack & Acey Deucey
|
ROM_LOAD( "m3c1_u7.u7", 0x4000, 0x2000, CRC(5a2aca08) SHA1(0fb4600f61ff1aef2d79ce7a63ee3fd9e79f7f3f) ) // Draw Poker, Blackjack & Acey Deucey
|
||||||
|
|
||||||
|
@ -2343,7 +2360,7 @@ ROM_START( dtrvwz5 )
|
||||||
ROM_LOAD( "tw5-06_sx5-2.10", 0x98000, 0x8000, CRC(790184fc) SHA1(9c8b56852b31d3312f26a5901487f6b31d9e9b4f) )
|
ROM_LOAD( "tw5-06_sx5-2.10", 0x98000, 0x8000, CRC(790184fc) SHA1(9c8b56852b31d3312f26a5901487f6b31d9e9b4f) )
|
||||||
|
|
||||||
ROM_REGION( 0x0800, "crt209", ROMREGION_ERASE00 )
|
ROM_REGION( 0x0800, "crt209", ROMREGION_ERASE00 )
|
||||||
ROM_LOAD( "crt-209.cpu", 0x0000, 0x0800, NO_DUMP ) // 2816 EEPROM in Z80 epoxy CPU module
|
ROM_LOAD( "crt-209_6221-70.cpu", 0x0000, 0x0800, NO_DUMP ) // 2816 EEPROM in Z80 epoxy CPU module
|
||||||
|
|
||||||
ROM_FILL( 0x000, 0x800, 0xc9 ) // ret
|
ROM_FILL( 0x000, 0x800, 0xc9 ) // ret
|
||||||
|
|
||||||
|
@ -2553,7 +2570,7 @@ ROM_START( phrcrazev )
|
||||||
ROM_LOAD( "phrz1-07_sex-1a", 0x90000, 0x8000, CRC(ed7604b8) SHA1(b1e841b50b8ef6ae95fafac1c34b6d0337a05d18) )
|
ROM_LOAD( "phrz1-07_sex-1a", 0x90000, 0x8000, CRC(ed7604b8) SHA1(b1e841b50b8ef6ae95fafac1c34b6d0337a05d18) )
|
||||||
ROM_END
|
ROM_END
|
||||||
|
|
||||||
ROM_START( couple )
|
ROM_START( couple ) // bootleg of Match'em Up (6221-51 U5-0)
|
||||||
ROM_REGION( 0x20000, "maincpu", 0 )
|
ROM_REGION( 0x20000, "maincpu", 0 )
|
||||||
ROM_LOAD( "1.1d", 0x00000, 0x8000, CRC(bc70337a) SHA1(ffc484bc3965f0780d3fa5d8801af27a7164a417) )
|
ROM_LOAD( "1.1d", 0x00000, 0x8000, CRC(bc70337a) SHA1(ffc484bc3965f0780d3fa5d8801af27a7164a417) )
|
||||||
ROM_LOAD( "2.1e", 0x10000, 0x8000, CRC(17372a93) SHA1(e0f0980003473555c2543d98d1494f82afa49f1a) )
|
ROM_LOAD( "2.1e", 0x10000, 0x8000, CRC(17372a93) SHA1(e0f0980003473555c2543d98d1494f82afa49f1a) )
|
||||||
|
@ -2572,8 +2589,9 @@ ROM_END
|
||||||
|
|
||||||
/*f205v's dump, same except for the first z80 ROM, first noticeable differences are that
|
/*f205v's dump, same except for the first z80 ROM, first noticeable differences are that
|
||||||
it doesn't jump to the backup RAM area and it gives an extra play if you reach a certain
|
it doesn't jump to the backup RAM area and it gives an extra play if you reach a certain
|
||||||
amount of points (there is a dip switch to select the trigger: 150.000 or 200.000*/
|
amount of points (there is a dip switch to select the trigger: 150.000 or 200.000)
|
||||||
ROM_START( couplep )
|
PCB is marked: "230188" and "LC" on component side ("LC" is the Italian for "Lato Componenti" which translates to "Components Side")*/
|
||||||
|
ROM_START( couplep ) // bootleg of Match'em Up (6221-51 U5-0)
|
||||||
ROM_REGION( 0x20000, "maincpu", 0 )
|
ROM_REGION( 0x20000, "maincpu", 0 )
|
||||||
ROM_LOAD( "p_1.1d", 0x00000, 0x8000, CRC(4601ace6) SHA1(a824ceebf8b9ce77ef2c8e92636e4261f2ae0420) )
|
ROM_LOAD( "p_1.1d", 0x00000, 0x8000, CRC(4601ace6) SHA1(a824ceebf8b9ce77ef2c8e92636e4261f2ae0420) )
|
||||||
ROM_LOAD( "2.1e", 0x10000, 0x8000, CRC(17372a93) SHA1(e0f0980003473555c2543d98d1494f82afa49f1a) )
|
ROM_LOAD( "2.1e", 0x10000, 0x8000, CRC(17372a93) SHA1(e0f0980003473555c2543d98d1494f82afa49f1a) )
|
||||||
|
@ -2591,8 +2609,9 @@ ROM_START( couplep )
|
||||||
ROM_END
|
ROM_END
|
||||||
|
|
||||||
/*f205v's dump, this one looks like an intermediate release between set1 and set2;
|
/*f205v's dump, this one looks like an intermediate release between set1 and set2;
|
||||||
it has same dips as set1, but remaining machine code is the same as set2*/
|
it has same dips as set1, but remaining machine code is the same as set2
|
||||||
ROM_START( couplei )
|
PCB is marked: "230188" and "LC" on component side ("LC" is the Italian for "Lato Componenti" which translates to "Components Side")*/
|
||||||
|
ROM_START( couplei ) // bootleg of Match'em Up (6221-51 U5-0)
|
||||||
ROM_REGION( 0x20000, "maincpu", 0 )
|
ROM_REGION( 0x20000, "maincpu", 0 )
|
||||||
ROM_LOAD( "i_1.1d", 0x00000, 0x8000, CRC(760fa29e) SHA1(a37a1562028d9615adff3d2ef88e0156354c720a) )
|
ROM_LOAD( "i_1.1d", 0x00000, 0x8000, CRC(760fa29e) SHA1(a37a1562028d9615adff3d2ef88e0156354c720a) )
|
||||||
ROM_LOAD( "2.1e", 0x10000, 0x8000, CRC(17372a93) SHA1(e0f0980003473555c2543d98d1494f82afa49f1a) )
|
ROM_LOAD( "2.1e", 0x10000, 0x8000, CRC(17372a93) SHA1(e0f0980003473555c2543d98d1494f82afa49f1a) )
|
||||||
|
@ -2640,7 +2659,6 @@ void merit_state::init_crt209()
|
||||||
|
|
||||||
memcpy(&buffer[0], rom, 0x800);
|
memcpy(&buffer[0], rom, 0x800);
|
||||||
|
|
||||||
// these give the same results as the above subroutine in init_dtrvwz5 at the address the game jumps to (0xb040), so should be right? But then again it doesn't solve the missing GFX issue.
|
|
||||||
for (int i = 0; i < 0x800; i++)
|
for (int i = 0; i < 0x800; i++)
|
||||||
{
|
{
|
||||||
rom[i] = buffer[bitswap<24>(i, 23, 22, 21, 20, 19, 18, 17, 16, 15, 14, 13, 12, 11, 10, 9, 8, 1, 0, 2, 3, 4, 5, 6, 7)];
|
rom[i] = buffer[bitswap<24>(i, 23, 22, 21, 20, 19, 18, 17, 16, 15, 14, 13, 12, 11, 10, 9, 8, 1, 0, 2, 3, 4, 5, 6, 7)];
|
||||||
|
@ -2653,15 +2671,15 @@ void merit_state::init_crt209()
|
||||||
|
|
||||||
// Gambling type games
|
// Gambling type games
|
||||||
|
|
||||||
GAME( 1983, pitboss, 0, pitboss, pitbossa, merit_state, empty_init, ROT0, "Merit", "The Pit Boss (2214-07, U5-0A)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_GRAPHICS ) /* "7" hand written over a 5 */
|
GAME( 1983, pitboss, 0, pitboss, pitbossa, merit_state, empty_init, ROT0, "Merit", "The Pit Boss (2214-07, U5-0A)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_GRAPHICS ) // "7" hand written over a 5
|
||||||
GAME( 1983, pitboss04, pitboss, casino5, pitboss, merit_banked_state, empty_init, ROT0, "Merit", "The Pit Boss (2214-04)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_GRAPHICS )
|
GAME( 1983, pitboss04, pitboss, casino5, pitboss, merit_banked_state, empty_init, ROT0, "Merit", "The Pit Boss (2214-04)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_GRAPHICS )
|
||||||
GAME( 1983, pitboss03, pitboss, pitboss, pitbossa, merit_state, empty_init, ROT0, "Merit", "The Pit Boss (2214-03, U5-0C)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_GRAPHICS ) /* Also M4A4 */
|
GAME( 1983, pitboss03, pitboss, pitboss, pitbossa, merit_state, empty_init, ROT0, "Merit", "The Pit Boss (2214-03, U5-0C)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_GRAPHICS ) // Also M4A4
|
||||||
GAME( 1983, pitboss03a, pitboss, pitboss, pitbossa1, merit_state, empty_init, ROT0, "Merit", "The Pit Boss (2214-03, U5-1C)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_GRAPHICS ) /* Also M4A4 */
|
GAME( 1983, pitboss03a, pitboss, pitboss, pitbossa1, merit_state, empty_init, ROT0, "Merit", "The Pit Boss (2214-03, U5-1C)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_GRAPHICS ) // Also M4A4
|
||||||
GAME( 1983, pitboss03b, pitboss, pitboss, pitbossa, merit_state, empty_init, ROT0, "Merit", "The Pit Boss (M4A4)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_GRAPHICS ) /* No labels, so use internal designation */
|
GAME( 1983, pitboss03b, pitboss, pitboss, pitbossa, merit_state, empty_init, ROT0, "Merit", "The Pit Boss (M4A4)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_GRAPHICS ) // No labels, so use internal designation
|
||||||
GAME( 1983, pitbossm4, pitboss, pitboss, pitbossb, merit_state, empty_init, ROT0, "Merit", "The Pit Boss (M4A1)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_GRAPHICS )
|
GAME( 1983, pitbossm4, pitboss, pitboss, pitbossb, merit_state, empty_init, ROT0, "Merit", "The Pit Boss (M4A1)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_GRAPHICS )
|
||||||
GAME( 1983, pitbossps, pitboss, pitboss, pitbossa, merit_state, empty_init, ROT0, "Merit", "The Pit Boss (PSB1)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_GRAPHICS )
|
GAME( 1983, pitbossps, pitboss, pitboss, pitbossa, merit_state, empty_init, ROT0, "Merit", "The Pit Boss (PSB1)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_GRAPHICS )
|
||||||
GAME( 1983, housecard, pitboss, pitboss, pitbossa, merit_state, empty_init, ROT0, "Merit", "House of Cards (HSC1)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_GRAPHICS )
|
GAME( 1983, housecard, pitboss, pitboss, pitbossa, merit_state, empty_init, ROT0, "Merit", "House of Cards (HSC1)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_GRAPHICS )
|
||||||
GAME( 1983, mdchoice, pitboss, pitboss, mdchoice, merit_state, empty_init, ROT0, "Merit", "Dealer's Choice (E4A1)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_GRAPHICS ) /* Copyright year based on other Pit Boss sets */
|
GAME( 1983, mdchoice, pitboss, pitboss, mdchoice, merit_state, empty_init, ROT0, "Merit", "Dealer's Choice (E4A1)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_GRAPHICS ) // Copyright year based on other Pit Boss sets
|
||||||
GAME( 1983, mpchoice, pitboss, pitboss, mpchoice, merit_state, empty_init, ROT0, "Merit", "Player's Choice (M4C1)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_GRAPHICS )
|
GAME( 1983, mpchoice, pitboss, pitboss, mpchoice, merit_state, empty_init, ROT0, "Merit", "Player's Choice (M4C1)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_GRAPHICS )
|
||||||
GAME( 1982, mpchoicea, pitboss, pitboss, mpchoicea, merit_state, empty_init, ROT0, "Merit", "Player's Choice (M3C1)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_GRAPHICS )
|
GAME( 1982, mpchoicea, pitboss, pitboss, mpchoicea, merit_state, empty_init, ROT0, "Merit", "Player's Choice (M3C1)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_GRAPHICS )
|
||||||
|
|
||||||
|
@ -2681,12 +2699,13 @@ GAME( 1990, mosdraw, 0, mosdraw, mosdraw, merit_state, empty_
|
||||||
|
|
||||||
GAME( 1986, bigappg, 0, bigappg, bigappg, merit_state, empty_init, ROT0, "Big Apple Games / Merit", "The Big Apple (2131-13, U5-0)", MACHINE_SUPPORTS_SAVE )
|
GAME( 1986, bigappg, 0, bigappg, bigappg, merit_state, empty_init, ROT0, "Big Apple Games / Merit", "The Big Apple (2131-13, U5-0)", MACHINE_SUPPORTS_SAVE )
|
||||||
GAME( 1986, misdraw, 0, misdraw, bigappg, merit_state, empty_init, ROT0, "Big Apple Games / Merit", "Michigan Super Draw (2131-16, U5-2)", MACHINE_SUPPORTS_SAVE )
|
GAME( 1986, misdraw, 0, misdraw, bigappg, merit_state, empty_init, ROT0, "Big Apple Games / Merit", "Michigan Super Draw (2131-16, U5-2)", MACHINE_SUPPORTS_SAVE )
|
||||||
GAME( 1990, iowapp, 0, riviera, iowapp, merit_state, empty_init, ROT0, "Merit", "Iowa Premium Player (2131-21, U5-1)", MACHINE_SUPPORTS_SAVE ) /* Copyright year based on rom label */
|
GAME( 1990, iowapp, 0, riviera, iowapp, merit_state, empty_init, ROT0, "Merit", "Iowa Premium Player (2131-21, U5-1)", MACHINE_SUPPORTS_SAVE ) // Copyright year based on ROM label
|
||||||
|
|
||||||
GAME( 1986, dodgectya, dodgecty, misdraw, dodge, merit_state, init_crt209, ROT0, "Merit", "Dodge City (2131-82, U5-0D)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING ) // no text shown, while cards are
|
GAME( 1986, dodgectya, dodgecty, misdraw, dodge, merit_state, init_crt209, ROT0, "Merit", "Dodge City (2131-82, U5-0D)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING ) // no text shown, while cards are
|
||||||
GAME( 1986, dodgectyb, dodgecty, misdraw, dodge, merit_state, init_crt209, ROT0, "Merit", "Dodge City (2131-82, U5-50)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING ) // no text shown, while cards are
|
GAME( 1986, dodgectyb, dodgecty, misdraw, dodge, merit_state, init_crt209, ROT0, "Merit", "Dodge City (2131-82, U5-50)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING ) // no text shown, while cards are
|
||||||
GAME( 1986, dodgectyc, dodgecty, misdraw, dodge, merit_state, init_crt209, ROT0, "Merit", "Dodge City (2131-82, U5-0 GT)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING ) // no text shown, while cards are
|
GAME( 1986, dodgectyc, dodgecty, misdraw, dodge, merit_state, init_crt209, ROT0, "Merit", "Dodge City (2131-82, U5-0 GT)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING ) // no text shown, while cards are
|
||||||
|
|
||||||
|
// Superstar is part of the title
|
||||||
GAME( 1989, unkmerit, 0, misdraw, bigappg, merit_state, empty_init, ROT0, "Merit", "unknown Merit game (4435-81, U5-1)", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING ) // no text shown, while cards are
|
GAME( 1989, unkmerit, 0, misdraw, bigappg, merit_state, empty_init, ROT0, "Merit", "unknown Merit game (4435-81, U5-1)", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING ) // no text shown, while cards are
|
||||||
|
|
||||||
// Trivia and Word games
|
// Trivia and Word games
|
||||||
|
@ -2717,7 +2736,7 @@ GAME( 1986, phrcrazev, phrcraze, phrcraze, phrcrazs, merit_quiz_state, init_k
|
||||||
|
|
||||||
GAME( 1987, dtrvwz5, 0, dtrvwz5, dtrvwh5, merit_quiz_state, init_key<6>, ROT0, "Merit", "Deluxe Trivia ? Whiz (6221-70, U5-0A Edition 5)", MACHINE_SUPPORTS_SAVE )
|
GAME( 1987, dtrvwz5, 0, dtrvwz5, dtrvwh5, merit_quiz_state, init_key<6>, ROT0, "Merit", "Deluxe Trivia ? Whiz (6221-70, U5-0A Edition 5)", MACHINE_SUPPORTS_SAVE )
|
||||||
|
|
||||||
GAME( 1988, couple, 0, couple, couple, merit_state, init_crt209, ROT0, "Merit", "The Couples (set 1)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_UNEMULATED_PROTECTION )
|
GAME( 1988, couple, 0, couple, couple, merit_state, init_crt209, ROT0, "bootleg", "The Couples (set 1)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) // in some levels the tiles' GFX are jumbled
|
||||||
GAME( 1988, couplep, couple, couple, couplep, merit_state, init_crt209, ROT0, "Merit", "The Couples (set 2)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_UNEMULATED_PROTECTION )
|
GAME( 1988, couplep, couple, couple, couplep, merit_state, init_crt209, ROT0, "bootleg", "The Couples (set 2)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) // "
|
||||||
GAME( 1988, couplei, couple, couple, couple, merit_state, init_crt209, ROT0, "Merit", "The Couples (set 3)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_UNEMULATED_PROTECTION )
|
GAME( 1988, couplei, couple, couple, couple, merit_state, init_crt209, ROT0, "bootleg", "The Couples (set 3)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) // "
|
||||||
GAME( 1986, matchemg, couple, couple, couple, merit_state, init_crt209, ROT0, "Merit", "Match'em Up (German)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_UNEMULATED_PROTECTION )
|
GAME( 1986, matchemg, couple, couple, matchemg, merit_state, init_crt209, ROT0, "Merit", "Match'em Up (German)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) // "
|
||||||
|
|
|
@ -55,13 +55,14 @@ Keep pressed 9 and press reset to enter service mode.
|
||||||
|
|
||||||
TODO:
|
TODO:
|
||||||
- correct decode for 1st layer in sc2in1 and magslot
|
- correct decode for 1st layer in sc2in1 and magslot
|
||||||
- tilemap priorities for cots and ballch
|
- fix 1st tilemap transparency enable
|
||||||
- correct EEPROM hookup for all games
|
- correct EEPROM hookup for all games
|
||||||
- oki banking
|
- oki banking
|
||||||
- hookup MCU and YM2151 sound for the mahjong games
|
- hookup MCU and YM2151 sound for the mahjong games
|
||||||
- hookup PIC16F84 for rbspm once a CPU core is available
|
- hookup PIC16F84 for rbspm once a CPU core is available
|
||||||
- emulate protection devices correctly instead of patching
|
- emulate protection devices correctly instead of patching
|
||||||
- hookup lamps and do layouts
|
- hookup lamps and do layouts
|
||||||
|
- keyboard inputs for mahjong games
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "emu.h"
|
#include "emu.h"
|
||||||
|
@ -78,6 +79,16 @@ TODO:
|
||||||
#include "tilemap.h"
|
#include "tilemap.h"
|
||||||
|
|
||||||
|
|
||||||
|
// configurable logging
|
||||||
|
#define LOG_TILEATTR (1U << 1)
|
||||||
|
|
||||||
|
#define VERBOSE (LOG_GENERAL | LOG_TILEATTR)
|
||||||
|
|
||||||
|
#include "logmacro.h"
|
||||||
|
|
||||||
|
#define LOGTILEATTR(...) LOGMASKED(LOG_TILEATTR, __VA_ARGS__)
|
||||||
|
|
||||||
|
|
||||||
namespace {
|
namespace {
|
||||||
|
|
||||||
class gms_2layers_state : public driver_device
|
class gms_2layers_state : public driver_device
|
||||||
|
@ -100,6 +111,7 @@ public:
|
||||||
void rbspm(machine_config &config);
|
void rbspm(machine_config &config);
|
||||||
|
|
||||||
void super555(machine_config &config);
|
void super555(machine_config &config);
|
||||||
|
void train(machine_config &config);
|
||||||
|
|
||||||
void init_ballch();
|
void init_ballch();
|
||||||
void init_cots();
|
void init_cots();
|
||||||
|
@ -145,6 +157,7 @@ private:
|
||||||
void mcu_io_mux_w(uint8_t data);
|
void mcu_io_mux_w(uint8_t data);
|
||||||
void eeprom_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0);
|
void eeprom_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0);
|
||||||
|
|
||||||
|
DECLARE_VIDEO_START(train) { video_start(); m_tilemap[0]->set_transparent_pen(0); } // TODO: this shouldn't be needed
|
||||||
TILE_GET_INFO_MEMBER(get_tile0_info);
|
TILE_GET_INFO_MEMBER(get_tile0_info);
|
||||||
TILE_GET_INFO_MEMBER(get_tile1_info);
|
TILE_GET_INFO_MEMBER(get_tile1_info);
|
||||||
uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||||
|
@ -193,6 +206,22 @@ uint16_t gms_2layers_state::input_matrix_r()
|
||||||
void gms_2layers_state::tilebank_w(uint16_t data)
|
void gms_2layers_state::tilebank_w(uint16_t data)
|
||||||
{
|
{
|
||||||
m_tilebank = data;
|
m_tilebank = data;
|
||||||
|
|
||||||
|
// fedcba98 76543210
|
||||||
|
// xxxx // unknown (never seen set, possibly a 4th tilemap not used by the dumped games?)
|
||||||
|
// x // 3rd tilemap enable (probably)
|
||||||
|
// xx // bank 3rd tilemap
|
||||||
|
// x // unknown (never seen set)
|
||||||
|
// x // unknown (never seen set)
|
||||||
|
// x // unknown (set during most screens in the mahjong games and in sc2in1')
|
||||||
|
// x // priority between 1st and 2nd tilemaps
|
||||||
|
// x // bank 1st tilemap
|
||||||
|
// x // 1st tilemap enable (probably)
|
||||||
|
// xx // bank 2nd tilemap
|
||||||
|
// x // 2nd tilemap enable (probably)
|
||||||
|
|
||||||
|
if (m_tilebank & 0xf1c0)
|
||||||
|
LOGTILEATTR("%04x\n", m_tilebank);
|
||||||
}
|
}
|
||||||
|
|
||||||
template <uint8_t Which>
|
template <uint8_t Which>
|
||||||
|
@ -1176,7 +1205,7 @@ GFXDECODE_END
|
||||||
static GFXDECODE_START( gfx_magslot )
|
static GFXDECODE_START( gfx_magslot )
|
||||||
GFXDECODE_ENTRY( "gfx1", 0, magslot16_layout, 0x000, 16 )
|
GFXDECODE_ENTRY( "gfx1", 0, magslot16_layout, 0x000, 16 )
|
||||||
GFXDECODE_ENTRY( "gfx2", 0, gfx_8x8x4_packed_lsb, 0x100, 16 )
|
GFXDECODE_ENTRY( "gfx2", 0, gfx_8x8x4_packed_lsb, 0x100, 16 )
|
||||||
GFXDECODE_ENTRY( "gfx3", 0, gfx_8x8x4_packed_lsb, 0x100, 16 ) // wrong colors
|
GFXDECODE_ENTRY( "gfx3", 0, gfx_8x8x4_packed_lsb, 0x400, 16 )
|
||||||
GFXDECODE_END
|
GFXDECODE_END
|
||||||
|
|
||||||
void gms_2layers_state::video_start()
|
void gms_2layers_state::video_start()
|
||||||
|
@ -1184,6 +1213,7 @@ void gms_2layers_state::video_start()
|
||||||
m_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(gms_2layers_state::get_tile0_info)), TILEMAP_SCAN_ROWS, 8, 32, 64, 8);
|
m_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(gms_2layers_state::get_tile0_info)), TILEMAP_SCAN_ROWS, 8, 32, 64, 8);
|
||||||
m_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(gms_2layers_state::get_tile1_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
|
m_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(gms_2layers_state::get_tile1_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
|
||||||
|
|
||||||
|
//m_tilemap[0]->set_transparent_pen(0);
|
||||||
m_tilemap[1]->set_transparent_pen(0);
|
m_tilemap[1]->set_transparent_pen(0);
|
||||||
|
|
||||||
save_item(NAME(m_tilebank));
|
save_item(NAME(m_tilebank));
|
||||||
|
@ -1218,20 +1248,34 @@ TILE_GET_INFO_MEMBER(gms_3layers_state::get_tile2_info)
|
||||||
tileinfo.set(2, (tile & 0x0fff) + ((m_tilebank >> 9) & 3) * 0x1000, tile >> 12, 0);
|
tileinfo.set(2, (tile & 0x0fff) + ((m_tilebank >> 9) & 3) * 0x1000, tile >> 12, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO: ballch's and cots' title screens highlight a priority bug: the title and copyright are drawn behind the background
|
|
||||||
uint32_t gms_2layers_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
|
uint32_t gms_2layers_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
|
||||||
{
|
{
|
||||||
m_tilemap[0]->draw(screen, bitmap, cliprect);
|
if (BIT(m_tilebank, 3) && BIT(m_tilebank, 5))
|
||||||
m_tilemap[1]->draw(screen, bitmap, cliprect);
|
m_tilemap[0]->draw(screen, bitmap, cliprect);
|
||||||
|
|
||||||
|
if (BIT(m_tilebank, 0))
|
||||||
|
m_tilemap[1]->draw(screen, bitmap, cliprect);
|
||||||
|
|
||||||
|
if (BIT(m_tilebank, 3) && !BIT(m_tilebank, 5))
|
||||||
|
m_tilemap[0]->draw(screen, bitmap, cliprect);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
uint32_t gms_3layers_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
|
uint32_t gms_3layers_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
|
||||||
{
|
{
|
||||||
m_tilemap[0]->draw(screen, bitmap, cliprect);
|
if (BIT(m_tilebank, 3) && BIT(m_tilebank, 5))
|
||||||
m_tilemap[1]->draw(screen, bitmap, cliprect);
|
m_tilemap[0]->draw(screen, bitmap, cliprect);
|
||||||
m_tilemap[2]->draw(screen, bitmap, cliprect);
|
|
||||||
|
if (BIT(m_tilebank, 0))
|
||||||
|
m_tilemap[1]->draw(screen, bitmap, cliprect);
|
||||||
|
|
||||||
|
if (BIT(m_tilebank, 3) && !BIT(m_tilebank, 5))
|
||||||
|
m_tilemap[0]->draw(screen, bitmap, cliprect);
|
||||||
|
|
||||||
|
if (BIT(m_tilebank, 11))
|
||||||
|
m_tilemap[2]->draw(screen, bitmap, cliprect);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -1291,6 +1335,13 @@ void gms_2layers_state::super555(machine_config &config)
|
||||||
config.device_remove("ymsnd");
|
config.device_remove("ymsnd");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void gms_2layers_state::train(machine_config &config)
|
||||||
|
{
|
||||||
|
super555(config);
|
||||||
|
|
||||||
|
MCFG_VIDEO_START_OVERRIDE(gms_2layers_state, train)
|
||||||
|
}
|
||||||
|
|
||||||
void gms_3layers_state::magslot(machine_config &config)
|
void gms_3layers_state::magslot(machine_config &config)
|
||||||
{
|
{
|
||||||
super555(config);
|
super555(config);
|
||||||
|
@ -1333,7 +1384,7 @@ http://youtu.be/pPk-6N1wXoE
|
||||||
http://youtu.be/VGbrR7GfDck
|
http://youtu.be/VGbrR7GfDck
|
||||||
*/
|
*/
|
||||||
|
|
||||||
ROM_START( rbspm )
|
ROM_START( rbspm ) // PCB NO.6899-B
|
||||||
ROM_REGION( 0x80000, "maincpu", 0 ) // 68000 Code
|
ROM_REGION( 0x80000, "maincpu", 0 ) // 68000 Code
|
||||||
ROM_LOAD( "mj-dfmj-p1.bin", 0x00000, 0x80000, CRC(8f81f154) SHA1(50a9a373dec96b0265907f053d068d636bdabd61) )
|
ROM_LOAD( "mj-dfmj-p1.bin", 0x00000, 0x80000, CRC(8f81f154) SHA1(50a9a373dec96b0265907f053d068d636bdabd61) )
|
||||||
|
|
||||||
|
@ -1361,7 +1412,7 @@ ROM_START( rbspm )
|
||||||
ROM_END
|
ROM_END
|
||||||
|
|
||||||
|
|
||||||
ROM_START( super555 )
|
ROM_START( super555 ) // GMS branded chips: A66, A68, M06
|
||||||
ROM_REGION( 0x80000, "maincpu", 0 ) /* 68000 Code */
|
ROM_REGION( 0x80000, "maincpu", 0 ) /* 68000 Code */
|
||||||
ROM_LOAD( "super555-v1.5e-0d9b.u64", 0x00000, 0x80000, CRC(9a9c16cc) SHA1(95609dbd45feb591190a2b62dee8846cdcec3462) )
|
ROM_LOAD( "super555-v1.5e-0d9b.u64", 0x00000, 0x80000, CRC(9a9c16cc) SHA1(95609dbd45feb591190a2b62dee8846cdcec3462) )
|
||||||
|
|
||||||
|
@ -1379,7 +1430,9 @@ ROM_START( super555 )
|
||||||
ROM_END
|
ROM_END
|
||||||
|
|
||||||
|
|
||||||
ROM_START( sc2in1 ) // Basically same PCB as magslot, but with only 1 dip bank. Most labels have been covered with other labels with 'TETRIS' hand-written
|
// Basically same PCB as magslot, but with only 1 dip bank. Most labels have been covered with other labels with 'TETRIS' hand-written
|
||||||
|
// GMS-branded chips: A66, A89, A201, A202. Not populated: M88
|
||||||
|
ROM_START( sc2in1 )
|
||||||
ROM_REGION( 0x80000, "maincpu", 0 ) /* 68000 Code */
|
ROM_REGION( 0x80000, "maincpu", 0 ) /* 68000 Code */
|
||||||
ROM_LOAD( "u64", 0x00000, 0x80000, CRC(c0ad5df0) SHA1(a51f30e76493ea9fb5313c0064dac9a2a4f70cc3) )
|
ROM_LOAD( "u64", 0x00000, 0x80000, CRC(c0ad5df0) SHA1(a51f30e76493ea9fb5313c0064dac9a2a4f70cc3) )
|
||||||
|
|
||||||
|
@ -1401,6 +1454,7 @@ 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.
|
// 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
|
||||||
ROM_START( magslot ) // All labels have SLOT canceled with a black pen. No sum matches the one on label.
|
ROM_START( magslot ) // All labels have SLOT canceled with a black pen. No sum matches the one on label.
|
||||||
ROM_REGION( 0x80000, "maincpu", 0 ) /* 68000 Code */
|
ROM_REGION( 0x80000, "maincpu", 0 ) /* 68000 Code */
|
||||||
ROM_LOAD( "magic 1.0c _ _ _ _.u64", 0x00000, 0x80000, CRC(84544dd7) SHA1(cf10ad3373c2f35f5fa7986be0865f760a454c28) ) // no sum on label, 1xxxxxxxxxxxxxxxxxx = 0x00
|
ROM_LOAD( "magic 1.0c _ _ _ _.u64", 0x00000, 0x80000, CRC(84544dd7) SHA1(cf10ad3373c2f35f5fa7986be0865f760a454c28) ) // no sum on label, 1xxxxxxxxxxxxxxxxxx = 0x00
|
||||||
|
@ -1432,7 +1486,7 @@ Major components:
|
||||||
CPU: MC68HC00F16
|
CPU: MC68HC00F16
|
||||||
Sound: OKI 6295
|
Sound: OKI 6295
|
||||||
OSC: 22.00MHz
|
OSC: 22.00MHz
|
||||||
EEPOM: ISSI 93C46
|
EEPROM: ISSI 93C46
|
||||||
DSW: 3 x 8-position switches
|
DSW: 3 x 8-position switches
|
||||||
BAT: 3.6v Varta battery
|
BAT: 3.6v Varta battery
|
||||||
|
|
||||||
|
@ -1471,7 +1525,7 @@ Major components:
|
||||||
CPU: MC68HC00F16
|
CPU: MC68HC00F16
|
||||||
Sound: OKI 6295
|
Sound: OKI 6295
|
||||||
OSC: 22.00MHz
|
OSC: 22.00MHz
|
||||||
EEPOM: ISSI 93C46
|
EEPROM: ISSI 93C46
|
||||||
DSW: 3 x 8-position switches
|
DSW: 3 x 8-position switches
|
||||||
BAT: 3.6v Varta battery
|
BAT: 3.6v Varta battery
|
||||||
|
|
||||||
|
@ -1543,7 +1597,6 @@ void gms_3layers_state::init_sc2in1()
|
||||||
rom[0x4681a / 2] = 0x4e71;
|
rom[0x4681a / 2] = 0x4e71;
|
||||||
rom[0x46842 / 2] = 0x4e71;
|
rom[0x46842 / 2] = 0x4e71;
|
||||||
rom[0x46844 / 2] = 0x4e71;
|
rom[0x46844 / 2] = 0x4e71;
|
||||||
//45f46 = 4e71 4e71 45f60 = 6000 45f70 = 4e71 4e71 45f9e = 6000 46818 = 4e71 4e71 46842 = 4e71 4e71
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void gms_2layers_state::init_super555()
|
void gms_2layers_state::init_super555()
|
||||||
|
@ -1589,5 +1642,5 @@ GAME( 2001, sc2in1, 0, magslot, sc2in1, gms_3layers_state, init_sc2in1, R
|
||||||
GAME( 2003, magslot, 0, magslot, magslot, gms_3layers_state, empty_init, ROT0, "GMS", "Magic Slot (normal 1.0C)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) // needs implementing of 3rd GFX layer, correct GFX decode for 1st layer, inputs
|
GAME( 2003, magslot, 0, magslot, magslot, gms_3layers_state, empty_init, ROT0, "GMS", "Magic Slot (normal 1.0C)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) // needs implementing of 3rd GFX layer, correct GFX decode for 1st layer, inputs
|
||||||
|
|
||||||
// train games
|
// train games
|
||||||
GAME( 2002, ballch, 0, super555, ballch, gms_2layers_state, init_ballch, ROT0, "TVE", "Ball Challenge (20020607 1.0 OVERSEA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_UNEMULATED_PROTECTION | MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) // stops during boot, patched for now
|
GAME( 2002, ballch, 0, train, ballch, gms_2layers_state, init_ballch, ROT0, "TVE", "Ball Challenge (20020607 1.0 OVERSEA)", MACHINE_UNEMULATED_PROTECTION | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) // stops during boot, patched for now
|
||||||
GAME( 2005, cots, 0, super555, cots, gms_2layers_state, init_cots, ROT0, "ECM", "Creatures of the Sea (20050328 USA 6.3)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_UNEMULATED_PROTECTION | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) // stops during boot, patched for now
|
GAME( 2005, cots, 0, train, cots, gms_2layers_state, init_cots, ROT0, "ECM", "Creatures of the Sea (20050328 USA 6.3)", MACHINE_UNEMULATED_PROTECTION | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) // stops during boot, patched for now
|
||||||
|
|
Loading…
Reference in a new issue