Advertisement
Guest User

Untitled

a guest
Aug 21st, 2014
268
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.24 KB | None | 0 0
  1. void ExecuteCabalFrame(void)
  2. {
  3. static int coin_toggle;
  4.  
  5. if((RAM[0x5404]&0x07)!=7){
  6. if(coin_toggle==0){
  7. coin_toggle=1;
  8. }
  9. else{
  10. RAM[0x5404]|=0x07;
  11. }
  12. }
  13. else{
  14. coin_toggle=0;
  15. }
  16.  
  17. // Main 68000 (8MHz)
  18. // -----------------
  19.  
  20. cpu_execute_cycles(CPU_68K_0, CPU_FRAME_MHz(12,60)); // M68000 12MHz (60fps)
  21. cpu_interrupt(CPU_68K_0, 1);
  22.  
  23. // Sound Z80 (4MHz)
  24. // ----------------
  25.  
  26. cpu_execute_cycles(CPU_Z80_0, 4000000/60); // Sound Z80
  27. /*#ifdef RAINE_DEBUG
  28. print_debug("Z80PC0:%04x\n",z80pc);
  29. #endif*/
  30. cpu_interrupt(CPU_Z80_0, 0x38);
  31. cpu_int_nmi(CPU_Z80_0);
  32. }
  33.  
  34. void DrawCabal(void)
  35. {
  36. int x,y,x16,y16;
  37. int zz,zzzz,ta;
  38. UINT8 *MAP;
  39.  
  40. ClearPaletteMap();
  41.  
  42. x16=16;
  43. y16=16;
  44. zzzz=0x20;
  45.  
  46. zzzz=zzzz&0x3FF;
  47.  
  48. for(y=(16+y16);y<(224+32);y+=16){
  49. zz=zzzz;
  50. for(x=(16+x16);x<(256+32);x+=16){
  51.  
  52. MAP_PALETTE_MAPPED_NEW(
  53. (ReadWord(&RAM[0x4800+zz])>>12)|0x20, // 0x20 o 0x30 è lo stesso perchè i colori sono uguali
  54. 16, MAP
  55. );
  56.  
  57. Draw16x16_Mapped_Rot(&GFX[((ReadWord(&RAM[0x4800+zz])&0xFFF)<<8)+0x110000],x,y,MAP);
  58.  
  59. zz+=2;
  60. if((zz&0x1F)==0){zz-=0x20;}
  61. }
  62. zzzz+=0x20;
  63. zzzz=zzzz&0x3FF;
  64. }
  65.  
  66. for(zz=0x3FF8;zz>=0x3800;zz-=8){
  67.  
  68. if((RAM[zz+1]&0x01)==1){
  69.  
  70. y=16+RAM[zz+0];
  71. x=(32+ReadWord(&RAM[zz+4]))&0x1FF;
  72.  
  73. if((x>16)&&(y>16)&&(x<256+32)&&(y<224+32)){
  74. ta=ReadWord(&RAM[zz+2])&0xFFF;
  75. if(ta!=0){
  76.  
  77. MAP_PALETTE_MAPPED_NEW(
  78. (RAM[zz+5]>>3)+0x10,
  79. 16, MAP
  80. );
  81.  
  82. switch(RAM[zz+5]&0x04){
  83. case 0x00: Draw16x16_Trans_Mapped_FlipX_Rot(&GFX[(ta<<8)+0x10000],x,y,MAP); break;
  84. case 0x04: Draw16x16_Trans_Mapped_FlipXY_Rot(&GFX[(ta<<8)+0x10000],x,y,MAP); break;
  85. }
  86.  
  87. }
  88.  
  89. }
  90.  
  91. }
  92.  
  93. }
  94.  
  95. zz=0x80;
  96. for(y=32;y<224+32;y+=8){
  97. for(x=32;x<256+32;x+=8,zz+=2){
  98.  
  99. if((ta=ReadWord(&RAM[0x4000+zz])&0x03FF)!=0){
  100.  
  101. MAP = MAP_PALETTE_2BPP(
  102. Map_12bit_xBGR_Rev_2BPP,
  103. (ReadWord(&RAM[0x4000+zz])>>10),
  104. 4
  105. );
  106.  
  107. Draw8x8_Trans_Mapped_Rot(&GFX[ta<<6],x,y,MAP);
  108. }
  109.  
  110. }
  111. }
  112. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement