Tuesday, July 09, 2024

UPDATE emulators/snes9x 1.63 from MAINTAINER

Hey ports@,

Freshly out of the oven, here is an update for snes9x to its latest
version.

Upstream removed libdl detection, so the patch was updated accordingly.
It now also includes a copy of imgui. I shamelessly stole^W^Wcopied a
patch over from games/fs2open to remove a version in dlopen (<3 thfr@).

A quick playtest shows that both the software and OpenGL backends work.
Vulkan works for a bit and then it dies, at least with Super Mario
World 2: Yoshi's Island (which is known for being a demanding game),
but I also get that with the current version so I don't consider it a
regression. Haven't got time yet to really investigate it, and the
backtrace I get is weird, so clues are welcome:

#0 thrkill () at /tmp/-:2
#1 0x5c8f6f9e08228512 in ?? ()
#2 0x0000082377978e7b in _libc_abort () at /usr/src/lib/libc/stdlib/abort.c:51
#3 0x00000823779deb3f in _libc___assert2 (file=<optimized out>, line=<optimized out>, func=<optimized out>, failedexpr=<optimized out>) at /usr/src/lib/libc/gen/assert.c:52
#4 0x0000082335b80d65 in poll_for_event () from /usr/X11R6/lib/libX11.so.18.0
#5 0x0000082335b7f750 in poll_for_response () from /usr/X11R6/lib/libX11.so.18.0
#6 0x0000082335b7f325 in _XEventsQueued () from /usr/X11R6/lib/libX11.so.18.0
#7 0x0000082335b6f117 in XPending () from /usr/X11R6/lib/libX11.so.18.0
#8 0x00000822dc77706c in gdk_event_source_prepare () from /usr/local/lib/libgdk-3.so.2201.1
#9 0x000008231aa92662 in g_main_context_prepare_unlocked () from /usr/local/lib/libglib-2.0.so.4201.12
#10 0x000008231aa9331b in g_main_context_iterate_unlocked () from /usr/local/lib/libglib-2.0.so.4201.12
#11 0x000008231aa9353b in g_main_context_iteration () from /usr/local/lib/libglib-2.0.so.4201.12
#12 0x00000822f95661dd in g_application_run () from /usr/local/lib/libgio-2.0.so.4200.19
#13 0x0000082345a8cad0 in Gtk::Application::run(Gtk::Window&) () from /usr/local/lib/libgtkmm-3.0.so.4.5
#14 0x00000820aeee3632 in main (argc=<optimized out>, argv=0x76544cac1968) at /usr/ports/pobj/snes9x-1.63/snes9x-1.63/gtk/src/gtk_s9x.cpp:157

The release notes we care for are:

General:
- Added a shortcut to change the backdrop color for sprite extraction.
- Fixed QuickSave 0-9 slot shortcuts not working.
- Allow "Address:byte" form for cheat inputs.
- Fixed ZIP files not being closed after patch search.
- Various memmap fixes to allow unofficial mappings.
- Added usage of ImGui to draw things on top of the screen instead of inside.

Gtk:
- Fixed config file location to never put files directly in $HOME and obey
$XDG_CONFIG_HOME.
- Updated translations from JakeSmarter and StanleyKid-22.

Lucas


diff 657ca76e9757dc1f26a2bf3d79729c76b261a52e a4dfb8dfb45b72d3efd20f5360e7e203496d8a73
commit - 657ca76e9757dc1f26a2bf3d79729c76b261a52e
commit + a4dfb8dfb45b72d3efd20f5360e7e203496d8a73
blob - ea5c54265a75b9b76577e5b9187b619b2d541fa5
blob + 8deaf932393ae14037dd58cd5102cc6717529fa6
--- emulators/snes9x/Makefile
+++ emulators/snes9x/Makefile
@@ -4,8 +4,7 @@ BROKEN-hppa = ICE/failure on filter/hq2x.cpp

GH_ACCOUNT = snes9xgit
GH_PROJECT = snes9x
-GH_TAGNAME = 1.62.3
-REVISION = 1
+GH_TAGNAME = 1.63

CATEGORIES = emulators games

blob - aa512deed30667594991d6675dcc00a8c9ced997
blob + d049b0c080968945d8adc540fc7e3e0111878b92
--- emulators/snes9x/distinfo
+++ emulators/snes9x/distinfo
@@ -1,2 +1,2 @@
-SHA256 (snes9x-1.62.3.tar.gz) = aRLGkpCuhU6iKxsskX2IWxxKGpWsvnPNQkPMsgcWAP4=
-SIZE (snes9x-1.62.3.tar.gz) = 3423799
+SHA256 (snes9x-1.63.tar.gz) = hFYM44pzSsgplkWIPY4MBCO32iQwveX4gna7ob5tUzA=
+SIZE (snes9x-1.63.tar.gz) = 5134657
blob - 5902804bcdddec9dfea03c618c04ca7172193679
blob + ae4e6b02122be9a1adf57085601f165eb89e61a4
--- emulators/snes9x/patches/patch-gtk_CMakeLists_txt
+++ emulators/snes9x/patches/patch-gtk_CMakeLists_txt
@@ -1,4 +1,3 @@
-No -ldl on OpenBSD.
Use system glslang and SPIRV-Cross.
Don't reach for Wayland headers.
libHLSL is gone since glslang 14
@@ -6,16 +5,8 @@ libHLSL is gone since glslang 14
Index: gtk/CMakeLists.txt
--- gtk/CMakeLists.txt.orig
+++ gtk/CMakeLists.txt
-@@ -63,7 +63,6 @@ pkg_check_modules(XRANDR REQUIRED xrandr)
+@@ -85,16 +85,10 @@ list(APPEND INCLUDES ../external/glad/include)

- 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,10 @@ list(APPEND SOURCES src/gtk_display_driver_opengl.cpp
-
if(USE_SLANG)
list(APPEND SOURCES ../shaders/slang.cpp)
- list(APPEND INCLUDES ../external/glslang)
@@ -31,7 +22,7 @@ Index: gtk/CMakeLists.txt
SPIRV
glslang-default-resource-limits)
list(APPEND LIBS spirv-cross-core
-@@ -95,10 +88,8 @@ if(USE_SLANG)
+@@ -102,10 +96,8 @@ if(USE_SLANG)
spirv-cross-reflect
spirv-cross-cpp)
list(APPEND DEFINES "USE_SLANG")
@@ -40,5 +31,5 @@ Index: gtk/CMakeLists.txt
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")
+ "VULKAN_HPP_NO_NODISCARD_WARNINGS=1"
+ "VULKAN_HPP_NO_EXCEPTIONS=1"
blob - /dev/null
blob + 1193bd21fa36c64f70314c229c07470865a19493 (mode 644)
--- /dev/null
+++ emulators/snes9x/patches/patch-external_imgui_imgui_impl_opengl3_loader_h
@@ -0,0 +1,14 @@
+dlopen correctly - leave out Linux version suffix
+
+Index: external/imgui/imgui_impl_opengl3_loader.h
+--- external/imgui/imgui_impl_opengl3_loader.h.orig
++++ external/imgui/imgui_impl_opengl3_loader.h
+@@ -662,7 +662,7 @@ static GL3WglProc (*glx_get_proc_address)(const GLubyt
+
+ static int open_libgl(void)
+ {
+- libgl = dlopen("libGL.so.1", RTLD_LAZY | RTLD_LOCAL);
++ libgl = dlopen("libGL.so", RTLD_LAZY | RTLD_LOCAL);
+ if (!libgl)
+ return GL3W_ERROR_LIBRARY_OPEN;
+ *(void **)(&glx_get_proc_address) = dlsym(libgl, "glXGetProcAddressARB");
blob - 5b50d138131ae300012210c8ec47aad0890cc706
blob + c5a9fd13f680268b3ca5bf05158cf713871b28cf
--- emulators/snes9x/pkg/PLIST
+++ emulators/snes9x/pkg/PLIST
@@ -16,11 +16,13 @@ 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/de/LC_MESSAGES/snes9x-gtk.mo
share/locale/es/LC_MESSAGES/snes9x-gtk.mo
share/locale/fr_FR/
share/locale/fr_FR/LC_MESSAGES/
share/locale/fr_FR/LC_MESSAGES/snes9x-gtk.mo
share/locale/ja/LC_MESSAGES/snes9x-gtk.mo
+share/locale/pl/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

No comments:

Post a Comment