| Commit message (Collapse) | Author | Age | Files | Lines |
| | |
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
|
|
| |
- vertex colour
- new primitive type encoding
Now displays semi-transparent as coloured wireframe to allow them to be visible without corrupting the colour information.
|
| |
|
|
|
|
|
|
| |
- Remove upper 4-bits of each vertex as they may contain bad data (THPS)
- Check if memory block from DMA is as expected, some primitives are not the first data in the block and preceding data needs to be skipped (HT, A2)
- Change depth visualisation to a colour gradient that makes inconsistencies easier to see
- Add support for visualising low resolution but consistent depth found in the Ordering Table
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Sign extend values read using LH
- Add conversion functions to represent Signed/Unsigned 16-bit ranges
- Add overflow and truncation functions for 16-bit ranges
- Sign extend imm value in ADD(U)
- Add component overflow and truncation to ADD/SUB functions
- Construct new value in logic operators where result using inputs is undefined
- Return a valid W component from logic operators (if either input has one)
- Compare against high value (y), then low value (x) in less than operators
- Use doubles and implement overflow for Multiply operations to try to increase accuracy
- Use unsigned values in both MUL and DIV operations to make output as accurate as possible
- Implement several variants of shift operators. Trying both arithmetically correct and more analytical approaches with varying success.
Debug updates
- Added ability to force all values to be equal to low precision values before operating on them
- Added feature to test output of operations against a tolerance and print only those which fail
GPU updates
- Colour vertices with valid XY coordinates but no W as cyan to make them easier to spot
- Remove cyan colouring for stale vertices (wasn't useful)
- Added ability to skip debug rendering when needed (like seeing the output of offscreen rendering applied to a sprite).
- Added new mode which shows primitive type
|
| |
|
|
| |
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.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- 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)
|
| |
|
|
| |
- Allows independent toggling of PGXP, vertex caching and texture correction
|
| |
|
|
|
|
|
| |
- 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
|
| |
|
|
|
|
|
| |
Toggles using F11
Red = low precision
Blue = high precision
Yellow = Sprite
|
| |
|
|
|
|
| |
- 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)
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
| |
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
|
|
|
- Trace 16 bit reads and writes, invalidate register or memory (fixes UI glitches)
|