IRC logs for #opendune on OFTC at 2009-10-22
⏴ go to previous day
01:21:49 *** ChanServ sets mode: +v glx_
06:44:14 *** Xaroth_ has joined #openDune
07:15:23 *** boekabart has joined #openDune
07:15:40 *** Xaroth_ is now known as Xaroth
08:15:00 <boekabart> ...while hg pull on my windows works
08:16:30 <Xaroth> 81 files updated, 0 files merged, 0 files removed, 0 files unresolved
08:18:12 <boekabart> here @ win also (pull)
08:18:22 <Xaroth> this was on my server :P
09:40:51 <TrueBrain> boekabart: first 'clone'
09:41:07 <TrueBrain> else: version mismatch?
09:49:41 <boekabart> it's a fresh apt-get install mercurial
09:49:49 <boekabart> anyway, i just scp'ed them on there
09:50:00 <boekabart> apt-get install'ed tcc
09:50:10 <boekabart> but no libtcc.h / .a/ .so :(
09:50:21 <boekabart> so went ahead and built tcc myself
09:50:49 <boekabart> cc -m32 -g -Wall -fPIC -Wextra -Wno-unused-parameter -shared -o libjit.so src/libjit/call.c libtoc.so -ltcc -ldl -I include /usr/bin/ld: libjit.so: version node not found for symbol _TlsGetValue@4 /usr/bin/ld: failed to set dynamic section sizes: Bad value
09:51:07 <boekabart> that's where I'm stuck now
09:55:45 <TrueBrain> what OS are you using?! :P
09:56:17 <TrueBrain> what does: uname -a show?
09:56:20 <boekabart> using a friend's server
09:56:33 <boekabart> cc (GCC) 4.2.4 (Ubuntu 4.2.4-1ubuntu4)
09:57:23 <boekabart> Linux pazzapazza.com 2.6.16.38-xenU #2 SMP Wed Aug 13 21:03:44 EDT 2008 i686 GNU/Linux
09:57:43 <boekabart> the time is kinda wrong :)
09:57:52 <TrueBrain> it is the time of the kernel
09:58:27 <boekabart> apt-get installed tcc 2.5
09:58:59 <TrueBrain> 0.9.25 is much more stable, so that is fine
09:59:09 <TrueBrain> TlsGetValue is not only something I don't use, it is also windows related
09:59:13 <boekabart> but, tcc".exe" isn;t used here yet right?
09:59:27 <boekabart> it's VERY windows related
09:59:44 <TrueBrain> so I have no idea what you did, but ... I never seen that before :p
09:59:54 <TrueBrain> make clean && make in 'toc' directory?
10:00:24 <TrueBrain> does libtoc.so compile successful?
10:01:03 <TrueBrain> btw, the libemu in toc/src/ is less recent than the one in svn://svn.opendune.org/extra/libemu (just so you know :p)
10:01:50 <boekabart> interesting, other errors after clean!
10:02:17 <boekabart> src/libemu/int10.c:1:17: error: SDL.h: No such file or directory
10:02:58 <TrueBrain> so libjit.so is now compiled
10:03:02 <TrueBrain> apt-get install libsdl-dev or something
10:05:24 <TrueBrain> k, pushed a new version, this time with an updated LibEMU :)
10:09:39 <TrueBrain> k, I got to go; will be back later :)
11:24:51 <boekabart> fresh yum install mercurial
11:25:25 <TB> pff .. I hate waiting for lab partners :(
11:25:56 <TB> boekabart: managed to get it to work? (can't access my normal IRC from here :p)
11:26:13 <boekabart> TB: trying on a new VM here
11:26:24 <planetmaker> btw, worked through ordos till l5. Flawlessly. Kudos
11:26:38 <boekabart> fresh mercurial install, same problem
11:26:44 <TB> only a problem to install LibSDL :p
11:27:25 <TB> install mercurial 1.3.1 here, lets see what mine says
11:27:39 <TB> planetmaker: good to hear :) We are getting there ;)
11:27:48 <boekabart> [vmplanet@fedora-vm ~]$ hg --version Mercurial Distributed SCM (version 1.0)
11:28:03 <boekabart> that's what yum gives me!
11:29:06 <TB> here hg fails on locale errors .. lol
11:29:14 <planetmaker> I'd recomend at least 1.2.1
11:29:35 <planetmaker> I had a lot of issues with versions prior to that
11:29:35 <TB> 917 unresolved entries left :)
11:29:47 <TB> lol, I can only use SSH and HTTP over this connection :)
11:30:05 <boekabart> wtf: yum (and apt-get) know mercurial AND hg
11:30:15 <boekabart> mercurial gives 1.0, hg 1.2.1
11:30:28 <TB> Mercurial is the official name
11:30:37 <TB> hg is just the element code in the table :)
11:30:50 <boekabart> and the right package name, too :)
11:31:40 <TB> I guess I should write something simple which tries to resolve many of the unresolves we have now :p
11:31:56 <boekabart> at least I could make install tcc on my own vm
11:32:23 <TB> toc, libtoc.so, libjit.so and libemu.so is all you need :p
11:32:35 <TB> libjit.so overrides a few functions in libemu.so :)
11:33:01 <boekabart> so, should I use libemu srcs from your git, or override with extra/libemu ?
11:33:11 <TB> I updated it before I left my home
11:33:16 <TB> so the current one in hg is fine
11:33:35 <boekabart> btw, you know TB is a disease, right?
11:33:53 <TB> never thought about it like that ..
11:35:50 <TB2> so now you can decompile FirePower yourself :)
11:35:56 <TB2> or for the time it runs :p
11:36:08 <TB2> yesterday I implemented the first missing interrupt, but while updating it got removed :p
11:36:18 <TB2> looking in the DOSBox source mostly helps a lot ;)
11:40:57 <boekabart> I think yesterdays incstructions are incomplete
11:41:35 <boekabart> copied working to fp, incl. subdir, put all fp files in fp/data, ran ./toc fp FP.EXE.
11:41:53 <boekabart> very quickly, said [READER] INFO: detected MZ header and returned
11:42:37 <boekabart> make LD_LIBRARY_PATH=".." LD_PRELOAD="libjit.so"
11:43:09 <TB2> LD_LIBRARY_PATH=".." LD_PRELOAD="libjit.so" ./main
11:43:28 <boekabart> make: *** No rule to make target `src/main.c', needed by `main'. Stop.
11:43:43 <boekabart> there is no src/ folder in working (or fp)
11:45:44 <TB2> hmm .. no, it should be generated
11:45:56 <TB2> but as I said, little error-checking and stuff :p
11:46:08 <TB2> I have a script 'Compile.sh' (not here) which does it all for me :p
11:46:12 <boekabart> could it be that you have a hardcoded "working/" in there?
11:46:14 <boekabart> cc -m32 -g -Wall -O1 -foptimize-sibling-calls -o main decompiled/*.c src/*.c ./libemu.so -I include/ -lncursesw -lSDL /bin/sh: symbol lookup error: ../libjit.so: undefined symbol: emu_ip
11:46:40 <boekabart> there is no decompiled folder either
11:46:54 <TB2> but that is only used at the next step
11:47:27 <TB2> (yes yes, it needs a good cleanup :p)
11:48:42 <TB2> oh, one other nasty thing: everything in your data/ dir has to be lowercase in names
11:48:48 <TB2> else things will fail later on :p
11:49:05 <TB2> emu_ip is defined by libemu
11:49:57 <TB2> hmm, I shut down my machine when leaving home, so I can't look in my pretty script :p
11:50:34 <TB2> so you now have a fp/decompiled dir, a fp/src dir, a fp/src/main.c with a int main() in it?
11:50:54 <TB2> a fp/memory/start.bin should be there too .. and of course fp/data
11:51:01 <boekabart> caused by the preload. start.bin is there
11:51:36 <TB2> oh, and make sure you have the include dir linked in fp/
11:51:51 <TB2> boekabart: what is caused by preload?
11:52:23 <boekabart> [vmplanet@fedora-vm working]$ make LD_LIBRARY_PATH=".." ./main cc -m32 -g -Wall -O1 -foptimize-sibling-calls -o main decompiled/*.c src/*.c ../libemu.so -I include/ -lncursesw -lSDL cc: decompiled/*.c: No such file or directory make: *** [main] Error 1
11:52:38 <TB2> make sure fp/decompiled dir exists
11:52:38 <boekabart> who creates the decompiled, and when?
11:52:45 <TB2> nobody does, you should :p
11:53:09 <TB2> the Makefile works for both types of toc output .. but one doesn't create a decompiled dir, the other does (which you can't run yet :p)
11:53:14 <TB2> nah, it needs to be empty
11:53:19 <TB2> just do: mkdir fp/decompiled
11:53:35 <boekabart> cc: decompiled/*.c: No such file or directory
11:54:21 <TB2> I will update the Makefile not later then this weekend to work a bit better :)
11:55:12 <TB2> and if that works: LD_LIBRARY_PATH=".." LD_PRELOAD="libjit.so" ./main
11:55:25 <TB2> or rather, LD_LIBRARY_PATH=".." LD_PRELOAD="libjit.so" ./main 2>run.log
11:56:51 <boekabart> ok then... [JIT] Unknown function, starting with JIT.
11:57:07 <TB2> it finds a bunch of new functions, then exists on unknown interrupt
11:57:16 <glx> opendune hanged in A3 last night
11:57:34 <TB2> glx: still happens, yes ;)
11:57:53 <boekabart> that's ALL there is in the log
11:57:58 <glx> but I didn't notice screen corruption for a long time now :)
11:58:02 <TB2> boekabart: and what does the output give you?
11:58:28 <TB2> boekabart: you should get a black screen with text
11:59:08 <boekabart> segmentation fault, would be the text
11:59:10 <TB2> boekabart: oh, I think I know
11:59:20 <TB2> make sure you have in fp the dir 'include'
11:59:46 <boekabart> i'm in working now, no longer in fp
12:00:00 <boekabart> so , include is there
12:00:37 <TB2> then I have no idea why it segfaults :p
12:00:49 <boekabart> i'll start it from msvc :D
12:01:13 <boekabart> there is a crash.bin
12:01:23 <TB2> as said, the tool is not really made for others to use, so it is a bit .. poor on anything :)
12:01:27 <TB2> as I mostly know what is going wrong :p
12:01:35 <TB2> crash.bin is from your ./main run most likely
12:01:40 <TB2> the JIT never produces a crash.bin :)
12:02:08 <TB2> damn, where is this guy ... he is late late late late late late late!! I hate it when people are always late late late late
12:02:16 <TB2> and I have better things to do
12:02:31 <TB2> boekabart: you know what, when I am home, I prepare you what works for me, then at least I know nothing goes wrong there :p
12:02:46 <TB2> you can run gdb over it, but it is a bit tricky
12:02:50 <TB2> gdb not like LD_PRELOAD stuff :p
12:03:10 <TB2> so you can recompile with ../libjit.so in the line with cc :p
12:03:20 <TB2> then the JIT is compiled completely into the application
12:03:40 <boekabart> TB2, can't you /part ?
12:03:57 <TB2> this channel, sure, but then what? :P
12:11:16 <boekabart> TB2: linking in libjit (and libtoc) helped
12:12:03 <TB2> so now you hve the interrupt error?
12:12:22 <boekabart> Program Termination: jumped to 0A35:4CE0, which is not decompiled. The jump was triggered at src/libemu/call.c:133 The jump appears to originate from 0000:0000.
12:13:29 <TB2> then the JIT is not attached :p
12:13:47 <TB2> try the LD_PRELOAD again I say :)
12:14:02 <TB2> else, move around the order of libjit and libemu in the cc line
12:15:41 <TB2> he is just 135 minutes late
12:32:12 <boekabart> TrueBrain: got it to work on the other system, but same error
12:45:38 <TrueBrain> okay, let me get a clean checkout and see what happens
12:48:42 <TrueBrain> boekabart: ah, make a dir 'txt' :)
12:51:11 *** ChanServ sets mode: +o Xaroth
12:52:53 <TrueBrain> oh, and boekabart, the first step indeed hardcoded assumes 'working' :)
12:56:34 <TrueBrain> boekabart: pushed a new revision, this should fix all your problems :)
12:56:43 <TrueBrain> just start the process over ;) (like: ./toc fp fp.exe)
12:56:59 <TrueBrain> the Makefile ignores if decompiled is empty, and the right directories are created :)
13:00:36 <DorpsGek> SVN: glx (r394) -Add: figured out a few variables
13:01:22 <boekabart> hey, it worked once
13:02:03 <boekabart> 2nd run, segfault again
13:08:03 <TrueBrain> what did the first run show?
13:08:39 <TrueBrain> glx: one offset is wrong :p (struct_0D5a :p)
13:09:05 <TrueBrain> glx: prefixChar is uint16? That is odd .. why?
13:09:33 <boekabart> [vmplanet@fedora-vm fp]$ cat run.log [JIT] Unknown function, starting with JIT. [JIT] New function 0A35:4CE0; recorded [JIT] Jumped from 0000:0000 to 0A35:4CE0; recorded
13:09:48 <Xaroth> it's doing something :)
13:10:23 <glx> ,...emu_push(emu_get_memory16(emu_ds, emu_bx, 0x3808)); <-- used there B483:206
13:10:35 <boekabart> 2nd run is like before again
13:10:39 <TrueBrain> 169 music files? Wow :)
13:11:05 <glx> not really 169, one value is full 0, and there are duplicates for dune*
13:11:35 <TrueBrain> [JIT] Unknown function, starting with JIT.
13:11:36 <TrueBrain> [EMU] [ INT21:0C ] Not Yet Implemented
13:11:40 <TrueBrain> boekabart: that is shows to me on a second run
13:11:49 <TrueBrain> when executing: LD_LIBRARY_PATH=".." LD_PRELOAD="libjit.so" ./main 2>run.log
13:12:12 <TrueBrain> else, execute: LD_LIBRARY_PATH=".." LD_PRELOAD="libjit.so" gdb ./main
13:12:29 <TrueBrain> oh, that fails, euh ..
13:12:43 <boekabart> what can be the diff between run 1 and 2
13:13:17 <TrueBrain> only if your umask is wrong, and you can't access the files in txt/ afterwards
13:13:57 <DorpsGek> SVN: glx (r395) -Fix (r394): wrong offset in struct_0D5A comments
13:14:32 <boekabart> even if I remove txt/ it won't run OK again
13:15:04 <TrueBrain> cc -m32 -g -Wall -O1 -foptimize-sibling-calls -o main src/main.c ./libjit.so ./libtoc.so ./libemu.so -I include/ -lncursesw -lSDL
13:15:12 <TrueBrain> LD_LIBRARY_PATH="." gdb ./main
13:17:11 <TrueBrain> it babbles about -rpath, which can be ignored safely :)
13:24:59 <TrueBrain> so so so so, what does it say what does it say? :) :)
13:26:49 <boekabart> [JIT] Unknown function, starting with JIT. [JIT] New function 0A35:4CE0; recorded [JIT] Jumped from 0000:0000 to 0A35:4CE0; recorded [New Thread 0xb7f2a8e0 (LWP 23644)] Progr
13:27:05 <TrueBrain> use paste.openttd.org for the backtrace
13:27:14 <TrueBrain> as your pastes are partly and annoying to read :p
13:27:59 <boekabart> (yes, exactly like that)
13:28:13 <TrueBrain> looks like TCC failed
13:28:56 <DorpsGek> SVN: glx (r396) -Fix (r394): wrong offset in struct_0D5A members
13:29:10 <boekabart> this is tcc latest from site, built and installed locally
13:31:50 <TrueBrain> there are plenty of checks to validate the result of tcc
13:31:56 <TrueBrain> so that makes it all a bit odd
13:32:36 <TrueBrain> if you try to cmopile something yourself with tcc? Make a test.c with int main() { printf("bla\n"); } in it, or something, and run: tcc test.c
13:32:53 <TrueBrain> boekabart: btw, 32bit system?
13:33:44 <TrueBrain> uname -a will tell you :)
13:33:49 <boekabart> yes, every packagei676
13:34:24 <boekabart> btw. If I empty the txt folder it runs again
13:34:33 <boekabart> i mean, it gives the same rror again
13:34:41 <TrueBrain> it should halt at a missing interrupt
13:34:45 <boekabart> with 'new fn found'
13:35:25 <TrueBrain> so I am a bit clueless what is going wrong .. can't tell from here
13:35:58 <TrueBrain> I use TCC 0.9.25 here, and it all just works
13:40:33 <TrueBrain> then in after the backtrace you can do: print symbol
13:40:37 <TrueBrain> and see what it resolves too
13:41:42 <boekabart> haha $1 = (void (*)()) 0x8a15d50
13:42:07 <TrueBrain> so I have no idea why that fails, or why that would cause a sigsegv ..
13:42:13 <TrueBrain> there is ony option :)
13:42:16 <boekabart> so, what is it supposed to do now?
13:42:17 <TrueBrain> disable SELinux please ;)
13:42:38 <boekabart> (I don't even care what it is ;) )
13:42:40 <TrueBrain> the memory range is not marked as 'code' segment, but it still is a data segment :)
13:42:51 <TrueBrain> SELinux prevents code to be executed from a data segement :p
13:45:59 <TrueBrain> then now all I can say is: good luck with OpenFP :p
13:46:19 <boekabart> how to I go about adding this int21.0 ?
13:46:49 <glx> good luck to find complete doc about type 0C :)
13:46:51 <TrueBrain> 0C in fact is a bit dirty .. it resets stdin (well, just 'fake' that), and al becomes ah, and the interrupt is called again
13:47:12 <TrueBrain> in this case, it calls INT21:07 afterwards, which is just INT21:08
13:47:27 <TrueBrain> (only without echo, but INT21:08 doesn't echo in the first place :p)
13:48:10 <TrueBrain> (anyway, that is what DOSBox does with INT21:0C :)
13:48:24 <TrueBrain> DOSBox has many mistakes and errors
13:48:27 <TrueBrain> but it is good enough :)
13:49:00 <boekabart> actually - the question is how does 'main' know aBOUT any new fn I add?
13:49:14 <boekabart> it just compiles against libemu?
13:49:21 <TrueBrain> src/libemu/int21.c, look at it, add it, compile, done
13:49:44 <TrueBrain> because those are libraries, it will work immediatly
13:49:51 <TrueBrain> no need to recompile fp/main :)
13:51:00 <TrueBrain> no problem, as long as you send me your libemu patches :p
13:51:49 <TrueBrain> any questions are of course very welcome :)
13:52:01 <TrueBrain> any commercial application of this software is btw not allowed without a license from me :p
13:52:19 <boekabart> can you think of one?
13:52:33 <TrueBrain> decompile old software and give it out again in a commercial way?
13:52:37 <TrueBrain> that would be relative easy ;)
13:53:17 <boekabart> ah, i assumed commercial - not being illegal
13:53:50 <boekabart> I have a couple of MSX games that have been converted to .exe, in a similar way I suppose
13:54:34 <TrueBrain> I don't follow what you try to say in the last two lines :p
13:54:53 <boekabart> well the trick was done before
13:55:05 <TrueBrain> ah, I don't know MSX :p
13:55:56 <TrueBrain> really old computer :p
13:56:02 <TrueBrain> either way, it mostly was done via the official source :)
14:18:36 <DorpsGek> SVN: glx (r397) -Add: figured out a few variables (and split variable_0D5A as it's indeed 2 different arrays
14:19:31 <TrueBrain> nice nice nice nice glx :)
14:20:09 <glx> but all this stuff is related to sounds, so not really verifiable ;)
14:20:33 <TrueBrain> still ... every byte we map is something less to worry about :)
14:20:45 <boekabart> What sound cards were supported by dune2?
14:21:37 <glx> 9 in the installer, 14 in the code
14:22:30 <glx> it even support adlib gold :)
14:24:21 <boekabart> TrueBrain: what's the way to (runtime) assert in libemu sources?
14:24:36 <TrueBrain> never a good thing for a emulator :)
14:24:41 <TrueBrain> what you want to do?
14:25:34 <TrueBrain> if something goes really wrong I trigger a bios_uninit(1) or what ever
14:26:54 <TrueBrain> then how you know it is an array?
14:27:39 <glx> ,...emu_shlw(&emu_bx, emu_cl);
14:27:39 <glx> ,...emu_ax = emu_get_memory16(emu_ds, emu_bx, 0x4062);
14:28:07 <TrueBrain> I was tihnking about element size :)
14:28:21 <glx> element size is easy to find ;)
14:28:39 <TrueBrain> boekabart: oh, and yes, text are not always printed at the right screen/position :p
14:28:50 <boekabart> I think I'll survive
14:29:01 <TrueBrain> glx: so yeah, you can at least estimate the max size :p
14:29:26 <TrueBrain> int21:07 is int21:08 (or at least, that worked for me :p)
14:29:49 <boekabart> no check for break vs check for break
14:30:09 <TrueBrain> like we check for break in the first place :p
14:32:04 <glx> found the size (search for 0x4062 + i*0x10) until I get a result ;)
14:32:21 <TrueBrain> also a nice way, yes ;)
14:33:15 <TrueBrain> doesn't have to be 100% correct, but fair enough I say ;)
14:34:00 <TrueBrain> it stops around 41C2
14:34:39 <TrueBrain> 41CC, I would guess
14:34:48 <TrueBrain> (well, 41CC is 'Harkonnen', so :p)
14:35:11 <Xaroth> glx is doing his usual awesome stuff again I see :)
14:35:23 <TrueBrain> give it is 16 bytes long, it has to stop at 41C2 :p lol
14:35:36 <TrueBrain> glx: what ever comes next has the same layout
14:36:08 <glx> D0 size so D elements of size 10 (all in hex)
14:37:02 <Xaroth> Teaser-2 released || Websites *.opendune.org: www, forum, bugs, wiki, svn || T-10d
14:37:06 *** Xaroth changes topic to "Teaser-2 released || Websites *.opendune.org: www, forum, bugs, wiki, svn || T-10d"
14:37:17 <Xaroth> I should really stop forgetting /topic ...
14:38:07 <TrueBrain> glx: the last 4 bytes are always zero in that array, and the other elements seem uint16s, but values < 255 in all cases :)
14:48:37 <glx> ,...emu_get_memory16(emu_ds, 0x00, 0x41B6) = emu_ax;
14:48:37 <glx> ,...emu_ax = emu_get_memory16(emu_ds, 0x00, 0x41B6);
14:48:58 <TrueBrain> happens a lot yes, very annoying :)
14:54:31 <boekabart> owshit, fp used FCB for file i/o instead of the more modern variant...
14:55:17 <TrueBrain> and I fake a lot in my emulator :)
14:55:25 <TrueBrain> I had to implement MSB as DOS did for Dune2 to run :p
14:55:33 <TrueBrain> but that is about it :p
14:55:42 <boekabart> i saw: always 300 mb free disk space
14:56:47 <TrueBrain> if you ever want to follow in high detail what libemu does (well, the interrupt and IO port part), enable emu_debug_int (set to 1) in libemu.c :)
14:59:18 <TrueBrain> I ahve 30 minutes to kill, and I am bored :p
15:16:32 <glx> hmm I detected an array of 0xE 22A6:IP but I'm not sure (I don't see where it's used)
15:19:25 <glx> hmm maybe some callbacks (it's around callbackAfterMouse and callbackBeforeMouse)
15:22:01 <TrueBrain> 22A6:IP is not in the neighbour of 353F:66A4 .. so I don't follow?
15:23:21 <TrueBrain> either way, glx, it happens a lot in the old days that in a code-page is also data
15:23:28 <TrueBrain> 22A6 is local data for cs__22A6.c
15:24:38 <glx> check values in 66A8-66B3 and 66B8-66EF
15:28:04 <glx> 353F:6624-353F:66EF is indeed a succession of 22A6:IP (including callback*Mouse)
15:28:48 <glx> hmm 6624 seems to be used
16:02:38 <DorpsGek> SVN: glx (r398) -Add: figured out a few variables
20:15:34 <boekabart> TrueBrain: apart from the fact that EGA isn't showing anything (black), it seems to work. One odd thing: the int21.07 and .08 are supposed to wait, but your impl. (emu_io_read_060) doesn't do this it seems
20:17:24 <DorpsGek> SVN: glx (r399) -Add: figured out a few variables
20:28:05 <Xaroth> hm, still can't figure out why the teaser i made doesn't work
21:41:03 <boekabart> TrueBrain: digger runs fine (well screen doesn't show up correctly but in text mode i can play), but ./toc --static digger segfaults
21:42:23 <boekabart> (same for ./toc --static fp by the way)
23:32:25 *** TrueBrain has joined #openDune
23:32:58 <TrueBrain> boekabart: run gdb over it :)
23:34:57 <TrueBrain> you most likely miss something silly, like src/function_names.txt, which I most likely forgot to make optional :)
23:35:17 <TrueBrain> and yes, most of my implementation is cheap, and not fully correct :p
23:35:49 <TrueBrain> feel free to patch what ever you think is required :)
23:44:03 <glx> hoho I found an nice unreadable but highly useful string
23:44:51 <DorpsGek> SVN: glx (r400) -Add: figured out a few variables
continue to next day ⏵