MCPcopy Create free account
hub / github.com/DaedalusX64/daedalus / SwapJoyStick

Method SwapJoyStick

Source/SysPSP/Input/InputManagerPSP.cpp:327–382  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

325}
326
327void IInputManager::SwapJoyStick(OSContPad *pPad, SceCtrlData *pad)
328{
329 switch( mpControllerConfig->GetJoySwap() )
330 {
331 case 'A': //No swap (default)
332 break;
333
334 case 'B': //Swap Joystick with PSP Dpad
335 {
336 u32 tmp = pad->Buttons; //Save a copy
337
338 // Make a digital version of the Analogue stick that can be mapped to N64 buttons //Corn
339 pad->Buttons &= ~(PSP_CTRL_UP | PSP_CTRL_DOWN | PSP_CTRL_RIGHT | PSP_CTRL_LEFT); //Clear out original DPAD
340 if(pPad->stick_x > 40) pad->Buttons |= PSP_CTRL_RIGHT;
341 else if(pPad->stick_x < -40) pad->Buttons |= PSP_CTRL_LEFT;
342
343 if(pPad->stick_y > 40) pad->Buttons |= PSP_CTRL_UP;
344 else if(pPad->stick_y < -40) pad->Buttons |= PSP_CTRL_DOWN;
345
346 //Set Stick
347 if( tmp & PSP_CTRL_RIGHT ) pPad->stick_x = s8(N64_ANALOGUE_STICK_RANGE);
348 else if( tmp & PSP_CTRL_LEFT ) pPad->stick_x = -s8(N64_ANALOGUE_STICK_RANGE);
349 else pPad->stick_x = 0;
350
351 if( tmp & PSP_CTRL_UP ) pPad->stick_y = s8(N64_ANALOGUE_STICK_RANGE);
352 else if( tmp & PSP_CTRL_DOWN ) pPad->stick_y = -s8(N64_ANALOGUE_STICK_RANGE);
353 else pPad->stick_y = 0;
354 }
355 break;
356
357 case 'C': //Swap Joystick with PSP buttons
358 {
359 u32 tmp = pad->Buttons; //Save a copy
360
361 // Make a digital version of the Analogue stick that can be mapped to N64 buttons //Corn
362 pad->Buttons &= ~(PSP_CTRL_TRIANGLE | PSP_CTRL_CROSS | PSP_CTRL_CIRCLE | PSP_CTRL_SQUARE); //Clear out original buttons
363 if(pPad->stick_x > 40) pad->Buttons |= PSP_CTRL_CIRCLE;
364 else if(pPad->stick_x < -40) pad->Buttons |= PSP_CTRL_SQUARE;
365
366 if(pPad->stick_y > 40) pad->Buttons |= PSP_CTRL_TRIANGLE;
367 else if(pPad->stick_y < -40) pad->Buttons |= PSP_CTRL_CROSS;
368
369 //Set Stick
370 if( tmp & PSP_CTRL_CIRCLE ) pPad->stick_x = s8(N64_ANALOGUE_STICK_RANGE);
371 else if( tmp & PSP_CTRL_SQUARE ) pPad->stick_x = -s8(N64_ANALOGUE_STICK_RANGE);
372 else pPad->stick_x = 0;
373
374 if( tmp & PSP_CTRL_TRIANGLE ) pPad->stick_y = s8(N64_ANALOGUE_STICK_RANGE);
375 else if( tmp & PSP_CTRL_CROSS ) pPad->stick_y = -s8(N64_ANALOGUE_STICK_RANGE);
376 else pPad->stick_y = 0;
377 }
378 break;
379 default:
380 break;
381 }
382}
383//*****************************************************************************
384//

Callers

nothing calls this directly

Calls 1

GetJoySwapMethod · 0.80

Tested by

no test coverage detected