?? wgp.c
字號:
} y = (y+zzy)&0x1FF; SPR_MAP+=8; x=xx; } break; case 0x40: x+=(zx+1); xx=x; for(ry=0;ry<8;ry++){ zzy = zoom_dat_y[ry]; if((y>16)&&(y<240+32)){ ta=0; for(rx=0;rx<4;rx++){ zzx = zoom_dat_x[rx]; x = (x-zzx)&0x1FF; if((x>16)&&(x<320+32)){ tb=ReadWord(&SPR_MAP[ta])&0x3FFF; if(GFX_OBJ_B_SOLID[tb]!=0){ // No pixels; skip if(GFX_OBJ_B_SOLID[tb]==1) // Some pixels; trans Draw16x16_Trans_Mapped_ZoomXY_FlipY_Rot(&GFX_OBJ_B[tb<<8],x,y,map,zzx,zzy); else // all pixels; solid Draw16x16_Mapped_ZoomXY_FlipY_Rot(&GFX_OBJ_B[tb<<8],x,y,map,zzx,zzy); } } ta+=2; } } y = (y+zzy)&0x1FF; SPR_MAP+=8; x=xx; } break; case 0x80: y+=zy; xx=x; for(ry=0;ry<8;ry++){ zzy = zoom_dat_y[ry]; y = (y-zzy)&0x1FF; if((y>16)&&(y<240+32)){ ta=0; for(rx=0;rx<4;rx++){ zzx = zoom_dat_x[rx]; if((x>16)&&(x<320+32)){ tb=ReadWord(&SPR_MAP[ta])&0x3FFF; if(GFX_OBJ_B_SOLID[tb]!=0){ // No pixels; skip if(GFX_OBJ_B_SOLID[tb]==1) // Some pixels; trans Draw16x16_Trans_Mapped_ZoomXY_FlipX_Rot(&GFX_OBJ_B[tb<<8],x,y,map,zzx,zzy); else // all pixels; solid Draw16x16_Mapped_ZoomXY_FlipX_Rot(&GFX_OBJ_B[tb<<8],x,y,map,zzx,zzy); } } ta+=2; x = (x+zzx)&0x1FF; } } SPR_MAP+=8; x=xx; } break; case 0xC0: x+=(zx+1); y+=zy; xx=x; for(ry=0;ry<8;ry++){ zzy = zoom_dat_y[ry]; y = (y-zzy)&0x1FF; if((y>16)&&(y<240+32)){ ta=0; for(rx=0;rx<4;rx++){ zzx = zoom_dat_x[rx]; x = (x-zzx)&0x1FF; if((x>16)&&(x<320+32)){ tb=ReadWord(&SPR_MAP[ta])&0x3FFF; if(GFX_OBJ_B_SOLID[tb]!=0){ // No pixels; skip if(GFX_OBJ_B_SOLID[tb]==1) // Some pixels; trans Draw16x16_Trans_Mapped_ZoomXY_FlipXY_Rot(&GFX_OBJ_B[tb<<8],x,y,map,zzx,zzy); else // all pixels; solid Draw16x16_Mapped_ZoomXY_FlipXY_Rot(&GFX_OBJ_B[tb<<8],x,y,map,zzx,zzy); } } ta+=2; } } SPR_MAP+=8; x=xx; } break; } } else{ // [32x128] zoom_dat_x = zoom16_ofs+(((zx<<2)|3)<<3); zoom_dat_y = zoom16_ofs+(zy<<3); SPR_MAP = OBJECT_MAP + 0x60000 + (ta<<5); switch(RAM[zz+5]&0xC0){ case 0x00: xx=x; for(ry=0;ry<8;ry++){ zzy = zoom_dat_y[ry]; if((y>16)&&(y<240+32)){ ta=0; for(rx=0;rx<2;rx++){ zzx = zoom_dat_x[rx]; if((x>16)&&(x<320+32)){ tb=ReadWord(&SPR_MAP[ta])&0x3FFF; if(GFX_OBJ_B_SOLID[tb]!=0){ // No pixels; skip if(GFX_OBJ_B_SOLID[tb]==1) // Some pixels; trans Draw16x16_Trans_Mapped_ZoomXY_Rot(&GFX_OBJ_B[tb<<8],x,y,map,zzx,zzy); else // all pixels; solid Draw16x16_Mapped_ZoomXY_Rot(&GFX_OBJ_B[tb<<8],x,y,map,zzx,zzy); } } ta+=2; x = (x+zzx)&0x1FF; } } y = (y+zzy)&0x1FF; SPR_MAP+=4; x=xx; } break; case 0x40: x+=(zx+1); xx=x; for(ry=0;ry<8;ry++){ zzy = zoom_dat_y[ry]; if((y>16)&&(y<240+32)){ ta=0; for(rx=0;rx<2;rx++){ zzx = zoom_dat_x[rx]; x = (x-zzx)&0x1FF; if((x>16)&&(x<320+32)){ tb=ReadWord(&SPR_MAP[ta])&0x3FFF; if(GFX_OBJ_B_SOLID[tb]!=0){ // No pixels; skip if(GFX_OBJ_B_SOLID[tb]==1) // Some pixels; trans Draw16x16_Trans_Mapped_ZoomXY_FlipY_Rot(&GFX_OBJ_B[tb<<8],x,y,map,zzx,zzy); else // all pixels; solid Draw16x16_Mapped_ZoomXY_FlipY_Rot(&GFX_OBJ_B[tb<<8],x,y,map,zzx,zzy); } } ta+=2; } } y = (y+zzy)&0x1FF; SPR_MAP+=4; x=xx; } break; case 0x80: y+=zy; xx=x; for(ry=0;ry<8;ry++){ zzy = zoom_dat_y[ry]; y = (y-zzy)&0x1FF; if((y>16)&&(y<240+32)){ ta=0; for(rx=0;rx<2;rx++){ zzx = zoom_dat_x[rx]; if((x>16)&&(x<320+32)){ tb=ReadWord(&SPR_MAP[ta])&0x3FFF; if(GFX_OBJ_B_SOLID[tb]!=0){ // No pixels; skip if(GFX_OBJ_B_SOLID[tb]==1) // Some pixels; trans Draw16x16_Trans_Mapped_ZoomXY_FlipX_Rot(&GFX_OBJ_B[tb<<8],x,y,map,zzx,zzy); else // all pixels; solid Draw16x16_Mapped_ZoomXY_FlipX_Rot(&GFX_OBJ_B[tb<<8],x,y,map,zzx,zzy); } } ta+=2; x = (x+zzx)&0x1FF; } } SPR_MAP+=4; x=xx; } break; case 0xC0: x+=(zx+1); y+=zy; xx=x; for(ry=0;ry<8;ry++){ zzy = zoom_dat_y[ry]; y = (y-zzy)&0x1FF; if((y>16)&&(y<240+32)){ ta=0; for(rx=0;rx<2;rx++){ zzx = zoom_dat_x[rx]; x = (x-zzx)&0x1FF; if((x>16)&&(x<320+32)){ tb=ReadWord(&SPR_MAP[ta])&0x3FFF; if(GFX_OBJ_B_SOLID[tb]!=0){ // No pixels; skip if(GFX_OBJ_B_SOLID[tb]==1) // Some pixels; trans Draw16x16_Trans_Mapped_ZoomXY_FlipXY_Rot(&GFX_OBJ_B[tb<<8],x,y,map,zzx,zzy); else // all pixels; solid Draw16x16_Mapped_ZoomXY_FlipXY_Rot(&GFX_OBJ_B[tb<<8],x,y,map,zzx,zzy); } } ta+=2; } } SPR_MAP+=4; x=xx; } break; } } } } } }}void DrawWorldGrandPrix(void){ int x,y,ta,zz,zzz,zzzz,x16,y16; //int zy,tb,tb2; UINT8 *map; //UINT32 mask_count; //UINT32 mask_pos[32]; //UINT32 mask_pos_y[32]; ClearPaletteMap(); // Init tc0100scn emulation // ------------------------ tc0100scn_layer_count = 0; tc0100scn[0].ctrl = ReadWord(RAM_SCROLL+12); // BG0 // --- set_col_bank(2); render_tc0100scn_layer_mapped(0,0); // BG1 // --- set_col_bank(3); render_tc0100scn_layer_mapped(0,1); // OBJECT // ------ set_col_bank(1); if(check_layer_enabled(obj_id)) render_z_system_sprites(); // PIV // --- //if(check_layer_enabled(f3_bg1_id)){ set_col_bank(2); MAKE_SCROLL_1024x1024_2_16( ReadWord(&RAM_SCROLL_2[0x06]), ReadWord(&RAM_SCROLL_2[0x00]) ); START_SCROLL_1024x1024_2_16(32,32,320,240); ta=ReadWord(&RAM[zz+0x22000])&0x3FFF; if(GFX_PIV_SOLID[ta]!=0){ // No pixels; skip MAP_PALETTE_MAPPED_NEW( ReadWord(&RAM[zz+0x32000])&0x3F, 16, map ); if(GFX_PIV_SOLID[ta]==1){ // Some pixels; trans switch(RAM[zz+0x32001]&0xC0){ case 0x00: Draw16x16_Trans_Mapped_Rot(&GFX_PIV[ta<<8],x,y,map); break; case 0x40: Draw16x16_Trans_Mapped_FlipY_Rot(&GFX_PIV[ta<<8],x,y,map); break; case 0x80: Draw16x16_Trans_Mapped_FlipX_Rot(&GFX_PIV[ta<<8],x,y,map); break; case 0xC0: Draw16x16_Trans_Mapped_FlipXY_Rot(&GFX_PIV[ta<<8],x,y,map); break; } } else{ // all pixels; solid switch(RAM[zz+0x32001]&0xC0){ case 0x00: Draw16x16_Mapped_Rot(&GFX_PIV[ta<<8],x,y,map); break; case 0x40: Draw16x16_Mapped_FlipY_Rot(&GFX_PIV[ta<<8],x,y,map); break; case 0x80: Draw16x16_Mapped_FlipX_Rot(&GFX_PIV[ta<<8],x,y,map); break; case 0xC0: Draw16x16_Mapped_FlipXY_Rot(&GFX_PIV[ta<<8],x,y,map); break; } } } END_SCROLL_1024x1024_2_16(); //} // PIV // --- //if(check_layer_enabled(f3_bg1_id)){ set_col_bank(2); MAKE_SCROLL_1024x1024_2_16( ReadWord(&RAM_SCROLL_2[0x08]), ReadWord(&RAM_SCROLL_2[0x02]) ); START_SCROLL_1024x1024_2_16(32,32,320,240); ta=ReadWord(&RAM[zz+0x24000])&0x3FFF; if(GFX_PIV_SOLID[ta]!=0){ // No pixels; skip MAP_PALETTE_MAPPED_NEW( ReadWord(&RAM[zz+0x34000])&0x3F, 16, map ); if(GFX_PIV_SOLID[ta]==1){ // Some pixels; trans switch(RAM[zz+0x34001]&0xC0){ case 0x00: Draw16x16_Trans_Mapped_Rot(&GFX_PIV[ta<<8],x,y,map); break; case 0x40: Draw16x16_Trans_Mapped_FlipY_Rot(&GFX_PIV[ta<<8],x,y,map); break; case 0x80: Draw16x16_Trans_Mapped_FlipX_Rot(&GFX_PIV[ta<<8],x,y,map); break; case 0xC0: Draw16x16_Trans_Mapped_FlipXY_Rot(&GFX_PIV[ta<<8],x,y,map); break; } } else{ // all pixels; solid switch(RAM[zz+0x34001]&0xC0){ case 0x00: Draw16x16_Mapped_Rot(&GFX_PIV[ta<<8],x,y,map); break; case 0x40: Draw16x16_Mapped_FlipY_Rot(&GFX_PIV[ta<<8],x,y,map); break; case 0x80: Draw16x16_Mapped_FlipX_Rot(&GFX_PIV[ta<<8],x,y,map); break; case 0xC0: Draw16x16_Mapped_FlipXY_Rot(&GFX_PIV[ta<<8],x,y,map); break; } } } END_SCROLL_1024x1024_2_16(); //} // PIV // --- //if(check_layer_enabled(f3_bg1_id)){ set_col_bank(2); MAKE_SCROLL_1024x1024_2_16( ReadWord(&RAM_SCROLL_2[0x0A]), ReadWord(&RAM_SCROLL_2[0x04]) ); START_SCROLL_1024x1024_2_16(32,32,320,240); ta=ReadWord(&RAM[zz+0x26000])&0x3FFF; if(GFX_PIV_SOLID[ta]!=0){ // No pixels; skip MAP_PALETTE_MAPPED_NEW( ReadWord(&RAM[zz+0x36000])&0x3F, 16, map ); if(GFX_PIV_SOLID[ta]==1){ // Some pixels; trans switch(RAM[zz+0x36001]&0xC0){ case 0x00: Draw16x16_Trans_Mapped_Rot(&GFX_PIV[ta<<8],x,y,map); break; case 0x40: Draw16x16_Trans_Mapped_FlipY_Rot(&GFX_PIV[ta<<8],x,y,map); break; case 0x80: Draw16x16_Trans_Mapped_FlipX_Rot(&GFX_PIV[ta<<8],x,y,map); break; case 0xC0: Draw16x16_Trans_Mapped_FlipXY_Rot(&GFX_PIV[ta<<8],x,y,map); break; } } else{ // all pixels; solid switch(RAM[zz+0x36001]&0xC0){ case 0x00: Draw16x16_Mapped_Rot(&GFX_PIV[ta<<8],x,y,map); break; case 0x40: Draw16x16_Mapped_FlipY_Rot(&GFX_PIV[ta<<8],x,y,map); break; case 0x80: Draw16x16_Mapped_FlipX_Rot(&GFX_PIV[ta<<8],x,y,map); break; case 0xC0: Draw16x16_Mapped_FlipXY_Rot(&GFX_PIV[ta<<8],x,y,map); break; } } } END_SCROLL_1024x1024_2_16(); //} // FG0 // --- set_col_bank(1); render_tc0100scn_layer_mapped(0,2); set_col_bank(0);}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -