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

Archive Today Yesterday Tomorrow
Exult homepage

[00:13:00] --> Wumpus has joined #exult
[00:15:25] <Wumpus> hmm
[01:28:39] <-- matto has left IRC ("restarting X")
[02:01:52] * Wumpus feeds the patch machine and the bug machine
[02:04:23] <-- Wumpus has left IRC ("offline")
[02:08:16] --> matto has joined #exult
[06:50:18] --> V0|D has joined #exult
[08:41:51] <-- V0|D has left IRC (capek.openprojects.net irc.openprojects.net)
[09:07:39] --> Wumpus has joined #exult
[09:35:55] --> Darke has joined #exult
[09:35:55] --- ChanServ gives channel operator status to Darke
[09:36:13] * Darke greetingsbows. "Hello all, and bots."
[09:39:27] <Wumpus> `lo darke
[10:08:16] <-- Wumpus has left IRC ("Hey! Where'd my controlling terminal go?")
[10:08:48] --> Wumpus has joined #exult
[10:08:53] * Wumpus kills X
[10:10:38] <Darke> You gain 1xp.
[10:11:05] <Wumpus> the most recent crash bug is a corrupted save by the smell of it
[10:11:45] * Darke earperks.
[10:12:09] <Wumpus> (from aille or something like that)
[10:32:08] <Darke> Hmm... are you having intermittent problems accessing exult.sf.net? I've been having problems all day.
[10:41:05] <Wumpus> I rarely go there :P
[10:41:57] <Darke> <grin> You're not a forum lurker then?
[10:43:16] <Wumpus> not usually... it just irritates me ;-p
[10:44:50] * Wumpus considers hacking on endgame
[10:45:24] <Darke> (forum) Too much rubbish, and not enough actual usefulr information?
[10:45:27] <Darke> endgame?
[10:45:46] <Wumpus> darke- getting the SI endgame to work without sound
[10:46:00] <Wumpus> fairly straigthforward to do, i think
[10:46:49] * Darke nods, one would think it would be.
[10:48:33] <Wumpus> i mean it works, it just doesn't display the text etc ;-p
[10:50:10] <Wumpus> (gdb) signal 6
[10:50:11] <Wumpus> Continuing with signal SIGABRT.
[10:50:11] <Wumpus> Program exited normally.
[10:50:19] <Wumpus> hehe, hmm,, dunno about "normally." :P
[10:50:42] * Darke grins. He likes that particular... 'error'.
[10:51:12] <Wumpus> argh
[10:51:19] <Wumpus> isn't SIGABRT supposed to dump core?
[10:51:54] <Wumpus> sigh
[10:51:56] <Darke> Not if the code traps the signal, in which case it can exit cleanly, IIRC.
[10:52:03] <Wumpus> i'll have tod othis in a more sensible way
[10:52:11] <Wumpus> hmm
[10:52:17] <Wumpus> i suppose SDL might be doing silly things
[10:53:13] <Darke> <nod> It's possible, but didn't you turn off the parachute?
[10:53:23] <Wumpus> not for this build :|
[10:53:45] <Wumpus> actually, now i have enough space to keep two trees, one for debug and one for packaging, hmm
[11:15:51] <Wumpus> hmm number of open bugs is growing ;-p
[11:16:38] <Darke> A good thing. <grin>
[11:16:47] <Wumpus> bah :P
[11:25:11] * Darke grins and doesn't _how_ Wumpus would survive if he worked at Microsoft.
[12:30:17] --> wjp has joined #exult
[12:30:18] --- ChanServ gives channel operator status to wjp
[12:30:20] <wjp> hi
[12:30:38] * Darke bows. "Hello!"
[12:33:51] * wjp reads some of Wumpus' essays (aka. bug reports)
[12:34:32] <Wumpus> lol
[12:34:34] * Darke wonders if anyone wants to boggle at a few lines from a Buzzword complaint (and technically impossible) job ad.
[12:34:38] * Wumpus tends to ramble a bit
[12:34:55] * Darke goes to read some of Wumpus' essays.
[12:37:53] <Wumpus> well at least its better than "it doesn't work" :P
[12:38:23] <Wumpus> hehe buzzword compliant can be fun.... where darke? :P
[12:38:25] <wjp> Wumpus: we already check that we don't put something inside itself
[12:38:46] <Wumpus> wjp- ya, sure, but the object still gets popepd off the stack
[12:38:55] <Wumpus> (off the recently created objects stack)
[12:38:56] <wjp> yeah
[12:39:21] <Wumpus> which is probably correct, but its one way in which the dubious usecode could be circumvented... of course it probably breaks other things :P (although it shouldn't)
[12:39:51] <Darke> Wumpus: Well first there's this: "Extensive experience conducting Performance Testing with MS DNA or .NET Middleware applications;" I don't know how anyone other then a Microsoft defector could get 'extensive experience' (which to me, means a couple of years) in the .NET framework.
[12:40:09] <Wumpus> the most obvious solution to that one would be to provide a usecode patch :P
[12:40:11] <wjp> hmm, how old is .NET again? :-)
[12:40:25] <Wumpus> darke- :)
[12:40:32] <Darke> wjp: I don't think more then about a year in 'public'.
[12:41:55] <Darke> Then there's this: "Strong experience in one or more of the following Microsoft Development tools including, VB, ASP, SQL, IIS, BizTalk, MTS, Win2K, XP and many more;" Since when is Win2k and XP MS 'Developement' tools.
[12:42:08] <Darke> And for that matter IIS.
[12:42:40] <Wumpus> wjp- although, the other thing about that was the fact that the stack for ecently created objects does seem to grow over time; this presumably shouldn't happend
[12:43:18] <Wumpus> most of those aren't development tools, as i see it
[12:44:11] <Darke> MTS is IIRC, it's a 'unix like' 'development environment' for under windows. But I'm pretty sure it's not made, nor affiliated with Microsoft.
[12:44:27] <Wumpus> MTS is Microsoft Transaction Server isn't it?
[12:44:59] * Wumpus thinks he has had that foisted upon him once upon a time
[12:45:30] <Darke> More then likely. I don't know enough about MS stuff, and it's far too overloaded an acronym for me to guess. <grin>
[12:48:04] <Darke> http://directory.google.com/Top/Computers/Software/Operating_Systems/Unix/Win32/ <blink> That directory structure, just seems so _wrong_ to me. Although it does imply that Win32 is a subset of unix...
[12:48:25] <Wumpus> !
[12:49:03] <wjp> Ack... another bug report with a corrupted save
[12:49:19] * Darke picks up the lonely exclamation mark and tosses it into his 'not box' for safekeeping.
[12:49:24] <Wumpus> yeah :(
[12:49:47] <Wumpus> if its a !box, what is it? :P
[12:50:18] <Darke> 'not a box' != 'not box'
[12:51:08] * Darke has a strange urge to replace the 's with "s, and to put a set of braces around the entire expression.
[12:51:31] <Wumpus> yes, and you said its a not box, not not a box...
[12:51:36] <wjp> I suggest you replace the != with a strcmp call then, too
[12:51:46] <Wumpus> -ne :)
[12:52:03] <Darke> wjp: There isn't a strcmp() call in usecode-script.
[12:52:33] <wjp> bah... there is in U8's
[12:53:39] <Darke> <snicker> u7's usecode looks like it was based on a BASIC-like, and u8's on something Cish.
[12:53:53] <wjp> yeah
[12:54:16] <Darke> Incidentally, was there any non-english translations of u8?
[12:54:23] <wjp> yes
[12:54:35] <wjp> at least, there's some french and german sentences in the english usecode
[12:55:32] * Darke thinks it might be a good idea to grab copies of the non-english versions, just to check they didn't accidently leave some more debugging stuff in there. <grin>
[12:56:04] <wjp> hehe :-)
[12:57:45] <wjp> Wumpus: how reproducable is that 'ice blocks' crash?
[12:57:55] <wjp> I tried 3x, and it didn't crash so far
[12:57:58] <Wumpus> wjp- i was getting it more than half the time
[12:57:58] <Wumpus> hmm
[12:58:07] <Wumpus> it may again be speed related, d'oh
[12:58:21] <wjp> in what order did you destroy the blocks?
[12:58:25] <Wumpus> (ie the "second" attack coming too close to the first or some such crap)
[12:58:43] <Wumpus> i don't think any order was more or less susceptible than others
[12:58:49] * Wumpus heads back to X to try some more
[12:59:37] <wjp> oh.. now I got an assertion failed
[13:00:05] <wjp> seems to be very timing-dependant
[13:00:17] <Wumpus> assertion failed? hmm
[13:00:24] <wjp> you have to double click immediately after attacking the first
[13:00:26] * Wumpus just got a straight out segfault
[13:00:51] <wjp> (btw, we clear a 'to-be-deleted items' list when you double click)
[13:01:33] <wjp> Error opening file /data/u7si/static/intropal.dat
[13:01:33] <wjp> ?!
[13:01:43] <Wumpus> hmm?
[13:02:03] <Darke> That's certainly... different.
[13:02:04] <wjp> (that's a BG file, IIRC)
[13:02:29] * Wumpus wonders where you conjured that from
[13:02:56] <Wumpus> oh, of course, it was wandering off into weird and wonderful territory for me too, so presumably its wandering off to different weird and wonderful territory for you :) hehe
[13:03:32] * wjp hopes it will wander into some debuggable weird and wonderful territory for someone
[13:04:20] <wjp> segfault in Shape::get...
[13:04:53] <wjp> called from BG_Game::show_credits?!?!
[13:04:59] <Wumpus> hehe :)
[13:05:09] <wjp> what the...
[13:05:10] <Wumpus> interesting that you wind up in bggame too :)
[13:05:36] * Darke thinks something is just a tad confused.
[13:05:47] * wjp thinks something stepped on some memory it shouldn't have stepped on
[13:05:53] <Wumpus> :P
[13:06:11] <Wumpus> its just interesitng that the item its trying to find_outer of is valid enough to "work" at all :P
[13:06:24] <Wumpus> (of course, maybe it shouldn't be doing find_outer at alll, hehe)
[13:06:34] <wjp> no find_outermost here
[13:06:51] <Wumpus> oh? hmm d'oh
[13:07:13] <wjp> Time_queue::activate0 ... Text_effect::handle_event ... Figure_text_pos ... Gump_manager::find_gump ... BG_Game::show_credits
[13:07:59] <wjp> Game_object *owner = obj->get_owner(); <-- that line called show_credits() according to gdb
[13:09:03] <wjp> with obj a terribly invalid pointer
[13:09:09] <Wumpus> indeed
[13:10:15] <wjp> is your get_outermost called from Figure_text_pos?
[13:10:32] <Wumpus> I think so, *checks*
[13:10:41] * Wumpus grumbles at optimisations
[13:11:03] <wjp> looks like it's trying to handle a text event of a destroyed object?
[13:11:05] <Wumpus> yep
[13:11:36] <Wumpus> hmm, yeah, i guess, but what... the second ice block does get its "ice block" label displayed...
[13:13:02] <wjp> yes... but I think that label has to be displayed several times
[13:13:44] <Wumpus> oh? hmm
[13:13:49] <wjp> in particular, if an object moves, its texts will move along with it
[13:14:19] <Wumpus> hmmm true
[13:23:41] * Darke ponders how difficult it would be to convert u7-usecode to u8-usecode.
[13:24:11] <Wumpus> with the right decompiler..... ;-p
[13:24:16] <wjp> the compiled version?
[13:25:05] <wjp> hmm, should be doable
[13:25:24] <wjp> the other way would be a lot harder, if not impossible
[13:25:59] <Darke> Yes. The compiled version or u7-usecode to the 'compiled' version of u8-usecode, and thus the 'decompiled' version of u8-usecode. I can 'kind-of' generate a trace through at the moment, that will tell me which variables have been assigned which 'types' of values. We'd need to add new opcodes and 'intrinsics'...
[13:26:55] <wjp> ..which reminds me... I should check out the intrinsic call mechanism of U8
[13:27:21] <Darke> <grin> From the looks of it u8 to u7 would be 'easy'. Just drop all the typing information, and translate the opcodes. The only problem would be 'widening' the size of the jump offsets from 16bits to 24bits IIRC.
[13:28:18] <wjp> I have a bad feeling about some of the unknown opcodes in U8
[13:28:44] * Darke thinks that's the other 'hitch'.
[13:28:49] <wjp> the reason that we haven't figured them out yet may be very well because they do some fundamentally different from known U7 things
[13:31:15] <Darke> Like the u7 SMTH opcode, we know kind of how to replicate it, just not exactly what it originally 'did'.
[13:31:30] <wjp> oh right.. that one :-)
[13:31:33] <Wumpus> the Smith opcode? :P
[13:31:44] <wjp> kind of hard to decipher an opcode that's only used once :-)
[13:32:13] <Darke> Does something related to conversations. Only occurs (2x) in the usecode
[13:32:13] <Darke> function handling the 'audition' in Britain. Current implementation
[13:32:13] <Darke> produces same result as original, although we're unsure of the exact
[13:32:13] <Darke> function of this opcode.
[13:32:22] <wjp> nah, SoMeTHing
[13:32:25] <Darke> That one. <grin> 0x31.
[13:33:59] <wjp> great fun to try to figure out what that one did...
[13:34:10] <wjp> I must've done that audition a few dozen times in the original
[13:37:37] * Darke only ever remembers doing it once in the original, despite the almost a solid year and a half he spent playing it as the 'only' game he played.
[13:39:38] <wjp> U8 intrinsics: I'm almost 100% sure that the first byte after the intrinsic opcode (0F) is the argument size in bytes... however, this would mean the stack has to have a very specific format
[13:40:28] <Darke> <earperk> How do you mean?
[13:40:44] * Wumpus is disinclined to think that U8 itself is worth all this effort ;-p did the engine have any really nice features that are of interest?
[13:40:44] --> Colourless has joined #Exult
[13:40:44] --- ChanServ gives channel operator status to Colourless
[13:40:53] <wjp> well, if it takes a number of bytes from the stack, the stack has to be implemented on a byte level, not a 'usecode value' level
[13:40:57] <Darke> Hi Colourless.
[13:40:57] <wjp> hi
[13:41:06] <Colourless> hi
[13:41:12] * Wumpus waves
[13:42:11] <Colourless> a stack that works at the byte level would be nasty for some non x86 systems
[13:42:28] <Darke> wjp: That would make sense. Given that the variable 'offsets' are all represented by 'two-bytes' rather then a 16 bit value. It also explains why it needs to 'prepare' the string variables before using them.
[13:43:27] <Darke> Colourless: Not really, your 'emulated' stack just needs to make sure it keeps itself in little endian format, rather then native.
[13:43:53] * wjp nods
[13:44:06] <Colourless> it's still 'nasty'
[13:45:18] <wjp> yeah
[13:45:21] <Darke> <grin> It depends, there's nothing to say our 'emulated' stack has to even work like the original. The u7 one certainly doesn't.
[13:46:01] <wjp> it seems like they went to quite some trouble to reduce intrinsic call overhead
[13:46:49] <wjp> also, they seem to avoid returning 'complex' values from intrinsics
[13:47:08] <wjp> (from the way loops seem to work, for instance)
[13:47:40] <Colourless> probably wanted to make a more general engine
[13:47:48] * Darke nods, it makes perfect sense.
[13:48:09] <Darke> Wasn't it used for a non-u8 game?
[13:48:09] <Colourless> the engine was also used in crusader, which isn't like u8 very much really
[13:48:33] <Wumpus> ooh, what was crusader?
[13:48:55] <wjp> Jason Ely on rgcud said it was really heavily modified from u8, though
[13:48:59] <Colourless> Crusader: No Remorse and Crusader: No Regert. I haven't played it, but is was an action game
[13:49:08] * Darke really wanted a copy of that game when it came it, he just didn't have a computer 'good enough' to play it then.
[13:49:10] <Colourless> set in the future
[13:49:11] <wjp> s/Regert/Regret/
[13:49:16] <Colourless> yeah
[13:49:28] * wjp never played them
[13:49:39] <Wumpus> hmm, sounds very vaguely familiar
[13:49:46] <Colourless> the graphics engine was rewritten for sure
[13:50:00] <wjp> the whole way maps and objects were handled too, IIRC
[13:50:02] <Colourless> SVGA/VESA vs VGA/MCGA
[13:50:40] <wjp> I seem to remember it did have usecode
[13:50:47] <Colourless> i doubt the usecode interpreter would have been changed significantly, but the contents of the usecode it self would have been different
[13:51:33] <wjp> obviously.. otherwise it would've been U8 in a different world ;-)
[13:51:42] <Colourless> yes :-)
[13:51:52] <Wumpus> hehe
[13:51:52] * Darke nods, altering interpreters tends to produce lots of unintended consequences.
[13:53:27] <Colourless> warning, if pentagram gets crated, people may want you to add Crusader support... Remember, Jeff and myself both said that Exult would not support Serpent Isle ;-)
[13:53:45] <wjp> :-)
[13:56:11] <Wumpus> at this rate, you'll be developing a u10 emulator at the same time its released :P
[13:57:38] <Wumpus> damn, a very useless evening for me
[13:57:39] <Wumpus> oh well
[13:57:45] <Wumpus> sleep now, g'night
[13:57:48] <wjp> night
[13:57:48] <Colourless> cya
[13:57:50] <-- Wumpus has left IRC ("zzz")
[14:06:57] <wjp> hmm... the full disassembly of u8's usecode somehow reached 620Mb... and it's still growing
[14:07:05] * wjp thinks something might be wrong ;-)
[14:07:20] * Darke has a suspicion there's a bug in there somewhere. <grin>
[14:07:23] <Colourless> you think :-)
[14:08:10] <wjp> oh... it's trying to interpret the flag names as usecode
[14:11:14] <wjp> ok... better now. 80Mb
[14:11:31] <wjp> still kind of huge
[14:11:53] <Darke> What's the size of the original usecode file?
[14:12:15] <wjp> oops... I guess I should've removed usecode.dis before appending all the usecode functions to it
[14:12:34] <wjp> 5Mb now :-)
[14:12:43] <wjp> usecode file is 1.2Mb
[14:12:45] <Darke> <grin> That sounds a bit better.
[14:13:59] <wjp> 240K lines
[14:15:19] <wjp> hey... the function names are in the .flx too
[14:15:26] * wjp wonders why he didn't notice that before
[14:15:50] <Darke> For usecode.bg (1.5Meg) I get 200k lines under -fa (4Meg), and 86k lines under -fz (3Meg).
[14:18:08] <Darke> The usecode.bg.es ones are a bit smaller, but it's lacking in FoV, so that's expected.
[15:35:12] * Darke occasionally wonders if his descriptions in the ChangeLog and cvs log actually make sense somedays/nights.
[15:35:35] <Colourless> changelog doesn't exist to make sense
[15:36:39] * Darke doesn't exist to make sense either. <grin>
[15:40:20] * wjp fixes another couple of merge conflicts in opcodes.txt
[15:41:30] * Darke earperks and wonders what changes you've made.
[15:41:46] <wjp> oh, just some minor changes to make it more ucc compatible
[15:42:22] <wjp> like adding UI_ before intrinsic calls, renaming event/flags/itemref
[15:42:55] <Darke> Feel free to commit it then, since I'm actually trying to be ucc compatible. <grin>
[15:43:01] <wjp> although in some of these cases I think ucc should be made more ucxt compatible ;-)
[15:43:37] * Darke snickers, you should be free to do that too.
[15:45:11] * Colourless thinks do what is easie
[15:45:12] * wjp wonders what will need to be added to ucc to make it entirely ucxt-compatible
[15:45:13] <Colourless> st
[15:45:18] <wjp> goto
[15:45:23] <wjp> arrays?
[15:45:39] <wjp> labels...
[15:47:00] <wjp> Colourless: not really a question of how easy it is. It's just that ucxt and ucc use different names for the same things. (gflags/UcFlags, event/UcEvent, etc...)
[15:47:05] <Darke> goto, labels, some form of 'next' statement...
[15:48:01] <Darke> (That is, something to support opcode 0x02.)
[15:48:06] <wjp> yeah
[15:48:33] <wjp> 0x2E, actually
[15:48:37] <wjp> 0x02 is just a part of that
[15:49:28] <Darke> Currently, if I get the 'if' statements working, I should be able to get most of the smaller/simpler functions to compile with ucc, if I have the right variable names and such.
[15:50:10] <Darke> Which is why I've been slowly cleaning up the output of various opcodes.
[15:52:48] * Darke also points out his next commit is going to change opcodes.txt again, adding yet another 4 flags to handle the various changes in indentation level for the 'fake' opcodes he's adding.
[15:53:10] <wjp> fake opcodes?
[15:54:11] <Darke> To simplify handling of output for the various things like labels, 'if' statements, and the currently ugly looking jne opcode.
[15:55:00] <wjp> you're going to replace 'jne's with a special 'if'/'while' opcode, or something?
[15:55:05] <Darke> There are other reasons too, but I'm currently not using them for that.
[15:56:09] <Darke> Yes, I'm intending upon replacing the 'jne' opcode with an 'if' opcode, an 'open block' ("{") opcode, then have all the opcodes inside it, then a 'close block' ("}") opcode.
[15:57:13] <Darke> The 'while' opcodes and such will come later, when I've got the 'simple' if statement working correctly. <grin>
[15:57:28] <wjp> :-)
[15:58:29] <Darke> Currently though, I'm trying to replace, the currently hardcoded 'label' statements with my fake 'label' opcodes, and seeing how that works, thus the need for the indentation changing flags. <grin>
[16:03:36] <Darke> And somewhere within all that, I'm going to have to rewrite/modify conf/ to do the things I need it to do, so I can use a more sane file format.
[16:29:41] <wjp> hey, we're in the top20 most active projects on SF again
[16:29:51] <wjp> (at 17)
[16:30:49] * Darke really does wonder how that's calculated sometimes...
[17:07:03] <Colourless> maybe everyone else just isn't doing anything
[17:12:15] <Darke> Makes sense. Of course since most people have lives, they're not likely to be doing much coding over the christmas break... <grin>
[17:26:19] * Darke must sleep now. "Night all."
[17:26:23] <Colourless> cya
[17:26:24] <wjp> night
[17:26:30] <-- Darke has left IRC ()
[19:17:52] <wjp> ok... I just filled in the length of the last U8 opcode
[19:20:27] <wjp> about 37 unknowns
[19:20:40] <Colourless> thats..... quite a few
[19:20:57] <wjp> a lot are arithmetic operators
[19:20:57] <Colourless> at least you'll be able to parse it though
[19:21:15] <wjp> at least 2 varieties of each one (16bit and 32bit)
[19:21:29] <wjp> I can probably guess some based on location
[19:21:53] <wjp> (looks like if opcode x does something for 16bit, then x+1 does the same for 32bit)
[19:22:56] <wjp> ...but I'll need to look into the actual function of the code to find the exact opcodes for sub/mul/div/mod etc..
[20:01:57] <-- matto has left IRC (Remote closed the connection)
[20:03:17] --> matto has joined #exult
[22:03:29] <-- Colourless has left IRC ("this individual has left")
[22:19:24] --> iDi-SSL has joined #exult
[22:19:50] <iDi-SSL> ?seen Colourless
[22:19:50] <exultbot> colourless left IRC around Sun Dec 30 22:03:29 2001 (GMT) ("this individual has left")
[22:20:01] <iDi-SSL> hm
[22:20:10] <-- iDi-SSL has left IRC (Client Quit)
[23:44:31] <-- wjp has left IRC ("Sleep")