diff options
Diffstat (limited to 'src/mame/drivers/namconb1.c')
-rw-r--r-- | src/mame/drivers/namconb1.c | 1412 |
1 files changed, 1412 insertions, 0 deletions
diff --git a/src/mame/drivers/namconb1.c b/src/mame/drivers/namconb1.c new file mode 100644 index 00000000000..01c3efe6fe2 --- /dev/null +++ b/src/mame/drivers/namconb1.c @@ -0,0 +1,1412 @@ +/* +Namco System NB-1 + +Notes: +- tilemap system is identical to Namco System2 + +ToDo: +- gunbulet force feedback +- MCU simulation (coin/inputs) is incomplete; it doesn't handle coinage +- sound support + +Main CPU : Motorola 68020 32-bit processor @ 25MHz +Secondary CPUs : C329 + 137 (both custom) +Custom Graphics Chips : GFX:123,145,156,C116 - Motion Objects:C355,187,C347 +Sound CPU : C351 (custom) +PCM Sound chip : C352 (custom) +I/O Chip : 160 (custom) +Board composition : Single board + +Known games using this hardware: +- Great Sluggers '93 +- Great Sluggers '94 +- Gun Bullet / Point Blank +- Nebulas Ray +- Super World Stadium '95 +- Super World Stadium '96 +- Super World Stadium '97 +- OutFoxies +- Mach Breakers + +***************************************************** + +Gun Bullet (JPN Ver.) +(c)1994 Namco +KeyCus.:C386 + +Note: CPU - Main PCB (NB-1) + MEM - MEMEXT OBJ8 PCB at J103 on the main PCB + SPR - MEMEXT SPR PCB at location 5B on the main PCB + + - Namco main PCB: NB-1 8634961101, (8634963101) + - MEMEXT OBJ8 PCB: 8635902201, (8635902301) + + * - Surface mounted ROMs + # - 32 pin DIP Custom IC (16bytes x 16-bit) + +Brief hardware overview +----------------------- + +Main processor - MC68EC020FG25 25MHz (100 pin PQFP) + - C329 custom (100 pin PQFP) + - 137 custom PLD (28 pin NDIP) + - C366 Key Custom + +Sound processor - C351 custom (160 pin PQFP) + (PCM) - C352 custom (100 pin PQFP) + (control inputs) - 160 custom (80 pin PQFP) + +GFX - 123 custom (80 pin PQFP) + - 145 custom (80 pin PQFP) + - 156 custom (64 pin PQFP) + - C116 custom (80 pin PQFP) + +Motion Objects - C355 custom (160 pin PQFP) + - 187 custom (160 pin PQFP) + - C347 custom (80 pin PQFP) + +PCB Jumper Settings +------------------- + +Location Setting Alt. Setting +---------------------------------------- + JP1 1M 4M + JP2 4M 1M + JP5 <1M 1M + JP6 8M >8M + JP7 4M 1M + JP8 4M 1M + JP9 cON cOFF + JP10 24M (MHz) 12M (MHz) + JP11 24M (MHz) 28M (MHz) + JP12 355 F32 + +***************************************************** + +Super World Stadium '95 (JPN Ver.) +(c)1986-1993 1995 Namco + +Namco NB-1 system + +KeyCus.:C393 + +***************************************************** + +Super World Stadium '96 (JPN Ver.) +(c)1986-1993 1995 1996 Namco + +Namco NB-1 system + +KeyCus.:C426 + +***************************************************** + +Super World Stadium '97 (JPN Ver.) +(c)1986-1993 1995 1996 1997 Namco + +Namco NB-1 system + +KeyCus.:C434 + +***************************************************** + +Great Sluggers Featuring 1994 Team Rosters +(c)1993 1994 Namco / 1994 MLBPA + +Namco NB-1 system + +KeyCus.:C359 + +***************************************************** + +-------------------------- +Nebulasray by NAMCO (1994) +-------------------------- +Location Device File ID Checksum +------------------------------------------------- +CPU 13B 27C402 NR1-MPRU B0ED [ MAIN PROG ] +CPU 15B 27C240 NR1-MPRL 90C4 [ MAIN PROG ] +SPR 27C1024 NR1-SPR0 99A6 [ SOUND PRG ] +CPU 5M MB834000B NR1-SHA0 DD59 [ SHAPE ] +CPU 8J MB838000B NR1-CHR0 22A4 [ CHARACTER ] +CPU 9J MB838000B NR1-CHR1 19D0 [ CHARACTER ] +CPU 10J MB838000B NR1-CHR2 B524 [ CHARACTER ] +CPU 11J MB838000B NR1-CHR3 0AF4 [ CHARACTER ] +CPU 5J KM2316000 NR1-VOI0 8C41 [ VOICE ] +MEM IC1 MT26C1600 * NR1-OBJ0L FD7C [ MOTION OBJL ] +MEM IC3 MT26C1600 * NR1-OBJ1L 7069 [ MOTION OBJL ] +MEM IC5 MT26C1600 * NR1-OBJ2L 07DC [ MOTION OBJL ] +MEM IC7 MT26C1600 * NR1-OBJ3L A61E [ MOTION OBJL ] +MEM IC2 MT26C1600 * NR1-OBJ0U 44D3 [ MOTION OBJU ] +MEM IC4 MT26C1600 * NR1-OBJ1U F822 [ MOTION OBJU ] +MEM IC6 MT26C1600 * NR1-OBJ2U DD24 [ MOTION OBJU ] +MEM IC8 MT26C1600 * NR1-OBJ3U F750 [ MOTION OBJU ] +CPU 11D Custom # C366.BIN 1C93 [ KEYCUSTUM ] + +Note: CPU - Main PCB (NB-1) + MEM - MEMEXT OBJ8 PCB at J103 on the main PCB + SPR - MEMEXT SPR PCB at location 5B on the main PCB + + - Namco main PCB: NB-1 8634961101, (8634963101) + - MEMEXT OBJ8 PCB: 8635902201, (8635902301) + + * - Surface mounted ROMs + # - 32 pin DIP Custom IC (16bytes x 16-bit) + +Brief hardware overview +----------------------- + +Main processor - MC68EC020FG25 25MHz (100 pin PQFP) + - C329 custom (100 pin PQFP) + - 137 custom PLD (28 pin NDIP) + - C366 Key Custom + +Sound processor - C351 custom (160 pin PQFP) + (PCM) - C352 custom (100 pin PQFP) + (control inputs) - 160 custom (80 pin PQFP) + +GFX - 123 custom (80 pin PQFP) + - 145 custom (80 pin PQFP) + - 156 custom (64 pin PQFP) + - C116 custom (80 pin PQFP) + +Motion Objects - C355 custom (160 pin PQFP) + - 187 custom (160 pin PQFP) + - C347 custom (80 pin PQFP) + +PCB Jumper Settings +------------------- + +Location Setting Alt. Setting +---------------------------------------- + JP1 1M 4M + JP2 4M 1M + JP5 <1M 1M + JP6 8M >8M + JP7 4M 1M + JP8 4M 1M + JP9 cON cOFF + JP10 24M (MHz) 12M (MHz) + JP11 24M (MHz) 28M (MHz) + JP12 355 F32 + + +Namco System NB2 + +Games running on this hardware: +- Outfoxies +- Mach Breakers + +Changes from Namcon System NB1 include: +- different memory map +- more complex sprite and tile banking +- 2 additional ROZ layers + +----------------------------- +The Outfoxies by NAMCO (1994) +----------------------------- +Location Device File ID Checksum +---------------------------------------------------- +CPU 11C PRGL 27C4002 OU2-MPRL 166F +CPU 11D PRGU 27C4002 OU2-MPRU F4C1 +CPU 5B SPR0 27C240 OU1-SPR0 7361 +CPU 20A DAT0 27C4002 OU1-DAT0 FCD1 +CPU 20B DAT1 27C4002 OU1-DAT1 0973 +CPU 18S SHAPE-R MB83800 OU1-SHAR C922 +CPU 12S SHAPE-S MB83400 OU1-SHAS 2820 +CPU 6N VOICE0 MB831600 OU1-VOI0 4132 +ROM 4C OBJ0L 16Meg SMD OU1-OBJ0L 171B +ROM 8C OBJ0U 16Meg SMD OU1-OBJ0U F961 +ROM 4B OBJ1L 16Meg SMD OU1-OBJ1L 1579 +ROM 8B OBJ1U 16Meg SMD OU1-OBJ1U E8DF +ROM 4A OBJ2L 16Meg SMD OU1-OBJ2L AE7B +ROM 8A OBJ2U 16Meg SMD OU1-OBJ2U 6588 +ROM 6C OBJ3L 16Meg SMD OU1-OBJ3L 9ED3 +ROM 9C OBJ3U 16Meg SMD OU1-OBJ3U ED3B +ROM 6B OBJ4L 16Meg SMD OU1-OBJ4L 59D4 +ROM 9B OBJ4U 16Meg SMD OU1-OBJ4U 56CA +ROM 3D ROT0 16Meg SMD OU1-ROT0 A615 +ROM 3C ROT1 16Meg SMD OU1-ROT1 6C0A +ROM 3B ROT2 16Meg SMD OU1-ROT2 313E +ROM 1D SCR0 16Meg SMD OU1-SCR0 751A + +CPU 8B DEC75 PAL16L8A NB1-2 +CPU 16N MIXER PAL16V8H NB2-1 +CPU 11E SIZE PAL16L8A NB2-2 +CPU 22C KEYCUS KeyCustom C390 + +CPU - Namco NB-2 Main PCB 8639960102 (8639970102) +ROM - Namco NB-2 Mask ROM PCB 8639969800 (8639979800) + + - Audio out is Stereo + +Jumper Settings: + + Setting Alternate +JP1 4M 1M +JP2 GND A20 +JP3 GND A20 +JP6 4M 1M +JP8 GND A20 +JP9 CON COFF +JP10 GND A20 + +Hardware info: + +Main CPU: MC68EC020FG25 + Custom C383 (100 pin PQFP) + Custom C385 (144 pin PQFP) + +Slave CPU: ?Custom C382 (160 pin PQFP) + Custom 160 ( 80 pin PQFP) + Custom C352 (100 pin PQFP) + +GFX: Custom 145 ( 80 pin PQFP) + Custom 156 ( 64 pin PQFP) + Custom 123 ( 64 pin PQFP) + 3x Custom 384 ( 48 pin PQFP) + Custom C355 (160 pin PQFP) + Custom 187 (120 pin PQFP) + Custom 169 (120 pin PQFP) +*/ +#include "driver.h" +#include "namconb1.h" +#include "namcos2.h" +#include "namcoic.h" +#include "audio/namcoc7x.h" + +#define NB1_NVMEM_SIZE (0x800) +static UINT32 *nvmem32; + +UINT32 *namconb1_workram32; +UINT32 *namconb1_spritebank32; +UINT32 *namconb1_tilebank32; + +/****************************************************************************/ + +static UINT32 *namconb_cpureg32; + +static int +GetCPURegister(int which) +{ + return (namconb_cpureg32[which/4]<<((which&3)*8))>>24; +} + +static TIMER_CALLBACK( namconb1_TriggerPOSIRQ ) +{ + int irqlevel = GetCPURegister(0x04)>>4; + video_screen_update_partial(0, param); + cpunum_set_input_line(0, irqlevel, PULSE_LINE); +} + +static TIMER_CALLBACK( namconb2_TriggerPOSIRQ ) +{ + int irqlevel = GetCPURegister(0x02); + video_screen_update_partial(0, param); + cpunum_set_input_line(0, irqlevel, PULSE_LINE); +} /* namconb2_TriggerPOSIRQ */ + +static INTERRUPT_GEN( namconb2_interrupt ) +{ + /** + * f00000 0x01 // VBLANK irq level + * f00001 0x00 + * f00002 0x05 // POSIRQ level + * f00003 0x00 + * + * f00004 VBLANK ack + * f00005 + * f00006 POSIRQ ack + * f00007 + * + * f00008 + * + * f00009 0x62 + * f0000a 0x0f + * f0000b 0x41 + * f0000c 0x70 + * f0000d 0x70 + * f0000e 0x23 + * f0000f 0x50 + * f00010 0x00 + * f00011 0x64 + * f00012 0x18 + * f00013 0xe7 + * f00014 (watchdog) + * f00016 0x00 + * f0001e 0x00 + * f0001f 0x01 + */ + int scanline = (paletteram32[0x1808/4]&0xffff)-32; + int irqlevel = GetCPURegister(0x00); + cpunum_set_input_line( 0, irqlevel, HOLD_LINE); + + if( scanline<0 ) + { + scanline = 0; + } + if( scanline < NAMCONB1_VBSTART ) + { + timer_set( video_screen_get_time_until_pos(0, scanline, 0), scanline, namconb2_TriggerPOSIRQ ); + } +} /* namconb2_interrupt */ +static INTERRUPT_GEN( namconb1_interrupt ) +{ + /** + * 400000 0x00 + * 400001 0x00 + * 400002 0x00 + * 400003 0x00 + * 400004 0x35 // irq levels + * 400005 0x00 + * 400006 0x00 + * 400007 0x00 + * 400008 0x00 + * 400009 0x00 VBLANK ack + * 40000a 0x00 + * 40000b 0x03 + * 40000c 0x07 + * 40000d 0x01 + * 40000e 0x10 + * 40000f 0x03 + * 400010 0x00 + * 400011 0x07 + * 400012 0x10 + * 400013 0x10 + * 400014 0x00 + * 400015 0x01 + * 400016 (watchdog) + * 400017 0x00 + * 400018 0x01 + * 400019 0x00 + * 40001a 0x00 + * 40001b 0x00 + * 40001c 0x00 + * 40001d 0x00 + * 40001e 0x00 + * 40001f 0x00 + */ + int scanline = (paletteram32[0x1808/4]&0xffff)-32; + int irqlevel = GetCPURegister(0x04)&0xf; + cpunum_set_input_line( 0, irqlevel, HOLD_LINE); + if( scanline<0 ) + { + scanline = 0; + } + if( scanline < NAMCONB1_VBSTART ) + { + timer_set( video_screen_get_time_until_pos(0, scanline, 0), scanline, namconb1_TriggerPOSIRQ ); + } +} /* namconb1_interrupt */ + +static WRITE32_HANDLER( namconb_cpureg_w ) +{ + COMBINE_DATA( &namconb_cpureg32[offset] ); +} /* namconb_cpureg_w */ + +/****************************************************************************/ + +static NVRAM_HANDLER( namconb1 ) +{ + int i; + UINT8 data[4]; + if( read_or_write ) + { + for( i=0; i<NB1_NVMEM_SIZE/4; i++ ) + { + UINT32 dword = nvmem32[i]; + data[0] = dword>>24; + data[1] = (dword&0x00ff0000)>>16; + data[2] = (dword&0x0000ff00)>>8; + data[3] = dword&0xff; + mame_fwrite( file, data, 4 ); + } + } + else + { + if (file) + { + for( i=0; i<NB1_NVMEM_SIZE/4; i++ ) + { + mame_fread( file, data, 4 ); + nvmem32[i] = (data[0]<<24)|(data[1]<<16)|(data[2]<<8)|data[3]; + } + } + else + { + memset( nvmem32, 0x00, NB1_NVMEM_SIZE ); + if( namcos2_gametype == NAMCONB1_GUNBULET ) + { + nvmem32[0] = 0x0f260f26; /* default gun calibration */ + } + } + } +} /* namconb1 */ + +static DRIVER_INIT( nebulray ) +{ + UINT8 *pMem = (UINT8 *)memory_region(NAMCONB1_TILEMASKREGION); + size_t numBytes = (0xfe7-0xe6f)*8; + memset( &pMem[0xe6f*8], 0, numBytes ); + + namcos2_gametype = NAMCONB1_NEBULRAY; + + namcoc7x_on_driver_init(); +} /* nebulray */ + +static DRIVER_INIT( gslgr94u ) +{ + namcos2_gametype = NAMCONB1_GSLGR94U; + namcoc7x_on_driver_init(); +} /* gslgr94u */ + +static DRIVER_INIT( sws95 ) +{ + namcos2_gametype = NAMCONB1_SWS95; + namcoc7x_on_driver_init(); +} /* sws95 */ + +static DRIVER_INIT( sws96 ) +{ + namcos2_gametype = NAMCONB1_SWS96; + namcoc7x_on_driver_init(); +} /* sws96 */ + +static DRIVER_INIT( sws97 ) +{ + namcos2_gametype = NAMCONB1_SWS97; + namcoc7x_on_driver_init(); +} /* sws97 */ + +static DRIVER_INIT( gunbulet ) +{ + namcos2_gametype = NAMCONB1_GUNBULET; + namcoc7x_on_driver_init(); +} /* gunbulet */ + +static DRIVER_INIT( vshoot ) +{ + namcos2_gametype = NAMCONB1_VSHOOT; + namcoc7x_on_driver_init(); +} /* vshoot */ + +static void +ShuffleDataROMs( void ) +{ + size_t len = memory_region_length(REGION_USER1)/4; + UINT8 *pMem8 = (UINT8 *)memory_region( REGION_USER1 ); + UINT32 *pMem32 = (UINT32 *)pMem8; + int i; + + for( i=0; i<len; i++ ) + { + pMem32[i] = (pMem8[0]<<16)|(pMem8[1]<<24)|(pMem8[2]<<0)|(pMem8[3]<<8); + pMem8+=4; + } + memory_set_bankptr( 1, pMem32 ); +} + +static DRIVER_INIT( machbrkr ) +{ + namcos2_gametype = NAMCONB2_MACH_BREAKERS; + ShuffleDataROMs(); + namcoc7x_on_driver_init(); +} + +static DRIVER_INIT( outfxies ) +{ + namcos2_gametype = NAMCONB2_OUTFOXIES; + ShuffleDataROMs(); + namcoc7x_on_driver_init(); +} + +static READ32_HANDLER( custom_key_r ) +{ + static UINT16 count; + UINT16 old_count = count; + + do + { /* pick a random number, but don't pick the same twice in a row */ + count = mame_rand(Machine); + } while( count==old_count ); + + switch( namcos2_gametype ) + { + case NAMCONB1_GUNBULET: + return 0; /* no protection */ + + case NAMCONB1_SWS95: + switch( offset ) + { + case 0: return 0x0189; + case 1: return count<<16; + } + break; + + case NAMCONB1_SWS96: + switch( offset ) + { + case 0: return 0x01aa<<16; + case 4: return count<<16; + } + break; + + case NAMCONB1_SWS97: + switch( offset ) + { + case 2: return 0x1b2<<16; + case 5: return count<<16; + } + break; + + case NAMCONB1_GSLGR94U: + switch( offset ) + { + case 0: return 0x0167; + case 1: return count<<16; + } + break; + + case NAMCONB1_NEBULRAY: + switch( offset ) + { + case 1: return 0x016e; + case 3: return count; + } + break; + + case NAMCONB1_VSHOOT: + switch( offset ) + { + case 2: return count<<16; + case 3: return 0x0170<<16; + } + break; + + case NAMCONB2_OUTFOXIES: + switch( offset ) + { + case 0: return 0x0186; + case 1: return count<<16; + } + break; + + case NAMCONB2_MACH_BREAKERS: + break; /* no protection? */ + } + + logerror( "custom_key_r(%d); pc=%08x\n", offset, activecpu_get_pc() ); + return 0; +} /* custom_key_r */ + +/***************************************************************/ + +static const gfx_layout obj_layout = +{ + 16,16, + RGN_FRAC(1,1), + 8, /* bits per pixel */ + { + /* plane offsets */ + 0,1,2,3,4,5,6,7, + }, + { + 0*16+8,1*16+8,0*16,1*16, + 2*16+8,3*16+8,2*16,3*16, + 4*16+8,5*16+8,4*16,5*16, + 6*16+8,7*16+8,6*16,7*16 + }, + { + 0x0*128,0x1*128,0x2*128,0x3*128,0x4*128,0x5*128,0x6*128,0x7*128, + 0x8*128,0x9*128,0xa*128,0xb*128,0xc*128,0xd*128,0xe*128,0xf*128 + }, + 16*128 +}; /* obj_layout */ + +static const gfx_layout tile_layout = +{ + 8,8, + RGN_FRAC(1,1), + 8, + { 0,1,2,3,4,5,6,7 }, + { 0*8,1*8,2*8,3*8,4*8,5*8,6*8,7*8 }, + { 0*64,1*64,2*64,3*64,4*64,5*64,6*64,7*64 }, + 8*64 +}; /* tile_layout */ + +static const gfx_layout roz_layout = +{ + 16,16, + RGN_FRAC(1,1), + 8, + { 0,1,2,3,4,5,6,7 }, + { 0*8,1*8,2*8,3*8,4*8,5*8,6*8,7*8,8*8,9*8,10*8,11*8,12*8,13*8,14*8,15*8 }, + { + 0*128,1*128,2*128,3*128,4*128,5*128,6*128,7*128,8*128,9*128,10*128,11*128,12*128,13*128,14*128,15*128 + }, + 16*128 +}; /* roz_layout */ + +static GFXDECODE_START( namconb1 ) + GFXDECODE_ENTRY( NAMCONB1_TILEGFXREGION, 0, tile_layout, 0x1000, 0x10 ) + GFXDECODE_ENTRY( NAMCONB1_SPRITEGFXREGION, 0, obj_layout, 0x0000, 0x10 ) +GFXDECODE_END /* gfxdecodeinfo */ + +static GFXDECODE_START( 2 ) + GFXDECODE_ENTRY( NAMCONB1_TILEGFXREGION, 0, tile_layout, 0x1000, 0x08 ) + GFXDECODE_ENTRY( NAMCONB1_SPRITEGFXREGION, 0, obj_layout, 0x0000, 0x10 ) + GFXDECODE_ENTRY( NAMCONB1_ROTGFXREGION, 0, roz_layout, 0x1800, 0x08 ) +GFXDECODE_END /* gfxdecodeinfo2 */ + +/***************************************************************/ + +static READ32_HANDLER( gunbulet_gun_r ) +{ + int result = 0; + + switch( offset ) + { + case 0: case 1: result = (UINT8)(0x0f+readinputport(7)*224/255); break; /* Y (p2) */ + case 2: case 3: result = (UINT8)(0x26+readinputport(6)*288/314); break; /* X (p2) */ + case 4: case 5: result = (UINT8)(0x0f+readinputport(5)*224/255); break; /* Y (p1) */ + case 6: case 7: result = (UINT8)(0x26+readinputport(4)*288/314); break; /* X (p1) */ + } + return result<<24; +} /* gunbulet_gun_r */ + +static +READ32_HANDLER( randgen_r ) +{ + return mame_rand(Machine); +} /* randgen_r */ + +static +WRITE32_HANDLER( srand_w ) +{ + /** + * Used to seed the hardware random number generator. + * We don't yet know the algorithm that is used, so for now this is a NOP. + */ +} /* srand_w */ + +static WRITE32_HANDLER( sharedram_w ) +{ + if (offset < 0xb0) + { + if (mem_mask == 0x0000ffff) + { + namcoc7x_sound_write16((data>>16), offset*2); + } + else if (mem_mask == 0xffff0000) + { + namcoc7x_sound_write16((data&0xffff), (offset*2)+1); + } + } + + COMBINE_DATA(&namconb1_workram32[offset]); +} + +static ADDRESS_MAP_START( namconb1_am, ADDRESS_SPACE_PROGRAM, 32 ) + AM_RANGE(0x000000, 0x0fffff) AM_READ(MRA32_ROM) AM_WRITE(MWA32_ROM) + AM_RANGE(0x100000, 0x10001f) AM_READ(gunbulet_gun_r) + AM_RANGE(0x1c0000, 0x1cffff) AM_READ(MRA32_RAM) AM_WRITE(MWA32_RAM) + AM_RANGE(0x1e4000, 0x1e4003) AM_READWRITE(randgen_r,srand_w) + AM_RANGE(0x200000, 0x2fffff) AM_READ(MRA32_RAM) AM_WRITE(sharedram_w) AM_BASE(&namconb1_workram32) /* shared with MCU) */ + AM_RANGE(0x400000, 0x40001f) AM_READ(MRA32_RAM) AM_WRITE(namconb_cpureg_w) AM_BASE(&namconb_cpureg32) + AM_RANGE(0x580000, 0x5807ff) AM_READ(MRA32_RAM) AM_WRITE(MWA32_RAM) AM_BASE(&nvmem32) + AM_RANGE(0x600000, 0x61ffff) AM_READWRITE(namco_obj32_r,namco_obj32_w) + AM_RANGE(0x620000, 0x620007) AM_READWRITE(namco_spritepos32_r,namco_spritepos32_w) + AM_RANGE(0x640000, 0x64ffff) AM_READWRITE(namco_tilemapvideoram32_r,namco_tilemapvideoram32_w ) + AM_RANGE(0x660000, 0x66003f) AM_READWRITE(namco_tilemapcontrol32_r,namco_tilemapcontrol32_w) + AM_RANGE(0x680000, 0x68000f) AM_READ(MRA32_RAM) AM_WRITE(MWA32_RAM) AM_BASE(&namconb1_spritebank32) + AM_RANGE(0x6e0000, 0x6e001f) AM_READ(custom_key_r) AM_WRITE(MWA32_NOP) + AM_RANGE(0x700000, 0x707fff) AM_READ(MRA32_RAM) AM_WRITE(MWA32_RAM) AM_BASE(&paletteram32) +ADDRESS_MAP_END + +static ADDRESS_MAP_START( namconb2_am, ADDRESS_SPACE_PROGRAM, 32 ) + AM_RANGE(0x000000, 0x0fffff) AM_READ(MRA32_ROM) AM_WRITE(MWA32_ROM) + AM_RANGE(0x1c0000, 0x1cffff) AM_READ(MRA32_RAM) AM_WRITE(MWA32_RAM) + AM_RANGE(0x1e4000, 0x1e4003) AM_READWRITE(randgen_r,srand_w) + AM_RANGE(0x200000, 0x2fffff) AM_READ(MRA32_RAM) AM_WRITE(sharedram_w) AM_BASE(&namconb1_workram32) /* shared with MCU */ + AM_RANGE(0x400000, 0x4fffff) AM_READ(MRA32_BANK1)/* data ROMs */ + AM_RANGE(0x600000, 0x61ffff) AM_READWRITE(namco_obj32_r,namco_obj32_w) + AM_RANGE(0x620000, 0x620007) AM_READWRITE(namco_spritepos32_r,namco_spritepos32_w) + AM_RANGE(0x640000, 0x64000f) AM_READ(MRA32_RAM) AM_WRITE(MWA32_RAM) /* unknown xy offset */ + AM_RANGE(0x680000, 0x68ffff) AM_READWRITE(namco_tilemapvideoram32_r, namco_tilemapvideoram32_w ) + AM_RANGE(0x6c0000, 0x6c003f) AM_READWRITE(namco_tilemapcontrol32_r, namco_tilemapcontrol32_w ) + AM_RANGE(0x700000, 0x71ffff) AM_READWRITE(namco_rozvideoram32_r,namco_rozvideoram32_w) + AM_RANGE(0x740000, 0x74001f) AM_READWRITE(namco_rozcontrol32_r,namco_rozcontrol32_w) + AM_RANGE(0x800000, 0x807fff) AM_READ(MRA32_RAM) AM_WRITE(MWA32_RAM) AM_BASE(&paletteram32) + AM_RANGE(0x900008, 0x90000f) AM_READ(MRA32_RAM) AM_WRITE(MWA32_RAM) AM_BASE(&namconb1_spritebank32) + AM_RANGE(0x940000, 0x94000f) AM_READ(MRA32_RAM) AM_WRITE(MWA32_RAM) AM_BASE(&namconb1_tilebank32) + AM_RANGE(0x980000, 0x98000f) AM_READ(namco_rozbank32_r) AM_WRITE(namco_rozbank32_w) + AM_RANGE(0xa00000, 0xa007ff) AM_READ(MRA32_RAM) AM_WRITE(MWA32_RAM) AM_BASE(&nvmem32) + AM_RANGE(0xc00000, 0xc0001f) AM_READ(custom_key_r) AM_WRITE(MWA32_NOP) + AM_RANGE(0xf00000, 0xf0001f) AM_READ(MRA32_RAM) AM_WRITE(MWA32_RAM) AM_BASE(&namconb_cpureg32) +ADDRESS_MAP_END /* namconb2_readmem */ + +#define MASTER_CLOCK_HZ 48384000 + +NAMCO_C7X_HARDWARE + +static MACHINE_DRIVER_START( namconb1 ) + MDRV_CPU_ADD(M68EC020,MASTER_CLOCK_HZ/2) + MDRV_CPU_PROGRAM_MAP(namconb1_am,0) + MDRV_CPU_VBLANK_INT(namconb1_interrupt,1) + + NAMCO_C7X_MCU(MASTER_CLOCK_HZ/3) + + MDRV_SCREEN_REFRESH_RATE(59.7) + MDRV_NVRAM_HANDLER(namconb1) + MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER|VIDEO_HAS_SHADOWS) + MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) + MDRV_SCREEN_SIZE(NAMCONB1_HTOTAL, NAMCONB1_VTOTAL) + MDRV_SCREEN_VISIBLE_AREA(0, NAMCONB1_HBSTART-1, 0, NAMCONB1_VBSTART-1) + MDRV_GFXDECODE(namconb1) + MDRV_PALETTE_LENGTH(0x2000) + MDRV_VIDEO_START(namconb1) + MDRV_VIDEO_UPDATE(namconb1) + + NAMCO_C7X_SOUND(MASTER_CLOCK_HZ/3) +MACHINE_DRIVER_END + +static MACHINE_DRIVER_START( namconb2 ) + MDRV_CPU_ADD(M68EC020,MASTER_CLOCK_HZ/2) + MDRV_CPU_PROGRAM_MAP(namconb2_am,0) + MDRV_CPU_VBLANK_INT(namconb2_interrupt,1) + + NAMCO_C7X_MCU(MASTER_CLOCK_HZ/3) + + MDRV_SCREEN_REFRESH_RATE(59.7) + MDRV_NVRAM_HANDLER(namconb1) + MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER|VIDEO_HAS_SHADOWS) + MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) + MDRV_SCREEN_SIZE(NAMCONB1_HTOTAL, NAMCONB1_VTOTAL) + MDRV_SCREEN_VISIBLE_AREA(0, NAMCONB1_HBSTART-1, 0, NAMCONB1_VBSTART-1) + MDRV_GFXDECODE(2) + MDRV_PALETTE_LENGTH(0x2000) + MDRV_VIDEO_START(namconb2) + MDRV_VIDEO_UPDATE(namconb2) + + NAMCO_C7X_SOUND(MASTER_CLOCK_HZ/3) +MACHINE_DRIVER_END + +/***************************************************************/ + +ROM_START( ptblank ) + ROM_REGION( 0x100000, REGION_CPU1, 0 ) /* main program */ + ROM_LOAD32_WORD( "gn2mprlb.15b", 0x00002, 0x80000, CRC(fe2d9425) SHA1(51b166a629cbb522720d63720558816b496b6b76) ) + ROM_LOAD32_WORD( "gn2mprub.13b", 0x00000, 0x80000, CRC(3bf4985a) SHA1(f559e0d5f55d23d886fe61bd7d5ca556acc7f87c) ) + + ROM_REGION16_LE( 0x100000, REGION_USER4, 0 ) /* sound data and MCU BIOS */ + ROM_LOAD( "gn1-spr0.bin", 0, 0x20000, CRC(6836ba38) SHA1(6ea17ea4bbb59be108e8887acd7871409580732f) ) + NAMCO_C7X_BIOS + + ROM_REGION( 0x200000, REGION_SOUND1, 0 ) + ROM_LOAD( "gn1-voi0.bin", 0, 0x200000, CRC(05477eb7) SHA1(f2eaacb5dbac06c37c56b9b131230c9cf6602221) ) + + ROM_REGION( 0x800000, NAMCONB1_SPRITEGFXREGION, ROMREGION_DISPOSE ) + ROM_LOAD16_BYTE( "gn1obj0l.bin", 0x000001, 0x200000, CRC(06722dc8) SHA1(56fee4e17ed707fa6dbc6bad0d0281fc8cdf72d1) ) + ROM_LOAD16_BYTE( "gn1obj0u.bin", 0x000000, 0x200000, CRC(fcefc909) SHA1(48c19b6032096dd80777aa6d5eb5f90463095cbe) ) + ROM_LOAD16_BYTE( "gn1obj1u.bin", 0x400000, 0x200000, CRC(3109a071) SHA1(4bb16df5a3aecdf37baf843edfc82952d46f5227) ) + ROM_LOAD16_BYTE( "gn1obj1l.bin", 0x400001, 0x200000, CRC(48468df7) SHA1(c5fb9082c84ac2ffceb6f5f4cbc1d40047c55e3d) ) + + ROM_REGION( 0x400000, NAMCONB1_TILEGFXREGION, ROMREGION_DISPOSE ) + ROM_LOAD( "gn1-chr0.bin", 0x000000, 0x100000, CRC(a5c61246) SHA1(d1d9f286b93b5b9880160029c53384d13c08dd8a) ) + ROM_LOAD( "gn1-chr1.bin", 0x100000, 0x100000, CRC(c8c59772) SHA1(91de633a300e3b25a919579eaada5549640ab6f0) ) + ROM_LOAD( "gn1-chr2.bin", 0x200000, 0x100000, CRC(dc96d999) SHA1(d006a401762b57fef6716f56eb3a7edcb3d3c00e) ) + ROM_LOAD( "gn1-chr3.bin", 0x300000, 0x100000, CRC(4352c308) SHA1(785c13df219dceac2f940519141665b630a29f86) ) + + ROM_REGION( 0x80000, NAMCONB1_TILEMASKREGION, 0 ) + ROM_LOAD( "gn1-sha0.bin", 0, 0x80000, CRC(86d4ff85) SHA1(a71056b2bcbba50c834fe28269ebda9719df354a) ) +ROM_END + +ROM_START( gunbulet ) + ROM_REGION( 0x100000, REGION_CPU1, 0 ) /* main program */ + ROM_LOAD32_WORD( "gn1-mprl.bin", 0x00002, 0x80000, CRC(f99e309e) SHA1(3fe0ddf756e6849f8effc7672456cbe32f65c98a) ) + ROM_LOAD32_WORD( "gn1-mpru.bin", 0x00000, 0x80000, CRC(72a4db07) SHA1(8c5e1e51cd961b311d03f7b21f36a5bd5e8e9104) ) + + ROM_REGION16_LE( 0x100000, REGION_USER4, 0 ) /* sound data and MCU BIOS */ + ROM_LOAD( "gn1-spr0.bin", 0, 0x20000, CRC(6836ba38) SHA1(6ea17ea4bbb59be108e8887acd7871409580732f) ) + NAMCO_C7X_BIOS + + ROM_REGION( 0x200000, REGION_SOUND1, 0 ) + ROM_LOAD( "gn1-voi0.bin", 0, 0x200000, CRC(05477eb7) SHA1(f2eaacb5dbac06c37c56b9b131230c9cf6602221) ) + + ROM_REGION( 0x800000, NAMCONB1_SPRITEGFXREGION, ROMREGION_DISPOSE ) + ROM_LOAD16_BYTE( "gn1obj0l.bin", 0x000001, 0x200000, CRC(06722dc8) SHA1(56fee4e17ed707fa6dbc6bad0d0281fc8cdf72d1) ) + ROM_LOAD16_BYTE( "gn1obj0u.bin", 0x000000, 0x200000, CRC(fcefc909) SHA1(48c19b6032096dd80777aa6d5eb5f90463095cbe) ) + ROM_LOAD16_BYTE( "gn1obj1u.bin", 0x400000, 0x200000, CRC(3109a071) SHA1(4bb16df5a3aecdf37baf843edfc82952d46f5227) ) + ROM_LOAD16_BYTE( "gn1obj1l.bin", 0x400001, 0x200000, CRC(48468df7) SHA1(c5fb9082c84ac2ffceb6f5f4cbc1d40047c55e3d) ) + + ROM_REGION( 0x400000, NAMCONB1_TILEGFXREGION, ROMREGION_DISPOSE ) + ROM_LOAD( "gn1-chr0.bin", 0x000000, 0x100000, CRC(a5c61246) SHA1(d1d9f286b93b5b9880160029c53384d13c08dd8a) ) + ROM_LOAD( "gn1-chr1.bin", 0x100000, 0x100000, CRC(c8c59772) SHA1(91de633a300e3b25a919579eaada5549640ab6f0) ) + ROM_LOAD( "gn1-chr2.bin", 0x200000, 0x100000, CRC(dc96d999) SHA1(d006a401762b57fef6716f56eb3a7edcb3d3c00e) ) + ROM_LOAD( "gn1-chr3.bin", 0x300000, 0x100000, CRC(4352c308) SHA1(785c13df219dceac2f940519141665b630a29f86) ) + + ROM_REGION( 0x80000, NAMCONB1_TILEMASKREGION, 0 ) + ROM_LOAD( "gn1-sha0.bin", 0, 0x80000, CRC(86d4ff85) SHA1(a71056b2bcbba50c834fe28269ebda9719df354a) ) +ROM_END + +ROM_START( nebulray ) + ROM_REGION( 0x100000, REGION_CPU1, 0 ) /* main program */ + ROM_LOAD32_WORD( "nr2-mpru.13b", 0x00000, 0x80000, CRC(049b97cb) SHA1(0e344b29a4d4bdc854fa9849589772df2eeb0a05) ) + ROM_LOAD32_WORD( "nr2-mprl.15b", 0x00002, 0x80000, CRC(0431b6d4) SHA1(54c96e8ac9e753956c31bdef79d390f1c20e10ff) ) + + ROM_REGION16_LE( 0x100000, REGION_USER4, 0 ) /* sound data and MCU BIOS */ + ROM_LOAD( "nr1-spr0", 0, 0x20000, CRC(1cc2b44b) SHA1(161f4ed39fabe89d7ee1d539f8b9f08cd0ff3111) ) + NAMCO_C7X_BIOS + + ROM_REGION( 0x200000, REGION_SOUND1, 0 ) + ROM_LOAD( "nr1-voi0", 0, 0x200000, CRC(332d5e26) SHA1(9daddac3fbe0709e25ed8e0b456bac15bfae20d7) ) + + ROM_REGION( 0x1000000, NAMCONB1_SPRITEGFXREGION, ROMREGION_DISPOSE ) + ROM_LOAD16_BYTE( "nr1obj0u", 0x000000, 0x200000, CRC(fb82a881) SHA1(c9fa0728a37376a5c85bff1f6e8400c13ce15769) ) + ROM_LOAD16_BYTE( "nr1obj0l", 0x000001, 0x200000, CRC(0e99ef46) SHA1(450fe61e448270b633f312361bd5ca89bb9684dd) ) + ROM_LOAD16_BYTE( "nr1obj1u", 0x400000, 0x200000, CRC(49d9dbd7) SHA1(2dbd842c192d65888f931cdb5c9387127b1ab632) ) + ROM_LOAD16_BYTE( "nr1obj1l", 0x400001, 0x200000, CRC(f7a898f0) SHA1(a25a134a42adeb9088019bde42a96d120f20407e) ) + ROM_LOAD16_BYTE( "nr1obj2u", 0x800000, 0x200000, CRC(8c8205b1) SHA1(2c5fb9392d8cd5f8d1f9aba6ddbbafd061271cd4) ) + ROM_LOAD16_BYTE( "nr1obj2l", 0x800001, 0x200000, CRC(b39871d1) SHA1(a8f910702bb88a001f2bfd1b33ad355aa3b0f429) ) + ROM_LOAD16_BYTE( "nr1obj3u", 0xc00000, 0x200000, CRC(d5918c9e) SHA1(530781fb44d7bbf01669bb265b658cb60e27bcd7) ) + ROM_LOAD16_BYTE( "nr1obj3l", 0xc00001, 0x200000, CRC(c90d13ae) SHA1(675f7b8b3325aac91b2bae1cbebe274a65aedc43) ) + + ROM_REGION( 0x400000, NAMCONB1_TILEGFXREGION, ROMREGION_DISPOSE ) + ROM_LOAD( "nr1-chr0", 0x000000, 0x100000,CRC(8d5b54ea) SHA1(616d5729f474da91da19a8246066280652da998c) ) + ROM_LOAD( "nr1-chr1", 0x100000, 0x100000,CRC(cd21630c) SHA1(9974c0eb1051ca52f001e6631264a1936bb50620) ) + ROM_LOAD( "nr1-chr2", 0x200000, 0x100000,CRC(70a11023) SHA1(bead486a86bd96c6fdfd2ea4d4d37c38bbe9bfbb) ) + ROM_LOAD( "nr1-chr3", 0x300000, 0x100000,CRC(8f4b1d51) SHA1(b48fb2c8ccd9105a5b48be44dd3fe4309769efa4) ) + + ROM_REGION( 0x80000, NAMCONB1_TILEMASKREGION, 0 ) + ROM_LOAD( "nr1-sha0", 0, 0x80000,CRC(ca667e13) SHA1(685032603224cb81bcb85361921477caec570d5e) ) + + ROM_REGION( 0x20, REGION_PROMS, 0 ) /* custom key data? */ + ROM_LOAD( "c366.bin", 0, 0x20, CRC(8c96f31d) SHA1(d186859cfc19a63266084372080d0a5bee687ae2) ) +ROM_END + +ROM_START( nebulryj ) + ROM_REGION( 0x100000, REGION_CPU1, 0 ) /* main program */ + ROM_LOAD32_WORD( "nr1-mpru", 0x00000, 0x80000, CRC(42ef71f9) SHA1(20e3cb63e1fde293c60c404b378d901d635c4b79) ) + ROM_LOAD32_WORD( "nr1-mprl", 0x00002, 0x80000, CRC(fae5f62c) SHA1(143d716abbc834aac6270db3bbb89ec71ea3804d) ) + + ROM_REGION16_LE( 0x100000, REGION_USER4, 0 ) /* sound data and MCU BIOS */ + ROM_LOAD( "nr1-spr0", 0, 0x20000, CRC(1cc2b44b) SHA1(161f4ed39fabe89d7ee1d539f8b9f08cd0ff3111) ) + NAMCO_C7X_BIOS + + ROM_REGION( 0x200000, REGION_SOUND1, 0 ) + ROM_LOAD( "nr1-voi0", 0, 0x200000, CRC(332d5e26) SHA1(9daddac3fbe0709e25ed8e0b456bac15bfae20d7) ) + + ROM_REGION( 0x1000000, NAMCONB1_SPRITEGFXREGION, ROMREGION_DISPOSE ) + ROM_LOAD16_BYTE( "nr1obj0u", 0x000000, 0x200000, CRC(fb82a881) SHA1(c9fa0728a37376a5c85bff1f6e8400c13ce15769) ) + ROM_LOAD16_BYTE( "nr1obj0l", 0x000001, 0x200000, CRC(0e99ef46) SHA1(450fe61e448270b633f312361bd5ca89bb9684dd) ) + ROM_LOAD16_BYTE( "nr1obj1u", 0x400000, 0x200000, CRC(49d9dbd7) SHA1(2dbd842c192d65888f931cdb5c9387127b1ab632) ) + ROM_LOAD16_BYTE( "nr1obj1l", 0x400001, 0x200000, CRC(f7a898f0) SHA1(a25a134a42adeb9088019bde42a96d120f20407e) ) + ROM_LOAD16_BYTE( "nr1obj2u", 0x800000, 0x200000, CRC(8c8205b1) SHA1(2c5fb9392d8cd5f8d1f9aba6ddbbafd061271cd4) ) + ROM_LOAD16_BYTE( "nr1obj2l", 0x800001, 0x200000, CRC(b39871d1) SHA1(a8f910702bb88a001f2bfd1b33ad355aa3b0f429) ) + ROM_LOAD16_BYTE( "nr1obj3u", 0xc00000, 0x200000, CRC(d5918c9e) SHA1(530781fb44d7bbf01669bb265b658cb60e27bcd7) ) + ROM_LOAD16_BYTE( "nr1obj3l", 0xc00001, 0x200000, CRC(c90d13ae) SHA1(675f7b8b3325aac91b2bae1cbebe274a65aedc43) ) + + ROM_REGION( 0x400000, NAMCONB1_TILEGFXREGION, ROMREGION_DISPOSE ) + ROM_LOAD( "nr1-chr0", 0x000000, 0x100000,CRC(8d5b54ea) SHA1(616d5729f474da91da19a8246066280652da998c) ) + ROM_LOAD( "nr1-chr1", 0x100000, 0x100000,CRC(cd21630c) SHA1(9974c0eb1051ca52f001e6631264a1936bb50620) ) + ROM_LOAD( "nr1-chr2", 0x200000, 0x100000,CRC(70a11023) SHA1(bead486a86bd96c6fdfd2ea4d4d37c38bbe9bfbb) ) + ROM_LOAD( "nr1-chr3", 0x300000, 0x100000,CRC(8f4b1d51) SHA1(b48fb2c8ccd9105a5b48be44dd3fe4309769efa4) ) + + ROM_REGION( 0x80000, NAMCONB1_TILEMASKREGION, 0 ) + ROM_LOAD( "nr1-sha0", 0, 0x80000,CRC(ca667e13) SHA1(685032603224cb81bcb85361921477caec570d5e) ) + + ROM_REGION( 0x20, REGION_PROMS, 0 ) /* custom key data? */ + ROM_LOAD( "c366.bin", 0, 0x20, CRC(8c96f31d) SHA1(d186859cfc19a63266084372080d0a5bee687ae2) ) +ROM_END + +ROM_START( gslgr94u ) + ROM_REGION( 0x100000, REGION_CPU1, 0 ) /* main program */ + ROM_LOAD32_WORD( "gse2mprl.bin", 0x00002, 0x80000, CRC(a514349c) SHA1(1f7ec81cd6193410d2f01e6f0f84878561fc8035) ) + ROM_LOAD32_WORD( "gse2mpru.bin", 0x00000, 0x80000, CRC(b6afd238) SHA1(438a3411ac8ce3d22d5da8c0800738cb8d2994a9) ) + + ROM_REGION16_LE( 0x100000, REGION_USER4, 0 ) /* sound data and MCU BIOS */ + ROM_LOAD( "gse2spr0.bin", 0, 0x20000, CRC(17e87cfc) SHA1(9cbeadb6dfcb736e8c80eab344f70fc2f58469d6) ) + NAMCO_C7X_BIOS + + ROM_REGION( 0x200000, REGION_SOUND1, 0 ) + ROM_LOAD( "gse-voi0.bin", 0, 0x200000, CRC(d3480574) SHA1(0c468ed060769b36b7e41cf4919cb6d8691d64f6) ) + + ROM_REGION( 0x400000, NAMCONB1_SPRITEGFXREGION, ROMREGION_DISPOSE ) + ROM_LOAD16_BYTE( "gseobj0l.bin", 0x000001, 0x200000, CRC(531520ca) SHA1(2a1a5282549c6f7a37d5fb8c0b342edb9dc45315) ) + ROM_LOAD16_BYTE( "gseobj0u.bin", 0x000000, 0x200000, CRC(fcc1283c) SHA1(fb44ed742f362e6737412cabf3f67d9506456a9e) ) + + ROM_REGION( 0x400000, NAMCONB1_TILEGFXREGION, ROMREGION_DISPOSE ) + ROM_LOAD( "gse-chr0.bin", 0x000000, 0x100000, CRC(9314085d) SHA1(150e8ea908861337f9be2749aa7f9e1d52570586) ) + ROM_LOAD( "gse-chr1.bin", 0x100000, 0x100000, CRC(c128a887) SHA1(4faf78064dd48ec50684a7dc8d120f8c5985bf2a) ) + ROM_LOAD( "gse-chr2.bin", 0x200000, 0x100000, CRC(48f0a311) SHA1(e39adcce835542e64ca87f6019d4a85fcbe388c2) ) + ROM_LOAD( "gse-chr3.bin", 0x300000, 0x100000, CRC(adbd1f88) SHA1(3c7bb1a9a398412bd3c98cadf8ce63a16e2bfed5) ) + + ROM_REGION( 0x80000, NAMCONB1_TILEMASKREGION, 0 ) + ROM_LOAD( "gse-sha0.bin", 0, 0x80000, CRC(6b2beabb) SHA1(815f7aef44735584edd4a9ca7e672471d07f225e) ) +ROM_END + +ROM_START( gslugrsj ) + ROM_REGION( 0x100000, REGION_CPU1, 0 ) /* main program */ + ROM_LOAD32_WORD( "gs1mprl.15b", 0x00002, 0x80000, CRC(1e6c3626) SHA1(56abe21884fd87df10996db19c49ce14214d4b73) ) + ROM_LOAD32_WORD( "gs1mpru.13b", 0x00000, 0x80000, CRC(ef355179) SHA1(0ab0ef4301a318681bb5827d35734a0732b35484) ) + + ROM_REGION16_LE( 0x100000, REGION_USER4, 0 ) /* sound data and MCU BIOS */ + ROM_LOAD( "gs1spr0.5b", 0, 0x80000, CRC(561ea20f) SHA1(adac6b77effc3a82079a9b228bafca0fcef72ba5) ) + NAMCO_C7X_BIOS + + ROM_REGION( 0x200000, REGION_SOUND1, 0 ) + ROM_LOAD( "gs1voi-0.5j", 0, 0x200000, CRC(6f8262aa) SHA1(beea98d9f8b927a572eb0bfcf678e9d6e40fc68d) ) + + ROM_REGION( 0x400000, NAMCONB1_SPRITEGFXREGION, ROMREGION_DISPOSE ) + ROM_LOAD16_BYTE( "gs1obj-0.ic1", 0x000001, 0x200000, CRC(9a55238f) SHA1(fc3fd4b8b6322bbe343edbcad7815b597562266b) ) + ROM_LOAD16_BYTE( "gs1obj-1.ic2", 0x000000, 0x200000, CRC(31c66f76) SHA1(8903e6586dff6f34a6ffca2d7c75343c0a5bff56) ) + + ROM_REGION( 0x400000, NAMCONB1_TILEGFXREGION, ROMREGION_DISPOSE ) + ROM_LOAD( "gs1chr-0.8j", 0x000000, 0x100000, CRC(e7ced86a) SHA1(de90c2e3870b317431d3910f581660681b46ff9d) ) + ROM_LOAD( "gs1chr-1.9j", 0x100000, 0x100000, CRC(1fe46749) SHA1(f4c0ea666d52cb1c8b1da93e7486ade5eae336cc) ) + ROM_LOAD( "gs1chr-2.10j", 0x200000, 0x100000, CRC(f53afa20) SHA1(5c317e276ca2355e9737c1e8114dccbb5e11058a) ) + ROM_LOAD( "gs1chr-3.11j", 0x300000, 0x100000, CRC(b149d7da) SHA1(d50c6258db0ccdd69b563e880d1711aae811fbe3) ) + + ROM_REGION( 0x80000, NAMCONB1_TILEMASKREGION, 0 ) + ROM_LOAD( "gs1sha-0.5m", 0, 0x80000, CRC(8a2832fe) SHA1(a1f54754fb01bbbc87274b1a0a4127fa9296ad1a) ) +ROM_END + +ROM_START( sws95 ) + ROM_REGION( 0x100000, REGION_CPU1, 0 ) /* main program */ + ROM_LOAD32_WORD( "ss51mprl.bin", 0x00002, 0x80000, CRC(c9e0107d) SHA1(0f10582416023a86ea1ef2679f3f06016c086e08) ) + ROM_LOAD32_WORD( "ss51mpru.bin", 0x00000, 0x80000, CRC(0d93d261) SHA1(5edef26e2c86dbc09727d910af92747d022e4fed) ) + + ROM_REGION16_LE( 0x100000, REGION_USER4, 0 ) /* sound data and MCU BIOS */ + ROM_LOAD( "ss51spr0.bin", 0, 0x80000, CRC(71cb12f5) SHA1(6e13bd16a5ba14d6e47a21875db3663ada3c06a5) ) + NAMCO_C7X_BIOS + + ROM_REGION( 0x200000, REGION_SOUND1, 0 ) + ROM_LOAD( "ss51voi0.bin", 0, 0x200000, CRC(2740ec72) SHA1(9694a7378ea72771d2b1d43db6d74ed347ba27d3) ) + + + ROM_REGION( 0x400000, NAMCONB1_SPRITEGFXREGION, ROMREGION_DISPOSE ) + ROM_LOAD16_BYTE( "ss51ob0l.bin", 0x000001, 0x200000, CRC(e0395694) SHA1(e52045a7af4c4b0f9935695cfc5ff729bf9bd7c1) ) + ROM_LOAD16_BYTE( "ss51ob0u.bin", 0x000000, 0x200000, CRC(b0745ca0) SHA1(579ea7fd7b9a181fd9d08c50c6c5941264aa0b6d) ) + + ROM_REGION( 0x400000, NAMCONB1_TILEGFXREGION, ROMREGION_DISPOSE ) + ROM_LOAD( "ss51chr0.bin", 0x000000, 0x100000, CRC(86dd3280) SHA1(07ba6d3edc5c38bf82ddaf8f6de7ef0f5d0788b2) ) + ROM_LOAD( "ss51chr1.bin", 0x100000, 0x100000, CRC(2ba0fb9e) SHA1(39ceddad7bc0073b361eb776762002a9fc61b337) ) + ROM_LOAD( "ss51chr2.bin", 0x200000, 0x100000, CRC(ca0e6c1a) SHA1(1221cd30894e97e2f7d456509c7b6732ec3d06a5) ) + ROM_LOAD( "ss51chr3.bin", 0x300000, 0x100000, CRC(73ca58f6) SHA1(44bdc943fb10dc53279662cd528169a27d57e478) ) + + ROM_REGION( 0x80000, NAMCONB1_TILEMASKREGION, 0 ) + ROM_LOAD( "ss51sha0.bin", 0, 0x80000, CRC(3bf4d081) SHA1(7b07b86f753ea6bcd90eb7d152c12884a6fe785a) ) +ROM_END + +ROM_START( sws96 ) + ROM_REGION( 0x100000, REGION_CPU1, 0 ) /* main program */ + ROM_LOAD32_WORD( "ss61mprl.bin", 0x00002, 0x80000, CRC(06f55e73) SHA1(6be26f8a2ef600bf07c580f210d7b265ac464002) ) + ROM_LOAD32_WORD( "ss61mpru.bin", 0x00000, 0x80000, CRC(0abdbb83) SHA1(67e8b712291f9bcf2c3a52fbc451fad54679cab8) ) + + ROM_REGION16_LE( 0x100000, REGION_USER4, 0 ) /* sound data and MCU BIOS */ + ROM_LOAD( "ss61spr0.bin", 0, 0x80000, CRC(71cb12f5) SHA1(6e13bd16a5ba14d6e47a21875db3663ada3c06a5) ) + NAMCO_C7X_BIOS + + ROM_REGION( 0x200000, REGION_SOUND1, 0 ) + ROM_LOAD( "ss61voi0.bin", 0, 0x200000, CRC(2740ec72) SHA1(9694a7378ea72771d2b1d43db6d74ed347ba27d3) ) + + ROM_REGION( 0x400000, NAMCONB1_SPRITEGFXREGION, ROMREGION_DISPOSE ) + ROM_LOAD16_BYTE( "ss61ob0l.bin", 0x000001, 0x200000, CRC(579b19d4) SHA1(7f18097c683d2b1c532f54ee514dd499f5965165) ) + ROM_LOAD16_BYTE( "ss61ob0u.bin", 0x000000, 0x200000, CRC(a69bbd9e) SHA1(8f4c44e2caa31d25433a04c19c51904ec9461e2f) ) + + ROM_REGION( 0x400000, NAMCONB1_TILEGFXREGION, ROMREGION_DISPOSE ) + ROM_LOAD( "ss61chr0.bin", 0x000000, 0x100000, CRC(9d2ae07b) SHA1(7d268f6c7d8145c913f80049369ae3106d69e939) ) + ROM_LOAD( "ss61chr1.bin", 0x100000, 0x100000, CRC(4dc75da6) SHA1(a29932b4fb39648e2c02df668f46cafb80c53619) ) + ROM_LOAD( "ss61chr2.bin", 0x200000, 0x100000, CRC(1240704b) SHA1(a24281681053cc6649f00ec5a31c7249101eaee1) ) + ROM_LOAD( "ss61chr3.bin", 0x300000, 0x100000, CRC(066581d4) SHA1(999cd478d9da452bb57793cd276c6c0d87e2825e) ) + + ROM_REGION( 0x80000, NAMCONB1_TILEMASKREGION, 0 ) + ROM_LOAD( "ss61sha0.bin", 0, 0x80000, CRC(fceaa19c) SHA1(c9303a755ac7af19c4804a264d1a09d987f39e74) ) +ROM_END + +ROM_START( sws97 ) + ROM_REGION( 0x100000, REGION_CPU1, 0 ) /* main program */ + ROM_LOAD32_WORD( "ss71mprl.bin", 0x00002, 0x80000, CRC(bd60b50e) SHA1(9e00bacd506182ab2af2c0efdd5cc401b3e46485) ) + ROM_LOAD32_WORD( "ss71mpru.bin", 0x00000, 0x80000, CRC(3444f5a8) SHA1(8d0f35b3ba8f65dbc67c3b2d273833227a8b8b2a) ) + + ROM_REGION16_LE( 0x100000, REGION_USER4, 0 ) /* sound data and MCU BIOS */ + ROM_LOAD( "ss71spr0.bin", 0, 0x80000, CRC(71cb12f5) SHA1(6e13bd16a5ba14d6e47a21875db3663ada3c06a5) ) + NAMCO_C7X_BIOS + + ROM_REGION( 0x200000, REGION_SOUND1, 0 ) + ROM_LOAD( "ss71voi0.bin", 0, 0x200000, CRC(2740ec72) SHA1(9694a7378ea72771d2b1d43db6d74ed347ba27d3) ) + + ROM_REGION( 0x400000, NAMCONB1_SPRITEGFXREGION, ROMREGION_DISPOSE ) + ROM_LOAD16_BYTE( "ss71ob0l.bin", 0x000001, 0x200000, CRC(9559ad44) SHA1(fd56a8620f6958cc090f783d74cb38bba46d2423) ) + ROM_LOAD16_BYTE( "ss71ob0u.bin", 0x000000, 0x200000, CRC(4df4a722) SHA1(07eb94628ceeb7cbce2d39d479f33c37583a346a) ) + + ROM_REGION( 0x400000, NAMCONB1_TILEGFXREGION, ROMREGION_DISPOSE ) + ROM_LOAD( "ss71chr0.bin", 0x000000, 0x100000, CRC(bd606356) SHA1(a62c55600e46f8821db0b84d79fc2588742ad7ad) ) + ROM_LOAD( "ss71chr1.bin", 0x100000, 0x100000, CRC(4dc75da6) SHA1(a29932b4fb39648e2c02df668f46cafb80c53619) ) + ROM_LOAD( "ss71chr2.bin", 0x200000, 0x100000, CRC(1240704b) SHA1(a24281681053cc6649f00ec5a31c7249101eaee1) ) + ROM_LOAD( "ss71chr3.bin", 0x300000, 0x100000, CRC(066581d4) SHA1(999cd478d9da452bb57793cd276c6c0d87e2825e) ) + + ROM_REGION( 0x80000, NAMCONB1_TILEMASKREGION, 0 ) + ROM_LOAD( "ss71sha0.bin", 0, 0x80000, CRC(be8c2758) SHA1(0a1b6c03cdaec6103ae8483b67faf3840234f825) ) +ROM_END + +ROM_START( vshoot ) + ROM_REGION( 0x100000, REGION_CPU1, 0 ) /* main program */ + ROM_LOAD32_WORD( "vsj1mprl.15b", 0x00002, 0x80000, CRC(83a60d92) SHA1(c3db0c79f772a79418914353a3d6ecc4883ea54e) ) + ROM_LOAD32_WORD( "vsj1mpru.13b", 0x00000, 0x80000, CRC(c63eb92d) SHA1(f93bd4b91daee645677955020dc8df14dc9bfd27) ) + + ROM_REGION16_LE( 0x100000, REGION_USER4, 0 ) /* sound data and MCU BIOS */ + ROM_LOAD( "vsj1spr0.5b", 0, 0x80000, CRC(b0c71aa6) SHA1(a94fae02b46a645ff728d2f98827c85ff155892b) ) + NAMCO_C7X_BIOS + + ROM_REGION( 0x200000, REGION_SOUND1, 0 ) + ROM_LOAD( "vsjvoi-0.5j", 0, 0x200000, CRC(0528c9ed) SHA1(52b67978fdeb97b77065575774a7ddeb49fe1d81) ) + + ROM_REGION( 0x800000, NAMCONB1_SPRITEGFXREGION, ROMREGION_DISPOSE ) + ROM_LOAD16_BYTE( "vsjobj0l.ic1", 0x000001, 0x200000, CRC(e134faa7) SHA1(a844c8a5bd6d8907f9e5c7ba9e2ee8e9a886cd1e) ) + ROM_LOAD16_BYTE( "vsjobj0u.ic2", 0x000000, 0x200000, CRC(974d0714) SHA1(976050eaf82d4b66e13c1c579e5521eb867527fb) ) + ROM_LOAD16_BYTE( "vsjobj1l.ic3", 0x400001, 0x200000, CRC(ba46f967) SHA1(ddfb0ac7fba7369869e4df9a66d465a662eba2e6) ) + ROM_LOAD16_BYTE( "vsjobj1u.ic4", 0x400000, 0x200000, CRC(09da7e9c) SHA1(e98e07a886a4fe369748fc97f3cee6a4bb668385) ) + + ROM_REGION( 0x400000, NAMCONB1_TILEGFXREGION, ROMREGION_DISPOSE ) + ROM_LOAD( "vsjchr-0.8j", 0x000000, 0x100000, CRC(2af8ba7c) SHA1(74f5a382425974a9b2167bb01672dd13dea882f5) ) + ROM_LOAD( "vsjchr-1.9j", 0x100000, 0x100000, CRC(b789d53e) SHA1(48b4cf956f9025e3c2b6f59b317596dfe0b6b142) ) + ROM_LOAD( "vsjchr-2.10j", 0x200000, 0x100000, CRC(7ef80758) SHA1(c7e6d14f0823607dfd8a13ea6f164ffa85b5563e) ) + ROM_LOAD( "vsjchr-3.11j", 0x300000, 0x100000, CRC(73ca58f6) SHA1(44bdc943fb10dc53279662cd528169a27d57e478) ) + + ROM_REGION( 0x80000, NAMCONB1_TILEMASKREGION, 0 ) + ROM_LOAD( "vsjsha-0.5m", 0, 0x80000, CRC(78335ea4) SHA1(d4b9f179b1b456a866354ea308664c036de6414d) ) +ROM_END + +ROM_START( outfxies ) + ROM_REGION( 0x100000, REGION_CPU1, 0 ) /* main program */ + ROM_LOAD32_WORD( "ou2mprl.11c", 0x00002, 0x80000, CRC(f414a32e) SHA1(9733ab087cfde1b8fb5b676d8a2eb5325ebdbb56) ) + ROM_LOAD32_WORD( "ou2mpru.11d", 0x00000, 0x80000, CRC(ab5083fb) SHA1(cb2e7a4838c2b80057edb83ea63116bccb1394d3) ) + + ROM_REGION16_LE( 0x100000, REGION_USER4, 0 ) /* sound data and MCU BIOS */ + ROM_LOAD( "ou1spr0.5b", 0, 0x80000, CRC(60cee566) SHA1(2f3b96793816d90011586e0f9f71c58b636b6d4c) ) + NAMCO_C7X_BIOS + + ROM_REGION( 0x200000, REGION_SOUND1, 0 ) + ROM_LOAD( "ou1voi0.6n", 0, 0x200000, CRC(2d8fb271) SHA1(bde9d45979728f5a2cd8ec89f5f81bf16b694cc2) ) + + ROM_REGION( 0x200000, NAMCONB1_TILEMASKREGION, 0 ) + ROM_LOAD( "ou1shas.12s", 0, 0x200000,CRC(9bcb0397) SHA1(54a32b6394d0e6f51bfd281f8a4bafce6ddf6246) ) + + ROM_REGION( 0x200000, NAMCONB1_ROTMASKREGION, 0 ) + ROM_LOAD( "ou1shar.18s", 0, 0x200000, CRC(fbb48194) SHA1(2d3ec5bc519fad2b755018f83fadfe0cba13c292) ) + + ROM_REGION( 0x2000000, NAMCONB1_SPRITEGFXREGION, ROMREGION_DISPOSE ) + ROM_LOAD16_BYTE( "ou1obj0l", 0x0000001, 0x200000, CRC(1b4f7184) SHA1(a05d67842fce92f321d1fdd3bd30aa3427775a0c) ) + ROM_LOAD16_BYTE( "ou1obj0u", 0x0000000, 0x200000, CRC(d0a69794) SHA1(07d449e54e9971abeb9cd5bb7b372270fafa8bac) ) + ROM_LOAD16_BYTE( "ou1obj1l", 0x0400001, 0x200000, CRC(48a93e84) SHA1(6935ec161a12237d4cec732d42070f381c23b47c) ) + ROM_LOAD16_BYTE( "ou1obj1u", 0x0400000, 0x200000, CRC(999de386) SHA1(d4780ab1929a3e2c2df464363d6451a2bcecb2a2) ) + ROM_LOAD16_BYTE( "ou1obj2l", 0x0800001, 0x200000, CRC(30386cd0) SHA1(3563c5378288da58136f102381373bd6fcaeec21) ) + ROM_LOAD16_BYTE( "ou1obj2u", 0x0800000, 0x200000, CRC(ccada5f8) SHA1(75ed95bb295780126879d67bba4d0ae1da63c928) ) + ROM_LOAD16_BYTE( "ou1obj3l", 0x0c00001, 0x200000, CRC(5f41b44e) SHA1(3f5376fcd3e15af772df65b8eda4d5ee07ee5664) ) + ROM_LOAD16_BYTE( "ou1obj3u", 0x0c00000, 0x200000, CRC(bc852c8e) SHA1(4863302c45ee16aaf2c36dac07aceaf287959c53) ) + ROM_LOAD16_BYTE( "ou1obj4l", 0x1000001, 0x200000, CRC(99a5f9d7) SHA1(b0f46f4ac357918137031a19c36a56a47b7aefd6) ) + ROM_LOAD16_BYTE( "ou1obj4u", 0x1000000, 0x200000, CRC(70ecaabb) SHA1(521c6849526fb271e6447f6c4f5bfa081f96b91e) ) + + ROM_REGION( 0x600000, NAMCONB1_ROTGFXREGION, ROMREGION_DISPOSE ) + ROM_LOAD( "ou1-rot0", 0x000000, 0x200000, CRC(a50c67c8) SHA1(432b8451eb9eaa3078134fce1e5e2d58a8b64be3) ) + ROM_LOAD( "ou1-rot1", 0x200000, 0x200000, CRC(14866780) SHA1(4a54151fada4dfba7232e53e40623e5697eeb7db) ) + ROM_LOAD( "ou1-rot2", 0x400000, 0x200000, CRC(55ccf3af) SHA1(d98489aaa840cbffb21c47609961c1163b0336f3) ) + + ROM_REGION( 0x200000, NAMCONB1_TILEGFXREGION, ROMREGION_DISPOSE ) + ROM_LOAD( "ou1-scr0", 0x000000, 0x200000, CRC(b3b3f2e9) SHA1(541bd7e9ba12aff4ec4033bd9c6bb19476acb3c4) ) + + ROM_REGION( 0x100000, REGION_USER1, 0 ) + ROM_LOAD( "ou1dat0.20a", 0x00000, 0x80000, CRC(1a49aead) SHA1(df243aff1a6fb5bcf4d5d883c5af2374a4aff477) ) + ROM_LOAD( "ou1dat1.20b", 0x80000, 0x80000, CRC(63bb119d) SHA1(d4c2820243b84c3f5cdf7f9e66bb50f53d0efed2) ) +ROM_END + +ROM_START( outfxesj ) + ROM_REGION( 0x100000, REGION_CPU1, 0 ) /* main program */ + ROM_LOAD32_WORD( "ou1-mprl.11c", 0x00002, 0x80000, CRC(d3b9e530) SHA1(3f5fe5eea817a23dfe42e76f32912ce94d4c49c9) ) + ROM_LOAD32_WORD( "ou1-mpru.11d", 0x00000, 0x80000, CRC(d98308fb) SHA1(fdefeebf56464a20e3aaefd88df4eee9f7b5c4f3) ) + + ROM_REGION16_LE( 0x100000, REGION_USER4, 0 ) /* sound data and MCU BIOS */ + ROM_LOAD( "ou1spr0.5b", 0, 0x80000, CRC(60cee566) SHA1(2f3b96793816d90011586e0f9f71c58b636b6d4c) ) + NAMCO_C7X_BIOS + + ROM_REGION( 0x200000, REGION_SOUND1, 0 ) + ROM_LOAD( "ou1voi0.6n", 0, 0x200000, CRC(2d8fb271) SHA1(bde9d45979728f5a2cd8ec89f5f81bf16b694cc2) ) + + ROM_REGION( 0x200000, NAMCONB1_TILEMASKREGION, 0 ) + ROM_LOAD( "ou1shas.12s", 0, 0x200000,CRC(9bcb0397) SHA1(54a32b6394d0e6f51bfd281f8a4bafce6ddf6246) ) + + ROM_REGION( 0x200000, NAMCONB1_ROTMASKREGION, 0 ) + ROM_LOAD( "ou1shar.18s", 0, 0x200000, CRC(fbb48194) SHA1(2d3ec5bc519fad2b755018f83fadfe0cba13c292) ) + + ROM_REGION( 0x2000000, NAMCONB1_SPRITEGFXREGION, ROMREGION_DISPOSE ) + ROM_LOAD16_BYTE( "ou1obj0l", 0x0000001, 0x200000, CRC(1b4f7184) SHA1(a05d67842fce92f321d1fdd3bd30aa3427775a0c) ) + ROM_LOAD16_BYTE( "ou1obj0u", 0x0000000, 0x200000, CRC(d0a69794) SHA1(07d449e54e9971abeb9cd5bb7b372270fafa8bac) ) + ROM_LOAD16_BYTE( "ou1obj1l", 0x0400001, 0x200000, CRC(48a93e84) SHA1(6935ec161a12237d4cec732d42070f381c23b47c) ) + ROM_LOAD16_BYTE( "ou1obj1u", 0x0400000, 0x200000, CRC(999de386) SHA1(d4780ab1929a3e2c2df464363d6451a2bcecb2a2) ) + ROM_LOAD16_BYTE( "ou1obj2l", 0x0800001, 0x200000, CRC(30386cd0) SHA1(3563c5378288da58136f102381373bd6fcaeec21) ) + ROM_LOAD16_BYTE( "ou1obj2u", 0x0800000, 0x200000, CRC(ccada5f8) SHA1(75ed95bb295780126879d67bba4d0ae1da63c928) ) + ROM_LOAD16_BYTE( "ou1obj3l", 0x0c00001, 0x200000, CRC(5f41b44e) SHA1(3f5376fcd3e15af772df65b8eda4d5ee07ee5664) ) + ROM_LOAD16_BYTE( "ou1obj3u", 0x0c00000, 0x200000, CRC(bc852c8e) SHA1(4863302c45ee16aaf2c36dac07aceaf287959c53) ) + ROM_LOAD16_BYTE( "ou1obj4l", 0x1000001, 0x200000, CRC(99a5f9d7) SHA1(b0f46f4ac357918137031a19c36a56a47b7aefd6) ) + ROM_LOAD16_BYTE( "ou1obj4u", 0x1000000, 0x200000, CRC(70ecaabb) SHA1(521c6849526fb271e6447f6c4f5bfa081f96b91e) ) + + ROM_REGION( 0x600000, NAMCONB1_ROTGFXREGION, ROMREGION_DISPOSE ) + ROM_LOAD( "ou1-rot0", 0x000000, 0x200000, CRC(a50c67c8) SHA1(432b8451eb9eaa3078134fce1e5e2d58a8b64be3) ) + ROM_LOAD( "ou1-rot1", 0x200000, 0x200000, CRC(14866780) SHA1(4a54151fada4dfba7232e53e40623e5697eeb7db) ) + ROM_LOAD( "ou1-rot2", 0x400000, 0x200000, CRC(55ccf3af) SHA1(d98489aaa840cbffb21c47609961c1163b0336f3) ) + + ROM_REGION( 0x200000, NAMCONB1_TILEGFXREGION, ROMREGION_DISPOSE ) + ROM_LOAD( "ou1-scr0", 0x000000, 0x200000, CRC(b3b3f2e9) SHA1(541bd7e9ba12aff4ec4033bd9c6bb19476acb3c4) ) + + ROM_REGION( 0x100000, REGION_USER1, 0 ) + ROM_LOAD( "ou1dat0.20a", 0x00000, 0x80000, CRC(1a49aead) SHA1(df243aff1a6fb5bcf4d5d883c5af2374a4aff477) ) + ROM_LOAD( "ou1dat1.20b", 0x80000, 0x80000, CRC(63bb119d) SHA1(d4c2820243b84c3f5cdf7f9e66bb50f53d0efed2) ) +ROM_END + + +ROM_START( machbrkr ) + ROM_REGION( 0x100000, REGION_CPU1, 0 ) /* main program */ + ROM_LOAD32_WORD( "mb1_mprl.11c", 0x00002, 0x80000, CRC(86cf0644) SHA1(07eeadda1d94c9be2f882edb6f2eb0b98292e500) ) + ROM_LOAD32_WORD( "mb1_mpru.11d", 0x00000, 0x80000, CRC(fb1ff916) SHA1(e0ba96c1f26a60f87d8050e582e164d91e132183) ) + + ROM_REGION16_LE( 0x100000, REGION_USER4, 0 ) /* sound data and MCU BIOS */ + ROM_LOAD( "mb1_spr0.5b", 0, 0x80000, CRC(d10f6272) SHA1(cb99e06e050dbf86998ea51ef2ca130b2acfb2f6) ) + NAMCO_C7X_BIOS + + ROM_REGION( 0x1000000, REGION_SOUND1, 0 ) + ROM_LOAD( "mb1_voi0.6n", 0x000000, 0x200000, CRC(d363ca3b) SHA1(71650b66ca3eb00f6ad7d3f1df0f37210b77b942) ) + ROM_RELOAD( 0x400000, 0x200000) + ROM_LOAD( "mb1_voi1.6p", 0x800000, 0x200000, CRC(7e1c2603) SHA1(533098a54fb897931f1d75be9e69a5c047e4c446) ) + ROM_RELOAD( 0xc00000, 0x200000) + + ROM_REGION( 0x200000, NAMCONB1_TILEMASKREGION, 0 ) + ROM_LOAD( "mb1_shas.12s", 0, 0x100000, CRC(c51c614b) SHA1(519ecad2e4543c05ec35a727f4c875ab006291af) ) + + ROM_REGION( 0x200000, NAMCONB1_ROTMASKREGION, 0 ) + ROM_LOAD( "mb1_shar.18s", 0, 0x080000, CRC(d9329b10) SHA1(149c8804c07350f47af36bc7902371f1dfbed272) ) + + ROM_REGION( 0x2000000, NAMCONB1_SPRITEGFXREGION, ROMREGION_DISPOSE ) + ROM_LOAD16_BYTE( "mb1obj0l.4c", 0x0000001, 0x200000, CRC(056e6b1c) SHA1(44e49de80c925c8fbe04bf9328a77a50a305a5a7) ) + ROM_LOAD16_BYTE( "mb1obj0u.8c", 0x0000000, 0x200000, CRC(e19b1714) SHA1(ff43bf3c8e8698934c4057c7b4c72db73929e2af) ) + ROM_LOAD16_BYTE( "mb1obj1l.4b", 0x0400001, 0x200000, CRC(af69f7f1) SHA1(414544ec1a9aaffb751beaf63d937ce78d0cf9c6) ) + ROM_LOAD16_BYTE( "mb1obj1u.8b", 0x0400000, 0x200000, CRC(e8ff9082) SHA1(a8c7feb33f6243f1f3bda00deffa695ac2b19171) ) + ROM_LOAD16_BYTE( "mb1obj2l.4a", 0x0800001, 0x200000, CRC(3a5c7379) SHA1(ffe9a229eb04a894e5f3bb8ac2fc4617b5413ac3) ) + ROM_LOAD16_BYTE( "mb1obj2u.8b", 0x0800000, 0x200000, CRC(b59cf5e0) SHA1(eee7511f117a4c1a24e4187e3f30e4d66f914a81) ) + ROM_LOAD16_BYTE( "mb1obj3l.6c", 0x0c00001, 0x200000, CRC(9a765d58) SHA1(2e9ea0f76f80383fcf093e947e1fe161743e33fb) ) + ROM_LOAD16_BYTE( "mb1obj3u.9c", 0x0c00000, 0x200000, CRC(5329c693) SHA1(955b3b8b9813826347a1211f71fa0a294b759ccd) ) + ROM_LOAD16_BYTE( "mb1obj4l.6b", 0x1000001, 0x200000, CRC(a650b05e) SHA1(b247699433c7bf4b6ae990fc06255cfd48a248dd) ) + ROM_LOAD16_BYTE( "mb1obj4u.9b", 0x1000000, 0x200000, CRC(6d0c37e9) SHA1(3a3feb74b890e0a933dcc791e5eee1fb4bdcbb69) ) + + ROM_REGION( 0x400000, NAMCONB1_ROTGFXREGION, ROMREGION_DISPOSE ) + ROM_LOAD( "mb1_rot0.3d", 0x000000, 0x200000, CRC(bc353630) SHA1(2bbddda632298899716394ddcfe51412576ca74a) ) + ROM_LOAD( "mb1_rot1.3c", 0x200000, 0x200000, CRC(cf7688cb) SHA1(29a040ce2c4e3bf671cff1a7a1ade06103db236a) ) + + ROM_REGION( 0x600000, NAMCONB1_TILEGFXREGION, ROMREGION_DISPOSE ) + ROM_LOAD( "mb1_scr0.1d", 0x000000, 0x200000, CRC(c678d5f3) SHA1(98d1523bef50d444be9485c4e7f6932cccbea191) ) + ROM_LOAD( "mb1_scr1.1c", 0x200000, 0x200000, CRC(fb2b1939) SHA1(bf9d7b93205e7012aa86693f3d2ba8f4d729bc97) ) + ROM_LOAD( "mb1_scr2.1b", 0x400000, 0x200000, CRC(0e6097a5) SHA1(b6c64b3e34ba913138b6b7c3d99d2be4f3ceda08) ) + + ROM_REGION( 0x100000, REGION_USER1, 0 ) + ROM_LOAD( "mb1_dat0.20a", 0x00000, 0x80000, CRC(fb2e3cd1) SHA1(019b1d645a07619036522f42e0b9a537f39b6b93) ) +ROM_END + +/***************************************************************/ + +static INPUT_PORTS_START( gunbulet ) + PORT_START + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN1 ) + PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_COIN2 ) + + PORT_START + PORT_DIPNAME( 0x01, 0x00, "DSW2 (Unused)" ) + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x01, DEF_STR( On ) ) + PORT_DIPNAME( 0x02, 0x00, "DSW1 (Test)" ) + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x02, DEF_STR( On ) ) + PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_SERVICE1 ) + PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) /* C75 status */ + + PORT_START + PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) + PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_START1 ) + + PORT_START + PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(2) + PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_START2 ) + + PORT_START + PORT_BIT( 0xff, 0x80, IPT_LIGHTGUN_X ) PORT_CROSSHAIR(X, 1.0, 0.0, 0) PORT_SENSITIVITY(50) PORT_KEYDELTA(4) + PORT_START + PORT_BIT( 0xff, 0x80, IPT_LIGHTGUN_Y ) PORT_CROSSHAIR(Y, 1.0, 0.0, 0) PORT_SENSITIVITY(50) PORT_KEYDELTA(4) + PORT_START + PORT_BIT( 0xff, 0x80, IPT_LIGHTGUN_X ) PORT_CROSSHAIR(X, 1.0, 0.0, 0) PORT_SENSITIVITY(50) PORT_KEYDELTA(4) PORT_PLAYER(2) + PORT_START + PORT_BIT( 0xff, 0x80, IPT_LIGHTGUN_Y ) PORT_CROSSHAIR(Y, 1.0, 0.0, 0) PORT_SENSITIVITY(50) PORT_KEYDELTA(4) PORT_PLAYER(2) +INPUT_PORTS_END + +static INPUT_PORTS_START( machbrkr ) + PORT_START + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN1 ) + PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_COIN2 ) + + PORT_START + PORT_DIPNAME( 0x01, 0x00, "Freeze Screen" ) + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x01, DEF_STR( On ) ) + PORT_DIPNAME( 0x02, 0x00, "DSW1 (Test)" ) + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x02, DEF_STR( On ) ) + PORT_DIPNAME( 0x04, 0x00, "Alternate Test Switch" ) + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x04, DEF_STR( On ) ) + PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_SERVICE1 ) + PORT_DIPNAME( 0x10, 0x00, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x10, DEF_STR( On ) ) + PORT_DIPNAME( 0x20, 0x00, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x20, DEF_STR( On ) ) + PORT_DIPNAME( 0x40, 0x00, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x40, DEF_STR( On ) ) + PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) /* C75 status */ + + PORT_START + PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) // self test: up + PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON2 ) // self test: enter + PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_BUTTON3 ) // self test: down + PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_START1 ) + + PORT_START + PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(2) + PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_PLAYER(2) + PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_PLAYER(2) + PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_START2 ) + + PORT_START + PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(3) + PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_PLAYER(3) + PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_PLAYER(3) + PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_START3 ) + + PORT_START + PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(4) + PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_PLAYER(4) + PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_PLAYER(4) + PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_START4 ) +INPUT_PORTS_END + +static INPUT_PORTS_START( outfxies ) + PORT_START + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN1 ) + PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_COIN2 ) + + PORT_START + PORT_DIPNAME( 0x01, 0x00, "Freeze Screen" ) + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x01, DEF_STR( On ) ) + PORT_DIPNAME( 0x02, 0x00, "DSW1 (Test)" ) + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x02, DEF_STR( On ) ) + PORT_DIPNAME( 0x04, 0x00, "Alternate Test Switch" ) + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x04, DEF_STR( On ) ) + PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_SERVICE1 ) + PORT_DIPNAME( 0x10, 0x00, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x10, DEF_STR( On ) ) + PORT_DIPNAME( 0x20, 0x00, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x20, DEF_STR( On ) ) + PORT_DIPNAME( 0x40, 0x00, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x40, DEF_STR( On ) ) + PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) /* C75 status */ + + PORT_START + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_8WAY + PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_8WAY + PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_8WAY + PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_8WAY + PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) + PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON2 ) + PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_BUTTON3 ) + PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_START1 ) + + PORT_START + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) + PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) + PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) + PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) + PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(2) + PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_PLAYER(2) + PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_PLAYER(2) + PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_START2 ) +INPUT_PORTS_END + +static INPUT_PORTS_START( namconb1 ) + PORT_START + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN1 ) + PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_COIN2 ) + + PORT_START + PORT_DIPNAME( 0x01, 0x00, "DSW2 (Unused)" ) + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x01, DEF_STR( On ) ) + PORT_DIPNAME( 0x02, 0x00, "DSW1 (Test)" ) + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x02, DEF_STR( On ) ) + PORT_DIPNAME( 0x04, 0x00, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x04, DEF_STR( On ) ) + PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_SERVICE1 ) + PORT_DIPNAME( 0x10, 0x00, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x10, DEF_STR( On ) ) + PORT_DIPNAME( 0x20, 0x00, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x20, DEF_STR( On ) ) + PORT_DIPNAME( 0x40, 0x00, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x40, DEF_STR( On ) ) + PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) /* C75 status */ + + PORT_START + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_8WAY + PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_8WAY + PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_8WAY + PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_8WAY + PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) + PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON2 ) + PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_BUTTON3 ) + PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_START1 ) + + PORT_START + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) + PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) + PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) + PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) + PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(2) + PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_PLAYER(2) + PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_PLAYER(2) + PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_START2 ) +INPUT_PORTS_END + + +GAME( 1994, nebulray, 0, namconb1, namconb1, nebulray, ROT90, "Namco", "Nebulas Ray (World)", GAME_IMPERFECT_SOUND ) +GAME( 1994, nebulryj, nebulray, namconb1, namconb1, nebulray, ROT90, "Namco", "Nebulas Ray (Japan)", GAME_IMPERFECT_SOUND ) +GAME( 1994, ptblank, 0, namconb1, gunbulet, gunbulet, ROT0, "Namco", "Point Blank", GAME_IMPERFECT_SOUND ) +GAME( 1994, gunbulet, ptblank, namconb1, gunbulet, gunbulet, ROT0, "Namco", "Gun Bullet (Japan)", GAME_IMPERFECT_SOUND ) +GAME( 1993, gslugrsj, 0, namconb1, namconb1, gslgr94u, ROT0, "Namco", "Great Sluggers (Japan)", GAME_IMPERFECT_SOUND ) +GAME( 1994, gslgr94u, 0, namconb1, namconb1, gslgr94u, ROT0, "Namco", "Great Sluggers '94", GAME_IMPERFECT_SOUND ) +GAME( 1995, sws95, 0, namconb1, namconb1, sws95, ROT0, "Namco", "Super World Stadium '95 (Japan)", GAME_IMPERFECT_SOUND ) +GAME( 1996, sws96, 0, namconb1, namconb1, sws96, ROT0, "Namco", "Super World Stadium '96 (Japan)", GAME_IMPERFECT_SOUND ) +GAME( 1997, sws97, 0, namconb1, namconb1, sws97, ROT0, "Namco", "Super World Stadium '97 (Japan)", GAME_IMPERFECT_SOUND ) +GAME( 1994, vshoot, 0, namconb1, namconb1, vshoot, ROT0, "Namco", "J-League Soccer V-Shoot", GAME_IMPERFECT_SOUND ) + +/* YEAR, NAME, PARENT, MACHINE, INPUT, INIT, MNTR, COMPANY, FULLNAME, FLAGS */ +GAME( 1994, outfxies, 0, namconb2, outfxies, outfxies, ROT0, "Namco", "Outfoxies", GAME_IMPERFECT_SOUND ) +GAME( 1994, outfxesj, outfxies, namconb2, outfxies, outfxies, ROT0, "Namco", "Outfoxies (Japan)", GAME_IMPERFECT_SOUND ) +GAME( 1995, machbrkr, 0, namconb2, namconb1, machbrkr, ROT0, "Namco", "Mach Breakers - Numan Athletics 2 (Japan)", GAME_IMPERFECT_SOUND ) |