6 changed files with 103 additions and 19 deletions
-
3src/core/CMakeLists.txt
-
21src/core/hle/service/ns/account_proxy_interface.cpp
-
16src/core/hle/service/ns/account_proxy_interface.h
-
14src/core/hle/service/ns/ns.cpp
-
6src/core/hle/service/ns/ns.h
-
62src/core/hle/service/ns/ns_types.h
@ -0,0 +1,21 @@ |
|||
// SPDX-FileCopyrightText: Copyright 2024 yuzu Emulator Project
|
|||
// SPDX-License-Identifier: GPL-2.0-or-later
|
|||
|
|||
#include "core/hle/service/ns/account_proxy_interface.h"
|
|||
|
|||
namespace Service::NS { |
|||
|
|||
IAccountProxyInterface::IAccountProxyInterface(Core::System& system_) |
|||
: ServiceFramework{system_, "IAccountProxyInterface"} { |
|||
// clang-format off
|
|||
static const FunctionInfo functions[] = { |
|||
{0, nullptr, "CreateUserAccount"}, |
|||
}; |
|||
// clang-format on
|
|||
|
|||
RegisterHandlers(functions); |
|||
} |
|||
|
|||
IAccountProxyInterface::~IAccountProxyInterface() = default; |
|||
|
|||
} // namespace Service::NS
|
|||
@ -0,0 +1,16 @@ |
|||
// SPDX-FileCopyrightText: Copyright 2024 yuzu Emulator Project |
|||
// SPDX-License-Identifier: GPL-2.0-or-later |
|||
|
|||
#pragma once |
|||
|
|||
#include "core/hle/service/service.h" |
|||
|
|||
namespace Service::NS { |
|||
|
|||
class IAccountProxyInterface final : public ServiceFramework<IAccountProxyInterface> { |
|||
public: |
|||
explicit IAccountProxyInterface(Core::System& system_); |
|||
~IAccountProxyInterface() override; |
|||
}; |
|||
|
|||
} // namespace Service::NS |
|||
@ -0,0 +1,62 @@ |
|||
// SPDX-FileCopyrightText: Copyright 2018 yuzu Emulator Project |
|||
// SPDX-License-Identifier: GPL-2.0-or-later |
|||
|
|||
#pragma once |
|||
|
|||
#include "common/common_funcs.h" |
|||
|
|||
namespace Service::NS { |
|||
|
|||
enum class ApplicationRecordType : u8 { |
|||
Installing = 2, |
|||
Installed = 3, |
|||
GameCardNotInserted = 5, |
|||
Archived = 0xB, |
|||
GameCard = 0x10, |
|||
}; |
|||
|
|||
struct ApplicationRecord { |
|||
u64 application_id; |
|||
ApplicationRecordType type; |
|||
u8 unknown; |
|||
INSERT_PADDING_BYTES_NOINIT(0x6); |
|||
u8 unknown2; |
|||
INSERT_PADDING_BYTES_NOINIT(0x7); |
|||
}; |
|||
static_assert(sizeof(ApplicationRecord) == 0x18, "ApplicationRecord is an invalid size"); |
|||
|
|||
/// ApplicationView |
|||
struct ApplicationView { |
|||
u64 application_id; ///< ApplicationId. |
|||
u32 unk; ///< Unknown. |
|||
u32 flags; ///< Flags. |
|||
u8 unk_x10[0x10]; ///< Unknown. |
|||
u32 unk_x20; ///< Unknown. |
|||
u16 unk_x24; ///< Unknown. |
|||
u8 unk_x26[0x2]; ///< Unknown. |
|||
u8 unk_x28[0x8]; ///< Unknown. |
|||
u8 unk_x30[0x10]; ///< Unknown. |
|||
u32 unk_x40; ///< Unknown. |
|||
u8 unk_x44; ///< Unknown. |
|||
u8 unk_x45[0xb]; ///< Unknown. |
|||
}; |
|||
|
|||
/// NsPromotionInfo |
|||
struct PromotionInfo { |
|||
u64 start_timestamp; ///< POSIX timestamp for the promotion start. |
|||
u64 end_timestamp; ///< POSIX timestamp for the promotion end. |
|||
s64 remaining_time; ///< Remaining time until the promotion ends, in nanoseconds |
|||
///< ({end_timestamp - current_time} converted to nanoseconds). |
|||
INSERT_PADDING_BYTES_NOINIT(0x4); |
|||
u8 flags; ///< Flags. Bit0: whether the PromotionInfo is valid (including bit1). Bit1 clear: |
|||
///< remaining_time is set. |
|||
INSERT_PADDING_BYTES_NOINIT(0x3); |
|||
}; |
|||
|
|||
/// NsApplicationViewWithPromotionInfo |
|||
struct ApplicationViewWithPromotionInfo { |
|||
ApplicationView view; ///< \ref NsApplicationView |
|||
PromotionInfo promotion; ///< \ref NsPromotionInfo |
|||
}; |
|||
|
|||
} // namespace Service::NS |
|||
Write
Preview
Loading…
Cancel
Save
Reference in new issue