[00:18:26] --> m0t0ro has joined #exult
[00:18:31] <-- m0t0ro has left #exult
[01:01:52] <-- chimera|wookin has left IRC (Ping timeout for chimera|wookin[holladay.cb-travel.com])
[01:50:42] <-- Kitaro has left IRC (Ping timeout for Kitaro[cpe-24-221-255-164.ut.sprintbbd.net])
[03:47:05] --> DraX has joined #exult
[03:47:07] <-- DraX has left #exult
[05:22:26] --> matt0 has joined #exult
[05:25:11] <-- matt0 has left IRC (Read error to matt0[1667079149-yippy.dsl.xmission.com]: EOF from client)
[05:25:15] --> matt0 has joined #exult
[06:07:54] <-- matt0 has left IRC (Read error to matt0[1667079149-yippy.dsl.xmission.com]: EOF from client)
[06:09:31] --> matt0 has joined #exult
[07:28:55] <-- matt0 has left IRC (Laserdisc Arcade Emulation Project: http://daphne.rulecity.com , get your CVS password today! =])
[10:06:01] --> Nadir has joined #exult
[10:13:04] <Nadir> exultbot: hi
[10:13:04] <exultbot> Hi Nadir!
[10:25:13] --> wjp has joined #exult
[10:25:18] <wjp> hi
[10:31:26] <Nadir> hi
[10:35:32] <Nadir> do you mind if I do the Video Options menu ?
[10:36:27] <wjp> not at all :-)
[10:40:58] <Nadir> what do you think we should put in the Gameplay options ?
[10:41:11] <wjp> cheat mode, for one
[10:41:16] <wjp> maybe paperdolls
[10:41:59] <wjp> the option to simulate the originals as closely as possible, if we ever decide to do that
[10:45:05] <wjp> I have to go to work; see you later
[10:45:19] <-- wjp has left IRC ([x]chat)
[11:01:59] --> wjp has joined #exult
[11:02:15] --- wjp is now known as wjp|work
[11:16:17] <-- Nadir has left IRC (Read error to Nadir[188.8.131.52]: Connection reset by peer)
[11:17:09] --> Kirben has joined #exult
[11:17:41] --> Nadir has joined #exult
[11:18:25] <Nadir> hi kirben
[11:18:42] <Kirben> Hi
[11:18:45] <wjp|work> hi
[11:19:46] <Kirben> Could someone update exult version numbers again to 0.94cvs ? not good to have several versions listed as alpha4
[11:20:04] <wjp|work> I was just doing that :-)
[11:20:40] <wjp|work> committed.
[11:20:58] <Kirben> Thanks
[11:22:46] <Nadir> good one
[11:24:27] --> mrod has joined #exult
[11:24:30] <mrod> hello
[11:24:48] <Nadir> hi
[11:24:53] <wjp|work> hi
[11:25:15] <mrod> `<wjp> the option to simulate the originals as closely as possible [...]', i like the idea very much
[11:31:17] <Nadir> We'd have to implement formation following. Apart from that it's a matter of disabling paperdolls, setting the resolution to 320x200 unscaled, using Joseph Morris' SFX... what else ?
[11:32:46] <wjp|work> depends on how far we want to go.
[11:33:12] <wjp|work> switching back to the old savegame system? disabling all non-original key shortcuts?
[11:33:12] <Nadir> Well, I was just thinking about what our "improvements" were...
[11:33:20] <Nadir> yes, those too
[11:38:13] <mrod> i guess one thing one could not have is the old savegame system (how to choose which savegames to show ? only the last ones ?)
[11:38:35] <wjp|work> yeah, that's a bit of a problem
[11:39:54] <Kirben> Is an opton really needed at all ?
[11:40:15] <Nadir> many ?
[11:40:24] <Nadir> disable this, that and the other ?
[11:40:34] <Kirben> I mean a user can set 320 x 200 x 1, no paperdools and the rest is about the same unless you want to use new features...
[11:41:14] <Kirben> And the new save game system doesn't effect gameplay...
[11:41:30] <Nadir> right
[11:43:45] <mrod> i was thinking of some kind of `meta-option' (i think i can call it this way, sort of `mode', which overrides other options as needed to give the user the most faithful reproduction of the original game; but the user settings for the `improvements-enabled' mode should not be forgot
[11:44:05] <mrod> and i've also forgot to match the parenthesis :-)
[11:44:37] <mrod> s/way,/way),/ :-)
[11:46:49] <mrod> oh well and also should i have said `forgotten' ? :-) this must not be a good day ^_^
[11:48:20] <Kirben> I like to stick as close to original as possible myself (no papperdolls for BG) but the improved graphics and other options just help improve the original gameplay
[11:48:31] <Nadir> mrod: don't worry
[11:48:40] <mrod> Nadir: :-)
[11:50:25] <mrod> i'm going to have lunch, bye, see you later
[11:50:30] <wjp|work> bye
[11:50:35] <-- mrod has left #exult
[11:51:19] <Kirben> argh! spaceports just gets worse and worse with ads, now they have pop ups!
[11:51:48] <wjp|work> :-(
[11:53:22] <wjp|work> hmm... it immediately resizes the browser to fullscreen here
[11:54:59] <Nadir> kirben: how many downloads a day do you get from the snapshots ?
[11:55:22] <Kirben> No way to tell I host another project on same site
[11:55:39] <wjp|work> could we host the snapshots on SF?
[11:58:22] <Nadir> we could
[11:59:02] <Nadir> BTW, SF automatically creates a tar.gz of the CVS tree every 24 hours
[11:59:15] <Kirben> Well SF release format makes multiple updates take much longer... so it would be a last option.
[11:59:32] <wjp|work> we wouldn't have to use the release system for them
[11:59:53] <Kirben> Sometimes I do 3-4 updates a day depeding on amount of cvs updates if I'm home.
[12:00:14] <Kirben> I thought SF was getting rid of ftp option ?
[12:00:28] <wjp|work> they are? hmm...
[12:01:41] <wjp|work> or we could use http (although I'm not sure how much quota we have there)
[12:01:51] <Nadir> wjp: I was about to say the same
[12:02:32] <wjp|work> anyway, if you ever decide you want to use SF, just let us know :-)
[12:03:03] <Kirben> I think it was in the last SF news letter
[13:18:49] <Kirben> All this fine print drives me mad, hardly any real good free web sites around
[13:18:53] <-- Kirben has left IRC (System Meltdown)
[13:19:04] --> Kirben has joined #exult
[13:19:46] <Nadir> that was quick
[13:20:21] <Kirben> quit mirc by mistake
[13:21:40] <Nadir> bbl
[13:21:45] <-- Nadir has left IRC (Read error to Nadir[184.108.40.206]: Connection reset by peer)
[13:23:46] --> Colourless has joined #Exult
[13:23:52] <Colourless> hi
[13:35:30] <Kirben> Hi Colourless
[13:36:04] <Kirben> Took long enough to all through each sites fine print/help sections but I finally found a decent free site.
[13:36:13] <Kirben> http://blake.prohosting.com/kirben/
[13:36:36] <Kirben> files aren't online yet
[13:41:34] <Kirben> ok if anyone has access to exult home page you can change link now
[13:56:12] <Kirben> argh! not again
[13:57:11] <Kirben> I uploaded sites only to find it won't allow .exe or .zip downloads!
[13:57:31] <Kirben> Can anyone else download from that site above ^ ?
[13:58:28] <Colourless> yeah, I can
[13:59:23] <Kirben> thats odd
[14:00:00] <Colourless> it brings up an 'add' page where you have to then click the download to actually download
[14:00:38] <Kirben> When I try to actually download here the ad page just keeps getting redisplayed...
[14:01:22] <Colourless> it works here. sounds like you are having a cache issue
[14:04:26] <Kirben> oh well, as long as it works for everyone else.
[14:06:04] <wjp|work> hi Ryan
[14:06:20] <Colourless> hi wjp
[14:06:50] <wjp|work> downloading from that page works for me
[14:07:00] <wjp|work> it's not really fast, but it's working
[14:07:15] <Kirben> how slow ?
[14:07:19] <wjp|work> 6 Kb/s
[14:07:28] <Kirben> Thats not too bad
[14:07:41] <wjp|work> yes it is :-)
[14:09:06] <wjp|work> btw, you can probably remove the note about savegame names
[14:09:34] <wjp|work> and the "Requires 15.03.2001 or later" shouldn't be necessary anymore, either
[14:10:33] <Kirben> done
[14:10:47] <wjp|work> also, could you include the Photoshop plugin somewhere?
[14:10:49] <Kirben> I removed note about old bundled .dll file too
[14:11:21] <Kirben> seperately you mean ? it is in source code snapshots
[14:11:48] <wjp|work> hmm, maybe in the 'win32 tools'?
[14:13:22] <Colourless> that could easily be done
[14:13:33] <Colourless> would just need a modification to the make file
[14:13:47] <Kirben> what description ?
[14:14:32] <wjp|work> "an Adobe Photoshop plugin for the U7 .shp image format" ?
[14:15:19] <Kirben> done
[14:15:24] <wjp|work> thanks
[14:16:21] <wjp|work> want me to update the links from the exult page?
[14:16:31] <Kirben> Should I remove note about MIDI sound effects been removed ? or maybe change it to: sound sets are require for sound effects
[14:16:34] <Kirben> Yes please
[14:17:10] <wjp|work> changing it sounds good
[14:17:19] <Colourless> yeah, change that
[14:23:56] <wjp|work> ok, pages have been updated
[14:27:09] --- wjp|work is now known as wjp
[14:27:17] <wjp> time to go home :-)
[14:27:20] <wjp> bye
[14:27:26] <-- wjp has left IRC ([x]chat)
[14:29:58] <Kirben> I have to go too, Night
[14:30:05] <Colourless> night
[14:30:14] <-- Kirben has left IRC (System Meltdown)
[14:50:50] --> Nadir has joined #exult
[14:50:58] <Nadir> hi
[14:51:20] <Colourless> hi
[14:51:34] <Nadir> I've rewritten TODO
[14:51:43] <Nadir> just committed
[14:52:09] <Colourless> ok
[14:52:20] <Colourless> just got the emai
[14:52:22] <Colourless> l
[14:53:55] <Nadir> I noticed the comment about copy8
[14:54:21] <Colourless> yeah, I'm looking at it now
[14:54:26] <Nadir> why are we doing a for() in ibuf8.cc:210 instead of memcpy ?
[14:54:55] <Colourless> seppd
[14:54:57] <Colourless> speed
[14:55:00] <Colourless> i would guess
[14:55:01] <Nadir> is it faster ?
[14:55:13] <Colourless> memcpy is going to have function overhead
[14:55:35] <Nadir> memcpy is going to be implemented using native string copy functions though
[14:56:26] --> wjp has joined #exult
[14:56:31] <Nadir> wb wjp
[14:56:39] <wjp> thanks
[14:56:42] <Colourless> ideally we should be using MMX in places like that... but that would need asm
[14:56:51] <Colourless> wb
[14:57:15] <wjp> using asm isn't necessarily a bad thing
[14:57:17] <Nadir> asm is not a good answer. I believe we're wasting cycles elsewhere
[14:57:31] <Colourless> yeah
[14:57:37] <Nadir> we need better caching of shapes
[14:57:51] <Nadir> do we garbage collect unused shapes ?
[14:57:56] <Colourless> change the code to 32 bit from 8 bit will decrease instructions by about 4x
[14:58:19] <Nadir> using int instead of unsigned char
[14:58:21] <wjp> Nadir: using memcopy makes copy8 a lot slower, unfortunately
[14:58:22] <Colourless> copy8 is a prime target for such a thing
[14:58:34] <Colourless> nadir: yeah t
[14:58:46] <Nadir> but we must be sure that we're aligned on 4bytes
[14:58:56] <Colourless> not to much of a problem.
[14:59:37] <Nadir> shouldn't we use asserts for stuff like if(!src_pixels) cerr << "WTF..." ?
[14:59:52] <wjp> yeah, we should
[15:00:15] * Colourless is not so certain
[15:00:27] <Nadir> is memcpy slower in copy8 because we're just copying short runs ? copy_line8 uses memcpy
[15:00:28] <Colourless> not for release builds anyway
[15:01:27] <wjp> I think I'll setup a small 'test run' (like 'buildmap') to allow more accurate profiling of the drawing routines
[15:01:28] <Colourless> of course with release builds, assert shouldn't do anything anyway
[15:02:38] <Nadir> Colourless: agreed
[15:03:19] <Nadir> have you read my TODO then ?
[15:03:47] * wjp downloads the new TODO
[15:04:12] <Nadir> It's just a bunch of suggestions. Maybe we should advertise it and get some new contributors.
[15:04:20] <Nadir> The team is stagnating a bit :)
[15:04:44] <Colourless> the todo looks ok
[15:05:13] <Nadir> obviously bugs are not included :)
[15:05:31] <Nadir> But then again we all know that Exult is "Bug Free(tm)"
[15:05:48] <Colourless> advertising might be a good idea. of course, i think the team is stagnating because there is really 'that' much to do. Most of it is bug finding in SI and working out unkonwn intrinsics, which can be really really boring.
[15:06:17] <Nadir> Let's leave that to Jeff >)
[15:06:19] <wjp> well, working out usecode stuff is kind of fun :-)
[15:06:25] <wjp> (but then again, I haven't done that much of it yet)
[15:06:25] <Nadir> and wjp
[15:06:37] <Nadir> :)
[15:06:39] <wjp> :-)
[15:06:46] <Colourless> if you say so
[15:12:17] <Nadir> Careful optimization should allow us to go faster without asm. Have you seen the progress of Mozilla in the latest milestones ?
[15:15:45] <Colourless> yeah, asm shouldn't really be needed
[15:15:49] <Nadir> wjp: I don't think you should have added the PhotoShop plugin to CVS like that
[15:16:34] <wjp> yeah
[15:16:34] <wjp> things like caching the chunk_flats and RLE'd shapes should help a lot
[15:16:34] <wjp> the point scaler looks like it can be done faster too
[15:16:45] <Colourless> wjp: yeah I know
[15:16:57] <-- wjp has left IRC (farmer.openprojects.net pratchett.openprojects.net)
[15:16:59] --> wjp has joined #exult
[15:17:22] <Colourless> i'm going to rewrite aspects of the scalers to make them faster and more flexible.
[15:17:58] <Nadir> what about rendering the mouse pointer after the scaling (as I mentioned in the TODO) ?
[15:18:09] <Colourless> i'm also thinking of adding new ones like an interpolated interlaced scaler
[15:18:25] <wjp> speaking of which, we still should get rid of that artifacting around the edges with the scalers
[15:18:43] <Colourless> but what is causing it????
[15:19:12] <Nadir> bbl
[15:19:15] <-- Nadir has left IRC (I feel like dumping a core)
[15:19:16] <wjp> we need to expand the edges a bit, because things outside the edges affect things inside the edges
[15:19:26] <wjp> (and vice-versa)
[15:19:47] <Colourless> ah yeah
[15:21:05] <Colourless> that would probably explain it. The 2xSAI and SuperEagle scalers probably dont use pixels that are out of the updated region
[15:21:51] <wjp> yeah, they do, but the pixels directly outside of the updated region depend on those inside, and so should be updated too
[15:22:07] <Colourless> never though of that case
[15:24:30] <Colourless> would guess that subtracting and adding 4 to the region dimentions may fix the problem
[15:24:46] <wjp> 4 is a bit much I think
[15:25:31] <wjp> 2xSAI needs to be expanded 2 to the left&top, 1 to the right&bottom, I think
[15:25:32] * Colourless thinks
[15:26:02] <wjp> although I'm not entirely sure
[15:26:14] <Colourless> 2 in all directions would be safest
[15:26:33] <wjp> we could try gradually expanding it
[15:26:48] <Colourless> yeah.
[15:27:31] <Colourless> i've been thinking should I commit my MSVC stuff. What I've had to change shouldn't break other compilers, but I fear that it might
[15:27:35] * Colourless is unsure of what to do
[15:27:58] <wjp> some of the changes should definitely be committed
[15:28:06] <Colourless> yeah
[15:30:17] <Colourless> i guess I'll commit thet changes.
[15:31:00] <Colourless> You wouldn't beleive the amount of files I've changed. Mostly just the simple things like multiply "for (int i=0;"
[15:31:20] <Colourless> you wouldn't beleive how fast Exult compiles using MSVC. It's seriously fast
[15:31:43] <wjp> really? hmm... I always thought MSVC compiled things really slow
[15:32:16] <Colourless> not in my experience
[15:32:27] <Colourless> using a precompiled header problem helps exult a little bit
[15:32:43] <Colourless> i made the kludges file into a precompiled header
[15:33:06] <Colourless> i also removed that asm hack i did because it only worked in debug builds
[15:33:28] <wjp> my god... I'm getting _huge_ framerates now
[15:33:37] <Colourless> what did you do?
[15:33:45] --> Nadir has joined #exult
[15:34:05] <wjp> I automated displaying the entire map screen by screen
[15:34:17] <wjp> it's moving so fast it's scary
[15:34:19] <wjp> wb
[15:34:21] <Colourless> wb
[15:34:45] <wjp> (and not even in fullscreen mode yet)
[15:34:46] <Nadir> thx
[15:36:35] <Nadir> wjp: you're just displaying the map from top-left to bottom right ?
[15:36:45] <wjp> yeah
[15:36:59] <Nadir> unscaled
[15:37:00] <wjp> something like buildmap, but with display turned on
[15:37:23] <wjp> currently unscaled, yes
[15:37:49] <Nadir> to profile it properly make it go through the sequence many (>50) times
[15:38:02] <wjp> it already takes minutes now
[15:38:45] <wjp> well, 2 minutes
[15:42:26] * wjp is confused
[15:42:35] <wjp> why are Time_queue::remove & Time_queue:add taking up the most time?
[15:42:50] <Colourless> :)
[15:43:07] <Colourless> that's almost a quotes.txt sort of a comment.
[15:43:37] <wjp> :-)
[15:43:47] * wjp pauses the game before doing the display run
[15:44:29] <Nadir> bob has finally updated the Game Tome
[15:45:58] <wjp> time_queue is _still_ at the top
[15:45:58] <Nadir> have you played Nethack Falcon Eye?
[15:46:10] <wjp> Nadir: yeah, I just tried that last week
[15:46:14] <wjp> looks pretty good
[15:46:16] <Nadir> yep
[15:46:41] <wjp> I kept running out of food around level 6 though, so I kind of gave up :/
[15:46:46] <Nadir> Worldforge is going pretty well
[15:51:18] <Colourless> changing the unsigned chars to uint32
[15:51:25] <Colourless> has made a bit of a difference
[15:53:09] <Nadir> how much ?
[15:53:49] <Colourless> hard to say with a 1 Ghz athlon machine. Anyway 800x600 did run smoother
[15:54:37] <Nadir> Didn't you profile it ?
[15:54:49] <Colourless> no.
[15:54:56] * Colourless doesn't have tools
[15:55:58] <Nadir> send the patch to wjp...
[15:56:13] * wjp kill -9's the tqueue ;-)
[15:56:24] <wjp> what calls that stupid thing??
[15:56:36] <Nadir> It would be nice to say "We have a x% speedup" instead of "It seems faster?"
[15:56:50] <wjp> :-)
[15:57:50] <wjp> finally! ok... time_queue calls are gone...
[15:58:03] <wjp> (the animated objects where spawning animator objects)
[15:58:13] <Nadir> Does that improve things ?
[15:58:26] <wjp> it's now 3 times as fast
[15:58:33] <Nadir> doing buildmap ?
[15:58:42] <wjp> no, the test run I built
[15:58:53] <Nadir> How does that impact Exult ?
[15:59:02] <wjp> nothing animates now :-)
[15:59:18] <wjp> maybe we should get some kind of global animator, instead of giving each object its own
[15:59:35] <Nadir> hmm
[16:01:42] <Nadir> indeed
[16:02:27] <wjp> now let's try it with a scaler...
[16:02:38] <wjp> which one should I try?
[16:03:13] <Nadir> I guess 2xSaI as it's the default one
[16:03:43] <wjp> oh, oops, this is supereagle
[16:03:49] * wjp wasn't thinking straight for a sec.
[16:03:58] <wjp> I'll try 2xSAI next :-)
[16:04:43] <wjp> *yawn*
[16:04:54] <wjp> it just reached Britain...
[16:05:35] <wjp> (it's going top-left -> bottom-right, with the y loop as the inner loop)
[16:05:40] <Nadir> scaling is slow
[16:05:46] <Colourless> yeah i know
[16:06:14] <Colourless> i just tried on a cyrix pr266 and exult probably ran at like 1/8th of the speed
[16:06:32] <Colourless> that was with the point scaler!
[16:07:13] <wjp> the point scaler does too many memory reads, btw. Maybe it should only read each source pixel once
[16:07:35] <Colourless> yeah i'm going to rewrite it
[16:08:10] <wjp> ...now over dagger isle...
[16:08:19] <wjp> ...isle of the avatar...
[16:08:36] <Nadir> one loop is enough then :)
[16:08:59] <wjp> done
[16:09:26] <wjp> 92% of the time in the scaler
[16:10:12] <Nadir> What was that U7 project that scaled things on install ?
[16:10:17] <wjp> 13 times slower
[16:10:30] <wjp> umm... that was... umm...
[16:10:54] <wjp> 'u7 conversion project' ?
[16:11:07] <Nadir> yeah. Great name :)
[16:11:26] <Nadir> aka The Guardian Engine
[16:12:04] <Colourless> which IMO is worse... because it's cliched
[16:12:21] <wjp> but their webpage is kind of gone
[16:12:43] <Nadir> Exult is a cool name.
[16:12:53] <wjp> yeah, very
[16:12:55] <Nadir> exultbot: Isn't Exult a cool name ?
[16:13:07] <exultbot> yes!
[16:13:18] <Nadir> :)
[16:13:25] <Colourless> hmm. i could so easily hard code the point sampling scaler... but i want it to be able to support multiple scale factors.... what to do... what to do...
[16:13:38] <Nadir> exultbot: here's a cookie
[16:13:56] * exultbot happily eats the cookie
[16:13:58] <Nadir> have two versions. a hardcoded 2x and a variable one
[16:14:03] <exultbot> woof!
[16:14:18] <Colourless> yeah. i'll hard code 2 and probably 3x and 4x as well
[16:14:49] * wjp runs 2xSaI now
[16:15:16] <Nadir> wjp: don't fall asleep on the keyboard
[16:15:18] <wjp> it seems to be a bit faster than supereagle
[16:15:25] <wjp> :-)
[16:15:34] <Colourless> it should be
[16:15:43] <Nadir> I believe Derek developed 2xSaI after SuperEagle
[16:15:54] <Colourless> he did?
[16:16:13] <Colourless> i only ever usually see 2xSaI being used
[16:16:28] <wjp> ...silverleaf trees...
[16:17:16] <wjp> ...cove...
[16:18:06] <wjp> ...vesper...
[16:18:43] <Nadir> Derek has a MMX version of 2xSaI on his web page
[16:19:05] <wjp> ...the black gate...
[16:19:45] <Nadir> oops, SuperEagle came after 2xSaI
[16:20:24] <wjp> 2xSaI is a bit faster
[16:20:33] <wjp> only 10 times as slow as unscaled
[16:20:50] <Colourless> try point for me
[16:21:12] <wjp> for comparison:
[16:21:29] <wjp> supereagle takes 0.026 seconds/call
[16:21:41] <wjp> 2xSaI takes 0.021 seconds/call
[16:21:47] <wjp> (on average)
[16:21:51] <Colourless> that's pretty slow really
[16:22:26] * wjp runs the point scaler
[16:23:17] <wjp> I wonder how much profiling distorts the actual times
[16:27:59] <Nadir> there are 2 e-mails from Max to exult-general
[16:28:01] <Nadir> !!!
[16:28:08] * Nadir falls off the chair
[16:28:18] <wjp> point scaler is just as fast/slow as 2xSaI
[16:28:27] <Colourless> whoa.
[16:28:35] <Colourless> i would have never thought
[16:28:36] <Nadir> bad colourless
[16:28:40] <wjp> although, no... a bit faster
[16:28:51] <wjp> 0.019 seconds/call
[16:28:58] <Colourless> interlaced should be about 1.5x faster i would think, less memory accesses
[16:29:39] <Nadir> colourless: send that patch to copy8 to wjp so he can profile it
[16:30:15] <Colourless> will do
[16:31:25] --> fingolfin has joined #exult
[16:31:26] * wjp wonders why nothing is happening with that DCC
[16:31:31] <wjp> hi Max!
[16:31:35] <fingolfin> booo
[16:31:36] <Colourless> hi
[16:31:40] <fingolfin> hi willem!
[16:31:41] <Nadir> fingolfin!!!
[16:31:45] <fingolfin> hi tristan
[16:31:47] <fingolfin> hi ryan
[16:31:51] <fingolfin> hi exultbot
[16:31:53] <fingolfin> ;)
[16:32:01] <exultbot> hi :-)
[16:32:05] <fingolfin> just sent two emails to the ML regarding profiling ;)
[16:32:32] <wjp> did you read the log of the past hour?
[16:33:03] --> Cless has joined #Exult
[16:33:59] <Colourless> ah ok. that's working
[16:34:30] <-- Cless has left IRC (Leaving)
[16:34:31] <fingolfin> wjp: nope...
[16:35:04] * wjp gets a ton of compile errors
[16:35:36] <Colourless> what? where? why?
[16:35:43] <wjp> you need exult_types.h
[16:36:16] <Colourless> that might cause problems.... i've automatically included in my precompiled headers
[16:36:32] <Colourless> bad me
[16:36:53] * wjp wants precompiled headers too
[16:37:39] <wjp> Colourless: about 15% faster!
[16:37:41] <Nadir> gcc 3.1 will have them
[16:37:47] <wjp> (copy8, that is)
[16:38:20] <fingolfin> gcc on OS X has precomp headers, too ;)
[16:38:32] <fingolfin> but I really should fix the MacOS crash and make a release, too
[16:38:47] <fingolfin> but i am too busy
[16:39:00] * Colourless though there would be a greater gain than 15%
[16:39:03] <wjp> Colourless: no, make that 11%
[16:39:14] <Nadir> that is good !
[16:41:40] <wjp> Colourless: aren't you assuming that the start of both the src/dest rectangles is word-aligned?
[16:42:21] <Colourless> yeah.
[16:42:29] <Colourless> it's not quite the right thing to do
[16:42:47] <wjp> how much faster word-aligned memory accesses?
[16:42:49] <Colourless> i should at least ensure one of them is aligned
[16:43:01] <wjp> s/faster/faster are/
[16:43:11] <Colourless> on some architechtures (alpha for instance) it's much faster
[16:43:25] <Colourless> on x86 from what I know, it doesn't make a huge difference
[16:44:21] <Nadir> re: precompiled headers in GCC read http://gcc.gnu.org/ml/gcc/2001-07/msg00048.html
[16:47:18] <fingolfin> aligned data is much faster on almost all modern architectures, including recent Intel/AMD processors
[16:47:48] <fingolfin> and ryan, you said something (in the channel log) about wanting to hard code some scaling factor, but OTOH you wanted to be able to support different factors...
[16:48:07] <Colourless> yeah I did
[16:48:10] <fingolfin> ryan: w/o looking at any code, how about using some #defines for the scalers, OR, using templates
[16:48:21] * fingolfin has no clue what he is talking about anyway ;)
[16:48:31] * Colourless can tell he has no idea :)
[16:48:36] <fingolfin> ryan: if you point me at the exact code you talk about?
[16:48:44] <fingolfin> ryan: who is he? ;)
[16:49:00] <fingolfin> ryan: you or me? ;
[16:49:08] <Colourless> you of course ;-)
[16:49:20] <wjp> fingolfin: ibuf8.cc, copy8 (around line 200)
[16:49:39] <wjp> fingolfin: or did you want the scaler?
[16:50:13] <fingolfin> wjp: ryan was talking about a scaler, I think...
[16:50:33] <wjp> well, we've been talking about both the scaler and copy8 :-)
[16:51:57] <wjp> point scaler is at the bottom of imagewin/scale.cc
[16:52:27] <Colourless> fingolfin: i wouldn't think either #define or templates would be suitable for the scalers.
[16:53:53] <Colourless> not for the point sampling scaler anyway
[16:54:20] <wjp> (we're already using some templates in the scalers, btw)
[16:54:43] <Colourless> yeah I know
[16:55:41] <Colourless> even know it's not really possible, but rid of the template would probably make it faster
[16:55:53] <Colourless> but GETTING rid
[16:56:14] <wjp> I thought templates just made compiling slower?
[16:56:32] <Colourless> the class Manip_pixels adds a function call
[16:56:43] <wjp> hmm, yeah, that's true
[16:58:02] <fingolfin> well, templates have the nice impact that they indeed get resolved at compile time. and if you want to optimize special cases, well, that is easy, too, just add a partial specialistation
[16:58:13] <fingolfin> but I really ought to look at the code first ;)
[16:59:34] * Nadir is about to leave
[16:59:48] <wjp> ok, see you later
[16:59:51] <-- Nadir has left IRC (Read error to Nadir[220.127.116.11]: Connection reset by peer)
[17:04:25] <fingolfin> Colourless: which factor exactly did you want to "factor out" ? the scaling factor, or what?!?
[17:04:43] <fingolfin> I assume, the goal was to allow for 32 bit access?
[17:05:16] <Colourless> i wanted to create a 32bit method that was independant of the scale factor and attempted to reduce memory reads as much as possible
[17:05:29] <fingolfin> Scale_point is the function we talk about
[17:05:34] <fingolfin> ?
[17:05:34] <Colourless> yeah
[17:05:56] <fingolfin> you can save at replace one mult with an add, BTW ;)
[17:06:33] <fingolfin> and factor out y/factor and x/factor, storing the results (although a clever compiler should do that automatically)
[17:06:39] <Colourless> yeah probably
[17:06:51] <fingolfin> in fact, you can replace two muls with adds
[17:08:02] <Colourless> you can rewrite it if you want to :)
[17:08:19] <fingolfin> I just see that x/factor needs to be recalculated every time :/ do we allow arbitrary facotrs, or only 2^n ?
[17:08:37] <Colourless> i was allowing for any
[17:08:48] <Colourless> 3x is a useful factor to have
[17:09:08] <fingolfin> agreed, also it might be worthwhile to add special cases for 2^n or 4*n...
[17:10:38] <fingolfin> are we dealing with 8bit graphics only here?
[17:11:00] <Colourless> yeah, the pointer scaler is 8bit only
[17:11:06] <fingolfin> good
[17:11:08] <Colourless> i mean point scaler
[17:11:47] <fingolfin> I will try to make an optimized version, but I canīt test it here much... could somebody of you profile it? or it would have to wait for my exams to be over ;)
[17:11:58] * fingolfin will give it a try right now, in any case
[17:14:48] <Colourless> why couldn't every system be little endian! it would make things much simpler.
[17:15:12] <fingolfin> nah, why canīt they all be big endian, it would make things much simpler!
[17:15:24] <Colourless> you really think so
[17:15:42] <fingolfin> btw, I think it is almost impossible to 32bitize the point blitter - the problem is that you must blit one source byte to multiple targets
[17:15:50] <fingolfin> ryan: yeah, little endian is weird ;)
[17:16:05] <fingolfin> I know why the "net" encoding is big endian ;)
[17:16:15] <fingolfin> letīs do a holy war ;)
[17:16:19] <Colourless> bah, i'll hear none of that
[17:16:40] <Colourless> take this example:
[17:16:45] <wjp> gulliver's travels all over again :-)
[17:16:50] <Colourless> char *charp;
[17:17:02] <Colourless> int32 i;
[17:17:13] <Colourless> i = 50;
[17:17:25] <Colourless> charp = (char *) i;
[17:17:51] <fingolfin> well?
[17:17:53] <Colourless> i &= 0xff should equal *charp
[17:18:01] <Colourless> it doesn't in big endian!
[17:18:08] <wjp> converting an integer to a char pointer?
[17:18:12] <fingolfin> hu?
[17:18:21] <Colourless> opps, that's not quite right
[17:18:42] <fingolfin> i &= 0xff is still 50... and *charp of course is 0
[17:18:56] <fingolfin> but of course you meant
[17:19:01] <fingolfin> charü = (char *) &i;
[17:19:07] <fingolfin> charp even ;)
[17:19:14] <Colourless> yeah, that's what I mean
[17:23:12] <fingolfin> hmmm... I just see that it is even simple to speed up Scale_point - I can remove all divisions, and instead add some mults, which I then can remove again
[17:28:42] <fingolfin> hm, how do I get emacs to recognize .cc as C++ files?
[17:29:05] <wjp> good question
[17:32:57] <wjp> fingolfin: some of the exult .cc files are explicitly marked as 'fundamental mode', btw
[17:34:16] --- wjp is now known as wjp|dinner
[17:34:22] <wjp|dinner> bbl
[17:35:15] <fingolfin> wjp|dinner: indeed! that was the problem!
[17:35:24] <fingolfin> but... why is that so?
[17:37:16] <Colourless> so, what sort of speed do you think this would have? *to++ = *to++ = *to2++ = *to2++ = *in++;
[17:37:41] <Colourless> for hard coded 2x btw
[17:39:18] <fingolfin> not sure, but it is quite ugly ;) it seems as if it would work, though
[17:43:54] <fingolfin> ugh! autogen.sh gives me errors!
[17:45:56] <fingolfin> configure.in:17: warning: AC_CANONICAL_BUILD invoked multiple times
[17:45:56] <fingolfin> configure.in:107: error: AC_REQUIRE: cannot be used outside of an m4_defun'd macro
[17:45:56] <fingolfin> configure.in:107: AC_PROG_CPP is required by...
[17:45:56] <fingolfin> configure.in:107: the top level
[17:53:11] <fingolfin> commenting out line 107 helps a bit
[17:54:35] <fingolfin> now I get this:
[17:54:39] <fingolfin> configure.in:17: warning: AC_CANONICAL_BUILD invoked multiple times
[17:54:39] <fingolfin> configure.in:110: warning: AC_PROG_LEX invoked multiple times
[17:54:39] <fingolfin> configure.in:131: error: possibly undefined macro: AC_PROG_CXX_WORKS
[17:54:39] <fingolfin> configure.in:132: error: possibly undefined macro: AC_PROG_CXX_GNU
[17:54:42] <fingolfin> grmbls
[17:54:55] --- wjp|dinner is now known as wjp
[17:54:57] <wjp> hmm, weird
[17:55:06] <wjp> did you upgrade autoconf recently?
[17:56:59] <fingolfin> yeah, am using 2.50 - that propably is the source of my troubles. guess it is more strict
[17:57:07] <fingolfin> anyway, commenting out the offending lines helped
[17:57:50] <fingolfin> <sigh> now ./configure fails...
[17:58:09] <wjp> Colourless: it looks like removing the 'if (end_align)' saves another couple of ms
[17:58:12] <wjp> (in copy8)
[17:58:41] <Colourless> yeah? it was probably not required anyway
[18:01:09] <fingolfin> sigh, so I canīt compile here right now :/ anybody to whom I could send my "optimized" code, for testing & maybe profiling?
[18:01:13] <fingolfin> (if it works at all ;)
[18:01:23] <wjp> sure, send it over here
[18:07:28] <fingolfin> wjp: sent. I am not even sure right now if it compiled <cough> I was too lazy to figure out the exact command line to compile the file (including all path specifiers, e.g. for SDL). Iīll rather try to fix configure(.in)
[18:11:09] <wjp> it compiles :-)
[18:11:28] <fingolfin> wjp: before you complain: I did not yet do all possible optimizations ;)
[18:11:39] <fingolfin> wjp: cool! strange, too ;) tell me where it crashes, pls
[18:11:40] * wjp was just about to complain ;-)
[18:11:48] <fingolfin> ;)
[18:11:55] <fingolfin> and of course we need the interlaced version, too ;)
[18:12:27] <fingolfin> and maybe it would be a good idea to change "int factor" to "const int factor" to give the compiler an optimization hint -> loop unrolling possible
[18:12:53] <fingolfin> ack
[18:13:19] * fingolfin stars at his new (slightly obfuscated) code and wonders if that is right
[18:13:25] <fingolfin> s/stars/stares
[18:13:33] * wjp waits with running it for a few secs
[18:14:24] <fingolfin> it *seems* all right...
[18:14:51] <wjp> there's an 'x*factor' outside of the x loop
[18:15:25] <fingolfin> ugh, yeah
[18:15:28] <wjp> s/x/srcx/ ?
[18:15:29] <fingolfin> it must be srcx of course
[18:15:31] <fingolfin> yeah
[18:15:48] * fingolfin already added some other "improvements"
[18:16:06] <wjp> the endpoints for the x and y loops are wrong too
[18:16:21] <fingolfin> hu?
[18:16:25] <fingolfin> they are? why that?
[18:16:31] <wjp> srcy+srch
[18:16:37] <fingolfin> nope
[18:16:43] <fingolfin> look at the top of the function
[18:16:44] <fingolfin> ;)
[18:16:54] <fingolfin> srch+=srcy;
[18:16:54] <fingolfin> srcw+=srcx;
[18:17:03] <wjp> oh, ok :-)
[18:17:07] <wjp> how ugly :-)
[18:17:13] <fingolfin> but faster
[18:17:23] <fingolfin> well, a bright compiler will do this anyway
[18:17:30] <wjp> ok... I'll be 'away' while it runs...
[18:17:47] <Colourless> never trust the compiler to make an obvious optimization
[18:18:21] <fingolfin> exactly ;)
[18:18:27] <fingolfin> wjp: uh oh!
[18:18:38] <fingolfin> wjp: that is risky, it might format your disk! ;)
[18:18:40] <fingolfin> disc even
[18:18:51] * fingolfin will be out here for a couple of mins, too
[18:19:19] <Colourless> disk is the correct spelling
[18:19:29] <Colourless> no one spells it disc
[18:20:10] <Colourless> of course, that is in all my computing experience, i've never seen it spelts disc... until now
[18:21:29] <wjp> wow... that really worked wonders
[18:21:42] <wjp> only 4.6 ms/call
[18:22:03] <wjp> (compared to about 18 ms/call)
[18:30:04] <Colourless> wierd i just created a 640x640 image in PSP, and it doesn't look square at all
[18:33:05] <-- Colourless has left IRC (Ping timeout for Colourless[ppp328.adelaide.on.net.au])
[18:33:10] <fingolfin> wjp: good! ;)
[18:33:28] <wjp> I did another couple of optimizations, and it went down to below 3 ms/call
[18:33:31] <fingolfin> wjp: I will email you yet another version in a few ;)
[18:33:34] <fingolfin> oh
[18:33:36] <fingolfin> well
[18:33:39] --> Colourless has joined #Exult
[18:33:42] <wjp> mail it anyway :-)
[18:33:45] <fingolfin> maybe send me what you did, then I merge it? ;)
[18:33:48] <fingolfin> or that way ;)
[18:34:10] <wjp> I just removed all mult's from the loops
[18:34:40] <fingolfin> ah yeah, thatīs what I did, and I also removed a couple of array access
[18:34:41] <wjp> and moved the source[ss+x] from the inner loop, but the compiler should have done that anyway
[18:34:45] <fingolfin> yeah ;)
[18:34:47] <fingolfin> same changes
[18:34:48] <wjp> hehe :-)
[18:36:30] <wjp> I was wondering... would it be faster to move the off_y loop to inside the x loop?
[18:36:53] <fingolfin> I doubt it as locality would be reduced
[18:36:54] <wjp> it would save the array accesses, but add branches
[18:37:08] <fingolfin> but you would hinder the cache, which is most important, I think
[18:37:24] <wjp> yeah, you're probably right
[18:38:08] <wjp> time for another run...
[18:38:45] <Colourless> yeah, cache hits are more important
[18:41:39] <fingolfin> wjp: I just emailed you my version, if you want check which is better, and/or integrate it with your changes
[18:42:11] * fingolfin will soon write a CS exam, that besides MIPS assembler and datapaths also deals with Cache/VM ;)
[18:42:23] <fingolfin> and with Minaml Disjunct Forms... blech
[18:42:31] <fingolfin> Minimal even ;)
[18:43:03] <fingolfin> Minaml... that sounds like a japanes programming language... or maybe something like XML/HTML? ;)
[18:44:03] <Colourless> heh
[18:44:12] <fingolfin> wjp: btw, I just see I forget to optimize dest[temp++] - I hope you did? ;) or should I... ?
[18:44:49] <wjp> hmm?
[18:45:44] <fingolfin> array access is bad; using something like myPtr++ instead of myArray[idx++] is faster
[18:45:48] <fingolfin> and in fact...
[18:45:50] <fingolfin> I think...
[18:46:00] <fingolfin> we can get rid of several variables if I just modify dest directly...
[18:46:34] <wjp> true
[18:46:49] * Colourless is getting something to eat
[18:49:06] <fingolfin> wjp: I am working on it...
[18:55:13] <fingolfin> wjp: ok, try the one I emailed you ten seconds ago ;)
[18:55:13] --- fingolfin is now known as Fingolfin|dinner
[18:55:23] <wjp> will do
[19:00:55] <-- Colourless has left IRC (Ping timeout for Colourless[ppp328.adelaide.on.net.au])
[19:02:29] <wjp> that helped another few tenths of ms/call
[19:02:56] <wjp> it's now just a bit more than twice as slow with the point scaler than without
[19:03:32] <wjp> (although it will be much more in reality, because SDL has to move 4 times as many pixels around too)
[19:04:30] --> Colourless has joined #Exult
[19:07:25] * Colourless decides to have a look at the RLE code...
[19:07:42] * Colourless thinks there might be an obvious optimization
[19:09:53] <Colourless> ouch.
[19:09:53] * Colourless thinks that things could be done better
[19:10:42] <Colourless> too many function calls.
[19:10:55] <wjp> yeah
[19:11:15] <Colourless> in addition the code should be part of the image_buffer code, not part of the shape_frame
[19:11:23] <Fingolfin|dinner> where is the RLE blitter? in which file/line?
[19:11:31] <wjp> vgafile.cc, around 400
[19:12:01] * wjp tries an unrolled factor-2 point-scaler
[19:15:28] <wjp> ouch... that's quite fast :-)
[19:15:40] <wjp> 1.4 ms/call
[19:16:01] <Colourless> impressive
[19:16:09] * Colourless has to see this code sometime
[19:16:16] --> Dominus has joined #Exult
[19:16:19] <wjp> which puts the scaler below 50% CPU
[19:16:29] <wjp> hi Dominik
[19:16:30] <Dominus> hi guys
[19:16:33] <Colourless> hi
[19:18:08] --> sty has joined #exult
[19:18:15] <sty> ave
[19:18:30] <Colourless> hi
[19:19:35] <wjp> hi
[19:21:42] <Dominus> I am doing a huge FAQ update today or tomorrow, any suggestions for entries or changes (apart from changing the snapshot references, updating to the latest release)
[19:22:06] <Dominus> btw, wjp thx for changing the link to Kirbens page
[19:22:14] <wjp> np
[19:22:36] <wjp> I only changed the .xml, btw. (and the .html manually... bad me :-) )
[19:22:57] <Dominus> ahh, I wondered :-)
[19:23:16] <wjp> how do you create the .html & .txt, btw?
[19:23:41] <Dominus> with Xalan and Java
[19:23:43] * wjp thinks there should be a Makefile in docs/faq :-)
[19:24:03] <Dominus> not really as you can go different ways
[19:24:23] <wjp> different ways?
[19:25:15] <Dominus> and for the Xalan way you need the Java Runtime Env.
[19:25:46] <Dominus> other ways are programs that build the html with the xsl without needing the Java runtime
[19:26:02] * wjp still thinks there should be a makefile :-)
[19:26:25] <Fingolfin|dinner> wjp: well
[19:26:33] <Fingolfin|dinner> wjp: what is the default location of xalan???
[19:26:37] <Fingolfin|dinner> hi dominus!
[19:26:42] --- Fingolfin|dinner is now known as Fingolfin
[19:26:43] <Dominus> hi Max
[19:27:07] <Fingolfin> wjp: so we have a speed up of over factor 10 or what? ;)
[19:27:12] <Fingolfin> wjp: cool
[19:27:16] <wjp> oh yes, easily :-)
[19:27:41] <Colourless> you da man
[19:27:42] <wjp> the unrolled factor-2 one is about 15 times as fast
[19:28:30] <wjp> (excluding the time it takes SDL to display everything)
[19:29:03] <Dominus> if you have xalan and Java env you only need to type "java org.apache.xalan.xslt.Process -IN exult_faq.xml -XSL faq_html.xsl -OUT faq.shtml" (at least for windows), I could include a readme where to find the neccessary stuff
[19:29:27] * Fingolfin suddenly doesnīt feel wortheless anymore ;)
[19:29:54] <wjp> oh, btw, the FAQ didn't pass the XML validator anymore, last time I checked
[19:30:11] <wjp> the img tags for the counter...
[19:30:37] <Fingolfin> ahrm... we need to update the DTD then, I guess............
[19:30:59] <wjp> well... you could just modify the counter a bit
[19:31:04] <Dominus> :-) wjp: Iīm only using all the stuff Fingolfin wrote
[19:31:23] <wjp> <img src="1.gif"> to <img src="1.gif"/> or something
[19:32:13] <-- Colourless has left IRC (Ping timeout for Colourless[ppp328.adelaide.on.net.au])
[19:32:58] <Fingolfin> oh well
[19:33:07] <Fingolfin> that definitly should be done, so we are XHTML conformatn
[19:33:08] <Fingolfin> but
[19:33:16] <Fingolfin> the counter shouldnīt be defined in the XML files..
[19:33:27] <Fingolfin> it is generated on the fly by the server - unless something got screwed up
[19:33:30] * Fingolfin checks CVS
[19:36:08] <wjp> why not just change the counter cgi?
[19:36:22] <Fingolfin> actually
[19:36:35] <Fingolfin> we should have two! one for HTML 4.01, and one for XHTML
[19:36:40] <Fingolfin> and I wonder why it is wrong now
[19:36:51] <wjp> is <img src=""/> forbidden in HTML?
[19:37:07] <wjp> (with a proper src, of course)
[19:37:27] <Fingolfin> if at all, you should put a space before the /> as to prevent conflicts with older browsers
[19:37:40] <Fingolfin> and it is possible, but generates a warning (not an error, though)
[19:37:49] <wjp> and an </img> tag?
[19:39:14] <wjp> I'll just create a 2nd counter... probably easiest
[19:39:35] * Fingolfin sees he forgot to update the xsl file, and fixes that
[19:39:35] <Fingolfin> I already did that months ago, wjp!
[19:39:41] * wjp just notices that
[19:39:43] <Fingolfin> wjp: I only forgot to update the xsl file it seems... or maybe I did and forgot to commit my changes or something, no idea
[19:40:26] <Dominus> or maybe I overwrote it (though I donīt think so)
[19:40:26] <wjp> ah... by the "we should have two!" you meant we already should have two :-)
[19:40:45] <Fingolfin> yeah ;) sorry
[19:40:46] * wjp read that as "we should create a second one" :-)
[19:40:54] <Fingolfin> wjp: I was unclea
[19:41:05] <sty> hi uncle A :)
[19:42:20] <Dominus> wjp: btw, today I had my first look at the teleport cheat map and I think it looks really great like it is
[19:43:32] * wjp nods... yeah, it works pretty well this way
[19:44:18] * Dominus wishes for the "quit to menu" to work
[19:50:37] <wjp> that will be kind of interesting to do... might require quite a lot of restructuring of the startup/shutdown process
[19:50:48] <Fingolfin> yeah, it will
[19:50:56] * Fingolfin hasnīt yet seen the new map :/
[19:51:56] <wjp> http://www.math.leidenuniv.nl/~wpalenst/SImap_noroofs200.png
[19:52:36] <wjp> and BGmap_real00.png (not the actual one, but close enough)
[19:52:39] <Dominus> and despite what some say I think itīs great you see all in the CHEAT map
[19:53:45] <sty> wow, pretty detailed
[19:54:19] <wjp> sty: you should see the 3072x3072 ones I have :-)
[19:54:36] <Dominus> oh yes, those are great (and huge)
[19:54:49] <wjp> BGmap.png, BGmap_noroofs.png, SImap.png, SImap_noroofs.png
[19:54:52] <wjp> about 10Mb each
[19:55:40] <sty> created by rendering the engine to file, i suppose
[19:55:49] <wjp> yeah
[19:56:01] <sty> rox
[19:56:02] <wjp> exult -buildmap 0
[19:56:30] <wjp> (maybe we should change that to --buildmap?)
[20:00:10] * wjp copy-pastes the Point scaler to the Interlaced scaler
[20:00:30] <sty> :)
[20:00:36] <Fingolfin> wjp: uh oh
[20:00:53] <Fingolfin> that will result in a strange problems in about 2-3 months, when we all forgot about it ... ;)
[20:01:51] <Fingolfin> wjp: youīll commit the changes for me? jeff is already anxious awaiting the chance to see our marvelous new code ;)
[20:01:58] <Dominus> quoteable quote isnīt it? :-9
[20:02:08] <Dominus> that will result in a strange problems in about 2-3 months, when we all forgot about it ... ;)
[20:02:20] <wjp> he is? /me checks mail...
[20:03:55] <wjp> hmmm... a blank screen... how interesting
[20:04:04] <Dominus> wjp: is the photoshop plugin working with Paintshop now? (or was it all the time, I forgot)
[20:04:12] <wjp> no, not really
[20:04:47] <wjp> PSP doesn't seem to support the way the plugin passes guide&transparency information back
[20:04:55] <wjp> maybe I should mail Jasc about it someday
[20:05:00] <Dominus> :-9
[20:05:04] <Dominus> :-)
[20:06:42] <wjp> oh... now this is interesting... seems I didn't properly sync up which lines are visible :-)
[20:06:59] <wjp> now it sometimes draws only the odd lines of the mouse cursor, and sometimes only the even lines
[20:07:29] <Fingolfin> hehehe
[20:07:38] <Fingolfin> I told you, it would produce problems ;)
[20:07:51] <Fingolfin> I said 2-3 months? I meant 2-3 minutes
[20:08:03] <wjp> lol
[20:08:20] <wjp> hmm, mouse tracking is indeed broken in 3x
[20:08:35] <Fingolfin> :/
[20:08:47] <wjp> and in 4x...
[20:08:58] <Fingolfin> what about 2x ?
[20:09:04] <wjp> works ok there, luckily
[20:09:12] <Fingolfin> and is it broken for the normal point scaler, or only for the interlaced one?
[20:09:19] <wjp> all of them
[20:09:42] <Fingolfin> where is the mouse cursor rendered? is it working with the old code? that would be strange.
[20:10:03] <wjp> it's not just the rendering
[20:11:09] <wjp> it just seems to thinks it's at the wrong place everywhere
[20:11:16] <wjp> s/thinks/think/
[20:11:40] <wjp> we probably assume somewhere that if the scaling factor != 1, it has to be 2
[20:11:54] <Fingolfin> oh right
[20:12:00] <Fingolfin> we do that in multiple places, now that you say
[20:12:09] <Fingolfin> in the past, I once fixed some of them, but then gave up
[20:12:16] <Fingolfin> exult.cc contains numerous of these, I think
[20:12:23] <Fingolfin> and probably mouse.cc
[20:13:34] <wjp> Colourless: want me to commit... oh... Ryan's not here
[20:13:39] --> chimera|wookin has joined #exult
[20:13:39] <wjp> where'd he go?
[20:13:55] <chimera|wookin> wjp!
[20:14:48] <wjp> hi :-)
[20:15:16] <Fingolfin> why do many of the files have fundamental-mode set??
[20:15:27] <Fingolfin> hi chimera
[20:15:34] <wjp> Jeff dislikes cc-mode
[20:16:00] <Fingolfin> <sigh>
[20:16:05] <Fingolfin> canīt he disable it at home then?
[20:16:12] <wjp> I guess he could :-)
[20:16:16] <chimera|wookin> FINGOLFIN!!!
[20:16:20] <Fingolfin> that is easier than overwriting his overwrtiging of default mode, I think ;)
[20:16:22] <chimera|wookin> *exultbot kicks chimera*
[20:16:32] <wjp> lol
[20:16:36] * Fingolfin tosses a cookie at exultbot
[20:16:42] <Fingolfin> exultbot: good boy! ;)
[20:16:56] <Fingolfin> wjp: uhm... open exult.cc ... search for scale... shiver with fear
[20:16:58] <exultbot> Woof!
[20:17:37] <wjp> hmm... pretty bad
[20:17:38] <Fingolfin> oh wait! somebody fixed a lot of it? maybe even all?
[20:17:44] <Fingolfin> not as bad as it used ot be
[20:17:51] <Fingolfin> we even use log2 on it etc. ;)
[20:18:12] <Fingolfin> hmm
[20:18:13] <Fingolfin> but then
[20:18:17] <Fingolfin> ugh
[20:18:20] <Fingolfin> agh
[20:18:32] <Fingolfin> mousey >> scaler
[20:18:53] <Fingolfin> mousey >> scaler I mean - now, what if scale == 3 ? I doubt this is what we want it to be
[20:18:55] <wjp> is that 'r' your typo or from exult.cc?
[20:18:59] <Fingolfin> scale is more a flaf, scale or not scale
[20:19:03] <Fingolfin> my typo
[20:19:11] <Fingolfin> s/flaf/flag
[20:19:42] <wjp> yeah, that's what it says at the top
[20:20:00] <Fingolfin> so, where do we then store the real scale factor?
[20:22:05] <wjp> gwin stores it
[20:22:21] <wjp> the weird thing is, scale is set to Log2(scale_factor)
[20:22:30] <wjp> shouldn't a scale of 4 work then?
[20:22:50] <Fingolfin> uhm
[20:23:03] <Fingolfin> which "scale" do you talk about ? the one in exult.cc?
[20:23:08] <wjp> yeah
[20:23:39] <Fingolfin> hah, forget it
[20:23:50] <wjp> oh... and here it is set differently
[20:23:54] --> freedman has joined #Exult
[20:23:59] <wjp> hi Jeff
[20:24:01] <Fingolfin> first off, what would that tell us if scale == 3 ? secondly, it is only used as a boolean in most other places, buuuttt
[20:24:03] <Fingolfin> hi jeff
[20:24:08] <Dominus> hi jeff
[20:24:09] <Fingolfin> there are problems!!!
[20:24:09] <Fingolfin> e.g.
[20:24:10] <freedman> Hi.
[20:24:21] <Fingolfin> mousex >> scale assumes scale to be exactly 0 or 1
[20:24:22] <Fingolfin> howerver
[20:24:33] <Fingolfin> what if we have a scale factor 3, then we want mousex / 3
[20:24:41] <Fingolfin> so we must change that code
[20:24:52] <wjp> unless we restrict it to 2^n
[20:25:09] <Fingolfin> I suggest to rename scale in exult.cc to scale_active, to enforce errors whereever it used, then go through all those places and fix them
[20:25:19] <Fingolfin> but scale 3 is very useful, Iīd like to keep it
[20:25:25] --> m0t0ro has joined #exult
[20:25:34] <Fingolfin> of course, we can enforce 2^n, question is what do we gain...
[20:25:48] <wjp> 'keep'? ;-)
[20:25:52] <m0t0ro> hey wjp
[20:25:56] <Fingolfin> I am not sure, do the various "3rd party" blitters work with scales != 2^n, anyway?
[20:25:58] <wjp> hi
[20:26:27] <m0t0ro> Were you trying to compile exult under qnx?
[20:26:32] <m0t0ro> I've tried it
[20:26:36] <wjp> a few months ago, yes
[20:26:40] <Fingolfin> jeff: btw, the change to the point scaler is basically rewriting the code more cleverly - e.g instead of doing division, multiply the stuff beforehand appropriatly; instead of mults use adds etc.
[20:26:45] <freedman> Fingolfin: You can remove the 'fundamental-mode' stuff. I was trying to override some settings at a previous job.
[20:26:55] <Fingolfin> freedman: praise god ;)
[20:27:07] <m0t0ro> Has you finally compiled it?
[20:27:28] <wjp> m0t0ro: yeah, but it didn't run properly. (I think SDL was the problem)
[20:27:36] <freedman> Never looked at the 'point scaler', only the original one (2xsal?)
[20:27:51] <m0t0ro> wjp: what fails?
[20:28:03] <freedman> ... but I still think those C-modes are evil:-)
[20:28:14] <wjp> m0t0ro: don't remember :/
[20:28:45] <m0t0ro> ok
[20:29:49] * wjp commits scalers & copy8
[20:30:08] <chimera|wookin> has anyone tried converting the RGB to YUV and using hardware scaling? :)
[20:30:17] <-- m0t0ro has left #exult
[20:30:33] <freedman> What is YUV? I've been puzzled for almost a year:-)
[20:30:37] <Fingolfin> chimera|wookin: we think about using OpenGL
[20:30:43] <Fingolfin> yuv is a different encoding
[20:30:46] <wjp> freedman: a different way of encoding colours
[20:30:59] <wjp> yellow, something, violet, I think
[20:31:02] <freedman> Yes, but what?
[20:31:03] <Fingolfin> nahhhh
[20:31:14] <chimera|wookin> I've done a bit of work with YUV lately
[20:31:32] <freedman> (I'm starting to think that nobody really knows:-))
[20:31:38] <chimera|wookin> I know, dangit
[20:31:43] <Fingolfin> it doesnīt encode color based like RBG or CMYK; it rather encodes the luminescence
[20:31:46] <Fingolfin> err
[20:31:50] <chimera|wookin> it's the format TV's use and mpeg video
[20:32:04] * Fingolfin looks for a dictionary with the english terms, and/or a good web page ;)
[20:32:08] <freedman> There were zillions of posts on SDL's mailing list about a year ago, but I still couldn't figure out what it was, and why it was good.
[20:32:21] <chimera|wookin> the U and the V channels control how much of a color is mixed
[20:32:28] <wjp> freedman: http://www.audiovideo101.com/dictionary/y-c.asp
[20:32:37] <chimera|wookin> black would be a Y of 0, a U of 127 and a V of 127
[20:32:40] <freedman> Thanks.
[20:32:52] <chimera|wookin> the Y is kind of like the brightness
[20:33:25] <Fingolfin> y is the lumincescence; while "u" and "v" mean the color coordinates
[20:33:35] <Fingolfin> and color is less important the "brightness"
[20:33:53] <Fingolfin> ah, look at http://www.electric-words.com/dict/y/yuv.html
[20:33:58] <Dominus> now I know where the name colorless comes from
[20:34:01] <Dominus> :-)
[20:34:01] <chimera|wookin> the Y channel has a 1:1 correspondance with each pixel but the U and the V are half the size in both the horizontal and vertical directions
[20:34:25] * Fingolfin reads that chimera beat him by over a minute and goes sobbing into a corenr
[20:34:26] <Fingolfin> corner
[20:34:37] <chimera|wookin> hehe
[20:34:59] <chimera|wookin> to solve the problem of the smaller U and V channels, you can double the size of each pixel
[20:35:09] <sty> great, the batlin-opening-wall-of-light sequence works perfectly :)))
[20:35:43] <chimera|wookin> anyway, the whole point of this is ...
[20:35:47] <freedman> Okay, it's some kind of television signal. Guess some video cards are optimized for it, and SDL seems to have support.
[20:36:07] <chimera|wookin> that once you have a YUV image, you can use Xv for hardware scaling to any arbitrary resolution
[20:36:09] <freedman> Thanks!
[20:36:17] <chimera|wookin> including stretching
[20:36:22] <chimera|wookin> (or squishing)
[20:36:34] <chimera|wookin> or rather, you use SDL_Overlay
[20:36:44] * sty "hahahaha i'm the insanity bane... ghahahahah"
[20:36:58] <chimera|wookin> the question is whether it would be more expensive to convert each pixel to YUV than to use the pre-existing scaling algorithm
[20:37:29] <chimera|wookin> my guess is it probably would be :(
[20:44:56] * wjp wonders why he isn't getting any cvs-log mails
[20:46:18] <Dominus> new section in the FAQ: Does Origin support Exult?
[20:46:19] <freedman> Looking at copy8(): Pretty clever!
[20:46:19] <Dominus> First of all, Origin is owned by EA for a long time now and from recent developements it seems that Origin only exists now to maintain Ultima Online. Another point is that Origin and/or people that worked for Origin claim that the source code for Ultima 7 (BG/SI) has been lost for some time. So there is no chance for the Exult team to have a look at the actual code.
[20:46:19] <Dominus> Also the team tried to contact some people from Origin earlier but got no positive or negative response on the Exult project. So far it seems that both Origin and EA decided to ignore Exult.
[20:46:42] <Dominus> comment ?
[20:48:26] <sty> argh! defeated by a bunch of penguins!
[20:49:02] <sty> (tryin' to steal the magebane)
[20:49:23] <sty> the hitpoint calculation has to be reconsidered :)))
[20:49:59] <Fingolfin> sty: lol
[20:50:04] <Fingolfin> Dominus: seems fine to me
[20:50:23] * Fingolfin gets curious and decides to look at the copy8() code, too ;)
[20:50:30] <Dominus> anything needs to be added?
[20:52:22] <sty> there must be some "iflinux" flag on the penguin npcs :)
[20:52:55] <wjp> hehe :-)
[20:56:00] <chimera|wookin> Dominus: want me to fix a few English errors for you? =]
[20:56:26] <Dominus> no I want to leave them in it :-) please go ahead :-)
[20:56:42] <chimera|wookin> Origin has been owned by EA ...
[20:57:28] <chimera|wookin> ... both Origin and EA have decided to ignore Exult.
[20:58:27] <Dominus> Q to all: "3.4. The sound effects sound horrible" delete this alltogether?
[20:58:35] <Dominus> Chimera: thanks
[20:58:45] <chimera|wookin> I'd replace "Another point is that" with "Furthermore,"
[20:59:30] <Dominus> k
[20:59:55] <sty> replace it with "3.4. why did penguins kicked my ass?"
[21:00:09] <chimera|wookin> penguins? hehe what?
[21:00:39] <Dominus> short answer: "because your stats are not high enough" :-)
[21:00:44] <chimera|wookin> hehehe
[21:01:10] <sty> but with the magebane i slayed the king goblin with one hit (same stats)
[21:01:12] <Dominus> or you are not running Linux - penguins always defeat non Linux users
[21:01:25] <sty> Dominus: yeah, maybe :)
[21:01:30] <chimera|wookin> hehehehe yeah!
[21:02:34] <Dominus> seriously, guys, should I kill this answer?
[21:03:52] <sty> no wait, the sfx still not play at all under my linux version
[21:03:59] <chimera|wookin> I don't think I'm qualified to offer an opinion hehe
[21:04:23] <sty> where i have to put the jmsisfx.flx ? :)))
[21:04:44] <Dominus> but the midi sfx output has been disabled in the code since the newest release so no one should have that problem
[21:05:18] <Dominus> sty: read the FAQ :-) doesnīt matter where you put it, but you need to set the path for it
[21:06:14] <sty> aw, under win2k it worked just copying into ./data
[21:06:50] <Dominus> thatīs because the exult.cfg file is configured to the right pat for the windows version
[21:17:17] * Fingolfin yawns
[21:17:21] <Fingolfin> gotta go to bed now
[21:17:22] <Fingolfin> cya folks
[21:17:26] <-- Fingolfin has left IRC (Client Exiting)
[21:17:26] <wjp> night
[21:17:28] <Dominus> bye
[21:18:20] <freedman> Did I see something about penguins attacking?:-)
[21:19:08] <sty> i did
[21:19:52] <freedman> Did you modify shapes.vga?
[21:20:12] <wjp> ?
[21:20:23] <wjp> modify shapes.vga?
[21:20:40] <sty> fred no, just try to steal magebane sword in the little icy island full of penguin nests
[21:20:57] <freedman> They really exist!
[21:21:07] <wjp> there's tons of them in SI :-)
[21:21:16] <freedman> Forget about that.
[21:21:39] <sty> penguins rox
[21:21:40] <freedman> But we have to tools to create/modify monsters. How about making pirates look like Bill Gates!
[21:23:18] <freedman> ...replace the cats and dogs with Pokemon.
[21:23:33] <wjp> hehe :-)
[21:23:44] <freedman> ...Paladins with Sailor Moon.
[21:23:57] <wjp> sailor moon?
[21:24:03] <sty> frigidazzi with Pamela Anderson
[21:24:04] <freedman> (Maybe I inhaled too many paint fumes last night.)
[21:24:09] <freedman> :-)
[21:24:43] <freedman> wjp: Never heard of Sailor Moon? Are you sure you're a computer geek?:-)
[21:24:53] <wjp> umm...
[21:25:35] <freedman> Take a look on Yahoo.
[21:26:29] <wjp> I was just searching with google
[21:26:39] <sty> yahoo is evil :)
[21:26:41] <freedman> 5000000 hits??
[21:28:07] <freedman> When I finish the NPC editor (soon), we can add real NPC's, not just monsters.
[21:29:40] <wjp> I guess the problem with my not knowing it is the poor selection of this kind of programs on dutch tv...
[21:29:43] <sty> yea we want some more bitches to fuck
[21:29:46] <sty> :)
[21:30:05] <wjp> /kick sty grow up :-)
[21:30:20] <freedman> wjp: It's not shown here anymore either; used to be on the Toon channel.
[21:30:59] <freedman> But it's no longer being made, either.
[21:31:01] <wjp> it's one of those manga/anime (whatever the difference is) things?
[21:31:19] <sty> wjp: i was talking seriously! have you ever tried to flirt with Lucilla at monitor's pub ?
[21:31:31] <wjp> sty: of course I have :-)
[21:31:33] <freedman> Yep. Manga is the comic-book form (which is how it started out), anime is the film.
[21:31:57] <sty> wjp ehehe
[21:31:57] <wjp> ah, I see... that would explain why they show up together that often
[21:32:39] <freedman> One trouble with adding stuff to U7: seems like all the shapes are used up.
[21:32:49] <sty> wjp: no more dirty speaking, i promise (was forgettin about the bot)
[21:32:51] <freedman> Or can we go beyond 1024?
[21:33:03] <wjp> no, only 10 bits
[21:33:22] <freedman> I wonder if any are unused.
[21:33:40] <wjp> but we should probably start thinking about removing some of the originals' limits
[21:34:18] <freedman> Yes.
[21:36:24] <wjp> Colourless has already been expanding the savegame format a bit
[21:37:03] <wjp> shouldn't be too hard to expand that to allow for 32-bit shapenums or something
[21:37:36] <wjp> although going as far as 32 bit might require some serious rewriting of the shape storage classes
[21:38:27] <freedman> True. Just one more bit would help a lot.
[21:39:15] <freedman> Still, 1024 is a lot of artwork. Probably plenty if we tried to write a new game.
[21:40:30] <freedman> Anyway, the next thing I need to do is save/restore scheduled usecode for SI.
[21:40:39] <sty> goodbye
[21:40:43] <wjp> bye
[21:40:43] <sty> seeya
[21:40:48] <freedman> See ya
[21:40:53] <-- sty has left IRC ()
[21:41:01] <wjp> oh right, that was where that usecode container was useful?
[21:41:32] <freedman> It looks like it's on the 'paths' inside that the usecode needs to be saved.
[21:41:49] <freedman> I've no idea how the original does it, so I'll just make up something.
[21:42:07] <wjp> :-)
[21:42:16] <wjp> that's what I did for the keyring :-)
[21:42:27] <freedman> You already did it?:-)
[21:43:19] <wjp> you didn't know I implemented the SS keyring?
[21:43:36] <chimera|wookin> wjp has been on fire!
[21:43:45] <freedman> Seems like only a couple hours ago that someone was asking for it.
[21:43:55] * chimera|wookin is rebooting to windows :(
[21:43:57] <-- chimera|wookin has left IRC (So many rubes in this world who need to be dealt with ... and I don't have time to do the dealing. http://www.rubecity.com)
[21:43:59] <wjp> no, they wanted it in BG and SI without SS
[21:44:43] <freedman> Okay. That sounds like a lot more work.
[21:44:50] <wjp> yeah...
[21:45:24] <freedman> I haven't done much U7 playing lately. Getting a littttlllle tired of it.
[21:45:26] <wjp> about the keyring: it's in usecode/keyring.cc, with the data stored in <gamedat>/keyring.dat
[21:45:46] <freedman> Sounds good.
[21:45:58] <wjp> (every 2 bytes in keyring.dat is a key)
[21:46:17] <freedman> Is that how the original worked too?
[21:46:23] <wjp> not a clue
[21:46:47] <wjp> well, there's no keyring.dat in the original, anyway
[21:46:49] <freedman> Guess it doesn't matter. We can do anything we want, as long as we read the initial data correctly.
[21:47:26] <wjp> yeah
[21:47:34] <wjp> that's what Ryan and me decided last week too
[21:48:21] <freedman> Well, I better get back to work.
[21:48:25] <freedman> Bye
[21:48:30] <wjp> bye
[21:48:32] <-- freedman has left IRC (Leaving)
[21:48:41] <wjp> hmm, I'd better go too
[21:48:46] <wjp> have to get up early tomorrow
[21:48:53] <wjp> g'night
[21:48:59] <Dominus> me too, good night
[21:49:04] <-- Dominus has left IRC ()
[21:49:06] <-- wjp has left IRC ([x]chat)
[22:44:21] --> chimera|wookin has joined #exult
[22:55:33] --- ChanServ has changed the topic to: Exult, the open source Ultima 7 and U7 part 2 engine