#exult@irc.freenode.net logs for 16 Dec 2001 (GMT)

Archive Today Yesterday Tomorrow
Exult homepage

[00:55:44] <-- matto has left IRC (Ping timeout: 180 seconds)
[00:56:23] --> matto has joined #exult
[02:33:07] <-- matto has left IRC (Remote closed the connection)
[02:33:23] --> matto has joined #exult
[03:58:37] --> DraX has joined #exult
[03:58:59] <DraX> ok
[03:59:16] <DraX> i'm grabbing source now, will produce an openbsd biniary soon
[04:02:35] <-- DraX has left IRC (Client Quit)
[05:20:07] --> sbx has joined #exult
[05:36:56] <sbx> i forgot where soulnet was again
[05:39:11] <sbx> !commands
[05:39:22] <sbx> !system
[05:39:22] <MiniMe> 14Operating System: 9[11Windows XP Professional (5.1 - 2600)9] ««»» 14Processor: 9[11Intel Pentium® @ 8475mHz9] ««»» 14Memory: 9[1196.0mb9] ««»» 14HDD Space: 9[11 1.1801GB 9]
[05:39:28] <sbx> !mbhelp
[05:39:32] <sbx> !mview
[05:39:38] <sbx> @mview
[05:40:16] <sbx> @madd
[05:40:38] <sbx> @msub Soul|LOVE
[05:41:09] <sbx> @mrecord "I bring you _LOVE!_"
[05:41:11] <sbx> @msave
[05:41:17] <sbx> !guestbook
[05:41:22] <sbx> @gbview
[05:41:57] <sbx> @gbadd
[05:42:04] <sbx> @gbname SB-X
[05:42:11] <sbx> @gblink ?
[05:42:17] <sbx> @gbplace here
[05:42:29] <sbx> @gbmessage fsck!
[05:42:32] <sbx> @gbsave
[05:42:37] <sbx> @gbview
[05:45:21] * sbx finds it.
[06:17:46] --> Darke has joined #exult
[06:18:23] <sbx> hi
[06:18:27] * Darke greetingsbows. "Hello."
[06:19:12] <sbx> is your HD sorted now?
[06:19:57] <Darke> <grin> A bit more sorted. I'm up to about 12Gig free from 10Gig (IIRC) last night.
[06:21:57] * sbx has a bout 600MB on this disk free, much of it will never be used... and 3/4 of the 30G is free and waiting to get an OS installed onto it.
[06:22:12] <sbx> what else did you have to get rid of?
[06:23:52] <Darke> IIRC it was mostly duplicate files, like a zipped up copy of the SS1 cd, yet another copy of win98se and a copy of win2k. Another random ST mpeg, and just lots of little files.
[06:24:58] <sbx> SS1?
[06:25:04] <Darke> System Shock 1.
[06:25:17] <sbx> oh
[06:25:43] <sbx> Do you have different operating systems installed on it?
[06:26:51] <sbx> since you got backups anyway
[06:31:40] <sbx> ?ekraD
[06:35:16] <Darke> Sorry. This is a yet another half-asleep day. No, just linux.
[06:35:38] <sbx> every day is half-asleep day for me
[06:35:44] <sbx> i see
[06:35:50] * sbx gives Darke some anthrobunny pep pills.
[06:35:59] <Darke> <grin> How about a 'more asleep then usual' day?
[06:36:14] <sbx> that is understandable
[06:36:20] <sbx> what did you do yesterday?
[06:37:25] <Darke> Yesterday? Not much other then fiddle with filesystems. I just had to awaken early today to Do Stuff(tm).
[06:38:10] <sbx> s/did/will
[06:38:16] <sbx> s/yesterday/today
[06:39:24] <Darke> Umm... commit the command line conf/ file modifier to cvs, since I just 'finished' coding it? (Not really finished I need to modify conf/* to allow me to remove a key, before I can 'finish' it.)
[06:40:08] <sbx> Is it still the weekend over there?
[06:40:16] * sbx doesn't want to do anything useful today.
[06:40:41] <sbx> can conf/ replace a key? i dont see how it can if it cant remove one
[06:40:43] <Darke> Currently 1645 in a rather cool summer sunday afternoon.
[06:40:56] <sbx> 1645?
[06:41:08] <Darke> An 'add' is a 'replace'.
[06:41:08] <sbx> oh the time :P
[06:41:13] <Darke> 4:45.
[06:41:25] <sbx> i thought you saiy 1645 IS a rather ...
[06:41:28] <sbx> said
[06:41:35] <sbx> and that didnt make any sense :-)
[06:41:46] <Darke> Sorry. I keep forgetting that. I'm just so used to handling timestamps with that. <grin> Blame sleep or lack of it.
[06:42:15] <sbx> No it was my mistake I didn't read the sentence properly.
[06:42:40] <sbx> my clock currently says 0043
[06:42:50] * Darke thinks we could probably argue who's 'mistake' it was for a couple of hours. <grin>
[06:43:14] <sbx> If you have finally gotten "add" to work than the code to remove a key is already there isn't it? You just gotta add the command
[06:44:09] <Darke> Not really. I did find a bug though. If you add a key before you load the config file, the file load routine doesn't check to see if the keys already exist, and so adds duplicates.
[06:44:43] <sbx> we already went over that
[06:45:23] <sbx> i thought now that you say 'add' is a 'replace' that you have fixed that by removing the existing key.. so your remove code must be there.. but i guess you still got that "bug"
[06:45:27] * Darke is currently removing a key by setting it to 'null'.
[06:46:33] <Darke> Nope. The 'add' automatically overwrites something if it's there, if it isn't there, it just creates it. There is no 'remove' anywhere that I can find.
[06:47:54] <sbx> Nope. The 'add' doesn't check to see if the key already exists, so if it is already there it adds a duplicate.
[06:48:43] * Darke blinks, it does? Just a sec.
[06:49:47] <sbx> Only if you add it before you load the config file.
[06:50:31] <sbx> The file load routing doesn't check to see if the keys already exist.
[06:50:41] <sbx> s/routing/routine
[06:51:37] <Darke> Yes, that's becuase there's a bug in the fileload routine. It just creates a 'new' node with that value, without testing if a node of the same name already exists, whereas the 'set' function does the test. Or at least I think that's the reason why.
[06:53:00] <sbx> I had a similiar problem with a configuration tool I was writing recently. The solution? "Config file cannot be saved at this time"
[06:53:52] <sbx> if you got a problem writing the config, just screw it and say "Sorry no worky"
[06:53:57] <sbx> :-)
[06:55:28] <sbx> hmm.. although i guess the whole point of your conftool is to edit it, i was fine just being able to read it
[06:56:59] * Darke grins and shrugs, it 'works' currently to his specifications.
[06:58:37] <sbx> different versions of the same page: http://soulharvester.idleplay.net/radio/indexmenu.html
[07:00:59] * Darke blinks at the randomness.
[07:14:06] <sbx> do you know of a program that uploads files to ftp?
[07:14:24] <sbx> with a simple command like: ftpup index.html
[07:14:36] <Darke> Not that I know of.
[07:14:50] <sbx> like wget in reverse :-)
[07:14:53] <sbx> ok
[07:20:31] <sbx> curl perhaps?
[07:22:08] <Darke> Perhaps. man curl, seems to imply it could do what you want.
[07:24:07] <sbx> me is downloading it.
[07:24:23] <sbx> err
[07:24:23] * sbx is downloading it.
[07:41:27] <sbx> yay!
[07:41:40] <sbx> (works)
[07:41:58] <Darke> Cool.
[07:45:19] * sbx makes a script to just type 'ftpup index.html'
[07:45:46] * sbx makes the script world unreadable so you won't find out his password. :P
[07:55:22] <sbx> ok I redesigned my page... although it still has no content
[07:55:25] <sbx> http://sbx.vr9.com
[07:56:21] <Darke> Impressive! <impressedfluff> Althought it does appear to still have an error. <grin>
[07:56:36] <sbx> (i stole the design :P)
[07:56:41] <sbx> there are no errors!
[07:56:59] * Darke grins.
[08:04:16] <sbx> opera zahn.openprojects.net
[08:04:21] <sbx> oops
[08:04:35] * sbx is trying to make xchat open urls with opera.
[08:05:22] * Darke just fiddled with that to get kvirc to open them with konqueror rather then netscape. It was surprisingly easy.
[08:05:57] <sbx> yep i just needed a ! in front
[08:21:36] <-- sbx has left IRC (Ping timeout: 180 seconds)
[08:40:13] --> sbx has joined #exult
[08:41:21] * Darke bows to the returning sbx.
[08:44:41] * sbx bows to Darke
[08:46:29] <sbx> the 'new' tags in the forum are supposed to be black?
[08:47:19] <sbx> and theres no bg? hmm maybe i screwed something in the browser up
[08:49:36] <Darke> Red. It occasionally goes like that on me. Perhaps just hit reload in a few minutes?
[09:27:20] * sbx boggles.
[09:27:49] * Darke blinks, and wonders what you're boggling at.
[09:28:04] <sbx> alt.sex.bondage.particle.physicsumn.socsci.general
[09:28:29] <sbx> At the name that is, I don't dare see what messages(minus spam) would be inside it.
[09:28:35] <sbx> :-)
[09:29:54] * Darke innocentwiggles, he subscribed to the a.s.b.particle and *.particle.physics newsgroups a while back, for a bit. Nothing but spam then IIRC.
[09:30:30] <sbx> haha
[09:31:02] <sbx> there are lots of strange names like that
[09:31:18] <Darke> Yep.
[09:31:55] <Darke> alt.sex.cthulhu? <grin> IIRC there is also a hello-kitty one of the same 'type'.
[09:33:03] <sbx> alt.nerd.obsessive
[09:35:14] <Darke> After a quick check I find the a.s.b.p.* newsfroups are all porn, and absolutely nothing interesting.
[09:36:51] <sbx> p = particle?
[09:37:28] <sbx> nice that you checked :-)
[09:39:28] <Darke> Yep.
[09:41:00] <sbx> did you see what was in alt.nerd.obsessive if anything? and what on earth would be in alt.sex.cthulhu :-)
[09:42:20] <Darke> Haven't checked a.n.o. And I'm only on a.s.c becase a couple of loonies I know inhabit there. Filter out everything without a subject line that contains 'POD' and you can actually read it.
[09:42:30] --- Darke is now known as Darke|afk
[09:49:13] * sbx checks the group a.s.c with the suggested POD filter and finds no Patrick or Darke.
[09:49:34] <sbx> I'm guessing by "on a.s.c" you just mean following it/lurking.
[09:56:45] --- Darke|afk is now known as Darke
[09:57:50] <Darke> Yep. <grin> Do you think I'd actually _post_ to that newsgroup? Besides, I get enough spam as it is from the normal newsgroups I post to, I expect I'd get even more if I posted to something under the alt.sex hierachy.
[09:59:59] <sbx> Hehe, which do you normally post to?
[10:00:56] --> Wumpus has joined #exult
[10:01:53] <Darke> Hi Wumpus.
[10:02:02] <Wumpus> `lo darke
[10:02:14] * Wumpus blinks
[10:02:16] <sbx> hi Wumpus
[10:02:26] * Wumpus waves to everyone who is even vaguely awake
[10:02:30] <Darke> sbx: Nothing in particular recently. comp.sys.ibm.pc.games.strategic, was the last place I posted to IIRC.
[10:02:31] <Wumpus> *** IDLE : Unknown command
[10:02:40] <Wumpus> ... i never type'd /idle....
[10:03:00] <sbx> oic Darke
[10:03:37] <Darke> Wumpus: It's a bug apparently, they're trying to fix it.
[10:03:43] <Darke> sbx: Yes?
[10:03:58] <Wumpus> darke- an opn bug? oh okay... weird
[10:04:08] <Wumpus> hey there it goes again :)
[10:04:19] <sbx> Yes what?
[10:05:13] <Darke> sbx: You said 'oic Darke' and I was wondering if you were attempting to get my attention or something. <grin>
[10:09:01] <sbx> I meant "Oh, I see Darke. Thank you for responding"
[10:09:46] <Darke> Ahh... no problem. I've just never encountered that acronym before. <grin>
[10:41:45] <sbx> would all X apps be linked to libX11.so?
[10:46:01] <Darke> I would guess so.
[10:54:54] <sbx> Good, do you know of any other ways to check if a program needs X?
[10:55:13] <Wumpus> run it and see what happends? :)
[10:55:22] <sbx> besides that :)
[10:55:47] <sbx> i might make a program that tests all binaries in $PATH directories, but i dont want to test them THAT way hehe
[10:56:32] <Wumpus> oh well, in that case testing for libX11 shoul dwork i suppose... I don't know exactly what that library does, but presumably its necessary, albeit probably indirectly in many cases, for all X stuff
[10:57:10] <sbx> ok
[10:58:03] * Darke finally commits his command-line conf/ file manipulator. Now to hack^Wmodfiy conf/ to support removal of keys.
[10:58:26] <sbx> i cant ldd the X server but i wont be needing to to test that :-)
[10:58:35] <sbx> yay
[10:58:47] * sbx wonders what evil uses he can get out of the conf/ tool
[10:58:53] <Wumpus> hmm why not?
[10:59:00] <sbx> ?
[10:59:16] <Wumpus> ldd `which X` works for me....
[10:59:36] <Wumpus> (assuming thats what you meant?)
[10:59:39] <sbx> it is only readable by root
[10:59:59] <sbx> for me
[11:00:05] <Wumpus> hrmm, weird
[11:00:19] <sbx> for everyone else it is setuid from xinit i guess
[11:00:27] <sbx> i mean, setuid so xinit can run it
[11:00:42] <Wumpus> indeed, mine is setuid and setgid
[11:01:17] <Wumpus> it doens't need libX11 though ;-p
[11:01:35] <sbx> how ironic
[11:03:39] <Wumpus> its amazing how many monetari you can burn on training...
[11:04:27] <sbx> i thought money was almost meaningless in SI
[11:04:41] <Wumpus> well yeah :)
[11:05:01] * Wumpus is refusing to sell any of his gold, gems, etc though, or excahnge money, which makes ita littlem ore interesting :-)
[11:05:47] <sbx> your doing that just to make it interesting? or so you can have a bunch of gold chunks lying around?
[11:06:05] <Wumpus> so i can have huge piles of gold :)
[11:06:28] * Wumpus has > 125 gems, ~50 gold nuggets, and aroung about 40 gold bars, and some amount of jewelery
[11:06:39] <sbx> that is the best reason
[11:07:07] <sbx> you are almost as rich as an emperor! (and more rich than everyone in SI probably)
[11:07:26] <sbx> or should i say wealthy.. not as if your gonna spend it
[11:07:30] <sbx> hehe
[11:07:40] * Wumpus wouldn't mind converting it all to filari :-)
[11:07:52] <sbx> which city uses that?
[11:07:59] <Wumpus> fawn
[11:07:59] <sbx> fawn?
[11:08:03] <Wumpus> filari are the cheap coins :)
[11:08:19] <sbx> monitor monetari fawn filari moonglow ?
[11:08:28] <Wumpus> guilders
[11:08:40] <Wumpus> and gold coins, too, for most purposes
[11:08:45] <sbx> oh that doesnt follow the pattern :)
[11:08:48] <Wumpus> SS gold coins, sleeping bull gold coins
[11:09:02] <sbx> SS silver seed?
[11:09:10] <Wumpus> indeed
[11:09:23] <sbx> my acronym expansion is not very good
[11:09:37] * Wumpus thinks... 40 odd gold bars is 8000 odd monetari... yum :) 32000ish filari :)
[11:10:26] <sbx> did you rob crypts or something?
[11:10:37] <sbx> (or a bank etc)
[11:10:37] <Wumpus> nope :P
[11:10:51] <Wumpus> i have gone ahead and looted an area that i don't need to get to yet
[11:11:18] * sbx should play SI.
[11:11:24] <sbx> does it work well in Exult?
[11:11:29] <Wumpus> (Because by the time you get there via the plot, the world's situation has changed somewhat ;-p)
[11:11:33] <Wumpus> hmm soso
[11:11:39] <sbx> i will still try the original first tho
[11:11:43] <sbx> Wumpus: ooh hehe
[11:11:44] <Wumpus> it has a lot more Issues than black gate :|
[11:11:57] <sbx> "Issues" like what?
[11:11:59] <Wumpus> including some fairly serious ones :/
[11:13:01] <Wumpus> i've had a number of crashes, some somewhat repeatable and some apparently one offs; there are serious problems with teleporters, which is bad because they are used a *lot* (for stairs etc to below-ground areas)
[11:13:22] * Wumpus really ought to do some reporting, *sigH*
[11:13:33] <Wumpus> monster spawning works, shasll we say, not as well as it should :)
[11:14:49] <sbx> i see
[11:15:01] * sbx will likely find out if he plays it through Exult, but will try the original first.
[11:15:18] <sbx> have you used it with moslo?
[11:15:31] <Wumpus> yeah
[11:15:39] <Wumpus> but when i'm comparing at the moment, i don't bother with moslo :P
[11:15:52] <sbx> what is a good slowdown? ive been using /30
[11:16:07] <sbx> with BG
[11:16:20] <sbx> i guess both run the same speed
[11:16:27] <Wumpus> depends on how fast your system is :P I find it (moslo) doesn't work well at all, slowing some stuff down abysmally and leaving other stuff still running at full speed
[11:16:39] <Wumpus> so i kind of chucked it out :P
[11:17:16] <sbx> i havnt found those problems, although i know if you start getting around /20 and below it does not work
[11:17:45] <sbx> /26 works fine for U6
[11:18:11] <sbx> but you can still cross britannia pretty fast :-)
[11:18:19] <sbx> on foot
[11:19:49] <Wumpus> you do actually get to rob the mint in SI :)
[11:19:56] <Wumpus> the Britain mint, no less :)
[11:23:03] <sbx> there is a Britain mint in SI?
[11:25:48] --> wjp has joined #exult
[11:25:48] --- ChanServ gives channel operator status to wjp
[11:25:49] <Wumpus> :)
[11:25:53] <Wumpus> good grief
[11:25:54] <wjp> hi
[11:25:57] <Wumpus> X in 320x200 looks really seedy
[11:26:03] <Wumpus> (exult just crashedo n me :P)
[11:26:19] <sbx> hi wjp
[11:26:30] <Darke> Hi wjp.
[11:29:33] <Wumpus> hmm, i just teleported into a small, totally empty, chamber of ice...
[11:29:48] <sbx> nice work
[11:34:47] <Wumpus> bah :P
[11:34:52] * Wumpus hmms
[11:37:53] * Darke thinks Wumpus is 'hmm'ing slightly off key.
[11:38:27] * sbx hmms
[11:40:37] * Darke thinks sbx is deliberately 'hmm'ing off key, just to annoy him.
[11:41:58] <Wumpus> grr
[11:42:08] <Wumpus> sleeping bull is the only place you can exchange gold bars, right?
[11:42:08] * sbx hmms and nods at Darke.
[11:48:01] <wjp> btw, that SI problem from yesterdays _was_ apparently caused by spaces in dirnames
[11:48:06] <wjp> s/days/day/
[11:48:33] <sbx> any idea why?
[11:48:50] <wjp> not a clue... especially since it did work for Colourless
[11:49:00] <Darke> It's weird. It worked for me with space is the filename as well.
[11:49:29] <wjp> maybe it's a mixture of spaces in the filename and a residue from the original
[11:50:40] <Darke> <shrug> Possibly. About the only way to work these ones out would be to have a vnc connection to their computer and debug it there. <grin>
[11:51:24] <wjp> without a proper debugger you'd still get nowhere I'm afraid
[11:52:27] * Darke nods.
[11:53:19] <wjp> well, except possibly narrowing down the problem a bit, or finding something really obvious, I guess
[11:55:30] * Darke sighs and wonders in what weird and wonderful ways he's going to break conf/ by, among other things, adding a 'remove key/value' function.
[11:56:30] <sbx> it is a necessary evil
[12:00:11] <-- Wumpus has left IRC ("!")
[12:01:09] <Darke> Hmm... currently it's more of an orthogonal evil, rather then a necessary evil, since it's not really 'used' at the moment.
[12:02:23] <sbx> Well if I were making it, the 'add' function, when used on an already existing key would call the 'remove' function then 'add' as usual... so it would be necessary for me. :-)
[12:05:45] <Darke> That assumes the 'find' function is completely seperate from both the 'add' and 'remove' functions. If all you think you ever want to do is 'add', then it's more 'efficient' to make the find+add one function.
[12:06:43] <wjp> how do we store the config file internally, btw? text or tree?
[12:06:45] <sbx> Assuming 'remove' is a necessary evil, you would make the 'find' function separate.
[12:06:50] <Darke> wjp: Tree.
[12:10:11] <Darke> sbx: Another problem is, that since it's stored as a tree, a 'remove' function is actually rather twisted, because if you just removed the last leaf from a node, you need to remove that node as well, and continue to walk back up the tree doing so. So it's yet another level of compilcation on top of add.
[12:11:00] <sbx> That is why I called 'remove' a necessary *evil*.
[12:11:00] * Darke has a dislike of recursion, but for some problems it's _the_ solution.
[12:11:35] <wjp> some tree algorithms, for instance :-)
[12:11:39] <Darke> <grin> I'm still disagreeing with the 'necessary' part.
[12:12:13] <sbx> see: "Well if I were making..." statement :-)
[12:14:02] <Darke> <sigh> I don't suppose there are the relevant U7open functions for streams? <hopefulfluff>
[12:16:17] <Darke> Cool! There is.
[12:16:41] <wjp> of course... exult is C++ after all :-)
[12:16:45] * Darke kicks the irc server, "Darke IDLE"==false.
[12:17:20] <sbx> careful, it might kick back
[12:17:33] <Darke> wjp: Suuuurrree! So where did the "FILE *fp;" come from in Configuration.cc then? <grin>
[12:18:04] * wjp never looked at the conf/ dir
[12:18:49] * Darke grins.
[12:19:23] * matto can't seem to figure out the knight's test
[12:19:26] * matto clenches fist
[12:19:34] <wjp> :-)
[12:19:39] <wjp> it's not that hard really :-)
[12:19:49] <matto> is it broken?
[12:20:00] <wjp> sure, blame it on bugs ;-)
[12:20:02] * sbx got through it at one point.
[12:20:39] * Darke remembers running through it without any problems when he first played SI under exult. He didn't actually get much further then the end of the knights test though.
[12:20:42] <matto> well I don't want to put too much time into trying to solve something that could potentially be broken
[12:20:52] <wjp> what's the problem?
[12:21:05] <sbx> people have played through SI so it must not be broken
[12:21:08] <matto> there isn't necessarily a problem...
[12:21:38] <matto> I am just saying in general, I must suspect any and all behavior of the game since it is still under development
[12:22:07] <wjp> where are you stuck?
[12:22:52] <matto> well I went into the knight's test, killed two purple things and all the doors are locked
[12:23:05] <matto> including the chest
[12:23:44] <wjp> did you get the key on top of the obelisk?
[12:23:54] <matto> what obelisk?
[12:24:02] <wjp> nm then :-)
[12:24:43] <wjp> try smashing the chest open
[12:24:53] <matto> hmm I thought I tried that
[12:25:11] <wjp> it might take a few hits
[12:25:53] <sbx> you can see how well your doing in stdout i think
[12:26:04] <wjp> wjp hits locked chest for 26 hit points, leaving -16 remaining
[12:26:12] <sbx> yes
[12:26:16] <sbx> :-)
[12:56:09] * Darke giggles evily, he rarely gets to use this nifty C++ iostream trick.
[12:56:31] <sbx> ?
[12:57:55] <wjp> which one?
[12:58:13] <Darke> Say I have two files open outputfile and intputfile. I can copy the _entire_ contents of inputfile to output file by doing: outputfile << inputfile.rdbuf(); It's not much of a trick if you're just copying from file to file, but if your 'outputfile' happens to be a stringstream in memory, it takes a bit of 'work' out of getting file to mem.
[12:58:55] * sbx doesn't understand any of that. :P
[13:00:04] <sbx> must be the "joys" of C++ only
[13:01:37] <Darke> Yep. <grin> It's one of those tricks that should only be used sparingly. Because the code doesn't look all that intuitive. (At least to me anyway.) But it replaces about 5 lines of code, and 1 extra variable, with a single line of code (and the modification to one other).
[13:03:40] <sbx> in C i tend to use excess lines instead of single lines for the same thing anyway(and lots of comments)
[13:03:59] <Darke> And it Just Works(tm). <grin>
[13:04:58] <sbx> it Just Works Efficiently Enough for SB-X(tm)
[13:05:38] <Darke> sbx: As do I, but this has the side effect of being rather more efficient, because instead of using a 'fixed' buffer size of 4096 (IIRC), it uses the 'optimal' buffer size, of the iostream. (Which should be the same as the buffersize of the os, I can't remember).
[13:06:32] <sbx> depends on OS then
[13:07:41] <sbx> I've got to run. See you.
[13:07:44] <-- sbx has left IRC ("Push push push, add jmp mul pop, push call sub mod, in smth say...")
[13:10:47] <wjp> funny... it looks like U8 usecode functions can make calls to any point in another function
[13:11:24] <Darke> Weird. Perhaps they are making calls to one of the eventid branches?
[13:12:02] <wjp> wouldn't it be more logical to just specify the eventid number then?
[13:12:36] <wjp> I guess the original higher-level language restricted it
[13:13:16] <wjp> oh, this called function doesn't have any eventid entry points
[13:14:58] <wjp> all function entrypoints do have the byte '5A', though
[13:15:24] <wjp> followed by what I'm guessing is the number of bytes needed for local vars
[13:20:56] * Darke nods.
[13:21:05] <wjp> there's a bit of a strange construction that appears a lot... "62 FC 01 FC". I'm sure 01 FC means "pop into local var. FC". What could "62 FC" possibly mean then?
[13:21:11] <Darke> Perhaps it might be sufficiently 'advanced' to be a semil procedural language?
[13:22:36] * wjp nods.. could be, yes
[13:24:45] <wjp> my first though was that it would be 'push local var. FC', but I've already found another opcode that does that
[13:24:55] <wjp> (0x3F)
[13:25:38] <Darke> The only thing I can think of is something like 'create FC' as in declaring a variable before you use it. That is, create a space for the variable FC on the 'stack frame'. Does it only happen once for each variable in the function?
[13:26:20] <wjp> no, but it could be that it happens only once on any given 'execution path'
[13:26:52] * Darke nods.
[13:26:53] <wjp> could also be something like "set type to string/int/whatever"
[13:27:20] <wjp> it wouldn't surprise me if it's more strictly typed than U7's usecode
[13:27:23] <Darke> Yes, that could also be a possibility.
[13:29:33] <Darke> (typing) I would guess so, u7uc seems to be being stretched to the limit in SI. A stronger typed language would also help with the 'conversion' assumptions, so you wouldn't needlessly convert it from a string to an int or whatever and waste cycles.
[13:29:45] <wjp> another thought: maybe there's multiple stacks
[13:30:04] <wjp> (unlikely)
[13:30:13] * Darke agrees, unlikely.
[13:30:48] <wjp> unless one is a 'stringbuffer' kind of stack, maybe
[13:31:08] <wjp> (the code I'm looking at right now is assembling the output of the 'Divination' spell)
[13:31:24] <Darke> It wouldn't really make much sense, and just complicate things for IMHO no percievable benefit. Yes, one local stack per function I could see, or one 'global' stack for all, but just not multiple potential stacks per function.
[13:31:59] <Darke> (stringbuffer stack) Maybe.
[13:32:37] <wjp> this is what it basically looks like, btw:
[13:32:49] <wjp> push_string("The focus reads that I am ")
[13:32:56] <wjp> 62 FC 01 FC
[13:33:02] <wjp> push(FE)
[13:33:05] <wjp> push(01)
[13:33:06] <wjp> cmp
[13:33:11] <wjp> jne +0x28
[13:33:18] <wjp> 41 FC
[13:33:29] <wjp> push("at Programmer's Playland!")
[13:33:38] <wjp> 16 (guessing 'add')
[13:33:47] <wjp> 62 FC 01 FC
[13:33:57] <wjp> jmp +0x055D
[13:34:22] <wjp> (and this is where the jump target of that jne +0x28 is)
[13:35:19] <wjp> you basically get a if FE == 01 { }; if FE == 03 { } structure here
[13:36:06] <wjp> oh, push_string("..") and push("..") are the same opcode, btw. Manual disassembly error :-)
[13:36:59] <Darke> <grin> No problem. Is it possible that 62 FC could be a kind of 'erase' as in return to it's original 'default' state? It doesn't seem likely to me.
[13:37:58] <wjp> assuming that "62 FC 01 FC" ends up with that string on the stack, "41 FC" would almost have to be "push FC", right?
[13:38:58] <wjp> maybe strings on the stack just take special handling
[13:39:00] * Darke thwacks himself. He had was thinking 01 pushed.
[13:39:11] <wjp> oh, sorry. 01 pops
[13:39:13] <Darke> That would make sense.
[13:39:22] <Darke> I know, thinko.
[13:39:58] <wjp> I'm sure 3F is push, so from a 'similar opcodes are close together' p.o.v., 41 could be a kind of push too
[13:41:22] <wjp> I think I'll try "62 xx" = "make local var. xx a string pointer"
[13:41:52] <Darke> Yes, that would make sense, it assigns the '...focus...' string to FC, then if FC==1, it pushes it back on the stack, pushes the '... programmers...' string onto the stack, appends them, then pops them again.
[13:42:06] <wjp> s/FC==1/FE==1/
[13:42:08] <Darke> s/FC==01/FE==01/
[13:42:11] <wjp> *grin*
[13:44:05] <Darke> So 16 would be something like string-concatinate, and perhaps even 'plus' or 'add' if it also works with lists and numbers. 62 'might' say, make sure the variable FC has been 'resized' to allow it to hold a string.
[13:44:39] <wjp> I think the local vars are fixed to 2 bytes, btw
[13:44:59] <wjp> at least, they seem to use FE, FC, FA, F8, F6, ..., as local var numbers
[13:46:29] <Darke> Like you would be doing with a 'real' stack (in the code interpreting the usecode), you'd have a flag telling you what type it is, and a union with the various 'types' to easly access them without breaking type checking too much, nor using 'too much' memory.
[13:46:43] * wjp nods
[13:47:13] * Darke nods, the local var number hypothesis makes sense.
[13:48:32] <wjp> ...ok, so '62 xx' = 'xx.type = str.ptr;', '41 xx' = 'push(*xx);'
[13:49:10] <wjp> interpreting the '='s as 'hopefully is' :-)
[13:50:22] <Darke> Yep. That sounds about right. <grin>
[13:50:40] <wjp> (part of) the code for the abacus makes sense that way too
[13:52:33] * Darke nods.
[13:53:02] <wjp> ...although there's some (what seem to be) intrinsic calls in there
[13:53:11] <wjp> and those are still black magic to me :-)
[13:54:58] <Darke> So have you got enought of the basic file format sorted out that I can 'persuade' ucxt to start splitting it up into logical chunks? <grin>
[13:55:45] <wjp> not sure if I've got enough opcodes. (or at least the number of params for enough opcodes)
[13:57:31] <wjp> btw, the 'single-click on' is also an eventid
[13:57:46] <wjp> all it usually does it display a single word, and I still can't figure it out... argh :-)
[13:58:23] * Darke snickers.
[13:58:33] <Darke> A case of far, _far_ too little information then?
[13:58:41] <wjp> :-)
[13:59:02] <wjp> 5A 00 (entry point, 0 local vars?)
[13:59:09] <wjp> 0B 08 02 (push 520)
[13:59:21] <wjp> 40 06 4C 02 77 78 (not a clue)
[13:59:31] <wjp> 59 (this is always used before displaying stuff)
[13:59:47] <wjp> push_string("abacus ");
[14:00:08] <wjp> 6B (think this is 'pop_and_display')
[14:00:30] <wjp> 40 06 0F 08 49 00 65 04 6E F8 5E 54 01 01 12 53 50
[14:00:34] <wjp> 79 (ret)
[14:01:13] <Darke> Fair enough. Do you know of any other display functions?
[14:01:21] <wjp> those first 11 bytes are almost always the same, btw
[14:01:51] <wjp> sure, plenty of them :-)
[14:02:10] <wjp> oh, this is the start of the 'double click' event for the abacus:
[14:02:36] <wjp> 5A 08 0B 07 02 40 06 4C 02 77 78
[14:02:39] <Darke> NP, I was just thinking the pop_and_display was a bit on the weird side, but it makes sense if you don't use a string register (which I thought was a bit silly in u7uc).
[14:05:10] <wjp> display function for the theurgy foci:
[14:05:14] <wjp> 5A 00
[14:05:16] <Darke> Hmm... it pushes 519 rather then 520. And says it uses 8 local vars.
[14:05:30] <wjp> well, 4 local vars
[14:06:01] <wjp> F8 is the lowest/highest one I see
[14:06:18] <Darke> Ahh... so it uses 8 'bytes', but 4 vars, makes sense. I think.
[14:07:36] <Darke> Anything to suggest this 'bytes' might actually not be the 8bits in size, but perhaps 16bits? Just fishing around for patterns. <grin>
[14:08:11] <wjp> well, I haven't found any 32 bit things yet
[14:08:32] <wjp> could be that 0C xx xx xx xx means 'push 32 bit int', though
[14:08:42] <wjp> (I just haven't found a '0C' opcode yet)
[14:09:00] <wjp> (0A = push byte, 0B = push short, 0D = push string, btw)
[14:09:32] <wjp> display function for the keyring is identical to the one for the abacus, btw
[14:09:47] <Darke> (0A/0B/0C) Cool. That makes sense.
[14:10:25] <wjp> the one for the 'mace ' is the same too
[14:10:38] <wjp> dagger too..., etc... :-)
[14:11:16] <Darke> Gee... you know there _just_ might be a pattern somewhere here...
[14:11:49] <wjp> yeah, but I doubt we're going to figure it out by just looking at display functions :-(
[14:12:41] <Darke> <grin> Not likely.
[14:16:44] * wjp wishes he knew what "40 06" did
[14:19:35] <wjp> hmm, that last sequence from the display function "40 06 0F ... 01 01 12 53" (not the 50) appears everywhere in Darion's conversation code too
[14:20:37] <wjp> ...right after (almost?) everything Darion says
[14:23:21] <Darke> 41 theoretically deals with pushing a string pointer onto the stack. Know anything about 3F/40/42?
[14:23:35] <wjp> 3F = push
[14:24:25] <wjp> hmm, technically I don't even know if 6B takes params or not
[14:24:28] <Darke> And that's a string push? Logically then 40 should do something relating to strings... but what? Turn 06 into a string?
[14:27:16] <wjp> this is the code that should display the output of the abacus (which is stored in F8)
[14:27:51] <wjp> 59 0A 01 69 F8 6F FC 0F 08 49 00 6E F6 5E 01 01 12 53 62 F8 50 79
[14:28:51] <wjp> I'm guessing "69 F8" means "say contents of F8"
[14:29:24] <wjp> the "59" always appears before something is going to be displayed
[14:31:04] <Darke> Do we know what 62 F8 does?
[14:31:22] <wjp> well, old guess: "F8.type = string"
[14:31:27] <wjp> new guess: "free(F8)"
[14:33:19] <wjp> ...which would make a lot of sense. I can imagine the compiler turning "x = 'some string'" into "push string; free x; pop x;"
[14:34:03] <Darke> Yes, that would make sense.
[14:38:07] * wjp kicks this hex-editor
[14:38:21] <wjp> I was wondering why it turned up matches for '59' when I was searching for '79'
[14:38:22] <Darke> If you treat the variable as a pointer to a string, if it's a string, but a 'value' when it's not, then it makes sense that you only see this 'free' opcode when you're dealing with strings.
[14:38:41] <Darke> <grin> Case insensitive ascii search?
[14:38:47] <wjp> yup :-)
[14:38:52] <wjp> even when you're searching in hex mode...
[14:39:06] * wjp turns 'match case' on
[14:40:10] <wjp> '50 79' is a very popular combination for the last two bytes of a function
[14:40:29] <Darke> Dumb. <grin> I've had that happen before. I actually gave up on hex editors and just had a 'stock' piece of code that was the frame work to decompile 'yet another file format', it's base was just basic hex-edit mode but could easily be modified. I should dig it up again, it was nifty.
[14:41:38] <Darke> Maybe 50 is some kind of 'cleanup' opcode? Does it appear anywhere else in the code?
[14:43:04] <wjp> not in Captain Darion's conversation function
[14:43:20] <wjp> (apart from 'P' in a string :-) )
[14:43:41] * Darke grins.
[14:44:15] <wjp> could be a return value related thing
[14:45:07] <Darke> It sounds like it could be a 'clean up all the previously allocated strings' function. I would guess if it was a return value function it would possibly point to a variable to return. But maybe.
[14:45:40] <wjp> well, if it cleans up strings, then the 62 F8 right before it would be useless
[14:46:03] <wjp> (not that the compiler seems to be particularly optimizing...)
[14:46:45] <Darke> Perhaps. If I were writing it however, <grin> if I'd ever used a 'string variable' I would throw one of those in at the end just in case we walked through a code path I wasn't anticipating.
[14:46:59] * wjp nods
[14:47:40] <wjp> funny.... where is there a "jmp +0x00" here? :-)
[14:47:48] <wjp> s/where/why/
[14:48:50] <Darke> Umm... quick & dirty 'optomisation' which they didn't remove? <grin> Perhaps the jumps are not relative?
[14:49:08] <wjp> nah, these jumps are really relative
[14:50:39] <Darke> It sounds like it may be a 'left-over' from the optomiser, that was missed. But make a note of it for future reference, <grin> it's sufficiently unusual it may make sense when you understand more of the opcodes.
[14:51:25] <wjp> or maybe it's a result from one of the patches
[14:51:45] <Darke> Possibly.
[14:54:20] * wjp figured out another opcode (local function call)
[14:54:38] <Darke> Funky. What number is that one?
[14:54:47] <wjp> 04
[14:54:57] <wjp> 02 is remote function call
[15:35:13] * Darke urks and apologeticfluffs, he was searching for todays #exult log to make it easier to reference previous function strings, but got distracted by reading old roleplaying irc logs. <grin>
[15:37:17] <wjp> hehe :-)
[15:40:12] * Darke shakes his head, this buck is _far_ to easily distracted. He supposes he should get back rewriting those bits of conf/ he started a while back before you distracted him. <grin>
[15:40:33] <wjp> sorry about that :-)
[15:40:42] <wjp> now get to work! ;-)
[15:41:43] * wjp should start doing something remotely useful too
[15:42:23] * Darke would probably look innocent, but it's been very solidly been proven, he isn't in the slightest.
[16:34:45] <Darke> Hmm... I think, perhaps I'll go to sleep now. <grin> Good 'night' all. Good luck with your usecode trials and tribulations wjp. <bow>
[16:35:20] <-- Darke has left IRC ()
[18:10:10] --> Dominus has joined #exult
[18:10:11] --- ChanServ gives channel operator status to Dominus
[18:10:28] <Dominus> hi
[18:10:53] * Dominus has finished reading PoC friday night
[18:11:22] * Dominus is disappointed at the quick ending
[18:22:44] * Dominus is wondering if people are trying to set a new record for not responding :-)
[18:26:10] --> Dominus_ has joined #exult
[18:26:11] <-- Dominus has left IRC (Read error: 104 (Connection reset by peer))
[18:26:30] --- Dominus_ is now known as Dominus
[18:53:50] <matto> ;)
[18:54:05] <matto> I am pleased to announce that the DAPHNE FAQ is now available in two languages : English and Italian
[18:54:07] <matto> http://www.xmission.com/~redflame/daphne/faq_menu.php
[18:54:23] <matto> Dominus!!!!
[18:54:29] <Dominus> why no German?
[18:54:30] <Dominus> :-)
[18:54:36] <Dominus> matto!!!
[18:54:46] <matto> I need a native to do it for me lest I do a poor translation and make a fool of myself
[18:54:46] <Dominus> I finished reading!!!
[18:55:01] <matto> so I saw... disappointed with the quick ending, eh? hehe
[18:55:10] <Dominus> he he, that's why I asked, I would have loved to read it
[18:56:02] <Dominus> I missed that stuff of how the other guy Oba, got to the Old world
[18:56:25] <Dominus> hm, for spoilers sake, I#ll opne a private chat
[18:56:36] <matto> I believe wjp has read the book
[18:56:48] <Dominus> Fingolfin still hasn't
[18:56:57] <Dominus> and the logs are still there
[18:57:00] <matto> oh yeah.. I forgot that exultbot is a spy
[19:00:23] <wjp> Dominus: so, did I break the "responding late" record? ;-)
[19:00:40] <Dominus> :-)
[19:00:44] <wjp> hi
[19:00:45] <Dominus> I don't really know
[19:00:58] <Dominus> exultbot doesn't keep a log of that
[19:01:43] <wjp> :-)
[19:11:38] --> Fingolfin has joined #exult
[19:11:39] --- ChanServ gives channel operator status to Fingolfin
[19:12:39] <matto> FIN!!!!
[19:12:57] <Dominus> hi
[19:17:56] <Fingolfin> yo
[19:18:31] <Dominus> Fingolfin: how did you like that movie I recommended last time ("ein einfacher Plan")?
[19:19:41] <Fingolfin> i didn't really watch it, only the start, then I had to go to bed :)
[19:19:49] <Dominus> he he
[19:19:54] <Fingolfin> but it started promising :)
[19:20:16] <Dominus> as I said back then, if you like Fargo you will like that one as well
[19:20:34] <wjp> hi Max
[19:20:39] <Dominus> it is going very slow but then the killed bodies start to pile up
[19:20:45] <matto> A Simple Plan?
[19:20:48] <Dominus> right
[19:20:49] <wjp> matto: yeah
[19:23:35] <Fingolfin> I hope my book will arrive before Xmas...
[19:23:51] <Dominus> he he
[19:23:57] <Dominus> I hope you read it soon
[19:24:08] <wjp> didn't one of you recommend Otherland some time ago?
[19:24:12] <Fingolfin> PoC - Amazon lowered the price, so I immediatly bought
[19:24:19] <Dominus> wjp: it was me
[19:24:27] <wjp> I ordered it last week
[19:24:33] <Fingolfin> somebody did, I just got it, and haven't yet got a chance to read it :)
[19:24:52] <Fingolfin> "City of Golden Shadow" the title
[19:24:56] * wjp nods
[19:25:00] * Dominus only hopes you like it otherwise you will proabably stone me
[19:25:05] <wjp> it was recommend to me by someone else too, so I basically just had to get it :-)
[19:25:53] <Dominus> but it's just as frustrating, maybe even more so, than the SoT books
[19:26:11] <matto> frustrating?
[19:26:11] <wjp> frustrating? in what way?
[19:26:20] <matto> I don't find the SoT frustrating.. because he always wraps it up at the end
[19:26:23] <matto> WoT is frustrating
[19:26:26] <Dominus> yeah, waiting for the new book :-)
[19:26:45] <Dominus> at least the otherland series has finished
[19:26:53] <wjp> 4 parts, right?
[19:26:59] <Dominus> yup
[19:27:05] <matto> I can barely remember anything about WoT hehe
[19:27:13] <matto> too much information
[19:27:21] <wjp> matto: I know what you mean :-)
[19:27:34] <Dominus> I'd also like to see another book of Stephen Kings "Dark Tower" series
[19:27:36] <wjp> any ETA on part 10, btw?
[19:27:37] <matto> for example... I can't remember what Rand is doing at the moment
[19:27:44] <matto> I do remember what Matrim did..
[19:27:51] <wjp> matto: you don't? remember the end?
[19:27:56] <matto> and I remember what Perrin is trying to do.. (I hope he fails in his quest haha)
[19:28:18] * wjp thinks
[19:28:35] <wjp> btw, is it 'spoiler safe' for WoT part 9 here?
[19:28:50] <matto> for me it is
[19:29:32] <Dominus> I don't care
[19:29:39] <Dominus> don't read it
[19:29:45] <wjp> ok... so what were Mat & Perrin doing? Mat just found out about the daughter of the nine moons, right?
[19:30:00] <wjp> or was that a few books ago? :-)
[19:30:49] * Dominus just thinks that all those people that read the logs will be spoiled now :-)
[19:30:58] <wjp> tough luck :-)
[19:31:42] <matto> Perrin was trying to rescue Faile (and company) who had been captured by some renegade Aiel
[19:31:44] <Dominus> to any one feeling spoilt by our conversations please report to the forum :-)
[19:32:09] <wjp> matto: right
[19:32:33] <matto> and Mat not only found about the daughter of the nine moons but he kidnapped her and took her away with him hehe
[19:32:41] <wjp> yeah, I know :-)
[19:32:46] <matto> that was the last thing that happened ...
[19:33:24] <wjp> and Rand was probably kind of unconscious at the end
[19:33:25] <matto> that part was pretty interesting
[19:33:28] <matto> oh!
[19:33:33] <matto> that's right... Rand had just finished cleansing saidin
[19:33:35] <matto> now I remember
[19:33:42] <wjp> not really something you'd forget :-)
[19:33:43] <matto> book 10 should be interesting
[19:33:49] <wjp> aye
[19:33:56] <matto> hopefully Rand can now stop acting like a total loser
[19:34:05] <matto> :)
[19:34:07] <wjp> :-)
[19:34:55] <wjp> what do you think that "sickness" is that hits him when he seizes saidin, btw?
[19:35:11] <matto> it's the taint
[19:35:27] <matto> you don't agree?
[19:35:33] <matto> I had thought that was pretty obvious
[19:35:33] <Dominus> morning sickness :-)
[19:35:35] <wjp> well, that was my original thought
[19:36:05] <wjp> but could it be the same sickness that hit him early on days after he'd channeled
[19:36:34] <wjp> it was said there (by Moiraine, I guess) that it would first be a while after the channeling, but would gradually become sooner afterwards
[19:37:02] <wjp> (I think that was the discussion between Moiraine and Nynaeve/Egwene about wilders or something)
[19:51:34] --> Dominus_ has joined #exult
[19:53:39] <-- Dominus has left IRC (Ping timeout: 180 seconds)
[19:55:11] <-- Dominus_ has left IRC (Read error: 104 (Connection reset by peer))
[20:24:22] --> nobbi has joined #exult
[20:59:55] <wjp> hi
[21:54:06] --> ^miguel^- has joined #exult
[21:56:52] <-- nobbi has left IRC (Ping timeout: 180 seconds)
[22:11:23] <Fingolfin> so, when are you guys going to see LotR ?
[22:11:25] <Fingolfin> :)
[22:11:32] <wjp> heh, good question
[22:11:36] * Fingolfin is going with friends on wednesday, sadly only into the german version
[22:11:50] <wjp> german? :-(
[22:12:13] <Fingolfin> the only english theatre in the area, in frankfurt, doesn't allow you to pre-order cards, and we didn't want to camp outside several days in advance :)
[22:12:28] <wjp> that's a good excuse, yes :-)
[22:12:33] <Fingolfin> so, we first see it in german, and some time later we can still go into the english one :)
[22:12:46] <wjp> I don't even know when it'll be released here
[22:12:57] <^miguel^-> On spain they only show the movie on spanish
[22:13:04] <wjp> probably thursday
[22:13:18] <Fingolfin> I think it is the same date world wide, that would be wednesday
[22:13:30] <Fingolfin> but then, maybe netherlands get a special treatment :)
[22:13:31] <wjp> hmm, movies tend to be released on thursday here
[22:15:20] * wjp should make some plans to go see LotR soon
[22:59:51] <^miguel^-> Bye guys
[23:00:09] <wjp> bye
[23:01:23] <-- ^miguel^- has left #exult ()
[23:07:38] <-- MiniMe has left IRC (Ping timeout: 180 seconds)
[23:11:45] --> sbx has joined #exult
[23:16:32] <sbx> hi
[23:19:02] <wjp> hi
[23:24:50] <Fingolfin> lo