Commit Graph

3339 Commits

Author SHA1 Message Date
RadWolfie 58571f4bde Remove XREF_ADDR_DERIVE
Nothing need to be change inside XbSymbolDatabase moudle.
2018-05-12 07:24:10 -05:00
RadWolfie a2cf964f86 Final fix for Cxbx-R compile issue 2018-05-12 07:24:10 -05:00
RadWolfie 53b2def540 Should be final fix
However, XbSymbolDatabase's pull request is missing OOVPA signature.
2018-05-12 07:24:10 -05:00
RadWolfie 82aaf60817 Remove unused files since had been moved and cause bad build 2018-05-12 07:24:10 -05:00
RadWolfie b87893f3fe Fix old tabs mess 2018-05-12 07:24:10 -05:00
RadWolfie cc05e9ad3a Replace tabs to spaces
Update coding style for HLEIntercept files.
2018-05-12 07:24:10 -05:00
RadWolfie 366afcc778 Add support for output message 2018-05-12 07:24:10 -05:00
RadWolfie 6b07012459 Hopefully this is a final fixup
Tested with 10+ titles. Only noticable change is CreateMutexA changed to CreateMutex in HLECache file.
2018-05-12 07:24:10 -05:00
RadWolfie e579f87b2c Upgrade XbSymbolDatabase with minor update
* disable debug build trace since it does not compile and need to be move into XbSymbolDatabase
* Use > 0 for boolean check.
2018-05-12 07:24:10 -05:00
RadWolfie 6800055b29 Using XbSymbolScan is accurate with XbSymbolDatabase
However, there appear to be one function not being detected at the moment with Burnout title.
2018-05-12 07:24:10 -05:00
RadWolfie caa323e613 Remove local test breakpoint 2018-05-12 07:24:10 -05:00
RadWolfie 1419fc14e0 Update to sync with XbSymbolDatabase
Currently not optimized, and planning on COMPLETE move scan optimized with our own header structure to be used with.
2018-05-12 07:24:10 -05:00
RadWolfie ed263d7dbc Start using XbSymbolDatabase library
It does not fully transfer everything yet and D3D8 depending on OOVPA signature directly are currently disabled for time being.
2018-05-12 07:24:10 -05:00
RadWolfie 4344f5db58 Remove HLEDatabase files
Moving into new project.
2018-05-12 07:24:10 -05:00
patrickvl 04122aafef D3D : Added some notes to handling parent-textures for surface-conversion 2018-05-12 02:20:30 +02:00
patrickvl d2db9557b4 D3D : Fix Burnout so it gets in-game again, by checking parent texture type first, before getting it's surface 2018-05-12 02:03:51 +02:00
patrickvl 672b1d2824 D3D : Call GetVerticesInBuffer once instead of per stream. Also let GetVerticesInBuffer loop over entire index buffer (as the highest index could ly before the starting vertex offset) 2018-05-12 01:38:33 +02:00
patrickvl e8e6fc56fb D3D : Don't crash hard when SetStreamSource fails (this gets Galleon in-game again) 2018-05-12 01:15:23 +02:00
patrickvl 70af9c5684 D3D : Added comments about a few more reported test-cases 2018-05-12 00:19:54 +02:00
patrickvl bac6fc3b2b D3D : Added notes on dynamic textures (which cause unreachable, black mipmap levels) 2018-05-11 22:27:47 +02:00
jackchentwkh 54e12cafae Fix fading black regression. 2018-05-12 00:25:20 +08:00
patrickvl a44971470b D3D : Fixed JSRF glitches - no more regressions in this branch!!! 2018-05-11 09:48:03 +02:00
patrickvl 9e1a1394cc D3D : Refactored the determination of how many vertices are in a vertex buffer 2018-05-11 09:15:56 +02:00
patrickvl ad0d817463 rebase fix 2018-05-11 00:53:55 +02:00
patrickvl a85def1d02 D3D : Disabled experiments, trying to get SetRenderTarget working at all times 2018-05-11 00:49:56 +02:00
patrickvl 78997168c4 D3D : Tiny bits of porting to Direct3D 9 2018-05-11 00:49:55 +02:00
patrickvl 125fce4481 D3D : Added (also experimental) support for parent-volume textures behind volumes 2018-05-11 00:49:54 +02:00
patrickvl c0567b1920 D3D : Added (experimental) support for parent-textures behind surfaces 2018-05-11 00:49:52 +02:00
patrickvl 3905de4a11 D3D : Experiment with D3DUsage flags 2018-05-11 00:49:51 +02:00
patrickvl 91ed03eba8 D3D : Refactored initialization of supported-format arrays 2018-05-11 00:49:49 +02:00
patrickvl d77fe1c1a4 D3D : Popup D3DDevice_DrawVertices test-cases for Quad-rendering with a StartVertex above 0 2018-05-11 00:49:48 +02:00
patrickvl b4daa37cab D3D : Take StartIndex into account when calling WalkIndexBuffer 2018-05-11 00:49:47 +02:00
patrickvl 143b02aa1d D3D : Instead of calling WalkIndexBuffer on pQuadToTriangleIndexBuffer, we can derive the LowIndex and HighIndexes ourselves 2018-05-11 00:49:30 +02:00
jackchentwkh 1d3e93963f not sleep enough!! :Q 2018-05-11 00:49:17 +02:00
jackchentwkh 1704ae8fd1 oops, something wrogn during rebase.
here is the code.
2018-05-11 00:49:15 +02:00
jackchentwkh 2aacd23d62 Fix missing diagonal half screen. 2018-05-11 00:49:14 +02:00
patrickvl 78124fca5e D3D : Small refactorings 2018-05-11 00:49:12 +02:00
patrickvl b3a10ba949 D3D : Apply WalkIndexBuffer everywhere possible 2018-05-11 00:49:11 +02:00
patrickvl b35ec48a27 D3D : Renamed to g_CachedIndexBase to g_XboxBaseVertexIndex 2018-05-11 00:49:09 +02:00
jackchentwkh 6ccf591cd2 Use WalkIndexBuffer() 2018-05-11 00:49:06 +02:00
jackchentwkh dd99b48511 Add index buffer walk through to setup min. index and index vertex span correctly. 2018-05-11 00:49:05 +02:00
PatrickvL ddaf4b293e Merge pull request #22 from jackchentwkh/DrawingPrimitives Romove wrong pIndexData assignment 2018-05-11 00:48:47 +02:00
jackchentwkh 724239f721 Romove wrong pIndexData assignment
pIndexData was assigned in line#432 with correct value.
2018-05-11 00:48:46 +02:00
Luke Usher cd751877e4 Fix vertex buffer size calculation: pIndexData wasn't set in DrawContext 2018-05-11 00:48:42 +02:00
patrickvl 1415ce2a1a Post-rebase fixes 2018-05-11 00:48:41 +02:00
PatrickvL 57f49dd378 D3D : Incomplete (!) attempt at fixing cube texture conversion (this needs adjusting). XDK test cases : CubeMap, Fur, FuzzyTeapot, Strip
Also some much needed code cleanup (indenting, comments, grouping variables, etc).
2018-05-11 00:48:40 +02:00
PatrickvL 5e8a34cb22 D3D : Determine texture dimensions via already existing tooling functions. This fixes the bump texture in BumpEarth XDK sample.
Also split up texture-format support array into 6 versions : texture vs surface, and normal vs render-target vs depth-stencil.
2018-05-11 00:48:38 +02:00
patrickvl 86c3455f81 D3D : Populate (to-patch) stream info directly, instead of via a memcpy 2018-05-11 00:48:37 +02:00
patrickvl 2f6e79e71b D3D : Renamed DynamicPatch to Info, making the vertex-conversion code a bit better to understand. Also merged CxbxVertexStreamPatch into CxbxVertexShaderInfo and CxbxVertexShaderElementPatch into CxbxVertexShaderStreamInfo, recuding the number of confusing types. 2018-05-11 00:48:35 +02:00
PatrickvL 72d9d63450 Cleaning up and renaming lots of vertex conversion code, towards finding the reason vertex-streams aren't converted correctly (see Dolphin sample) 2018-05-11 00:48:34 +02:00
patrickvl c6d0cca1a7 D3D : Introduced and used MapXboxVertexShaderHandleToCxbxVertexShader 2018-05-11 00:48:32 +02:00
patrickvl a47170b1f1 D3D : Disabled bNeedRHWReset partially. Added dimensionality to texture-normalization 2018-05-11 00:48:31 +02:00
patrickvl 44399f9ab9 D3D : DrawIndexedVertices must pass on the active IndexBase, so GetVertexBufferSize takes it into account 2018-05-11 00:48:29 +02:00
patrickvl 0e1887e5a7 D3D : Added a few test-cases (removed popups for them) 2018-05-11 00:48:28 +02:00
PatrickvL 33b0564b9e D3D : Removed dead code 2018-05-11 00:48:27 +02:00
PatrickvL 47957f0b79 D3D : Silence two LOG_TEST_CASE's (because comments already show a few cases) 2018-05-11 00:48:25 +02:00
PatrickvL a3c250445e D3D : Fixed memory leak, and a mistake in the previous commit (assigning uiHostVertexStride too soon) 2018-05-11 00:48:24 +02:00
PatrickvL a3a240a5b5 D3D : More cleanup 2018-05-11 00:48:23 +02:00
PatrickvL 73ccf18285 D3D : Some more renaming and code cleanup 2018-05-11 00:48:21 +02:00
PatrickvL 47d00b4d7a D3D : Addressed Luke's review comments (somewhat) 2018-05-11 00:48:20 +02:00
PatrickvL a93cdfa15e D3D : New primitive drawing code starts working! 2018-05-11 00:48:18 +02:00
patrickvl 8c0a784785 Rebase fixes 2018-05-11 00:48:17 +02:00
patrickvl a9e28964f1 D3D : Many more renames from WIP_LessVertexPatching branch, and now also most of it's vertex buffer conversion (not everything, yet) 2018-05-11 00:48:15 +02:00
PatrickvL a13ee28307 D3D : Renames, taken from WIP_LessVertexPatching (no functional change yet) 2018-05-11 00:48:14 +02:00
PatrickvL aa6896ddce D3D : Fix after rebase 2018-05-11 00:48:12 +02:00
PatrickvL 7ee1b3197f D3D : In EmuFlushIVB, call CxbxDrawPrimitiveUP instead of g_pD3DDevice8->DrawPrimitiveUP.
Also renamed VertexPatchDesc into CxbxDrawContext and VertexPatcher into CxbxVertexBufferConverter.
2018-05-11 00:48:11 +02:00
PatrickvL 738f584e63 D3D : Less primitive patching (not finished yet) 2018-05-11 00:48:09 +02:00
PatrickvL 2e88968bc1 D3D : Copied over CxbxDraw* functions from my WIP_LessVertexPatching branch.
Note : This causes corruption, we're probably missing something
2018-05-11 00:48:08 +02:00
patrickvl fb31f6e952 D3D : Disable popup on D3DDevice_GetViewportOffsetAndScale (we've got plenty of test-cases now) 2018-05-11 00:44:48 +02:00
patrickvl 584985bb3a D3D : DrawIndexedVerticesUP fallbacks for two unsupported primitive types 2018-05-09 23:39:53 +02:00
PatrickvL 4c656faad4
Merge pull request #1146 from jackchentwkh/master
Fix RalliSpor crash by skip QUADLIST rendering with index buffer.
2018-05-09 22:20:47 +02:00
jackchentwkh b521a11bb1 Skip unsupported Primitive Type rendering.
add more info with EmuWarning for the ease of future debugging.
2018-05-10 03:16:18 +08:00
PatrickvL 4be153164f
Merge pull request #1144 from jarupxx/LTCG_patch
D3D : Copy over from Standard functions to LTCG optimized functions
2018-05-09 14:22:11 +02:00
jarupxx 5dc9d5310e D3D : Copy over from Standard functions to LTCG optimized functions
due lost parameter in EAX.
- D3DDevice_LoadVertexShader_4
- D3DDevice_SetTextureState_BorderColor_4
- D3DDevice_SetStreamSource_8

Rewrite functions
- D3DDevice_SelectVertexShader_4

Also add functions
- D3DDevice_LoadVertexShader_0
- D3DDevice_SetTextureState_TexCoordIndex_0
- D3DDevice_SetTextureState_ColorKeyColor_4
2018-05-09 20:58:46 +09:00
jackchentwkh b026952740 Skip rendering when dwCount==0 or possible non-FVF push buffer 2018-05-08 18:56:24 +08:00
jackchentwkh c3cc70c6cf only warning instead of shut down when possible non-FVF push buffer detected. 2018-05-08 18:21:06 +08:00
jarupxx 03921a4b2a Leave LOG TEST_CASE on EndVisibilityTest_0
Valid parameter is passed in EAX
2018-05-07 18:28:13 +09:00
patrickvl 9917594c76 Fixed linker error under Release builds (thanks to Radwolfie's help) 2018-05-06 04:36:59 -05:00
patrickvl 579bb0a898 Avoid linker error under Release builds (but still needs a fix) 2018-05-06 04:36:59 -05:00
PatrickvL 7a76fd4473 D3D : Log host D3DCaps unconditionally 2018-05-06 04:36:59 -05:00
PatrickvL ef9c36346d D3D : Log all host D3DCaps members to string 2018-05-06 04:36:59 -05:00
PatrickvL 5233fe8ccc D3D : Dump host D3DCaps (initial commit - there's more to be rendered) 2018-05-06 04:36:59 -05:00
PatrickvL 4f8543065a D3D : Avoid a crash when creating a fallback texture instead of something that was supposed to become a DepthStencil.
This occurred when Panzer Dragoon ORTA goes in-game for example.
2018-05-04 17:48:07 +02:00
Luke Usher 564826e38d Fix an issue where AutoDepthStencilFormat of D16_LOCKABLE caused CreateDevice to fail 2018-05-03 23:17:44 +01:00
Luke Usher e54e7fbfcf Make new RDTSC patch the default, the old method is optional 2018-05-03 21:23:09 +01:00
Luke Usher 07bad7b1c6
Merge pull request #1123 from jackchentwkh/RDTSC-Patch
Repropose RDTSC patch hack
2018-05-03 18:55:49 +01:00
Luke Usher a9f81d778c
Merge pull request #1125 from jackchentwkh/D3DDevice_BeginPush_two_arg
Quick Fix for 4531 BeginPush OOVPA
2018-05-03 18:54:53 +01:00
jackchentwkh f656648c2c Add BeginPush OOVPA for 4531, tested with crazi taxi 3.
add 4531 to BeginPush OOVPA registration.
revise BeginPush2 loging message.
2018-05-04 01:02:45 +08:00
Luke Usher 45b4a62b65
Merge branch 'master' into RDTSC-Patch 2018-05-03 16:53:33 +01:00
Luke Usher 0d8f1dd269
Merge pull request #1124 from jackchentwkh/D3DDevice_BeginPush_two_arg
Add D3DDevice_BeginPush2 patch for XDK 4134
2018-05-03 16:43:03 +01:00
jackchentwkh 3b8250c598 Add more remarks.
we shall use scaled PerformanceCounter all the time no matter we patched the rdtsc or not.
2018-05-03 23:40:27 +08:00
jackchentwkh cd60b7bbf8 put deleted code back with remarks. 2018-05-03 22:59:13 +08:00
jackchentwkh c5fb332601 add D3DDevice_BeginPush2 for XDK4134
Rallisport uses this version.
2018-05-03 21:55:34 +08:00
Luke Usher fe464da7fd
Merge pull request #1109 from PatrickvL/viewport_scaling
Viewport scaling
2018-05-03 14:06:23 +01:00
jackchentwkh 557ccc13a0 restore hack option
only patch rdtsc when the hack option is selected
2018-05-03 20:38:34 +08:00
jackchentwkh e90c2f659d Using pattern matching for rdtsc search.
exclude certain false positive.
2018-05-03 19:51:33 +08:00
patrickvl ccd82a8e0f HLE : Configurable viewport scaling (as a hack) 2018-05-02 19:10:03 +02:00
Luke Usher 7015aaa07b Return => Continue 2018-05-02 21:51:07 +08:00
Luke Usher e6235bb013 Avoid false positives using method derised by jackchen 2018-05-02 21:51:07 +08:00
Luke Usher 3e516f6b0d Oops, don't break after finding one rdtsc in a section 2018-05-02 21:51:07 +08:00
Luke Usher 8f63dffd98 Fix off-by-one error in rdtsc patch 2018-05-02 21:51:07 +08:00
Luke Usher 7f97ebf71f Fix false positive detecion in ,data segment in some titles 2018-05-02 21:51:07 +08:00
Luke Usher e53213f056 Patch rdtsc instructions 2018-05-02 21:51:07 +08:00
PatrickvL c7c964394b
Merge pull request #1113 from jackchentwkh/master
RAW pushbuffer handling improve
2018-05-01 22:18:06 +02:00
jackchentwkh f88ed6f7fd Fix method 1800
Restore the mis-deleted pIndexData initiation.
Correctly calculate dwCount with 16 bit element.
NO_INCREMENT flag implementation (by guess, ha!)
2018-05-01 23:13:53 +08:00
PatrickvL 7ac82d5de1 HLE : GetViewport scales host viewport back to Xbox dimensions (some titles might get less confused by the return value) 2018-05-01 17:03:49 +02:00
RadWolfie 270a821ad5 Replace static size to dynamic array for DSound
Both DS Buffer and Stream are now using C++ std vector instead of static
size array which is in C.

It should improve performance for lower-end computers. Before, high-end
computers will only notice very light performance impact. Now appear to
be no performance impact unless certain titles are preserving maximum
size.
2018-04-30 23:29:38 -05:00
jackchentwkh 4bb24dc19a raw pushbuffer process fixup
add NOP method support
add TRANSFORM_CONSTANT_LOAD and TRANSFORM_CONSTANT method tips.
improve unkonwn method handling by skipping parameters indicated by dwCount
add pushbuffer size check to prevent overflow.
2018-05-01 10:48:46 +08:00
jackchentwkh 5fbb91c6a6 Fix address interpretation of PushBuffer Data and Fixup Data.
Include the fixup code without using function
2018-04-30 09:22:39 +08:00
patrickvl 6a897212a7 HLE : Refactored window resizing, so it's done only when needed, only in the GUI process. 2018-04-29 22:33:03 +02:00
patrickvl bed1d7bfc7 HLE : Fake field rendering by halving the perceived height in SetViewPort 2018-04-29 22:33:03 +02:00
patrickvl 8fa81b99af HLE : Post-rebase fixes 2018-04-29 22:33:03 +02:00
patrickvl 2654eaae3c HLE : Limit width/height to desktop resolution 2018-04-29 22:33:03 +02:00
patrickvl df81c52372 HLE : Resize window according to configuration 2018-04-29 22:33:02 +02:00
patrickvl 73b96ac783 HLE : Disable calling the Xbox SetViewport code, as it causes regressions.
Also start collecting test-cases for D3DDevice_GetViewportOffsetAndScale
2018-04-29 22:33:01 +02:00
patrickvl eff073e518 HLE : Use CxbxGetPixelContainerMeasures to get overlay dimensions 2018-04-29 22:33:01 +02:00
patrickvl 25e32d8d7c HLE : Post-rebase fixes 2018-04-29 22:33:00 +02:00
patrickvl 0ec58ff4b8 HLE : Cache render-target (and depth-stencil while we're at it) for use in SetViewPort 2018-04-29 22:33:00 +02:00
PatrickvL d3a278a5aa HLE : Scale viewport from Xbox to host (this might fix some drawns to the upper-left corner) 2018-04-29 22:33:00 +02:00
Luke Usher 317b9dfe00
Revert "Replace EmuX86's interpreter with Unicorn" 2018-04-29 20:16:03 +01:00
Luke Usher 2d1de80459
Merge pull request #1110 from jackchentwkh/multi_controller
Multi Controller Support with Xinput
2018-04-29 20:12:19 +01:00
RadWolfie 3dec725f76 Remove debug trace from release build 2018-04-29 12:40:44 -05:00
RadWolfie e591409cca Fixed no audio
It was cause by hRet not set to DS_OK, original value returned to title
was out of memory flag.

This fix titles:
* Mafia
* JSRF
* Taz - Wanted
* etc
2018-04-29 12:40:44 -05:00
RadWolfie 53ac646e2e Fix Mafia crash
If there's no packets, then there's no reason to process stream.
2018-04-29 12:40:44 -05:00
RadWolfie 194e0dc0e8 Ctrl pan cannot be used with ctrl 3D flag 2018-04-29 12:40:44 -05:00
RadWolfie 09eb0ef6be Removed unused 2 local vars 2018-04-29 12:40:44 -05:00
RadWolfie 636060ea1b Renames and use pThis instead of ppDSBuffer 2018-04-29 12:40:44 -05:00
RadWolfie 603f086180 Replace silence with predefined volume min
Plus don't re-set volume twice.
2018-04-29 12:40:44 -05:00
RadWolfie e9bdc1f0b5 Append check if stream is paused 2018-04-29 12:40:44 -05:00
RadWolfie ae3f812347 Small fixup for Pause functionality
Plus do set status outside of DS_OK state too.
2018-04-29 12:40:44 -05:00
RadWolfie 0043262818 Fix previous commit
Oops...
2018-04-29 12:40:44 -05:00
RadWolfie c8aa74a85a Update Stream creation to similar of Buffer does 2018-04-29 12:40:44 -05:00
RadWolfie ffc70d0721 Move early enough to output org lVolume before set 2018-04-29 12:40:44 -05:00
RadWolfie 1294db22f6 Add support for SetHeadroom function
Untested btw, yet the concept should work as is.
2018-04-29 12:40:44 -05:00
RadWolfie f35add180c Missed another patch requirement for DSound Stream 2018-04-29 12:40:44 -05:00
RadWolfie be63382661 Change print format mistake
Might be printing wrong numbers.
2018-04-29 12:40:44 -05:00
RadWolfie 0493faaf43 Oops...
Should not be looping in here.
2018-04-29 12:40:44 -05:00
RadWolfie 5da6e0c9d2 Fix older XDK titles crash 2018-04-29 12:40:44 -05:00
RadWolfie d19efc44f9 Fix SW: KotOR title
Packet was incomplete due to dwMaxSize is greater than 5 seconds worth
of data.

Plus fixup synch flags whenever is able to add/remove its limitation.
2018-04-29 12:40:44 -05:00
RadWolfie 3f51494f48 Also DSP function being ignored too 2018-04-29 12:40:44 -05:00
RadWolfie 1b9405c8b8 Fix passdown value for second call. 2018-04-29 12:40:44 -05:00
RadWolfie 990b87198e Replace NULL to nullptr since it is pointer... 2018-04-29 12:40:44 -05:00
RadWolfie 3c723d2763 Various bug fixes
* no reason to re-set value twice from SetBufferData
* passdown the length, not offset
* use counter instead of count
* if size is the same replace "out of memory" to "ok" result, and ignore
DSP image function.

This is the corrections, however doesn't cover every faults few titles
has atm.
2018-04-29 12:40:44 -05:00
RadWolfie 7fb1451fee Add SwitchToThread inside loop when buffer playing 2018-04-29 12:40:43 -05:00
RadWolfie 18c6948153 Fix SetBufferData biggest issue of all
!Major breakthrough!

Titles improved:
* The Simpsons: Road Rage (now has music and voiceover audible)
* Ghost Recon: Thunder Island (No longer output distort noises ingame.
100% sure the rest of sequels will work correctly.)
2018-04-29 12:40:43 -05:00
RadWolfie 3590aa0f19 Another small update
* Only perform a buffer resize. Allow play function to make buffer
update only.
* Removed unused parameters.
2018-04-29 12:40:43 -05:00
RadWolfie 17ca484370 Small updates 2018-04-29 12:40:43 -05:00
RadWolfie 73ebd2f893 Also fix DS Buffer GetStatus function too.
PAUSED (xbox) and BUFFERLOST (host) are using same value. We're only
enforcing 3 flags for xbox.
2018-04-29 12:40:43 -05:00
RadWolfie 5e48c63046 Replace unimplemented to ignored for HRTF functions 2018-04-29 12:40:43 -05:00
RadWolfie be6fab6b7e Add audio debug mute control
For pinpoint which audio is causing problem then troubleshoot from
there.
2018-04-29 12:40:43 -05:00
RadWolfie f16423a17e Update copyright year 2018-04-29 12:40:43 -05:00
RadWolfie 8b9570e5ee Remove unused function 2018-04-29 12:40:43 -05:00
RadWolfie 0f48c04b31 Fix possible Pocketbike Racer audio skipping bug
At least should resolve the bug, need tester to test it one more time to
verify the bug is gone for good.
2018-04-29 12:40:43 -05:00
RadWolfie ebe552f62c Add another minor note 2018-04-29 12:40:43 -05:00
RadWolfie d93990264f Add test case log for DS Stream Process function 2018-04-29 12:40:43 -05:00
RadWolfie 8ac0bb1371 Last fixup for mixbin
There are other identifiers of mixbin, except we're not focusing on
them.
2018-04-29 12:40:43 -05:00
RadWolfie 7627267c15 Preserve and correct some volume stuff
We don't want volume to constant increase over time. 😉
2018-04-29 12:40:43 -05:00
RadWolfie e5bd691615 Another fixup for XDSMIXBIN flags 2018-04-29 12:40:43 -05:00
RadWolfie edd526ff2f Add some support for SetMixBinVolumes_8
Plus include pre-set volume for if one of audio codec is disabled to
both Buffer and Stream class creations.
2018-04-29 12:40:43 -05:00
RadWolfie db2c8017d2 Move note to above function 2018-04-29 12:40:43 -05:00
RadWolfie d14ab3b0e6 Fix note for SetMixBinVolumes patch 2018-04-29 12:40:43 -05:00
RadWolfie 4a115afc26 Remove debug messages
No longer is necessary.
2018-04-29 12:40:43 -05:00
RadWolfie 11222a8538 Another minor fixup for Flush function
Plus ensure flags are reset inside Discontinuity function.
2018-04-29 12:40:43 -05:00
RadWolfie e7d38340ec Minor fix for hybrid pause function 2018-04-29 12:40:43 -05:00
RadWolfie 30e36f36de Revert PAUSENOACTIVATE since it broke audio for RF2
Originally, it might be correct in the first place. It may has to do
with given parameter of buffer class to be output.
2018-04-29 12:40:42 -05:00
RadWolfie 55661cd3d2 Include rtTimeStamp parameter support
This commit covers:
* FlushEx (DSound Stream only)
* PauseEx (DSound Buffer & Stream)

DSoundStream class should no longer cause audio problems this time for
any titles except for mixbin stuff.
2018-04-29 12:40:42 -05:00
RadWolfie 5bd4faba8e Fix DSound Stream's SetFormat
TODO: might need callback and context passdown as well?
2018-04-29 12:40:42 -05:00
RadWolfie 03d2f50d93 Buffer also has PauseEx, add member for it 2018-04-29 12:40:42 -05:00
RadWolfie be82e8ef4a Replace DSB_FLAG_XXXX to DSE_FLAG_XXXX
Doesn't make sense to use DSB since we are using emulated flag to
trigger events of what xbox would do.
2018-04-29 12:40:42 -05:00
RadWolfie 12b4a12f2e Stub support to have Flush process data too.
Need to implement ASYNC support via separate thread worker. <-- is a
requirement.

Confirmed Flush will perform busy-state until audio is stop.
2018-04-29 12:40:42 -05:00
RadWolfie 156ea1d73a Fix GetStatus since both Buffer and Stream are diff
Stream class has its own flags which is 100% different than Buffer
class.

However, it needs more implement support for Flush(Ex) in order to
prevent titles to loop base on Stream class' status output.

Coming Soon™
2018-04-29 12:40:42 -05:00
RadWolfie c6635f5261 Fix GeneratePCMFormat for 2+ channels mask
Confirmed my theory on 4 channels given with attempted 6 channel masks
cause invalid arg on DirectSound buffer creation.

Affected title:
* Ghost Recon 2 (Only happen after 3 or 4 FMVs)
2018-04-29 12:40:42 -05:00
RadWolfie 98daf26e40 Don't trigger/set values during release process
Untested, yet in theory is correct.
2018-04-29 12:40:42 -05:00
RadWolfie cc781826c3 Fix audio buffer allocation
Use prediction if do have enough buffer purpose before allow allocate.
This fixed Mafia title for loading "running man" mission.

Plus add log info for SetEvent failure.
2018-04-29 12:40:42 -05:00
RadWolfie d8246a0074 Remove SelectionT from DSound
Since region has been merged into one buffer usage. SelectionT no longer
a requirement to toggle between main and region buffers.
2018-04-29 12:40:42 -05:00
RadWolfie c5de8c2174 Introduce emulation of xbox audio managed memory
At least emulate xbox audio buffer limitation accurately.

TODO: Need to find max values for Free2DBuffers and Free3DBuffers from
GetCaps function. Then emulating HLE will become more accurate.

Improved title:
* Burnout (Both menu and in-game are now audible.)

Other titles does not appear affected by this change for now.
2018-04-29 12:40:42 -05:00
RadWolfie 20cf54aba1 Redo swap since it got revert somehow. 2018-04-29 12:40:42 -05:00
RadWolfie f6c1992865 Fix GetCaps host's var to initialize correctly
Verified with Burnout title, no longer output failure.
2018-04-29 12:40:42 -05:00
RadWolfie 6611340c51 Little improvement
Might not be 100% accurate, however it had been called in these area
base on RE.
2018-04-29 12:40:42 -05:00
RadWolfie 9a8c7031b2 Add notes 2018-04-29 12:40:42 -05:00
RadWolfie f7f11b9b88 Fixed DSound Stream class
EmuFlags was not set to 0 and GeneratePCMFormat function must be called
after DSoundBufferSetDefault.

Fixed title:
* Battlestar Galactica

Pretty sure it will fix other titles' crashes.
2018-04-29 12:40:42 -05:00
RadWolfie 21a6042e7f Adjustment to PatrickvL's code 2018-04-29 12:40:42 -05:00
RadWolfie 753917509b Fix alloc size for lpwfxFormat
WAVE_FORMAT_PCM always ignore cbSize, we need to manually set to 0 in
order to prevent any crash later on.
2018-04-29 12:40:42 -05:00
RadWolfie b77ecf35e3 Swap Flush/Discontinuity
What to do with Flush's function?

Also, really need to reset internal states in Discontinuity function? As
in like what?
2018-04-29 12:40:42 -05:00
RadWolfie 87beb542f5 Add a note 2018-04-29 12:40:41 -05:00
RadWolfie f830b1e150 Update region changes
Is not 100% verified, however JSRF skating, jump, etc has return to
normal volume.
2018-04-29 12:40:41 -05:00
RadWolfie 32ff268837 Add notes 2018-04-29 12:40:41 -05:00
RadWolfie d6ee5fc4ed Fixup StopEx function
Still not 100% sure if is accurate or not, just closer to accurate.
2018-04-29 12:40:41 -05:00
RadWolfie bdc3fa4fd6 Emulate audio region a bit better 2018-04-29 12:40:41 -05:00
RadWolfie 1fde463e1e Combo changes
* instead of calling malloc everytime, let's merge into class instead.
* Check size at play function (temporary, need to apply overall)
* Minimize duplicate code into simplier reuse inline functions.
* What else?

TODO: Need to update StopEx function.
2018-04-29 12:40:41 -05:00
RadWolfie 2343843098 Enable debug trace 2018-04-29 12:40:41 -05:00
jackchentwkh 3838ae7318 Add multi controller support for Xinput gamepads 2018-04-29 23:43:33 +08:00
Luke Usher 7e21e8bb80
Merge pull request #1104 from jackchentwkh/no_input_fix
Fix no input issue for certain titles.
2018-04-29 14:36:47 +01:00
jackchentwkh b6ce816017 Add emulated dwPacketNumber for DirectInput, this fixed no input issue for direct input users. 2018-04-29 21:28:53 +08:00
jackchentwkh 2766018022 using code from Dxbx to apply fixup data to pushbuffer. 2018-04-29 19:22:09 +08:00
jackchentwkh 1fdca128bd dwPacketNumber must be updated to trigger the xbe to process the new input state 2018-04-29 19:01:36 +08:00
jackchentwkh 8053bbee28 only create handle for port 0 2018-04-29 19:00:51 +08:00
PatrickvL 9a9ee37092
Merge pull request #1093 from PatrickvL/overlay_sync
D3D : Present overlay only when last present was more than 1 frame ago
2018-04-29 00:58:47 +02:00
PatrickvL 51e4dfcaac
Merge pull request #1102 from ergo720/pool_manager
Pool manager
2018-04-29 00:57:20 +02:00
PatrickvL 827f5666e9
Merge pull request #1094 from jarupxx/WIP_LTCG_Patch
Implement D3D8LTCG specific functions
2018-04-29 00:54:23 +02:00
ergo720 8483f896ed Bug fixes and added logging to PoolManager 2018-04-28 22:05:10 +02:00
ergo720 c3630ebf83 Fix compilation errors 2018-04-28 22:05:09 +02:00
ergo720 dcede85bca Small updates to VMManager 2018-04-28 22:05:09 +02:00
ergo720 b7b3d4b326 Fix latent bug in xbe image memory reservation 2018-04-28 22:05:08 +02:00
ergo720 ab679390bc QueryPoolSize 2018-04-28 22:05:08 +02:00
ergo720 ab67c61e6d DeallocatePool 2018-04-28 22:05:07 +02:00
ergo720 e14b775b7e AllocatePool 2018-04-28 22:05:06 +02:00
ergo720 125bc23d4f Pool manager initialization 2018-04-28 22:05:06 +02:00
RadWolfie 2482b59a14 Fix VS 2015 errors 2018-04-28 10:31:49 -05:00
jarupxx cb661c2906 D3D : Fix LTCG optimized SetTextureState functions
- D3DDevice_SetTextureState_TexCoordIndex_4
- D3DDevice_SetTextureState_BumpEnv_8
2018-04-27 21:57:51 +09:00
jarupxx 62a4460de7 D3D : LTCG optimized Direct3D_CreateDevice works like standard functions 2018-04-27 18:13:19 +09:00
jarupxx 5ca0f2a0cc Merge remote-tracking branch 'upstream/master' into WIP_LTCG_Patch 2018-04-27 08:01:38 +09:00
jarupxx fc74b31c85 OOVPA : Regression Fixes 2018-04-27 06:57:56 +09:00
patrickvl e33243d466 D3D : Present overlay only when last present was more than 1 frame ago 2018-04-26 23:48:28 +02:00
Luke Usher 46887a60dc
Merge pull request #1089 from ergo720/eeprom_viewer
Eeprom viewer
2018-04-26 19:12:09 +01:00
PatrickvL 6740ba2776 D3D : Restructured EMUPATCH(D3DDevice_GetBackBuffer2) and disable the last use of EmuNewD3DSurface() 2018-04-26 18:44:49 +02:00
jarupxx f32dd779cb Set LOG_TEST_CASE to untested LTCG specific functions 2018-04-26 20:43:08 +09:00
jarupxx 7dc38ed0e1 Add patch for LTCG optimized functions
- Direct3D_CreateDevice_4
- Direct3D_CreateDevice_16
- D3DDevice_EndVisibilityTest_0  (UNTESTED)
- D3DDevice_LoadVertexShader_4
- D3DDevice_SelectVertexShader_0
- D3DDevice_SelectVertexShader_4 (UNTESTED)
- D3DDevice_GetViewportOffsetAndScale_0 (Broken)
- D3DDevice_SetStreamSource_4
- D3DDevice_SetPalette_4
- D3DDevice_SetFlickerFilter_0
- D3DDevice_DeleteVertexShader_0 (UNTESTED)
2018-04-26 20:13:54 +09:00
jarupxx 2764c3e463 Partly fix patch for LTCG optimized functions
- D3DDevice_SetTexture_4
- D3DDevice_SetPixelShader_0
TODO: XB_trampoline plus Log function is not working due lost parameter.
2018-04-26 20:13:54 +09:00
jarupxx 6929899a48 Change EmuD3DDeferred error to a warning 2018-04-26 20:13:54 +09:00
jarupxx a2a326aac9 OOVPA : Improve more signatures
Lock3DSurface_16, 2048 is correct Lock2DSurface_16
D3DDevice_PersistDisplay_0 uses the general calling convention
2018-04-26 20:13:46 +09:00
jarupxx afd256f784 OOVPA : Add Lock offset value 2018-04-26 19:39:55 +09:00
ergo720 55d0d36d3e Merge remote-tracking branch 'upstream/master' into eeprom_viewer 2018-04-26 11:06:09 +02:00
ergo720 58c1065483 Fix NTSC bug 2018-04-26 10:17:22 +02:00
ergo720 c5bebdd3f2 Oops 2018-04-26 01:34:52 +02:00
ergo720 ccb76c4398 Small updates 2018-04-26 01:04:23 +02:00
ergo720 88739baba9 Finished eeprom menu 2018-04-25 23:54:59 +02:00
patrickvl 0e6c2f7b84 D3D : Added missing Release() calls on a few host resources. Put host resource pointers in local, not global variables. Renamed a few host resource variables. 2018-04-25 17:18:25 +02:00
PatrickvL 5dae9573a9 D3D : Simplified EMUPATCH(D3DDevice_SetRenderTarget) and renamed g_pCached(RenderTarget|DepthStencil|YuvSurface) to g_pXbox* 2018-04-24 18:31:43 +02:00
PatrickvL 208b227d22 D3D : Extra comments and alignment fixes 2018-04-24 18:27:01 +02:00
PatrickvL fd6b56b4a5 D3D : In EmuCreateDeviceProxy, don't call GetRenderTarget (as the result isn't used) and avoid a dangling reference by Release()'ing the result of GetDepthStencilSurface() 2018-04-24 18:17:20 +02:00
PatrickvL 1ca37de8ab D3D : Clear g_EmuCDPD before initializing it in EmuD3DInit() 2018-04-24 18:15:44 +02:00
patrickvl 407cccba78 D3D : In our CreateDevice, trigger EmuCreateDeviceProxy with Xbox PresentationParameters 2018-04-23 23:57:22 +02:00
Luke Usher 640d5570f1 Rebase on latest master 2018-04-23 10:57:55 +01:00
jarupxx d4bed0c3c4 OOVPA : Fix g_Stream symbol detection for LTCG 2018-04-23 18:51:11 +09:00
Luke Usher a24cb08566 Replace EmuX86/Distorm interpreter with Unicorn 2018-04-23 09:51:04 +01:00
ergo720 42873e36f0 Clean memory.bin during boot and quick reboots 2018-04-22 16:44:54 +02:00
ergo720 7a0ced29d1 Default initialize the pointer m_SignatureHeader 2018-04-22 10:35:09 +02:00
ergo720 6dccc816d5 Fix nxdk crash when the signature is all zeros 2018-04-21 23:01:46 +02:00
ergo720 baabd55dc3 More eeprom menu work 2018-04-21 19:18:35 +02:00
Margen67 7552e92060 Remove legacy audio hack 2018-04-20 03:29:12 -07:00
ergo720 4ecfc4d5d4 Started to write eeprom menu 2018-04-19 19:56:20 +02:00
PatrickvL fda56b8516 D3D9 : Further porting in PixelShader.cpp 2018-04-19 15:19:17 +02:00
PatrickvL db2e0e6aa2 D3D9 : Replace D3DRS_ZBIAS with D3DRS_DEPTHBIAS (including the required transformation of the argument) 2018-04-19 14:57:13 +02:00
PatrickvL 75ac78cf8b D3D9 : Replace calls to SetVertexShaderConstant with SetVertexShaderConstantF where needed 2018-04-19 14:50:04 +02:00
PatrickvL bb3c454dce D3D9 : Replace calls to SetVertexShader with SetFVF where needed 2018-04-19 14:44:52 +02:00
PatrickvL 9f10c2fe02 D3D9 : Update calls to SetTextureStageState with SetSamplerState where needed 2018-04-19 14:11:53 +02:00
PatrickvL 9069739771 D3D9 : Use optimal Pool argument for CreateOffscreenPlainSurface 2018-04-19 10:12:37 +02:00
PatrickvL e70059882b Use optimal Usage and Pool arguments when creating index buffers 2018-04-19 10:11:32 +02:00
PatrickvL eecd960021 D3D9 texture-format updates (peeking at Dxbx!) 2018-04-19 09:45:18 +02:00