⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 aquajack.c

📁 十七种模拟器源代码 非常有用的作课程设计不可缺少的
💻 C
📖 第 1 页 / 共 3 页
字号:
   }   /*-----[Sound Setup]-----*/   Z80ROM=RAM+0x44000;   if(!load_rom_index(9, Z80ROM, 0x10000)) return;		// Z80 SOUND ROM   Z80ROM[0x00DC] = 0xC3;   Z80ROM[0x00DD] = 0x20;   Z80ROM[0x00DE] = 0x00;   Z80ROM[0x0020] = 0x3E;   Z80ROM[0x0021] = 0x07;   Z80ROM[0x0022] = 0x32;   Z80ROM[0x0023] = 0x2C;   Z80ROM[0x0024] = 0xCF;   Z80ROM[0x0025] = 0xC3;   Z80ROM[0x0026] = 0xDF;   Z80ROM[0x0027] = 0x00;   if(!(PCMROM=AllocateMem(0x100000))) return;   if(!load_rom_index(8,PCMROM+0x00000,0x80000)) return;	// ADPCM A rom   if(!load_rom_index(7,PCMROM+0x80000,0x80000)) return;	// ADPCM B rom   YM2610SetBuffers(PCMROM, PCMROM, 0x100000, 0x100000);   AddTaitoYM2610(0x023A, 0x01BA, 0x10000);   /*-----------------------*/   RAM_VIDEO  = RAM+0x08000;   RAM_SCROLL = RAM+0x1F000;   GFX_FG0    = RAM+0x40000;   RAM_INPUT  = RAM+0x1F100;   GFX_BG0_SOLID = make_solid_mask_8x8(GFX, 0x4000);   memset(RAM+0x00000,0x00,0x40000);   // Main 68000 Speed Hack   // ---------------------   WriteLong68k(&ROM[0x0C88C],0x4EF800C0);	//	jmp	$C0.w   WriteLong68k(&ROM[0x000C0],0x13FC0000);	//	move.b	#$00,$AA0000   WriteLong68k(&ROM[0x000C4],0x00AA0000);	//   WriteWord68k(&ROM[0x000C8],0x6100-10);	//	bra.s	<loop>   // Main 68000 Speed Hack (test mode)   // ---------------------------------   WriteLong68k(&ROM[0x0C8CC],0x4EB800D0);	//	jsr	$C0.w   WriteLong68k(&ROM[0x000D0],0x13FC0000);	//	move.b	#$00,$AA0000   WriteLong68k(&ROM[0x000D4],0x00AA0000);	//   WriteWord68k(&ROM[0x000D8],0x4E75);		//	rts   // Sub 68000 Speed Hack   // --------------------   WriteLong68k(&ROM[0x41062],0x4EF80300);	//	jmp	$300.w   WriteLong68k(&ROM[0x40300],0x13FC0000);	//	move.b	#$00,$AA0000   WriteLong68k(&ROM[0x40304],0x00AA0000);	//   WriteWord68k(&ROM[0x40308],0x3B6D);		//	move	16384(a5),16386(a5)   WriteLong68k(&ROM[0x4030A],0x40004002);	//   //WriteLong68k(&ROM[0x4030E],0x13FC0000);	//	move.b	#$00,$AA0000   //WriteLong68k(&ROM[0x40312],0x00AA0000);	//   WriteLong68k(&ROM[0x4030E],0x4A6D4002);	//	tst	16386(a5)   WriteWord68k(&ROM[0x40312],0x6602);		//	bne.s	+2   WriteWord68k(&ROM[0x40314],0x4E75);		//	rts   WriteLong68k(&ROM[0x40316],0x4EF81070);	//	jmp	$1070.w   // Fix 68000 Communication (bitch!)   // --------------------------------/*   WriteWord68k(&ROM[0x00100],0x0C6D);		//	cmpi.w	#$0000,16386(a5)   WriteLong68k(&ROM[0x00102],0x00004002);	//   WriteWord68k(&ROM[0x00106],0x6602);		//	bne.s	+2   WriteWord68k(&ROM[0x00108],0x4E75);		//	rts   WriteLong68k(&ROM[0x0010A],0x13FC0000);	//	move.b	#$00,$AA0000   WriteLong68k(&ROM[0x0010E],0x00AA0000);	//   WriteWord68k(&ROM[0x00112],0x6100-20);	//	bra.s	<loop>   WriteWord68k(&ROM[0x00120],0x0C6D);		//	cmpi.w	#$0001,16386(a5)   WriteLong68k(&ROM[0x00122],0x00014002);	//   WriteWord68k(&ROM[0x00126],0x6602);		//	bne.s	+2   WriteWord68k(&ROM[0x00128],0x4E75);		//	rts   WriteLong68k(&ROM[0x0012A],0x13FC0000);	//	move.b	#$00,$AA0000   WriteLong68k(&ROM[0x0012E],0x00AA0000);	//   WriteWord68k(&ROM[0x00132],0x6100-20);	//	bra.s	<loop>   WriteWord68k(&ROM[0x00140],0x0C6D);		//	cmpi.w	#$0002,16386(a5)   WriteLong68k(&ROM[0x00142],0x00024002);	//   WriteWord68k(&ROM[0x00146],0x6602);		//	bne.s	+2   WriteWord68k(&ROM[0x00148],0x4E75);		//	rts   WriteLong68k(&ROM[0x0014A],0x13FC0000);	//	move.b	#$00,$AA0000   WriteLong68k(&ROM[0x0014E],0x00AA0000);	//   WriteWord68k(&ROM[0x00152],0x6100-20);	//	bra.s	<loop>   WriteWord68k(&ROM[0x00160],0x0C6D);		//	cmpi.w	#$0003,16386(a5)   WriteLong68k(&ROM[0x00162],0x00034002);	//   WriteWord68k(&ROM[0x00166],0x6602);		//	bne.s	+2   WriteWord68k(&ROM[0x00168],0x4E75);		//	rts   WriteLong68k(&ROM[0x0016A],0x13FC0000);	//	move.b	#$00,$AA0000   WriteLong68k(&ROM[0x0016E],0x00AA0000);	//   WriteWord68k(&ROM[0x00172],0x6100-20);	//	bra.s	<loop>   WriteLong68k(&ROM[0xC79E],0x4EB80120);	//	[cmpi	#$0001,16386(a5)]   WriteLong68k(&ROM[0xC7A2],0x4E714E71);	//   WriteLong68k(&ROM[0xC7A6],0x4EB80100);	//	[tst	16386(a5)]   WriteWord68k(&ROM[0xC7AA],0x4E71);		//   WriteLong68k(&ROM[0xC7B2],0x4EB80140);	//	[cmpi	#$0002,16386(a5)]   WriteLong68k(&ROM[0xC7B6],0x4E714E71);	//   WriteLong68k(&ROM[0xC7BA],0x4EB80100);	//	[tst	16386(a5)]   WriteWord68k(&ROM[0xC7BE],0x4E71);		//   WriteLong68k(&ROM[0x1F194],0x4EB80100);	//	[tst	16386(a5)] ****   WriteWord68k(&ROM[0x1F198],0x4E71);		//   WriteLong68k(&ROM[0x1F1B8],0x4EB80140);	//	[cmpi	#$0002,16386(a5)]   WriteLong68k(&ROM[0x1F1BC],0x4E714E71);	//   WriteLong68k(&ROM[0x1F1C4],0x4EB80100);	//	[tst	16386(a5)]   WriteWord68k(&ROM[0x1F1C8],0x4E71);		//   WriteLong68k(&ROM[0x1F28E],0x4EB80160);	//	[cmpi	#$0003,16386(a5)]   WriteLong68k(&ROM[0x1F292],0x4E714E71);	//   WriteLong68k(&ROM[0x1F296],0x4EB80100);	//	[tst	16386(a5)]   WriteWord68k(&ROM[0x1F29A],0x4E71);		//   WriteLong68k(&ROM[0x23D40],0x4EB80100);	//	[tst	16386(a5)]   WriteWord68k(&ROM[0x23D44],0x4E71);		//   WriteLong68k(&ROM[0x23D58],0x4EB80120);	//	[cmpi	#$0001,16386(a5)]   WriteLong68k(&ROM[0x23D5C],0x4E714E71);	//   WriteLong68k(&ROM[0x23D64],0x4EB80100);	//	[tst	16386(a5)]   WriteWord68k(&ROM[0x23D68],0x4E71);		//   WriteLong68k(&ROM[0x23D70],0x4EB80140);	//	[cmpi	#$0002,16386(a5)]   WriteLong68k(&ROM[0x23D74],0x4E714E71);	//   WriteLong68k(&ROM[0x23D7C],0x4EB80100);	//	[tst	16386(a5)]   WriteWord68k(&ROM[0x23D80],0x4E71);		//   WriteWord68k(&ROM[0x00180],0x0C6D);		//	cmpi.w	#$0000,16386(a5)   WriteLong68k(&ROM[0x00182],0x00006002);	//   WriteWord68k(&ROM[0x00186],0x6602);		//	bne.s	+2   WriteWord68k(&ROM[0x00188],0x4E75);		//	rts   WriteLong68k(&ROM[0x0018A],0x13FC0000);	//	move.b	#$00,$AA0000   WriteLong68k(&ROM[0x0018E],0x00AA0000);	//   WriteWord68k(&ROM[0x00192],0x6100-20);	//	bra.s	<loop>   WriteWord68k(&ROM[0x001A0],0x0C6D);		//	cmpi.w	#$0001,16386(a5)   WriteLong68k(&ROM[0x001A2],0x00016002);	//   WriteWord68k(&ROM[0x001A6],0x6602);		//	bne.s	+2   WriteWord68k(&ROM[0x001A8],0x4E75);		//	rts   WriteLong68k(&ROM[0x001AA],0x13FC0000);	//	move.b	#$00,$AA0000   WriteLong68k(&ROM[0x001AE],0x00AA0000);	//   WriteWord68k(&ROM[0x001B2],0x6100-20);	//	bra.s	<loop>   WriteWord68k(&ROM[0x001C0],0x0C6D);		//	cmpi.w	#$0002,16386(a5)   WriteLong68k(&ROM[0x001C2],0x00026002);	//   WriteWord68k(&ROM[0x001C6],0x6602);		//	bne.s	+2   WriteWord68k(&ROM[0x001C8],0x4E75);		//	rts   WriteLong68k(&ROM[0x001CA],0x13FC0000);	//	move.b	#$00,$AA0000   WriteLong68k(&ROM[0x001CE],0x00AA0000);	//   WriteWord68k(&ROM[0x001D2],0x6100-20);	//	bra.s	<loop>   WriteLong68k(&ROM[0x1FDC0],0x4EB801A0);	//	[cmpi	#$0001,24578(a5)]   WriteLong68k(&ROM[0x1FDC4],0x4E714E71);	//   WriteLong68k(&ROM[0x1FDC8],0x4EB80180);	//	[tst	24578(a5)]   WriteWord68k(&ROM[0x1FDCC],0x4E71);		//   WriteLong68k(&ROM[0x1FDFA],0x4EB801C0);	//	[cmpi	#$0002,24578(a5)]   WriteLong68k(&ROM[0x1FDFE],0x4E714E71);	//   WriteLong68k(&ROM[0x1FE02],0x4EB80180);	//	[tst	24578(a5)]   WriteWord68k(&ROM[0x1FE06],0x4E71);		//*/   WriteLong68k(&ROM[0x00200],0x13FC0000);	//	move.b	#$00,$AA0000   WriteLong68k(&ROM[0x00204],0x00AA0000);	//   WriteWord68k(&ROM[0x00208],0x4E75);		//	rts   WriteLong68k(&ROM[0x8882],0x4EB80200);	//	[cmpi	#$0004,18688(a5)]   WriteLong68k(&ROM[0x8886],0x4E714E71);	//   WriteLong68k(&ROM[0xC79E],0x4EB80200);	//	[cmpi	#$0001,16386(a5)]   WriteLong68k(&ROM[0xC7A2],0x4E714E71);	//   WriteLong68k(&ROM[0xC7A6],0x4E714E71);	//	[tst	16386(a5)]   WriteWord68k(&ROM[0xC7AA],0x4E71);		//   WriteLong68k(&ROM[0xC7B2],0x4EB80200);	//	[cmpi	#$0002,16386(a5)]   WriteLong68k(&ROM[0xC7B6],0x4E714E71);	//   WriteLong68k(&ROM[0xC7BA],0x4E714E71);	//	[tst	16386(a5)]   WriteWord68k(&ROM[0xC7BE],0x4E71);		//   WriteLong68k(&ROM[0x1F194],0x4E714E71);	//	[tst	16386(a5)] ****   WriteWord68k(&ROM[0x1F198],0x4E71);		//   WriteLong68k(&ROM[0x1F1B8],0x4EB80200);	//	[cmpi	#$0002,16386(a5)]   WriteLong68k(&ROM[0x1F1BC],0x4E714E71);	//   WriteLong68k(&ROM[0x1F1C4],0x4E714E71);	//	[tst	16386(a5)]   WriteWord68k(&ROM[0x1F1C8],0x4E71);		//   WriteLong68k(&ROM[0x1F28E],0x4EB80200);	//	[cmpi	#$0003,16386(a5)]   WriteLong68k(&ROM[0x1F292],0x4E714E71);	//   WriteLong68k(&ROM[0x1F296],0x4E714E71);	//	[tst	16386(a5)]   WriteWord68k(&ROM[0x1F29A],0x4E71);		//   WriteLong68k(&ROM[0x23D40],0x4E714E71);	//	[tst	16386(a5)]   WriteWord68k(&ROM[0x23D44],0x4E71);		//   WriteLong68k(&ROM[0x23D58],0x4EB80200);	//	[cmpi	#$0001,16386(a5)]   WriteLong68k(&ROM[0x23D5C],0x4E714E71);	//   WriteLong68k(&ROM[0x23D64],0x4E714E71);	//	[tst	16386(a5)]   WriteWord68k(&ROM[0x23D68],0x4E71);		//   WriteLong68k(&ROM[0x23D70],0x4EB80200);	//	[cmpi	#$0002,16386(a5)]   WriteLong68k(&ROM[0x23D74],0x4E714E71);	//   WriteLong68k(&ROM[0x23D7C],0x4E714E71);	//	[tst	16386(a5)]   WriteWord68k(&ROM[0x23D80],0x4E71);		//   WriteLong68k(&ROM[0x1FDC0],0x4EB80200);	//	[cmpi	#$0001,24578(a5)]   WriteLong68k(&ROM[0x1FDC4],0x4E714E71);	//   WriteLong68k(&ROM[0x1FDC8],0x4E714E71);	//	[tst	24578(a5)]   WriteWord68k(&ROM[0x1FDCC],0x4E71);		//   WriteLong68k(&ROM[0x1FDFA],0x4EB80200);	//	[cmpi	#$0002,24578(a5)]   WriteLong68k(&ROM[0x1FDFE],0x4E714E71);	//   WriteLong68k(&ROM[0x1FE02],0x4E714E71);	//	[tst	24578(a5)]   WriteWord68k(&ROM[0x1FE06],0x4E71);		//   WriteLong68k(&ROM[0x20112],0x4EB80200);	//   WriteLong68k(&ROM[0x20116],0x4E714E71);	//   WriteLong68k(&ROM[0x2011A],0x4E714E71);	//   tc0110pcr_init_typeb(RAM+0x1C000, 1, 0);   set_colour_mapper(&col_map_xbbb_bbgg_gggr_rrrr);   InitPaletteMap(RAM+0x1C000, 0x100, 0x10, 0x8000);   // Init tc0220ioc emulation   // ------------------------   tc0220ioc.RAM  = RAM_INPUT;   tc0220ioc.ctrl = 0;		//TC0220_STOPCPU;   reset_tc0220ioc();   // Init tc0150rod emulation   // ------------------------   tc0150rod.RAM  	= RAM + 0x20000;   tc0150rod.GFX  	= GFX_LINES;   tc0150rod.PAL  	= NULL;   tc0150rod.mapper	= &Map_15bit_xBGR;   tc0150rod.bmp_x	= 32;   tc0150rod.bmp_y	= 32;   tc0150rod.bmp_w	= 320;   tc0150rod.bmp_h	= 224;   tc0150rod.scr_x	= 0;   tc0150rod.scr_y	= -15;   // Init tc0100scn emulation   // ------------------------   tc0100scn[0].layer[0].RAM	=RAM_VIDEO+0x0000;   tc0100scn[0].layer[0].GFX	=GFX;   tc0100scn[0].layer[0].MASK	=GFX_BG0_SOLID;   tc0100scn[0].layer[0].SCR	=RAM_SCROLL+0;   tc0100scn[0].layer[0].type	=0;   tc0100scn[0].layer[0].bmp_x	=32;   tc0100scn[0].layer[0].bmp_y	=32;   tc0100scn[0].layer[0].bmp_w	=320;   tc0100scn[0].layer[0].bmp_h	=224;   tc0100scn[0].layer[0].mapper	=&Map_15bit_xBGR;   tc0100scn[0].layer[0].tile_mask=0x3FFF;   tc0100scn[0].layer[0].scr_x	=16;   tc0100scn[0].layer[0].scr_y	=16;   tc0100scn[0].layer[1].RAM	=RAM_VIDEO+0x8000;   tc0100scn[0].layer[1].GFX	=GFX;   tc0100scn[0].layer[1].MASK	=GFX_BG0_SOLID;   tc0100scn[0].layer[1].SCR	=RAM_SCROLL+2;   tc0100scn[0].layer[1].type	=0;   tc0100scn[0].layer[1].bmp_x	=32;   tc0100scn[0].layer[1].bmp_y	=32;   tc0100scn[0].layer[1].bmp_w	=320;   tc0100scn[0].layer[1].bmp_h	=224;   tc0100scn[0].layer[1].mapper	=&Map_15bit_xBGR;   tc0100scn[0].layer[1].tile_mask=0x3FFF;   tc0100scn[0].layer[1].scr_x	=16;   tc0100scn[0].layer[1].scr_y	=16;   tc0100scn[0].layer[2].RAM	=RAM_VIDEO+0x4000;   tc0100scn[0].layer[2].GFX	=GFX_FG0;   tc0100scn[0].layer[2].SCR	=RAM_SCROLL+4;   tc0100scn[0].layer[2].type	=1;   tc0100scn[0].layer[2].bmp_x	=32;   tc0100scn[0].layer[2].bmp_y	=32;   tc0100scn[0].layer[2].bmp_w	=320;   tc0100scn[0].layer[2].bmp_h	=224;   tc0100scn[0].layer[2].mapper	=&Map_15bit_xBGR;   tc0100scn[0].layer[2].scr_x	=16;   tc0100scn[0].layer[2].scr_y	=16;   tc0100scn[0].RAM     = RAM_VIDEO;   tc0100scn[0].GFX_FG0 = GFX_FG0;   init_tc0100scn(0);   tc0100scn_0_copy_gfx_fg0(ROM+0x2016C, 0x1000);   init_16x8_zoom();   zoom16_ofs = make_16x16_zoom_ofs_type1zz();   zoom8_ofs  = make_16x8_zoom_ofs_type1zz();/* *  StarScream Stuff follows */   ByteSwap(ROM,0x80000);   ByteSwap(RAM,0x40000);   AddMemFetch(0x000000, 0x03FFFF, ROM+0x000000-0x000000);	// 68000 ROM   AddMemFetch(-1, -1, NULL);   AddReadByte(0x000000, 0x03FFFF, NULL, ROM+0x000000);			// 68000 ROM   AddReadByte(0x100000, 0x107FFF, NULL, RAM+0x000000);			// MAIN RAM   AddReadByte(0xA00000, 0xA0FFFF, NULL, RAM_VIDEO);			// SCREEN RAM   AddReadByte(0x000000, 0xFFFFFF, DefBadReadByte, NULL);		// <Bad reads>   AddReadByte(-1, -1, NULL, NULL);   AddReadWord(0x000000, 0x03FFFF, NULL, ROM+0x000000);			// 68000 ROM   AddReadWord(0x100000, 0x107FFF, NULL, RAM+0x000000);			// MAIN RAM   AddReadWord(0xA00000, 0xA0FFFF, NULL, RAM_VIDEO);			// SCREEN RAM   AddReadWord(0x800000, 0x801FFF, NULL, RAM+0x020000);			// ROAD RAM   AddReadWord(0x000000, 0xFFFFFF, DefBadReadWord, NULL);		// <Bad reads>   AddReadWord(-1, -1,NULL, NULL);   AddWriteByte(0x100000, 0x107FFF, NULL, RAM+0x000000);		// MAIN RAM   AddWriteByte(0xA00000, 0xA0FFFF, NULL, RAM_VIDEO);			// SCREEN RAM

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -