uDraw emulation [2]

This commit is contained in:
Florin9doi 2024-04-16 22:45:17 +03:00 committed by Megamouse
commit 21445fa01a
2 changed files with 80 additions and 78 deletions

View file

@ -396,6 +396,7 @@ target_link_libraries(rpcs3_emu
target_sources(rpcs3_emu PRIVATE target_sources(rpcs3_emu PRIVATE
Io/Buzz.cpp Io/Buzz.cpp
Io/camera_config.cpp Io/camera_config.cpp
Io/GameTablet.cpp
Io/GHLtar.cpp Io/GHLtar.cpp
Io/Infinity.cpp Io/Infinity.cpp
Io/interception.cpp Io/interception.cpp

View file

@ -149,6 +149,7 @@ void usb_device_gametablet::interrupt_transfer(u32 buf_size, u8* buf, u32 /*endp
return; return;
} }
{
std::lock_guard lock(pad::g_pad_mutex); std::lock_guard lock(pad::g_pad_mutex);
const auto gamepad_handler = pad::get_current_handler(); const auto gamepad_handler = pad::get_current_handler();
const auto& pads = gamepad_handler->GetPads(); const auto& pads = gamepad_handler->GetPads();
@ -156,7 +157,7 @@ void usb_device_gametablet::interrupt_transfer(u32 buf_size, u8* buf, u32 /*endp
bool up = false, right = false, down = false, left = false; bool up = false, right = false, down = false, left = false;
const int pad_index = 1; // Player2 const int pad_index = 1; // Player2
const auto& pad = pads[pad_index]; const auto& pad = ::at32(pads, pad_index);
if (pad->m_port_status & CELL_PAD_STATUS_CONNECTED) if (pad->m_port_status & CELL_PAD_STATUS_CONNECTED)
{ {
for (Button& button : pad->m_buttons) for (Button& button : pad->m_buttons)
@ -236,7 +237,7 @@ void usb_device_gametablet::interrupt_transfer(u32 buf_size, u8* buf, u32 /*endp
buf[0x02] = 0x06; buf[0x02] = 0x06;
else if (up && left) else if (up && left)
buf[0x02] = 0x07; buf[0x02] = 0x07;
}
auto& mouse_handler = g_fxo->get<MouseHandlerBase>(); auto& mouse_handler = g_fxo->get<MouseHandlerBase>();
std::lock_guard mouse_lock(mouse_handler.mutex); std::lock_guard mouse_lock(mouse_handler.mutex);