Lioncash
43039d95ac
service/set: Update function tables
4 years ago
Lioncash
7ba6f68a8d
service/ns: Update function tables
4 years ago
Lioncash
19c11e2fd2
service/nim: Update unknown function table entries
4 years ago
Lioncash
888bc10c17
service/friend: Update unknown function table entries
4 years ago
Lioncash
54150f5afa
service/filsystem: Update fsp-srv function table
4 years ago
Lioncash
3da43ad2a9
service/btm: Update function tables
4 years ago
Lioncash
0f7337c522
service/audio: Update audctl unknown function names
4 years ago
Lioncash
29e3636e0a
service/am: Update omm function tables
4 years ago
Lioncash
a271cf89cf
service/acc: Update unknown function names
Switchbrew has the function names now.
4 years ago
Morph
a396473201
service: apm: Stub ISession SetCpuOverclockEnabled
Since we don't currently support CPU overclocking within the emulated system, this can be stubbed for now, like APM IsCpuOverclockEnabled.
- Used by Gravity Rider Zero
4 years ago
bunnei
f6815086a1
hle: kernel: Remove redundant tracking of dummy threads.
- These are already tracked by kernel's registered_objects member.
4 years ago
bunnei
91ff6d4cb3
hle: kernel: KThread: DummyThread can be waited, ensure wait_queue is not nullptr.
4 years ago
bunnei
46a620f9d7
hle: kernel: KThread: Decrease DummyThread priority to ensure it is never scheduled.
4 years ago
bunnei
0b37e7cb39
hle: kernel: service_thread: Ensure dummy thread is closed & destroyed on thread exit.
4 years ago
bunnei
384e24d3e9
hle: kernel: KServerSession: Remove hack for CompleteSyncRequest.
- This does not appear to be necessary anymore.
4 years ago
bunnei
ad53dc22fd
hle: kernel: KServerSession: Simplify CompleteSyncRequest EndWait.
- Considering is_thread_waiting is never set, so we can remove IsThreadWaiting.
- KThread::EndWait will take the scheduler lock, so we can remove the redundant lock.
4 years ago
bunnei
5ffec69dc7
hle: kernel: KThread: Ensure dummy threads never call EndWait.
- These are only used by host threads for locking and will never have a wait_queue.
4 years ago
bunnei
11a380c3da
hle: kernel: KScheduler: Ensure dummy threads are never scheduled.
- These are only used by host threads for locking.
4 years ago
bunnei
f6cbb14dce
hle: kernel: KThread: Rename thread_type_for_debugging -> thread_type.
- This will be used to ensure that we do not schedule dummy threads.
4 years ago
german77
8fa0416fee
service/hid: Initialize applet_resource on SetNpadAnalogStickUseCenterClamp
4 years ago
Valeri
84786dde00
hle: remove no-op code
Found by static analysis with PVS-Studio. Nobody seems to really know what was it doing there.
4 years ago
bunnei
b54cbc985e
hle: kernel: k_memory_manager: Clear pages on allocation & free.
- Heap pages should be zero'd.
- Also explicitly passed along heap allocation option.
4 years ago
bunnei
f499c8177e
core: hle: kernel: KThread: Integrate with KWorkerTask and implement DoWorkerTaskImpl.
- This is used to terminate a thread asynchronously after it has been exited.
- This fixes a crash that can occur in Pokemon Sword/Shield because a thread is incorrectly closed on svcExitThread, then, the thread is destroyed on svcCloseHandle while it is still scheduled.
- Instead, we now wait for the thread to no longer be scheduled on all cores before destroying it from KWorkerTaskManager, which is accurate to HOS behavior.
4 years ago
bunnei
d8b3f665db
core: hle: kernel: KProcess: Integrate with KWorkerTask and add unimplemented DoWorkerTaskImpl.
4 years ago
bunnei
03884b7ea6
core: hle: kernel: KThread: Replace Suspend with UpdateState & various updates.
- This makes our implementations of these more closely match HOS.
4 years ago
bunnei
c905044e1b
core: hle: kernel: Instantiate a kernel instance of KWorkerTaskManager.
4 years ago
bunnei
bf32fcc817
core: hle: kernel: Add KWorkerTask and KWorkerTaskManager.
- These primitives are used to dispatch asynchronous kernel tasks from KThread and KProcess.
4 years ago
bunnei
cc112f971e
hle: kernel: Fix service_threads access to be thread safe V2.
- PR #7699 attempted to fix CreateServiceThread and ReleaseServiceThread to be thread safe, but inadvertently introduced a possible dead-lock.
- With this PR, we use a worker thread to manage the service thread list, allowing it only to be accessed by a single thread, and guaranteeing threads will not destroy themselves.
- Fixes a rare crash in Pokemon Sword/Shield, I've now run this game for ~12 hours non-stop and am quite confident this is a good solution for this issue.
4 years ago
bunnei
2147240e47
hle: kernel: Fix service_threads access to be thread safe.
- CreateServiceThread and ReleaseServiceThread can be accessed by different threads, uses a lock to make this thread safe.
- Fixes a rare crash in Pokemon Sword/Shield that can occur when a new service thread is being created while an old one is being destroyed.
4 years ago
Narr the Reg
8185509683
service/hid: Decrease motion update rate
Motion stops working in Mario Tennis in swing mode if the update rate is too fast even when HW it updates at the same speed. 10ms it's the minimum period that the game needs to start working again.
4 years ago
bunnei
49a0e4330e
hle: kernel: k_page_table: Update SetProcessMemoryPermission.
4 years ago
bunnei
6ac44f3bdc
hle: service: ldr: UnmapCodeMemory BSS only when set.
4 years ago
bunnei
6123b6ea45
hle: kernel: k_page_table: ReadAndWrite -> UserReadWrite.
4 years ago
bunnei
081669c334
hle: kernel: k_page_table: Rename *ProcessCodeMemory -> *CodeMemory.
4 years ago
bunnei
af4696657c
core: hle: kernel: svc: Updates to SetMemoryAttribute and SetMemoryPermission.
4 years ago
bunnei
b9a313057e
core: hle: kernel: k_page_table: Update CheckMemoryState.
4 years ago
ameerj
7652543231
Revert "Merge pull request #7668 from ameerj/fence-stop-token"
This reverts commit e773354477 , reversing
changes made to abbbdc2bc0 .
4 years ago
ameerj
d866916f42
gpu: Use std::stop_token in WaitFence for VSync thread
Fixes a hang that may occur when stopping emulation and the VSync thread is blocked on the syncpoint condition variable.
4 years ago
bunnei
3a89723d97
core: hle: kernel: Implement thread pinning.
- We largely had the mechanics in place for thread pinning, this change hooks these up.
- Validated with tests https://github.com/Atmosphere-NX/Atmosphere/blob/master/tests/TestSvc/source/test_thread_pinning.cpp .
4 years ago
Feng Chen
1eec9590c3
Remove invalid assertion statement
4 years ago
Feng Chen
88e1e7f14b
Implement few type in bufferqueue query method
4 years ago
bunnei
091463a429
core: hle: kernel: Updated implementation of svcSetHeapSize.
- Updates our svcSetHeapSize with latest HOS, furthermore allowing heap size to properly be extended/shrunk.
- Validated with tests https://github.com/Atmosphere-NX/Atmosphere/blob/master/tests/TestSvc/source/test_set_heap_size.cpp .
4 years ago
bunnei
4e7a6639d2
core: hle: kernel: Implement SetMemoryPermission.
- Not seen in any games yet, but validated with kernel tests.
4 years ago
bunnei
a0c7d93b84
core: hle: kernel: KThread: X18 should be a cryptographically random number.
- This was added with firmware 11.0.0 (https://switchbrew.org/wiki/11.0.0 ).
- X18 is OR'd by kernel with 1, to make sure it is odd.
4 years ago
bunnei
49e3c073a5
hle: kernel: svc: GetInfo: Fix error checking with IdleTickCount.
- Enforce tha the supplied handle is invalid, not valid.
- This gets Witcher 3 booting.
4 years ago
ameerj
55650c5b75
kernel: Manually destroy the current process during shut down
Avoids a memory leak.
4 years ago
bunnei
c73841500a
core: hle: Remove global HLE lock.
- This was added early on as a hack to protect against some concurrency issues.
- It's not clear that this serves any purpose anymore, and if it does, individual components should be fixed rather than using a global recursive mutex.
4 years ago
Narr the Reg
c82e6dc810
core/hid: Cancel any vibration after the test
4 years ago
Valeri
04301e1a8a
Remove erroneous #pragma once
4 years ago
Narr the Reg
316f80af87
service/hid: Improve console motion accuracy
4 years ago