Commit Graph

4619 Commits

Author SHA1 Message Date
RadWolfie 1485d9c82b Add note about memory range option at launch should not occur at all. 2020-04-14 20:24:18 -05:00
RadWolfie 95d2406937 fix compile build to able call CxbxKrnlMain in cxbx.exe
Plus some fixes to able launch from cxbx.exe's emulation to verify the work is good or not.
2020-04-14 20:24:18 -05:00
ergo720 52f0d6f03b Updated memory functions to work with the loader 2020-04-14 20:24:18 -05:00
PatrickvL c4f9821c6a Loader : Fix typos and avoid Microsoft compiler specific types 2020-04-14 20:24:17 -05:00
PatrickvL affc999d70 Loader : Use CxbxMessageBox (a wrapper for Windows' MessageBox API) wherever possible, to avoid repeating the TEXT("Cxbx-Reloaded") caption everywhere, and a different argument-order allowing default argument values and thus more compact code. 2020-04-14 20:24:17 -05:00
patrickvl f283dff3b6 Loader : Deduplicate code via new CreateSettings() 2020-04-14 20:24:17 -05:00
PatrickvL 254e666bfe Loader : Shared implementation for termining guiProcessID (and "2nd GUI" mode?!) 2020-04-14 20:24:17 -05:00
patrickvl 170b971a8e Loader : Deduplicate code via new CreateSettings() 2020-04-14 20:24:17 -05:00
patrickvl 890a5ffd2f Loader : Merge LaunchEmulation() into CxbxKrnlMain() 2020-04-14 20:24:17 -05:00
patrickvl 37f5a751a1 Loader : Moved HandleFirstLaunch() and LaunchEmulation() towards shared source file (CxbxKrnl.cpp), and call it from our DLL's Emulate() function. 2020-04-14 20:24:17 -05:00
PatrickvL daffa99825 Refactorings preparing actual emulation start for DLL (just need to move two functions to a shared file) 2020-04-14 20:24:17 -05:00
PatrickvL cd62ac9cc1 Shared implementation of VerifyBaseAddr() 2020-04-14 20:24:17 -05:00
PatrickvL 3be54d4569 Rely on CxbxKrnl.h for CXBX_BASE_ADDR (avoiding a duplicate declaration) 2020-04-14 20:24:17 -05:00
PatrickvL c537539c6e Extracted VerifyWow64() function, so that the Cxbx and CxbxLoader projects share the same implementation.
For this, renamed LoaderTooling.cpp to AddressRanges.cpp, which better aligns with AddressRanges.h anyway.
2020-04-14 20:24:17 -05:00
PatrickvL bf115fe7ab Complete Emulation DLL project by adding all Cxbx source files (except GUI-related stuff). Entire solution builds again with this.
Next steps :
- Actually getting the emulation DLL to work
- Complete CxbxGUI project by adding all Cxbx GUI-related source files
2020-04-14 20:24:17 -05:00
PatrickvL c42aff2307 Loader : Collect actually reserved ranges during range-verification (in the emulation DLL, not during reservation in the loader) 2020-04-14 20:24:17 -05:00
patrickvl 39a9bd451f Log initialization failure in the loader 2020-04-14 20:24:17 -05:00
patrickvl 747ec875aa Use EXIT_SUCCESS for forced termination, EXIT_FAILURE for all other exit-reasons. 2020-04-14 20:24:17 -05:00
patrickvl 41c2de8e5d Pass along the selected system configuration flag to the emulation DLL and use it to verify the address ranges.
Note, that even though verification passes, a few blocks in optional ranges do fail. It's probably wise to build up a list of those, so that the memory managers can keep this into account.
2020-04-14 20:24:17 -05:00
PatrickvL 93c8514700 Loader : Initial drop of a separate *empty* GUI project (probably won't compile either) 2020-04-14 20:24:17 -05:00
PatrickvL b2b0813db4 Loader : Added emulation DLL, working towards this stub compiling, moved loader project to subfolder 2020-04-14 20:24:17 -05:00
PatrickvL 9f19b26161 Loader : Log errors to console output. Also added a few comments 2020-04-14 20:24:16 -05:00
PatrickvL 4e1062905d Loader : Correct the PageTable range to fit all possible entries 2020-04-14 20:24:16 -05:00
PatrickvL e333152bd1 Loader : We won't emulate Alpha kits, and all other hardware revisions lack the physical hardware lines for USB1 ports, so this can go. 2020-04-14 20:24:16 -05:00
PatrickvL 032eee144f Reduce clutter in Loader by splitting up functionality in task-specific source files 2020-04-14 20:24:16 -05:00
patrickvl 420d689d82 Cleaned up of the loader project, added environment checks and documented it somewhat. 2020-04-14 20:24:16 -05:00
patrickvl 2295a10e77 Configurable system configuration by matching command line flags against memory-range flags - a quite flexible solution if I may say ;) 2020-04-14 20:24:16 -05:00
patrickvl 0532fa7c58 Loader coding style 2020-04-14 20:24:16 -05:00
patrickvl da10d3602f Extended reserved memory ranges with DevKitMemory and SystemMemory (both partially fail) 2020-04-14 20:24:16 -05:00
patrickvl 34072e9fd9 Random stuff, taken from my old Loader branch 2020-04-14 20:24:16 -05:00
patrickvl 208ce0e35c Added minimal CxbxLoader project 2020-04-14 20:24:16 -05:00
PatrickvL ca6423b484 Reviving my more-than-a-year-old Loader branch, by copying over various things (nothing functional yet) 2020-04-14 20:24:16 -05:00
RadWolfie 739e1928a2 change filter log output to always output 2020-04-13 03:28:58 -05:00
= 63563763dd vsh: reduce number of instructions required to handle bounds checking 2020-04-13 03:10:23 -05:00
= 8850b52d88 prevent missing polygons with AMD GPU 2020-04-13 03:10:23 -05:00
darkf eb2bc2dbc8 Use proper constant for XMP_STATUS_RELEASE_CXBXR 2020-04-07 15:32:31 -07:00
darkf 743b3cbdbb Remove unused extern "C" comments 2020-04-07 03:24:00 -07:00
darkf bcbdd4c4e0 EmuFile: Fix string being passed as %s formatter 2020-04-07 02:44:40 -07:00
darkf 3a5552e899 EmuKrnlEx: Fix std::atomic usage 2020-04-07 02:44:40 -07:00
darkf 95f6966a43 PVOID casts where necessary 2020-04-07 02:44:39 -07:00
darkf 21733cc594 EmuKrnlLogging: Work around EXCEPTION_DISPOSITION macros in MinGW 2020-04-07 02:44:39 -07:00
darkf 1309f25c7b Patches: Explicitly construct xbox_patch_t 2020-04-07 02:44:39 -07:00
darkf 4eff9b9dab Get D3D stuff mostly compiling on Clang 2020-04-07 02:44:39 -07:00
darkf c64cbfe482 EmuFS: Construct fs_instruction_t by name 2020-04-07 02:44:39 -07:00
darkf daab20a944 Cast to proper type in case 2020-04-07 02:44:39 -07:00
darkf a32bb946a0 Fix some ifdef conditions 2020-04-07 02:44:39 -07:00
darkf c821ac0f02 XbPixelShader: Use empty local to avoid undefined behavior 2020-04-07 02:44:39 -07:00
darkf e4371adf5e SetThreadName only works on MSVC for now 2020-04-07 02:44:39 -07:00
darkf b2a5f304bf Use standard C++ enum forward declarations 2020-04-07 02:44:39 -07:00
darkf a3a1849e6a Use GNU alignment attributes in XbConvert 2020-04-07 02:44:39 -07:00
darkf 1148f81c67 Define XINPUT_DLL for MinGW 2020-04-07 02:44:39 -07:00
darkf b8be2efa97 Include missing headers 2020-04-07 02:44:39 -07:00
darkf 1091bee10e InputDeviceManager::FindDevice uses const string& 2020-04-07 02:44:39 -07:00
darkf fed6245e48 Fix erroneous macro definitions 2020-04-07 02:44:38 -07:00
darkf 3e505f1b5e Define DIK_PREVTRACK for MinGW 2020-04-07 02:44:38 -07:00
darkf 6959d023b4 Debug callbacks don't need WINAPI 2020-04-07 02:44:38 -07:00
darkf 132142d5ae Use const string references for profile methods 2020-04-07 02:44:38 -07:00
darkf d20537fe5b Remove extern "C" linkage in Emu*, otherwise we get namespace collisions 2020-04-07 02:44:38 -07:00
ergo720 4e01eb2f80 Display warning message when activating the all cores hack 2020-04-02 17:18:07 +02:00
RadWolfie 661774a8b7 another fixup for FlushEx and worker thread 2020-03-28 02:35:59 -05:00
RadWolfie 959bb22dfc add debug message for buffer/stream release functions 2020-03-28 01:50:46 -05:00
PatrickvL 1bc861ac52
Merge pull request #1852 from LukeUsher/clear_sw_interrupt_flag
kernel: Clear IRR register on software interrupt processing
2020-03-24 15:19:08 +01:00
Luke Usher 637e562080 kernel: Clear IRR register on software interrupt processing
Fixes a hang that can occur due to an infinite loop of interrupts under
certian conditions.
2020-03-24 14:05:53 +00:00
RadWolfie bf59cec93b add info level to log_generate_active_filter_output function 2020-03-21 23:06:44 -05:00
RadWolfie aca3c17440 replace printf and forward EmuLogEx with INIT str to EmuLogInit 2020-03-21 23:06:44 -05:00
RadWolfie 765f292069 add EmuLogOutput as generic and EmuLogInit as always output 2020-03-21 17:04:23 -05:00
RadWolfie da9e727330 fix missing calls to DSStream_Packet_Process 2020-03-13 23:49:49 -05:00
RadWolfie 178ec004c8 another flush async fix 2020-03-13 23:47:23 -05:00
RadWolfie 145e827d68 update SynchPlayback debug log more verbose 2020-03-13 13:33:38 -05:00
RadWolfie 0bf0e32df0 fix Discontinuity and GetStatus 2020-03-13 13:33:34 -05:00
RadWolfie 4a27006ce6 fix audio flush async worker 2020-03-13 13:33:25 -05:00
Luke Usher 951520ece1
Merge pull request #1835 from RadWolfie/fix-wfx-format-sanity
Fix Sanity and Organize wfxformat into Functions
2020-02-26 06:49:59 +00:00
RadWolfie b2d5b5c7e8 fix sanity and organize wfxformat into functions 2020-02-20 23:12:54 -06:00
Anthony Miles 605c31af46 Remove GetViewportOffsetAndScale patches 2020-02-16 19:47:56 +13:00
Anthony Miles f48b9478ac D3DDevice_GetVertexShaderType 2020-02-16 19:46:29 +13:00
Anthony Miles d056bbf308 Remove D3DDevice_GetVertexShaderSize patch 2020-02-16 19:41:48 +13:00
Anthony Miles 0c6a13e975 Create VSHCACHE logging code for the shader cache 2020-02-08 19:50:26 +13:00
Anthony Miles 553ff18dff Reduce log spam. The vertex declaration is already logged 2020-02-08 19:50:26 +13:00
Anthony Miles 2506c9d395 Move shader setting logic into a method 2020-02-08 19:50:25 +13:00
Anthony Miles c8de83922a VertexShaderSource manages creation and caching of vertex shaders
Shaders are compiled asynchronously
2020-02-08 19:50:25 +13:00
Luke Usher 38b03b3fe3
Merge pull request #1821 from NZJenkins/vsh_split
Move D3D9-specific vertex shader code out of XbVertexShader
2020-02-07 09:01:09 +00:00
Luke Usher 339473e63b
Merge pull request #1827 from NZJenkins/fix_hlsl_vreg_init
Fix argument order in HLSL lerp call
2020-02-07 08:56:45 +00:00
Anthony Miles fd68ee4d1f - Fix argument order in HLSL lerp call
- Renaming for clarity
2020-02-07 19:50:59 +13:00
Anthony Miles 484f46db59 - drop some parameters from EmuCompileShader
- when the shader is empty, expect success with no compiled shader output
2020-02-04 20:51:32 +13:00
Anthony Miles 9cea5bfe9a Move D3D9-specific vertex shader code out of XbVertexShader 2020-02-04 20:51:32 +13:00
RadWolfie c6d9eac9f4 disable XAudioCreateAdpcmFormat patch 2020-02-02 11:21:01 -06:00
RadWolfie 9780a63644 minor fixes for DirectSound plugin 2020-02-02 11:21:01 -06:00
RadWolfie 187c53eaf9 add LOGRENDER_MEMBER_ARRAY_TYPE feature to logging file 2020-01-27 22:20:15 -06:00
RadWolfie a513cea260 fix audio log crash from titles below 4039 build 2020-01-27 22:14:30 -06:00
RadWolfie 51ffcb5015 add WAVEFORMATEXTENSIBLE struct to logging file 2020-01-27 22:14:04 -06:00
RadWolfie 1197152b5a fix audio stream flush functions 2020-01-24 17:23:08 -06:00
RadWolfie a31f5f7e34 fix Gauntlet Dark Legacy intro videos by sleep longer 2020-01-22 12:20:06 -06:00
RadWolfie 6aae3548e6 improve stream's packets process 2020-01-22 12:20:06 -06:00
RadWolfie 8fb60f6806 put dsstream's packet functions into its own file 2020-01-22 12:13:13 -06:00
RadWolfie 54421832e5 fix audio stream's packet larger than host buffer size 2020-01-22 12:13:13 -06:00
Luke Usher f2ae91785c psh: skip FixOverusedRegisters on all LRP instructions 2020-01-16 22:24:20 +00:00
Luke Usher b64fcff530 Fix hang in WWE Raw 2 after previous PR 2020-01-16 20:57:23 +00:00
Luke Usher 3b06181c0c
Merge pull request #1811 from PatrickvL/avoid_lrp_error
Prevent error X5765 on pixel shader LPR opcode
2020-01-16 09:15:05 +00:00
RadWolfie a375faba51 fix audio frequency by set only given frequency value instead of from host function 2020-01-11 02:04:39 -06:00
RadWolfie 7199f44cbb extend HLE DSOUND relative log modules 2020-01-08 18:30:26 -06:00
RadWolfie a57156fe4e split classes into their own files 2020-01-08 18:30:26 -06:00
RadWolfie 044d53c74f HOTFIX: add static in XADPCM.h file 2020-01-08 18:30:26 -06:00
RadWolfie b581073f07 remove duplicate log reports 2020-01-08 18:30:26 -06:00
Luke Usher e937bc13d9 Fix a crash when converting certain, large vertex shaders
This allows DOA3 to play again after it was broken by the HLSL work.

The cause of the crash was a Stack Overflow when compiling the shader,
caused by allocating a large object on the stack.

Instead, this commit allocates the XboxVertexShaderDecoder on the heap
instead, which thanks to the unique_ptr smart pointer, automatically
gets freed when it goes out of scope.
2020-01-01 22:29:28 +00:00
PatrickvL cb4d27728c This moves construction of lookup strings outside call-locations towards a central LookupTrampolines() function, reducing the overhead of calling a trampoline down to a minimum. 2019-12-31 12:04:06 +01:00
patrickvl 36569f0d2e This prevents "error X5765: Dest register for LRP cannot be the same as first or third source register" in WWE RAW2.
A little background information :

When compiling pixel shaders, to facilitate later optimizations, FixOverusedRegisters() inserts MOV opcodes reading from constant, vertex color or texture registers, and writing to a free R register slot.

In this case, this transformed :

````
lrp r0, c0,r2,c1
````

into

````
mov r0, c0
lrp r0, r0,r2,c1
````

Not only introduces this a completely useless additional MOV (to R0, which is overwritten by the next LRP opcode), but it also results in LRP reading from R0, which is the same register it's writing to, which seems to be forbidden.

This fix prevents that from happening, by not-inserting a MOV when this situation would arise.

It's possible there exist more such scenario's, but let's tackle them when they are reported.

As for the other change in this commit : Instead of repeating a nearly identical while-loop three times, this loop is now wrapped in a for-loop, that handles all three versions (for PARAM_C, PARAM_V and PARAM_T type registers).
2019-12-26 14:56:28 +01:00
RadWolfie 8fd6253ad1
Merge pull request #1809 from PatrickvL/d3d-visibility-test_pvl
Implement BeginVisibilityTest, EndVisibilityTest and GetVisibilityTestResult
2019-12-25 12:13:24 -06:00
patrickvl a21cb8f0fd Clearer LOG_TEST_CASE message 2019-12-25 17:11:37 +01:00
PatrickvL e79a4e4131
Merge pull request #1808 from RadWolfie/sync-xbsymboldatabase
Update to Latest XbSymbolDatabase API Change
2019-12-25 16:37:11 +01:00
RadWolfie 5a5c3b67a5 update to latest XbSymbolDatabase API change 2019-12-25 09:08:41 -06:00
PatrickvL 0d43bc19aa Continue with Voxel9's work, and extend it with support for multiple indexed occlusion queries 2019-12-25 16:02:23 +01:00
Voxel9 fd2a0506af Add an explanation for the GetData while loop in GetVisibilityTestResult 2019-12-23 20:10:45 +00:00
Voxel9 1727b7e22b Add D3D query nullptr check for GetVisibilityTestResult 2019-12-23 18:52:48 +00:00
Voxel9 566136c195 Add checks for EndVisibilityTest 2019-12-23 18:44:19 +00:00
Voxel9 d45101a7f5 Check whether CreateQuery succeeds before accessing output 2019-12-22 23:37:02 +00:00
Voxel9 81b1e87594 Move, assign and prefix global query variable appropriately 2019-12-22 22:30:54 +00:00
Voxel9 f1db14b053 Implement BeginVisibilityTest, EndVisibilityTest and GetVisibilityTestResult 2019-12-22 20:00:36 +00:00
patrickvl f97a642bc9 Fixed XDK Fog sample over-saturation by literally saturating all COLOR-semantic outputs (oD0, oD1, oB0 and oB1)!
Also updated the ARL bias, applied the frexp intrinsic to our LOGP function and updated LIT according to 6e3a387c01/src/Shader/ShaderCore.cpp (L1168)
2019-12-22 16:15:35 +01:00
Luke Usher f23c9adae1 Fix vertex state shader compilation in Spy vs Spy^ 2019-12-19 19:34:46 +00:00
PatrickvL 56af31aede Remove unneeded HostDeclarationSize 2019-12-19 18:16:36 +01:00
PatrickvL 270462d22c Replaced Parameter.Active with ParamCount 2019-12-19 17:12:52 +01:00
patrickvl f9410dace0 Added Register out-of-range LOG_TEST_CASE's
Named consistently CXBX specific vertex shader constants
2019-12-19 00:50:43 +01:00
patrickvl 1f83a28a01 Trigger test case popup (instead of just log) when vertex shader can't be compiled (which gives us valuable feedback for now).
Removed obsolete hostTemporaryRegisterCount variable
2019-12-18 22:56:28 +01:00
patrickvl f3d8120c6f Revert unrelated changes
Made RegVIsPresentInDeclaration a class XboxVertexDeclarationConverter protected data member.
2019-12-18 22:45:46 +01:00
patrickvl d28b4836fd Halve the selection of input attrbibute or constant, using lerp.
For this, made sure that the crossover value (as set in SetOverrideFlags) is either 0 or 1.

Also replaced the v0..v15 defines by actual variables. Instead, manually unrolled the initialization code via a concatenating define.
2019-12-18 21:45:44 +01:00
patrickvl 499297993c Remove IsMAC and replace it in HLSL generation with it's underlying condition 2019-12-18 20:12:25 +01:00
PatrickvL 9634329033 Avoid regex_replace by cutting up HLSL template into two raw strings. 2019-12-18 20:12:25 +01:00
Anthony Miles 016f8361b5 Remove dummy shader fallback 2019-12-18 20:12:25 +01:00
Anthony Miles 13df253853 regex_replace first occurrence only 2019-12-18 20:12:25 +01:00
Anthony Miles 949aecd862 Set optimization level 0 2019-12-18 20:12:24 +01:00
PatrickvL adc065b0bc Revert "TMP mechassault hack"
This reverts commit d616e94c117d3e1f0e8ce35bfc97d9f845d3c5b7.
2019-12-18 20:12:24 +01:00
PatrickvL 325e663c9f Further cleanup 2019-12-18 20:12:24 +01:00
PatrickvL ac36e6a0d4 Avoid using uninitialized class members 2019-12-18 20:12:24 +01:00
PatrickvL ebbb8e961f Moved a few functions to a better suitable location, and marked a few class functions 'static' 2019-12-18 20:12:24 +01:00
PatrickvL 18a27a64de Refactor vertex shader decoding types and functions into a class 2019-12-18 20:12:23 +01:00
patrickvl eeced5f0a9 Removed one unnecessary intermediate vertex shader decoding layer 2019-12-18 20:12:23 +01:00
patrickvl 5fe0a16cc6 Renamed vertex shader hlsl file, and prepared it for future extensions to behave closer to specifications (nothing changed for now) 2019-12-18 20:12:23 +01:00
patrickvl cc594ca8d7 Further simplifications in vertex shader decoding to intermediate instructions 2019-12-18 20:12:22 +01:00
Anthony Miles 9ee7bb451f Fix logp z component 2019-12-18 20:12:22 +01:00
Anthony Miles f9e5f51815 Fix dph src1.w double-add 2019-12-18 20:12:22 +01:00
Anthony Miles 1cebf018e2 Use int instead of uint for compatibility with optimizer level 0 2019-12-18 20:12:21 +01:00
Anthony Miles f8b1e35482 fix pInstruction typo 2019-12-18 20:12:21 +01:00
Anthony Miles ab1061634d TMP mechassault hack 2019-12-18 20:12:21 +01:00
Anthony Miles 0aa0dce8fb Hack to make sure pre-transformed and regular geometry go into the same coordinate space 2019-12-18 20:12:20 +01:00
PatrickvL ec2032bf0d Made sure that intermediate vertex shader instructions are never empty
Move A0_X indexing boolean from per-parameter to per-instruction, where it belongs.
2019-12-18 20:12:20 +01:00
PatrickvL ff1412b3d9 Use an HLSL accessor function for reading constant registers, allowing Xbox-native negative indices and out-of-bounds handling. This makes the generated HLSL look closed to the original Xbox vertex shader assembly. 2019-12-18 20:12:20 +01:00
PatrickvL d74e5947ee Refactor vertex shader microcode conversion to intermediate isntructions, fixing pairing bugs like ignore MAC R1 writes 2019-12-18 20:12:20 +01:00
PatrickvL 50a51657b0 Force A0's X mask during decoding (in VshAddInstructionMAC_ARL) instead of HLSL conversion (in OutputHlsl)
Also applied Unix EOL style (again)
2019-12-18 20:12:20 +01:00
Anthony Miles 619b276d81 Generate more accurate viewport values, so we can reverse transforms in the vertex shader more generally 2019-12-18 20:12:19 +01:00
Anthony Miles 5d2ef854fb Remove popups about register usage, now that HLSL is used 2019-12-18 20:12:19 +01:00
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