Commit Graph

158 Commits

Author SHA1 Message Date
Exzap
4b5014c16a coreinit: Fix memory mapping API
Fixes Unity based games freezing on boot
2023-01-27 09:57:10 +00:00
goeiecool9999
33bd10b4e0
Vulkan: Use the correct resolution for out-of-date check (#595) 2022-12-29 00:19:05 +01:00
SSimco
fcab8f8f1a
Linux: Add CMake find module for wayland + make wayland optional (#572) 2022-12-15 08:44:14 +01:00
Tillsunset
4491560b32
Add check for backwards delete (#564) 2022-12-09 18:01:08 +01:00
SSimco
fca7f5dfe4
Linux: Add Vulkan support for wayland (#553) 2022-12-07 16:45:25 +01:00
Exzap
2c81d240a5
Make codebase more CPU-agnostic + MacOS disclaimer (#559) 2022-12-07 01:48:24 +01:00
Tom Lally
445b0afa95
Better screenshot error handling (#552) 2022-12-05 17:16:08 +01:00
Tom Lally
dd538d477c
Correctly create screenshot directory if it does not exist (#551) 2022-12-03 17:57:32 +01:00
Tom Lally
b361b154d8
Cross-platform screenshots (#543)
Co-authored-by: Tom Lally <tomlally@protonmail.com>
Co-authored-by: Exzap <13877693+Exzap@users.noreply.github.com>
2022-12-02 04:51:07 +01:00
goeiecool9999
2cfb7f3737
Automatically scale imgui text based on display pixel density (#545) 2022-12-01 15:58:08 +01:00
goeiecool9999
d3721c3f46
Fix render resolution at different UI scales (#514) 2022-11-30 13:39:32 +01:00
goeiecool9999
a3476c7b7c
macOS: Workaround for MoltenVK stride limitation (#534) 2022-11-30 01:26:42 +01:00
Tillsunset
6f985c3c78
Fix black screen when graphics packs are used (#541) 2022-11-29 10:54:11 +01:00
Tillsunset
87d2f8ad55
Fix shader preset regex (#536) 2022-11-28 08:24:52 +01:00
goeiecool9999
bc104859f3
Vulkan: return to more conventional swapchain sync method, encapsulate more code (#525) 2022-11-25 09:51:47 +01:00
goeiecool9999
cbdf381b31
Fix gamepad hotkey and game profile setting (#510) 2022-11-24 12:29:29 +01:00
goeiecool9999
f4c2d16a3a
Attempt to fix flicker on resize, don't recreate if image was already acquired. (#522) 2022-11-21 19:06:35 +01:00
goeiecool9999
3a94a276da
Vulkan: Further simplify swapchain code (#502) 2022-11-21 16:47:43 +01:00
goeiecool9999
9ce52ad83a
Linux/macOS: Implement overlay CPU/memory statistics (#480) 2022-11-20 19:53:45 +01:00
MythicalPlayz
c17097369b
Redownload BOSS files if they are not found (#504) 2022-11-20 17:21:20 +01:00
goeiecool9999
57c8dec335
fix two if statements checking range of number wrong (#494) 2022-11-17 15:42:08 +01:00
SSimco
b1c70588fe
Enable online features for Unix (#486) 2022-11-15 17:03:46 +01:00
goeiecool9999
e9d10a9581
Linux+OpenGL: Implement GUI vsync setting (#477) 2022-11-13 08:29:25 +01:00
goeiecool9999
4d68446f14
Vulkan: Further swapchain code improvements. (#473) 2022-11-11 08:14:38 +01:00
bslhq
be287a1f4e
ImGui: match all begin()/end() (#470) 2022-11-09 02:45:40 +01:00
goeiecool9999
138510106c
Vulkan: Fix freeze when closing pad view (#435) 2022-11-06 00:40:00 +01:00
Exzap
ec6726e85c Use generic EC_POINT_get_affine_coordinates 2022-11-06 00:32:33 +01:00
goeiecool9999
348d86648f
Vulkan: Refactor swapchain code (#399) 2022-11-04 15:22:29 +01:00
Tillsunset
521f2fb707
MacOS: Workaround for Metal stride limitation (#445) 2022-11-03 12:51:32 +01:00
goeiecool9999
a129d22a57
Vulkan: Experimental fix for self-dependency barriers during renderpass (#431) 2022-11-03 00:43:26 +01:00
Adrian Graber
d4e14d2b05
Implement proper microphone support (#251) 2022-11-03 00:24:34 +01:00
goeiecool9999
c3182aedd9
GeneralSettings: Update vsync after settings close (#401) 2022-10-31 17:54:26 +01:00
Tillsunset
9ebbfb3ae2
Fix some compiler warnings (#416) 2022-10-26 14:47:44 +02:00
gurrgur
3869b47c35
OpenGL: Bind back buffer before clearing (#222) (#414) 2022-10-26 14:07:34 +02:00
GaryOderNichts
d303a7f502
coreinit: Implement OSGetSystemTick (#415) 2022-10-26 14:06:16 +02:00
GaryOderNichts
2461464ba7
FSA: Add missing path translations (#413) 2022-10-26 00:25:46 +02:00
gurrgur
76c75f767b
Use portable format specifiers (#411)
Fixes #387
2022-10-25 20:38:29 +02:00
Exzap
028b3f7992
Make controller button code thread-safe (#405)
* Refactor spinlock to meet Lockable requirements
* Input: Refactor button code and make it thread-safe
2022-10-23 15:47:42 +02:00
Tillsunset
1bcc064593
Add check for "." in FSC path (#402) 2022-10-23 13:06:20 +02:00
MythicalPlayz
c217b3ee32
GameList: Use title name based on console language (#388) 2022-10-21 00:17:11 +02:00
MythicalPlayz
271a4e4719
Fixed Discord Rich Presence not working on games that are on MLC (#383) 2022-10-18 17:08:09 +02:00
MythicalPlayz
753040f73a
Added Boot Image for Gamepad (#372) 2022-10-17 11:26:32 +02:00
Exzap
ada8bbb3b4
Linux/MacOS: Greatly improve performance (#370)
std::unordered_set is implemented as a flat hashtable on libstdc++ which makes clearing expensive due to invoking memset on the entire table. To get the best performance across all platforms this replaces the unordered_set with a custom high-performance sparse bitset
2022-10-14 13:45:40 +02:00
Exzap
f65dbe8437 Fix encoding error in input profile filenames
- Controller profile filenames now encode unicode characters correctly
- Removed dependency on boost::filesystem. There is still an indirect dependency on it from another boost module it seems
- Refactored some code to use FileStream instead of ifstream/ofstream
2022-10-12 14:27:01 +02:00
SSimco
d6ba61cf64
Add support for non portable mode (#356) 2022-10-12 08:03:26 +02:00
Exzap
2b9edced81
Minor tweaks and code clean up (#357) 2022-10-11 09:17:34 +02:00
MythicalPlayz
b07e9efba4
Add support for choosing network service (incl Pretendo+Custom) (#302) 2022-10-11 04:04:47 +02:00
Exzap
52cc7c5996
Follow imgui recommendation and streamline build dependencies (#355) 2022-10-11 01:43:15 +02:00
goeiecool9999
431c5a101f
Linux: Print demangled symbols on backtrace (#312) 2022-10-10 02:35:04 +02:00
Tillsunset
0c9fb3143f
memory optimization, using posix_memalign (#350) 2022-10-09 10:43:45 +02:00
Tillsunset
638e9e1f87
Workaround for the h264 video crash on macOS (#348) 2022-10-09 08:45:26 +02:00
Tillsunset
b724a657e6
MoltenVk: Add missing texture decoders (#332) 2022-10-08 15:07:54 +02:00
emiyl
00968acc1d
dedicated decoder for R4G4 and R4G4B4A4 to R8G8B8A8 (#331) 2022-10-07 02:39:06 +02:00
Tillsunset
fb5ecca157
Vulkan: Use correct texture clear in LatteDraw_handleSpecialState8_clearAsDepth (#321) 2022-10-02 19:18:35 +02:00
Tillsunset
11f6e2b7ee
Vulkan: Implement texture decoder for R5G6B5_UNORM to R8G8B8A8_UNORM (#320) 2022-10-02 01:48:13 +02:00
emiyl
9541c8ae85
MoltenVk: Workaround for unsupported format R5_G6_B5_UNORM (#318) 2022-09-30 18:07:00 +02:00
Exzap
cceb4f6d0e
Vulkan: Always disable blending for integer formats (#317)
Should fix a warning in the Vulkan validation layer and avoid a sigtrap in MoltenVk
2022-09-30 15:59:16 +02:00
emiyl
ecfbbd4e26
MoltenVK: Workaround for unsupported formats (#315) 2022-09-30 15:28:56 +02:00
Narr the Reg
3767257220
nfp: Fix corruption, correct structs and use write counters (#310) 2022-09-29 13:00:46 +02:00
Exzap
9caf57c2c5
Vulkan: Fix incorrect encoding for substituted R4G4 format (#288)
Fixed incorrect channel order when VK_FORMAT_R4G4_UNORM_PACK8 is substituted with VK_FORMAT_R4G4B4A4_UNORM_PACK16
2022-09-24 11:44:44 +02:00
Exzap
3bceb39966
Remove PUBLIC_RELEASE flag and tie asserts to debug config (#287)
Removes the -DPUBLIC_RELEASE flag. Cemu's debug asserts are now only enabled if the build configuration is Debug. Similarly, on Windows the console is only shown for Debug builds.
2022-09-24 08:43:27 +02:00
Crementif
510d80038d
[coreinit] Add OSIsDebuggerPresent 2022-09-19 21:41:01 +02:00
Exzap
12b6830546
GX2: Add crash workaround for FFL uninitialized texture (#264)
When a game tries to generate Miis without the FFL files being dumped (<mlc>/sys/title/0005001b/10056000/content/) it will cause it to create and use a texture with invalid parameters.
This workaround catches and replaces bad texture parameters to avoid crashing further down the line.

Resolves crashes in Sonic Lost World, Super Mario 3D World and probably a few others.

We had this workaround in pre-2.0 Cemu already but it was dropped during refactoring.
2022-09-17 16:32:46 +02:00
Tillsunset
41dcd48048
Fix a small regression when building in Macos (#262) 2022-09-17 13:52:12 +02:00
Herman Semenov
03f5967408
Fix incorrect streamout buffer index in GS + refactor various code (#258) 2022-09-17 03:45:18 +02:00
Maximilian Downey Twiss
4a3d02db55
Properly list files in CMakeLists instead of using GLOB (#249) 2022-09-17 03:24:57 +02:00
Exzap
63206eb9a8
coreinit: Return error code instead of success in Acquire failure (#260)
Spotted by @Fs00
It's currently not known if any games are affected by this
2022-09-16 14:25:38 +02:00
Francesco Saltori
664d7ee902
Clean up more Cemuhook leftovers (#253) 2022-09-16 13:34:41 +02:00
Exzap
680beaaf21 Rename path _utf8Wrapper to _utf8ToPath for better clarity 2022-09-09 23:49:38 +02:00
Exzap
168ecf8825 FSC: Use utf8 path strings instead of wchar
Also introduced helper function _utf8ToPath() to convert a utf8-encoded string to fs::path
2022-09-09 23:49:38 +02:00
Exzap
1ce629126a FSC: Refactor FileTree and remove redundant path parser class 2022-09-09 23:49:38 +02:00
Exzap
b8462cec8b FSC: Refactor to use FSCPath instead of legacy code 2022-09-09 23:49:38 +02:00
Exzap
0e0602e8d9 FSC: Use utf8 for mounting and internal target path 2022-09-09 23:49:38 +02:00
Exzap
1e851fe7e2
Latte: Fix infinite loop in special state clearAsDepth() (#209)
This broke while refactoring code for the 2.0 release. Resolves Tokyo Mirage Session and Pokken freezing on boot. Probably also affects some other games

Also updated .gitignore
2022-09-08 17:33:31 +02:00
Tom Lally
6cdb6eed17
Cleanup udiv128 (#206) 2022-09-08 02:12:53 +02:00
bitscher
4eaa600b57
Fix various compiler warnings given by Clang (#170) 2022-09-07 20:04:32 +02:00
bslhq
4d1be950e3
Fix various issues related to title names (#192)
Fixed various issues related to title names:
1. If console language is set to non-English, the title names in Title Manager may be empty.
2. Game list do not show custom names if list style set to icon or small icon.
3. Custom title names for some languages (like JP or CN) appear confusing if re-edited.
4. Unexpected overrides of variable values in ParsedMetaXml.h
2022-09-07 19:58:56 +02:00
Jun Bo Bi
b752d2eddd
fix clang-cl (#202) 2022-09-07 18:22:40 +02:00
goeiecool9999
e20bfd00ec
Separate filestream.h into OS specific implementation files (#190) 2022-09-07 02:42:25 +02:00
Tom Lally
f8b5024c09
Improved macro clarity. (#188) 2022-09-07 02:27:52 +02:00
Exzap
5a69505d13
Fix double %% on shader compilation screen
It was a relic from previously using sprintf where % has to be escaped with %%
2022-09-05 15:53:50 +02:00
SSimco
0ed4fdcd78
Update fmt version to 9.1.0 (#177) 2022-09-05 14:48:44 +02:00
Jun Bo Bi
a54a3ec74e
Fix build using clang-cl on windows and improve driver detection (#129) 2022-09-04 23:15:40 +02:00
bslhq
1373c76eb9
fix H264_IsBotW() return false while BotW's TitleRegion is JP (#174) 2022-09-04 18:19:27 +02:00
Exzap
33167196d9
Wait for gfx pack init before loading shaders (#168)
2.0 introduced a race condition where the shader cache loading screen could load shaders before the graphic packs finished activating, potentially bypassing custom shaders.
Also removed legacy GraphicPack interface (GraphicPack.cpp/.h) since it was only kept around for Cemuhook and removed u8string variant of cemuLog_force since it's no longer used
2022-09-04 01:27:44 +02:00
Exzap
8dd1688ca7
coreinit: Make OSReport and OSConsoleWrite thread-safe 2022-09-03 23:53:45 +02:00
Exzap
4ed38a28b9
Merge pull request #112 from Tachi107/build-minor-fixes
build: minor refactoring and fixes
2022-09-02 19:22:19 +02:00
Tom Lally
f5972dfbb0
Per-function target attribute on clang and GCC. (#152) 2022-09-02 19:10:41 +02:00
Andrea Pappacoda
719ee90b27
build: minor refactoring and fixes
- Fix target_precompile_headers() usage; the CemuCommon target exposes
  the src/Common/precompiled.h precompiled header as part of its public
  interface with
  target_precompile_headers(CemuCommon PUBLIC precompiled.h), so all the
  other targets wanting to use the precompiled header have to link to
  the CemuCommon target with
  target_precompile_headers(TargetName PRIVATE CemuCommon).
- Set the project version to 2.0
- Set RUNTIME_OUTPUT_DIRECTORY instead of only their _DEBUG and _RELEASE
  variants, fixing the compilation when neither build types are defined
- Use a consistent indentation style (tabs, like in the .cpp files)
- Use "modern" variants of some functions, e.g. add_definitions ->
  add_compile_definitions
2022-09-02 13:05:15 +02:00
Crementif
86e1a2227c
nn_act: Fix account endianness (#141)
Also adds some code for enabling multi-user support inside apps maybe, but it's probably hardcoded in more places since Cemu currently only shows the active account.
2022-09-02 09:46:19 +02:00
Tom Lally
d3a7b3b5a6
Misc. Linux improvements and bug fixes. (#121)
Co-authored-by: Tom Lally <tomlally@protonmail.com>
2022-09-01 20:46:20 +02:00
Marcin Chojnacki
527ee3aea5
Initial implementation of macOS Vulkan renderer over MoltenVK (#124) 2022-08-30 19:02:56 +02:00
niko1point0
584938d8f3
Renable Nvidia Multithreaded Pipeline compile after driver 515 (#91) 2022-08-30 15:58:43 +02:00
bitscher
2d42c885da
Fix various compiler warnings and update OpenSSL hash functions (#119)
* Update OpenSSL hash functions to OpenSSL 3.0
* Fix invalid sscanf format in DownloadManager
* Fix unset return value warning
* Fix erroneous check on otpMem in iosu_crypto
2022-08-30 09:27:25 +02:00
Tom Lally
c065d22dda
Removed THREAD_LOCAL macro. (#101) 2022-08-30 06:10:33 +02:00
Andrea Pappacoda
f51a51df3b
build: improve the Linux aspect of things (#75)
Improved, fixed and streamlined cmake files. Optionally use system libraries instead of vcpkg (-DENABLE_VCPKG=OFF)
2022-08-29 07:19:48 +02:00
Crementif
0f24b0663e
Initialize glslang struct using consteval
Doesn't seem like there's a way to bypass the need for default values in their API, and since their versions doesn't seem to be reliable enough to know whether maxDualSourceDrawBuffersEXT exists. This way it's default initialized to 0 which is fine for Cemu.
2022-08-28 19:23:24 +02:00
Tom Lally
454b587e36
Fix compilation on GCC and other Linux fixes (#80) 2022-08-28 15:29:15 +02:00
IntriguingTiles
07ce5b0aa6
nn_act: Fix errors in Mii name (#95)
nn_act: Don't swap the Mii name again
Account: Zero out miiName before copying in data
2022-08-28 11:32:10 +02:00
ArtemisX64
01c58555f3
Fixes Path Issues (#70)
* Fix bad path
2022-08-27 09:57:30 +02:00