Commit Graph

4619 Commits

Author SHA1 Message Date
Anthony Miles b9db301791 Add LOG_TEST_CASE for writes to constants 2019-12-18 20:12:19 +01:00
Anthony Miles 136083d72a SetVertexData4f support 2019-12-18 20:12:19 +01:00
patrickvl ba5d25e2ed Only disassemble HLSL under debug log level
Fix arl by forcing .x mask on a0 parameter
2019-12-18 20:12:19 +01:00
patrickvl b330198fe6 Reorder vertex shader code 2019-12-18 20:12:19 +01:00
patrickvl 1365d2e7e1 Vertex shader HLSL : More commenting, reordering, renaming and fixing 2019-12-18 20:12:18 +01:00
patrickvl cb95bbb46f Make sure HLSL scalar outputs are replicated 2019-12-18 20:12:17 +01:00
patrickvl a0de74ffd9 Make sure all HLSL parameters regardless their swizzle, are cast to float4 before the actual calculation commences 2019-12-18 20:12:17 +01:00
patrickvl 8ed16b9f5a Reorder vertex shader decoding code 2019-12-18 20:12:15 +01:00
PatrickvL 07ceaf96d5 Avoid all implicit typecast warnings, by casting all HSLS calculations to a float4, and apply the output mask to that as well 2019-12-18 20:12:15 +01:00
PatrickvL 339af7b500 Pass mask as argument into the opcode defines.
Also fixed a few HLSL issues that crept in the previous commit
2019-12-18 20:12:15 +01:00
PatrickvL 5b2ff4e278 Simpler determination of used parameters per opcode 2019-12-18 20:12:14 +01:00
PatrickvL 127e51302e Wrap (or replace) HLSL functions with defines, so that destination swizzles work as expected without too much syntax deviation.
Also adjusted a few hlshl functions to be more accurate
2019-12-18 20:12:14 +01:00
PatrickvL 46fbfad52d Remove assembly version and replace regex with dedicated streaming 2019-12-18 20:12:14 +01:00
PatrickvL c039562e7f Reformat HLSL code
Prefer HLSL functions over #defines
Avoid implicit conversion warnings in HLSL template code
Move scalar W selection towards HLSL helper function
Apply scalar component fixup after instead of before conversion to HLSL
2019-12-18 20:12:14 +01:00
Anthony Miles 200b7c493e Use log2, exp2 2019-12-18 20:12:14 +01:00
Anthony Miles bd55f17f0d - Move ILU ops together
- Some ops use the .w component by default. Ensure they will use w instead of x, if the default xyzw swizzle was used
2019-12-18 20:12:14 +01:00
Anthony Miles 59c8ee936f Add line numbers to shader debug 2019-12-18 20:12:14 +01:00
Anthony Miles 05f1f90603 fixup texcoord comments 2019-12-18 20:12:13 +01:00
Anthony Miles b61bfd32af - Use MAC defines, remove functions
- Fix truncation compiler warning in x_dp3
2019-12-18 20:12:12 +01:00
Anthony Miles eaa7bbca41 At debug log level, log shader warnings even if the shader compiled 2019-12-18 20:12:12 +01:00
PatrickvL a9d3b5cdde Better hlsl consistency 2019-12-18 20:12:12 +01:00
PatrickvL c1ba533455 Include the hlsl code as a raw string
Make all Xbox VSh opcodes consistent (using an x_ function or macro)
Replace switch statements with table lookups, making the code much more compact
2019-12-18 20:12:11 +01:00
Anthony Miles e372a80a8d Workaround bad masks on single component outputs 2019-12-18 20:12:09 +01:00
Anthony Miles a258d5d759 file location hack 2019-12-18 20:12:09 +01:00
Anthony Miles 5d21af8a0e Implement more HLSL functions 2019-12-18 20:12:09 +01:00
Luke Usher 19f0affd21 Negate Screen Space Transforms instead of deleting from shader 2019-12-18 20:12:08 +01:00
Anthony Miles fd1555535e HACK
Get HLSL compiling
2019-12-18 20:12:08 +01:00
Anthony Miles 8382adfaab fixup dp3, dph 2019-12-18 20:12:08 +01:00
Anthony Miles 620c98da80 Interpret r12 as oPos 2019-12-18 20:12:08 +01:00
Anthony Miles 2102bffee2 Ensure dp3 and dph use float3 dot products 2019-12-18 20:12:08 +01:00
Anthony Miles 551516a52a fix typo 2019-12-18 20:12:08 +01:00
Anthony Miles 65f6ff3497 fix missing bracket 2019-12-18 20:12:08 +01:00
Anthony Miles c3fbc46b7c c() bounds check 2019-12-18 20:12:07 +01:00
Anthony Miles ef3b5d7217 Fix bias typo 2019-12-18 20:12:07 +01:00
Anthony Miles 650174ea83 - Reverse screenspace transform properly
- Move Xbox variable 'a' inside main
- Fix rcc reversed clamp
2019-12-18 20:12:07 +01:00
Anthony Miles 780cb6c578 fix rcc typo 2019-12-18 20:12:07 +01:00
Anthony Miles 504b8ddba6 Fix swizzle behaviour 2019-12-18 20:12:06 +01:00
Anthony Miles b24ea2309c Fix HLSL debug logging 2019-12-18 20:12:05 +01:00
Anthony Miles 3cd2f73332 Apply scaling hack 2019-12-18 20:12:05 +01:00
Anthony Miles c6242b798c remove junk files 2019-12-18 20:12:03 +01:00
Anthony Miles 21712cb4de Implement remaining xbox functions 2019-12-18 20:12:03 +01:00
Anthony Miles 389e50a570 more hlsl 2019-12-18 20:12:03 +01:00
Anthony Miles da6fc5f35c TMP more stuff 2019-12-18 20:12:02 +01:00
Anthony Miles 62015b1499 initial 2019-12-18 20:12:02 +01:00
Luke Usher be42ab7a0f Nasty hack to fix hl2 crash during switch to ingame 2019-12-17 19:45:30 +00:00
PatrickvL 8ebeeeb24c
Merge pull request #1799 from LukeUsher/fix-mechassault
kernel: Define and init IdexChannelObject
2019-12-16 23:47:29 +01:00
Luke Usher b62333551c kernel: Define and init IdexChannelObject 2019-12-16 21:53:02 +00:00
RadWolfie d0da11cb1e
Merge pull request #1796 from LukeUsher/eeprom-serial-number
Eeprom Config: Correctly render Serial Number as Numeric Text, not HEX
2019-12-14 13:20:23 -06:00
Luke Usher 23540f01b4 Eeprom Config: Correctly render Serial Number as Numeric Text, not HEX 2019-12-14 19:15:58 +00:00
Luke Usher d1018cb773 nvnet: Accept only broadcast and targeted traffic, not multicast
Fixes XNET warnings when using Debug XDK libraries
2019-12-14 11:25:35 +00:00
patrickvl b76f4c5d5a Fixed black texture regression in Bloodrayne (and possibly all other reported cases); Turned out to be an oversight (GetHostBaseTexture 2nd argument is not the TextureStage, but D3DUsage, dug!). I had to re-do each change line by line, testing as I went, to find this... Ah well, at least it didn't have anything to do with the new cache! 2019-12-01 17:16:57 +01:00
patrickvl ce191a66e0 Fixed incorrect assumption : Xbox doesn't have a D3DCOMMON_VIDEOMEMORY flag at all, so we can't identify resources with it either! 2019-12-01 15:41:34 +01:00
PatrickvL 8664e6cc3d Potential fix for the "CreateCubeTexture Failed!" regression, by restoring GetHostBaseTexture to it's previous behaviour (if this works, I'll create a separate issue with all relevant detail so that we can follow-up on this later) 2019-11-28 17:00:50 +01:00
PatrickvL 01bd2d026e Lower impact of this PR by storing a few things that won't hurt much 2019-11-28 16:27:39 +01:00
PatrickvL de1b815542 Split up resource cache in two, one for paletized textures (which gets pruned when it overflows),
one for all other resources (which cache doesn't prune, like it did not do before, too).

This way, only paletized textures get pruned from their specialized cache, while other resources,
including render-targets (which can't be paletized) will stay resident in the general cache (which won't overflow).

Doing it this way, probably fixes the reported black texture regressions,
but it might also lead to less of a performance increase than before.
2019-11-28 15:56:31 +01:00
PatrickvL b03551535c Changed our resource cache key into a struct, to greatly reduce the chance of hash collisions.
This can solve part of the reported regressions (but there's more, like not-pruneing render targets).
2019-11-26 15:22:43 +01:00
PatrickvL e281d1e490 Renamed EmuD3DActiveTexture into g_pXbox_SetTexture 2019-11-25 15:55:09 +01:00
PatrickvL db45305a5f Call PruneResourceCache() once per draw (in CxbxUpdateNativeD3DResources instead of in EmuVerifyResourceIsRegistered), this might prevents black textures. 2019-11-25 15:55:08 +01:00
PatrickvL d09381c5a3 Prepare for setting surfaces as active SetTexture's (disabled for now).
Consequences of this change :
GetHostBaseTexture won't be called on X_D3DCOMMON_TYPE_SURFACE anymore.
GetHostTexture became obsolete because of this,

Also corected a few typo's & made bits of code simpler.
2019-11-25 15:55:08 +01:00
PatrickvL 1b2b320b36 Avoid scaling factor rounding issues, by always applying g_RenderScaleFactor as a multiplier (never as a divisor). 2019-11-25 15:55:08 +01:00
PatrickvL 1332ba3ef0 Revert unintentional change 2019-11-25 15:55:07 +01:00
PatrickvL f5bc947964 Minor code cleanups 2019-11-25 15:55:07 +01:00
PatrickvL 3be6429300 Cater for actual palette size 2019-11-25 15:55:06 +01:00
PatrickvL 5d3cae890c Include a palette hash in the texture lookup key, instead of patching Palette_Lock functions and freeing textures when setting palette's.
To avoid overflowing the resource cache, PruneResourceCache now applies cache eviction as well.
2019-11-25 15:55:06 +01:00
PatrickvL 67068303de
Merge pull request #1789 from PatrickvL/correct_d3d_enums
Corrected old ordering of D3DTOP enum elements.
2019-11-25 15:54:10 +01:00
PatrickvL fb00f60c27
Merge pull request #1785 from NZJenkins/log_handling
Implement extra log component calculations
2019-11-24 09:01:13 +01:00
Anthony Miles 100be789e2 Implement extra log component calculations 2019-11-22 19:18:29 +13:00
RadWolfie 8f6bd2024c
Merge pull request #1767 from x1nixmzeng/cmake-debugger-fix
Fixed CMake designer settings for debugger gui
2019-11-21 14:42:32 -06:00
PatrickvL 6ba97108c6 Corrected old ordering of D3DTOP enum elements.
This fixes alpha texture blending on titles that use D3D XDK 3948 and older
2019-11-21 11:43:12 +01:00
PatrickvL 068cefe444
Merge pull request #1772 from LukeUsher/nic-debugging
Fix IP network traffic
2019-11-20 17:09:20 +01:00
PatrickvL 7cac893aa6
Merge branch 'develop' into expp_handling 2019-11-20 17:02:55 +01:00
Luke Usher 8be7402227
Merge pull request #1783 from PatrickvL/impl
Introduce two CxbxImpl_*'s for as-yet unimplemented functions.
2019-11-20 15:56:40 +00:00
Luke Usher 81bf7e06c7
Merge pull request #1771 from PatrickvL/correct_render_state_info
Corrections in render state information
2019-11-20 15:54:10 +00:00
patrickvl 8aef04f83a Comment-only change, no function impact;
Re-orded render state verification comments incrementally, like this:
"Verified [absent in X, ]present in Y[ , removed in Z]" (whereby X < Y < Z).

This makes these comments easier to read and understand.
2019-11-20 16:38:29 +01:00
PatrickvL db90d6a8b8 Verified all render states; Updated D3DRS_MULTISAMPLEMODE to 4039 (might even be 4034) 2019-11-19 17:40:50 +01:00
PatrickvL ae05bdba58 Correct D3DRS_MULTISAMPLERENDERTARGETMODE from 4039 to 4034.
This has no functional impact anyway, since there's no host renderstate associated with this (and later) render states.
2019-11-19 15:52:34 +01:00
PatrickvL ae3fbc67c7 Rename g_SetStreamSources into g_Xbox_SetStreamSource (which better reflects it's contents) 2019-11-18 17:57:02 +01:00
PatrickvL ca1d2b2722 Reinstated version string in initial caption bar. 2019-11-18 14:44:47 +01:00
patrickvl 61b3743567 Addressed review remarks 2019-11-18 14:44:46 +01:00
patrickvl 0aac02c0c0 Fixed comment header 2019-11-18 14:44:46 +01:00
PatrickvL 9cf3591393 Turn Cxbx version define into a variable
This is intended to reduce the number of files that need to be
recompiled when updating a repository.
2019-11-18 14:44:44 +01:00
Luke Usher fd7c9ccb47
Merge pull request #1782 from PatrickvL/even_more_cleanup
Some more cleanup
2019-11-18 13:20:07 +00:00
PatrickvL 5814eaa7fd Do the extended availability check of render states everywhere it might have an impact. 2019-11-18 12:06:48 +01:00
patrickvl d5a5e9fc9a Disable X_D3DRS_MULTISAMPLETYPE in a simpler way, which also allows for easier disabling of other render states as well (would the need ever arise). 2019-11-17 16:17:10 +01:00
patrickvl 2c46324320 Replaced two literal numbers by their corresponding symbols (no functional change, just an improvement that was due) 2019-11-16 22:32:49 +01:00
PatrickvL 477ab534c5 This commit solved the fact that X_D3DRS_MULTISAMPLEMODE replaces the older X_D3DRS_MULTISAMPLETYPE (which was available below 4039).
This allows restoring X_D3DRS_MULTISAMPLEMODE back to 4361 where it belongs (as far as we know).

Adjusted X_D3DRS_MULTISAMPLERENDERTARGETMODE to XDK 4039 (was 4242)

Made comments on DxbxRenderStateInfo and _X_D3DRENDERSTATETYPE consistent again.

Also use X_D3DRS_* FIRST / LAST defines wherever applicable.

This is a subset of work done earlier in 67cfc36fca
2019-11-16 21:48:15 +01:00
patrickvl 8dfb3e20c2 Introduced CxbxImpl_SetStreamSource, and simplified it's storage.
Also some renaming and comments (all this copied over from Vsh_unpatching)
2019-11-16 17:12:20 +01:00
patrickvl 2012d86522 Introduce two CxbxImpl_*'s for as-yet unimplemented functions. 2019-11-16 14:44:29 +01:00
Anthony Miles 4c4b0f4022 Use xbox, host, prefixes 2019-11-16 22:51:29 +13:00
Anthony Miles 22e6fe58e0 Add shader comments 2019-11-16 21:04:32 +13:00
Anthony Miles 56b78fbdfe expp returns 1 in the w component 2019-11-16 21:04:32 +13:00
Anthony Miles 8902118a66 Use const 2019-11-16 21:04:32 +13:00
PatrickvL e47fe0787a Co-ordinate usage of reserved registers 2019-11-16 21:03:21 +13:00
PatrickvL b3671fe0e4 Read Fog color through GetXboxRenderState (not via host GetRenderState), just like all other states.
Also updated a few random comments and stuff mentioning the now-obsolete EmuMappedD3DRenderState.
Removed unused code and replaced manual conversion of DWORD to 4 ARGB floats by using D3DXCOLOR.
2019-11-15 17:59:16 +01:00
Anthony Miles c5b0457dec - Reserve a scratch register, and avoid interfering with registers reserved for undeclared v
- Assume 32 registers are available for simplicity
- Reserve space for all 16 v registers
2019-11-15 21:05:29 +13:00
PatrickvL 9c81eda65e Make resource file language-neutral, so that Visual Studio won't complain when regional settings aren't compatible. (See https://stackoverflow.com/a/58011025/12170)
Also applied the advisory steps from our GPL license to our About dialog, and trimmed this advise from COPYING itself.
2019-11-14 13:26:20 +01:00
Anthony Miles 3b787aeef5 Update expp instruction handling 2019-11-14 22:28:03 +13:00
Luke Usher 829177f57a Better implementation of RtlAssert 2019-11-12 20:14:27 +00:00
Luke Usher 6b08ee81cc Fix kernel event handling 2019-11-12 20:14:27 +00:00
Luke Usher b59107a956 nvnet: cleanup + bug fixes 2019-11-12 20:14:27 +00:00
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