Commit Graph

6687 Commits

Author SHA1 Message Date
Silent ea98d4bdea
Add a fallback to CopyRects for cases which StretchRect can't handle
Fixes menus in World Racing 2 because CopyRects tries to copy
a texture to texture.
2020-10-20 19:40:46 +02:00
Silent b7b2c24fdb
Start child threads suspended and finalize their initialization before resuming
* Closes a possible race condition where a child thread uses
ThreadHandle or dwThreadId AND starts before _beginthreadex even returns
* Allows to remove hardcoded sleeps "slowing down" parent thread
execution in favour of more reliable affinity mask changes on the child thread

Test case: The Warriors and its race condition on event creation
(child thread waits on the event parent thread creates AFTER spawning
the child thread)
2020-10-19 23:59:22 +02:00
Silent b04980a150
Remove hStartedEvent
It doesn't seem to be useful anymore (does not protect any thread-unsafe
initialization), and it was encouraging the OS scheduler to keep executing
the child thread before returning the parent thread from PsCreateSystemThreadEx

Test case: The Warriors and its race condition on event creation
(child thread waits on the event parent thread creates AFTER spawning
the child thread)
2020-10-19 21:49:46 +02:00
Silent 6f27d335f7
Change ThreadId parameter type to PWORD
Purely cosmetic change, does not change any functionality.
2020-10-19 21:27:16 +02:00
PatrickvL 8588230ee1
Merge pull request #1997 from LukeUsher/fix-shenmue-bios-read
emux86: fix bad bios rom mapping
2020-10-18 17:22:50 +02:00
PatrickvL b07ca858d5
Merge pull request #1999 from CookiePLMonster/pixel-combiner-fixes
Pixel combiner fixes
2020-10-18 16:49:12 +02:00
Silent 2d33a1bb6b
Implement better Blue-to-Alpha
Fixes pixel shaders decoding BINK videos (together with the previous commits).
Cleaned up a few TODOs.
2020-10-18 16:46:57 +02:00
Silent cc98adb38c
Fix SimplifyLRP remapping to wrong intermediate registers 2020-10-18 15:49:17 +02:00
Luke Usher 03d864c465 emux86: update flash read function with a better explaination 2020-10-17 22:37:01 +01:00
Luke Usher 4665bd0c3f emux86: fix bad bios rom mapping
Prevents a crash in Shenmue II
2020-10-17 16:05:17 +01:00
Luke Usher 6a70a08c59
Merge pull request #1996 from CookiePLMonster/viewport-clear-improvements
SetViewport & Clear improvements
2020-10-17 16:04:51 +01:00
Silent 21092a5d38
Support multiple rects in Clear 2020-10-17 14:15:53 +02:00
Anthony Miles 4b85f0949a
Scale viewport X and Y as well as height.
Fixes cases where X and Y are nonzero e.g. DoA3 character select
2020-10-17 14:06:29 +02:00
Silent fa10dcfd29
Refactor SetMixBinVolumes
* Clears the code up
* Picks the buffer volume from the maximum speaker volume
2020-10-17 12:40:57 +02:00
RadWolfie d9ec4342d7
Merge pull request #1995 from CookiePLMonster/dsound-improvements-split
Dsound improvements (split)
2020-10-17 05:37:41 -05:00
Silent 6d2e598c8c
IDirectSoundBuffer_SetBufferData: Fix 0 byte buffers not stoppping audio
NASCAR Heat 2002 (and probably plenty of other titles) submit
an empty buffer to stop audio. Handling this properly fixes
issues with audio samples lingering throughout the session.
2020-10-17 12:33:44 +02:00
Silent 3dcf1e67e0
Fix a copypaste typo in GetFormat_4034_lower and change its signature
Allows GetFormat() to be used more cleanly
2020-10-17 12:31:26 +02:00
Luke Usher 8d8ebd76f7
Merge pull request #1994 from CookiePLMonster/resource-cache-fixup
Treat identical X_D3DResource objects with a different address as one
2020-10-17 11:31:23 +01:00
Silent 0f7ce3b527
Treat identical X_D3DResource objects with a different address as one
This fixes issues where resource objects got relocated in memory or
reused without having been released properly first.

Fixes black cars in NASCAR Heat 2002
2020-10-17 12:24:49 +02:00
Luke Usher 8ae094d730
Merge pull request #1986 from x1nixmzeng/debugger-multi-xbe
Update cxbx-debugger to support switching XBEs during emulation
2020-10-15 08:08:49 +01:00
RadWolfie 7a59d775f9
Merge pull request #1992 from medievil1/Typo-fix-for-IDirectSoundBuffer_SetMinDistance
Typo fix for IDirectSoundBuffer_SetMinDistance patch
2020-10-15 02:03:03 -05:00
medievil1 a7a69f5108 Update DirectSound.hpp 2020-10-15 02:26:10 -04:00
Luke Usher 28d031d9f9
Merge pull request #1990 from ergo720/rdtsc_25_to_life
Avoid false rdtsc negative in 25 to life
2020-10-14 22:33:59 +01:00
ergo720 b34165d63b Avoid false rdtsc negative in 25 to life 2020-10-14 23:17:24 +02:00
Luke Usher 8a87fd8376
Merge pull request #1978 from CookiePLMonster/msaa-improvements
MSAA improvements basing on xdk-3911 behaviour
2020-10-14 21:49:47 +01:00
Luke Usher 9b5fe396ca
Merge pull request #1989 from ergo720/rdtsc_odd_world_stanger_wrath
Fix crash in Stranger's Wrath caused by false rdtsc positives
2020-10-14 20:51:43 +01:00
ergo720 621960258d Fix crash in Stranger's Wrath caused by false rdtsc positives 2020-10-14 21:34:24 +02:00
Luke Usher efe42f4eba
Merge pull request #1985 from CookiePLMonster/fix-rdtsc-overflow
Make RDTSC and ACPI timers stateful to fix overflows
2020-10-13 19:16:29 +01:00
x1nixmzeng df1ead013a Adjust default window size as per feedback 2020-10-12 19:48:21 +01:00
Silent f42009a27e
Implement MSAA scaling to be closer to Xbox
Now scales clears, and applies scaling based on a bound render target.
X/Y scale masks now also match the xbox runtime (at least xdk-3911)
2020-10-12 20:25:14 +02:00
Silent 190ef8c3d5
Implement X_D3DRS_MULTISAMPLETYPE 2020-10-12 20:14:58 +02:00
Silent 0d1a8e3afd
Make RDTSC and ACPI timers stateful to fix overflows
Stateless RDTSC and ACPI timers were ticking relative
to the host QPC and multiplied to nanoseconds.
This resulted in values so huge they would overflow since
20-30 minutes.

Introducing state allows to multiply to nanoseconds only over
a delta value, which should be reasonably small in almost call cases.
2020-10-12 18:26:29 +02:00
Luke Usher 7767250624
Merge pull request #1987 from ergo720/mem_page_usage_fix
Memory manager fixes
2020-10-12 08:46:08 +01:00
Luke Usher 756ad91cbe
Merge pull request #1976 from CookiePLMonster/set-texture-ltcg
Add several D3D8LTCG function variations for xdk-3911
2020-10-12 08:41:01 +01:00
ergo720 dd5a029ee6 Restore correctly the pfn database during reboots when using the debug layout 2020-10-11 23:33:43 +02:00
x1nixmzeng 4c8c00fecd Various UI improvements after move to MDI 2020-10-11 22:19:49 +01:00
x1nixmzeng dce84c4b7e Fix crash unwinding callstack with addresses outside of IntPtr range 2020-10-11 22:11:18 +01:00
ergo720 cd918389a4 Restore correct page usage upon xbe reboot 2020-10-11 21:29:49 +02:00
ergo720 0a3dd68191 Use UnknownType page usage for the pfn pages 2020-10-11 19:38:08 +02:00
x1nixmzeng d7c6648162 Revive stack frame selection and other minor fixes 2020-10-11 18:28:19 +01:00
x1nixmzeng 0b31f3ad95 Suppress missing debugger exception 2020-10-11 17:37:58 +01:00
x1nixmzeng 3241ba8fef Fix exception ranges used by debugger 2020-10-11 17:36:52 +01:00
RadWolfie 216b5c274e
Merge pull request #1983 from CookiePLMonster/mixbin-improvements
Improvements to old style (mask based) mixbin
2020-10-11 09:27:58 -05:00
Silent 2d649c969f
Improve mixbin handling for Revision 1 mixbin
Added an union combining both a pointer to new mixbins
and a mixbin mask, and a function to convert to the new format.
This allows to initialize mixbins for Revision 1 XDKs too.

Implements IDirectSoundBuffer_SetMixBinVolumes_12 and
CDirectSoundStream_SetMixBinVolumes_12.
2020-10-11 15:43:38 +02:00
RadWolfie 24c4e3d0a7
Merge pull request #1970 from LukeUsher/optional-maintain-aspect-ratio
Allow users to disable aspect ratio correction
2020-10-11 07:07:59 -05:00
x1nixmzeng cf594cda97 Rename child MDI form 2020-10-11 12:25:58 +01:00
x1nixmzeng dced533dd8 Add new error code definition 2020-10-11 12:17:22 +01:00
x1nixmzeng e01b863fd2 Support for different debug sessions using MDI child forms 2020-10-11 12:16:22 +01:00
x1nixmzeng 96155736e5 Update debugger types and thread report handling 2020-10-11 12:14:42 +01:00
x1nixmzeng 3a740d7933 Report relaunching with another Xbe to the debugger 2020-10-11 12:13:03 +01:00