Stefan Hagen wrote (2023-11-22 07:36 CET): > Thomas Frohwein wrote (2023-11-22 03:47 CET): > > On Tue, Nov 21, 2023 at 08:20:16AM +0100, Stefan Hagen wrote: > > > > [...] > > > > > - added more details about supported games (the ones I know that work) > > > - added ~/.config/gzdoom as wad installation dir > > > - updated sha256 for doom-1.8 wad (what the heck happened there?) > > > - added reference to games/freedoom > > > - added information about GL backends and how to change them in case of > > > a crash/freeze. > > > > see below for comments. > > > > > +Supported are data files from: > > > +- Doom 1 (doom1.wad) and 2 (doom2.wad) > > > +- Freedoom (freedoom1.wad, freedoom2.wad) > > > +- Heretic (heretic.wad) > > > +- Hexen (hexen.wad) > > > +- Vomitoreum (vomitoreum.ipk3) > > > +- Apocalyptic Vibes (AVBuild.ipk3) > > > > There are way more and I don't think the README is the right place to > > try to enumerate them all, especially as those are actively being > > released, including probably dozens in 2023 alone. I'm okay with a > > limited selection of something like Doom 1&2, Freedoom, Heretic, and > > Hexen - that is pretty much the original content plus Freedoom which > > is useful for testing given its license/availability. > > Fair point. I thought it's useful to add some that are not ending in .wad. > But there's official documentation for that. I removed the last two and > added a link to the official documentation. > > > > +If you do not possess any of those, you can install the freedoom > > > +package or use the shareware IWAD which is available at: > > > > > > > > > ftp://ftp.fu-berlin.de/pc/msdos/games/idgames/idstuff/doom/doom-1.8.wad.gz > > > -SHA256 (doom-1.8.wad.gz) = WM9qVjtjGkdWFjCvpidthTwnB5NC95aewwBpZdqFV6E= > > > +SHA256 (doom-1.8.wad.gz) = > > > 58cf6a563b631a47561630afa6276d853c27079342f7969ec3006965da8557a1 > > > + > > > +Rename the file as "doom.wad" to one of the mentioned locations. > > > > "Rename" is strange here, what about: > > Rename the file to "doom.wad" and move it to one of the above-mentioned > > locations. > > Yes, that's better. > > > > +[GlobalSettings] > > > +vid_preferbackend=1 > > > + > > > +Supported values are: 0 (OpenGL), 1 (Vulkan) or 2 (OpenGL ES) > > > > I'm not sure that's correct. Looking at the documentation at [1], it > > seems to me that 3 is GL ES, and 2 seems to be for a Direct3D Windows- > > related backend. > > > > [1] https://zdoom.org/wiki/CVARs:Display > > I'm seeing the documentation - but the mentioned values are correct on > my system. Value 3 lets the game start, but the backend option in game > shows "Unknown". > > On OpenBSD (Posix System) only the left column is relevant. I think we > don't build with GLES2, and the documentation mentiones 0 and 2 as > "OpenGL". The latter one is probably OpenGL ES. > > So I think the values in the README are correct for OpenBSD. But if > you're uneasy with this, we can also write something like: > > "Valid backenend values are 0-3, play around with them until you find one > that works." > > Diff with updated README below.
I just found your earlier comment: > I'm on an Intel Tigerlake system and OpenGL (vid_preferbackend=0) and > GLES2 (vid_preferbackend=3) work, but vulkan segfaults. So appearently, GLES2 is available on intel based machines. I added the value to the list. Index: games/gzdoom/Makefile =================================================================== RCS file: /cvs/ports/games/gzdoom/Makefile,v diff -u -p -u -p -r1.17 Makefile --- games/gzdoom/Makefile 18 Jul 2022 08:27:45 -0000 1.17 +++ games/gzdoom/Makefile 22 Nov 2023 06:49:27 -0000 @@ -6,11 +6,10 @@ ONLY_FOR_ARCHS = i386 amd64 COMMENT = OpenGL engine for idTech 1 games like doom,hexen,heretic... -V = 4.8.2 -GH_ACCOUNT = coelckers -GH_PROJECT = gzdoom -GH_TAGNAME = g${V} -DISTNAME = gzdoom-${V} +V = 4.11.3 + +DIST_TUPLE = github ZDoom gzdoom g${V} . +PKGNAME = gzdoom-${V} CATEGORIES= games @@ -21,8 +20,8 @@ MAINTAINER = Timo Myyra <timo.myyra@bit # GPLv3 PERMIT_PACKAGE = Yes -WANTLIB += ${COMPILER_LIBCXX} SDL2 bz2 c execinfo jpeg m -WANTLIB += openal vpx z zmusic +WANTLIB += ${COMPILER_LIBCXX} SDL2 bz2 c execinfo m +WANTLIB += openal vpx webp webpdemux webpmux zmusic # C++17 COMPILER = base-clang ports-gcc @@ -34,13 +33,14 @@ CONFIGURE_ARGS += -DDYN_OPENAL=NO CONFIGURE_ARGS += -DHAVE_STDINT_H=1 CONFIGURE_ARGS += -DNO_OPENMP=ON -CXXFLAGS += -I. -I${LOCALBASE}/include +CFLAGS += -I${X11BASE}/include +CXXFLAGS += -I. -I${LOCALBASE}/include LIB_DEPENDS = archivers/bzip2 \ audio/openal \ audio/zmusic \ devel/sdl2 \ - graphics/jpeg \ + graphics/libwebp \ multimedia/libvpx NO_TEST = Yes Index: games/gzdoom/distinfo =================================================================== RCS file: /cvs/ports/games/gzdoom/distinfo,v diff -u -p -u -p -r1.7 distinfo --- games/gzdoom/distinfo 18 Jul 2022 08:27:45 -0000 1.7 +++ games/gzdoom/distinfo 22 Nov 2023 06:49:27 -0000 @@ -1,2 +1,2 @@ -SHA256 (gzdoom-4.8.2.tar.gz) = Tt1g+AlMncPft0AL28DrsKXldLCmdH7uTI2fH2r3cSc= -SIZE (gzdoom-4.8.2.tar.gz) = 24247668 +SHA256 (ZDoom-gzdoom-g4.11.3.tar.gz) = WUPbpQ2iD/lPH8xBUTJnLUKhWRfFcbHCt87v4Uk19dU= +SIZE (ZDoom-gzdoom-g4.11.3.tar.gz) = 24354699 Index: games/gzdoom/patches/patch-CMakeLists_txt =================================================================== RCS file: /cvs/ports/games/gzdoom/patches/patch-CMakeLists_txt,v diff -u -p -u -p -r1.3 patch-CMakeLists_txt --- games/gzdoom/patches/patch-CMakeLists_txt 18 Jul 2022 08:27:46 -0000 1.3 +++ games/gzdoom/patches/patch-CMakeLists_txt 22 Nov 2023 06:49:27 -0000 @@ -1,7 +1,7 @@ Index: CMakeLists.txt --- CMakeLists.txt.orig +++ CMakeLists.txt -@@ -272,7 +272,7 @@ else() +@@ -301,7 +301,7 @@ else() if ( UNIX ) include(CheckSymbolExists) Index: games/gzdoom/patches/patch-libraries_ZVulkan_CMakeLists_txt =================================================================== RCS file: games/gzdoom/patches/patch-libraries_ZVulkan_CMakeLists_txt diff -N games/gzdoom/patches/patch-libraries_ZVulkan_CMakeLists_txt --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ games/gzdoom/patches/patch-libraries_ZVulkan_CMakeLists_txt 22 Nov 2023 06:49:27 -0000 @@ -0,0 +1,12 @@ +Index: libraries/ZVulkan/CMakeLists.txt +--- libraries/ZVulkan/CMakeLists.txt.orig ++++ libraries/ZVulkan/CMakeLists.txt +@@ -188,7 +188,7 @@ if(WIN32) + add_definitions(-DUNICODE -D_UNICODE) + else() + set(ZVULKAN_SOURCES ${ZVULKAN_SOURCES} ${ZVULKAN_UNIX_SOURCES}) +- set(ZVULKAN_LIBS ${CMAKE_DL_LIBS} -ldl) ++ set(ZVULKAN_LIBS ${CMAKE_DL_LIBS}) + add_definitions(-DUNIX -D_UNIX) + add_link_options(-pthread) + endif() Index: games/gzdoom/patches/patch-libraries_discordrpc_CMakeLists_txt =================================================================== RCS file: games/gzdoom/patches/patch-libraries_discordrpc_CMakeLists_txt diff -N games/gzdoom/patches/patch-libraries_discordrpc_CMakeLists_txt --- games/gzdoom/patches/patch-libraries_discordrpc_CMakeLists_txt 31 Jul 2022 20:50:40 -0000 1.1 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,15 +0,0 @@ -don't pick up clang-format is present - -Index: libraries/discordrpc/CMakeLists.txt ---- libraries/discordrpc/CMakeLists.txt.orig -+++ libraries/discordrpc/CMakeLists.txt -@@ -10,7 +10,8 @@ file(GLOB_RECURSE ALL_SOURCE_FILES - ) - - # Set CLANG_FORMAT_SUFFIX if you are using custom clang-format, e.g. clang-format-5.0 --find_program(CLANG_FORMAT_CMD clang-format${CLANG_FORMAT_SUFFIX}) -+#find_program(CLANG_FORMAT_CMD clang-format${CLANG_FORMAT_SUFFIX}) -+set(CLANG_FORMAT_CMD, FALSE) - - if (CLANG_FORMAT_CMD) - add_custom_target( Index: games/gzdoom/patches/patch-src_d_main_cpp =================================================================== RCS file: games/gzdoom/patches/patch-src_d_main_cpp diff -N games/gzdoom/patches/patch-src_d_main_cpp --- games/gzdoom/patches/patch-src_d_main_cpp 18 Jul 2022 08:27:46 -0000 1.1 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,24 +0,0 @@ -fix gzdoom.pk3 not found error, backport of -https://github.com/coelckers/gzdoom/pull/1665 - -Index: src/d_main.cpp ---- src/d_main.cpp.orig -+++ src/d_main.cpp -@@ -3534,6 +3534,8 @@ static int D_DoomMain_Internal (void) - - std::set_new_handler(NewFailure); - const char *batchout = Args->CheckValue("-errorlog"); -+ -+ D_DoomInit(); - - // [RH] Make sure zdoom.pk3 is always loaded, - // as it contains magic stuff we need. -@@ -3567,8 +3569,6 @@ static int D_DoomMain_Internal (void) - } - - if (!batchrun) Printf(PRINT_LOG, "%s version %s\n", GAMENAME, GetVersionString()); -- -- D_DoomInit(); - - extern void D_ConfirmSendStats(); - D_ConfirmSendStats(); Index: games/gzdoom/pkg/README =================================================================== RCS file: /cvs/ports/games/gzdoom/pkg/README,v diff -u -p -u -p -r1.2 README --- games/gzdoom/pkg/README 11 Mar 2022 19:04:32 -0000 1.2 +++ games/gzdoom/pkg/README 22 Nov 2023 06:49:27 -0000 @@ -1,14 +1,53 @@ -You will need an IWAD for gzdoom to be fully functional. An IWAD is -the main data file containing the graphics and levels for Doom. If -you have a copy of one of the original Doom games, simply copy your -Doom, Doom 2, Ultimate Doom, or Final Doom IWAD (doom.wad, doom2.wad, -tnt.wad, and plutonia.wad respectively) to ${PREFIX}/share/doom/. -If you do not possess any of those, you can use the shareware IWAD -which is available at: ++----------------------------------------------------------------------- +| Running ${PKGSTEM} on OpenBSD ++----------------------------------------------------------------------- + +Installing Data Files +===================== + +You will need an IWAD for gzdoom to be fully functional. An IWAD is +the main data file containing the graphics and levels for Doom. If +you have a copy of one of the original Doom games, or any other game, +based on the same engine, you can copy them to the following locations +for gzdoom to find: + +- System wide: ${PREFIX}/share/doom/ +- User wide: ~/.config/gzdoom/ + +Some known to work data files are: +- Doom 1 (doom1.wad) and 2 (doom2.wad) +- Freedoom (freedoom1.wad, freedoom2.wad) +- Heretic (heretic.wad) +- Hexen (hexen.wad) + +If you do not possess any of those, you can install the freedoom +package or use the shareware IWAD which is available at: ftp://ftp.fu-berlin.de/pc/msdos/games/idgames/idstuff/doom/doom-1.8.wad.gz -SHA256 (doom-1.8.wad.gz) = WM9qVjtjGkdWFjCvpidthTwnB5NC95aewwBpZdqFV6E= +SHA256 (doom-1.8.wad.gz) = 58cf6a563b631a47561630afa6276d853c27079342f7969ec3006965da8557a1 + +Rename the file to "doom.wad" and move it to one of the above-mentioned +locations. -Install it to ${PREFIX}/share/doom as "doom.wad". +You can find more data files and how to obtain them in the official +documentation: https://zdoom.org/wiki/IWAD + +Optional Dependencies +===================== In case fluidsynth backend is needed the user needs to setup soundfont for it. + +Known Problems +============== + +Gzdoom supports three GL backends (OpenGL, OpenGL ES, Vulkan). Some work +better than others depending on the graphic hardware in the system. + +In case gzdoom freezes or crashes before you can reach the in-game menu +to select a different backend, you can modify ~/.config/gzdoom/gzdoom.ini +manually and change the vid_preferbackend value: + +[GlobalSettings] +vid_preferbackend=1 + +Supported values are: 0 (OpenGL), 1 (Vulkan), 2 (OpenGL ES) or 3 (GLES2)