Commit Graph

4619 Commits

Author SHA1 Message Date
Luke Usher 18e0311f00 Fix an issue where multicast packets were not captured 2019-11-12 20:14:27 +00:00
Luke Usher 8bf71bd7df
Merge pull request #1769 from PatrickvL/nv2a_callbacks
Support Xbox Direct3D "read" callback events
2019-11-12 10:48:05 +00:00
Anthony Miles f9e8bb64f6 Make sure we truncate the contents of the 'a' register, so it isn't rounded to the nearest integer 2019-11-12 22:33:50 +13:00
Luke Usher 1a64cbd2f4 Revert "Disable Read callbacks again"
This reverts commit d0655335d3.
2019-11-09 22:57:31 +00:00
Luke Usher 7bd88cfb14 Fix a crash caused by double-free of g_pD3DDevice
This was only a problem for release builds, as the code for this was
disabled in Debug builds.

This fixes the crash when booting halo: It was unrelated to the (now
disabled) callbacks
2019-11-09 22:55:44 +00:00
PatrickvL d0655335d3 Disable Read callbacks again 2019-11-07 18:30:48 +01:00
PatrickvL 9aea68534e Merge pull request #1763 from PatrickvL/variable_renaming
Small code-cleanup
2019-11-07 16:20:02 +01:00
PatrickvL d1d0700504 Introduce host CPU idle wait function.
Introduce host GPU flushing functionality.
Put Xbox callbacks into a queue instead of keeping around only one.
Use host GPU query events to emulate callback events at roughly the same time when the NV2A Xbox GPU would.
All this can be (programmatically) disabled by a g_bHack_DisableHostGPUQueries boolean (later, this could be made configurable).
2019-11-05 15:29:03 +01:00
PatrickvL b36286a237 Move Xbox callback insertion and handling into separate functions, and call them where appropriate. 2019-11-05 15:25:05 +01:00
x1nixmzeng cd183128d6 Fixed CMake designer settings for debugger gui 2019-11-04 20:46:46 +00:00
patrickvl 364499cda0 Reordered Direct3D global variables 2019-11-02 17:03:06 +01:00
patrickvl 54bd0e2a18 Change NULL into nullptr or xbnullptr or xbnull, depending the situation 2019-11-02 16:24:37 +01:00
patrickvl e41d684cfa Renamed global variables (taken from Vsh_unpatching), removed (or commented-out) unused variables, and additional comments 2019-11-02 16:24:36 +01:00
Fred Hallock 8ae612fdb7 Add support for relative Xbe paths (#1766)
* Fixed an issue where the Xbe path needs to be absolute. I added a call to std::filesystem::absolute to resolve the path to absolute at the earliest that it is accessed from __argv so that there is no chance for it to cause a problem.
2019-11-02 09:41:13 +00:00
ergo720 1256b3ee59 Fix sdl controller input bindings 2019-11-01 19:04:15 +01:00
PatrickvL 7508ec190e Comment-only change : Make "test-case" comment mentions consistent 2019-10-28 09:40:03 +01:00
patrickvl fa76ffe140 Finally fixed Indiana Jones regressions (BaseVertexIndex mustn't be enlarged when drawing indexed quads through a converted index buffer).
Also some renaming
2019-10-28 09:31:43 +01:00
patrickvl 91575822a8 Corrected arguments for indexed quad draws 2019-10-28 09:31:42 +01:00
patrickvl 4591e40712 Potential fix for Indiana Jones regression? 2019-10-28 09:31:42 +01:00
patrickvl ec25283551 Addressed code review remarks, by adding explanations in comments and renaming a few arguments 2019-10-28 09:31:41 +01:00
patrickvl eb9f610780 Move LowIndex and HighIndex values into DrawContext, GetVerticesInBuffer doesn't need to determine HighIndex again. Because of this, GetVerticesInBuffer has been removed, and the determination was inlined into CxbxVertexBufferConverter::Apply() 2019-10-28 09:31:41 +01:00
patrickvl 29ab156d44 Fix GetVerticesInBuffer for indexed draws, this might actually fix missing geometry.
Draw closing line (for a line loop) through vertex copies (to avoid a potential performance penalty when the old, index-based approach spanned over many indices).

Renamed a few variables to make their contents and purpose more clear
2019-10-28 09:31:40 +01:00
patrickvl 2504de39c8 Turned ConvertedIndexBuffer into a class that in it's destructor releases the host index buffer.
With that, added poor-mans IndexBuffer cache eviction.
Moved our way of calling CreateIndexBuffer into it's own function.
Condensed generation of quad-to-triangle index data into one function.
Renamed a bunch of variables, and added a few comments.
2019-10-28 09:31:40 +01:00
patrickvl 3d58eba6b8 Cleanup, additional testcases and one fix for a corner-case (closing line-loops should take BaseVertexIndex into account) 2019-10-28 09:31:40 +01:00
patrickvl fce300d25a Small fixes, but not for the regression, yet. 2019-10-28 09:31:39 +01:00
patrickvl fedd9fbf67 Cleaned up and expanded upon commented test-case 2019-10-28 09:31:38 +01:00
patrickvl a26560a8ee Documented a few more known test-cases 2019-10-28 09:31:07 +01:00
patrickvl 14091b03a4 Speed up drawing indexed quads, by converting the indices (from ABCD quads to ABC+CDA triangles), and doing one call with those indices (instead of drawing each quad separately) 2019-10-28 09:30:29 +01:00
patrickvl af35d9b161 Dumping of vertex declaration now also shows the number of streams (like before it was extracted into it's own function).
Also commented on vertex shader temporary register counts and r12+oPos behavior
2019-10-19 15:57:20 +02:00
patrickvl 0366e647a5 Dump vertex shader separately from conversion 2019-10-19 14:55:20 +02:00
literalmente-game f8e660aa40
Add missing dcl statement
Fixes blank shader compilation
2019-10-17 03:44:54 -03:00
Luke Usher 3c497362e4
Merge pull request #1746 from PatrickvL/fix_vertex_decl_skip_token
Fix vertex conversion when skip tokens are present in the Xbox vertex declaration
2019-10-16 13:01:38 +01:00
Luke Usher 1914e17078 Typo 2019-10-14 16:29:18 +01:00
patrickvl 6ef5b21144 Fix vertex conversion when skip tokens are present in the Xbox vertex declaration. 2019-10-14 14:56:32 +02:00
Luke Usher 4646c14c29 Restore fog hack: Fixes Silent Hill 2 2019-10-14 08:01:15 +01:00
Luke Usher dae0d84f9b Fix an issue with reading FOGCOLOR in a pixel shader 2019-10-12 19:21:24 +01:00
Luke Usher b0ace63021 Fix smashing drive intro 2019-10-12 13:48:34 +01:00
Luke Usher f2235ab522 Fix missing fog in DolphinClassic 2019-10-11 08:42:03 +01:00
Luke Usher c79b11109f Fix crash in pixel shaders caused undefined behavior in LTCG handler 2019-10-08 16:24:47 +01:00
Luke Usher 9537158007 Fix nasty bug with LTCG D3DDevice_SetPixelShader_0 2019-10-07 17:03:54 +01:00
Luke Usher 58e0416a96 another typo 2019-10-07 15:58:27 +01:00
Luke Usher de2b891d60 Typo 2019-10-06 21:13:34 +01:00
Luke Usher fdbd9fb2ab Add removed patches to unused-patches file. 2019-10-06 17:21:16 +01:00
Luke Usher 94c79876d2 Fix broken pixel shaders (Rallisport Challenge, etc) 2019-10-06 17:21:00 +01:00
Luke Usher 5d0b44303c Fix a regression with XDK 4432 (Buffy and others) 2019-10-05 14:50:50 +01:00
Luke Usher 422e95db88 Remove all RenderState/TextureState Patches, bar one.
With this work, all of these patches are no longer required, and
instead, are replaced with a RenderStateConverter and
TextureStateConverter object

One single render state patch (D3DDevice_SetRenderState_Simple) is still
required, as that bypasses the D3D__RenderStates array in some XDK
versions.
2019-10-03 19:03:37 +01:00
Luke Usher 31078f7307 Add support for Xbox Controller S 2019-09-29 14:47:59 +01:00
RadWolfie 0b0ad41ddb fix wchar_t buffer uneven allocate memory 2019-09-28 21:22:29 -05:00
RadWolfie 19ca5361af fix new GUI input breakage for loader projects to compile 2019-09-27 11:08:21 -05:00
RadWolfie f38dc91075 replace std's wstring_convert to SDL's iconv library 2019-09-26 10:19:01 -05:00
RadWolfie b4457c3605 replace experimental filesystem to std filesystem 2019-09-25 13:53:02 -05:00
PatrickvL a6c0353c5b Fix a large part of XTL-hell (#1731)
* Rename g_CurrentXboxVertexShaderHandle to g_Xbox_VertexShader_Handle

* Remove CxbxDrawContext.XboxVertexShaderHandle field, and replaced reads from this field by g_Xbox_VertexShader_Handle (since all writes to this field used that as source)

* Removed commented-out #include's

* Removed duplicate DEF_VSH_* defines, replaced usage by existing X_D3DVSD_*() defines.

* Removed commented-out #include's from src/vsbc

* Removed nearly all "namespace XTL"-wrappers around #includes; Instead, wrap applicable contents of these included files in namespace XTL. Removed all now-obsolete "XTL::" prefixes.

* Moved all host D3D9 symbols outside of namespace XTL (finally!)

* Removed all "using namespace XTL;" occurences (except one, which is marked with a TODO)

* Restored Unix EOL style (to avoid large diffs with upstream)

* Moved CxbxInitAudio outside XTL namespace (this was the last Cxbx* symbol in XTL)

* Removed final "using namespace XTL" occurence by cleaner wrapping of logging intrinsics inside and outside namespace XTL.

* Prefix a few Xbox types with X_ (and avoid compile-error by removing the now-obsolete duplicate of X_D3DCALLBACK).
Also nicely indent all Direct3D9 alias defines, introduced when porting from Direct3D8. Who knows, one day we might re-define them once again to port to more recent Direct3D versions?

* Made EmuXTL.h obsolete, by #include'ing specific headers instead of it.

* Removed unused #include's of EmuFS.h

* Remove #pragma once, when there's already an include guard present.

* Delete EmuXTL.h and XOnline.cpp, keep but disable XOnline.h for documentation purposes.

* Fix all compiler warnings that have no functional impact. What's left requires more research

* Remove GetVersion, retain Wine check
2019-09-24 16:25:52 -05:00
Luke Usher fa38cd41b2
Merge pull request #1730 from RadWolfie/fix-delay-input
Implement Input Initialize Latency Timer & Device Emulation Status
2019-09-20 16:29:37 +01:00
RadWolfie d5f79df0b7 implement input initialize latency timer and device emulation status 2019-09-17 11:45:11 -05:00
PatrickvL 0c470044fb Removed never-set union field : X_D3DVertexShader.CxbxVertexShaderHandle to avoid using garbage data. 2019-09-17 09:57:57 +02:00
PatrickvL 456906b6b4 Removed written-only field : CxbxVertexShader.HostDeclarationSize 2019-09-17 09:51:57 +02:00
RadWolfie 796561dd6c
Merge pull request #1725 from PatrickvL/moving_d3d_types
* Moved XbPushBuffer.h, XbVertexBuffer.h and XbVertexShader.h outside the XTL namespace.
Moved Cxbx-specific types from XbD3DTypes.h towards appropriate above header files.
Fixed up all XTL-hell that resulted from this.

* Moved XbConvert.h outside the XTL namespace.
Fixed up all XTL-hell that resulted from this.

* Moved XbPixelShader.h outside the XTL namespace.
Fixed up all XTL-hell that resulted from this.

* Moved XbState.h outside the XTL namespace.
Fixed up all XTL-hell that resulted from this.
2019-09-14 15:06:41 -05:00
ergo720 7c300c14ed
Merge pull request #1721 from RadWolfie/gui-input-fix-detect
Fix Bind Input Detection
2019-09-14 11:16:40 +02:00
PatrickvL fee97614c2
Merge pull request #1726 from NZJenkins/king_kong2
Detect and remove register redefinitions in vertex declarations
2019-09-14 09:43:34 +02:00
RadWolfie 14221d0cca fix detect input 2019-09-13 16:50:58 -05:00
PatrickvL a407b40f46 Moved XbState.h outside the XTL namespace.
Fixed up all XTL-hell that resulted from this.
2019-09-13 14:35:02 +02:00
PatrickvL 7aa793b6b7 Moved XbPixelShader.h outside the XTL namespace.
Fixed up all XTL-hell that resulted from this.
2019-09-13 13:37:41 +02:00
PatrickvL a6dd0c49a6 Addressed review-comment (removing unneeded XTL namespace prefix) 2019-09-13 13:07:07 +02:00
Anthony Miles 07d53c0e2b fixup commit
- free pXboxDeclarationCopy
- use bitset instead of array
- include method in sort
2019-09-13 20:46:19 +12:00
PatrickvL 98c89ec656 Moved XbConvert.h outside the XTL namespace.
Fixed up all XTL-hell that resulted from this.
2019-09-12 17:46:16 +02:00
patrickvl 32e155e1ba Moved XbPushBuffer.h, XbVertexBuffer.h and XbVertexShader.h outside the XTL namespace.
Moved Cxbx-specific types from XbD3DTypes.h towards appropriate above header files.
Fixed up all XTL-hell that resulted from this.
2019-09-12 17:46:16 +02:00
RadWolfie b01a6c97cf
Merge pull request #1722 from PatrickvL/vsh_cleanup
Moving, reordering, renaming and other cleanup of D3D symbols
2019-09-12 10:30:12 -05:00
PatrickvL eb4db9a27a Moving, reordering, renaming and other cleanup of D3D symbols (all taken from my Vsh_unpatching branch) 2019-09-12 09:34:58 +02:00
Anthony Miles 1d6fd7e851 Detect and remove register redefinitions 2019-09-12 18:56:27 +12:00
Anthony Miles 6b5f4036c1 Initialize pCurrentvertexShaderStreamInfo to nullptr 2019-09-11 22:26:49 +12:00
Luke Usher 614e7e4b9f Fix crash on CopyRects failure 2019-09-09 22:12:46 +01:00
ergo720 f6e331f484 Add default bindings for the keyboard 2019-09-09 12:39:27 +02:00
PatrickvL 278d511794 Lots of cleanup regarding vertex declarations and shaders (#1709) 2019-09-06 10:56:53 -05:00
ergo720 d8b0075c93 New input gui (#1713) 2019-09-05 16:10:09 -05:00
Luke Usher 294447bba8 Fix CopyRects when upscaling is used 2019-09-05 19:23:18 +01:00
Luke Usher ef78455516 Fix CreateTexture errors 2019-09-04 18:45:12 +01:00
Luke Usher f76408a03d Fix an issue where converting a texture to a render-target would sometimes fail 2019-09-04 18:26:54 +01:00
Luke Usher 8c55274cb3 Fix CopyRects in Crash Bandicoot: WoC (and others) 2019-09-04 18:26:48 +01:00
Luke Usher b236e94935 Fix a nasty bug where CopyRects never worked! 2019-09-04 18:26:14 +01:00
Kyle Niewiada 9be770163e Align structure to correctly map Xapi controller capabilities 2019-08-28 17:11:43 -04:00
Luke Usher f48f267c89 Fix an issue where D3DDevice_SetRenderTarget would fail, if called on a
surface we didn't previously create as a Render Target

The Xbox ignores the D3DUSAGE_RENDERTARGET flag, but the host *requires*
it.

We can't determine if a surface is a render target until the game calles
D3DDevice_SetRenderTarget, so if we encounter a call on a non-render
target, we can fix the situation and recreate it as such

Fixes the 'Graffiti Select' menu in JSRF
2019-08-25 14:40:15 +01:00
PatrickvL fce723c93b
Merge pull request #1704 from LukeUsher/fix-copyrects
Fix CopyRects between textures, on GPU
2019-08-25 15:22:04 +02:00
PatrickvL a77403b7b6
Merge pull request #1703 from LukeUsher/fix-level-face-surface
Fix surface level/face mapping without patches!
2019-08-25 15:14:52 +02:00
Luke Usher a031875793 Fix CopyRects between textures, on GPU 2019-08-25 14:00:41 +01:00
PatrickvL c3f6233ca2
Merge pull request #1702 from LukeUsher/move-container-type-check
Move pixel container type check to GetHostBaseTexture
2019-08-25 14:52:11 +02:00
Luke Usher de1bc00334 Fix surface level/face mapping without patches! 2019-08-25 13:46:07 +01:00
Luke Usher 6c30058a40 Move pixel container type check to GetHostBaseTexture 2019-08-25 13:40:43 +01:00
Luke Usher a4338e08f3 Unpatch D3DResource_Release, detect freeing of resources via DestroyResource instead 2019-08-25 13:35:59 +01:00
Luke Usher afe76e0bba Update XbSymbolDatabase to latest version as of today 2019-08-25 12:28:21 +01:00
Luke Usher 548eeba924 Remove LockFS from the functions that don't require locking 2019-08-16 20:15:38 +01:00
Luke Usher 688238c40b
Merge pull request #1688 from NZJenkins/framerate_key
Frame limiter toggle
2019-08-03 08:19:20 +01:00
Anthony Miles a38138db52 Frame limiter toggle and F9 debug key binding 2019-08-02 22:13:17 +12:00
Anthony Miles e36907542b Avoid consuming some keypresses in the GUI 2019-08-02 22:12:23 +12:00
Anthony Miles 11f005b14c Remove extra UnlockFS() call 2019-08-02 19:42:47 +12:00
Anthony Miles 5e1851fcad Preserve caller esp value 2019-08-02 19:42:47 +12:00
PatrickvL f62030a548
Merge pull request #1683 from LukeUsher/vertex-shader-register-tweaks
Vertex shader register tweaks
2019-07-29 11:30:09 +02:00
Luke Usher 31253815e1 Define constants + fix typos 2019-07-29 09:19:10 +01:00
Luke Usher ab3b8f84ae Fix potential stack corruption, thanks revel8n 2019-07-28 14:26:43 +01:00
Luke Usher cdd962e5a4 3925 alpha test hack 2019-07-28 14:26:43 +01:00
Luke Usher d2e65f0e67 Fix vOffset/vScale overwritten by nv2a constants 2019-07-28 14:26:19 +01:00
Anthony Miles 99f4c460b8 Improve LockFS performance 2019-07-27 11:22:41 +12:00
Luke Usher 35ce3e7fb1 Treat all vertex registers as 'User Defined' 2019-07-25 16:23:39 +01:00
Luke Usher ae4dbce372 Comment out warnings that pollute the log 2019-07-25 12:11:59 +01:00
Luke Usher 6ced176977 Cleanup + R12 oPos readback 2019-07-25 07:39:24 +01:00
Luke Usher bcc7f0c650 Remove R12 replace hack: VS2_X has enough registers 2019-07-25 07:14:53 +01:00
Luke Usher b62b8341cc 3925 fog disable hack 2019-07-24 18:37:03 +01:00
Luke Usher 6326602232 Writeback vertex attributes 2019-07-24 18:34:39 +01:00
Luke Usher fb871f283f Prevent new R registers being trashed 2019-07-24 15:36:56 +01:00
Luke Usher 893a25baf2 Pass default values at SetVertexShader time 2019-07-24 15:26:50 +01:00
Luke Usher 5bfb98c312 Read registers not present in vertex buffers from SetVertexData4f registers 2019-07-24 14:39:58 +01:00
Luke Usher 8d8e256697 Update SetVertexData4f to write it's input to shader constants 2019-07-24 12:00:32 +01:00
Luke Usher b5cec3e8fc Cleanup Register Usage detection + Remove incorrect Xbox->PC mappings (From D3D8to9) 2019-07-24 11:52:19 +01:00
Luke Usher 931970068c Fix when CreateDevice doesn't call SetRenderTarget
This allows for the Xbox backbuffer location to be properly determined, even in titles that do not call
SetRenderTarget at all!

Tt also fixes the situation where games didn't call SetRenderTarget internally within CreateDevice.

This works because GetRenderTarget always returns the assigned render target, which immediately after
CreateDevice, is *always* the backbuffer.

This allows us to reliably determine the default backbuffer and depth stencil, even without a CreateDevice call.

This fixed a regresion in Shin Megami Tensei: Nine , and has potential to fix some more blackscreen issues.
2019-07-21 12:37:06 +01:00
RadWolfie d4f8ec93bf
Merge pull request #1679 from ergo720/error_log_lv
Add error log level to logging system
2019-07-20 22:20:45 -05:00
ergo720 fd4bcb39ff Added error log level 2019-07-20 21:53:15 +02:00
Luke Usher 4a3f9a19a4 Allow LoadVertexShaderProgram to work in games without their own CreateVertexShader function 2019-07-20 11:56:13 +01:00
RadWolfie e646eada8d fix universal error message output 2019-07-20 01:47:46 -05:00
ergo720 7f70c88917 Fix a bug in KiTimerMtx.Acquired (#1675) 2019-07-20 00:36:53 +02:00
RadWolfie 0c334de398
Merge pull request #1674 from ergo720/d3d_resource_crash_fix
Fix a crash in JSRF
2019-07-19 15:08:09 -05:00
ergo720 19984db979 Fix a crash in JSRF 2019-07-19 21:17:42 +02:00
RadWolfie 99fc299611
Merge pull request #1672 from LukeUsher/fix-shader-constants
Fix shader constants: It's per-function not per-XDK
2019-07-19 13:56:51 -05:00
PatrickvL 69ebe1b4ba
Merge pull request #1669 from LukeUsher/work-around-for-missing-destroyresource-patch
Workaround & LOG_TEST_CASE for missing DestroyResource patch
2019-07-19 10:08:17 +02:00
PatrickvL 8cba41744f
Merge pull request #1670 from LukeUsher/ltcg-fixes
Improve some LTCG specific patches
2019-07-19 10:07:38 +02:00
Anthony Miles 0ea66ea0d8 Avoid tight loop in LockFS. Fixes Prince of Persia 2 slowdown during loading screen 2019-07-19 18:42:59 +12:00
Anthony Miles 63996f87eb Avoid tight loop in interrupt thread. Alleviates some stutter in Panzer Dragoon Orta 2019-07-19 18:41:50 +12:00
Anthony Miles 9c4277ae9b Avoid tight loop in DirectSound thread worker 2019-07-19 18:41:14 +12:00
Luke Usher fdaa102dc8 Fix shader constants: It's per-function not per-XDK 2019-07-18 22:20:55 +01:00
RadWolfie 64f1948dd9 hotfix GenerateMixBinDefault check for lpwfxFormat is nullptr 2019-07-17 16:21:29 -05:00
Luke Usher 87aa125af4 Fix another LTCG variant of CreateDevice 2019-07-17 22:20:59 +01:00
Luke Usher 511fd017f5 Add two more LTCG specific patches 2019-07-17 19:44:16 +01:00
Luke Usher abe82f0336 Update to be informational only 2019-07-17 14:58:51 +01:00
Luke Usher 4190b81431 Add an early-out for non-zero internal reference count 2019-07-17 10:12:01 +01:00
Luke Usher bd3569ff95 Workaround & LOG_TEST_CASE for missing DestroyResource patch 2019-07-16 21:17:35 +01:00
Luke Usher 53ea7f102d Fix a bug with D3DDevice_Reset that could trigger a black screen on resolution change 2019-07-16 20:50:13 +01:00
Luke Usher 059c587523 Remove 'Render to Host Backbuffer' hack 2019-07-16 16:53:04 +01:00
PatrickvL 337a9f6914
Merge pull request #1655 from LukeUsher/seperate-render-and-display-resolution
Higher Resolution Rendering Support
2019-07-15 07:05:55 +02:00
RadWolfie 82b2c3559d
Merge pull request #1662 from NZJenkins/input_hack
Device connection delay hack
2019-07-14 22:39:26 -05:00
PatrickvL 3a0c0bb6a0 Pixel shader upgrading (#1631)
* Remove support for shader models older than 2.0 while keep existing functionality intact.
* Fixed combiner output flags parsing (it didn't use a bitmask before)
* Separate decoding of register combiner registers from generation of pixel shaders.
* Added LOG_TEST_CASE's for the three cases that weren't hit before, so that we can gather titles that hit those cases.
* Remove remnants of code that supported pixel shader versions below 2.0.
Also addressed a few TODO's, by applying the IsArithetic() check instead of checking for opcodes > PO_TEX
2019-07-14 21:16:51 -05:00
RadWolfie 64f7822c1c
Merge pull request #1657 from gellis713/fixing-issue-1656
Show Disabled Selection in Network Configuration
2019-07-13 18:03:06 -05:00
gellis713 56e08b03cb Ensure "Disabled" is an option before and after first apply of adapter to prevent crashes. 2019-07-13 17:27:43 -05:00
Luke Usher aeba69c71d Fix FMV scaling in Star Wars: KOTOR 2019-07-13 22:37:10 +01:00
Anthony Miles d0d8b864bd fixup g_ prefix 2019-07-13 19:21:50 +12:00
Anthony Miles 15bccb3e06 Defer gamepad connection hack
- Don't immediately connect gamepads on the first connection query
- Remove per-title input hacks
- Move device connection logic to function
2019-07-13 19:19:57 +12:00
Luke Usher 26f7bb130a Small, but significant performance tweaks 2019-07-12 20:48:38 +01:00
Luke Usher 16cb3faf23 Revert "Tweaking cache values"
This reverts commit 1a0d55b473.
2019-07-11 20:37:14 +01:00
Luke Usher 1a0d55b473 Tweaking cache values 2019-07-11 18:16:03 +01:00
Luke Usher 3ccc02b7f4 Fix crash in DOA2 and GTA 2019-07-10 18:55:08 +01:00
Luke Usher fe1285dc50 Minor performance tweak 2019-07-10 11:30:52 +01:00
Luke Usher 1e7b6891a3 Higher Resolution Rendering Support 2019-07-10 11:03:38 +01:00
RadWolfie b4b9f18769 fix warning and use current i variable than misuse same variable
Oops...
2019-07-09 15:54:54 -05:00
RadWolfie a06341e0d2 relocate enter/leave critical section into dsound's patch functions 2019-07-09 15:54:54 -05:00
RadWolfie c5b374e110 connect APIs to the mixbin functions 2019-07-09 22:30:06 +02:00
RadWolfie c0c21253ec Add GetVoiceProperties and SetMixBins hybrid functions 2019-07-09 22:30:06 +02:00
RadWolfie 20a237cbe9 fix parameters for SetMixBins patch functions 2019-07-09 22:30:06 +02:00
RadWolfie 5ebcd73d9c Interface default creation to InitVoiceProperties function. 2019-07-09 22:30:06 +02:00
RadWolfie 73d40777f6 add GenerateMixBinDefault and InitVoiceProperties functions 2019-07-09 22:30:06 +02:00
RadWolfie ced70f2334 Prepare to use DSVOICEPROPS for buffer/stream classes. 2019-07-09 22:30:06 +02:00
RadWolfie 7039332abd fix X_DSMIXBINVOLUMEPAIR typo 2019-07-09 22:30:06 +02:00
RadWolfie 63663301f2 separate D3D8 build version away from general build version
Plus prepare DSOUND build version to be use.
2019-07-07 16:59:52 +02:00
gellis713 0be1370d0b Removes _XBOXKRNL_XXXX defines and dependency in xboxkrnl/xboxkrnl.h 2019-07-05 18:45:36 -05:00
Luke Usher 62a0e48f9c Update comment with more info 2019-07-03 08:37:03 +01:00
Luke Usher bd3dccf3f6 Fix dashboard black screen with backbuffer hack by always scaling viewport for backbuffer hack on the default render target 2019-07-03 08:31:34 +01:00
Luke Usher 196f1a74fd Disable new behavior when backbuffer hack is enabled: The two are incompatible 2019-07-03 08:19:26 +01:00
Luke Usher eec144e2e2 Fix black screen in some titles when switching resolutions during gameplay
This contains a bug fix that can be seen on the MS dashboard (Clipped viewport values were never copied back to HostViewPort)

And one that was a previously unknown behavior (changing backbuffer width/height without a call to SetRenderTarget)
a LOG_TEST_CASE has been added for the new behavior, and a fix has been applied by destroying the existing host render target, and creating a new one.

Known PR Test Cases:
 - MS Dashboard 'Video Mode' settings menu (When switching between 'widescreen', 'letterbox', 'normal')
 - Chihiro Factory Test Program (requires chihiro-work branch)
2019-07-02 12:33:15 +01:00
Luke Usher 952e7870cd Stub some 3D sound functions.
Fixes a crash in Conker & Kingdom Under Fire (+ probably lots more)
2019-07-01 22:42:28 +02:00
Luke Usher 87d6ae65f1 Fix a deadlock when some LTCG titles attempt to wait for vertical blank 2019-06-26 21:00:28 +01:00
RadWolfie 5f5e19a36d
Merge pull request #1618 from PatrickvL/IsSupportedFormat
Extracted IsSupportedFormat() method, now also called in bias-determination
2019-06-26 10:17:01 -05:00
patrickvl 071c072d59 Extracted IsSupportedFormat() method, now also called in bias-determination 2019-06-26 17:07:15 +02:00
Luke Usher 7851af5378 Prevent wasted call to WalkIndexBuffer when drawing indexed quadlists 2019-06-26 16:37:18 +02:00
Luke Usher f36cd0540a Implement Vertex Buffer Caching 2019-06-26 16:37:18 +02:00
Luke Usher 82307d7794 Fix a bug where the smashing drive fix was actually ignored 2019-06-25 09:14:19 +01:00
Anthony Miles c3f977f864 Ignore D3DVSDT_NONE 2019-06-21 21:50:16 +12:00
Luke Usher 70ef251e4e
Merge pull request #1641 from NZJenkins/key_handling
Call DefWindowProc when WM_KEYDOWN, WM_SYSKEYDOWN are not handled
2019-06-20 11:14:43 +01:00
Anthony Miles db01f729f7 Call DefWindowProc when WM_KEYDOWN, WM_SYSKEYDOWN are not handled 2019-06-20 21:49:55 +12:00
Luke Usher cf7fcc1603 Fix 'Smashing Drive' on AMD/Intel GPUs 2019-06-18 17:12:53 +01:00
patrickvl e150690646 Limit log sanitation of string buffers to a maximum length to avoid printing invalid characters 2019-06-15 16:30:23 +02:00
Luke Usher 59d0f36f2f
Merge pull request #1632 from ergo720/remove_dbgprintfex
Remove DBG_PRINTF_EX
2019-06-10 18:45:44 +01:00
Luke Usher a934d7619c
Revert "Prevent NVNet hogging cpu" 2019-06-10 18:42:02 +01:00
ergo720 0eb57e2578 Remove DBG_PRINTF_EX 2019-06-10 18:51:45 +02:00
Anthony Miles 8cf2f0e467 Remove unused logging macros
- LOG_ONCE
- LOG_XBOX_CALL
- LOG_FIRST_XBOX_CALL
2019-06-10 21:47:04 +12:00
Anthony Miles f74cd91404 Remove dev logging 2019-06-10 21:47:04 +12:00
Anthony Miles 1611559087 Remove DBG_PRINTF and remaining usages 2019-06-10 21:46:49 +12:00
Anthony Miles 9a7ded6a53 Replace DBG_PRINTF with EmuLog 2019-06-07 23:26:26 +12:00
Anthony Miles e97aecf278 Remove duplicate FLAG2STR 2019-06-07 23:24:10 +12:00
Anthony Miles 30badcd306 Fix DBG_PRINTF with missing newline 2019-06-07 23:24:10 +12:00
ergo720 71057b0486 Align TLSData to 16 byte boundary 2019-06-05 00:12:05 +02:00
Luke Usher 29249432b3 Fix an issue where the wrong depth buffer was selected 2019-05-30 20:11:22 +01:00
Luke Usher b5a05f27c2
Merge pull request #1621 from NZJenkins/vs_overflow
Use stringstream instead of fixed-size buffer to prevent overrun
2019-05-27 10:22:30 +01:00
Luke Usher 39c0dbb79c
Merge pull request #1620 from NZJenkins/vs_scalar_swizzle
Always apply scalar swizzle fix
2019-05-27 10:21:06 +01:00
Anthony Miles f8a503d69f fixup pointers, use references 2019-05-27 18:20:49 +12:00
Anthony Miles d4cbcc2d4a Add SetStreamSource stride zero test case 2019-05-26 22:49:33 +12:00
Anthony Miles 8cf90d7604 remove unnecessary to_string() 2019-05-26 21:32:36 +12:00
Anthony Miles 84fd493011 Use stringstream instead of fixed-size buffer to prevent overrun 2019-05-26 17:09:28 +12:00
Anthony Miles 55e2643afa Always apply scalar swizzle fix 2019-05-26 16:18:44 +12:00
RadWolfie 7373289804 fix cxbxr-debugger code to find resources correctly 2019-05-16 12:34:02 -05:00
RadWolfie c9a0141ca3 Delete CxbxDebugger.csproj
Oops
2019-05-16 12:32:49 -05:00
Luke Usher 6a29876b5e
Merge pull request #1611 from Cxbx-Reloaded/cmake
Use CMake build-system
2019-05-15 08:06:01 +01:00
PatrickvL 55c015c1b6
Merge pull request #1603 from NZJenkins/texbem_stage
Bumpmap bias tweaks
2019-05-15 07:14:33 +02:00
Luke Usher 561530a6c1 add HACK: note 2019-05-14 21:15:00 +01:00
Luke Usher cfde68d8d5 Selectively unpatch Fiber functions, fixes Futurama without breaking DOA games 2019-05-14 08:55:49 +01:00
Margen67 1a92e63866 Update http documentation links to https and fix (some) dead ones 2019-05-12 02:36:50 -07:00
RadWolfie e815f42e4c add cmake support 2019-05-10 19:07:58 -05:00
Luke Usher 84f6d322e1 Fix an issue with overlay blitting after StretchRects change 2019-05-08 10:03:04 +01:00
Anthony Miles 1bd79c29eb Bumpmap bias tweaks:
- Use inputStage for bias check
- SCALE_BX2 instead of BIAS
- Disable L6V5U5 biasing (for now)
2019-05-05 18:41:06 +12:00
RadWolfie d3caface5d fix VS 2019 compiler 2019-05-04 15:06:06 -05:00
Luke Usher 57238afbe5 Remove now-unused variable 2019-05-04 20:31:27 +01:00
Luke Usher a8dfc34678 Fix Begin/EndPush length calculation 2019-05-04 19:54:55 +01:00
Luke Usher 7af45097b7 Disable multisampling yet again...
It's a shame but the previous 'fix' only worked for the dashboard, and caused
issues in many games themselves.

For example, GTA3 only rendered to half-the-screen due to multisampling issues.

A better fix needs to be investigated and implemented, sadly, we can't rely on
D3D9's native multisampling as it prevents the buffers from being locked... which
Cxbx-R *requires*
2019-05-03 22:56:21 +01:00
Luke Usher 7d9b954491 Fix multisampling 2019-05-01 11:37:19 +01:00
Luke Usher cc552f3972
Merge pull request #1595 from LukeUsher/use-stretchrect
Use StretchRect to blit the Xbox backbuffer
2019-05-01 09:55:23 +01:00
Luke Usher 1626b9e4e4 restore param comments 2019-05-01 09:41:08 +01:00
Luke Usher ce51fdcd1c
Merge pull request #1593 from LukeUsher/bumpmap_bias
Selectively add bias modifier so bump-map is signed
2019-05-01 09:38:37 +01:00
Luke Usher fd5c575e88 Use StretchRect to blit the Xbox backbuffer
This is a huge performance increase when using higher resolutions while
the Render to Host Backbuffer hack is disabled.

This was not easily possible in D3D8, but now we have D3D9, we can use
StretchRect to prevent unnecessary GPU->CPU transfers.
2019-05-01 08:42:03 +01:00
Luke Usher deb5268df8 Prevent NVNet hogging cpu 2019-05-01 08:18:16 +01:00
Luke Usher 50d47fc881 Update fix based on new information 2019-04-30 13:53:01 +01:00
Luke Usher 96d2f24877 Apply a bias to texbem if an unsupported input format is used (JSRF fix) 2019-04-29 20:22:46 +01:00
Anthony Miles 9694153db8 Add bias modifier so bumpmap is signed 2019-04-28 11:55:44 +12:00
ergo720 884cef91e9 Move EmuLog(Ex) together with the other logging functions 2019-04-21 14:27:23 +02:00
Luke Usher d5ac72d8cd Don't overrite initial Xbox RenderState/TextureState values 2019-04-17 13:49:51 +01:00
Luke Usher ab8a971215 Fix when titles attempt to create declaration only shaders, slightly improves Sonic Heroes 2019-04-17 13:49:51 +01:00
Luke Usher d58a69a9db Use Xbox definitions 2019-04-17 13:49:51 +01:00
Luke Usher f8af77d0e1 Fix when 3DDevice_LoadVertexShaderProgram is called while an FVF shader is set 2019-04-17 13:49:51 +01:00
Luke Usher 43e147777c Add LOG_TEST_CASE for previously unknown behavior
A fix for this scenario will be investigated soon
2019-04-17 13:49:51 +01:00
Luke Usher 53dc6441c6 Fix an issue with mipmap levels when using non-square textures 2019-04-17 13:49:51 +01:00
RadWolfie 82909b939f add "Disable mute on unfocus" option to audio settings 2019-04-12 16:06:58 -05:00
RadWolfie 5d973b2dec fix Visual Studio resource generated files 2019-04-12 13:44:07 -05:00
PatrickvL e9afda2f0a
Merge pull request #1584 from LukeUsher/star-wars-dvd-demo
Allow XBE Section preload to fail
2019-04-11 13:05:48 +02:00
Luke Usher 3c3305a17a Update Comment 2019-04-11 09:50:46 +01:00
Luke Usher 4dbeab62ac Allow XBE Section preload to fail
Since all sections in all Xbes are usually marked as preload, the Xbox
kernel attempts to load them all regardless.

In some titles (for example, Lego Star Wars DVD demo) the whole XBE is
too large to fit in RAM, and it is *expected* for the preload to fail.

Previously, when hit with this scenario, Cxbx-R would hard crash.

Now it mirrors hardware behavior and gracefully continues, skipping the
failed Xbe section.

Q: Why is this the case?
A: It's possible (and proven) that with titles such as the Lego Star Wars
DVD Demo, *all* game data is contained within the XBE file, rather than
on-disc as raw files. Naturally, these are too big to fit into the Xbox
RAM, so certain large sections fail to allocate, and are skipped
entirely by the Xbox Kernel.

The game then reads data from these sections by *not* loading them to
memory, but parsing the section *headers* to do raw file-io and read the
Xbe file as a binary blob, parsing the virtual filesystem.

This change allows Lego Star Wars DVD Demo (and other large Xbe titles)
to boot.

Lego Star Wars DVD Demo doesn't work yet, however, as it attempts a
dashboard update and fails, but it no longer crashes the whole emulator.
2019-04-11 08:32:39 +01:00
Luke Usher 10badd5f8f
Merge pull request #1583 from NZJenkins/unset_textures_on_release
Clear released texture from EmuD3DActiveTexture
2019-04-11 08:26:05 +01:00
Anthony Miles 35c3981f7d Clear released texture from EmuD3DActiveTexture 2019-04-10 21:22:42 +12:00
Anthony Miles b859491b19 Log non-texture resources passed to GetHostTexture 2019-04-10 21:16:49 +12:00
Luke Usher 843c65a11c Add dummy item where UncapFramerate used to sit, add note to explain why 2019-04-08 14:58:45 +01:00
Luke Usher 2ad5cfce8d Feedback 2019-04-08 11:01:42 +01:00
Luke Usher 8b2e758377 Respect Xbox presentation interval
This allows us to improve our frame-limiter, so that we can disable it
if a game does not require a fixed frame-rate, and enable it for titles
that do.

Result:
XDK Samples can now run at high frame-rates (100+ fps) without effecting actual
speed (just like on real hardware)

Dashboard can reach over 100fps, and still run at the correct speed

JSRF and other titles that tie game speed to frame-rate are limited to
60FPS.

Fixed broken VSYNC handling too: Disable VSYNC has been broken since the
D3D9 port, perhaps before then.
2019-04-08 08:11:12 +01:00
PatrickvL 13daf887c0
Merge pull request #1578 from LukeUsher/fix-render-texture-states
Minor Cleanup of Render State and Texture State handling
2019-04-07 13:07:05 +02:00
Luke Usher a0e8bb8973 Feedback 2019-04-07 09:21:11 +01:00
Luke Usher 372de28d7b Reduce D3DTOP >= 4361 exception to >= 4134: Fixes DOA3 PAL 2019-04-06 14:07:43 +01:00
Luke Usher 04b311ec8c Restore StageIndex-- 2019-04-05 15:09:21 +01:00
Luke Usher 67569172cb More point sprite tweaks 2019-04-05 14:45:00 +01:00
Luke Usher 2d8f5124da Improve mappings of D3DTOP values for earlier XDKs
TODO: Verify when the values changed, it must be somewhere between 3911 and 4361 but where?
2019-04-05 14:30:00 +01:00
ergo720 9270091d99 Fix a deadlock in KiTimerExpiration caused by KeWaitForSingleObject
This also fixes LLE USB not working for homebrews
2019-04-05 14:09:06 +02:00
Luke Usher a4741d5c3e Fix issue where Portable Mode would still default to AppData for EmuDisk 2019-04-05 10:48:23 +01:00
Luke Usher 9897c8daeb Explicitly map RenderState values
Prevents incorrect mappings from going accidentally un-noticed
Also implements X_D3DRS_WRAP2/X_D3DRS_WRAP3, as well as D3DWRAPCOORD_3 which were previously ignored.
2019-04-05 09:44:54 +01:00
Luke Usher c37fe2595e Fix broken textures caused by off-by-one error (solve regressions) 2019-04-05 09:42:30 +01:00
Luke Usher 21377baf93 Fix broken/incorrect X_D3DTSS_ALPHAOP values.
Fixes broken cloth polygons in Dead or Alive 3.
2019-04-04 20:07:51 +01:00
Luke Usher 11daaac408 Remove EmuD3DRenderStateSimpleEncoded, use DxbxRenderStateInfo instead
This code is easier to maintain, easier to extend, and removes more
legacy cruft from original Cxbx.
2019-04-04 14:32:15 +01:00
Luke Usher f6c2544c22 Slightly better way of handling Point Sprites in XbState 2019-04-03 12:03:36 +01:00
Luke Usher ed559e5fd6 Cleanup XbState code: Preparing for bug fixes/improvements 2019-04-03 11:47:32 +01:00
Luke Usher 7d4e260c33 Cleanup XbConvert as a whole: Less magic, more mapping, more logging of unsupported features 2019-04-02 11:16:14 +01:00
RadWolfie 1affa2a680 hotfix for convert uint16_t to uint32_t as should be for nBlockAlign equation 2019-03-28 00:26:50 -05:00
Luke Usher 70531f6cdb Stop SetScreenSpaceOffset from spamming log files 2019-03-27 23:12:01 -05:00
Luke Usher e7f65b55f1 Implement CDirectSoundStream_GetInfo proper 2019-03-27 23:12:01 -05:00
RadWolfie 52357b7ac8 fix nBlockAlign equation 2019-03-27 22:14:43 -05:00
PatrickvL d3730519d3
Merge pull request #1574 from LukeUsher/use-standard-types
Use standard types from cstdint rather than custom typedefs
2019-03-27 17:14:02 +01:00
Luke Usher aeca3d3d92 Use standard types from cstdint rather than custom typedefs 2019-03-27 15:54:17 +00:00
Luke Usher 8e530e3ec6 Add GunValkyre PAL (IG-023) to Input Hack list 2019-03-27 13:55:43 +00:00
RadWolfie 0fdc7ec7ae
Merge pull request #1572 from LukeUsher/nvnet-revisited
Introduce Network Support (System Link/Lan)
2019-03-26 11:08:46 -05:00
Luke Usher ec2ae6e95a Line Endings 2019-03-26 15:43:34 +00:00
Luke Usher 0c6e9d1b10 ASCII art + log changes 2019-03-26 08:07:12 +00:00
Luke Usher 66d8e27906 Bump settings version 2019-03-26 08:03:36 +00:00
Luke Usher af8cc693df Fix eeprom Reset 2019-03-25 22:26:31 +00:00
Luke Usher 20aa13b44e Rebuilding network support from NVNet Branch
Randomly generate Mac and Serial for new EEPROMs: Thanks dracc
Delay load pcap: Allows the emulator to run (without networking) when pcap isn't present
2019-03-25 19:20:34 +00:00
Anthony Miles ca6c4bf035 Fix warning passing ushort to set1 2019-03-23 22:49:10 +13:00
ergo720 d370c89a44 Fix a bug in KiClockIsr affecting slower host CPUs 2019-03-20 14:16:25 +01:00
ergo720 00cbd82cd9 Squashed commit (Update copyright texts) 2019-03-12 18:58:24 +01:00
PatrickvL bb8bb334d1
Merge pull request #1567 from ergo720/rsa_update2
Alternative RSA implementation
2019-03-12 10:27:03 +01:00
ergo720 9651cc8ba6 Fixed typo in mbedtls_swap_endianness 2019-03-11 22:45:38 +01:00
ergo720 1bbd2e1cc8 Moved swap_endianess to EmuRsa.cpp 2019-03-11 21:16:35 +01:00
ergo720 1b22c80c5c Small update 2019-03-11 20:44:38 +01:00
ergo720 7dafc03484 Remove obsolete comment 2019-03-11 18:48:18 +01:00
ergo720 017f6a2e7a Use libtommath to do rsa 2019-03-11 18:39:22 +01:00
Anthony Miles 0dce158641 Make WalkIndexBuffer implementation extern, fixing repeated bootstrap calls 2019-03-10 20:24:30 +13:00
Anthony Miles ce61520e15 Fix truncation warning with explicit cast 2019-03-06 21:38:42 +13:00
Jannik Vogel af0c85286f Implement `XcModExp` 2019-03-04 04:07:47 +01:00
Jannik Vogel e1850c4277 Fix `gigimport` in RSA 2019-03-04 04:07:42 +01:00
Jannik Vogel e0df0d6d9e Use `const` in RSA related pointers 2019-03-04 04:07:39 +01:00
Fisherman166 aea3e27ab1 Remove ascii CXBX headers from all source files. 2019-03-02 20:06:24 -08:00
ergo720 a69553c1b6 Fix xbe loading when section filesize is zero 2019-03-02 19:05:46 +01:00
RadWolfie 4e772d296e Add todo notes 2019-02-19 22:09:11 -06:00
RadWolfie 885b1ba10f Added Xbox DS(S|B)CAPS flags verbose 2019-02-19 22:09:11 -06:00
RadWolfie 1607c5a386 Added 3 more verbose log detail to DirectSound plugin
Added WAVEFORMAT_CHANNEL, WAVEFORMAT_TAG, and DS_BCAPS
2019-02-19 22:09:11 -06:00
RadWolfie 553883322c Include every documented flag/enum/struct from XbDSoundTypes.h for automate verbose output 2019-02-19 22:09:11 -06:00
RadWolfie 2d7378daa4 Ouput xbox to host conversion failure verbose for first buffer/stream creation.
It may not be enough verbose, though trying it out to gather information from user's issue.
2019-02-19 22:09:11 -06:00
RadWolfie 90339f1f58 Include DSound log macros 2019-02-19 22:09:11 -06:00
RadWolfie 55132da6a7 Move Xbox DSound types into its own header file. 2019-02-19 22:09:11 -06:00
PatrickvL cd442dbf8d
Merge pull request #1553 from LukeUsher/shader-constant-fix
Fix when titles use pushbuffers rather than SetVertexShaderConstant to update shader registers
2019-02-15 07:32:27 +01:00
RadWolfie 72501f8933 Add note
Since some titles are able to progress further. I'm adding a note for what progress had been made.
2019-02-14 22:11:54 -06:00
Luke Usher 13d761f149 Make HLE D3D read state, rather than NV2A push it 2019-02-14 18:37:54 +00:00
RadWolfie c9db98db28 Add fix for if requested size is 0 without given partial structure initialized
untested
2019-02-09 19:05:28 -06:00
RadWolfie c71d1be2a5 use shorter variable for host's lpwfxFormat 2019-02-09 19:03:01 -06:00
RadWolfie ff4da75524 Remove duplicate code
ENUM2STR_CASE_DEF is exactly the same as ENUM2STR_CASE

Since ENUM2STR_CASE is being used as primary, no longer need a reason to have duplicate maco method.
2019-02-05 02:36:37 -06:00
RadWolfie 3d1de11a9f Fixed macro bug for pointer
Before: 0x0000000x0AFEF598

Now: 0x0AFEF598
2019-02-05 02:01:53 -06:00
Luke Usher c29eabb75e
Merge pull request #1543 from Fisherman166/RtlCaptureContext_implementation
Implement RtlCaptureContext
2019-02-03 16:25:03 +00:00
Fisherman166 27573b6629 Implement RtlCaptureContext using knowledge from reverse engineering an official kernel. 2019-02-02 22:19:35 -08:00
a.miles.nz@gmail.com 50554a9f9b Check surface parent format matches surface format before creating it 2019-02-01 19:19:59 +13:00
ergo720 34bbcfde32 Updated some comments 2019-01-28 16:22:15 +01:00
ergo720 ebcb6ba9a0 Removed xhci-specific and other redundant code 2019-01-28 16:22:15 +01:00
ergo720 4ea53a885a Fix a crash caused by DBG_PRINTF 2019-01-28 16:22:15 +01:00
ergo720 07706ece4b Fix LLE USB: with this, it finally works 2019-01-28 16:22:15 +01:00
ergo720 dd435ad6d6 Added OHCI Regs logging 2019-01-28 15:42:46 +01:00
Luke Usher 9e11da1fe8
Merge pull request #1535 from PatrickvL/pgraph_plugin_hle_state
Pgraph plugin hle state
2019-01-26 20:28:35 +00:00
Luke Usher 4ab6f3aee7
Merge pull request #1533 from PatrickvL/SetVertexData_short
Fix SetVertexData implementations that have arguments of type short (int16_t)
2019-01-26 20:28:21 +00:00
RadWolfie 279ad2a771 Also fix DS Stream FlushEx for envelope trigger 2019-01-24 21:31:11 -06:00
RadWolfie 0ac5b5050b Fixed DS Buffer StopEx process 2019-01-24 21:30:53 -06:00
RadWolfie 0461d709e6 Remove extra newlines for no reason 2019-01-24 21:30:48 -06:00
patrickvl aedd1537b5 D3D : SetVertexData[24]s always map their arguments to a floats in the range [-32768.0, 32767.0] (at least, that's what @mborgerson discovered in XQemu) 2019-01-23 21:54:42 +01:00
Luke Usher 9c519a0947 Restore comment 2019-01-23 08:19:34 +00:00
Luke Usher 7ec381651a Use Subfolder for Chihiro stuff, since there will be more roms required later 2019-01-23 08:16:37 +00:00
Luke Usher c6ee38b5d9 Chihiro XePublicKeyData for signature verification 2019-01-22 21:34:43 +00:00
RadWolfie ddd2cd8bdd HACK fix for DSound's LOCDEFER flag
Due to title doesn't passdown specific channels, I am assuming it is relying on hardware level to output the mixin audio.
2019-01-22 13:22:07 -06:00
Luke Usher 78cabcef00 Segaboot gets a little further now 2019-01-21 22:45:08 +00:00
Luke Usher efffea677e Update XBSymbolDatabase version 2019-01-21 16:09:40 +00:00
RadWolfie 4edfebb302 Fix executable directory path function 2019-01-17 21:42:39 -06:00
a.miles.nz@gmail.com 962b500c03 Add SSE WalkIndexBuffer implementation:
- SSE4.1 WalkIndexBuffer implementation
- SSE level detection
- Auto-select WalkIndexBuffer implementation
2019-01-17 20:07:27 +13:00
ergo720 499f80ff5f Fix wrong OHCI sof timer
With this, the HCD sends packets to the hub, but after a while it crashes and sets an unrecoverable error interrupt
2019-01-14 21:47:52 +01:00
ergo720 1cae4b093e Forgotten to update this in 1fb485a7bb 2019-01-14 12:38:27 +01:00
ergo720 1fb485a7bb Small update 2019-01-13 17:10:56 +01:00
ergo720 b3b73c3588 NtSetSystemTime: use nullptr 2019-01-13 03:25:43 +01:00
ergo720 3e0e47bbde Fix macro redefinition warnings introduced in #1520 2019-01-12 18:39:26 +01:00
ergo720 27f2316507 Revert "Enable LLE USB + add SDL submodule"
This reverts commit 2daca74be7bc93a0818233fd2023a1c07757bbb0.
2019-01-12 18:13:52 +01:00
ergo720 a1663871a6 Fix a bug in NtSetSystemTime 2019-01-12 18:13:52 +01:00
ergo720 b2a1dc2507 Fix building issues 2019-01-12 18:13:52 +01:00
ergo720 c72593ed74 Amend KiTimerExpiration and KiTimerListExpire 2019-01-12 18:13:52 +01:00
ergo720 be801553cc Moved timer source files 2019-01-12 18:13:52 +01:00
ergo720 e80fcd4d07 Moved around some Ki functions 2019-01-12 18:13:52 +01:00
ergo720 c1df95b324 NtSetSystemTime and KeSetSystemTime 2019-01-12 18:13:52 +01:00
ergo720 3b7ffd32c4 Handle exceptions raised by the timer DPCs 2019-01-12 18:13:52 +01:00
ergo720 113717b7c4 KiTimerExpiration + KiCheckTimerTable 2019-01-12 18:13:52 +01:00
ergo720 5b8ae8393b Reworked kernel timer lock 2019-01-12 18:13:52 +01:00
ergo720 4f86a5a26f Add lock to kernel timer functions 2019-01-12 18:13:52 +01:00
ergo720 bd0eced253 KiInitSystem 2019-01-12 18:13:52 +01:00
ergo720 9827cfcaa3 Reverted return a value from timer callback 2019-01-12 18:13:52 +01:00
ergo720 1ae67fb215 Updated KeInterruptTime, KeSystemTime, KeTickCount and timer handling 2019-01-12 18:13:52 +01:00
ergo720 62dfa7b4e2 Updated timer subsystem 2019-01-12 18:13:52 +01:00
ergo720 2020fe2123 Update the clock increment according to the real time passed 2019-01-12 18:13:52 +01:00
ergo720 4fcb6e54a9 KiClockIsr + updated KeQueryInterrupt/SystemTime 2019-01-12 18:13:52 +01:00
ergo720 6fca92d2a2 Removed virtual clocks 2019-01-12 18:13:52 +01:00
ergo720 71572d8c90 KeCancelTimer 2019-01-12 18:13:52 +01:00
ergo720 b6fce711a9 Completed KeSetTimerEx 2019-01-12 18:13:52 +01:00
ergo720 3f50f6de29 Implement KeSetTimerEx (in progress) 2019-01-12 18:13:52 +01:00
ergo720 0fc2a7c3b2 Enable LLE USB + add SDL submodule 2019-01-12 18:13:52 +01:00
PatrickvL 95bb641b7e HLE : Implemented D3DDevice_SetRenderState_EdgeAntiAlias.
Not very unimportant, but someone might want to cherry-pick this.
2019-01-10 17:52:38 +01:00
PatrickvL 0a9ce9e46c HLE : The plugin on pgraph-based rendering must convert pgraph-state to D3D, here a small commit with some comments in this area (nothing functional, I just wanted to dump this somewhere) 2019-01-10 17:51:19 +01:00
wutno a08f22121e
Delete x_Xbe if it isn't needed after checking signature
This also changes the order of operations for the sigchk if statement.
2019-01-07 12:44:33 -05:00
wutno 80dcbf436e
check for allowAdminPrivilege during the signature check 2019-01-06 13:03:41 -05:00
wutno a79567a58f
gui: Warn users of modified XBE signatures 2019-01-06 11:18:00 -05:00
Luke Usher b02a57c91c Fix an issue where unsupported depth formats would be converted to ARGB textures, use a supported depth format instead 2019-01-05 02:14:29 +00:00
Luke Usher 5d34de3234 Restore upscaling hack after broken by D3D9 port 2019-01-02 22:42:19 +00:00
Fisherman166 4da125582d Add implementation of RtlRaiseStatus reverse engineered from real hardware kernel. 2018-12-31 11:03:16 -08:00
unknown 4c4a544b3b Rewrite RtlExtendedLargeIntegerDivide with correct algorithm reverse engineered from real hardware. 2018-12-19 21:14:31 -08:00
ergo720 cb6881e417 Spelling... 2018-12-18 21:26:23 +01:00
ergo720 25d6fbc902 Allow buggy behaviour in cbc functions 2018-12-18 18:46:12 +01:00
ergo720 ef385087a8 Implemented des functions + XcCryptService 2018-12-18 14:01:33 +01:00
ergo720 1234df190e Merged CxbxCommon with CxbxUtil 2018-12-15 20:43:22 +01:00
ergo720 813975a6c2 Moved ResourceTracker.h + renamed HLE -> hle 2018-12-15 19:26:47 +01:00
ergo720 ef70b6a33d Created support folder 2018-12-15 18:48:19 +01:00
ergo720 19f5829d28 Created exports folder 2018-12-15 18:24:11 +01:00
ergo720 c6c0791bf0 Created init folder 2018-12-15 18:05:57 +01:00
ergo720 42004654a2 Created memory-manager folder 2018-12-15 17:47:08 +01:00
ergo720 e6e93a2d4a Renamed some folders + moved EmuShared.h 2018-12-15 17:28:01 +01:00
ergo720 c5e7824475 Created util folder 2018-12-15 16:58:51 +01:00
ergo720 864e2422ac Created crypto folder 2018-12-15 16:21:52 +01:00
ergo720 0cb83f9cc8 Renamed Cxbx -> gui folder 2018-12-15 15:45:59 +01:00
ergo720 980e073c8a Moved Timer.h 2018-12-15 15:25:31 +01:00
ergo720 1cbeef42cf Created x86 folder 2018-12-15 15:13:30 +01:00
ergo720 3d46f35174 Created xbe folder 2018-12-15 14:59:34 +01:00
ergo720 b0523ecae5 Moved CxbxXbdm + renamed Common -> common 2018-12-15 14:40:40 +01:00
ergo720 77b449b340 Renamed CxbxVSBC -> vsbc 2018-12-15 14:29:59 +01:00
Luke Usher e396754ace
Merge pull request #1515 from LukeUsher/fix-debug-builds
Fix debug builds + some warnings
2018-12-14 13:14:41 +00:00
Luke Usher 1704f0e8ce Compiler warning fixes 2018-12-14 11:19:17 +00:00
Luke Usher 922d0a7627 Fix an assert that prevented Debug builds from working 2018-12-14 11:00:43 +00:00
RadWolfie dc48499878
Merge pull request #1511 from LukeUsher/debugging-hangs
Debugging hangs
2018-12-01 12:39:32 -06:00
Luke Usher f3aa312cde Workaround a hang when PsCreateSystemThreadEx returns too soon 2018-12-01 17:31:49 +00:00
Luke Usher adba54da47 Fix a crash in Morrowind, add a test_case to notify us of the situation if it occurs elsewhere 2018-12-01 17:22:52 +00:00
ergo720 8790b48c06 Fix a bug in AllocateSystemMemory 2018-11-29 20:14:32 +01:00
Luke Usher 2084e25ea9 More tweaks 2018-11-28 20:35:11 +00:00
Luke Usher fa82f10a48 Call SystemRoutine directly instead of bootstrap voodoo 2018-11-28 20:18:30 +00:00
Luke Usher 8c570badb0 Stop EmuX86 spamming the log in Unreal Championship, this kills performance 2018-11-28 18:40:29 +00:00
Luke Usher 4304bf8266 Disable PS Thread notification routines.
Our code for this is completely wrong and does more harm than good.
Turns out that we (incorrectly) assumed that these were used internally
the same way as XAPI Thread routines, but they're completely separate!

XAPI thread routines are called by XApiThreadStartup (Xbox code) so we
don't need to handle them at all!

PSNotification Routines are more complex and require objects/functions
that we do not currently create, making them impossible to implement at
present, so for now, we'll disable them to prevent the random crashes
and memory corruption it causes.

This fixes a crash in Morrowind's DSOUND driver, where the pThis pointer
became corrupted as a result of the invalid notification routine call!
2018-11-26 19:48:09 +00:00
Luke Usher 02e756aadf Call a thread notification routine *before* starting the new thread, not
after.

This is required as it is the job of the notification routine to
allocate any per-thread data structured that the new thread will
require.

Likewise, the routine is called again during thread termination, in
which it should cleanup these resources.

To clarify: The first call needs to happen before the new thread starts,
and MUST be called from the context of the current thread, not the new
thread.

The second call must be called during Thread termination, by the new
thread, just before it is destroyed
2018-11-25 17:20:23 +00:00
Luke Usher f74cba4486 Typo 2018-11-25 12:11:46 +00:00
Luke Usher 6afb63ac77 Fix regression in THPS2X: Needs re-testing with Panzer Dragoon Orta 2018-11-25 12:10:17 +00:00
Luke Usher f0f63f9e16 Rename JSRF hack to Smilebit hack, as it applies to Gunvalkyre too 2018-11-22 22:54:20 +00:00
Luke Usher 602efd6d6e Remove upper limit on Xbox Threads: This was a left-over from original Cxbx and is unnecessary 2018-11-22 07:28:37 +00:00
Luke Usher b38b958730 This potentially improves stability 2018-11-20 19:35:19 +00:00
Luke Usher d7108e8c9e Fix a crash when draw functions are called with no plugin initialized 2018-11-18 14:58:07 +00:00
Luke Usher b594f04214
Merge pull request #1504 from LukeUsher/lets-fix-some-exclusives
Various bug-fixes (TLS, Vertex Shaders, X86)
2018-11-18 09:18:14 +00:00
Fisherman166 3f144fc7a9 Fix bug in RtlAppendUnicodeStringToString where the terminating null character was being placed in the wrong byte. 2018-11-17 21:33:53 -08:00
Luke Usher 21632e0eae More shader tweaks 2018-11-17 23:32:02 +00:00
Luke Usher 75a8b54e19 Restore JSRF hack: Still required 2018-11-17 23:31:02 +00:00
Luke Usher c650fad2ab Fix a typo that has been bothering me for some time 2018-11-17 20:14:57 +00:00
Luke Usher f38d1e7d3b Fix an issue where unsupported (on host) shader registers caused entire shaders to fail 2018-11-17 20:00:52 +00:00
Luke Usher 23fb78c272 Fix an issue where vertex declarations containing BackDiffuse and
BackSpecular completely failed to be created

With this, Spikeout & Project Gotham Racing progress further, although
they still fail to reach in-game.
2018-11-17 18:08:25 +00:00
Luke Usher 84e90157ab Prevent non xbox code threads from hogging the Xbox code execution core 2018-11-17 16:06:38 +00:00
Luke Usher c6e7360157 Only execute exceptions in single-instruction steps, to work around buggy instruction implementation: TODO: Replace EmuX86 with something better entirely 2018-11-16 08:12:05 +00:00
Luke Usher 53732ffb2f fix an issue where a title without TLS data would refuse to boot 2018-11-16 08:11:20 +00:00
Luke Usher 1618130603 Fix NXDK and CxbxGetPerformanceCounter 2018-11-12 18:19:45 +00:00
Luke Usher bac2d6a8e6 Fix KeQueryPerformanceCounter: It ticks at ACPI rate, NOT tsc 2018-10-30 21:20:56 +00:00
Luke Usher ed8c3137c4 Implement NOP 2018-10-29 21:07:11 +00:00
Luke Usher 1d2b7ae094 Fix off-by-one error in mip-map check 2018-10-29 19:42:19 +00:00
Luke Usher 6ca433b96a Fix a crash when calling D3DDevice_SetTextureState_BorderColor_: Trampolines don't work right for LTCG titles 2018-10-29 18:48:27 +00:00
Luke Usher 0ac8b589a5 Add LTCG specific D3DDevice_SetVertexData4f_16 2018-10-28 22:48:21 +00:00
Luke Usher 2e056347e9 Fix a crash when creating a texture with more mip-map levels than D3D9 allows 2018-10-28 22:29:41 +00:00
Luke Usher d1ce72841a Feedback 2018-10-28 19:03:39 +00:00
Luke Usher 82a8b63965 Fix an incorrect LOG_TEST_CASE 2018-10-28 17:31:23 +00:00
Luke Usher 66b77b64ea Catch unusual vertex buffer situations + fix an issue where Vertex buffer information was not initialized properly 2018-10-28 16:01:36 +00:00
Luke Usher d286f6156f Oops, fix a double-free 2018-10-28 14:46:32 +00:00
Luke Usher 176cad275f Don't trash original shader handles, use a map instead 2018-10-28 12:14:25 +00:00
Luke Usher cdc97176dc Workaround for vertex streem number overflow 2018-10-28 01:26:42 +01:00
Luke Usher 2ddf6a0e54 Finally fix Vertex Shader detection to use the same method as Xbox D3D 2018-10-28 01:26:21 +01:00
Luke Usher ee73845750 Oops: Host shaders should not be allocated in Xbox memory 2018-10-28 00:27:28 +01:00
Luke Usher 2d0141298f Improve performance of scanline count register: Titles spend less time spinning on scanline counter now 2018-10-27 23:26:00 +01:00
Luke Usher d81de9a6a9 Split deriving display dimensions into functions 2018-10-26 08:19:26 +01:00
Luke Usher ca9a76c6d7 New register is called NV_PCRTC_RASTER. Sources: Haiku & Pedigree 2018-10-26 08:10:49 +01:00
Luke Usher 38e12a0473 Fix alter echo hang: Implements CRTC scanline register (hacky implementation, but enough for now 2018-10-25 23:21:41 +01:00
Luke Usher 566e3165e8 Don't force process priority: This caused too much instability 2018-10-25 19:32:26 +01:00
Luke Usher 30a3a392ad Fix an issue where RootDirectory wasn't being set properly when converting file paths 2018-10-24 22:48:25 +01:00
patrickvl c818c28538 Replace atomic boolean m_bFrameTime with a mutex m_FrameTimeMutex 2018-10-24 21:30:10 +02:00
Luke Usher 2a16c71f68
Merge pull request #1490 from PatrickvL/Acknowledgment_to_top
Move acknowledgments towards the top of each file
2018-10-24 15:28:09 +01:00
patrickvl b94daf7bbf Move acknowledgments towards the top of each file 2018-10-24 16:05:20 +02:00
patrickvl 42c00806d7 Avoid LOG_PREFIX by adding *Ex versions for all functions that receive other values 2018-10-24 16:03:35 +02:00
patrickvl 2a9271cc12 Corrected DBG_PRINTF terminating newlines where appropriate (thanks to the sharp eye of gandalfthewhite) 2018-10-24 10:59:08 +02:00
Luke Usher f55dd3f2df Disable all hacks by default 2018-10-17 18:06:26 +01:00
Luke Usher 3b338803be Minor cleanup 2018-10-13 22:49:49 +01:00
Luke Usher d47b4a69d4 Cleanup/Simplify deferred render state handling 2018-10-13 22:38:18 +01:00
Luke Usher f9047d540e Fix potential deadlock: CriticalSection was not release under certain conditions 2018-10-13 20:12:36 +01:00
Luke Usher 76638797ad Remove VshRemoveUndeclaredRegisters: It never worked, and is no longer needed anyway 2018-10-13 19:44:57 +01:00
PatrickvL fe9e3a8a30 MM : Further reduce the use of LIST_ENTRY_* macro's 2018-10-11 14:17:25 +02:00
PatrickvL e452d56991 MM : Moved all remaining LIST_ENTRY_* macro's to where they're used (as preparation for further simplification) 2018-10-11 12:45:42 +02:00
PatrickvL 0b535dc862 MM : To avoid duplicate code, replace most LIST_ macro's with List* functions 2018-10-11 12:07:40 +02:00
Luke Usher 81d52e50b6
Merge pull request #1457 from PatrickvL/xqemu_port
Ported xqemu nv2a changes
2018-10-07 21:34:39 +01:00
Luke Usher 3040c5c02a Don't show dialog for Xbox breakpoints, just log them and continue 2018-10-06 09:16:49 +01:00
Luke Usher 28e1d8e381 D3DRS_SWAPFILTER exists in 4039 too: Test Case THPS3 2018-10-05 22:29:50 +01:00
Luke Usher 428d0cec90 Set process proiority to above_normal: Significant performance boost! 2018-10-05 22:28:47 +01:00
patrickvl c281b99ba2 Fix after rebase 2018-10-05 22:00:04 +02:00
PatrickvL 28c672ac0c Rearranged header files (introducing nv2a_regs.h) 2018-10-05 21:52:57 +02:00
PatrickvL 8584f09513 Updated acknowledgements and copyright statements 2018-10-05 21:47:15 +02:00
PatrickvL fbf33904b7 Renamed QINCREF to qobject_ref, and QDECREF to qobject_unref (to reduce the number of differences between our code and xqemu's) 2018-10-05 21:47:15 +02:00
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 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