Commit graph

4779 commits

Author SHA1 Message Date
crueter
4661909f4c Firmware 20.0.0 Initial Implementation & Android: Uninstall Firmware Button
Co-authored-by: Pavel Barabanov <pavelbarabanov94@gmail.com>
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/89
Co-authored-by: crueter <crueter@noreply.localhost>
Co-committed-by: crueter <crueter@noreply.localhost>
2025-05-07 20:15:25 +00:00
Pavel Barabanov
d55e400c7c started adding services for firmware 20.0.0 without implementation 2025-05-03 06:15:23 +03:00
JPikachu
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
Pavel Barabanov
56e619c872 Remove the stub for GetCradleFwVersion 2025-04-30 02:52:04 +03:00
MrPurple666
52a692b73a Merge branch 'purple' of https://git.eden-emu.dev/MrPurple666/eden into purple 2025-04-19 19:27:01 -03:00
MrPurple666
7a62776d11 fix duplicated on merge 2025-04-19 19:26:04 -03:00
MrPurple666
f65c3042c4 Merge branch 'master' into purple 2025-04-19 21:54:56 +00:00
MrPurple666
6ac5eaea11 Merge https://git.eden-emu.dev/eden-emu/eden into purple 2025-04-19 18:53:45 -03:00
swurl
f2db4dd3a1 Fix CI Building For Windows, Android & Linux 2025-04-19 14:46:06 -07:00
Zephyron
cf1bcb02c5 service/vi: Improve OpenDisplay validation
Updates the OpenDisplay function in IApplicationDisplayService to properly
validate display names. Instead of only accepting "Default", now validates
against all known valid display names: "Default", "External", "Edid",
"Internal", and "Null".

- Changes log level from WARNING to DEBUG since this is no longer stubbed
- Adds proper validation for all valid display names
- Returns ResultOperationFailed for invalid display names
- Improves logging by including the requested display name
2025-04-19 17:19:38 -03:00
swurl
c8a4cf715f windows actions (again) (#39)
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/39
Co-authored-by: swurl <swurl@swurl.xyz>
Co-committed-by: swurl <swurl@swurl.xyz>
2025-04-17 04:50:25 +00:00
Pavel Barabanov
ee03ac227d Fixes the launch of some games on firmware versions 18 and above. 2025-04-15 05:59:18 +03:00
Pavel Barabanov
b66ebe638b Qlauncher firmware 19 2025-04-14 14:18:13 -04:00
JPikachu
d6eff706f2 Service: am: enhance UnpopInData, GetHdcpAuthenticationState and GetHdcpAuthenticationStateChangeEvent
Thanks to Sudachi and Torzu for some help and referance.
2025-04-14 14:18:13 -04:00
MrPurple666
909a94783c fixes out_audio_controller build error 2025-04-14 12:23:30 -03:00
Zephyron
cae9d9b9e8 service/audio: implement Unknown5000 and add debug commands
- Add Unknown5000 implementation to create duplicate controller interface
- Add new debug-related command handlers:
  * OverrideDefaultTargetForDebug (50001)
  * SetForceOverrideExternalDeviceNameForDebug (50003)
  * ClearForceOverrideExternalDeviceNameForDebug (50004)
- Add proper debug logging for interface creation
- Update header with new function declaration
- Fix missing commas in function registration array

These changes improve the audio controller implementation by
adding support for interface duplication and debug override
functionality. The implementation maintains proper interface
lifetime management using SharedFrom.
2025-04-14 12:15:52 -03:00
Pavel Barabanov
1bd86b08f2 Qlauncher firmware 19 2025-04-14 12:10:33 -03:00
JPikachu
d87ba21d05 Service: am: enhance UnpopInData, GetHdcpAuthenticationState and GetHdcpAuthenticationStateChangeEvent
Thanks to Sudachi and Torzu for some help and referance.
2025-04-14 12:10:06 -03:00
darktux
eb536ef8a8 Return correct amount of values from IFriendService::GetReceivedFriendRequestCount 2025-04-13 15:39:17 -03:00
darktux
26eece092f Fix NROs crashing and loading infinitely (#3)
Commit from Suyu, looks like Yuzu devs forgot to initialize memory here.

Comment from darktux: I've changed the use of memset to std::fill.

Co-authored-by: Belal Ashraf <nullequal@noreply.localhost>
Reviewed-on: http://y2nlvhmmk5jnsvechppxnbyzmmv3vbl7dvzn6ltwcdbpgxixp3clkgqd.onion/darktux/torzu/pulls/3
Co-authored-by: darktux <darktux@y2nlvhmmk5jnsvechppxnbyzmmv3vbl7dvzn6ltwcdbpgxixp3clkgqd.onion>
Co-committed-by: darktux <darktux@y2nlvhmmk5jnsvechppxnbyzmmv3vbl7dvzn6ltwcdbpgxixp3clkgqd.onion>
2025-04-13 15:39:03 -03:00
MrPurple666
f9f311c014 Revert "Merge branch 'pr-12'"
This reverts commit dfe104bbb96b52f47943462c296ecbcb046dffdf, reversing
changes made to 45683a4034.
2025-04-12 22:54:32 -03:00
JPikachu
a6c9177ad1 Implement additions to nvdr services
Fixes log error: "[  41.472933] Debug <Critical> core/hle/service/nvdrv/devices/nvhost_ctrl_gpu.cpp:operator():81: Assertion Failed! Unimplemented ioctl=C0084713"

Credit: Antique - Sudachi dev, for the base Implementation and Citron for slight additions.
2025-04-11 17:48:09 -03:00
crueter
9cef9f5dce Update fmt to allow for v11
Signed-off-by: swurl <swurl@swurl.xyz>
2025-04-10 01:11:22 +02:00
Mr_Purple_666
90bda9fee5 Use u32 instead of int
fix windows build error
2025-04-04 03:40:50 +02:00
MrPurple666
2d2e9208d2 Unified torzu and sudachi friend.cpp + fix android build on dma_pusher 2025-04-04 03:40:49 +02:00
Pavel Barabanov
409946d1e6 Added the GetKeyCodeMapByPort service, thanks JPikachu for the tip. 2025-04-04 03:40:49 +02:00
JPikachu
7c4fdaf528 Update freind, nifm and nim stubs
Credit: Antique - [Sudachi] Dev (https://sudachi.emuplace.app/)
2025-04-04 03:40:49 +02:00
EmulationEnjoyer
d5bb26bf3e Implement HID function stub "SetGestureOutputRanges" (#105)
Add function stub for "SetGestureOutputRanges" in HID service

Fixes userspace panic when booting Donkey Kong Country Returns HD:

> Debug <Critical> core\hle\service\service.cpp:operator ():78: Assertion Failed!
Unknown / unimplemented function '92(<unknown>)': port='hid' cmd_buf={[0]=0x6, [1]=0x8000000C, [2]=0x1, [3]=0x0, [4]=0x4F434653, [5]=0x0, [6]=0x0, [7]=0x0, [8]=0x49434653}
> Service.AM <Info> core\hle\service\am\service\application_functions.cpp:SetTerminateResult:187: (STUBBED) called, result=0x1a80a (2010-0212)
> Debug.Emulated <Critical> core\hle\kernel\svc\svc_exception.cpp:Break:52: Userspace PANIC! info1=0x0000001086D02C4C, info2=0x0000000000000004
> Debug.Emulated <Critical> core\hle\kernel\svc\svc_exception.cpp:operator ():33: debug_buffer_err_code=1A80A
> Debug.Emulated <Critical> core\hle\kernel\svc\svc_exception.cpp:Break:102: Emulated program broke execution! reason=0x0000000000000000, info1=0x0000001086D02C4C, info2=0x0000000000000004

ref: 132077e18f

![](https://i.imgur.com/hbBnlYs.png)

Reviewed-on: http://vub63vv26q6v27xzv2dtcd25xumubshogm67yrpaz2rculqxs7jlfqad.onion/torzu-emu/torzu/pulls/105
Co-authored-by: EmulationEnjoyer <emulationenjoyer@noreply.localhost>
Co-committed-by: EmulationEnjoyer <emulationenjoyer@noreply.localhost>
2025-04-04 03:40:49 +02:00
MrPurple666
c6f2a85142 Add the rest of the necessary code for ssl:s
Credit: Antique - (Sudachi) Dev [https://sudachi.emuplace.app/]

Signed-off-by: MrPurple666 <antoniosacramento666@gmail.com>
2025-04-04 03:40:49 +02:00
JPikachu
6581fc5b98 Update ssl stubs
Updated the ssl stubs to implement ssl:s for Firmware 19
This should make Xenoblade X: Definitive Edition bootable
Credit: Antique - (Sudachi) Dev [https://sudachi.emuplace.app/]
2025-04-04 03:40:48 +02:00
JPikachu
6abd4d2f2b Rewrote mm:u to follow switchbrew.org documentation and update them
Credit: Antique - [Sudachi Dev] (https://sudachi.emuplace.app/)
2025-04-04 03:40:48 +02:00
darktux
2011cdd333 Added v18.0.0 stubs and updated tzdb_to_nx 2025-04-04 03:40:48 +02:00
darktux
d8c2ab85eb Implemented a more correct version of ISfServiceMonitor::GetGroupInfo 2025-04-04 03:40:48 +02:00
darktux
1c7bae50cc Fixed formatting in new stubs ported from Suyu 2025-04-04 03:40:47 +02:00
darktux
cacef3d8e7 Ported some stubs from Suyu (2ba2db7795) 2025-04-04 03:40:47 +02:00
darktux
5056d87da3 Actually return 0 in IFriendService::GetReceivedFriendRequestCount 2025-04-04 03:40:47 +02:00
darktux
675d53ab71 Fixed minor issues from previous PR related to buffers and a typo in npns 2025-04-04 03:40:47 +02:00
darktux
d82ee773da Implemented IFriendService::GetUserPresenceView stub to get QLaunch friends list running 2025-04-04 03:40:46 +02:00
darktux
df67582446 Always report command ID in log and implement LoadUserSetting stub 2025-04-04 03:40:46 +02:00
darktux
616619c8f7 Port changes from Early Access 2025-04-04 03:40:46 +02:00
darktux
76a55dc003 Implement option to start QLaunch from Tools menu 2025-04-04 03:40:45 +02:00
Briar
b1ec0e9dec Switch default username to eden 2025-04-01 18:38:41 +02:00
yuzubot
c280f95b1a "Merge Tagged PR 13018" 2024-03-03 13:02:50 +00:00
liamwhite
3f719aed35 Merge pull request #13135 from german77/hid-interface
service: hid: Migrate HidServer to new IPC
2024-02-27 12:26:26 -05:00
Liam
7af4637f3d general: fix asan errors 2024-02-26 19:28:49 -05:00
liamwhite
67120d9623 Merge pull request #13159 from liamwhite/web-error
core: enable error applet, add stubs for web applet
2024-02-26 12:44:55 -05:00
Liam
e15b1021a4 video_core: make gpu context aware of rendering program 2024-02-26 11:16:14 -05:00
Liam
1958a2df6b ldn: return no connection from GetStateForMonitor 2024-02-24 22:56:08 -05:00
Liam
cacfe8ec90 ssl: add cert store 2024-02-24 22:56:05 -05:00
Liam
1c7c59ad91 glue: load initial year setting as s32 2024-02-24 22:49:38 -05:00