-
Notifications
You must be signed in to change notification settings - Fork 2.2k
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
Rebindable touch right analog #12486
Conversation
Finaly Somebody did it! |
God Finally |
Kind of an oddball feature but I definitely see the point in this game and a few others! I do think it should default to off though. |
Don't like the idea of how it's implemented. Another analog stick for dpad, then people will remind about wanting face buttons as analog as well and we get yet another one? Then yet another for combo buttons because someone probably will request that as well. This should be more generic / remappable. |
The default config is "defaultTouchPosHide" as the right analog, so it should be hidden/off by default i think (unless i am missing something). About the implementation i see the point of having it customizable, but i think is better to make one for DPad (and another for face button if need), its only 1/2 stick at the end and it will cover 99% of the situation (If i recall correctly most game either use DPad, face button, or move the camera in a way is not really stick friendly). --Edit-- |
Some games require holding some button to enter aim mode to move camera. On physical controls we can map multiply PSP keys to stick to simplify the controls. With just this, it'll still not be possible on touch controls and if someone ever will want to make mappable touch controls to solve that, this code will become obsolete. |
Well, to get this perfect we should really implement some kind of scripting language support so that perfect game-specific controls can be created that does things like holding down a button while a stick is moving, etc. Not sure if we should let perfect be the enemy of the good here. |
I removed the extra analog and made the already present RightAnalog act as either RightAnalog, DPad or Face button (config in the control tab). Right analog mode allow to switch these 3 mode (Default is DPad, as i think is more useful than the right analog which is supported by only some games). Right analog button on press allow to set a key that will be held when the finger is on the analog (it wont require it to be moved as some game might have in/out animation between camera mode making the moving left to right toggling them). Any suggestion is more than welcome on both code and naming of setting. |
Its only in gamepad? Or need to map first |
I don't like some details still.
Aside from those, why changing lang submodule revision? Accident? |
Moved he setting on visibility screen as suggested. (See above screenshot for reference) Default to right analog again. About double input, i'm not sure as i don't know any game to test it, i tried to set the stick ID to 2 if other mode are used, i think the game read from it as the only difference from the left and right stick was ID 0 or 1. Edit: moved the visibility of the right analog as last (so one can see the option if they would be otherwise hidden by the screen size and scroll is needed), not sure if is best to move only the right analog, splitting it from the left one or to move both and make them last as they are needed more than alt button and combo. |
Edit: NVM third stick concern, I had a hard time finding it, but PPSSPP only sends two to the game. Also: As for accidental changes and reverting them, both the initial change and revert goes into git history, you can "squash" commits together to get rid of that. |
I'm not sure how to gray out the button if right analog is set as a right analog, the code pass a pointer to an option to change it dynamically when other option are changed, ATM: "rightAnalog->SetEnabledPtr(&g_Config.touchRightAnalogStick.show);" I'm not sure about the best way to handle 2 disabling condition. Edit: about the stick ID there is still the problem of that data being set to 0 on start making the analog start rendering in top-left position (until any input is given to it) when draw peekAnalog to read the data. |
You can make a class member variable, update it at appropriate places and send it into SetEnabledPtr. Or just use SetEnabled? I'll look at this more soon. |
Added a static bool and updating the condition when a checkbox, a checkbox choice or the other option is changed, not very pretty, there probably is a better way. |
Waiting |
As it stands it's the last thing here, so maybe a simpler and better way, would be simply to not disable that option, but making it work with standard right analog as well, renaming it accordingly. |
There is still some problem, look like resetting analog position when the stick get added to the UI race condition with the memset to 0 from "sceCtrl.cpp". |
Made if way more customizable. @LunaMoo any suggestion? |
Separated the custom analog logic as another class, i think it's cleaner than using stick ID branch, also this doesn't write to SceCtrl in weird way that should avoid bug with emulation. |
Hey! I was looking for this since I was playing Phantasy Star Portable and the camera moves with the DPAD. |
You would need to clone the repo, merge the PR locally and then build the APK (and install it as any other APK). I have have an APK ready, it contains my others PR as well (I would advise to not enable any new setting in the graphic hack section of the OpenGL rendering). If you don't wanna to deal with building it yourself you can just download it here. |
dude, you're a hero, i'll download the APK and test it out. thank you SO much. |
Thank to for apk now ican play call of duty or other fps game
…On Feb 29, 2020 5:16 AM, "Schwipsy" ***@***.***> wrote:
dude, you're a hero, i'll download the APK and test it out. thank you SO
much.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
<#12486?email_source=notifications&email_token=AMM7BMEXRO2IVDRT6M3LR53RFF5JJA5CNFSM4JM7UWJKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOENKF72I#issuecomment-592732137>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AMM7BMGOFXLROUDFUMP7VMDRFF5JJANCNFSM4JM7UWJA>
.
|
Can't quite decide what to do with this - it's good functionality, but somewhat confusing given the lack of a second stick on the real PSP, and the UI is different from the other binding functionality. Maybe it's worth it though... |
Personally I was against this PR in it's initial form because I really thought a full control mapping should be used for touch as well and this initially was more about very specific game usage than anything else, but now it at least allows customization matching many different games and as you said yourself "Not sure if we should let perfect be the enemy of the good here.". Also I don't think we can jump over people's lack of imagination and/or knowledge, for example standard mapping for physical buttons is very plain and easy to understand, but some users still don't have idea they can map single physical button to multiply PSP keys and other way around and looking at some support threads on forums or reddit, apparently there are people which doesn't even know PPSSPP allows remapping keys to begin with. To solve this, we'd have to have a detailed manual included with usage examples like old software did, but then we hit another problem that most people doesn't read and nowadays might even lack enough concentration to be able to read. This problem could be solved by video tutorials, but then if some guy who shouts to the camera and fakes emotions or half naked girl records their own, completely wrong guides they will end up more popular anyway. So ultimate solution would be to record proper tutorials by some hot, barely wearing any clothes girl faking emotions and shouting to the camera. ;o JK, but sometimes I really think the world works that way nowadays. |
Makes sense to me too. With a right analog touch control I feel like I'd be swimming in touch controls, but that's not at all a problem with this change. Just to note: I'm usually very against game-specific hacks, since there are easily over 1000 PSP games even if you don't count region/version duplicates. But, right analog is something that doesn't exist on the PSP and homebrew/romhacks can add support for. I'd actually be in favor of having a compat.ini or similar flag that indicates the right analog layout for games (maybe it'd be a different ini.) -[Unknown] |
I think a hidden setting in a compat.ini might do more harm than good:
About control being crowed it's also a matter of using a phone or a tablet. |
Something we definitely need is a better way to download, organize and use CWcheats, and maybe we could even have recommended cheats for some games that enable the right stick for example in the future, similar to Unknown's idea. But that's quite separate from this one. I think I'll go ahead and merge it. |
Allow Right analog stick to act as D-Pad or face button pad.