#exult@irc.freenode.net logs for 5 Feb 2002 (GMT)

Archive Today Yesterday Tomorrow
Exult homepage

[00:34:08] --> matto has joined #exult
[01:20:42] --> puppy has joined #exult
[01:20:45] <puppy> ah
[01:31:04] <-- puppy has left IRC ()
[01:33:48] --> Darke has joined #exult
[01:33:48] --- ChanServ gives channel operator status to Darke
[01:34:04] * Darke greetingsbows.
[01:35:20] * sbx bowgreets Darke.
[03:06:07] <-- Kharza-kzad has left IRC (Read error: 104 (Connection reset by peer))
[03:10:53] --> V0|D has joined #exult
[03:10:59] <V0|D> hi
[03:11:22] <sbx> hi
[03:17:54] <Darke> Hi.
[04:13:53] --> chihuahua has joined #exult
[04:37:36] <V0|D> damn, my puter has just crashed real bad
[04:37:43] <V0|D> better restart i guess
[04:38:58] * V0|D wonders what would happen if i quit the winder server...
[04:39:17] <Darke> 'Winder server'? Oh, yes, bye. <grin>
[04:39:28] <V0|D> window server
[04:39:29] <V0|D> oops
[04:39:50] <chihuahua> hrm
[04:39:54] <chihuahua> any of y'all work on exult
[04:40:10] * Darke looks innocent.
[04:40:34] <chihuahua> armageddon happens to not kill *EVERY* one :/
[04:40:36] <Darke> Perhaps... any particular reason you're interested in this Top Secret information? <grin>
[04:40:47] <V0|D> better play it safe....brb...hopefully...
[04:40:53] <-- V0|D has left IRC ("()")
[04:40:54] <chihuahua> and i dont mean batlin, lord british, or the avatar
[04:41:02] <Darke> It shouldn't IIRC. Who does it not kill.
[04:41:21] <chihuahua> i casted it and i found about 4 or so guards who were still alive
[04:41:44] <chihuahua> they were just outside the castle
[04:41:50] <Darke> What version are you using? Snapshot/cvs or the previous beta. I have a memory of someone mentioning this before.
[04:42:05] <chihuahua> the latest one
[04:42:17] <chihuahua> the beta
[04:43:00] <Darke> Try with the latest snapshot from the downloads page. IIRC there was a bug where it wouldn't kill the 'temporary'/egg generated npcs.
[04:43:45] <chihuahua> also, one feature that'd be cool...is in addition to screen snapshots.... have the capability to make small gif movies or some shit
[04:44:22] <chihuahua> or possibly add a grid like function to the images so one can cut specific parts of an image out
[04:44:29] <chihuahua> cause i'd like to get a movie of lord british dying
[04:44:46] <chihuahua> it's not every day you see someone get decapitated by a plaque
[04:44:58] <chihuahua> and it would make for good material to post on a webpage :P
[04:45:07] <Darke> That's been suggested before. Check in the 'features' request tracker, and if it's not there, you might want to add it.
[04:48:59] --> V0|D has joined #exult
[04:49:09] <V0|D> cool, full screen irc
[04:49:41] <-- V0|D has left IRC (Client Quit)
[04:51:29] <sbx> I suggested it along with demos. :)
[04:51:50] <sbx> but i didnt feature track add it, just thought maybe it was something i could do to experiment with the code
[04:52:02] <sbx> and help my learning of the code
[04:52:19] --> V0|D has joined #exult
[05:01:00] * Darke nods.
[05:01:59] <V0|D> ahhhhhh.....<sigh>
[05:06:49] <chihuahua> i have a question
[05:06:52] <chihuahua> when i start exult
[05:06:57] <chihuahua> there's the two speakers with an x on em
[05:07:00] <chihuahua> what's that about :/
[05:07:32] <sbx> It means you don't have the sound effects packs, or they aren't working properly.
[05:07:48] <chihuahua> hrm
[05:08:06] <chihuahua> where do i put the packs? the main directory
[05:08:09] <chihuahua> ?
[05:08:42] <sbx> It doesn't matter. You can configure where they are in exult.cfg
[05:08:55] <sbx> I think the main directory is how it's configured by default.
[05:09:00] <chihuahua> ok
[05:24:31] <chihuahua> the avatar threw his dagger
[05:25:30] <chihuahua> that shit was kinda funny.. except the the gov. didnt like it
[05:41:38] <sbx> Does anyone here know PHP?
[05:43:00] <Darke> Not enough for me to be useful. <grin>
[05:43:43] <sbx> Hmm
[05:43:55] <sbx> Do you know if 'key' just means an index array?
[05:44:27] <Darke> No idea. <grin>
[05:44:34] <sbx> as in, a foreach($my_array as $key => $value) control structure
[05:44:36] <sbx> alright
[05:44:41] * sbx will assume it does.
[05:45:05] <Darke> Yes, it look like it does, from that code.
[05:53:06] --> whiskers has joined #exult
[05:53:06] <-- chihuahua has left IRC (Read error: 104 (Connection reset by peer))
[05:53:15] --- whiskers is now known as chihuahua
[05:53:17] <chihuahua> god dammit
[05:53:22] <chihuahua> anyways.
[05:53:38] <chihuahua> how pissed do you think EA would be if there were a Java version of Exult and uh yeah
[05:53:49] <chihuahua> basically one could play U7 off a server...
[05:54:52] <sbx> why would someone want to do that? :-)
[05:54:59] <chihuahua> ohhh i dunno
[05:55:02] <sbx> you mean multiplayer?
[05:55:06] <chihuahua> like if someone were setting up a bbs
[05:55:10] <chihuahua> not necissarily multiplayer
[05:55:11] <chihuahua> but lets say
[05:55:27] <chihuahua> somebody wanted to set up a version of U7 that could be played by multiple people
[05:55:35] <chihuahua> not at the same time
[05:55:38] <chihuahua> but like...a door game..
[05:56:35] <sbx> Unless it makes money/has a high profile, I'm not sure why it would anger EA any more then Exult.
[05:56:51] <sbx> but i dunon
[05:56:56] <sbx> dunno
[05:57:07] <chihuahua> i think it'd be pretty cool to have a multiuser u7 game
[05:57:10] <chihuahua> but not multiplayer
[05:57:23] <chihuahua> that way people could experience it from servers
[05:57:26] <chihuahua> or somethin
[05:57:34] <chihuahua> and not be "pirating"
[05:58:08] <V0|D> DAMN!!!! my puter is full fscked up!!!!
[05:58:16] <sbx> fsck
[05:58:34] <sbx> whats wrong with it?
[05:58:35] <V0|D> yeh, i might run it and see if it fixes something
[05:58:41] <sbx> heh
[05:58:44] <V0|D> my email application wont work
[05:58:53] <V0|D> after that crash
[05:59:10] <sbx> you didnt already fsck?
[05:59:16] <V0|D> i guess ive learned a lesson...never use beta freeware apps
[05:59:22] <V0|D> not yet
[05:59:26] <sbx> heh
[05:59:40] <V0|D> oh well, here we go...wish me luck
[05:59:44] <sbx> as opposed to beta Free Software? :)
[05:59:50] <sbx> good luck
[05:59:50] <V0|D> hahaha
[06:00:41] <Darke> sbx: Isn't all Free Software beta? <grin>
[06:00:56] <V0|D> wait! i think i have found a solution......
[06:01:16] <V0|D> this sounds like me:
[06:01:21] <V0|D> <quote>
[06:01:22] <V0|D> Yesterday, after the Aqua window server unexpectedly quit (due to some combinaton of Classihack, XDarwin, xchat, and the GIMP, I think) -- which drops you instantly back to the login screen (ouch!) -- I couldn't get Mail.app to run anymore. I'd start it up, the window would start displaying, and then it would quit. I've been using Mail for over a year, and this was the first real problem I'd had with it.
[06:01:27] <V0|D> </quote>
[06:01:57] <sbx> Darke: Its the best kind of software heh
[06:02:05] <sbx> Do you have OS X?
[06:02:08] <sbx> V0|D
[06:02:09] <V0|D> yeh
[06:02:31] <sbx> Can it run any UNIX app?
[06:02:32] <V0|D> piece of sh!t eehehe
[06:02:38] <sbx> I mean, POSIX compliant apps or whatever
[06:02:43] <V0|D> mostly
[06:02:50] <V0|D> with a little configuration
[06:03:02] <V0|D> and a little porting here and there
[06:03:29] <V0|D> console apps are no problem i think
[06:04:46] <V0|D> ill give fsck a go anyway. bbl
[06:04:58] <-- V0|D has left IRC ("(poof!)")
[06:26:31] --> V0|D has joined #exult
[06:26:40] <V0|D> all better now (fingers crossed)
[06:27:24] <V0|D> i think ill format the HD when the next major revision is released
[06:30:21] <Darke> Makes sense.
[07:05:55] <-- EazyCheez has left IRC ()
[08:01:35] --> wjp has joined #exult
[08:01:35] --- ChanServ gives channel operator status to wjp
[08:01:39] <wjp> hi
[08:01:59] --- wjp is now known as wjp|work
[08:02:13] <sbx> hi
[08:05:05] * Darke bows, "Hi!"
[08:57:51] <chihuahua> how do you locate the avatar
[08:57:59] <chihuahua> the arrow keys scroll
[08:58:01] <chihuahua> and like
[08:58:14] <chihuahua> does it have a return function?
[08:58:19] <wjp|work> 'home'
[08:58:24] <chihuahua> thanks
[09:00:48] <chihuahua> and how do i get off the ice burg
[09:03:25] <-- chihuahua has left IRC ()
[09:33:13] <V0|D> what ice burg??
[09:38:42] <sbx> heh
[09:53:21] --> MichaelZ has joined #exult
[09:53:38] * MichaelZ returns with a chunk of additional internet usage in tow :-)
[09:54:01] * sbx hides.
[09:54:15] <MichaelZ> s/ a / an /
[09:54:19] * MichaelZ seeks
[09:54:34] <Darke> Hello. <bow>
[09:55:50] <sbx> Hi.
[09:56:17] <V0|D> hi
[10:10:20] <wjp|work> hi
[10:11:08] * Darke thinks the channel must be _really_ badly buffered. Surely MichaelZ would have located sbx by now otherwise.
[10:11:25] <MichaelZ> hmm, who said i haven't found him? :P
[10:11:29] <MichaelZ> (badly buffered?)
[10:12:24] * sbx looks at Darke and MichaelZ standing right beside him and just shrugs.
[10:15:08] <Darke> MichaelZ: Long seek time, without returning success. <grin>
[10:30:30] <MichaelZ> lol, this is odd... For some reason a dcc i haev going is appearing in *this* status bar, even though it is neither the status bar for the server i started it on, nor the "first" status bar... weird
[10:47:19] <-- Darke has left IRC (Read error: 110 (Connection timed out))
[11:01:11] <MichaelZ> sleep for me, already, g'night
[11:01:12] <-- MichaelZ has left IRC ("No windows for this server")
[11:04:26] <V0|D> i might play some games, goodnight
[11:04:33] <-- V0|D has left IRC ("-")
[11:05:53] <sbx> my isp doesn't want me on all hours of the day/night
[11:06:03] <-- sbx has left IRC ("o_o")
[11:54:19] --> Colourless has joined #Exult
[11:54:19] --- ChanServ gives channel operator status to Colourless
[11:55:04] <Colourless> hi
[12:39:17] <wjp|work> hi
[12:39:40] <Colourless> :-)
[12:39:54] <wjp|work> how late was I? :-)
[12:40:08] <Colourless> 45 minutes
[12:40:15] <wjp|work> oh, is that all :-)
[12:41:11] <Colourless> yeah
[15:17:33] <-- exultbot has left IRC (signing off...)
[15:18:37] --> exultbot has joined #exult
[15:18:37] --- Topic for #exult is: Exult! An engine to play Ultima7: Black Gate and Serpent Isle! Exult!
[15:18:37] --- Topic for #exult set by Darke at Sun Jan 27 04:05:44 2002
[15:18:52] <wjp|work> if you're patching usecode anyway, you could replace it by a 24hr output
[15:19:51] <-- Colourless has left IRC (Read error: 104 (Connection reset by peer))
[15:19:54] <artaxerxes> true... I just wished the BG_f team had done that themself! :)
[15:20:43] * artaxerxes feels lazy a bit
[15:20:52] * artaxerxes also prefers to re-use than to re-invent
[15:26:22] --> Colourless has joined #Exult
[15:26:22] --- ChanServ gives channel operator status to Colourless
[15:26:34] --> laxdragon has joined #exult
[15:26:46] <laxdragon> hullo
[15:26:50] <artaxerxes> hi
[15:26:55] <Colourless> hi
[15:27:53] <laxdragon> hows goes things?
[15:28:30] --> Nadir has joined #exult
[15:28:30] --- ChanServ gives channel operator status to Nadir
[15:28:56] <Nadir> hi !
[15:29:00] <artaxerxes> hey!
[15:29:01] <Colourless> hi
[15:29:12] <Nadir> wjp|work: I have seen the light. I have installed Debian !!!
[15:29:29] <laxdragon> heh, good for you man.
[15:29:56] <wjp|work> hi
[15:29:56] <wjp|work> why are you telling me? I use redhat :-)
[15:29:58] <Nadir> I had RedHat previously...
[15:30:08] <Colourless> wjp, i just changed pentagram to use config so the paths of all the directories can now be set in a config file.
[15:30:12] <Nadir> because debian is superior
[15:30:14] <artaxerxes> Never tried Debian based distro....
[15:30:14] <Nadir> :)
[15:30:18] <wjp|work> Colourless: cool. You beat me to it :-)
[15:30:21] <Nadir> rpm sux
[15:30:27] --> EazyCheez has joined #exult
[15:30:31] <Nadir> once you've used deb
[15:30:35] <wjp|work> nah, .rpm is supposed to be better than .deb
[15:30:40] <Nadir> how ?
[15:30:46] <wjp|work> it's just the apt front end that's kind of useful
[15:30:48] <artaxerxes> get-apt seems awesome
[15:30:55] <Nadir> apt-get
[15:31:03] <laxdragon> heh, they are all linux IMHO, so as long as you are on Linux.
[15:31:04] <artaxerxes> :)
[15:31:14] <artaxerxes> see I've never used .deb :)
[15:31:32] <laxdragon> dude, do you use gnome, or kde?
[15:31:35] <Nadir> I've used the following distros until now: SLS, slackware, RedHat and now Debian
[15:31:47] <artaxerxes> laxdragon: talking to me ?
[15:31:57] <laxdragon> to anyone ;)
[15:32:00] <Nadir> SLS was fun
[15:32:03] <artaxerxes> mostly kde
[15:32:04] <Nadir> gnome
[15:32:06] <laxdragon> I use gnome myself.
[15:32:11] <wjp|work> gnome here
[15:32:17] <artaxerxes> waoo.. I feel alone here
[15:32:25] <Nadir> kde apps are more polished. gnome apps are more useful
[15:32:27] <laxdragon> heh.
[15:32:30] <artaxerxes> :)
[15:32:36] * Colourless too
[15:32:41] <artaxerxes> mind you I love Gnumeric
[15:32:43] <Nadir> Nadir's first kernel was 0.99.14
[15:32:53] <laxdragon> Yah, I've been hooked on Galeon, Nautilus, and Evolution now.
[15:32:56] <artaxerxes> the best spreadsheet app I've seen
[15:33:05] <artaxerxes> Evolution is darn good too.
[15:33:17] <artaxerxes> What I do is run KDE and a few gnome apps on top
[15:33:26] <laxdragon> I think I go back as far as kernel 2.0.x
[15:33:36] <wjp|work> evolution is pretty good, yeah
[15:33:37] <Nadir> youngster
[15:33:48] <artaxerxes> I've started with RH, then a bit of SuSE and now pure Mandrake
[15:33:54] <wjp|work> 2.0.35 for me. (The first one that had fat32 support, IIRC)
[15:33:55] <laxdragon> heh, as a workstation anyway.
[15:34:17] <artaxerxes> yup
[15:34:17] <laxdragon> I've uses linux as a server for longer, before that we had Solaris.
[15:34:50] <artaxerxes> what was running RH 5.2 ?
[15:35:22] <Nadir> galeon is also very good.
[15:35:29] <wjp|work> yes, galeon is great
[15:35:42] <artaxerxes> Linux apps Just Rock (tm)
[15:35:46] * Colourless see lots and lots of words that have little to no meaning for him
[15:35:58] <laxdragon> I just hope ximian, does not try to push gnome twords .net, that would suck butt.
[15:36:18] <artaxerxes> Colourless: are you Linux apathetic ?
[15:36:19] <Nadir> why ? I don't think they're related anyway
[15:36:48] <laxdragon> Well ximian is working on SOLO, which is a linux version of .net API's.
[15:36:51] <artaxerxes> laxdragon: fun you said that, I'm currently reading the comments of the LinuxToday article about de Icaza/.net story
[15:37:09] <artaxerxes> SOLO ? isn't it MONO ?
[15:37:22] <laxdragon> yeah, my company works on the WINE project, so I always keep abreast of the latest linux news.
[15:37:38] <laxdragon> doh, yah, thats it artaxerxes
[15:37:49] <Colourless> linux is very suited for what I want to do with my system
[15:37:56] <Colourless> s/is/isn't/
[15:38:10] <artaxerxes> it quite changes the phrase Colourless ;)
[15:38:16] <Colourless> yeah no kidding :-)
[15:38:23] <laxdragon> yeah
[15:38:39] <artaxerxes> laxdragon: working for the comp that make WineX ?
[15:38:54] <laxdragon> nope, the other one. CodeWeavers.
[15:38:56] <artaxerxes> transgaming ?
[15:38:59] <artaxerxes> O I C
[15:39:09] <artaxerxes> I like the plugin
[15:39:43] <artaxerxes> Colourless: you're using winXP ?
[15:39:46] <laxdragon> heh, well, you havn't seen nutt'n yet. Our next product comes out soon. Can't say what it is yet though/
[15:39:55] <Colourless> yeah i'm using xp
[15:39:59] <artaxerxes> then dont say it!
[15:40:12] <artaxerxes> (that was for laxdragon)
[15:40:27] <laxdragon> <g>
[15:40:36] <artaxerxes> Colourless: any better than NT ?
[15:40:55] <artaxerxes> beside a complete upgrade of the machine ? :)
[15:41:00] <Colourless> depends on how you define better
[15:41:26] <artaxerxes> what'd be the reason you'd choose XP over NT for instance ?
[15:41:27] <laxdragon> I use XP at home on my game machine. I like it better than any previous ms product.
[15:41:52] --> sbx has joined #exult
[15:41:59] <artaxerxes> laxdragon: is CodeWeaver realeasing their code ?
[15:42:05] <Colourless> well, generally XP just has more features than 2K.
[15:42:22] <artaxerxes> Colourless: features you use ?
[15:42:27] <sbx> hey
[15:42:27] <laxdragon> artaxerxes: thinking on it. We've been under pressure to do so.
[15:42:31] <sbx> can I join the conversation?
[15:42:36] <artaxerxes> hey sbx
[15:42:53] <artaxerxes> 2 conv on the go: XP with Colourless and CodeWeaver with laxdragon
[15:42:55] <laxdragon> the only code we hold back is the netscape plugin code, the wine stuff always goes back in the tree.
[15:43:07] <sbx> eh
[15:43:09] <artaxerxes> awesome
[15:43:39] <artaxerxes> How big is CodeWeaver ?
[15:43:46] <laxdragon> we are talking about changing the license of wine to gpl, that's takeing some effort.
[15:44:05] <artaxerxes> you 0wn the Wine project ?
[15:44:16] <laxdragon> we have 8 people in our Minneapolis office, and about 10 people around the world working external.
[15:44:40] <artaxerxes> Wine went so far with only 18 people!
[15:44:42] <Colourless> yeah kind of. the thing is I would probably find I'd miss certain things if I went back to 2K.
[15:44:42] <laxdragon> no, we just contribute to it. We do employ Alexadre Julliard, the head of the Wine project.
[15:44:43] * artaxerxes is amazed
[15:45:58] * sbx realizes he has nothing to say after all.
[15:46:03] <-- sbx has left IRC (Client Quit)
[15:47:00] <laxdragon> i've been with cw for almost 2 years, and it's amazing the progress I've seen. We got IE and MS Office running almost 100% here on our test machines without any windows installed.
[15:47:37] <artaxerxes> Colourless, would you consider using Linux is Wine gets to the point laxdragon describes ?
[15:47:53] <artaxerxes> or it is just something you don't care about ?
[15:48:42] <laxdragon> hmmm, no comments. :-p
[15:48:47] <Colourless> :-)
[15:49:11] <laxdragon> I don't think visual c++ runs very well ATM on Wine.
[15:49:24] <Colourless> you'd need Direct3D 8 to get me slightly interested
[15:49:56] <laxdragon> Well if WineX ever commits thier code to the main tree, bastards are holding it back. Nobody else is working on it, cause they are.
[15:50:24] <artaxerxes> it would then run Direct3D on Linux ?
[15:50:48] <laxdragon> yeah, it translates d3d calls to open gl. I've seen it, very impressive.
[15:51:12] <laxdragon> not much speed loss either.
[15:51:21] <artaxerxes> isn't it better to code directly into opengl ?
[15:51:36] <laxdragon> always, it's also better to code native linux.
[15:51:37] <artaxerxes> is it much more difficult ? Colourless ?
[15:51:55] <laxdragon> but, since there is too many companies that don't yet, thats where wine comes in.
[15:52:34] <Colourless> well, of course, you wouldn't want to code in Direct3D if you wanted to run in linux, that is obvious
[15:53:09] <artaxerxes> I use the wine version from cw. I like their config tool and I find it works better than the current tree
[15:53:40] <artaxerxes> Colourless, is Direct3D that much better or even that much different than OpenGL ?
[15:54:01] <Colourless> really neither is more or less difficult than the other to actually program in.
[15:54:27] <laxdragon> yeah, to bad we don't complile our tree against opengl yet. Without Winex's code, Wine can still do dx5-6 on it's own. But the source must be linked to opengl for hw accell. My boss is more focus'ed on apps than games.
[15:55:27] <artaxerxes> I just hope the cw team won't start making something like StarOffice 5.1, where your apps are all in a virtual desktop.
[15:56:24] <artaxerxes> Colourless, I guess it just becomes a company policy to choose which one they'll develop with
[15:56:48] <wjp|work> time to go
[15:56:50] <wjp|work> bye
[15:56:53] <-- wjp|work has left IRC ("[x]chat")
[15:56:54] <artaxerxes> bye
[15:57:46] <laxdragon> no, wine apps run in managed mode, meaning they work just like any linux app, even share the linux clipboard etc.
[15:58:51] <artaxerxes> the config tool gives the option to run in a virtual desktop. It is all black and the app you run appears inside this window. I actually never saw that option with Wine from the tree.
[15:59:03] <Colourless> Direct3D has some advantage over OpenGL, though they aren't really coding things at all. To support more advanced features OpenGL extensions are requried, and if companies don't want to cooperate *cough* Nvidia *cough* then it can make development annoying because multiple code paths need to be written for each type of hardware
[15:59:31] <artaxerxes> :)
[15:59:50] <artaxerxes> like in the goo' ol' days.
[16:00:12] <artaxerxes> where to play a game you needed to get a specific video card.
[16:01:02] <Colourless> aye, but it's not really that bad.
[16:01:26] <laxdragon> yeah, you can run either way, we only use desktop mode for games that want full screen.
[16:01:31] <laxdragon> colourless
[16:02:11] <laxdragon> Colourless: you are right, ms has been working overtime making d3d better than gl. Now gl has to play catch-up.
[16:02:50] <artaxerxes> going back to translate SI and modify the 12/24 clock.... see ya later!
[16:02:57] <artaxerxes> au revoir.
[16:03:01] <-- artaxerxes has left IRC ("using sirc version 2.211+KSIRC/1.1")
[16:07:15] <Colourless> yeah. ms really has a one up with vertex shaders. In d3d if the hardware doesn't support it software vertex shaders can be used, but OpenGL doesn't have anything like this. D3D also has an advantage that the drivers are backwards compatable.
[16:08:16] <laxdragon> well, I know nvidia has written gl extetions for most of the dx8 features, but any one else is SOL.
[16:09:00] <Colourless> yeah, Nvidia kind of like to have proprietry extentions
[16:11:27] <laxdragon> well colourless, far be it from me to tell you what os to use. I myself use both. Mostly linux at work, and mostly xp at home. They both have good points and both have bad points.
[16:19:07] <-- Nadir has left IRC ("Client Exiting")
[16:55:54] --> artaxerxes has joined #exult
[16:56:01] <artaxerxes> hi again!
[16:56:07] <Colourless> hi
[16:56:21] <artaxerxes> glad to see you're still here Colourless... I wanted to ask you a question.
[16:56:28] <Colourless> ok
[16:56:48] <artaxerxes> I posted it in the forum but I need the answer quite soon
[16:57:59] <artaxerxes> in the usecode functions, when the code makes a "sub" or a "cmpge" or whatever you want that takes parameters, are those parameters popped from the heap and replaced by their return value or is the return value pushed just on top ?
[16:58:27] <Colourless> they are popped from that stack
[16:58:35] <artaxerxes> awesome.
[16:58:50] <artaxerxes> how many stacks are there ?
[16:58:53] <Colourless> just 1
[16:58:54] <artaxerxes> should be one
[16:58:57] <artaxerxes> ok
[16:59:10] <artaxerxes> I understand the [param] are registers
[16:59:15] <Colourless> though each function does have it's own
[16:59:20] <artaxerxes> exultbot: pop [001E]
[16:59:25] <artaxerxes> sorry.
[16:59:31] <artaxerxes> example: pop [001E]
[16:59:50] <artaxerxes> I see
[17:00:07] <artaxerxes> how many regiters can a function have ?
[17:00:16] <Colourless> we call then local variables, but registers is a good analogy.
[17:00:21] <artaxerxes> 001E is already quite a bit
[17:00:30] <Colourless> the function specifies how many variable it wants
[17:00:50] <artaxerxes> .localc ?
[17:01:06] <Colourless> yeah
[17:01:27] <artaxerxes> and .argc is the number of param passed to the usecode function ?
[17:01:34] <Colourless> yeah
[17:01:35] <artaxerxes> where are those param stored ?
[17:01:52] <Colourless> there are opcode to get them
[17:02:22] <artaxerxes> .externsize is the number of different functions refered to by a "call" opcode ?
[17:02:59] <Colourless> yeah
[17:03:11] <artaxerxes> what is the diff between a call and a calli and a callis ? The return type ?
[17:03:38] <Colourless> actually the params are pushed onto that stack when the function is called
[17:03:46] <Colourless> that is the args
[17:04:17] <artaxerxes> before the call is made, right ?
[17:04:19] --> wjp has joined #exult
[17:04:19] --- ChanServ gives channel operator status to wjp
[17:04:22] <wjp> hi again
[17:04:27] <artaxerxes> hey again
[17:04:45] <artaxerxes> and the return of the call is pushed on the stack.
[17:05:10] <Colourless> in practice it works that way, but our interpreter doesn't work quite like that
[17:05:43] <Colourless> call is used to call other usecode functions. calli and callis call intrinsic functions. callis has a return value, calli doesn't
[17:05:49] <artaxerxes> "actually the params are pushed onto that stack when the function is called" could you explain that ?
[17:07:01] <Colourless> never mind, you had it correct.
[17:07:44] <Colourless> the args are actually pushed on by the previous functions
[17:08:02] <artaxerxes> to sum up, the param are pushed on the stack, a call is made to a function (either intrinsic or not) and the param are taken from the stack. They are thus poped and the result from the intrinsic is push on the stack... right ?
[17:08:29] <artaxerxes> s/the intrinsic/the function/
[17:08:34] <Colourless> yeah
[17:08:36] <artaxerxes> cool
[17:08:43] <artaxerxes> I start to get it.
[17:08:57] <Colourless> everything get poped from the stack when used
[17:09:02] <artaxerxes> yeah
[17:09:41] <artaxerxes> to make sure.... let's examine cmpgt
[17:09:56] <artaxerxes> push val1; push val2; cmpgt
[17:10:07] <artaxerxes> that does a val2 > val1 ?
[17:10:18] <Colourless> yeah
[17:10:25] <artaxerxes> I had it wrong the first time
[17:10:34] <Colourless> actually let me think about it...
[17:10:43] <Colourless> it works like this
[17:10:47] <Colourless> push val1;
[17:10:50] <Colourless> push val2;
[17:11:04] <Colourless> (from the interpreter)
[17:11:04] <Colourless> sval = popi();
[17:11:09] <Colourless> pushi(popi() > sval); // Order?
[17:11:32] <artaxerxes> that's it
[17:11:33] <Colourless> so that's pushi(val1 > val2);
[17:11:37] <artaxerxes> val2 > val1
[17:11:57] <artaxerxes> ah no
[17:11:58] <wjp> the first popi() pops the value from the second push
[17:11:59] <artaxerxes> you're right
[17:12:31] <artaxerxes> according to the usecode I am studying, it seems it should be the opposite...
[17:12:52] <wjp> function/offset?
[17:13:36] <artaxerxes> 02A3 from SI... offset 05FB
[17:13:47] <artaxerxes> let me write it here
[17:13:53] <wjp> push hour; push 12; cmpgt
[17:13:59] <artaxerxes> that's it!
[17:14:03] <artaxerxes> you're fast!
[17:14:09] <wjp> I was already there :-)
[17:14:20] * wjp had a feeling you'd be looking at the time output :-)
[17:14:41] <Colourless> what are you trying to do there?
[17:14:43] <wjp> this means (hour > 12)
[17:14:53] <artaxerxes> maybe I understand the jne wrong then
[17:14:59] <Colourless> that's jump NOT equal
[17:15:01] <wjp> jne jumps is the check fails
[17:15:03] <wjp> s/is/if/
[17:15:23] <artaxerxes> ahh
[17:15:36] <artaxerxes> I understood the code wrong then :)
[17:15:47] <wjp> it's translated directly from a C-ish 'if' statement.
[17:16:03] <Colourless> basically it jumps ifs the time is less than or equal to 12
[17:16:16] <wjp> if (hour > 12) { blah; } -> push hour; push 12; cmpgt; jne (past the if block); blah; (jump target); etc...
[17:16:42] <artaxerxes> yeah I see..
[17:16:50] <artaxerxes> makes much more sense now.
[17:17:17] <artaxerxes> cmpgt will push a 0 or a 1, and jne will pop it, right ?
[17:17:41] <artaxerxes> sorry to bother you on such trivial issues btw.
[17:17:45] <Colourless> yeah
[17:17:46] <wjp> yeah
[17:18:46] * artaxerxes is sorry to bother you on such trivial issues.
[17:18:53] <Colourless> wjp: u8 has a private stack for each function right? so how do args get passed?
[17:18:54] <wjp> if you want to change it to 24h mode, the following should work: (wuc should re-align the labels)
[17:19:16] <wjp> Colourless: not sure... I've been trying to figure out the call mechanism
[17:19:27] <wjp> callis _game_hour@0 (0045)
[17:19:30] <wjp> pop [001E]
[17:19:36] <wjp> <cut a lot away here>
[17:19:43] <wjp> callis _game_minute@0 (0046)
[17:19:49] <wjp> pop [0020]
[17:19:57] <wjp> ...keep everything here...
[17:20:24] <wjp> callis _in_gump_mode@0 (009B)
[17:20:38] <wjp> ...keep everything here, too...
[17:20:44] <wjp> push [0020]
[17:20:45] <wjp> add
[17:20:50] <wjp> pop [0021]
[17:20:54] <wjp> push [0021]
[17:20:57] <wjp> ...etc...
[17:21:07] <wjp> (ie. remove the "push [001F]; add")
[17:22:15] <artaxerxes> got it... thx.... Actually, it is not exactly true.. It seems from offset 0615, that the game_hour can return 24... normally, it should get converted to 00
[17:22:15] <Colourless> you know, not even I know what you really mean there
[17:22:36] <Colourless> well, with exult it never will return 24
[17:22:59] <artaxerxes> it does a hour - 12 == 12 ?
[17:22:59] <wjp> (or, in other words: remove instructions at offset 5EF to 632, and those at 67C, 67F)
[17:23:46] <wjp> well, that also gets executed when hour <= 12
[17:24:59] <artaxerxes> true, but for the assert: hour - 12 == 12 to be true, hour has to be 24. I can't return 24.. it should be 00
[17:25:25] <Colourless> exult only return 0 to 23
[17:25:27] <artaxerxes> what the code do if hour-12=12 is that is changes the am into pm
[17:25:31] <artaxerxes> really ?
[17:25:35] <Colourless> yeah
[17:25:46] <artaxerxes> then how can hour-12 = 12 [0615]
[17:25:58] <wjp> it doesn't check if hour-12 == 12
[17:26:02] <wjp> it checks if hour==12
[17:26:17] <wjp> (OR hour-12==12, but that case never occurs)
[17:26:30] <wjp> (this check is outside the 'if (hour>12)' block)
[17:26:48] <artaxerxes> ohh
[17:26:57] <artaxerxes> outside
[17:27:00] <Colourless> it also checks of the hour is 0, and changes it to 12
[17:27:05] <Colourless> s/of/if/
[17:28:25] <artaxerxes> I can see of truth of it...
[17:28:27] <artaxerxes> :)
[17:28:56] <artaxerxes> what is [0642] doing ?
[17:29:35] <wjp> function 642? looks like a spell
[17:29:41] <artaxerxes> no non
[17:29:49] <artaxerxes> the offset 0642
[17:29:57] <wjp> <=
[17:29:59] <Colourless> turns 0-9 times into 00-09
[17:30:04] <artaxerxes> of function 02A3
[17:30:12] * wjp nods
[17:30:16] <Colourless> that's for minutes
[17:30:31] <artaxerxes> I see
[17:30:51] <artaxerxes> well, it seems it's getting good.
[17:31:10] <artaxerxes> wjp, can I just yank the whole thing you mentionned ?
[17:31:14] <wjp> yes
[17:31:19] <wjp> that whole block plus two lines
[17:31:27] <wjp> (better keep a backup, though ;-) )
[17:31:57] <artaxerxes> if I was to modify usecode, should I directly modify things like cmpgt or things like 05 03 01 ? :)
[17:32:00] <artaxerxes> or both ?
[17:32:16] <wjp> you can leave the hex alone. wuc ignores it
[17:32:20] <Colourless> depends on what you are doing
[17:32:28] <Colourless> ah ok :-)
[17:32:33] <artaxerxes> :)
[17:34:00] <artaxerxes> another question, when there is a call to intrinsic, the function number is the one in parenthesis and you guys put the possible function name before the @ sign ?
[17:34:31] <wjp> I had to hack up wud/wuc for this to work
[17:34:35] <artaxerxes> like callis _game_hour@0 (0045)
[17:34:39] <Colourless> yeah, just make sure you are using the correct intrinsic table though. using -s on the command line say you want to use the serpent isle intrinsics
[17:34:43] <wjp> wuc now ignores the name, and just looks at the number in parentheses
[17:34:48] <artaxerxes> 0045 is linked to game_hour
[17:35:08] <wjp> (the number behind the @ is the number of arguments. You need to have that correct too)
[17:35:23] <artaxerxes> interesting.
[17:35:50] <artaxerxes> maybe that's why my 009F from BG is wrong then... I might have de-assembled it with the -s option
[17:36:03] <artaxerxes> in this case, disregard my post on the forum.
[17:36:37] <Colourless> you did :-)0
[17:37:10] <artaxerxes> Jeff on the forum said there is no registers... but in fact, what is there is almost like a register.
[17:37:20] <artaxerxes> :)
[17:37:38] <Colourless> usecode/bgintrinsic.h and usecode/siintrinsic.h have all the instrinsics listed in them and are numbered
[17:37:52] <Colourless> of course, the usage an the paramters aren't really documented anywhere
[17:38:31] <artaxerxes> I realize now the immense amount of work to understand the opcodes and the intrinsic stuff.
[17:38:37] <wjp> well, both a register and memory stores data :-)
[17:38:54] <wjp> so, yes, it's "almost like a register" ;-)
[17:38:59] <artaxerxes> :)
[17:39:11] <Colourless> but you can only push them to the stack or pop values to them
[17:39:13] <wjp> trust me, figuring out the opcodes is the easy part... the intrinsics OTOH... ugh
[17:39:23] <artaxerxes> did you have to guess each intrinsic fucntion ?
[17:39:30] <Colourless> for si, yes.
[17:39:47] <Colourless> bg was mostly figured out by others AFAIK
[17:40:16] * wjp nods
[17:40:37] <wjp> ...and for U8 we had to start from scratch
[17:40:47] <artaxerxes> while with registers you can apply functions to them ... is that it?
[17:40:58] <Colourless> at one stage we seriously thought we wouldn't be able to figure much of the si intrinsics
[17:41:01] <wjp> yeah, basically
[17:41:20] <artaxerxes> what happened then ?
[17:41:42] <wjp> there's some other subtle things too. (no architecture I know has registers that are 'local' to a function)
[17:41:55] <Colourless> i noticed that the si intrinsics weren't all that different to bg, there just seemed to be more of them with some renumbering
[17:42:45] <artaxerxes> how many intrinsic functions did you have to guess?
[17:42:47] <Colourless> trick was to just stare at functions of things that were in both games, such as opening shutters and turning on lights
[17:42:51] <artaxerxes> by the 100s ?
[17:43:15] <Colourless> i think there is a tad over 100 used
[17:43:46] <artaxerxes> that's fascinating... I have much more respect for the game now that I know what really happen behind.
[17:44:28] <artaxerxes> all the usecode call is governed by d-click ?
[17:44:40] <artaxerxes> governed or started
[17:44:44] <Colourless> nope, there are lots of different criteria
[17:44:56] <Colourless> enum Usecode_events {
[17:44:56] <Colourless> npc_proximity = 0,
[17:44:56] <Colourless> double_click = 1,
[17:44:56] <Colourless> internal_exec = 2, // Internal call via intr. 1 or 2.
[17:44:56] <Colourless> egg_proximity = 3,
[17:44:57] <artaxerxes> besides the opcode call
[17:44:57] <Colourless> weapon = 4, // From weapons.dat.
[17:44:59] <Colourless> readied = 5, // Wear an item.
[17:45:01] <Colourless> unreadied = 6, // Removed an item.
[17:45:03] <Colourless> died = 7, // In SI only, I think.
[17:45:05] <Colourless> chat = 9 // When a NPC wants to talk to you in SI
[17:45:07] <Colourless> };
[17:45:32] <Colourless> there is an opcode that is used to check which it was that called a function
[17:46:00] <artaxerxes> push eventid
[17:46:04] <wjp> yes, that one
[17:46:05] <Colourless> yeah
[17:46:58] <artaxerxes> those usecode_events are thus governed by d-click and eggs ...
[17:47:15] <artaxerxes> ah non
[17:47:17] <artaxerxes> I see
[17:47:20] <artaxerxes> I missed it
[17:48:00] <artaxerxes> I really learned a lot today... thx you both
[17:49:29] * artaxerxes is gone for a while so that he could get some food....
[17:50:15] <artaxerxes> bye
[17:50:18] <wjp> bye
[17:50:19] <Colourless> cya
[17:50:22] <-- artaxerxes has left IRC ("using sirc version 2.211+KSIRC/1.1")
[18:39:50] --> Kharza-kzad has joined #exult
[19:39:10] <Colourless> time to go
[19:39:12] <-- Colourless has left IRC ("cya")
[21:39:15] <-- wjp has left IRC ("[x]chat")
[22:53:33] <-- matto has left IRC ("Play Dragon's Lair in linux - http://www.daphne-emu.com - Developers welcome :)")
[22:55:37] --> Fingolfin has joined #exult
[23:15:31] * laxdragon is away: ZZZZzzzzzzzz