trunk/src/mame/drivers/nightgal.cpp
| r253187 | r253188 | |
| 6 | 6 | |
| 7 | 7 | a.k.a. same Jangou blitter but with NCS CPU for displaying graphics as protection. |
| 8 | 8 | |
| 9 | | preliminary driver by David Haywood & Angelo Salese |
| 9 | driver by David Haywood & Angelo Salese |
| 10 | 10 | many thanks to Charles MacDonald for the schematics / documentation of this HW. |
| 11 | 11 | |
| 12 | 12 | TODO: |
| 13 | | -Night Gal Summer trips illegal opcodes on the NCS side, presumably a CPU bug; |
| 14 | | -Fix Sweet Gal/Sexy Gal gfxs if necessary (i.e. if the bugs aren't all caused by irq/nmi |
| 15 | | wrong firing); |
| 16 | | -Proper Z80<->MCU comms,many video problems because of that; |
| 17 | | -Abstract the video chip to a proper video file and get the name of that chip; |
| 18 | | -Minor graphic glitches in Royal Queen (cross hatch test, some little glitches during gameplay), |
| 19 | | presumably due of the unemulated wait states on the comms. |
| 20 | | |
| 21 | | Notes: |
| 22 | | -Night Gal Summer accesses the blitter in a weird fashion, perhaps it fails the ROM check |
| 23 | | due of address line encryption? |
| 24 | | Example snippet: |
| 25 | | 0 1 2 3 4 5 6 |
| 26 | | RH XX YY WW HH DD |
| 27 | | 70 00 40 80 07 06 00 x = 2 y = 3 srcl = 0 srch = 1 srcd = 6 |
| 28 | | DD YY RH WW HH XX |
| 29 | | 00 60 80 03 07 06 48 x = 6 y = 2 srcl = 1 srch = 3 srcd = 0 |
| 30 | | XX DD RH WW HH YY |
| 31 | | 50 00 04 28 07 06 80 x = 0 y = 6 srcl = 3 srch = 2 srcd = 1 |
| 32 | | YY XX DD WW HH RH |
| 33 | | 80 58 10 00 07 06 03 x = 1 y = 0 srcl = 2 srch = 6 srcd = 3 |
| 34 | | RH YY DD XX WW HH |
| 35 | | 02 80 00 68 07 06 a0 x = 3 y = 1 srcl = 6 srch = 0 srcd = 2 |
| 36 | | .. .. .. .. .. |
| 37 | | |
| 38 | | 48 03 78 80 07 06 00 (again) |
| 13 | - Night Gal Summer trips illegal opcodes on the NCS side, needs to check if bit-rotted or encrypted ROM; |
| 14 | - Fix Sweet Gal/Sexy Gal gfxs if necessary (i.e. if the bugs aren't all caused by irq/nmi wrong firing); |
| 15 | - unemulated WAIT pin for Z80, MCU asserts it when accessing communication RAM |
| 16 | - Abstract the video chip to a proper video file and get the name of that chip; |
| 17 | - Minor graphic glitches in Royal Queen (cross hatch test, some little glitches during gameplay), |
| 18 | presumably due of the unemulated wait states on the comms. |
| 39 | 19 | |
| 40 | 20 | *******************************************************************************************/ |
| 41 | 21 | |
| r253187 | r253188 | |
| 1242 | 1222 | ROM_LOAD( "10.3v", 0x04000, 0x02000, CRC(31211088) SHA1(960b781c420602be3de66565a030cf5ebdcc2ffb) ) |
| 1243 | 1223 | |
| 1244 | 1224 | ROM_REGION( 0x10000, "sub", 0 ) |
| 1245 | | ROM_LOAD( "7.3p", 0x0c000, 0x02000, CRC(20c55a25) SHA1(9dc88cb6c016b594264f7272d4fd5f30567e7c5d) ) |
| 1225 | ROM_LOAD( "7.3p", 0x0c000, 0x02000, BAD_DUMP CRC(20c55a25) SHA1(9dc88cb6c016b594264f7272d4fd5f30567e7c5d) ) // either encrypted or bit-rotted. |
| 1246 | 1226 | |
| 1247 | 1227 | ROM_REGION( 0xc000, "samples", 0 ) |
| 1248 | 1228 | ROM_LOAD( "1s.ic7", 0x00000, 0x04000, CRC(47ad8a0f) SHA1(e3b1e13f0a5c613bd205338683bef8d005b54830) ) |
| r253187 | r253188 | |
| 1274 | 1254 | { |
| 1275 | 1255 | UINT8 *ROM = memregion("sub")->base(); |
| 1276 | 1256 | |
| 1277 | | /* patch protection */ |
| 1278 | | ROM[0xd6ce] = 0x02; |
| 1279 | | ROM[0xd6cf] = 0x02; |
| 1257 | /* patch blantantly wrong ROM checks */ |
| 1258 | //ROM[0xd6ce] = 0x02; |
| 1259 | //ROM[0xd6cf] = 0x02; |
| 1260 | // adcx $05 converted to 0x04 for debug purposes |
| 1261 | ROM[0xd782] = 0x04; |
| 1262 | //ROM[0xd655] = 0x20; |
| 1263 | //ROM[0xd3f9] = 0x02; |
| 1264 | //ROM[0xd3fa] = 0x02; |
| 1265 | //ROM[0xd3a0] = 0x02; |
| 1280 | 1266 | } |
| 1281 | 1267 | |
| 1282 | 1268 | /* Type 1 HW */ |