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

Archive Today Yesterday Tomorrow
Exult homepage


[02:53:19] --> Darke has joined #exult
[02:53:19] --- ChanServ gives channel operator status to Darke
[03:14:10] --> Wumpus has joined #exult
[03:14:14] <Wumpus> ahha, darke!
[03:14:24] * Darke greetingsbows. "Hello."
[03:14:28] <Wumpus> `lo lo
[03:14:30] * Wumpus found it :)
[03:15:01] <Wumpus> (usecode 0x3de btw :P is erinon's axe; it turns out it stores information in its quality...)
[03:15:36] <Wumpus> also, it seems to me that set_npc_prop is misnamed... it *adjusts* the npc property, right, not sets it? (where is the code for that stuff btw? I found it for is_npc, but not for set_npc_prop...)
[03:16:20] <Darke> IIRC it'd be in one of the files in the usecode/ directory. <grin> Not that, that's much help.
[03:16:35] <Wumpus> well, its not there under an obvious name :(
[03:16:59] <Wumpus> USECODE_INTRINSIC_PTR(set_npc_prop), // 0x29
[03:17:09] <Wumpus> there's that, and thats about it :|
[03:18:23] <Wumpus> in any case, the problem is caused by some signed seediness, but probably its actually *caused* by my combat being higher than it should be, and the signed seediness is probably "correct behaviour"
[03:18:50] <Darke> intrinsics.cc:433 possibly may be what you're looking for.
[03:19:05] * Darke nods. That makes sense.
[03:19:53] <Wumpus> *blink*
[03:19:54] <Wumpus> it is too
[03:20:02] * Wumpus wonders why he didn't spot that when grepping
[03:20:11] <Wumpus> (443 actually :P)
[03:20:40] <Wumpus> oh, i see, the value of the third parameter tells whether its a \delta or an absolute change... that makes sense
[03:20:51] <Wumpus> thanks :)
[03:21:02] * Darke bows. No problem. <grin>
[03:22:12] <Wumpus> ooooh dammit
[03:22:20] <Wumpus> my account is being moved today, can't get at email etc :(
[03:22:33] * Wumpus stops poking it
[03:22:44] <Darke> Ick.
[03:26:15] <Wumpus> which of the output modes of ucxt are 'working' btw? I was using the assembly output, since its the one i was most sure was up-to-date
[03:27:17] <Darke> -fa, -fl, -fz. Although -fz has a 'bug' with jump targets, it isn't handling cmps like it should. But otherwise it currently works 'perfectly'.
[03:27:52] <Darke> That is, if you've got the latest CVS version anyway.
[03:28:02] <Wumpus> how late is latest? :)
[03:28:39] <Darke> Umm... "I committed just before I left irc last night" latest? <grin>
[03:28:47] <Wumpus> oh :)
[03:29:07] <Wumpus> dammit, i need a new computer
[03:29:16] <Wumpus> (xmms is choking while ucxt runs)
[03:30:19] <Wumpus> 'cos -fz looks wrong to me, for the axe at least
[03:30:39] <Wumpus> (as of a day or two ago, anyway *tries*)
[03:31:27] * Darke nods, a day or two ago is a bit b0rk3n.
[03:31:34] <Wumpus> hehe okie
[03:31:50] * Wumpus waits not very patiently
[03:32:03] <Wumpus> the map editor is quite useful already :)
[03:33:18] <Darke> Exult Studios? Cool. I haven't looked at it in... a while. <grin>
[03:33:45] <Wumpus> incidentally, the problem was roughly this: when you equip E's Axe, it adds 10 to your combat value, put limits it to a maximum of 30. It then stores the amount of change it actually made in the axe's quality, so that when you un-equip it, it can restore the combat to whati t should be. This breaks, however, when I start at 32, add 10 = 42, set to max 30, so the change was -2; it stores -2 as the axe's quality (so far so good). This is all go
[03:33:51] <Wumpus> the qualities as unsigned chars
[03:34:09] <Wumpus> so it gets set to 254 :) and when you unequip it, you get slugged down to 30-254 = -224 combat
[03:34:24] <Wumpus> yeah, exult studio :)
[03:34:47] <Wumpus> although i don't quite see why the "set limit to 30' bit wasn't working earlier in beta1... hmm
[03:38:31] <Wumpus> which would indicate that the bug arose on the 19th, and that i just didn't unequip the Axe before that save where it suddenly showed up for no obvious reason
[03:47:02] <Darke> (axe) <blink> Ow.
[03:49:42] --- Darke is now known as Darke|afk
[03:49:46] <Wumpus> pushi 30; push v1; sub; pop v1; <-- does this do v1 = v1 - 30 or v1 = 30 - v1?
[03:51:00] <Darke|afk> v1 = v1 - 30
[03:51:10] <Wumpus> hmm yeah, thats how i read the docos too, strange
[03:51:45] <Wumpus> because here it seems to be doing just the opposite
[03:53:45] <Wumpus> hmmm hmmm hmmm
[03:58:51] <Wumpus> where would i find code for things like 'sub' ? (i'm *really* thinking its the other way arond here, want to verify)
[04:06:00] <Wumpus> oh, you're afk, *catches up on recent history :P*
[04:06:10] <Wumpus> (pushi(0005) == UcEvent)
[04:06:10] <Wumpus> if(!(pushi(0006) || (pushi(0006) == UcEvent))) goto labelFunc_0048;
[04:06:13] <Wumpus> oops
[04:06:19] <Wumpus> sorry :) mis-button-press
[04:06:28] <Wumpus> (thumb button is handy sometimes, sometimes not :P
[04:10:21] * Wumpus suls and reads again, carefully
[04:10:51] <Wumpus> ha!
[04:10:54] <Wumpus> you're wrong
[04:10:57] <Wumpus> case 0x0a: // SUB.
[04:10:58] <Wumpus> sval = popi();
[04:10:58] <Wumpus> pushi(popi() - sval);
[04:10:58] <Wumpus> break;
[04:12:57] * Wumpus considers to put this in the bugtracker just so wjp can have the fun of assigning a bug to darke :)
[04:16:34] <Wumpus> this is really strange... i can find no obviously relevant code that changed...
[04:19:17] <Wumpus> doesn't seem to be in ucinternal.cc, (the change, that is)... very odd...
[04:20:41] --- Darke|afk is now known as Darke
[04:23:35] <Darke> push v1; push v2; pop v2; pop v1; sub (v1 - v2)... weird. In which case I was right the first time. <sigh>
[04:25:09] <Wumpus> 'the first time' ?
[04:25:28] <Wumpus> (apparently its the same as the way PS and Forth do it, for what its worth :P)
[04:26:45] <Wumpus> I completely, totally, fail to see why this problem only just showed up though, weird weird weird... ie, why my combat wasn't being limited before
[04:26:49] <Wumpus> oh well :)
[04:26:59] <Darke> Umm... the code originally had all the math/comparison operators treat it's operators the other way around. The latest rewrite when I looked over exult's code to create opcodes.txt I switched the order of them, because their original way it looked wrong.
[04:27:17] <Darke> <nod> It's certainly weird.
[04:27:39] <Darke> At least it isn't too difficult to fix ucxt, just swap the parameter order in opcodes.txt. <grin>
[04:27:48] <Wumpus> :)
[04:28:48] <Wumpus> d'oooh
[04:28:50] <Wumpus> crap
[04:29:03] * Darke earperks.
[04:29:44] <Wumpus> the box where my homedir is being stored is being reformated
[04:29:52] <Wumpus> going to be a little while until i get email and stuff again
[04:29:58] <Darke> Ick.
[04:30:12] <Wumpus> (of course we *were* warned :P just forgot )
[04:30:41] <Darke> "in(%p1, %p2)" See I did have it around the right way... just not for everything. <grin>
[04:30:58] <Wumpus> :)
[04:32:39] <Darke> "(%p1 == %p2)" And here as well...
[04:33:34] * Darke considers that it appears that the only ones the 'wrong way around' were the ones that it actually mattered too...
[04:35:45] * Wumpus was going from the docs you wrote
[04:36:53] <Darke> <grin> That's the main problem with being both a documentor an implementor, you can't see your own documentation bugs.
[04:38:02] <Wumpus> bah, the source is the only documentation a Real Man needs :)
[04:40:12] <Wumpus> hehe
[04:40:29] <Wumpus> the exult debian maintainer and i seem to be working at cross-purposes
[04:40:49] <Wumpus> (there's an exult-studio package in the system)
[04:42:18] * Darke considers he's not a Real Man, he's a Real Bunny, so therefore those rules don't apply to him. <grin>
[04:42:39] <Wumpus> :)
[04:42:47] * Wumpus fetches his own old packages, hehe :)
[04:43:21] <Darke> Besides wasn't this Real Man having problems finding a certain function (say... 'set_npc_prop') in his 'documentation'? <innocentwiggle>
[04:43:38] <Wumpus> its not in the documentation, hmm? :P
[04:43:44] <Wumpus> oh
[04:43:48] <Wumpus> hehe
[04:43:48] <Wumpus> well yeah :)
[04:44:04] * Darke snickers and attempts to look innocent.
[04:44:20] * Wumpus puts up wanted posters
[04:44:44] <Wumpus> "dead or alive, preferably roasted until tender" :)
[04:45:19] * Darke giggles.
[04:46:06] * Darke would prefer himself to be rare... or at least scarce.
[04:52:21] <Wumpus> hmmmmm
[04:54:31] <Wumpus> hmm
[04:54:44] <Wumpus> looks like it has absolutely nothing to do with the new version of exult, after all
[04:56:14] * Darke earperks.
[04:57:04] <Wumpus> from the results i'm getting right now, its a glitch with the training in monitor, and i didn't unequip the Erinon's Axe from training until shortly after the Wall of Lights
[04:57:11] <Wumpus> hmm
[04:57:43] <Darke> Umm... cool.
[04:57:50] <Wumpus> but I know i used the magebane to kill vasculio... argh
[04:57:55] <Wumpus> this is fuxored and weird
[05:03:05] <-- Darke has left IRC ("<pawwave>")
[05:03:39] --> Darke has joined #exult
[05:03:39] --- ChanServ gives channel operator status to Darke
[05:15:34] <-- Wumpus has left IRC ("Off for a bit")
[07:40:31] --> Kirben has joined #exult
[07:40:31] --- ChanServ gives channel operator status to Kirben
[07:41:11] * Darke greetingsbows.
[07:42:08] <Kirben> Hi
[08:00:15] --> Wumpus has joined #exult
[08:01:16] <Darke> Hello again. <bow>
[08:01:56] <Wumpus> rehi :)
[08:18:18] <-- Darke has left IRC (Remote closed the connection)
[08:22:11] --> Darke has joined #exult
[08:22:11] --- ChanServ gives channel operator status to Darke
[08:22:43] * Wumpus notes that all the pikeman speech is in a single usecode
[08:24:35] <Wumpus> bah, it doesn't have the training code though
[08:24:40] <Wumpus> nor is it with the trainers, hmm
[08:41:53] * Wumpus finds it, 0x936
[08:49:20] <Wumpus> hmm
[08:49:30] <Wumpus> set_npc_prop of item -71
[08:53:09] <Wumpus> specifically, set_npc_prop( -71, strength, 18 ); set_npr_prop( -71, combat, 9 ); set_npc_prop( -71, dexterity, 8 ).... weird
[08:53:10] * Wumpus sighs
[08:54:00] <Darke> Setting it so you can't damage your training partner?
[08:54:12] <Wumpus> no, because you do
[08:54:27] <Wumpus> i think it uses the tournament stuff there, to avoid people actually *dying*
[08:54:47] * Wumpus thinks this is supposed to be where your stats are adjusted, i just don't see how the above relates to that
[09:00:22] <Wumpus> hmmmmm core dump ucxt
[09:01:52] <Wumpus> (probably its finding the wrong opcodes.txt, d'oh)
[09:16:53] <Darke> <earperk> Possibly. It should, however, actually be failing by assertion in that case.
[09:20:27] <Wumpus> hrmphm
[09:20:37] <Wumpus> this is really an unnecessarily long winded error message
[09:21:08] <Wumpus> 2 or so pages of error telling me that it doesn't know how to display Usecode_value s or somesuch using cout
[09:22:26] <Darke> <blink!>
[09:22:27] <Wumpus> darke- hmm, well, its aborting, rather, not segfaulting
[09:22:31] <Wumpus> but no indication of *why* its aborting
[09:23:26] <Darke> Try and do a 'make clean; make' in the usecode/ucxt/ directory. It kind of sounds like something hasn't been re-compiled properly.
[09:24:01] <Wumpus> will do later :)
[09:24:27] * Wumpus looks amusedly at the stack trace... i havent' seen enough C++ stack traces to know exactly what this means though
[09:26:43] <Wumpus> oops hehe
[09:26:52] <Wumpus> almost had two compiles working at cross purposes :)
[09:27:09] * Darke snickers.
[09:33:23] * Wumpus scowls
[09:33:36] <Wumpus> this is taking for damn ever (opcodes.o in one window and intrinsics.o in another)
[09:34:57] <Darke> Umm... if opcodes.o doesn't cause your machine to page... I'd be rather impressed. <grin> It's apparently a memory hog.
[09:35:14] <Wumpus> 2863 michaelz 12 0 23156 19M 5184 R 35.6 19.5 4:17 cc1plus
[09:35:15] <Wumpus> oops
[09:35:16] <Wumpus> wrong one
[09:35:20] <Wumpus> 2896 michaelz 11 0 30832 30M 2308 R 32.3 29.9 2:25 cc1plus
[09:35:20] <Wumpus> 2863 michaelz 10 0 23172 19M 5180 R 32.2 19.6 4:20 cc1plus
[09:35:38] <Wumpus> can easiyl fit them both, though :) so far
[09:35:55] * Wumpus suspends intrinsics.o
[09:36:06] <Wumpus> oh, opcodes.o is actually the smaller of those two
[09:36:45] <Wumpus> 2896 michaelz 11 0 30832 30M 2308 R 32.3 29.9 2:25 cc1plus
[09:36:45] <Wumpus> 2863 michaelz 10 0 23172 19M 5180 R 32.2 19.6 4:20 cc1plus
[09:36:49] <Wumpus> oops, grr, soz
[09:41:12] <Darke> <grin> I must have fixed something then, or it's a different version of gcc. I had it at 60M at one point in time. No idea why.
[09:41:36] <Wumpus> stacki is doing quite well (almost 40M there for a moment)
[09:41:49] <Wumpus> but if you want to see a drain on your memory, compile ghc ;-p
[09:42:45] * Wumpus is beginning to think its al darke's fault that my compiles take so damn long ;-p
[09:45:42] * Darke looks completely innocent. He does $other_things whilst he's waiting for his code to compile. <grin>
[09:46:44] * Wumpus expected a small part of it to be quick :|
[09:47:19] * Darke grins.
[10:02:19] <Wumpus> hehe
[10:02:22] <Wumpus> now i get a proper error ;-p
[10:08:45] * Darke earperks. "A 'proper' error? <grin> Which one?"
[10:10:39] <Wumpus> "your opcodes.txt sucks"
[10:10:43] <Wumpus> (or something to that effect :P)
[10:11:35] <Darke> "All you opcodes.txt are belong to us?" <grin, duck & run>
[10:30:53] <Wumpus> hmmm
[10:31:40] <Wumpus> urgh
[10:31:54] * Wumpus scratches head
[10:32:10] <Wumpus> i think i should just report this and forget about it ;-p leave it as "mystery" :P
[10:45:26] <Darke> <grin> You appear to have a defeatist attitude.
[10:46:11] <Wumpus> more like a "I should be doing other things' attitude... like getting a job
[10:46:42] <Darke> Getting a job is a good thing to attempt.
[11:32:57] <Wumpus> https://sourceforge.net/tracker/index.php?func=detail&aid=496757&group_id=2335&atid=102335 for a long winded bug report :P
[11:36:09] <Darke> A nice long wided bug report. <grin> No, konqueror doesn't appear to be doing strange things, it looks 'fine' to me.
[11:37:49] <Wumpus> darke- perhaps if you make your browser window narrower it might be apparent?
[11:37:58] <Wumpus> i get strange line wrapping
[11:39:42] <Darke> Umm... I've got my browser in a bit over a 1024x768 window on a 1600x1200 res screen. It seems to look ok, at least I don't notice anything that looks completely wrong.
[11:40:38] <Wumpus> ya, if i make my window that small, it loosk fine
[11:40:40] <Wumpus> that big, even
[11:43:46] <Darke> Hmm... anyway, I just committed the changes to opcodes.txt, to theoretically have all the math/comparison opcodes parameters around the right way.
[11:51:34] <Wumpus> ooh hehe
[11:51:37] * Wumpus jsut notes
[11:51:41] <Wumpus> 2001-08-09 Willem Jan Palenstijn <wjpalenstijn@users.sourceforge.net>
[11:51:42] <Wumpus> ...
[11:51:46] <Wumpus> TODO: do the same for containers. (using the 'resistance' field)
[11:51:46] <Wumpus> unfortunately this implies that the remove_item intrinsic will also
[11:51:46] <Wumpus> have to extract the contents of a container...
[11:51:53] <Wumpus> I believe this hasn't been done yet :)
[11:53:55] <Darke> Don't know. <grin> 'Apparently' it's possible to destroy chests and such, I've just never tried to break a chest.
[11:54:31] <Wumpus> oh, it is... but that works
[11:54:36] <Wumpus> its necessary in SI :P
[11:55:19] <Darke> <grin> Cool.
[11:58:45] --> wjp has joined #exult
[11:58:46] --- ChanServ gives channel operator status to wjp
[11:58:51] <wjp> hi
[11:59:18] <Wumpus> lol "before my HD crashes or so"... "or so"... that is such a germanism :)
[11:59:22] <Wumpus> `lo wjp
[11:59:43] <wjp> Wumpus: the ChangeLog entry for the next day handles that TODO, btw
[12:00:01] <Darke> Hi wjp. <grin>
[12:00:24] <Wumpus> oh? hmm, i wasj ust grepping for remove_this ;-p
[12:00:31] <Wumpus> ah *blink* I know what i should do
[12:00:34] * Darke uses 'or so'... umm... regularly.
[12:00:44] <Wumpus> darke- yeah, but in a certain way
[12:00:56] <Wumpus> like "5 elephants or so"
[12:01:22] <wjp> it's a dutch-ism too
[12:01:37] <wjp> "5 olifanten of zo"
[12:01:43] <Wumpus> but its very German, in my experience, to use it to mean "or some event like that"... which make sense, because its a literal translation of "oder so"
[12:01:45] <Darke> Wumpus: <grin> And like that, frequently enough to get complaints anyway.
[12:01:59] <Wumpus> darke- hehe :)
[12:02:13] <Wumpus> olifanten, hehe
[12:02:16] <Wumpus> cool word :)
[12:02:25] <Wumpus> elephants are just fundamentally cool :)
[12:03:06] * Darke thinks it was somewhat accidental on his part. Primarally because he tends to think that nothing is absolute. <grin>
[12:04:59] * Darke thinks he really, really needs to turn opcodes.txt into a conf/ file or something, it's seriously getting unreadable. <sigh>
[12:06:42] <Wumpus> its remove_party_items which i should have been interested in
[12:07:16] <Wumpus> mhmm i think there's something dodgy going on here...
[12:07:33] <Wumpus> oh no, thats okay
[12:07:34] <Wumpus> interesting
[12:08:19] <Wumpus> when removing the wolf, celia does a remove_party_items, and then a get_cont_items (presumably to return the contents of the container to you), but exult never gives you back those contents...
[12:08:59] <Wumpus> and there's some usecode i don't understand after the get_cont_items
[12:09:01] <Wumpus> *reads*
[12:10:02] <Wumpus> (specifically "next")
[12:11:01] <Darke> NEXT is a foreach style loop opcode.
[12:11:14] <Wumpus> so i gathered
[12:11:41] <Wumpus> call extern:[0004] ?
[12:11:47] * Darke thinks he probably should update his documentation in opcodes.txt about it. It's rather... sketchy.
[12:12:21] <Wumpus> (call extern:[0004] ... there's a list of externals at the start of the function which tells it what to do?)
[12:12:32] <Wumpus> hm oh... hmmmm mmmm
[12:13:00] <Darke> Yep. It should be referencing the 'fifth' one listed from the top (the externs are indexed at 0000).
[12:13:03] * Wumpus looks at various columns and hmms
[12:13:30] <Wumpus> why go through a table though?
[12:13:38] <Wumpus> (obviously thats not something we control, but it still seems odd)
[12:13:39] * Darke thinks that possibly should be dropped into an autocomment.
[12:15:30] <Darke> Faster indexing/lookup? You can create a table in memory with pointers directly to all the functions when you load each function up, so you don't have to locate the offset to each function in memory/on disk each time you need to locate it. (Important for tight loops).
[12:15:43] <Wumpus> hehe fair enough :)
[12:16:07] <Wumpus> oooh
[12:16:12] * Darke thinks his phrasing is rather b0rk3n tonight. Or that he should stop rationing his punctuation marks.
[12:16:19] * Darke earperks.
[12:16:59] * Wumpus anti oohs, it was ucxt where there were very recent changes to call
[12:17:06] <Wumpus> not exult itself :|
[12:17:18] <wjp> :-)
[12:17:26] * Darke nods.
[12:17:27] <Wumpus> something seedy going on anyway... it seems that the usecode itself is doing the contianer emptying, but its somehow not happening in the game
[12:17:45] * Wumpus is making a very rough judgement of what the code beign CALLed does from a quick glance, though
[12:18:41] <Darke> Wait until we have Exult Studio and the compiler being worked on at the same time as well. You'll never know what's being altered where. <grin>
[12:19:10] <Wumpus> as i read it, it remvoe the body from you, then iterates over the items inside the body, uses set_last_Created to make those items 'active', and then... CALLs a function which seems to me supposed to add the item to your inventory... hmm
[12:19:30] <Wumpus> i don't suppose there's an index of usecode function purposes anywhere? :)
[12:20:20] <wjp> no, not yet
[12:20:44] <Darke> Not at the moment. I have a very... sketchy (and most likely incorrect) one for BG. But we'll need to create a very vague overview of them so we can assign them names with ucxt anyway. <grin>
[12:21:20] <Wumpus> well 0x400-0x600 or so are easy :P
[12:21:36] <wjp> 0 - 0x400 too
[12:22:34] <Wumpus> d'oh, I need to know about 0x813 though :| what i initially thought that function did, seems to be done by add_party_items
[12:26:27] <wjp> well, add_party_items didn't drop items on the floor in BG, so it could be that this function is 'inherited' from BG
[12:26:56] * Wumpus thinks he's too tired to read this just now, but thats possibe
[12:28:23] <Wumpus> in any case, somethins b0rked, the code looks like it does all the Right Things, hmphm
[12:33:25] <wjp> Darke:
[12:33:30] <wjp> > 0x4a ARRA "arra" "\t\t\t\t;" "append(%p1,%p2)" 0 {} 2 1 0 0
[12:33:59] <wjp> # appends second param. to the list in first param.
[12:35:06] <Darke> Thanks!
[12:35:56] <wjp> (813 uses this :-) )
[12:36:16] * Wumpus was reading it too, and wondernig about wjp's comment, until i looked at opcodes.txt :P
[12:38:02] <Darke> <grin> There still a hole or two, here and there in the datafiles. I'm just in the process of getting it to output the names it uses as jump targets properly. (It's missing the 'proper' function id, and only outputting 'Func' instead.)
[12:40:09] * wjp wonders how you properly handle strings like "\"" in flex/bison
[12:41:31] * Darke could give you the answer, if he had his compiler-writing texts at paw, but they're in his uni's library at the moment.
[12:42:15] <wjp> only compiler-related book I have is "the dragon book"
[12:42:24] <Wumpus> :)
[12:42:28] * Wumpus has dragon book in his cupboard
[12:42:45] <Darke> s/only/_THE_/ <grin>
[12:42:55] <wjp> hehe
[12:44:02] <Darke> Considering it's known as the primary book to grab a copy of if you ever want to write a compiler, using the term 'only' with it, seems kind of... umm... an understatement. <grin>
[12:44:31] <Darke> s/write/learn to write/
[12:44:31] <wjp> well, sure, but it is still 'one' book... and considering I have no other compiler-related books... ;-)
[12:44:57] <Wumpus> ahha
[12:45:29] * Darke only really has decompiler related 'texts' around, that is photocopies of thesis'.
[12:45:45] <wjp> the thing I can think of is: LETTER = [^\\] | \\\\ | \\\"; STRING = \"LETTER*\"
[12:46:28] <wjp> not really right, though
[12:47:05] <wjp> the [^\\] should probably exclude the " too
[12:48:29] <Wumpus> well I think one of the problems with that wolf bugreport is the "special case" really should check the party, but I suppose I should really verify that against the Real Game (ucinternal.cc:934 - it goes into taht if...)
[12:50:03] <-- Kirben has left IRC ("System Meltdown")
[12:50:41] <Wumpus> argh, stupid damn smoke everywhere
[12:51:01] <Darke> Huh?
[12:51:24] <Wumpus> bushfires have most of greater sydney blanketed in smoke :(
[12:51:45] <Darke> Urk. Not good. My sympathies.
[12:53:03] <Wumpus> just double checked that it really is the "special case"
[12:55:45] <Wumpus> Finding path to schedule for woman
[12:55:46] <Wumpus> FEEL SPECIAL!
[12:55:46] <Wumpus> Game paused
[12:55:49] <Wumpus> ;-p :)
[12:56:32] * Darke blinks. Huh?!?
[12:57:03] <Wumpus> a rather frivolous "does the code reach ehre when i think it reaches here" printf
[12:57:07] <Wumpus> (or cout, as the case might be)
[12:57:27] <Darke> Ahh. That makes a bit more... sense.
[13:03:27] * Darke is guessing that Dominus might be appearing soon, since he's just posted to the forum. <grin>
[13:03:46] <wjp> nah, he posts quite often without being here
[13:16:56] * Darke considers Dominus must have a sufficiently large amount of a 'life' to have insufficient time to sit on irc, but a sufficiently small amount of a 'life' to spend time posting to the forum... weird. <grin>
[13:17:28] * Wumpus would consider that impossible, as the ph0rum seems to me to be a great deal more irritating than here :)
[13:17:36] <Wumpus> ahha, compile done, one more thing to try before bed :)
[13:18:29] <wjp> http://exult.sourceforge.net/forum/read.php?f=1&i=2683&t=2683
[13:18:31] <wjp> *sigh*
[13:19:25] * Darke nods and sighs.
[13:19:40] <wjp> I wonder what kind of image he pieced together :-)
[13:20:06] <Wumpus> hehe hmmm
[13:23:02] <Darke> wjp: No idea. I suppose we just need to wait and find out. <grin>
[13:24:24] <Wumpus> darke- re your ntoes on "next", one of the parameters is left unexplained, :( and its the one i'm interested in, sigh
[13:24:44] <wjp> which one?
[13:24:50] <Wumpus> because it looks a litte like whatever is going wrong, might be going wrong there
[13:24:52] <Wumpus> the middle one :P
[13:26:07] <Wumpus> where is the code for it? i didn't spot it immediately, and "next" isn't the best thing to grep for ;-p
[13:26:37] * wjp looks
[13:26:57] <Darke> ucinternal.cc:1892 ish
[13:27:03] <wjp> yeah
[13:27:16] <wjp> that's the loop var.
[13:27:39] <wjp> ie. the current item from the list
[13:28:02] <Wumpus> hmm yeah, thats what i would have thought
[13:28:35] <Wumpus> get_cont_items( 0, fffffe99, fffffe99, fffffe99 ) = 0
[13:28:36] <Wumpus> set_last_created( 0 ) = 0
[13:28:36] <Wumpus> set_last_created( 0 ) = 0
[13:28:36] <Wumpus> set_last_created( 0 ) = 0
[13:28:48] <Wumpus> ... that doesn't sound good to me ....
[13:29:31] <Wumpus> (thats just using parms[0].get_int_value() etc, so the numbers are probably inherently not all that meaningful, but nevertheless, it looks unpromising)
[13:29:31] --> Colourless has joined #Exult
[13:29:31] --- ChanServ gives channel operator status to Colourless
[13:29:40] <wjp> hi
[13:29:41] <Colourless> hi
[13:29:45] * Darke bows. "Hi."
[13:32:12] <wjp> get_int_value() returns 0 for pointers
[13:32:23] <Wumpus> oh
[13:32:23] <Wumpus> bah
[13:32:25] <Wumpus> hehe :P
[13:32:33] * Wumpus was expecting the pointer avlue, no wonder :)
[13:32:54] <Colourless> you should query the type
[13:33:06] <Colourless> then use the correct method
[13:33:10] <wjp> just use parms[0].print(cout)
[13:33:45] <wjp> maybe we should define an "operator<<(ostream&, Usecode_value&)" ? :-)
[13:33:57] <Wumpus> that would be cool :)
[13:34:14] <Wumpus> colourless- hehe true :) but that requires effort :P
[13:34:25] * Wumpus uses the print thing, but then, no recompile tongiht, tired
[13:36:42] <-- Wumpus has left IRC ("Zzzz")
[13:37:53] <Colourless> so what is wumpus trying to do anyway?
[13:38:14] <wjp> figure out why the wolf meat sometimes disappears, I think
[13:40:30] <Colourless> hmmm, can't say I know the exact specifics of that bug
[13:41:49] --> Dominus has joined #exult
[13:41:49] --- ChanServ gives channel operator status to Dominus
[13:41:58] <wjp> hi
[13:42:01] <Dominus> hi
[13:42:09] <Colourless> hi
[13:42:14] <Dominus> what kind of channel message is this?
[13:42:18] <Dominus> :-)
[13:42:32] <Dominus> how is everything going
[13:42:34] <Dominus> ?
[13:42:46] <Dominus> I'm still missing in action in Germany
[13:42:50] * Darke bows. "Hi Dominus."
[13:43:59] <Colourless> cursing my modem, as always ;-)
[13:44:17] <Dominus> seems to me that we need sooner or later a copy of the spanish version of SI (which supposedly doesn't even exist) and standalone copies of BG and SI (without the Add-ons)
[13:44:42] <Colourless> i can get BG pretty easily
[13:45:12] <Dominus> SI would be more interesting (the jawbone bug comes to mind)
[13:45:58] <Dominus> also is anybody planning to put in some check that you can't load savegames of a standalone version on an Add-on version?
[13:45:59] * Darke has a copy of BG standalone on floppies somewhere too.
[13:47:11] <Colourless> the evil thing to do would just be us saying, we only support English Version of the Games with the Addons
[13:47:21] <Dominus> yeah
[13:47:27] <Dominus> very evil
[13:48:17] <Colourless> there is also a small distinction between supporting and running ;-)
[13:48:34] <Colourless> that is officially supporting :-)
[13:49:12] <Dominus> would be kind of sad though
[13:50:43] <Colourless> yeah. it is very much a last choice
[13:54:54] * wjp seems to have... uh... 'stumbled upon' a spanish copy of both BG and SI
[13:55:23] <Colourless> can you read spanish :-)
[13:55:38] <wjp> only the things I can figure out from french & latin :-)
[13:56:03] <Dominus> wjp: that truck driving around Europe is very strange. It looses all that stuff....
[13:56:16] <wjp> Dominus: yes... really odd ;-)
[13:56:43] <Colourless> fingolfin seems to get most of the stuff :-)
[13:56:44] <Dominus> hm, so what is it with the spanish version of SI not starting...
[13:58:32] <wjp> hmm... it is even a spanish version SI without SS, it seems
[13:59:03] <Dominus> aha
[13:59:12] <wjp> and one of BG without FoV
[13:59:27] <Dominus> the add-ons were english only
[13:59:30] <Colourless> were the addon's even regionalized?
[13:59:38] * Colourless guesses not :-)
[14:00:07] <Dominus> but I could be wrong. I was sure that SI was english only
[14:01:00] * wjp also found a french version of BG minus FoV
[14:01:22] <Colourless> origin may not have made the spanish version
[14:01:48] * Dominus wonders how the localized versions handle savegames from other localizations
[14:01:53] <Dominus> or if it really matters
[14:01:59] <Dominus> Colourless: what do you mean?
[14:02:09] <wjp> "EMPEZAR JUEGO" :-)
[14:02:18] <wjp> uhh
[14:02:27] <Colourless> EA, or the Spanish distributor may have done the translations
[14:02:29] * wjp guesses "start new game" :-)
[14:02:40] <Dominus> he he
[14:02:55] <wjp> "seguir partida" appears to be "journey onward"
[14:03:09] <wjp> segfault
[14:03:18] <Colourless> good news!
[14:03:33] <Dominus> with journey onward or new game?
[14:03:35] <Colourless> one of the few times a crash is actually good news :-)
[14:03:46] <wjp> "Error reading saved monsters. Clearing list."
[14:04:05] <Colourless> it should do that at a start of a new game
[14:04:16] <Colourless> there is no monsters.dat file
[14:04:22] * wjp notices it crashed inside "uc_trace_disasm"
[14:04:34] <Colourless> strange
[14:04:49] <Colourless> modified usecode?
[14:04:59] <wjp> possible
[14:05:47] <wjp> hmm... 135691371 is not a valid opcode type, right? ;-)
[14:05:52] <Colourless> no
[14:06:12] <Colourless> it shouldn't even be able to read that as an opcode
[14:06:16] <Colourless> opcode are all 1 byte
[14:06:34] * wjp points at the ";-)" :-)
[14:07:05] * Colourless say "Yes, I know. That still can't even be read as an opcode!"
[14:07:12] <wjp> funny... it's apparently a 4D opcode
[14:07:32] <Colourless> buffer overflow? ;-)]
[14:09:03] * wjp wonders what wud will make of this usecode file
[14:09:30] <Colourless> crash too?
[14:09:33] <Colourless> how about ucxt :-)
[14:09:36] * Darke was wondering what ucxt would make of this file. "I don't suppose a DCC send would be out of the question?"
[14:09:48] <wjp> yes, wud crashes
[14:09:54] <Colourless> if it dies, submit a bug report to Darke :-)
[14:10:01] * Darke is guessing that ucxt would die also. <grin>
[14:10:37] * wjp waits
[14:10:41] * wjp waits some more
[14:10:43] <Colourless> obviously it would seem this usecode file has been hacked?
[14:10:56] * wjp is still waiting...
[14:11:02] <wjp> I think it's infinite looping :-)
[14:11:08] <Dominus> wjp: what's the date of the files?
[14:11:17] <wjp> 19 nov. 1993
[14:11:30] <Darke> Either that, or some of those 'unknown' opcodes were used for the translated versions.
[14:12:36] * Colourless notes that all his SI files are dated 17th Nov 1997 :-)
[14:12:57] <wjp> install date?
[14:13:09] * Dominus thinks that Colourless did something wrong there :-)
[14:13:12] <Darke> wjp: It'll keep looping, since the number of parameter bytes (for that opcode, or whatever) will be 0.
[14:13:16] <Colourless> date the ultima collecition was made as far as I know
[14:13:47] * Darke checks his filereading code.
[14:13:51] <wjp> my si's dates are between Mar 1993 and Feb 1994
[14:13:58] <Dominus> mine too
[14:14:34] <Colourless> my bg file are also the same as the si ones.
[14:14:42] <Dominus> and my bg dates are from august 91 to feb 94
[14:15:13] <Dominus> could be that installing it from the Collection could have caused this
[14:15:28] <Colourless> probably
[14:15:52] <wjp> I installed from "the complete U7", I think
[14:16:22] <Colourless> the installer (install shield used by UC) can change the dates and time of the files when installing to something other than what is on the disk
[14:17:05] <Dominus> I only bothered with the installer once
[14:17:21] <Dominus> quite pointless
[14:17:45] <Dominus> especially as I then did MY UC with the Underworlds and Worlds of Ultima included :-)
[14:18:38] <wjp> oh my... wud already chokes on 0x96
[14:19:21] <wjp> _really_ chokes on it, too
[14:21:32] <Dominus> so, any verdict on it? hacked (by EA or spanish publisher) or unknown opcodes?
[14:22:48] <wjp> confusing, this
[14:22:54] <wjp> it looks almost completely different
[14:23:43] <Dominus> do you have anything like dosemu to try if it actually works in the original mode?
[14:23:59] <wjp> although part of that might be caused by the SI+SS / SI difference
[14:24:10] <wjp> (like the 'externs' of 0x96 being different)
[14:24:12] <wjp> Dominus: no
[14:25:12] <wjp> it's like they littered the code with random 4C and 4D opcodes
[14:25:17] <Colourless> why would they go that high?
[14:25:55] <Darke> Last documented 'english' opcode is 0x4b...
[14:25:56] <wjp> hmm... might be far-fetched, but maybe this one is compiled in something like debug mode?
[14:25:57] <Colourless> we know that the english BG and SI only used up to 4B
[14:26:27] <wjp> the params to 4C seem to be increasing... line numbers?
[14:26:50] <Darke> wjp: It's possible. How many bytes of parameters does 4C and 4D have?
[14:27:09] <wjp> 4C: 2 bytes
[14:27:25] <wjp> 4D: 2 or 4... I'm guessing 4
[14:28:34] <wjp> ok... 4D is at the start of every function, and takes 4 bytes
[14:29:27] <Colourless> sounds very much like a beta version of the game
[14:29:32] <wjp> it would really make sense if 4C is line number. It's before every group of statements that should make up a line in a 'sane' language
[14:30:00] <Colourless> if it is, that would support 'my' theory the game wasn't translated by origin
[14:30:07] <wjp> ie: 4C 18 00; pushi 10; push itemref; callis get_item_flag; 4C 1A 00 00
[14:30:19] <wjp> scratch that last 00
[14:30:22] * Darke nods, that makes sense.
[14:30:37] <wjp> oh, and I forgot a 'jne 3D' after the callis
[14:31:55] <Darke> If anyone wants to reverse engineer how the original usecode script looked. There's the data. <grin>
[14:32:35] <Dominus> :-)
[14:33:16] <wjp> funny... there's also a "&PLANK" string in the data segment
[14:33:49] <wjp> function name?
[14:35:01] <Colourless> adding a quick hack into wuc by adding 4c (2 bytes) and 4d (4 bytes) worked
[14:35:05] <Darke> Makes kind of sense. We already know $LBClueless is a variable name. Or an array name perhaps?
[14:36:07] <Colourless> looks like function names
[14:36:17] <Colourless> they all seem to have them
[14:36:39] <Colourless> there also appears to be embedded comments
[14:36:45] <Colourless> .funcnumber 09A1H
[14:36:45] <Colourless> .data
[14:36:45] <Colourless> L0000: db '&VISIONS'
[14:36:45] <Colourless> L0008: db 00
[14:36:46] <Colourless> L0009: db 'whom'
[14:36:46] <Colourless> L000D: db 00
[14:36:48] <Colourless> L000E: db 'where'
[14:36:50] <Colourless> L0013: db 00
[14:36:52] <Colourless> L0014: db 'deadeyestart'
[14:36:54] <Colourless> L0020: db 00
[14:36:56] <Colourless> L0021: db 'bruntstart'
[14:36:58] <Colourless> L002B: db 00
[14:37:00] <Colourless> L002C: db 'palosstart'
[14:37:02] <Colourless> L0036: db 00
[14:37:04] <Colourless> L0037: db 'palosref'
[14:37:06] <Colourless> L003F: db 00
[14:37:17] <Colourless> L0040: db 'antiiolostart'
[14:37:17] <Colourless> L004D: db 00
[14:37:17] <Colourless> L004E: db 'antiduprestart'
[14:37:17] <Colourless> L005C: db 00
[14:37:30] <Darke> Those kind of sound like variable names...
[14:38:12] <wjp> any idea what opcode references them?
[14:39:00] <Colourless> they don't look referenced
[14:39:02] * Darke wouldn't imagine they'd be referenced by an opcode. The debugger would know exactly where to look and grab them.
[14:39:20] * wjp nods
[14:39:57] <wjp> there are 8 local vars, and 8 such strings.. coincidence? :-)
[14:40:06] * Darke grins.
[14:40:17] <Colourless> yes :-)
[14:40:21] <Colourless> there is no relation :-)
[14:40:26] <wjp> 9A2: 2 args, 1 local var: 3 strings
[14:40:42] <Colourless> seems that the last strings are the variable names
[14:41:02] <wjp> no, the 2nd param to 4D points to the first one
[14:41:28] <Colourless> ah ok, my hack doesn't show the second param to 4d :-)
[14:42:11] <wjp> I just added 2 lines to uctools.h, and now wud Just Works(tm)
[14:42:36] <Colourless> I added:
[14:42:39] <Colourless> { "dbgline", 2, 0 }, // 4c
[14:42:39] <Colourless> { "dbgunkwn", 4, 0 } // 4d
[14:42:52] <wjp> { "line",2,IMMED },
[14:42:52] <wjp> { "func",4,DATA_STRING }
[14:43:14] <Colourless> IMMED = 0
[14:43:22] <wjp> so? :-)
[14:43:33] <wjp> readability :-)
[14:44:31] <Colourless> ;-0
[14:44:37] <Colourless> that was meant to be :-)
[14:45:05] <Colourless> oh well, i think thats enough reverse engineering for one day :-)
[14:45:22] <wjp> only if it'll work now :-)
[14:45:29] <Colourless> of course, now that we know how the originals did debugging, we could add the same method into exult :-)
[14:45:43] <Colourless> of course, we basically have to anyway :-)
[14:46:06] <Dominus> Colourless: one quick question: how is glide working? (I couldn't test your latest version yet - not at home)
[14:46:12] <wjp> pity we don't have a debugging USECODE of SI+SS
[14:46:20] <wjp> (or BG+FoV, for that matter)
[14:46:23] <Colourless> dominus: it's going pretty well
[14:46:34] * Darke is slowly adding this stuff to ucxt...
[14:47:12] <Colourless> dominus: i fixed the texturing problem in glide 2 and made an experimantal release on the x3dfx message board
[14:48:05] <Dominus> Colourless: how were the reactions?
[14:48:36] * Dominus guesses the reactions went from bad to good
[14:49:05] * Dominus has to look at that board now
[14:49:09] <Colourless> haven't really checked the comments. no one really noticed it for about a day.
[14:49:22] <Colourless> i did get one email though
[14:49:37] <Colourless> which was good
[14:49:49] <Dominus> no one noticed for a day :-)
[14:50:07] <Colourless> well, no not really. i didn't post it in it's own topic
[14:50:31] <wjp> "Hemos llegado. Me pregunto si habremos perdido algo en el camino..."
[14:50:37] <Dominus> ah, which topic, I just scanned for topic starter colourless
[14:50:56] <wjp> "Mirad! El barco esta en tierra firme! Creo que Iolo tiene razon. Vinimos volando!"
[14:51:13] <wjp> "Que frio! Este clima es distinto al de nuestro pais."
[14:51:26] <wjp> ie. it works ;-)
[14:51:33] <Dominus> :-)
[14:51:45] <wjp> "Que ocurre?"
[14:51:51] <wjp> "Auxilio!"
[14:52:04] <Dominus> will you post it on the forum ?
[14:52:08] <Colourless> how are you going to get past the copy protection :-)
[14:52:12] <wjp> lol
[14:52:29] <Dominus> :-)
[14:52:34] <Colourless> the stuff is in this topic: http://pub43.ezboard.com/fx3dfxfrm1.showMessage?topicID=5662.topic
[14:52:35] <wjp> "Mi nombre es Thoxa."
[14:52:38] <wjp> ok... here we go...
[14:52:48] * Darke will get around to finding that byte to hack.
[14:52:58] <wjp> "Cuantas fuerzas se combinan para formar los Principios del Equilibrio?"
[14:53:00] <wjp> easy enough
[14:53:12] <wjp> "How many forces combine to form the principles of balance?"
[14:53:20] <wjp> 2? 6?
[14:53:45] <Colourless> 6
[14:54:16] <wjp> "Cuantos caracteres tiene el alfabeto serpentino?"
[14:54:20] <wjp> no problem there, either
[14:54:25] <wjp> Colourless?
[14:54:31] <wjp> 36?
[14:54:35] <Colourless> yeah
[14:54:54] <wjp> "Cuantas razones llevaron a Erstam a escribir su historia?"
[14:54:57] <wjp> one, IIRC
[14:55:00] <Colourless> yeah
[14:55:05] <wjp> ok, all done :-)
[14:55:13] <wjp> "adios!"
[14:55:25] * wjp should add that to the "bye" list
[14:55:46] <wjp> although I can't remember where that is
[14:56:04] <Colourless> in conversation.cc or something wouldn't it be?
[14:57:16] <Dominus> Colourless: he he, did anyone ever notice that you indeed updated the glide drivers?
[14:57:37] <Colourless> 1 person at least :-)
[14:58:14] <Dominus> very funny, they are still talking about NU's drivers and overlook your precious glide fixes :-)
[14:58:35] * Colourless thinks my post was too long for them to finish reading ;-)
[14:58:41] <wjp> lol
[14:58:46] <Dominus> savages
[14:59:08] <wjp> or maybe it was because you didn't have a flashy animating image at the bottom of your post...
[14:59:13] <Dominus> wjp: can you now try that savegame with the jawbone bug?
[14:59:33] <wjp> I'll try
[14:59:47] <Dominus> or maybe it was the "previous posts 5(or something like that)"
[15:00:24] <Darke> Hmm... `ucxt -v -fz -fa -ac -iusecode.bg.es 96` doesn't crash, and appears to work 'perfectly'.
[15:01:33] <wjp> ./ucxt -v -fz -fa -ac -si 96 -> inf. loop
[15:02:01] <Colourless> ah, oh well, I didn't actually intend to originally realase the stuff there, i meant to release it on beyond3d, but of course the b3d forum wont let anyone post at the moment for reasons unknown.
[15:02:27] <wjp> Dominus: ok... bug hits me now
[15:02:33] <Colourless> perhaps I should just make a new topic for it :-)
[15:02:47] <Dominus> Colourless: probably
[15:02:48] <wjp> screen fades out, fades back in, and nothing happend
[15:02:49] <Darke> wjp: <grin> It would appear the .bg versions don't have the debugging information...
[15:03:08] <Dominus> wjp: so jeff was right it seems
[15:03:20] <wjp> Dominus: what did jeff say?
[15:04:21] <Dominus> something on the ML - (don't have it handy at the moment)
[15:04:25] <Dominus> on that topic
[15:04:41] <Darke> wjp: This 'new' version works with SI. I'll just clean it up abit before I commit.
[15:08:34] <wjp> Colourless: "This was released on 22rd December "... 22rd? :-)
[15:08:46] <Colourless> yes :-)
[15:09:41] * Dominus is curious of that LB/u8 screenshot :-)
[15:09:46] <Colourless> no I wonder how i managed that. it is supposed to say 23rd :-)
[15:09:48] <wjp> yeah, me too :-)
[15:10:25] <Colourless> i would have thought that i would have updated 22nd to 23rd in one shot... but it appears that somehow i didn't :-)
[15:10:34] <Colourless> i still think it's fake
[15:10:53] <wjp> yeah, me too
[15:11:01] <Dominus> me too
[15:11:20] <Dominus> but that makes it even more interesting (to see that fake shot)
[15:11:32] * Darke is tempted to 'me too', but will <aol/> instead.
[15:12:45] * Colourless <fluffs>
[15:13:05] <Colourless> or should that be <fluff>s?
[15:14:14] <Darke> Colourless: Nah. Plurals go inside the emote bounders. <grin> But if you're doing an 'action' you don't need to emote boundaries, since they signify the words are actions not just... umm... words.
[15:15:03] <Colourless> all too confusing for me :-)
[15:16:27] <Darke> Umm... ow. I've never actually looked at function 00a0 before. <boggle>
[15:17:18] <Colourless> so, dark are you going to steal the function names from the spanish usecode? :-)
[15:17:23] <Colourless> s/dark/darke
[15:18:35] <Darke> Colourless: Tempted. <grin> The problem is verifying that all the functions in SI are all under the same numbers as their 'identical' functions in SI+SS.
[15:19:06] <Colourless> yeah, they will be different
[15:19:19] <Dominus> ok, guys and rabbits - I have to go now
[15:19:23] <Colourless> cya
[15:19:25] <wjp> bye
[15:19:25] <Dominus> see you in two days
[15:19:32] <Darke> Bye. <bow>
[15:19:39] <-- Dominus has left IRC ("got to play Exult now")
[15:20:45] <Colourless> you know, the spanish usecode could actually help out finding any stupid bugs that we may still have with si
[15:21:00] * wjp compares output of original SI's serpent gate with SS's
[15:21:55] <Darke> // Function: &PLANK 0064
[15:21:55] <Darke> // Line: 0012
[15:21:58] <Colourless> granted, the debugging info isn't that useful, but there could be some other changes that might make it easier to figure out what is going on (such as just having the funcnames)
[15:22:06] <Darke> 0000: dbgfunc 0000 0064 ; &PLANK
[15:22:06] <Darke> 0005: dbgline 0012
[15:22:25] <Colourless> do you also support the local var names?
[15:22:27] <wjp> Darke: the 0064 is the start of the varnames, btw. (Just in case you missed it)
[15:22:27] <Darke> <grin> It certainly won't hurt anyway.
[15:25:01] <wjp> hmm, usecode output is quite different in places
[15:25:29] <Darke> Weird... ucxt isn't outputting the varnames as strings. For 0096 anyway. And it tells me that the datasegment ends at one byte before the offset 0064H... curiouser and curiouser.
[15:26:16] <wjp> quite possible that they aren't really inside the data segment
[15:26:54] <Darke> I'm guessing they aren't. And that my file reader is performing exactly to spec... what I'm worried about is that it didn't mention this abnormality.
[15:29:25] <Colourless> hey, saw this in 00A0h 'Save game, and report to Brendann NOW!'
[15:29:35] <wjp> yeah :-)
[15:29:37] <Colourless> would appear that Brendann is also a real person
[15:29:41] <wjp> he is
[15:29:53] * Darke snickers.
[15:29:54] * wjp checked the SI credits some time ago
[15:30:08] <Colourless> :-)
[15:30:28] <wjp> "Brendan Segraves - System Engineer"
[15:30:43] <Colourless> ah
[15:30:50] <wjp> (and "Paperdolling & General System Coder")
[15:31:17] <Darke> Is he in the BG credits?
[15:31:25] <Colourless> well, seems I did some of his job in exult... paperdolling
[15:31:40] <Colourless> of course we were all general system coders too
[15:31:52] <wjp> Darke: no idea
[15:35:17] <Colourless> that 00a0h function is odd. the variables have the names 0, 1, 2 and 3
[15:35:35] <Colourless> (not including the other normal sort of names)
[15:35:46] <wjp> yes
[15:36:25] <wjp> which would be $0, $1, $2, $3, probably
[15:36:27] <Colourless> what is that function btw?
[15:36:32] <wjp> serpent gate
[15:36:45] <Colourless> it is?
[15:36:47] <wjp> I'm working on that one too, atm
[15:37:01] <Colourless> seems to have been a rather buggy function
[15:37:08] <Colourless> lots of checks
[15:37:11] <wjp> yeah :-)
[15:37:51] <Colourless> heh, lots of calls to the error message intrinsic
[15:38:46] <wjp> what's eventid 3?
[15:39:17] <wjp> egg_proximity?!
[15:39:22] <wjp> huh?
[15:39:35] * Darke is now completely confused.
[15:41:39] <Colourless> i think origin might have done some major hack to get the correct doors to open and close depending on what teeth you had in the jawbone
[15:42:20] <Colourless> the doors are controlled by usecode eggs btw
[15:43:03] <wjp> note to self: the avatar is teleported in 7DE, 054D
[15:44:24] <wjp> uh
[15:44:27] <wjp> no, he isn't
[15:45:02] <wjp> oh.
[15:45:03] <wjp> yes, he is
[15:45:04] <wjp> :-)
[15:45:22] <Colourless> make up your mind already!
[15:47:46] <Colourless> so, if the usecode has all that dubugging info, i wonder how much the exe file has
[15:48:14] <Colourless> perhaps it might include all the flag names or something
[15:48:20] <wjp> ...and to get there, it must reach 1CA with [0009] == 0x12
[15:48:55] <wjp> >= 0x12, even
[15:48:58] <Darke> wjp: With the dbgfunc opcode, the second parameter is the offset to the varnames, except if there is no varnames, in which case it is the offset to the last byte of the datasegment. Or something similar. <grin>
[15:51:00] <wjp> ugh... and to reach that point, eventid has to be 3
[15:53:34] <Colourless> doesn't the avatar have to walk to the serpent gate first?
[15:53:57] <wjp> yes
[15:54:11] <Colourless> the event id that gets called after the avatar has arrived at the gate shouldn't be a double_click event
[15:54:30] <wjp> and it isn't
[15:54:44] <Colourless> what is it?
[15:54:58] <wjp> 10
[15:55:04] <Colourless> 10???!
[15:55:08] <wjp> specified by path_run_usecode
[15:55:22] <Colourless> obviouslt
[15:55:27] <Colourless> y it is mistaken
[15:55:32] * Darke gets the feeling this was entirely unexpected.
[15:55:32] <wjp> why?
[15:55:45] <wjp> function A0 catched eventid 10
[15:55:48] <Colourless> we don't even have 10 listed as part as the usecode even
[15:55:50] <Colourless> ts
[15:55:51] <wjp> so?
[15:56:03] <wjp> 023F: push eventid
[15:56:03] <wjp> 0240: pushi 000AH ; 10
[15:56:03] <wjp> 0243: cmpeq
[15:56:23] <Colourless> maybe we are missing a step somewhre
[15:57:05] <wjp> A0 executes two usecode script arrays on eventid 10
[15:57:16] <wjp> both call 7de
[15:58:22] <wjp> only, the first is called on 0xfe9c (-356?), and the second on the serpent gate itself
[15:58:52] <Colourless> that;s -356
[15:58:58] <wjp> SI+SS also calls the first script on 0xfe9c
[15:59:22] <wjp> however, SI+SS calls 9a0 after that, which teleports the avatar
[15:59:37] <wjp> no, wait... sorry
[15:59:45] <wjp> it does call 9a0, but 9a0 doesn't teleport
[16:00:18] <wjp> after 9a0, A0 executes a usecode script that calls 7E0
[16:00:24] <wjp> 7E0 then teleports the avatar
[16:01:43] <wjp> (unconditionally, I think)
[16:03:04] <wjp> is there a "pop eventid" opcode?
[16:03:25] <wjp> hmm, yes, 4B
[16:03:38] <wjp> so it's possible that it sets eventid manually, somewhere
[16:03:58] * Darke has updated ucxt in cvs.
[16:06:40] <Darke> eventid is changed quite a bit in 00E6... Frigidazzi?
[16:07:16] <Colourless> that is a huge function
[16:07:35] <Colourless> it's frigidazzi
[16:07:55] <Colourless> "Est Nudi" makes it quite obvious
[16:08:27] <Darke> 040D has some... odd constructs.
[16:08:58] <Colourless> such as?
[16:08:58] <Darke> 0223: pushi 0009H ;
[16:08:58] <Darke> 0226: pop eventid ;
[16:08:58] <Darke> 0227: push eventid ;
[16:08:58] <Darke> 0228: pushi 0009H ;
[16:08:58] <Darke> 022B: cmpeq ;
[16:09:10] <Darke> That looks like it's always going to be true.
[16:09:11] <Colourless> yes, that is strange
[16:09:25] <Colourless> maybe there is a jump somewhere to 0227
[16:09:31] <Darke> Unless there is a jump into the middle of it... which I can't tell from this code.
[16:13:00] <wjp> hmm... no... that second snippet of code isn't called on the serpent gate, it's called on the egg there
[16:13:48] <wjp> would if make sense to assume that if a usecode script is executed on an egg, any functions it calls are called with eventid == 3?
[16:14:23] <Colourless> maybe. such an occurance would be pretty rare
[16:16:25] <Darke> #024: 0124H 0000B11C 0437 00C6 0371 &CHAIR
[16:16:26] <Darke> #025: 0128H 0000B557 034B 0058 02F3 &RINGS
[16:16:26] <Darke> #026: 012FH 0000B8A6 013E 002E 0110 &SLIDER
[16:16:26] <Darke> #027: 0133H 0000B9E8 0079 000F 006A &BUNSBUR
[16:16:26] <Darke> #028: 013DH 0000BA65 0875 03A7 04CE SHAMINO
[16:16:26] <Darke> #029: 013EH 0000C2DE 1012 06E8 092A BATLIN
[16:16:46] <Darke> Hmm... I wonder if there's a correlation between the ampersand and whether the function returns a value on the stack...
[16:16:46] <Colourless> what are you doing?
[16:16:57] <Colourless> :-)
[16:16:59] <Colourless> oh, ok :-)
[16:17:03] <Darke> <grin> Just grabbing some function names.
[16:17:42] <Colourless> could be. makes sense
[16:18:22] <Colourless> & for functions returning a value, $ for global flags
[16:18:42] <Darke> I've added a '-dbg' flag for ucxt, that well try and interpret and output the various bits of debugging information we get with this version of SI.
[16:19:35] <Darke> Currently this only works for '-fl' though. But you get these names through the opcodes in -fa and -fz anyway. It just might be useful.
[16:19:54] * wjp blinks... huh? we already do call functions with eventid==3 in this case
[16:20:10] <wjp> oh, wait... but only for usecode eggs
[16:20:29] <Colourless> it would be more useful for debugging usecode usecode in exult at runtime
[16:20:45] * Darke nods.
[16:21:11] <Darke> Except some of these function names are identical. And others a cut off at the 8 byte length limit.
[16:21:40] <Colourless> well, for exult, we wouldn't have that problem. :-
[16:21:42] <Colourless> )
[16:22:10] <Colourless> that all assumes that jeff includes support for these opcode in ucc
[16:22:45] <Darke> <grin> There is that...
[16:26:29] <wjp> if Jeff doesn't, I will :-)
[16:26:40] <Colourless> :-)
[16:27:52] <wjp> ok, removing that check for usecode eggs fixed serpent gate
[16:28:40] <Colourless> what sort of egg is it?
[16:29:07] <wjp> 9, teleport destination, IIRC
[16:43:53] --> Cless has joined #Exult
[16:44:01] <-- Colourless has left IRC (Read error: 104 (Connection reset by peer))
[16:44:01] --- Cless is now known as Colourless
[16:44:03] --- ChanServ gives channel operator status to Colourless
[17:19:46] * Darke probably should go now. "Night all." <bow>
[17:20:10] <Colourless> cya
[17:20:10] <-- Darke has left #exult ()
[18:48:20] --- wjp is now known as wjp|dinner
[19:15:01] --- wjp|dinner is now known as wjp
[19:21:40] <-- Colourless has left IRC (Ping timeout: 180 seconds)
[19:21:48] <-- wjp has left IRC ("[x]chat")
[19:22:37] --> Colourless has joined #Exult
[19:22:40] --- ChanServ gives channel operator status to Colourless
[19:38:16] <-- Colourless has left IRC ("no one here")
[23:44:31] <-- MMe has left IRC (capek.openprojects.net irc.openprojects.net)
[23:47:47] --> MMe has joined #exult