Wed Feb 18 00:15:35 CET 2009 tobias@rautenkranz.ch * initial import diff -rN -u old-myth2/Makefile new-myth2/Makefile --- old-myth2/Makefile 1970-01-01 01:00:00.000000000 +0100 +++ new-myth2/Makefile 2014-10-30 08:05:21.000000000 +0100 @@ -0,0 +1,12 @@ +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 diff -rN -u old-myth2/README new-myth2/README --- old-myth2/README 1970-01-01 01:00:00.000000000 +0100 +++ new-myth2/README 2014-10-30 08:05:21.000000000 +0100 @@ -0,0 +1,14 @@ +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 diff -rN -u old-myth2/fopenRedirect.c new-myth2/fopenRedirect.c --- old-myth2/fopenRedirect.c 1970-01-01 01:00:00.000000000 +0100 +++ new-myth2/fopenRedirect.c 2014-10-30 08:05:21.000000000 +0100 @@ -0,0 +1,41 @@ +/* + * Copyright (c) 2004 Tobias Rautenkranz + * + * 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 + +#define __USE_GNU +#include +#include + +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); +} diff -rN -u old-myth2/meminfo new-myth2/meminfo --- old-myth2/meminfo 1970-01-01 01:00:00.000000000 +0100 +++ new-myth2/meminfo 2014-10-30 08:05:21.000000000 +0100 @@ -0,0 +1,3 @@ +root: total: used: free: shared: buffers: cached: +Mem: 1000000000 0 1000000000 0 0 0 +Swap: 1000000000 0 1000000000