git-svn-id: https://pcsxr.svn.codeplex.com/svn/pcsxr@45449 e17a0e51-4ae3-4d35-97c3-1a29b211df97
This commit is contained in:
parent
ad59e35254
commit
8c939ea635
8
AUTHORS
8
AUTHORS
|
@ -19,13 +19,13 @@ df Copyright: (C) 2005 Ryan Schultz
|
|||
(C) 2007 Stephen Chao
|
||||
(C) 2006 Marcus Comstedt
|
||||
|
||||
PCSX-Reloaded Maintainer: Wei Mingzhi <whistler@openoffice.org>
|
||||
PCSX-Reloaded Maintainer: Wei Mingzhi <whistler_wmz@users.sf.net>
|
||||
|
||||
PCSX-Reloaded Contributors: avlex (Help on xcode project)
|
||||
dario86 (Various bugfixes)
|
||||
edgbla (Bugfix)
|
||||
Gabriele Gorla (Rewritten MDEC decoder)
|
||||
maggix (Leopard compilation fix)
|
||||
edgbla (Various core/plugin fixes)
|
||||
Gabriele Gorla (MDEC decoder)
|
||||
maggix (Snow Leopard compile fix)
|
||||
NeToU (Bugfix)
|
||||
Peter Collingbourne (Various core/psxbios fixes)
|
||||
shalma (Various core fixes)
|
||||
|
|
|
@ -1,3 +1,11 @@
|
|||
April 15, 2010 Wei Mingzhi <whistler_wmz@users.sf.net>
|
||||
|
||||
* plugins/dfsound/freeze.c: Fixed the sound doesn't always play properly
|
||||
after loading the state. (Thanks edgbla)
|
||||
* libpcsxcore/psxmem.c: Fixed KKND freeze at startup. (edgbla)
|
||||
* libpcsxcore/gte.c: Fixed gteDCPL. (edgbla)
|
||||
* AUTHORS: Updated info.
|
||||
|
||||
April 14, 2010 Wei Mingzhi <whistler_wmz@users.sf.net>
|
||||
|
||||
* libpcsxcore/gte.c: Use u32 instead of unsigned long.
|
||||
|
|
|
@ -157,8 +157,8 @@
|
|||
#define GTE_MX(op) ((op >> 17) & 3)
|
||||
#define GTE_V(op) ((op >> 15) & 3)
|
||||
#define GTE_CV(op) ((op >> 13) & 3)
|
||||
#define GTE_CD(op) ((op >> 11 ) & 3) /* not used */
|
||||
#define GTE_LM(op) ((op >> 10 ) & 1)
|
||||
#define GTE_CD(op) ((op >> 11) & 3) /* not used */
|
||||
#define GTE_LM(op) ((op >> 10) & 1)
|
||||
#define GTE_CT(op) ((op >> 6) & 15) /* not used */
|
||||
#define GTE_FUNCT(op) (op & 63)
|
||||
#define INS_COFUN(op) (op & 0x1ffffff)
|
||||
|
@ -191,10 +191,10 @@ static inline s32 LIM(s32 value, s32 max, s32 min, u32 flag) {
|
|||
#define A3(a) BOUNDS((a), 0x7fffffff, (1 << 28), -(s64)0x80000000, (1 << 31) | (1 << 25))
|
||||
#define limB1(a, l) LIM((a), 0x7fff, -0x8000 * !l, (1 << 31) | (1 << 24))
|
||||
#define limB2(a, l) LIM((a), 0x7fff, -0x8000 * !l, (1 << 31) | (1 << 23))
|
||||
#define limB3(a, l) LIM((a), 0x7fff, -0x8000 * !l, (1 << 22) )
|
||||
#define limC1(a) LIM((a), 0x00ff, 0x0000, (1 << 21) )
|
||||
#define limC2(a) LIM((a), 0x00ff, 0x0000, (1 << 20) )
|
||||
#define limC3(a) LIM((a), 0x00ff, 0x0000, (1 << 19) )
|
||||
#define limB3(a, l) LIM((a), 0x7fff, -0x8000 * !l, (1 << 22))
|
||||
#define limC1(a) LIM((a), 0x00ff, 0x0000, (1 << 21))
|
||||
#define limC2(a) LIM((a), 0x00ff, 0x0000, (1 << 20))
|
||||
#define limC3(a) LIM((a), 0x00ff, 0x0000, (1 << 19))
|
||||
#define limD(a) LIM((a), 0xffff, 0x0000, (1 << 31) | (1 << 18))
|
||||
|
||||
static inline u32 limE(u32 result) {
|
||||
|
@ -641,24 +641,25 @@ void gteOP() {
|
|||
}
|
||||
|
||||
void gteDCPL() {
|
||||
int shift = 12 * GTE_SF(gteop);
|
||||
int lm = GTE_LM(gteop);
|
||||
s64 iR = (gteR << 4) * gteIR1;
|
||||
s64 iG = (gteG << 4) * gteIR2;
|
||||
s64 iB = (gteB << 4) * gteIR3;
|
||||
|
||||
s64 RIR1 = ((s64)gteR * gteIR1) >> 8;
|
||||
s64 GIR2 = ((s64)gteG * gteIR2) >> 8;
|
||||
s64 BIR3 = ((s64)gteB * gteIR3) >> 8;
|
||||
|
||||
#ifdef GTE_LOG
|
||||
GTE_LOG("DCPL\n");
|
||||
#endif
|
||||
gteFLAG = 0;
|
||||
|
||||
gteMAC1 = A1(iR + gteIR0 * limB1(gteRFC - iR, 0)) >> shift;
|
||||
gteMAC2 = A2(iG + gteIR0 * limB1(gteGFC - iG, 0)) >> shift;
|
||||
gteMAC3 = A3(iB + gteIR0 * limB1(gteBFC - iB, 0)) >> shift;
|
||||
gteMAC1 = A1(RIR1 + ((gteIR0 * limB1(gteRFC - RIR1, 0)) >> 12));
|
||||
gteMAC2 = A2(GIR2 + ((gteIR0 * limB1(gteGFC - GIR2, 0)) >> 12));
|
||||
gteMAC3 = A3(BIR3 + ((gteIR0 * limB1(gteBFC - BIR3, 0)) >> 12));
|
||||
|
||||
gteIR1 = limB1(gteMAC1, lm);
|
||||
gteIR2 = limB2(gteMAC2, lm);
|
||||
gteIR3 = limB3(gteMAC3, lm);
|
||||
|
||||
gteIR1 = limB1(gteMAC1 >> 4, lm);
|
||||
gteIR2 = limB2(gteMAC2 >> 4, lm);
|
||||
gteIR3 = limB3(gteMAC3 >> 4, lm);
|
||||
gteRGB0 = gteRGB1;
|
||||
gteRGB1 = gteRGB2;
|
||||
gteCODE2 = gteCODE;
|
||||
|
|
|
@ -62,7 +62,7 @@ int psxMemInit() {
|
|||
psxP = &psxM[0x200000];
|
||||
psxH = &psxM[0x210000];
|
||||
|
||||
psxR = (char *)malloc(0x00080000);
|
||||
psxR = (s8 *)malloc(0x00080000);
|
||||
|
||||
if (psxMemRLUT == NULL || psxMemWLUT == NULL ||
|
||||
psxM == NULL || psxP == NULL || psxH == NULL) {
|
||||
|
@ -295,7 +295,7 @@ void psxMemWrite32(u32 mem, u32 value) {
|
|||
memset(psxMemWLUT + 0x8000, 0, 0x80 * sizeof(void *));
|
||||
memset(psxMemWLUT + 0xa000, 0, 0x80 * sizeof(void *));
|
||||
break;
|
||||
case 0x1e988:
|
||||
case 0x00: case 0x1e988:
|
||||
if (writeok == 1) break;
|
||||
writeok = 1;
|
||||
for (i = 0; i < 0x80; i++) psxMemWLUT[i + 0x0000] = (void *)&psxM[(i & 0x1f) << 16];
|
||||
|
|
|
@ -169,6 +169,8 @@ void LoadStateV5(SPUFreeze_t * pF)
|
|||
s_chan[i].iMute=0;
|
||||
s_chan[i].iIrqDone=0;
|
||||
}
|
||||
|
||||
spuAddr = 0xffffffff;
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////
|
||||
|
|
Loading…
Reference in New Issue