[Project64] rename wxUint16 to uint16_t

This commit is contained in:
zilmar 2016-01-20 17:26:07 +11:00
parent d1bcbde69a
commit 3a980f18d6
25 changed files with 351 additions and 351 deletions

View File

@ -47,14 +47,14 @@ typedef struct TEX_INFO_t
uint8_t format; uint8_t format;
uint8_t size; uint8_t size;
uint32_t width, height; uint32_t width, height;
wxUint16 line, wid; uint16_t line, wid;
uint8_t palette; uint8_t palette;
uint8_t clamp_s, clamp_t; uint8_t clamp_s, clamp_t;
uint8_t mirror_s, mirror_t; uint8_t mirror_s, mirror_t;
uint8_t mask_s, mask_t; uint8_t mask_s, mask_t;
uint8_t shift_s, shift_t; uint8_t shift_s, shift_t;
wxUint16 ul_s, ul_t, lr_s, lr_t; uint16_t ul_s, ul_t, lr_s, lr_t;
wxUint16 t_ul_s, t_ul_t, t_lr_s, t_lr_t; uint16_t t_ul_s, t_ul_t, t_lr_s, t_lr_t;
float scale_s, scale_t; float scale_s, scale_t;
int tmu; int tmu;
} TEX_INFO; } TEX_INFO;

View File

@ -49,13 +49,13 @@
#include "rdp.h" #include "rdp.h"
#include "DepthBufferRender.h" #include "DepthBufferRender.h"
wxUint16 * zLUT = 0; uint16_t * zLUT = 0;
void ZLUT_init() void ZLUT_init()
{ {
if (zLUT) if (zLUT)
return; return;
zLUT = new wxUint16[0x40000]; zLUT = new uint16_t[0x40000];
for(int i=0; i<0x40000; i++) for(int i=0; i<0x40000; i++)
{ {
uint32_t exponent = 0; uint32_t exponent = 0;
@ -67,7 +67,7 @@ void ZLUT_init()
} }
uint32_t mantissa = (i >> (6 - (6 < exponent ? 6 : exponent))) & 0x7ff; uint32_t mantissa = (i >> (6 - (6 < exponent ? 6 : exponent))) & 0x7ff;
zLUT[i] = (wxUint16)(((exponent << 11) | mantissa) << 2); zLUT[i] = (uint16_t)(((exponent << 11) | mantissa) << 2);
} }
} }
@ -242,7 +242,7 @@ void Rasterize(vertexi * vtx, int vertices, int dzdx)
LeftSection(); LeftSection();
} while(left_height <= 0); } while(left_height <= 0);
wxUint16 * destptr = (wxUint16*)(gfx.RDRAM+rdp.zimg); uint16_t * destptr = (uint16_t*)(gfx.RDRAM+rdp.zimg);
int y1 = iceil(min_y); int y1 = iceil(min_y);
if (y1 >= (int)rdp.scissor_o.lr_y) return; if (y1 >= (int)rdp.scissor_o.lr_y) return;
int shift; int shift;
@ -267,7 +267,7 @@ void Rasterize(vertexi * vtx, int vertices, int dzdx)
//draw to depth buffer //draw to depth buffer
int trueZ; int trueZ;
int idx; int idx;
wxUint16 encodedZ; uint16_t encodedZ;
for (int x = 0; x < width; x++) for (int x = 0; x < width; x++)
{ {
trueZ = z/8192; trueZ = z/8192;

View File

@ -51,7 +51,7 @@ struct vertexi
int z; // z value in 16:16 bit fixed point int z; // z value in 16:16 bit fixed point
}; };
extern wxUint16 * zLUT; extern uint16_t * zLUT;
void ZLUT_init(); void ZLUT_init();
void ZLUT_release(); void ZLUT_release();

View File

@ -155,8 +155,8 @@ static void DrawRE2Video256(FB_TO_SCREEN_INFO & fb_info)
t_info.smallLodLog2 = GR_LOD_LOG2_256; t_info.smallLodLog2 = GR_LOD_LOG2_256;
t_info.largeLodLog2 = GR_LOD_LOG2_256; t_info.largeLodLog2 = GR_LOD_LOG2_256;
t_info.aspectRatioLog2 = GR_ASPECT_LOG2_1x1; t_info.aspectRatioLog2 = GR_ASPECT_LOG2_1x1;
wxUint16 * tex = (wxUint16*)texture_buffer; uint16_t * tex = (uint16_t*)texture_buffer;
wxUint16 * dst = tex; uint16_t * dst = tex;
uint32_t col; uint32_t col;
uint8_t r, g, b; uint8_t r, g, b;
fb_info.height = min(256, fb_info.height); fb_info.height = min(256, fb_info.height);
@ -206,17 +206,17 @@ static void DrawFrameBufferToScreen256(FB_TO_SCREEN_INFO & fb_info)
t_info.smallLodLog2 = t_info.largeLodLog2 = GR_LOD_LOG2_256; t_info.smallLodLog2 = t_info.largeLodLog2 = GR_LOD_LOG2_256;
t_info.aspectRatioLog2 = GR_ASPECT_LOG2_1x1; t_info.aspectRatioLog2 = GR_ASPECT_LOG2_1x1;
t_info.format = GR_TEXFMT_ARGB_1555; t_info.format = GR_TEXFMT_ARGB_1555;
wxUint16 * tex = (wxUint16*)texture_buffer; uint16_t * tex = (uint16_t*)texture_buffer;
t_info.data = tex; t_info.data = tex;
uint32_t tex_size = grTexTextureMemRequired (GR_MIPMAPLEVELMASK_BOTH, &t_info); uint32_t tex_size = grTexTextureMemRequired (GR_MIPMAPLEVELMASK_BOTH, &t_info);
int tmu = SetupFBtoScreenCombiner(tex_size*width256*height256, fb_info.opaque); int tmu = SetupFBtoScreenCombiner(tex_size*width256*height256, fb_info.opaque);
wxUint16 * src = (wxUint16*)image; uint16_t * src = (uint16_t*)image;
src += fb_info.ul_x + fb_info.ul_y * fb_info.width; src += fb_info.ul_x + fb_info.ul_y * fb_info.width;
uint32_t * src32 = (uint32_t*)image; uint32_t * src32 = (uint32_t*)image;
src32 += fb_info.ul_x + fb_info.ul_y * fb_info.width; src32 += fb_info.ul_x + fb_info.ul_y * fb_info.width;
uint32_t w_tail = width%256; uint32_t w_tail = width%256;
uint32_t h_tail = height%256; uint32_t h_tail = height%256;
wxUint16 c; uint16_t c;
uint32_t c32; uint32_t c32;
uint32_t idx; uint32_t idx;
uint32_t bound = BMASK+1-fb_info.addr; uint32_t bound = BMASK+1-fb_info.addr;
@ -235,7 +235,7 @@ static void DrawFrameBufferToScreen256(FB_TO_SCREEN_INFO & fb_info)
cur_width = (256*(w+1) < width) ? 256 : w_tail; cur_width = (256*(w+1) < width) ? 256 : w_tail;
cur_height = (256*(h+1) < height) ? 256 : h_tail; cur_height = (256*(h+1) < height) ? 256 : h_tail;
cur_tail = 256 - cur_width; cur_tail = 256 - cur_width;
wxUint16 * dst = tex; uint16_t * dst = tex;
if (fb_info.size == 2) if (fb_info.size == 2)
{ {
for (uint32_t y=0; y < cur_height; y++) for (uint32_t y=0; y < cur_height; y++)
@ -343,11 +343,11 @@ bool DrawFrameBufferToScreen(FB_TO_SCREEN_INFO & fb_info)
if (fb_info.size == 2) if (fb_info.size == 2)
{ {
wxUint16 * tex = (wxUint16*)texture_buffer; uint16_t * tex = (uint16_t*)texture_buffer;
wxUint16 * dst = tex; uint16_t * dst = tex;
wxUint16 * src = (wxUint16*)image; uint16_t * src = (uint16_t*)image;
src += fb_info.ul_x + fb_info.ul_y * fb_info.width; src += fb_info.ul_x + fb_info.ul_y * fb_info.width;
wxUint16 c; uint16_t c;
uint32_t idx; uint32_t idx;
const uint32_t bound = (BMASK+1-fb_info.addr) >> 1; const uint32_t bound = (BMASK+1-fb_info.addr) >> 1;
bool empty = true; bool empty = true;
@ -440,7 +440,7 @@ static void DrawDepthBufferToScreen256(FB_TO_SCREEN_INFO & fb_info)
t_info.smallLodLog2 = t_info.largeLodLog2 = GR_LOD_LOG2_256; t_info.smallLodLog2 = t_info.largeLodLog2 = GR_LOD_LOG2_256;
t_info.aspectRatioLog2 = GR_ASPECT_LOG2_1x1; t_info.aspectRatioLog2 = GR_ASPECT_LOG2_1x1;
t_info.format = GR_TEXFMT_ALPHA_INTENSITY_88; t_info.format = GR_TEXFMT_ALPHA_INTENSITY_88;
wxUint16 * tex = (wxUint16*)texture_buffer; uint16_t * tex = (uint16_t*)texture_buffer;
t_info.data = tex; t_info.data = tex;
uint32_t tex_size = grTexTextureMemRequired (GR_MIPMAPLEVELMASK_BOTH, &t_info); uint32_t tex_size = grTexTextureMemRequired (GR_MIPMAPLEVELMASK_BOTH, &t_info);
int tmu = SetupFBtoScreenCombiner(tex_size*width256*height256, fb_info.opaque); int tmu = SetupFBtoScreenCombiner(tex_size*width256*height256, fb_info.opaque);
@ -450,7 +450,7 @@ static void DrawDepthBufferToScreen256(FB_TO_SCREEN_INFO & fb_info)
GR_COMBINE_LOCAL_NONE, GR_COMBINE_LOCAL_NONE,
GR_COMBINE_OTHER_CONSTANT, GR_COMBINE_OTHER_CONSTANT,
FXFALSE); FXFALSE);
wxUint16 * src = (wxUint16*)image; uint16_t * src = (uint16_t*)image;
src += fb_info.ul_x + fb_info.ul_y * fb_info.width; src += fb_info.ul_x + fb_info.ul_y * fb_info.width;
uint32_t w_tail = width%256; uint32_t w_tail = width%256;
uint32_t h_tail = height%256; uint32_t h_tail = height%256;
@ -467,7 +467,7 @@ static void DrawDepthBufferToScreen256(FB_TO_SCREEN_INFO & fb_info)
cur_width = (256*(w+1) < width) ? 256 : w_tail; cur_width = (256*(w+1) < width) ? 256 : w_tail;
cur_height = (256*(h+1) < height) ? 256 : h_tail; cur_height = (256*(h+1) < height) ? 256 : h_tail;
cur_tail = 256 - cur_width; cur_tail = 256 - cur_width;
wxUint16 * dst = tex; uint16_t * dst = tex;
for (uint32_t y=0; y < cur_height; y++) for (uint32_t y=0; y < cur_height; y++)
{ {
for (uint32_t x=0; x < cur_width; x++) for (uint32_t x=0; x < cur_width; x++)
@ -610,9 +610,9 @@ void DrawDepthBufferToScreen(FB_TO_SCREEN_INFO & fb_info)
t_info.aspectRatioLog2 = GR_ASPECT_LOG2_1x1; t_info.aspectRatioLog2 = GR_ASPECT_LOG2_1x1;
} }
wxUint16 * tex = (wxUint16*)texture_buffer; uint16_t * tex = (uint16_t*)texture_buffer;
wxUint16 * dst = tex; uint16_t * dst = tex;
wxUint16 * src = (wxUint16*)image; uint16_t * src = (uint16_t*)image;
src += fb_info.ul_x + fb_info.ul_y * fb_info.width; src += fb_info.ul_x + fb_info.ul_y * fb_info.width;
for (uint32_t y=0; y < height; y++) for (uint32_t y=0; y < height; y++)
{ {

View File

@ -757,7 +757,7 @@ void guLoadTextures ()
#include "cursor.h" #include "cursor.h"
data = (uint32_t*)cursor; data = (uint32_t*)cursor;
wxUint16 *tex16 = (wxUint16*)malloc(32*32*2); uint16_t *tex16 = (uint16_t*)malloc(32*32*2);
cursorTex.smallLodLog2 = cursorTex.largeLodLog2 = GR_LOD_LOG2_32; cursorTex.smallLodLog2 = cursorTex.largeLodLog2 = GR_LOD_LOG2_32;
cursorTex.aspectRatioLog2 = GR_ASPECT_LOG2_1x1; cursorTex.aspectRatioLog2 = GR_ASPECT_LOG2_1x1;
@ -768,8 +768,8 @@ void guLoadTextures ()
for (i=0; i<0x200; i++) for (i=0; i<0x200; i++)
{ {
cur = *(data++); cur = *(data++);
*(tex16++) = (wxUint16)(((cur&0x000000FF)<<8)|((cur&0x0000FF00)>>8)); *(tex16++) = (uint16_t)(((cur&0x000000FF)<<8)|((cur&0x0000FF00)>>8));
*(tex16++) = (wxUint16)(((cur&0x00FF0000)>>8)|((cur&0xFF000000)>>24)); *(tex16++) = (uint16_t)(((cur&0x00FF0000)>>8)|((cur&0xFF000000)>>24));
} }
grTexDownloadMipMap (GR_TMU0, grTexDownloadMipMap (GR_TMU0,
@ -1277,10 +1277,10 @@ void CALL ReadScreen(void **dest, int *width, int *height)
} }
else else
{ {
wxUint16 col; uint16_t col;
for (uint32_t y=0; y<settings.res_y; y++) for (uint32_t y=0; y<settings.res_y; y++)
{ {
wxUint16 *ptr = (wxUint16*)((uint8_t*)info.lfbPtr + offset_src); uint16_t *ptr = (uint16_t*)((uint8_t*)info.lfbPtr + offset_src);
for (uint32_t x=0; x<settings.res_x; x++) for (uint32_t x=0; x<settings.res_x; x++)
{ {
col = *(ptr++); col = *(ptr++);
@ -1723,7 +1723,7 @@ void CALL RomOpen (void)
rdp_reset (); rdp_reset ();
// Get the country code & translate to NTSC(0) or PAL(1) // Get the country code & translate to NTSC(0) or PAL(1)
wxUint16 code = ((wxUint16*)gfx.HEADER)[0x1F^1]; uint16_t code = ((uint16_t*)gfx.HEADER)[0x1F^1];
if (code == 0x4400) region = 1; // Germany (PAL) if (code == 0x4400) region = 1; // Germany (PAL)
if (code == 0x4500) region = 0; // USA (NTSC) if (code == 0x4500) region = 0; // USA (NTSC)
@ -2167,10 +2167,10 @@ void newSwapBuffers()
} }
else else
{ {
wxUint16 col; uint16_t col;
for (uint32_t y = 0; y < image_height; y++) for (uint32_t y = 0; y < image_height; y++)
{ {
wxUint16 *ptr = (wxUint16*)((uint8_t*)info.lfbPtr + offset_src); uint16_t *ptr = (uint16_t*)((uint8_t*)info.lfbPtr + offset_src);
ptr += offset_x; ptr += offset_x;
for (uint32_t x = 0; x < image_width; x++) for (uint32_t x = 0; x < image_width; x++)
{ {
@ -2214,7 +2214,7 @@ void newSwapBuffers()
if (info.writeMode == GR_LFBWRITEMODE_8888) if (info.writeMode == GR_LFBWRITEMODE_8888)
{ {
uint32_t *src = (uint32_t*)((uint8_t*)info.lfbPtr + offset_src); uint32_t *src = (uint32_t*)((uint8_t*)info.lfbPtr + offset_src);
wxUint16 *dst = (wxUint16*)(_debugger.screen + offset_dst); uint16_t *dst = (uint16_t*)(_debugger.screen + offset_dst);
uint8_t r, g, b; uint8_t r, g, b;
uint32_t col; uint32_t col;
for (unsigned int x = 0; x < settings.res_x; x++) for (unsigned int x = 0; x < settings.res_x; x++)

View File

@ -62,7 +62,7 @@ static TBUFF_COLOR_IMAGE * AllocateTextureBuffer(COLOR_IMAGE & cimage)
texbuf.scr_height = height * rdp.scale_y; texbuf.scr_height = height * rdp.scale_y;
// texbuf.scr_height = texbuf.height * rdp.scale_y; // texbuf.scr_height = texbuf.height * rdp.scale_y;
wxUint16 max_size = max((wxUint16)texbuf.scr_width, (wxUint16)texbuf.scr_height); uint16_t max_size = max((uint16_t)texbuf.scr_width, (uint16_t)texbuf.scr_height);
if (max_size > voodoo.max_tex_size) //texture size is too large if (max_size > voodoo.max_tex_size) //texture size is too large
return 0; return 0;
uint32_t tex_size; uint32_t tex_size;
@ -268,7 +268,7 @@ int OpenTextureBuffer(COLOR_IMAGE & cimage)
//texbuf->height = cimage.height; //texbuf->height = cimage.height;
//texbuf->end_addr = end_addr; //texbuf->end_addr = end_addr;
texbuf->drawn = FALSE; texbuf->drawn = FALSE;
texbuf->format = (wxUint16)cimage.format; texbuf->format = (uint16_t)cimage.format;
if ((cimage.format != 0)) if ((cimage.format != 0))
texbuf->info.format = GR_TEXFMT_ALPHA_INTENSITY_88; texbuf->info.format = GR_TEXFMT_ALPHA_INTENSITY_88;
else else
@ -482,7 +482,7 @@ int CopyTextureBuffer(COLOR_IMAGE & fb_from, COLOR_IMAGE & fb_to)
return CloseTextureBuffer(TRUE); return CloseTextureBuffer(TRUE);
rdp.tbuff_tex = rdp.cur_image; rdp.tbuff_tex = rdp.cur_image;
} }
else if (!FindTextureBuffer(fb_from.addr, (wxUint16)fb_from.width)) else if (!FindTextureBuffer(fb_from.addr, (uint16_t)fb_from.width))
{ {
LRDP("Can't find 'from' buffer.\n"); LRDP("Can't find 'from' buffer.\n");
return FALSE; return FALSE;
@ -686,7 +686,7 @@ static uint32_t CalcCRC(TBUFF_COLOR_IMAGE * pTCI)
return result; return result;
} }
int FindTextureBuffer(uint32_t addr, wxUint16 width) int FindTextureBuffer(uint32_t addr, uint16_t width)
{ {
if (rdp.skip_drawing) if (rdp.skip_drawing)
return FALSE; return FALSE;

View File

@ -55,6 +55,6 @@ int CopyDepthBuffer();
int SwapTextureBuffer(); int SwapTextureBuffer();
int FindTextureBuffer(uint32_t addr, wxUint16 width); int FindTextureBuffer(uint32_t addr, uint16_t width);
#endif // ifndef TEXBUFFER #endif // ifndef TEXBUFFER

View File

@ -85,7 +85,7 @@ int tex_found[2][MAX_TMU];
#ifdef TEXTURE_FILTER #ifdef TEXTURE_FILTER
typedef struct HIRESTEX_t { typedef struct HIRESTEX_t {
int width, height; int width, height;
wxUint16 format; uint16_t format;
uint8_t *data; uint8_t *data;
} HIRESTEX; } HIRESTEX;
#endif #endif
@ -1256,7 +1256,7 @@ void LoadTex (int id, int tmu)
modfactor = cmb.modfactor_1; modfactor = cmb.modfactor_1;
} }
wxUint16 tmp_pal[256]; uint16_t tmp_pal[256];
int modifyPalette = (mod && (cache->format == 2) && (rdp.tlut_mode == 2)); int modifyPalette = (mod && (cache->format == 2) && (rdp.tlut_mode == 2));
if (modifyPalette) if (modifyPalette)
@ -1334,7 +1334,7 @@ void LoadTex (int id, int tmu)
// uint8_t* addr = (uint8_t*)(gfx.RDRAM+rdp.addr[rdp.tiles[td].t_mem] + (rdp.tiles[td].ul_t * bpl) + (((rdp.tiles[td].ul_s<<rdp.tiles[td].size)+1)>>1)); // uint8_t* addr = (uint8_t*)(gfx.RDRAM+rdp.addr[rdp.tiles[td].t_mem] + (rdp.tiles[td].ul_t * bpl) + (((rdp.tiles[td].ul_s<<rdp.tiles[td].size)+1)>>1));
uint8_t * paladdr = 0; uint8_t * paladdr = 0;
wxUint16 * palette = 0; uint16_t * palette = 0;
if ((rdp.tiles[td].size < 2) && (rdp.tlut_mode || rdp.tiles[td].format == 2)) if ((rdp.tiles[td].size < 2) && (rdp.tlut_mode || rdp.tiles[td].format == 2))
{ {
if (rdp.tiles[td].size == 1) if (rdp.tiles[td].size == 1)
@ -1551,67 +1551,67 @@ void LoadTex (int id, int tmu)
switch (mod) switch (mod)
{ {
case TMOD_TEX_INTER_COLOR_USING_FACTOR: case TMOD_TEX_INTER_COLOR_USING_FACTOR:
mod_tex_inter_color_using_factor ((wxUint16*)texture, size, modcolor, modfactor); mod_tex_inter_color_using_factor ((uint16_t*)texture, size, modcolor, modfactor);
break; break;
case TMOD_TEX_INTER_COL_USING_COL1: case TMOD_TEX_INTER_COL_USING_COL1:
mod_tex_inter_col_using_col1 ((wxUint16*)texture, size, modcolor, modcolor1); mod_tex_inter_col_using_col1 ((uint16_t*)texture, size, modcolor, modcolor1);
break; break;
case TMOD_FULL_COLOR_SUB_TEX: case TMOD_FULL_COLOR_SUB_TEX:
mod_full_color_sub_tex ((wxUint16*)texture, size, modcolor); mod_full_color_sub_tex ((uint16_t*)texture, size, modcolor);
break; break;
case TMOD_COL_INTER_COL1_USING_TEX: case TMOD_COL_INTER_COL1_USING_TEX:
mod_col_inter_col1_using_tex ((wxUint16*)texture, size, modcolor, modcolor1); mod_col_inter_col1_using_tex ((uint16_t*)texture, size, modcolor, modcolor1);
break; break;
case TMOD_COL_INTER_COL1_USING_TEXA: case TMOD_COL_INTER_COL1_USING_TEXA:
mod_col_inter_col1_using_texa ((wxUint16*)texture, size, modcolor, modcolor1); mod_col_inter_col1_using_texa ((uint16_t*)texture, size, modcolor, modcolor1);
break; break;
case TMOD_COL_INTER_COL1_USING_TEXA__MUL_TEX: case TMOD_COL_INTER_COL1_USING_TEXA__MUL_TEX:
mod_col_inter_col1_using_texa__mul_tex ((wxUint16*)texture, size, modcolor, modcolor1); mod_col_inter_col1_using_texa__mul_tex ((uint16_t*)texture, size, modcolor, modcolor1);
break; break;
case TMOD_COL_INTER_TEX_USING_TEXA: case TMOD_COL_INTER_TEX_USING_TEXA:
mod_col_inter_tex_using_texa ((wxUint16*)texture, size, modcolor); mod_col_inter_tex_using_texa ((uint16_t*)texture, size, modcolor);
break; break;
case TMOD_COL2_INTER__COL_INTER_COL1_USING_TEX__USING_TEXA: case TMOD_COL2_INTER__COL_INTER_COL1_USING_TEX__USING_TEXA:
mod_col2_inter__col_inter_col1_using_tex__using_texa ((wxUint16*)texture, size, modcolor, modcolor1, modcolor2); mod_col2_inter__col_inter_col1_using_tex__using_texa ((uint16_t*)texture, size, modcolor, modcolor1, modcolor2);
break; break;
case TMOD_TEX_SCALE_FAC_ADD_FAC: case TMOD_TEX_SCALE_FAC_ADD_FAC:
mod_tex_scale_fac_add_fac ((wxUint16*)texture, size, modfactor); mod_tex_scale_fac_add_fac ((uint16_t*)texture, size, modfactor);
break; break;
case TMOD_TEX_SUB_COL_MUL_FAC_ADD_TEX: case TMOD_TEX_SUB_COL_MUL_FAC_ADD_TEX:
mod_tex_sub_col_mul_fac_add_tex ((wxUint16*)texture, size, modcolor, modfactor); mod_tex_sub_col_mul_fac_add_tex ((uint16_t*)texture, size, modcolor, modfactor);
break; break;
case TMOD_TEX_SCALE_COL_ADD_COL: case TMOD_TEX_SCALE_COL_ADD_COL:
mod_tex_scale_col_add_col ((wxUint16*)texture, size, modcolor, modcolor1); mod_tex_scale_col_add_col ((uint16_t*)texture, size, modcolor, modcolor1);
break; break;
case TMOD_TEX_ADD_COL: case TMOD_TEX_ADD_COL:
mod_tex_add_col ((wxUint16*)texture, size, modcolor); mod_tex_add_col ((uint16_t*)texture, size, modcolor);
break; break;
case TMOD_TEX_SUB_COL: case TMOD_TEX_SUB_COL:
mod_tex_sub_col ((wxUint16*)texture, size, modcolor); mod_tex_sub_col ((uint16_t*)texture, size, modcolor);
break; break;
case TMOD_TEX_SUB_COL_MUL_FAC: case TMOD_TEX_SUB_COL_MUL_FAC:
mod_tex_sub_col_mul_fac ((wxUint16*)texture, size, modcolor, modfactor); mod_tex_sub_col_mul_fac ((uint16_t*)texture, size, modcolor, modfactor);
break; break;
case TMOD_COL_INTER_TEX_USING_COL1: case TMOD_COL_INTER_TEX_USING_COL1:
mod_col_inter_tex_using_col1 ((wxUint16*)texture, size, modcolor, modcolor1); mod_col_inter_tex_using_col1 ((uint16_t*)texture, size, modcolor, modcolor1);
break; break;
case TMOD_COL_MUL_TEXA_ADD_TEX: case TMOD_COL_MUL_TEXA_ADD_TEX:
mod_col_mul_texa_add_tex((wxUint16*)texture, size, modcolor); mod_col_mul_texa_add_tex((uint16_t*)texture, size, modcolor);
break; break;
case TMOD_COL_INTER_TEX_USING_TEX: case TMOD_COL_INTER_TEX_USING_TEX:
mod_col_inter_tex_using_tex ((wxUint16*)texture, size, modcolor); mod_col_inter_tex_using_tex ((uint16_t*)texture, size, modcolor);
break; break;
case TMOD_TEX_INTER_NOISE_USING_COL: case TMOD_TEX_INTER_NOISE_USING_COL:
mod_tex_inter_noise_using_col ((wxUint16*)texture, size, modcolor); mod_tex_inter_noise_using_col ((uint16_t*)texture, size, modcolor);
break; break;
case TMOD_TEX_INTER_COL_USING_TEXA: case TMOD_TEX_INTER_COL_USING_TEXA:
mod_tex_inter_col_using_texa ((wxUint16*)texture, size, modcolor); mod_tex_inter_col_using_texa ((uint16_t*)texture, size, modcolor);
break; break;
case TMOD_TEX_MUL_COL: case TMOD_TEX_MUL_COL:
mod_tex_mul_col ((wxUint16*)texture, size, modcolor); mod_tex_mul_col ((uint16_t*)texture, size, modcolor);
break; break;
case TMOD_TEX_SCALE_FAC_ADD_COL: case TMOD_TEX_SCALE_FAC_ADD_COL:
mod_tex_scale_fac_add_col ((wxUint16*)texture, size, modcolor, modfactor); mod_tex_scale_fac_add_col ((uint16_t*)texture, size, modcolor, modfactor);
break; break;
default: default:
; ;

View File

@ -196,7 +196,7 @@ uint32_t Load16bIA (wxUIntPtr dst, wxUIntPtr src, int wid_64, int height, int li
// Size: 2, Format: 1 // Size: 2, Format: 1
// //
wxUint16 yuv_to_rgb565(uint8_t y, uint8_t u, uint8_t v) uint16_t yuv_to_rgb565(uint8_t y, uint8_t u, uint8_t v)
{ {
//* //*
float r = y + (1.370705f * (v-128)); float r = y + (1.370705f * (v-128));
@ -212,9 +212,9 @@ wxUint16 yuv_to_rgb565(uint8_t y, uint8_t u, uint8_t v)
if (r < 0) r = 0; if (r < 0) r = 0;
if (g < 0) g = 0; if (g < 0) g = 0;
if (b < 0) b = 0; if (b < 0) b = 0;
wxUint16 c = (wxUint16)(((wxUint16)(r) << 11) | uint16_t c = (uint16_t)(((uint16_t)(r) << 11) |
((wxUint16)(g) << 5) | ((uint16_t)(g) << 5) |
(wxUint16)(b) ); (uint16_t)(b) );
return c; return c;
//*/ //*/
/* /*
@ -239,8 +239,8 @@ wxUint16 yuv_to_rgb565(uint8_t y, uint8_t u, uint8_t v)
uint32_t Load16bYUV (wxUIntPtr dst, wxUIntPtr /*src*/, int /*wid_64*/, int /*height*/, int /*line*/, int /*real_width*/, int tile) uint32_t Load16bYUV (wxUIntPtr dst, wxUIntPtr /*src*/, int /*wid_64*/, int /*height*/, int /*line*/, int /*real_width*/, int tile)
{ {
uint32_t * mb = (uint32_t*)(gfx.RDRAM+rdp.addr[rdp.tiles[tile].t_mem]); //pointer to the macro block uint32_t * mb = (uint32_t*)(gfx.RDRAM+rdp.addr[rdp.tiles[tile].t_mem]); //pointer to the macro block
wxUint16 * tex = (wxUint16*)dst; uint16_t * tex = (uint16_t*)dst;
wxUint16 i; uint16_t i;
for (i = 0; i < 128; i++) for (i = 0; i < 128; i++)
{ {
uint32_t t = mb[i]; //each uint32_t contains 2 pixels uint32_t t = mb[i]; //each uint32_t contains 2 pixels
@ -248,7 +248,7 @@ uint32_t Load16bYUV (wxUIntPtr dst, wxUIntPtr /*src*/, int /*wid_64*/, int /*hei
uint8_t v = (uint8_t)(t>>8)&0xFF; uint8_t v = (uint8_t)(t>>8)&0xFF;
uint8_t y0 = (uint8_t)(t>>16)&0xFF; uint8_t y0 = (uint8_t)(t>>16)&0xFF;
uint8_t u = (uint8_t)(t>>24)&0xFF; uint8_t u = (uint8_t)(t>>24)&0xFF;
wxUint16 c = yuv_to_rgb565(y0, u, v); uint16_t c = yuv_to_rgb565(y0, u, v);
*(tex++) = c; *(tex++) = c;
c = yuv_to_rgb565(y1, u, v); c = yuv_to_rgb565(y1, u, v);
*(tex++) = c; *(tex++) = c;

View File

@ -46,14 +46,14 @@
uint32_t Load32bRGBA (wxUIntPtr dst, wxUIntPtr src, int wid_64, int height, int line, int real_width, int tile) uint32_t Load32bRGBA (wxUIntPtr dst, wxUIntPtr src, int wid_64, int height, int line, int real_width, int tile)
{ {
if (height < 1) height = 1; if (height < 1) height = 1;
const wxUint16 *tmem16 = (wxUint16*)rdp.tmem; const uint16_t *tmem16 = (uint16_t*)rdp.tmem;
const uint32_t tbase = (src - (wxUIntPtr)rdp.tmem) >> 1; const uint32_t tbase = (src - (wxUIntPtr)rdp.tmem) >> 1;
const uint32_t width = max(1, wid_64 << 1); const uint32_t width = max(1, wid_64 << 1);
const int ext = real_width - width; const int ext = real_width - width;
line = width + (line>>2); line = width + (line>>2);
uint32_t s, t, c; uint32_t s, t, c;
uint32_t * tex = (uint32_t*)dst; uint32_t * tex = (uint32_t*)dst;
wxUint16 rg, ba; uint16_t rg, ba;
for (t = 0; t < (uint32_t)height; t++) for (t = 0; t < (uint32_t)height; t++)
{ {
uint32_t tline = tbase + line * t; uint32_t tline = tbase + line * t;
@ -75,8 +75,8 @@ uint32_t Load32bRGBA (wxUIntPtr dst, wxUIntPtr src, int wid_64, int height, int
//convert to ARGB_4444 //convert to ARGB_4444
const uint32_t tex_size = real_width * height; const uint32_t tex_size = real_width * height;
tex = (uint32_t *)dst; tex = (uint32_t *)dst;
wxUint16 *tex16 = (wxUint16*)dst; uint16_t *tex16 = (uint16_t*)dst;
wxUint16 a, r, g, b; uint16_t a, r, g, b;
for (uint32_t i = 0; i < tex_size; i++) { for (uint32_t i = 0; i < tex_size; i++) {
c = tex[i]; c = tex[i];
a = (c >> 28) & 0xF; a = (c >> 28) & 0xF;
@ -100,7 +100,7 @@ void LoadTile32b (uint32_t tile, uint32_t ul_s, uint32_t ul_t, uint32_t width, u
const uint32_t tbase = rdp.tiles[tile].t_mem << 2; const uint32_t tbase = rdp.tiles[tile].t_mem << 2;
const uint32_t addr = rdp.timg.addr >> 2; const uint32_t addr = rdp.timg.addr >> 2;
const uint32_t* src = (const uint32_t*)gfx.RDRAM; const uint32_t* src = (const uint32_t*)gfx.RDRAM;
wxUint16 *tmem16 = (wxUint16*)rdp.tmem; uint16_t *tmem16 = (uint16_t*)rdp.tmem;
uint32_t c, ptr, tline, s, xorval; uint32_t c, ptr, tline, s, xorval;
for (uint32_t j = 0; j < height; j++) for (uint32_t j = 0; j < height; j++)
@ -130,7 +130,7 @@ void LoadBlock32b(uint32_t tile, uint32_t ul_s, uint32_t ul_t, uint32_t lr_s, ui
const uint32_t slindwords = ul_s; const uint32_t slindwords = ul_s;
const uint32_t line = rdp.tiles[tile].line << 2; const uint32_t line = rdp.tiles[tile].line << 2;
wxUint16 *tmem16 = (wxUint16*)rdp.tmem; uint16_t *tmem16 = (uint16_t*)rdp.tmem;
uint32_t addr = rdp.timg.addr >> 2; uint32_t addr = rdp.timg.addr >> 2;
uint32_t width = (lr_s - ul_s + 1) << 2; uint32_t width = (lr_s - ul_s + 1) << 2;
if (width & 7) if (width & 7)

View File

@ -37,12 +37,12 @@
// //
//**************************************************************** //****************************************************************
static void mod_tex_inter_color_using_factor (wxUint16 *dst, int size, uint32_t color, uint32_t factor) static void mod_tex_inter_color_using_factor (uint16_t *dst, int size, uint32_t color, uint32_t factor)
{ {
float percent = factor / 255.0f; float percent = factor / 255.0f;
float percent_i = 1 - percent; float percent_i = 1 - percent;
uint32_t cr, cg, cb; uint32_t cr, cg, cb;
wxUint16 col, a; uint16_t col, a;
uint8_t r, g, b; uint8_t r, g, b;
cr = (color >> 12) & 0xF; cr = (color >> 12) & 0xF;
@ -60,10 +60,10 @@ static void mod_tex_inter_color_using_factor (wxUint16 *dst, int size, uint32_t
} }
} }
static void mod_tex_inter_col_using_col1 (wxUint16 *dst, int size, uint32_t color0, uint32_t color1) static void mod_tex_inter_col_using_col1 (uint16_t *dst, int size, uint32_t color0, uint32_t color1)
{ {
uint32_t cr, cg, cb; uint32_t cr, cg, cb;
wxUint16 col, a; uint16_t col, a;
uint8_t r, g, b; uint8_t r, g, b;
float percent_r = ((color1 >> 12) & 0xF) / 15.0f; float percent_r = ((color1 >> 12) & 0xF) / 15.0f;
@ -88,10 +88,10 @@ static void mod_tex_inter_col_using_col1 (wxUint16 *dst, int size, uint32_t colo
} }
} }
static void mod_full_color_sub_tex (wxUint16 *dst, int size, uint32_t color) static void mod_full_color_sub_tex (uint16_t *dst, int size, uint32_t color)
{ {
uint32_t cr, cg, cb, ca; uint32_t cr, cg, cb, ca;
wxUint16 col; uint16_t col;
uint8_t a, r, g, b; uint8_t a, r, g, b;
cr = (color >> 12) & 0xF; cr = (color >> 12) & 0xF;
@ -110,12 +110,12 @@ static void mod_full_color_sub_tex (wxUint16 *dst, int size, uint32_t color)
} }
} }
static void mod_col_inter_col1_using_tex (wxUint16 *dst, int size, uint32_t color0, uint32_t color1) static void mod_col_inter_col1_using_tex (uint16_t *dst, int size, uint32_t color0, uint32_t color1)
{ {
uint32_t cr0, cg0, cb0, cr1, cg1, cb1; uint32_t cr0, cg0, cb0, cr1, cg1, cb1;
wxUint16 col; uint16_t col;
uint8_t r, g, b; uint8_t r, g, b;
wxUint16 a; uint16_t a;
float percent_r, percent_g, percent_b; float percent_r, percent_g, percent_b;
cr0 = (color0 >> 12) & 0xF; cr0 = (color0 >> 12) & 0xF;
@ -139,12 +139,12 @@ static void mod_col_inter_col1_using_tex (wxUint16 *dst, int size, uint32_t colo
} }
} }
static void mod_col_inter_col1_using_texa (wxUint16 *dst, int size, uint32_t color0, uint32_t color1) static void mod_col_inter_col1_using_texa (uint16_t *dst, int size, uint32_t color0, uint32_t color1)
{ {
uint32_t cr0, cg0, cb0, cr1, cg1, cb1; uint32_t cr0, cg0, cb0, cr1, cg1, cb1;
wxUint16 col; uint16_t col;
uint8_t r, g, b; uint8_t r, g, b;
wxUint16 a; uint16_t a;
float percent, percent_i; float percent, percent_i;
cr0 = (color0 >> 12) & 0xF; cr0 = (color0 >> 12) & 0xF;
@ -167,12 +167,12 @@ static void mod_col_inter_col1_using_texa (wxUint16 *dst, int size, uint32_t col
} }
} }
static void mod_col_inter_col1_using_texa__mul_tex (wxUint16 *dst, int size, uint32_t color0, uint32_t color1) static void mod_col_inter_col1_using_texa__mul_tex (uint16_t *dst, int size, uint32_t color0, uint32_t color1)
{ {
uint32_t cr0, cg0, cb0, cr1, cg1, cb1; uint32_t cr0, cg0, cb0, cr1, cg1, cb1;
wxUint16 col; uint16_t col;
uint8_t r, g, b; uint8_t r, g, b;
wxUint16 a; uint16_t a;
float percent, percent_i; float percent, percent_i;
cr0 = (color0 >> 12) & 0xF; cr0 = (color0 >> 12) & 0xF;
@ -195,12 +195,12 @@ static void mod_col_inter_col1_using_texa__mul_tex (wxUint16 *dst, int size, uin
} }
} }
static void mod_col_inter_tex_using_tex (wxUint16 *dst, int size, uint32_t color) static void mod_col_inter_tex_using_tex (uint16_t *dst, int size, uint32_t color)
{ {
uint32_t cr, cg, cb; uint32_t cr, cg, cb;
wxUint16 col; uint16_t col;
uint8_t r, g, b; uint8_t r, g, b;
wxUint16 a; uint16_t a;
float percent_r, percent_g, percent_b; float percent_r, percent_g, percent_b;
cr = (color >> 12) & 0xF; cr = (color >> 12) & 0xF;
@ -221,12 +221,12 @@ static void mod_col_inter_tex_using_tex (wxUint16 *dst, int size, uint32_t color
} }
} }
static void mod_col_inter_tex_using_texa (wxUint16 *dst, int size, uint32_t color) static void mod_col_inter_tex_using_texa (uint16_t *dst, int size, uint32_t color)
{ {
uint32_t cr, cg, cb; uint32_t cr, cg, cb;
wxUint16 col; uint16_t col;
uint8_t r, g, b; uint8_t r, g, b;
wxUint16 a; uint16_t a;
float percent, percent_i; float percent, percent_i;
cr = (color >> 12) & 0xF; cr = (color >> 12) & 0xF;
@ -246,14 +246,14 @@ static void mod_col_inter_tex_using_texa (wxUint16 *dst, int size, uint32_t colo
} }
} }
static void mod_col2_inter__col_inter_col1_using_tex__using_texa (wxUint16 *dst, int size, static void mod_col2_inter__col_inter_col1_using_tex__using_texa (uint16_t *dst, int size,
uint32_t color0, uint32_t color1, uint32_t color0, uint32_t color1,
uint32_t color2) uint32_t color2)
{ {
uint32_t cr0, cg0, cb0, cr1, cg1, cb1, cr2, cg2, cb2; uint32_t cr0, cg0, cb0, cr1, cg1, cb1, cr2, cg2, cb2;
wxUint16 col; uint16_t col;
uint8_t r, g, b; uint8_t r, g, b;
wxUint16 a; uint16_t a;
float percent_r, percent_g, percent_b, percent_a; float percent_r, percent_g, percent_b, percent_a;
cr0 = (color0 >> 12) & 0xF; cr0 = (color0 >> 12) & 0xF;
@ -281,10 +281,10 @@ static void mod_col2_inter__col_inter_col1_using_tex__using_texa (wxUint16 *dst,
} }
} }
static void mod_tex_scale_fac_add_fac (wxUint16 *dst, int size, uint32_t factor) static void mod_tex_scale_fac_add_fac (uint16_t *dst, int size, uint32_t factor)
{ {
float percent = factor / 255.0f; float percent = factor / 255.0f;
wxUint16 col; uint16_t col;
uint8_t a; uint8_t a;
float base_a = (1.0f - percent) * 15.0f; float base_a = (1.0f - percent) * 15.0f;
@ -296,11 +296,11 @@ static void mod_tex_scale_fac_add_fac (wxUint16 *dst, int size, uint32_t factor)
} }
} }
static void mod_tex_sub_col_mul_fac_add_tex (wxUint16 *dst, int size, uint32_t color, uint32_t factor) static void mod_tex_sub_col_mul_fac_add_tex (uint16_t *dst, int size, uint32_t color, uint32_t factor)
{ {
float percent = factor / 255.0f; float percent = factor / 255.0f;
uint32_t cr, cg, cb; uint32_t cr, cg, cb;
wxUint16 col, a; uint16_t col, a;
float r, g, b; float r, g, b;
cr = (color >> 12) & 0xF; cr = (color >> 12) & 0xF;
@ -324,16 +324,16 @@ static void mod_tex_sub_col_mul_fac_add_tex (wxUint16 *dst, int size, uint32_t c
if (b > 15.0f) b = 15.0f; if (b > 15.0f) b = 15.0f;
if (b < 0.0f) b = 0.0f; if (b < 0.0f) b = 0.0f;
*(dst++) = a | ((wxUint16)r << 8) | ((wxUint16)g << 4) | (wxUint16)b; *(dst++) = a | ((uint16_t)r << 8) | ((uint16_t)g << 4) | (uint16_t)b;
} }
} }
static void mod_tex_scale_col_add_col (wxUint16 *dst, int size, uint32_t color0, uint32_t color1) static void mod_tex_scale_col_add_col (uint16_t *dst, int size, uint32_t color0, uint32_t color1)
{ {
uint32_t cr0, cg0, cb0, cr1, cg1, cb1; uint32_t cr0, cg0, cb0, cr1, cg1, cb1;
wxUint16 col; uint16_t col;
uint8_t r, g, b; uint8_t r, g, b;
wxUint16 a; uint16_t a;
float percent_r, percent_g, percent_b; float percent_r, percent_g, percent_b;
cr0 = (color0 >> 12) & 0xF; cr0 = (color0 >> 12) & 0xF;
@ -357,10 +357,10 @@ static void mod_tex_scale_col_add_col (wxUint16 *dst, int size, uint32_t color0,
} }
} }
static void mod_tex_add_col (wxUint16 *dst, int size, uint32_t color) static void mod_tex_add_col (uint16_t *dst, int size, uint32_t color)
{ {
uint32_t cr, cg, cb; uint32_t cr, cg, cb;
wxUint16 col; uint16_t col;
uint8_t a, r, g, b; uint8_t a, r, g, b;
cr = (color >> 12) & 0xF; cr = (color >> 12) & 0xF;
@ -379,12 +379,12 @@ static void mod_tex_add_col (wxUint16 *dst, int size, uint32_t color)
} }
} }
static void mod_col_mul_texa_add_tex (wxUint16 *dst, int size, uint32_t color) static void mod_col_mul_texa_add_tex (uint16_t *dst, int size, uint32_t color)
{ {
uint32_t cr, cg, cb; uint32_t cr, cg, cb;
wxUint16 col; uint16_t col;
uint8_t r, g, b; uint8_t r, g, b;
wxUint16 a; uint16_t a;
float factor; float factor;
cr = (color >> 12) & 0xF; cr = (color >> 12) & 0xF;
@ -403,10 +403,10 @@ static void mod_col_mul_texa_add_tex (wxUint16 *dst, int size, uint32_t color)
} }
} }
static void mod_tex_sub_col (wxUint16 *dst, int size, uint32_t color) static void mod_tex_sub_col (uint16_t *dst, int size, uint32_t color)
{ {
int cr, cg, cb; int cr, cg, cb;
wxUint16 col; uint16_t col;
uint8_t a, r, g, b; uint8_t a, r, g, b;
cr = (color >> 12) & 0xF; cr = (color >> 12) & 0xF;
@ -424,11 +424,11 @@ static void mod_tex_sub_col (wxUint16 *dst, int size, uint32_t color)
} }
} }
static void mod_tex_sub_col_mul_fac (wxUint16 *dst, int size, uint32_t color, uint32_t factor) static void mod_tex_sub_col_mul_fac (uint16_t *dst, int size, uint32_t color, uint32_t factor)
{ {
float percent = factor / 255.0f; float percent = factor / 255.0f;
uint32_t cr, cg, cb; uint32_t cr, cg, cb;
wxUint16 col, a; uint16_t col, a;
float r, g, b; float r, g, b;
cr = (color >> 12) & 0xF; cr = (color >> 12) & 0xF;
@ -452,14 +452,14 @@ static void mod_tex_sub_col_mul_fac (wxUint16 *dst, int size, uint32_t color, ui
if (b > 15.0f) b = 15.0f; if (b > 15.0f) b = 15.0f;
if (b < 0.0f) b = 0.0f; if (b < 0.0f) b = 0.0f;
*(dst++) = (a << 12) | ((wxUint16)r << 8) | ((wxUint16)g << 4) | (wxUint16)b; *(dst++) = (a << 12) | ((uint16_t)r << 8) | ((uint16_t)g << 4) | (uint16_t)b;
} }
} }
static void mod_col_inter_tex_using_col1 (wxUint16 *dst, int size, uint32_t color0, uint32_t color1) static void mod_col_inter_tex_using_col1 (uint16_t *dst, int size, uint32_t color0, uint32_t color1)
{ {
uint32_t cr, cg, cb; uint32_t cr, cg, cb;
wxUint16 col, a; uint16_t col, a;
uint8_t r, g, b; uint8_t r, g, b;
float percent_r = ((color1 >> 12) & 0xF) / 15.0f; float percent_r = ((color1 >> 12) & 0xF) / 15.0f;
@ -484,9 +484,9 @@ static void mod_col_inter_tex_using_col1 (wxUint16 *dst, int size, uint32_t colo
} }
} }
static void mod_tex_inter_noise_using_col (wxUint16 *dst, int size, uint32_t color) static void mod_tex_inter_noise_using_col (uint16_t *dst, int size, uint32_t color)
{ {
wxUint16 col, a; uint16_t col, a;
uint8_t r, g, b, noise; uint8_t r, g, b, noise;
float percent_r = ((color >> 12) & 0xF) / 15.0f; float percent_r = ((color >> 12) & 0xF) / 15.0f;
@ -508,12 +508,12 @@ static void mod_tex_inter_noise_using_col (wxUint16 *dst, int size, uint32_t col
} }
} }
static void mod_tex_inter_col_using_texa (wxUint16 *dst, int size, uint32_t color) static void mod_tex_inter_col_using_texa (uint16_t *dst, int size, uint32_t color)
{ {
uint32_t cr, cg, cb; uint32_t cr, cg, cb;
wxUint16 col; uint16_t col;
uint8_t r, g, b; uint8_t r, g, b;
wxUint16 a; uint16_t a;
float percent, percent_i; float percent, percent_i;
cr = (color >> 12) & 0xF; cr = (color >> 12) & 0xF;
@ -533,12 +533,12 @@ static void mod_tex_inter_col_using_texa (wxUint16 *dst, int size, uint32_t colo
} }
} }
static void mod_tex_mul_col (wxUint16 *dst, int size, uint32_t color) static void mod_tex_mul_col (uint16_t *dst, int size, uint32_t color)
{ {
float cr, cg, cb; float cr, cg, cb;
wxUint16 col; uint16_t col;
uint8_t r, g, b; uint8_t r, g, b;
wxUint16 a; uint16_t a;
cr = (float)((color >> 12) & 0xF)/16.0f; cr = (float)((color >> 12) & 0xF)/16.0f;
cg = (float)((color >> 8) & 0xF)/16.0f; cg = (float)((color >> 8) & 0xF)/16.0f;
@ -555,11 +555,11 @@ static void mod_tex_mul_col (wxUint16 *dst, int size, uint32_t color)
} }
} }
static void mod_tex_scale_fac_add_col (wxUint16 *dst, int size, uint32_t color, uint32_t factor) static void mod_tex_scale_fac_add_col (uint16_t *dst, int size, uint32_t color, uint32_t factor)
{ {
float percent = factor / 255.0f; float percent = factor / 255.0f;
uint32_t cr, cg, cb; uint32_t cr, cg, cb;
wxUint16 col; uint16_t col;
float r, g, b; float r, g, b;
cr = (color >> 12) & 0xF; cr = (color >> 12) & 0xF;

View File

@ -42,7 +42,7 @@ static void mod_tex_inter_color_using_factor_CI (uint32_t color, uint32_t factor
float percent = factor / 255.0f; float percent = factor / 255.0f;
float percent_i = 1 - percent; float percent_i = 1 - percent;
uint8_t cr, cg, cb; uint8_t cr, cg, cb;
wxUint16 col; uint16_t col;
uint8_t a, r, g, b; uint8_t a, r, g, b;
cr = (uint8_t)((color >> 24) & 0xFF); cr = (uint8_t)((color >> 24) & 0xFF);
@ -59,17 +59,17 @@ static void mod_tex_inter_color_using_factor_CI (uint32_t color, uint32_t factor
r = (uint8_t)(min(255, percent_i * r + percent * cr)); r = (uint8_t)(min(255, percent_i * r + percent * cr));
g = (uint8_t)(min(255, percent_i * g + percent * cg)); g = (uint8_t)(min(255, percent_i * g + percent * cg));
b = (uint8_t)(min(255, percent_i * b + percent * cb)); b = (uint8_t)(min(255, percent_i * b + percent * cb));
rdp.pal_8[i] = (wxUint16)(((wxUint16)(r >> 3) << 11) | rdp.pal_8[i] = (uint16_t)(((uint16_t)(r >> 3) << 11) |
((wxUint16)(g >> 3) << 6) | ((uint16_t)(g >> 3) << 6) |
((wxUint16)(b >> 3) << 1) | ((uint16_t)(b >> 3) << 1) |
((wxUint16)(a ) << 0)); ((uint16_t)(a ) << 0));
} }
} }
static void mod_tex_inter_col_using_col1_CI (uint32_t color0, uint32_t color1) static void mod_tex_inter_col_using_col1_CI (uint32_t color0, uint32_t color1)
{ {
uint8_t cr, cg, cb; uint8_t cr, cg, cb;
wxUint16 col; uint16_t col;
uint8_t a, r, g, b; uint8_t a, r, g, b;
float percent_r = ((color1 >> 24) & 0xFF) / 255.0f; float percent_r = ((color1 >> 24) & 0xFF) / 255.0f;
@ -93,17 +93,17 @@ static void mod_tex_inter_col_using_col1_CI (uint32_t color0, uint32_t color1)
r = (uint8_t)(min(255, percent_r_i * r + percent_r * cr)); r = (uint8_t)(min(255, percent_r_i * r + percent_r * cr));
g = (uint8_t)(min(255, percent_g_i * g + percent_g * cg)); g = (uint8_t)(min(255, percent_g_i * g + percent_g * cg));
b = (uint8_t)(min(255, percent_b_i * b + percent_b * cb)); b = (uint8_t)(min(255, percent_b_i * b + percent_b * cb));
rdp.pal_8[i] = (wxUint16)(((wxUint16)(r >> 3) << 11) | rdp.pal_8[i] = (uint16_t)(((uint16_t)(r >> 3) << 11) |
((wxUint16)(g >> 3) << 6) | ((uint16_t)(g >> 3) << 6) |
((wxUint16)(b >> 3) << 1) | ((uint16_t)(b >> 3) << 1) |
((wxUint16)(a ) << 0)); ((uint16_t)(a ) << 0));
} }
} }
static void mod_full_color_sub_tex_CI (uint32_t color) static void mod_full_color_sub_tex_CI (uint32_t color)
{ {
uint8_t cr, cg, cb, ca; uint8_t cr, cg, cb, ca;
wxUint16 col; uint16_t col;
uint8_t a, r, g, b; uint8_t a, r, g, b;
cr = (uint8_t)((color >> 24) & 0xFF); cr = (uint8_t)((color >> 24) & 0xFF);
@ -122,17 +122,17 @@ static void mod_full_color_sub_tex_CI (uint32_t color)
r = max(0, cr - r); r = max(0, cr - r);
g = max(0, cg - g); g = max(0, cg - g);
b = max(0, cb - b); b = max(0, cb - b);
rdp.pal_8[i] = (wxUint16)(((wxUint16)(r >> 3) << 11) | rdp.pal_8[i] = (uint16_t)(((uint16_t)(r >> 3) << 11) |
((wxUint16)(g >> 3) << 6) | ((uint16_t)(g >> 3) << 6) |
((wxUint16)(b >> 3) << 1) | ((uint16_t)(b >> 3) << 1) |
((wxUint16)(a ) << 0)); ((uint16_t)(a ) << 0));
} }
} }
static void mod_col_inter_col1_using_tex_CI (uint32_t color0, uint32_t color1) static void mod_col_inter_col1_using_tex_CI (uint32_t color0, uint32_t color1)
{ {
uint32_t cr0, cg0, cb0, cr1, cg1, cb1; uint32_t cr0, cg0, cb0, cr1, cg1, cb1;
wxUint16 col; uint16_t col;
uint8_t a, r, g, b; uint8_t a, r, g, b;
float percent_r, percent_g, percent_b; float percent_r, percent_g, percent_b;
@ -153,10 +153,10 @@ static void mod_col_inter_col1_using_tex_CI (uint32_t color0, uint32_t color1)
r = (uint8_t)(min((1.0f-percent_r) * cr0 + percent_r * cr1, 255)); r = (uint8_t)(min((1.0f-percent_r) * cr0 + percent_r * cr1, 255));
g = (uint8_t)(min((1.0f-percent_g) * cg0 + percent_g * cg1, 255)); g = (uint8_t)(min((1.0f-percent_g) * cg0 + percent_g * cg1, 255));
b = (uint8_t)(min((1.0f-percent_b) * cb0 + percent_b * cb1, 255)); b = (uint8_t)(min((1.0f-percent_b) * cb0 + percent_b * cb1, 255));
rdp.pal_8[i] = (wxUint16)(((wxUint16)(r >> 3) << 11) | rdp.pal_8[i] = (uint16_t)(((uint16_t)(r >> 3) << 11) |
((wxUint16)(g >> 3) << 6) | ((uint16_t)(g >> 3) << 6) |
((wxUint16)(b >> 3) << 1) | ((uint16_t)(b >> 3) << 1) |
((wxUint16)(a ) << 0)); ((uint16_t)(a ) << 0));
} }
} }
@ -166,7 +166,7 @@ static void mod_tex_sub_col_mul_fac_add_tex_CI (uint32_t color, uint32_t factor)
{ {
float percent = factor / 255.0f; float percent = factor / 255.0f;
uint8_t cr, cg, cb, a; uint8_t cr, cg, cb, a;
wxUint16 col; uint16_t col;
float r, g, b; float r, g, b;
cr = (uint8_t)((color >> 24) & 0xFF); cr = (uint8_t)((color >> 24) & 0xFF);
@ -189,17 +189,17 @@ static void mod_tex_sub_col_mul_fac_add_tex_CI (uint32_t color, uint32_t factor)
b = (b - cb) * percent + b; b = (b - cb) * percent + b;
if (b > 255.0f) g = 255.0f; if (b > 255.0f) g = 255.0f;
if (b < 0.0f) b = 0.0f; if (b < 0.0f) b = 0.0f;
rdp.pal_8[i] = (wxUint16)(((wxUint16)((uint8_t)(r) >> 3) << 11) | rdp.pal_8[i] = (uint16_t)(((uint16_t)((uint8_t)(r) >> 3) << 11) |
((wxUint16)((uint8_t)(g) >> 3) << 6) | ((uint16_t)((uint8_t)(g) >> 3) << 6) |
((wxUint16)((uint8_t)(b) >> 3) << 1) | ((uint16_t)((uint8_t)(b) >> 3) << 1) |
(wxUint16)(a) ); (uint16_t)(a) );
} }
} }
static void mod_tex_scale_col_add_col_CI (uint32_t color0, uint32_t color1) static void mod_tex_scale_col_add_col_CI (uint32_t color0, uint32_t color1)
{ {
uint8_t cr, cg, cb; uint8_t cr, cg, cb;
wxUint16 col; uint16_t col;
uint8_t a, r, g, b; uint8_t a, r, g, b;
float percent_r = ((color0 >> 24) & 0xFF) / 255.0f; float percent_r = ((color0 >> 24) & 0xFF) / 255.0f;
@ -219,17 +219,17 @@ static void mod_tex_scale_col_add_col_CI (uint32_t color0, uint32_t color1)
r = (uint8_t)(min(255, percent_r * r + cr)); r = (uint8_t)(min(255, percent_r * r + cr));
g = (uint8_t)(min(255, percent_g * g + cg)); g = (uint8_t)(min(255, percent_g * g + cg));
b = (uint8_t)(min(255, percent_b * b + cb)); b = (uint8_t)(min(255, percent_b * b + cb));
rdp.pal_8[i] = (wxUint16)(((wxUint16)(r >> 3) << 11) | rdp.pal_8[i] = (uint16_t)(((uint16_t)(r >> 3) << 11) |
((wxUint16)(g >> 3) << 6) | ((uint16_t)(g >> 3) << 6) |
((wxUint16)(b >> 3) << 1) | ((uint16_t)(b >> 3) << 1) |
((wxUint16)(a ) << 0)); ((uint16_t)(a ) << 0));
} }
} }
static void mod_tex_add_col_CI (uint32_t color) static void mod_tex_add_col_CI (uint32_t color)
{ {
uint8_t cr, cg, cb; uint8_t cr, cg, cb;
wxUint16 col; uint16_t col;
uint8_t a, r, g, b; uint8_t a, r, g, b;
cr = (uint8_t)((color >> 24) & 0xFF); cr = (uint8_t)((color >> 24) & 0xFF);
@ -246,17 +246,17 @@ static void mod_tex_add_col_CI (uint32_t color)
r = min(cr + r, 255); r = min(cr + r, 255);
g = min(cg + g, 255); g = min(cg + g, 255);
b = min(cb + b, 255); b = min(cb + b, 255);
rdp.pal_8[i] = (wxUint16)(((wxUint16)(r >> 3) << 11) | rdp.pal_8[i] = (uint16_t)(((uint16_t)(r >> 3) << 11) |
((wxUint16)(g >> 3) << 6) | ((uint16_t)(g >> 3) << 6) |
((wxUint16)(b >> 3) << 1) | ((uint16_t)(b >> 3) << 1) |
((wxUint16)(a ) << 0)); ((uint16_t)(a ) << 0));
} }
} }
static void mod_tex_sub_col_CI (uint32_t color) static void mod_tex_sub_col_CI (uint32_t color)
{ {
uint8_t cr, cg, cb; uint8_t cr, cg, cb;
wxUint16 col; uint16_t col;
uint8_t a, r, g, b; uint8_t a, r, g, b;
cr = (uint8_t)((color >> 24) & 0xFF); cr = (uint8_t)((color >> 24) & 0xFF);
@ -273,10 +273,10 @@ static void mod_tex_sub_col_CI (uint32_t color)
r = max(r - cr, 0); r = max(r - cr, 0);
g = max(g - cg, 0); g = max(g - cg, 0);
b = max(b - cb, 0); b = max(b - cb, 0);
rdp.pal_8[i] = (wxUint16)(((wxUint16)(r >> 3) << 11) | rdp.pal_8[i] = (uint16_t)(((uint16_t)(r >> 3) << 11) |
((wxUint16)(g >> 3) << 6) | ((uint16_t)(g >> 3) << 6) |
((wxUint16)(b >> 3) << 1) | ((uint16_t)(b >> 3) << 1) |
((wxUint16)(a ) << 0)); ((uint16_t)(a ) << 0));
} }
} }
@ -284,7 +284,7 @@ static void mod_tex_sub_col_mul_fac_CI (uint32_t color, uint32_t factor)
{ {
float percent = factor / 255.0f; float percent = factor / 255.0f;
uint8_t cr, cg, cb; uint8_t cr, cg, cb;
wxUint16 col; uint16_t col;
uint8_t a; uint8_t a;
float r, g, b; float r, g, b;
@ -309,17 +309,17 @@ static void mod_tex_sub_col_mul_fac_CI (uint32_t color, uint32_t factor)
if (b > 255.0f) g = 255.0f; if (b > 255.0f) g = 255.0f;
if (b < 0.0f) b = 0.0f; if (b < 0.0f) b = 0.0f;
rdp.pal_8[i] = (wxUint16)(((wxUint16)((uint8_t)(r) >> 3) << 11) | rdp.pal_8[i] = (uint16_t)(((uint16_t)((uint8_t)(r) >> 3) << 11) |
((wxUint16)((uint8_t)(g) >> 3) << 6) | ((uint16_t)((uint8_t)(g) >> 3) << 6) |
((wxUint16)((uint8_t)(b) >> 3) << 1) | ((uint16_t)((uint8_t)(b) >> 3) << 1) |
(wxUint16)(a) ); (uint16_t)(a) );
} }
} }
static void mod_col_inter_tex_using_col1_CI (uint32_t color0, uint32_t color1) static void mod_col_inter_tex_using_col1_CI (uint32_t color0, uint32_t color1)
{ {
uint8_t cr, cg, cb; uint8_t cr, cg, cb;
wxUint16 col; uint16_t col;
uint8_t a, r, g, b; uint8_t a, r, g, b;
float percent_r = ((color1 >> 24) & 0xFF) / 255.0f; float percent_r = ((color1 >> 24) & 0xFF) / 255.0f;
@ -343,10 +343,10 @@ static void mod_col_inter_tex_using_col1_CI (uint32_t color0, uint32_t color1)
r = (uint8_t)(min(255, percent_r * r + percent_r_i * cr)); r = (uint8_t)(min(255, percent_r * r + percent_r_i * cr));
g = (uint8_t)(min(255, percent_g * g + percent_g_i * cg)); g = (uint8_t)(min(255, percent_g * g + percent_g_i * cg));
b = (uint8_t)(min(255, percent_b * b + percent_b_i * cb)); b = (uint8_t)(min(255, percent_b * b + percent_b_i * cb));
rdp.pal_8[i] = (wxUint16)(((wxUint16)(r >> 3) << 11) | rdp.pal_8[i] = (uint16_t)(((uint16_t)(r >> 3) << 11) |
((wxUint16)(g >> 3) << 6) | ((uint16_t)(g >> 3) << 6) |
((wxUint16)(b >> 3) << 1) | ((uint16_t)(b >> 3) << 1) |
((wxUint16)(a ) << 0)); ((uint16_t)(a ) << 0));
} }
} }
@ -358,7 +358,7 @@ static void mod_tex_inter_col_using_texa_CI (uint32_t color)
g = (uint8_t)((float)((color >> 16) & 0xFF) / 255.0f * 31.0f); g = (uint8_t)((float)((color >> 16) & 0xFF) / 255.0f * 31.0f);
b = (uint8_t)((float)((color >> 8) & 0xFF) / 255.0f * 31.0f); b = (uint8_t)((float)((color >> 8) & 0xFF) / 255.0f * 31.0f);
a = (color&0xFF) ? 1 : 0; a = (color&0xFF) ? 1 : 0;
wxUint16 col16 = (wxUint16)((r<<11)|(g<<6)|(b<<1)|a); uint16_t col16 = (uint16_t)((r<<11)|(g<<6)|(b<<1)|a);
for (int i=0; i<256; i++) for (int i=0; i<256; i++)
{ {
@ -370,7 +370,7 @@ static void mod_tex_inter_col_using_texa_CI (uint32_t color)
static void mod_tex_mul_col_CI (uint32_t color) static void mod_tex_mul_col_CI (uint32_t color)
{ {
uint8_t a, r, g, b; uint8_t a, r, g, b;
wxUint16 col; uint16_t col;
float cr, cg, cb; float cr, cg, cb;
cr = (float)((color >> 24) & 0xFF) / 255.0f; cr = (float)((color >> 24) & 0xFF) / 255.0f;
@ -384,10 +384,10 @@ static void mod_tex_mul_col_CI (uint32_t color)
r = (uint8_t)((float)((col&0xF800) >> 11) * cr); r = (uint8_t)((float)((col&0xF800) >> 11) * cr);
g = (uint8_t)((float)((col&0x07C0) >> 6) * cg); g = (uint8_t)((float)((col&0x07C0) >> 6) * cg);
b = (uint8_t)((float)((col&0x003E) >> 1) * cb); b = (uint8_t)((float)((col&0x003E) >> 1) * cb);
rdp.pal_8[i] = (wxUint16)(((wxUint16)(r >> 3) << 11) | rdp.pal_8[i] = (uint16_t)(((uint16_t)(r >> 3) << 11) |
((wxUint16)(g >> 3) << 6) | ((uint16_t)(g >> 3) << 6) |
((wxUint16)(b >> 3) << 1) | ((uint16_t)(b >> 3) << 1) |
((wxUint16)(a ) << 0)); ((uint16_t)(a ) << 0));
} }
} }

View File

@ -284,7 +284,7 @@ static int dzdx = 0;
static int deltaZ = 0; static int deltaZ = 0;
VERTEX **org_vtx; VERTEX **org_vtx;
void draw_tri (VERTEX **vtx, wxUint16 linew) void draw_tri (VERTEX **vtx, uint16_t linew)
{ {
deltaZ = dzdx = 0; deltaZ = dzdx = 0;
if (linew == 0 && (fb_depth_render_enabled || (rdp.rm & 0xC00) == 0xC00)) if (linew == 0 && (fb_depth_render_enabled || (rdp.rm & 0xC00) == 0xC00))
@ -748,9 +748,9 @@ static void clip_w (int interpolate_colors)
rdp.n_global = index; rdp.n_global = index;
} }
static void render_tri (wxUint16 linew, int old_interpolate); static void render_tri (uint16_t linew, int old_interpolate);
void do_triangle_stuff (wxUint16 linew, int old_interpolate) // what else?? do the triangle stuff :P (to keep from writing code twice) void do_triangle_stuff (uint16_t linew, int old_interpolate) // what else?? do the triangle stuff :P (to keep from writing code twice)
{ {
int i; int i;
@ -821,7 +821,7 @@ void do_triangle_stuff (wxUint16 linew, int old_interpolate) // what else?? do t
render_tri (linew, old_interpolate); render_tri (linew, old_interpolate);
} }
void do_triangle_stuff_2 (wxUint16 linew) void do_triangle_stuff_2 (uint16_t linew)
{ {
rdp.clip = 0; rdp.clip = 0;
@ -1488,7 +1488,7 @@ void clip_tri(int interpolate_colors)
rdp.n_global = n; rdp.n_global = n;
} }
static void render_tri (wxUint16 linew, int old_interpolate) static void render_tri (uint16_t linew, int old_interpolate)
{ {
if (rdp.clip) if (rdp.clip)
clip_tri(old_interpolate); clip_tri(old_interpolate);
@ -2062,7 +2062,7 @@ void update ()
{ {
rdp.update ^= UPDATE_FOG_ENABLED; rdp.update ^= UPDATE_FOG_ENABLED;
wxUint16 blender = (wxUint16)(rdp.othermode_l >> 16); uint16_t blender = (uint16_t)(rdp.othermode_l >> 16);
if (rdp.flags & FOG_ENABLED) if (rdp.flags & FOG_ENABLED)
{ {
rdp_blender_setting &bl = *(rdp_blender_setting*)(&(blender)); rdp_blender_setting &bl = *(rdp_blender_setting*)(&(blender));

View File

@ -45,12 +45,12 @@
#define NOT_TMU2 0x02 #define NOT_TMU2 0x02
void util_init (); void util_init ();
void render_tri (wxUint16 linew = 0); void render_tri (uint16_t linew = 0);
int cull_tri (VERTEX **v); int cull_tri (VERTEX **v);
void draw_tri (VERTEX **v, wxUint16 linew = 0); void draw_tri (VERTEX **v, uint16_t linew = 0);
void do_triangle_stuff (wxUint16 linew = 0, int old_interpolate = TRUE); void do_triangle_stuff (uint16_t linew = 0, int old_interpolate = TRUE);
void do_triangle_stuff_2 (wxUint16 linew = 0); void do_triangle_stuff_2 (uint16_t linew = 0);
void add_tri (VERTEX *v, int n, int type); void add_tri (VERTEX *v, int n, int type);
void apply_shade_mods (VERTEX *v); void apply_shade_mods (VERTEX *v);

View File

@ -443,7 +443,7 @@ static void copyWhiteToRDRAM()
if(rdp.ci_width == 0) if(rdp.ci_width == 0)
return; return;
wxUint16 *ptr_dst = (wxUint16*)(gfx.RDRAM + rdp.cimg); uint16_t *ptr_dst = (uint16_t*)(gfx.RDRAM + rdp.cimg);
uint32_t *ptr_dst32 = (uint32_t*)(gfx.RDRAM + rdp.cimg); uint32_t *ptr_dst32 = (uint32_t*)(gfx.RDRAM + rdp.cimg);
for(uint32_t y = 0; y < rdp.ci_height; y++) for(uint32_t y = 0; y < rdp.ci_height; y++)
@ -484,7 +484,7 @@ static void CopyFrameBuffer (GrBuffer_t buffer = GR_BUFFER_BACKBUFFER)
if (rdp.scale_x < 1.1f) if (rdp.scale_x < 1.1f)
{ {
wxUint16 * ptr_src = new wxUint16[width*height]; uint16_t * ptr_src = new uint16_t[width*height];
if (grLfbReadRegion(buffer, if (grLfbReadRegion(buffer,
(uint32_t)rdp.offset_x, (uint32_t)rdp.offset_x,
(uint32_t)rdp.offset_y,//rdp.ci_upper_bound, (uint32_t)rdp.offset_y,//rdp.ci_upper_bound,
@ -493,9 +493,9 @@ static void CopyFrameBuffer (GrBuffer_t buffer = GR_BUFFER_BACKBUFFER)
width<<1, width<<1,
ptr_src)) ptr_src))
{ {
wxUint16 *ptr_dst = (wxUint16*)(gfx.RDRAM+rdp.cimg); uint16_t *ptr_dst = (uint16_t*)(gfx.RDRAM+rdp.cimg);
uint32_t *ptr_dst32 = (uint32_t*)(gfx.RDRAM+rdp.cimg); uint32_t *ptr_dst32 = (uint32_t*)(gfx.RDRAM+rdp.cimg);
wxUint16 c; uint16_t c;
for (uint32_t y=0; y<height; y++) for (uint32_t y=0; y<height; y++)
{ {
@ -547,10 +547,10 @@ static void CopyFrameBuffer (GrBuffer_t buffer = GR_BUFFER_BACKBUFFER)
FXFALSE, FXFALSE,
&info)) &info))
{ {
wxUint16 *ptr_src = (wxUint16*)info.lfbPtr; uint16_t *ptr_src = (uint16_t*)info.lfbPtr;
wxUint16 *ptr_dst = (wxUint16*)(gfx.RDRAM+rdp.cimg); uint16_t *ptr_dst = (uint16_t*)(gfx.RDRAM+rdp.cimg);
uint32_t *ptr_dst32 = (uint32_t*)(gfx.RDRAM+rdp.cimg); uint32_t *ptr_dst32 = (uint32_t*)(gfx.RDRAM+rdp.cimg);
wxUint16 c; uint16_t c;
uint32_t stride = info.strideInBytes>>1; uint32_t stride = info.strideInBytes>>1;
int read_alpha = settings.frame_buffer & fb_read_alpha; int read_alpha = settings.frame_buffer & fb_read_alpha;
@ -640,7 +640,7 @@ int cpu_fb_ignore = FALSE;
int CI_SET = TRUE; int CI_SET = TRUE;
uint32_t ucode5_texshiftaddr = 0; uint32_t ucode5_texshiftaddr = 0;
uint32_t ucode5_texshiftcount = 0; uint32_t ucode5_texshiftcount = 0;
wxUint16 ucode5_texshift = 0; uint16_t ucode5_texshift = 0;
int depth_buffer_fog; int depth_buffer_fog;
EXPORT void CALL ProcessDList(void) EXPORT void CALL ProcessDList(void)
@ -927,12 +927,12 @@ static void rdp_noop()
static void ys_memrect () static void ys_memrect ()
{ {
uint32_t tile = (wxUint16)((rdp.cmd1 & 0x07000000) >> 24); uint32_t tile = (uint16_t)((rdp.cmd1 & 0x07000000) >> 24);
uint32_t lr_x = (wxUint16)((rdp.cmd0 & 0x00FFF000) >> 14); uint32_t lr_x = (uint16_t)((rdp.cmd0 & 0x00FFF000) >> 14);
uint32_t lr_y = (wxUint16)((rdp.cmd0 & 0x00000FFF) >> 2); uint32_t lr_y = (uint16_t)((rdp.cmd0 & 0x00000FFF) >> 2);
uint32_t ul_x = (wxUint16)((rdp.cmd1 & 0x00FFF000) >> 14); uint32_t ul_x = (uint16_t)((rdp.cmd1 & 0x00FFF000) >> 14);
uint32_t ul_y = (wxUint16)((rdp.cmd1 & 0x00000FFF) >> 2); uint32_t ul_y = (uint16_t)((rdp.cmd1 & 0x00000FFF) >> 2);
if (lr_y > rdp.scissor_o.lr_y) if (lr_y > rdp.scissor_o.lr_y)
lr_y = rdp.scissor_o.lr_y; lr_y = rdp.scissor_o.lr_y;
@ -963,12 +963,12 @@ static void pm_palette_mod ()
uint8_t envr = (uint8_t)((float)((rdp.env_color >> 24)&0xFF)/255.0f*31.0f); uint8_t envr = (uint8_t)((float)((rdp.env_color >> 24)&0xFF)/255.0f*31.0f);
uint8_t envg = (uint8_t)((float)((rdp.env_color >> 16)&0xFF)/255.0f*31.0f); uint8_t envg = (uint8_t)((float)((rdp.env_color >> 16)&0xFF)/255.0f*31.0f);
uint8_t envb = (uint8_t)((float)((rdp.env_color >> 8)&0xFF)/255.0f*31.0f); uint8_t envb = (uint8_t)((float)((rdp.env_color >> 8)&0xFF)/255.0f*31.0f);
wxUint16 env16 = (wxUint16)((envr<<11)|(envg<<6)|(envb<<1)|1); uint16_t env16 = (uint16_t)((envr<<11)|(envg<<6)|(envb<<1)|1);
uint8_t prmr = (uint8_t)((float)((rdp.prim_color >> 24)&0xFF)/255.0f*31.0f); uint8_t prmr = (uint8_t)((float)((rdp.prim_color >> 24)&0xFF)/255.0f*31.0f);
uint8_t prmg = (uint8_t)((float)((rdp.prim_color >> 16)&0xFF)/255.0f*31.0f); uint8_t prmg = (uint8_t)((float)((rdp.prim_color >> 16)&0xFF)/255.0f*31.0f);
uint8_t prmb = (uint8_t)((float)((rdp.prim_color >> 8)&0xFF)/255.0f*31.0f); uint8_t prmb = (uint8_t)((float)((rdp.prim_color >> 8)&0xFF)/255.0f*31.0f);
wxUint16 prim16 = (wxUint16)((prmr<<11)|(prmg<<6)|(prmb<<1)|1); uint16_t prim16 = (uint16_t)((prmr<<11)|(prmg<<6)|(prmb<<1)|1);
wxUint16 * dst = (wxUint16*)(gfx.RDRAM+rdp.cimg); uint16_t * dst = (uint16_t*)(gfx.RDRAM+rdp.cimg);
for (int i = 0; i < 16; i++) for (int i = 0; i < 16; i++)
{ {
dst[i^1] = (rdp.pal_8[i]&1) ? prim16 : env16; dst[i^1] = (rdp.pal_8[i]&1) ? prim16 : env16;
@ -978,14 +978,14 @@ static void pm_palette_mod ()
static void pd_zcopy () static void pd_zcopy ()
{ {
wxUint16 ul_x = (wxUint16)((rdp.cmd1 & 0x00FFF000) >> 14); uint16_t ul_x = (uint16_t)((rdp.cmd1 & 0x00FFF000) >> 14);
wxUint16 lr_x = (wxUint16)((rdp.cmd0 & 0x00FFF000) >> 14) + 1; uint16_t lr_x = (uint16_t)((rdp.cmd0 & 0x00FFF000) >> 14) + 1;
wxUint16 ul_u = (wxUint16)((rdp.cmd2 & 0xFFFF0000) >> 21) + 1; uint16_t ul_u = (uint16_t)((rdp.cmd2 & 0xFFFF0000) >> 21) + 1;
wxUint16 *ptr_dst = (wxUint16*)(gfx.RDRAM+rdp.cimg); uint16_t *ptr_dst = (uint16_t*)(gfx.RDRAM+rdp.cimg);
wxUint16 width = lr_x - ul_x; uint16_t width = lr_x - ul_x;
wxUint16 * ptr_src = ((wxUint16*)rdp.tmem)+ul_u; uint16_t * ptr_src = ((uint16_t*)rdp.tmem)+ul_u;
wxUint16 c; uint16_t c;
for (wxUint16 x=0; x<width; x++) for (uint16_t x=0; x<width; x++)
{ {
c = ptr_src[x]; c = ptr_src[x];
c = ((c<<8)&0xFF00) | (c >> 8); c = ((c<<8)&0xFF00) | (c >> 8);
@ -1129,14 +1129,14 @@ static void rdp_texrect()
{ {
DRAWIMAGE d; DRAWIMAGE d;
d.imageX = 0; d.imageX = 0;
d.imageW = (wxUint16)rdp.tbuff_tex->width; d.imageW = (uint16_t)rdp.tbuff_tex->width;
d.frameX = (wxUint16)ul_x; d.frameX = (uint16_t)ul_x;
d.frameW = (wxUint16)(rdp.tbuff_tex->width); d.frameW = (uint16_t)(rdp.tbuff_tex->width);
d.imageY = 0; d.imageY = 0;
d.imageH = (wxUint16)rdp.tbuff_tex->height; d.imageH = (uint16_t)rdp.tbuff_tex->height;
d.frameY = (wxUint16)ul_y; d.frameY = (uint16_t)ul_y;
d.frameH = (wxUint16)(rdp.tbuff_tex->height); d.frameH = (uint16_t)(rdp.tbuff_tex->height);
FRDP("texrect. ul_x: %d, ul_y: %d, lr_x: %d, lr_y: %d, width: %d, height: %d\n", ul_x, ul_y, lr_x, lr_y, rdp.tbuff_tex->width, rdp.tbuff_tex->height); FRDP("texrect. ul_x: %d, ul_y: %d, lr_x: %d, lr_y: %d, width: %d, height: %d\n", ul_x, ul_y, lr_x, lr_y, rdp.tbuff_tex->width, rdp.tbuff_tex->height);
d.scaleX = 1.0f; d.scaleX = 1.0f;
d.scaleY = 1.0f; d.scaleY = 1.0f;
@ -1183,7 +1183,7 @@ static void rdp_texrect()
int i; int i;
uint32_t tile = (wxUint16)((rdp.cmd1 & 0x07000000) >> 24); uint32_t tile = (uint16_t)((rdp.cmd1 & 0x07000000) >> 24);
rdp.texrecting = 1; rdp.texrecting = 1;
@ -1656,8 +1656,8 @@ static void rdp_setscissor()
static void rdp_setprimdepth() static void rdp_setprimdepth()
{ {
rdp.prim_depth = (wxUint16)((rdp.cmd1 >> 16) & 0x7FFF); rdp.prim_depth = (uint16_t)((rdp.cmd1 >> 16) & 0x7FFF);
rdp.prim_dz = (wxUint16)(rdp.cmd1 & 0x7FFF); rdp.prim_dz = (uint16_t)(rdp.cmd1 & 0x7FFF);
FRDP("setprimdepth: %d\n", rdp.prim_depth); FRDP("setprimdepth: %d\n", rdp.prim_depth);
} }
@ -1691,22 +1691,22 @@ static void rdp_setothermode()
} }
} }
void load_palette (uint32_t addr, wxUint16 start, wxUint16 count) void load_palette (uint32_t addr, uint16_t start, uint16_t count)
{ {
LRDP("Loading palette... "); LRDP("Loading palette... ");
wxUint16 *dpal = rdp.pal_8 + start; uint16_t *dpal = rdp.pal_8 + start;
wxUint16 end = start+count; uint16_t end = start+count;
#ifdef TEXTURE_FILTER #ifdef TEXTURE_FILTER
wxUint16 *spal = (wxUint16*)(gfx.RDRAM + (addr & BMASK)); uint16_t *spal = (uint16_t*)(gfx.RDRAM + (addr & BMASK));
#endif #endif
for (wxUint16 i=start; i<end; i++) for (uint16_t i=start; i<end; i++)
{ {
*(dpal++) = *(wxUint16 *)(gfx.RDRAM + (addr^2)); *(dpal++) = *(uint16_t *)(gfx.RDRAM + (addr^2));
addr += 2; addr += 2;
#ifdef TLUT_LOGGING #ifdef TLUT_LOGGING
FRDP ("%d: %08lx\n", i, *(wxUint16 *)(gfx.RDRAM + (addr^2))); FRDP ("%d: %08lx\n", i, *(uint16_t *)(gfx.RDRAM + (addr^2)));
#endif #endif
} }
#ifdef TEXTURE_FILTER #ifdef TEXTURE_FILTER
@ -1717,7 +1717,7 @@ void load_palette (uint32_t addr, wxUint16 start, wxUint16 count)
end = start + (count >> 4); end = start + (count >> 4);
if (end == start) // it can be if count < 16 if (end == start) // it can be if count < 16
end = start + 1; end = start + 1;
for (wxUint16 p = start; p < end; p++) for (uint16_t p = start; p < end; p++)
{ {
rdp.pal_8_crc[p] = CRC32( 0xFFFFFFFF, &rdp.pal_8[(p << 4)], 32 ); rdp.pal_8_crc[p] = CRC32( 0xFFFFFFFF, &rdp.pal_8[(p << 4)], 32 );
} }
@ -1728,12 +1728,12 @@ void load_palette (uint32_t addr, wxUint16 start, wxUint16 count)
static void rdp_loadtlut() static void rdp_loadtlut()
{ {
uint32_t tile = (rdp.cmd1 >> 24) & 0x07; uint32_t tile = (rdp.cmd1 >> 24) & 0x07;
wxUint16 start = rdp.tiles[tile].t_mem - 256; // starting location in the palettes uint16_t start = rdp.tiles[tile].t_mem - 256; // starting location in the palettes
// wxUint16 start = ((wxUint16)(rdp.cmd1 >> 2) & 0x3FF) + 1; // uint16_t start = ((uint16_t)(rdp.cmd1 >> 2) & 0x3FF) + 1;
wxUint16 count = ((wxUint16)(rdp.cmd1 >> 14) & 0x3FF) + 1; // number to copy uint16_t count = ((uint16_t)(rdp.cmd1 >> 14) & 0x3FF) + 1; // number to copy
if (rdp.timg.addr + (count<<1) > BMASK) if (rdp.timg.addr + (count<<1) > BMASK)
count = (wxUint16)((BMASK - rdp.timg.addr) >> 1); count = (uint16_t)((BMASK - rdp.timg.addr) >> 1);
if (start+count > 256) count = 256-start; if (start+count > 256) count = 256-start;
@ -1820,7 +1820,7 @@ static void rdp_settilesize()
tile, ul_s, ul_t, lr_s, lr_t, rdp.tiles[tile].f_ul_s, rdp.tiles[tile].f_ul_t); tile, ul_s, ul_t, lr_s, lr_t, rdp.tiles[tile].f_ul_s, rdp.tiles[tile].f_ul_t);
} }
void setTBufTex(wxUint16 t_mem, uint32_t cnt) void setTBufTex(uint16_t t_mem, uint32_t cnt)
{ {
FRDP("setTBufTex t_mem=%d, cnt=%d\n", t_mem, cnt); FRDP("setTBufTex t_mem=%d, cnt=%d\n", t_mem, cnt);
TBUFF_COLOR_IMAGE * pTbufTex = rdp.tbuff_tex; TBUFF_COLOR_IMAGE * pTbufTex = rdp.tbuff_tex;
@ -1984,7 +1984,7 @@ static void rdp_loadblock()
} }
uint32_t tile = (uint32_t)((rdp.cmd1 >> 24) & 0x07); uint32_t tile = (uint32_t)((rdp.cmd1 >> 24) & 0x07);
uint32_t dxt = (uint32_t)(rdp.cmd1 & 0x0FFF); uint32_t dxt = (uint32_t)(rdp.cmd1 & 0x0FFF);
wxUint16 lr_s = (wxUint16)(rdp.cmd1 >> 14) & 0x3FF; uint16_t lr_s = (uint16_t)(rdp.cmd1 >> 14) & 0x3FF;
if (ucode5_texshiftaddr) if (ucode5_texshiftaddr)
{ {
if (ucode5_texshift % ((lr_s+1)<<3)) if (ucode5_texshift % ((lr_s+1)<<3))
@ -2011,8 +2011,8 @@ static void rdp_loadblock()
// lr_s specifies number of 64-bit words to copy // lr_s specifies number of 64-bit words to copy
// 10.2 format // 10.2 format
wxUint16 ul_s = (wxUint16)(rdp.cmd0 >> 14) & 0x3FF; uint16_t ul_s = (uint16_t)(rdp.cmd0 >> 14) & 0x3FF;
wxUint16 ul_t = (wxUint16)(rdp.cmd0 >> 2) & 0x3FF; uint16_t ul_t = (uint16_t)(rdp.cmd0 >> 2) & 0x3FF;
rdp.tiles[tile].ul_s = ul_s; rdp.tiles[tile].ul_s = ul_s;
rdp.tiles[tile].ul_t = ul_t; rdp.tiles[tile].ul_t = ul_t;
@ -2035,7 +2035,7 @@ static void rdp_loadblock()
lr_s = 512-ul_s; lr_s = 512-ul_s;
if (addr+(lr_s<<3) > BMASK+1) if (addr+(lr_s<<3) > BMASK+1)
lr_s = (wxUint16)((BMASK-addr)>>3); lr_s = (uint16_t)((BMASK-addr)>>3);
//angrylion's advice to use ul_s in texture image offset and cnt calculations. //angrylion's advice to use ul_s in texture image offset and cnt calculations.
//Helps to fix Vigilante 8 jpeg backgrounds and logos //Helps to fix Vigilante 8 jpeg backgrounds and logos
@ -2212,10 +2212,10 @@ static void rdp_loadtile()
rdp.addr[rdp.tiles[tile].t_mem] = rdp.timg.addr; rdp.addr[rdp.tiles[tile].t_mem] = rdp.timg.addr;
wxUint16 ul_s = (wxUint16)((rdp.cmd0 >> 14) & 0x03FF); uint16_t ul_s = (uint16_t)((rdp.cmd0 >> 14) & 0x03FF);
wxUint16 ul_t = (wxUint16)((rdp.cmd0 >> 2 ) & 0x03FF); uint16_t ul_t = (uint16_t)((rdp.cmd0 >> 2 ) & 0x03FF);
wxUint16 lr_s = (wxUint16)((rdp.cmd1 >> 14) & 0x03FF); uint16_t lr_s = (uint16_t)((rdp.cmd1 >> 14) & 0x03FF);
wxUint16 lr_t = (wxUint16)((rdp.cmd1 >> 2 ) & 0x03FF); uint16_t lr_t = (uint16_t)((rdp.cmd1 >> 2 ) & 0x03FF);
if (lr_s < ul_s || lr_t < ul_t) return; if (lr_s < ul_s || lr_t < ul_t) return;
@ -2254,8 +2254,8 @@ static void rdp_loadtile()
LOAD_TILE_INFO &info = rdp.load_info[rdp.tiles[tile].t_mem]; LOAD_TILE_INFO &info = rdp.load_info[rdp.tiles[tile].t_mem];
info.tile_ul_s = ul_s; info.tile_ul_s = ul_s;
info.tile_ul_t = ul_t; info.tile_ul_t = ul_t;
info.tile_width = (rdp.tiles[tile].mask_s ? min((wxUint16)width, 1<<rdp.tiles[tile].mask_s) : (wxUint16)width); info.tile_width = (rdp.tiles[tile].mask_s ? min((uint16_t)width, 1<<rdp.tiles[tile].mask_s) : (uint16_t)width);
info.tile_height = (rdp.tiles[tile].mask_t ? min((wxUint16)height, 1<<rdp.tiles[tile].mask_t) : (wxUint16)height); info.tile_height = (rdp.tiles[tile].mask_t ? min((uint16_t)height, 1<<rdp.tiles[tile].mask_t) : (uint16_t)height);
if (settings.hacks&hack_MK64) { if (settings.hacks&hack_MK64) {
if (info.tile_width%2) if (info.tile_width%2)
info.tile_width--; info.tile_width--;
@ -2308,8 +2308,8 @@ static void rdp_settile()
tile->format = (uint8_t)((rdp.cmd0 >> 21) & 0x07); tile->format = (uint8_t)((rdp.cmd0 >> 21) & 0x07);
tile->size = (uint8_t)((rdp.cmd0 >> 19) & 0x03); tile->size = (uint8_t)((rdp.cmd0 >> 19) & 0x03);
tile->line = (wxUint16)((rdp.cmd0 >> 9) & 0x01FF); tile->line = (uint16_t)((rdp.cmd0 >> 9) & 0x01FF);
tile->t_mem = (wxUint16)(rdp.cmd0 & 0x1FF); tile->t_mem = (uint16_t)(rdp.cmd0 & 0x1FF);
tile->palette = (uint8_t)((rdp.cmd1 >> 20) & 0x0F); tile->palette = (uint8_t)((rdp.cmd1 >> 20) & 0x0F);
tile->clamp_t = (uint8_t)((rdp.cmd1 >> 19) & 0x01); tile->clamp_t = (uint8_t)((rdp.cmd1 >> 19) & 0x01);
tile->mirror_t = (uint8_t)((rdp.cmd1 >> 18) & 0x01); tile->mirror_t = (uint8_t)((rdp.cmd1 >> 18) & 0x01);
@ -2669,13 +2669,13 @@ static void rdp_settextureimage()
rdp.timg.format = (uint8_t)((rdp.cmd0 >> 21) & 0x07); rdp.timg.format = (uint8_t)((rdp.cmd0 >> 21) & 0x07);
rdp.timg.size = (uint8_t)((rdp.cmd0 >> 19) & 0x03); rdp.timg.size = (uint8_t)((rdp.cmd0 >> 19) & 0x03);
rdp.timg.width = (wxUint16)(1 + (rdp.cmd0 & 0x00000FFF)); rdp.timg.width = (uint16_t)(1 + (rdp.cmd0 & 0x00000FFF));
rdp.timg.addr = segoffset(rdp.cmd1); rdp.timg.addr = segoffset(rdp.cmd1);
if (ucode5_texshiftaddr) if (ucode5_texshiftaddr)
{ {
if (rdp.timg.format == 0) if (rdp.timg.format == 0)
{ {
wxUint16 * t = (wxUint16*)(gfx.RDRAM+ucode5_texshiftaddr); uint16_t * t = (uint16_t*)(gfx.RDRAM+ucode5_texshiftaddr);
ucode5_texshift = t[ucode5_texshiftcount^1]; ucode5_texshift = t[ucode5_texshiftcount^1];
rdp.timg.addr += ucode5_texshift; rdp.timg.addr += ucode5_texshift;
} }
@ -2972,9 +2972,9 @@ static void rdp_setcolorimage()
{ {
int width = cur_fb.width; int width = cur_fb.width;
int height = cur_fb.height; int height = cur_fb.height;
wxUint16 *ptr_dst = new wxUint16[width*height]; uint16_t *ptr_dst = new uint16_t[width*height];
wxUint16 *ptr_src = (wxUint16*)(gfx.RDRAM+cur_fb.addr); uint16_t *ptr_src = (uint16_t*)(gfx.RDRAM+cur_fb.addr);
wxUint16 c; uint16_t c;
for (int y=0; y<height; y++) for (int y=0; y<height; y++)
{ {
@ -3222,7 +3222,7 @@ Emulator should not call this function again if other memory
is read within the same 4KB range is read within the same 4KB range
input: addr rdram address input: addr rdram address
val val val val
size 1 = uint8_t, 2 = wxUint16, 4 = uint32_t size 1 = uint8_t, 2 = uint16_t, 4 = uint32_t
output: none output: none
*******************************************************************/ *******************************************************************/
EXPORT void CALL FBRead(uint32_t addr) EXPORT void CALL FBRead(uint32_t addr)
@ -3302,7 +3302,7 @@ Purpose: This function is called to notify the dll that the
frame buffer has been modified by CPU at the given address. frame buffer has been modified by CPU at the given address.
input: addr rdram address input: addr rdram address
val val val val
size 1 = uint8_t, 2 = wxUint16, 4 = uint32_t size 1 = uint8_t, 2 = uint16_t, 4 = uint32_t
output: none output: none
*******************************************************************/ *******************************************************************/
EXPORT void CALL FBWrite(uint32_t addr, uint32_t /*size*/) EXPORT void CALL FBWrite(uint32_t addr, uint32_t /*size*/)

View File

@ -44,8 +44,8 @@
/******************Turbo3D microcode*************************/ /******************Turbo3D microcode*************************/
struct t3dGlobState { struct t3dGlobState {
wxUint16 pad0; uint16_t pad0;
wxUint16 perspNorm; uint16_t perspNorm;
uint32_t flag; uint32_t flag;
uint32_t othermode0; uint32_t othermode0;
uint32_t othermode1; uint32_t othermode1;
@ -149,7 +149,7 @@ static void t3d_vertex(uint32_t addr, uint32_t v0, uint32_t n)
x = (float)((short*)gfx.RDRAM)[(((addr+i) >> 1) + 0)^1]; x = (float)((short*)gfx.RDRAM)[(((addr+i) >> 1) + 0)^1];
y = (float)((short*)gfx.RDRAM)[(((addr+i) >> 1) + 1)^1]; y = (float)((short*)gfx.RDRAM)[(((addr+i) >> 1) + 1)^1];
z = (float)((short*)gfx.RDRAM)[(((addr+i) >> 1) + 2)^1]; z = (float)((short*)gfx.RDRAM)[(((addr+i) >> 1) + 2)^1];
v->flags = ((wxUint16*)gfx.RDRAM)[(((addr+i) >> 1) + 3)^1]; v->flags = ((uint16_t*)gfx.RDRAM)[(((addr+i) >> 1) + 3)^1];
v->ou = 2.0f * (float)((short*)gfx.RDRAM)[(((addr+i) >> 1) + 4)^1]; v->ou = 2.0f * (float)((short*)gfx.RDRAM)[(((addr+i) >> 1) + 4)^1];
v->ov = 2.0f * (float)((short*)gfx.RDRAM)[(((addr+i) >> 1) + 5)^1]; v->ov = 2.0f * (float)((short*)gfx.RDRAM)[(((addr+i) >> 1) + 5)^1];
v->uv_scaled = 0; v->uv_scaled = 0;

View File

@ -88,7 +88,7 @@ static void rsp_vertex(int v0, int n)
x = (float)((short*)gfx.RDRAM)[(((addr+i) >> 1) + 0)^1]; x = (float)((short*)gfx.RDRAM)[(((addr+i) >> 1) + 0)^1];
y = (float)((short*)gfx.RDRAM)[(((addr+i) >> 1) + 1)^1]; y = (float)((short*)gfx.RDRAM)[(((addr+i) >> 1) + 1)^1];
z = (float)((short*)gfx.RDRAM)[(((addr+i) >> 1) + 2)^1]; z = (float)((short*)gfx.RDRAM)[(((addr+i) >> 1) + 2)^1];
v->flags = ((wxUint16*)gfx.RDRAM)[(((addr+i) >> 1) + 3)^1]; v->flags = ((uint16_t*)gfx.RDRAM)[(((addr+i) >> 1) + 3)^1];
v->ou = (float)((short*)gfx.RDRAM)[(((addr+i) >> 1) + 4)^1]; v->ou = (float)((short*)gfx.RDRAM)[(((addr+i) >> 1) + 4)^1];
v->ov = (float)((short*)gfx.RDRAM)[(((addr+i) >> 1) + 5)^1]; v->ov = (float)((short*)gfx.RDRAM)[(((addr+i) >> 1) + 5)^1];
v->uv_scaled = 0; v->uv_scaled = 0;
@ -148,7 +148,7 @@ static void rsp_vertex(int v0, int n)
} }
} }
static void rsp_tri1(VERTEX **v, wxUint16 linew = 0) static void rsp_tri1(VERTEX **v, uint16_t linew = 0)
{ {
if (cull_tri(v)) if (cull_tri(v))
rdp.tri_n ++; rdp.tri_n ++;
@ -275,7 +275,7 @@ void load_matrix (float m[4][4], uint32_t addr)
FRDP ("matrix - addr: %08lx\n", addr); FRDP ("matrix - addr: %08lx\n", addr);
int x,y; // matrix index int x,y; // matrix index
addr >>= 1; addr >>= 1;
wxUint16 * src = (wxUint16*)gfx.RDRAM; uint16_t * src = (uint16_t*)gfx.RDRAM;
for (x=0; x<16; x+=4) { // Adding 4 instead of one, just to remove mult. later for (x=0; x<16; x+=4) { // Adding 4 instead of one, just to remove mult. later
for (y=0; y<4; y++) { for (y=0; y<4; y++) {
m[x>>2][y] = (float)( m[x>>2][y] = (float)(
@ -594,7 +594,7 @@ static void uc0_culldl()
FRDP("uc0:culldl start: %d, end: %d\n", vStart, vEnd); FRDP("uc0:culldl start: %d, end: %d\n", vStart, vEnd);
if (vEnd < vStart) return; if (vEnd < vStart) return;
for (wxUint16 i=vStart; i<=vEnd; i++) for (uint16_t i=vStart; i<=vEnd; i++)
{ {
v = &rdp.vtx[i]; v = &rdp.vtx[i];
// Check if completely off the screen (quick frustrum clipping for 90 FOV) // Check if completely off the screen (quick frustrum clipping for 90 FOV)
@ -640,7 +640,7 @@ static void uc0_popmatrix()
static void uc6_obj_sprite (); static void uc6_obj_sprite ();
static void uc0_modifyvtx(uint8_t where, wxUint16 vtx, uint32_t val) static void uc0_modifyvtx(uint8_t where, uint16_t vtx, uint32_t val)
{ {
VERTEX *v = &rdp.vtx[vtx]; VERTEX *v = &rdp.vtx[vtx];
@ -773,8 +773,8 @@ static void uc0_moveword()
case 0x0c: case 0x0c:
{ {
wxUint16 val = (wxUint16)((rdp.cmd0 >> 8) & 0xFFFF); uint16_t val = (uint16_t)((rdp.cmd0 >> 8) & 0xFFFF);
wxUint16 vtx = val / 40; uint16_t vtx = val / 40;
uint8_t where = val%40; uint8_t where = val%40;
uc0_modifyvtx(where, vtx, rdp.cmd1); uc0_modifyvtx(where, vtx, rdp.cmd1);
FRDP ("uc0:modifyvtx: vtx: %d, where: 0x%02lx, val: %08lx - ", vtx, where, rdp.cmd1); FRDP ("uc0:modifyvtx: vtx: %d, where: 0x%02lx, val: %08lx - ", vtx, where, rdp.cmd1);
@ -801,8 +801,8 @@ static void uc0_texture()
if (on) if (on)
{ {
wxUint16 s = (wxUint16)((rdp.cmd1 >> 16) & 0xFFFF); uint16_t s = (uint16_t)((rdp.cmd1 >> 16) & 0xFFFF);
wxUint16 t = (wxUint16)(rdp.cmd1 & 0xFFFF); uint16_t t = (uint16_t)(rdp.cmd1 & 0xFFFF);
TILE *tmp_tile = &rdp.tiles[tile]; TILE *tmp_tile = &rdp.tiles[tile];
tmp_tile->on = 1; tmp_tile->on = 1;
@ -1046,7 +1046,7 @@ static void uc0_line3d()
{ {
uint32_t v0 = ((rdp.cmd1 >> 16) & 0xff) / 10; uint32_t v0 = ((rdp.cmd1 >> 16) & 0xff) / 10;
uint32_t v1 = ((rdp.cmd1 >> 8) & 0xff) / 10; uint32_t v1 = ((rdp.cmd1 >> 8) & 0xff) / 10;
wxUint16 width = (wxUint16)(rdp.cmd1 & 0xFF) + 3; uint16_t width = (uint16_t)(rdp.cmd1 & 0xFF) + 3;
VERTEX *v[3] = { VERTEX *v[3] = {
&rdp.vtx[v1], &rdp.vtx[v1],

View File

@ -106,7 +106,7 @@ static void uc1_line3d()
{ {
if (!settings.force_quad3d && ((rdp.cmd1&0xFF000000) == 0) && ((rdp.cmd0&0x00FFFFFF) == 0)) if (!settings.force_quad3d && ((rdp.cmd1&0xFF000000) == 0) && ((rdp.cmd0&0x00FFFFFF) == 0))
{ {
wxUint16 width = (wxUint16)(rdp.cmd1&0xFF) + 3; uint16_t width = (uint16_t)(rdp.cmd1&0xFF) + 3;
FRDP("uc1:line3d width: %d #%d, #%d - %d, %d\n", width, rdp.tri_n, rdp.tri_n+1, FRDP("uc1:line3d width: %d #%d, #%d - %d, %d\n", width, rdp.tri_n, rdp.tri_n+1,
(rdp.cmd1 >> 17) & 0x7F, (rdp.cmd1 >> 17) & 0x7F,

View File

@ -137,7 +137,7 @@ static void uc2_vertex ()
x = (float)((short*)gfx.RDRAM)[(((addr+i) >> 1) + 0)^1]; x = (float)((short*)gfx.RDRAM)[(((addr+i) >> 1) + 0)^1];
y = (float)((short*)gfx.RDRAM)[(((addr+i) >> 1) + 1)^1]; y = (float)((short*)gfx.RDRAM)[(((addr+i) >> 1) + 1)^1];
z = (float)((short*)gfx.RDRAM)[(((addr+i) >> 1) + 2)^1]; z = (float)((short*)gfx.RDRAM)[(((addr+i) >> 1) + 2)^1];
v->flags = ((wxUint16*)gfx.RDRAM)[(((addr+i) >> 1) + 3)^1]; v->flags = ((uint16_t*)gfx.RDRAM)[(((addr+i) >> 1) + 3)^1];
v->ou = (float)((short*)gfx.RDRAM)[(((addr+i) >> 1) + 4)^1]; v->ou = (float)((short*)gfx.RDRAM)[(((addr+i) >> 1) + 4)^1];
v->ov = (float)((short*)gfx.RDRAM)[(((addr+i) >> 1) + 5)^1]; v->ov = (float)((short*)gfx.RDRAM)[(((addr+i) >> 1) + 5)^1];
v->uv_scaled = 0; v->uv_scaled = 0;
@ -220,7 +220,7 @@ static void uc2_vertex ()
static void uc2_modifyvtx () static void uc2_modifyvtx ()
{ {
uint8_t where = (uint8_t)((rdp.cmd0 >> 16) & 0xFF); uint8_t where = (uint8_t)((rdp.cmd0 >> 16) & 0xFF);
wxUint16 vtx = (wxUint16)((rdp.cmd0 >> 1) & 0xFFFF); uint16_t vtx = (uint16_t)((rdp.cmd0 >> 1) & 0xFFFF);
FRDP ("uc2:modifyvtx: vtx: %d, where: 0x%02lx, val: %08lx - ", vtx, where, rdp.cmd1); FRDP ("uc2:modifyvtx: vtx: %d, where: 0x%02lx, val: %08lx - ", vtx, where, rdp.cmd1);
uc0_modifyvtx(where, vtx, rdp.cmd1); uc0_modifyvtx(where, vtx, rdp.cmd1);
@ -228,13 +228,13 @@ static void uc2_modifyvtx ()
static void uc2_culldl () static void uc2_culldl ()
{ {
wxUint16 vStart = (wxUint16)(rdp.cmd0 & 0xFFFF) >> 1; uint16_t vStart = (uint16_t)(rdp.cmd0 & 0xFFFF) >> 1;
wxUint16 vEnd = (wxUint16)(rdp.cmd1 & 0xFFFF) >> 1; uint16_t vEnd = (uint16_t)(rdp.cmd1 & 0xFFFF) >> 1;
uint32_t cond = 0; uint32_t cond = 0;
FRDP ("uc2:culldl start: %d, end: %d\n", vStart, vEnd); FRDP ("uc2:culldl start: %d, end: %d\n", vStart, vEnd);
if (vEnd < vStart) return; if (vEnd < vStart) return;
for (wxUint16 i=vStart; i<=vEnd; i++) for (uint16_t i=vStart; i<=vEnd; i++)
{ {
/* /*
VERTEX v = &rdp.vtx[i]; VERTEX v = &rdp.vtx[i];
@ -361,7 +361,7 @@ static void uc2_line3d ()
&rdp.vtx[(rdp.cmd0 >> 9) & 0x7F], &rdp.vtx[(rdp.cmd0 >> 9) & 0x7F],
&rdp.vtx[(rdp.cmd0 >> 9) & 0x7F] &rdp.vtx[(rdp.cmd0 >> 9) & 0x7F]
}; };
wxUint16 width = (wxUint16)(rdp.cmd0 + 3)&0xFF; uint16_t width = (uint16_t)(rdp.cmd0 + 3)&0xFF;
uint32_t cull_mode = (rdp.flags & CULLMASK) >> CULLSHIFT; uint32_t cull_mode = (rdp.flags & CULLMASK) >> CULLSHIFT;
rdp.flags |= CULLMASK; rdp.flags |= CULLMASK;
rdp.update |= UPDATE_CULL_MODE; rdp.update |= UPDATE_CULL_MODE;
@ -554,7 +554,7 @@ static void uc2_matrix ()
static void uc2_moveword () static void uc2_moveword ()
{ {
uint8_t index = (uint8_t)((rdp.cmd0 >> 16) & 0xFF); uint8_t index = (uint8_t)((rdp.cmd0 >> 16) & 0xFF);
wxUint16 offset = (wxUint16)(rdp.cmd0 & 0xFFFF); uint16_t offset = (uint16_t)(rdp.cmd0 & 0xFFFF);
uint32_t data = rdp.cmd1; uint32_t data = rdp.cmd1;
FRDP ("uc2:moveword "); FRDP ("uc2:moveword ");

View File

@ -44,7 +44,7 @@
static void uc3_vertex() static void uc3_vertex()
{ {
int v0 = ((rdp.cmd0 >> 16) & 0xFF)/5; // Current vertex int v0 = ((rdp.cmd0 >> 16) & 0xFF)/5; // Current vertex
int n = (wxUint16)((rdp.cmd0&0xFFFF) + 1)/0x210; // Number to copy int n = (uint16_t)((rdp.cmd0&0xFFFF) + 1)/0x210; // Number to copy
if (v0 >= 32) if (v0 >= 32)
v0 = 31; v0 = 31;

View File

@ -118,16 +118,16 @@ void uc6_sprite2d ();
typedef struct DRAWIMAGE_t { typedef struct DRAWIMAGE_t {
float frameX; float frameX;
float frameY; float frameY;
wxUint16 frameW; uint16_t frameW;
wxUint16 frameH; uint16_t frameH;
wxUint16 imageX; uint16_t imageX;
wxUint16 imageY; uint16_t imageY;
wxUint16 imageW; uint16_t imageW;
wxUint16 imageH; uint16_t imageH;
uint32_t imagePtr; uint32_t imagePtr;
uint8_t imageFmt; uint8_t imageFmt;
uint8_t imageSiz; uint8_t imageSiz;
wxUint16 imagePal; uint16_t imagePal;
uint8_t flipX; uint8_t flipX;
uint8_t flipY; uint8_t flipY;
float scaleX; float scaleX;
@ -142,8 +142,8 @@ typedef struct DRAWOBJECT_t {
short imageW; short imageW;
short imageH; short imageH;
wxUint16 imageStride; uint16_t imageStride;
wxUint16 imageAdrs; uint16_t imageAdrs;
uint8_t imageFmt; uint8_t imageFmt;
uint8_t imageSiz; uint8_t imageSiz;
uint8_t imagePal; uint8_t imagePal;
@ -152,9 +152,9 @@ typedef struct DRAWOBJECT_t {
void DrawHiresDepthImage (const DRAWIMAGE & d) void DrawHiresDepthImage (const DRAWIMAGE & d)
{ {
wxUint16 * src = (wxUint16*)(gfx.RDRAM+d.imagePtr); uint16_t * src = (uint16_t*)(gfx.RDRAM+d.imagePtr);
wxUint16 image[512*512]; uint16_t image[512*512];
wxUint16 * dst = image; uint16_t * dst = image;
for (int h = 0; h < d.imageH; h++) for (int h = 0; h < d.imageH; h++)
{ {
for (int w = 0; w < d.imageW; w++) for (int w = 0; w < d.imageW; w++)
@ -265,8 +265,8 @@ void DrawDepthImage (const DRAWIMAGE & d)
int src_height = d.imageH; int src_height = d.imageH;
int dst_width = min(int(src_width*scale_x_dst), (int)settings.scr_res_x); int dst_width = min(int(src_width*scale_x_dst), (int)settings.scr_res_x);
int dst_height = min(int(src_height*scale_y_dst), (int)settings.scr_res_y); int dst_height = min(int(src_height*scale_y_dst), (int)settings.scr_res_y);
wxUint16 * src = (wxUint16*)(gfx.RDRAM+d.imagePtr); uint16_t * src = (uint16_t*)(gfx.RDRAM+d.imagePtr);
wxUint16 * dst = new wxUint16[dst_width*dst_height]; uint16_t * dst = new uint16_t[dst_width*dst_height];
for (int y=0; y < dst_height; y++) for (int y=0; y < dst_height; y++)
{ {
for (int x=0; x < dst_width; x++) for (int x=0; x < dst_width; x++)
@ -345,7 +345,7 @@ void DrawImage (DRAWIMAGE & d)
if (rdp.ci_width == 512 && !no_dlist) //RE2 if (rdp.ci_width == 512 && !no_dlist) //RE2
{ {
wxUint16 width = (wxUint16)(*gfx.VI_WIDTH_REG & 0xFFF); uint16_t width = (uint16_t)(*gfx.VI_WIDTH_REG & 0xFFF);
d.frameH = d.imageH = (d.frameW*d.frameH)/width; d.frameH = d.imageH = (d.frameW*d.frameH)/width;
d.frameW = d.imageW = width; d.frameW = d.imageW = width;
if (rdp.zimg == rdp.cimg) if (rdp.zimg == rdp.cimg)
@ -370,9 +370,9 @@ void DrawImage (DRAWIMAGE & d)
else else
{ {
if ( (d.frameX > 0) && (d.frameW == rdp.ci_width) ) if ( (d.frameX > 0) && (d.frameW == rdp.ci_width) )
d.frameW -= (wxUint16)(2.0f*d.frameX); d.frameW -= (uint16_t)(2.0f*d.frameX);
if ( (d.frameY > 0) && (d.frameH == rdp.ci_height) ) if ( (d.frameY > 0) && (d.frameH == rdp.ci_height) )
d.frameH -= (wxUint16)(2.0f*d.frameY); d.frameH -= (uint16_t)(2.0f*d.frameY);
} }
int ul_u = (int)d.imageX; int ul_u = (int)d.imageX;
@ -628,9 +628,9 @@ void DrawHiresImage(DRAWIMAGE & d, int screensize = FALSE)
if (!(settings.hacks&hack_PPL)) if (!(settings.hacks&hack_PPL))
{ {
if ( (d.frameX > 0) && (d.frameW == rdp.ci_width) ) if ( (d.frameX > 0) && (d.frameW == rdp.ci_width) )
d.frameW -= (wxUint16)(2.0f*d.frameX); d.frameW -= (uint16_t)(2.0f*d.frameX);
if ( (d.frameY > 0) && (d.frameH == rdp.ci_height) ) if ( (d.frameY > 0) && (d.frameH == rdp.ci_height) )
d.frameH -= (wxUint16)(2.0f*d.frameY); d.frameH -= (uint16_t)(2.0f*d.frameY);
} }
float ul_x, ul_y, ul_u, ul_v, lr_x, lr_y, lr_u, lr_v; float ul_x, ul_y, ul_u, ul_v, lr_x, lr_y, lr_u, lr_v;
@ -718,21 +718,21 @@ static void uc6_read_background_data (DRAWIMAGE & d, bool bReadScale)
{ {
uint32_t addr = segoffset(rdp.cmd1) >> 1; uint32_t addr = segoffset(rdp.cmd1) >> 1;
d.imageX = (((wxUint16 *)gfx.RDRAM)[(addr+0)^1] >> 5); // 0 d.imageX = (((uint16_t *)gfx.RDRAM)[(addr+0)^1] >> 5); // 0
d.imageW = (((wxUint16 *)gfx.RDRAM)[(addr+1)^1] >> 2); // 1 d.imageW = (((uint16_t *)gfx.RDRAM)[(addr+1)^1] >> 2); // 1
d.frameX = ((short*)gfx.RDRAM)[(addr+2)^1] / 4.0f; // 2 d.frameX = ((short*)gfx.RDRAM)[(addr+2)^1] / 4.0f; // 2
d.frameW = ((wxUint16 *)gfx.RDRAM)[(addr+3)^1] >> 2; // 3 d.frameW = ((uint16_t *)gfx.RDRAM)[(addr+3)^1] >> 2; // 3
d.imageY = (((wxUint16 *)gfx.RDRAM)[(addr+4)^1] >> 5); // 4 d.imageY = (((uint16_t *)gfx.RDRAM)[(addr+4)^1] >> 5); // 4
d.imageH = (((wxUint16 *)gfx.RDRAM)[(addr+5)^1] >> 2); // 5 d.imageH = (((uint16_t *)gfx.RDRAM)[(addr+5)^1] >> 2); // 5
d.frameY = ((short*)gfx.RDRAM)[(addr+6)^1] / 4.0f; // 6 d.frameY = ((short*)gfx.RDRAM)[(addr+6)^1] / 4.0f; // 6
d.frameH = ((wxUint16 *)gfx.RDRAM)[(addr+7)^1] >> 2; // 7 d.frameH = ((uint16_t *)gfx.RDRAM)[(addr+7)^1] >> 2; // 7
d.imagePtr = segoffset(((uint32_t*)gfx.RDRAM)[(addr+8)>>1]); // 8,9 d.imagePtr = segoffset(((uint32_t*)gfx.RDRAM)[(addr+8)>>1]); // 8,9
d.imageFmt = ((uint8_t *)gfx.RDRAM)[(((addr+11)<<1)+0)^3]; // 11 d.imageFmt = ((uint8_t *)gfx.RDRAM)[(((addr+11)<<1)+0)^3]; // 11
d.imageSiz = ((uint8_t *)gfx.RDRAM)[(((addr+11)<<1)+1)^3]; // | d.imageSiz = ((uint8_t *)gfx.RDRAM)[(((addr+11)<<1)+1)^3]; // |
d.imagePal = ((wxUint16 *)gfx.RDRAM)[(addr+12)^1]; // 12 d.imagePal = ((uint16_t *)gfx.RDRAM)[(addr+12)^1]; // 12
wxUint16 imageFlip = ((wxUint16 *)gfx.RDRAM)[(addr+13)^1]; // 13; uint16_t imageFlip = ((uint16_t *)gfx.RDRAM)[(addr+13)^1]; // 13;
d.flipX = (uint8_t)imageFlip&0x01; d.flipX = (uint8_t)imageFlip&0x01;
if (bReadScale) if (bReadScale)
@ -1000,14 +1000,14 @@ static void uc6_read_object_data (DRAWOBJECT & d)
uint32_t addr = segoffset(rdp.cmd1) >> 1; uint32_t addr = segoffset(rdp.cmd1) >> 1;
d.objX = ((short*)gfx.RDRAM)[(addr+0)^1] / 4.0f; // 0 d.objX = ((short*)gfx.RDRAM)[(addr+0)^1] / 4.0f; // 0
d.scaleW = ((wxUint16 *)gfx.RDRAM)[(addr+1)^1] / 1024.0f; // 1 d.scaleW = ((uint16_t *)gfx.RDRAM)[(addr+1)^1] / 1024.0f; // 1
d.imageW = ((short*)gfx.RDRAM)[(addr+2)^1] >> 5; // 2, 3 is padding d.imageW = ((short*)gfx.RDRAM)[(addr+2)^1] >> 5; // 2, 3 is padding
d.objY = ((short*)gfx.RDRAM)[(addr+4)^1] / 4.0f; // 4 d.objY = ((short*)gfx.RDRAM)[(addr+4)^1] / 4.0f; // 4
d.scaleH = ((wxUint16 *)gfx.RDRAM)[(addr+5)^1] / 1024.0f; // 5 d.scaleH = ((uint16_t *)gfx.RDRAM)[(addr+5)^1] / 1024.0f; // 5
d.imageH = ((short*)gfx.RDRAM)[(addr+6)^1] >> 5; // 6, 7 is padding d.imageH = ((short*)gfx.RDRAM)[(addr+6)^1] >> 5; // 6, 7 is padding
d.imageStride = ((wxUint16 *)gfx.RDRAM)[(addr+8)^1]; // 8 d.imageStride = ((uint16_t *)gfx.RDRAM)[(addr+8)^1]; // 8
d.imageAdrs = ((wxUint16 *)gfx.RDRAM)[(addr+9)^1]; // 9 d.imageAdrs = ((uint16_t *)gfx.RDRAM)[(addr+9)^1]; // 9
d.imageFmt = ((uint8_t *)gfx.RDRAM)[(((addr+10)<<1)+0)^3]; // 10 d.imageFmt = ((uint8_t *)gfx.RDRAM)[(((addr+10)<<1)+0)^3]; // 10
d.imageSiz = ((uint8_t *)gfx.RDRAM)[(((addr+10)<<1)+1)^3]; // | d.imageSiz = ((uint8_t *)gfx.RDRAM)[(((addr+10)<<1)+1)^3]; // |
d.imagePal = ((uint8_t *)gfx.RDRAM)[(((addr+10)<<1)+2)^3]; // 11 d.imagePal = ((uint8_t *)gfx.RDRAM)[(((addr+10)<<1)+2)^3]; // 11
@ -1194,8 +1194,8 @@ static void uc6_obj_movemem ()
mat_2d.D = ((int*)gfx.RDRAM)[(addr+6)>>1] / 65536.0f; mat_2d.D = ((int*)gfx.RDRAM)[(addr+6)>>1] / 65536.0f;
mat_2d.X = ((short*)gfx.RDRAM)[(addr+8)^1] / 4.0f; mat_2d.X = ((short*)gfx.RDRAM)[(addr+8)^1] / 4.0f;
mat_2d.Y = ((short*)gfx.RDRAM)[(addr+9)^1] / 4.0f; mat_2d.Y = ((short*)gfx.RDRAM)[(addr+9)^1] / 4.0f;
mat_2d.BaseScaleX = ((wxUint16*)gfx.RDRAM)[(addr+10)^1] / 1024.0f; mat_2d.BaseScaleX = ((uint16_t*)gfx.RDRAM)[(addr+10)^1] / 1024.0f;
mat_2d.BaseScaleY = ((wxUint16*)gfx.RDRAM)[(addr+11)^1] / 1024.0f; mat_2d.BaseScaleY = ((uint16_t*)gfx.RDRAM)[(addr+11)^1] / 1024.0f;
FRDP ("mat_2d\nA: %f, B: %f, c: %f, D: %f\nX: %f, Y: %f\nBaseScaleX: %f, BaseScaleY: %f\n", FRDP ("mat_2d\nA: %f, B: %f, c: %f, D: %f\nX: %f, Y: %f\nBaseScaleX: %f, BaseScaleY: %f\n",
mat_2d.A, mat_2d.B, mat_2d.C, mat_2d.D, mat_2d.X, mat_2d.Y, mat_2d.BaseScaleX, mat_2d.BaseScaleY); mat_2d.A, mat_2d.B, mat_2d.C, mat_2d.D, mat_2d.X, mat_2d.Y, mat_2d.BaseScaleX, mat_2d.BaseScaleY);
@ -1203,8 +1203,8 @@ static void uc6_obj_movemem ()
else if (index == 2) { // movemem submatrix else if (index == 2) { // movemem submatrix
mat_2d.X = ((short*)gfx.RDRAM)[(addr+0)^1] / 4.0f; mat_2d.X = ((short*)gfx.RDRAM)[(addr+0)^1] / 4.0f;
mat_2d.Y = ((short*)gfx.RDRAM)[(addr+1)^1] / 4.0f; mat_2d.Y = ((short*)gfx.RDRAM)[(addr+1)^1] / 4.0f;
mat_2d.BaseScaleX = ((wxUint16*)gfx.RDRAM)[(addr+2)^1] / 1024.0f; mat_2d.BaseScaleX = ((uint16_t*)gfx.RDRAM)[(addr+2)^1] / 1024.0f;
mat_2d.BaseScaleY = ((wxUint16*)gfx.RDRAM)[(addr+3)^1] / 1024.0f; mat_2d.BaseScaleY = ((uint16_t*)gfx.RDRAM)[(addr+3)^1] / 1024.0f;
FRDP ("submatrix\nX: %f, Y: %f\nBaseScaleX: %f, BaseScaleY: %f\n", FRDP ("submatrix\nX: %f, Y: %f\nBaseScaleX: %f, BaseScaleY: %f\n",
mat_2d.X, mat_2d.Y, mat_2d.BaseScaleX, mat_2d.BaseScaleY); mat_2d.X, mat_2d.Y, mat_2d.BaseScaleX, mat_2d.BaseScaleY);
@ -1223,7 +1223,7 @@ static void uc6_obj_rendermode ()
RDP_E ("uc6:obj_rendermode\n"); RDP_E ("uc6:obj_rendermode\n");
} }
static wxUint16 uc6_yuv_to_rgba(uint8_t y, uint8_t u, uint8_t v) static uint16_t uc6_yuv_to_rgba(uint8_t y, uint8_t u, uint8_t v)
{ {
float r = y + (1.370705f * (v-128)); float r = y + (1.370705f * (v-128));
float g = y - (0.698001f * (v-128)) - (0.337633f * (u-128)); float g = y - (0.698001f * (v-128)) - (0.337633f * (u-128));
@ -1239,13 +1239,13 @@ static wxUint16 uc6_yuv_to_rgba(uint8_t y, uint8_t u, uint8_t v)
if (g < 0) g = 0; if (g < 0) g = 0;
if (b < 0) b = 0; if (b < 0) b = 0;
wxUint16 c = (wxUint16)(((wxUint16)(r) << 11) | uint16_t c = (uint16_t)(((uint16_t)(r) << 11) |
((wxUint16)(g) << 6) | ((uint16_t)(g) << 6) |
((wxUint16)(b) << 1) | 1); ((uint16_t)(b) << 1) | 1);
return c; return c;
} }
static void uc6_DrawYUVImageToFrameBuffer(wxUint16 ul_x, wxUint16 ul_y, wxUint16 lr_x, wxUint16 lr_y) static void uc6_DrawYUVImageToFrameBuffer(uint16_t ul_x, uint16_t ul_y, uint16_t lr_x, uint16_t lr_y)
{ {
FRDP ("uc6:DrawYUVImageToFrameBuffer ul_x%d, ul_y%d, lr_x%d, lr_y%d\n", ul_x, ul_y, lr_x, lr_y); FRDP ("uc6:DrawYUVImageToFrameBuffer ul_x%d, ul_y%d, lr_x%d, lr_y%d\n", ul_x, ul_y, lr_x, lr_y);
uint32_t ci_width = rdp.ci_width; uint32_t ci_width = rdp.ci_width;
@ -1260,12 +1260,12 @@ static void uc6_DrawYUVImageToFrameBuffer(wxUint16 ul_x, wxUint16 ul_y, wxUint16
if (lr_y > ci_height) if (lr_y > ci_height)
height = ci_height - ul_y; height = ci_height - ul_y;
uint32_t * mb = (uint32_t*)(gfx.RDRAM+rdp.timg.addr); //pointer to the first macro block uint32_t * mb = (uint32_t*)(gfx.RDRAM+rdp.timg.addr); //pointer to the first macro block
wxUint16 * dst = (wxUint16*)(gfx.RDRAM+rdp.cimg); uint16_t * dst = (uint16_t*)(gfx.RDRAM+rdp.cimg);
dst += ul_x + ul_y * ci_width; dst += ul_x + ul_y * ci_width;
//yuv macro block contains 16x16 texture. we need to put it in the proper place inside cimg //yuv macro block contains 16x16 texture. we need to put it in the proper place inside cimg
for (wxUint16 h = 0; h < 16; h++) for (uint16_t h = 0; h < 16; h++)
{ {
for (wxUint16 w = 0; w < 16; w+=2) for (uint16_t w = 0; w < 16; w+=2)
{ {
uint32_t t = *(mb++); //each uint32_t contains 2 pixels uint32_t t = *(mb++); //each uint32_t contains 2 pixels
if ((h < height) && (w < width)) //clipping. texture image may be larger than color image if ((h < height) && (w < width)) //clipping. texture image may be larger than color image
@ -1294,7 +1294,7 @@ static void uc6_obj_rectangle_r ()
float lr_x = (d.objX + d.imageW/d.scaleW)/mat_2d.BaseScaleX + mat_2d.X; float lr_x = (d.objX + d.imageW/d.scaleW)/mat_2d.BaseScaleX + mat_2d.X;
float ul_y = d.objY/mat_2d.BaseScaleY + mat_2d.Y; float ul_y = d.objY/mat_2d.BaseScaleY + mat_2d.Y;
float lr_y = (d.objY + d.imageH/d.scaleH)/mat_2d.BaseScaleY + mat_2d.Y; float lr_y = (d.objY + d.imageH/d.scaleH)/mat_2d.BaseScaleY + mat_2d.Y;
uc6_DrawYUVImageToFrameBuffer((wxUint16)ul_x, (wxUint16)ul_y, (wxUint16)lr_x, (wxUint16)lr_y); uc6_DrawYUVImageToFrameBuffer((uint16_t)ul_x, (uint16_t)ul_y, (uint16_t)lr_x, (uint16_t)lr_y);
rdp.tri_n += 2; rdp.tri_n += 2;
return; return;
} }
@ -1364,17 +1364,17 @@ static void uc6_obj_loadtxtr ()
if (type == 0x00000030) { // TLUT if (type == 0x00000030) { // TLUT
uint32_t image = segoffset(((uint32_t*)gfx.RDRAM)[(addr + 2) >> 1]); // 2, 3 uint32_t image = segoffset(((uint32_t*)gfx.RDRAM)[(addr + 2) >> 1]); // 2, 3
wxUint16 phead = ((wxUint16 *)gfx.RDRAM)[(addr + 4) ^ 1] - 256; // 4 uint16_t phead = ((uint16_t *)gfx.RDRAM)[(addr + 4) ^ 1] - 256; // 4
wxUint16 pnum = ((wxUint16 *)gfx.RDRAM)[(addr + 5) ^ 1] + 1; // 5 uint16_t pnum = ((uint16_t *)gfx.RDRAM)[(addr + 5) ^ 1] + 1; // 5
FRDP ("palette addr: %08lx, start: %d, num: %d\n", image, phead, pnum); FRDP ("palette addr: %08lx, start: %d, num: %d\n", image, phead, pnum);
load_palette (image, phead, pnum); load_palette (image, phead, pnum);
} }
else if (type == 0x00001033) { // TxtrBlock else if (type == 0x00001033) { // TxtrBlock
uint32_t image = segoffset(((uint32_t*)gfx.RDRAM)[(addr + 2) >> 1]); // 2, 3 uint32_t image = segoffset(((uint32_t*)gfx.RDRAM)[(addr + 2) >> 1]); // 2, 3
wxUint16 tmem = ((wxUint16 *)gfx.RDRAM)[(addr + 4) ^ 1]; // 4 uint16_t tmem = ((uint16_t *)gfx.RDRAM)[(addr + 4) ^ 1]; // 4
wxUint16 tsize = ((wxUint16 *)gfx.RDRAM)[(addr + 5) ^ 1]; // 5 uint16_t tsize = ((uint16_t *)gfx.RDRAM)[(addr + 5) ^ 1]; // 5
wxUint16 tline = ((wxUint16 *)gfx.RDRAM)[(addr + 6) ^ 1]; // 6 uint16_t tline = ((uint16_t *)gfx.RDRAM)[(addr + 6) ^ 1]; // 6
FRDP ("addr: %08lx, tmem: %08lx, size: %d\n", image, tmem, tsize); FRDP ("addr: %08lx, tmem: %08lx, size: %d\n", image, tmem, tsize);
rdp.timg.addr = image; rdp.timg.addr = image;
@ -1390,9 +1390,9 @@ static void uc6_obj_loadtxtr ()
else if (type == 0x00fc1034) else if (type == 0x00fc1034)
{ {
uint32_t image = segoffset(((uint32_t*)gfx.RDRAM)[(addr + 2) >> 1]); // 2, 3 uint32_t image = segoffset(((uint32_t*)gfx.RDRAM)[(addr + 2) >> 1]); // 2, 3
wxUint16 tmem = ((wxUint16 *)gfx.RDRAM)[(addr + 4) ^ 1]; // 4 uint16_t tmem = ((uint16_t *)gfx.RDRAM)[(addr + 4) ^ 1]; // 4
wxUint16 twidth = ((wxUint16 *)gfx.RDRAM)[(addr + 5) ^ 1]; // 5 uint16_t twidth = ((uint16_t *)gfx.RDRAM)[(addr + 5) ^ 1]; // 5
wxUint16 theight = ((wxUint16 *)gfx.RDRAM)[(addr + 6) ^ 1]; // 6 uint16_t theight = ((uint16_t *)gfx.RDRAM)[(addr + 6) ^ 1]; // 6
FRDP ("tile addr: %08lx, tmem: %08lx, twidth: %d, theight: %d\n", image, tmem, twidth, theight); FRDP ("tile addr: %08lx, tmem: %08lx, twidth: %d, theight: %d\n", image, tmem, twidth, theight);
@ -1473,14 +1473,14 @@ void uc6_sprite2d ()
DRAWIMAGE d; DRAWIMAGE d;
d.imagePtr = segoffset(((uint32_t*)gfx.RDRAM)[(addr+0)>>1]); // 0,1 d.imagePtr = segoffset(((uint32_t*)gfx.RDRAM)[(addr+0)>>1]); // 0,1
wxUint16 stride = (((wxUint16 *)gfx.RDRAM)[(addr+4)^1]); // 4 uint16_t stride = (((uint16_t *)gfx.RDRAM)[(addr+4)^1]); // 4
d.imageW = (((wxUint16 *)gfx.RDRAM)[(addr+5)^1]); // 5 d.imageW = (((uint16_t *)gfx.RDRAM)[(addr+5)^1]); // 5
d.imageH = (((wxUint16 *)gfx.RDRAM)[(addr+6)^1]); // 6 d.imageH = (((uint16_t *)gfx.RDRAM)[(addr+6)^1]); // 6
d.imageFmt = ((uint8_t *)gfx.RDRAM)[(((addr+7)<<1)+0)^3]; // 7 d.imageFmt = ((uint8_t *)gfx.RDRAM)[(((addr+7)<<1)+0)^3]; // 7
d.imageSiz = ((uint8_t *)gfx.RDRAM)[(((addr+7)<<1)+1)^3]; // | d.imageSiz = ((uint8_t *)gfx.RDRAM)[(((addr+7)<<1)+1)^3]; // |
d.imagePal = 0; d.imagePal = 0;
d.imageX = (((wxUint16 *)gfx.RDRAM)[(addr+8)^1]); // 8 d.imageX = (((uint16_t *)gfx.RDRAM)[(addr+8)^1]); // 8
d.imageY = (((wxUint16 *)gfx.RDRAM)[(addr+9)^1]); // 9 d.imageY = (((uint16_t *)gfx.RDRAM)[(addr+9)^1]); // 9
uint32_t tlut = ((uint32_t*)gfx.RDRAM)[(addr + 2) >> 1]; // 2, 3 uint32_t tlut = ((uint32_t*)gfx.RDRAM)[(addr + 2) >> 1]; // 2, 3
//low-level implementation of sprite2d apparently calls setothermode command to set tlut mode //low-level implementation of sprite2d apparently calls setothermode command to set tlut mode
//However, description of sprite2d microcode just says that //However, description of sprite2d microcode just says that
@ -1531,8 +1531,8 @@ void uc6_sprite2d ()
d.frameX = ((short)((cmd1>>16)&0xFFFF)) / 4.0f; d.frameX = ((short)((cmd1>>16)&0xFFFF)) / 4.0f;
d.frameY = ((short)(cmd1&0xFFFF)) / 4.0f; d.frameY = ((short)(cmd1&0xFFFF)) / 4.0f;
d.frameW = (wxUint16) (d.imageW / d.scaleX); d.frameW = (uint16_t) (d.imageW / d.scaleX);
d.frameH = (wxUint16) (d.imageH / d.scaleY); d.frameH = (uint16_t) (d.imageH / d.scaleY);
if (settings.hacks&hack_WCWnitro) if (settings.hacks&hack_WCWnitro)
{ {
int scaleY = (int)d.scaleY; int scaleY = (int)d.scaleY;
@ -1565,7 +1565,7 @@ void uc6_sprite2d ()
} }
else else
{ {
wxUint16 line = d.imageW; uint16_t line = d.imageW;
if (line & 7) line += 8; // round up if (line & 7) line += 8; // round up
line >>= 3; line >>= 3;
if (d.imageSiz == 0) if (d.imageSiz == 0)

View File

@ -56,7 +56,7 @@ typedef struct
{ {
short y; short y;
short x; short x;
wxUint16 idx; uint16_t idx;
short z; short z;

View File

@ -90,7 +90,7 @@ static void uc8_vertex ()
x = (float)((short*)gfx.RDRAM)[(((addr+i) >> 1) + 0)^1]; x = (float)((short*)gfx.RDRAM)[(((addr+i) >> 1) + 0)^1];
y = (float)((short*)gfx.RDRAM)[(((addr+i) >> 1) + 1)^1]; y = (float)((short*)gfx.RDRAM)[(((addr+i) >> 1) + 1)^1];
z = (float)((short*)gfx.RDRAM)[(((addr+i) >> 1) + 2)^1]; z = (float)((short*)gfx.RDRAM)[(((addr+i) >> 1) + 2)^1];
v->flags = ((wxUint16*)gfx.RDRAM)[(((addr+i) >> 1) + 3)^1]; v->flags = ((uint16_t*)gfx.RDRAM)[(((addr+i) >> 1) + 3)^1];
v->ou = (float)((short*)gfx.RDRAM)[(((addr+i) >> 1) + 4)^1]; v->ou = (float)((short*)gfx.RDRAM)[(((addr+i) >> 1) + 4)^1];
v->ov = (float)((short*)gfx.RDRAM)[(((addr+i) >> 1) + 5)^1]; v->ov = (float)((short*)gfx.RDRAM)[(((addr+i) >> 1) + 5)^1];
v->uv_scaled = 0; v->uv_scaled = 0;
@ -236,7 +236,7 @@ static void uc8_vertex ()
static void uc8_moveword () static void uc8_moveword ()
{ {
uint8_t index = (uint8_t)((rdp.cmd0 >> 16) & 0xFF); uint8_t index = (uint8_t)((rdp.cmd0 >> 16) & 0xFF);
wxUint16 offset = (wxUint16)(rdp.cmd0 & 0xFFFF); uint16_t offset = (uint16_t)(rdp.cmd0 & 0xFFFF);
uint32_t data = rdp.cmd1; uint32_t data = rdp.cmd1;
FRDP ("uc8:moveword "); FRDP ("uc8:moveword ");
@ -417,7 +417,7 @@ static void uc8_movemem ()
#ifdef EXTREME_LOGGING #ifdef EXTREME_LOGGING
for (int t=0; t < 24; t++) for (int t=0; t < 24; t++)
{ {
FRDP ("light[%d] = 0x%04lx \n", t, ((wxUint16*)gfx.RDRAM)[(a+t)^1]); FRDP ("light[%d] = 0x%04lx \n", t, ((uint16_t*)gfx.RDRAM)[(a+t)^1]);
} }
#endif #endif
} }
@ -438,7 +438,7 @@ static void uc8_movemem ()
uint32_t a = uc8_normale_addr >> 1; uint32_t a = uc8_normale_addr >> 1;
for (i = 0; i < 32; i++) for (i = 0; i < 32; i++)
{ {
FRDP ("n[%d] = 0x%04lx \n", i, ((wxUint16*)gfx.RDRAM)[(a+i)^1]); FRDP ("n[%d] = 0x%04lx \n", i, ((uint16_t*)gfx.RDRAM)[(a+i)^1]);
} }
#endif #endif
} }

View File

@ -59,7 +59,7 @@ static int Calc_invw (int w) {
wxInt32 W; wxInt32 W;
uint32_t UW; uint32_t UW;
wxInt16 HW[2]; wxInt16 HW[2];
wxUint16 UHW[2]; uint16_t UHW[2];
} Result; } Result;
Result.W = w; Result.W = w;
if (Result.UW == 0) { if (Result.UW == 0) {

View File

@ -73,8 +73,8 @@ static void fb_bg_copy ()
if (status == ci_main) if (status == ci_main)
{ {
wxUint16 frameW = ((wxUint16 *)gfx.RDRAM)[(addr+3)^1] >> 2; uint16_t frameW = ((uint16_t *)gfx.RDRAM)[(addr+3)^1] >> 2;
wxUint16 frameH = ((wxUint16 *)gfx.RDRAM)[(addr+7)^1] >> 2; uint16_t frameH = ((uint16_t *)gfx.RDRAM)[(addr+7)^1] >> 2;
if ( (frameW == rdp.frame_buffers[rdp.ci_count-1].width) && (frameH == rdp.frame_buffers[rdp.ci_count-1].height) ) if ( (frameW == rdp.frame_buffers[rdp.ci_count-1].width) && (frameH == rdp.frame_buffers[rdp.ci_count-1].height) )
rdp.main_ci_bg = imagePtr; rdp.main_ci_bg = imagePtr;
} }