Space invaders with a nRF2401A wireless joypad

Dependencies:   Gameduino mbed nRF2401A

Fork of Gameduino_Invaders_game by Chris Dick

Gameduino and an nRF2401A hooked up to an mbed on an mbeduino:

/media/uploads/TheChrisyd/2014-03-08_22.53.54.jpg

Committer:
TheChrisyd
Date:
Sat Sep 29 13:01:42 2012 +0000
Revision:
1:f44175dd69fd
Parent:
0:8a7c58553b44
Child:
2:20a89dc286d5
saved progress

Who changed what in which revision?

UserRevisionLine numberNew contents of line
TheChrisyd 1:f44175dd69fd 1 /*------------------------------------------------------------
TheChrisyd 1:f44175dd69fd 2 Universal joystick driver for Gameduino
TheChrisyd 1:f44175dd69fd 3
TheChrisyd 1:f44175dd69fd 4 http://www.artlum.com/gameduino/gameduino.html#joystick
TheChrisyd 1:f44175dd69fd 5 ------------------------------------------------------------*/
TheChrisyd 1:f44175dd69fd 6 #include "joystick.h"
TheChrisyd 1:f44175dd69fd 7 #include "GD.h"
TheChrisyd 1:f44175dd69fd 8 //#include <SPI.h>
TheChrisyd 1:f44175dd69fd 9 //#include <GD.h>
TheChrisyd 1:f44175dd69fd 10
TheChrisyd 1:f44175dd69fd 11 // Change this line to enable your customized
TheChrisyd 1:f44175dd69fd 12 // joystick configuration
TheChrisyd 1:f44175dd69fd 13 // "1" = custom configuration
TheChrisyd 1:f44175dd69fd 14 // "0" = default (Sparkfun joystick)
TheChrisyd 1:f44175dd69fd 15 //
TheChrisyd 1:f44175dd69fd 16 #define CUSTOM_JOYSTICK 0
TheChrisyd 1:f44175dd69fd 17
TheChrisyd 1:f44175dd69fd 18
TheChrisyd 1:f44175dd69fd 19 #if CUSTOM_JOYSTICK
TheChrisyd 1:f44175dd69fd 20 /*------------------------------------------------------------------
TheChrisyd 1:f44175dd69fd 21 Custom joystick configuration. This is what you need to
TheChrisyd 1:f44175dd69fd 22 hack to get your joystick working.
TheChrisyd 1:f44175dd69fd 23
TheChrisyd 1:f44175dd69fd 24 The joystick layout can be customized by commenting
TheChrisyd 1:f44175dd69fd 25 or uncommenting the lines below.
TheChrisyd 1:f44175dd69fd 26
TheChrisyd 1:f44175dd69fd 27 Notes
TheChrisyd 1:f44175dd69fd 28 -----
TheChrisyd 1:f44175dd69fd 29 To specify an analog pin for a button add "A0" to
TheChrisyd 1:f44175dd69fd 30 the pin number, eg. Analog pin 4 is "A0+4"
TheChrisyd 1:f44175dd69fd 31
TheChrisyd 1:f44175dd69fd 32 When connecting a Joystick to an Arduino:
TheChrisyd 1:f44175dd69fd 33 * Digital pins 0/1 are used for system stuff.
TheChrisyd 1:f44175dd69fd 34 * Gameduino uses pins 2/9/10/11/13 for SPI interface
TheChrisyd 1:f44175dd69fd 35
TheChrisyd 1:f44175dd69fd 36 That leaves digital pins 3/4/5/6/7/8/10 free, plus
TheChrisyd 1:f44175dd69fd 37 all the analog pins (which work as digital pins, too!)
TheChrisyd 1:f44175dd69fd 38 ------------------------------------------------------------------*/
TheChrisyd 1:f44175dd69fd 39
TheChrisyd 1:f44175dd69fd 40 // eg. The following layout is good for an NES controller
TheChrisyd 1:f44175dd69fd 41
TheChrisyd 1:f44175dd69fd 42 // Connect the four buttons to pins 3/4/5/6
TheChrisyd 1:f44175dd69fd 43 #define BUTTON_A_PIN 3
TheChrisyd 1:f44175dd69fd 44 #define BUTTON_B_PIN 4
TheChrisyd 1:f44175dd69fd 45 //#define BUTTON_C_PIN ?
TheChrisyd 1:f44175dd69fd 46 //#define BUTTON_X_PIN ?
TheChrisyd 1:f44175dd69fd 47 //#define BUTTON_Y_PIN ?
TheChrisyd 1:f44175dd69fd 48 //#define BUTTON_Z_PIN ?
TheChrisyd 1:f44175dd69fd 49 #define BUTTON_ST_PIN 5
TheChrisyd 1:f44175dd69fd 50 #define BUTTON_SEL_PIN 6
TheChrisyd 1:f44175dd69fd 51
TheChrisyd 1:f44175dd69fd 52 // Connect the DPAD L/R/U/D to analog pins 2/3/4/5
TheChrisyd 1:f44175dd69fd 53 #define STICK_LEFT_PIN (A0+2)
TheChrisyd 1:f44175dd69fd 54 #define STICK_RIGHT_PIN (A0+3)
TheChrisyd 1:f44175dd69fd 55 #define STICK_UP_PIN (A0+4)
TheChrisyd 1:f44175dd69fd 56 #define STICK_DOWN_PIN (A0+5)
TheChrisyd 1:f44175dd69fd 57
TheChrisyd 1:f44175dd69fd 58 // Analog input is disabled...
TheChrisyd 1:f44175dd69fd 59 //#define ANALOG_X_PIN ?
TheChrisyd 1:f44175dd69fd 60 //#define ANALOG_Y_PIN ?
TheChrisyd 1:f44175dd69fd 61
TheChrisyd 1:f44175dd69fd 62 // Make the DPAD emulate an analog joystick
TheChrisyd 1:f44175dd69fd 63 #define DIGITAL_EMULATE_ANALOG
TheChrisyd 1:f44175dd69fd 64 //#define ANALOG_EMULATE_DIGITAL
TheChrisyd 1:f44175dd69fd 65
TheChrisyd 1:f44175dd69fd 66 #else
TheChrisyd 1:f44175dd69fd 67 /*------------------------------------------------------------------
TheChrisyd 1:f44175dd69fd 68 Default: Sparkfun joystick
TheChrisyd 1:f44175dd69fd 69 ------------------------------------------------------------------*/
TheChrisyd 1:f44175dd69fd 70 #define BUTTON_A_PIN 3
TheChrisyd 1:f44175dd69fd 71 #define BUTTON_B_PIN 4
TheChrisyd 1:f44175dd69fd 72 // #define BUTTON_C_PIN ?
TheChrisyd 1:f44175dd69fd 73 // nb. Button X is pin 7 if you've hacked your board
TheChrisyd 1:f44175dd69fd 74 #define BUTTON_X_PIN 2
TheChrisyd 1:f44175dd69fd 75 // #define BUTTON_Y_PIN ?
TheChrisyd 1:f44175dd69fd 76 // #define BUTTON_Z_PIN ?
TheChrisyd 1:f44175dd69fd 77 #define BUTTON_ST_PIN 5
TheChrisyd 1:f44175dd69fd 78 #define BUTTON_SEL_PIN 6
TheChrisyd 1:f44175dd69fd 79
TheChrisyd 1:f44175dd69fd 80 // Digital joystick/DPAD
TheChrisyd 1:f44175dd69fd 81 //#define STICK_LEFT_PIN 11
TheChrisyd 1:f44175dd69fd 82 //#define STICK_RIGHT_PIN 12
TheChrisyd 1:f44175dd69fd 83 //#define STICK_UP_PIN 13
TheChrisyd 1:f44175dd69fd 84 //#define STICK_DOWN_PIN 14
TheChrisyd 1:f44175dd69fd 85
TheChrisyd 1:f44175dd69fd 86 // Analog joystick is enabled
TheChrisyd 1:f44175dd69fd 87 #define ANALOG_X_PIN 0
TheChrisyd 1:f44175dd69fd 88 #define ANALOG_Y_PIN 1
TheChrisyd 1:f44175dd69fd 89
TheChrisyd 1:f44175dd69fd 90 // Enable digital joystick emulation
TheChrisyd 1:f44175dd69fd 91 // #define DIGITAL_EMULATE_ANALOG
TheChrisyd 1:f44175dd69fd 92 #define ANALOG_EMULATE_DIGITAL
TheChrisyd 1:f44175dd69fd 93
TheChrisyd 1:f44175dd69fd 94 #endif
TheChrisyd 1:f44175dd69fd 95
TheChrisyd 1:f44175dd69fd 96 /*------------------------------------------------------
TheChrisyd 1:f44175dd69fd 97 Stop hacking now...!
TheChrisyd 1:f44175dd69fd 98
TheChrisyd 1:f44175dd69fd 99 There are no user-servicable parts below this line
TheChrisyd 1:f44175dd69fd 100 ------------------------------------------------------*/
TheChrisyd 1:f44175dd69fd 101 #define STICK_LEFT_BIT 0x01
TheChrisyd 1:f44175dd69fd 102 #define STICK_RIGHT_BIT 0x02
TheChrisyd 1:f44175dd69fd 103 #define STICK_UP_BIT 0x04
TheChrisyd 1:f44175dd69fd 104 #define STICK_DOWN_BIT 0x08
TheChrisyd 1:f44175dd69fd 105 #define ANALOG_STICK_BIT 0x80
TheChrisyd 1:f44175dd69fd 106 #define STICK_INFO_MASK (ANALOG_STICK_BIT)
TheChrisyd 1:f44175dd69fd 107
TheChrisyd 1:f44175dd69fd 108 /*---------------------------------------------
TheChrisyd 1:f44175dd69fd 109 Joystick reader
TheChrisyd 1:f44175dd69fd 110 ---------------------------------------------*/
TheChrisyd 1:f44175dd69fd 111 static PROGMEM prog_uchar joystickPinList[] = {
TheChrisyd 1:f44175dd69fd 112 #ifdef BUTTON_A_PIN
TheChrisyd 1:f44175dd69fd 113 BUTTON_A_PIN
TheChrisyd 1:f44175dd69fd 114 #endif
TheChrisyd 1:f44175dd69fd 115 #ifdef BUTTON_B_PIN
TheChrisyd 1:f44175dd69fd 116 , BUTTON_B_PIN
TheChrisyd 1:f44175dd69fd 117 #endif
TheChrisyd 1:f44175dd69fd 118 #ifdef BUTTON_C_PIN
TheChrisyd 1:f44175dd69fd 119 , BUTTON_C_PIN
TheChrisyd 1:f44175dd69fd 120 #endif
TheChrisyd 1:f44175dd69fd 121 #ifdef BUTTON_X_PIN
TheChrisyd 1:f44175dd69fd 122 , BUTTON_X_PIN
TheChrisyd 1:f44175dd69fd 123 #endif
TheChrisyd 1:f44175dd69fd 124 #ifdef BUTTON_Y_PIN
TheChrisyd 1:f44175dd69fd 125 , BUTTON_Y_PIN
TheChrisyd 1:f44175dd69fd 126 #endif
TheChrisyd 1:f44175dd69fd 127 #ifdef BUTTON_Z_PIN
TheChrisyd 1:f44175dd69fd 128 , BUTTON_Z_PIN
TheChrisyd 1:f44175dd69fd 129 #endif
TheChrisyd 1:f44175dd69fd 130 #ifdef BUTTON_ST_PIN
TheChrisyd 1:f44175dd69fd 131 , BUTTON_ST_PIN
TheChrisyd 1:f44175dd69fd 132 #endif
TheChrisyd 1:f44175dd69fd 133 #ifdef BUTTON_SEL_PIN
TheChrisyd 1:f44175dd69fd 134 , BUTTON_SEL_PIN
TheChrisyd 1:f44175dd69fd 135 #endif
TheChrisyd 1:f44175dd69fd 136 #ifdef STICK_LEFT_PIN
TheChrisyd 1:f44175dd69fd 137 , STICK_LEFT_PIN,
TheChrisyd 1:f44175dd69fd 138 STICK_RIGHT_PIN,
TheChrisyd 1:f44175dd69fd 139 STICK_UP_PIN,
TheChrisyd 1:f44175dd69fd 140 STICK_DOWN_PIN
TheChrisyd 1:f44175dd69fd 141 #endif
TheChrisyd 1:f44175dd69fd 142 };
TheChrisyd 1:f44175dd69fd 143 Joystick::Joystick()
TheChrisyd 1:f44175dd69fd 144 {
TheChrisyd 1:f44175dd69fd 145 // set up digital pins for dpad and buttons
TheChrisyd 1:f44175dd69fd 146 // const prog_uchar *pin = joystickPinList;
TheChrisyd 1:f44175dd69fd 147 for (byte i=0; i<sizeof(joystickPinList); ++i) {
TheChrisyd 1:f44175dd69fd 148 byte p = pgm_read_byte(joystickPinList+i);
TheChrisyd 1:f44175dd69fd 149 //pinMode(p,INPUT);
TheChrisyd 1:f44175dd69fd 150 //digitalWrite(p,HIGH);
TheChrisyd 1:f44175dd69fd 151 }
TheChrisyd 1:f44175dd69fd 152 stickX = stickY = 0;
TheChrisyd 1:f44175dd69fd 153 xCal = yCal = 0;
TheChrisyd 1:f44175dd69fd 154 buttons = prev = dpad = 0;
TheChrisyd 1:f44175dd69fd 155
TheChrisyd 1:f44175dd69fd 156 #ifdef ANALOG_X_PIN
TheChrisyd 1:f44175dd69fd 157 dpad |= ANALOG_STICK_BIT;
TheChrisyd 1:f44175dd69fd 158 #endif
TheChrisyd 1:f44175dd69fd 159 }
TheChrisyd 1:f44175dd69fd 160 bool Joystick::hasAnalogStick()
TheChrisyd 1:f44175dd69fd 161 {
TheChrisyd 1:f44175dd69fd 162 return (dpad&ANALOG_STICK_BIT)!=0;
TheChrisyd 1:f44175dd69fd 163 }
TheChrisyd 1:f44175dd69fd 164 void Joystick::recalibrate()
TheChrisyd 1:f44175dd69fd 165 {
TheChrisyd 1:f44175dd69fd 166 read();
TheChrisyd 1:f44175dd69fd 167 xCal = stickX;
TheChrisyd 1:f44175dd69fd 168 yCal = stickY;
TheChrisyd 1:f44175dd69fd 169 }
TheChrisyd 1:f44175dd69fd 170 static char stickCalc(int a, char cal)
TheChrisyd 1:f44175dd69fd 171 {
TheChrisyd 1:f44175dd69fd 172 //a = ((analogRead(a)-512)/4)-cal;
TheChrisyd 1:f44175dd69fd 173 if (a < -128) a = -128;
TheChrisyd 1:f44175dd69fd 174 if (a > 127) a = 127;
TheChrisyd 1:f44175dd69fd 175 return char(a);
TheChrisyd 1:f44175dd69fd 176 }
TheChrisyd 1:f44175dd69fd 177 void Joystick::read()
TheChrisyd 1:f44175dd69fd 178 {
TheChrisyd 1:f44175dd69fd 179 // Joystick buttons
TheChrisyd 1:f44175dd69fd 180 prev = buttons;
TheChrisyd 1:f44175dd69fd 181 buttons = 0;
TheChrisyd 1:f44175dd69fd 182 #ifdef BUTTON_A_PIN
TheChrisyd 1:f44175dd69fd 183 // if (digitalRead(BUTTON_A_PIN)==LOW) { buttons |= buttonA; }
TheChrisyd 1:f44175dd69fd 184 #endif
TheChrisyd 1:f44175dd69fd 185 #ifdef BUTTON_B_PIN
TheChrisyd 1:f44175dd69fd 186 // if (digitalRead(BUTTON_B_PIN)==LOW) { buttons |= buttonB; }
TheChrisyd 1:f44175dd69fd 187 #endif
TheChrisyd 1:f44175dd69fd 188 #ifdef BUTTON_C_PIN
TheChrisyd 1:f44175dd69fd 189 // if (digitalRead(BUTTON_C_PIN)==LOW) { buttons |= buttonC; }
TheChrisyd 1:f44175dd69fd 190 #endif
TheChrisyd 1:f44175dd69fd 191 #ifdef BUTTON_X_PIN
TheChrisyd 1:f44175dd69fd 192 // if (digitalRead(BUTTON_X_PIN)==LOW) { buttons |= buttonX; }
TheChrisyd 1:f44175dd69fd 193 #endif
TheChrisyd 1:f44175dd69fd 194 #ifdef BUTTON_Y_PIN
TheChrisyd 1:f44175dd69fd 195 // if (digitalRead(BUTTON_Y_PIN)==LOW) { buttons |= buttonY; }
TheChrisyd 1:f44175dd69fd 196 #endif
TheChrisyd 1:f44175dd69fd 197 #ifdef BUTTON_Z_PIN
TheChrisyd 1:f44175dd69fd 198 // if (digitalRead(BUTTON_Z_PIN)==LOW) { buttons |= buttonZ; }
TheChrisyd 1:f44175dd69fd 199 #endif
TheChrisyd 1:f44175dd69fd 200 #ifdef BUTTON_SEL_PIN
TheChrisyd 1:f44175dd69fd 201 // if (digitalRead(BUTTON_SEL_PIN)==LOW){ buttons |= buttonSelect; }
TheChrisyd 1:f44175dd69fd 202 #endif
TheChrisyd 1:f44175dd69fd 203 #ifdef BUTTON_ST_PIN
TheChrisyd 1:f44175dd69fd 204 // if (digitalRead(BUTTON_ST_PIN)==LOW){ buttons |= buttonStart; }
TheChrisyd 1:f44175dd69fd 205 #endif
TheChrisyd 1:f44175dd69fd 206
TheChrisyd 1:f44175dd69fd 207 // Digital joystick/dpad
TheChrisyd 1:f44175dd69fd 208 dpad &= STICK_INFO_MASK; // The top bits are informational...preserve them
TheChrisyd 1:f44175dd69fd 209 #ifdef STICK_LEFT_PIN
TheChrisyd 1:f44175dd69fd 210 // if (!digitalRead(STICK_LEFT_PIN)) { dpad |= STICK_LEFT_BIT; }
TheChrisyd 1:f44175dd69fd 211 // if (!digitalRead(STICK_RIGHT_PIN)) { dpad |= STICK_RIGHT_BIT; }
TheChrisyd 1:f44175dd69fd 212 // if (!digitalRead(STICK_UP_PIN)) { dpad |= STICK_UP_BIT; }
TheChrisyd 1:f44175dd69fd 213 // if (!digitalRead(STICK_DOWN_PIN)) { dpad |= STICK_DOWN_BIT; }
TheChrisyd 1:f44175dd69fd 214 #ifdef DIGITAL_EMULATE_ANALOG
TheChrisyd 1:f44175dd69fd 215 stickX = 0;
TheChrisyd 1:f44175dd69fd 216 if (dpad&STICK_LEFT_BIT) { stickX = -127; }
TheChrisyd 1:f44175dd69fd 217 else if (dpad&STICK_RIGHT_BIT) { stickX = 127; }
TheChrisyd 1:f44175dd69fd 218 stickY = 0;
TheChrisyd 1:f44175dd69fd 219 if (dpad&STICK_UP_BIT) { stickY = 127; }
TheChrisyd 1:f44175dd69fd 220 else if (dpad&STICK_DOWN_BIT) { stickY = -127; }
TheChrisyd 1:f44175dd69fd 221 #endif
TheChrisyd 1:f44175dd69fd 222 #endif
TheChrisyd 1:f44175dd69fd 223
TheChrisyd 1:f44175dd69fd 224 // Analog stick
TheChrisyd 1:f44175dd69fd 225 #ifdef ANALOG_X_PIN
TheChrisyd 1:f44175dd69fd 226 stickX = stickCalc(ANALOG_X_PIN,xCal);
TheChrisyd 1:f44175dd69fd 227 #endif
TheChrisyd 1:f44175dd69fd 228 #ifdef ANALOG_Y_PIN
TheChrisyd 1:f44175dd69fd 229 stickY = stickCalc(ANALOG_Y_PIN,yCal);
TheChrisyd 1:f44175dd69fd 230 #endif
TheChrisyd 1:f44175dd69fd 231 #ifdef ANALOG_EMULATE_DIGITAL
TheChrisyd 1:f44175dd69fd 232 if (stickX < -40) { dpad |= STICK_LEFT_BIT; }
TheChrisyd 1:f44175dd69fd 233 else if (stickX > 40) { dpad |= STICK_RIGHT_BIT; }
TheChrisyd 1:f44175dd69fd 234 if (stickY > 40) { dpad |= STICK_UP_BIT; }
TheChrisyd 1:f44175dd69fd 235 else if (stickY < -40) { dpad |= STICK_DOWN_BIT; }
TheChrisyd 1:f44175dd69fd 236 #endif
TheChrisyd 1:f44175dd69fd 237 }
TheChrisyd 1:f44175dd69fd 238
TheChrisyd 1:f44175dd69fd 239 /*--------------------------------------------------------
TheChrisyd 1:f44175dd69fd 240 Useful function to show joystick status on screen.
TheChrisyd 1:f44175dd69fd 241
TheChrisyd 1:f44175dd69fd 242 Note: You won't make your program any smaller by
TheChrisyd 1:f44175dd69fd 243 removing this - the Arduino compiler is really,
TheChrisyd 1:f44175dd69fd 244 really good at discarding unused code.
TheChrisyd 1:f44175dd69fd 245
TheChrisyd 1:f44175dd69fd 246 ie. If you're not calling Joystick::dump() then it
TheChrisyd 1:f44175dd69fd 247 doesn't take up any space. Try it and see...!
TheChrisyd 1:f44175dd69fd 248 --------------------------------------------------------*/
TheChrisyd 1:f44175dd69fd 249 // Formatted output of joystick position
TheChrisyd 1:f44175dd69fd 250 static void jpos(int v, char *s, char t)
TheChrisyd 1:f44175dd69fd 251 {
TheChrisyd 1:f44175dd69fd 252 *s++ = t;
TheChrisyd 1:f44175dd69fd 253 *s++ = ':';
TheChrisyd 1:f44175dd69fd 254 boolean neg = (v<0);
TheChrisyd 1:f44175dd69fd 255 if (neg) {
TheChrisyd 1:f44175dd69fd 256 v = -v;
TheChrisyd 1:f44175dd69fd 257 }
TheChrisyd 1:f44175dd69fd 258 char *o = s;
TheChrisyd 1:f44175dd69fd 259 int m = 1000;
TheChrisyd 1:f44175dd69fd 260 while (m != 0) {
TheChrisyd 1:f44175dd69fd 261 int d = v/m;
TheChrisyd 1:f44175dd69fd 262 *o++ = d+'0';
TheChrisyd 1:f44175dd69fd 263 v -= d*m;
TheChrisyd 1:f44175dd69fd 264 m /= 10;
TheChrisyd 1:f44175dd69fd 265 }
TheChrisyd 1:f44175dd69fd 266 *o-- = 0;
TheChrisyd 1:f44175dd69fd 267 // Remove leading zeros
TheChrisyd 1:f44175dd69fd 268 while ((s<o) and (*s=='0')) {
TheChrisyd 1:f44175dd69fd 269 *s++ = ' ';
TheChrisyd 1:f44175dd69fd 270 }
TheChrisyd 1:f44175dd69fd 271 if (neg) {
TheChrisyd 1:f44175dd69fd 272 s[-1] = '-';
TheChrisyd 1:f44175dd69fd 273 }
TheChrisyd 1:f44175dd69fd 274 }
TheChrisyd 1:f44175dd69fd 275 void Joystick::dump(int sx, int sy)
TheChrisyd 1:f44175dd69fd 276 {
TheChrisyd 1:f44175dd69fd 277 char temp[32];
TheChrisyd 1:f44175dd69fd 278 if (hasAnalogStick()) {
TheChrisyd 1:f44175dd69fd 279 jpos(analogX(),temp,'X');
TheChrisyd 1:f44175dd69fd 280 GD.putstr(sx,sy++,temp);
TheChrisyd 1:f44175dd69fd 281 jpos(analogY(),temp,'Y');
TheChrisyd 1:f44175dd69fd 282 GD.putstr(sx,sy++,temp);
TheChrisyd 1:f44175dd69fd 283 }
TheChrisyd 1:f44175dd69fd 284 temp[0] = 'D';
TheChrisyd 1:f44175dd69fd 285 temp[1] = ':';
TheChrisyd 1:f44175dd69fd 286 char *s = temp+2;
TheChrisyd 1:f44175dd69fd 287 *s++ = left() ?'L':'.';
TheChrisyd 1:f44175dd69fd 288 *s++ = right() ?'R':'.';
TheChrisyd 1:f44175dd69fd 289 *s++ = up() ?'U':'.';
TheChrisyd 1:f44175dd69fd 290 *s++ = down() ?'D':'.';
TheChrisyd 1:f44175dd69fd 291 *s = 0;
TheChrisyd 1:f44175dd69fd 292 GD.putstr(sx,sy++,temp);
TheChrisyd 1:f44175dd69fd 293 temp[0] = 'B';
TheChrisyd 1:f44175dd69fd 294 s = temp+2;
TheChrisyd 1:f44175dd69fd 295 *s++ = (buttons&buttonSelect)?'L':'.';
TheChrisyd 1:f44175dd69fd 296 *s++ = (buttons&buttonStart)?'S':'.';
TheChrisyd 1:f44175dd69fd 297 *s++ = (buttons&buttonZ)?'Z':'.';
TheChrisyd 1:f44175dd69fd 298 *s++ = (buttons&buttonY)?'Y':'.';
TheChrisyd 1:f44175dd69fd 299 *s++ = (buttons&buttonX)?'X':'.';
TheChrisyd 1:f44175dd69fd 300 *s++ = (buttons&buttonC)?'C':'.';
TheChrisyd 1:f44175dd69fd 301 *s++ = (buttons&buttonB)?'B':'.';
TheChrisyd 1:f44175dd69fd 302 *s++ = (buttons&buttonA)?'A':'.';
TheChrisyd 1:f44175dd69fd 303 *s = 0;
TheChrisyd 1:f44175dd69fd 304 GD.putstr(sx,sy++,temp);
TheChrisyd 0:8a7c58553b44 305 }