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

📄 pbobble4.c

📁 十七种模拟器源代码 非常有用的作课程设计不可缺少的
💻 C
📖 第 1 页 / 共 2 页
字号:
void ClearPuzzleBobble4(void){   save_eeprom();#ifdef RAINE_DEBUG      save_debug("ROM.bin",ROM,0x200000,0);      save_debug("RAM.bin",RAM,0x080000,0);      //save_debug("GFX.bin",GFX,0x64AB00+0x3C2300,0);#endif}void ExecutePuzzleBobble4Frame(void){  int ta;  /*   print_ingame(240,"0X:%04x 1X:%04x 2X:%04x 3X:%04x",ReadWord68k(&RAM[0x6A000]),ReadWord68k(&RAM[0x6A002]),ReadWord68k(&RAM[0x6A004]),ReadWord68k(&RAM[0x6A006]));   print_ingame(240,"0Y:%04x 1Y:%04x 2Y:%04x 3Y:%04x",ReadWord68k(&RAM[0x6A008]),ReadWord68k(&RAM[0x6A00A]),ReadWord68k(&RAM[0x6A00C]),ReadWord68k(&RAM[0x6A00E]));   print_ingame(240,"00:%04x 00:%04x PX:%04x PY:%04x",ReadWord68k(&RAM[0x6A010]),ReadWord68k(&RAM[0x6A012]),ReadWord68k(&RAM[0x6A014]),ReadWord68k(&RAM[0x6A016]));   print_ingame(240,"00:%04x 00:%04x 00:%04x ??:%04x",ReadWord68k(&RAM[0x6A018]),ReadWord68k(&RAM[0x6A01A]),ReadWord68k(&RAM[0x6A01C]),ReadWord68k(&RAM[0x6A01E]));   print_ingame(240,"-------------------------------");   print_ingame(240,"%04x %04x %04x %04x",ReadWord68k(&RAM[0x687F8]),ReadWord68k(&RAM[0x687FA]),ReadWord68k(&RAM[0x687FC]),ReadWord68k(&RAM[0x687FE]));   print_ingame(240,"%04x %04x %04x %04x",ReadWord68k(&RAM[0x40000]),ReadWord68k(&RAM[0x40200]),ReadWord68k(&RAM[0x40400]),ReadWord68k(&RAM[0x40600]));   print_ingame(240,"%04x %04x %04x %04x",ReadWord68k(&RAM[0x40800]),ReadWord68k(&RAM[0x40A00]),ReadWord68k(&RAM[0x40C00]),ReadWord68k(&RAM[0x40E00]));   print_ingame(240,"%04x",ReadWord68k(&RAM[0x41000]));*/  for (ta=0; ta<f3_slices; ta++) {    Execute68020(800000/f3_slices);    if (RaineSoundCard) {      cpu_execute_cycles(CPU_68K_0, CPU_FRAME_MHz(16,60*f3_slices)); // M68000 16MHz (60fps)      if (int7_active) 	f3_timer_callback();    }  }       /*#ifdef RAINE_DEBUG      print_debug("PC:%06x SR:%04x A7:%06x\n",regs.pc,regs.sr,m68k_areg(regs,7));   #endif*/   Interrupt68020(2);   Interrupt68020(5);   Interrupt68020(3);   IntF3System();}static int BGPRI[3];void DrawPuzzleBobble4(void){   UINT8 *MAP;   int x,y,z,ta,zz,zzz,zzzz,x16,y16;   UINT16 d0;   ClearPaletteMap();   // Init tc0003vcu emulation   // ------------------------   tc0003vcu_layer_count = 0;   d0=0;   if(check_layer_enabled(f3_bg0_id)){   MAKE_SCROLL_512x512_4_16(      (ReadWord68k(&RAM_SCR0[0])-SCR0_XOFS)>>6,      (ReadWord68k(&RAM_SCR0[8])-SCR0_YOFS)>>7   );   START_SCROLL_512x512_4_16(64,64,320,232);      if(d0==0) d0=ReadWord68k(&RAM_BG0[zz])&0x3E00;      MAP_PALETTE_MAPPED_NEW(               ReadWord68k(&RAM_BG0[zz])&0x1FF,               64,        MAP            );      switch(RAM_BG0[zz]&0xC0){      case 0x00: Draw16x16_Mapped_Rot(&GFX_BG0[(ReadWord68k(&RAM_BG0[zz+2])&0x3FFF)<<8],x,y,MAP);        break;      case 0x40: Draw16x16_Mapped_FlipY_Rot(&GFX_BG0[(ReadWord68k(&RAM_BG0[zz+2])&0x3FFF)<<8],x,y,MAP);  break;      case 0x80: Draw16x16_Mapped_FlipX_Rot(&GFX_BG0[(ReadWord68k(&RAM_BG0[zz+2])&0x3FFF)<<8],x,y,MAP);  break;      case 0xC0: Draw16x16_Mapped_FlipXY_Rot(&GFX_BG0[(ReadWord68k(&RAM_BG0[zz+2])&0x3FFF)<<8],x,y,MAP); break;      }   END_SCROLL_512x512_4_16();   }   BGPRI[0]=d0;   d0=0;   if(check_layer_enabled(f3_bg1_id)){   MAKE_SCROLL_512x512_4_16(      (ReadWord68k(&RAM_SCR1[0])-SCR1_XOFS)>>6,      (ReadWord68k(&RAM_SCR1[8])-SCR1_YOFS)>>7   );   START_SCROLL_512x512_4_16(64,64,320,232);   ta=ReadWord68k(&RAM_BG1[zz+2])&0x3FFF;   if(ta!=0){      if(d0==0) d0=ReadWord68k(&RAM_BG1[zz])&0x3E00;      MAP_PALETTE_MAPPED_NEW(               ReadWord68k(&RAM_BG1[zz])&0x1FF,               64,        MAP            );      if(GFX_BG0_SOLID[ta]==0){         switch(RAM_BG1[zz]&0xC0){         case 0x00: Draw16x16_Trans_Mapped_Rot(&GFX_BG0[ta<<8],x,y,MAP);        break;         case 0x40: Draw16x16_Trans_Mapped_FlipY_Rot(&GFX_BG0[ta<<8],x,y,MAP);  break;         case 0x80: Draw16x16_Trans_Mapped_FlipX_Rot(&GFX_BG0[ta<<8],x,y,MAP);  break;         case 0xC0: Draw16x16_Trans_Mapped_FlipXY_Rot(&GFX_BG0[ta<<8],x,y,MAP); break;         }      }      else{         switch(RAM_BG1[zz]&0xC0){         case 0x00: Draw16x16_Mapped_Rot(&GFX_BG0[ta<<8],x,y,MAP);        break;         case 0x40: Draw16x16_Mapped_FlipY_Rot(&GFX_BG0[ta<<8],x,y,MAP);  break;         case 0x80: Draw16x16_Mapped_FlipX_Rot(&GFX_BG0[ta<<8],x,y,MAP);  break;         case 0xC0: Draw16x16_Mapped_FlipXY_Rot(&GFX_BG0[ta<<8],x,y,MAP); break;         }      }   }   END_SCROLL_512x512_4_16();   }   BGPRI[1]=d0;   d0=0;   if(check_layer_enabled(f3_bg2_id)){   MAKE_SCROLL_512x512_4_16(      (ReadWord68k(&RAM_SCR2[0])-SCR2_XOFS)>>6,      (ReadWord68k(&RAM_SCR2[8])-SCR2_YOFS)>>7   );   START_SCROLL_512x512_4_16(64,64,320,232);   ta=ReadWord68k(&RAM_BG2[zz+2])&0x3FFF;   if(ta!=0){      if(d0==0) d0=ReadWord68k(&RAM_BG2[zz])&0x3E00;      MAP_PALETTE_MAPPED_NEW(               ReadWord68k(&RAM_BG2[zz])&0x1FF,               64,        MAP            );      if(GFX_BG0_SOLID[ta]==0){         switch(RAM_BG2[zz]&0xC0){         case 0x00: Draw16x16_Trans_Mapped_Rot(&GFX_BG0[ta<<8],x,y,MAP);        break;         case 0x40: Draw16x16_Trans_Mapped_FlipY_Rot(&GFX_BG0[ta<<8],x,y,MAP);  break;         case 0x80: Draw16x16_Trans_Mapped_FlipX_Rot(&GFX_BG0[ta<<8],x,y,MAP);  break;         case 0xC0: Draw16x16_Trans_Mapped_FlipXY_Rot(&GFX_BG0[ta<<8],x,y,MAP); break;         }      }      else{         switch(RAM_BG2[zz]&0xC0){         case 0x00: Draw16x16_Mapped_Rot(&GFX_BG0[ta<<8],x,y,MAP);        break;         case 0x40: Draw16x16_Mapped_FlipY_Rot(&GFX_BG0[ta<<8],x,y,MAP);  break;         case 0x80: Draw16x16_Mapped_FlipX_Rot(&GFX_BG0[ta<<8],x,y,MAP);  break;         case 0xC0: Draw16x16_Mapped_FlipXY_Rot(&GFX_BG0[ta<<8],x,y,MAP); break;         }      }   }   END_SCROLL_512x512_4_16();   }   BGPRI[2]=d0;   d0=0;   if(check_layer_enabled(f3_bg3_id)){   MAKE_SCROLL_512x512_4_16(      (ReadWord68k(&RAM_SCR3[0])-SCR3_XOFS)>>6,      (ReadWord68k(&RAM_SCR3[8])-SCR3_YOFS)>>7   );   START_SCROLL_512x512_4_16(64,64,320,232);   ta=ReadWord68k(&RAM_BG3[zz+2])&0x3FFF;   if(ta!=0){      if(d0==0) d0=ReadWord68k(&RAM_BG3[zz])&0x3E00;      MAP_PALETTE_MAPPED_NEW(               ReadWord68k(&RAM_BG3[zz])&0x1FF,               64,        MAP            );      if(GFX_BG0_SOLID[ta]==0){         switch(RAM_BG3[zz]&0xC0){         case 0x00: Draw16x16_Trans_Mapped_Rot(&GFX_BG0[ta<<8],x,y,MAP);        break;         case 0x40: Draw16x16_Trans_Mapped_FlipY_Rot(&GFX_BG0[ta<<8],x,y,MAP);  break;         case 0x80: Draw16x16_Trans_Mapped_FlipX_Rot(&GFX_BG0[ta<<8],x,y,MAP);  break;         case 0xC0: Draw16x16_Trans_Mapped_FlipXY_Rot(&GFX_BG0[ta<<8],x,y,MAP); break;         }      }      else{         switch(RAM_BG3[zz]&0xC0){         case 0x00: Draw16x16_Mapped_Rot(&GFX_BG0[ta<<8],x,y,MAP);        break;         case 0x40: Draw16x16_Mapped_FlipY_Rot(&GFX_BG0[ta<<8],x,y,MAP);  break;         case 0x80: Draw16x16_Mapped_FlipX_Rot(&GFX_BG0[ta<<8],x,y,MAP);  break;         case 0xC0: Draw16x16_Mapped_FlipXY_Rot(&GFX_BG0[ta<<8],x,y,MAP); break;         }      }   }   END_SCROLL_512x512_4_16();   }   BGPRI[3]=d0;   render_tc0200obj_mapped_f3system_b();   if(check_layer_enabled(f3_bg5_id)){      //memset(RAM+0x3E000+(5<<5),0x20,0x00);      //f3video_render_fg0();   zz=0;   for(y=64;y<232+64;y+=8){   for(x=64;x<320+64;x+=8){      z=RAM[0x3C001+zz];      if((z!=0)&&(z!=5)){		// 5='black' transparent shade      MAP_PALETTE_MAPPED_NEW(               (RAM[0x3C000+zz]>>1)&0x3F,               16,        MAP            );         if((RAM[0x3C000+zz]&0x01)!=0){            Draw8x8_Trans_Packed_Mapped_Rot(&RAM[0x3E000+(z<<5)],x,y,MAP);         }         else{            Draw8x8_Trans_Packed_Mapped_FlipY_Rot(&RAM[0x3E000+(z<<5)],x,y,MAP);         }      }      zz+=2;   }   zz+=(128-80);   }   }//     print_ingame(1,"$$$: %04x %04x %04x %04x",BGPRI[0],BGPRI[1],BGPRI[2],BGPRI[3]);     if((BGPRI[0]!=0)||(BGPRI[1]!=0)||(BGPRI[2]!=0)||(BGPRI[3]!=0))     {       RAM_BG0=RAM+0x33000;       RAM_BG2=RAM+0x31000;       RAM_BG3=RAM+0x30000;       RAM_SCR0=RAM+0x6A006;       RAM_SCR2=RAM+0x6A002;       RAM_SCR3=RAM+0x6A000;       SCR3_XOFS=0xF640;       SCR2_XOFS=0xF740;       SCR0_XOFS=0xF940;     }     else     {       RAM_BG0=RAM+0x30000;       RAM_BG3=RAM+0x31000;       RAM_BG2=RAM+0x33000;       RAM_SCR0=RAM+0x6A000;       RAM_SCR3=RAM+0x6A002;       RAM_SCR2=RAM+0x6A006;       SCR0_XOFS=0xF640;       SCR3_XOFS=0xF740;       SCR2_XOFS=0xF940;     }}/*'Raven' Romlist---------------File   | Contents-------+----------------------------------pb4.17 | 68020 3pb4.18 | 68020 2pb4.19 | 68020 1pb4.20 | 68020 0pb4.32 | 68000 1pb4.33 | 68000 0pb4.45 | Tiles oddpb4.47 | Tiles evenpb4.38 | Samples 0 (missing odd bytes)pb4.39 | Samples 1 (missing odd bytes)pb4.40 | Samples 2 (missing odd bytes)pb4.8  | Sprites odd  (missing odd bytes)pb4.12 | Sprites even (missing odd bytes)What's missing:- Odd bytes on 5 of the roms- 1 Mask rom for tiles*/

⌨️ 快捷键说明

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