diff --git a/VisualGDB/Amiberry-RPI1/Amiberry-RPI1.vcxproj b/VisualGDB/Amiberry-RPI1/Amiberry-RPI1.vcxproj index 1fd0fed0..b4bfac83 100644 --- a/VisualGDB/Amiberry-RPI1/Amiberry-RPI1.vcxproj +++ b/VisualGDB/Amiberry-RPI1/Amiberry-RPI1.vcxproj @@ -40,7 +40,8 @@ GNUPP14 =/usr/local/include/SDL2;=/usr/include/libxml2;../../src;../../src/osdep;../../src/threaddep;../../src/include;../../guisan-dev/include;../../src/archivers;%(ClCompile.AdditionalIncludeDirectories) DEBUG=1;_REENTRANT;AMIBERRY;CPU_arm;ARMV6_ASSEMBLY;ARM_HAS_DIV;USE_SDL2;_FILE_OFFSET_BITS=64;%(ClCompile.PreprocessorDefinitions) - -march=armv6zk -mtune=arm1176jzf-s -mfpu=vfp %(AdditionalOptions) + -march=armv6zk -mtune=arm1176jzf-s -mfpu=vfp + -march=armv6zk -mtune=arm1176jzf-s -mfpu=vfp ;%(Link.AdditionalLinkerInputs) @@ -54,7 +55,8 @@ GNUPP14 =/usr/local/include/SDL2;=/usr/include/libxml2;../../src;../../src/osdep;../../src/threaddep;../../src/include;../../guisan-dev/include;../../src/archivers;%(ClCompile.AdditionalIncludeDirectories) NDEBUG=1;RELEASE=1;_REENTRANT;AMIBERRY;CPU_arm;ARMV6_ASSEMBLY;ARM_HAS_DIV;USE_SDL2;_FILE_OFFSET_BITS=64;%(ClCompile.PreprocessorDefinitions) - -march=armv6zk -mtune=arm1176jzf-s -mfpu=vfp %(AdditionalOptions) + -march=armv6zk -mtune=arm1176jzf-s -mfpu=vfp -mfloat-abi=hard + -march=armv6zk -mtune=arm1176jzf-s -mfpu=vfp -mfloat-abi=hard ;%(Link.AdditionalLinkerInputs) diff --git a/VisualGDB/Amiberry-sdl1/Amiberry-sdl1.vcxproj b/VisualGDB/Amiberry-sdl1/Amiberry-sdl1.vcxproj index aebe9e5b..febb9ca0 100644 --- a/VisualGDB/Amiberry-sdl1/Amiberry-sdl1.vcxproj +++ b/VisualGDB/Amiberry-sdl1/Amiberry-sdl1.vcxproj @@ -39,7 +39,8 @@ GNUPP14 =/usr/include/SDL;=/opt/vc/include;=/opt/vc/include/interface/vmcs_host/linux;=/opt/vc/include/interface/vcos/pthreads;=/usr/include/libxml2;../../src;../../src/osdep;../../src/threaddep;../../src/include;../../src/archivers;%(ClCompile.AdditionalIncludeDirectories) DEBUG=1;ARMV6T2;USE_ARMNEON;ARM_HAS_DIV;_REENTRANT;AMIBERRY;CPU_arm;ARMV6_ASSEMBLY;USE_SDL1;USE_DISPMANX;_FILE_OFFSET_BITS=64;%(ClCompile.PreprocessorDefinitions) - -march=armv8-a -mfpu=neon-fp-armv8 -mfloat-abi=hard %(AdditionalOptions) + -march=armv8-a -mfpu=neon-fp-armv8 -mfloat-abi=hard + -march=armv8-a -mfpu=neon-fp-armv8 -mfloat-abi=hard ;%(Link.AdditionalLinkerInputs) @@ -53,7 +54,8 @@ GNUPP14 =/usr/include/SDL;=/opt/vc/include;=/opt/vc/include/interface/vmcs_host/linux;=/opt/vc/include/interface/vcos/pthreads;=/usr/include/libxml2;../../src;../../src/osdep;../../src/threaddep;../../src/include;../../src/archivers;%(ClCompile.AdditionalIncludeDirectories) NDEBUG=1;RELEASE=1;ARMV6T2;USE_ARMNEON;ARM_HAS_DIV;_REENTRANT;AMIBERRY;CPU_arm;ARMV6_ASSEMBLY;USE_SDL1;USE_DISPMANX;_FILE_OFFSET_BITS=64;%(ClCompile.PreprocessorDefinitions) - -march=armv8-a -mfpu=neon-fp-armv8 -mfloat-abi=hard %(AdditionalOptions) + -march=armv8-a -mfpu=neon-fp-armv8 -mfloat-abi=hard + -march=armv8-a -mfpu=neon-fp-armv8 -mfloat-abi=hard ;%(Link.AdditionalLinkerInputs) diff --git a/VisualGDB/Amiberry/Amiberry-Debug.vgdbsettings b/VisualGDB/Amiberry/Amiberry-Debug.vgdbsettings index 5e7d07e9..66d80145 100644 --- a/VisualGDB/Amiberry/Amiberry-Debug.vgdbsettings +++ b/VisualGDB/Amiberry/Amiberry-Debug.vgdbsettings @@ -96,7 +96,7 @@ - + ClangFormat true diff --git a/VisualGDB/Amiberry/Amiberry.vcxproj b/VisualGDB/Amiberry/Amiberry.vcxproj index b3af89dd..a0558f5d 100644 --- a/VisualGDB/Amiberry/Amiberry.vcxproj +++ b/VisualGDB/Amiberry/Amiberry.vcxproj @@ -62,7 +62,8 @@ GNUPP14 =/usr/local/include/SDL2;=/usr/include/libxml2;../../src;../../src/osdep;../../src/threaddep;../../src/include;../../guisan-dev/include;../../src/archivers;%(ClCompile.AdditionalIncludeDirectories) DEBUG=1;ARMV6T2;USE_ARMNEON;ARM_HAS_DIV;_REENTRANT;AMIBERRY;CPU_arm;ARMV6_ASSEMBLY;USE_SDL2;_FILE_OFFSET_BITS=64;%(ClCompile.PreprocessorDefinitions) - -march=armv8-a -mfpu=neon-fp-armv8 -mfloat-abi=hard %(AdditionalOptions) + -march=armv8-a -mfpu=neon-fp-armv8 -mfloat-abi=hard + -march=armv8-a -mfpu=neon-fp-armv8 -mfloat-abi=hard ;%(Link.AdditionalLinkerInputs) @@ -76,7 +77,8 @@ GNUPP14 =/usr/local/include/SDL2;=/usr/include/libxml2;../../src;../../src/osdep;../../src/threaddep;../../src/include;../../guisan-dev/include;../../src/archivers;=/opt/vc/include;=/opt/vc/include/interface/vmcs_host/linux;=/opt/vc/include/interface/vcos/pthreads;%(ClCompile.AdditionalIncludeDirectories) DEBUG=1;ARMV6T2;USE_ARMNEON;ARM_HAS_DIV;_REENTRANT;AMIBERRY;CPU_arm;ARMV6_ASSEMBLY;USE_SDL2;USE_DISPMANX;_FILE_OFFSET_BITS=64;%(ClCompile.PreprocessorDefinitions) - -march=armv8-a -mfpu=neon-fp-armv8 %(AdditionalOptions) + -march=armv8-a -mfpu=neon-fp-armv8 -mfloat-abi=hard + -march=armv8-a -mfpu=neon-fp-armv8 -mfloat-abi=hard ;%(Link.AdditionalLinkerInputs) @@ -91,7 +93,8 @@ GNUPP14 =/usr/local/include/SDL2;=/usr/include/libxml2;../../src;../../src/osdep;../../src/threaddep;../../src/include;../../guisan-dev/include;../../src/archivers;%(ClCompile.AdditionalIncludeDirectories) NDEBUG=1;RELEASE=1;ARMV6T2;USE_ARMNEON;ARM_HAS_DIV;_REENTRANT;AMIBERRY;CPU_arm;ARMV6_ASSEMBLY;USE_SDL2;_FILE_OFFSET_BITS=64;%(ClCompile.PreprocessorDefinitions) - -march=armv8-a -mfpu=neon-fp-armv8 -mfloat-abi=hard %(AdditionalOptions) + -march=armv8-a -mfpu=neon-fp-armv8 -mfloat-abi=hard + -march=armv8-a -mfpu=neon-fp-armv8 -mfloat-abi=hard ;%(Link.AdditionalLinkerInputs) @@ -107,7 +110,8 @@ GNUPP14 =/usr/local/include/SDL2;=/usr/include/libxml2;../../src;../../src/osdep;../../src/threaddep;../../src/include;../../guisan-dev/include;../../src/archivers;=/opt/vc/include;=/opt/vc/include/interface/vmcs_host/linux;=/opt/vc/include/interface/vcos/pthreads;%(ClCompile.AdditionalIncludeDirectories) NDEBUG=1;RELEASE=1;ARMV6T2;USE_ARMNEON;ARM_HAS_DIV;_REENTRANT;AMIBERRY;CPU_arm;ARMV6_ASSEMBLY;USE_SDL2;USE_DISPMANX;_FILE_OFFSET_BITS=64;%(ClCompile.PreprocessorDefinitions) - -march=armv8-a -mfpu=neon-fp-armv8 -mfloat-abi=hard %(AdditionalOptions) + -march=armv8-a -mfpu=neon-fp-armv8 -mfloat-abi=hard + -march=armv8-a -mfpu=neon-fp-armv8 -mfloat-abi=hard ;%(Link.AdditionalLinkerInputs) diff --git a/src/inputdevice.cpp b/src/inputdevice.cpp index 7c05539f..b728ac9b 100644 --- a/src/inputdevice.cpp +++ b/src/inputdevice.cpp @@ -1882,7 +1882,6 @@ static void mouseupdate (int pct, bool vsync) mouse_frame_y[i] = mouse_y[i] - v2; } -#ifndef INPUTDEVICE_SIMPLE int v3 = getvelocity (i, 2, pct); /* if v != 0, record mouse wheel key presses * according to the NewMouse standard */ @@ -1890,7 +1889,7 @@ static void mouseupdate (int pct, bool vsync) record_key (0x7a << 1); else if (v3 < 0) record_key (0x7b << 1); -#endif + if (!mouse_deltanoreset[i][2]) mouse_delta[i][2] = 0; diff --git a/src/osdep/amiberry.cpp b/src/osdep/amiberry.cpp index 5fe58ce1..43434cd4 100644 --- a/src/osdep/amiberry.cpp +++ b/src/osdep/amiberry.cpp @@ -1371,10 +1371,19 @@ int handle_msgpump() case SDL_MOUSEWHEEL: if (currprefs.jports[0].id == JSEM_MICE || currprefs.jports[1].id == JSEM_MICE) { - const int valY = rEvent.wheel.y; - const int valX = rEvent.wheel.x; - setmousestate(0, 2, valY, 0); - setmousestate(0, 3, valX, 0); + const auto val_y = rEvent.wheel.y; + setmousestate(0, 2, val_y, 0); + if (val_y < 0) + setmousebuttonstate(0, 3 + 0, -1); + else if (val_y > 0) + setmousebuttonstate(0, 3 + 1, -1); + + const auto val_x = rEvent.wheel.x; + setmousestate(0, 3, val_x, 0); + if (val_x < 0) + setmousebuttonstate(0, 3 + 2, -1); + else if (val_x > 0) + setmousebuttonstate(0, 3 + 3, -1); } break; #endif diff --git a/src/osdep/amiberry_input.cpp b/src/osdep/amiberry_input.cpp index 365dfcb0..68465b66 100644 --- a/src/osdep/amiberry_input.cpp +++ b/src/osdep/amiberry_input.cpp @@ -19,12 +19,12 @@ struct host_keyboard_button host_keyboard_buttons[4]; const int remap_buttons = 16; #define REMAP_BUTTONS 16 -#define MAX_MOUSE_BUTTONS 2 -#define MAX_MOUSE_AXES 2 +#define MAX_MOUSE_BUTTONS 3 +#define MAX_MOUSE_AXES 4 #define FIRST_MOUSE_AXIS 0 #define FIRST_MOUSE_BUTTON MAX_MOUSE_AXES #define CHECK_BIT(var,pos) ((var) & (1<<(pos))) -#define SET_BIT(var,pos) (var |= 1 << pos) +#define SET_BIT(var,pos) ((var) |= 1 << (pos)) static int num_mice = 1; static int num_keys_as_joys; @@ -417,8 +417,10 @@ int input_get_default_mouse(struct uae_input_device* uid, const int i, const int { setid(uid, i, ID_AXIS_OFFSET + 0, 0, port, port ? INPUTEVENT_MOUSE2_HORIZ : INPUTEVENT_MOUSE1_HORIZ, gp); setid(uid, i, ID_AXIS_OFFSET + 1, 0, port, port ? INPUTEVENT_MOUSE2_VERT : INPUTEVENT_MOUSE1_VERT, gp); + setid(uid, i, ID_AXIS_OFFSET + 2, 0, port, port ? 0 : INPUTEVENT_MOUSE1_WHEEL, gp); setid_af(uid, i, ID_BUTTON_OFFSET + 0, 0, port, port ? INPUTEVENT_JOY2_FIRE_BUTTON : INPUTEVENT_JOY1_FIRE_BUTTON, af, gp); setid(uid, i, ID_BUTTON_OFFSET + 1, 0, port, port ? INPUTEVENT_JOY2_2ND_BUTTON : INPUTEVENT_JOY1_2ND_BUTTON, gp); + setid(uid, i, ID_BUTTON_OFFSET + 2, 0, port, port ? INPUTEVENT_JOY2_3RD_BUTTON : INPUTEVENT_JOY1_3RD_BUTTON, gp); } else @@ -1467,7 +1469,6 @@ int input_get_default_joystick(struct uae_input_device* uid, const int num, int thismap[0].start_action = thismap[0].start_action ? thismap[0].start_action : INPUTEVENT_KEY_P; } - // shoulder buttons //if (CHECK_BIT(currprefs.jports[port].mousemap,1)) if (mode == JSEM_MODE_MOUSE) @@ -1554,7 +1555,6 @@ int input_get_default_joystick(struct uae_input_device* uid, const int num, int : INPUTEVENT_KEY_RETURN; } - thismap[1] = currprefs.jports[port].amiberry_custom_hotkey; // grab the 'select button' options for the current map // currently disabled @@ -1564,7 +1564,6 @@ int input_get_default_joystick(struct uae_input_device* uid, const int num, int // Now assign the actual buttons VALUES (TRUE/FALSE) to trigger the EVENTS auto function_offset = 0; - for (auto n = 0; n < 2; ++n) /// temporarily limited to '2' only { function_offset = n * REMAP_BUTTONS; @@ -1614,7 +1613,7 @@ int input_get_default_joystick(struct uae_input_device* uid, const int num, int return 0; } -int input_get_default_joystick_analog(struct uae_input_device* uid, int num, int port, int af, bool joymouseswap) +int input_get_default_joystick_analog(struct uae_input_device* uid, int i, int port, int af, bool gp, bool joymouseswap) { return 0; }