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

📄 gunlock.c

📁 十七种模拟器源代码 非常有用的作课程设计不可缺少的
💻 C
📖 第 1 页 / 共 2 页
字号:
/******************************************************************************//*                                                                            *//*                GUN LOCK/RAY FORCE (C) 1995 TAITO CORPORATION               *//*                                                                            *//******************************************************************************/#include "gameinc.h"#include "gunlock.h"#include "f3system.h"#include "tc003vcu.h"#include "tc200obj.h"#include "savegame.h"#include "debug.h"#include "sasound.h"/******************   GUN LOCK WORLD ******************/static struct DIR_INFO gun_lock_dirs[] ={   { "gun_lock", },   { "gunlock", },   { NULL, },};static struct ROM_INFO gun_lock_roms[] ={   {   "d66-01.rom", 0x00200000, 0x58c92efa, 0, 0, 0, },   {   "d66-02.rom", 0x00200000, 0xdcdafaab, 0, 0, 0, },   {   "d66-03.rom", 0x00100000, 0xe7a4a491, 0, 0, 0, },   {   "d66-04.rom", 0x00100000, 0xc1c7aaa7, 0, 0, 0, },   {   "d66-05.rom", 0x00100000, 0xa3cefe04, 0, 0, 0, },   {   "d66-06.rom", 0x00100000, 0xb3d8126d, 0, 0, 0, },   {   "d66-07.rom", 0x00100000, 0xa6da9be7, 0, 0, 0, },   {   "d66-08.rom", 0x00100000, 0x9959f30b, 0, 0, 0, },   {   "d66-18.rom", 0x00040000, 0x8418513e, 0, 0, 0, },   {   "d66-19.rom", 0x00040000, 0x95731473, 0, 0, 0, },   {   "d66-21.rom", 0x00040000, 0xbd0d60f2, 0, 0, 0, },   {   "d66-23.rom", 0x00040000, 0x57fb7c49, REGION_ROM2, 0x000000, LOAD_8_16, },   {   "d66-22.rom", 0x00040000, 0x83dd7f9b, REGION_ROM2, 0x000001, LOAD_8_16, },   {   "d66-24.rom", 0x00040000, 0x97816378, 0, 0, 0, },   {           NULL,          0,          0, 0, 0, 0, },};/*static struct ROMSW_DATA romsw_data_gun_lock_0[] ={   { "Taito Japan (Ray Force)",  0x01 },   { "Taito America (Ray Force)",0x02 },   { "Taito Japan (Gun Lock)",   0x03 },   { NULL,                       0    },};static struct ROMSW_INFO gun_lock_romsw[] ={   { 0x0FFFFF, 0x03, romsw_data_gun_lock_0 },   { 0,        0,    NULL },};*/static struct VIDEO_INFO gun_lock_video ={   DrawGunLock,   224,   320,   64,   VIDEO_ROTATE_NORMAL| VIDEO_ROTATABLE,};struct GAME_MAIN game_gun_lock ={   gun_lock_dirs,   gun_lock_roms,   f3_system_inputs,   NULL,   NULL,   LoadGunLock,   ClearGunLock,   &gun_lock_video,   ExecuteGunLockFrame,   "gunlock",   "Gun Lock",   "儗僀僼僅乕僗",   COMPANY_ID_TAITO,   "D66",   1993,   f3_sound,   GAME_SHOOT,};/*****************   RAY FORCE US *****************/static struct DIR_INFO ray_force_dirs[] ={   { "ray_force", },   { "rayforce", },   { ROMOF("gunlock"), },   { CLONEOF("gunlock"), },   { NULL, },};static struct ROM_INFO ray_force_roms[] ={   {   "d66-01.rom", 0x00200000, 0x58c92efa, 0, 0, 0, },   {   "d66-02.rom", 0x00200000, 0xdcdafaab, 0, 0, 0, },   {   "d66-03.rom", 0x00100000, 0xe7a4a491, 0, 0, 0, },   {   "d66-04.rom", 0x00100000, 0xc1c7aaa7, 0, 0, 0, },   {   "d66-05.rom", 0x00100000, 0xa3cefe04, 0, 0, 0, },   {   "d66-06.rom", 0x00100000, 0xb3d8126d, 0, 0, 0, },   {   "d66-07.rom", 0x00100000, 0xa6da9be7, 0, 0, 0, },   {   "d66-08.rom", 0x00100000, 0x9959f30b, 0, 0, 0, },   {   "d66-18.rom", 0x00040000, 0x8418513e, 0, 0, 0, },   {   "d66-19.rom", 0x00040000, 0x95731473, 0, 0, 0, },   {   "d66-21.rom", 0x00040000, 0xbd0d60f2, 0, 0, 0, },   {   "d66-23.rom", 0x00040000, 0x57fb7c49, REGION_ROM2, 0x000000, LOAD_8_16, },   {   "d66-22.rom", 0x00040000, 0x83dd7f9b, REGION_ROM2, 0x000001, LOAD_8_16, },   {  "gunlocku.35", 0x00040000, 0xe08653ee, 0, 0, 0, },   {           NULL,          0,          0, 0, 0, 0, },};struct GAME_MAIN game_ray_force ={   ray_force_dirs,   ray_force_roms,   f3_system_inputs,   NULL,   NULL,   LoadGunLock,   ClearGunLock,   &gun_lock_video,   ExecuteGunLockFrame,   "rayforce",   "Ray Force (US)",   "儗僀僼僅乕僗 (US)",   COMPANY_ID_TAITO,   "D66",   1993,   f3_sound,   GAME_SHOOT,};/*******************   RAY FORCE JAPAN *******************/static struct DIR_INFO ray_force_jp_dirs[] ={   { "ray_force_jp", },   { "rayforcj", },   { ROMOF("gunlock"), },   { CLONEOF("gunlock"), },   { NULL, },};static struct ROM_INFO ray_force_jp_roms[] ={   {   "d66-01.rom", 0x00200000, 0x58c92efa, 0, 0, 0, },   {   "d66-02.rom", 0x00200000, 0xdcdafaab, 0, 0, 0, },   {   "d66-03.rom", 0x00100000, 0xe7a4a491, 0, 0, 0, },   {   "d66-04.rom", 0x00100000, 0xc1c7aaa7, 0, 0, 0, },   {   "d66-05.rom", 0x00100000, 0xa3cefe04, 0, 0, 0, },   {   "d66-06.rom", 0x00100000, 0xb3d8126d, 0, 0, 0, },   {   "d66-07.rom", 0x00100000, 0xa6da9be7, 0, 0, 0, },   {   "d66-08.rom", 0x00100000, 0x9959f30b, 0, 0, 0, },   {   "d66-18.rom", 0x00040000, 0x8418513e, 0, 0, 0, },   {   "d66-19.rom", 0x00040000, 0x95731473, 0, 0, 0, },   {   "d66-21.rom", 0x00040000, 0xbd0d60f2, 0, 0, 0, },   {   "d66-23.rom", 0x00040000, 0x57fb7c49, REGION_ROM2, 0x000000, LOAD_8_16, },   {   "d66-22.rom", 0x00040000, 0x83dd7f9b, REGION_ROM2, 0x000001, LOAD_8_16, },   {    "d66-20.35", 0x00040000, 0x798f0254, 0, 0, 0, },   {           NULL,          0,          0, 0, 0, 0, },};struct GAME_MAIN game_ray_force_jp ={   ray_force_jp_dirs,   ray_force_jp_roms,   f3_system_inputs,   NULL,   NULL,   LoadGunLock,   ClearGunLock,   &gun_lock_video,   ExecuteGunLockFrame,   "rayforcj",   "Ray Force (Japan)",   "儗僀僼僅乕僗 (Japan)",   COMPANY_ID_TAITO,   "D66",   1993,   f3_sound,   GAME_SHOOT,};static UINT8 *RAM_BG0;static UINT8 *RAM_BG1;static UINT8 *RAM_BG2;static UINT8 *RAM_BG3;static UINT8 *RAM_SCR0;static UINT8 *RAM_SCR1;static UINT8 *RAM_SCR2;static UINT8 *RAM_SCR3;static UINT32 SCR0_XOFS;static UINT32 SCR1_XOFS;static UINT32 SCR2_XOFS;static UINT32 SCR3_XOFS;static UINT32 SCR0_YOFS;static UINT32 SCR1_YOFS;static UINT32 SCR2_YOFS;static UINT32 SCR3_YOFS;static UINT8 *GFX_BG0;static UINT8 *GFX_BG0_SOLID;static UINT8 *GFX_SPR;static UINT8 *GFX_SPR_SOLID;void LoadGunLock(void){   int ta,tb,tc;   RAMSize=0x80000;   if(!(RAM=AllocateMem(0x80000))) return;   if(!(ROM=AllocateMem(0x100000))) return;   if(!(GFX=AllocateMem(0x3C8800+0x3DA100))) return;   GFX_BG0 = GFX+0x3C8800;   GFX_SPR = GFX+0x000000;   tb=0;   if(!load_rom("d66-03.rom", ROM, 0xF2200)) return;	// 16x16 SPRITES ($3C88)   for(ta=0;ta<0xF2200;ta++){      GFX[tb++]=ROM[ta]&15;      GFX[tb++]=ROM[ta]>>4;      tb+=2;   }   tb=2;   if(!load_rom("d66-04.rom", ROM, 0xF2200)) return;	// 16x16 SPRITES   for(ta=0;ta<0xF2200;ta++){      GFX[tb++]=ROM[ta]&15;      GFX[tb++]=ROM[ta]>>4;      tb+=2;   }   tb=0;   if(!load_rom("d66-05.rom", ROM, 0xF2200)) return;	// 16x16 SPRITES (MASK)   for(ta=0;ta<0xF2200;ta++){      tc=ROM[ta];      GFX[tb+3]|=((tc&0x40)>>6)<<4;      GFX[tb+2]|=((tc&0x10)>>4)<<4;      GFX[tb+1]|=((tc&0x04)>>2)<<4;      GFX[tb+0]|=((tc&0x01)>>0)<<4;      tb+=4;   }   tb=0;   if(!load_rom("d66-06.rom", ROM, 0xF6840)) return;	// 16x16 TILES ($3DA1)   for(ta=0;ta<0xF6840;ta+=2){      GFX_BG0[tb++]=ROM[ta]&15;      GFX_BG0[tb++]=ROM[ta]>>4;      GFX_BG0[tb++]=ROM[ta+1]&15;      GFX_BG0[tb++]=ROM[ta+1]>>4;      tb+=4;   }   tb=4;   if(!load_rom("d66-07.rom", ROM, 0xF6840)) return;	// 16x16 TILES   for(ta=0;ta<0xF6840;ta+=2){      GFX_BG0[tb++]=ROM[ta]&15;      GFX_BG0[tb++]=ROM[ta]>>4;      GFX_BG0[tb++]=ROM[ta+1]&15;      GFX_BG0[tb++]=ROM[ta+1]>>4;      tb+=4;   }   tb=0;   if(!load_rom("d66-08.rom", ROM, 0xF6840)) return;	// 16x16 TILES (MASK)   for(ta=0;ta<0xF6840;ta+=2){      tc=ROM[ta];      GFX_BG0[tb+7]|=((tc&0x80)>>7)<<4;      GFX_BG0[tb+6]|=((tc&0x40)>>6)<<4;      GFX_BG0[tb+5]|=((tc&0x20)>>5)<<4;      GFX_BG0[tb+4]|=((tc&0x10)>>4)<<4;      GFX_BG0[tb+3]|=((tc&0x08)>>3)<<4;      GFX_BG0[tb+2]|=((tc&0x04)>>2)<<4;      GFX_BG0[tb+1]|=((tc&0x02)>>1)<<4;      GFX_BG0[tb+0]|=((tc&0x01)>>0)<<4;      tb+=8;   }   Rotate16x16(GFX_SPR,0x3C88);   Flip16x16_X(GFX_SPR,0x3C88);   Rotate16x16(GFX_BG0,0x3DA1);   Flip16x16_X(GFX_BG0,0x3DA1);   GFX_BG0_SOLID = MakeSolidTileMap16x16(GFX_BG0, 0x3DA1);   GFX_SPR_SOLID = make_solid_mask_16x16(GFX_SPR, 0x3C88);   // Setup 68020 Memory Map   // ----------------------   AddF3MemoryMap(0x100000);   RAM_BG0=RAM+0x30000;   RAM_BG1=RAM+0x32000;   RAM_BG2=RAM+0x34000;   RAM_BG3=RAM+0x36000;   RAM_SCR0=RAM+0x6A000;   RAM_SCR1=RAM+0x6A002;   RAM_SCR2=RAM+0x6A004;   RAM_SCR3=RAM+0x6A006;   SCR0_XOFS=0xF640;   SCR1_XOFS=0xF740;   SCR2_XOFS=0xF840;   SCR3_XOFS=0xF940;   SCR0_YOFS=0xFF80;   SCR1_YOFS=0xFF80;   SCR2_YOFS=0xFF80;   SCR3_YOFS=0xFF80;

⌨️ 快捷键说明

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