Commit Graph

326 Commits

Author SHA1 Message Date
lizzie 218c6705d9 [hle] constexpr handler dispatch maps, introduce version gating (#4480)
This PR primarily focuses on upbringing constexpr maps for handlers.

Each time an HLE object of a service is construed, it registers it's own handlers, over and over.
Regardless of whetever it needs them at the moment or not.
Additionally we don't require to keep track of different function pointers amongst each object.
This can be done by overriding the given function instead, as opposed to having a separate
hash map for every given object.

In other words: Remove handlers (and handlers_tipc) map for every instance
then read from a static defined per-class.

- [x] Migrate all HLE functions to new `frozen::map` constexpr time finder
- [ ] Measure if this approach actually makes better codegen

Optional:
- [x] Properly gate all functions (that have versions commented next to them)
- [x] Maybe store `HandlerFnP<>` and `const char*` separately, version gating can go in a different map as well

Information such as name can be used on debug builds, but doesn't particularly help on release as one can consult an external reference (or have an annotated IPC map)

Signed-off-by: lizzie <lizzie@eden-emu.dev>

- [x] I have read and followed the [Contribution Guidelines](https://git.eden-emu.dev/eden-emu/eden/src/branch/master/CONTRIBUTING.md#code-contributions).
- [x] I have read and followed the [AI Policy](https://git.eden-emu.dev/eden-emu/eden/src/branch/master/docs/policies/AI.md)
- [x] I have read and followed the [Coding Guidelines](https://git.eden-emu.dev/eden-emu/eden/src/branch/master/docs/policies/Coding.md) to the best of my ability.

-------------------

Co-authored-by: Maufeat <sahyno1996@gmail.com>
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/4480
Reviewed-by: Maufeat <sahyno1996@gmail.com>
Reviewed-by: MaranBr <maranbr@eden-emu.dev>
2026-10-13 04:38:36 +02:00
lizzie a41a98028a [hle/service] stub missing homebrew services, fix NPad/caps crashes (#4264)
Signed-off-by: lizzie <lizzie@eden-emu.dev>

- [x] I have read and followed the [Contribution Guidelines](https://git.eden-emu.dev/eden-emu/eden/src/branch/master/CONTRIBUTING.md#code-contributions).
- [x] I have read and followed the [AI Policy](https://git.eden-emu.dev/eden-emu/eden/src/branch/master/docs/policies/AI.md)
- [x] I have read and followed the [Coding Guidelines](https://git.eden-emu.dev/eden-emu/eden/src/branch/master/docs/policies/Coding.md) to the best of my ability.

-------------------

this PR adds various missing services (acc:e, acc:e:u1)
to expand homebrew compatibility
notably this also fixes NPad related crashes due to nullref

Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/4264
Reviewed-by: Maufeat <sahyno1996@gmail.com>
Reviewed-by: CamilleLaVey <camillelavey99@gmail.com>
2026-08-18 18:11:33 +02:00
yuzubot c280f95b1a "Merge Tagged PR 13018" 2024-03-03 13:02:50 +00:00
Narr the Reg 0201a87e4f service: hid: Migrate hidbus to new interface 2024-02-07 18:07:32 -06:00
Narr the Reg 575f4308e0 service: hid: Fully implement touch resource 2024-01-28 18:27:25 -06:00
Narr the Reg df295231b8 service: set: Implement more settings functions for Qlaunch 2024-01-25 17:14:18 -06:00
liamwhite 48d9e11d9d Merge pull request #12660 from german77/better-vibration
service: hid: Fully implement abstract vibration
2024-01-20 13:34:54 -05:00
Narr the Reg 4acc872fce service: set: Implement stubbed functions 2024-01-15 23:17:03 -06:00
Narr the Reg e2313faec9 service: hid: Fully implement abstract vibration 2024-01-15 23:15:40 -06:00
Liam bf50a0e0c2 kernel: fix debugger and process list lifetime 2024-01-12 18:31:33 -05:00
Viktor Szépe cff668e1c4 Fix typos in src/core (#12625)
* Fix typos in src/core

* Fix typo correction

* Fix indentation of MemoryStateNames

* Fix indent
2024-01-08 13:31:48 -06:00
Narr the Reg 146975c880 hid_core: Move hid to it's own subproject 2024-01-05 11:41:15 -06:00
Narr the Reg 1f0a03d1e0 service: hid: Implement NpadResource and NpadData 2024-01-03 20:21:14 -06:00
Narr the Reg 7fa71afe9e service: hid: Introduce proper AppletResource emulation 2023-12-06 20:24:04 -06:00
Narr the Reg cd8dcc1250 service: hid: Introduce firmware settings and update activate controller calls 2023-11-16 18:51:14 -06:00
Narr the Reg 174c52d27b service: hid: Split hid.cpp into individual interfaces 2023-11-15 09:59:54 -06:00
german77 a4ebe1ea92 service: hid: Silence EnableUnintendedHomeButtonInputProtection 2023-11-03 23:22:28 -06:00
german77 4e453935a3 core: Close all KEvents 2023-10-29 13:52:12 -06:00
liamwhite d3fb5e07d6 Merge pull request #11519 from german77/system-policy
service: hid: Implement ApplyNpadSystemCommonPolicy
2023-09-16 11:40:42 -04:00
german77 ef869803f8 service: hid: Implement ApplyNpadSystemCommonPolicy 2023-09-16 08:38:10 -06:00
german77 d6aef45e6d hid: service: Implement Last active Npad 2023-09-16 00:31:19 -06:00
Narr the Reg f8a46b0f74 service: hid: Implement functions needed by QLaunch 2023-08-11 10:13:21 -06:00
german77 5e95870b1f service: hid: Use span instead of vector reference 2023-05-14 18:07:04 -06:00
german77 9ffeb00747 service: hid: Implement SetNpadJoyAssignmentModeSingleWithDestination
Used by Let's Get Fit
2023-03-29 22:03:49 -06:00
Liam 5be8a74b0c general: fix spelling mistakes 2023-03-12 11:33:01 -04:00
Liam d7e9461b71 service: move hle_ipc from kernel 2023-03-01 10:39:49 -05:00
liamwhite 7b8304614c Merge pull request #9832 from liamwhite/hle-mp
service: HLE multiprocess
2023-03-01 10:38:20 -05:00
liamwhite 6825d636b1 Merge pull request #9859 from liamwhite/tmem-use
service: avoid direct pointer access of transfer memory objects
2023-02-27 19:46:10 -05:00
Narr the Reg 932cf55052 core: Update service function tables to 16.0.0+ 2023-02-24 18:17:36 -06:00
Liam 434d182020 hid: avoid direct pointer access of transfer memory objects 2023-02-24 12:48:07 -05:00
Liam 1c3a93e7c4 service: refactor server architecture
Converts services to have their own processes
2023-02-21 12:19:25 -05:00
liamwhite 207fdfe57d Merge pull request #9796 from liamwhite/current
general: rename CurrentProcess to ApplicationProcess
2023-02-15 17:42:45 -05:00
Liam c415339beb service: remove deleted services 2023-02-14 12:38:21 -05:00
Liam c68577384a general: rename CurrentProcess to ApplicationProcess 2023-02-13 19:03:12 -05:00
Narr the Reg 420560f4d3 core: hid: Use gyro thresholds modes set by the game 2023-02-09 19:07:50 -06:00
Narr the Reg 3d2f7c4170 service: hid: Return error if arguments of SetSupportedNpadIdType is invalid 2023-02-07 21:11:39 -06:00
ameerj 7cc5da4a9f Revert "Merge pull request #9718 from yuzu-emu/revert-9508-hle-ipc-buffer-span"
This reverts commit 153fa289d2, reversing
changes made to 20676b3b5a.
2023-02-03 00:08:45 -05:00
liamwhite f74a95b6fb Revert "hle_ipc: Use std::span to avoid heap allocations/copies when calling ReadBuffer" 2023-02-02 15:53:28 -05:00
ameerj 713394d526 hle_ipc: Rename ReadBufferSpan to ReadBuffer 2022-12-28 18:46:54 -05:00
ameerj de252703bd hidbus: Use ReadBufferSpan 2022-12-28 18:46:53 -05:00
ameerj db9a523aae service: Use ReadBufferSpan where it is trivial to do so 2022-12-25 17:04:02 -05:00
german77 1cf625b6c6 service: hid: Only overclock npad controllers 2022-11-19 08:44:42 -06:00
Morph 6becbfbaa3 general: Fix spelling of "unknown" 2022-10-16 00:46:22 -04:00
bunnei 836eb41341 Merge pull request #8876 from FearlessTobi/multiplayer-part3
ldn: Implement "local wireless" networked multiplayer
2022-10-01 14:53:36 -07:00
Narr the Reg adb6348255 service: hid: Partially implement palma controller 2022-09-25 00:13:12 -05:00
german77 dd33c0c473 yuzu: Multiple room UI improvements 2022-09-10 19:39:25 +02:00
Kelebek1 f121da072a Demote services from warning/info to debug to reduce log spam:
GetCurrentFocusState
SetClockSpeed
EnableSixAxisSensorUnalteredPassthrough
IsSixAxisSensorUnalteredPassthroughEnabled
Get, GetOld
SetAndWait, SetAndWaitOld
IocParam
IocFree
2022-09-01 16:54:22 +01:00
german77 3d8cb61bfd hid: core: Add missing function table names 2022-08-21 23:31:53 -05:00
german77 cd16f9801a service: irs: Move to IRS namespace and minor fixes 2022-07-23 19:40:25 -05:00
Kelebek1 f66a68fa1b PR 2022-07-10 08:29:37 +01:00