--- uae/src/keybuf.c 2018/04/24 16:40:04 1.1.1.3 +++ uae/src/keybuf.c 2018/04/24 16:44:53 1.1.1.4 @@ -32,11 +32,11 @@ void getjoystate(int nr, unsigned int *s { int *fake = 0; - if (JSEM_ISJOY0 (nr, currprefs.fake_joystick)) + if (JSEM_ISJOY0 (nr, &currprefs)) nr = 0; - else if (JSEM_ISJOY1 (nr, currprefs.fake_joystick)) + else if (JSEM_ISJOY1 (nr, &currprefs)) nr = 1; - else if (JSEM_ISMOUSE (nr, currprefs.fake_joystick)) { + else if (JSEM_ISMOUSE (nr, &currprefs)) { *st = 0; *button = 0; return; @@ -114,8 +114,10 @@ void record_key (int kc) case AK_LALT: fs_se[4] = !(kc & 1); return; } } - if (kc == AK_RCTRL) - kc = AK_CTRL; + if ((kc >> 1) == AK_RCTRL) { + kc ^= AK_RCTRL << 1; + kc ^= AK_CTRL << 1; + } keybuf[kpb_first] = kc; kpb_first = kpb_next; } @@ -124,19 +126,19 @@ void joystick_setting_changed (void) { fs_np = fs_ck = fs_se = 0; - if (JSEM_ISNUMPAD (0, currprefs.fake_joystick)) + if (JSEM_ISNUMPAD (0, &currprefs)) fs_np = fakestate[0]; - else if (JSEM_ISNUMPAD (1, currprefs.fake_joystick)) + else if (JSEM_ISNUMPAD (1, &currprefs)) fs_np = fakestate[1]; - if (JSEM_ISCURSOR (0, currprefs.fake_joystick)) + if (JSEM_ISCURSOR (0, &currprefs)) fs_ck = fakestate[0]; - else if (JSEM_ISCURSOR (1, currprefs.fake_joystick)) + else if (JSEM_ISCURSOR (1, &currprefs)) fs_ck = fakestate[1]; - if (JSEM_ISSOMEWHEREELSE (0, currprefs.fake_joystick)) + if (JSEM_ISSOMEWHEREELSE (0, &currprefs)) fs_se = fakestate[0]; - else if (JSEM_ISSOMEWHEREELSE (1, currprefs.fake_joystick)) + else if (JSEM_ISSOMEWHEREELSE (1, &currprefs)) fs_se = fakestate[1]; }