📄 aquajack.c
字号:
} /*-----[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 + -