Commit graph

27268 commits

Author SHA1 Message Date
b01e20414f Readd Revert Problematic Commits 2025-05-04 08:24:54 +00:00
4181b53e19 revert Remove problematic commits
revert Remove problematic commits
2025-05-04 08:17:03 +00:00
MrPurple666
b689d74bc9 Remove problematic commits 2025-05-03 16:01:11 -03:00
Briar
54c3c4503a android: Add initial frontend for LAN network rooms (#76)
Reviewed-on: #76
Co-authored-by: Briar <205427297+icy-briar@users.noreply.github.com>
Co-committed-by: Briar <205427297+icy-briar@users.noreply.github.com>
2025-05-03 17:53:09 +00:00
Pavel Barabanov
d9eea0dc72 renamed SetTouchScreenOutputRanges to SetTouchScreenOutputRanges [20.0.0+] 2025-05-03 06:26:24 +03:00
Pavel Barabanov
d55e400c7c started adding services for firmware 20.0.0 without implementation 2025-05-03 06:15:23 +03:00
Briar
559eb0a488 renderer_vulkan: Use raw surface handles and improve release logic (#75)
Should fix or at least lessen the crashes when leaving runtime emulation on both Android / PC
Also, may have improved the time required to leave the game

Reviewed-on: #75
Co-authored-by: Briar <205427297+icy-briar@users.noreply.github.com>
Co-committed-by: Briar <205427297+icy-briar@users.noreply.github.com>
2025-05-02 18:42:58 +00:00
cb8f449dca Add LRU toggle in Android settings (#72)
Reviewed-on: #72
2025-05-01 07:23:15 +00:00
20f2e4dffd Revert "Add more audio logging to pinpoint issues better"
This reverts commit b75251742c.
2025-04-30 18:21:01 -07:00
b75251742c Add more audio logging to pinpoint issues better 2025-04-30 18:01:26 -07:00
MrPurple666
7bd606bece Merge https://git.eden-emu.dev/eden-emu/eden 2025-04-30 16:19:06 -03:00
MrPurple666
bb2f527b16 Use a different approach for the LRU toggle 2025-04-30 16:11:15 -03:00
MrPurple666
b5bec371ae Add toggle for LRU 2025-04-30 04:05:45 -03:00
MrPurple666
4cf41673ba Fix some issues in RAII 2025-04-30 03:57:11 -03:00
8599c47fe0 service: sm/kernel/loader: Implement QueryPointerBufferSize, automatic pointer buffer sizing, and SM service improvements
This commit introduces multiple improvements to IPC handling and system management services, enhancing game compatibility and emulator stability.

--- 1. Fully Implemented QueryPointerBufferSize Service:
- Exposes the per-process IPC pointer buffer size through `QueryPointerBufferSize` instead of returning stubbed values.
- Added `m_pointer_buffer_size` field to `KProcess`, initialized with a safe default (0x8000).
- Introduced getter and setter methods (`GetPointerBufferSize()` / `SetPointerBufferSize()`).
- Registered new handler in `sm_controller` for handling QueryPointerBufferSize requests.
- Ensures accurate buffer size reporting for games relying on this service.

--- 2. Automatic Pointer Buffer Sizing Per-Game:
- Automatically determines heap size by parsing `main.npdm` from the game’s ExeFS:
  - Heap size > 1 GiB → pointer buffer size set to `0x10000`.
  - Heap size > 512 MiB → pointer buffer size set to `0xC000`.
  - Otherwise, defaults to `0x8000`.
- Gracefully handles missing or malformed `main.npdm` by falling back to default settings.
- Automatically configures pointer buffer size during `AppLoader_NCA::Load`.
- Added logging for heap size detection and buffer size configuration for easier debugging.

--- 3. SM Service Improvements:
- Added full implementation of `QueryPointerBufferSize` within the SM service framework.
- Cleaned up stubbed methods and ensured correct domain handling.
- Registered new service commands (e.g., `SetPointerBufferSize` and `QueryPointerBufferSize`) in `sm_controller`.
- Improved session handling with proper conversion to domain objects where necessary.

--- Benefits:
- Greatly improves compatibility with games that require larger IPC pointer buffers
- Eliminates the need for manual per-game pointer buffer overrides.
- More accurate emulation of Switch system services, improving stability for both commercial titles and homebrew.
- Provides cleaner logging for easier debugging and maintenance.
- Future-proofs IPC handling for upcoming titles with higher memory demands.

--- Additional Notes:
- Default pointer buffer size remains 0x8000 for smaller titles or if heap size cannot be determined.
- Falls back to safe defaults without affecting overall emulator performance.
- All new service calls properly registered and integrated without breaking existing functionality.
2025-04-30 06:35:22 +00:00
e57b12d020 vulkan_device: Fully disable dynamic state extensions/features when dyna_state = 0
If the user selects dynamic state = 0, force-disable all Vulkan dynamic state extensions and related struct fields.
This ensures compatibility with drivers and simplifies shader pipeline logic.

Also logs all removals for clarity.
2025-04-30 06:34:49 +00:00
04578ac5b6 fix syntax
Signed-off-by: swurl <swurl@swurl.xyz>
2025-04-30 06:34:49 +00:00
6abdda8072 vulkan_device: Remove must_emulate_scaled_formats = false for all Qualcomm and Arm processes 2025-04-30 06:34:49 +00:00
0de8f866db vulkan_device: Dynamically control scaled format emulation based on dynamic state setting fixing the "0" option
If the setting dyna_state is set to 0 (dynamic state disabled), must_emulate_scaled_formats is forced "true" for proper rendering.
If dyna_state is set to 1, 2, or 3 (dynamic state enabled), must_emulate_scaled_formats is forced "false" for proper dyna-state use.

This change applies globally after all device-specific quirks and is logged clearly at boot for easier debugging.
2025-04-30 06:34:49 +00:00
e4e27ef86b implement: New API for Multiplayer Support 2025-04-30 06:34:25 +00:00
Pavel Barabanov
37a508c3ba Add USE AUTO STUB to Android 2025-04-30 03:00:46 +03:00
Pavel Barabanov
56e619c872 Remove the stub for GetCradleFwVersion 2025-04-30 02:52:04 +03:00
MrPurple666
449a2497ea Initial MMO implementation
MMO (Multithreaded Memory Operations)
2025-04-28 16:44:35 -03:00
MrPurple666
4e7f6ef694 Better FastMemcpy and FastMemset
Use 16-byte copy paths
2025-04-28 16:44:21 -03:00
MrPurple666
476e0fe432 Use 4MB cache size instead of 1MB 2025-04-28 16:38:44 -03:00
MrPurple666
0b35e89ab9 Some RAII fixes 2025-04-28 16:27:54 -03:00
MrPurple666
a58799aca7 Initial RAII implementation 2025-04-28 16:27:42 -03:00
MrPurple666
abc7e71ecd Replace std::memcpy/memset with intrinsics on known sizes 2025-04-28 16:27:30 -03:00
MrPurple666
b695ca5a2a Revert some wip changes 2025-04-28 16:14:42 -03:00
808276b48a Dynamic State Fixes (#57)
- Forcefully disabled dynamic state extensions if Vulkan reports that
  the device doesn't support it (need to update UI for this)
- Adds some more supported state 3 extensions
- Adds back stencil reinterpretation
- default to 0 on Android and 1 on desktop

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

Reviewed-on: #57
Co-authored-by: swurl <swurl@swurl.xyz>
Co-committed-by: swurl <swurl@swurl.xyz>
2025-04-27 17:07:49 -04:00
47efb1873b updated build guide links (#60)
Signed-off-by: swurl <swurl@swurl.xyz>
2025-04-26 18:32:42 -04:00
Bix
399a3127cd Some slight changes to the readme. (#59)
Just a small fix to the readme, I tested it by the way.
Fixed "Levey" to "LaVey"
Made shortened words complete.
Declared Language.
Used "en-gb" complaint Language.

Signed-off-by: Bix <xq9zp7f2@proton.me>

Reviewed-on: #59
Co-authored-by: Bix <xq9zp7f2@proton.me>
Co-committed-by: Bix <xq9zp7f2@proton.me>
2025-04-26 19:07:48 +00:00
de2009575e fix cmake formatting
Signed-off-by: swurl <swurl@swurl.xyz>
2025-04-24 16:19:38 -04:00
a8f105d4ff Merge branch 'game-warnings'
Closes #55

Signed-off-by: swurl <swurl@swurl.xyz>
2025-04-24 16:00:29 -04:00
9f806138ab Merge branch 'log-by-line'
Signed-off-by: swurl <swurl@swurl.xyz>
2025-04-24 15:58:49 -04:00
30670bd92a Merge pull request 'Add configurations for VkExtendedDynamicState extensions' (#53) from crueter/eden:dynamic-state-config into master
Reviewed-on: #53
2025-04-24 19:55:58 +00:00
fa950aaeca Merge pull request 'Fix Qt <6.7 build and allow speed limit to be saved' (#52) from crueter/eden:fix-limit-speed into master
Reviewed-on: #52
2025-04-24 19:55:16 +00:00
a9c3d3abbe Merge pull request 'shader compiler: Ensure all clip distances are initialized when used' (#48) from JPikachu/eden:EOW into master
Reviewed-on: #48
2025-04-24 19:54:59 +00:00
7a9011b82d add tick marks to desktop slider
Signed-off-by: swurl <swurl@swurl.xyz>
2025-04-24 15:32:42 -04:00
Briar
13eb5e1be4 android: Add dyna_state setting to UI 2025-04-24 21:20:49 +02:00
c5f98d0388 switch bad updates list to hex
Signed-off-by: swurl <swurl@swurl.xyz>
2025-04-24 13:40:43 -04:00
01065a89a5 fix android setting
Signed-off-by: swurl <swurl@swurl.xyz>
2025-04-24 12:09:59 -04:00
83cf9774e1 switch dynamic state to a slider
Signed-off-by: swurl <swurl@swurl.xyz>
2025-04-24 12:08:01 -04:00
e8ad10350e Warn about updates for affected games
Some games suck with updates on Yuzu, this lets the user know about it.
Currently, only Tears of the Kingdom is known to be affected, but this
can easily be expanded to include more games.

Signed-off-by: swurl <swurl@swurl.xyz>
2025-04-24 11:55:19 -04:00
c140529a75 add notice for extensions
Signed-off-by: swurl <swurl@swurl.xyz>
2025-04-24 11:07:17 -04:00
918d6d3514 proper placement of clip distance init
Signed-off-by: swurl <swurl@swurl.xyz>
2025-04-24 11:00:28 -04:00
9cb03cd007 Log by line compilation option
Signed-off-by: swurl <swurl@swurl.xyz>
2025-04-24 10:58:22 -04:00
eb90246803 use macro to remove eye destruction
Signed-off-by: swurl <swurl@swurl.xyz>
2025-04-23 22:14:57 -04:00
b47c0e07a3 Proper linking between states
Signed-off-by: swurl <swurl@swurl.xyz>
2025-04-23 21:58:06 -04:00
a137760b48 add dynamic state settings to android settings
Signed-off-by: swurl <swurl@swurl.xyz>
2025-04-23 21:09:45 -04:00