QuarterArcade Coin-Op Tech Net

Quick Nav: # A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

Coin-Op : Arcade : Nintendo Super System : VM Driver Source

Source Listing


     1: /***************************************************************************
     2: 
     3:   snes.c
     4: 
     5:   Driver file to handle emulation of the Nintendo Super NES.
     6: 
     7:   Anthony Kruize
     8:   Based on the original MESS driver by Lee Hammerton (aka Savoury Snax)
     9: 
    10:   Driver is preliminary right now.
    11:   Sound emulation currently consists of the SPC700 and that's about it. Without
    12:   the DSP being emulated, there's no sound even if the code is being executed.
    13:   I need to figure out how to get the 65816 and the SPC700 to stay in sync.
    14: 
    15:   The memory map included below is setup in a way to make it easier to handle
    16:   Mode 20 and Mode 21 ROMs.
    17: 
    18:   Todo (in no particular order):
    19:     - Emulate extra chips - superfx, dsp2, sa-1 etc.
    20:     - Add sound emulation. Currently the SPC700 is emulated, but that's it.
    21:     - Add horizontal mosaic, hi-res. interlaced etc to video emulation.
    22:     - Add support for fullgraphic mode(partially done).
    23:     - Fix support for Mode 7. (In Progress)
    24:     - Handle interleaved roms (maybe even multi-part roms, but how?)
    25:     - Add support for running at 3.58Mhz at the appropriate time.
    26:     - I'm sure there's lots more ...
    27: 
    28:     Nintendo Super System
    29: 
    30:   There is a second processor and Menu system for selecting the games
    31:   controlling timer etc.? which still needs emulating there are dipswitches too
    32: 
    33: ***************************************************************************/
    34: #include "driver.h" 
    35: #include "vidhrdw/generic.h" 
    36: #include "includes/snes.h" 
    37: 
    38: extern DRIVER_INIT( snes );
    39: 
    40: static MEMORY_READ_START( snes_readmem )
    41: 	{ 0x000000, 0x2fffff, snes_r_bank1 },	/* I/O and ROM (repeats for each bank) */
    42: 	{ 0x300000, 0x3fffff, snes_r_bank2 },	/* I/O and ROM (repeats for each bank) */
    43: 	{ 0x400000, 0x5fffff, snes_r_bank3 },	/* ROM (and reserved in Mode 20) */
    44: 	{ 0x600000, 0x6fffff, MRA_NOP },		/* Reserved */
    45: 	{ 0x700000, 0x77ffff, snes_r_sram },	/* 256KB Mode 20 save ram + reserved from 0x8000 - 0xffff */
    46: 	{ 0x780000, 0x7dffff, MRA_NOP },		/* Reserved */
    47: 	{ 0x7e0000, 0x7fffff, MRA_RAM },		/* 8KB Low RAM, 24KB High RAM, 96KB Expanded RAM */
    48: 	{ 0x800000, 0xffffff, snes_r_bank4 },	/* Mirror and ROM */
    49: MEMORY_END
    50: 
    51: static MEMORY_WRITE_START( snes_writemem )
    52: 	{ 0x000000, 0x2fffff, snes_w_bank1 },	/* I/O and ROM (repeats for each bank) */
    53: 	{ 0x300000, 0x3fffff, snes_w_bank2 },	/* I/O and ROM (repeats for each bank) */
    54: 	{ 0x400000, 0x5fffff, MWA_ROM },		/* ROM (and reserved in Mode 20) */
    55: 	{ 0x600000, 0x6fffff, MWA_NOP },		/* Reserved */
    56: 	{ 0x700000, 0x77ffff, MWA_RAM },		/* 256KB Mode 20 save ram + reserved from 0x8000 - 0xffff */
    57: 	{ 0x780000, 0x7dffff, MWA_NOP },		/* Reserved */
    58: 	{ 0x7e0000, 0x7fffff, MWA_RAM },		/* 8KB Low RAM, 24KB High RAM, 96KB Expanded RAM */
    59: 	{ 0x800000, 0xffffff, snes_w_bank4 },	/* Mirror and ROM */
    60: MEMORY_END
    61: 
    62: static MEMORY_READ_START( spc_readmem )
    63: 	{ 0x0000, 0x00ef, MRA_RAM },			/* lower 32k ram */
    64: 	{ 0x00f0, 0x00ff, spc_r_io },			/* spc io */
    65: 	{ 0x0100, 0x7fff, MRA_RAM },			/* lower 32k ram */
    66: 	{ 0x8000, 0xffbf, MRA_NOP },			/* Not connected in SNES - normally upper 32k ram */
    67: 	{ 0xffc0, 0xffff, MRA_ROM },			/* Initial program loader ROM */
    68: MEMORY_END
    69: 
    70: static MEMORY_WRITE_START( spc_writemem )
    71: 	{ 0x0000, 0x00ef, MWA_RAM },			/* lower 32k ram */
    72: 	{ 0x00f0, 0x00ff, spc_w_io },			/* spc io */
    73: 	{ 0x0100, 0x7fff, MWA_RAM },			/* lower 32k ram */
    74: 	{ 0x8000, 0xffbf, MWA_NOP },			/* Not connected in SNES - normally upper 32k ram  */
    75: 	{ 0xffc0, 0xffff, MWA_ROM },			/* Initial program loader ROM */
    76: MEMORY_END
    77: 
    78: INPUT_PORTS_START( snes )
    79: 	PORT_START  /* IN 0 : Joypad 1 - L */
    80: 	PORT_BIT_NAME( 0x80, IP_ACTIVE_HIGH, IPT_BUTTON3   | IPF_PLAYER1, "P1 Button A" )
    81: 	PORT_BIT_NAME( 0x40, IP_ACTIVE_HIGH, IPT_BUTTON4   | IPF_PLAYER1, "P1 Button X" )
    82: 	PORT_BIT_NAME( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON5   | IPF_PLAYER1, "P1 Button L" )
    83: 	PORT_BIT_NAME( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON6   | IPF_PLAYER1, "P1 Button R" )
    84: 	PORT_START  /* IN 1 : Joypad 1 - H */
    85: 	PORT_BIT_NAME( 0x80, IP_ACTIVE_HIGH, IPT_BUTTON1   | IPF_PLAYER1, "P1 Button B" )
    86: 	PORT_BIT_NAME( 0x40, IP_ACTIVE_HIGH, IPT_BUTTON2   | IPF_PLAYER1, "P1 Button Y" )
    87: 	PORT_BIT_NAME( 0x20, IP_ACTIVE_HIGH, IPT_SERVICE1, "P1 Select" )
    88: 	PORT_BIT_NAME( 0x10, IP_ACTIVE_HIGH, IPT_START1,  "P1 Start" )
    89: 	PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP    | IPF_PLAYER1 )
    90: 	PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN  | IPF_PLAYER1 )
    91: 	PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT  | IPF_PLAYER1 )
    92: 	PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT | IPF_PLAYER1 )
    93: 
    94: 	PORT_START  /* IN 2 : Joypad 2 - L */
    95: 	PORT_BIT_NAME( 0x80, IP_ACTIVE_HIGH, IPT_BUTTON3   | IPF_PLAYER2, "P2 Button A" )
    96: 	PORT_BIT_NAME( 0x40, IP_ACTIVE_HIGH, IPT_BUTTON4   | IPF_PLAYER2, "P2 Button X" )
    97: 	PORT_BIT_NAME( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON5   | IPF_PLAYER2, "P2 Button L" )
    98: 	PORT_BIT_NAME( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON6   | IPF_PLAYER2, "P2 Button R" )
    99: 	PORT_START  /* IN 3 : Joypad 2 - H */
   100: 	PORT_BIT_NAME( 0x80, IP_ACTIVE_HIGH, IPT_BUTTON1   | IPF_PLAYER2, "P2 Button B" )
   101: 	PORT_BIT_NAME( 0x40, IP_ACTIVE_HIGH, IPT_BUTTON2   | IPF_PLAYER2, "P2 Button Y" )
   102: 	PORT_BIT_NAME( 0x20, IP_ACTIVE_HIGH, IPT_SERVICE2, "P2 Select" )
   103: 	PORT_BIT_NAME( 0x10, IP_ACTIVE_HIGH, IPT_START2,  "P2 Start" )
   104: 	PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP    | IPF_PLAYER2 )
   105: 	PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN  | IPF_PLAYER2 )
   106: 	PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT  | IPF_PLAYER2 )
   107: 	PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT | IPF_PLAYER2 )
   108: 
   109: 	PORT_START  /* IN 4 : Joypad 3 - L */
   110: 	PORT_BIT_NAME( 0x80, IP_ACTIVE_HIGH, IPT_BUTTON3   | IPF_PLAYER3, "P3 Button A" )
   111: 	PORT_BIT_NAME( 0x40, IP_ACTIVE_HIGH, IPT_BUTTON4   | IPF_PLAYER3, "P3 Button X" )
   112: 	PORT_BIT_NAME( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON5   | IPF_PLAYER3, "P3 Button L" )
   113: 	PORT_BIT_NAME( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON6   | IPF_PLAYER3, "P3 Button R" )
   114: 	PORT_START  /* IN 5 : Joypad 3 - H */
   115: 	PORT_BIT_NAME( 0x80, IP_ACTIVE_HIGH, IPT_BUTTON1   | IPF_PLAYER3, "P3 Button B" )
   116: 	PORT_BIT_NAME( 0x40, IP_ACTIVE_HIGH, IPT_BUTTON2   | IPF_PLAYER3, "P3 Button Y" )
   117: 	PORT_BIT_NAME( 0x20, IP_ACTIVE_HIGH, IPT_SERVICE3, "P3 Select" )
   118: 	PORT_BIT_NAME( 0x10, IP_ACTIVE_HIGH, IPT_START3,  "P3 Start" )
   119: 	PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP    | IPF_PLAYER3 )
   120: 	PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN  | IPF_PLAYER3 )
   121: 	PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT  | IPF_PLAYER3 )
   122: 	PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT | IPF_PLAYER3 )
   123: 
   124: 	PORT_START  /* IN 6 : Joypad 4 - L */
   125: 	PORT_BIT_NAME( 0x80, IP_ACTIVE_HIGH, IPT_BUTTON3   | IPF_PLAYER4, "P4 Button A" )
   126: 	PORT_BIT_NAME( 0x40, IP_ACTIVE_HIGH, IPT_BUTTON4   | IPF_PLAYER4, "P4 Button X" )
   127: 	PORT_BIT_NAME( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON5   | IPF_PLAYER4, "P4 Button L" )
   128: 	PORT_BIT_NAME( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON6   | IPF_PLAYER4, "P4 Button R" )
   129: 	PORT_START  /* IN 7 : Joypad 4 - H */
   130: 	PORT_BIT_NAME( 0x80, IP_ACTIVE_HIGH, IPT_BUTTON1   | IPF_PLAYER4, "P4 Button B" )
   131: 	PORT_BIT_NAME( 0x40, IP_ACTIVE_HIGH, IPT_BUTTON2   | IPF_PLAYER4, "P4 Button Y" )
   132: 	PORT_BIT_NAME( 0x20, IP_ACTIVE_HIGH, IPT_SERVICE4, "P4 Select" )
   133: 	PORT_BIT_NAME( 0x10, IP_ACTIVE_HIGH, IPT_START4,  "P4 Start" )
   134: 	PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP    | IPF_PLAYER4 )
   135: 	PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN  | IPF_PLAYER4 )
   136: 	PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT  | IPF_PLAYER4 )
   137: 	PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT | IPF_PLAYER4 )
   138: 
   139: 	PORT_START	/* IN 8 : Internal switches */
   140: 	PORT_DIPNAME( 0x1, 0x1, "Enforce 32 sprites/line" )
   141: 	PORT_DIPSETTING(   0x0, DEF_STR( No )  )
   142: 	PORT_DIPSETTING(   0x1, DEF_STR( Yes ) )
   143: 
   144: #ifdef MAME_DEBUG 
   145: 	PORT_START	/* IN 9 : debug switches */
   146: 	PORT_DIPNAME( 0x3, 0x0, "Browse tiles" )
   147: 	PORT_DIPSETTING(   0x0, DEF_STR( Off ) )
   148: 	PORT_DIPSETTING(   0x1, "2bpl"  )
   149: 	PORT_DIPSETTING(   0x2, "4bpl"  )
   150: 	PORT_DIPSETTING(   0x3, "8bpl"  )
   151: 	PORT_DIPNAME( 0xc, 0x0, "Browse maps" )
   152: 	PORT_DIPSETTING(   0x0, DEF_STR( Off ) )
   153: 	PORT_DIPSETTING(   0x4, "2bpl"  )
   154: 	PORT_DIPSETTING(   0x8, "4bpl"  )
   155: 	PORT_DIPSETTING(   0xc, "8bpl"  )
   156: 
   157: 	PORT_START	/* IN 10 : debug switches */
   158: 	PORT_BIT_NAME( 0x1, IP_ACTIVE_HIGH, IPT_BUTTON7  | IPF_PLAYER2,  "Toggle BG 1" )
   159: 	PORT_BIT_NAME( 0x2, IP_ACTIVE_HIGH, IPT_BUTTON8  | IPF_PLAYER2,  "Toggle BG 2" )
   160: 	PORT_BIT_NAME( 0x4, IP_ACTIVE_HIGH, IPT_BUTTON9  | IPF_PLAYER2,  "Toggle BG 3" )
   161: 	PORT_BIT_NAME( 0x8, IP_ACTIVE_HIGH, IPT_BUTTON10 | IPF_PLAYER2,  "Toggle BG 4" )
   162: 	PORT_BIT_NAME( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON7 | IPF_PLAYER3,  "Toggle Objects" )
   163: 	PORT_BIT_NAME( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON8 | IPF_PLAYER3,  "Toggle Main/Sub" )
   164: 	PORT_BIT_NAME( 0x40, IP_ACTIVE_HIGH, IPT_BUTTON9 | IPF_PLAYER3,  "Toggle Back col" )
   165: 	PORT_BIT_NAME( 0x80, IP_ACTIVE_HIGH, IPT_BUTTON10 | IPF_PLAYER3, "Toggle Windows" )
   166: 
   167: 	PORT_START	/* IN 11 : debug input */
   168: 	PORT_BIT_NAME( 0x1, IP_ACTIVE_HIGH, IPT_BUTTON9,  "Pal prev" )
   169: 	PORT_BIT_NAME( 0x2, IP_ACTIVE_HIGH, IPT_BUTTON10, "Pal next" )
   170: 	PORT_BIT_NAME( 0x4, IP_ACTIVE_HIGH, IPT_BUTTON7 | IPF_PLAYER4, "Toggle Transparency" )
   171: #endif 
   172: 
   173: 	PORT_START	/* IN 12 : dip-switches */
   174: 	PORT_DIPNAME( 0x03, 0x00, DEF_STR( Difficulty ) )
   175: 	PORT_DIPSETTING(    0x00, "Normal" )
   176: 	PORT_DIPSETTING(    0x03, "Hard"  )
   177: 	PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Lives ) )
   178: 	PORT_DIPSETTING(    0x0c, "2" )
   179: 	PORT_DIPSETTING(    0x08, "3" )
   180: 	PORT_DIPSETTING(    0x04, "4" )
   181: 	PORT_DIPSETTING(    0x00, "5" )
   182: 	PORT_DIPNAME( 0x30, 0x00, "Time limit per level?" ) // taken from the scan of nss_adam
   183: 	PORT_DIPSETTING(    0x10, "104 sec." )
   184: 	PORT_DIPSETTING(    0x20, "112 sec." )
   185: 	PORT_DIPSETTING(    0x00, "120 sec." )
   186: 	PORT_DIPSETTING(    0x30, "? sec." )
   187: 	PORT_DIPNAME( 0x40, 0x00, DEF_STR( Unknown ) )
   188: 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
   189: 	PORT_DIPSETTING(    0x40, DEF_STR( On ) )
   190: 	PORT_DIPNAME( 0x80, 0x00, DEF_STR( Unknown ) )
   191: 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
   192: 	PORT_DIPSETTING(    0x80, DEF_STR( On ) )
   193: INPUT_PORTS_END
   194: 
   195: static struct CustomSound_interface snes_sound_interface =
   196: { snes_sh_start, 0, 0 };
   197: 
   198: static struct GfxDecodeInfo gfxdecodeinfo[] =
   199: {
   200: 	{ -1 } /* end of array */
   201: };
   202: 
   203: static PALETTE_INIT( snes )
   204: {
   205: 	int i, r, g, b;
   206: 
   207: 	for( i = 0; i < 32768; i++ )
   208: 	{
   209: 		r = (i & 0x1F) << 3;
   210: 		g = ((i >> 5) & 0x1F) << 3;
   211: 		b = ((i >> 10) & 0x1F) << 3;
   212: 		palette_set_color( i, r, g, b );
   213: 	}
   214: 
   215: 	/* The colortable can be black */
   216: 	for( i = 0; i < 256; i++ )
   217: 		colortable[i] = 0;
   218: }
   219: 
   220: static MACHINE_DRIVER_START( snes )
   221: 	/* basic machine hardware */
   222: 	MDRV_CPU_ADD_TAG("main", G65816, 2680000)	/* 2.68Mhz, also 3.58Mhz */
   223: 	MDRV_CPU_MEMORY(snes_readmem, snes_writemem)
   224: 	MDRV_CPU_VBLANK_INT(snes_scanline_interrupt, SNES_MAX_LINES_NTSC)
   225: 
   226: 	MDRV_CPU_ADD_TAG("sound", SPC700, 2048000)	/* 2.048 Mhz */
   227: 	MDRV_CPU_FLAGS(CPU_AUDIO_CPU)
   228: 	MDRV_CPU_MEMORY(spc_readmem, spc_writemem)
   229: 	MDRV_CPU_VBLANK_INT(NULL, 0)
   230: 
   231: 	MDRV_FRAMES_PER_SECOND(60)
   232: 	MDRV_VBLANK_DURATION(DEFAULT_60HZ_VBLANK_DURATION)
   233: 	MDRV_INTERLEAVE(1)
   234: 
   235: 	MDRV_MACHINE_INIT( snes )
   236: 
   237: 	/* video hardware */
   238: 	MDRV_VIDEO_START( generic_bitmapped )
   239: 	MDRV_VIDEO_UPDATE( snes )
   240: 
   241: 	MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER)
   242: 	MDRV_SCREEN_SIZE(SNES_SCR_WIDTH, SNES_SCR_HEIGHT)
   243: 	MDRV_VISIBLE_AREA(0, SNES_SCR_WIDTH-1, 0, SNES_SCR_HEIGHT-1 )
   244: 	MDRV_GFXDECODE(gfxdecodeinfo)
   245: 	MDRV_PALETTE_LENGTH(32768)
   246: 	MDRV_COLORTABLE_LENGTH(257)
   247: 	MDRV_PALETTE_INIT( snes )
   248: 
   249: 	/* sound hardware */
   250: 	MDRV_SOUND_ADD(CUSTOM, snes_sound_interface)
   251: MACHINE_DRIVER_END
   252: 
   253: /***************************************************************************
   254: 
   255:   Game driver(s)
   256: 
   257: ***************************************************************************/
   258: 
   259: #define NSS_BIOS \ 
   260: 	ROM_REGION(0x1000000,       REGION_CPU1,  0)		/* 65C816 */ \
   261: 	ROM_REGION(SNES_VRAM_SIZE,  REGION_GFX1,  0)		/* VRAM */ \
   262: 	ROM_REGION(SNES_CGRAM_SIZE, REGION_USER1, 0)		/* CGRAM */ \
   263: 	ROM_REGION(SNES_OAM_SIZE,   REGION_USER2, 0)		/* OAM */ \
   264: 	ROM_REGION(0x10000,         REGION_CPU2,  0)		/* SPC700 */ \
   265: 	ROM_LOAD("spc700.rom", 0xFFC0, 0x40, CRC(38000b6b) SHA1(9f3af3d51c229e67daa68041492afa27287aad31) )	/* boot rom */ \
   266: 	ROM_REGION(0x10000,         REGION_CPU3,  0)		/* Bios CPU (what is it?) */ \
   267: 	ROM_LOAD("nss-c.dat"  , 0, 0x8000, CRC(a8e202b3) SHA1(b7afcfe4f5cf15df53452dc04be81929ced1efb2) )	/* bios */ \
   268: 	ROM_LOAD("nss-ic14.02", 0, 0x8000, CRC(e06cb58f) SHA1(62f507e91a2797919a78d627af53f029c7d81477) )	/* bios */ \
   269: 
   270: ROM_START( nss )
   271: 	NSS_BIOS
   272: ROM_END
   273: 
   274: 
   275: ROM_START( nss_actr )
   276: 	NSS_BIOS
   277: 	ROM_REGION( 0x100000, REGION_USER3, 0 )
   278: 	ROM_LOAD( "act-rais.ic3", 0x00000, 0x80000, CRC(c9f788c2) SHA1(fba2331fd5bcbe51d74115528fd3a9becf072e8d) )
   279: 	ROM_LOAD( "act-rais.ic2", 0x80000, 0x80000, CRC(4df9cc63) SHA1(3e98d9693d60d125a1257ba79701f27bda688261) )
   280: 
   281: 	/* instruction / data rom for bios */
   282: 	ROM_REGION( 0x8000, REGION_USER4, 0 )
   283: 	ROM_LOAD( "act-rais.ic8", 0x0000, 0x8000, CRC(08b38ce6) SHA1(4cbb7fd28d98ffef0f17747201625883af954e3a) )
   284: ROM_END
   285: 
   286: ROM_START( nss_con3 )
   287: 	NSS_BIOS
   288: 	ROM_REGION( 0x100000, REGION_USER3, 0 )
   289: 	ROM_LOAD( "contra3.ic3", 0x00000, 0x80000, CRC(33b03501) SHA1(c7f4835d5ec4983e487b00f0b4c49fede2f03b9c) )
   290: 	ROM_LOAD( "contra3.ic2", 0x80000, 0x80000, CRC(2f3e3b5b) SHA1(0186b92f022701f6ae29984252e6d346acf6550b) )
   291: 
   292: 	/* instruction / data rom for bios */
   293: 	ROM_REGION( 0x8000, REGION_USER4, 0 )
   294: 	ROM_LOAD( "contra3.ic8", 0x0000, 0x8000, CRC(0fbfa23b) SHA1(e7a1a78a58c64297e7b9623350ec57aed8035a4f) )
   295: ROM_END
   296: 
   297: ROM_START( nss_adam )
   298: 	NSS_BIOS
   299: 	ROM_REGION( 0x100000, REGION_USER3, 0 )
   300: 	ROM_LOAD( "addams.ic3", 0x00000, 0x80000, CRC(44643930) SHA1(a45204b2eb13c6befca30d130061b5b8ba054270) )
   301: 	ROM_LOAD( "addams.ic2", 0x80000, 0x80000, CRC(6196adcf) SHA1(a450f278a37d5822f607aa3631831a461e8b147e) )
   302: 
   303: 	/* instruction / data rom for bios */
   304: 	ROM_REGION( 0x8000, REGION_USER4, 0 )
   305: 	ROM_LOAD( "addams.ic8", 0x0000, 0x8000, CRC(57c7f72c) SHA1(2e3642b4b5438f6c535d6d1eb668e1663062cf78) )
   306: ROM_END
   307: 
   308: ROM_START( nss_aten )
   309: 	NSS_BIOS
   310: 	ROM_REGION( 0x100000, REGION_USER3, 0 )
   311: 	ROM_LOAD( "amtennis.ic3", 0x00000, 0x80000, CRC(aeabaf2a) SHA1(b355e0a322b57454e767785a49c14d4c7f492488) )
   312: 	ROM_LOAD( "amtennis.ic2", 0x80000, 0x80000, CRC(7738c5f2) SHA1(eb0089e9724c7b3834d9f6c47b92f5a1bb26fc77) )
   313: 
   314: 	/* instruction / data rom for bios */
   315: 	ROM_REGION( 0x8000, REGION_USER4, 0 )
   316: 	ROM_LOAD( "amtennis.ic8", 0x0000, 0x8000, CRC(d2cd3926) SHA1(49fc253b1b9497ef1374c7db0bd72c163ffb07e7) )
   317: ROM_END
   318: 
   319: ROM_START( nss_rob3 )
   320: 	NSS_BIOS
   321: 	ROM_REGION( 0x100000, REGION_USER3, 0 )
   322: 	ROM_LOAD( "robocop3.ic3", 0x00000, 0x80000, CRC(60916c42) SHA1(462d9645210a58bfd5204bd209eae2cdadb4493e) )
   323: 	ROM_LOAD( "robocop3.ic2", 0x80000, 0x80000, CRC(a94e1b56) SHA1(7403d70504310ad5949a3b45b4a1e71e7d2bce77) )
   324: 
   325: 	/* instruction / data rom for bios */
   326: 	ROM_REGION( 0x8000, REGION_USER4, 0 )
   327: 	ROM_LOAD( "robocop3.ic8", 0x0000, 0x8000, CRC(90d13c51) SHA1(6751dab14b7d178350ac333f07dd2c3852e4ae23) )
   328: ROM_END
   329: 
   330: ROM_START( nss_ncaa )
   331: 	NSS_BIOS
   332: 	ROM_REGION( 0x100000, REGION_USER3, 0 )
   333: 	ROM_LOAD( "ncaa.ic3", 0x00000, 0x80000, CRC(ef49ad8c) SHA1(4c40f3746b995b53f006434b9ccec06d8fe16e1f) )
   334: 	ROM_LOAD( "ncaa.ic2", 0x80000, 0x80000, CRC(83ef6936) SHA1(8e0f38c763861e33684c6ddb742385b0522af78a) )
   335: 
   336: 	/* instruction / data rom for bios */
   337: 	ROM_REGION( 0x8000, REGION_USER4, 0 )
   338: 	ROM_LOAD( "ncaa.ic8", 0x0000, 0x8000, CRC(b9fa28d5) SHA1(bc538bcff5c19eae4becc6582b5c111d287b76fa) )
   339: ROM_END
   340: 
   341: ROM_START( nss_skin )
   342: 	NSS_BIOS
   343: 	ROM_REGION( 0x100000, REGION_USER3, 0 )
   344: 	ROM_LOAD( "skins.ic3", 0x00000, 0x80000, CRC(ee1bb84d) SHA1(549ad9319e94a5d75cd4af017e63ea93ab407c87) )
   345: 	ROM_LOAD( "skins.ic2", 0x80000, 0x80000, CRC(365fd19e) SHA1(f60d7ac39fe83fb98730e73fbef410c90a4ff35b) )
   346: 
   347: 	/* instruction / data rom for bios */
   348: 	ROM_REGION( 0x8000, REGION_USER4, 0 )
   349: 	ROM_LOAD( "skins.ic8", 0x0000, 0x8000, CRC(9f33d5ce) SHA1(4d279ad3665bd94c7ca9cb2778572bed42c5b298) )
   350: ROM_END
   351: 
   352: ROM_START( nss_lwep )
   353: 	NSS_BIOS
   354: 	ROM_REGION( 0x100000, REGION_USER3, 0 )
   355: 	ROM_LOAD( "nss-lw.ic3", 0x00000, 0x80000, CRC(32564666) SHA1(bf371218fa303ce95eab09fb6017a522071dcd7e) )
   356: 	ROM_LOAD( "nss-lw.ic2", 0x80000, 0x80000, CRC(86365042) SHA1(f818024c6f858fd2780396b6c83d3a37a97fa08a) )
   357: 
   358: 	/* instruction / data rom for bios */
   359: 	ROM_REGION( 0x8000, REGION_USER4, 0 )
   360: 	ROM_LOAD( "nss-lw.ic8", 0x0000, 0x8000, CRC(1acc1d5d) SHA1(4c8b100ac5847915aaf3b5bfbcb4f632606c97de) )
   361: ROM_END
   362: 
   363: ROM_START( nss_ssoc )
   364: 	NSS_BIOS
   365: 	ROM_REGION( 0x100000, REGION_USER3, 0 )
   366: 	ROM_LOAD( "s-soccer.ic1", 0x00000, 0x80000,  CRC(70b7f50e) SHA1(92856118528995e3a0b7d22340d440bef5fd61ac) )
   367: 
   368: 	/* instruction / data rom for bios */
   369: 	ROM_REGION( 0x8000, REGION_USER4, 0 )
   370: 	ROM_LOAD( "s-soccer.ic3", 0x0000, 0x8000, CRC(c09211c3) SHA1(b274a57f93ae0a8774664df3d3615fb7dbecfa2e) )
   371: ROM_END
   372: 
   373: /* the ones below could be bad, smw certainly is */
   374: 
   375: ROM_START( nss_smw )
   376: 	NSS_BIOS
   377: 	ROM_REGION( 0x100000, REGION_USER3, 0 )
   378: 	ROM_LOAD( "mw.ic1", 0x00000, 0x40000, BAD_DUMP CRC(cfa601e7) SHA1(5c9a9a9fccd4b4fcbbda06dfdee41e92dc4e9097) ) // half size?
   379: 
   380: 	/* instruction / data rom for bios */
   381: 	ROM_REGION( 0x8000, REGION_USER4, 0 )
   382: 	ROM_LOAD( "mw.ic3", 0x0000, 0x8000, CRC(f2c5466e) SHA1(e116f01342fcf359498ed8750741c139093b1fb2) )
   383: ROM_END
   384: 
   385: ROM_START( nss_fzer )
   386: 	NSS_BIOS
   387: 	ROM_REGION( 0x100000, REGION_USER3, 0 )
   388: 	ROM_LOAD( "fz.ic2", 0x00000, 0x40000, BAD_DUMP CRC(cd281855) SHA1(c9f7895028bbeed3deaa82f4fb51f2569093124b) ) // maybe wrong size?
   389: 
   390: 	/* instruction / data rom for bios */
   391: 	ROM_REGION( 0x8000, REGION_USER4, 0 )
   392: 	ROM_LOAD( "fz.ic7", 0x0000, 0x8000, CRC(48ae570d) SHA1(934f9fec47dcf9e49936388968d2db50c69950da) )
   393: ROM_END
   394: 
   395: ROM_START( nss_sten )
   396: 	NSS_BIOS
   397: 	ROM_REGION( 0x100000, REGION_USER3, 0 )
   398: 	ROM_LOAD( "st.ic1", 0x00000, 0x40000, BAD_DUMP CRC(e94b48d9) SHA1(1ce9c25f8fb62798bbe016b2d1de1724d52e5674) )// maybe wrong size?
   399: 
   400: 	/* instruction / data rom for bios */
   401: 	ROM_REGION( 0x8000, REGION_USER4, 0 )
   402: 	ROM_LOAD( "st.ic3", 0x0000, 0x8000, CRC(8880596e) SHA1(ec6d68fc2f51f7d94f496cd72cf898db65324542) )
   403: ROM_END
   404: 
   405: GAMEX( 199?, nss,       0,		  snes,	     snes,    snes,		ROT0, "Nintendo",					"Nintendo Super System: BIOS", NOT_A_DRIVER )
   406: GAMEX( 1992, nss_actr,  nss,	  snes,	     snes,    snes,		ROT0, "Enix",						"Nintendo Super System: Act Raiser", GAME_NO_SOUND | GAME_NOT_WORKING ) // time broken
   407: GAMEX( 1992, nss_adam,  nss,	  snes,	     snes,    snes,		ROT0, "Ocean",						"Nintendo Super System: The Addams Family", GAME_NO_SOUND | GAME_NOT_WORKING ) // crashes mame
   408: GAMEX( 1992, nss_aten,  nss,	  snes,	     snes,    snes,		ROT0, "Absolute Entertainment Inc.","Nintendo Super System: David Crane's Amazing Dennis", GAME_NO_SOUND | GAME_NOT_WORKING ) // gfx problems with net
   409: GAMEX( 1992, nss_con3,  nss,	  snes,	     snes,    snes,		ROT0, "Konami",						"Nintendo Super System: Contra 3: The Alien Wars", GAME_NO_SOUND | GAME_NOT_WORKING )
   410: GAMEX( 1992, nss_lwep,  nss,	  snes,	     snes,    snes,		ROT0, "Ocean",						"Nintendo Super System: Lethal Weapon", GAME_NO_SOUND | GAME_NOT_WORKING )
   411: GAMEX( 1992, nss_ncaa,  nss,	  snes,	     snes,    snes,		ROT0, "Sculptured Software Inc.",	"Nintendo Super System: NCAA Basketball", GAME_NO_SOUND | GAME_NOT_WORKING ) // severe gfx problems, no inputs
   412: GAMEX( 1992, nss_rob3,  nss,	  snes,	     snes,    snes,		ROT0, "Ocean",						"Nintendo Super System: Robocop 3", GAME_NO_SOUND | GAME_NOT_WORKING ) // invisible enemy? gameplay prob?
   413: GAMEX( 1992, nss_skin,  nss,	  snes,	     snes,    snes,		ROT0, "Irem",						"Nintendo Super System: Skins Game", GAME_NO_SOUND | GAME_NOT_WORKING ) // uses some gfx modes not implemented
   414: GAMEX( 1992, nss_ssoc,  nss,	  snes,	     snes,    snes,		ROT0, "Human Inc.",					"Nintendo Super System: Super Soccer", GAME_NO_SOUND | GAME_NOT_WORKING ) // lots of gfx problems
   415: GAMEX( 199?, nss_smw,   nss,	  snes,	     snes,    snes,		ROT0, "Nintendo",					"Nintendo Super System: Super Mario World", GAME_NO_SOUND | GAME_NOT_WORKING ) // bad rom
   416: GAMEX( 199?, nss_fzer,  nss,	  snes,	     snes,    snes,		ROT0, "Nintendo",					"Nintendo Super System: F-Zero", GAME_NO_SOUND | GAME_NOT_WORKING ) // bad rom
   417: GAMEX( 199?, nss_sten,  nss,	  snes,	     snes,    snes,		ROT0, "Nintendo",					"Nintendo Super System: Super Tennis", GAME_NO_SOUND | GAME_NOT_WORKING ) // bad rom
   418: 




powered by ggdb.com this page took approx. 0.006s