Permalink
Comparing changes
Open a pull request
- 1 commit
- 2 files changed
- 0 commit comments
- 1 contributor
Commits on Apr 04, 2019
Unified
Split
Showing
with
94 additions
and 109 deletions.
- +85 −100 games-emulation/ppsspp/patches/{ppsspp-1.7.1.patchset → ppsspp-1.8.0.patchset}
- +9 −9 games-emulation/ppsspp/{ppsspp-1.7.1.recipe → ppsspp-1.8.0.recipe}
| @@ -1,46 +1,41 @@ | ||
| From 9361d6cabcfab31e3490c5bb2ab5431591c0b809 Mon Sep 17 00:00:00 2001 | ||
| From abc5fcacf3d90c1d0869e3dae6094226a02ccfda Mon Sep 17 00:00:00 2001 | ||
| From: Gerasim Troeglazov <3dEyes@gmail.com> | ||
| Date: Sat, 22 Sep 2018 20:20:53 +1000 | ||
| Date: Thu, 4 Apr 2019 19:44:46 +1000 | ||
| Subject: Fixes for Haiku | ||
|
|
||
|
|
||
| diff --git a/CMakeLists.txt b/CMakeLists.txt | ||
| index 82d3034..e6ea7dc 100644 | ||
| index 1d443e1..6ae2487 100644 | ||
| --- a/CMakeLists.txt | ||
| +++ b/CMakeLists.txt | ||
| @@ -88,8 +88,12 @@ if(${CMAKE_SYSTEM_NAME} MATCHES "Android") | ||
| set(ANDROID ON) | ||
| @@ -85,7 +85,7 @@ if(${CMAKE_SYSTEM_NAME} MATCHES "Android") | ||
| endif() | ||
|
|
||
| +if(${CMAKE_SYSTEM_NAME} MATCHES "Haiku") | ||
| + set(HAIKU ON) | ||
| +endif() | ||
| + | ||
| # We only support Vulkan on Unix, Android and Windows. | ||
| -if(ANDROID OR WIN32 OR (UNIX AND NOT APPLE AND NOT ARM_NO_VULKAN)) | ||
| +if(ANDROID OR WIN32 OR (UNIX AND NOT APPLE AND NOT ARM_NO_VULKAN AND NOT HAIKU)) | ||
| set(VULKAN ON) | ||
| endif() | ||
|
|
||
| @@ -137,7 +141,7 @@ option(USE_SYSTEM_LIBZIP "Dynamically link against system libzip" ${USE_SYSTEM_L | ||
| option(USE_WAYLAND_WSI "Set to ON to require Wayland support for Vulkan" ${USE_WAYLAND_WSI}) | ||
| @@ -124,7 +124,7 @@ option(USE_SYSTEM_FFMPEG "Dynamically link against system FFMPEG" ${USE_SYSTEM_F | ||
| option(USE_SYSTEM_LIBZIP "Dynamically link against system libzip" ${USE_SYSTEM_LIBZIP}) | ||
| option(USE_ADDRESS_SANITIZER "Use Clang memory sanitizer" ${USE_ADDRESS_SANITIZER}) | ||
|
|
||
| -if(UNIX AND NOT (APPLE OR ANDROID) AND VULKAN) | ||
| +if(UNIX AND NOT (APPLE OR ANDROID OR HAIKU) AND VULKAN) | ||
| if(USING_X11_VULKAN) | ||
| message("Using X11 for Vulkan") | ||
| add_definitions(-DVK_USE_PLATFORM_XLIB_KHR) | ||
| @@ -1770,7 +1774,7 @@ if(FFmpeg_FOUND) | ||
| @@ -1787,7 +1787,7 @@ if(FFmpeg_FOUND) | ||
| endif() | ||
|
|
||
| # Discord integration | ||
| -if(NOT IOS) | ||
| +if(NOT IOS AND NOT HAIKU) | ||
| target_link_libraries(${CoreLibName} discord-rpc) | ||
| -if(USE_DISCORD AND NOT IOS) | ||
| +if(USE_DISCORD AND NOT IOS AND NOT HAIKU) | ||
| add_definitions(-DUSE_DISCORD=1) | ||
| target_link_libraries(${CoreLibName} discord-rpc) | ||
| endif() | ||
|
|
||
| @@ -1883,6 +1887,10 @@ set(WindowsFiles | ||
| @@ -1906,6 +1906,10 @@ set(WindowsFiles | ||
|
|
||
| list(APPEND LinkCommon ${CoreLibName} ${CMAKE_THREAD_LIBS_INIT}) | ||
|
|
||
| @@ -51,11 +46,67 @@ index 82d3034..e6ea7dc 100644 | ||
| if(WIN32) | ||
| list(APPEND LinkCommon kernel32 user32 gdi32 shell32 comctl32 dsound xinput d3d9 winmm dinput8 ole32 winspool ksuser) | ||
| #setup_target_project(${TargetBin} Windows) | ||
| diff --git a/Core/Config.cpp b/Core/Config.cpp | ||
| index f1805da..c35485a 100644 | ||
| --- a/Core/Config.cpp | ||
| +++ b/Core/Config.cpp | ||
| @@ -483,7 +483,7 @@ static int DefaultRenderingMode() { | ||
|
|
||
| static int DefaultInternalResolution() { | ||
| // Auto on Windows, 2x on large screens, 1x elsewhere. | ||
| -#if defined(USING_WIN_UI) | ||
| +#if defined(USING_WIN_UI) || defined(__HAIKU__) | ||
| return 0; | ||
| #else | ||
| int longestDisplaySide = std::max(System_GetPropertyInt(SYSPROP_DISPLAY_XRES), System_GetPropertyInt(SYSPROP_DISPLAY_YRES)); | ||
| @@ -612,7 +612,11 @@ static ConfigSetting graphicsSettings[] = { | ||
| ReportedConfigSetting("InternalResolution", &g_Config.iInternalResolution, &DefaultInternalResolution, true, true), | ||
| ReportedConfigSetting("AndroidHwScale", &g_Config.iAndroidHwScale, &DefaultAndroidHwScale), | ||
| ReportedConfigSetting("HighQualityDepth", &g_Config.bHighQualityDepth, true, true, true), | ||
| +#ifdef __HAIKU__ | ||
| + ReportedConfigSetting("FrameSkip", &g_Config.iFrameSkip, 2, true, true), | ||
| +#else | ||
| ReportedConfigSetting("FrameSkip", &g_Config.iFrameSkip, 0, true, true), | ||
| +#endif | ||
| ReportedConfigSetting("FrameSkipType", &g_Config.iFrameSkipType, 0, true, true), | ||
| ReportedConfigSetting("AutoFrameSkip", &g_Config.bAutoFrameSkip, false, true, true), | ||
| ConfigSetting("FrameRate", &g_Config.iFpsLimit1, 0, true, true), | ||
| @@ -623,10 +627,17 @@ static ConfigSetting graphicsSettings[] = { | ||
| #endif | ||
|
|
||
| // Most low-performance (and many high performance) mobile GPUs do not support aniso anyway so defaulting to 4 is fine. | ||
| +#ifdef __HAIKU__ | ||
| + ConfigSetting("AnisotropyLevel", &g_Config.iAnisotropyLevel, 0, true, true), | ||
| +#else | ||
| ConfigSetting("AnisotropyLevel", &g_Config.iAnisotropyLevel, 4, true, true), | ||
| - | ||
| +#endif | ||
| ReportedConfigSetting("VertexDecCache", &g_Config.bVertexCache, &DefaultVertexCache, true, true), | ||
| +#ifdef __HAIKU__ | ||
| + ReportedConfigSetting("TextureBackoffCache", &g_Config.bTextureBackoffCache, true, true, true), | ||
| +#else | ||
| ReportedConfigSetting("TextureBackoffCache", &g_Config.bTextureBackoffCache, false, true, true), | ||
| +#endif | ||
| ReportedConfigSetting("TextureSecondaryCache", &g_Config.bTextureSecondaryCache, false, true, true), | ||
| ReportedConfigSetting("VertexDecJit", &g_Config.bVertexDecoderJit, &DefaultCodeGen, false), | ||
|
|
||
| @@ -658,7 +669,11 @@ static ConfigSetting graphicsSettings[] = { | ||
| ReportedConfigSetting("PostShader", &g_Config.sPostShaderName, "Off", true, true), | ||
|
|
||
| ReportedConfigSetting("MemBlockTransferGPU", &g_Config.bBlockTransferGPU, true, true, true), | ||
| +#ifdef __HAIKU__ | ||
| + ReportedConfigSetting("DisableSlowFramebufEffects", &g_Config.bDisableSlowFramebufEffects, true, true, true), | ||
| +#else | ||
| ReportedConfigSetting("DisableSlowFramebufEffects", &g_Config.bDisableSlowFramebufEffects, false, true, true), | ||
| +#endif | ||
| ReportedConfigSetting("FragmentTestCache", &g_Config.bFragmentTestCache, true, true, true), | ||
|
|
||
| ConfigSetting("GfxDebugOutput", &g_Config.bGfxDebugOutput, false, false, false), | ||
| diff --git a/SDL/SDLMain.cpp b/SDL/SDLMain.cpp | ||
| index 6dd6d22..b3be204 100644 | ||
| index 7c4ae40..dd17922 100644 | ||
| --- a/SDL/SDLMain.cpp | ||
| +++ b/SDL/SDLMain.cpp | ||
| @@ -128,7 +128,7 @@ void LaunchBrowser(const char *url) { | ||
| @@ -131,7 +131,7 @@ void LaunchBrowser(const char *url) { | ||
| #elif defined(_WIN32) | ||
| std::wstring wurl = ConvertUTF8ToWString(url); | ||
| ShellExecute(NULL, L"open", wurl.c_str(), NULL, NULL, SW_SHOWNORMAL); | ||
| @@ -64,7 +115,7 @@ index 6dd6d22..b3be204 100644 | ||
| std::string command = std::string("open ") + url; | ||
| system(command.c_str()); | ||
| #else | ||
| @@ -146,7 +146,7 @@ void LaunchMarket(const char *url) { | ||
| @@ -149,7 +149,7 @@ void LaunchMarket(const char *url) { | ||
| #elif defined(_WIN32) | ||
| std::wstring wurl = ConvertUTF8ToWString(url); | ||
| ShellExecute(NULL, L"open", wurl.c_str(), NULL, NULL, SW_SHOWNORMAL); | ||
| @@ -73,7 +124,7 @@ index 6dd6d22..b3be204 100644 | ||
| std::string command = std::string("open ") + url; | ||
| system(command.c_str()); | ||
| #else | ||
| @@ -164,7 +164,7 @@ void LaunchEmail(const char *email_address) { | ||
| @@ -167,7 +167,7 @@ void LaunchEmail(const char *email_address) { | ||
| #elif defined(_WIN32) | ||
| std::wstring mailto = std::wstring(L"mailto:") + ConvertUTF8ToWString(email_address); | ||
| ShellExecute(NULL, L"open", mailto.c_str(), NULL, NULL, SW_SHOWNORMAL); | ||
| @@ -82,7 +133,7 @@ index 6dd6d22..b3be204 100644 | ||
| std::string command = std::string("open mailto:") + email_address; | ||
| system(command.c_str()); | ||
| #else | ||
| @@ -185,6 +185,8 @@ std::string System_GetProperty(SystemProperty prop) { | ||
| @@ -188,6 +188,8 @@ std::string System_GetProperty(SystemProperty prop) { | ||
| return "SDL:Linux"; | ||
| #elif __APPLE__ | ||
| return "SDL:OSX"; | ||
| @@ -91,7 +142,7 @@ index 6dd6d22..b3be204 100644 | ||
| #else | ||
| return "SDL:"; | ||
| #endif | ||
| @@ -339,6 +341,23 @@ int main(int argc, char *argv[]) { | ||
| @@ -342,6 +344,23 @@ int main(int argc, char *argv[]) { | ||
| } | ||
| } | ||
|
|
||
| @@ -116,97 +167,31 @@ index 6dd6d22..b3be204 100644 | ||
|
|
||
| #if PPSSPP_PLATFORM(RPI) | ||
| diff --git a/UI/NativeApp.cpp b/UI/NativeApp.cpp | ||
| index 00bf8a3..278d855 100644 | ||
| index 38e9466..e17e08c 100644 | ||
| --- a/UI/NativeApp.cpp | ||
| +++ b/UI/NativeApp.cpp | ||
| @@ -452,6 +452,9 @@ void NativeInit(int argc, const char *argv[], const char *savegame_dir, const ch | ||
| // most sense. | ||
| g_Config.memStickDirectory = std::string(external_dir) + "/"; | ||
| g_Config.flash0Directory = std::string(external_dir) + "/flash0/"; | ||
| @@ -475,6 +475,9 @@ void NativeInit(int argc, const char *argv[], const char *savegame_dir, const ch | ||
| g_Config.memStickDirectory = memstickDir + "/"; | ||
| } | ||
| } | ||
| +#elif defined(__HAIKU__) | ||
| + g_Config.memStickDirectory = "/boot/home/config/settings/ppsspp/"; | ||
| + g_Config.memStickDirectory = getenv("HOME") + std::string("/config/settings/ppsspp/"); | ||
| + g_Config.flash0Directory = File::GetExeDirectory() + "/assets/flash0/"; | ||
| #elif defined(IOS) | ||
| g_Config.memStickDirectory = user_data_path; | ||
| g_Config.flash0Directory = std::string(external_dir) + "/flash0/"; | ||
| diff --git a/ext/CMakeLists.txt b/ext/CMakeLists.txt | ||
| index ade6594..0c85ffa 100644 | ||
| index b259a6f..601ac45 100644 | ||
| --- a/ext/CMakeLists.txt | ||
| +++ b/ext/CMakeLists.txt | ||
| @@ -12,6 +12,6 @@ add_subdirectory(glslang) | ||
| add_subdirectory(snappy) | ||
| add_subdirectory(udis86) | ||
| add_subdirectory(SPIRV-Cross-build) | ||
| -if(NOT IOS) | ||
| +if(NOT IOS AND NOT HAIKU) | ||
| add_subdirectory(discord-rpc-build) | ||
| -if(USE_DISCORD AND NOT IOS) | ||
| +if(USE_DISCORD AND NOT IOS AND NOT HAIKU) | ||
| add_subdirectory(discord-rpc-build) | ||
| endif() | ||
| -- | ||
| 2.19.0 | ||
|
|
||
|
|
||
| From 6babd0c990ba7903b5f35032dd43808cae45390f Mon Sep 17 00:00:00 2001 | ||
| From: Gerasim Troeglazov <3dEyes@gmail.com> | ||
| Date: Sat, 22 Sep 2018 20:21:20 +1000 | ||
| Subject: Tune default settings for Haiku | ||
|
|
||
|
|
||
| diff --git a/Core/Config.cpp b/Core/Config.cpp | ||
| index e2fd65c..0860562 100644 | ||
| --- a/Core/Config.cpp | ||
| +++ b/Core/Config.cpp | ||
| @@ -482,7 +482,7 @@ static int DefaultRenderingMode() { | ||
|
|
||
| static int DefaultInternalResolution() { | ||
| // Auto on Windows, 2x on large screens, 1x elsewhere. | ||
| -#if defined(USING_WIN_UI) | ||
| +#if defined(USING_WIN_UI) || defined(__HAIKU__) | ||
| return 0; | ||
| #else | ||
| int longestDisplaySide = std::max(System_GetPropertyInt(SYSPROP_DISPLAY_XRES), System_GetPropertyInt(SYSPROP_DISPLAY_YRES)); | ||
| @@ -620,7 +620,11 @@ static ConfigSetting graphicsSettings[] = { | ||
| ReportedConfigSetting("InternalResolution", &g_Config.iInternalResolution, &DefaultInternalResolution, true, true), | ||
| ReportedConfigSetting("AndroidHwScale", &g_Config.iAndroidHwScale, &DefaultAndroidHwScale), | ||
| ReportedConfigSetting("HighQualityDepth", &g_Config.bHighQualityDepth, true, true, true), | ||
| +#ifdef __HAIKU__ | ||
| + ReportedConfigSetting("FrameSkip", &g_Config.iFrameSkip, 2, true, true), | ||
| +#else | ||
| ReportedConfigSetting("FrameSkip", &g_Config.iFrameSkip, 0, true, true), | ||
| +#endif | ||
| ReportedConfigSetting("AutoFrameSkip", &g_Config.bAutoFrameSkip, false, true, true), | ||
| ConfigSetting("FrameRate", &g_Config.iFpsLimit1, 0, true, true), | ||
| ConfigSetting("FrameRate2", &g_Config.iFpsLimit2, -1, true, true), | ||
| @@ -631,10 +635,17 @@ static ConfigSetting graphicsSettings[] = { | ||
| ReportedConfigSetting("ForceMaxEmulatedFPS", &g_Config.iForceMaxEmulatedFPS, 60, true, true), | ||
|
|
||
| // Most low-performance (and many high performance) mobile GPUs do not support aniso anyway so defaulting to 4 is fine. | ||
| +#ifdef __HAIKU__ | ||
| + ConfigSetting("AnisotropyLevel", &g_Config.iAnisotropyLevel, 0, true, true), | ||
| +#else | ||
| ConfigSetting("AnisotropyLevel", &g_Config.iAnisotropyLevel, 4, true, true), | ||
| - | ||
| +#endif | ||
| ReportedConfigSetting("VertexDecCache", &g_Config.bVertexCache, &DefaultVertexCache, true, true), | ||
| +#ifdef __HAIKU__ | ||
| + ReportedConfigSetting("TextureBackoffCache", &g_Config.bTextureBackoffCache, true, true, true), | ||
| +#else | ||
| ReportedConfigSetting("TextureBackoffCache", &g_Config.bTextureBackoffCache, false, true, true), | ||
| +#endif | ||
| ReportedConfigSetting("TextureSecondaryCache", &g_Config.bTextureSecondaryCache, false, true, true), | ||
| ReportedConfigSetting("VertexDecJit", &g_Config.bVertexDecoderJit, &DefaultCodeGen, false), | ||
|
|
||
| @@ -668,7 +679,11 @@ static ConfigSetting graphicsSettings[] = { | ||
| ReportedConfigSetting("PostShader", &g_Config.sPostShaderName, "Off", true, true), | ||
|
|
||
| ReportedConfigSetting("MemBlockTransferGPU", &g_Config.bBlockTransferGPU, true, true, true), | ||
| +#ifdef __HAIKU__ | ||
| + ReportedConfigSetting("DisableSlowFramebufEffects", &g_Config.bDisableSlowFramebufEffects, true, true, true), | ||
| +#else | ||
| ReportedConfigSetting("DisableSlowFramebufEffects", &g_Config.bDisableSlowFramebufEffects, false, true, true), | ||
| +#endif | ||
| ReportedConfigSetting("FragmentTestCache", &g_Config.bFragmentTestCache, true, true, true), | ||
|
|
||
| ConfigSetting("GfxDebugOutput", &g_Config.bGfxDebugOutput, false, false, false), | ||
| -- | ||
| 2.19.0 | ||
| 2.19.1 | ||
|
|
||
| @@ -3,31 +3,31 @@ DESCRIPTION="PPSSPP is a PSP (PlayStation Portable) emulator capable of playing | ||
| majority of the games made for Sony’s first portable console right on your favorite \ | ||
| Android or PC device." | ||
| HOMEPAGE="https://www.ppsspp.org/" | ||
| COPYRIGHT="2012-2018 PPSSPP Project" | ||
| COPYRIGHT="2012-2019 PPSSPP Project" | ||
| LICENSE="GNU GPL v2" | ||
| REVISION="1" | ||
| SOURCE_URI="https://github.com/hrydgard/ppsspp/archive/v$portVersion.tar.gz" | ||
| CHECKSUM_SHA256="4c325d585407f65b7b4012c407e3e2f246e57e821f780c3af12aa2874356f2bd" | ||
| CHECKSUM_SHA256="a7011feb0480a352d60e6a3c939d88d4d2e3a2e76620886b183aa2cb36f910de" | ||
| SOURCE_FILENAME="ppsspp-$portVersion.tar.gz" | ||
| SOURCE_DIR="ppsspp-$portVersion" | ||
| srcGitRev_2="9efe3367284d2d1eeb14fc302a2c12c36e3e255e" | ||
| srcGitRev_2="7885552b208493a6a0f21663770c446c3ba65576" | ||
| SOURCE_URI_2="https://github.com/Kingcom/armips/archive/$srcGitRev_2.tar.gz" | ||
| CHECKSUM_SHA256_2="73b366f30e8f3863501723e13eb5dcaf6d424b80382d17c27635567b79705ca3" | ||
| CHECKSUM_SHA256_2="f8a03906135fb6f2932b80b7ef5991f39ccac46b36ec3690776fb38c69775c3d" | ||
| SOURCE_FILENAME_2="armips-$srcGitRev_2.tar.gz" | ||
| SOURCE_DIR_2="armips-$srcGitRev_2" | ||
| srcGitRev_3="29619b2312f7bc862221749f3f4d37c3e6a0dee2" | ||
| srcGitRev_3="9983f99e87ab0b6608b236ea59bcf873f90e1435" | ||
| SOURCE_URI_3="https://github.com/hrydgard/glslang/archive/$srcGitRev_3.tar.gz" | ||
| CHECKSUM_SHA256_3="5125620520d25f9a39c6d62dfcd3e087fd610dc5d163ddff6377365011c8b13f" | ||
| CHECKSUM_SHA256_3="ea5c3ca101b9635508052e0f52966303e8fc94edf564ecfd0fda147b74625c9a" | ||
| SOURCE_FILENAME_3="glslang-$srcGitRev_3.tar.gz" | ||
| SOURCE_DIR_3="glslang-$srcGitRev_3" | ||
| srcGitRev_4="be7425ef70231ab82930331959ab487d605d0482" | ||
| SOURCE_URI_4="https://github.com/KhronosGroup/SPIRV-Cross/archive/$srcGitRev_4.tar.gz" | ||
| CHECKSUM_SHA256_4="21afa0e32dd2d75ee51c4f5c0d16330a9d80d435d6ac9900d0c13bffdfd7b682" | ||
| SOURCE_FILENAME_4="SPIRV-Cross-$srcGitRev_4.tar.gz" | ||
| SOURCE_DIR_4="SPIRV-Cross-$srcGitRev_4" | ||
| srcGitRev_5="f60be494a43a49fd7ff61603e132c1e24c160d88" | ||
| srcGitRev_5="18e0d460e187556e9510e2e9b5ae85fa435cefd9" | ||
| SOURCE_URI_5="https://github.com/hrydgard/ppsspp-lang/archive/$srcGitRev_5.tar.gz" | ||
| CHECKSUM_SHA256_5="ac11b688f4fd35b730736af252829ae61bce2b409c7462f487c6c888157e749b" | ||
| CHECKSUM_SHA256_5="3d313170bb387d466e2bf267b23dd5689174355537f728b42a99f9ea77af0d37" | ||
| SOURCE_FILENAME_5="ppsspp-lang-$srcGitRev_5.tar.gz" | ||
| SOURCE_DIR_5="ppsspp-lang-$srcGitRev_5" | ||
| PATCHES="ppsspp-$portVersion.patchset" | ||
| @@ -101,7 +101,7 @@ INSTALL() | ||
| local APP_SIGNATURE="application/x-vnd.ppsspp" | ||
| local MAJOR="`echo "$portVersion" | cut -d. -f1`" | ||
| local MIDDLE="`echo "$portVersion" | cut -d. -f2`" | ||
| local MINOR="`echo "$portVersion" | cut -d. -f3 | cut -d~ -f1`" | ||
| local MINOR="`echo "$portVersion" | cut -d. -f3`" | ||
| local LONG_INFO="$SUMMARY" | ||
| sed \ | ||
| -e "s|@APP_SIGNATURE@|$APP_SIGNATURE|" \ | ||