Commit graph

8195 commits

Author SHA1 Message Date
Léo Lam 756d231ff9 file_sys: Add support for BPS patches
The BPS format allows distributing patches that are smaller and that do
not contain copyrighted content if data is relocated
(unlike non-trivial IPS patches).

This is essential for games such as MM3D that have three barely
different code revisions. Supporting all three versions would
demand an unreasonable amount of work; with BPS patches only one
version has to be supported.
2019-12-22 10:46:47 +01:00
Léo Lam 3140086c60 file_sys: Handle patch applying failures
This changes ApplyCodePatch to return a ResultStatus, which makes it
possible to determine whether patch applying has failed. Previously,
only a boolean was returned, and false was returned when no patch
was found OR when a patch was found but applying it failed.

This also changes AppLoader_NCCH to return an error if patching fails
because the executable is likely to be left in an inconsistent state
and we should not proceed booting in that case.
2019-12-22 10:46:47 +01:00
Léo Lam 1377be9902 file_sys: Move IPS patching code into separate source file
In anticipation of a new BPS patcher.
2019-12-22 10:46:47 +01:00
James Rowe 020cd56ad8
Merge pull request #5030 from jroweboy/reorder-queue-acquire
Remove wait for free buffer
2019-12-18 16:07:52 -07:00
James Rowe dd258acfaf
Merge pull request #5027 from jroweboy/ffmpeg-fix
Reenable AAC FFMPEG decoding
2019-12-17 08:49:35 -07:00
James Rowe f9421eedcc
Merge pull request #5028 from jroweboy/missing-vsync-telemetry
Add missing vsync telemetry field
2019-12-17 08:49:08 -07:00
James Rowe 1d14b98f81 Remove accidentally pushed debugging logs (#5029) 2019-12-17 11:13:47 +01:00
James Rowe f369196c9f Remove wait for free buffer
Previously we would first attempt to use any buffer that was free,
meaning whichever buffer has already been displayed. This has poor
interactions when the operating system throttles the update rate of the
window, so if there isn't any free buffers available, just reuse the
oldest frame instead.
2019-12-16 20:02:01 -07:00
James Rowe b559d1a495 Add missing vsync telemetry field
Was removed as part of #4940 but readded again.
2019-12-16 19:30:28 -07:00
James Rowe e53a2ac411 Reenable AAC FFMPEG decoding
Simple cut/paste issue where initialized is only set to true when the
emulation attempts to init the Binary Pipe, but we used it to test if
the FFMPEG decoder was valid and disabled it if it wasn't. Just return
the value of have_ffmpeg_dl instead so when dynamic loading is added
it'll still work.
2019-12-16 19:23:43 -07:00
James Rowe 439d550850
Merge pull request #4940 from jroweboy/presentation-thread
Split Presentation thread from Render thread
2019-12-15 20:25:34 -07:00
James Rowe 408e225048 Destroy GLWindow on exit to prevent issues closing the app while in fullscreen 2019-12-15 16:20:59 -07:00
James Rowe 36c5058d66 Reintroduce a vsync option for people with really bad drivers 2019-12-15 15:42:05 -07:00
James Rowe ddb7ead3e4
Merge pull request #5020 from jroweboy/dynamic-mf
Runtime Load MediaFoundation dlls on Windows
2019-12-14 10:13:54 -07:00
James Rowe 8b1738aeac
Merge pull request #5023 from jroweboy/fix-register-length
Use the correct register length for index_array
2019-12-13 20:31:08 -07:00
James Rowe 30dfe1fcb8 Use the correct register length for index_array
The index_array can't possible be 31 bits long as that would index
out of bounds memory. According to 3dbrew, this should be 28
2019-12-13 18:08:07 -07:00
James Rowe 337ac73915 Improve aac decoder selection 2019-12-08 16:18:39 -07:00
James Rowe b395efe804 Dynamically load Media Foundation 2019-12-08 13:54:27 -07:00
James Rowe 65613cce81 Add microprofile scopes for presentation 2019-12-02 18:59:12 -07:00
James Rowe 9ae3eb4a30 Remove high dpi scaling flag as it needs more work first 2019-12-02 18:34:11 -07:00
Weiyi Wang 4efb9c6d99
Merge pull request #5016 from zhaowenlan1779/swkbd-fix
applets/swkbd: Remove text memory clearing
2019-12-01 12:09:26 -05:00
zhupengfei 17ba846a3f
applets/swkbd: Remove text memory clearing
The text shared memory wasn't supposed to be cleared according to my comparison with the LLE swkbd. This can cause issues in certain games such as Harvest Moon.

A null terminator is added to the text copied to mark the end of the string.
2019-12-01 23:01:07 +08:00
James Rowe 866df2644b
Merge pull request #4982 from vvanelslande/mic-device
service/mic: actually use the specified device
2019-11-28 21:23:36 -07:00
James Rowe de17fe31fb clang-format 2019-11-28 20:47:33 -07:00
James Rowe ea40eb0994 Use the proper parent window
Fixes an issue where the touch point is incorrect in OpenGLWindow when the render
target is initialized for the first time with single window mode disabled.
2019-11-28 20:35:50 -07:00
James Rowe 123c0212ef Fix window resizing bug 2019-11-28 11:20:42 -07:00
James Rowe ab2b82174c
Merge pull request #5013 from jroweboy/ninjamac
Remove fat binary mac build because travis times out
2019-11-28 10:58:28 -07:00
James Rowe 782eae7f65 Fix drag and drop 2019-11-28 10:56:58 -07:00
James Rowe 767b49c552 testing ninja on macos travis 2019-11-27 17:18:47 -07:00
James Rowe 15ed600c91
Merge pull request #4956 from vitor-k/game-sorting
Fixes to game list sorting
2019-11-20 09:48:08 -07:00
James Rowe e6c7f84dc6
Merge pull request #4964 from citra-emu/wwylele-patch-1
unfold UNREACHABLE implementation for dumb compilers
2019-11-20 09:43:48 -07:00
Weiyi Wang 6d0189b4b1
Merge pull request #4992 from FearlessTobi/port-2513
yuzu/game_list&multiplayer: Specify string conversions explicitly
2019-11-20 10:45:21 -05:00
Weiyi Wang 85f2e577b5
Merge pull request #5006 from FearlessTobi/port-3123
Port yuzu-emu/yuzu#3123: "common/logging: Silence no return value warnings"
2019-11-20 10:34:47 -05:00
James Rowe 0acacc4e1a
Merge pull request #5002 from vvanelslande/username-fix
Fix moderation by room host in dedicated rooms
2019-11-19 23:51:21 -07:00
ReinUsesLisp 30be149f87 common/logging: Silence no return value warnings 2019-11-19 16:47:35 +01:00
Weiyi Wang 4442a25e31
Merge pull request #5004 from BreadFish64/tev-clean
video_core: remove MSVC hack comment on TevStageConfigRaw
2019-11-18 13:28:05 -05:00
BreadFish64 e38b4f6707 video_core: get rid of MSVC hack comment 2019-11-17 17:42:19 -06:00
vvanelslande d16d34203a Fix moderation by room host in dedicated rooms 2019-11-17 09:59:54 -05:00
vvanelslande e1e136d72f service/mic: actually use the specified device 2019-11-11 17:15:10 -05:00
Weiyi Wang 5fa71d425b
Merge pull request #4998 from vvanelslande/count
dedicated_room: fix crash (count != 0) when closing the room
2019-11-11 15:54:44 -05:00
Pengfei Zhu 060119d333
Merge pull request #4987 from vvanelslande/room-logging
network/room (server): add message/join/leave/kick/ban/unban/game name logging
2019-11-11 20:29:33 +08:00
Pengfei Zhu 1c6a8e995a
Merge pull request #4953 from vvanelslande/qt-ui-unused
citra_qt/main.ui: remove unused actions "Load Symbol Map..." and "Select Game Directory..."
2019-11-11 20:27:48 +08:00
Weiyi Wang 98c396f179
Merge pull request #4995 from vvanelslande/rename-profile
settings, configure_input: fix rename input profile
2019-11-10 21:25:01 -05:00
Weiyi Wang cb58386ab6
Merge pull request #5000 from vvanelslande/utility
citra_qt/configuration: add missing Read/SaveUtilityValues
2019-11-10 21:24:39 -05:00
vvanelslande bb48d2491d citra_qt/configuration: add missing Read/SaveUtilityValues 2019-11-10 19:26:03 -05:00
vvanelslande 62014e8f34 dedicated_room: fix crash (count != 0) when closing the room 2019-11-10 17:07:00 -05:00
vvanelslande 1f708e8bad settings, configure_input: fix rename input profile 2019-11-09 16:55:03 -05:00
James Rowe 86f203e6e8 Add missing key events and also try to glFinish after swapping 2019-11-09 13:12:30 -07:00
James Rowe 68052de8a0 Workaround Qt bug that causes events to forward to the parent incorrectly 2019-11-09 13:12:30 -07:00
James Rowe 586b8e8b46 Change from QOpenGLWidget to QWindow
While QOpenGLWidget sounds like a good idea, it has issues which are
harder to debug due to how Qt manages the context behind the scenes. We
could probably work around any of these issues over time, but its
probably easier to do it ourselves with a QWindow directly.

Plus using QWindow + createWindowContainer is the easiest to use
configuration for Qt + Vulkan so this is probably much better in the
long run.
2019-11-09 13:12:30 -07:00