Preliminary work on Scorpion 4 lamps + more set resorting [David Haywood]

Discovered similarities in gotcha.c to Data East Bootleg sprites, also happening to be the closest implementation to Silver Millennium in the sources.  Refactored each based on this information.  [David Haywood]
This commit is contained in:
Scott Stone 2012-04-18 18:25:26 +00:00
parent 912f74766d
commit 55265da530
9 changed files with 2865 additions and 407 deletions

File diff suppressed because it is too large Load Diff

View File

@ -229,6 +229,39 @@ READ16_MEMBER(sc4_state::sc4_mem_r)
static WRITE8_HANDLER( bfm_sc4_reel4_w );
WRITE8_MEMBER(sc4_state::mux_output_w)
{
int i;
int off = offset<<3;
for (i=0; i<8; i++)
output_set_lamp_value(off+i, ((data & (1 << i)) != 0));
output_set_indexed_value("matrix", off+i, ((data & (1 << i)) != 0));
}
WRITE8_MEMBER(sc4_state::mux_output2_w)
{
int i;
int off = offset<<3;
for (i=0; i<8; i++)
{
output_set_indexed_value("matrix", off+i, ((data & (1 << i)) != 0));
}
if (offset>=20)
{
offset-=20;
// todo, reorder to what our 7segs expect
UINT8 bf7segdata = BITSWAP8(data,7,6,5,4,3,2,1,0);
output_set_digit_value(offset, bf7segdata);
}
}
WRITE16_MEMBER(sc4_state::sc4_mem_w)
{
@ -260,31 +293,61 @@ WRITE16_MEMBER(sc4_state::sc4_mem_w)
else if ((offset>=base2) && (offset<end2))
{
offset-=base2;
int addr = (offset<<1);
switch (offset << 1)
if (addr < 0x0200)
{
case 0x0330:
logerror("%08x meter write %04x\n",pc, data);
//m_meterstatus = (m_meterstatus&0xc0) | (data & 0x3f);
sec.write_clock_line(~data&0x20);
break;
if (mem_mask&0xff00)
{
logerror("lamp write mem_mask&0xff00 unhandled\n");
}
case 0x1248:
ymz280b_w(m_ymz,0, data & 0xff);
break;
if (mem_mask&0x00ff)
{ // lamps
mux_output_w(space, (addr & 0x01f0)>>4, data);
}
}
else if ((addr >= 0x1000) && (addr < 0x1200))
{
if (mem_mask&0xff00)
{
logerror("lamp write mem_mask&0xff00 unhandled\n");
}
case 0x124a:
ymz280b_w(m_ymz,1, data & 0xff);
break;
if (mem_mask&0x00ff)
{ // lamps
mux_output2_w(space, (addr & 0x01f0)>>4, data);
}
}
else
{
switch (addr)
{
case 0x0330:
logerror("%08x meter write %04x\n",pc, data);
//m_meterstatus = (m_meterstatus&0xc0) | (data & 0x3f);
sec.write_clock_line(~data&0x20);
break;
case 0x1330:
bfm_sc4_reel4_w(&space,0,data&0xf);
//m_meterstatus = (m_meterstatus&0x3f) | ((data & 0x30) << 2);
sec.write_data_line(~data&0x10);
break;
case 0x1248:
ymz280b_w(m_ymz,0, data & 0xff);
break;
default:
logerror("%08x maincpu write access offset %08x data %04x mem_mask %04x cs %d (LAMPS etc.)\n", pc, offset*2, data, mem_mask, cs);
case 0x124a:
ymz280b_w(m_ymz,1, data & 0xff);
break;
case 0x1330:
bfm_sc4_reel4_w(&space,0,data&0xf);
//m_meterstatus = (m_meterstatus&0x3f) | ((data & 0x30) << 2);
sec.write_data_line(~data&0x10);
break;
default:
logerror("%08x maincpu write access offset %08x data %04x mem_mask %04x cs %d (LAMPS etc.)\n", pc, offset*2, data, mem_mask, cs);
}
}
}
else
@ -655,7 +718,7 @@ MACHINE_CONFIG_START( sc4, sc4_state )
MCFG_DUART68681_ADD("duart68681", 16000000/4, bfm_sc4_duart68681_config) // ?? Mhz
MCFG_DEFAULT_LAYOUT(layout_awpvid14)
MCFG_DEFAULT_LAYOUT(layout_bfm_sc4)
MCFG_SOUND_ADD("ymz", YMZ280B, 16000000) // ?? Mhz
MCFG_SOUND_CONFIG(ymz280b_config)

View File

@ -13,7 +13,9 @@ TODO:
- Unknown sound writes at C00F; also, there's an NMI handler that would
read from C00F.
- Sound samples were getting chopped; I fixed this by changing sound/adpcm.c to
disregard requests to play new samples until the previous one is finished.
disregard requests to play new samples until the previous one is finished*.
- This seems to be happening again now, I guess something else disagreed
with the changed behavior? Maybe AD-65 specific?
Gotcha pcb: 97,7,29 PARA VER 3.0 but it is the same as ppchamp
@ -63,6 +65,7 @@ Notes:
#include "sound/2151intf.h"
#include "sound/okim6295.h"
#include "includes/gotcha.h"
#include "video/decospr.h"
WRITE16_MEMBER(gotcha_state::gotcha_lamps_w)
@ -300,6 +303,12 @@ static MACHINE_CONFIG_START( gotcha, gotcha_state )
MCFG_VIDEO_START(gotcha)
MCFG_DEVICE_ADD("spritegen", DECO_SPRITE, 0)
decospr_device::set_gfx_region(*device, 1);
decospr_device::set_is_bootleg(*device, true);
decospr_device::set_offsets(*device, 5,-1); // aligned to 2nd instruction screen in attract
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")

View File

@ -4,6 +4,8 @@
yet another Data East / Tumble Pop derived hardware
this one seems similar to (but not identical to)
the crospang.c hardware from F2 system
also very close to gotcha.c, which was also a Para
board.
todo: refresh rate & audio balance
verify dipswitches - difficulty & unknown dips

View File

@ -46,6 +46,8 @@ public:
bool m_dochk41;
DECLARE_WRITE8_MEMBER(mux_output_w);
DECLARE_WRITE8_MEMBER(mux_output2_w);
DECLARE_READ16_MEMBER(sc4_mem_r);
DECLARE_WRITE16_MEMBER(sc4_mem_w);
@ -78,8 +80,8 @@ INPUT_PORTS_EXTERN( sc4_base );
PORT_DIPSETTING( 0x06, "6" ) \
PORT_DIPSETTING( 0x07, "500GBP (club)" ) \
PORT_DIPSETTING( 0x08, "5GBP" ) \
PORT_DIPSETTING( 0x09, "9" ) \
PORT_DIPSETTING( 0x0a, "4GBP / 25GBP" ) \
PORT_DIPSETTING( 0x09, "15GBP" ) \
PORT_DIPSETTING( 0x0a, "25GBP (4GBP, Maz)" ) \
PORT_DIPSETTING( 0x0b, "11" ) \
PORT_DIPSETTING( 0x0c, "35GBP" ) \
PORT_DIPSETTING( 0x0d, "70GBP" ) \
@ -141,7 +143,9 @@ INPUT_PORTS_EXTERN( sc4_base );
ROM_LOAD( "95008527.bin", 0x0000, 0x0ff5c3, CRC(6fac2014) SHA1(5b364406f7b5d8f4c54561e3977571e4a47273a0) ) \
#define sc_adwta_others \
ROM_REGION( 0x400000, "ymz", ROMREGION_ERASE00 ) \
ROM_REGION( 0x400000, "ymz", ROMREGION_ERASE00 ) /* PR1940 ADSNT SHOWTIME SOUNDS11 */ \
ROM_LOAD( "95008656.bin", 0x000000, 0x100000, CRC(632a4cbb) SHA1(455e6242f5c5c1a0d84aadfdda33873e8e7b2418) ) \
ROM_LOAD( "95008657.bin", 0x100000, 0x100000, CRC(aa68db50) SHA1(52ee314549fac989dd9ee494144ee3bbb99ee283) ) \
#define sc_aztec_others \
ROM_REGION( 0x400000, "ymz", ROMREGION_ERASE00 ) \
@ -234,7 +238,8 @@ INPUT_PORTS_EXTERN( sc4_base );
#define sc_bonbx_others \
ROM_REGION( 0x400000, "ymz", ROMREGION_ERASE00 ) \
ROM_LOAD( "95008992.bin", 0x0000, 0x0aa536, CRC(aad10089) SHA1(d8a32f66432ee901be05435e8930d3897f4b4e33) ) /* BARX - right header, wrong sounds */ \
ROM_LOAD( "95008992.bin", 0x0000, 0x0aa536, CRC(aad10089) SHA1(d8a32f66432ee901be05435e8930d3897f4b4e33) ) /* BARX - right header, wrong sounds? */ \
ROM_LOAD( "95009015.bin", 0x0000, 0x0b7821, CRC(8b6ca362) SHA1(4c50935b6d1038738ce631fbdc359416197b8c03) ) /* BARX - right header, wrong sounds? */ \
#define sc_brksp_others \
ROM_REGION( 0x400000, "ymz", ROMREGION_ERASE00 ) \
@ -1178,13 +1183,15 @@ INPUT_PORTS_EXTERN( sc4_base );
#define sc_gd_others \
ROM_REGION( 0x400000, "ymz", ROMREGION_ERASE00 ) \
/* PR1016 GOLD DIG SOUNDS11 */ \
/* PR1016 GOLD DIG SOUNDS11 (game header actually lists PR1016 GOLD DIGGER SOUNDS11 but it accepts these) */ \
ROM_LOAD( "95008187.bin", 0x000000, 0x100000, CRC(1fbbc7cc) SHA1(6e19b582a3654bbbcf65b8f42bd556029f43e8cb) ) \
ROM_LOAD( "95008188.bin", 0x100000, 0x100000, CRC(a74b23a7) SHA1(f7948edfb5524eaf80039c07ca7a9f76883f5a6f) ) \
ROM_REGION( 0x400000, "others", ROMREGION_ERASE00 ) \
/* PR3509 GOLD DIGGER SOUNDS11 */ \
ROM_LOAD( "95009061.bin", 0x000000, 0x100000, CRC(c4cad720) SHA1(ce67af8d9e0b2f4f79d38b7a01dfc5ff7323e162) ) \
ROM_LOAD( "95009062.bin", 0x100000, 0x100000, CRC(509761d3) SHA1(6a133cc33bac6a1696de98a4961572a86cefc1c8) ) \
#define sc_gdmz_others \
ROM_REGION( 0x400000, "ymz", ROMREGION_ERASE00 ) \
ROM_LOAD( "95008980.bin", 0x0000, 0x0fe431, CRC(c09277a0) SHA1(227609194f7d7e8b00cbd5cb94f8679f8fff71c6) ) \
@ -1228,12 +1235,14 @@ INPUT_PORTS_EXTERN( sc4_base );
ROM_LOAD( "95008367.bin", 0x000000, 0x100000, CRC(37eea219) SHA1(e612b2c0bca83d742b35fbaf487b6805cfac024d) ) \
ROM_LOAD( "95008368.bin", 0x100000, 0x100000, CRC(06549054) SHA1(923a320f9689361802dc82db467b294f7bc85147) ) \
#define PR1327_CAS_HAPPY_NOTES_SOUNDS11 \
ROM_REGION( 0x400000, "ymz", ROMREGION_ERASE00 ) \
ROM_LOAD( "95008312.bin", 0x000000, 0x100000, CRC(cf33e14d) SHA1(33382be257a145784d9de7050b5c90f725241de4) ) \
#define sc_hapnt_others \
ROM_REGION( 0x400000, "ymz", ROMREGION_ERASE00 ) \
/* PR1306 HAPPY NOTES SOUNDS11 */ \
ROM_LOAD( "95008290.bin", 0x000000, 0x100000, CRC(427fc43d) SHA1(c63154c7f2bb3e7ec78e31268a8040d0eb131f2f) ) \
/* PR1327 CAS_HAPPY_NOTES SOUNDS11 */ \
ROM_LOAD( "95008312.bin", 0x100000, 0x100000, CRC(cf33e14d) SHA1(33382be257a145784d9de7050b5c90f725241de4) ) \
#define sc_hfcl_others \
ROM_REGION( 0x400000, "ymz", ROMREGION_ERASE00 ) \
@ -1494,20 +1503,27 @@ INPUT_PORTS_EXTERN( sc4_base );
ROM_LOAD( "95890728.bin", 0x0000, 0x5000, CRC(0c3acfbc) SHA1(ff39c8236d5bd44c7d238edd1827af5aebc46e5c) ) \
ROM_LOAD( "95890729.bin", 0x0000, 0x5000, CRC(cf60ed2c) SHA1(df015b71567d6762b4c8ea6ad6d719cefdfdc60f) ) \
#define PR1706_WHEEL_OF_WEALTH_SOUNDS11 \
ROM_REGION( 0x400000, "ymz", ROMREGION_ERASE00 ) \
ROM_LOAD( "95008550.bin", 0x000000, 0x100000, CRC(db6343bf) SHA1(e4d702020af67aa5be0560027706c1cbf34296fa) ) \
#define WHEEL_OF_WEALTH_WOWT_SOUNDS \
ROM_REGION( 0x400000, "ymz", ROMREGION_ERASE00 ) \
ROM_LOAD( "95008869.bin", 0x000000, 0x0b9d9d, CRC(f3ef3bbb) SHA1(92f9835e96c4fc444a451e97b2b8a7b66e5794b7) ) \
#define sc_mowow_others \
ROM_REGION( 0x5000, "pics", 0 ) \
ROM_LOAD( "95890712.bin", 0x0000, 0x5000, CRC(ec6db00b) SHA1(d16a1527caa3c115e3326c897ce0fa66e3a0420d) ) \
ROM_LOAD( "95890713.bin", 0x0000, 0x5000, CRC(f0bb40b7) SHA1(33c19dab3086cdeae4f503fbf3f3cc5f0dad98c4) ) \
ROM_LOAD( "95890714.bin", 0x0000, 0x5000, CRC(33e16227) SHA1(87efc1a046ef6af0b72cc76a6ee393a4d1ddbce3) ) \
ROM_REGION( 0x400000, "ymz", ROMREGION_ERASE00 ) \
/* PR1706 WHEEL OF WEALTH SOUNDS11 */ \
ROM_LOAD( "95008550.bin", 0x000000, 0x100000, CRC(db6343bf) SHA1(e4d702020af67aa5be0560027706c1cbf34296fa) ) \
/* 95008551 STEPITS5 PR1666 */ \
ROM_LOAD( "95008551.bin", 0x100000, 0x100000, CRC(2d89a52a) SHA1(244101df7f6beae545f9b823750f908f532ac1e4) ) \
/* WOW SOUNDS */ \
/* WOW SOUNDS - wrong for this game, wants "WOTW SOUNDS" */ \
ROM_LOAD( "95008850.bin", 0x000000, 0x0af41f, CRC(8ca16e09) SHA1(9b494ad6946c2c7bbfad6591e62fa699fd53b6dc) ) \
/* WOWT SOUNDS */ \
ROM_LOAD( "95008869.bin", 0x000000, 0x0b9d9d, CRC(f3ef3bbb) SHA1(92f9835e96c4fc444a451e97b2b8a7b66e5794b7) ) \
ROM_REGION( 0x400000, "others", ROMREGION_ERASE00 ) \
/* 95008551 STEPITS5 PR1666 - wrong game?? */ \
ROM_LOAD( "95008551.bin", 0x100000, 0x100000, CRC(2d89a52a) SHA1(244101df7f6beae545f9b823750f908f532ac1e4) ) \
#define sc_nmare_others \
ROM_REGION( 0x400000, "ymz", ROMREGION_ERASE00 ) \
@ -1775,9 +1791,6 @@ INPUT_PORTS_EXTERN( sc4_base );
ROM_REGION( 0x400000, "ymz", ROMREGION_ERASE00 ) /* PR3013 SHOWTIME SOUNDS11 */ \
ROM_LOAD( "95008734.bin", 0x000000, 0x100000, CRC(8b469657) SHA1(514b3f4cbbafb3cee618b9ce0bae572f1a4fcf7b) ) \
ROM_LOAD( "95008735.bin", 0x100000, 0x100000, CRC(fa614cc1) SHA1(e5ecce4936a8db267b08b938ab5bc7500cf98f99) ) \
ROM_REGION( 0x400000, "others1", ROMREGION_ERASE00 ) /* PR1940 ADSNT SHOWTIME SOUNDS11 */ \
ROM_LOAD( "95008656.bin", 0x000000, 0x100000, CRC(632a4cbb) SHA1(455e6242f5c5c1a0d84aadfdda33873e8e7b2418) ) \
ROM_LOAD( "95008657.bin", 0x100000, 0x100000, CRC(aa68db50) SHA1(52ee314549fac989dd9ee494144ee3bbb99ee283) ) \
ROM_REGION( 0x400000, "others2", ROMREGION_ERASE00 ) /* PR3243 SHOWTIME SOUNDS11 */ \
ROM_LOAD( "95008777.bin", 0x000000, 0x100000, CRC(1ff19229) SHA1(6db08982ee923ef4568caf76e05088574f99fc36) ) \
ROM_LOAD( "95008778.bin", 0x100000, 0x100000, CRC(2f2f3ee1) SHA1(cade826fec6c07a1fffa548c96404da83db14dd7) ) \
@ -1942,11 +1955,13 @@ INPUT_PORTS_EXTERN( sc4_base );
#define sc_mrrcl_others \
ROM_REGION( 0x400000, "ymz", ROMREGION_ERASE00 ) \
#define sc_gball_pthers \
#define PR1034_GOLDEN_BALLS_SOUNDS11 \
ROM_REGION( 0x400000, "ymz", ROMREGION_ERASE00 ) \
/* PR1034 GOLDEN BALLS SOUNDS11 */ \
ROM_LOAD( "95008161.bin", 0x000000, 0x080000, CRC(ecd13fd9) SHA1(51d11b9133d4e840ce9afd7cf716520ea0fc0343) ) \
ROM_LOAD( "95008162.bin", 0x080000, 0x080000, CRC(b4b4a5c5) SHA1(d0748decfaee7da52d2f6a4bc0877be4243ed6fb) ) \
#define sc_gball_pthers \
ROM_REGION( 0x400000, "ymz", ROMREGION_ERASE00 ) \
/* PR1604 GOLDEN BALLS SOUNDS12 */ \
ROM_LOAD( "95008465.bin", 0x000000, 0x100000, CRC(5d1fa2c9) SHA1(c12de2b89f0bcb8f1b35630fffd205fd9d5b9777) ) \
ROM_LOAD( "95008466.bin", 0x100000, 0x100000, CRC(418068ab) SHA1(342939e9bcc1d213bc2f52666cc3765442e18635) ) \
@ -1957,9 +1972,10 @@ INPUT_PORTS_EXTERN( sc4_base );
#define sc_ggame_others \
ROM_REGION( 0x400000, "ymz", ROMREGION_ERASE00 ) \
ROM_LOAD( "95008992.bin", 0x0000, 0x0aa536, CRC(aad10089) SHA1(d8a32f66432ee901be05435e8930d3897f4b4e33) ) /* BARX */ \
ROM_REGION( 0x400000, "others", ROMREGION_ERASE00 ) \
ROM_LOAD( "95008515.bin", 0x0000, 0x0ab5c3, CRC(70cd8480) SHA1(2da34a0c1d9d84471005f5d6491499e707c0b0d4) ) /* KGXDX */ \
ROM_LOAD( "95008958.bin", 0x0000, 0x0435d3, CRC(31ffdb64) SHA1(e48cfa2e5b158555b4ba204fc1175810b81cbbed) ) /* MULTIGG */ \
ROM_LOAD( "95008992.bin", 0x0000, 0x0aa536, CRC(aad10089) SHA1(d8a32f66432ee901be05435e8930d3897f4b4e33) ) /* BARX */ \
ROM_REGION( 0x5000, "pics", 0 ) \
ROM_LOAD( "95890410.bin", 0x0000, 0x5000, CRC(9588ae1d) SHA1(ae45d9e0272b2b048b99e337def1acfb2524597e) ) \
ROM_LOAD( "95890411.bin", 0x0000, 0x5000, CRC(895e5ea1) SHA1(070df49baca709f69fa1e522b21e42b716af0ba5) ) \
@ -1967,8 +1983,9 @@ INPUT_PORTS_EXTERN( sc4_base );
#define sc_ggg_others \
ROM_REGION( 0x400000, "ymz", ROMREGION_ERASE00 ) \
ROM_LOAD( "95008992.bin", 0x0000, 0x0aa536, CRC(aad10089) SHA1(d8a32f66432ee901be05435e8930d3897f4b4e33) ) \
ROM_LOAD( "95009015.bin", 0x0000, 0x0b7821, CRC(8b6ca362) SHA1(4c50935b6d1038738ce631fbdc359416197b8c03) ) \
ROM_LOAD( "95009015.bin", 0x0000, 0x0b7821, CRC(8b6ca362) SHA1(4c50935b6d1038738ce631fbdc359416197b8c03) ) /* BARX SOUNDS */ \
ROM_REGION( 0x400000, "others", ROMREGION_ERASE00 ) \
ROM_LOAD( "95008992.bin", 0x0000, 0x0aa536, CRC(aad10089) SHA1(d8a32f66432ee901be05435e8930d3897f4b4e33) ) /* BARX SOUNDS */ \
ROM_REGION( 0x400000, "pivs", ROMREGION_ERASE00 ) \
ROM_LOAD( "95890730.bin", 0x0000, 0x5000, CRC(9673d1ce) SHA1(fee90139fc8de5e7b6dfe741b4852a363c17eb93) ) \
ROM_LOAD( "95890731.bin", 0x0000, 0x5000, CRC(8aa52172) SHA1(441a649e3da00556a8ea966a88ee9b58b4943d3b) ) \
@ -1980,11 +1997,12 @@ INPUT_PORTS_EXTERN( sc4_base );
#define sc_gnc_others \
ROM_REGION( 0x400000, "ymz", ROMREGION_ERASE00 ) \
#define sc_hellb_others \
#define SC4_95004211_HELLS_BELLS_PR6945 \
ROM_REGION( 0x400000, "ymz", ROMREGION_ERASE00 ) \
/* 95004211 HELLS BELLS PR6945 */ \
ROM_LOAD( "95004211.bin", 0x0000, 0x080000, CRC(2e729642) SHA1(c8dcdce52f930b3fa894c46907691a28a5499a16) ) \
/* PR1402 HELLS BELLS SOUNDS11 */ \
#define sc_hellb_others \
ROM_REGION( 0x400000, "ymz", ROMREGION_ERASE00 ) /* PR1402 HELLS BELLS SOUNDS11 */ \
ROM_LOAD( "95008341.bin", 0x0000, 0x100000, CRC(486e5395) SHA1(0ad68f271f4839d50a790b7f4427e1f1f1933bd4) ) \
#define sc_leg_others \
@ -2019,22 +2037,28 @@ INPUT_PORTS_EXTERN( sc4_base );
ROM_LOAD( "95008684.bin", 0x000000, 0x100000, CRC(52b7d26e) SHA1(ba6629dbad8d00c132c0ddf6a8a41ddc99231c75) ) \
ROM_LOAD( "95008685.bin", 0x100000, 0x100000, CRC(dc9717c0) SHA1(27234bb7c7e7bd1f395972ce2958d55e84005313) ) \
#define sc_pacmn_others \
#define QPS_PACP_SOUNDS \
ROM_REGION( 0x400000, "ymz", ROMREGION_ERASE00 ) \
ROM_LOAD( "95004183", 0x000000, 0x080000, CRC(4b28f610) SHA1(fff01c890a8c109bb4b522ee2391c15abdc2758c) ) \
ROM_LOAD( "95004184", 0x080000, 0x080000, CRC(bee11fdd) SHA1(b5ce97108812e296c92a000444c1fb7a11286de4) ) \
ROM_LOAD( "95004199.lo", 0x000000, 0x080000, CRC(3a9605c8) SHA1(ce1c94fe26eac9e145e94539f62f2bde740e5b9a) ) \
ROM_LOAD( "95004199.hi", 0x080000, 0x080000, CRC(0ecfc531) SHA1(15e20eedf4b7d9102c40834612d111559b4dcbca) ) \
/* PACP SOUNDS */ \
ROM_LOAD( "97000000.evn", 0x000000, 0x080000, CRC(5b13fe7b) SHA1(1bd32e577914ab4e3bc3282261f8c3cdf015b85d) ) /* pacp */ \
ROM_LOAD( "97000000.odd", 0x080000, 0x080000, CRC(8bab1c78) SHA1(ddc915a8c56473ba4d67d8c62c66105dd622b593) ) \
#define PACMAN_SOUNDS \
ROM_REGION( 0x400000, "ymz", ROMREGION_ERASE00 ) \
/* PACMAN SOUNDS */ \
ROM_LOAD( "95004183", 0x000000, 0x080000, CRC(4b28f610) SHA1(fff01c890a8c109bb4b522ee2391c15abdc2758c) ) \
ROM_LOAD( "95004184", 0x080000, 0x080000, CRC(bee11fdd) SHA1(b5ce97108812e296c92a000444c1fb7a11286de4) ) \
#define sc_paccs_others \
ROM_REGION( 0x400000, "ymz", ROMREGION_ERASE00 ) \
ROM_LOAD( "95004199.lo", 0x000000, 0x080000, CRC(3a9605c8) SHA1(ce1c94fe26eac9e145e94539f62f2bde740e5b9a) ) \
ROM_LOAD( "95004199.hi", 0x080000, 0x080000, CRC(0ecfc531) SHA1(15e20eedf4b7d9102c40834612d111559b4dcbca) ) \
#define sc_paccl_others \
ROM_REGION( 0x400000, "ymz", ROMREGION_ERASE00 ) \
ROM_LOAD( "95008145.bin", 0x0000, 0x100000, CRC(e2ec54f8) SHA1(bb1c40b13151ed1e3c7ba603506701457392bb8b) ) \
ROM_LOAD( "pacmancsnd.bin", 0x0000, 0x0bbb33, CRC(c505aa18) SHA1(a99bd1c4101269e2eb2b6becf210d9991fee1da1) ) \
ROM_LOAD( "pacmancsnd.bin", 0x0000, 0x0bbb33, CRC(c505aa18) SHA1(a99bd1c4101269e2eb2b6becf210d9991fee1da1) ) /* identical but cut at 0xff bytes */ \
#define sc_pacpl_others \
ROM_REGION( 0x400000, "ymz", ROMREGION_ERASE00 ) \
@ -2670,9 +2694,12 @@ INPUT_PORTS_EXTERN( sc4_base );
ROM_LOAD( "95004224.sn1", 0x000000, 0x080000, CRC(74382d29) SHA1(bd0323b7208e9b03e2d8468f7d4603fb4a3fe394) ) \
ROM_LOAD( "95004225.sn2", 0x080000, 0x080000, CRC(23efa88d) SHA1(af52ec3dcb45a2ea26eaa273c783134402105168) ) \
#define sc_pgold_others \
#define SC4_95004316_CAS_PHAR_GOLD_PR1261 \
ROM_REGION( 0x400000, "ymz", ROMREGION_ERASE00 ) \
ROM_LOAD( "95004316.snd", 0x000000, 0x080000, CRC(94a9ec9c) SHA1(bab1a431e2857b9db9fa3f3ef28f150e19c4ae50) ) /* casino */ \
#define sc_pgold_others \
ROM_REGION( 0x400000, "ymz", ROMREGION_ERASE00 ) \
ROM_LOAD( "95008141.bin", 0x000000, 0x100000, CRC(e1b214dc) SHA1(811f6ec42961496f8cd9fb3434ab6a07457ca61a) ) \
ROM_LOAD( "95008142.bin", 0x100000, 0x100000, CRC(faa84d52) SHA1(f5139df5e9ff95fab3c01ac2b1aa44b1d939bf7a) ) \
@ -3017,15 +3044,18 @@ INPUT_PORTS_EXTERN( sc4_base );
ROM_REGION( 0x400000, "ymz", ROMREGION_ERASE00 ) \
#define sc_clbtm_others \
ROM_REGION( 0x800000, "ymz", ROMREGION_ERASE00 ) \
/* very large sound roms! */ \
ROM_LOAD( "95008055.p1", 0x0000, 0x800000, CRC(ef474fd3) SHA1(e7427184683603b57a3a8b37452fa6ec7a41e34c) ) \
ROM_LOAD( "95008056.p2", 0x0000, 0x800000, CRC(39b1b566) SHA1(937ec27964124b92b75d4b37d09a35585baa68c6) ) \
ROM_REGION( 0x1000000, "ymz", ROMREGION_ERASE00 ) \
/* very large sound roms! - overdumps.. mostly garbage (cut them) */ \
ROM_LOAD( "95008055.p1", 0x00000, 0x80000, CRC(ef474fd3) SHA1(e7427184683603b57a3a8b37452fa6ec7a41e34c) ) \
ROM_IGNORE(0x780000) \
ROM_LOAD( "95008056.p2", 0x80000, 0x80000, CRC(39b1b566) SHA1(937ec27964124b92b75d4b37d09a35585baa68c6) ) \
ROM_IGNORE(0x780000) \
\
ROM_REGION( 0x1000000, "others2", ROMREGION_ERASE00 ) \
ROM_LOAD( "95008055.bin", 0x0000, 0x100000, CRC(df9ae6e3) SHA1(5766cb1749aa92c34a76270a641f7a9302cc44d7) ) \
\
ROM_REGION( 0x400000, "others", ROMREGION_ERASE00 ) \
/* dot matrix roms? */ \
/* dot matrix roms? - for the SC1 version? */ \
ROM_LOAD( "club-temptation_mtx_(ihex)ss.hex", 0x0000, 0x01d0da, CRC(08ebee96) SHA1(2e87d734c966abab1d4a59c9481ebea161f77286) ) \
ROM_LOAD( "clubtempdot.bin", 0x0000, 0x010000, CRC(283d2d9c) SHA1(5b76a13ad674f8a40c270e5dbc61dac04d411d02) ) /* DM01 */ \
ROM_LOAD( "95717692a.bin", 0x0000, 0x008000, CRC(f9fe7b9a) SHA1(0e3fe5da9fc837726d08f02a2c6ed782f016c982) ) /* is this something else? sc1/2? */ \

File diff suppressed because it is too large Load Diff

View File

@ -13915,7 +13915,6 @@ sc4mclbd //
sc4mclbe //
sc4mdlx // Monopoly Deluxe (Mazooma)
sc4mondxg //
sc4mowowd //
sc4mont // Montego Pay (Qps)
sc4monta //
sc4montb //
@ -13957,9 +13956,9 @@ sc4outlwc //
sc4pacmn // Pac Man (Mazooma)
sc4pacmna //
sc4pacmnb //
sc4pacmnc //
sc4pacmnd //
sc4pacmne //
sc4pacqp //
sc4pacqpa //
sc4pacqpb //
sc4paccs // Pac Man Casino (Mazooma)
sc4paccsa //
sc4paccsb //
@ -15095,22 +15094,22 @@ sc4gball //
sc4gballa //
sc4gballb //
sc4gballc //
sc4ggame // Golden Game (Mazooma)
sc4ggtb // Golden Game (Mazooma) Top Box
sc4ggtba //
sc4ggtbb //
sc4ggame // Golden Game
sc4ggamea //
sc4ggameb //
sc4ggamec //
sc4ggamed //
sc4ggamee //
sc4ggamef //
sc4ggameg //
sc4ggameh //
sc4ggamei //
sc4ggamej //
sc4ggamek //
sc4ggamel //
sc4ggamem //
sc4ggamen //
sc4ggameo //
sc4ggamep //
sc4ggameq //
sc4ggamer //
@ -15145,8 +15144,9 @@ sc4ggdlxd //
sc4ggdlxe //
sc4ggdlxf //
sc4ggdlxg //
sc4ggg // Grand Golden Game (Mazooma)
sc4ggga //
sc4gggtb // Grand Golden Game (Mazooma)
sc4gggtba //
sc4ggg //
sc4gggb //
sc4gggc //
sc4gggd //
@ -15155,7 +15155,6 @@ sc4gggf //
sc4gggg //
sc4gggh //
sc4gggi //
sc4gggj //
sc4gggk //
sc4gggl //
sc4gggm //
@ -15654,16 +15653,17 @@ sc4dndbem //
sc4dndben //
sc4dndbc // Deal Or No Deal Box Clever (Bellfruit)
sc4dndbca //
sc4bwow // Wheel of Wealth (Bellfruit)
sc4bwowa //
sc4mowow // Monopoly Wheel Of Wealth (Mazooma)
sc4mowowa //
sc4mowowb //
sc4mowowc //
sc4mowowe //
sc4mowowf //
sc4mowowg //
sc4mowowh //
sc4mowowi //
sc4mowowj //
sc4mwwtb //
sc4mwwtba //
sc4mwwtbb //
sc4mwwtbc //
sc4mwwtbd //
sc4nunsm // Nuns 'n' Roses (Mazooma)
sc4nunsmb //
sc4nunsmc //

View File

@ -40,6 +40,8 @@
(bootleg) nmg5.c
(bootleg) tumbleb.c
(bootleg) crospang.c
(bootleg) silvmil.c
(bootleg) gotcha.c
to convert:

View File

@ -1,5 +1,6 @@
#include "emu.h"
#include "includes/gotcha.h"
#include "video/decospr.h"
/***************************************************************************
@ -100,41 +101,12 @@ WRITE16_MEMBER(gotcha_state::gotcha_scroll_w)
static void draw_sprites( running_machine &machine, bitmap_ind16 &bitmap, const rectangle &cliprect )
{
gotcha_state *state = machine.driver_data<gotcha_state>();
UINT16 *spriteram = state->m_spriteram;
int offs;
for (offs = 0; offs < state->m_spriteram.bytes() / 2; offs += 4)
{
int sx, sy, code, color, flipx, flipy, height, y;
sx = spriteram[offs + 2];
sy = spriteram[offs + 0];
code = spriteram[offs + 1];
color = spriteram[offs + 2] >> 9;
height = 1 << ((spriteram[offs + 0] & 0x0600) >> 9);
flipx = spriteram[offs + 0] & 0x2000;
flipy = spriteram[offs + 0] & 0x4000;
for (y = 0; y < height; y++)
{
drawgfx_transpen(bitmap,cliprect,machine.gfx[1],
code + (flipy ? height-1 - y : y),
color,
flipx,flipy,
0x140-5 - ((sx + 0x10) & 0x1ff),0x100+1 - ((sy + 0x10 * (height - y)) & 0x1ff),0);
}
}
}
SCREEN_UPDATE_IND16( gotcha )
{
gotcha_state *state = screen.machine().driver_data<gotcha_state>();
state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
draw_sprites(screen.machine(), bitmap, cliprect);
screen.machine().device<decospr_device>("spritegen")->draw_sprites(bitmap, cliprect, state->m_spriteram, 0x400);
return 0;
}