Commit Graph

5576 Commits

Author SHA1 Message Date
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
Luke Usher ac719e2a40
Merge pull request #1445 from PatrickvL/X86_expand
X86 expand
2018-09-22 22:53:35 +01:00
Luke Usher 2e58a218ea Fix hang while exiting emulation: CxbxKrnlShutdown was not called from WM_CLOSE... 2018-09-22 21:30:30 +01:00
Luke Usher 8c5b262e84 Change X86 log from info too Debug 2018-09-21 21:21:22 +01:00
Luke Usher 614a2c1792 Fix push/pop/jmp/jcc: HLE XDK samples + dashboard work again 2018-09-21 20:01:44 +01:00
PatrickvL 381e478862 X86 : Added instruction dumping to better see where our emulation goes haywire. As a result, PC-relative address decoding turned out to be faulty - let's see what else needs correcting... 2018-09-21 15:00:57 +02:00
PatrickvL 3216fac4ad X86 : Restored indent (by request of Radwolfie) 2018-09-20 18:20:30 +02:00
PatrickvL 6782c89b62 X86 : Implemented CDQ, POP, PUSH and SAR, sorted CLI and STI and crash (instead of hang) when the initial (exception-causing instruction) is unhandled 2018-09-20 17:52:23 +02:00
PatrickvL 3d203d1d56 X86 : Sorted interpreted opcodes, implemented instructions I_JMP_FAR and I_RDTSC, refactored to use the emulation of RDSTC elsewhere, renamed SXX to SETcc, renamed JXX to Jcc, mention Distorm instruction numbers in comments 2018-09-20 15:13:37 +02:00
PatrickvL ca32db6be4
Merge pull request #1444 from RadWolfie/develop
D3D8(LTCG) signatures update and small clean up of scanning process
2018-09-19 23:53:05 +02:00
RadWolfie d908075573 Sync with XbSymbolDatabase module 2018-09-19 15:03:13 -05:00
Luke Usher 70a4a8602a
Merge pull request #1443 from PatrickvL/avoid_cpu_hang
X86 : Emulate a bunch of additional instructions (all fences, all jum…
2018-09-19 20:52:42 +01:00
Luke Usher c99d7341bc
Merge pull request #1441 from PatrickvL/CreateDevice_refactoring
HLE : Extract common CreateDevice code to two separate functions.
2018-09-19 20:34:07 +01:00
patrickvl c8f3f53667 X86 : Emulate SHL 2018-09-19 21:28:55 +02:00
Luke Usher d053f9c827
Merge pull request #1442 from LukeUsher/not-shouldnt-set-flags
NOT shouldn't set flags
2018-09-19 20:21:29 +01:00