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

📄 trstars.c

📁 十七种模拟器源代码 非常有用的作课程设计不可缺少的
💻 C
📖 第 1 页 / 共 2 页
字号:
/******************************************************************************//*                                                                            *//*               TOP RANKING STARS (C) 1994 TAITO CORPORATION                 *//*                                                                            *//******************************************************************************/#include "gameinc.h"#include "trstars.h"#include "f3system.h"#include "tc003vcu.h"#include "tc200obj.h"#include "savegame.h"#include "debug.h"#include "sasound.h"static struct DIR_INFO top_ranking_stars_dirs[] ={   { "top_ranking_stars", },   { "trstars", },   { "trstar", },   { NULL, },};static struct ROM_INFO top_ranking_stars_roms[] ={   { "tstar_01.rom", 0x00200000, 0x28fd2d9b, 0, 0, 0, },   { "tstar_02.rom", 0x00200000, 0x8bd4367a, 0, 0, 0, },   { "tstar_03.rom", 0x00200000, 0x91b66145, 0, 0, 0, },   { "tstar_04.rom", 0x00200000, 0xac3a5e80, 0, 0, 0, },   { "tstar_05.rom", 0x00200000, 0xb9b68b15, 0, 0, 0, },   { "tstar_06.rom", 0x00100000, 0xf4bac410, 0, 0, 0, },   { "tstar_07.rom", 0x00100000, 0x2f4773c3, 0, 0, 0, },   { "tstar_08.rom", 0x00100000, 0xad13a1ee, 0, 0, 0, },   { "tstar_09.rom", 0x00100000, 0x690554d3, 0, 0, 0, },   { "tstar_10.rom", 0x00100000, 0x0ec05dc5, 0, 0, 0, },   { "tstar_11.rom", 0x00100000, 0x39c0a546, 0, 0, 0, },   { "tstar_13.rom", 0x00020000, 0x877f0361, REGION_ROM2, 0x000000, LOAD_8_16, },   { "tstar_14.rom", 0x00020000, 0xa8664867, REGION_ROM2, 0x000001, LOAD_8_16, },   { "tstar_15.rom", 0x00040000, 0x098bba94, 0, 0, 0, },   { "tstar_16.rom", 0x00040000, 0x4fa8b15c, 0, 0, 0, },   { "tstar_18.rom", 0x00040000, 0xaa71cfcc, 0, 0, 0, },   { "tstar_20.rom", 0x00040000, 0x4de1e287, 0, 0, 0, },   {           NULL,          0,          0, 0, 0, 0, },};static struct ROMSW_DATA romsw_data_top_ranking_stars_0[] ={   { "Taito Japan (Notice)",  0x01 },   { "Taito America",         0x02 },   { "Taito Japan",           0x03 },   { NULL,                    0    },};static struct ROMSW_INFO top_ranking_stars_romsw[] ={   { 0x0FFFFF, 0x03, romsw_data_top_ranking_stars_0 },   { 0,        0,    NULL },};static struct VIDEO_INFO top_ranking_stars_video ={   DrawTRStars,   320,   224,   64,   VIDEO_ROTATE_NORMAL| VIDEO_ROTATABLE,};struct GAME_MAIN game_top_ranking_stars ={   top_ranking_stars_dirs,   top_ranking_stars_roms,   f3_system_inputs,   NULL,   top_ranking_stars_romsw,   LoadTRStars,   ClearTRStars,   &top_ranking_stars_video,   ExecuteTRStarsFrame,   "trstar",   "Top Ranking Stars",   NULL,   COMPANY_ID_TAITO,   "D53",   1994,   f3_sound,   GAME_BEAT | GAME_PARTIALLY_WORKING,};static struct DIR_INFO prime_time_fighters_dirs[] ={   { "prime_time_fighter", },   { "prmtmfgt", },   { "prmtmfgo", },   { "trstars", },   { ROMOF("trstar"), },   { CLONEOF("trstar"), },   { NULL, },};static struct ROM_INFO prime_time_fighters_roms[] ={   { "tstar_01.rom", 0x00200000, 0x28fd2d9b, 0, 0, 0, },   { "tstar_02.rom", 0x00200000, 0x8bd4367a, 0, 0, 0, },   { "tstar_03.rom", 0x00200000, 0x91b66145, 0, 0, 0, },   { "tstar_04.rom", 0x00200000, 0xac3a5e80, 0, 0, 0, },   { "tstar_05.rom", 0x00200000, 0xb9b68b15, 0, 0, 0, },   { "tstar_06.rom", 0x00100000, 0xf4bac410, 0, 0, 0, },   { "tstar_07.rom", 0x00100000, 0x2f4773c3, 0, 0, 0, },   { "tstar_08.rom", 0x00100000, 0xad13a1ee, 0, 0, 0, },   { "tstar_09.rom", 0x00100000, 0x690554d3, 0, 0, 0, },   { "tstar_10.rom", 0x00100000, 0x0ec05dc5, 0, 0, 0, },   { "tstar_11.rom", 0x00100000, 0x39c0a546, 0, 0, 0, },   { "tstar_13.rom", 0x00020000, 0x877f0361, 0, 0, 0, },   { "tstar_14.rom", 0x00020000, 0xa8664867, 0, 0, 0, },   {    "d53-15.24", 0x00040000, 0xf24de51b, 0, 0, 0, },   {    "d53-16.26", 0x00040000, 0xffc84429, 0, 0, 0, },   {    "d53-18.37", 0x00040000, 0xea2d6e13, 0, 0, 0, },   {    "d53-19.35", 0x00040000, 0x00e6c2f1, 0, 0, 0, },   {           NULL,          0,          0, 0, 0, 0, },};static struct ROMSW_INFO prime_time_fighters_romsw[] ={   { 0x0FFFFF, 0x02, romsw_data_top_ranking_stars_0 },   { 0,        0,    NULL },};struct GAME_MAIN game_prime_time_fighters ={   prime_time_fighters_dirs,   prime_time_fighters_roms,   f3_system_inputs,   NULL,   prime_time_fighters_romsw,   load_prime_time_fighters,   ClearTRStars,   &top_ranking_stars_video,   ExecuteTRStarsFrame,   "prmtmfgo",   "Prime Time Fighter (Old Version)",   NULL,   COMPANY_ID_TAITO,   "D53",   1994,   f3_sound,   GAME_BEAT | GAME_PARTIALLY_WORKING,};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 UINT8 *GFX_BG0;static UINT8 *GFX_BG0_SOLID;static UINT8 *GFX_SPR;static UINT8 *GFX_SPR_SOLID;static void load_actual(int romset){   int ta,tb,tc;   if(!(ROM=AllocateMem(0x200000))) return;   if(!(GFX=AllocateMem(0xBC0A00+0x366B00))) return;   GFX_BG0 = GFX+0xBC0A00;   GFX_SPR = GFX+0x000000;   tb=0;   if(!load_rom("tstar_03.rom", ROM, 0x200000)) return;	// 16x16 SPRITES ($BC0A)   for(ta=0;ta<0x200000;ta++){      GFX[tb++]=ROM[ta]&15;      GFX[tb++]=ROM[ta]>>4;      tb+=2;   }   if(!load_rom("tstar_06.rom", ROM, 0xF0280)) return;	// 16x16 SPRITES   for(ta=0;ta<0xF0280;ta++){      GFX[tb++]=ROM[ta]&15;      GFX[tb++]=ROM[ta]>>4;      tb+=2;   }   tb=2;   if(!load_rom("tstar_04.rom", ROM, 0x200000)) return;	// 16x16 SPRITES   for(ta=0;ta<0x200000;ta++){      GFX[tb++]=ROM[ta]&15;      GFX[tb++]=ROM[ta]>>4;      tb+=2;   }   if(!load_rom("tstar_07.rom", ROM, 0xF0280)) return;		// 16x16 SPRITES   for(ta=0;ta<0xF0280;ta++){      GFX[tb++]=ROM[ta]&15;      GFX[tb++]=ROM[ta]>>4;      tb+=2;   }   tb=0;   if(!load_rom("tstar_05.rom", ROM, 0x200000)) return;	// 16x16 SPRITES (MASK)   for(ta=0;ta<0x200000;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;   }   if(!load_rom("tstar_08.rom", ROM, 0xF0280)) return;		// 16x16 SPRITES (MASK)   for(ta=0;ta<0xF0280;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;   }   RAMSize=0x80000;   if(!(RAM=AllocateMem(0x80000))) return;   if(!(ROM=AllocateMem(0x100000))) return;   tb=0;   if(!load_rom("tstar_09.rom", ROM, 0xD9AC0)) return;	// 16x16 TILES ($366B)   for(ta=0;ta<0xD9AC0;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("tstar_10.rom", ROM, 0xD9AC0)) return;	// 16x16 TILES   for(ta=0;ta<0xD9AC0;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("tstar_11.rom", ROM, 0xD9AC0)) return;	// 16x16 TILES (MASK)   for(ta=0;ta<0xD9AC0;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;   }   GFX_BG0_SOLID = MakeSolidTileMap16x16(GFX_BG0, 0x366B);   GFX_SPR_SOLID = make_solid_mask_16x16(GFX_SPR, 0xBC0A);   // 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;   if(!load_rom_index(13, RAM, 0x40000)) return;   for(ta=0;ta<0x40000;ta++){      ROM[(ta<<2)+0]=RAM[ta];   }   if(!load_rom_index(14, RAM, 0x40000)) return;   for(ta=0;ta<0x40000;ta++){      ROM[(ta<<2)+1]=RAM[ta];   }   if(!load_rom_index(15, RAM, 0x40000)) return;   for(ta=0;ta<0x40000;ta++){      ROM[(ta<<2)+2]=RAM[ta];   }   if(!load_rom_index(16, RAM, 0x40000)) return;   for(ta=0;ta<0x40000;ta++){      ROM[(ta<<2)+3]=RAM[ta];   }   // 68000 code   M68000ROM = load_region[REGION_ROM2];   if(!(PCMROM=AllocateMem(0x1000000))) return;      load_be("tstar_01.rom",PCMROM,0x200000);   load_be("tstar_02.rom",PCMROM+0xc00000,0x200000);   max_banks_this_game=7; //=memory_region_length(REGION_SOUND1)/0x400000;   memset(PCMROM+0x400000,0,0x7fffff);      memset(RAM+0x00000,0x00,0x80000);   memset(RAM+0x69000,0xFF,0x01000);   if(romset==0){   // eeprom hacks   WriteWord68k(&ROM[0x1D10A],0x7F00);		//	raine	#$00	<eeprom read>   WriteWord68k(&ROM[0x1D10C],0x4E75);		//	rts   WriteWord68k(&ROM[0x1D186],0x7F01);		//	raine	#$01	<eeprom write>   WriteWord68k(&ROM[0x1D188],0x4E75);		//	rts   // speed hacks

⌨️ 快捷键说明

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