mirror of
https://github.com/libretro/ppsspp.git
synced 2025-02-25 19:30:53 +00:00
Fix viim for x86, implement for ARM.
This commit is contained in:
parent
8972bf0d12
commit
7fc5ce56de
@ -85,25 +85,25 @@ struct DefaultKeyMap {
|
||||
static KeyMapping defaultShieldMap()
|
||||
{
|
||||
KeyMapping m;
|
||||
m[KeyDef(DEVICE_ID_X360_0, KEYCODE_BUTTON_A)] = CTRL_CROSS;
|
||||
m[KeyDef(DEVICE_ID_X360_0, KEYCODE_BUTTON_B)] = CTRL_CIRCLE;
|
||||
m[KeyDef(DEVICE_ID_X360_0, KEYCODE_BUTTON_X)] = CTRL_SQUARE;
|
||||
m[KeyDef(DEVICE_ID_X360_0, KEYCODE_BUTTON_Y)] = CTRL_TRIANGLE;
|
||||
m[KeyDef(DEVICE_ID_X360_0, KEYCODE_BUTTON_START)] = CTRL_START;
|
||||
m[KeyDef(DEVICE_ID_X360_0, KEYCODE_BUTTON_SELECT)] = CTRL_SELECT;
|
||||
m[KeyDef(DEVICE_ID_X360_0, KEYCODE_BUTTON_L1)] = CTRL_LTRIGGER;
|
||||
m[KeyDef(DEVICE_ID_X360_0, KEYCODE_BUTTON_R1)] = CTRL_RTRIGGER;
|
||||
m[KeyDef(DEVICE_ID_X360_0, KEYCODE_BUTTON_R2)] = VIRTKEY_UNTHROTTLE;
|
||||
m[KeyDef(DEVICE_ID_X360_0, KEYCODE_BUTTON_THUMBR)] = VIRTKEY_PAUSE;
|
||||
m[KeyDef(DEVICE_ID_X360_0, KEYCODE_BUTTON_L2)] = VIRTKEY_SPEED_TOGGLE;
|
||||
m[AxisDef(DEVICE_ID_X360_0, JOYSTICK_AXIS_X, -1)] = VIRTKEY_AXIS_X_MIN;
|
||||
m[AxisDef(DEVICE_ID_X360_0, JOYSTICK_AXIS_X, +1)] = VIRTKEY_AXIS_X_MAX;
|
||||
m[AxisDef(DEVICE_ID_X360_0, JOYSTICK_AXIS_Y, -1)] = VIRTKEY_AXIS_Y_MIN;
|
||||
m[AxisDef(DEVICE_ID_X360_0, JOYSTICK_AXIS_Y, +1)] = VIRTKEY_AXIS_Y_MAX;
|
||||
m[AxisDef(DEVICE_ID_X360_0, JOYSTICK_AXIS_HAT_X, -1)] = CTRL_LEFT;
|
||||
m[AxisDef(DEVICE_ID_X360_0, JOYSTICK_AXIS_HAT_X, +1)] = CTRL_RIGHT;
|
||||
m[AxisDef(DEVICE_ID_X360_0, JOYSTICK_AXIS_HAT_Y, -1)] = CTRL_UP;
|
||||
m[AxisDef(DEVICE_ID_X360_0, JOYSTICK_AXIS_HAT_Y, +1)] = CTRL_DOWN;
|
||||
m[KeyDef(DEVICE_ID_PAD_0, KEYCODE_BUTTON_A)] = CTRL_CROSS;
|
||||
m[KeyDef(DEVICE_ID_PAD_0, KEYCODE_BUTTON_B)] = CTRL_CIRCLE;
|
||||
m[KeyDef(DEVICE_ID_PAD_0, KEYCODE_BUTTON_X)] = CTRL_SQUARE;
|
||||
m[KeyDef(DEVICE_ID_PAD_0, KEYCODE_BUTTON_Y)] = CTRL_TRIANGLE;
|
||||
m[KeyDef(DEVICE_ID_PAD_0, KEYCODE_BUTTON_START)] = CTRL_START;
|
||||
m[KeyDef(DEVICE_ID_PAD_0, KEYCODE_BUTTON_SELECT)] = CTRL_SELECT;
|
||||
m[KeyDef(DEVICE_ID_PAD_0, KEYCODE_BUTTON_L1)] = CTRL_LTRIGGER;
|
||||
m[KeyDef(DEVICE_ID_PAD_0, KEYCODE_BUTTON_R1)] = CTRL_RTRIGGER;
|
||||
m[KeyDef(DEVICE_ID_PAD_0, KEYCODE_BUTTON_R2)] = VIRTKEY_UNTHROTTLE;
|
||||
m[KeyDef(DEVICE_ID_PAD_0, KEYCODE_BUTTON_THUMBR)] = VIRTKEY_PAUSE;
|
||||
m[KeyDef(DEVICE_ID_PAD_0, KEYCODE_BUTTON_L2)] = VIRTKEY_SPEED_TOGGLE;
|
||||
m[AxisDef(DEVICE_ID_PAD_0, JOYSTICK_AXIS_X, -1)] = VIRTKEY_AXIS_X_MIN;
|
||||
m[AxisDef(DEVICE_ID_PAD_0, JOYSTICK_AXIS_X, +1)] = VIRTKEY_AXIS_X_MAX;
|
||||
m[AxisDef(DEVICE_ID_PAD_0, JOYSTICK_AXIS_Y, -1)] = VIRTKEY_AXIS_Y_MIN;
|
||||
m[AxisDef(DEVICE_ID_PAD_0, JOYSTICK_AXIS_Y, +1)] = VIRTKEY_AXIS_Y_MAX;
|
||||
m[AxisDef(DEVICE_ID_PAD_0, JOYSTICK_AXIS_HAT_X, -1)] = CTRL_LEFT;
|
||||
m[AxisDef(DEVICE_ID_PAD_0, JOYSTICK_AXIS_HAT_X, +1)] = CTRL_RIGHT;
|
||||
m[AxisDef(DEVICE_ID_PAD_0, JOYSTICK_AXIS_HAT_Y, -1)] = CTRL_UP;
|
||||
m[AxisDef(DEVICE_ID_PAD_0, JOYSTICK_AXIS_HAT_Y, +1)] = CTRL_DOWN;
|
||||
return m;
|
||||
}
|
||||
|
||||
|
@ -1153,7 +1153,17 @@ namespace MIPSComp
|
||||
}
|
||||
|
||||
void Jit::Comp_Viim(u32 op) {
|
||||
DISABLE;
|
||||
CONDITIONAL_DISABLE;
|
||||
|
||||
u8 dreg;
|
||||
GetVectorRegs(&dreg, V_Single, _VT);
|
||||
|
||||
s32 imm = (s32)(s16)(u16)(op & 0xFFFF);
|
||||
fpr.MapRegV(dreg, MAP_DIRTY | MAP_NOINIT);
|
||||
MOVI2F(fpr.V(dreg), (float)imm, R0);
|
||||
|
||||
ApplyPrefixD(&dreg, V_Single);
|
||||
fpr.ReleaseSpillLocksAndDiscardTemps();
|
||||
}
|
||||
|
||||
void Jit::Comp_Vfim(u32 op) {
|
||||
|
@ -1202,14 +1202,15 @@ void Jit::Comp_Vcmov(u32 op) {
|
||||
}
|
||||
|
||||
void Jit::Comp_Viim(u32 op) {
|
||||
DISABLE;
|
||||
CONDITIONAL_DISABLE;
|
||||
|
||||
u8 dreg;
|
||||
GetVectorRegs(&dreg, V_Single, _VT);
|
||||
|
||||
s32 imm = (s32)(s16)(u16)(op & 0xFFFF);
|
||||
MOV(32, R(EAX), Imm32(imm));
|
||||
FP32 fp;
|
||||
fp.f = (float)imm;
|
||||
MOV(32, R(EAX), Imm32(fp.u));
|
||||
fpr.MapRegV(dreg, MAP_DIRTY | MAP_NOINIT);
|
||||
MOVD_xmm(fpr.VX(dreg), R(EAX));
|
||||
|
||||
|
@ -344,8 +344,6 @@ void EmuScreen::axis(const AxisInput &axis) {
|
||||
}
|
||||
|
||||
void EmuScreen::processAxis(const AxisInput &axis, int direction) {
|
||||
// ILOG("axis: %i %i %f", axis.deviceId, axis.axisId, axis.value);
|
||||
|
||||
int result = KeyMap::AxisToPspButton(axis.deviceId, axis.axisId, direction);
|
||||
if (result == KEYMAP_ERROR_UNKNOWN_KEY)
|
||||
return;
|
||||
|
Loading…
x
Reference in New Issue
Block a user