<feed xmlns='http://www.w3.org/2005/Atom'>
<title>xavi/pcsxr/libpcsxcore/pgxp_debug.c, branch master</title>
<subtitle>Unnamed repository; edit this file 'description' to name the repository.
</subtitle>
<id>https://gitea.privatedns.org/xavi/pcsxr/atom?h=master</id>
<link rel='self' href='https://gitea.privatedns.org/xavi/pcsxr/atom?h=master'/>
<link rel='alternate' type='text/html' href='https://gitea.privatedns.org/xavi/pcsxr/'/>
<updated>2016-07-30T16:43:12+00:00</updated>
<entry>
<title>Various CPU updates</title>
<updated>2016-07-30T16:43:12+00:00</updated>
<author>
<name>iCatButler</name>
<email>i.am.catbutler@gmail.com</email>
</author>
<published>2016-07-30T16:43:12+00:00</published>
<link rel='alternate' type='text/html' href='https://gitea.privatedns.org/xavi/pcsxr/commit/?id=69f33a4782857bf2027db6c81f670409bed76b43'/>
<id>urn:sha1:69f33a4782857bf2027db6c81f670409bed76b43</id>
<content type='text'>
- 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
</content>
</entry>
<entry>
<title>Change "valid" flag to multiple bit flags</title>
<updated>2016-07-04T10:48:00+00:00</updated>
<author>
<name>iCatButler</name>
<email>i.am.catbutler@gmail.com</email>
</author>
<published>2016-07-04T10:48:00+00:00</published>
<link rel='alternate' type='text/html' href='https://gitea.privatedns.org/xavi/pcsxr/commit/?id=97105b26f2194dcfb50addf0a421db9debd797d5'/>
<id>urn:sha1:97105b26f2194dcfb50addf0a421db9debd797d5</id>
<content type='text'>
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.
</content>
</entry>
<entry>
<title>Additional checks</title>
<updated>2016-07-02T15:52:21+00:00</updated>
<author>
<name>iCatButler</name>
<email>i.am.catbutler@gmail.com</email>
</author>
<published>2016-07-02T15:52:21+00:00</published>
<link rel='alternate' type='text/html' href='https://gitea.privatedns.org/xavi/pcsxr/commit/?id=03cfe9e6c22044c5b6e333b90c2b0021842fffad'/>
<id>urn:sha1:03cfe9e6c22044c5b6e333b90c2b0021842fffad</id>
<content type='text'>
- 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
</content>
</entry>
<entry>
<title>Imporved CPU integration</title>
<updated>2016-06-27T14:28:33+00:00</updated>
<author>
<name>iCatButler</name>
<email>i.am.catbutler@gmail.com</email>
</author>
<published>2016-06-27T14:28:33+00:00</published>
<link rel='alternate' type='text/html' href='https://gitea.privatedns.org/xavi/pcsxr/commit/?id=42176205ce9ed9aa2408d4042a816fe5cd082519'/>
<id>urn:sha1:42176205ce9ed9aa2408d4042a816fe5cd082519</id>
<content type='text'>
- 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
</content>
</entry>
<entry>
<title>Initial PGXP CPU commit</title>
<updated>2016-06-07T14:57:46+00:00</updated>
<author>
<name>iCatButler</name>
<email>i.am.catbutler@gmail.com</email>
</author>
<published>2016-06-07T14:57:46+00:00</published>
<link rel='alternate' type='text/html' href='https://gitea.privatedns.org/xavi/pcsxr/commit/?id=f70082329d751ee8a358437feb34134e283b27d8'/>
<id>urn:sha1:f70082329d751ee8a358437feb34134e283b27d8</id>
<content type='text'>
- 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)
</content>
</entry>
</feed>
