Commit Graph

5490 Commits

Author SHA1 Message Date
PatrickvL acc808a1e2 Ported (previously overlooked) shader conversion from xqemu too 2018-10-05 21:47:15 +02:00
PatrickvL 1a6f12bef0 Destroy pfifo_lock too 2018-10-05 21:47:15 +02:00
PatrickvL d896e7dc79 Rename two lock's to pgraph_lock vs. pfifo_lock to better discern them. 2018-10-05 21:47:15 +02:00
PatrickvL 6f6f75b7e9 Remove useless forward declarations 2018-10-05 21:47:15 +02:00
PatrickvL 63e97b929b Fix how assert is avoided 2018-10-05 21:47:15 +02:00
PatrickvL a702e657ee PGRAPH debugging code also compiles with this. 2018-10-05 21:47:15 +02:00
PatrickvL 96c3c13209 Removed useless duplicate ;; 2018-10-05 21:47:15 +02:00
PatrickvL 4b8a02c155 Ported xqemu nv2a changes up to 3d33d8101b (diff-2042b2fa4b02c8eabddedcc278da5099)
WARNING : Although this compiles and runs, LLE-GPU doesn't show anything on-screen yet. More investigation & fixing will be needed before we can merge this.

PS : Once finished, this fixes https://github.com/Cxbx-Reloaded/Cxbx-Reloaded/issues/1456
2018-10-05 21:47:14 +02:00
PatrickvL 7bc2897833
Merge pull request #1462 from PatrickvL/nv2a_lights
NV2A : Fixed PGRAPH light handlers
2018-10-05 21:45:16 +02:00
PatrickvL ab20444a12 NV2A : Fixed PGRAPH light handlers - the case statement wasn't covering the final few light slots, potentially causing black spots here and there. 2018-10-05 21:44:42 +02:00
PatrickvL d1b5be72dd
Merge pull request #1461 from PatrickvL/nv2a_plugin_clear
Nv2a plugin clear
2018-10-05 21:44:01 +02:00
PatrickvL ba8857d31e Cleanup 2018-10-05 21:43:12 +02:00
Luke Usher 141069766f
Merge pull request #1464 from LukeUsher/fix-jsrf-regression
Fix a regression in JSRF caused by incorrect entry for D3DRS_SWAPFILTER
2018-10-05 15:13:53 +01:00
Luke Usher aa7c1812ed Fix a regression in JSRF caused by incorrect entry for D3DRS_SWAPFILTER 2018-10-05 15:06:11 +01:00
Luke Usher d5c83bd12b
Merge pull request #1463 from LukeUsher/tweaks-fixes
Implement STOS, Inline OutputDebugStringA & Fix Vertex Declaration oversight
2018-10-05 13:15:12 +01:00
Luke Usher 04bc37589f Oops: badly named variables caused confusion: OriginalDeclarationSize was a count, HostDeclarationSize was actual size 2018-10-05 08:56:56 +01:00
Luke Usher f8b1c890be Oops, it was also falling-through to sub 2018-10-04 23:06:34 +01:00
Luke Usher 5797cdd6c1 Oops: STOS was very slightly broken 2018-10-04 23:06:30 +01:00
Luke Usher e1210de04e Implement int2dh, int3 combination for in-lined OutputDebugStringA 2018-10-04 23:06:18 +01:00
Luke Usher d6a44b6c72 Oops: STOS was not returning true on success.. 2018-10-04 23:06:09 +01:00
Luke Usher bd14740bbe Implement (REP)STOS: This is used extensively by USB code 2018-10-04 23:05:32 +01:00
PatrickvL c4511563da NV2A : clear is now pluggable too 2018-10-04 18:19:02 +02:00
PatrickvL becac6d4c8 Remove duplicate call to CxbxUpdateNativeD3DResources 2018-10-04 10:13:58 +02:00
PatrickvL 97878f4396 Added a few test-case comments to PGRAPH 2018-10-04 10:13:58 +02:00
PatrickvL 40a543b9b5
Merge pull request #1460 from LukeUsher/d3d-tweaks
Detect and fix the situation when EmuD3DDeferrdRenderState is derived incorrectly
2018-10-03 22:03:56 +02:00
Luke Usher cbb2bce17f Update XbSymbolDatabase again + fix a crash when SetViewPort is called with a null value 2018-10-03 19:57:21 +01:00
Luke Usher de87ffd1e4 Update XbSymbolDatabase submodule 2018-10-02 16:18:04 +01:00
Luke Usher b91ebafd97 Detect and fix incorrect EmuD3DDeferredRenderState. Requires XbSymbolDatabase PR #44 to be merged first 2018-10-02 16:09:36 +01:00
PatrickvL 78a49202f9
Merge pull request #1458 from LukeUsher/d3d-tweaks
Various fixes/improvements to D3D HLE
2018-10-02 13:23:39 +02:00
Luke Usher 1c78e5bced Various fixes/improvements to D3D HLE
The key change is that more of the D3D state is written back to the
internal Xbox D3D state, allowing GetXXX functions to return the correct
values, and that GetVertexShaderDeclaration now returns the correct size
to the running Xbox title.

Note that this needs testing with as many titles as possible: The
additional trampolines may cause regressions if they hit an
unimplemented instruction in subhook (eg. I had to update Subhook to add
xor, in order to be able to make this PR work at all)
2018-10-02 11:01:05 +01:00
Luke Usher da5e977d45
Merge pull request #1455 from PatrickvL/fix_Turok_movie
HLE overlay fix for Turok
2018-09-28 13:08:47 +01:00
PatrickvL c8b09130ae HLE overlay fix for Turok, by reading color-space conversion from PGRAPH (for which handling was added to NV097_SET_CONTROL0). This allowed removal of the D3DDevice_SetRenderState_YuvEnable patch.
Note, that we're still not doing anything special regarding color-space conversions; This is just an accuracy change.

This fixes #1435.

PS : Now that we're reading more and more state from PGRAPH (even under HLE GPU) we really need a push-buffer flush function!
2018-09-28 13:46:51 +02:00
Luke Usher 2918526586
Merge pull request #1454 from LukeUsher/x86-tweaks
X86 tweaks: Fixes WWE Raw LLE regression
2018-09-27 22:36:50 +01:00
Luke Usher 42aae20d8e Oops, we sign-extended the wrong value for ADD. This fixes 4627 graphics 2018-09-27 22:31:18 +01:00
Luke Usher cd22ba6145 This fixes 4627 vertices sample when executing 3 instructions in a batch.
We're on the right lines here, however, WWE Raw and all XDK samples regressed further, despite the above
improvement.

Stack corruption now happens for most software with while(true).

Perhaps there's an extra condition on sign-extension that we're not checking for?
2018-09-27 22:21:32 +01:00
Luke Usher ae572166f1
Merge pull request #1453 from PatrickvL/more_x86
More x86 logging improvements
2018-09-27 20:43:19 +01:00
PatrickvL 2fb98429e6 X86 : Log segments and prefixes 2018-09-27 18:28:54 +02:00
PatrickvL 795b0a5a5e X86 : Log when starting instruction emulation, and log before assert(false), also insert missing newlines 2018-09-27 15:21:29 +02:00
Luke Usher d3e2e7d475
Merge pull request #1452 from PatrickvL/x86_asserts
Added X86 asserts
2018-09-27 12:47:41 +01:00
PatrickvL 48cb6c8ba2 X86 : Removed special-casing for is_register (doesn't seem to be needed), added asserts everywhere we're unsure of the input, simplified EmuX86_Opcode_CMPXCHG accessing EAX, fixed logging O_MEM without a base. 2018-09-27 13:22:34 +02:00
PatrickvL 6e1432f644
Merge pull request #1449 from LukeUsher/use-native-flags
Have the host CPU computer flags for us
2018-09-26 15:24:29 +02:00
Luke Usher 427cf4e513 Fi CMPXCHG 2018-09-25 22:30:34 +01:00
Luke Usher bf9b7a26f6 Minor tweaks 2018-09-25 22:30:34 +01:00
Luke Usher d5ac1040ca Fix an issue where non 32-bit register reads/writes would use the wrong bits 2018-09-25 22:30:34 +01:00
Luke Usher dde8c8b71c Minor instruction tweaks/fixes 2018-09-25 22:30:34 +01:00
Luke Usher 9566f85767 Have the host CPU computer flags for us 2018-09-25 22:30:33 +01:00
Luke Usher 42504ed309
Merge pull request #1451 from PatrickvL/x86_logging
X86 logging
2018-09-25 22:24:01 +01:00
PatrickvL fc3f0161bf X86 : Improved instruction dumping 2018-09-24 15:19:59 +02:00
PatrickvL 9487ec09a7 X86 : Implemented NEG opcode 2018-09-24 12:52:31 +02:00
PatrickvL 17fdc8e01d Logging : Renamed DbgPrintf to DBG_PRINTF (it's a macro after all), introduced Ex-tended versions of a few macro's, which accept something else than LOG_PREFIX and removed and/or applied LOG_PREFIX where appropriate. Also applied LOG_CHECK_ENABLED in EmuX86 to avoid slowdowns when X86 debug logging is disabled. 2018-09-24 11:26:30 +02:00