summaryrefslogtreecommitdiff
path: root/libpcsxcore
diff options
context:
space:
mode:
authoriCatButler <i.am.catbutler@gmail.com>2017-04-25 14:58:00 +0100
committeriCatButler <i.am.catbutler@gmail.com>2017-04-25 14:58:00 +0100
commit496df34ee4e3861c6e9b0ee8256d575622447563 (patch)
treee96bad2877501a263f230325839864aadc508cf3 /libpcsxcore
parent5dbb8dd78602f4b9c7d4e1a92b831fac032db8a6 (diff)
downloadpcsxr-496df34ee4e3861c6e9b0ee8256d575622447563.tar.gz
Prevent incomplete vertices using precise NCLIP
- Fixes errors ocurring in +CPU mode where NCLIP is used for collision detection
Diffstat (limited to 'libpcsxcore')
-rw-r--r--libpcsxcore/pgxp_gte.c2
-rw-r--r--libpcsxcore/pgxp_value.c2
-rw-r--r--libpcsxcore/pgxp_value.h1
3 files changed, 3 insertions, 2 deletions
diff --git a/libpcsxcore/pgxp_gte.c b/libpcsxcore/pgxp_gte.c
index 772dd2bb..51949646 100644
--- a/libpcsxcore/pgxp_gte.c
+++ b/libpcsxcore/pgxp_gte.c
@@ -182,7 +182,7 @@ int PGXP_NLCIP_valid(u32 sxy0, u32 sxy1, u32 sxy2)
Validate(&SXY0, sxy0);
Validate(&SXY1, sxy1);
Validate(&SXY2, sxy2);
- if (((SXY0.flags & SXY1.flags & SXY2.flags & VALID_01) == VALID_01) && Config.PGXP_GTE && (Config.PGXP_Mode > 0))
+ if (((SXY0.flags & SXY1.flags & SXY2.flags & VALID_012) == VALID_012) && Config.PGXP_GTE && (Config.PGXP_Mode > 0))
return 1;
return 0;
}
diff --git a/libpcsxcore/pgxp_value.c b/libpcsxcore/pgxp_value.c
index c52a8999..1ef79498 100644
--- a/libpcsxcore/pgxp_value.c
+++ b/libpcsxcore/pgxp_value.c
@@ -22,7 +22,7 @@ void MakeValid(PGXP_value *pV, u32 psxV)
pV->x = psx.sw.l;
pV->y = psx.sw.h;
pV->z = 0.f;
- pV->flags |= VALID_01;
+ pV->flags = VALID_01;
pV->value = psx.d;
}
}
diff --git a/libpcsxcore/pgxp_value.h b/libpcsxcore/pgxp_value.h
index 68809fa2..a7ba1f3b 100644
--- a/libpcsxcore/pgxp_value.h
+++ b/libpcsxcore/pgxp_value.h
@@ -91,6 +91,7 @@ typedef enum
#define VALID_2 (VALID << 16)
#define VALID_3 (VALID << 24)
#define VALID_01 (VALID_0 | VALID_1)
+#define VALID_012 (VALID_0 | VALID_1 | VALID_2)
#define VALID_ALL (VALID_0 | VALID_1 | VALID_2 | VALID_3)
#define INV_VALID_ALL (ALL ^ VALID_ALL)
//} PGXP_value_flags;