summaryrefslogtreecommitdiff
path: root/libpcsxcore/pgxp_value.c
diff options
context:
space:
mode:
authoriCatButler <i.am.catbutler@gmail.com>2016-06-27 15:28:33 +0100
committeriCatButler <i.am.catbutler@gmail.com>2016-06-27 15:28:33 +0100
commit42176205ce9ed9aa2408d4042a816fe5cd082519 (patch)
tree43fae5134a8a72f3a5902a6be9972f0188029b76 /libpcsxcore/pgxp_value.c
parentcfa7b3ad119aed09b12aa44521f70d12df234414 (diff)
downloadpcsxr-42176205ce9ed9aa2408d4042a816fe5cd082519.tar.gz
Imporved CPU integration
- Change PGXP integration to use wrapper functions - Use modified function lookup tables to call wrappers or default funnctions based on mode - Implement wrappers for interpreter too, recompiler sometimes calls interpreter functions - Add UI elements for selecting CPU modes - Only call precision version of NCLIP in modes where there are not going to be stale vertices in GTE registers - Added support for CP0 co-processor functions - Improve support for CPU functions (still broken in many games) - Improved debug output to show values for inputs before they're modified GPU plugin - Ignore stale vertices (occurs when CPU mode no longer writes to memory) - Add Cyan vertex colouring for stale vertices
Diffstat (limited to 'libpcsxcore/pgxp_value.c')
-rw-r--r--libpcsxcore/pgxp_value.c28
1 files changed, 28 insertions, 0 deletions
diff --git a/libpcsxcore/pgxp_value.c b/libpcsxcore/pgxp_value.c
new file mode 100644
index 00000000..5d29097d
--- /dev/null
+++ b/libpcsxcore/pgxp_value.c
@@ -0,0 +1,28 @@
+#include "pgxp_value.h"
+
+
+void MakeValid(PGXP_value *pV, u32 psxV)
+{
+ psx_value psx;
+ psx.d = psxV;
+ if (!pV->valid)
+ {
+ pV->x = psx.sw.l;
+ pV->y = psx.sw.h;
+ pV->z = 1.f;
+ pV->valid = 1;
+ pV->value = psx.d;
+ }
+}
+
+void Validate(PGXP_value *pV, u32 psxV)
+{
+ // assume pV is not NULL
+ pV->valid = (pV->valid) && (pV->value == psxV);
+}
+
+void MaskValidate(PGXP_value *pV, u32 psxV, u32 mask)
+{
+ // assume pV is not NULL
+ pV->valid = (pV->valid) && ((pV->value & mask) == (psxV & mask));
+} \ No newline at end of file