forked from eden-emu/eden
		
	TAS: Immediately switch stick to TAS on input
Co-Authored-By: Narr the Reg <5944268+german77@users.noreply.github.com>
This commit is contained in:
		
							parent
							
								
									d6d31f90b7
								
							
						
					
					
						commit
						ffc89d8b84
					
				
					 1 changed files with 11 additions and 9 deletions
				
			
		|  | @ -11,6 +11,11 @@ | |||
| namespace Core::HID { | ||||
| constexpr s32 HID_JOYSTICK_MAX = 0x7fff; | ||||
| constexpr s32 HID_TRIGGER_MAX = 0x7fff; | ||||
| // Use a common UUID for TAS and Virtual Gamepad
 | ||||
| constexpr Common::UUID TAS_UUID = | ||||
|     Common::UUID{{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7, 0xA5, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}}; | ||||
| constexpr Common::UUID VIRTUAL_UUID = | ||||
|     Common::UUID{{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7, 0xFF, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}}; | ||||
| 
 | ||||
| EmulatedController::EmulatedController(NpadIdType npad_id_type_) : npad_id_type(npad_id_type_) {} | ||||
| 
 | ||||
|  | @ -348,10 +353,6 @@ void EmulatedController::ReloadInput() { | |||
|         } | ||||
|     } | ||||
| 
 | ||||
|     // Use a common UUID for TAS
 | ||||
|     static constexpr Common::UUID TAS_UUID = Common::UUID{ | ||||
|         {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7, 0xA5, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}}; | ||||
| 
 | ||||
|     // Register TAS devices. No need to force update
 | ||||
|     for (std::size_t index = 0; index < tas_button_devices.size(); ++index) { | ||||
|         if (!tas_button_devices[index]) { | ||||
|  | @ -377,10 +378,6 @@ void EmulatedController::ReloadInput() { | |||
|         }); | ||||
|     } | ||||
| 
 | ||||
|     // Use a common UUID for Virtual Gamepad
 | ||||
|     static constexpr Common::UUID VIRTUAL_UUID = Common::UUID{ | ||||
|         {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7, 0xFF, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}}; | ||||
| 
 | ||||
|     // Register virtual devices. No need to force update
 | ||||
|     for (std::size_t index = 0; index < virtual_button_devices.size(); ++index) { | ||||
|         if (!virtual_button_devices[index]) { | ||||
|  | @ -780,7 +777,12 @@ void EmulatedController::SetStick(const Common::Input::CallbackStatus& callback, | |||
| 
 | ||||
|     // Only read stick values that have the same uuid or are over the threshold to avoid flapping
 | ||||
|     if (controller.stick_values[index].uuid != uuid) { | ||||
|         if (!stick_value.down && !stick_value.up && !stick_value.left && !stick_value.right) { | ||||
|         const bool is_tas = uuid == TAS_UUID; | ||||
|         if (is_tas && stick_value.x.value == 0 && stick_value.y.value == 0) { | ||||
|             return; | ||||
|         } | ||||
|         if (!is_tas && !stick_value.down && !stick_value.up && !stick_value.left && | ||||
|             !stick_value.right) { | ||||
|             return; | ||||
|         } | ||||
|     } | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 MonsterDruide1
						MonsterDruide1