summaryrefslogtreecommitdiff
path: root/games-fps/wolfgl
diff options
context:
space:
mode:
authorV3n3RiX <venerix@redcorelinux.org>2017-10-09 18:53:29 +0100
committerV3n3RiX <venerix@redcorelinux.org>2017-10-09 18:53:29 +0100
commit4f2d7949f03e1c198bc888f2d05f421d35c57e21 (patch)
treeba5f07bf3f9d22d82e54a462313f5d244036c768 /games-fps/wolfgl
reinit the tree, so we can have metadata
Diffstat (limited to 'games-fps/wolfgl')
-rw-r--r--games-fps/wolfgl/Manifest13
-rw-r--r--games-fps/wolfgl/files/0.93-gcc.patch209
-rw-r--r--games-fps/wolfgl/files/0.93-gcc4.patch80
-rw-r--r--games-fps/wolfgl/files/0.93-sample-rate.patch11
-rw-r--r--games-fps/wolfgl/files/0.93-sprite.patch82
-rw-r--r--games-fps/wolfgl/files/wolfgl-0.93-as-needed.patch11
-rw-r--r--games-fps/wolfgl/metadata.xml15
-rw-r--r--games-fps/wolfgl/wolfgl-0.93-r1.ebuild57
-rw-r--r--games-fps/wolfgl/wolfgl-0.93-r2.ebuild56
9 files changed, 534 insertions, 0 deletions
diff --git a/games-fps/wolfgl/Manifest b/games-fps/wolfgl/Manifest
new file mode 100644
index 000000000000..4684492ee503
--- /dev/null
+++ b/games-fps/wolfgl/Manifest
@@ -0,0 +1,13 @@
+AUX 0.93-gcc.patch 5604 SHA256 74d913811c4f3fe89600f7f0c54eed366e5592657d153421013592b47943f095 SHA512 5de8a4fb661b8b1ca4c7abbc56f2dd676333157ccf459297fd455e15132b5e5356d3ea8dde418c0848cb521dac5ad9ac017252829eae5936a2d6abf4fcfdf841 WHIRLPOOL be1274c297059042cce9c97baa68251e8aa2cb5b1344cbfc2954ae37b328f0d241dbeaffeba1fcf2e4914db64da2901900507fc20f274f9115199f2caae8567a
+AUX 0.93-gcc4.patch 2095 SHA256 6c92aee8c73ad80988b45994411fbb7cc049c1bb151f0787f4727077dc06295d SHA512 7b7452a22f4bdf4dedc1ba2ed46f8c629a0f0596d8c518f49f28ba01a346b5e6d388f80c265eb16d17ca3fd7b9b9fa4c15580e8b89968a11c2e8614ffafb191e WHIRLPOOL 03ce2b644769c11cf26082e4a3d805531e4f9f8ee162bd2a198c94301c2091fb4544c7ab5540949ecd03b1290c4765ed894fc03cf9f21d5a7ede0d81a1cd4f2e
+AUX 0.93-sample-rate.patch 344 SHA256 23ad3569f29871de20cc78ed0ee2dc303c2032e90dc193487033267416859901 SHA512 63a7d2b18bde6f3b443aa6cb32bc6f9be0c094836231e97495e0f8d553a4c38166036a2233af37bde6f2b2198d81d4e27f3a10393d9a4ae74a802c2881e20bbc WHIRLPOOL 66c6f3540564ee6faa974c58e93604bf8a0704b2c1de459f33b974d1f2d7fec3c78d9190f0e0288f8bc2fe78cee65ace8ebdecaa2d5bac7d14cd282426d4b20d
+AUX 0.93-sprite.patch 2318 SHA256 33581285a49b7dc3678425377c7290b5e06e5054803f8837a8c1a0f0785e8fe8 SHA512 8904f5470e84b416cdfdd7acabc89122885600f759a938cd81b1d96fe067c8c82378400e5ddf225eb774b24c5ac18e6e7b8f6d27681c3462130f2122b2f53c3a WHIRLPOOL 078e7b5bd89c253df0e8e1c2c92bf0ce98f0f26fef6b6b782e5790daf476eed127f0d44c5feaf0b2313d5d96c0703ea6e644a7793a420da934ce914712ba3a0f
+AUX wolfgl-0.93-as-needed.patch 397 SHA256 f0d231b53b178b3f18e9dc98f532458756a483b17d67ebff238e257fdfb4e6c6 SHA512 cdcd1aa914a6fe48e3477b24f051fb36d255542031abb2d2f46a9bb0da081b0093d1efb1b35b55cbfeec1ef6e989102e45bfb6f14246923263e102b2f0920bae WHIRLPOOL e51922fa80736a603fd9582a895611a311d840f2380a175211a9cc4a27e9608d7b92df6427f445f21855f96895601b9b08d61a83cdd10e50d630e995a917ebe6
+DIST sdmdata.zip 557147 SHA256 054590923cd35ce7c0bfae98c23be81ab70c28e11fd0e562b5253523fcd7b91f SHA512 cf6eae7027acbe6e3da6985639eb36def04254790f6449f5353ffe5edd13a73c01b0a35ef9873f2e97d09ec59e632337c5b3a1a26185befdf4dfa5a161267076 WHIRLPOOL 97db17b11b4e4a7baf430ea7d37f6bb279e90ea1d61441b59d1ddb8b691dfd07f8efe2399615a669422a8b6cd28f1e35d3ac29d906d1dd602d977387e140a0fd
+DIST wolfdata.zip 564771 SHA256 a32ee97c515b6e182597a06f2326d15cc4c343ddc70558ce5fe76c870b7a0027 SHA512 2b14c477e54d14fc543e146fa699f55dabb003bd3bac1e89422a49391cf8f29b5db6967b09c08a82c612f73fe71d624902c180d81481ad42f011f51448652a43 WHIRLPOOL c2de54265c392f24cdcfa818868b6450510cdaa5b7e214afa3832063346010535c65577464e5e77b8564bd44ea0b02066b47f0f051fd09737254fa8aa6d2e830
+DIST wolfgl-0.93.tbz2 146132 SHA256 137b311edabc7bdde462cfb51bcfd468e35398828d33f0d99fcc024ceece3739 SHA512 834dda2eb4e099d70fad52e40760886208c5ca60e687024f1fe51088b94c8cdea7c058d326daa61966946bb70feeee97d0b7fb7c284e98fdec0eb8c503de7e30 WHIRLPOOL 8c856ad5985fb626395e5f5ff6a05db2fe8de5dfc0357fe75c65c5be41bbd6e8cde9d8543cb1679e9e7078493e8b1502078c6b0e0dd315e749145382529f8cdc
+EBUILD wolfgl-0.93-r1.ebuild 1549 SHA256 d0488d0a1789987e943d111cf9c087a7ff01d0b43037840fafa7100ab913d985 SHA512 3fe9bbeac6fa0b6ffdfbad3b2fd93d1e1b7ded93227d9fa24302d2db603f6c1486eb23749af627c7cd541b052f21891be2abac98d405534e5bf8b921f2917bbc WHIRLPOOL 6b3b68abeff58eab1914708d8ab9838e418b717270aad9fece926bf504505792a7c663ceaac93abc50b56c524a46a92e1df0ab19f3571dc5df0c37b14f92672e
+EBUILD wolfgl-0.93-r2.ebuild 1407 SHA256 427177b0a32154ae77a31c1ac2b659b2acef527e19786488735d6f4fdf5c5836 SHA512 6dc9970ba56f226c2e83069f95c57658544f6e4641a65b039d9a9f5cc3c41112d0691bde1c5004107c56e837f827b0fe45fd557d66f3cd522abae45c225833e7 WHIRLPOOL 29f0f8df0b75dea5e1502b5b8ab10a62749f89e3a23bb03d5e356e68962150e4c9fe013a436811eb05d95e68ca5f0bdc021304b8cab53dd769ec23062fc26883
+MISC ChangeLog 2573 SHA256 036c1032641294a85d87ed9c206a443b2a9f2eb2a2f607e9bb0a191e3b4a8652 SHA512 14e3e50ede283f2a27ebf6368b101fe3822127b796f4f71f5bee375e81254f99763904319c24dd26081a9a69ab4403ab07600a0a100009447e9ee8017f600e1c WHIRLPOOL 88873d769f25e5d9d5b07d75b5dafa1893e53fdb92f4100c41a3f74bb370f01a24a18d31138ec74e519a67d483650828a224f8af01b6ca8be2fb72f7c174a290
+MISC ChangeLog-2015 1662 SHA256 a66b80e277c933f9fbe0e0fe1e9c983617aae4aec9654e334599bbfece1e061b SHA512 498351dc6f537d333963f78cb7842fd2bb33ad7da0774e2dea0ebe8de9bfeced1ef1d5ad1d81d868e1551206a0486c25a040113a1efb3576a8e155f2d9c8dc23 WHIRLPOOL f676c6df9443d3ec1c6f5564cf876b114ba0efc19beb7cf0463e97f47c2d1571a71407cdf14522f17d5d1ecf00d6d2be9adaf431df9593f16ec616bbdb1e7216
+MISC metadata.xml 451 SHA256 38f81658a25983a980cb6c86446c839b71f495f1e97bb3400b3b9e330682eb69 SHA512 2623437ddb8f1ebc5290d5076894cf2059df12f31a22043de4cb3246648076f7ba6dc923fde07812038a2405836d57d4f9171f5c80fcfc498ae452616128a8e8 WHIRLPOOL fbb69a971a2c2542ac14e1652b484b74c14c3d6c1f8e0c79c324713e42aeb06faf4294657d901f3abf494f32481f74dfa01642e28ad2c9704de4aae232e44b68
diff --git a/games-fps/wolfgl/files/0.93-gcc.patch b/games-fps/wolfgl/files/0.93-gcc.patch
new file mode 100644
index 000000000000..a22923393678
--- /dev/null
+++ b/games-fps/wolfgl/files/0.93-gcc.patch
@@ -0,0 +1,209 @@
+diff -abur a/common/console.c b/common/console.c
+--- a/common/console.c 2000-09-27 16:19:44.000000000 +0200
++++ b/common/console.c 2003-09-11 19:59:46.037562040 +0200
+@@ -3,6 +3,14 @@
+ #include "id_us.h"
+ #include "console.h"
+
++#ifdef _LINUX
++#include <string.h>
++#endif
++
++#ifdef _LINUX
++#include <string.h>
++#endif
++
+ static char con_lines[32][45]; // buffer
+ static int con_active; // console is visible
+ static int con_current; // current line
+diff -abur a/common/id_in.h b/common/id_in.h
+--- a/common/id_in.h 2000-09-27 16:04:26.000000000 +0200
++++ b/common/id_in.h 2003-09-11 19:32:14.368653880 +0200
+@@ -178,6 +178,7 @@
+
+ void IN_Startup();
+ void IN_Shutdown();
++void IN_KeyEvent(unsigned char key);
+ void IN_Default(wbool gotit, ControlType in);
+ void IN_ClearKeysDown();
+ void IN_ReadControl(int player, ControlInfo *info);
+diff -abur a/common/id_vh.c b/common/id_vh.c
+--- a/common/id_vh.c 2000-09-26 17:39:36.000000000 +0200
++++ b/common/id_vh.c 2003-09-11 19:24:57.183116184 +0200
+@@ -230,3 +230,4 @@
+
+ }
+ */
+\ No newline at end of file
++
+diff -abur a/common/opengl.c b/common/opengl.c
+--- a/common/opengl.c 2000-09-27 16:04:26.000000000 +0200
++++ b/common/opengl.c 2003-09-11 19:22:35.622636648 +0200
+@@ -1,5 +1,10 @@
+ #include <stdio.h>
+ #include <stdlib.h>
++
++#ifdef _LINUX
++#include <string.h>
++#endif
++
+ #include "system.h"
+ #include "opengl.h"
+ #include "wl_def.h"
+diff -abur a/common/wl_act2.c b/common/wl_act2.c
+--- a/common/wl_act2.c 2000-09-27 16:04:26.000000000 +0200
++++ b/common/wl_act2.c 2003-09-11 19:19:45.511497472 +0200
+@@ -1,5 +1,9 @@
+ // WL_ACT2.C
+
++#ifdef _LINUX
++#include <stdlib.h>
++#endif
++
+ #include "wl_def.h"
+
+ //=============================================================================
+diff -abur a/common/wl_agent.c b/common/wl_agent.c
+--- a/common/wl_agent.c 2003-09-11 20:04:40.738760648 +0200
++++ b/common/wl_agent.c 2003-09-11 19:57:06.860760592 +0200
+@@ -3,6 +3,10 @@
+ #include <string.h>
+ #include "wl_def.h"
+
++#ifdef _LINUX
++#include <stdlib.h>
++#endif
++
+ //=============================================================================
+ // LOCAL CONSTANTS
+ //=============================================================================
+diff -abur a/common/wl_draw.c b/common/wl_draw.c
+--- a/common/wl_draw.c 2003-09-11 20:04:40.739760496 +0200
++++ b/common/wl_draw.c 2003-09-11 19:20:33.512200256 +0200
+@@ -2,6 +2,11 @@
+
+ #include <stdio.h>
+ #include <stdlib.h>
++
++#ifdef _LINUX
++#include <string.h>
++#endif
++
+ #include "system.h"
+ #include "opengl.h"
+ #include "wl_def.h"
+diff -abur a/common/wl_menu.c b/common/wl_menu.c
+--- a/common/wl_menu.c 2000-09-27 16:04:27.000000000 +0200
++++ b/common/wl_menu.c 2003-09-11 20:07:38.892677136 +0200
+@@ -5,6 +5,10 @@
+ //
+ ////////////////////////////////////////////////////////////////////
+
++#ifdef _LINUX
++#include "../linux/input.h"
++#endif
++
+ #include <string.h>
+ #include "opengl.h"
+ #include "wl_def.h"
+diff -abur a/common/wl_menu.h b/common/wl_menu.h
+--- a/common/wl_menu.h 2000-09-26 17:38:31.000000000 +0200
++++ b/common/wl_menu.h 2003-09-11 18:31:41.593919584 +0200
+@@ -233,3 +233,4 @@
+ void NonShareware();
+ /*int GetYorN(int x,int y,int pic);
+ */
+\ No newline at end of file
++
+diff -abur a/common/wl_play.c b/common/wl_play.c
+--- a/common/wl_play.c 2000-09-27 16:04:27.000000000 +0200
++++ b/common/wl_play.c 2003-09-11 19:40:31.293109880 +0200
+@@ -1,6 +1,11 @@
+ // WL_PLAY.C
+
+ #include <memory.h>
++
++#ifdef _LINUX
++#include "../linux/input.h"
++#endif
++
+ #include "wl_def.h"
+ #include "system.h"
+
+diff -abur a/common/wl_state.c b/common/wl_state.c
+--- a/common/wl_state.c 2000-09-27 16:04:27.000000000 +0200
++++ b/common/wl_state.c 2003-09-11 19:23:26.895841936 +0200
+@@ -2,6 +2,10 @@
+
+ #include "wl_def.h"
+
++#ifdef _LINUX
++#include <stdlib.h>
++#endif
++
+ //=============================================================================
+ // GLOBAL VARIABLES
+ //=============================================================================
+diff -abur a/common/wl_text.c b/common/wl_text.c
+--- a/common/wl_text.c 2000-09-26 17:40:23.000000000 +0200
++++ b/common/wl_text.c 2003-09-11 19:19:00.110399488 +0200
+@@ -4,6 +4,10 @@
+ #include "wl_def.h"
+ #include "system.h"
+
++#ifdef _LINUX
++#include <string.h>
++#endif
++
+ #ifndef SPEAR
+
+ void FreeMusic(); // WL_MENU.C
+diff -abur a/linux/sound.c b/linux/sound.c
+--- a/linux/sound.c 2000-09-26 17:57:48.000000000 +0200
++++ b/linux/sound.c 2003-09-11 19:55:16.702507192 +0200
+@@ -9,6 +9,8 @@
+ #include <stdlib.h>
+
+ #include <sys/time.h>
++#include <string.h>
++#include <errno.h>
+
+ #include <fcntl.h>
+ #include <unistd.h>
+diff -abur a/linux/sound.h b/linux/sound.h
+--- a/linux/sound.h 2000-09-26 17:57:48.000000000 +0200
++++ b/linux/sound.h 2003-09-11 19:44:03.663824624 +0200
+@@ -1,5 +1,8 @@
+ void S_LoadSound(int id, void* data, long length);
+ void S_PlaySound(int id, int pan);
++void S_UpdateSound();
++void S_InitSound();
++void S_ShutDownSound();
+
+ extern int DigitalDevice;
+
+diff -abur a/linux/system.c b/linux/system.c
+--- a/linux/system.c 2000-09-26 17:57:48.000000000 +0200
++++ b/linux/system.c 2003-09-11 19:42:14.955350824 +0200
+@@ -1,9 +1,12 @@
+ #include <stdio.h>
++#include <string.h>
++#include <unistd.h>
+ #include <sys/time.h>
+ #include <X11/keysym.h>
+ #include <GL/gl.h>
+ #include <GL/glx.h>
+ #include "wl_def.h"
++#include "sound.h"
+
+ int screen_width, screen_height;
+ Display *dpy;
+@@ -117,7 +120,7 @@
+ visinfo = glXChooseVisual( dpy, scrnum, attrib );
+ if (!visinfo) {
+ printf("Error: couldn't get an RGB, Double-buffered visual\n");
+- exit(1);
++ _exit(1);
+ }
+
+ /* window attributes */
diff --git a/games-fps/wolfgl/files/0.93-gcc4.patch b/games-fps/wolfgl/files/0.93-gcc4.patch
new file mode 100644
index 000000000000..5dcccd76049b
--- /dev/null
+++ b/games-fps/wolfgl/files/0.93-gcc4.patch
@@ -0,0 +1,80 @@
+diff -ur wolfgl-0.93-orig/common/id_ca.c wolfgl-0.93/common/id_ca.c
+--- wolfgl-0.93-orig/common/id_ca.c 2006-01-28 16:59:10.000000000 -0500
++++ wolfgl-0.93/common/id_ca.c 2006-01-28 17:04:26.000000000 -0500
+@@ -252,6 +252,7 @@
+ {
+ unsigned short ch,chhigh,count,offset;
+ unsigned short *copyptr, *inptr, *outptr;
++ unsigned char *uc_inptr;
+
+ length/=2;
+
+@@ -268,13 +269,17 @@
+ if (!count)
+ {
+ // have to insert a word containing the tag byte
+- ch |= *((unsigned char*)inptr)++;
++ uc_inptr = (unsigned char*)inptr;
++ ch |= *(uc_inptr)++;
++ inptr = (unsigned short *)uc_inptr;
+ *outptr++ = ch;
+ length--;
+ }
+ else
+ {
+- offset = *((unsigned char*)inptr)++;
++ uc_inptr = (unsigned char*)inptr;
++ offset = *(uc_inptr)++;
++ inptr = (unsigned short *)uc_inptr;
+ copyptr = outptr - offset;
+ length -= count;
+ while (count--)
+@@ -287,7 +292,9 @@
+ if (!count)
+ {
+ // have to insert a word containing the tag byte
+- ch |= *((unsigned char*)inptr)++;
++ uc_inptr = (unsigned char*)inptr;
++ ch |= *(uc_inptr)++;
++ inptr = (unsigned short *)uc_inptr;
+ *outptr++ = ch;
+ length --;
+ }
+@@ -806,7 +813,7 @@
+
+ for (i=0;i<NUMCHUNKS;i++)
+ if (grsegs[i])
+- MM_SetPurge (&(memptr)grsegs[i],3);
++ MM_SetPurge ((memptr)&grsegs[i],3);
+ ca_levelbit<<=1;
+ ca_levelnum++;
+ }
+@@ -862,7 +869,7 @@
+
+ for (i = 0; i < NUMCHUNKS; i++)
+ if (grsegs[i])
+- MM_SetPurge (&(memptr)grsegs[i],3);
++ MM_SetPurge ((memptr)&grsegs[i],3);
+ }
+
+ //===========================================================================
+diff -ur wolfgl-0.93-orig/common/wl_game.c wolfgl-0.93/common/wl_game.c
+--- wolfgl-0.93-orig/common/wl_game.c 2006-01-28 16:59:10.000000000 -0500
++++ wolfgl-0.93/common/wl_game.c 2006-01-28 17:07:08.000000000 -0500
+@@ -545,13 +545,13 @@
+ {
+ // solid wall
+ tilemap[x][y] = tile;
+- (unsigned short)actorat[x][y] = tile;
++ actorat[x][y] = tile;
+ }
+ else
+ {
+ // area floor
+ tilemap[x][y] = 0;
+- (unsigned short)actorat[x][y] = 0;
++ actorat[x][y] = 0;
+ }
+ }
+
+
diff --git a/games-fps/wolfgl/files/0.93-sample-rate.patch b/games-fps/wolfgl/files/0.93-sample-rate.patch
new file mode 100644
index 000000000000..6e7156a1c716
--- /dev/null
+++ b/games-fps/wolfgl/files/0.93-sample-rate.patch
@@ -0,0 +1,11 @@
+--- a/linux/sound.c 2003-09-11 20:28:32.032170976 +0200
++++ b/linux/sound.c 2003-09-11 20:28:45.111182664 +0200
+@@ -64,7 +64,7 @@
+ #define BUFMUL 4
+ #define MIXBUFFERSIZE (SAMPLECOUNT*BUFMUL)
+
+-#define SAMPLERATE 11025 // Hz
++#define SAMPLERATE 8000 // Hz
+ #define SAMPLESIZE 2 // 16bit
+
+ // The actual output device.
diff --git a/games-fps/wolfgl/files/0.93-sprite.patch b/games-fps/wolfgl/files/0.93-sprite.patch
new file mode 100644
index 000000000000..135eb8e26eed
--- /dev/null
+++ b/games-fps/wolfgl/files/0.93-sprite.patch
@@ -0,0 +1,82 @@
+--- a/common/wl_agent.c 2003-09-11 20:39:02.674298800 +0200
++++ b/common/wl_agent.c 2003-09-11 20:42:17.229721880 +0200
+@@ -919,32 +919,31 @@
+ viewdist = 0x7fffffffl;
+ closest = NULL;
+
+-// while (1)
++ while (1)
+ {
+ oldclosest = closest;
+
+ for (check=ob->next ; check ; check=check->next)
+ if ((check->flags & FL_SHOOTABLE)
+- //&&
++ &&
+ // (check->flags & FL_VISABLE) &&
+-// (abs(check->viewx - centerx) < shootdelta)
++ (abs(check->viewx - centerx) < shootdelta)
+ )
+-// {
++ {
+ if (CheckLine(check))
+-// if (check->transx < viewdist)
++ if (check->transx < viewdist)
+ {
+-// viewdist = check->transx;
++ viewdist = check->transx;
+ closest = check;
+- break;
+ }
+-// }
++ }
+
+ if (closest == oldclosest)
+ return; // no more targets, all missed
+
+ // trace a line from player to enemey
+-// if (CheckLine(closest))
+-// break;
++ if (CheckLine(closest))
++ break;
+ }
+
+ // hit something
+--- a/common/wl_draw.c 2003-09-11 20:43:26.473195272 +0200
++++ b/common/wl_draw.c 2003-09-11 20:46:57.859059736 +0200
+@@ -877,7 +877,7 @@
+ tilespot = &tilemap[0][0]+spotloc;
+
+ // could be in any of the nine surrounding tiles
+- if ((*visspot) ||
++ if (1 || (*visspot) ||
+ (*(visspot-1) && !*(tilespot-1)) ||
+ (*(visspot+1) && !*(tilespot+1)) ||
+ (*(visspot-65) && !*(tilespot-65)) ||
+@@ -980,6 +980,8 @@
+
+ for (obj = player->next; obj; obj = obj->next)
+ {
++ int sprite;
++
+ if (!areabyplayer[obj->areanumber])
+ continue;
+ if (!gamestates[obj->state].shapenum)
+@@ -989,10 +991,14 @@
+ glTranslated((float)obj->x/(1<<16), (float)obj->y/(1<<16), 0);
+ glRotated(-player->angle, 0,0,1);
+
+- if (texture_index[PMSpriteStart+gamestates[obj->state].shapenum] == 0)
+- CreateSprite(PMSpriteStart+gamestates[obj->state].shapenum);
++ sprite = gamestates[obj->state].shapenum;
++ if (gamestates[obj->state].rotate)
++ sprite += CalcRotate(obj);
++
++ if (texture_index[PMSpriteStart+sprite] == 0)
++ CreateSprite(PMSpriteStart+sprite);
+ else
+- glBindTexture(GL_TEXTURE_2D, texture_index[PMSpriteStart+gamestates[obj->state].shapenum]);
++ glBindTexture(GL_TEXTURE_2D, texture_index[PMSpriteStart+sprite]);
+
+ glBegin(GL_QUADS);
+ glTexCoord2f(0,0);
diff --git a/games-fps/wolfgl/files/wolfgl-0.93-as-needed.patch b/games-fps/wolfgl/files/wolfgl-0.93-as-needed.patch
new file mode 100644
index 000000000000..f9da771e1d79
--- /dev/null
+++ b/games-fps/wolfgl/files/wolfgl-0.93-as-needed.patch
@@ -0,0 +1,11 @@
+--- a/linux/Makefile 2009-02-06 14:27:11.000000000 +0100
++++ b/linux/Makefile 2009-02-06 14:27:40.000000000 +0100
+@@ -19,7 +19,7 @@
+ @echo 'Do not call this file directly'
+
+ wolfgl: $(LINUX_OBJS) $(COMMON_OBJS)
+- $(CC) $(LINK_FLAGS) $(COMMON_OBJS) $(LINUX_OBJS) -o $(OUTDIR)/wolfgl
++ $(CC) $(LDFLAGS) $(COMMON_OBJS) $(LINUX_OBJS) $(LINK_FLAGS) -o $(OUTDIR)/wolfgl
+
+ # common directory
+
diff --git a/games-fps/wolfgl/metadata.xml b/games-fps/wolfgl/metadata.xml
new file mode 100644
index 000000000000..92093a34cff1
--- /dev/null
+++ b/games-fps/wolfgl/metadata.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>chainsaw@gentoo.org</email>
+ <name>Tony Vroon</name>
+ </maintainer>
+ <maintainer type="project">
+ <email>games@gentoo.org</email>
+ <name>Gentoo Games Project</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="sourceforge">wolfgl</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/games-fps/wolfgl/wolfgl-0.93-r1.ebuild b/games-fps/wolfgl/wolfgl-0.93-r1.ebuild
new file mode 100644
index 000000000000..abda49629276
--- /dev/null
+++ b/games-fps/wolfgl/wolfgl-0.93-r1.ebuild
@@ -0,0 +1,57 @@
+# Copyright 1999-2009 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=2
+#ECVS_SERVER="wolfgl.cvs.sourceforge.net:/cvsroot/wolfgl"
+#ECVS_MODULE="wolfgl"
+#inherit cvs
+inherit eutils games
+
+DESCRIPTION="Wolfenstein and Spear of Destiny port using OpenGL"
+HOMEPAGE="http://wolfgl.sourceforge.net/"
+SRC_URI="mirror://gentoo/${P}.tbz2
+ mirror://sourceforge/wolfgl/wolfdata.zip
+ mirror://sourceforge/wolfgl/sdmdata.zip"
+# mirror://sourceforge/wolfgl/wolfglx-wl6-${PV}.zip
+# mirror://sourceforge/wolfgl/wolfglx-sod-${PV}.zip
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="x86"
+IUSE=""
+
+RDEPEND="virtual/opengl"
+DEPEND="${RDEPEND}
+ x11-proto/xproto
+ app-arch/unzip"
+
+src_prepare() {
+ epatch "${FILESDIR}"/${PV}-gcc.patch \
+ "${FILESDIR}"/${PV}-sample-rate.patch \
+ "${FILESDIR}"/${PV}-sprite.patch \
+ "${FILESDIR}"/${P}-as-needed.patch \
+ "${FILESDIR}"/${PV}-gcc4.patch
+}
+
+src_compile() {
+ emake -j1 CFLAGS="${CFLAGS}" DATADIR="${GAMES_DATADIR}"/${PN} \
+ || die "emake failed"
+}
+
+src_install() {
+ newgamesbin linux/SDM/wolfgl wolfgl-sdm || die
+ newgamesbin linux/SOD/wolfgl wolfgl-sod || die
+ newgamesbin linux/WL1/wolfgl wolfgl-wl1 || die
+ newgamesbin linux/WL6/wolfgl wolfgl-wl6 || die
+ insinto "${GAMES_DATADIR}"/${PN}
+ doins "${WORKDIR}"/*.{sdm,wl1} || die
+ prepgamesdirs
+}
+
+pkg_postinst() {
+ games_pkg_postinst
+ elog "This installed the shareware data files for"
+ elog "Wolfenstein 3D and Spear Of Destiny."
+ elog "If you wish to play the full versions just"
+ elog "copy the data files to ${GAMES_DATADIR}/${PN}/"
+}
diff --git a/games-fps/wolfgl/wolfgl-0.93-r2.ebuild b/games-fps/wolfgl/wolfgl-0.93-r2.ebuild
new file mode 100644
index 000000000000..2fb858261675
--- /dev/null
+++ b/games-fps/wolfgl/wolfgl-0.93-r2.ebuild
@@ -0,0 +1,56 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+#ECVS_SERVER="wolfgl.cvs.sourceforge.net:/cvsroot/wolfgl"
+#ECVS_MODULE="wolfgl"
+#inherit cvs
+
+inherit eutils
+
+DESCRIPTION="Wolfenstein and Spear of Destiny port using OpenGL"
+HOMEPAGE="http://wolfgl.sourceforge.net/"
+SRC_URI="mirror://gentoo/${P}.tbz2
+ mirror://sourceforge/wolfgl/wolfdata.zip
+ mirror://sourceforge/wolfgl/sdmdata.zip"
+# mirror://sourceforge/wolfgl/wolfglx-wl6-${PV}.zip
+# mirror://sourceforge/wolfgl/wolfglx-sod-${PV}.zip
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~x86"
+IUSE=""
+
+RDEPEND="virtual/opengl"
+DEPEND="${RDEPEND}
+ app-arch/unzip
+ x11-proto/xproto"
+
+PATCHES=(
+ "${FILESDIR}"/${PV}-gcc.patch
+ "${FILESDIR}"/${PV}-sample-rate.patch
+ "${FILESDIR}"/${PV}-sprite.patch
+ "${FILESDIR}"/${P}-as-needed.patch
+ "${FILESDIR}"/${PV}-gcc4.patch
+)
+
+src_compile() {
+ emake -j1 CFLAGS="${CFLAGS}" DATADIR="/usr/share/${PN}" || die "emake failed"
+}
+
+src_install() {
+ newbin linux/SDM/wolfgl wolfgl-sdm
+ newbin linux/SOD/wolfgl wolfgl-sod
+ newbin linux/WL1/wolfgl wolfgl-wl1
+ newbin linux/WL6/wolfgl wolfgl-wl6
+
+ insinto /usr/share/${PN}
+ doins "${WORKDIR}"/*.{sdm,wl1}
+}
+
+pkg_postinst() {
+ elog "This installed the shareware data files for"
+ elog "Wolfenstein 3D and Spear Of Destiny."
+ elog "If you wish to play the full versions just"
+ elog "copy the data files to /usr/share/${PN}/"
+}