[hle/service{nvdrv,apm}] fixes for TetrisSwitch (#3983)

- testriswitch submits buffers with a fence id of -1, just skip them instead of trying to process them?
- apm:u, which is removed, but hey, backwards compat never hurted
- another instance of shared_memory crashing NPad

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

Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/3983
Reviewed-by: MaranBr <maranbr@eden-emu.dev>
Reviewed-by: CamilleLaVey <camillelavey99@gmail.com>
This commit is contained in:
lizzie
2026-05-24 01:04:32 +02:00
committed by crueter
parent 90164197dc
commit 2aa2ac7d9a
5 changed files with 37 additions and 29 deletions
+8 -6
View File
@@ -1,3 +1,6 @@
// SPDX-FileCopyrightText: Copyright 2026 Eden Emulator Project
// SPDX-License-Identifier: GPL-3.0-or-later
// SPDX-FileCopyrightText: Copyright 2018 yuzu Emulator Project
// SPDX-License-Identifier: GPL-2.0-or-later
@@ -15,12 +18,11 @@ void LoopProcess(Core::System& system) {
auto module = std::make_shared<Module>();
auto server_manager = std::make_unique<ServerManager>(system);
server_manager->RegisterNamedService(
"apm", std::make_shared<APM>(system, module, system.GetAPMController(), "apm"));
server_manager->RegisterNamedService(
"apm:am", std::make_shared<APM>(system, module, system.GetAPMController(), "apm:am"));
server_manager->RegisterNamedService(
"apm:sys", std::make_shared<APM_Sys>(system, system.GetAPMController()));
server_manager->RegisterNamedService("apm", std::make_shared<APM>(system, module, system.GetAPMController(), "apm"));
server_manager->RegisterNamedService("apm:am", std::make_shared<APM>(system, module, system.GetAPMController(), "apm:am"));
// Removed on [+8.0.0] but kept for compatibility
server_manager->RegisterNamedService("apm:p", std::make_shared<APM>(system, module, system.GetAPMController(), "apm:p"));
server_manager->RegisterNamedService("apm:sys", std::make_shared<APM_Sys>(system, system.GetAPMController()));
ServerManager::RunServer(std::move(server_manager));
}