Commit Graph

115 Commits

Author SHA1 Message Date
PavelBARABANOV e255c20db4 Revert "[hle] constexpr handler dispatch maps, introduce version gating (#4480)" (#4532)
This reverts commit 218c6705d9.

- [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.

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

Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/4532
Reviewed-by: lizzie <lizzie@eden-emu.dev>
Reviewed-by: CamilleLaVey <camillelavey99@gmail.com>
Reviewed-by: Maufeat <sahyno1996@gmail.com>
2026-10-15 08:45:15 +02:00
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 42642f8bad [hle] Implement I{User,Debug,System}::StartDetectionWithFilter (#4425)
On fw23 it just uses the same thunk as StartDetection.

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.

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

Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/4425
Reviewed-by: Maufeat <sahyno1996@gmail.com>
Reviewed-by: CamilleLaVey <camillelavey99@gmail.com>
2026-09-14 21:56:31 +02:00
lizzie 1b482fa99b [hle] remove parent object reference data on Request/Response builders, pass by argument (#3774)
anyways this should remove a bunch of redundant code/stack usage for response builders (ahem, msvc)

SHOULD help games that use IPC heavily like PKZA and whatnot

biblical levels of performance greed

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

Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/3774
Reviewed-by: CamilleLaVey <camillelavey99@gmail.com>
Reviewed-by: Maufeat <sahyno1996@gmail.com>
2026-06-29 08:11:12 +02:00
lizzie 395613b01f [common/logging] Simplify logging logic and fix issues when logging before system is created (#3688)
- our logging code was bigger than spdlog itself, why???? just keep it simple
- fix issues when logging before logging system is even started
- removes the "initialized logging twice" issue
- removes uneeded indirection in file logging
- uses direct formatting instead of jumping hoopla-around the fmt::format() ressult
- code duplication and dead code removal as usual

I did explore dup2() but I think it's not worth the hassle
I did try `fwopen()` but it's better if things are just kept as-is.

there is a lot of noise because I removed a bunch of redundant files on logging and just put everything in one file

now normally this wouldn't be a good idea, however consider: the complexity of logging; it's less than 500 lines... does it really need a whole subsystem?!?!?! ITS JUST LOGGING

Signed-off-by: lizzie <lizzie@eden-emu.dev>
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/3688
Reviewed-by: crueter <crueter@eden-emu.dev>
Reviewed-by: DraVee <chimera@dravee.dev>
Reviewed-by: CamilleLaVey <camillelavey99@gmail.com>
Co-authored-by: lizzie <lizzie@eden-emu.dev>
Co-committed-by: lizzie <lizzie@eden-emu.dev>
2026-03-12 18:29:15 +01:00
Gamer64 bb94cff886 [chore] Fixed a couple memory leaks using up ~15 MB each iteration (#398)
Co-authored-by: Jarrod Norwell <official.antique@gmail.com>
Co-authored-by: Gamer64 <76565986+Gamer64ytb@users.noreply.github.com>
Co-authored-by: Caio Oliveira <caiooliveirafarias0@gmail.com>
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/398
Reviewed-by: Caio Oliveira <caiooliveirafarias0@gmail.com>
Reviewed-by: Lizzie <lizzie@eden-emu.dev>
Co-authored-by: Gamer64 <gamer64@eden-emu.dev>
Co-committed-by: Gamer64 <gamer64@eden-emu.dev>
2025-12-26 02:55:52 +01: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
german77 15619d2052 service: mii: Move ver3 operations 2023-09-10 22:42:38 -06:00
german77 e51d54de30 service: mii: separate mii types into their own file 2023-09-10 22:18:25 -06:00
Narr the Reg 05fcd73843 service: nfc: Accuracy fixes 2023-06-14 18:08:35 -06:00
german77 4255ac45d1 service: nfc: Add backup support 2023-06-06 17:06:21 -06:00
Narr the Reg 2a36d667c9 service: nfc: Merge device interfaces and create the device manager 2023-05-05 22:02:59 -06:00
Narr the Reg db242ac13f service: nfc: Create interface 2023-04-23 23:28:09 -06:00
Narr the Reg 5de37e921c service: nfp: Implement debug Interface 2023-04-14 17:03:58 -06:00
Narr the Reg c8ed98bb1c service: nfp: Implement system interface 2023-04-14 17:03:57 -06:00
Narr the Reg 52447e1b58 service: nfp: Use an unique interface 2023-04-13 22:24:27 -06:00
german77 a7965dbc95 service: nfp: Add plain amiibo support 2023-03-26 14:26:36 -06:00
Narr the Reg 9704f1bc7e nfc: Initialize device when controller is connected 2023-03-21 20:09:36 -06:00
Narr the Reg 8a1c405ce3 service: nfp: Replace crc function with boost equivalent 2023-03-16 17:47:32 -06:00
Narr the Reg ab37f2bda3 service: nfp: Close app area and recreate crc 2023-03-15 17:01:06 -06:00
Narr the Reg d7f58e6ecb service: nfp: Convert mii colors to v3 2023-03-15 17:01:05 -06:00
Narr the Reg aeb65824a7 service: nfp: Actually write correct crc 2023-03-14 23:42:41 -06:00
Liam 5be8a74b0c general: fix spelling mistakes 2023-03-12 11:33:01 -04:00
Narr the Reg 3c1865f1a1 service: nfp: Improve implementation 2023-03-09 19:29:28 -06:00
Liam d7e9461b71 service: move hle_ipc from kernel 2023-03-01 10:39:49 -05:00
Liam 1c3a93e7c4 service: refactor server architecture
Converts services to have their own processes
2023-02-21 12:19:25 -05:00
Liam c68577384a general: rename CurrentProcess to ApplicationProcess 2023-02-13 19:03:12 -05:00
Narr the Reg 000a5852ee core: hid: Only set the polling mode to the correct side 2023-01-19 18:05:23 -06:00
german77 22eb8ce395 yuzu: Add ring controller test button 2023-01-19 18:05:22 -06:00
german77 8a90856b25 service: nfc: Silence ListDevices 2022-12-18 11:57:33 -06:00
Narr the Reg dbfc2f7ee2 service: nfc: Implement mifare service 2022-12-01 20:43:59 -06:00
Lioncash 8c35c8c4a6 service: Make use of buffer element count helpers 2022-11-23 13:43:20 -05:00
Narr the Reg 06d54056d6 Merge branch 'master' into nfc_impl 2022-11-20 09:31:20 -06:00
Narr the Reg 5c134b62bd service: nfc: Implement nfc user 2022-11-19 08:51:59 -06:00
german77 9639d49ec6 general: Address review comments 2022-11-13 17:13:43 -06:00
german77 23cda93390 service: am: Implement cabinet applet backend 2022-11-13 11:07:48 -06:00
german77 de02ec2357 service: nfc: fix tagprotocol and implement GetApplicationAreaId 2022-11-13 10:52:48 -06:00
Narr the Reg d444a2ffab service: nfp: Allow amiibos without keys 2022-10-21 23:08:07 -05:00
Narr the Reg ea7f4aed98 service: nfp: remove unnecessary include 2022-10-21 21:54:31 -05:00
Liam 09777eea76 kernel: remove KWritableEvent 2022-10-12 20:29:29 -04:00
Liam 82a159f2c4 nfp_types: silence -Wtype-limits 2022-10-07 06:52:28 -04:00
Narr the Reg 280a232e27 service: nfp: Fix errors to pass unit testing 2022-10-03 18:06:55 -05:00
Narr the Reg 1c5a057252 service: nfp: Implement mount target and open application area errors, minor fixes 2022-10-02 12:34:14 -05:00
german77 d08c8cf877 nfp: Multiple fixes against HW 2022-10-02 12:32:26 -05:00
german77 d389a05005 service: nfp: address comments 2022-10-02 12:32:26 -05:00
german77 28792b26a5 service: nfp: Rewrite and implement applet calls 2022-10-02 12:32:26 -05:00
Andrea Pappacoda b1585fed5a chore: fix some typos
Fix some typos reported by Lintian
2022-09-23 13:38:23 +02:00
german77 817b96446e core: nfp: Remove magic numbers 2022-09-07 09:49:43 -05:00
german77 c990e2d2f5 core: nfp: Workaround for lack of multiple nfp interfaces 2022-09-07 01:04:00 -05:00