summaryrefslogtreecommitdiff
path: root/libpcsxcore/pgxp_gte.c
Commit message (Collapse)AuthorAgeFilesLines
* Prevent incomplete vertices using precise NCLIPiCatButler2017-04-251-1/+1
| | | | - Fixes errors ocurring in +CPU mode where NCLIP is used for collision detection
* Fix NCLIP related crashiCatButler2016-08-011-2/+6
| | | | - provide wider window where NCLIP can return 0 as this was causing a crash in RR:Revolution
* Change "valid" flag to multiple bit flagsiCatButler2016-07-041-3/+3
| | | | Validity of a pgxp value can now be set for any of four components using individual bit flags. This also allows the potential expansion of more flag data for each component.
* Additional checksiCatButler2016-07-021-4/+8
| | | | | | | - Change processor transfer functions to use take both source and destination values - Add enum values to all debug functions to double check instructions are correct - Temporarily store instruction codes in interpreter wrappers as these are sometimes changed by branching - Change recompiler wrapper functions to store register values in global variables in case they're changed by the original function
* Initialise GTE and CPU regsiters (invalidate)iCatButler2016-06-301-1/+5
|
* Imporved CPU integrationiCatButler2016-06-271-59/+106
| | | | | | | | | | | | | | | | | - 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
* Initial PGXP CPU commitiCatButler2016-06-071-416/+22
| | | | | | | | | | - Restructured project to base interface on PSX instructions - Support for all relevant CPU arithmetic and logic instructions - Debug output available via deferred PGXP calls - Remove most dependencies on PCSXR - Still very much a work in progress (lots of errors) - Add extra debug information to GPU plugin (w values)
* Add PGXP configuration dialogiCatButler2016-05-161-3/+7
| | | | - Allows independent toggling of PGXP, vertex caching and texture correction
* Implement vertex cachingiCatButler2016-05-151-1/+40
| | | | | | | - Try using Blade_Arma's vertex cache to find untracked vertices - Fix GTE_LOG - Add more logging spew - Update debug mode to track cached vertices
* More fixes for persective correct buildiCatButler2016-05-061-4/+27
| | | | | | - Switch back to fixed point GTE - Only clamp w to h/2 after divide - Fix vertex function for multi-pass (was overwriting vertexon first pass)
* Ensure w is reset to 1.f to prevent stale values.iCatButler2016-05-031-7/+8
|
* Fix bugs from previousiCatButler2016-05-021-14/+14
| | | | | | | | | | | | Fix stray triangles - Switch to full floating point RTPS/RTPT - Clamp w values to near plane Fix texture corruption in 1.78, copy 2.4 Tweak - Remove matrix replacement - Add W component to vertices - Wrap glVertex3fv calls - Use counter to call glVertex4fv for PGXP vertices only
* Perspective correct texturingiCatButler2016-04-271-85/+196
| | | | | | | | | | | | | - replace calls to glOrtho with new matrix (z value becomes w) - store w value for each vertex - if any vertex does not have a w value set whole polygon to 1.0 - Reset vertex between draw calls to prevent stale w values persisting - validate PGXP values using stored copy of original (allow greater variance) - properly convert addresses before passing to plugin - rework memory to use a single pool with offsets - Implement floating point RTPS/RTPT transform, currently disabled.
* - Fix memory addresses as each mirrored address range is further mirrored 4 ↵iCatButler2016-03-281-39/+49
| | | | | | | times... :( - Catch 8bit reads/writes and invalidate registers and memory as needed - Prevent reading over the end of stride and count arrays when decoding primitive commands
* - Move pgxp_gpu source files into correct folder.iCatButler2016-03-261-411/+456
| | | | - Trace 16 bit reads and writes, invalidate register or memory (fixes UI glitches)
* Initial upload of PGXP.iCatButler2016-03-251-0/+437