- else
- {
- L_count=0;
- }
-
- //unsigned long padTmp=0;
- // shift the bits in
- // up
- //padTmp=(pad & GP2X_UP) ; // 1 is 2^0,
- JS |= ((pad & GP2X_UP) << (4-0)); // 0x10 is 2^4
-
- //padTmp=(pad & GP2X_DOWN); // 0x10 is 2^4,
- JS |= ((pad & GP2X_DOWN) << (5-4)); // 0x20 is 2^5
-
- //padTmp=(pad & GP2X_LEFT); // 0x4 is 2^2,
- JS |= ((pad & GP2X_LEFT) << (6-2)); // 0x40 is 2^6
-
- //padTmp=(pad & GP2X_RIGHT); // 0x40 is 2^6,
- JS |= ((pad & GP2X_RIGHT) << (7-6)); // 0x80 is 2^7
-
-
-#define A_down (pad & GP2X_A)
-#define B_down (pad & GP2X_B)
-#define X_down (pad & GP2X_X)
-#define Y_down (pad & GP2X_Y)
-
- // should be 2 cycles held, 1 cycle release
- turbo_toggle_A=(turbo_toggle_A+1) % 3;
- turbo_toggle_B=(turbo_toggle_B+1) % 3;
-
- // 0 is none // 1 is Y & B turbo // 2 is X & A turbo
- // B or X are both considered A
- //padTmp=B_down >> 13; // 2^13,
-
- if (!(TurboFireTop && (!turbo_toggle_A)))
- {
- JS |= ((B_down >> 13) << 0); // 0x1 is 2^0
- }
- // A or Y are both considered B
- //padTmp=A_down >> 12; // 2^13,
- if (!(TurboFireBottom && (!turbo_toggle_B)))
- {
- JS |= ((A_down >> 12) << 1); // 0x2 is 2^1
- }
-
- if (swapbuttons)
- {
- //padTmp=X_down >> 14; // 2^13,
- if (!(TurboFireBottom && (!turbo_toggle_A)))
- {
-// JS |= ((X_down >> 14) << 0); // 0x1 is 2^0
- JS |= ((Y_down >> 15) << 0); // 0x1 is 2^0
- }
-
- //padTmp=Y_down >> 15; // 2^13,
- if (!(TurboFireTop && (!turbo_toggle_B)))
- {
- JS |= ((X_down >> 14) << 1); // 0x2 is 2^1
- }
- }
- else
- {
- //padTmp=X_down >> 14; // 2^13,
- if (!(TurboFireBottom && (!turbo_toggle_A)))
- {
- JS |= ((X_down >> 14) << 0); // 0x1 is 2^0
- }
-
- //padTmp=Y_down >> 15; // 2^13,
- if (!(TurboFireTop && (!turbo_toggle_B)))
- {
- JS |= ((Y_down >> 15) << 1); // 0x2 is 2^1
- }
- }
-
- // select
- //padTmp=(pad & GP2X_SELECT) >> 9; // 0x40 is 2^9,
- JS |= (((pad & GP2X_SELECT) >> 9) << 2); // 0x4 is 2^2
-
- // start
- //padTmp=(pad & GP2X_START) >> 8; // 2^8,
- JS |= (((pad & GP2X_START) >> 8) << 3); // 0x8 is 2^3
-
-
- JSreturn = JS;
- lastpad=pad;
-
- return pad;
- //JSreturn=(JS&0xFF000000)|(JS&0xFF)|((JS&0xFF0000)>>8)|((JS&0xFF00)<<8);
-no_pad:
- JSreturn=0;
- lastpad=pad;
- return 0;