Kids & Kiosk Mode, coming back [testers needed!]
-
@Srfrboybob and @dvf00 , thanks for the info, that is very helpful.
ok, so now we have the following situation to work with:
XBox360 controllers intersperses the dpad inputs with hat inputs of varying value:
lvl3: UIModeController::logInput( Xbox 360 Wireless Receiver ):Hat 0 up, isMappedTo= , value=1 lvl3: UIModeController::logInput( Xbox 360 Wireless Receiver ):Button 15, isMappedTo= up, , value=0 lvl3: UIModeController::logInput( Xbox 360 Wireless Receiver ):Hat 0 neutral?, isMappedTo= , value=0 lvl3: UIModeController::logInput( Xbox 360 Wireless Receiver ):Button 16, isMappedTo= down, , value=1 lvl3: UIModeController::logInput( Xbox 360 Wireless Receiver ):Hat 0 down, isMappedTo= , value=4 lvl3: UIModeController::logInput( Xbox 360 Wireless Receiver ):Button 16, isMappedTo= down, , value=0 lvl3: UIModeController::logInput( Xbox 360 Wireless Receiver ):Hat 0 neutral?, isMappedTo= , value=0 lvl3: UIModeController::logInput( Xbox 360 Wireless Receiver ):Button 16, isMappedTo= down, , value=1 lvl3: UIModeController::logInput( Xbox 360 Wireless Receiver ):Hat 0 down, isMappedTo= , value=4 lvl3: UIModeController::logInput( Xbox 360 Wireless Receiver ):Button 16, isMappedTo= down, , value=0 lvl3: UIModeController::logInput( Xbox 360 Wireless Receiver ):Hat 0 neutral?, isMappedTo= , value=0 lvl3: UIModeController::logInput( Xbox 360 Wireless Receiver ):Button 13, isMappedTo= left, , value=1 lvl3: UIModeController::logInput( Xbox 360 Wireless Receiver ):Hat 0 left, isMappedTo= , value=8 lvl3: UIModeController::logInput( Xbox 360 Wireless Receiver ):Button 13, isMappedTo= left, , value=0 lvl3: UIModeController::logInput( Xbox 360 Wireless Receiver ):Hat 0 neutral?, isMappedTo= , value=0
8Bitdo NES30 pro controllers report all dpad actions as hat movements, also with varying values, but now alternated with a
neutral?
state, value = 0:lvl3: UIModeController::logInput( 8Bitdo NES30 Pro ):Hat 0 neutral?, isMappedTo= down, left, right, up, , value=0 lvl3: UIModeController::logInput( 8Bitdo NES30 Pro ):Hat 0 up, isMappedTo= up, , value=1 lvl3: UIModeController::logInput( 8Bitdo NES30 Pro ):Hat 0 neutral?, isMappedTo= down, left, right, up, , value=0 lvl3: UIModeController::logInput( 8Bitdo NES30 Pro ):Hat 0 down, isMappedTo= down, , value=4 lvl3: UIModeController::logInput( 8Bitdo NES30 Pro ):Hat 0 neutral?, isMappedTo= down, left, right, up, , value=0
... and finally the observation that my initial implementation of finding inputs that have no
isMappedTo
value did not work.Looking at this, I think that filtering out the values that have no mappedTo (undefined keypresses) should be the best way to cope with this. The question is how.
I'll try to replicate the issue with another controller, to see how to catch those undefined inputs. -
@darknior @dvf00 @Srfrboybob , @anyone with a fancycontroller
I've rewritten the logic for input validation (again), I'd like both users with a x360 and an 8-bitdo controllers to give this a try.
Could you maybe try it out?repo: zigurana\EmulationStation
branch: UIModeInputHandlingPlease run
emulationstation --debug
to get all the logging.Thanks!
-
I've just tested EmulationStation from your repo (UIModeInputHandling branch) and I get the same problem: doesn't work.
Here the output of logging:lvl3: SystemView::getViewElements() lvl3: UIModeController::logInput( 8Bitdo NES30 Pro ):Hat 0 up, isMappedTo= up, , value=1 lvl3: UIModeController::logInput( 8Bitdo NES30 Pro ):Hat 0 neutral?, isMappedTo= down, left, right, up, , value=0 lvl3: UIModeController::logInput( 8Bitdo NES30 Pro ):Hat 0 up, isMappedTo= up, , value=1 lvl3: UIModeController::logInput( 8Bitdo NES30 Pro ):Hat 0 neutral?, isMappedTo= down, left, right, up, , value=0 lvl3: UIModeController::logInput( 8Bitdo NES30 Pro ):Hat 0 down, isMappedTo= down, , value=4 lvl3: UIModeController::logInput( 8Bitdo NES30 Pro ):Hat 0 neutral?, isMappedTo= down, left, right, up, , value=0 lvl3: UIModeController::logInput( 8Bitdo NES30 Pro ):Hat 0 down, isMappedTo= down, , value=4 lvl3: UIModeController::logInput( 8Bitdo NES30 Pro ):Hat 0 neutral?, isMappedTo= down, left, right, up, , value=0 lvl3: UIModeController::logInput( 8Bitdo NES30 Pro ):Hat 0 left, isMappedTo= left, , value=8 lvl3: UIModeController::logInput( 8Bitdo NES30 Pro ):Hat 0 neutral?, isMappedTo= down, left, right, up, , value=0 lvl3: UIModeController::logInput( 8Bitdo NES30 Pro ):Hat 0 right, isMappedTo= right, , value=2 lvl3: UIModeController::logInput( 8Bitdo NES30 Pro ):Hat 0 neutral?, isMappedTo= down, left, right, up, , value=0 lvl3: UIModeController::logInput( 8Bitdo NES30 Pro ):Hat 0 left, isMappedTo= left, , value=8 lvl3: UIModeController::logInput( 8Bitdo NES30 Pro ):Hat 0 neutral?, isMappedTo= down, left, right, up, , value=0 lvl3: UIModeController::logInput( 8Bitdo NES30 Pro ):Hat 0 right, isMappedTo= right, , value=2 lvl3: UIModeController::logInput( 8Bitdo NES30 Pro ):Hat 0 neutral?, isMappedTo= down, left, right, up, , value=0 lvl3: UIModeController::logInput( 8Bitdo NES30 Pro ):Button 0, isMappedTo= b, , value=1 lvl3: UIModeController::logInput( 8Bitdo NES30 Pro ):Button 0, isMappedTo= b, , value=0 lvl3: UIModeController::logInput( 8Bitdo NES30 Pro ):Button 1, isMappedTo= a, , value=1 lvl3: UIModeController::logInput( 8Bitdo NES30 Pro ):Button 1, isMappedTo= a, , value=0
I've made a script for download and compile from your own fork using the method on this post: how to compile custom emulation-station from retropie . It looks like this, and seems to work:
#!/usr/bin/env bash rp_module_id="emulationstation-custom" rp_module_desc="A modified version of EmulationStation." rp_module_section="core" function depends_emulationstation-custom() { depends_emulationstation } function sources_emulationstation-custom() { sources_emulationstation "https://github.com/zigurana/EmulationStation" "UIModeInputHandling" } function build_emulationstation-custom() { build_emulationstation } function install_emulationstation-custom() { install_emulationstation } function configure_emulationstation-custom() { configure_emulationstation } function gui_emulationstation-custom() { gui_emulationstation }
So I guess I did it right, when I press start I see the same version as official retropie fork 2.7.3RP so I'm not pretty sure I have your new logic for controller handling....
-
@dvf00 My apologies, I screwed up.
Somehow I only created a new branch, but my new commit was not pushed to it.
I've just updated it, should be good now.Your script should work, nice tinkering btw! There is an easier alternative though, by using Meleu's testing scripts, which can be found here. It will allow you to create a list of branches from which you can install and test, and also to revert easily to stock ES. Do give it a try.
Again sorry for wasting your time.
-
No worries Zigurana...
Ohh yes... downloaded and running, that script is the way! I didn't know it... :-)
Compiling now ES... let me try -
working with 8Bitdo! :-)
lvl3: SystemView::getViewElements() lvl3: UIModeController::logInput( 8Bitdo NES30 Pro ):Button 0, isMappedTo= b, , value=0, isValidInput: no lvl3: UIModeController::logInput( 8Bitdo NES30 Pro ):Hat 0 right, isMappedTo= right, , value=2, isValidInput: yes lvl3: UIModeController::logInput( 8Bitdo NES30 Pro ):Hat 0 neutral?, isMappedTo= down, left, right, up, , value=0, isValidInput: no lvl3: UIModeController::logInput( 8Bitdo NES30 Pro ):Button 11, isMappedTo= start, , value=0, isValidInput: no lvl3: UIModeController::logInput( 8Bitdo NES30 Pro ):Hat 0 up, isMappedTo= up, , value=1, isValidInput: yes lvl3: UIModeController::logInput( 8Bitdo NES30 Pro ):Hat 0 neutral?, isMappedTo= down, left, right, up, , value=0, isValidInput: no lvl3: UIModeController::logInput( 8Bitdo NES30 Pro ):Hat 0 up, isMappedTo= up, , value=1, isValidInput: yes lvl3: UIModeController::logInput( 8Bitdo NES30 Pro ):Hat 0 neutral?, isMappedTo= down, left, right, up, , value=0, isValidInput: no lvl3: UIModeController::logInput( 8Bitdo NES30 Pro ):Hat 0 down, isMappedTo= down, , value=4, isValidInput: yes lvl3: UIModeController::logInput( 8Bitdo NES30 Pro ):Hat 0 neutral?, isMappedTo= down, left, right, up, , value=0, isValidInput: no lvl3: UIModeController::logInput( 8Bitdo NES30 Pro ):Hat 0 down, isMappedTo= down, , value=4, isValidInput: yes lvl3: UIModeController::logInput( 8Bitdo NES30 Pro ):Hat 0 neutral?, isMappedTo= down, left, right, up, , value=0, isValidInput: no lvl3: UIModeController::logInput( 8Bitdo NES30 Pro ):Hat 0 left, isMappedTo= left, , value=8, isValidInput: yes lvl3: UIModeController::logInput( 8Bitdo NES30 Pro ):Hat 0 neutral?, isMappedTo= down, left, right, up, , value=0, isValidInput: no lvl3: UIModeController::logInput( 8Bitdo NES30 Pro ):Hat 0 right, isMappedTo= right, , value=2, isValidInput: yes lvl3: UIModeController::logInput( 8Bitdo NES30 Pro ):Hat 0 neutral?, isMappedTo= down, left, right, up, , value=0, isValidInput: no lvl3: UIModeController::logInput( 8Bitdo NES30 Pro ):Hat 0 left, isMappedTo= left, , value=8, isValidInput: yes lvl3: UIModeController::logInput( 8Bitdo NES30 Pro ):Hat 0 neutral?, isMappedTo= down, left, right, up, , value=0, isValidInput: no lvl3: UIModeController::logInput( 8Bitdo NES30 Pro ):Hat 0 right, isMappedTo= right, , value=2, isValidInput: yes lvl3: UIModeController::logInput( 8Bitdo NES30 Pro ):Hat 0 neutral?, isMappedTo= down, left, right, up, , value=0, isValidInput: no lvl3: UIModeController::logInput( 8Bitdo NES30 Pro ):Button 1, isMappedTo= a, , value=1, isValidInput: yes lvl3: UIModeController::logInput( 8Bitdo NES30 Pro ):Button 1, isMappedTo= a, , value=0, isValidInput: no lvl3: UIModeController::logInput( 8Bitdo NES30 Pro ):Button 0, isMappedTo= b, , value=1, isValidInput: yes lvl3: UIModeController::listen(): Passkey sequence completed, switching UIMode to full lvl3: Settings::saveFile() : Saving Settings to file. lvl3: SystemView::getViewElements() lvl3: UIModeController::logInput( 8Bitdo NES30 Pro ):Button 0, isMappedTo= b, , value=0, isValidInput: no lvl2: EmulationStation cleanly shutting down. ´´´
-
@dvf00 Yes already try 8bitDo and report it works fine too.
I don't know where to report this :
With these last ES versions, i have some aleatory crash. Some time during the Video Screensaver ... but i don't know when it will come.
Some time it loop on one video, it reading it at infinity ... i can't move out.
Some time it crash to linux, and i'm locked too, the keyboard don't respond.
But i always have the SSH access.My last crash screen :
-
@darknior
You mean to say you tried the x360 controller? -
@zigurana I don't try it again, but last time i try it it works fine.
I will try your last beta to see.This crash is an other problem.
-
@darknior yes, please try it, I am hoping that it will not regress your issue, but there is only one way to be sure ;-).
Regarding your crashes, I suspect it has nothing to do with the topic of this thread, but likely something with video playback. So I'd suggest to start a new thread on this, as it seems a serious issue.
-
I can say I've never seen such a crash dump in EmulationStation, which may point to faulty media (SD card or USB drive). I imagine that if you try it with your previously working binary you will run into the same thing.
Still, some more investigation can only help: is it the same video all the time, etc?
Thanks.
-
@Zigurana I have try your last build, emulationstation-dev, to try my x360 controller game-pad. And :
- x360 gamepad not working
- 8bitDo NES not working
- 8bitDo NES PRO not working
- 8bitDo SNES is the only one working fine for me.
-
@darknior what in the name of all that's retro?!
To be sure: this is on the zigurana / UIModeController branch?
Would you have the logging from each of those controllers available?
-
@zigurana said in Kids & Kiosk Mode, coming back [testers needed!]:
@darknior what in the name of all that's retro?!
deviceName="Xbox 360 Wireless Receiver (XBOX)" deviceName="8Bitdo SFC30 GamePad" deviceGUID="05000000102800000900000000010000" deviceName="Xbox 360 Wireless Receiver" deviceGUID="030000005e040000a102000000010000" deviceName="8Bitdo NES30 Pro" deviceGUID="05000000c82d00002038000000010000" deviceName="8Bitdo NES30 GamePad" deviceGUID="05000000c82d00002028000000010000"
To be sure: this is on the zigurana / UIModeController branch?
I write i use the emulationstation-dev from Retropie-Setup.
Would you have the logging from each of those controllers available?
??? What do you want ?
-
@darknior Sorry, maybe a bit cryptic :-?
What I meant to say: "Huh I do not understand these results you are getting, we need to make sure you are testing the correct thing. And then we need to figure out what the hell is going on"Please test these branches using the testing scripts. You will need to select this :
repository: zigurana/emulationstation
branch: UIModeInputHandlingRegarding logging, i meant the logged values for inputs for each of the controllers, I've updated the logging again to hopefully show me all I need to know.
Sorry for the confusion, and to burden you so much, but you seem to be one of the few people who have such a wide range of controllers available. (With great power comes great responsibility ;-))
You are doing good work, please keep it up!
-
When do you expect we could have available these changes in official repo?
-
@dvf00 probably when the most issues are fixed. I mean that's why the developer branch was created recently, some older official releases weren't as stable as they should've been.
-
@darknior did you see my request for some more tests?
@zigurana said in Kids & Kiosk Mode, coming back [testers needed!]
-
@zigurana said in Kids & Kiosk Mode, coming back [testers needed!]:
@darknior did you see my request for some more tests?
Where do you log the command ? Where is the log file please ?
Thanks -
@darknior
You can run EmulationStation with the debug flag by typingemulationstation --debug
on the command line. The logfile will be athome/pi/.emulationstation/es-log.txt
.
Hope that helps!
Contributions to the project are always appreciated, so if you would like to support us with a donation you can do so here.
Hosting provided by Mythic-Beasts. See the Hosting Information page for more information.