Commit graph

27503 commits

Author SHA1 Message Date
fa102f7e83 [texture_cache] Enforce conservative 3D texture aliasing. Consistently merge/lookup images.
Previously, the merging strategy is permissive but the lookup strategy is strict. Together they create a infinite merge loop because lookup always fails and merges are always executed.
The last attempt to fix this issue made the lookup strategy more permissive which created unexpected aliased textures.
This commit implements an alternative: make the merging strategy strict.
2025-08-04 02:09:16 +08:00
6f9216c20d [nifm] Readd room check to fix LAN on MK8D (#166)
Co-authored-by: Maufeat <sahyno1996@gmail.com>
Reviewed-on: eden-emu/eden#166
Co-authored-by: Maufeat <maufeat@eden-emu.dev>
Co-committed-by: Maufeat <maufeat@eden-emu.dev>
2025-08-01 01:23:44 +08:00
2d81cf5b26 [vk] Remove improper check for image depth in texture cache.
When looking for existing images, ImageBase::TryFindBase checks the depth of the existing image to be greater than the layer of the base + depth of the candidate.
However the depth of images are not updated when cache were merged causing the lookup to fail.
This commit disables this faulty check to fix a critical memory leak that crashes the emulator in some games.
2025-08-01 01:23:26 +08:00
3d84b15330 [vk] Exclude size equal alpha different copies from incompatible copy (#138)
Should fix bugs in Splatoon 2 and TotK

Co-authored-by: Maufeat <sahyno1996@gmail.com>
Reviewed-on: eden-emu/eden#138
Co-authored-by: JPikachu <jpikachu@eden-emu.dev>
Co-committed-by: JPikachu <jpikachu@eden-emu.dev>
2025-08-01 01:23:08 +08:00
a5877ca08b [vk] copy incompatible alpha patch 1.5(2) (#123)
Avoid copy size incompatible textures and reinterpret it instead. Uses existing logic to properly re-interpret to a compatible texture.

Reviewed-on: eden-emu/eden#123
Co-authored-by: lizzie <lizzie@eden-emu.dev>
Co-committed-by: lizzie <lizzie@eden-emu.dev>
2025-07-27 11:30:08 +08:00
ca2fa770f7 [vk, hle] fix storage buffer cache, unstubbed TryPopFriendInvitation (#129)
This fixes Jamboree + unstubes friend invitation channel which spammed a lot while testing jamboree.

Culprit was: #2

Co-authored-by: Maufeat <sahyno1996@gmail.com>
Co-authored-by: crueter <crueter@eden-emu.dev>
Reviewed-on: eden-emu/eden#129
Co-authored-by: Maufeat <maufeat@eden-emu.dev>
Co-committed-by: Maufeat <maufeat@eden-emu.dev>
2025-07-27 11:24:59 +08:00
aa880d3ca9 Revert externals/xbyak to v7.22 2025-07-27 11:21:27 +08:00
4462da9f06 [core] Remove dependency to arm/dynarmic/arm_dynarmic.cpp. 2025-07-27 01:11:44 +08:00
74d387afb3 [deps] update dynarmic deps (#110)
Reviewed-on: eden-emu/eden#110
Co-authored-by: lizzie <lizzie@eden-emu.dev>
Co-committed-by: lizzie <lizzie@eden-emu.dev>
2025-07-27 00:17:55 +08:00
ba565f9d6a [dynarmic] better LRU prioritize empty regs 2025-07-27 00:17:01 +08:00
83c06fc037 [dynarmic] fix tests 2025-07-27 00:15:23 +08:00
59d1c09eb3 [dynarmic] new LRU allocation scheme 2025-07-27 00:14:48 +08:00
3ac6116910 [docs] document how to bisect and how to use gdb for debugging jit aarch64 (#112)
Adds documents that can be made available in the future on the website about using debugging tools and how to properly bisect Git commits.
Reviewed-on: eden-emu/eden#112
Co-authored-by: Lizzie <lizzie@eden-emu.dev>
Co-committed-by: Lizzie <lizzie@eden-emu.dev>
2025-07-27 00:08:05 +08:00
8785de9b7e [nvdrv] Add AllocGPFIFOEX1 + modify GPFIFOEXs (#115)
I noticed that AllocGPFIFOEX was missing from eden.
It is the same as GPFIFOEX2, but is called separately, even on the real console.
I updated the struct to match closely the one seen on switchbrew, and changed the STUBS, because according to sources they seem to be complete.
My guess is that the STUBS were remained due to the unknowns back then.

Reviewed-on: eden-emu/eden#115
Co-authored-by: SDK-Chan <sdkchan@eden-emu.dev>
Co-committed-by: SDK-Chan <sdkchan@eden-emu.dev>
2025-07-27 00:06:49 +08:00
c6abde7af4 [host1x] Fix typo. 2025-07-27 00:03:55 +08:00
c5d78081d7 [build, cmake] port to solaris (#96)
Co-authored-by: crueter <crueter@eden-emu.dev>
Reviewed-on: eden-emu/eden#96
Co-authored-by: lizzie <lizzie@eden-emu.dev>
Co-committed-by: lizzie <lizzie@eden-emu.dev>
2025-07-27 00:01:22 +08:00
e6923b09c3 [docs] add into docs/ and make links local (#93)
Co-authored-by: crueter <crueter@eden-emu.dev>
Reviewed-on: eden-emu/eden#93
Co-authored-by: lizzie <lizzie@eden-emu.dev>
Co-committed-by: lizzie <lizzie@eden-emu.dev>
2025-07-26 23:57:15 +08:00
d9b7944963 [spirv] new castings for int8/int16/etc (#86)
This commit introduces extended support for low-precision integer casting (int8, int16) in the SPIR-V shader generation pipeline, improving compatibility and performance across both Android and PC platforms.

Co-authored-by: CamilleLaVey <camillelavey99@gmail.com>
Reviewed-on: eden-emu/eden#86
Co-authored-by: lizzie <lizzie@eden-emu.dev>
Co-committed-by: lizzie <lizzie@eden-emu.dev>
2025-07-26 23:56:50 +08:00
4abf13ae93 [vk] Enable line stipple and depth bound reg transfer (#59)
It should improve line stipple accuracy and the depth stencilling as part of the ExtendedDynamicState improvements.

Co-authored-by: crueter <crueter@eden-emu.dev>
Signed-off-by: Aleksandr Popovich <popovich@eden-emu.dev>
Co-authored-by: crueter <crueter@crueter.xyz>
Reviewed-on: eden-emu/eden#59
Co-authored-by: Aleksandr Popovich <popovich@eden-emu.dev>
Co-committed-by: Aleksandr Popovich <popovich@eden-emu.dev>
2025-07-26 23:55:56 +08:00
57da00940d [vulkan] add native cubic filtering (#88)
Co-authored-by: crueter <crueter@eden-emu.dev>
Reviewed-on: eden-emu/eden#88

This implements the use of VK_FILTER_CUBIC_EXT as a replacement for the software-based bicubic window adapting filter, used primarily for texture sampling in upscaled or downscaled surfaces such as UI, transparency effects, and screen-space elements in Unreal Engine 4 titles.

The Vulkan cubic filter is now conditionally enabled if the following are satisfied:

The device supports VK_EXT_filter_cubic

The format used supports VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT

This change improves visual quality while reducing GPU workload by offloading cubic filtering to the driver instead of running custom sampling code in shaders. On supported hardware (e.g. desktop GPUs or high-end Adreno/AMD devices), it results in smoother transitions, improved transparency sampling, and better fidelity with lower shader complexity.

Fallback to the original software bicubic logic remains in place for devices lacking the extension or format capability.

Tested on several UE4 titles and confirmed to preserve or enhance visual output, especially in alpha-blended and UI-heavy scenes.
Co-authored-by: lizzie <lizzie@eden-emu.dev>
Co-committed-by: lizzie <lizzie@eden-emu.dev>
2025-07-26 23:50:58 +08:00
55d8911daa [host1x] Fix FFmpeg hardware detection, use hardware native formats. 2025-07-26 23:47:15 +08:00
d744cc6a41 Add linux-amd64 build preset. 2025-07-26 23:23:59 +08:00
fd39eb780a Remove android app id spoof. 2025-07-26 23:23:47 +08:00
002feb9d89 Update boost process dependency for debugger. 2025-07-26 23:21:17 +08:00
05e31d1e76 Use coherent names for source and destination. 2025-07-26 23:20:28 +08:00
ebefd13e5c Cleanup unused variable in dma_pusher.cpp. 2025-07-26 23:19:56 +08:00
fd0cde2a8d Try to implement GPU shutdown properly, remove stubs. 2025-07-26 23:19:26 +08:00
89b70d14bd Update vcpkg.json to include libzip. 2025-07-26 23:17:50 +08:00
1e31a48957 [dynarmic] Align memory slab allocations. 2025-07-26 23:17:15 +08:00
2112c4a3aa [vulkan] Get tick with Flush, remove redundant call to CurrentTick. 2025-07-26 23:10:58 +08:00
57c4859da4 [core/memory] Remove defered heap allocation on Linux. 2025-07-26 23:09:40 +08:00
e18c7ba41d [vulkan] Align transform feedback, sample count query and conditional rendering commands with render pass commands.
Fixed query cache leak in the case of a missed query report sync.
2025-07-26 23:04:35 +08:00
78c138d35f [frontend] Detect windowHandle properly when GRenderWindow is not native. 2025-07-24 14:00:43 +08:00
b6a5462faf [hle/nvdrv] Correct naming and logging conventions in Service.NVDRV. 2025-07-23 18:29:30 +08:00
257a8465fa [video_core] Fix vulkan presentation semaphores.
The presentation semaphores should be associated with swapchain images instead.
2025-07-23 18:26:00 +08:00
2453fd4c78 Fix QCheckBox::stateChanged deprecation. 2025-07-23 18:24:17 +08:00
772352f047 Add ENABLE_WIFI_SCAN option. Use libzip instead of QuaZip. 2025-07-23 18:21:59 +08:00
8cd0d78269 Ran clang-format. Fixed Qt6 deprecations. 2025-07-23 18:07:16 +08:00
a538126eb7
[cmake, desktop] Fix <6.9 build error and quazip fetching (#67)
Signed-off-by: crueter <crueter@eden-emu.dev>
Reviewed-on: eden-emu/eden#67
2025-07-15 22:24:40 +02:00
d7574b2878
[android] Update app icon background
thx antabaka

Signed-off-by: crueter <crueter@eden-emu.dev>
2025-07-14 20:51:20 -04:00
e9ca3f4c06
[host1x] Fix FFmpeg crash on Linux (#37)
This fixes the FFmpeg crash on Linux / Steam Deck.

Credit to Maufeat for AVERROR_EOF check.

Co-authored-by: MaranBr <maranbr@outlook.com>
Co-authored-by: crueter <crueter@eden-emu.dev>
Reviewed-on: eden-emu/eden#37
Co-authored-by: MaranBr <maranbr@eden-emu.dev>
Co-committed-by: MaranBr <maranbr@eden-emu.dev>
2025-07-14 22:30:54 +02:00
a8564a09b7
[host1x] FreeBSD: Fix random crashes due to CUDA/VAAPI check sideeffects (#64)
FreeBSD doesn't support NVDEC, CUDA, and partially supports VAAPI (mostly for firefox).
Implementing VAAPI for other use cases would be a little bit complicated so, I chose to switch it off for FreeBSD.
This PR ensures that FFmpeg will always default to software decoding on FreeBSD, but should remain the same functionalities for other OS's.
The results are slight CPU increases while decoding in software mode, but still neglectable and they don't really harm performance.

Co-authored-by: MaranBr <maranbr@eden-emu.dev>
Reviewed-on: eden-emu/eden#64
Co-authored-by: SDK-Chan <sdkchan@eden-emu.dev>
Co-committed-by: SDK-Chan <sdkchan@eden-emu.dev>
2025-07-14 22:30:07 +02:00
2e092010e6
[cmake] Disable bzip2 requirement for quazip (#63)
caused windows builds to fail

Signed-off-by: crueter <crueter@crueter.xyz>

Reviewed-on: eden-emu/eden#63
Co-authored-by: crueter <crueter@crueter.xyz>
Co-committed-by: crueter <crueter@crueter.xyz>
2025-07-14 06:10:25 +02:00
be59b4f15f
[cmake] Patch QuaZip for windows fix (#60)
Signed-off-by: crueter <crueter@eden-emu.dev>
Reviewed-on: eden-emu/eden#60
2025-07-14 04:48:39 +02:00
2be7df287a
[android] Fix crash caused by unreferenced driver (#58)
Previously, if the user selected a per-game driver and that driver was
deleted from the global menu, it would cause a crash, it was because of
a mismatch between FileNotFoundException and NoSuchFileException. To
avoid the inconsistency I just made the check for if a file exists or
not to be separate.

Signed-off-by: Aleksandr Popovich <popovich@eden-emu.dev>

Reviewed-on: eden-emu/eden#58
Co-authored-by: Aleksandr Popovich <popovich@eden-emu.dev>
Co-committed-by: Aleksandr Popovich <popovich@eden-emu.dev>
2025-07-14 02:18:33 +02:00
492903cc7a
[cmake] force quazip to use qt 6
Signed-off-by: Aleksandr Popovich <popovich@eden-emu.dev>
2025-07-13 20:00:38 -04:00
f99488fe3e
[desktop] feat: install firmware from ZIP (#52)
Closes #12

Adds a menu option to install firmware from a packed ZIP.

This PR additionally lays the groundwork to add data import/export via ZIP. In the future, a qt_common subproject should be added to handle common Qt tasks such as this.

Furthermore, to decrease dependency complexity, this also introduces CPM, a wrapper around FetchContent. In theory, this should also lay the groundwork for #8 as well.

Signed-off-by: crueter <crueter@eden-emu.dev>
Reviewed-on: eden-emu/eden#52
2025-07-14 01:29:57 +02:00
7b23cd0df4
[dynarmic] fix userconfig casting warn (#55)
Co-authored-by: crueter <crueter@eden-emu.dev>
Reviewed-on: eden-emu/eden#55
Co-authored-by: lizzie <lizzie@eden-emu.dev>
Co-committed-by: lizzie <lizzie@eden-emu.dev>
2025-07-14 00:54:00 +02:00
Ghost
fe4f5a3860
[dynarmic] lea over mov and other stuff (#24)
Co-authored-by: Esther1024 <danishreyjavik@outlook.com>
Co-authored-by: lizzie <lizzie@eden-emu.dev>
Reviewed-on: eden-emu/eden#24
Co-authored-by: Ghost <>
Co-committed-by: Ghost <>
2025-07-13 23:03:26 +02:00
a0a208db57
[cmake] Fix misplaced comment (#54)
A member of the community notified me that I misplaced a comment so, I corrected it.

Reviewed-on: eden-emu/eden#54
Co-authored-by: SDK Chan <sdkchan@eden-emu.dev>
Co-committed-by: SDK Chan <sdkchan@eden-emu.dev>
2025-07-13 20:58:04 +02:00