games/vkquake: add new port

vkQuake is a Quake 1 port using Vulkan instead of OpenGL for rendering. It is
based on the popular QuakeSpasm port and runs all mods compatible with it like
Arcane Dimensions or In The Shadows.

Compared to QuakeSpasm vkQuake also features a software Quake like underwater
effect, has better color precision, generates mipmap for water surfaces at
runtime and has native support for anti-aliasing and AF.

https://github.com/Novum/vkQuake

PR:		222182
Submitted by:	Greg V <greg@unrelenting.technology>
This commit is contained in:
Jan Beich 2018-09-03 17:48:23 +00:00
parent 230cd7fef8
commit dd4c7e36ac
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=478885
8 changed files with 136 additions and 0 deletions

View file

@ -1093,6 +1093,7 @@
SUBDIR += violetland
SUBDIR += viruskiller
SUBDIR += vitetris
SUBDIR += vkquake
SUBDIR += vms-empire
SUBDIR += vodovod
SUBDIR += volleyball

97
games/vkquake/Makefile Normal file
View file

@ -0,0 +1,97 @@
# $FreeBSD$
PORTNAME= vkquake
DISTVERSION= 1.00.0
CATEGORIES= games
MAINTAINER= greg@unrelenting.technology
COMMENT= Quake 1 port using Vulkan instead of OpenGL, based on QuakeSpasm
LICENSE= GPLv2+
LICENSE_FILE= ${WRKSRC}/../LICENSE.txt
BUILD_DEPENDS= ${LOCALBASE}/include/vulkan/vulkan.h:devel/vulkan-headers
LIB_DEPENDS= libSDL2.so:devel/sdl20 \
libX11-xcb.so:x11/libX11 \
libvulkan.so:graphics/vulkan-loader
WRKSRC_SUBDIR= Quake
USES= desktop-file-utils gmake pkgconfig
USE_GITHUB= yes
GH_ACCOUNT= Novum
GH_PROJECT= vkQuake
INSTALLS_ICONS= yes
MAKE_ENV= prefix=${PREFIX} bindir=${PREFIX}/bin
ALL_TARGET= # empty
.include "${.CURDIR}/../quake-data/Makefile.include"
CFLAGS+= -DDATADIR='\"${Q1DIR}\"'
OPTIONS_DEFINE= USERDIRS WAVE FLAC MP3 VORBIS # OPUS
OPTIONS_RADIO= MODPLAYER
OPTIONS_RADIO_MODPLAYER= MIKMOD XMP MODPLUG
OPTIONS_DEFAULT= USERDIRS WAVE FLAC VORBIS MODPLUG # OPUS MODPLUG
USERDIRS_DESC= Enable support for loading game files from user directories (~/.vkquake)
WAVE_DESC= Enable support for Wave music
FLAC_DESC= Enable support for FLAC music
MP3_DESC= Enable support for MP3 music
VORBIS_DESC= Enable support for Ogg Vorbis music
# OPUS_DESC= Enable support for Opus music
MIKMOD_DESC= Enable support for tracker module music using MikMod
XMP_DESC= Enable support for tracker module music using XMP
MODPLUG_DESC= Enable support for tracker module music using ModPlug
USERDIRS_MAKE_ARGS= DO_USERDIRS=1
USERDIRS_MAKE_ARGS_OFF= DO_USERDIRS=0
WAVE_MAKE_ARGS= USE_CODEC_WAVE=1
WAVE_MAKE_ARGS_OFF= USE_CODEC_WAVE=0
FLAC_MAKE_ARGS= USE_CODEC_FLAC=1
FLAC_MAKE_ARGS_OFF= USE_CODEC_FLAC=0
FLAC_LIB_DEPENDS= libFLAC.so:audio/flac
MP3_MAKE_ARGS= USE_CODEC_MP3=1 MP3LIB=mad
MP3_MAKE_ARGS_OFF= USE_CODEC_MP3=0
MP3_LIB_DEPENDS= libmad.so:audio/libmad
VORBIS_MAKE_ARGS= USE_CODEC_VORBIS=1 VORBISLIB=vorbis
VORBIS_MAKE_ARGS_OFF= USE_CODEC_VORBIS=0
VORBIS_LIB_DEPENDS= libvorbis.so:audio/libvorbis \
libvorbisfile.so:audio/libvorbis \
libogg.so:audio/libogg
# XXX: crashes on start
# OPUS_MAKE_ARGS= USE_CODEC_OPUS=1
# OPUS_MAKE_ARGS_OFF= USE_CODEC_OPUS=0
# OPUS_LIB_DEPENDS= libopus.so:audio/opus \
# libopusfile.so:audio/opusfile
MIKMOD_MAKE_ARGS= USE_CODEC_MIKMOD=1
MIKMOD_MAKE_ARGS_OFF= USE_CODEC_MIKMOD=0
MIKMOD_LIB_DEPENDS= libmikmod.so:audio/libmikmod
XMP_MAKE_ARGS= USE_CODEC_XMP=1
XMP_MAKE_ARGS_OFF= USE_CODEC_XMP=0
XMP_LIB_DEPENDS= libxmp.so:audio/xmp
MODPLUG_MAKE_ARGS= USE_CODEC_MODPLUG=1
MODPLUG_MAKE_ARGS_OFF= USE_CODEC_MODPLUG=0
MODPLUG_LIB_DEPENDS= libmodplug.so:audio/libmodplug
post-install:
${MKDIR} ${STAGEDIR}${Q1DIR}
${INSTALL_DATA} ${WRKSRC}/vkquake.pak ${STAGEDIR}${Q1DIR}
${MKDIR} ${STAGEDIR}${PREFIX}/share/icons/hicolor/256x256/apps
${INSTALL_DATA} ${FILESDIR}/vkquake.png \
${STAGEDIR}${PREFIX}/share/icons/hicolor/256x256/apps/vkquake.png
${INSTALL_DATA} ${FILESDIR}/vkquake.desktop \
${STAGEDIR}${PREFIX}/share/applications
.include <bsd.port.mk>

3
games/vkquake/distinfo Normal file
View file

@ -0,0 +1,3 @@
TIMESTAMP = 1533668323
SHA256 (Novum-vkQuake-1.00.0_GH0.tar.gz) = b0c5420d6f5c71ed032232729fc73537588267a187bea5f29681dc2d51d8712f
SIZE (Novum-vkQuake-1.00.0_GH0.tar.gz) = 3404109

View file

@ -0,0 +1,11 @@
--- common.c.orig 2017-09-09 21:55:23 UTC
+++ common.c
@@ -2231,7 +2231,7 @@ void COM_InitFilesystem (void) //johnfitz -- modified
if (i && i < com_argc-1)
q_strlcpy (com_basedir, com_argv[i + 1], sizeof(com_basedir));
else
- q_strlcpy (com_basedir, host_parms->basedir, sizeof(com_basedir));
+ q_strlcpy (com_basedir, DATADIR, sizeof(com_basedir));
j = strlen (com_basedir);
if (j < 1) Sys_Error("Bad argument to -basedir");

View file

@ -0,0 +1,11 @@
[Desktop Entry]
Name=vkQuake
GenericName=Quake engine modification (Vulkan)
Comment=Quake 1 port using Vulkan
Exec=vkquake
Icon=vkquake
Terminal=false
Type=Application
Categories=Game;
MimeType=x-scheme-handler/steam;
Keywords=quake;game;First-Person-Shooter;

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

9
games/vkquake/pkg-descr Normal file
View file

@ -0,0 +1,9 @@
vkQuake is a Quake 1 port using Vulkan instead of OpenGL for rendering. It is
based on the popular QuakeSpasm port and runs all mods compatible with it like
Arcane Dimensions or In The Shadows.
Compared to QuakeSpasm vkQuake also features a software Quake like underwater
effect, has better color precision, generates mipmap for water surfaces at
runtime and has native support for anti-aliasing and AF.
WWW: https://github.com/Novum/vkQuake

4
games/vkquake/pkg-plist Normal file
View file

@ -0,0 +1,4 @@
bin/vkquake
%%Q1DIR%%/vkquake.pak
share/applications/vkquake.desktop
share/icons/hicolor/256x256/apps/vkquake.png