Game controller

From OLPC
Revision as of 01:19, 4 January 2016 by Peasthope (talk | contribs) (Rewriting to improve clarity and a sentence moved from Hardware to Signaling.)
Jump to navigation Jump to search

Hardware

The game controller of an XO laptop is a D-pad or rocker at the lower left corner of the screen and a set of four action buttons at the lower right; therefore a total of five buttons for user activation. Beneath the rocker are four switches on the system board. An identical set of switches is beneath the action buttons. Traces on the board connect the switches to the embedded controller. The rocker can activate the underlying switches, one, two, three or four together depending upon how it is tilted. Not all combinations are possible. For example, if the upper and lower switches are closed, then at least one of the left and right switches is closed. The action buttons operate similarly but allow any combination of the underlying switches to be closed simultaneously. Some of the more peculiar combinations provide "cheat codes" when the machine is powered up.

Signaling

The Linux xev command can be used to display the signal produced when a switch is closed or opened. Switch closure is reported as a KeyPress event; switch opening as a KeyRelease event. Signals generated by the embedded controller are typical of the keypad of a conventional computer keyboard. The rocker produces KP_Up, KP_Right, KP_Down, KP_Left. The right buttons produce KP_Prior, KP_End, KP_Next and KP_Home. Keycodes and keysyms are also available from xev.

Design History; Suggestions and Considerations

Left Side (Directional Pad/Joystick)

The left should include a directional pad or joystick to use in pointing or directional manipulation.

In order of preference we should include:

1. A circular "rocker" on top of four contacts but made of a single piece of plastic that allows for easy 8-way directional pointing.

2. In the interests of space, the 4-way directional pad could be replaced with a short joystick. We'd like to avoid the clunkiness and fragility of most cellphone joysticks. A good example of a gaming joystick would be in either the GP2X, the GP32 (an earlier version of the GP2X) or the controller on the NeoGeo. For examples, see the first three examples in the photos section below.

3. A Sony Playstation-like 4-way directional-pad with single piece of plastic but exposed or shaped into 4 roughly distinct buttons and shaped to allow pointing in diagonals (see the Playstation controller or Nintendo controller for examples).

Right Side (Buttons)

Since there is additional room on the right side, we should take advantage of this and include 4 buttons. The ideal layout would be in a diamond shape so it could be used a more traditional four-way directional pad if necessary.

If two buttons are used instead of three, they should be distinct buttons and placed an angle from each other with the right button above the left. A third extra button offset either above or below would be useful.

We do not recommend using a 4 directional rocker "dpad" on the right hand side. There are several reasons for this. First, because there is a well-established convention to lay out separate buttons on the right hand side, as evidenced by numerous controller illustrations below. Second, naming the controls becomes difficult. For example, instructing someone to "press down" becomes ambiguous - did you mean down on the left rocker, or down on the right rocker? Third, many games utilize multiple button combinations on the right hand side wich are difficult..

Other game controllers

Reviews and Overviews

Examples and Pictures

http://www.ossblog.it/uploads/gp2x_2.jpg

http://www.retro-games.co.uk/neogeo/hngp_bluesys.gif

http://gruson.guillaume.free.fr/images/Consoles/neogeo-pocket.gif

http://www.retro-games.co.uk/neogeo/hngp_bw.jpg

http://www.viewonline.com/pages/articles/images/messiahcontrollers.jpg

http://www.axess.com/twilight/console/detail/vb.jpg

http://www.hartware.de/media/reviews/322/gp32.jpg

http://www.gamestech.com/playstation2_info/controller/PSX2_Neo_Geo_Stick_2/neo2.jpg

http://epsilon.media.mit.edu/~mako/controllers/psp.jpg

http://epsilon.media.mit.edu/~mako/controllers/Nintendo_ds_bg_2.png

http://epsilon.media.mit.edu/~mako/controllers/211219.jpg

http://epsilon.media.mit.edu/~mako/controllers/retropad1_large.jpg

http://www.circuitcity.com/IMAGE/product/detail/nin/PC.NIN.DOLACK2.LT.JPG

http://epsilon.media.mit.edu/~mako/controllers/controllers-ps3.jpg

http://epsilon.media.mit.edu/~mako/controllers/controller_s1.jpg

http://www.retrousb.com/images/neogeo1_med.jpg

Genesis controller.jpg

http://www.seganet.com.br/images/full_dreamcast_controller.gif

http://z.about.com/d/vgstrategies/1/0/Y/ps2controller.jpg

http://media.arstechnica.com/staff/fatbits.media/n64-controller.jpg