Hello ports,

Back in 2018 Jasper explicitly disabled wxWidgets on vbam so it wouldn't
accidentally get picked up. I reckon it would be worth it to enable it
explicitly, since it would build the visualboyadvance-m binary.

Not only brings it some menu options which allows you to change things
at runtime, it also brings in some features I couldn't find in vbam:
most notably the link (network) option. Without it battling your
friends, or completing your pokedex will be impossible. :-)

Some notes about the changes:

I placed visualboyadvance-m inside the vbam package for quick testing,
but considering it pulls in extra dependencies and is its own thing
it might be cleaner to put it in its own subpackage.

The patch is needed because glXGetCurrentDisplay() can return NULL,
which crashes glXSwapIntervalEXT(). I don't have much knowledge of X,
but considering the function itself is already behind an if statement I
simply expanded said statement with the glXGetCurrentDisplay() check.
It runs great for me with this diff, but I'm not making any claims about
its correctness.

I'm not quite sure about the new LIB_DEPENDS, since it's quite a list
from wxWidgets, for which there might be something more convenient that
I'm not aware of. There's also a few libraries explicitly linked to
visualboyadvance-m, which are dependencies of wxWidgets and I thus left
out of LIB_DEPENDS.

martijn@

Index: Makefile
===================================================================
RCS file: /cvs/ports/emulators/vbam/Makefile,v
retrieving revision 1.41
diff -u -p -r1.41 Makefile
--- Makefile    7 Feb 2024 20:51:39 -0000       1.41
+++ Makefile    23 Apr 2024 15:33:12 -0000
@@ -30,8 +30,15 @@ LIB_DEPENDS =                devel/gettext,-runtime \
                        devel/sdl2 \
                        multimedia/sfml
 
+# visualboyadvance-m
+WANTLIB += wx_gtk3u_xrc-3.2 wx_baseu_xml-3.2 wx_gtk3u_html-3.2 wx_baseu_net-3.2
+WANTLIB += wx_gtk3u_core-3.2 wx_baseu-3.2 wx_gtk3u_gl-3.2
+
+BUILD_DEPENDS +=       archivers/zip
+LIB_DEPENDS +=         x11/wxWidgets
+
 CONFIGURE_ARGS +=      -DENABLE_FFMPEG=OFF \
-                       -DENABLE_WX=OFF \
+                       -DENABLE_WX=ON \
                        -DENABLE_SDL=ON
 # Creates unlinkable files ('data' according to file(1))
 CONFIGURE_ARGS +=      -DENABLE_LTO=OFF
Index: patches/patch-src_wx_panel_cpp
===================================================================
RCS file: patches/patch-src_wx_panel_cpp
diff -N patches/patch-src_wx_panel_cpp
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ patches/patch-src_wx_panel_cpp      23 Apr 2024 15:33:12 -0000
@@ -0,0 +1,27 @@
+Index: src/wx/panel.cpp
+--- src/wx/panel.cpp.orig
++++ src/wx/panel.cpp
+@@ -2309,6 +2309,7 @@ void GLDrawingPanel::DrawingPanelInit()
+         else
+             wxLogDebug(_("Disabling GLX VSync."));
+ 
++        Display *cdisplay;
+         static PFNGLXSWAPINTERVALEXTPROC glXSwapIntervalEXT = NULL;
+         static PFNGLXSWAPINTERVALSGIPROC glXSwapIntervalSGI = NULL;
+         static PFNGLXSWAPINTERVALMESAPROC glXSwapIntervalMESA = NULL;
+@@ -2321,8 +2322,9 @@ void GLDrawingPanel::DrawingPanelInit()
+         if (strstr(glxQuery, "GLX_EXT_swap_control") != NULL)
+         {
+             glXSwapIntervalEXT = 
reinterpret_cast<PFNGLXSWAPINTERVALEXTPROC>(glXGetProcAddress((const 
GLubyte*)"glXSwapIntervalEXT"));
+-            if (glXSwapIntervalEXT)
+-                glXSwapIntervalEXT(glXGetCurrentDisplay(),
++            cdisplay = glXGetCurrentDisplay();
++            if (glXSwapIntervalEXT && cdisplay)
++                glXSwapIntervalEXT(cdisplay,
+                                    glXGetCurrentDrawable(), 
OPTION(kPrefVsync));
+             else
+                 systemScreenMessage(_("Failed to set glXSwapIntervalEXT"));
+@@ -2700,4 +2702,4 @@ void GameArea::UnsuspendScreenSaver() {
+         xscreensaver_suspended = false;
+     }
+ #endif // HAVE_XSS
Index: pkg/PLIST
===================================================================
RCS file: /cvs/ports/emulators/vbam/pkg/PLIST,v
retrieving revision 1.4
diff -u -p -r1.4 PLIST
--- pkg/PLIST   11 Mar 2022 18:59:42 -0000      1.4
+++ pkg/PLIST   23 Apr 2024 15:33:12 -0000
@@ -1,6 +1,89 @@
 @bin bin/vbam
+@bin bin/visualboyadvance-m
 @man man/man6/vbam.6
+@man man/man6/visualboyadvance-m.6
+share/applications/visualboyadvance-m.desktop
 share/examples/vbam/
 share/examples/vbam/vbam.cfg
+share/icons/hicolor/128x128/apps/visualboyadvance-m.png
+share/icons/hicolor/16x16/apps/visualboyadvance-m.png
+share/icons/hicolor/22x22/apps/visualboyadvance-m.png
+share/icons/hicolor/24x24/apps/visualboyadvance-m.png
+share/icons/hicolor/256x256/apps/visualboyadvance-m.png
+share/icons/hicolor/32x32/apps/visualboyadvance-m.png
+share/icons/hicolor/48x48/apps/visualboyadvance-m.png
+share/icons/hicolor/64x64/apps/visualboyadvance-m.png
+share/icons/hicolor/96x96/apps/visualboyadvance-m.png
+share/icons/hicolor/scalable/apps/visualboyadvance-m.svg
+share/locale/bg/LC_MESSAGES/wxvbam.mo
+share/locale/br/LC_MESSAGES/wxvbam.mo
+share/locale/cs/LC_MESSAGES/wxvbam.mo
+share/locale/de/LC_MESSAGES/wxvbam.mo
+share/locale/el/LC_MESSAGES/wxvbam.mo
+share/locale/en_US/
+share/locale/en_US/LC_MESSAGES/
+share/locale/en_US/LC_MESSAGES/wxvbam.mo
+share/locale/es/LC_MESSAGES/wxvbam.mo
+share/locale/es_419/
+share/locale/es_419/LC_MESSAGES/
+share/locale/es_419/LC_MESSAGES/wxvbam.mo
+share/locale/es_CO/
+share/locale/es_CO/LC_MESSAGES/
+share/locale/es_CO/LC_MESSAGES/wxvbam.mo
+share/locale/es_PE/
+share/locale/es_PE/LC_MESSAGES/
+share/locale/es_PE/LC_MESSAGES/wxvbam.mo
+share/locale/es_US/
+share/locale/es_US/LC_MESSAGES/
+share/locale/es_US/LC_MESSAGES/wxvbam.mo
+share/locale/fr/LC_MESSAGES/wxvbam.mo
+share/locale/fr_FR/
+share/locale/fr_FR/LC_MESSAGES/
+share/locale/fr_FR/LC_MESSAGES/wxvbam.mo
+share/locale/gl/LC_MESSAGES/wxvbam.mo
+share/locale/he_IL/
+share/locale/he_IL/LC_MESSAGES/
+share/locale/he_IL/LC_MESSAGES/wxvbam.mo
+share/locale/hu/LC_MESSAGES/wxvbam.mo
+share/locale/hu_HU/
+share/locale/hu_HU/LC_MESSAGES/
+share/locale/hu_HU/LC_MESSAGES/wxvbam.mo
+share/locale/id/LC_MESSAGES/wxvbam.mo
+share/locale/it_IT/
+share/locale/it_IT/LC_MESSAGES/
+share/locale/it_IT/LC_MESSAGES/wxvbam.mo
+share/locale/ja/LC_MESSAGES/wxvbam.mo
+share/locale/ko/LC_MESSAGES/wxvbam.mo
+share/locale/ko_KR/
+share/locale/ko_KR/LC_MESSAGES/
+share/locale/ko_KR/LC_MESSAGES/wxvbam.mo
+share/locale/ms_MY/
+share/locale/ms_MY/LC_MESSAGES/
+share/locale/ms_MY/LC_MESSAGES/wxvbam.mo
+share/locale/nb/LC_MESSAGES/wxvbam.mo
+share/locale/nl/LC_MESSAGES/wxvbam.mo
+share/locale/pl/LC_MESSAGES/wxvbam.mo
+share/locale/pl_PL/
+share/locale/pl_PL/LC_MESSAGES/
+share/locale/pl_PL/LC_MESSAGES/wxvbam.mo
+share/locale/pt_BR/LC_MESSAGES/wxvbam.mo
+share/locale/pt_PT/
+share/locale/pt_PT/LC_MESSAGES/
+share/locale/pt_PT/LC_MESSAGES/wxvbam.mo
+share/locale/ru_RU/
+share/locale/ru_RU/LC_MESSAGES/
+share/locale/ru_RU/LC_MESSAGES/wxvbam.mo
+share/locale/sv/LC_MESSAGES/wxvbam.mo
+share/locale/tr/LC_MESSAGES/wxvbam.mo
+share/locale/uk/LC_MESSAGES/wxvbam.mo
+share/locale/zh-Hans/
+share/locale/zh-Hans/LC_MESSAGES/
+share/locale/zh-Hans/LC_MESSAGES/wxvbam.mo
+share/locale/zh/LC_MESSAGES/wxvbam.mo
+share/locale/zh_CN/LC_MESSAGES/wxvbam.mo
+share/metainfo/
+share/metainfo/visualboyadvance-m.metainfo.xml
 share/vbam/
 share/vbam/vba-over.ini
+@tag update-desktop-database
+@tag gtk-update-icon-cache %D/share/icons/hicolor

Reply via email to