notaz.gp2x.de
/
pcsx_rearmed.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
standalone: allow lightrec for testing
[pcsx_rearmed.git]
/
plugins
/
dfxvideo
/
soft.c
diff --git
a/plugins/dfxvideo/soft.c
b/plugins/dfxvideo/soft.c
index
160b0c4
..
70cf50c
100644
(file)
--- a/
plugins/dfxvideo/soft.c
+++ b/
plugins/dfxvideo/soft.c
@@
-292,7
+292,7
@@
static inline void GetShadeTransCol32(uint32_t * pdest,uint32_t color)
{
int32_t sr,sb,sg,src,sbc,sgc,c;
src=XCOL1(color);sbc=XCOL2(color);sgc=XCOL3(color);
{
int32_t sr,sb,sg,src,sbc,sgc,c;
src=XCOL1(color);sbc=XCOL2(color);sgc=XCOL3(color);
- c=
GETLE32(pdest)>>16
;
+ c=
HIWORD(GETLE32(pdest))
;
sr=(XCOL1(c))-src; if(sr&0x8000) sr=0;
sb=(XCOL2(c))-sbc; if(sb&0x8000) sb=0;
sg=(XCOL3(c))-sgc; if(sg&0x8000) sg=0;
sr=(XCOL1(c))-src; if(sr&0x8000) sr=0;
sb=(XCOL2(c))-sbc; if(sb&0x8000) sb=0;
sg=(XCOL3(c))-sgc; if(sg&0x8000) sg=0;
@@
-327,8
+327,8
@@
static inline void GetShadeTransCol32(uint32_t * pdest,uint32_t color)
{
uint32_t ma=GETLE32(pdest);
PUTLE32(pdest, (X32PSXCOL(r,g,b))|lSetMask);//0x80008000;
{
uint32_t ma=GETLE32(pdest);
PUTLE32(pdest, (X32PSXCOL(r,g,b))|lSetMask);//0x80008000;
- if(ma&0x80000000) PUTLE32(pdest, (ma&0xFFFF0000)|(
*pdest
&0xFFFF));
- if(ma&0x00008000) PUTLE32(pdest, (ma&0xFFFF) |(
*pdest
&0xFFFF0000));
+ if(ma&0x80000000) PUTLE32(pdest, (ma&0xFFFF0000)|(
GETLE32(pdest)
&0xFFFF));
+ if(ma&0x00008000) PUTLE32(pdest, (ma&0xFFFF) |(
GETLE32(pdest)
&0xFFFF0000));
return;
}
PUTLE32(pdest, (X32PSXCOL(r,g,b))|lSetMask);//0x80008000;
return;
}
PUTLE32(pdest, (X32PSXCOL(r,g,b))|lSetMask);//0x80008000;
@@
-950,7
+950,7
@@
static void FillSoftwareAreaTrans(short x0,short y0,short x1, // FILL AREA TRANS
{
static int iCheat=0;
col+=iCheat;
{
static int iCheat=0;
col+=iCheat;
- i
f(iCheat==1) iCheat=0; else iCheat=
1;
+ i
Cheat ^=
1;
}
}
@@
-971,7
+971,7
@@
static void FillSoftwareAreaTrans(short x0,short y0,short x1, // FILL AREA TRANS
{
uint32_t *DSTPtr;
unsigned short LineOffset;
{
uint32_t *DSTPtr;
unsigned short LineOffset;
- uint32_t lcol
=lSetMask|(((uint32_t)(col))<<16)|col
;
+ uint32_t lcol
= HOST2LE32(lSetMask | (((uint32_t)(col)) << 16) | col)
;
dx>>=1;
DSTPtr = (uint32_t *)(psxVuw + (1024*y0) + x0);
LineOffset = 512 - dx;
dx>>=1;
DSTPtr = (uint32_t *)(psxVuw + (1024*y0) + x0);
LineOffset = 512 - dx;
@@
-980,7
+980,7
@@
static void FillSoftwareAreaTrans(short x0,short y0,short x1, // FILL AREA TRANS
{
for(i=0;i<dy;i++)
{
{
for(i=0;i<dy;i++)
{
- for(j=0;j<dx;j++) {
PUTLE32(DSTPtr, lcol); DSTPtr++
; }
+ for(j=0;j<dx;j++) {
*DSTPtr++ = lcol
; }
DSTPtr += LineOffset;
}
}
DSTPtr += LineOffset;
}
}
@@
-1035,14
+1035,14
@@
static void FillSoftwareArea(short x0,short y0,short x1, // FILL AREA (BLK
{
uint32_t *DSTPtr;
unsigned short LineOffset;
{
uint32_t *DSTPtr;
unsigned short LineOffset;
- uint32_t lcol
=(((int32_t)col)<<16)|col
;
+ uint32_t lcol
= HOST2LE32((((uint32_t)(col)) << 16) | col)
;
dx>>=1;
DSTPtr = (uint32_t *)(psxVuw + (1024*y0) + x0);
LineOffset = 512 - dx;
for(i=0;i<dy;i++)
{
dx>>=1;
DSTPtr = (uint32_t *)(psxVuw + (1024*y0) + x0);
LineOffset = 512 - dx;
for(i=0;i<dy;i++)
{
- for(j=0;j<dx;j++) {
PUTLE32(DSTPtr, lcol); DSTPtr++
; }
+ for(j=0;j<dx;j++) {
*DSTPtr++ = lcol
; }
DSTPtr += LineOffset;
}
}
DSTPtr += LineOffset;
}
}
@@
-7092,7
+7092,7
@@
static void DrawSoftwareLineShade(int32_t rgb0, int32_t rgb1)
{
short x0, y0, x1, y1, xt, yt;
int32_t rgbt;
{
short x0, y0, x1, y1, xt, yt;
int32_t rgbt;
-
double m,
dy, dx;
+
int
dy, dx;
if (lx0 > drawW && lx1 > drawW) return;
if (ly0 > drawH && ly1 > drawH) return;
if (lx0 > drawW && lx1 > drawW) return;
if (ly0 > drawH && ly1 > drawH) return;
@@
-7142,17
+7142,15
@@
static void DrawSoftwareLineShade(int32_t rgb0, int32_t rgb1)
dy = y1 - y0;
}
dy = y1 - y0;
}
- m = dy / dx;
-
- if (m >= 0)
+ if ((dx >= 0 && dy >= 0) || (dx < 0 && dy < 0))
{
{
- if (
m > 1
)
+ if (
abs(dy) > abs(dx)
)
Line_S_SE_Shade(x0, y0, x1, y1, rgb0, rgb1);
else
Line_E_SE_Shade(x0, y0, x1, y1, rgb0, rgb1);
}
else
Line_S_SE_Shade(x0, y0, x1, y1, rgb0, rgb1);
else
Line_E_SE_Shade(x0, y0, x1, y1, rgb0, rgb1);
}
else
- if (
m < -1
)
+ if (
abs(dy) > abs(dx)
)
Line_N_NE_Shade(x0, y0, x1, y1, rgb0, rgb1);
else
Line_E_NE_Shade(x0, y0, x1, y1, rgb0, rgb1);
Line_N_NE_Shade(x0, y0, x1, y1, rgb0, rgb1);
else
Line_E_NE_Shade(x0, y0, x1, y1, rgb0, rgb1);
@@
-7164,7
+7162,7
@@
static void DrawSoftwareLineShade(int32_t rgb0, int32_t rgb1)
static void DrawSoftwareLineFlat(int32_t rgb)
{
short x0, y0, x1, y1, xt, yt;
static void DrawSoftwareLineFlat(int32_t rgb)
{
short x0, y0, x1, y1, xt, yt;
-
double m,
dy, dx;
+
int
dy, dx;
unsigned short colour = 0;
if (lx0 > drawW && lx1 > drawW) return;
unsigned short colour = 0;
if (lx0 > drawW && lx1 > drawW) return;
@@
-7216,17
+7214,15
@@
static void DrawSoftwareLineFlat(int32_t rgb)
dy = y1 - y0;
}
dy = y1 - y0;
}
- m = dy/dx;
-
- if (m >= 0)
+ if ((dx >= 0 && dy >= 0) || (dx < 0 && dy < 0))
{
{
- if (
m > 1
)
+ if (
abs(dy) > abs(dx)
)
Line_S_SE_Flat(x0, y0, x1, y1, colour);
else
Line_E_SE_Flat(x0, y0, x1, y1, colour);
}
else
Line_S_SE_Flat(x0, y0, x1, y1, colour);
else
Line_E_SE_Flat(x0, y0, x1, y1, colour);
}
else
- if (
m < -1
)
+ if (
abs(dy) > abs(dx)
)
Line_N_NE_Flat(x0, y0, x1, y1, colour);
else
Line_E_NE_Flat(x0, y0, x1, y1, colour);
Line_N_NE_Flat(x0, y0, x1, y1, colour);
else
Line_E_NE_Flat(x0, y0, x1, y1, colour);