early-access version 2712
This commit is contained in:
parent
0fb3af99e2
commit
275d4e210f
7 changed files with 52 additions and 11 deletions
|
@ -1,7 +1,7 @@
|
||||||
yuzu emulator early access
|
yuzu emulator early access
|
||||||
=============
|
=============
|
||||||
|
|
||||||
This is the source code for early-access 2711.
|
This is the source code for early-access 2712.
|
||||||
|
|
||||||
## Legal Notice
|
## Legal Notice
|
||||||
|
|
||||||
|
|
|
@ -327,7 +327,7 @@ void SanitizeStick(Common::Input::AnalogStatus& analog_x, Common::Input::AnalogS
|
||||||
raw_y += properties_y.offset;
|
raw_y += properties_y.offset;
|
||||||
|
|
||||||
// Apply X scale correction from offset
|
// Apply X scale correction from offset
|
||||||
if (std::abs(properties_x.offset) < 0.5f) {
|
if (std::abs(properties_x.offset) < 0.75f) {
|
||||||
if (raw_x > 0) {
|
if (raw_x > 0) {
|
||||||
raw_x /= 1 + properties_x.offset;
|
raw_x /= 1 + properties_x.offset;
|
||||||
} else {
|
} else {
|
||||||
|
@ -336,7 +336,7 @@ void SanitizeStick(Common::Input::AnalogStatus& analog_x, Common::Input::AnalogS
|
||||||
}
|
}
|
||||||
|
|
||||||
// Apply Y scale correction from offset
|
// Apply Y scale correction from offset
|
||||||
if (std::abs(properties_y.offset) < 0.5f) {
|
if (std::abs(properties_y.offset) < 0.75f) {
|
||||||
if (raw_y > 0) {
|
if (raw_y > 0) {
|
||||||
raw_y /= 1 + properties_y.offset;
|
raw_y /= 1 + properties_y.offset;
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -357,7 +357,7 @@ Hid::Hid(Core::System& system_)
|
||||||
{1000, &Hid::SetNpadCommunicationMode, "SetNpadCommunicationMode"},
|
{1000, &Hid::SetNpadCommunicationMode, "SetNpadCommunicationMode"},
|
||||||
{1001, &Hid::GetNpadCommunicationMode, "GetNpadCommunicationMode"},
|
{1001, &Hid::GetNpadCommunicationMode, "GetNpadCommunicationMode"},
|
||||||
{1002, &Hid::SetTouchScreenConfiguration, "SetTouchScreenConfiguration"},
|
{1002, &Hid::SetTouchScreenConfiguration, "SetTouchScreenConfiguration"},
|
||||||
{1003, nullptr, "IsFirmwareUpdateNeededForNotification"},
|
{1003, &Hid::IsFirmwareUpdateNeededForNotification, "IsFirmwareUpdateNeededForNotification"},
|
||||||
{2000, nullptr, "ActivateDigitizer"},
|
{2000, nullptr, "ActivateDigitizer"},
|
||||||
};
|
};
|
||||||
// clang-format on
|
// clang-format on
|
||||||
|
@ -1798,6 +1798,25 @@ void Hid::SetTouchScreenConfiguration(Kernel::HLERequestContext& ctx) {
|
||||||
rb.Push(ResultSuccess);
|
rb.Push(ResultSuccess);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void Hid::IsFirmwareUpdateNeededForNotification(Kernel::HLERequestContext& ctx) {
|
||||||
|
IPC::RequestParser rp{ctx};
|
||||||
|
struct Parameters {
|
||||||
|
s32 unknown;
|
||||||
|
INSERT_PADDING_WORDS_NOINIT(1);
|
||||||
|
u64 applet_resource_user_id;
|
||||||
|
};
|
||||||
|
static_assert(sizeof(Parameters) == 0x10, "Parameters has incorrect size.");
|
||||||
|
|
||||||
|
const auto parameters{rp.PopRaw<Parameters>()};
|
||||||
|
|
||||||
|
LOG_WARNING(Service_HID, "(STUBBED) called, unknown={}, applet_resource_user_id={}",
|
||||||
|
parameters.unknown, parameters.applet_resource_user_id);
|
||||||
|
|
||||||
|
IPC::ResponseBuilder rb{ctx, 3};
|
||||||
|
rb.Push(ResultSuccess);
|
||||||
|
rb.Push(false);
|
||||||
|
}
|
||||||
|
|
||||||
class HidDbg final : public ServiceFramework<HidDbg> {
|
class HidDbg final : public ServiceFramework<HidDbg> {
|
||||||
public:
|
public:
|
||||||
explicit HidDbg(Core::System& system_) : ServiceFramework{system_, "hid:dbg"} {
|
explicit HidDbg(Core::System& system_) : ServiceFramework{system_, "hid:dbg"} {
|
||||||
|
|
|
@ -166,6 +166,7 @@ private:
|
||||||
void SetNpadCommunicationMode(Kernel::HLERequestContext& ctx);
|
void SetNpadCommunicationMode(Kernel::HLERequestContext& ctx);
|
||||||
void GetNpadCommunicationMode(Kernel::HLERequestContext& ctx);
|
void GetNpadCommunicationMode(Kernel::HLERequestContext& ctx);
|
||||||
void SetTouchScreenConfiguration(Kernel::HLERequestContext& ctx);
|
void SetTouchScreenConfiguration(Kernel::HLERequestContext& ctx);
|
||||||
|
void IsFirmwareUpdateNeededForNotification(Kernel::HLERequestContext& ctx);
|
||||||
|
|
||||||
std::shared_ptr<IAppletResource> applet_resource;
|
std::shared_ptr<IAppletResource> applet_resource;
|
||||||
|
|
||||||
|
|
|
@ -732,7 +732,7 @@ std::unique_ptr<Common::Input::InputDevice> InputFactory::CreateHatButtonDevice(
|
||||||
std::unique_ptr<Common::Input::InputDevice> InputFactory::CreateStickDevice(
|
std::unique_ptr<Common::Input::InputDevice> InputFactory::CreateStickDevice(
|
||||||
const Common::ParamPackage& params) {
|
const Common::ParamPackage& params) {
|
||||||
const auto deadzone = std::clamp(params.Get("deadzone", 0.15f), 0.0f, 1.0f);
|
const auto deadzone = std::clamp(params.Get("deadzone", 0.15f), 0.0f, 1.0f);
|
||||||
const auto range = std::clamp(params.Get("range", 1.0f), 0.25f, 1.50f);
|
const auto range = std::clamp(params.Get("range", 0.95f), 0.25f, 1.50f);
|
||||||
const auto threshold = std::clamp(params.Get("threshold", 0.5f), 0.0f, 1.0f);
|
const auto threshold = std::clamp(params.Get("threshold", 0.5f), 0.0f, 1.0f);
|
||||||
const PadIdentifier identifier = {
|
const PadIdentifier identifier = {
|
||||||
.guid = Common::UUID{params.Get("guid", "")},
|
.guid = Common::UUID{params.Get("guid", "")},
|
||||||
|
|
|
@ -520,7 +520,28 @@ ConfigureInputPlayer::ConfigureInputPlayer(QWidget* parent, std::size_t player_i
|
||||||
QMenu context_menu;
|
QMenu context_menu;
|
||||||
Common::ParamPackage param = emulated_controller->GetStickParam(analog_id);
|
Common::ParamPackage param = emulated_controller->GetStickParam(analog_id);
|
||||||
context_menu.addAction(tr("Clear"), [&] {
|
context_menu.addAction(tr("Clear"), [&] {
|
||||||
|
if (param.Get("engine", "") != "analog_from_button") {
|
||||||
emulated_controller->SetStickParam(analog_id, {});
|
emulated_controller->SetStickParam(analog_id, {});
|
||||||
|
for (auto button : analog_map_buttons[analog_id]) {
|
||||||
|
button->setText(tr("[not set]"));
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
switch (sub_button_id) {
|
||||||
|
case 0:
|
||||||
|
param.Erase("up");
|
||||||
|
break;
|
||||||
|
case 1:
|
||||||
|
param.Erase("down");
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
param.Erase("left");
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
param.Erase("right");
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
emulated_controller->SetStickParam(analog_id, param);
|
||||||
analog_map_buttons[analog_id][sub_button_id]->setText(tr("[not set]"));
|
analog_map_buttons[analog_id][sub_button_id]->setText(tr("[not set]"));
|
||||||
});
|
});
|
||||||
context_menu.addAction(tr("Center axis"), [&] {
|
context_menu.addAction(tr("Center axis"), [&] {
|
||||||
|
@ -988,7 +1009,7 @@ void ConfigureInputPlayer::UpdateUI() {
|
||||||
slider_value = static_cast<int>(param.Get("deadzone", 0.15f) * 100);
|
slider_value = static_cast<int>(param.Get("deadzone", 0.15f) * 100);
|
||||||
deadzone_label->setText(tr("Deadzone: %1%").arg(slider_value));
|
deadzone_label->setText(tr("Deadzone: %1%").arg(slider_value));
|
||||||
deadzone_slider->setValue(slider_value);
|
deadzone_slider->setValue(slider_value);
|
||||||
range_spinbox->setValue(static_cast<int>(param.Get("range", 1.0f) * 100));
|
range_spinbox->setValue(static_cast<int>(param.Get("range", 0.95f) * 100));
|
||||||
} else {
|
} else {
|
||||||
slider_value = static_cast<int>(param.Get("modifier_scale", 0.5f) * 100);
|
slider_value = static_cast<int>(param.Get("modifier_scale", 0.5f) * 100);
|
||||||
modifier_label->setText(tr("Modifier Range: %1%").arg(slider_value));
|
modifier_label->setText(tr("Modifier Range: %1%").arg(slider_value));
|
||||||
|
|
|
@ -754,13 +754,13 @@
|
||||||
<string>%</string>
|
<string>%</string>
|
||||||
</property>
|
</property>
|
||||||
<property name="minimum">
|
<property name="minimum">
|
||||||
<number>50</number>
|
<number>25</number>
|
||||||
</property>
|
</property>
|
||||||
<property name="maximum">
|
<property name="maximum">
|
||||||
<number>150</number>
|
<number>150</number>
|
||||||
</property>
|
</property>
|
||||||
<property name="value">
|
<property name="value">
|
||||||
<number>100</number>
|
<number>95</number>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
|
@ -2985,13 +2985,13 @@
|
||||||
<string>%</string>
|
<string>%</string>
|
||||||
</property>
|
</property>
|
||||||
<property name="minimum">
|
<property name="minimum">
|
||||||
<number>50</number>
|
<number>25</number>
|
||||||
</property>
|
</property>
|
||||||
<property name="maximum">
|
<property name="maximum">
|
||||||
<number>150</number>
|
<number>150</number>
|
||||||
</property>
|
</property>
|
||||||
<property name="value">
|
<property name="value">
|
||||||
<number>100</number>
|
<number>95</number>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
|
|
Loading…
Reference in a new issue