mirror of
https://github.com/shadps4-emu/shadPS4.git
synced 2026-04-26 00:05:58 +03:00
[PR #3235] [CLOSED] Implement libusb callbacks with correct ABI #3326
Labels
No labels
Bloodborne
bug
contributor wanted
documentation
enhancement
frontend
good first issue
help wanted
linux
pull-request
question
release
verification progress
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
starred/shadPS4#3326
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
📋 Pull Request Information
Original PR: https://github.com/shadps4-emu/shadPS4/pull/3235
Author: @connorh315
Created: 7/12/2025
Status: ❌ Closed
Base:
main← Head:dimensions-usb-fix📝 Commits (3)
9aabc60Callback ABI fixac89b22Removed pointer from warning message3815fb9clang-format📊 Changes
1 file changed (+40 additions, -2 deletions)
View changed files
📝
src/core/libraries/usbd/usbd.cpp(+40 -2)📄 Description
The libusb library executes the emulated callback, but does not respect the PS4's ABI, as such passing the libusb_transfer argument into the RAX register rather than the RDI register.
This pull request introduces a "trampoline" that registers a host-machine callback that then executes the emulated callback with the correct ABI, fixing the issue.
Only tested on Windows.
This now makes LEGO Dimensions enter the game and seems to be fully playable.
To be considered:
🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.