Browse Source

[hle] attempt support ULaunch

Signed-off-by: lizzie <lizzie@eden-emu.dev>
lizzie/ulaunch-attempt1
lizzie 12 hours ago
parent
commit
0be395a94e
  1. 2
      src/core/CMakeLists.txt
  2. 39
      src/core/hle/service/ulsf/ulsf.cpp
  3. 28
      src/core/hle/service/ulsf/ulsf.h

2
src/core/CMakeLists.txt

@ -1089,6 +1089,8 @@ add_library(core STATIC
hle/service/ssl/ssl.h
hle/service/ssl/ssl_backend.h
hle/service/ssl/ssl_types.h
hle/service/ulsf/ulsf.cpp
hle/service/ulsf/ulsf.h
hle/service/usb/usb.cpp
hle/service/usb/usb.h
hle/service/vi/application_display_service.cpp

39
src/core/hle/service/ulsf/ulsf.cpp

@ -0,0 +1,39 @@
// SPDX-FileCopyrightText: Copyright 2026 Eden Emulator Project
// SPDX-License-Identifier: GPL-3.0-or-later
#include <memory>
#include "core/hle/service/ipc_helpers.h"
#include "core/hle/service/ulsf/ulsf.h"
#include "core/hle/service/server_manager.h"
namespace Service::ULSF {
ULSF_U::ULSF_U(Core::System& system_) : ServiceFramework{system_, "ulsf:u"} {
static const FunctionInfo functions[] = {
{0, &ULSF_U::GetVersion, "GetVersion"},
};
RegisterHandlers(functions);
}
ULSF_U::~ULSF_U() = default;
// Result ULSF_U::GetVersion(Out<ULauncherVersion> out_version) {
// LOG_WARNING(Service_SM, "(stubbed)");
// *out_version = {};
// R_SUCCEED();
// }
void ULSF_U::GetVersion(HLERequestContext& ctx) {
LOG_WARNING(Service_SM, "(stubbed)");
ULauncherVersion version{1, 6, 7};
IPC::ResponseBuilder rb{ctx, 2};
rb.Push(ResultSuccess);
rb.PushRaw(version);
}
void LoopProcess(Core::System& system) {
auto server_manager = std::make_unique<ServerManager>(system);
server_manager->RegisterNamedService("ulsf:u", std::make_shared<ULSF_U>(system));
ServerManager::RunServer(std::move(server_manager));
}
}

28
src/core/hle/service/ulsf/ulsf.h

@ -0,0 +1,28 @@
// SPDX-FileCopyrightText: Copyright 2026 Eden Emulator Project
// SPDX-License-Identifier: GPL-3.0-or-later
#pragma once
#include "common/common_types.h"
#include "core/hle/service/cmif_types.h"
#include "core/hle/service/service.h"
namespace Service::ULSF {
struct ULauncherVersion {
u8 major;
u8 minor;
u8 micro;
};
class ULSF_U final : public ServiceFramework<ULSF_U> {
public:
explicit ULSF_U(Core::System& system_);
~ULSF_U();
//Result GetVersion(Out<ULauncherVersion> out_version);
void GetVersion(HLERequestContext& ctx);
};
void LoopProcess(Core::System& system);
}
Loading…
Cancel
Save