Hi,

Here's an update for snes9x to latest version. Of potential interest,
there is now a Vulkan renderer support. Full changelog at [0].

Port-wise, the build system changed CMake and dropped support for GTK+2
by means of depending on x11/gtk3mm. A BDEP on graphics/spirv-cross, new
port submitted by op@ [1], is added. I take maintainership of the port,
too.

Two hours of Tales of Phantasia says it works fine, but I had to play a
bit with the graphics knobs (sync method, renderer and such). The same
happens for me with 1.60 in OpenBSD tho, but unlike it, 1.62.3 doesn't
segafults with ToP.

        Lucas

[0]: 
https://github.com/snes9xgit/snes9x/blob/8b82d487937d9ea39f7229d280c6f6686c415fe7/docs/changes.txt
[1]: https://marc.info/?l=openbsd-ports&m=169425942810919&w=2


diff refs/heads/master e14db6acb0f48070fb1febc60a268aa130ace464
commit - 54426ad93a79e323ee2417eab27e4ccd56016ec6
commit + e14db6acb0f48070fb1febc60a268aa130ace464
blob - ab84f23d442dc217b3a6fe003fe3a3f42a7727d5
blob + c6e70210161c95d54108ec1052ba849ae30c0f61
--- emulators/snes9x/Makefile
+++ emulators/snes9x/Makefile
@@ -4,41 +4,56 @@ BROKEN-hppa = ICE/failure on filter/hq2x.cpp
 
 GH_ACCOUNT =   snes9xgit
 GH_PROJECT =   snes9x
-GH_TAGNAME =   1.60
-REVISION =     3
+GH_TAGNAME =   1.62.3
 
 CATEGORIES =   emulators games
 
 HOMEPAGE =     http://www.snes9x.com/
 
+MAINTAINER =   Lucas Gabriel Vuotto <lu...@sexy.is>
+
 # non-commercial
 PERMIT_PACKAGE =       Yes
 
-WANTLIB += ${COMPILER_LIBCXX} SDL2 X11 Xext Xrandr Xv atk-1.0
-WANTLIB += c cairo cairo-gobject epoxy gdk-3 gdk_pixbuf-2.0 gio-2.0
-WANTLIB += glib-2.0 gobject-2.0 gtk-3 intl m pango-1.0 pangocairo-1.0
-WANTLIB += png z
+WANTLIB += ${COMPILER_LIBCXX} HLSL SDL2 SPIRV X11 Xext Xrandr
+WANTLIB += Xv atk-1.0 atkmm-1.6 c cairo cairo-gobject cairomm-1.0
+WANTLIB += epoxy gdk-3 gdk_pixbuf-2.0 gdkmm-3.0 gio-2.0 giomm-2.4
+WANTLIB += glib-2.0 glibmm-2.4 glslang gobject-2.0 gthread-2.0
+WANTLIB += gtk-3 gtkmm-3.0 harfbuzz intl m pango-1.0 pangocairo-1.0
+WANTLIB += pangomm-1.4 png sigc-2.0 z
 
-RUN_DEPENDS =  devel/desktop-file-utils \
+# libvulkan seems opened via dlopen, as the ports builds and links without it.
+# Runtime will abort if Vulkan is used as the renderer and vulkan-loader isn't
+# installed.
+RUN_DEPENDS += devel/desktop-file-utils \
+               graphics/vulkan-loader \
                x11/gtk+4,-guic
 
-LIB_DEPENDS =  devel/sdl2 \
+BUILD_DEPENDS +=       graphics/spirv-cross \
+                       graphics/vulkan-headers
+
+LIB_DEPENDS += devel/sdl2 \
+               graphics/glslang \
                graphics/png \
-               x11/gtk+3
+               x11/gtk3mm
 
-MODULES =      devel/meson \
+MODULES +=     devel/cmake \
                textproc/intltool
 
+# C++17
 COMPILER =     base-clang ports-gcc
 
-CONFIGURE_ENV =        LDFLAGS="-L${X11BASE}/lib"
+CONFIGURE_ARGS +=      -DCMAKE_INSTALL_PREFIX="${PREFIX}" \
+                       -DCMAKE_INSTALL_DATAROOTDIR="share" \
+                       -DUSE_PORTAUDIO=OFF \
+                       -DUSE_OSS=OFF \
+                       -DUSE_ALSA=OFF \
+                       -DUSE_WAYLAND=OFF \
+                       -DUSE_PULSEAUDIO=OFF \
+                       -DUSE_SYSTEMZIP=OFF
 
-CONFIGURE_ARGS = -Dportaudio=false \
-                -Doss=false \
-                -Dalsa=false \
-                -Dwayland=false \
-                -Dpulseaudio=false \
-                -Dsystem-zip=false
+CXXFLAGS +=            -I${LOCALBASE}/include
+MODCMAKE_LDFLAGS =     -L${X11BASE}/lib -L${LOCALBASE}/lib
 
 NO_TEST =      Yes
 
blob - a4f13126a1919840b7a743e26d3739c3e902fa1c
blob + aa512deed30667594991d6675dcc00a8c9ced997
--- emulators/snes9x/distinfo
+++ emulators/snes9x/distinfo
@@ -1,2 +1,2 @@
-SHA256 (snes9x-1.60.tar.gz) = hhyMCrHTAtnfUeWsRxegBpszYUo/Ir86sX6/NAXlhyI=
-SIZE (snes9x-1.60.tar.gz) = 2863228
+SHA256 (snes9x-1.62.3.tar.gz) = aRLGkpCuhU6iKxsskX2IWxxKGpWsvnPNQkPMsgcWAP4=
+SIZE (snes9x-1.62.3.tar.gz) = 3423799
blob - 7b2214a02cf371b0df11ac6b4b4cd291b3daa04d (mode 644)
blob + /dev/null
--- emulators/snes9x/patches/patch-gtk_meson_build
+++ /dev/null
@@ -1,16 +0,0 @@
-No -ldl on OpenBSD.
-
-Index: gtk/meson.build
---- gtk/meson.build.orig
-+++ gtk/meson.build
-@@ -50,10 +50,8 @@ deps += gtk_dep
- 
- x11_dep = c_compiler.find_library('X11')
- xext_dep = c_compiler.find_library('Xext')
--dl_dep = c_compiler.find_library('dl')
- deps += x11_dep
- deps += xext_dep
--deps += dl_dep
- 
- xrandr_dep = dependency('xrandr')
- deps += xrandr_dep
blob - /dev/null
blob + 07d5562e9328d32823deda19667bb7eb78466195 (mode 644)
--- /dev/null
+++ emulators/snes9x/patches/patch-gtk_CMakeLists_txt
@@ -0,0 +1,43 @@
+No -ldl on OpenBSD.
+Use system glslang and SPIRV-Cross.
+Don't reach for Wayland headers.
+
+Index: gtk/CMakeLists.txt
+--- gtk/CMakeLists.txt.orig
++++ gtk/CMakeLists.txt
+@@ -63,7 +63,6 @@ pkg_check_modules(XRANDR REQUIRED xrandr)
+ 
+ find_library(X11 X11 REQUIRED)
+ find_library(XEXT Xext REQUIRED)
+-find_library(DL dl REQUIRED)
+ list(APPEND ARGS ${SDL2_CFLAGS} ${GTK_CFLAGS} ${XRANDR_CFLAGS})
+ list(APPEND LIBS ${X11} ${XEXT} ${DL} ${SDL2_LIBRARIES} ${GTK_LIBRARIES} 
${XRANDR_LIBRARIES})
+ 
+@@ -78,16 +77,11 @@ list(APPEND SOURCES src/gtk_display_driver_opengl.cpp
+ 
+ if(USE_SLANG)
+     list(APPEND SOURCES ../shaders/slang.cpp)
+-    list(APPEND INCLUDES ../external/glslang)
+ 
+     set(SPIRV_CROSS_EXCEPTIONS_TO_ASSERTIONS CACHE BOOL ON)
+     set(BUILD_TESTING CACHE BOOL OFF)
+-    add_subdirectory("../external/glslang" "glslang" EXCLUDE_FROM_ALL)
+-    add_subdirectory("../external/SPIRV-Cross" "SPIRV-Cross" EXCLUDE_FROM_ALL)
+     list(APPEND LIBS glslang
+-                     OGLCompiler
+                      HLSL
+-                     OSDependent
+                      SPIRV
+                      glslang-default-resource-limits)
+     list(APPEND LIBS spirv-cross-core
+@@ -95,10 +89,8 @@ if(USE_SLANG)
+                      spirv-cross-reflect
+                      spirv-cross-cpp)
+     list(APPEND DEFINES "USE_SLANG")
+-    list(APPEND INCLUDES "../external/glslang")
+ 
+     list(APPEND DEFINES "VK_USE_PLATFORM_XLIB_KHR"
+-                        "VK_USE_PLATFORM_WAYLAND_KHR"
+                         "VULKAN_HPP_DISPATCH_LOADER_DYNAMIC=1"
+                         "VMA_DYNAMIC_VULKAN_FUNCTIONS=1"
+                         "VMA_STATIC_VULKAN_FUNCTIONS=0")
blob - /dev/null
blob + a58ef96a08e45028a0ba337bf704cb0567b07a9e (mode 644)
--- /dev/null
+++ emulators/snes9x/patches/patch-shaders_slang_cpp
@@ -0,0 +1,22 @@
+Use system glslang and SPIRV-Cross.
+
+Index: shaders/slang.cpp
+--- shaders/slang.cpp.orig
++++ shaders/slang.cpp
+@@ -9,11 +9,11 @@
+ #include <vector>
+ #include <string>
+ #include <sstream>
+-#include "external/glslang/glslang/Public/ShaderLang.h"
+-#include "external/glslang/SPIRV/GlslangToSpv.h"
+-#include "external/glslang/glslang/Public/ResourceLimits.h"
+-#include "external/SPIRV-Cross/spirv_cross.hpp"
+-#include "external/SPIRV-Cross/spirv_glsl.hpp"
++#include <glslang/Public/ShaderLang.h>
++#include <glslang/SPIRV/GlslangToSpv.h>
++#include <glslang/Public/ResourceLimits.h>
++#include <spirv_cross/spirv_cross.hpp>
++#include <spirv_cross/spirv_glsl.hpp>
+ 
+ std::string GLSLShader::slang_get_stage(std::vector<std::string> &lines,
+                                         std::string name)
blob - /dev/null
blob + 35b9cd34323b31b78e0186b062e24345af2a69e3 (mode 644)
--- /dev/null
+++ emulators/snes9x/patches/patch-vulkan_slang_preset_cpp
@@ -0,0 +1,23 @@
+Use system glslang and SPIRV-Cross.
+
+Index: vulkan/slang_preset.cpp
+--- vulkan/slang_preset.cpp.orig
++++ vulkan/slang_preset.cpp
+@@ -1,5 +1,5 @@
+ #include "slang_preset.hpp"
+-#include "../external/SPIRV-Cross/spirv.hpp"
++#include <spirv_cross/spirv.hpp>
+ #include "slang_helpers.hpp"
+ #include "slang_preset_ini.hpp"
+ 
+@@ -12,8 +12,8 @@
+ #include <fstream>
+ #include <filesystem>
+ #include <future>
+-#include "../external/SPIRV-Cross/spirv_cross.hpp"
+-#include "../external/SPIRV-Cross/spirv_glsl.hpp"
++#include <spirv_cross/spirv_cross.hpp>
++#include <spirv_cross/spirv_glsl.hpp>
+ #include "slang_shader.hpp"
+ 
+ using std::string;
blob - /dev/null
blob + 3d3bccdcb81d227199b19ec762e81bb368fa900b (mode 644)
--- /dev/null
+++ emulators/snes9x/patches/patch-vulkan_slang_shader_cpp
@@ -0,0 +1,18 @@
+Use system glslang and SPIRV-Cross.
+
+Index: vulkan/slang_shader.cpp
+--- vulkan/slang_shader.cpp.orig
++++ vulkan/slang_shader.cpp
+@@ -7,9 +7,9 @@
+ #include <sstream>
+ #include <vector>
+ #include <fstream>
+-#include "../external/glslang/glslang/Public/ShaderLang.h"
+-#include "../external/glslang/SPIRV/GlslangToSpv.h"
+-#include "../external/glslang/glslang/Public/ResourceLimits.h"
++#include <glslang/Public/ShaderLang.h>
++#include <glslang/SPIRV/GlslangToSpv.h>
++#include <glslang/Public/ResourceLimits.h>
+ 
+ using std::string;
+ using std::vector;
blob - 7f665dc9e088cf757109cca9a760b4823b834461
blob + 5b50d138131ae300012210c8ec47aad0890cc706
--- emulators/snes9x/pkg/PLIST
+++ emulators/snes9x/pkg/PLIST
@@ -7,12 +7,15 @@ share/doc/snes9x/controls.txt
 share/doc/snes9x/snapshots.txt
 share/examples/snes9x/
 share/examples/snes9x/snes9x.conf.default
+@tag gtk-update-icon-cache %D/share/icons/hicolor
+@tag update-desktop-database
 share/icons/hicolor/128x128/apps/snes9x.png
 share/icons/hicolor/16x16/apps/snes9x.png
 share/icons/hicolor/24x24/apps/snes9x.png
 share/icons/hicolor/256x256/apps/snes9x.png
 share/icons/hicolor/32x32/apps/snes9x.png
 share/icons/hicolor/64x64/apps/snes9x.png
+share/icons/hicolor/scalable/apps/snes9x.svg
 share/locale/es/LC_MESSAGES/snes9x-gtk.mo
 share/locale/fr_FR/
 share/locale/fr_FR/LC_MESSAGES/
@@ -21,7 +24,7 @@ share/locale/ja/LC_MESSAGES/snes9x-gtk.mo
 share/locale/pt_BR/LC_MESSAGES/snes9x-gtk.mo
 share/locale/ru/LC_MESSAGES/snes9x-gtk.mo
 share/locale/sr@latin/LC_MESSAGES/snes9x-gtk.mo
+share/locale/uk/LC_MESSAGES/snes9x-gtk.mo
+share/locale/zh_CN/LC_MESSAGES/snes9x-gtk.mo
 share/snes9x/
 share/snes9x/cheats.bml
-@tag gtk-update-icon-cache %D/share/icons/hicolor
-@tag update-desktop-database

Reply via email to