early-access version 1615
This commit is contained in:
parent
68c7a73ce2
commit
242b6f6b49
@ -1,7 +1,7 @@
|
|||||||
yuzu emulator early access
|
yuzu emulator early access
|
||||||
=============
|
=============
|
||||||
|
|
||||||
This is the source code for early-access 1612.
|
This is the source code for early-access 1615.
|
||||||
|
|
||||||
## Legal Notice
|
## Legal Notice
|
||||||
|
|
||||||
|
@ -157,9 +157,9 @@ class IRegistrar final : public ServiceFramework<IRegistrar> {
|
|||||||
friend class ARP_W;
|
friend class ARP_W;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
explicit IRegistrar(
|
using IssuerFn = std::function<ResultCode(u64, ApplicationLaunchProperty, std::vector<u8>)>;
|
||||||
Core::System& system_,
|
|
||||||
std::function<ResultCode(u64, ApplicationLaunchProperty, std::vector<u8>)> issuer)
|
explicit IRegistrar(Core::System& system_, IssuerFn&& issuer)
|
||||||
: ServiceFramework{system_, "IRegistrar"}, issue_process_id{std::move(issuer)} {
|
: ServiceFramework{system_, "IRegistrar"}, issue_process_id{std::move(issuer)} {
|
||||||
// clang-format off
|
// clang-format off
|
||||||
static const FunctionInfo functions[] = {
|
static const FunctionInfo functions[] = {
|
||||||
@ -238,9 +238,9 @@ private:
|
|||||||
rb.Push(RESULT_SUCCESS);
|
rb.Push(RESULT_SUCCESS);
|
||||||
}
|
}
|
||||||
|
|
||||||
std::function<ResultCode(u64, ApplicationLaunchProperty, std::vector<u8>)> issue_process_id;
|
IssuerFn issue_process_id;
|
||||||
bool issued = false;
|
bool issued = false;
|
||||||
ApplicationLaunchProperty launch;
|
ApplicationLaunchProperty launch{};
|
||||||
std::vector<u8> control;
|
std::vector<u8> control;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -147,7 +147,7 @@ bool Controller_NPad::IsDeviceHandleValid(const DeviceHandle& device_handle) {
|
|||||||
device_handle.device_index < DeviceIndex::MaxDeviceIndex;
|
device_handle.device_index < DeviceIndex::MaxDeviceIndex;
|
||||||
}
|
}
|
||||||
|
|
||||||
Controller_NPad::Controller_NPad(Core::System& system) : ControllerBase(system), system(system) {
|
Controller_NPad::Controller_NPad(Core::System& system) : ControllerBase(system) {
|
||||||
latest_vibration_values.fill({DEFAULT_VIBRATION_VALUE, DEFAULT_VIBRATION_VALUE});
|
latest_vibration_values.fill({DEFAULT_VIBRATION_VALUE, DEFAULT_VIBRATION_VALUE});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -587,6 +587,5 @@ private:
|
|||||||
std::array<ControllerPad, 10> npad_pad_states{};
|
std::array<ControllerPad, 10> npad_pad_states{};
|
||||||
std::array<TriggerState, 10> npad_trigger_states{};
|
std::array<TriggerState, 10> npad_trigger_states{};
|
||||||
bool is_in_lr_assignment_mode{false};
|
bool is_in_lr_assignment_mode{false};
|
||||||
Core::System& system;
|
|
||||||
};
|
};
|
||||||
} // namespace Service::HID
|
} // namespace Service::HID
|
||||||
|
@ -104,9 +104,10 @@ void GetKeyCodeMapImpl(Kernel::HLERequestContext& ctx) {
|
|||||||
layout = key_code->second;
|
layout = key_code->second;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ctx.WriteBuffer(layout);
|
||||||
|
|
||||||
IPC::ResponseBuilder rb{ctx, 2};
|
IPC::ResponseBuilder rb{ctx, 2};
|
||||||
rb.Push(RESULT_SUCCESS);
|
rb.Push(RESULT_SUCCESS);
|
||||||
ctx.WriteBuffer(layout);
|
|
||||||
}
|
}
|
||||||
} // Anonymous namespace
|
} // Anonymous namespace
|
||||||
|
|
||||||
|
@ -294,16 +294,17 @@ void Module::Interface::GetClockSnapshot(Kernel::HLERequestContext& ctx) {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ctx.WriteBuffer(clock_snapshot);
|
||||||
|
|
||||||
IPC::ResponseBuilder rb{ctx, 2};
|
IPC::ResponseBuilder rb{ctx, 2};
|
||||||
rb.Push(RESULT_SUCCESS);
|
rb.Push(RESULT_SUCCESS);
|
||||||
ctx.WriteBuffer(clock_snapshot);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void Module::Interface::GetClockSnapshotFromSystemClockContext(Kernel::HLERequestContext& ctx) {
|
void Module::Interface::GetClockSnapshotFromSystemClockContext(Kernel::HLERequestContext& ctx) {
|
||||||
IPC::RequestParser rp{ctx};
|
IPC::RequestParser rp{ctx};
|
||||||
const auto type{rp.PopEnum<Clock::TimeType>()};
|
const auto type{rp.PopEnum<Clock::TimeType>()};
|
||||||
|
|
||||||
rp.AlignWithPadding();
|
rp.Skip(1, false);
|
||||||
|
|
||||||
const Clock::SystemClockContext user_context{rp.PopRaw<Clock::SystemClockContext>()};
|
const Clock::SystemClockContext user_context{rp.PopRaw<Clock::SystemClockContext>()};
|
||||||
const Clock::SystemClockContext network_context{rp.PopRaw<Clock::SystemClockContext>()};
|
const Clock::SystemClockContext network_context{rp.PopRaw<Clock::SystemClockContext>()};
|
||||||
@ -319,9 +320,10 @@ void Module::Interface::GetClockSnapshotFromSystemClockContext(Kernel::HLEReques
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ctx.WriteBuffer(clock_snapshot);
|
||||||
|
|
||||||
IPC::ResponseBuilder rb{ctx, 2};
|
IPC::ResponseBuilder rb{ctx, 2};
|
||||||
rb.Push(RESULT_SUCCESS);
|
rb.Push(RESULT_SUCCESS);
|
||||||
ctx.WriteBuffer(clock_snapshot);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void Module::Interface::CalculateStandardUserSystemClockDifferenceByUser(
|
void Module::Interface::CalculateStandardUserSystemClockDifferenceByUser(
|
||||||
|
@ -140,11 +140,12 @@ void ITimeZoneService::ToPosixTime(Kernel::HLERequestContext& ctx) {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ctx.WriteBuffer(posix_time);
|
||||||
|
|
||||||
// TODO(bunnei): Handle multiple times
|
// TODO(bunnei): Handle multiple times
|
||||||
IPC::ResponseBuilder rb{ctx, 3};
|
IPC::ResponseBuilder rb{ctx, 3};
|
||||||
rb.Push(RESULT_SUCCESS);
|
rb.Push(RESULT_SUCCESS);
|
||||||
rb.PushRaw<u32>(1); // Number of times we're returning
|
rb.PushRaw<u32>(1); // Number of times we're returning
|
||||||
ctx.WriteBuffer(posix_time);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void ITimeZoneService::ToPosixTimeWithMyRule(Kernel::HLERequestContext& ctx) {
|
void ITimeZoneService::ToPosixTimeWithMyRule(Kernel::HLERequestContext& ctx) {
|
||||||
@ -163,10 +164,11 @@ void ITimeZoneService::ToPosixTimeWithMyRule(Kernel::HLERequestContext& ctx) {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ctx.WriteBuffer(posix_time);
|
||||||
|
|
||||||
IPC::ResponseBuilder rb{ctx, 3};
|
IPC::ResponseBuilder rb{ctx, 3};
|
||||||
rb.Push(RESULT_SUCCESS);
|
rb.Push(RESULT_SUCCESS);
|
||||||
rb.PushRaw<u32>(1); // Number of times we're returning
|
rb.PushRaw<u32>(1); // Number of times we're returning
|
||||||
ctx.WriteBuffer(posix_time);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
} // namespace Service::Time
|
} // namespace Service::Time
|
||||||
|
@ -1129,9 +1129,11 @@ private:
|
|||||||
}
|
}
|
||||||
|
|
||||||
NativeWindow native_window{*buffer_queue_id};
|
NativeWindow native_window{*buffer_queue_id};
|
||||||
|
const auto buffer_size = ctx.WriteBuffer(native_window.Serialize());
|
||||||
|
|
||||||
IPC::ResponseBuilder rb{ctx, 4};
|
IPC::ResponseBuilder rb{ctx, 4};
|
||||||
rb.Push(RESULT_SUCCESS);
|
rb.Push(RESULT_SUCCESS);
|
||||||
rb.Push<u64>(ctx.WriteBuffer(native_window.Serialize()));
|
rb.Push<u64>(buffer_size);
|
||||||
}
|
}
|
||||||
|
|
||||||
void CloseLayer(Kernel::HLERequestContext& ctx) {
|
void CloseLayer(Kernel::HLERequestContext& ctx) {
|
||||||
@ -1173,10 +1175,12 @@ private:
|
|||||||
}
|
}
|
||||||
|
|
||||||
NativeWindow native_window{*buffer_queue_id};
|
NativeWindow native_window{*buffer_queue_id};
|
||||||
|
const auto buffer_size = ctx.WriteBuffer(native_window.Serialize());
|
||||||
|
|
||||||
IPC::ResponseBuilder rb{ctx, 6};
|
IPC::ResponseBuilder rb{ctx, 6};
|
||||||
rb.Push(RESULT_SUCCESS);
|
rb.Push(RESULT_SUCCESS);
|
||||||
rb.Push(*layer_id);
|
rb.Push(*layer_id);
|
||||||
rb.Push<u64>(ctx.WriteBuffer(native_window.Serialize()));
|
rb.Push<u64>(buffer_size);
|
||||||
}
|
}
|
||||||
|
|
||||||
void DestroyStrayLayer(Kernel::HLERequestContext& ctx) {
|
void DestroyStrayLayer(Kernel::HLERequestContext& ctx) {
|
||||||
|
Loading…
Reference in New Issue
Block a user