summaryrefslogtreecommitdiff
path: root/libpcsxcore
diff options
context:
space:
mode:
authorSND\edgbla_cp <SND\edgbla_cp@e17a0e51-4ae3-4d35-97c3-1a29b211df97>2012-05-20 14:20:39 +0000
committerSND\edgbla_cp <SND\edgbla_cp@e17a0e51-4ae3-4d35-97c3-1a29b211df97>2012-05-20 14:20:39 +0000
commit9a63e315195a0dcd669d2df1c62142eaf740de7a (patch)
treef13c2533386ef867f79aab648f910146beb2ffd6 /libpcsxcore
parenta603b0692f07a5dc9980b9e76c7cddfe57805c12 (diff)
downloadpcsxr-9a63e315195a0dcd669d2df1c62142eaf740de7a.tar.gz
Configuration->CPU->Widescreen (16:9, GTE Hack).
git-svn-id: https://pcsxr.svn.codeplex.com/svn/pcsxr@78188 e17a0e51-4ae3-4d35-97c3-1a29b211df97
Diffstat (limited to 'libpcsxcore')
-rw-r--r--libpcsxcore/gte.c8
-rw-r--r--libpcsxcore/psxcommon.h1
2 files changed, 5 insertions, 4 deletions
diff --git a/libpcsxcore/gte.c b/libpcsxcore/gte.c
index 1ce8fecf..3c9ea449 100644
--- a/libpcsxcore/gte.c
+++ b/libpcsxcore/gte.c
@@ -402,13 +402,13 @@ void gteRTPS() {
quotient = limE(DIVIDE(gteH, gteSZ3));
gteSXY0 = gteSXY1;
gteSXY1 = gteSXY2;
- gteSX2 = limG1(F((s64)gteOFX + ((s64)gteIR1 * quotient)) >> 16);
+ gteSX2 = limG1(F((s64)gteOFX + ((s64)gteIR1 * quotient) * (Config.Widescreen ? 0.75 : 1)) >> 16);
gteSY2 = limG2(F((s64)gteOFY + ((s64)gteIR2 * quotient)) >> 16);
fquotient = flimE((float)(gteH << 16) / (float)gteSZ3);
GPU_addVertex(gteSX2,
gteSY2,
- limG1_ia((s64)gteOFX + (s64)(gteIR1 * fquotient)), // TODO: MAC1 calc instead of IR1.
+ limG1_ia((s64)gteOFX + (s64)(gteIR1 * fquotient) * (Config.Widescreen ? 0.75 : 1)), // TODO: MAC1 calc instead of IR1.
limG2_ia((s64)gteOFY + (s64)(gteIR2 * fquotient)), // TODO: MAC2 calc instead of IR2.
((s64)gteSZ3)); // TODO: MAC3 calc instead of SZ3.
@@ -440,13 +440,13 @@ void gteRTPT() {
gteIR3 = limB3(gteMAC3, 0);
fSZ(v) = limD(gteMAC3);
quotient = limE(DIVIDE(gteH, fSZ(v)));
- fSX(v) = limG1(F((s64)gteOFX + ((s64)gteIR1 * quotient)) >> 16);
+ fSX(v) = limG1(F((s64)gteOFX + ((s64)gteIR1 * quotient) * (Config.Widescreen ? 0.75 : 1)) >> 16);
fSY(v) = limG2(F((s64)gteOFY + ((s64)gteIR2 * quotient)) >> 16);
fquotient = flimE((float)(gteH << 16) / (float)fSZ(v));
GPU_addVertex(fSX(v),
fSY(v),
- limG1_ia((s64)gteOFX + (s64)(gteIR1 * fquotient)), // TODO: MAC1 calc instead of IR1.
+ limG1_ia((s64)gteOFX + (s64)(gteIR1 * fquotient) * (Config.Widescreen ? 0.75 : 1)), // TODO: MAC1 calc instead of IR1.
limG2_ia((s64)gteOFY + (s64)(gteIR2 * fquotient)), // TODO: MAC2 calc instead of IR2.
((s64)fSZ(v))); // TODO: MAC3 calc instead of fSZ(v).
}
diff --git a/libpcsxcore/psxcommon.h b/libpcsxcore/psxcommon.h
index dbedc429..5aec4942 100644
--- a/libpcsxcore/psxcommon.h
+++ b/libpcsxcore/psxcommon.h
@@ -149,6 +149,7 @@ typedef struct {
boolean RCntFix;
boolean UseNet;
boolean VSyncWA;
+ boolean Widescreen;
u8 Cpu; // CPU_DYNAREC or CPU_INTERPRETER
u8 PsxType; // PSX_TYPE_NTSC or PSX_TYPE_PAL
#ifdef _WIN32