-
-
Notifications
You must be signed in to change notification settings - Fork 701
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Added keyboard and mouse input remapping, mouse movement to joystick logic, GUI and more #1356
base: main
Are you sure you want to change the base?
Conversation
use relative path for the ini file
and fixed platform-dependent code
Update: |
i have some doubt for mouse . Most games calls sceMouse lib library to do it natively . check draft #633 |
Well for the games that support it just disable this? I wrote this specifically for Bloodborne that doesn't have support, and there, this works fine. I know that this isn't the cleanest option, but for some games you use either this or nothing |
well sure bb what else :D . Need to check how to have both working . Maybe have an config option to enable/disable this |
I checked the libMouse branch, and it looks like it can coexist with this, even without manual config other than not adding mouse bindings to my keyboardInputConfig.ini file like this:
and this is yours:
These can be merged into one, and while I haven't tested this, this will probably work fine, since they use different things, and the overhead of checking mouse input both ways is probably negligible.
|
What are the new controls and how do I change them? I really wanna take the X O Square and Triangle buttons off the Numpad. That would help a lot! |
You can find the new bindings in the user/keyboardInputConfig.ini file, and they are already changed. To use it, just copy it to your user/ directory and you are good to go, and the syntax is fairly straightforward |
Quick notice, as it stands now mouse wheel support is incompatible with Logitech mouse software due to an unknown bug (the wheel inputs don't get registered correctly, the rest work fine) |
The build is the same f760bab. "ini" files are created in the kbmConfig folder. Editing and applying configurations is also going well. But in the CUSA01113, I ran into such a problem that if I just press the direction button (W or A or S or D), the following happens: 2024-11-16.00-16-56.mp4Halfmode (The character stops): 2024-11-16.00-42-31.mp4The character's movements work correctly on the gamepad, but not from the keyboard. Gamepad: 2024-11-16.00-47-08.mp4Did I do something wrong or is it something else? |
I added my GUI to this branch, too, as there has been no response from @VasylBaran for way too long. Perhaps he will get around to creating a better GUI in the future, but for now, here's mine as a placeholder. Feedback on it is welcome, but don't expect me to add a lot of features. |
Build 3466de0 Gravity Rush is fixed. 2024-11-16.14-30-41.mp4Next, you GUI The first thing I want to say is that I definitely like the new interface more than the previous one. The new layout of the elements, as well as the corrected second help window. The text is highlighted in yellow... I don't understand why it is needed in default.ini, if it is in the FAQ. Further, I understand that there is a typo here You've done a wonderful job. |
The pr seems mergable. |
I believe Turtle wanted to review it |
https://github.com/kalaposfos13/shadPS4/tree/main?tab=readme-ov-file#keyboard-and-mouse-mappings |
…stick halfmode and key toggle
Do you need to retest? |
Seeing as the previous version had two major bugs in it, yes, a test of the new one is appreciated. |
It looks like there's a problem right now. Last time I put the save files in your build in advance and checked the movement and so on, but now I started the game from the very beginning, and the controls fall off on this screen, I do not know how to describe it correctly… At first, the apple moved, then it stopped responding to the keys of the keyboard and gamepad and now, because of this, it is impossible to continue the game. Honestly, I don't know if it's the fault of this build or if something strange really started happening to the game on the latest versions of the emulator. Although... I tried the game on the Main e1fecda build, but there's only the controller, and it looks like everything is fine there, the apple fell and the game continued. Edit: Here I am attaching a log from Main build. After I replaced the saves with my own again (where there is little progress in passing), I checked and made sure that everything was fine with the character's movements. |
I've set aside more time to test your build and found some problem. Build 45cc82e I started Bloodborne, decided to change the configuration to this: I saved it, pressed the F8 key, the configuration was applied, but when I clicked on the controller again, I saw that the configuration was reset (the default one is displayed), although the one I set still works in the game. After closing the emulator and restarting it, the default configuration will be used. Next At first I didn't notice it, but I didn't like the mouse control, as if the original problem had returned (the one that was in the first implementation), the mouse was too sensitive, and the camera was slow, but then I saw: mouse_movement_params = 1, 0.5, 0.125 I have doubts and a couple of questions about whether the values are set correctly? and is the sequence spelled out correctly here? so I went to study the "Special bindings" section in the help. mouse_movement_params = 1, 0.5, 0.125 (mouse_deadzone_offset, mouse_speed, mouse_speed_offset) I saw and realized that the information did not correspond to what was written. If you want to check it personally, here I am attaching a text file with my file configuration: mouse_speed_offset - I still haven't decided which value to set. Note: All this happens during gameplay (and maybe not only). |
…one if the GUI is opened multiple times in a session
Build 216a5dc - The previous issue has been fixed. Next Next 2024-11-21.17-26-03.mp4And a new proposal, if it can be implemented. I'm not saying to do it, but it would be great if there was such a thing. This way it will be easier for users to figure out than to prescribe parameters by configuring the configuration. This should also save you from questions about mouse settings (maybe yes, maybe no). This is an example, so I did not try to draw carefully, especially since this implementation may not exist. |
If it's closed with the top right close button instead of clicking the Help button again, a required flag wasn't reset, making the next click on Help try to close a nonexistent window and segfault
… segfaults due to mismatched flags
This I will not do, because while I would love to have a better GUI, I also stated that this is only a temporary one, and since this will probably be implemented by whoever will write the next GUI, it doesn't make sense to add it to here, especially since this is just a quality of life feature, not something important, so as I said earlier, I won't do much more with it other than fixing bugs. |
Build ca37d03 - The previous issue has been fixed. Next @kalaposfos13 If you click the Help button, then close the help window, repeat this several times, then a window flashes for a second in the upper-left corner of the screen (presumably, this is a help window that is configured according to the standard, and then immediately moves to the specified coordinates, if I understood correctly). It's not a problem, but it's noticeable. Also, unfortunately, I cannot test the behavior of your build on Linux, I have problems with the game there. |
I changed the original hard-coded switch case keyboard inputs to handling keyboard key - controller button pairs with std::map-s, to which the input pairs get loaded to from a file in the user/ directory (currently hard-coded to keyboardInputConfig.ini).
Mouse movement is baked to the right joystick at the moment, and is handled by polling the mouse delta position.
I didn't touch the other input modes only the keyboard, to which i also put mouse input too.
The provided ini file currently has a souls inspired bloodborne layout.
I also added a robust multi-key input system that is able to accept a key-modifier key pair as input.
F8 reparses the config file and you can even change inputs while ingame
F9 toggles mouse capture