Commit graph

6186 commits

Author SHA1 Message Date
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
Luke Usher
670d90651c
Merge pull request #1586 from RadWolfie/ds-globalfocus-option
DirectSound unfocus audible option + minor fixes
2019-04-13 16:00:03 +01:00
RadWolfie
82909b939f add "Disable mute on unfocus" option to audio settings 2019-04-12 16:06:58 -05:00
RadWolfie
b19fc40ff1 rename Hardware Video to Exclusive Fullscreen 2019-04-12 15:25:28 -05:00
RadWolfie
9d58043d41 fix generated resource file to use correct file path
Thanks to ergo720 for bring it up. I may had not find the cause at all.
2019-04-12 15:01:53 -05:00
RadWolfie
5d973b2dec fix Visual Studio resource generated files 2019-04-12 13:44:07 -05:00
PatrickvL
8f50a2c8e5
Avoid error on Cxbx post-build copy command when the SolutionDir contains a space. 2019-04-11 17:18:03 +02: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
Luke Usher
686ea7e303
Merge pull request #1582 from NZJenkins/catch_surfaces_as_textures
Log non-texture resources passed to GetHostTexture
2019-04-10 10:27:16 +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
PatrickvL
2e5b9562e0
Merge pull request #1581 from LukeUsher/rdtsc-vsync-and-timing
Respect Xbox presentation interval
2019-04-09 09:20:46 +02: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
4df55f2f24
Merge pull request #1579 from ergo720/fix_ke_deadlock
Fix a deadlock in KiTimerExpiration caused by KeWaitForSingleObject
2019-04-05 14:45:59 +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
PatrickvL
f58d3ce6cf
Merge pull request #1577 from LukeUsher/tweaking
Cleanup XbConvert as a whole: Less magic, more mapping, more logging of unsupported features
2019-04-02 14:15:22 +02: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
Luke Usher
f2d326e2cd
Remove 'stable' link to reduce confusion. 2019-04-01 16:20:56 +01:00
RadWolfie
1affa2a680 hotfix for convert uint16_t to uint32_t as should be for nBlockAlign equation 2019-03-28 00:26:50 -05:00
RadWolfie
274c6fd083
Merge pull request #1575 from LukeUsher/bug-hunting
Implement CDirectSoundStream_GetInfo
2019-03-27 23:33:45 -05:00
Luke Usher
70531f6cdb Stop SetScreenSpaceOffset from spamming log files 2019-03-27 23:12:01 -05:00
Luke Usher
e7f65b55f1 Implement CDirectSoundStream_GetInfo proper 2019-03-27 23:12:01 -05:00
RadWolfie
52357b7ac8 fix nBlockAlign equation 2019-03-27 22:14:43 -05:00
PatrickvL
d3730519d3
Merge pull request #1574 from LukeUsher/use-standard-types
Use standard types from cstdint rather than custom typedefs
2019-03-27 17:14:02 +01:00
Luke Usher
aeca3d3d92 Use standard types from cstdint rather than custom typedefs 2019-03-27 15:54:17 +00:00
PatrickvL
352f619e7c
Merge pull request #1573 from LukeUsher/gunvalkyre-pal
Add GunValkyre PAL (IG-023) to Input Hack list
2019-03-27 15:35:44 +01:00
Luke Usher
8e530e3ec6 Add GunValkyre PAL (IG-023) to Input Hack list 2019-03-27 13:55:43 +00:00