1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-25 15:17:36 +00:00

Ports: Add GLTron

The patches mainly convert this SDL1 game to SDL2. It has some
graphical artifacts, but it's playable!
This commit is contained in:
Jelle Raaijmakers 2022-01-11 02:09:10 +01:00 committed by Linus Groh
parent 1c2e07d42a
commit c7e021c1f1
10 changed files with 234 additions and 0 deletions

View file

@ -55,6 +55,7 @@ Please make sure to keep this list up to date when adding and updating ports. :^
| [`git`](git/) | Git | 2.33.0 | https://git-scm.com/ |
| [`glib`](glib/) | GLib | 2.70.0 | https://wiki.gnome.org/Projects/GLib |
| [`glm`](glm/) | OpenGL Mathematics (GLM) | 0.9.9.8 | https://github.com/g-truc/glm |
| [`gltron`](gltron/) | GLTron | 0.70 | http://gltron.org |
| [`glu`](glu/) | Mesa GLU | 9.0.2 | https://gitlab.freedesktop.org/mesa/glu |
| [`gmp`](gmp/) | GNU Multiple Precision Arithmetic Library (GMP) | 6.2.1 | https://gmplib.org/ |
| [`gnucobol`](gnucobol/) | GnuCOBOL | 3.1.2 | https://gnucobol.sourceforge.io/ |

27
Ports/gltron/package.sh Executable file
View file

@ -0,0 +1,27 @@
#!/usr/bin/env -S bash ../.port_include.sh
port=gltron
useconfigure="true"
version="0.70"
files="http://mirror.sobukus.de/files/grimoire/games-arcade-2d/gltron-${version}-source.tar.gz gltron-${version}-source.tar.gz e0c8ebb41a18a1f8d7302a9c2cb466f5b1dd63e9a9966c769075e6b6bdad8bb0"
auth_type=sha256
depends=("SDL_sound" "SDL2")
configopts=(
"--disable-warn"
)
launcher_name="GLTron"
launcher_category="Games"
launcher_command="/usr/local/bin/gltron"
icon_file="art/default/gltron.png"
pre_configure() {
export CPPFLAGS="-I${SERENITY_INSTALL_ROOT}/usr/include/LibGL -I${SERENITY_INSTALL_ROOT}/usr/local/include/SDL2"
export LIBS="-lSDL2_sound"
export SDL_CONFIG="${SERENITY_INSTALL_ROOT}/usr/local/bin/sdl2-config"
}
post_configure() {
unset CPPFLAGS
unset LIBS
unset SDL_CONFIG
}

View file

@ -0,0 +1,11 @@
--- gltron-0.70/config.sub 2002-03-23 17:40:17.000000000 +0000
+++ gltron-0.70-patched/config.sub 2022-01-09 23:05:14.342418312 +0000
@@ -1070,7 +1070,7 @@
| -interix* | -uwin* | -rhapsody* | -darwin* | -opened* \
| -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
| -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \
- | -os2* | -vos*)
+ | -os2* | -vos* | -serenity*)
# Remember, each alternative MUST END IN *, to match a version number.
;;
-qnx*)

View file

@ -0,0 +1,29 @@
--- gltron-0.70/configure 2003-12-14 09:00:19.000000000 +0000
+++ gltron-0.70-patched/configure 2022-01-10 00:11:14.467260522 +0000
@@ -2805,7 +2805,7 @@
RANLIB="$ac_cv_prog_RANLIB"
fi
-CFLAGS="-DSEPARATOR=\"'/'\""
+CFLAGS="$CFLAGS -DSEPARATOR=\"'/'\""
# Check whether --enable-warn or --disable-warn was given.
if test "${enable_warn+set}" = set; then
@@ -3130,7 +3130,7 @@
echo $ECHO_N "(cached) $ECHO_C" >&6
else
ac_check_lib_save_LIBS=$LIBS
-LIBS="-lGL $LIBS"
+LIBS="-lgl $LIBS"
cat >conftest.$ac_ext <<_ACEOF
#line 3135 "configure"
#include "confdefs.h"
@@ -3171,7 +3171,7 @@
#define HAVE_LIBGL 1
EOF
- LIBS="-lGL $LIBS"
+ LIBS="-lgl $LIBS"
else
{ { echo "$as_me:3177: error: OpenGL is not installed" >&5

View file

@ -0,0 +1,10 @@
--- gltron-0.70/src/game/init_sdl.c 2003-07-13 13:47:58.000000000 +0000
+++ gltron-0.70-patched/src/game/init_sdl.c 2022-01-10 00:57:00.255732917 +0000
@@ -22,7 +22,6 @@
void inputInit(void) {
/* keyboard */
- SDL_EnableKeyRepeat(0, 0); /* turn keyrepeat off */
/* joystick */
if(SDL_Init(SDL_INIT_JOYSTICK) >= 0) {

View file

@ -0,0 +1,22 @@
--- gltron-0.70/lua/src/lib/Makefile.in 2003-12-14 09:00:20.000000000 +0000
+++ gltron-0.70-patched/lua/src/lib/Makefile.in 2022-01-10 00:05:42.499282291 +0000
@@ -82,7 +82,7 @@
DEFS =
CPPFLAGS =
-CFLAGS = -ansi -pedantic -Wall -I$(srcdir)/.. -I$(top_srcdir)/lua/include
+CFLAGS = -pedantic -Wall -I$(srcdir)/.. -I$(top_srcdir)/lua/include
LDFLAGS =
LIBS = -lm
--- gltron-0.70/lua/src/Makefile.in 2003-12-14 09:00:20.000000000 +0000
+++ gltron-0.70-patched/lua/src/Makefile.in 2022-01-10 00:05:33.643271402 +0000
@@ -84,7 +84,7 @@
DEFS =
AM_CPPFLAGS =
-AM_CFLAGS = -ansi -pedantic -Wall -I$(srcdir) -I$(top_srcdir)/lua/include
+AM_CFLAGS = -pedantic -Wall -I$(srcdir) -I$(top_srcdir)/lua/include
LDFLAGS =
LIBS = -lm

View file

@ -0,0 +1,25 @@
--- gltron-0.70/nebu/input/input_system.c 2003-07-16 20:23:38.000000000 +0000
+++ gltron-0.70-patched/nebu/input/input_system.c 2022-01-10 00:40:05.362550537 +0000
@@ -6,18 +6,19 @@
#include "SDL.h"
#include <stdlib.h>
+extern SDL_Window* window;
static float joystick_threshold = 0;
void SystemGrabInput() {
- SDL_WM_GrabInput(SDL_GRAB_ON);
+ SDL_SetWindowGrab(window, SDL_TRUE);
}
void SystemUngrabInput() {
- SDL_WM_GrabInput(SDL_GRAB_OFF);
+ SDL_SetWindowGrab(window, SDL_FALSE);
}
void SystemWarpPointer(int x, int y) {
- SDL_WarpMouse(x, y);
+ SDL_WarpMouseInWindow(window, x, y);
}
void SystemHidePointer() {

View file

@ -0,0 +1,15 @@
--- gltron-0.70/nebu/include/scripting/nebu_scripting.h 2003-12-12 09:01:13.000000000 +0000
+++ gltron-0.70-patched/nebu/include/scripting/nebu_scripting.h 2022-01-10 00:21:06.346024766 +0000
@@ -18,9 +18,9 @@
extern int scripting_CopyStringResult(char *s, int len);
-extern void scripting_RunFile(const char *name);
-extern void scripting_Run(const char *command);
-extern void scripting_RunFormat(const char *format, ...);
+extern void scripting_RunFile(char *name);
+extern void scripting_Run(char *command);
+extern void scripting_RunFormat(char *format, ...);
extern void scripting_RunGC();
extern void scripting_Register(const char *name, int(*func) (lua_State *L));

View file

@ -0,0 +1,63 @@
--- gltron-0.70/nebu/video/video_system.c 2003-07-21 08:18:57.000000000 +0000
+++ gltron-0.70-patched/nebu/video/video_system.c 2022-01-10 00:39:53.078575380 +0000
@@ -1,16 +1,17 @@
#include "Nebu_video.h"
-#include "SDL.h"
+#include "SDL.h"
#include "SDL_opengl.h"
-static SDL_Surface *screen;
+SDL_Window* window;
+static SDL_GLContext glcontext;
static int width, height;
static int flags;
static int fullscreen;
extern int video_initialized;
void SystemSwapBuffers() {
- SDL_GL_SwapBuffers();
+ SDL_GL_SwapWindow(window);
}
void SystemInitWindow(int x, int y, int w, int h) {
@@ -50,21 +51,22 @@
}
void SystemSetGamma(float red, float green, float blue) {
- SDL_SetGamma(red, green, blue);
+ SDL_SetWindowBrightness(window, (red + green + blue) / 3);
}
int SystemCreateWindow(char *name) {
- int f = SDL_OPENGL;
+ int f = SDL_WINDOW_OPENGL;
if(fullscreen & SYSTEM_FULLSCREEN)
- f |= SDL_FULLSCREEN;
- if( (screen = SDL_SetVideoMode( width, height, 0, f )) == NULL ) {
+ f |= SDL_WINDOW_FULLSCREEN;
+ if( (window = SDL_CreateWindow("GLTron", SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, width, height, f )) == NULL ) {
fprintf(stderr, "[system] Couldn't set GL mode: %s\n", SDL_GetError());
exit(1); /* OK: critical, no visual */
}
- SDL_WM_SetCaption("GLtron", "");
- glClearColor(0,0,0,0);
- glClear(GL_COLOR_BUFFER_BIT);
- SDL_GL_SwapBuffers();
+ glcontext = SDL_GL_CreateContext(window);
+ SDL_SetWindowTitle(window, "GLtron");
+ glClearColor(0,0,0,0);
+ glClear(GL_COLOR_BUFFER_BIT);
+ SDL_GL_SwapWindow(window);
return 1;
}
@@ -76,7 +78,7 @@
/* there used to be some problems (memory leaks, unprober driver unloading)
* caused by this, but I can't remember what they where
*/
-
+ SDL_GL_DeleteContext(glcontext);
SDL_QuitSubSystem(SDL_INIT_VIDEO);
video_initialized = 0;
}

View file

@ -0,0 +1,31 @@
--- gltron-0.70/scripts/config.lua 2003-12-12 09:01:14.000000000 +0000
+++ gltron-0.70-patched/scripts/config.lua 2022-01-11 01:05:39.007703324 +0000
@@ -90,18 +90,18 @@
settings.keys = {
{ -- player 1
- left = 97, -- lower case 'a'
- right = 115, -- lower case 's'
- glance_left = 113, -- lower case 'q'
- glance_right = 119, -- lower case 'w'
- boost = 101, -- lower case 'd'
+ left = 65, -- lower case 'a'
+ right = 83, -- lower case 's'
+ glance_left = 81, -- lower case 'q'
+ glance_right = 87, -- lower case 'w'
+ boost = 68, -- lower case 'd'
},
{ -- player 2
- left = 106, -- lower case 'j'
- right = 107, -- lower case 'k'
- glance_left = 117, -- lower case 'u'
- glance_right = 105, -- lower case 'i'
- boost = 108, -- lower case 'l'
+ left = 74, -- lower case 'j'
+ right = 75, -- lower case 'k'
+ glance_left = 85, -- lower case 'u'
+ glance_right = 73, -- lower case 'i'
+ boost = 76, -- lower case 'l'
},
{ -- player 3
left = 276, -- cursor left