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;
}