initial import
Wed Feb 18 00:15:35 CET 2009 tobias@rautenkranz.ch
* initial import
addfile ./Makefile
hunk ./Makefile 1
+all: fopenr.so
+
+fopenr.so: fopenRedirect.o
+ gcc -shared -o fopenr.so fopenRedirect.o
+
+fopenRedirect.o: fopenRedirect.c
+ gcc -Wall -fpic -c fopenRedirect.c
+
+.PHONY: clean
+clean:
+ rm -f *.o
+ rm -f *.so
addfile ./README
hunk ./README 1
+Myth2 for Linux parses proc/meminfo,
+but its format changed some time ago.
+Therefore it won't activate OpenGL.
+
+Error message:
+~$ myth2
+Warning: You may not have enough free memory (-811245713) !
+
+By suppling an old meminfo this can be fixed:
+
+
+* Adjust the path in fopenRedirect.c:38 to match the supplied meminfo file.
+* Compile with: make
+* Start myth2: LD_PRELOAD=./fopenr.so myth2 [_$_]
addfile ./fopenRedirect.c
hunk ./fopenRedirect.c 1
+/*
+ * Copyright (c) 2004 Tobias Rautenkranz <tobias@rautenkranz.ch>
+ *
+ * Permission is hereby granted, free of charge, to any person
+ * obtaining a copy of this software and associated documentation
+ * files (the "Software"), to deal in the Software without
+ * restriction, including without limitation the rights to use,
+ * copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following
+ * conditions:
+ *
+ * The above copyright notice and this permission notice shall be
+ * included in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+ * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+ * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+ * OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+#include <stdio.h>
+
+#define __USE_GNU
+#include <string.h>
+#include <dlfcn.h>
+
+FILE* fopen(const char *filename, const char *modes)
+{
+ FILE* (*_fopen) (const char*,const char*) = dlsym(RTLD_NEXT, "fopen");
+
+ if (strcmp(filename,"/proc/meminfo") == 0) {
+ printf("meminfo fix\n");
+ return _fopen("/usr/local/games/myth2/meminfo", modes); //change this path
+ } else
+ return _fopen(filename, modes);
+}
addfile ./meminfo
hunk ./meminfo 1
+root: total: used: free: shared: buffers: cached:
+Mem: 1000000000 0 1000000000 0 0 0
+Swap: 1000000000 0 1000000000 [_$_]