#exult@irc.freenode.net logs for 11 Apr 2002 (GMT)

Archive Today Yesterday Tomorrow
Exult homepage


[00:16:35] --> Kirben has joined #exult
[00:16:35] --- ChanServ gives channel operator status to Kirben
[01:20:01] --> Darke has joined #exult
[01:20:45] <Darke> Hi.
[04:05:58] --> MeatShield has joined #exult
[04:06:09] <MeatShield> !job
[04:06:15] <MeatShield> job
[04:06:18] <MeatShield> ...
[04:06:22] <MeatShield> exultbot job
[04:06:28] <MeatShield> exultbot !job
[04:06:51] <MeatShield> name!
[04:06:54] <MeatShield> !name
[04:07:00] <MeatShield> #name
[04:07:10] <-- MeatShield has left IRC (Client Quit)
[04:08:09] <Darke> ?job
[04:08:09] <exultbot> My job is to write down everything you say.
[04:08:18] * Darke petpets exultbot. Good bot.
[06:28:20] --> sb-x has joined #exult
[06:28:58] * sb-x baps Darke between the ears with a big cloo-by-four.
[06:29:04] <sb-x> hi
[06:29:29] * Darke eeps.
[06:29:35] <Darke> Umm... hi.
[06:33:57] <sb-x> That was for saying Ultima VI is boring.
[06:34:00] <sb-x> :>
[06:36:19] <Darke> I did? What? When? Where? Why? How? <grin>
[06:37:26] * Darke ahhs. A couple of days ago.
[06:38:42] <Darke> And the interface to U6 was absolutely painful to use too, after U7. <grin, duck>
[06:39:04] <sb-x> well
[06:39:14] <sb-x> i played u6 first so...
[06:39:19] <sb-x> ignorance is bliss
[06:39:28] <sb-x> i thought the interface was great at the time :)
[06:39:37] * Darke points out he played U7 then U6, and just couldn't struggle through the interface. <grin>
[06:42:28] <sb-x> Heh... in U6 you have to pay the funeral director to cremate a body.
[06:42:42] <sb-x> but it's the opposite in SI
[07:11:35] --> Kirben2 has joined #exult
[07:13:23] <-- Kirben has left IRC (Read error: 104 (Connection reset by peer))
[08:35:03] <sb-x> hmm
[08:35:08] <sb-x> this is quite an awkward silence
[08:35:16] <sb-x> long and awkward
[08:36:28] * Darke replaces sb-x's gag. Hush.
[08:51:47] <-- royalsexy has left IRC (Read error: 110 (Connection timed out))
[08:53:02] --> royalsexy has joined #exult
[09:04:31] * sb-x decides 30 minutes is long enough to have a gag and quietly removes it.
[09:05:10] * sb-x hides it.
[09:21:15] <-- royalsexy has left IRC (Read error: 110 (Connection timed out))
[09:25:08] --> royalsexy has joined #exult
[10:16:50] --- Kirben2 is now known as Kirben
[10:20:10] * Darke makes his evil #define collection, a little less evil.
[10:21:03] * sb-x has an assert(!"THIS CAN'T HAPPEN!"); somewhere :)
[10:22:08] * Darke snickers.
[10:24:32] <Darke> This #define collection happens to be intending to store all the information relating to opcode numbers, how to read them, and how to 'write' the assembler of them, relating to all the u8 opcodes. It's exceedingly evil, but I think it'll be useful when we've got 'n' different programs, all needing to know how to load the opcodes. <grin>
[10:35:08] <sb-x> 'I think I read about it in the logs.
[10:35:12] <sb-x> Oops, strike the '
[10:35:26] <sb-x> I'm playing a MUD and get the different input styles confused :)
[10:35:41] <sb-x> emote mis-emotes.
[10:39:20] * Darke grins and nods. He is used to a friend using ':' instead of '/me' occasionally when on irc, for the same reason.
[10:47:18] <sb-x> ack
[10:47:21] * sb-x acks!
[10:47:33] <sb-x> i played for over 4h this time
[10:47:46] <sb-x> ...and I wasn't even playing, I was chatting
[10:47:50] <sb-x> in a pub
[10:47:54] * sb-x sighs.
[10:48:20] <sb-x> now it's dawn and I need sleep
[10:48:21] <sb-x> heh
[10:48:24] * sb-x waves.
[10:48:26] <-- sb-x has left IRC ("X-Chat [1.6.4]")
[11:04:34] --- ChanServ gives channel operator status to Darke
[11:04:43] --- Darke is now known as SharpTooth
[11:10:19] * SharpTooth hops over and paints exultbot a fetching colour of fuchsia.
[11:18:40] <-- Kirben has left IRC (Read error: 104 (Connection reset by peer))
[11:19:23] --> Kirben2 has joined #exult
[12:59:56] --> Picaso]vendetta has joined #exult
[13:17:06] <-- royalsexy has left IRC (Read error: 110 (Connection timed out))
[13:17:26] --> royalsexy has joined #exult
[13:17:32] <Picaso]vendetta> Mr. sharptooth?
[13:17:43] <Picaso]vendetta> can I ask some question?
[13:20:32] <SharpTooth> Hi. Yep.
[13:21:08] <Picaso]vendetta> oh
[13:21:10] <Picaso]vendetta> sorry
[13:21:21] <Picaso]vendetta> how can I run U8 on my OS?
[13:21:21] * SharpTooth will attempt to answer them.
[13:21:29] <Picaso]vendetta> my os is Win ME
[13:21:57] <SharpTooth> I think there's a program that allows you to do that. Just a sec.
[13:22:04] <Picaso]vendetta> yep.
[13:22:06] <Picaso]vendetta> thx
[13:22:14] <Picaso]vendetta> but I need speed.
[13:22:19] <Picaso]vendetta> I'm in hurry now
[13:24:34] <Picaso]vendetta> gosh.. tooth? I must go.
[13:24:39] <SharpTooth> http://members.iinet.net.au/~rsd/six.html
[13:24:43] <Picaso]vendetta> oh.
[13:24:44] <Picaso]vendetta> thnx
[13:24:49] <Picaso]vendetta> I will back tomorrow
[13:24:51] <SharpTooth> That might help you. I've never used it though.
[13:24:55] <Picaso]vendetta> yep
[13:24:56] * SharpTooth nods. Luck!
[13:25:04] <Picaso]vendetta> god will bless you, dude.
[13:25:09] <Picaso]vendetta> bye
[13:25:12] <SharpTooth> Bye.
[13:25:14] <-- Picaso]vendetta has left IRC ("X-iRc v2.6.1 Armour au Claire de Lune -- http://www.dgtalx.net")
[13:25:35] --> Colourless has joined #Exult
[13:25:35] --- ChanServ gives channel operator status to Colourless
[13:25:45] <Colourless> hi
[13:25:47] <SharpTooth> Hi.
[13:28:11] <Colourless> so why aren't you darke today ??
[13:30:07] <SharpTooth> Umm... because? <grin> It 'twas an accident again.
[13:31:45] * SharpTooth has an item in the 'user menu' of his irc client that 'identify's him with nickserv, another that 'op's him with chanserv, and another that changes his nick. Guess what happened. <grin>
[14:01:10] --- Kirben2 is now known as Kirben
[15:21:10] * SharpTooth wonders if they'll be any complaints if a pentagram/usecode/cache directory tree suddently appeared and was populated with a few files.
[15:21:29] * SharpTooth suspects they'll be more complaints if he stuffs up the build system by doing it. <grin>
[15:22:01] <Colourless> well, we are not yet convinced what you are doing with your usecode cacher is actually useful. :-)
[15:23:20] <SharpTooth> <grin> I'm not even sure if it is useful myself.
[15:23:49] <Colourless> you said it your self... it is probably a case of over engineering
[15:26:20] <SharpTooth> At the moment, I don't think so. There's really not much code I would have _not_ written, had I been writing, say a u8usecode loader for ucxt, which is what this was intending upon being originally. <grin> It's just written very... differently to the way I would have written it. That's the bit I'm not so sure about, whether the style I'm doing at the moment, is better then say disasm.cc or the u7opcodes.data file.
[15:27:26] <SharpTooth> The ucfiddle program originally just written more as a 'test' program to I can test it, without having to add and update the opcode tracing code in ucxt. <grin>
[15:28:59] <Colourless> your works very much seems to be more focused for a disasesmbler than a interpreter
[15:31:56] <SharpTooth> <nod> Currently it is. Partially because I'm trying to get that bit finished so I can try and integrate it with ucxt, and partially because I'm trying to work out if and how, I can quickly add a basic 'step through' type interpreter to ucfiddle.
[15:32:37] <SharpTooth> So I'm concentrating on the 'parsed' bit, more then I'm concentrating on the 'raw' loading, which is quite simple no matter how you do it. <grin>
[15:34:21] <Colourless> i'm just concerned that what you are doing is likely to just prove to have no advantage to using raw byte code, and just slow down loading
[15:34:23] <SharpTooth> The only thing that the 'raw' loading isn't doing at the moment, is loading up the main body of each class.
[15:35:52] <SharpTooth> It's not going to, since I originally had the raw/cooked loading completely seperated by #defines. And I incidentally, just comitted it seperated by derived classes, which turned out to take up 20k less memory surprisingly enough. <grin>
[15:37:25] <SharpTooth> What you 'need' to know with both raw & cooked, is loaded in the base class. The whole usecode header, and the 'header' of each class, telling you about the offsets to the functions within the usecode-class body.
[15:39:35] <SharpTooth> The only difference in the derived classes, is one will actually parse the function body and split it up not only by functions, but by opcodes. (It's currently using a very basic method of storing the opcode data, just for testing purposes.) And the other (in a few minutes when I write it) will either just load up the entire class as a `new char[]` or load it up individual function by function, also in a series of 'new char[]'s.
[15:40:56] <Colourless> that isn't necessarily so useful though (for an intepr) as the functions are all referenced by their byte offset in the classes themselves.
[15:41:04] <SharpTooth> So, the theory being, even if the 'cooked' method is too slow for the game, the 'raw' one should work just fine.
[15:42:06] <Colourless> you still need to use a map for the functions do you not?
[15:42:11] <SharpTooth> <nod> Thanks. I was thinking of just loading it up as a single char[], I just tend to keep my options open.
[15:43:47] <SharpTooth> As in a map<> to store the functions? Not at the moment, since there's apparently a maximum of 32 functions to a class, so I'm using a fixed vector. Again, testing. It's easy to change if it's either taking up too much memory, or I find it's possible to have more then 32 functions in a class.
[15:44:16] * SharpTooth is also using a vector<> for O(1) access to the classes too.
[15:45:54] <Colourless> hmm
[15:46:31] <Colourless> how do you translate from offsets to function numbers (0-31)
[15:50:25] <SharpTooth> Say one function in a class calls another function?
[15:50:46] <SharpTooth> Or one function in one class, calls another function in another?
[15:51:14] <Colourless> either really. just calling another function
[15:53:54] <SharpTooth> The easiest is to store along with a vector<UCFunction *>(32), is to store a map<FunctionOffset, UCFunction *>. The other option is to do a second pass upon loading which will do a linear search that does all the traslation of FunctionOffsets to either FunctionNumbers or internal UCFunction *s.
[15:54:43] <SharpTooth> The method you choose depends very much on how slow you execute and how slow you load.
[15:55:43] <Colourless> indeed that is what I would have assumed... you will still regardless get a speed penalty on a function call... the usecode just wasn't designed to be interpreted *that* way
[15:56:19] <Colourless> the 'event' table kind of demonstates this
[15:56:46] <Colourless> the exported calls are the only functions that the engine knows the exact location of
[15:57:04] <SharpTooth> It depends, if you stored a UCFunction *s with it, there isn't any latency. But again, it's a trade off.
[15:57:38] <Colourless> and then you are basically just at a raw byte code interpreter with some fancy framework around it :-)
[15:58:17] <SharpTooth> Ultimately, I'd like to write the interpreter in multiple different ways, just to see which way is 'better'. <grin> And more specifically in which circumstances it's better.
[15:58:43] <Colourless> :-)
[15:59:06] <Colourless> work away... do your experiments :-)
[15:59:31] <SharpTooth> Pretty much. The hypothesis I'm working on, is that a little more calculation up front, will give you a little more speed when executing. <grin> I have no idea if this is the case though, it does on the surface make sense.
[15:59:39] <Colourless> one thing I would like to see in pentagram is it just attempting to use a little memory as possible
[16:00:42] <SharpTooth> <nod> That I've been tracking. I've been concentrating on raw speed at the moment, but just paying attention to the in memory size of the cache.
[16:02:08] <-- Kirben has left IRC ("System Meltdown")
[16:18:25] * SharpTooth notices you save a whole 4k, if you #undef his convenience printing functions! Which are only there for debugging purposes anyway... <grin>
[16:19:30] --> wjp has joined #exult
[16:19:30] --- ChanServ gives channel operator status to wjp
[16:19:32] <wjp> hi
[16:19:45] <Colourless> hi
[16:19:48] <SharpTooth> Hi.
[16:27:41] <SharpTooth> Sleep calls. <grin> Night!
[16:27:49] <wjp> night
[16:27:52] <-- SharpTooth has left #exult ()
[16:35:35] <-- royalsexy has left IRC (Read error: 110 (Connection timed out))
[16:54:13] --> royalsexy has joined #exult
[17:09:29] --- wjp is now known as wjp|dinner
[17:31:41] --- wjp|dinner is now known as wjp
[17:46:40] <Colourless> once again, fingolfin is still not here :-)
[18:55:57] --> Soule has joined #exult
[18:57:08] <Soule> I expected this place to be more popular..
[18:57:46] <wjp> hi
[18:58:56] --> sb-x has joined #exult
[18:59:00] <sb-x> hello
[18:59:17] <wjp> hi
[18:59:28] * wjp has to go
[18:59:29] <wjp> bye
[18:59:33] <-- wjp has left IRC ("[x]chat")
[18:59:50] <sb-x> hmm
[18:59:53] <sb-x> now what am I gonna do?
[18:59:58] * sb-x sulks.
[19:00:21] <Soule> hi
[19:00:42] <sb-x> lo
[19:00:56] <Soule> woah just discovered exult bot is realtime
[19:01:29] <Soule> just refresh an d i can see myself..hmm
[19:01:36] <Soule> ?job
[19:01:36] <exultbot> My job is to write down everything you say.
[19:01:40] <Soule> ?name
[19:01:40] <exultbot> Greetings Avatar. I am called Exultbot.
[19:01:48] <Soule> ?bye
[19:01:48] <exultbot> Goodbye, Avatar.
[19:01:55] <Soule> lol
[19:04:49] <Colourless> yes exultbot is realtime :-)
[19:11:17] <Soule> what else can the bot do besides name, job,bye?
[19:11:56] <sb-x> ?logs
[19:11:56] <exultbot> Logs are available at http://www.math.leidenuniv.nl/~wpalenst/exultlog.php3
[19:12:02] <sb-x> ?version
[19:12:02] <exultbot> The latest official version of Exult is: 0.96beta1
[19:12:10] <sb-x> heh
[19:14:25] <Colourless> you can do ?help too
[19:14:48] <Colourless> hmm, that version is a bit out of data
[19:14:52] <Colourless> s/data/date/
[19:16:32] <Soule> actually y do pentagram, I wouldn't want to make a game from U8's engine..
[19:18:36] <sb-x> y?
[19:19:13] <Soule> U8's engine is kinda awkward isn't it? with jumping and pausing whenever the avatar turns
[19:19:27] <Soule> and there are no nice portraits..
[19:19:54] <sb-x> I suspect if someone is making an Ultima 8 map viewer, it is to view Ultima 8 maps, not to make a new game.
[19:20:16] <sb-x> And if they are making an Ultima8 usecode interpretor, it's so they can run Ultima 8.
[19:21:01] <Soule> well true enough
[19:21:20] <Soule> anyway, i just didn't like the game heh
[19:21:29] <sb-x> me either
[19:22:33] <Soule> well recently i played around with SI's portraits..adding my own and it kinda worked...
[19:27:36] <Colourless> we don't intend to make new games using pentagram
[19:28:10] <Colourless> it would be purely intended to play ultima8, and if someone wanted to put the work in, possibly eventually crusader as well
[19:28:25] <Colourless> but you didn't hear that from me ok :-)
[19:28:44] <Colourless> (crusader part that is)
[19:30:29] <Soule> oops exultbot heard it! lol
[19:33:16] <sb-x> gotta go
[19:33:18] <-- sb-x has left IRC ("BitchX: the original point-and-click interface.")
[19:34:48] <Soule> exult is really an excellent program.. and its free
[19:36:00] <Soule> is someone out there planning to make games for exult yet?
[19:37:34] <Soule> gotta leave byebye
[19:37:36] <Soule> ?bye
[19:37:36] <exultbot> Goodbye, Avatar.
[19:37:40] <-- Soule has left #exult ()
[20:38:25] --> bj0ern has joined #exult
[20:38:31] <bj0ern> hi
[20:38:37] <Colourless> hi
[21:16:03] <-- bj0ern has left IRC ()
[21:21:26] <-- Colourless has left IRC (sterling.openprojects.net irc.openprojects.net)
[21:21:26] <-- cnj has left IRC (sterling.openprojects.net irc.openprojects.net)
[21:21:26] <-- royalsexy has left IRC (sterling.openprojects.net irc.openprojects.net)
[21:21:41] --> Colourless has joined #exult
[21:21:41] --> royalsexy has joined #exult
[21:21:41] --> cnj has joined #exult
[21:22:01] <-- cnj has left IRC (sterling.openprojects.net irc.openprojects.net)
[21:23:33] <-- Colourless has left IRC ("no comment")
[21:23:38] --> cnj has joined #exult
[22:22:56] --> MeatShield has joined #exult
[22:23:34] <-- MeatShield has left IRC (Client Quit)
[23:45:04] --> Kirben has joined #exult
[23:45:04] --- ChanServ gives channel operator status to Kirben
[23:49:43] --> Darke has joined #exult
[23:54:41] <Kirben> Another compile error on pentagram
[23:54:50] <Kirben> g++ -mwindows -o u8savextract.exe u8savextract.o -mconsole
[23:54:50] <Kirben> g++ -O2 -Wno-long-long -DHAVE_MIDI -DHAVE_SNPRINTF -Dsnprintf=_snprintf -DPENTAG
[23:54:50] <Kirben> RAM -DDEBUG -DSIZEOF_SHORT=2 -DSIZEOF_INT=4 -I./tools -I./viewer -I./files -I./a
[23:54:50] <Kirben> udio -I./headers -I./conf -I./sdl/include -c -o ucfiddle.o ./tools/ucfiddle.c
[23:54:50] <Kirben> c
[23:54:50] <Kirben> In file included from ./tools/ucfiddle.cc:25:
[23:54:52] <Kirben> tools/UCCache.h:129: type specifier omitted for parameter
[23:54:54] <Kirben> tools/UCCache.h:129: parse error before `&'
[23:54:56] <Kirben> tools/UCCache.h:159: parse error before `&'