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

📄 bubsymph.c

📁 十七种模拟器源代码 非常有用的作课程设计不可缺少的
💻 C
📖 第 1 页 / 共 2 页
字号:
/******************************************************************************//*                                                                            *//*         BUBBLE BOBBLE 2/BUBBLE SYMPHONY (C) 1994 TAITO CORPORATION         *//*                                                                            *//******************************************************************************/#include "gameinc.h"#include "bubsymph.h"#include "f3system.h"#include "tc003vcu.h"#include "tc200obj.h"#include "savegame.h"#include "sasound.h"/*******************   BUBBLE BOBBLE 2 *******************/static struct DIR_INFO bubble_bobble_2_dirs[] ={   { "bubble_bobble_2", },   { "bublbob2", },   { NULL, },};static struct ROM_INFO bubble_bobble_2_roms[] ={   {       "d90.12", 0x00040000, 0x9e523996, REGION_ROM1, 0x000000, LOAD_8_32, },   {       "d90.11", 0x00040000, 0xedfdbb7f, REGION_ROM1, 0x000001, LOAD_8_32, },   {       "d90.10", 0x00040000, 0x8e957d3d, REGION_ROM1, 0x000002, LOAD_8_32, },   {       "d90.17", 0x00040000, 0x711f1894, REGION_ROM1, 0x000003, LOAD_8_32, },   {       "d90.01", 0x00100000, 0x8aedb9e5, 0, 0, 0, },   {       "d90.02", 0x00100000, 0x5ab04ca2, 0, 0, 0, },   {       "d90.03", 0x00100000, 0x6fa894a1, 0, 0, 0, },   {       "d90.04", 0x00200000, 0xfeee5fda, 0, 0, 0, },   {       "d90.05", 0x00200000, 0xc192331f, 0, 0, 0, },   {       "d90.06", 0x00100000, 0x166a72b8, 0, 0, 0, },   {       "d90.07", 0x00100000, 0xb436b42d, 0, 0, 0, },   {       "d90.08", 0x00100000, 0x25a4fb2c, 0, 0, 0, },   {       "d90.13", 0x00040000, 0x6762bd90, REGION_ROM2, 0x000000, LOAD_8_16, },   {       "d90.14", 0x00040000, 0x8e33357e, REGION_ROM2, 0x000001, LOAD_8_16, },   {           NULL,          0,          0, 0, 0, 0, },};/*static struct ROMSW_DATA romsw_data_bubble_bobble_2[] ={   { "Taito Japan (Japanese)",        0x01 },   { "Taito America",                 0x02 },   { "Taito World (Bubble Bobble 2)", 0x03 },   { NULL,                     0    },};*/static struct VIDEO_INFO bubble_symphony_video ={   DrawBubbleSymphony,   320,   224,   64,   VIDEO_ROTATE_NORMAL,};extern void ExecuteBubbleMemoriesFrame(void);struct GAME_MAIN game_bubble_bobble_2 ={   bubble_bobble_2_dirs,   bubble_bobble_2_roms,   f3_system_inputs,   NULL,   NULL,    LoadBubbleSymphony,   ClearBubbleSymphony,   &bubble_symphony_video,   ExecuteBubbleMemoriesFrame,   "bublbob2",   "Bubble Bobble 2",   "僶僽儖僔儞僼僅僯乕",   COMPANY_ID_TAITO,   "D90",   1994,   f3_sound,   GAME_PLATFORM,};/*******************   BUBBLE SYMPHONY *******************/static struct DIR_INFO bubble_symphony_dirs[] ={   { "bubble_symphony", },   { "bubsymph", },   { ROMOF("bublbob2"), },   { CLONEOF("bublbob2"), },   { NULL, },};static struct ROM_INFO bubble_symphony_roms[] ={   {       "d90.12", 0x00040000, 0x9e523996, REGION_ROM1, 0x000000, LOAD_8_32, },   {       "d90.11", 0x00040000, 0xedfdbb7f, REGION_ROM1, 0x000001, LOAD_8_32, },   {       "d90.10", 0x00040000, 0x8e957d3d, REGION_ROM1, 0x000002, LOAD_8_32, },   {       "d90.09", 0x00040000, 0x3f2090b7, REGION_ROM1, 0x000003, LOAD_8_32, },   {       "d90.01", 0x00100000, 0x8aedb9e5, 0, 0, 0, },   {       "d90.02", 0x00100000, 0x5ab04ca2, 0, 0, 0, },   {       "d90.03", 0x00100000, 0x6fa894a1, 0, 0, 0, },   {       "d90.04", 0x00200000, 0xfeee5fda, 0, 0, 0, },   {       "d90.05", 0x00200000, 0xc192331f, 0, 0, 0, },   {       "d90.06", 0x00100000, 0x166a72b8, 0, 0, 0, },   {       "d90.07", 0x00100000, 0xb436b42d, 0, 0, 0, },   {       "d90.08", 0x00100000, 0x25a4fb2c, 0, 0, 0, },   {       "d90.13", 0x00040000, 0x6762bd90, REGION_ROM2, 0x000000, LOAD_8_16, },   {       "d90.14", 0x00040000, 0x8e33357e, REGION_ROM2, 0x000001, LOAD_8_16, },   {           NULL,          0,          0, 0, 0, 0, },};struct GAME_MAIN game_bubble_symphony ={   bubble_symphony_dirs,   bubble_symphony_roms,   f3_system_inputs,   NULL,   NULL,   LoadBubbleSymphony,   ClearBubbleSymphony,   &bubble_symphony_video,   ExecuteBubbleMemoriesFrame,   "bubsymph",   "Bubble Symphony",   "僶僽儖僔儞僼僅僯乕",   COMPANY_ID_TAITO,   "D90",   1994,   f3_sound,   GAME_PLATFORM,};/**********************   BUBBLE SYMPHONY US **********************/static struct DIR_INFO bubble_symphony_us_dirs[] ={   { "bubble_symphony_us", },   { "bubsympu", },   { ROMOF("bublbob2"), },   { CLONEOF("bublbob2"), },   { NULL, },};static struct ROM_INFO bubble_symphony_us_roms[] ={   {       "d90.12", 0x00040000, 0x9e523996, REGION_ROM1, 0x000000, LOAD_8_32, },   {       "d90.11", 0x00040000, 0xedfdbb7f, REGION_ROM1, 0x000001, LOAD_8_32, },   {       "d90.10", 0x00040000, 0x8e957d3d, REGION_ROM1, 0x000002, LOAD_8_32, },   {      "d90.usa", 0x00040000, 0x06182802, REGION_ROM1, 0x000003, LOAD_8_32, },   {       "d90.01", 0x00100000, 0x8aedb9e5, 0, 0, 0, },   {       "d90.02", 0x00100000, 0x5ab04ca2, 0, 0, 0, },   {       "d90.03", 0x00100000, 0x6fa894a1, 0, 0, 0, },   {       "d90.04", 0x00200000, 0xfeee5fda, 0, 0, 0, },   {       "d90.05", 0x00200000, 0xc192331f, 0, 0, 0, },   {       "d90.06", 0x00100000, 0x166a72b8, 0, 0, 0, },   {       "d90.07", 0x00100000, 0xb436b42d, 0, 0, 0, },   {       "d90.08", 0x00100000, 0x25a4fb2c, 0, 0, 0, },   {       "d90.13", 0x00040000, 0x6762bd90, REGION_ROM2, 0x000000, LOAD_8_16, },   {       "d90.14", 0x00040000, 0x8e33357e, REGION_ROM2, 0x000001, LOAD_8_16, },   {           NULL,          0,          0, 0, 0, 0, },};struct GAME_MAIN game_bubble_symphony_us ={   bubble_symphony_us_dirs,   bubble_symphony_us_roms,   f3_system_inputs,   NULL,   NULL,   LoadBubbleSymphony,   ClearBubbleSymphony,   &bubble_symphony_video,   ExecuteBubbleMemoriesFrame,   "bubsympu",   "Bubble Symphony (US)",   "僶僽儖僔儞僼僅僯乕 (US)",   COMPANY_ID_TAITO,   "D90",   1994,   f3_sound,   GAME_PLATFORM,};static UINT8 *RAM_BG0;static UINT8 *RAM_BG1;static UINT8 *RAM_BG2;static UINT8 *RAM_BG3;static UINT8 *RAM_BG4;		// PIXELstatic UINT8 *RAM_SCR0;static UINT8 *RAM_SCR1;static UINT8 *RAM_SCR2;static UINT8 *RAM_SCR3;static UINT8 *RAM_SCR4;		// PIXELstatic UINT32 SCR0_XOFS;static UINT32 SCR1_XOFS;static UINT32 SCR2_XOFS;static UINT32 SCR3_XOFS;static UINT32 SCR4_XOFS;		// PIXELstatic UINT32 SCR0_YOFS;static UINT32 SCR1_YOFS;static UINT32 SCR2_YOFS;static UINT32 SCR3_YOFS;static UINT32 SCR4_YOFS;		// PIXELstatic UINT8 *GFX_BG0;static UINT8 *GFX_BG0_SOLID;static UINT8 *GFX_SPR;static UINT8 *GFX_SPR_SOLID;void LoadBubbleSymphony(void){   int ta,tb,tc;   UINT8 *TMP;   RAMSize=0x80000;   if(!(RAM=AllocateMem(0x80000))) return;   if(!(GFX=AllocateMem(0x3E8D00+0x336E00))) return;   if(!(TMP=AllocateMem(0x100000))) return;   GFX_BG0 = GFX+0x3E8D00;   GFX_SPR = GFX+0x000000;   tb=0;   if(!load_rom("d90.03", TMP, 0xFA340)) return;	// 16x16 SPRITES ($3E8D)   for(ta=0;ta<0xFA340;ta++){      GFX[tb++]=TMP[ta]&15;      GFX[tb++]=TMP[ta]>>4;      tb+=2;   }   tb=2;   if(!load_rom("d90.02", TMP, 0xFA340)) return;	// 16x16 SPRITES   for(ta=0;ta<0xFA340;ta++){      GFX[tb++]=TMP[ta]&15;      GFX[tb++]=TMP[ta]>>4;      tb+=2;   }   tb=0;   if(!load_rom("d90.01", TMP, 0xFA340)) return;	// 16x16 SPRITES (MASK)   for(ta=0;ta<0xFA340;ta++){      tc=TMP[ta];      GFX[tb+3]|=((tc&0xC0)>>6)<<4;      GFX[tb+2]|=((tc&0x30)>>4)<<4;      GFX[tb+1]|=((tc&0x0C)>>2)<<4;      GFX[tb+0]|=((tc&0x03)>>0)<<4;      tb+=4;   }   memset(GFX+0x1C8900,0x00,0x100);   tb=0;   if(!load_rom("d90.08", TMP, 0xCDB80)) return;	// 16x16 TILES ($336E)   for(ta=0;ta<0xCDB80;ta+=2){      GFX_BG0[tb++]=TMP[ta]&15;      GFX_BG0[tb++]=TMP[ta]>>4;      GFX_BG0[tb++]=TMP[ta+1]&15;      GFX_BG0[tb++]=TMP[ta+1]>>4;      tb+=4;   }   tb=4;   if(!load_rom("d90.07", TMP, 0xCDB80)) return;	// 16x16 TILES   for(ta=0;ta<0xCDB80;ta+=2){      GFX_BG0[tb++]=TMP[ta]&15;      GFX_BG0[tb++]=TMP[ta]>>4;      GFX_BG0[tb++]=TMP[ta+1]&15;      GFX_BG0[tb++]=TMP[ta+1]>>4;      tb+=4;   }   tb=0;   if(!load_rom("d90.06", TMP, 0xCDB80)) return;	// 16x16 TILES (MASK)   for(ta=0;ta<0xCDB80;ta+=2){      tc=TMP[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;   }   FreeMem(TMP);   GFX_BG0_SOLID = MakeSolidTileMap16x16(GFX_BG0, 0x336E);   GFX_SPR_SOLID = make_solid_mask_16x16(GFX_SPR, 0x3E8D);

⌨️ 快捷键说明

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