#gemrb@irc.freenode.net logs for 11 Aug 2010 (GMT)

Archive Today Yesterday Tomorrow
GemRB homepage


[00:21:40] --> nickdaly` has joined #GemRb
[00:23:27] <-- nickdaly has left IRC (Ping timeout: 264 seconds)
[01:22:01] <-- edheldil_ has left IRC (Ping timeout: 276 seconds)
[01:22:53] --> nickdaly has joined #GemRb
[01:23:52] <-- nickdaly` has left IRC (Ping timeout: 240 seconds)
[02:23:10] --> nickdaly` has joined #GemRb
[02:24:48] <-- nickdaly has left IRC (Ping timeout: 260 seconds)
[04:02:54] --> raevol has joined #GemRb
[04:25:23] <-- nickdaly` has left IRC (Ping timeout: 260 seconds)
[05:44:28] --> edheldil_ has joined #GemRb
[05:54:44] <-- raevol has left IRC (Quit: Leaving.)
[06:30:42] --> lynxlynxlynx has joined #GemRb
[06:30:43] --- ChanServ gives channel operator status to lynxlynxlynx
[06:34:40] <-- edheldil_ has left IRC (Ping timeout: 245 seconds)
[07:13:11] --> edheldil_ has joined #GemRb
[07:15:44] <-- |Cable| has left IRC (Remote host closed the connection)
[07:26:41] <-- exultbot has left IRC (signing off...)
[07:28:00] --> exultbot has joined #GemRb
[07:28:00] --- Topic for #GemRb is: GemRB 0.6.1 | http://gemrb.sf.net | Be wary of your words for there are Modron sensors in this channel: http://log.usecode.org/gemrblog.php | Hey <CHARNAME>, we need some awesome screenshots!
[07:28:00] --- Topic for #GemRb set by lynxlynxlynx!~navaden@sourcemage/warlock/lynxlynxlynx at Wed Jun 16 16:31:07 2010
[07:34:23] <fuzzie> if SiENcE appears, someone mention that the pastebin looks like it's just a 0.6.1 binary
[07:34:51] <fuzzie> new plugins not installed, or something
[07:35:42] <lynxlynxlynx> he did mention something about the version
[07:35:55] <lynxlynxlynx> i wonder what is in that script of his
[07:47:40] <fuzzie> it's a new script and an old guiscript.so
[07:47:59] <fuzzie> (expecting a function name)
[07:53:07] * fuzzie -> exam
[07:53:41] <lynxlynxlynx> (run script)
[08:29:16] <-- exultbot has left IRC (ping timeout: 15 minutes)
[08:30:31] --> exultbot has joined #GemRb
[08:30:31] --- Topic for #GemRb is: GemRB 0.6.1 | http://gemrb.sf.net | Be wary of your words for there are Modron sensors in this channel: http://log.usecode.org/gemrblog.php | Hey <CHARNAME>, we need some awesome screenshots!
[08:30:31] --- Topic for #GemRb set by lynxlynxlynx!~navaden@sourcemage/warlock/lynxlynxlynx at Wed Jun 16 16:31:07 2010
[08:33:16] --> wjp has joined #GemRb
[09:46:26] <fuzzie> well, that was surreal
[09:47:03] <fuzzie> but hi.
[09:47:31] <fuzzie> turns out i didn't need to know SLR/LALR table construction after all ^.^
[09:55:20] --> SiENcE has joined #GemRb
[09:56:42] <fuzzie> SiENcE: your pastebin from last night was from 0.6.1
[09:57:04] <SiENcE> no
[09:57:34] <fuzzie> maybe you didn't install the git plugins to /usr/local/games/GemRB/plugins/?
[09:57:37] <SiENcE> in current git ...there is always 0.6.1 encoded
[09:58:28] <SiENcE> config.h -> #define PACKAGE_STRING "gemrb 0.6.1"
[09:58:35] <SiENcE> #define PACKAGE_VERSION "0.6.1"
[09:58:37] <fuzzie> sure
[09:58:41] <fuzzie> i don't talk about the output
[09:58:47] <fuzzie> i say, your plugin output is from 0.6.1 :)
[09:58:54] <SiENcE> ah
[09:59:33] <SiENcE> i dont think so. i only took the startbinary from 0.6.1
[09:59:44] <SiENcE> mipsel-linux-uclibc-gemrb
[09:59:46] <fuzzie> but maybe you didn't install the git version?
[09:59:57] <fuzzie> and your PluginPath isn't pointing to your build?
[10:00:07] <SiENcE> it is
[10:00:24] <SiENcE> also the SDLAudio plugin was copied
[10:00:30] <SiENcE> i did make install
[10:00:34] <fuzzie> but your pastebin shows it loading the plugins from /usr/local/games/GemRB/plugins/, and it has no SDLAudio.so and it has an old GUIScript.so
[10:00:45] <SiENcE> yes
[10:00:52] <SiENcE> the SDLAudio was skipped
[10:00:56] <SiENcE> i dont know why
[10:01:17] <SiENcE> wait
[10:01:24] <SiENcE> verify this
[10:05:00] <fuzzie> we should really do some assert on the size of Interface in some plugin loading code, maybe
[10:13:13] <Edheldil> what do you mean?
[10:14:19] <fuzzie> to make sure that someone isn't using wildly mismatched versions
[10:14:52] <fuzzie> if we check that the sizeof(Interface) as known by the core is always equal to the sizeof(Interface) as known by the plugin at load time, we'd at least catch obvious errors
[10:15:25] <fuzzie> i mean, i don't know if that's truly SiENcE's problem, just pondering
[10:19:24] <fuzzie> pretty sure SiENcE just has an old gemrb install
[10:19:53] <fuzzie> all the plugin/core output is old, from 0.6.1
[10:19:55] <Edheldil> that seems easy to implement
[10:20:48] <fuzzie> do you think it makes sense?
[10:21:02] <Edheldil> btw, speaking on a related issue, I am fascinated by those compiled out pieces in pst's disassembly
[10:22:20] <Edheldil> the plugins already depend on/include core, right?
[10:22:26] <fuzzie> yes
[10:25:30] <Edheldil> sounds like it would be rather strict, but if the plugins had different notion of Interface's class layout they would have probably crashed anyway as they access many members directly, so I don't see any obvious problem
[10:25:43] <-- SiENcE has left IRC (Read error: Connection reset by peer)
[10:26:31] <Edheldil> except that it does not catch all mismatches
[10:26:59] <fuzzie> well, i think we can't catch everything
[10:27:22] <fuzzie> we verify that LibVersion() == VERSION_GEMRB for plugins
[10:27:44] <fuzzie> so that is a sanity check already
[10:32:45] <lynxlynxlynx> i'll start changing the version after releases to gemrb-git
[10:35:01] <fuzzie> that would be good
[10:38:24] <fuzzie> i think what would be better is to bump it along with NEWS, or something
[10:38:28] <fuzzie> gemrb-git-<rev>
[10:38:36] <fuzzie> but not too important
[10:39:51] <lynxlynxlynx> that'd be annoying, since it would trigger a big rebuild
[10:44:48] <fuzzie> ("version check failed: core version 0.6.1 doesn't match caller's version git")
[10:44:57] <CIA-26> GemRB: 03fuzzie * re9677ab9efec 10gemrb/gemrb/ (GemRB.cpp core/Interface.cpp core/Interface.h): sanity-check core version at startup
[10:45:20] <fuzzie> of course this doesn't work yet, but the missing symbol takes care of it anyway for now :-)
[11:09:33] --> SiENcE has joined #GemRb
[11:24:08] <SiENcE> fuzzie, it was my fault
[11:24:18] <SiENcE> or both ;)
[11:24:59] <SiENcE> the sample config has commented out the plugin path
[11:25:18] <SiENcE> and so gemrb chooses the standard path to plugins
[11:25:41] <SiENcE> but i put the git version of gemrb to a non-standard path
[11:25:41] <fuzzie> it looked like you were using an old gemrb binary and an old core library too, though
[11:26:00] <fuzzie> you have to use new everything, or you just get random crashes
[11:26:07] <SiENcE> it was the new core but the old plugins
[11:26:09] <fuzzie> i added some check to the latest git version
[11:26:27] <lynxlynxlynx> http://pastebin.com/N8fq0Cxc <-- wtf? Look at the forced parameter; running make shows that nothing needs to be rebuilt
[11:26:38] <SiENcE> because pluginpath was outcommented and pointed to the standard dir...where my old gemrb is
[11:27:06] <fuzzie> but as long as you're using *only* new binaries (no old 'gemrb' binary), you should be ok
[11:27:18] <SiENcE> yes
[11:27:21] <SiENcE> now it works
[11:27:57] <lynxlynxlynx> so, how's the new plugin?
[11:28:02] <SiENcE> SDLAudio
[11:28:05] <SiENcE> ?
[11:28:09] <lynxlynxlynx> yes
[11:28:28] <SiENcE> wait
[11:28:57] --> edheldil_ has joined #GemRb
[11:29:32] <fuzzie> lynxlynxlynx: and no gdb complaint about source file being newer than binary, i assume
[11:29:55] <lynxlynxlynx> no, make would fix that anyway
[11:30:12] <fuzzie> well, it is always possible that make screwed it up
[11:30:14] <lynxlynxlynx> i'll restart gdb, since my only explanation is a bug in it
[11:31:41] <fuzzie> well, or the compiler generating faulty debug info
[11:31:44] <lynxlynxlynx> yeah, all is well now
[11:31:51] <fuzzie> good :)
[11:31:58] <SiENcE> so. the sound is faster...but not fast enough
[11:32:04] <SiENcE> it's stuttering
[11:32:14] <fuzzie> the music, or all sound?
[11:32:22] <SiENcE> and fps dropped in mainmenu from 50fps -> 22fps
[11:32:28] <SiENcE> music
[11:32:54] <SiENcE> sound are played in good quality but played too late
[11:33:16] <SiENcE> when i click it needs about 1sec that i can hear a sound
[11:33:28] <fuzzie> you might try changing the 4096 in Mix_OpenAudio to 16384
[11:33:35] <-- edheldil_ has left IRC (Ping timeout: 248 seconds)
[11:33:44] <SiENcE> ingame sound is fine
[11:33:53] <SiENcE> near fine
[11:34:11] <SiENcE> but fps dropped from 19fps->7fps
[11:34:25] <CIA-26> GemRB: 03lynxlupodian * rd5fb092fbd82 10gemrb/gemrb/core/Scriptable/Actor.cpp:
[11:34:25] <CIA-26> GemRB: force the actinorow refresh on a change of class
[11:34:25] <CIA-26> GemRB: fixes dualclassed characters not getting the new class actionrow
[11:35:07] <fuzzie> fps drop is weird
[11:35:18] <SiENcE> why?
[11:35:20] <fuzzie> i'd like to know if it helps if you try NullSound
[11:35:44] <SiENcE> ? why nullsound?
[11:35:56] <fuzzie> but i would try the 16384 thing first: it means audio will lag by about 1/5th of a sec, but it should be a lot faster
[11:35:57] <SiENcE> i think i should test sdlaudio?
[11:36:12] <fuzzie> oh, this is not SDLAudio? :)
[11:36:23] <fuzzie> i think OpenAL will just get worse
[11:36:36] <SiENcE> i'm confused
[11:36:42] <SiENcE> what we are talking about?
[11:36:46] <SiENcE> i tested SDLAudio
[11:36:51] <SiENcE> and this was my report
[11:37:04] <fuzzie> sure
[11:37:06] <lynxlynxlynx> <SiENcE> i think i should test sdlaudio? <-- this is what confused us
[11:37:11] <fuzzie> but the fps drop is huge
[11:37:20] <fuzzie> that shouldn't happen, SDLAudio does almost nothing
[11:37:20] <SiENcE> yes
[11:37:28] <fuzzie> so i wondered if you were comparing it with NullSound, on the git version
[11:37:40] <fuzzie> or if the git version is just slower for some reason
[11:37:40] <SiENcE> i try
[11:37:52] <SiENcE> wait
[11:38:20] <fuzzie> or if you didn't change AudioDriver at all, even
[11:38:39] <fuzzie> you can see 'SDLAudio setting new music' and similar debug on the console, if you can see the console
[11:39:55] <SiENcE> ah i forgot to say videos had no music
[11:40:15] <SiENcE> i can't access the console
[11:40:43] <fuzzie> not even after you quit?
[11:41:05] <lynxlynxlynx> the cpu gain here is about 1-1,5%
[11:41:27] <fuzzie> lynxlynxlynx: over OpenAL, on x86?
[11:41:33] <lynxlynxlynx> yes
[11:41:41] <fuzzie> sounds reasonable
[11:41:46] <lynxlynxlynx> just comparing the main menu
[11:42:39] <lynxlynxlynx> i do notice the lag
[11:43:27] <fuzzie> the only reason i can think of for lag is that the SDLAudio plugin doesn't keep recently-used audio in memory
[11:43:36] <fuzzie> but you'd think it would be the same on the first sound play
[11:44:36] <fuzzie> (it isn't lagged here)
[11:44:53] <SiENcE> what do you use to encode audio ?
[11:45:03] <SiENcE> i mean to generate the audio stream
[11:45:06] <fuzzie> it depends on the file
[11:45:14] <SiENcE> heavy flootingpoints?
[11:45:21] <fuzzie> no, surely not :)
[11:45:30] <fuzzie> some simple integer math decompression algorithm
[11:46:54] <SiENcE> mh
[11:47:00] <SiENcE> this should be fast
[11:49:17] <fuzzie> yep
[11:49:24] <lynxlynxlynx> it was easy to notice in the inventory (pick up/put down sounds)
[11:49:29] <fuzzie> unfortunately i only have this one powerpc machine right here
[11:50:07] <lynxlynxlynx> interesting find wrt 25 tables
[11:50:11] <CIA-26> GemRB: 03fuzzie * r0701e2e1398d 10gemrb/gemrb/plugins/SDLAudio/SDLAudio.cpp: SDLAudio: double buffer size to ~93ms
[11:50:33] <SiENcE> now i tried the nosound plugin
[11:50:37] <fuzzie> and i have no lag
[11:50:45] <fuzzie> so this is not so helpful
[11:50:51] <SiENcE> mainmenu - 47fps (old 0.61. ~54fps)
[11:52:39] <fuzzie> we didn't change anything in the main menu since 0.6.1
[11:53:10] <lynxlynxlynx> your build is now fatter, but that shouldn't matter that much
[11:53:50] <lynxlynxlynx> oh, -O2 instead of -O3
[11:54:05] <lynxlynxlynx> ohx2, you're not using cmake
[11:54:13] <SiENcE> ingame - 11-14fps (old 0.6.1 22fps)
[11:55:01] <fuzzie> i think the only thing which could possibly slow current gemrb down so much is RAM problems
[11:55:25] <fuzzie> well, at the main menu
[11:55:45] <SiENcE> i try my test on the 64mb version of the dingoo later today
[11:56:05] <fuzzie> but the old and new fps were both on the same hardware?
[11:56:07] <lynxlynxlynx> fuzzie: your change only made the lag worse
[11:56:13] <SiENcE> fuzzie, yes
[11:56:18] <fuzzie> lynxlynxlynx: pulseaudio?
[11:56:23] <lynxlynxlynx> none
[11:56:42] <fuzzie> but, yes, the change i made increased lag to ~100ms
[11:57:03] <lynxlynxlynx> so it was more for the performance issues
[11:57:11] <SiENcE> i'm curious that main menu music hangs very often...but ingame is near good quality
[11:57:17] <fuzzie> but it does help quite a bit performance-wise
[11:57:45] <fuzzie> but i get, well, 100ms of lag
[11:59:04] <SiENcE> what do you mean by: [13:56] lynxlynxlynx: oh, -O2 instead of -O3 ?
[11:59:15] <lynxlynxlynx> you can ignore that
[11:59:19] <fuzzie> and the only thing i can think of is: SDLAudio loads files new every time, so if your disk cache isn't good, it will be lagged
[11:59:32] <fuzzie> (or if your files are on NTFS or FAT or something, maybe)
[12:00:02] <SiENcE> i only have sd-card
[12:00:07] <SiENcE> so...it's slow
[12:00:15] <fuzzie> but the music should be full speed
[12:00:43] <SiENcE> i would be better ;)
[12:01:06] <SiENcE> should i recompile everything with -O3 instead of -O2 ?
[12:01:17] <fuzzie> no, it should be ok as you had it
[12:01:33] <fuzzie> did you try changing the SDLAudio buffer size?
[12:01:44] <SiENcE> no not yet
[12:01:54] <lynxlynxlynx> i'm on a regular disk
[12:02:08] <SiENcE> currently i have no toolchain here
[12:02:14] <SiENcE> i'm not at home
[12:02:14] <fuzzie> ah, ok
[12:02:19] <fuzzie> lynxlynxlynx: v.weird :)
[12:02:37] <fuzzie> lynxlynxlynx: a whole second of lag, or just noticable?
[12:03:05] <SiENcE> fuzzie, conclusion is....music is faster...but not fast enough...and newest git runs some fps slower with nosoundplugin
[12:03:07] <lynxlynxlynx> now it's around a second yeah
[12:03:27] <lynxlynxlynx> repeatable, so it can't be just cold cache
[12:03:33] <fuzzie> yes, that is weird
[12:03:49] <fuzzie> maybe there's some problems with the threading, i didn't bother with mutexes or anything yet
[12:04:01] <fuzzie> i have no idea why newest git would be so much slower though, it is fine here
[12:05:12] <SiENcE> it's only 5~6fps slower in mainmenu and ingame using nosoundplugin than 0.6.1
[12:05:27] <fuzzie> but it should be faster :)
[12:06:18] <SiENcE> mh
[12:06:19] <fuzzie> maybe i broke the fps counter
[12:06:27] <SiENcE> haha ;)
[12:06:53] <SiENcE> do you trieded to compare both?
[12:07:04] <SiENcE> i always use IWD1
[12:07:13] <fuzzie> i only look at cpu usage
[12:07:27] <SiENcE> not ram, not fps :( ?
[12:07:48] <fuzzie> git should use about 25% less RAM than 0.6.1
[12:07:54] <fuzzie> but i don't keep a close eye on it
[12:08:59] <SiENcE> thats good
[12:09:14] <fuzzie> but i did change the code where you would apply your SDLVideo patches
[12:09:22] <fuzzie> you're sure they're still ok?
[12:09:52] <SiENcE> you can maybe add an option to disable the IDLE animations....just because it needs cpu speed and it's not needed for a handheld
[12:10:06] <SiENcE> also the animated logo in the lower left
[12:10:39] <SiENcE> fuzzie...yes i implemented my code into the new sdlvideo code
[12:10:44] <SiENcE> it's working fine
[12:12:59] <fuzzie> some problem there is the only reason i can think of for reduced fps
[12:13:27] <fuzzie> but quite possible i missed something
[12:20:12] <fuzzie> assuming there are no huge errors on the console..
[12:34:01] <fuzzie> ok, i reviewed the commits since 0.6.1 again, really nothing bad-looking
[12:39:09] <SiENcE> mh
[12:39:50] <SiENcE> you changed the rendering part
[12:39:54] <SiENcE> in sdlvideo
[12:40:16] <SiENcE> flip is earlier
[12:40:25] <SiENcE> maybe thats the difference
[12:40:29] <fuzzie> i did ask :-)
[12:40:42] <SiENcE> ah
[12:40:51] <fuzzie> in the git code, it ends up doing exactly the same thing
[12:41:01] <SiENcE> sorry english is not my nativ lang. in irc i overlook somethings something
[12:41:02] <fuzzie> but it's all rearranged
[12:41:22] <SiENcE> i take a deeper look into the code
[12:41:26] <fuzzie> well, i am probably not being very clear, i am tired, a lot of studying
[12:41:34] <fuzzie> if you would like to put the patch on pastebin, i would be happy to look at it
[12:41:35] <SiENcE> np. :)
[12:43:38] <SiENcE> i paste bin the old sdlvideo+my hacks
[12:43:43] <SiENcE> and the new one
[12:43:44] <SiENcE> my hacks
[12:43:49] <SiENcE> +
[12:44:05] --> nickdaly has joined #GemRb
[12:44:14] <fuzzie> sounds great
[12:44:17] <fuzzie> hi, nickdaly
[12:44:29] <nickdaly> hi fuzzie
[12:47:00] <SiENcE> old SDLVideo+my hacks: http://pastebin.com/FLJHFH4J
[12:47:51] <SiENcE> new SDLvideo +myhacks: http://pastebin.com/RrgaEmWz
[12:48:17] <SiENcE> keys hacks are not yet merged
[12:48:24] <SiENcE> in the git version
[12:49:52] <SiENcE> hm..i used the SDL_SWSURFACE in git version
[12:50:10] <SiENcE> in 0.6.1 i used SDL_HWSURFACE
[12:50:17] <SiENcE> SDL_HWSURFACE is a bit faster
[12:50:51] <fuzzie> you also don't force 16bpp
[12:54:42] <SiENcE> yep
[12:54:49] <SiENcE> but my config says 16
[12:54:58] <fuzzie> sure, i guess the scaler would break otherwie :)
[12:54:58] <SiENcE> i hope it's passed there
[12:55:03] <SiENcE> yep
[12:55:25] <fuzzie> but i'm not so sure
[12:55:29] <SiENcE> maybe i could write a better and faster scaler
[12:55:36] <fuzzie> this code does weird things
[12:55:37] <SiENcE> but i dont know mips asm
[12:55:41] <SiENcE> ?
[12:55:58] <fuzzie> this 'GetVideoModes' thing only does 32bpp
[12:56:26] <SiENcE> i dont looked into this
[12:56:31] <fuzzie> but it is also unused, so it doesn't matter
[12:56:37] <fuzzie> but .. why is it there, if it is unused? :)
[12:56:44] <SiENcE> *g
[12:56:51] <SiENcE> its like at work
[12:57:10] <SiENcE> unused and wondercode all around
[12:57:41] <fuzzie> but it looks fine except for the lack of HWSURFACE
[13:00:19] --> edheldil_ has joined #GemRb
[13:00:42] <SiENcE> yep
[13:01:00] <-- edheldil_ has left IRC (Client Quit)
[13:01:08] <SiENcE> do you see anything i can improve?
[13:01:38] <SiENcE> later i want to scale only the menu but leave the ingame 1:1
[13:01:51] <SiENcE> clipping the rest
[13:02:13] <SiENcE> as zoom in mode
[13:02:51] <lynxlynxlynx> so is it faster than 0.6.1 if you enable SDL_HWSURFACE?
[13:03:12] <SiENcE> i cannot test it now
[13:03:18] <SiENcE> i have no toolchain here
[13:03:43] <SiENcE> but it should speed up 3-5fps
[13:03:45] <SiENcE> not more
[13:03:54] <SiENcE> so it would be the same speed as 0.6.1
[13:05:35] <lynxlynxlynx> good, so that's out of the way
[13:07:55] <SiENcE> yep. but this don't solve the slow sound
[13:08:25] <SiENcE> sdlaudio is faster than openal....but not fast enough...->fps slow down as i told
[13:08:38] <fuzzie> SDLAudio's music playback uses about 4% cpu on a 600mhz powerpc
[13:11:02] <SiENcE> dingux uses oss
[13:11:16] <SiENcE> the inwork kernel opendingux uses also
[13:11:18] <SiENcE> alsa
[13:11:27] <SiENcE> maybe this is better...because its newer
[13:11:45] <fuzzie> i don't think it should make much of a difference
[13:11:49] <lynxlynxlynx> there's an oss4, but it's controversial
[13:11:53] <fuzzie> of course, 4% of cpu on this machine is still 25mhz
[13:12:12] <SiENcE> the dingoo mips runs @400mht
[13:12:13] <SiENcE> z
[13:12:20] <SiENcE> but has no fpu
[13:12:31] <fuzzie> there's no fp in here
[13:12:33] <SiENcE> only softfloat
[13:12:56] <fuzzie> but without you rebuilding to check the buffer size, i can make no more guesses
[13:14:42] <fuzzie> OpenAL uses 5%, but obviously that is with a fpu
[13:15:57] <SiENcE> yep.
[13:16:08] <SiENcE> i do my test later today
[13:16:13] <SiENcE> and report
[13:16:26] <SiENcE> i have to work now...cya
[13:24:19] --> Maighstir has joined #GemRb
[14:12:11] <Edheldil> Would something like this be beneficial for running GemRB without console, i.e. for SiENcE? http://pastebin.com/NDR2Kydk
[14:13:33] <fuzzie> i don't think so, because you can redirect stdout anyway
[14:13:58] <fuzzie> some scummvm-style onscreen console might be more helpful, but it would be a lot of work for probably not much help
[14:14:25] <Edheldil> but then you get too much color codes garbage in the output
[14:14:45] <fuzzie> is that a problem?
[14:15:04] <fuzzie> i mean, that's only an issue if you go open it in notepad or something
[14:15:14] <fuzzie> but i guess you can always ask
[14:21:13] <Edheldil> ok, at least it showed how much of debug outoput is printed directly instead of those print* macros
[14:22:02] <fuzzie> well, someone could fix the print* stuff to be more useful, maybe
[14:22:14] <fuzzie> but it's not so trivial
[14:23:51] --> nickdaly` has joined #GemRb
[14:24:11] <fuzzie> no variadic macros in old compilers, etc
[14:25:51] <-- nickdaly has left IRC (Ping timeout: 264 seconds)
[15:02:58] <fuzzie> iwd1 in gemrb is really kinda broken
[15:03:36] <fuzzie> lynxlynxlynx: is it meant to have no soundset sounds, name-display issues, etc? or is my install broken?
[15:06:39] <fuzzie> hmph, keep finding more broken
[15:07:03] <fuzzie> what *is* it with the portrait display? is something trying to draw labels on top?
[15:08:02] <fuzzie> yes
[15:08:36] <fuzzie> i am beginning to think that all calls of CreateLabelOnButton should be labelled with some kind of very large red "this is inevitably going to be broken" label
[15:30:54] <fuzzie> also, it turns out, any border code, text code or tooltip code
[15:33:18] <Edheldil> what is the problem with them?
[15:34:05] <fuzzie> they all keep redrawing controls on top of the controls above them
[15:34:19] <fuzzie> i fixed the obvious instances (in my working copy) and it's still buggy, not quite sure why
[15:35:42] <fuzzie> well, the answer is because all the code is from 2003 and no-one looked at it since
[15:43:23] <fuzzie> seems SetVarAssoc is my latest culprit
[15:45:45] <Edheldil> well, all controls happily overdraw whatever is above them
[15:46:04] <fuzzie> yes, so everything is meant to call Invalidate() on change unless it has a good reason
[15:46:18] <fuzzie> unfortunately, if i add that everywhere and remove the bad redraw code, still doesn't work properly
[15:47:12] <Edheldil> is not Invalidate() in Control::Draw() ?
[15:47:21] <fuzzie> no
[15:47:28] <fuzzie> the idea is: controls only redraw themselves when changed
[15:48:26] <fuzzie> and when they set their Changed state, they should invalidate whatever else needs drawing
[15:48:54] <fuzzie> this is 'everything' at the moment, except for a hack i added for the bottom-left animation
[15:50:56] <Edheldil> so you change it to invalidate() only those controls that have nonemptycrossection with it?
[15:51:18] <fuzzie> i would be happy with it just invalidating everything
[15:51:27] <fuzzie> but apparently something is sneaking a draw past this whole process
[15:51:40] <Edheldil> ... and are after it in control list
[15:51:58] <fuzzie> i did try that at first, but then it turns out that things are transparent
[15:52:23] <fuzzie> so, for animations, i just clip redrawing to their bounding box
[15:53:03] <fuzzie> grr
[15:53:11] <fuzzie> what is manually drawing these buttons?!
[15:54:41] <Edheldil> are there more than one?
[15:54:51] <fuzzie> in this case, i am trying to fix iwd's portrait windows
[15:54:54] <Edheldil> than one animation on screen
[15:55:04] <fuzzie> they have text drawn on top of them, but it is being obscured by the portraits drawing on top
[15:55:21] <fuzzie> i fixed the bugs which caused that (not committed yet), but they still draw..
[15:56:56] <-- SiENcE has left IRC (Quit: @all: cya)
[15:57:23] <fuzzie> it's not so easy because this is a gemrb hack, the button doesn't really exist
[15:58:56] <Edheldil> hmm, last time I looked, the clock in pst did the same,
[16:02:23] <fuzzie> if it's just a single button, it should work now
[16:02:36] <fuzzie> and the guiscript seems to have it as a single button
[16:03:00] <Edheldil> I will check it, then
[16:03:05] <Edheldil> later ...
[16:03:49] <lynxlynxlynx> it mostly works here, but it's pretty random
[16:04:02] <fuzzie> the pst timer, or iwd portraits?
[16:04:07] <lynxlynxlynx> and odd, avenger sent me a bugreport via forum pm!
[16:04:13] <lynxlynxlynx> iwd portraits
[16:04:19] <fuzzie> i have the iwd portraits pretty deterministic now, but can't work out where the last bug is
[16:04:38] <fuzzie> and Avenger is probably at work, web access only
[16:07:21] <lynxlynxlynx> yeah, but where's the rush?
[16:09:02] <fuzzie> you think he's not just bored?
[16:11:46] <fuzzie> this portraits thing is just crazy
[16:12:03] <fuzzie> i covered all the invalidate routes, but it still goes wrong
[16:12:08] <fuzzie> obviously i'm doing something really stupid
[16:15:34] <fuzzie> aha
[16:29:41] <fuzzie> so it's this 'CloseUpColor' thing
[16:30:44] <fuzzie> it changes the window state from inside the drawing
[16:31:40] <fuzzie> works beautifully if i sabotage that, in my local copy
[16:35:06] <fuzzie> this is the SetPortraitOverlay thing
[16:35:15] <fuzzie> erm, SetHorizontalOverlay
[16:35:29] <fuzzie> which is also responsible for all these flashes when you switch screens
[16:36:14] <fuzzie> is that something from an original game which i don't recognise?
[16:36:24] <fuzzie> i hadn't realised it was deliberate
[16:37:05] <fuzzie> but it really is, guiscript sets a fade from 255 red to 128 red whenever it updates portraits
[16:44:29] <lynxlynxlynx> odd
[16:48:41] <fuzzie> i guess Avenger's intention was to try simulating the on-hit flash?
[16:48:53] <fuzzie> but i'm just going to sabotage it for now
[16:49:08] <fuzzie> since it breaks the portrait redraws and it happens at the wrong time
[17:03:09] <fuzzie> so i reverted all my other changes and that fixes everything
[17:03:27] <fuzzie> i should probably add the other changes at some point anyway, but without a test case i don't want to touch things right now
[17:03:36] <lynxlynxlynx> :)
[17:03:37] <CIA-26> GemRB: 03fuzzie * r7e6f2c5476dd 10gemrb/gemrb/core/GUI/Button.cpp: disable CloseUpColor, because it breaks drawing (see comment)
[17:05:44] <fuzzie> i spent too much time trying to find that, but it was really irritating me
[17:17:22] <fuzzie> ok, that actsleep.ids is irrelevant for hold, at least
[17:19:45] <fuzzie> lynxlynxlynx: since you seem to be best at testing the games, should i target some point to stop messing with actions/triggers/etcx?
[17:21:21] <lynxlynxlynx> in what sense?
[17:21:29] <fuzzie> well, i'm only testing any of this against bg2
[17:21:43] <fuzzie> and it's possible that there might be quiet disasters elsewhere which i'm not noticing
[17:21:52] --> Micru has joined #GemRb
[17:22:08] <Micru> hi there
[17:22:08] <lynxlynxlynx> i wouldn't worry about that so much
[17:22:12] <lynxlynxlynx> oj
[17:22:54] <Micru> i just received today the pack: bg1+2+expansion+iwd1+2+exp+pst
[17:23:03] <lynxlynxlynx> i don't plan to do any serious testing anytime soon, but i'll definitely do the iwd addons and complete tob this year
[17:23:03] <Micru> what do you think needs more testing?
[17:23:09] <lynxlynxlynx> hehe
[17:23:21] <fuzzie> well, i don't expect you to do runs :)
[17:23:41] <lynxlynxlynx> it needs to be done from time to time ;)
[17:23:54] <Micru> :)
[17:23:57] <fuzzie> i now have this large collection of savegames from my SoA run
[17:24:07] <fuzzie> (SoA = bg2)
[17:24:24] <fuzzie> and i just pick from those at random and see what doesn't work, mostly
[17:24:52] <Micru> maybe i can take a look
[17:24:54] <lynxlynxlynx> Micru: we know of plenty of bugs already
[17:25:03] <lynxlynxlynx> you can do one systematic thing though
[17:25:04] <fuzzie> it isn't complete coverage, since the strongholds aren't covered and i didn't pick up a lot of NPCs
[17:25:11] <Micru> so no more bugs?
[17:25:21] <Micru> tell me
[17:25:24] <fuzzie> well, we have to try fixing the bugs we have first :)
[17:25:32] <lynxlynxlynx> http://gemrb.sourceforge.net/wiki/doku.php?id=badspells <-- fill this up
[17:25:49] <lynxlynxlynx> all games, all kinds of spells
[17:25:54] <Micru> ok
[17:26:01] <fuzzie> lynxlynxlynx: which game were you testing the Source in?
[17:26:04] <Micru> i'll do that
[17:26:14] <lynxlynxlynx> the list is now full of extra info, but you of course don't need to add it
[17:26:25] <lynxlynxlynx> just note the spell names and what is wrong
[17:26:29] <Micru> should i check bg2 again, or do i start with bg1?
[17:26:34] <Micru> ok, understood
[17:26:41] <lynxlynxlynx> fuzzie: start of tob
[17:26:43] <-- nickdaly` has left IRC (Ping timeout: 266 seconds)
[17:26:47] <fuzzie> ok, so it should work
[17:28:07] <lynxlynxlynx> Micru: bg2 is only missing cleric and druid spells
[17:28:25] <Micru> ok, then i'll focus on them
[17:28:34] <lynxlynxlynx> ok, some level 9 mage ones too, but that's only a handful
[17:28:57] <fuzzie> you can get sufficiently-levelled characters just by making a new bg2 game?
[17:29:08] <fuzzie> i mean, ToB
[17:30:04] <Micru> so it is ok to test in tob the bg2 spells?
[17:30:24] <fuzzie> yes
[17:30:27] <Micru> ok
[17:30:34] <Micru> see you later
[17:31:02] <lynxlynxlynx> ok
[17:31:27] <lynxlynxlynx> i'll tell you how to make cleric have sorcerer spellbooks once you're back, it should ease the testing
[17:32:26] <Micru> ok, i have to install first
[17:32:41] <fuzzie> hehe, cheat :p
[17:33:17] <fuzzie> should magic missile being too fast and instant-hit not be on badspells?
[17:34:13] <fuzzie> and is the fireshield thing better now?
[17:34:37] <fuzzie> and i guess "like hold, it disables spellcasting, while weapon and quickitem slots work" is fixed
[17:35:24] <lynxlynxlynx> yeah, forgot to change those
[17:35:24] <fuzzie> and i can check the opcode for pierce shield/magic if i know which one it is
[17:35:34] <lynxlynxlynx> fireshield is the same though
[17:35:59] <lynxlynxlynx> it should be the magic resistance modifier one
[17:36:08] <fuzzie> oh right, LastAttacker trigger issues
[17:36:40] <fuzzie> well, 0xa6 (magic resistance) does nothing
[17:36:57] <fuzzie> but i guess that isn't it
[17:37:18] <fuzzie> i'll check the spell
[17:37:53] <lynxlynxlynx> that's the thing, lower resistance displays the strings manually
[17:38:18] <lynxlynxlynx> these two are somehow different, but i haven't explored that at all
[17:39:10] <fuzzie> wait
[17:39:15] <fuzzie> do these spells display a string in the original?
[17:43:08] <lynxlynxlynx> good question, because it has been a while
[17:43:21] <lynxlynxlynx> i found a better blood mix :)
[17:52:07] <CIA-26> GemRB: 03lynxlupodian * r74c09e5e3fed 10gemrb/gemrb/GUIScripts/ (4 files in 4 dirs): changed the bloody portrait button overlay to more closely match the original color
[17:52:13] <CIA-26> GemRB: 03lynxlupodian * r84bc4861b152 10gemrb/gemrb/plugins/FXOpcodes/FXOpcodes.cpp: fixed fx_chaos_shield_modifier as per Avenger's and forum suggestion
[17:53:49] <fuzzie> cool
[17:54:29] <lynxlynxlynx> ups, forgot about that one
[17:58:35] <fuzzie> oh dear, what is all this horrible stuff in AF_ flags
[17:59:58] <lynxlynxlynx> TODO: remove
[18:05:22] <fuzzie> i think if we removed all the horrible stuff from gemrb, we'd be left with something entirely incompatible with IE games :)
[18:06:20] <wjp> very likely :-)
[18:06:27] <fuzzie> heh, BreakInstants() does exactly what i expected: nothing at all
[18:07:00] <fuzzie> that is very reassuring
[18:08:05] <fuzzie> (it isn't in instant.ids, so it will be placed onto the queue, and then new actions won't be instantly executed because they're after it in the queue)
[18:13:35] <CIA-26> GemRB: 03lynxlupodian * r0c5c110376f0 10gemrb/gemrb/GUIScripts/ (5 files in 5 dirs):
[18:13:35] <CIA-26> GemRB: merged damage overlay/tooltip code into GUICommon
[18:13:35] <CIA-26> GemRB: side effect: fixes the overlay being displayed for dead chars in some games too
[18:16:25] <fuzzie> can i make instant.ids mandatory?
[18:25:00] <lynxlynxlynx> why not? all the games have it?
[18:25:07] <lynxlynxlynx> err, that's a statement
[18:35:12] <fuzzie> the minimal data set doesn't, though
[18:36:32] <lynxlynxlynx> just another dummy file
[18:47:25] <Micru> ok, now it seems to be running, gemrb in ubuntu and original in vm winxp
[18:47:33] <Micru> is it normal the errors while loading?
[18:47:52] <fuzzie> we should really clean startup up
[18:48:02] <fuzzie> but yes
[18:48:41] <lynxlynxlynx> has it been long since you played?
[18:48:46] <Micru> is there any way i can toggle audio on/off?
[18:48:47] <Micru> yes
[18:48:51] <lynxlynxlynx> ok
[18:49:17] <fuzzie> i think you can't toggle it
[18:49:20] <lynxlynxlynx> you can permanently shut gemrb up by setting AudioDriver =None in the config
[18:49:44] <fuzzie> a mute button would be nice, although we should just go quiet on de-focus, maybe
[18:49:46] <lynxlynxlynx> there's an admin/toggle_music.sh, but i must update it
[18:50:31] <Micru> fuzzie, that is an excellent idea -> quite on defocus
[18:50:53] <fuzzie> don't know if it's good/possible'
[18:55:08] <fuzzie> hmm, we have all kinds of stupid bugs with held actors
[18:55:09] <lynxlynxlynx> especially in a generic way
[18:56:34] --> edheldil_ has joined #GemRb
[18:57:08] <fuzzie> oh for goodness sake, did i break this following again somehow
[18:58:17] <fuzzie> nope, just the attack code :(
[18:59:00] <fuzzie> woohoo, it all works
[19:03:21] <fuzzie> this has some disadvantages
[19:04:14] <fuzzie> cutscenes after dialogs now go weird
[19:04:59] <fuzzie> oh, and now it abort()ed, which is honestly not so good
[19:05:15] <lynxlynxlynx> honestly :)
[19:06:00] <fuzzie> good thing, i was about to commit it all
[19:06:43] <fuzzie> but it shows the flaws in our dialog handling
[19:06:55] <lynxlynxlynx> what are you fixing?
[19:07:14] <fuzzie> the dialog starts a cutscene and hides the gui, and then the dialog-end close shows the gui
[19:07:30] <fuzzie> instant actions
[19:07:40] <fuzzie> sorry, i thought that was obvious after i asked about instant.ids :)
[19:13:34] <Maighstir> The original games goes mute and pauses when not in focus
[19:13:50] <fuzzie> yes, but that is really annoying
[19:15:01] <Maighstir> at times, yes
[19:15:44] <fuzzie> so i'm not sure what to do in gemrb
[19:25:51] <-- exultbot has left IRC (signing off...)
[19:27:10] --> exultbot has joined #GemRb
[19:27:10] --- Topic for #GemRb is: GemRB 0.6.1 | http://gemrb.sf.net | Be wary of your words for there are Modron sensors in this channel: http://log.usecode.org/gemrblog.php | Hey <CHARNAME>, we need some awesome screenshots!
[19:27:10] --- Topic for #GemRb set by lynxlynxlynx!~navaden@sourcemage/warlock/lynxlynxlynx at Wed Jun 16 16:31:07 2010
[19:30:55] <lynxlynxlynx> sorry, my fault
[19:31:33] <lynxlynxlynx> i just diffed the removed code, but not all the follow up
[19:32:43] <fuzzie> i like how *I* can't target held enemies, but my AI scripts can
[19:36:00] <CIA-26> GemRB: 03lynxlupodian * rf73916779d44 10gemrb/gemrb/GUIScripts/ (GUICommon.py iwd/GUICommonWindows.py): iwd: fixed fallout from the merged damage overlay change
[19:41:56] --> SiENcE has joined #GemRb
[19:42:09] <SiENcE> hey
[19:42:45] <SiENcE> good news, using hw_surface on git version produces the same fps as 0.6.1
[19:42:58] <fuzzie> there's some annoying bug where <enter> can pick a dialog choice
[19:44:04] <fuzzie> SiENcE: is sdlaudio any better with higher buffer? or just the buffer size in current git?
[19:44:45] <SiENcE> fuzzie, what did gemrb do when pausing ingame? as long as i can see animation stops. this inceases fps from 15 up to 27fps
[19:45:05] <fuzzie> when you pause, it no longer has to do anything except render graphics
[19:45:06] <SiENcE> fuzzie, now i'm going to test this
[19:45:12] <SiENcE> what do i need to modify?
[19:45:24] <fuzzie> no AI scripts, no area scripts, etc
[19:45:51] <fuzzie> SiENcE: the '4096' (or '8192', in latest version) in SDLAudio.cpp; try it with 16384
[19:46:05] <SiENcE> thx
[19:46:31] <fuzzie> the animation in the bottom-left is the only animation in the game which i avoid redraws for
[19:46:56] <fuzzie> so it shouldn't make much of a difference
[19:47:08] <SiENcE> but can we disable idle character animations?
[19:47:21] <SiENcE> its not needed for such a small screen
[19:47:25] <fuzzie> that doesn't help at the moment, they'll still get drawn
[19:47:31] <SiENcE> ah
[19:47:33] <SiENcE> ok
[19:47:35] <SiENcE> np.
[19:47:43] <fuzzie> no dirty rectangles, remember :(
[19:48:32] <fuzzie> we could probably easily do dirty rectangles for the UI, as long as you draw the mouse on the screen buffer
[19:53:12] <SiENcE> ok
[19:53:41] <fuzzie> meh, iwd end still doesn't work
[19:54:43] <fuzzie> i don't see why not
[19:55:05] <fuzzie> it should be fine!
[19:55:37] <fuzzie> oh well
[19:56:23] <fuzzie> wjp: are you familiar with dirty rectangling at all? (wondering how to handle the actual 'storing rectangles' bit)
[19:59:29] <SiENcE> iwd end still doesn't work? you quitting?
[20:00:18] <fuzzie> right at the end of the game, it goes wrong
[20:00:25] <SiENcE> i exp. a problem quitting iwd. leaveing ingame
[20:00:28] <fuzzie> you don't get the final xp and the end cutscene
[20:00:32] <SiENcE> ah
[20:01:00] <lynxlynxlynx> fuzzie: that's a bug in the original too afair
[20:02:28] <fuzzie> i think if it gets this far, it should work
[20:02:33] <fuzzie> but i guess this cutsceneid stuff is no good :(
[20:02:54] <fuzzie> still, we get closer and closer to having it all work
[20:03:20] <fuzzie> Spellhold works fine with a party for me now; the party members get held, teleported around and then un-held once you're dumped by Bodhi
[20:03:52] <lynxlynxlynx> :)
[20:10:54] <SiENcE> fuzzie, i tried SDLAudio with 16384
[20:11:23] <SiENcE> mainmenu 35-42fps, sound it better but hangs every ~3sec
[20:11:39] <fuzzie> ok
[20:11:49] <fuzzie> i probably have to do proper mutexes etc, then
[20:11:59] <SiENcE> menu sounfx are a bit slow...0,5-1sec to slow
[20:12:17] <SiENcE> and intro videos have no sound
[20:12:28] <fuzzie> *nod*
[20:12:32] <SiENcE> now i try ingame
[20:12:32] <fuzzie> the movie stuff isn't done yet
[20:12:36] <SiENcE> ok
[20:13:45] <SiENcE> ingame ~13fps (so only 1fps decrease to nosound plugin)
[20:13:59] <SiENcE> ingame music also hangs every 3-4sec
[20:14:40] <SiENcE> music also hangs even when i press the pause key and fps increase tp 25fps
[20:16:36] <fuzzie> odd
[20:20:14] --> |Cable| has joined #GemRb
[20:22:14] <SiENcE> i try to play an mp3 in background using madplay and start gemrb
[20:22:25] <SiENcE> i want to see how much fps it has
[20:23:12] <fuzzie> good idea
[20:23:58] <fuzzie> i think i'm done for the day, message/id stuff is very simple but needs me to consider it more
[20:25:57] <SiENcE> i wish you a good night
[20:38:43] <SiENcE> hey fuzzie, using madplay with an mp3 in backgorund play and starting Gemrb using nosound produces No mp3 hangs and fps is ~40fps
[20:38:57] <SiENcE> so its possible
[20:39:16] <SiENcE> but madplay is also the fastest mp3 player i know
[20:44:22] <fuzzie> i think gemrb audio should be faster to decode than mp3
[20:50:38] <fuzzie> i'm not sure why it wouldn't work well though
[20:53:29] <fuzzie> i guess the ACMReader is not too efficient
[21:05:24] <SiENcE> but sdlaudio is a good base
[21:05:47] <-- Maighstir has left #GemRb
[21:17:24] <wjp> fuzzie: I never did much with dirty rectangles
[21:17:46] <wjp> fuzzie: we could potentially get away with just keeping a list and handing it to SDL as-is
[21:18:19] <wjp> especially if we decide to treat the main game map as a single one
[21:19:13] <fuzzie> well, initially just dirty-rectangling for the GUI seems to make sense, since that is trivial to keep track of
[21:19:55] <wjp> my thoughts exactly
[21:22:32] <fuzzie> our roadmap seems a little .. optimistic :-)
[21:23:47] <Micru> ok
[21:23:50] <Micru> https://spreadsheets.google.com/ccc?key=0AjPZCAakZAI3dHJNN0FaT2l5UFl1T3lmZE04RE10Q0E&hl=en
[21:23:51] <fuzzie> so what's this next release going to be, 0.6.2?
[21:24:10] <Micru> http://picasaweb.google.com/dacuetu/BG2_test?authkey=Gv1sRgCNbS5YytrdLCzgE&feat=directlink
[21:24:31] <Micru> this is the test for today, not much, but i spent too much time seting it up
[21:24:40] <fuzzie> that is impressively organised!
[21:25:04] <Micru> there is one major thing, when i reload using a autosave, the gui is missing
[21:25:08] <Micru> thx :-)
[21:25:34] <Micru> i have also other general errors, but i think you have already too much of those...
[21:25:54] <fuzzie> well, anything which is very very annoying or breaks the game is nice to hear about
[21:26:00] <wjp> fuzzie: we have a roadmap?
[21:26:06] <fuzzie> wjp: apparently!
[21:27:31] <Micru> good night!
[21:27:32] <fuzzie> Micru: i hadn't even realised the spells were sorted alphabetically there, in the original
[21:28:13] <Micru> yeah, it's hard to detect if you don't compare them side to side
[21:28:37] <-- Micru has left IRC (Remote host closed the connection)
[21:28:38] <lynxlynxlynx> fuzzie: yep, .2
[21:29:03] <lynxlynxlynx> there's no reason we shouldn't have longer cycles
[21:31:44] <fuzzie> i mean, it's fine :)
[21:32:30] <fuzzie> i am optimistic about gemrb being playable for bg2, again
[21:35:47] <fuzzie> but the other games, well, scary
[21:36:48] <lynxlynxlynx> the path to 0.7.0 is short, but then we'll need a 0.7.10 before 0.8.0
[21:37:03] <fuzzie> well, 'short' :-)
[21:37:34] <lynxlynxlynx> this stuff already mostly works
[21:40:57] <fuzzie> wjp: still awake?
[21:42:44] <fuzzie> hm, never mind, more complicated than i thought
[21:46:14] * wjp is
[21:46:27] <wjp> still early here :-)
[21:46:58] <fuzzie> i thought i'd found an obvious speed issue here, but i was just being silly, so am profiling it now
[21:47:50] <lynxlynxlynx> wjp: tourist hat in the carribean?
[21:48:20] <wjp> UK
[21:48:35] <wjp> (so just a one hour difference :-) )
[21:49:12] <lynxlynxlynx> how is that early :s
[21:49:59] <fuzzie> well, he's on vacation, he gets to sleep in, i guess :)
[21:50:26] <wjp> hm, not so far, but tomorrow I can yes :-)
[21:50:30] <fuzzie> hilariously, the ACM reader reads *one byte at a time*
[21:50:32] <-- |Cable| has left IRC (*.net *.split)
[21:50:39] <fuzzie> so fread() ends up with the top spot on my profile
[21:51:27] <fuzzie> followed by FileStream::Read and CValueUnpacker::prepare_bits, the callers
[21:52:12] <wjp> stdio buffering not doing much?
[21:52:18] <fuzzie> well, it is
[21:52:30] <fuzzie> but one byte at a time is, well, 3.5m calls for a minute of music
[21:52:41] <wjp> yeah...
[21:53:02] <fuzzie> and fread calls one internal function which calls another internal function which calls memcpy to maintain the stdio buffer
[21:56:06] <fuzzie> well, another success for the "running a profiler" technique, i guess
[21:56:37] <wjp> ah, prepare_bits
[21:59:46] <fuzzie> any immediate thoughts? :)
[22:01:32] <wjp> nothing particularly intelligent
[22:01:46] <fuzzie> i shall just buffer it
[22:05:55] --> |Cable| has joined #GemRb
[22:06:59] <-- |Cable| has left IRC (*.net *.split)
[22:07:36] <CIA-26> GemRB: 03lynxlupodian * r62825800d894 10gemrb/gemrb/GUIScripts/ (bg1/GUISAVE.py bg2/GUISAVE.py iwd/GUISAVE.py iwd2/GUISAVE.py): display "overwrite" instead of "save" when saving
[22:07:36] <CIA-26> GemRB: 03lynxlupodian * rfab1741944e2 10gemrb/gemrb/GUIScripts/bg2/GUISAVE.py: bg2: display the chapter when overwriting saves
[22:11:40] --> |Cable| has joined #GemRb
[22:14:24] <-- lynxlynxlynx has left IRC (Remote host closed the connection)
[22:17:13] --> Avenger has joined #GemRb
[22:17:13] --- ChanServ gives channel operator status to Avenger
[22:17:23] <Avenger> hi
[22:17:27] <fuzzie> hi
[22:17:32] <fuzzie> any new RE news? :)
[22:17:41] <Avenger> hmm lynx is away, i don't think writing hardcoded "Chapter " is good :)
[22:18:17] <fuzzie> oops
[22:18:35] <Avenger> well, i typed in some structs, and resolved lots of string constants. :)
[22:19:04] <Avenger> a lot of disassembly is quite readable now
[22:19:23] <Avenger> mostly 2da access
[22:20:44] <fuzzie> *nod*
[22:20:55] <Avenger> sometimes they access a 2da by row/column number, but mostly by the string name, they just used CStrings for those, it is a huge overhead and an extra redirection IDA cannot resolve automatically
[22:21:46] <fuzzie> well, i guess they don't read from 2da files too much?
[22:22:01] <Avenger> sure they do
[22:22:11] <Avenger> they cache them
[22:22:21] <Avenger> but they are cached 'raw'
[22:22:36] <Avenger> the do lots of sscanf("%d" :)
[22:23:03] <fuzzie> ugh :)
[22:24:18] <Avenger> the worst thing is sometimes they use CString for a resref, sometimes a normal char string, and sometimes a 8 byte memory area.
[22:24:35] <Avenger> and every combinations of arguments require a new function
[22:24:42] <Avenger> so they got lots of string copiers ;)
[22:24:56] <CIA-26> GemRB: 03fuzzie * r971e5b646d55 10gemrb/gemrb/plugins/ACMReader/ (unpacker.cpp unpacker.h): ACMReader: read input into a buffer, so we don't spend all the time in fread()
[22:24:58] <Avenger> they move strings left and right and around
[22:24:59] <fuzzie> SiENcE: that should help
[22:25:04] <Avenger> not just strings, objects
[22:25:36] <fuzzie> it is easy to get lazy in C++ :)
[22:26:01] <Avenger> yep, i don't like that stuff
[22:26:20] <SiENcE> fuzzie, ok i rebuild this
[22:26:21] <Avenger> Tom should see the disassembly of his code :P
[22:26:32] <fuzzie> i think everyone should see the disassembly of their code :)
[22:26:47] <Avenger> uhm, yeah
[22:27:09] <fuzzie> but i do my best to speed things up
[22:27:37] <fuzzie> i don't know if you read the log, the ACMReader was reading single bytes from the stream, it spent all the CPU time doing memory copies inside fread() :)
[22:27:42] <Avenger> ok, i have to go, tomorrow i will continue my reversing, see you!
[22:27:44] <-- Avenger has left IRC (Quit: bye!)
[22:27:46] <fuzzie> bye!
[22:27:47] <fuzzie> hehe
[22:27:54] <fuzzie> SiENcE: i don't know if it's enough, but it should help
[22:28:04] <SiENcE> ^k
[22:28:20] <fuzzie> here i got a 40% speedup
[22:28:39] <SiENcE> :)
[22:29:33] <fuzzie> i mean, just for the music, not overall :)
[22:29:46] <SiENcE> of couse ;)
[22:32:26] <fuzzie> ok, so why does the secret door in the shadow thief building send me back outside the shadow thief building?
[22:32:35] <fuzzie> it is not so helpful for completing the game
[22:32:55] <fuzzie> since Bodhi won't talk to me, for some ridiculous reason
[22:34:31] <SiENcE> ok cya tomorrow
[22:34:34] <-- SiENcE has left IRC (Quit: cya @all)
[22:43:29] --> SiENcE has joined #GemRb
[22:43:51] <SiENcE> fuzzie, 48fps and sound without hangs! good fix!
[22:43:53] <SiENcE> cya
[22:44:13] <-- SiENcE has left IRC (Client Quit)
[22:48:02] <CIA-26> GemRB: 03fuzzie * r32c653a695a2 10gemrb/gemrb/core/PluginMgr.cpp: shorten PluginMgr loading information
[22:56:43] <fuzzie> if we add config for 'don't display options' and 'don't display successful file opens', i think gemrb's console output might be readable-ish
[22:58:59] <CIA-26> GemRB: 03fuzzie * raa8d2dca7d28 10gemrb/gemrb/core/GameScript/GameScript.cpp: only print trigger/action synonyms at startup if trigger/action debugging is enabled