This commit reflects mostly changes that happened in upstream since the last sync.
Commit messages in upstream are lacking information. Most important changes are
commented below, the rest of them are either formating or just trivial stuff.
Memory viewer, invalidate dynarec
gui/DebugMemory.c
libpcsxcore/cdrom.c
libpcsxcore/gpu.c
libpcsxcore/misc.c
libpcsxcore/psxdma.c
Load binary files and psx executables
libpcsxcore/misc.c
libpcsxcore/misc.h
libpcsxcore/plugin.c
libpcsxcore/plugin.h
Support for psxida
libpcsxcore/debug.c
libpcsxcore/r3000a.c
plugins/bladesio1/connection.c
disable loading save states with digits
gui/Plugin.c
Fix psxDIV in interpreter
libpcsxcore/psxinterpreter.c
- 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
- 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)
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
- 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.