diff --git a/src/mame/drivers/generalplus_gpl16250_nand.cpp b/src/mame/drivers/generalplus_gpl16250_nand.cpp index 11f3458faa4..d0dafa01d39 100644 --- a/src/mame/drivers/generalplus_gpl16250_nand.cpp +++ b/src/mame/drivers/generalplus_gpl16250_nand.cpp @@ -748,19 +748,72 @@ void generalplus_gpac800_game_state::machine_reset() mem.write_word(dest + i, word); } - // these vectors must either directly point to RAM, or at least redirect there after some code + /* these vectors must either directly point to RAM, or at least redirect there after some code + + kiugames has the startup code copied to 20xxx which is outside the scope of a 16-bit vector + so these must trampoline (although 20xxx currently isn't handled as RAM, so that needs more + thought anyway + */ uint16_t* internal = (uint16_t*)memregion("maincpu:internal")->base(); - internal[0x7ff5] = m_vectorbase + 0x0a; - internal[0x7ff6] = m_vectorbase + 0x0c; - internal[0x7ff7] = dest + 0x20; // point boot vector at code in RAM (probably in reality points to internal code that copies the first block) - internal[0x7ff8] = m_vectorbase + 0x10; - internal[0x7ff9] = m_vectorbase + 0x12; - internal[0x7ffa] = m_vectorbase + 0x14; - internal[0x7ffb] = m_vectorbase + 0x16; - internal[0x7ffc] = m_vectorbase + 0x18; - internal[0x7ffd] = m_vectorbase + 0x1a; - internal[0x7ffe] = m_vectorbase + 0x1c; - internal[0x7fff] = m_vectorbase + 0x1e; + + int addr; + addr = (m_vectorbase + 0x0a) & 0x000fffff; + internal[0x7f00] = 0xfe80 | (addr >> 16); + internal[0x7f01] = (addr & 0xffff); + + addr = (m_vectorbase + 0x0c) & 0x000fffff; + internal[0x7f02] = 0xfe80 | (addr >> 16); + internal[0x7f03] = (addr & 0xffff); + + addr = (dest + 0x20) & 0x000fffff; // point boot vector at code in RAM (probably in reality points to internal code that copies the first block) + internal[0x7f04] = 0xfe80 | (addr >> 16); + internal[0x7f05] = (addr & 0xffff); + + addr = (m_vectorbase + 0x10) & 0x000fffff; + internal[0x7f06] = 0xfe80 | (addr >> 16); + internal[0x7f07] = (addr & 0xffff); + + addr = (m_vectorbase + 0x12) & 0x000fffff; + internal[0x7f08] = 0xfe80 | (addr >> 16); + internal[0x7f09] = (addr & 0xffff); + + addr = (m_vectorbase + 0x14) & 0x000fffff; + internal[0x7f0a] = 0xfe80 | (addr >> 16); + internal[0x7f0b] = (addr & 0xffff); + + addr = (m_vectorbase + 0x16) & 0x000fffff; + internal[0x7f0c] = 0xfe80 | (addr >> 16); + internal[0x7f0d] = (addr & 0xffff); + + addr = (m_vectorbase + 0x18) & 0x000fffff; + internal[0x7f0e] = 0xfe80 | (addr >> 16); + internal[0x7f0f] = (addr & 0xffff); + + addr = (m_vectorbase + 0x1a) & 0x000fffff; + internal[0x7f10] = 0xfe80 | (addr >> 16); + internal[0x7f11] = (addr & 0xffff); + + addr = (m_vectorbase + 0x1c) & 0x000fffff; + internal[0x7f12] = 0xfe80 | (addr >> 16); + internal[0x7f13] = (addr & 0xffff); + + addr = (m_vectorbase + 0x1e) & 0x000fffff; + internal[0x7f14] = 0xfe80 | (addr >> 16); + internal[0x7f15] = (addr & 0xffff); + + + internal[0x7ff5] = 0xff00; + + internal[0x7ff6] = 0xff02; + internal[0x7ff7] = 0xff04; + internal[0x7ff8] = 0xff06; + internal[0x7ff9] = 0xff08; + internal[0x7ffa] = 0xff0a; + internal[0x7ffb] = 0xff0c; + internal[0x7ffc] = 0xff0e; + internal[0x7ffd] = 0xff10; + internal[0x7ffe] = 0xff12; + internal[0x7fff] = 0xff14; } m_maincpu->reset(); // reset CPU so vector gets read etc. diff --git a/src/mame/drivers/mpu4vid.cpp b/src/mame/drivers/mpu4vid.cpp index 532238795de..91770744388 100644 --- a/src/mame/drivers/mpu4vid.cpp +++ b/src/mame/drivers/mpu4vid.cpp @@ -5433,6 +5433,21 @@ ROM_END ROM_START( v4picdil ) ROM_REGION( 0x10000, "maincpu", 0 ) ROM_LOAD( "pcdsf___.a_0", 0x0000, 0x010000, CRC(45a15082) SHA1(d7655722c7ad9f3b1b2663d85287ae185917d677) ) + + ROM_REGION( 0x800000, "video", 0 ) + ROM_LOAD16_BYTE( "pcd_____.a_1", 0x000001, 0x080000, CRC(0ed561d4) SHA1(899c76d2a2352988a01bece2a229deb934a00892) ) + ROM_LOAD16_BYTE( "pcd_____.a_2", 0x000000, 0x080000, CRC(bffe3863) SHA1(ea6fdcce470e8a50c35f43fd86e39524be2db3a3) ) + ROM_LOAD16_BYTE( "pcd_____.a_3", 0x100001, 0x080000, CRC(3b64a328) SHA1(a9fa9dc30b352388906e6021bc0d1ad7c3a28746) ) + ROM_LOAD16_BYTE( "pcd_____.a_4", 0x100000, 0x080000, CRC(25faba03) SHA1(572aaee3af3b915294ba057b7ceb653dd135098b) ) + ROM_LOAD16_BYTE( "pcd_____.a_5", 0x200001, 0x080000, CRC(275f3c1c) SHA1(1d0f8f7d0388d5072ae404f10b2481153979a217) ) + ROM_LOAD16_BYTE( "pcd_____.a_6", 0x200000, 0x080000, CRC(148ecba0) SHA1(2ae0f5529fa3951025539fe19f4e8fdf10f13374) ) + + ROM_REGION( 0x200000, "msm6376", ROMREGION_ERASE00 ) + /* none present */ +ROM_END + +ROM_START( v4picdila ) + ROM_REGION( 0x10000, "maincpu", 0 ) ROM_LOAD( "pcdsf__e.a_0", 0x0000, 0x010000, CRC(0ed1c7af) SHA1(c19ff141fba7fd1f2cf0b152e3c6df61c6b27b46) ) ROM_REGION( 0x800000, "video", 0 ) @@ -5448,6 +5463,25 @@ ROM_START( v4picdil ) ROM_END +ROM_START( v4picdilz ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "pcdsf2_interface_a0.bin", 0x0000, 0x010000, CRC(5e007ac4) SHA1(82fd17da416c29b2e4b75f24bc8d415e57c0e94b)) + + ROM_REGION( 0x800000, "video", 0 ) + ROM_LOAD16_BYTE( "piccadilly_vid_a1_ic15.bin", 0x000000, 0x080000, CRC(22f9ad51) SHA1(f63923e346519833f71a1644d4e504d2f93a173f) ) + ROM_LOAD16_BYTE( "piccadilly_vid_a2_ic7.bin", 0x000001, 0x080000, CRC(6de3bae1) SHA1(c9fae9bb694341b1cca05ae143beb04989326897) ) + ROM_LOAD16_BYTE( "pcd_____.a_3", 0x100001, 0x080000, CRC(3b64a328) SHA1(a9fa9dc30b352388906e6021bc0d1ad7c3a28746) ) + ROM_LOAD16_BYTE( "pcd_____.a_4", 0x100000, 0x080000, CRC(25faba03) SHA1(572aaee3af3b915294ba057b7ceb653dd135098b) ) + ROM_LOAD16_BYTE( "pcd_____.a_5", 0x200001, 0x080000, CRC(275f3c1c) SHA1(1d0f8f7d0388d5072ae404f10b2481153979a217) ) + ROM_LOAD16_BYTE( "pcd_____.a_6", 0x200000, 0x080000, CRC(148ecba0) SHA1(2ae0f5529fa3951025539fe19f4e8fdf10f13374) ) + + ROM_REGION( 0x200000, "msm6376", ROMREGION_ERASE00 ) + ROM_LOAD( "pcdsnd_v1_p1.bin", 0x000000, 0x080000, CRC(01c0bec3) SHA1(a755f939d02500f0a03e399bbf7f842173bf5a71) ) + ROM_LOAD( "pcdsnd_v1_p2.bin", 0x080000, 0x080000, CRC(a9f66e67) SHA1(eba1ff2023356face1d9a6be93417b54a132fe6f) ) + ROM_LOAD( "pcdsnd_v1_p3.bin", 0x100000, 0x080000, BAD_DUMP CRC(d15ea1bd) SHA1(f47e4d901a89ccf83784e582414f3dce08fc4e18) ) // mostly empty, corrupt? + ROM_LOAD( "pcdsnd_v1_p4.bin", 0x180000, 0x080000, CRC(275cdbe0) SHA1(7239d48c4755072a32c237079e623baa95a32593) ) +ROM_END + ROM_START( v4big40 ) ROM_REGION( 0x10000, "maincpu", 0 ) @@ -6415,6 +6449,18 @@ ROM_START( v4gldrshu ) /* none present */ ROM_END +ROM_START( v4gldrsh3 ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "goldrush.bin", 0x0000, 0x010000, CRC(459834db) SHA1(dac9945553567c6bbc4e8ca9054a0b5448bc19aa) ) + + ROM_REGION( 0x800000, "video", 0 ) + ROM_LOAD16_BYTE( "go_3.1.bin", 0x000000, 0x080000, CRC(5edc8226) SHA1(c231978be89db23c1b1d38307510ef7e2a278492) ) + ROM_LOAD16_BYTE( "go_3.2.bin", 0x000001, 0x080000, CRC(95c10e74) SHA1(73b230e2281d4e2a564f070c752479af2af32757) ) + + ROM_REGION( 0x200000, "msm6376", ROMREGION_ERASE00 ) + /* none present */ +ROM_END + ROM_START( v4mdicee ) ROM_REGION( 0x10000, "maincpu", 0 ) @@ -6789,6 +6835,7 @@ ROM_END ROM_START( v4mdice5 ) ROM_REGION( 0x10000, "maincpu", 0 ) ROM_LOAD( "release5_mpu4.rom", 0x0000, 0x010000, NO_DUMP ) + ROM_LOAD( "mdmpu4.bin", 0x0000, 0x010000, CRC(8e712a33) SHA1(e821167c825b151bcde5eb9c63e7d2da04e1166a) ) ROM_REGION( 0x800000, "video", 0 ) // release 5 of Miami Dice based on internal strings ROM_LOAD16_BYTE( "mdv58p1", 0x000001, 0x080000, CRC(3f3fa0d2) SHA1(bb52111bcea5cd404d1e7adf0f3ebca596a251ac) ) @@ -6801,6 +6848,21 @@ ROM_START( v4mdice5 ) ROM_LOAD( "mdsndb", 0x080000, 0x080000, CRC(2233d677) SHA1(a787dc0bafa310df9467e4b8166274288fe94b4c) ) ROM_END +ROM_START( v4mdice6 ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "md_26a__.6_0", 0x0000, 0x010000, CRC(1902067a) SHA1(ca46375ad859758bd3182653f2614cea47e46e50) ) + + ROM_REGION( 0x800000, "video", 0 ) + ROM_LOAD16_BYTE( "md______.8_1", 0x000001, 0x080000, CRC(3f3fa0d2) SHA1(bb52111bcea5cd404d1e7adf0f3ebca596a251ac) ) + ROM_LOAD16_BYTE( "md______.8_2", 0x000000, 0x080000, CRC(14bb6b48) SHA1(97025f0899c325d28ac75c54e81fd425b5002064) ) + ROM_LOAD16_BYTE( "md_6_30", 0x100001, 0x080000, CRC(c1526309) SHA1(c6961813310a3873540c9174db3c7ce2347620d5) ) + ROM_LOAD16_BYTE( "md_6_34", 0x100000, 0x080000, CRC(f6b8cc2f) SHA1(d1022b4a8ab3266dab5401127610c864e6e40a7f) ) + + ROM_REGION( 0x200000, "msm6376", ROMREGION_ERASE00 ) + ROM_LOAD( "mdsnda", 0x000000, 0x080000, CRC(18651603) SHA1(c6f7557a82cb49f3f001b43250129d10f4f6ab5a) ) + ROM_LOAD( "mdsndb", 0x080000, 0x080000, CRC(2233d677) SHA1(a787dc0bafa310df9467e4b8166274288fe94b4c) ) +ROM_END + /* Some roms were simply in a set marked as Monte Carlo, but the 2 letter code mn) is the same */ /* The roms were a mixture of @@ -7630,6 +7692,21 @@ ROM_START( v4montezz ) ROM_LOAD( "mcosndb.bin", 0x080000, 0x080000, CRC(fcbad433) SHA1(a8cd32ca5a17e3c35701a7eac3e9ef741aa04105) ) ROM_END +ROM_START( v4monteger ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "mnd-a0_interface.bin", 0x0000, 0x010000, CRC(157e7ee4) SHA1(7a2d2caefd6ff609b8059d0ed0fd7ef94d8d36bc) ) + + ROM_REGION( 0x800000, "video", 0 ) + ROM_LOAD16_BYTE( "mnd-a2_vid.bin", 0x000000, 0x080000, CRC(220f3a14) SHA1(fdfdc41c62330d77735d1840a4a7d429b3257d07) ) + ROM_LOAD16_BYTE( "mnd-a1_vid.bin", 0x000001, 0x080000, CRC(b7b28d00) SHA1(0ae4bc759472f58cb738d7e7c8713a54f4e13686) ) + ROM_LOAD16_BYTE( "mnd-a4_vid.bin", 0x100000, 0x080000, CRC(5fa9d451) SHA1(539438d237b869e97176d031f0014f3e33374eed) ) + ROM_LOAD16_BYTE( "mnd-a3_vid.bin", 0x100001, 0x080000, CRC(5e3a95a4) SHA1(305a7f8b1c5072d86d6f381501886587a2e186ea) ) + + ROM_REGION( 0x200000, "msm6376", ROMREGION_ERASE00 ) + ROM_LOAD( "mnd-1a-snd.bin", 0x000000, 0x080000, CRC(98bcf6fb) SHA1(b2c0d305f64be10f5ff40518ebb1b66c44559578) ) + ROM_LOAD( "mnd-1b-snd.bin", 0x080000, 0x080000, CRC(df2118b4) SHA1(6126baff9dfef7c573e3f77847ea58bdc242fdc2) ) +ROM_END + ROM_START( v4ovrmn3 ) ROM_REGION( 0x10000, "maincpu", 0 ) @@ -9216,6 +9293,8 @@ GAME( 199?, v4gldrshq, v4gldrsh, bwbvid, v4reno, mpu4vid_state, init_bwbh GAME( 199?, v4gldrshr, v4gldrsh, bwbvid, v4reno, mpu4vid_state, init_bwbhack, ROT0, "BWB","Gold Rush (BWB) (Release 8, Switchable 20p/10p/5p, Cash+Token) (Datapak) (MPU4 Video)",GAME_FLAGS ) GAME( 199?, v4gldrshs, v4gldrsh, bwbvid, v4reno, mpu4vid_state, init_bwbhack, ROT0, "BWB","Gold Rush (BWB) (Release 8, Switchable 20p/10p/5p, Cash+Token) (Showcase) (Datapak) (MPU4 Video)",GAME_FLAGS ) +GAME( 1994, v4gldrsh3, v4gldrsh, bwbvid, v4reno, mpu4vid_state, init_bwbhack, ROT0, "BWB","Gold Rush (BWB) (Release 3, 20p Fixed, Cash+Token) (MPU4 Video)",GAME_FLAGS ) + GAME( 199?, v4timebn, 0, bwbvid_oki, v4timebn, mpu4vid_state, init_bwbhack, ROT0, "BWB","Time Bandit (BWB) (Release 1, 20p Fixed, Cash + Tokens) (set 1) (MPU4 Video)",GAME_FLAGS ) GAME( 199?, v4timebna, v4timebn, bwbvid_oki, v4timebn, mpu4vid_state, init_bwbhack, ROT0, "BWB","Time Bandit (BWB) (Release 1, 20p Fixed, Cash + Tokens) (set 2) (MPU4 Video)",GAME_FLAGS ) @@ -9291,6 +9370,8 @@ GAME( 199?, v4montean, v4monte, bwbvid_oki, v4mdice, mpu4vid_state, init GAME( 199?, v4monteao, v4monte, bwbvid_oki, v4mdice, mpu4vid_state, init_bwbhack, ROT0, "BWB","Monte Carlo Or Bust (BWB) (Release ?, set 31) (MPU4 Video)",GAME_FLAGS ) // only have a single loose 68k ROM from this which doesn't match any other set GAME( 199?, v4montezz, v4monte, bwbvid_oki, v4mdice, mpu4vid_state, init_bwbhack, ROT0, "BWB","Monte Carlo Or Bust (BWB) (Release ?, set 32) (MPU4 Video)",GAME_FLAGS ) +// German Release +GAME( 199?, v4monteger, v4monte, bwbvid_oki, v4mdice, mpu4vid_state, init_bwbhack, ROT0, "BWB","Monte Carlo Or Bust (BWB) (German) (MPU4 Video)",GAME_FLAGS ) GAME( 1995, v4mdice, 0, bwbvid_oki, v4mdice, mpu4vid_state, init_bwbhack, ROT0, "BWB", u8"Miami Dice (BWB) (Release 8, S/Site Standard, 25p-£10 Cash - Fixed) (set 1) (MPU4 Video)",GAME_FLAGS ) @@ -9317,10 +9398,12 @@ GAME( 1995, v4mdicec, v4mdice, bwbvid_oki, v4mdice, mpu4vid_state, init_ GAME( 1995, v4mdicef, v4mdice, bwbvid_oki, v4mdice, mpu4vid_state, init_bwbhack, ROT0, "BWB", u8"Miami Dice (BWB) (Release 8, Arcade Standard, 20p-£8 Token - Fixed) (set 1) (MPU4 Video)",GAME_FLAGS ) GAME( 1995, v4mdiceh, v4mdice, bwbvid_oki, v4mdice, mpu4vid_state, init_bwbhack, ROT0, "BWB", u8"Miami Dice (BWB) (Release 8, Arcade Standard, 20p-£8 Token - Fixed) (set 2) (MPU4 Video)",GAME_FLAGS ) GAME( 1995, v4mdiceg, v4mdice, bwbvid_oki, v4mdice, mpu4vid_state, init_bwbhack, ROT0, "BWB", u8"Miami Dice (BWB) (Release 8, Arcade Showcase, 20p-£8 Token - Fixed) (set 3) (MPU4 Video)",GAME_FLAGS ) -// no base ROMs, only 68k ROMs dumped for Release 5 -GAME( 1995, v4mdice5, v4mdice, bwbvid_oki, v4mdice, mpu4vid_state, init_bwbhack, ROT0, "BWB","Miami Dice (BWB) (Release 5) (MPU4 Video)",GAME_FLAGS ) // no base ROM +// 'Release 6' +GAME( 1995, v4mdice6, v4mdice, bwbvid_oki, v4mdice, mpu4vid_state, init_bwbhack, ROT0, "BWB",u8"Miami Dice (BWB) (Release 6, Arcade Standard, 20p-£8 Token - Fixed) (MPU4 Video)", GAME_FLAGS ) +// 'Release 5' +GAME( 1995, v4mdice5, v4mdice, bwbvid_oki, v4mdice, mpu4vid_state, init_bwbhack, ROT0, "BWB",u8"Miami Dice (BWB) (Release 5, Arcade Showcase, 20p-£8 Token - Fixed) (MPU4 Video)",GAME_FLAGS ) // this is a German version of v4mdice, produced by Nova -GAME( 199?, v4mdiceger, v4mdice, bwbvid_oki, mpu4, mpu4vid_state, init_bwbhack, ROT0, "Nova","Miami Dice (Nova, German) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?, v4mdiceger, v4mdice, bwbvid_oki, mpu4, mpu4vid_state, init_bwbhack, ROT0, "BWB (Nova license)","Miami Dice (Nova, German) (MPU4 Video)",GAME_FLAGS ) // other issues @@ -9357,11 +9440,13 @@ GAME( 199?, v4frfactf, v4frfact, crmaze, crmaze, mpu4vid_state, init_v4f /* Nova - is this the same video board? One of the games displays 'Resetting' but the others do nothing interesting and access strange addresses */ /* All contain BWB video in the BIOS rom tho */ -/* These seem to use the other palette chip (BT471). and use the German BWB bank setup, so may need more work */ +/* These use the other palette chip (BT471). and have extra RAM. Cyber Casino also needs a Jackpot link? */ -GAME( 199?, v4cybcas, 0, bwbvid_oki_bt471_german, bwbvid, mpu4vid_state, init_cybcas, ROT0, "Nova","Cyber Casino (Nova, German) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?, v4cybcas, 0, bwbvid_oki_bt471_german, bwbvid, mpu4vid_state, init_cybcas, ROT0, "BWB (Nova license)","Cyber Casino (Nova, German) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?, v4missis, 0, bwbvid_oki_bt471_german, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "Nova","Mississippi Lady (Nova, German) (MPU4 Video)",GAME_FLAGS ) // different hardware type? extra ram on mpu4 side? +GAME( 199?, v4missis, 0, bwbvid_oki_bt471_german, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB (Nova license)","Mississippi Lady (Nova, German) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?, v4picdil, 0, bwbvid_oki_bt471_german, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "Nova","Piccadilly Nights (Nova, German) (MPU4 Video)",GAME_FLAGS ) // different hardware type? extra ram on mpu4 side? +GAME( 199?, v4picdil, 0, bwbvid_oki_bt471_german, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB (Nova license)","Piccadilly Night (Nova, German) (set 1) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?, v4picdila, v4picdil, bwbvid_oki_bt471_german, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB (Nova license)","Piccadilly Night (Nova, German) (set 2) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?, v4picdilz, v4picdil, bwbvid_oki_bt471_german, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB (Nova license)","Piccadilly Night (Nova, German) (set 3) (MPU4 Video)",GAME_FLAGS ) diff --git a/src/mame/mame.lst b/src/mame/mame.lst index b2c1965b50d..39948623536 100644 --- a/src/mame/mame.lst +++ b/src/mame/mame.lst @@ -29106,6 +29106,7 @@ v4gldrshr v4gldrshs v4gldrsht v4gldrshu +v4gldrsh3 v4mate // The Mating Game v4mated // v4mazbel // Mazooma Belle @@ -29136,11 +29137,12 @@ v4mdiceu v4mdicev v4mdicew v4mdice5 +v4mdiceger // Miami Dice +v4mdice6 v4megbuk // Megabucks Poker v4megbuka v4megbukb v4megbukc -v4mdiceger // Miami Dice v4missis // Mississippi Lady v4monte // Monte Carlo Or Bust v4montea @@ -29202,6 +29204,7 @@ v4monte9m v4monte9n v4monte9o v4montezz +v4monteger v4opt3 // Option 3 v4opt3d // v4ovrmn3 // Over Moon Pt3 @@ -29209,7 +29212,9 @@ v4ovrmn3a v4ovrmn3b v4ovrmn3c v4ovrmn3d -v4picdil // Piccadilly Nights +v4picdil // Piccadilly Night +v4picdila +v4picdilz v4psi // Prize Space Invaders v4psibc // v4psi14 //