Commit Graph

5581 Commits

Author SHA1 Message Date
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
RadWolfie 0fdc7ec7ae
Merge pull request #1572 from LukeUsher/nvnet-revisited
Introduce Network Support (System Link/Lan)
2019-03-26 11:08:46 -05:00
Luke Usher 21b51684f2 More tab->space 2019-03-26 15:49:38 +00:00
Luke Usher ec2ae6e95a Line Endings 2019-03-26 15:43:34 +00:00
Luke Usher 167603bbc4
Merge pull request #1570 from NZJenkins/fix_warnings
Fix warning passing ushort to set1
2019-03-26 11:14:49 +00:00
Luke Usher 6b6d0edb43 XQEMU NVNET credit 2019-03-26 09:18:15 +00:00