early-access version 2379
This commit is contained in:
parent
a743706731
commit
fe3a5ed642
8 changed files with 52 additions and 21 deletions
|
@ -1,7 +1,7 @@
|
||||||
yuzu emulator early access
|
yuzu emulator early access
|
||||||
=============
|
=============
|
||||||
|
|
||||||
This is the source code for early-access 2378.
|
This is the source code for early-access 2379.
|
||||||
|
|
||||||
## Legal Notice
|
## Legal Notice
|
||||||
|
|
||||||
|
|
|
@ -402,7 +402,8 @@ std::vector<Common::ParamPackage> EmulatedController::GetMappedDevices(
|
||||||
devices.begin(), devices.end(), [param](const Common::ParamPackage param_) {
|
devices.begin(), devices.end(), [param](const Common::ParamPackage param_) {
|
||||||
return param.Get("engine", "") == param_.Get("engine", "") &&
|
return param.Get("engine", "") == param_.Get("engine", "") &&
|
||||||
param.Get("guid", "") == param_.Get("guid", "") &&
|
param.Get("guid", "") == param_.Get("guid", "") &&
|
||||||
param.Get("port", 0) == param_.Get("port", 0);
|
param.Get("port", 0) == param_.Get("port", 0) &&
|
||||||
|
param.Get("pad", 0) == param_.Get("pad", 0);
|
||||||
});
|
});
|
||||||
if (devices_it != devices.end()) {
|
if (devices_it != devices.end()) {
|
||||||
continue;
|
continue;
|
||||||
|
@ -411,6 +412,7 @@ std::vector<Common::ParamPackage> EmulatedController::GetMappedDevices(
|
||||||
device.Set("engine", param.Get("engine", ""));
|
device.Set("engine", param.Get("engine", ""));
|
||||||
device.Set("guid", param.Get("guid", ""));
|
device.Set("guid", param.Get("guid", ""));
|
||||||
device.Set("port", param.Get("port", 0));
|
device.Set("port", param.Get("port", 0));
|
||||||
|
device.Set("pad", param.Get("pad", 0));
|
||||||
devices.push_back(device);
|
devices.push_back(device);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -425,7 +427,8 @@ std::vector<Common::ParamPackage> EmulatedController::GetMappedDevices(
|
||||||
devices.begin(), devices.end(), [param](const Common::ParamPackage param_) {
|
devices.begin(), devices.end(), [param](const Common::ParamPackage param_) {
|
||||||
return param.Get("engine", "") == param_.Get("engine", "") &&
|
return param.Get("engine", "") == param_.Get("engine", "") &&
|
||||||
param.Get("guid", "") == param_.Get("guid", "") &&
|
param.Get("guid", "") == param_.Get("guid", "") &&
|
||||||
param.Get("port", 0) == param_.Get("port", 0);
|
param.Get("port", 0) == param_.Get("port", 0) &&
|
||||||
|
param.Get("pad", 0) == param_.Get("pad", 0);
|
||||||
});
|
});
|
||||||
if (devices_it != devices.end()) {
|
if (devices_it != devices.end()) {
|
||||||
continue;
|
continue;
|
||||||
|
@ -434,6 +437,7 @@ std::vector<Common::ParamPackage> EmulatedController::GetMappedDevices(
|
||||||
device.Set("engine", param.Get("engine", ""));
|
device.Set("engine", param.Get("engine", ""));
|
||||||
device.Set("guid", param.Get("guid", ""));
|
device.Set("guid", param.Get("guid", ""));
|
||||||
device.Set("port", param.Get("port", 0));
|
device.Set("port", param.Get("port", 0));
|
||||||
|
device.Set("pad", param.Get("pad", 0));
|
||||||
devices.push_back(device);
|
devices.push_back(device);
|
||||||
}
|
}
|
||||||
return devices;
|
return devices;
|
||||||
|
|
|
@ -10,6 +10,7 @@ namespace Core::HID {
|
||||||
MotionInput::MotionInput() {
|
MotionInput::MotionInput() {
|
||||||
// Initialize PID constants with default values
|
// Initialize PID constants with default values
|
||||||
SetPID(0.3f, 0.005f, 0.0f);
|
SetPID(0.3f, 0.005f, 0.0f);
|
||||||
|
SetGyroThreshold(0.001f);
|
||||||
}
|
}
|
||||||
|
|
||||||
void MotionInput::SetPID(f32 new_kp, f32 new_ki, f32 new_kd) {
|
void MotionInput::SetPID(f32 new_kp, f32 new_ki, f32 new_kd) {
|
||||||
|
|
|
@ -442,14 +442,22 @@ MotionMapping UDPClient::GetMotionMappingForDevice(const Common::ParamPackage& p
|
||||||
}
|
}
|
||||||
|
|
||||||
MotionMapping mapping = {};
|
MotionMapping mapping = {};
|
||||||
Common::ParamPackage motion_params;
|
Common::ParamPackage left_motion_params;
|
||||||
motion_params.Set("engine", GetEngineName());
|
left_motion_params.Set("engine", GetEngineName());
|
||||||
motion_params.Set("guid", params.Get("guid", ""));
|
left_motion_params.Set("guid", params.Get("guid", ""));
|
||||||
motion_params.Set("port", params.Get("port", 0));
|
left_motion_params.Set("port", params.Get("port", 0));
|
||||||
motion_params.Set("pad", params.Get("pad", 0));
|
left_motion_params.Set("pad", params.Get("pad", 0));
|
||||||
motion_params.Set("motion", 0);
|
left_motion_params.Set("motion", 0);
|
||||||
mapping.insert_or_assign(Settings::NativeMotion::MotionLeft, std::move(motion_params));
|
|
||||||
mapping.insert_or_assign(Settings::NativeMotion::MotionRight, std::move(motion_params));
|
Common::ParamPackage right_motion_params;
|
||||||
|
right_motion_params.Set("engine", GetEngineName());
|
||||||
|
right_motion_params.Set("guid", params.Get("guid", ""));
|
||||||
|
right_motion_params.Set("port", params.Get("port", 0));
|
||||||
|
right_motion_params.Set("pad", params.Get("pad", 0));
|
||||||
|
right_motion_params.Set("motion", 0);
|
||||||
|
|
||||||
|
mapping.insert_or_assign(Settings::NativeMotion::MotionLeft, std::move(left_motion_params));
|
||||||
|
mapping.insert_or_assign(Settings::NativeMotion::MotionRight, std::move(right_motion_params));
|
||||||
return mapping;
|
return mapping;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -298,8 +298,16 @@ void InputEngine::TriggerOnMotionChange(const PadIdentifier& identifier, int mot
|
||||||
if (!configuring || !mapping_callback.on_data) {
|
if (!configuring || !mapping_callback.on_data) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (std::abs(value.gyro_x) < 0.6f && std::abs(value.gyro_y) < 0.6f &&
|
bool is_active = false;
|
||||||
std::abs(value.gyro_z) < 0.6f) {
|
if (std::abs(value.accel_x) > 1.5f || std::abs(value.accel_y) > 1.5f ||
|
||||||
|
std::abs(value.accel_z) > 1.5f) {
|
||||||
|
is_active = true;
|
||||||
|
}
|
||||||
|
if (std::abs(value.gyro_x) > 0.6f || std::abs(value.gyro_y) > 0.6f ||
|
||||||
|
std::abs(value.gyro_z) > 0.6f) {
|
||||||
|
is_active = true;
|
||||||
|
}
|
||||||
|
if (!is_active) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
mapping_callback.on_data(MappingData{
|
mapping_callback.on_data(MappingData{
|
||||||
|
|
|
@ -747,15 +747,16 @@ void ConfigureInputPlayer::UpdateInputDeviceCombobox() {
|
||||||
const auto first_engine = devices[0].Get("engine", "");
|
const auto first_engine = devices[0].Get("engine", "");
|
||||||
const auto first_guid = devices[0].Get("guid", "");
|
const auto first_guid = devices[0].Get("guid", "");
|
||||||
const auto first_port = devices[0].Get("port", 0);
|
const auto first_port = devices[0].Get("port", 0);
|
||||||
|
const auto first_pad = devices[0].Get("pad", 0);
|
||||||
|
|
||||||
if (devices.size() == 1) {
|
if (devices.size() == 1) {
|
||||||
const auto devices_it =
|
const auto devices_it = std::find_if(
|
||||||
std::find_if(input_devices.begin(), input_devices.end(),
|
input_devices.begin(), input_devices.end(),
|
||||||
[first_engine, first_guid, first_port](const Common::ParamPackage param) {
|
[first_engine, first_guid, first_port, first_pad](const Common::ParamPackage param) {
|
||||||
return param.Get("engine", "") == first_engine &&
|
return param.Get("engine", "") == first_engine &&
|
||||||
param.Get("guid", "") == first_guid &&
|
param.Get("guid", "") == first_guid && param.Get("port", 0) == first_port &&
|
||||||
param.Get("port", 0) == first_port;
|
param.Get("pad", 0) == first_pad;
|
||||||
});
|
});
|
||||||
const int device_index =
|
const int device_index =
|
||||||
devices_it != input_devices.end()
|
devices_it != input_devices.end()
|
||||||
? static_cast<int>(std::distance(input_devices.begin(), devices_it))
|
? static_cast<int>(std::distance(input_devices.begin(), devices_it))
|
||||||
|
|
|
@ -206,7 +206,6 @@ void ControllerShortcut::ControllerUpdateEvent(Core::HID::ControllerTriggerType
|
||||||
player_capture_buttons == button_sequence.capture.raw &&
|
player_capture_buttons == button_sequence.capture.raw &&
|
||||||
player_home_buttons == button_sequence.home.raw && !active) {
|
player_home_buttons == button_sequence.home.raw && !active) {
|
||||||
// Force user to press the home or capture button again
|
// Force user to press the home or capture button again
|
||||||
emulated_controller->ResetSystemButtons();
|
|
||||||
active = true;
|
active = true;
|
||||||
emit Activated();
|
emit Activated();
|
||||||
return;
|
return;
|
||||||
|
|
|
@ -2825,6 +2825,11 @@ void GMainWindow::OnTasStartStop() {
|
||||||
if (!emulation_running) {
|
if (!emulation_running) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Disable system buttons to prevent TAS from executing a hotkey
|
||||||
|
auto* controller = system->HIDCore().GetEmulatedController(Core::HID::NpadIdType::Player1);
|
||||||
|
controller->ResetSystemButtons();
|
||||||
|
|
||||||
input_subsystem->GetTas()->StartStop();
|
input_subsystem->GetTas()->StartStop();
|
||||||
OnTasStateChanged();
|
OnTasStateChanged();
|
||||||
}
|
}
|
||||||
|
@ -2836,6 +2841,11 @@ void GMainWindow::OnTasRecord() {
|
||||||
if (is_tas_recording_dialog_active) {
|
if (is_tas_recording_dialog_active) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Disable system buttons to prevent TAS from recording a hotkey
|
||||||
|
auto* controller = system->HIDCore().GetEmulatedController(Core::HID::NpadIdType::Player1);
|
||||||
|
controller->ResetSystemButtons();
|
||||||
|
|
||||||
const bool is_recording = input_subsystem->GetTas()->Record();
|
const bool is_recording = input_subsystem->GetTas()->Record();
|
||||||
if (!is_recording) {
|
if (!is_recording) {
|
||||||
is_tas_recording_dialog_active = true;
|
is_tas_recording_dialog_active = true;
|
||||||
|
|
Loading…
Reference in a new issue