From b5f0e02f11ea52f9c18e44220f53d1a0e6494ceb Mon Sep 17 00:00:00 2001 From: John Bintz <27256+johnbintz@users.noreply.github.com> Date: Mon, 20 May 2024 13:00:17 -0400 Subject: [PATCH] fs_uae, fs_uae_launcher: Update FS-UAE to 3.1.66, patch Launcher for better exe finding (#10455) * fs_uae_launcher: Better Haiku-friendly binary search When updating fs-uae to 3.1.66, fs-uae-launcher was unable to find the fs-uae binary when the launcher was launched from the Deskbar. This changes the binary search code for Haiku to always look in the same direcctory where fs-uae-launcher is to be installed. * fs_uae: Update to 3.1.66 In order to get --with-glew to work, I had to manually add all of the C flags and linker options via env variables. glew.pc eventually tries to include gl.pc which doesn't exist. However, it seems that I only need to provide -Lgl and the program should work correctly (and it does). * Indent recpies using tabs --- .../fs_uae_launcher-3.1.68.recipe | 19 +- .../patches/fs_uae_launcher-3.1.68.patchset | 89 +++++ app-emulation/fs-uae/fs_uae-3.1.66.recipe | 110 ++++++ .../fs-uae/patches/fs_uae-3.1.66.patchset | 348 ++++++++++++++++++ 4 files changed, 557 insertions(+), 9 deletions(-) create mode 100644 app-emulation/fs-uae-launcher/patches/fs_uae_launcher-3.1.68.patchset create mode 100644 app-emulation/fs-uae/fs_uae-3.1.66.recipe create mode 100644 app-emulation/fs-uae/patches/fs_uae-3.1.66.patchset diff --git a/app-emulation/fs-uae-launcher/fs_uae_launcher-3.1.68.recipe b/app-emulation/fs-uae-launcher/fs_uae_launcher-3.1.68.recipe index d56c5df63..a0aee57b5 100644 --- a/app-emulation/fs-uae-launcher/fs_uae_launcher-3.1.68.recipe +++ b/app-emulation/fs-uae-launcher/fs_uae_launcher-3.1.68.recipe @@ -8,11 +8,12 @@ setting up FS-UAE." HOMEPAGE="https://fs-uae.net/launcher/" COPYRIGHT="2011-2017 Frode Solheim" LICENSE="GNU GPL v2" -REVISION="1" +REVISION="2" SOURCE_URI="https://fs-uae.net/files/FS-UAE-Launcher/Stable/$portVersion/fs-uae-launcher-$portVersion.tar.xz" CHECKSUM_SHA256="e36104442db278e0f1d073dbc2be2f9a937cd33e964968b75b324c393f8ec030" SOURCE_DIR="fs-uae-launcher-$portVersion" ADDITIONAL_FILES="fs-uae-launcher.rdef.in" +PATCHES="fs_uae_launcher-3.1.68.patchset" ARCHITECTURES="all !x86_gcc2" SECONDARY_ARCHITECTURES="?x86" @@ -22,16 +23,16 @@ PROVIDES=" cmd:fs_uae_launcher " REQUIRES=" - haiku$secondaryArchSuffix - fs_uae$secondaryArchSuffix - pip_python310$secondaryArchSuffix - pyqt5_python310$secondaryArchSuffix - requests_python310$secondaryArchSuffix - " + haiku$secondaryArchSuffix + fs_uae$secondaryArchSuffix + pip_python310$secondaryArchSuffix + pyqt5_python310$secondaryArchSuffix + requests_python310$secondaryArchSuffix + " BUILD_REQUIRES=" - haiku${secondaryArchSuffix}_devel - " + haiku${secondaryArchSuffix}_devel + " BUILD_PREREQUIRES=" cmd:make cmd:msgfmt diff --git a/app-emulation/fs-uae-launcher/patches/fs_uae_launcher-3.1.68.patchset b/app-emulation/fs-uae-launcher/patches/fs_uae_launcher-3.1.68.patchset new file mode 100644 index 000000000..65a9e8427 --- /dev/null +++ b/app-emulation/fs-uae-launcher/patches/fs_uae_launcher-3.1.68.patchset @@ -0,0 +1,89 @@ +From 04e5052445068b4684cd3a2cbc1836c590f4bc4b Mon Sep 17 00:00:00 2001 +From: John Bintz +Date: Fri, 17 May 2024 23:36:14 +0000 +Subject: try this approach + + +diff --git a/fsgs/plugins/pluginexecutablefinder.py b/fsgs/plugins/pluginexecutablefinder.py +index 7c8fa9e..478fbfb 100644 +--- a/fsgs/plugins/pluginexecutablefinder.py ++++ b/fsgs/plugins/pluginexecutablefinder.py +@@ -48,6 +48,10 @@ def find_executable(name: str): + exe_file = find_executable_in_side_by_side_app_bundle(name) + if exe_file: + return exe_file ++ if System.haiku: ++ exe_file = find_executable_in_dir_or_app(name, "/bin") ++ if exe_file: ++ return exe_file + exe_file = find_executable_side_by_side(name) + if exe_file: + return exe_file +-- +2.43.2 + + +From ba11feac815d74cddfebbe4c932b90c11226e087 Mon Sep 17 00:00:00 2001 +From: John Bintz +Date: Fri, 17 May 2024 23:43:22 +0000 +Subject: detect haiku + + +diff --git a/fsbc/system.py b/fsbc/system.py +index 35c2bc8..5aab5c4 100644 +--- a/fsbc/system.py ++++ b/fsbc/system.py +@@ -4,6 +4,7 @@ import platform as _platform + windows = sys.platform == "win32" + linux = sys.platform.startswith("linux") + macosx = sys.platform == "darwin" ++haiku = sys.platform.startswith("haiku") + + if windows: + platform = "windows" +@@ -11,6 +12,8 @@ elif linux: + platform = "linux" + elif macosx: + platform = "macos" ++elif haiku: ++ platform = "haiku" + else: + platform = "unknown" + +@@ -19,6 +22,7 @@ class System: + windows = windows + linux = linux + macos = macosx ++ haiku = haiku + platform = platform + + x86_64 = False +-- +2.43.2 + + +From 22c33c4898e2dc5ab81a28aa3de2506c5e8b11e9 Mon Sep 17 00:00:00 2001 +From: John Bintz +Date: Fri, 17 May 2024 23:48:18 +0000 +Subject: try again + + +diff --git a/fsgs/plugins/pluginexecutablefinder.py b/fsgs/plugins/pluginexecutablefinder.py +index 478fbfb..ecbf1fa 100644 +--- a/fsgs/plugins/pluginexecutablefinder.py ++++ b/fsgs/plugins/pluginexecutablefinder.py +@@ -49,7 +49,10 @@ def find_executable(name: str): + if exe_file: + return exe_file + if System.haiku: +- exe_file = find_executable_in_dir_or_app(name, "/bin") ++ plugin_name = known_executables.get(name) ++ if plugin_name is None: ++ return None ++ exe_file = find_executable_in_dir_or_app(name, "/bin", plugin_name) + if exe_file: + return exe_file + exe_file = find_executable_side_by_side(name) +-- +2.43.2 + diff --git a/app-emulation/fs-uae/fs_uae-3.1.66.recipe b/app-emulation/fs-uae/fs_uae-3.1.66.recipe new file mode 100644 index 000000000..748dfdaf3 --- /dev/null +++ b/app-emulation/fs-uae/fs_uae-3.1.66.recipe @@ -0,0 +1,110 @@ +SUMMARY="FS-UAE is a cross platform Amiga emulator ported from WinUAE" +DESCRIPTION="Accurate Amiga Emulation + +FS-UAE integrates the most accurate Amiga emulation code available from \ +WinUAE. FS-UAE emulates A500, A500+, A600, A1200, A1000, A3000 and A4000 \ +models, but you can tweak the hardware configuration and create customized \ +Amigas. + +On-Screen GUI With Gamepad Control + +FS-UAE is fully controllable with a gamepad - you can easily swap floppies \ +and load save states through the on-screen GUI. In addition to being great \ +on your personal computer, FS-UAE is also well suited to be started from an \ +emulator frontend running on a HTPC. + +Emulate High-End Amigas + +FS-UAE supports emulating an Amiga 4000 with an CPU as fast as your \ +system can emulate it. Picasso96 drivers can be used with the built-in \ +UAEgfx card to display Workbench in high resolutions and with up to 16.7 \ +million colors, and the built-in bsdsocket.library means that the Amiga \ +will have access to the Internet. + +Community Support + +There is a support forum for FS-UAE on the English Amiga Board with many \ +active registered users. If you are stuck, you'll almost certainly get an \ +answer to your questions there. You can also leave comments on fs-uae.net \ +is you rather want that. + +Online Documentation + +A great deal of documentation about how to use and configure FS-UAE is \ +available on fs-uae.net." +HOMEPAGE="https://fs-uae.net/" +COPYRIGHT="2011-2017 Frode Solheim" +LICENSE="GNU GPL v2" +REVISION="1" +SOURCE_URI="https://fs-uae.net/files/FS-UAE/Stable/${portVersion}/fs-uae-${portVersion}.tar.xz" +CHECKSUM_SHA256="606e1868b500413d69bd33bb469f8fd08d6c08988801f17b7dd022f3fbe23832" +SOURCE_DIR="fs-uae-$portVersion" +PATCHES="fs_uae-$portVersion.patchset" + +ARCHITECTURES="all ?x86 !x86_gcc2" +SECONDARY_ARCHITECTURES="?x86" + +PROVIDES=" + fs_uae$secondaryArchSuffix = $portVersion + cmd:fs_uae$secondaryArchSuffix + cmd:fs_uae_device_helper$secondaryArchSuffix + " +REQUIRES=" + haiku$secondaryArchSuffix + lib:libgl$secondaryArchSuffix + lib:libglew$secondaryArchSuffix + lib:libglib_2.0$secondaryArchSuffix + lib:libglu$secondaryArchSuffix + lib:libgthread_2.0$secondaryArchSuffix + lib:libintl$secondaryArchSuffix + lib:libmpeg2$secondaryArchSuffix + lib:libopenal$secondaryArchSuffix + lib:libpng16$secondaryArchSuffix + lib:libsdl2_2.0$secondaryArchSuffix + lib:libx11$secondaryArchSuffix + lib:libz$secondaryArchSuffix + " + +BUILD_REQUIRES=" + haiku${secondaryArchSuffix}_devel + devel:libGL$secondaryArchSuffix + devel:libglew$secondaryArchSuffix + devel:libglib_2.0$secondaryArchSuffix + devel:libgthread_2.0$secondaryArchSuffix + devel:libmpeg2$secondaryArchSuffix + devel:libopenal$secondaryArchSuffix + devel:libpng16$secondaryArchSuffix + devel:libsdl2_2.0$secondaryArchSuffix + devel:libx11$secondaryArchSuffix + " +BUILD_PREREQUIRES=" + cmd:aclocal$secondaryArchSuffix + cmd:autoconf$secondaryArchSuffix + cmd:awk$secondaryArchSuffix + cmd:bison$secondaryArchSuffix + cmd:flex$secondaryArchSuffix + cmd:gcc$secondaryArchSuffix + cmd:libtoolize$secondaryArchSuffix + cmd:make + cmd:perl$secondaryArchSuffix + cmd:pkg_config$secondaryArchSuffix + cmd:zip$secondaryArchSuffix + " + +BUILD() +{ + export CPPFLAGS="-D_BSD_SOURCE" + export CXXFLAGS="-fPIC" + export CFLAGS="-fPIC" + export LDFLAGS="-lnetwork" + export GLEW_LIBS="-lGL -lGLEW -lGLU -L/system/develop/lib" + export GLEW_CFLAGS="-I/system/develop/headers" + autoreconf -f -i + runConfigure ./configure --disable-bsdsocket --disable-netplay --with-glew + make $jobArgs +} + +INSTALL() +{ + make install +} diff --git a/app-emulation/fs-uae/patches/fs_uae-3.1.66.patchset b/app-emulation/fs-uae/patches/fs_uae-3.1.66.patchset new file mode 100644 index 000000000..ceaf0a0e3 --- /dev/null +++ b/app-emulation/fs-uae/patches/fs_uae-3.1.66.patchset @@ -0,0 +1,348 @@ +From 065faeb7d353e16aea165701e1e36f75f50d1bce Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zolt=C3=A1n=20Mizsei?= +Date: Sun, 6 Aug 2017 14:19:55 +0200 +Subject: FS-UAE: Tidied up Haiku patchset + + +diff --git a/Makefile.am b/Makefile.am +index d00bbb9..7c97a4d 100644 +--- a/Makefile.am ++++ b/Makefile.am +@@ -751,6 +751,7 @@ libfsemu_a_SOURCES = \ + libfsemu/src/ml/input.c \ + libfsemu/src/ml/keyboard.c \ + libfsemu/src/ml/macosx.c \ ++ libfsemu/src/ml/haiku.c \ + libfsemu/src/ml/ml.c \ + libfsemu/src/ml/ml_internal.h \ + libfsemu/src/ml/mouse.c \ +diff --git a/configure.ac b/configure.ac +index 168533b..c8c4a80 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -270,6 +270,7 @@ AC_DEFINE([USE_SDL_INPUT], [1], [Define to 1 to use SDL for input]) + AS_CASE([$host_os], + [mingw*], [], + [darwin*], [], ++[haiku*], [], + [ + X11_LIBS="-lX11" + AC_DEFINE([USE_X11], [1], [Define to 1 to use X11]) +@@ -352,6 +353,13 @@ AS_CASE([$host_os], + OS_CPPFLAGS="-DDRAGONFLYBSD" + LOADABLE_MODULE_EXT=".so" + ], ++[haiku*], [ ++ OS_NAME="haiku" ++ OS_NAME_2="Haiku" ++ OS_NAME_3="Haiku" ++ OS_CPPFLAGS="-DHAIKU" ++ LOADABLE_MODULE_EXT=".so" ++], + [ + OS_NAME="unknown" + OS_NAME_2="Unknown OS" +diff --git a/libfsemu/include/fs/endian.h b/libfsemu/include/fs/endian.h +index 01ee0f9..a276e10 100644 +--- a/libfsemu/include/fs/endian.h ++++ b/libfsemu/include/fs/endian.h +@@ -7,6 +7,10 @@ + + #include + ++#ifdef __HAIKU__ ++#include ++#endif ++ + #ifdef _WIN32 + + /* Use custom conversion routines for Windows */ +diff --git a/libfsemu/src/ml/haiku.c b/libfsemu/src/ml/haiku.c +new file mode 100644 +index 0000000..f839d2a +--- /dev/null ++++ b/libfsemu/src/ml/haiku.c +@@ -0,0 +1,127 @@ ++#ifdef HAVE_CONFIG_H ++#include "config.h" ++#endif ++ ++#ifdef HAIKU ++ ++#include ++#include ++#include ++#include ++ ++#include ++#include ++#include "ml_internal.h" ++ ++void fs_ml_configure_window(void) ++{ ++ // TODO ++} ++ ++ ++void fs_ml_usleep(int usec) { ++ usleep(usec); ++} ++ ++void fs_ml_prevent_power_saving(void) ++{ ++ // TODO ++} ++ ++void fs_ml_activate_window_switcher_impl(void) ++{ ++ fs_log("FIXME: Active window switcher not implemented\n"); ++} ++ ++#define MAX_SCANCODES 200 ++static int g_key_map[MAX_SCANCODES] = {}; ++ ++void fs_ml_initialize_keymap() { ++ for (int i = 0; i < MAX_SCANCODES; i++) { ++ g_key_map[i] = -1; ++ } ++ ++ g_key_map[53] = FS_ML_KEY_ESCAPE; ++ g_key_map[122] = FS_ML_KEY_F1; ++ g_key_map[120] = FS_ML_KEY_F2; ++ g_key_map[99] = FS_ML_KEY_F3; ++ g_key_map[118] = FS_ML_KEY_F4; ++ g_key_map[96] = FS_ML_KEY_F5; ++ g_key_map[97] = FS_ML_KEY_F6; ++ g_key_map[98] = FS_ML_KEY_F7; ++ g_key_map[100] = FS_ML_KEY_F8; ++ g_key_map[101] = FS_ML_KEY_F9; ++ g_key_map[109] = FS_ML_KEY_F10; ++ g_key_map[103] = FS_ML_KEY_F11; ++ g_key_map[111] = FS_ML_KEY_F12; ++ ++ g_key_map[10] = FS_ML_KEY_BACKQUOTE; ++ g_key_map[18] = FS_ML_KEY_1; ++ g_key_map[19] = FS_ML_KEY_2; ++ g_key_map[20] = FS_ML_KEY_3; ++ g_key_map[21] = FS_ML_KEY_4; ++ g_key_map[23] = FS_ML_KEY_5; ++ g_key_map[22] = FS_ML_KEY_6; ++ g_key_map[26] = FS_ML_KEY_7; ++ g_key_map[28] = FS_ML_KEY_8; ++ g_key_map[25] = FS_ML_KEY_9; ++ g_key_map[29] = FS_ML_KEY_0; ++ g_key_map[27] = FS_ML_KEY_MINUS; ++ g_key_map[24] = FS_ML_KEY_EQUALS; ++ g_key_map[15] = FS_ML_KEY_BACKSPACE; ++ ++ g_key_map[48] = FS_ML_KEY_TAB; ++ g_key_map[12] = FS_ML_KEY_Q; ++ g_key_map[13] = FS_ML_KEY_W; ++ g_key_map[14] = FS_ML_KEY_E; ++ g_key_map[15] = FS_ML_KEY_R; ++ g_key_map[17] = FS_ML_KEY_T; ++ g_key_map[16] = FS_ML_KEY_Y; ++ g_key_map[32] = FS_ML_KEY_U; ++ g_key_map[34] = FS_ML_KEY_I; ++ g_key_map[31] = FS_ML_KEY_O; ++ g_key_map[35] = FS_ML_KEY_P; ++ g_key_map[33] = FS_ML_KEY_LEFTBRACKET; ++ g_key_map[30] = FS_ML_KEY_RIGHTBRACKET; ++ g_key_map[36] = FS_ML_KEY_RETURN; ++ ++ g_key_map[0] = FS_ML_KEY_A; ++ g_key_map[1] = FS_ML_KEY_S; ++ g_key_map[2] = FS_ML_KEY_D; ++ g_key_map[3] = FS_ML_KEY_F; ++ g_key_map[5] = FS_ML_KEY_G; ++ g_key_map[4] = FS_ML_KEY_H; ++ g_key_map[38] = FS_ML_KEY_J; ++ g_key_map[40] = FS_ML_KEY_K; ++ g_key_map[37] = FS_ML_KEY_L; ++ g_key_map[41] = FS_ML_KEY_SEMICOLON; ++ g_key_map[39] = FS_ML_KEY_QUOTE; ++ g_key_map[42] = FS_ML_KEY_BACKSLASH; ++ ++ g_key_map[50] = FS_ML_KEY_LESS; ++ g_key_map[6] = FS_ML_KEY_Z; ++ g_key_map[7] = FS_ML_KEY_X; ++ g_key_map[8] = FS_ML_KEY_C; ++ g_key_map[9] = FS_ML_KEY_V; ++ g_key_map[11] = FS_ML_KEY_B; ++ g_key_map[45] = FS_ML_KEY_N; ++ g_key_map[46] = FS_ML_KEY_M; ++ g_key_map[43] = FS_ML_KEY_COMMA; ++ g_key_map[47] = FS_ML_KEY_PERIOD; ++ g_key_map[44] = FS_ML_KEY_SLASH; ++ g_key_map[49] = FS_ML_KEY_SPACE; ++ g_key_map[110] = FS_ML_KEY_MENU; ++ ++ g_key_map[105] = FS_ML_KEY_PRINT; ++ g_key_map[107] = FS_ML_KEY_SCROLLOCK; ++ g_key_map[113] = FS_ML_KEY_PAUSE; ++} ++ ++int fs_ml_scancode_to_key(int scancode) { ++ if (scancode < 0 || scancode >= MAX_SCANCODES) { ++ return -1; ++ } ++ return g_key_map[scancode]; ++} ++ ++#endif +diff --git a/manymouse/x11_xinput2.c b/manymouse/x11_xinput2.c +index bdbda8c..21db919 100644 +--- a/manymouse/x11_xinput2.c ++++ b/manymouse/x11_xinput2.c +@@ -10,7 +10,7 @@ + #include "manymouse.h" + /* Try to use this on everything but Windows and Mac OS by default... */ + #ifndef SUPPORT_XINPUT2 +-#if ( (defined(_WIN32) || defined(__CYGWIN__)) ) ++#if ( (defined(_WIN32) || defined(__CYGWIN__) || defined(__HAIKU__)) ) + #define SUPPORT_XINPUT2 0 + #elif ( (defined(__MACH__)) && (defined(__APPLE__)) ) + #define SUPPORT_XINPUT2 0 +diff --git a/src/fs-uae/main.c b/src/fs-uae/main.c +index f3f0370..6aab284 100644 +--- a/src/fs-uae/main.c ++++ b/src/fs-uae/main.c +@@ -40,6 +40,10 @@ static int fs_uae_argc; + static char **fs_uae_argv; + static int g_warn_about_missing_config_file; + ++#ifdef __HAIKU__ ++int log_bsd = 0; ++#endif ++ + #define LOG_LINE "---------------------------------------------------------" \ + "-------------------\n" + +diff --git a/src/scp.cpp b/src/scp.cpp +index 0d7a6a5..5f35864 100644 +--- a/src/scp.cpp ++++ b/src/scp.cpp +@@ -21,6 +21,10 @@ + + #define MAX_REVS 5 + ++#ifdef __HAIKU__ ++#include ++#endif ++ + enum pll_mode { + PLL_fixed_clock, /* Fixed clock, snap phase to flux transitions. */ + PLL_variable_clock, /* Variable clock, snap phase to flux transitions. */ +-- +2.13.1 + + +From b33930a42cf51826937c2290468857dbf25a1f1d Mon Sep 17 00:00:00 2001 +From: Chris Moore +Date: Mon, 7 Aug 2017 19:13:30 +0100 +Subject: Further fixes + + +diff --git a/src/ethernet.cpp b/src/ethernet.cpp +index 115aa5a..d2f2963 100644 +--- a/src/ethernet.cpp ++++ b/src/ethernet.cpp +@@ -14,7 +14,7 @@ + #include "uae/slirp.h" + + #ifndef HAVE_INET_ATON +-static int inet_aton(const char *cp, struct in_addr *ia) ++int inet_aton(const char *cp, struct in_addr *ia) + { + uint32_t addr = inet_addr(cp); + if (addr == 0xffffffff) +diff --git a/src/jit/exception_handler.cpp b/src/jit/exception_handler.cpp +index 8cf96f8..2e8b873 100644 +--- a/src/jit/exception_handler.cpp ++++ b/src/jit/exception_handler.cpp +@@ -9,8 +9,10 @@ + #ifndef __USE_GNU + #define __USE_GNU + #endif ++#ifndef __HAIKU__ + #include + #endif ++#endif + #include + + #define SIG_READ 1 +-- +2.13.1 + + +From b3076a6b080f81acea707d4c74557b109f8e3da8 Mon Sep 17 00:00:00 2001 +From: Chris Moore +Date: Tue, 8 Aug 2017 19:00:45 +0100 +Subject: Fix Haiku fs-uae.dat file location + + +diff --git a/libfsemu/src/data.c b/libfsemu/src/data.c +index 2d597ad..a5239e7 100644 +--- a/libfsemu/src/data.c ++++ b/libfsemu/src/data.c +@@ -12,6 +12,10 @@ + #include + #include + ++#ifdef __HAIKU__ ++#include ++#endif ++ + #ifdef USE_ZLIB + #include "zlib.h" + #endif +@@ -339,6 +343,20 @@ int fs_data_init(const char *app_name, const char *dat_name) + } + #endif + ++#ifdef __HAIKU__ ++ char haiku_data_path[PATH_MAX + 1]; ++ status_t status = find_path(fs_data_init, B_FIND_PATH_DATA_DIRECTORY, ++ "fs-uae", haiku_data_path, PATH_MAX); ++ if (status == B_OK) { ++ if (g_dat_file == NULL) { ++ char *dat_path = g_build_filename(haiku_data_path, dat_name, NULL); ++ fs_log("checking dat file: %s\n", dat_path); ++ g_dat_file = g_fopen(dat_path, "rb"); ++ free(dat_path); ++ } ++ } ++#endif ++ + if (g_dat_file == NULL) { + error = 10; + } else { +-- +2.13.1 + + +From 17456f069bc3c8b6f8f0faad51ece2528830349f Mon Sep 17 00:00:00 2001 +From: Chris Moore +Date: Sun, 10 Sep 2017 09:40:21 +0100 +Subject: Fix conflicting typedefs for uint32 + + +diff --git a/src/include/gfxfilter.h b/src/include/gfxfilter.h +index 914b517..578d6b5 100644 +--- a/src/include/gfxfilter.h ++++ b/src/include/gfxfilter.h +@@ -22,7 +22,11 @@ extern void PAL_1x1_16 (uae_u16 *src, int pitchs, uae_u16 *trg, int pitcht, int + + typedef unsigned char uint8; + typedef unsigned short uint16; ++#ifndef __HAIKU__ + typedef unsigned long uint32; ++#else ++#include ++#endif + #ifndef __cplusplus + typedef int bool; + #endif +-- +2.13.1 +