The demon is not able to determine the devices to use, screen size and orientation, etc, so it reads these parameters from the settings.cnf file, that was prepared by the Java part. The daemon is started by the Java app as root, because it needs such permissions to read/write events directly from /dev/input/event N device drivers from the underlying Linux OS. It reads all its parameters from the compact settings file. pinball_buttons_mapper (aka the daemon) - this is the standalone C program, actually doing all the "real" job: it waits for keyboard events, and generates multitouch events (simulating finger touches on the screen). The diagram in this step is an UML class diagram, showing the principal classes and entities, and their relations. (*) see Architecture The final architecture is based on a daemon, that is, a small standalone program (written in C and hence very fast) communicating with a Java service. This proved slightly too slow and introduced a noticeable lag, so I opted for a daemon written in C, and configured by a Java app. Doing the above from Java (requiring only rooting, but no daemon).Generating multitouch events (*) from a small program written in C. ![]() Reading raw keyboard events from the PC, using adb and getevent.Studies Before ending up with the current design, a few studies have been made: Evaluate! Anyway, make a test before undertaking the project. ![]() Do not run apps requiring rooting, except if you know exactly what they're doing. IT IS VERY DANGEROUS TO USE A ROOTED TABLET, as malware could virtually access anything, including your personal data and online accounts. Rooting In order to read and send raw events, the application requires the tablet to be permanently rooted. Also, an Arduino with an USB host controller, and directly connected to pinball buttons, may work. Alternatively, Bluetooth keyboard may work, but I bet that the lag will badly impact the reactivity. BTW, Android well supports external USB peripherals such as hard drives, keyboards, mice, hubs, etc. Tablet connectors The tablet must have USB host capability, with an USB (or USB-on-the-go) connector. The SHIFT keys are detected and converted to touch events. The buttons are connected to an USB keyboard controller. This will insure a perfect compatibility with all pinball applications (and not only the seldom ones supporting an external keyboard). Events principle The principle I chose is to simulate finger touches. Buttons are all arcade quality and the general feel is impressive.Before undertaking the job of building a cabinet, it is necessary to check that all conditions are met. The build quality felt really good and the unit doesn’t wobble at all. Easily powerful enough to run all the tables I wanted and with a screen that filled the housing completely. ![]() Once it was all setup the Sharpin worked like a dream. I preferred the Android set-up as I didn’t want to have my Switch or PC plugged in to the Sharpin to play it. These platforms both offer versions of Williams pinball where you can remap the nudge to key presses. There are versions of the Sharpin that you can use with a PC or with the Switch. I wasn’t sure this would be responsive enough for the quick reactions required by pinball but actually it works really well. This allows you to place markers on the screen that are then triggered when you press certain buttons. You can use the Octopus accessibility app to apply a screen-to-button mapping. You can only opt for touch screen nudging. While they work really well on the Sharpin setup they don’t let you map the tilt feature to buttons. Using the Android version as I was did mean a bit of work to get around some limitations with the Williams Pinball and Zen Pinball apps. Sharpin Video Pinball Credit: Andy Robertson
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |