lizzie
3aa0d46259
[video_core, hle] remove redundant parent references in system structs ( #3908 )
...
reworked a bit to remove references of parent objects and instead pass as arguments to methods to prevent useless reloads
Signed-off-by: lizzie <lizzie@eden-emu.dev >
Co-authored-by: maufeat <sahyno1996@gmail.com >
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/3908
Reviewed-by: Maufeat <sahyno1996@gmail.com >
Reviewed-by: crueter <crueter@eden-emu.dev >
2026-06-23 06:31:25 +02:00
lizzie
3875093c70
[hle] Fixes for nxident, nxmp and nxplay, remove hbl.nsp workarounds ( #3996 )
...
adds `gpio` and `i2c` services
implements `IApplicationFunctions::SetMediaPlaybackStateForApplicatio`
stubs `IBtmSystemCore::GetDiscoveredAudioDevice`
implements `nvhost_ctrl_gpu::PmuGetGpuLoad` IOCTL (0x20)
implements `PSM::GetBatteryAgePercentage`, `PSM::GetBatteryVoltageState` and `PSM::GetBatteryChargeInfoFields`
implements `ISystemSettingsServer::GetConsoleInformationUploadFlag`, `ISystemSettingsServer::SetConsoleInformationUploadFlag`, `ISystemSettingsServer::GetAutomaticApplicationDownloadFlag`, `ISystemSettingsServer::SetAutomaticApplicationDownloadFlag`, `&ISystemSettingsServer::GetUsb30EnableFlag`, `ISystemSettingsServer::SetUsb30EnableFlag`
removes `hbl.nsp` specific workarounds
Signed-off-by: lizzie <lizzie@eden-emu.dev >
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/3996
Reviewed-by: MaranBr <maranbr@eden-emu.dev >
Reviewed-by: crueter <crueter@eden-emu.dev >
2026-06-12 23:48:24 +02:00
crueter
eaece15dbd
[svc] Stub BreakDebugProcess ( #4044 )
...
Signed-off-by: crueter <crueter@eden-emu.dev >
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/4044
Reviewed-by: MaranBr <maranbr@eden-emu.dev >
Reviewed-by: Lizzie <lizzie@eden-emu.dev >
2026-06-02 03:33:38 +02:00
maufeat
fee603f0b9
[kernel, hle] Initial 22.0.0 kernel changes and cmd stubs ( #3761 )
...
- KProcess::Run() and CreateThread() SVC now write the current thread handle to TLS+0x110
- KPageTableBase::LockForMapDeviceAddressSpace now checks for a new KPageTableBase boolean, m_allowed_exec_device_mapping
- Stub `am` + `acc` + `settings` cmd module that needs to work for qlaunch
Thanks to: @alula and @yellows8
Source for changes: https://github.com/Atmosphere-NX/Atmosphere/pull/2744 , https://switchbrew.org/ , https://yls8.mtheall.com/
Co-authored-by: PavelBARABANOV <pavelbarabanov94@gmail.com >
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/3761
Reviewed-by: CamilleLaVey <camillelavey99@gmail.com >
2026-05-05 01:29:46 +02:00
lizzie
c95cb8f8ec
[hle] improved flusher that uses jthread ( #3837 )
...
not happy with this impl, but I made this a bit quickly to demostrate it can be done better :)
Signed-off-by: lizzie <lizzie@eden-emu.dev >
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/3837
Reviewed-by: MaranBr <maranbr@eden-emu.dev >
Reviewed-by: CamilleLaVey <camillelavey99@gmail.com >
Co-authored-by: lizzie <lizzie@eden-emu.dev >
Co-committed-by: lizzie <lizzie@eden-emu.dev >
2026-04-09 23:46:38 +02:00
smiRaphi
d99a8c65cc
[hle/kernel] Fix OutputDebugString formatting ( #3744 )
...
Fixes the debug outputs by buffering it, should not effect any normal game as the flush thread only get's created once the function has actually been called.
Turning it from:
```
[ 9.707449] Debug.Emulated <Info> core\hle\kernel\svc\svc_debug_string.cpp:17:OutputDebugString: SDK Assertion Failure: 'hipc::ResultSessionClosed::Includes(result)' in CloseClientSessionHandleSafely() at pid=81, tid=76(Main
[ 9.707642] Debug.Emulated <Info> core\hle\kernel\svc\svc_debug_string.cpp:17:OutputDebugString: Thread)
[ 9.707791] Debug.Emulated <Info> core\hle\kernel\svc\svc_debug_string.cpp:17:OutputDebugString: [SF-Internal]
[ 9.707827] Debug.Emulated <Info> core\hle\kernel\svc\svc_debug_string.cpp:17:OutputDebugString:
[ 9.708202] Debug.Emulated <Info> core\hle\kernel\svc\svc_debug_string.cpp:17:OutputDebugString: Stack trace:
[ 9.708880] Debug.Emulated <Info> core\hle\kernel\svc\svc_debug_string.cpp:17:OutputDebugString: 0x00000000866B5170 (unknown)
[ 9.708911] Debug.Emulated <Info> core\hle\kernel\svc\svc_debug_string.cpp:17:OutputDebugString: 0x00000000866B42BC (unknown)
[ 9.708916] Debug.Emulated <Info> core\hle\kernel\svc\svc_debug_string.cpp:17:OutputDebugString: 0x00000000866B4AEC (unknown)
[ 9.708919] Debug.Emulated <Info> core\hle\kernel\svc\svc_debug_string.cpp:17:OutputDebugString: 0x00000000866B2F20 (unknown)
[ 9.708922] Debug.Emulated <Info> core\hle\kernel\svc\svc_debug_string.cpp:17:OutputDebugString: 0x00000000866B19BC (unknown)
[ 9.708925] Debug.Emulated <Info> core\hle\kernel\svc\svc_debug_string.cpp:17:OutputDebugString: 0x0000000086875C64 (unknown)
[ 9.708927] Debug.Emulated <Info> core\hle\kernel\svc\svc_debug_string.cpp:17:OutputDebugString: 0x00000000868752E0 (unknown)
[ 9.708929] Debug.Emulated <Info> core\hle\kernel\svc\svc_debug_string.cpp:17:OutputDebugString: 0x0000000086874C1C (unknown)
[ 9.708932] Debug.Emulated <Info> core\hle\kernel\svc\svc_debug_string.cpp:17:OutputDebugString: 0x00000000866FBD1C (unknown)
[ 9.708944] Debug.Emulated <Info> core\hle\kernel\svc\svc_debug_string.cpp:17:OutputDebugString: 0x00000000866FBDCC (unknown)
[ 9.708967] Debug.Emulated <Info> core\hle\kernel\svc\svc_debug_string.cpp:17:OutputDebugString:
[ 9.709035] Debug.Emulated <Info> core\hle\kernel\svc\svc_debug_string.cpp:17:OutputDebugString: Related modules:
[ 9.709061] Debug.Emulated <Info> core\hle\kernel\svc\svc_debug_string.cpp:17:OutputDebugString: base size name/path
[ 9.709349] Debug.Emulated <Info> core\hle\kernel\svc\svc_debug_string.cpp:17:OutputDebugString: 0x000000008665D000 0x0000000000E50000 nnSdkEn
[ 9.709431] Debug.Emulated <Info> core\hle\kernel\svc\svc_debug_string.cpp:17:OutputDebugString:
```
Into:
```
[ 5.895512] Debug.Emulated <Info> core\hle\kernel\svc\svc_debug_string.cpp:47:FlushDbgLoop:
SDK Assertion Failure: 'hipc::ResultSessionClosed::Includes(result)' in CloseClientSessionHandleSafely() at pid=81, tid=76(MainThread)
[SF-Internal]
Stack trace:
0x00000000866B5170 (unknown)
0x00000000866B42BC (unknown)
0x00000000866B4AEC (unknown)
0x00000000866B2F20 (unknown)
0x00000000866B19BC (unknown)
0x0000000086875C64 (unknown)
0x00000000868752E0 (unknown)
0x0000000086874C1C (unknown)
0x00000000866FBD1C (unknown)
0x00000000866FBDCC (unknown)
Related modules:
base size name/path
0x000000008665D000 0x0000000000E50000 nnSdkEn
```
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/3744
Reviewed-by: crueter <crueter@eden-emu.dev >
Co-authored-by: smiRaphi <neogt404@gmail.com >
Co-committed-by: smiRaphi <neogt404@gmail.com >
2026-04-06 19:17:43 +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
Maufeat
ddbb6f2219
[hle/ui] Add cmds and fix invalid handle return, remove Starter applet from UI ( #3376 )
...
This fixes qlaunch "+ Options" :)
More:
- Remove Starter-Applet from menu (Starter is started by qlaunch)
- Stub OLSC cmds and add IStopperObject
- Fail-safe invalid handle return for system applets
- Stub IHomeMenuFunctions::IsSleepEnabled (closes qlaunch now when hitting sleep)
- Lower BuiltInNews timeout from 10s to 2s
- Use proper Event instead of KEvent in npns
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/3376
Reviewed-by: CamilleLaVey <camillelavey99@gmail.com >
Reviewed-by: MaranBr <maranbr@eden-emu.dev >
Co-authored-by: Maufeat <sahyno1996@gmail.com >
Co-committed-by: Maufeat <sahyno1996@gmail.com >
2026-01-24 14:15:08 +01:00
Maufeat
1d629fe83c
[svc] Implement GetSystemInfo ( #3217 )
...
This function is a copy-cat implementation of Ryujinx's method
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/3217
Reviewed-by: Caio Oliveira <caiooliveirafarias0@gmail.com >
Reviewed-by: crueter <crueter@eden-emu.dev >
Co-authored-by: Maufeat <sahyno1996@gmail.com >
Co-committed-by: Maufeat <sahyno1996@gmail.com >
2025-12-27 22:39:38 +01:00
lizzie
7d239df065
[hle, kernel] Add support for FW21 and kernel changes ( #3004 )
...
- Adapts kernel changes from atmosphere for firmware 21.0.0.
- Fixes launch error of firmware 21.0.0 applets.
- Adds new commands for `prepo` (New `SaveSystemReport` & `SaveSystemReportWithUser`).
- Adds new commands for `IReadOnlyApplicationControlDataInterface` (cmd 19; incomplete!)
- Adds `{12010, nullptr, "SetButtonConfigLeft"},` undocumented IHidServer.
- Adds new commands for `ngc:u` (`Mask2` and `Check2`)
- Adds new commands for system settings server (GetHttpAuthConfig) for webapplet
- Removes incompatible firmware popup warning.
Signed-off-by: lizzie lizzie@eden-emu.dev
Co-authored by: maufeat sahyno1996@gmail.com
Co-authored-by: crueter <crueter@eden-emu.dev >
Co-authored-by: JPikachu <jpikachu.eden@gmail.com >
Co-authored-by: Maufeat <sahyno1996@gmail.com >
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/3004
Reviewed-by: Maufeat <sahyno1996@gmail.com >
Reviewed-by: crueter <crueter@eden-emu.dev >
Reviewed-by: MaranBr <maranbr@eden-emu.dev >
Co-authored-by: lizzie <lizzie@eden-emu.dev >
Co-committed-by: lizzie <lizzie@eden-emu.dev >
2025-11-16 22:15:09 +01:00
lizzie
191e4c75a1
[meta] fix license headers ( #2547 )
...
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/2547
Reviewed-by: MaranBr <maranbr@eden-emu.dev >
Co-authored-by: lizzie <lizzie@eden-emu.dev >
Co-committed-by: lizzie <lizzie@eden-emu.dev >
2025-09-21 21:58:59 +02:00
lizzie
9d2681ecc9
[cmake] enable clang-cl and WoA builds ( #348 )
...
Compilation and CMake fixes for both Windows on ARM and clang-cl, meaning Windows can now be built on both MSVC and clang on both amd64 and aarch64.
Compiling on clang is *dramatically* faster so this should be useful for CI.
Co-authored-by: crueter <crueter@eden-emu.dev >
Co-authored-by: crueter <crueter@crueter.xyz >
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/348
Reviewed-by: CamilleLaVey <camillelavey99@gmail.com >
Reviewed-by: crueter <crueter@eden-emu.dev >
Co-authored-by: lizzie <lizzie@eden-emu.dev >
Co-committed-by: lizzie <lizzie@eden-emu.dev >
2025-09-09 20:47:49 +02:00
lizzie
9d53933a95
[fmt] use {:#X} for format instead of 0x{:X} ( #309 )
...
Signed-off-by: lizzie <lizzie@eden-emu.dev >
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/309
Reviewed-by: crueter <crueter@eden-emu.dev >
Co-authored-by: lizzie <lizzie@eden-emu.dev >
Co-committed-by: lizzie <lizzie@eden-emu.dev >
2025-08-27 22:39:11 +02:00
SDK-Chan
7ce051cfb3
[core] Unstub AliasRegionExtraSize ( #260 )
...
This implementation is basically usable for up to 8GB of DRAM which you can set in the emulator.
It should ensure that the alias or map region for the virtual address space is bigger when requested.
8GB DRAM is the size of Nintendos DRAM sticks in the developers kit.
Going above 8GB DRAM while emulating a game is not recommended.
That is why this implementation.
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/260
Reviewed-by: Shinmegumi <shinmegumi@eden-emu.dev >
Co-authored-by: SDK-Chan <sdkchan@eden-emu.dev >
Co-committed-by: SDK-Chan <sdkchan@eden-emu.dev >
2025-08-20 17:16:13 +02:00
JPikachu
e0795f2b40
Service: Add AliasRegionExtraSize
...
Thanks to Briar for finding and testing the Service
Credit: Antique - [Sudachi] Dev (https://sudachi.emuplace.app/ )
2025-04-12 16:23:47 +01:00
JPikachu
4957950b55
revert 789bbd7ab5
...
This needs to be put aside for now, but may be implemented again later
2025-04-10 03:45:51 +00:00
Zephyron
789bbd7ab5
kernel: Implement SystemResourceSize info type for VAMM initialization
...
Adds support for InfoType::SystemResourceSize (0x1C) which is required for
proper initialization of the Virtual Address Memory Manager (VAMM). This
implementation:
1. Adds SystemResourceSize to the InfoType enum in svc_types.h
2. Implements the GetInfo handler for SystemResourceSize in svc_info.cpp
3. Returns 512MB (0x20000000 bytes) as the system resource size
4. Adds debug logging for the SVC call
The 512MB value is chosen based on typical system resource allocations
needed for VAMM initialization on the Nintendo Switch.
This fixes crashes in games that rely on VAMM functionality, particularly
during nn::os::detail::VammManager::InitializeIfEnabled().
2025-04-04 03:40:49 +02:00
FearlessTobi
4d55e58ee4
scope_exit: Make constexpr
...
Allows the use of the macro in constexpr-contexts.
Also avoids some potential problems when nesting braces inside it.
2024-02-19 16:00:46 +01: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
Liam
a7ff872a4c
kernel: restrict nce to applications
2023-12-22 21:52:49 -05:00
Liam
5244690809
k_server_session: process for guest servers
2023-12-22 21:52:49 -05:00
liamwhite
4907a83298
Merge pull request #12296 from liamwhite/client-session
...
kernel: implement remaining IPC syscalls
2023-12-09 19:03:56 -05:00
Liam
f486fe3971
kernel: implement light IPC
2023-12-07 09:13:43 -05:00
Liam
dcc9df5dd2
kernel: implement remaining IPC syscalls
2023-12-06 17:33:00 -05:00
Liam
3d5c6a73cb
core: refactor emulated cpu core activation
2023-12-04 10:37:16 -05:00
Liam
713f292a25
kernel: add KPageTableBase
...
Co-authored-by: Kelebek1 <eeeedddccc@hotmail.co.uk >
2023-11-10 12:01:35 -05:00
Liam
62e106dbe8
kernel: update KProcess
2023-10-21 20:03:41 -04:00
Liam
92a65b4947
kernel: fix format string error
2023-10-20 02:41:32 -04:00
Liam
d73dbceba6
k_page_table: implement PermissionLocked
2023-10-20 02:34:15 -04:00
Liam
97d79bf8a6
kernel: implement transfer memory
2023-10-04 22:32:27 -04:00
Liam
efef3d8487
core: improve debug workflow
2023-09-14 16:44:15 -04:00
Liam
50ce2f0b7b
kernel: remove relative task registration
2023-08-14 18:12:06 -04:00
Liam
46234254b1
core: reduce TOCTTOU memory access
2023-07-22 11:19:29 -04:00
Liam
b47ce23b31
kernel: reduce page table region checking
2023-07-14 22:33:10 -04:00
Liam
6b6f0b21b9
k_process: PageTable -> GetPageTable
2023-07-14 21:43:15 -04:00
Morph
abe7f7c0a0
kernel: Synchronize
2023-07-01 16:21:22 -04:00
Kelebek1
c7430e51e3
Remove memory allocations in some hot paths
2023-06-22 08:05:10 +01:00
Morph
52a219cfe9
core_timing: Fix SingleCore cycle timer
2023-06-07 21:44:42 -04:00
Morph
2856fadaa0
core_timing: Use CNTPCT as the guest CPU tick
...
Previously, we were mixing the raw CPU frequency and CNTFRQ.
The raw CPU frequency (1020 MHz) should've never been used as CNTPCT (whose frequency is CNTFRQ) is the only counter available.
2023-06-07 21:44:42 -04:00
Liam
6eaef51cf2
memory: rename global memory references to application memory
2023-03-23 20:28:47 -04:00
liamwhite
2b74ab00aa
Merge pull request #9964 from liamwhite/typed-address
...
kernel: use KTypedAddress for addresses
2023-03-23 10:00:19 -04:00
Liam
156516e399
kernel: use KTypedAddress for addresses
2023-03-22 09:35:16 -04:00
Liam
48f1221b35
kernel: fix LOG_TRACE in ipc
2023-03-19 10:02:20 -04:00
Liam
b8da5b73b2
kernel: convert KProcess to new style
2023-03-12 22:09:27 -04:00
Liam
46d09ae364
kernel: convert KThread to new style
2023-03-12 22:09:09 -04:00
Liam
d0e11c27d9
kernel: prefer std::addressof
2023-03-12 22:09:09 -04:00
Liam
0c6375446c
kernel/svc: convert to new style
2023-03-12 22:09:08 -04:00
Liam
3c93638acf
kernel: convert KPort, KSession
2023-03-12 22:06:53 -04:00
Liam
5be8a74b0c
general: fix spelling mistakes
2023-03-12 11:33:01 -04:00