STDMETHODIMP CRom::Audit(VARIANT_BOOL fStrict) { int err; char szHash[256]; lstrcpy(szHash, fStrict?"":ROM_GETHASHDATA(m_rom)); /* obtain CRC-32 and length of ROM file */ const struct GameDriver *drv = m_gamedrv; do { err = mame_fchecksum(drv->name, m_pszName, (unsigned int*) &m_dwLength, szHash); drv = drv->clone_of; } while (err && drv); if (err) { if (!m_dwChecksum) /* not found but it's not good anyway */ m_dwState = AUD_NOT_AVAILABLE; else /* not found */ m_dwState = AUD_ROM_NOT_FOUND; } else { m_dwChecksum = GetChecksumFromHash(szHash); /* all cases below assume the ROM was at least found */ if (m_dwExpLength != m_dwLength) m_dwState = AUD_LENGTH_MISMATCH; else if (m_dwExpChecksum != m_dwChecksum) { if (!m_dwExpChecksum) m_dwState = AUD_ROM_NEED_DUMP; /* new case - found but not known to be dumped */ else if (m_dwChecksum == BADCRC(m_dwExpChecksum)) m_dwState = AUD_ROM_NEED_REDUMP; else m_dwState = AUD_BAD_CHECKSUM; } else m_dwState = AUD_ROM_GOOD; } return S_OK; }
Game driver(s) ***************************************************************************/ ROM_START( kicknrun ) ROM_REGION( 0x28000, REGION_CPU1 ) /* 196k for code */ ROM_LOAD( "a87-08.bin", 0x00000, 0x08000, 0x715e1b04 ) /* 1st half, main code */ ROM_CONTINUE( 0x20000, 0x08000 ) /* 2nd half, banked at 0x8000 */ ROM_LOAD( "a87-07.bin", 0x10000, 0x10000, 0x6cb6ebfe ) /* banked at 0x8000 */ ROM_REGION( 0x10000, REGION_CPU2 ) /* 64k for the audio cpu */ ROM_LOAD( "a87-06.bin", 0x0000, 0x8000, 0x1625b587 ) ROM_REGION( 0x0800, REGION_CPU3 ) /* 2k for the microcontroller */ ROM_LOAD( "knrmcu.bin", 0x0000, 0x0800, BADCRC(0x8e821fa0) ) /* manually crafted from the Mexico '86 one */ ROM_REGION( 0x40000, REGION_GFX1 | REGIONFLAG_DISPOSE ) ROM_LOAD( "a87-05.bin", 0x08000, 0x08000, 0x4eee3a8a ) ROM_CONTINUE( 0x00000, 0x08000 ) ROM_LOAD( "a87-04.bin", 0x10000, 0x08000, 0x8b438d20 ) ROM_RELOAD( 0x18000, 0x08000 ) ROM_LOAD( "a87-03.bin", 0x28000, 0x08000, 0xf42e8a88 ) ROM_CONTINUE( 0x20000, 0x08000 ) ROM_LOAD( "a87-02.bin", 0x30000, 0x08000, 0x64f1a85f ) ROM_RELOAD( 0x38000, 0x08000 ) ROM_REGION( 0x0300, REGION_PROMS ) ROM_LOAD( "a87-10.bin", 0x0000, 0x0100, 0xbe6eb1f0 ) ROM_LOAD( "a87-12.bin", 0x0100, 0x0100, 0x3e953444 ) ROM_LOAD( "a87-11.bin", 0x0200, 0x0100, 0x14f6c28d )
ROM_LOAD( "ai_cpu_6.rom", 0x1400, 0x0400, 0xeb338863 ) ROM_LOAD( "ai_cpu_7.rom", 0x1800, 0x0400, 0x16dcfea4 ) ROM_REGION( 0x0400, REGION_PROMS ) ROM_LOAD( "ai_vid_c.rom", 0x0000, 0x0400, 0xb45287ff ) ROM_END ROM_START( kamikaze ) ROM_REGION( 0x10000, REGION_CPU1 ) /* 64k for code */ ROM_LOAD( "km01", 0x0000, 0x0800, 0x8aae7414 ) ROM_LOAD( "km02", 0x0800, 0x0800, 0x6c7a2beb ) ROM_LOAD( "km03", 0x1000, 0x0800, 0x3e8dedb6 ) ROM_LOAD( "km04", 0x1800, 0x0800, 0x494e1f6d ) ROM_REGION( 0x0400, REGION_PROMS ) ROM_LOAD( "ai_vid_c.rom", 0x0000, 0x0400, BADCRC(0xb45287ff) ) ROM_END ROM_START( spaceint ) ROM_REGION( 0x10000, REGION_CPU1 ) /* 64k for code */ ROM_LOAD( "1", 0x0000, 0x0400, 0x184314d2 ) ROM_LOAD( "2", 0x0400, 0x0400, 0x55459aa1 ) ROM_LOAD( "3", 0x0800, 0x0400, 0x9d6819be ) ROM_LOAD( "4", 0x0c00, 0x0400, 0x432052d4 ) ROM_LOAD( "5", 0x1000, 0x0400, 0xc6cfa650 ) ROM_LOAD( "6", 0x1400, 0x0400, 0xc7ccf40f ) ROM_REGION( 0x0100, REGION_PROMS ) ROM_LOAD( "clr", 0x0000, 0x0100, 0x13c1803f ) ROM_END
int readroms(void) { int region; const struct RomModule *romp; int warning = 0; int fatalerror = 0; int total_roms,current_rom; char buf[4096] = ""; total_roms = current_rom = 0; romp = Machine->gamedrv->rom; if (!romp) return 0; while (romp->name || romp->offset || romp->length) { if (romp->name && romp->name != (char *)-1) total_roms++; romp++; } romp = Machine->gamedrv->rom; for (region = 0;region < MAX_MEMORY_REGIONS;region++) Machine->memory_region[region] = 0; region = 0; while (romp->name || romp->offset || romp->length) { unsigned int region_size; const char *name; /* Mish: An 'optional' rom region, only loaded if sound emulation is turned on */ if (Machine->sample_rate==0 && (romp->crc & REGIONFLAG_SOUNDONLY)) { logerror("readroms(): Ignoring rom region %d\n",region); Machine->memory_region_type[region] = romp->crc; region++; romp++; while (romp->name || romp->length) romp++; continue; } if (romp->name || romp->length) { printf("Error in RomModule definition: expecting ROM_REGION\n"); goto getout; } region_size = romp->offset; if ((Machine->memory_region[region] = (unsigned char *) malloc(region_size)) == 0) { printf("readroms(): Unable to allocate %d bytes of RAM\n",region_size); goto getout; } Machine->memory_region_length[region] = region_size; Machine->memory_region_type[region] = romp->crc; /* some games (i.e. Pleiades) want the memory clear on startup */ if (region_size <= 0x400000) /* don't clear large regions which will be filled anyway */ memset(Machine->memory_region[region],0,region_size); romp++; while (romp->length) { void *f; int expchecksum = romp->crc; int explength = 0; if (romp->name == 0) { printf("Error in RomModule definition: ROM_CONTINUE not preceded by ROM_LOAD\n"); goto getout; } else if (romp->name == (char *)-1) { printf("Error in RomModule definition: ROM_RELOAD not preceded by ROM_LOAD\n"); goto getout; } name = romp->name; /* update status display */ if (osd_display_loading_rom_message(name,++current_rom,total_roms) != 0) goto getout; { const struct GameDriver *drv; drv = Machine->gamedrv; do { f = osd_fopen(drv->name,name,OSD_FILETYPE_ROM,0); drv = drv->clone_of; } while (f == 0 && drv); if (f == 0) { /* NS981003: support for "load by CRC" */ char crc[9]; sprintf(crc,"%08x",romp->crc); drv = Machine->gamedrv; do { f = osd_fopen(drv->name,crc,OSD_FILETYPE_ROM,0); drv = drv->clone_of; } while (f == 0 && drv); } } if (f) { do { unsigned char *c; unsigned int i; int length = romp->length & ~ROMFLAG_MASK; if (romp->name == (char *)-1) osd_fseek(f,0,SEEK_SET); /* ROM_RELOAD */ else explength += length; if (romp->offset + length > region_size || (!(romp->length & ROMFLAG_NIBBLE) && (romp->length & ROMFLAG_ALTERNATE) && (romp->offset&~1) + 2*length > region_size)) { printf("Error in RomModule definition: %s out of memory region space\n",name); osd_fclose(f); goto getout; } if (romp->length & ROMFLAG_NIBBLE) { unsigned char *temp; temp = (unsigned char *) malloc(length); if (!temp) { printf("Out of memory reading ROM %s\n",name); osd_fclose(f); goto getout; } if (osd_fread(f,temp,length) != length) { printf("Unable to read ROM %s\n",name); } /* ROM_LOAD_NIB_LOW and ROM_LOAD_NIB_HIGH */ c = Machine->memory_region[region] + romp->offset; if (romp->length & ROMFLAG_ALTERNATE) { /* Load into the high nibble */ for (i = 0;i < length;i ++) { c[i] = (c[i] & 0x0f) | ((temp[i] & 0x0f) << 4); } } else { /* Load into the low nibble */ for (i = 0;i < length;i ++) { c[i] = (c[i] & 0xf0) | (temp[i] & 0x0f); } } free(temp); } else if (romp->length & ROMFLAG_ALTERNATE) { /* ROM_LOAD_EVEN and ROM_LOAD_ODD */ /* copy the ROM data */ #ifdef LSB_FIRST c = Machine->memory_region[region] + (romp->offset ^ 1); #else c = Machine->memory_region[region] + romp->offset; #endif if (osd_fread_scatter(f,c,length,2) != length) { printf("Unable to read ROM %s\n",name); } } else if (romp->length & ROMFLAG_QUAD) { static int which_quad=0; /* This is multi session friendly, as we only care about the modulus */ unsigned char *temp; int base=0; temp = (unsigned char *) malloc(length); /* Need to load rom to temporary space */ osd_fread(f,temp,length); /* Copy quad to region */ c = Machine->memory_region[region] + romp->offset; #ifdef LSB_FIRST switch (which_quad%4) { case 0: base=1; break; case 1: base=0; break; case 2: base=3; break; case 3: base=2; break; } #else switch (which_quad%4) { case 0: base=0; break; case 1: base=1; break; case 2: base=2; break; case 3: base=3; break; } #endif for (i=base; i< length*4; i += 4) c[i]=temp[i/4]; which_quad++; free(temp); } else { int wide = romp->length & ROMFLAG_WIDE; #ifdef LSB_FIRST int swap = (romp->length & ROMFLAG_SWAP) ^ ROMFLAG_SWAP; #else int swap = romp->length & ROMFLAG_SWAP; #endif osd_fread(f,Machine->memory_region[region] + romp->offset,length); /* apply swappage */ c = Machine->memory_region[region] + romp->offset; if (wide && swap) { for (i = 0; i < length; i += 2) { int temp = c[i]; c[i] = c[i+1]; c[i+1] = temp; } } } romp++; } while (romp->length && (romp->name == 0 || romp->name == (char *)-1)); if (explength != osd_fsize (f)) { sprintf (&buf[strlen(buf)], "%-12s WRONG LENGTH (expected: %08x found: %08x)\n", name,explength,osd_fsize(f)); warning = 1; } if (expchecksum != osd_fcrc (f)) { warning = 1; if (expchecksum == 0) sprintf(&buf[strlen(buf)],"%-12s NO GOOD DUMP KNOWN\n",name); else if (expchecksum == BADCRC(osd_fcrc(f))) sprintf(&buf[strlen(buf)],"%-12s ROM NEEDS REDUMP\n",name); else sprintf(&buf[strlen(buf)], "%-12s WRONG CRC (expected: %08x found: %08x)\n", name,expchecksum,osd_fcrc(f)); } osd_fclose(f); } else if (romp->length & ROMFLAG_OPTIONAL) { sprintf (&buf[strlen(buf)], "OPTIONAL %-12s NOT FOUND\n",name); romp ++; } else { /* allow for a NO GOOD DUMP KNOWN rom to be missing */ if (expchecksum == 0) { sprintf (&buf[strlen(buf)], "%-12s NOT FOUND (NO GOOD DUMP KNOWN)\n",name); warning = 1; } else { sprintf (&buf[strlen(buf)], "%-12s NOT FOUND\n",name); fatalerror = 1; } do { if (fatalerror == 0) { int i; /* fill space with random data */ if (romp->length & ROMFLAG_ALTERNATE) { unsigned char *c; /* ROM_LOAD_EVEN and ROM_LOAD_ODD */ #ifdef LSB_FIRST c = Machine->memory_region[region] + (romp->offset ^ 1); #else c = Machine->memory_region[region] + romp->offset; #endif for (i = 0;i < (romp->length & ~ROMFLAG_MASK);i++) c[2*i] = rand(); } else { for (i = 0;i < (romp->length & ~ROMFLAG_MASK);i++) Machine->memory_region[region][romp->offset + i] = rand(); } } romp++; } while (romp->length && (romp->name == 0 || romp->name == (char *)-1)); } } region++; } /* final status display */ osd_display_loading_rom_message(0,current_rom,total_roms); if (warning || fatalerror) { extern int bailing; if (fatalerror) { strcat (buf, "ERROR: required files are missing, the game cannot be run.\n"); bailing = 1; } else strcat (buf, "WARNING: the game might not run correctly.\n"); printf ("%s", buf); if (!options.gui_host && !bailing) { printf ("Press any key to continue\n"); keyboard_read_sync(); if (keyboard_pressed(KEYCODE_LCONTROL) && keyboard_pressed(KEYCODE_C)) return 1; } } if (fatalerror) return 1; else return 0; getout: /* final status display */ osd_display_loading_rom_message(0,current_rom,total_roms); for (region = 0;region < MAX_MEMORY_REGIONS;region++) { free(Machine->memory_region[region]); Machine->memory_region[region] = 0; } return 1; }
ROM_REGION( 0x10000, REGION_CPU1 ) /* 64k for code */ ROM_LOAD( "pap3.1d", 0xa000, 0x2000, 0x20a07d3d ) ROM_LOAD( "pap3.1c", 0xc000, 0x2000, 0x505bae56 ) ROM_LOAD( "pap11b.cpu", 0xe000, 0x2000, 0x3cac401c ) ROM_REGION( 0x10000, REGION_CPU2 ) /* 64k for the second CPU */ ROM_LOAD( "pap14.cpu", 0xf000, 0x1000, 0x330e20de ) ROM_REGION( 0x1000, REGION_GFX1 | REGIONFLAG_DISPOSE ) ROM_LOAD( "pap2.3c", 0x0000, 0x1000, 0x93d15c30 ) ROM_REGION( 0x2000, REGION_GFX2 | REGIONFLAG_DISPOSE ) ROM_LOAD( "pap2.3f", 0x0000, 0x2000, 0x39f44aa4 ) ROM_REGION( 0x0220, REGION_PROMS ) ROM_LOAD( "papi6.vid", 0x0000, 0x0020, BADCRC( 0x52634b41 ) ) /* palette */ ROM_LOAD( "papi5.vid", 0x0020, 0x0100, BADCRC( 0xac46203c ) ) /* chars */ ROM_LOAD( "papi4.vid", 0x0120, 0x0100, BADCRC( 0x686bde84 ) ) /* sprites */ ROM_REGION( 0x0100, REGION_SOUND1 ) /* sound prom */ ROM_LOAD( "papi3.cpu", 0x0000, 0x0100, 0x83c31a98 ) ROM_END GAME( 1982, superpac, 0, superpac, superpac, 0, ROT90, "Namco", "Super Pac-Man" ) GAME( 1982, superpcm, superpac, superpac, superpac, 0, ROT90, "[Namco] (Bally Midway license)", "Super Pac-Man (Midway)" ) GAME( 1983, pacnpal, 0, pacnpal, pacnpal, 0, ROT90, "Namco", "Pac & Pal" ) GAME( 1983, pacnpal2, pacnpal, pacnpal, pacnpal, 0, ROT90, "Namco", "Pac & Pal (older)" ) GAMEX(1983, pacnchmp, pacnpal, pacnpal, pacnpal, 0, ROT90, "Namco", "Pac-Man & Chomp Chomp", GAME_IMPERFECT_COLORS )
ROM_LOAD( "hydr1039.bin", 0x20000, 0x10000, 0xeb9eaeb7 ) ROM_END ROM_START( hydrap ) ROM_REGION( 0x80000, REGION_CPU1 ) /* 8*64k for 68000 code */ ROM_LOAD_EVEN( "hydhi0.bin", 0x00000, 0x10000, 0xdab2e8a2 ) ROM_LOAD_ODD ( "hydlo0.bin", 0x00000, 0x10000, 0xc18d4f16 ) ROM_LOAD_EVEN( "hydhi1.bin", 0x20000, 0x10000, 0x50c12bb9 ) ROM_LOAD_ODD ( "hydlo1.bin", 0x20000, 0x10000, 0x5ee0a846 ) ROM_LOAD_EVEN( "hydhi2.bin", 0x40000, 0x10000, 0x436a6d81 ) ROM_LOAD_ODD ( "hydlo2.bin", 0x40000, 0x10000, 0x182bfd6a ) ROM_LOAD_EVEN( "hydhi3.bin", 0x60000, 0x10000, 0x29e9e03e ) ROM_LOAD_ODD ( "hydlo3.bin", 0x60000, 0x10000, 0x7b5047f0 ) ROM_REGION( 0x14000, REGION_CPU2 ) /* 64k for 6502 code */ ROM_LOAD( "hydraa0.bin", 0x10000, 0x4000, BADCRC(0x619d7319) ) ROM_CONTINUE( 0x04000, 0xc000 ) ROM_REGION( 0x0a0000, REGION_GFX1 | REGIONFLAG_DISPOSE ) ROM_LOAD( "hydr1017.bin", 0x000000, 0x10000, 0xbd77b747 ) /* playfield, planes 0-3 odd */ ROM_LOAD( "hydr1018.bin", 0x010000, 0x10000, 0x7c24e637 ) ROM_LOAD( "hydr1019.bin", 0x020000, 0x10000, 0xaa2fb07b ) ROM_LOAD( "hydpl03.bin", 0x030000, 0x10000, 0x1f0dfe60 ) ROM_LOAD( "hydr1021.bin", 0x040000, 0x10000, 0xf88cdac2 ) /* playfield, planes 0-3 even */ ROM_LOAD( "hydr1022.bin", 0x050000, 0x10000, 0xa9c612ff ) ROM_LOAD( "hydr1023.bin", 0x060000, 0x10000, 0xb706aa6e ) ROM_LOAD( "hydphi3.bin", 0x070000, 0x10000, 0x917e250c ) ROM_LOAD( "hydr1025.bin", 0x080000, 0x10000, 0x98b5b1a1 ) /* playfield plane 4 */ ROM_LOAD( "hydpl41.bin", 0x090000, 0x10000, 0x85f9afa6 ) ROM_REGION( 0x020000, REGION_GFX2 | REGIONFLAG_DISPOSE )
/* Bootleg */ ROM_START( exctsccb ) ROM_REGION( 0x10000, REGION_CPU1 ) /* 64k for code */ ROM_LOAD( "es-1.e2", 0x0000, 0x2000, 0x997c6a82 ) ROM_LOAD( "es-2.g2", 0x2000, 0x2000, 0x5c66e792 ) ROM_LOAD( "es-3.h2", 0x4000, 0x2000, 0xe0d504c0 ) ROM_REGION( 0x10000, REGION_CPU2 ) /* sound */ ROM_LOAD( "es-a.k2", 0x0000, 0x2000, 0x99e87b78 ) ROM_LOAD( "es-b.l2", 0x2000, 0x2000, 0x8b3db794 ) ROM_LOAD( "es-c.m2", 0x4000, 0x2000, 0x7bed2f81 ) ROM_REGION( 0x06000, REGION_GFX1 | REGIONFLAG_DISPOSE ) /* I'm using the ROMs from exctscc2, national flags would be wrong otherwise */ ROM_LOAD( "vr.5a", 0x0000, 0x2000, BADCRC( 0x4ff1783d ) ) ROM_LOAD( "vr.5b", 0x2000, 0x2000, BADCRC( 0x5605b60b ) ) ROM_LOAD( "vr.5c", 0x4000, 0x2000, BADCRC( 0x1fb84ee6 ) ) ROM_REGION( 0x02000, REGION_GFX2 | REGIONFLAG_DISPOSE ) ROM_LOAD( "vr.5k", 0x0000, 0x1000, BADCRC( 0x1d37edfa ) ) ROM_LOAD( "vr.5l", 0x1000, 0x1000, BADCRC( 0xb97f396c ) ) ROM_REGION( 0x0220, REGION_PROMS ) ROM_LOAD( "prom1.e1", 0x0000, 0x0020, 0xd9b10bf0 ) /* palette */ ROM_LOAD( "prom2.8r", 0x0020, 0x0100, 0x8a9c0edf ) /* lookup table */ ROM_LOAD( "prom3.k5", 0x0120, 0x0100, 0xb5db1c2c ) /* lookup table */ ROM_END ROM_START( exctscc2 ) ROM_REGION( 0x10000, REGION_CPU1 ) /* 64k for code */
ROM_LOAD( "im5623.3p", 0x0000, 0x0100, 0x4bad7017 ) ROM_LOAD( "im5623.2m", 0x0100, 0x0100, 0x77245b66 ) /* timing - not used */ ROM_END ROM_START( nrallyx ) ROM_REGION( 0x10000, REGION_CPU1 ) /* 64k for code */ ROM_LOAD( "nrallyx.1b", 0x0000, 0x1000, 0x9404c8d6 ) ROM_LOAD( "nrallyx.1e", 0x1000, 0x1000, 0xac01bf3f ) ROM_LOAD( "nrallyx.1h", 0x2000, 0x1000, 0xaeba29b5 ) ROM_LOAD( "nrallyx.1k", 0x3000, 0x1000, 0x78f17da7 ) ROM_REGION( 0x1000, REGION_GFX1 | REGIONFLAG_DISPOSE ) ROM_LOAD( "nrallyx.8e", 0x0000, 0x1000, 0xca7a174a ) ROM_REGION( 0x0100, REGION_GFX2 | REGIONFLAG_DISPOSE ) ROM_LOAD( "im5623.8m", 0x0000, 0x0100, BADCRC( 0x3c16f62c ) ) /* dots */ ROM_REGION( 0x0120, REGION_PROMS ) ROM_LOAD( "nrallyx.pr1", 0x0000, 0x0020, 0xa0a49017 ) ROM_LOAD( "nrallyx.pr2", 0x0020, 0x0100, 0xb2b7ca15 ) ROM_REGION( 0x0200, REGION_SOUND1 ) /* sound proms */ ROM_LOAD( "nrallyx.spr", 0x0000, 0x0100, 0xb75c4e87 ) ROM_LOAD( "im5623.2m", 0x0100, 0x0100, 0x77245b66 ) /* timing - not used */ ROM_END GAME( 1980, rallyx, 0, rallyx, rallyx, 0, ROT0, "Namco", "Rally X" ) GAME( 1980, rallyxm, rallyx, rallyx, rallyx, 0, ROT0, "[Namco] (Midway license)", "Rally X (Midway)" ) GAME( 1981, nrallyx, 0, rallyx, nrallyx, 0, ROT0, "Namco", "New Rally X" )
ROM_LOAD( "ninjemak.17", 0x08000, 0x8000, 0xa3efd0fc ) ROM_LOAD( "ninjemak.14", 0x10000, 0x8000, 0xbff332d3 ) ROM_LOAD( "ninjemak.15", 0x18000, 0x8000, 0x56430ed4 ) ROM_REGION( 0x8000, REGION_GFX4 ) /* background tilemaps */ ROM_LOAD( "ninjemak.7", 0x0000, 0x4000, 0x80c20d36 ) ROM_LOAD( "ninjemak.6", 0x4000, 0x4000, 0x1da7a651 ) ROM_REGION( 0x4000, REGION_GFX5 ) /* data for mcu/blitter? */ ROM_LOAD( "ninjemak.5", 0x0000, 0x4000, 0x5f91dd30 ) /* text layer data */ ROM_REGION( 0x0500, REGION_PROMS ) /* Region 3 - color data */ ROM_LOAD( "ninjemak.pr1", 0x0000, 0x0100, 0x8a62d4e4 ) /* red */ ROM_LOAD( "ninjemak.pr2", 0x0100, 0x0100, 0x2ccf976f ) /* green */ ROM_LOAD( "ninjemak.pr3", 0x0200, 0x0100, 0x16b2a7a4 ) /* blue */ ROM_LOAD( "yncp-2d.bin", 0x0300, 0x0100, BADCRC( 0x23bade78 ) ) /* sprite lookup table */ ROM_LOAD( "yncp-7f.bin", 0x0400, 0x0100, BADCRC( 0x262d0809 ) ) /* sprite palette bank */ ROM_END ROM_START( youma ) ROM_REGION( 0x18000, REGION_CPU1 ) /* main cpu code */ ROM_LOAD( "ync-1.bin", 0x00000, 0x8000, 0x0552adab ) ROM_LOAD( "ync-2.bin", 0x08000, 0x4000, 0xf961e5e6 ) ROM_LOAD( "ync-3.bin", 0x10000, 0x8000, 0x9ad50a5e ) ROM_REGION( 0x10000, REGION_CPU2 ) /* sound cpu code */ ROM_LOAD( "ninjemak.12", 0x0000, 0x4000, 0x3d1cd329 ) ROM_LOAD( "ninjemak.13", 0x4000, 0x8000, 0xac3a0b81 ) ROM_REGION( 0x08000, REGION_GFX1 | REGIONFLAG_DISPOSE ) ROM_LOAD( "ync-4.bin", 0x00000, 0x8000, 0xa1954f44 ) /* chars */
ROM_REGION( 0x2000, REGION_GFX1, ROMREGION_DISPOSE ) ROM_LOAD( "mpw-e.3e", 0x0000, 0x1000, 0xf56e01fe ) /* chars */ ROM_LOAD( "mpw-e.3f", 0x1000, 0x1000, 0xcaaba2d9 ) ROM_REGION( 0x2000, REGION_GFX2, ROMREGION_DISPOSE ) ROM_LOAD( "mp-b.3m", 0x0000, 0x1000, 0x707ace5e ) /* sprites */ ROM_LOAD( "mp-b.3n", 0x1000, 0x1000, 0x9b72133a ) ROM_REGION( 0x1000, REGION_GFX3, ROMREGION_DISPOSE ) ROM_LOAD( "mp-e.3l", 0x0000, 0x1000, 0xc46a7f72 ) /* background graphics */ ROM_REGION( 0x1000, REGION_GFX4, ROMREGION_DISPOSE ) ROM_LOAD( "mp-e.3k", 0x0000, 0x1000, 0xc7aa1fb0 ) ROM_REGION( 0x1000, REGION_GFX5, ROMREGION_DISPOSE ) ROM_LOAD( "mp-e.3h", 0x0000, 0x1000, 0xa0919392 ) ROM_REGION( 0x0240, REGION_PROMS, 0 ) /* the palette PROM is wrong: the Williams logo is painted in all black */ ROM_LOAD( "2a", 0x0000, 0x0100, BADCRC( 0x0f193a50 ) ) /* character palette */ ROM_LOAD( "1m", 0x0100, 0x0020, 0x6a57eff2 ) /* background palette */ ROM_LOAD( "1c1j", 0x0120, 0x0020, 0x26979b13 ) /* sprite palette */ ROM_LOAD( "2hx", 0x0140, 0x0100, 0x7ae4cd97 ) /* sprite lookup table */ ROM_END GAME( 1982, mpatrol, 0, mpatrol, mpatrol, 0, ROT0, "Irem", "Moon Patrol" ) GAME( 1982, mpatrolw, mpatrol, mpatrol, mpatrolw, 0, ROT0, "Irem (Williams license)", "Moon Patrol (Williams)" )