[00:01] kurtwr (~kurtwr@c-50-173-166-91.hsd1.ca.comcast.net) left irc: Ping timeout: 255 seconds [00:05] WooShell (~Markus@ipbcc071f7.dynamic.kabel-deutschland.de) left irc: Quit: If you understand or if you don't, if you believe or if you doubt - There's a universal justice, and the eyes of truth are always watching you. [00:14] m_kiewitz: if you have a minute, can you look and tell me if you see anything wrong with this patch? https://github.com/csnover/scummvm/blob/working/engines/sci/engine/guest_additions.cpp#L356-L360 that &rest in SRDialogPatch seems to work fine and as I expect it to work for other games, but this Torin patch is sending 2 rest arguments (0000:0001, 0000:0000) when the parameter should be just (0000:0000) [00:14] i gotta run for a half hour but i wanted to get that out in case you had time to look tonight [00:23] snover: why the change for Torin? [00:24] what's kScummVMSaveLoad? [00:24] why not use the same calling parameters as SCI16? [00:25] torin is a unique snowflake with its own special save code [00:25] but it still is a dialogue pop-up, they just&made it different for some reason [00:26] i guess it has something to do with the autosave stuff they put in it, and lsl7 is probably written the same way [00:26] i think that also maybe there should be one GuestAdditions class for SCI16 and one for SCI32, it was already moved out of the base class and there's lots of code. Or maybe there is some common code that I overlooked [00:30] kScummVMSaveLoad is just a convenient callback into ScummVM that allows the native scummvm dialog to run in place of the games own dialogue [00:32] if by same calling parameters as SCI16 you mean why not keep hooking into Game::restore/Game::save and add more stuff into kSaveGame/kRestoreGame, there are a few reasons: (1) keeps the scummvm code isolated from the rest, (2) eliminates copy of game script code into scummvm, which is frequently different across games, (3) not all sci32 games save through Game::restore/Game::save [00:34] as far as separating GuestAdditions, the audio sync code that SCI16 uses also applies to some SCI32 games. the patching mechanisms for sci16 and sci32 are a little different now by necessity, earlier revisions of this code had them both patching at the same time [00:36] at the moment im mostly just concerned by how `script 64866 - call 36 (0000:0000)` turns into `kScummVMSaveLoad (0000:0001, 0000:0000)` [00:36] the forwarded argument should be `(0000:0000)` [00:37] well, i would really prefer that special kernel opcode to simply not exist [00:37] Harekiet (~harekiet@kittens.harekiet.com) left irc: Ping timeout: 276 seconds [00:37] and i mean im not sure what you are exactly doing [00:37] makes me wonder if that 0000:0001 is somehow arg [00:37] argc* [00:37] but it's minor code, which could be written as pur sci script code [00:37] and that should then probably solve that other issue too [00:38] *pure [00:38] sci scripts cant create GUI::SaveLoadChoosers [00:38] wait, right now the scummvm GMM is shown for sci16. what are you showing? [00:38] well GMM Restore/Save [00:39] sorry, i dont know what GMM is [00:40] OMG you're such a n00b! [00:40] GMM is the menu, that you can access via hotkey, where you can select options/restore game/etc. [00:40] and I'm talking specifically about the internal ScummVM standard dialog for restoring/saving [00:40] Lightkey: tell me about it& [00:40] it's the Global Menu Manager :p [00:40] GUI::SaveLoadChooser is the ScummVM standard dialog for restoring/saving [00:41] Farmboy0 (~quassel@xoreos/farmboy0) left irc: Remote host closed the connection [00:42] the kernel interface is for game calling into the interpreter, ScummVM is the interpreter, patching a call to the game script save/load dialog to instead call into the kernel for the same functionality prevents having to copy and maintain 20 different derivative save game codes from every sci32 game that exist within Game::restore and Game::save [00:43] since those functions do other stuff besides just showing a dialog [00:44] 20 different derivative save game codes? [00:44] yes, different versions of the SCI system scripts have different code [00:44] the hook code even exists already in kRestoreGame32/kSaveGame32 [00:44] ??? [00:44] that is not the correct place to hook [00:44] ??? [00:45] there is code for showing the menu [00:45] that's not the hook [00:45] the hook simply calls kSaveGame / kRestoreGame in SCI16 with special parameters [00:45] yes, and im telling you that doesnt work for sci32 [00:45] and that same code already exists for kSaveGame32 too [00:45] why shouldn't it work? [00:46] the code is still in there, so if it doesn't work, then it needs to be fixed [00:46] adding our own opcode is beyond hackish [00:46] it is not in there on my branch [00:46] it is not hackish in any way [00:46] its in my trunk, which is not up-to-date [00:46] yes, it is. you are using new ids for scummvm specific kernel calls [00:46] it is hackish to copy game script code into scummvm [00:46] kRestoreGame is the kernel call that actually performs the game restoration. By the time that kernel call is invoked the game has already run other code to clean up the graphics in preparation for the restore [00:47] if you wait until kRestoreGame to show the game restore GUI, its too late [00:47] ??? [00:47] if you patch Game::restore, you blow up the game-specific cleanup code [00:47] you can simply call kRestoreGame w/ special parameters, that calls ScummVM UI already and returns the save game slot [00:47] you do not HAVE to save at the same time [00:48] you can show UI that way, without adding new ScummVM-specific kernel calls and then continue like before [00:48] no [00:48] im telling you that it is not possible to do that without breaking the game [00:48] Harekiet (~harekiet@kittens.harekiet.com) joined #scummvm. [00:48] i think you do not understand what I'm talking about [00:48] im not talking about patching Game::restore for SCI32 too [00:49] or do you simply forward a call from kRestoreGame32 into that other method? [00:50] ajax16384 (~User@109.60.130.33) left irc: Quit: Leaving [00:50] no, kRestoreGame is called after the game decides whether or not it is going to restore a game [00:50] the order of operations are: [00:50] from where is GuestAdditions::kScummVMSaveLoad called from? [00:50] a patched SRDialog::doit [00:50] is it a new ScummVM-specific opcode? [00:51] or is it called from kRestoreGame32? [00:51] if it's the former, then that's bad [00:51] and if it's the latter, then it's confusing but okay-ish [00:52] for me it looks like a new opcode, otherwise there should be one method for restore and one for saving [00:52] When a user asks to restore a game from the game, the game scripts call Game::restore. Game::restore calls Restore::doit (this is SRDialog) which displays the load game dialog. If Restore::doit returns a value other than -1, Game::restore continues by cleaning up all the graphics stuff, *then* calls kRestoreGame [00:53] that's not what i asked for [00:53] So this code patches the Restore::doit call, which normally renders the in-game dialogue, by having it call to the kernel so that the ScummVM dialog can be shown in place of the in-game dialog. [00:54] how is that code called by the scripts? by calling kRestoreGame32 with special parameters like it's done in sci16? [00:54] trying to patch in kRestoreGame is too late, by that time the game already has committed to restoring the game [00:54] or is it a new ScummVM-specific kernel call? [00:54] ??? [00:54] have you checked what sci16 is doing? [00:54] i dont know how to make this any clearer other than to have you read the Game.sc from a SCI32 game [00:55] you can simply identify calls to the kernel made by the hook and to actually save directly [00:55] you do not have to save or restore on every kRestoreGame call [00:55] yes you do [00:55] ??? [00:55] in sci16, kRestoreGame can get called by the hook with special parameters [00:55] the game script is committed to restoring by the time kRestoreGame is invoked. if you wait until then to show the dialog, the game has already deleted all of the graphics items in anticipation of the restore [00:56] so kRestoreGame sees that it's called by the hook and not by the regular game scripts [00:56] and when kRestoreGame knows that, it does not have to restore the game right then [00:56] i do not know how to make any clearer that *the game script controls the graphics* [00:56] it can for example show the dialog, ask the user [00:56] *the game script deletes all the graphics* [00:56] *the game graphics are all gone by the time kRestoreGame is called* [00:56] and then return some ID back to the hook, which passes it over to the scripts [00:57] and then the actual restoring can happen [00:57] the game scripts control the graphics in sci16 as well, but graphics do not matter [00:57] have you looked at sci16 kRestoreGame? [00:57] there is special code that is able to detect calls from the hook [00:57] of course i looked at it, sci32 originally was doing it the same way and was broken because of it [00:58] anyway all i wanted to know was if the call structure was wrong or not [00:58] im not talking about patching Game::restore [00:58] so this is not helpful to me, i am going afk for a while. [00:58] what the hell is wong? im not saying patch Game::restore [00:58] im saying you could simply re-use kRestoreGame - the kernel call ! to display the ScummVM UI [00:59] that's not about hooking [00:59] so maybe this will make it more obvious [00:59] SRdialog::doit is called okay? [00:59] you patch that [00:59] the patch calls kRestoreGame32 with special parameters [00:59] and thus kRestoreGame32 is called - the kernel call [01:00] it sees special parameters [01:00] it now shows the ScummVM UI, and DOES NOT DO any restore [01:00] it simply passes the value back to the *SRDialog::doit* hook [01:00] and that's it [01:01] that way you do not have to add a new ScummVM-specific kernel function to the SCI engine [01:01] it's simply reusing kRestoreGame32 and it has nothing to do with a) restoring/saving the game immediately nor b) patching the scripts like in SCI16 [01:02] you can patch whatever you like. [01:03] but no special kernel functions need to be added, but existing VM kernel functions can be re-used [01:07] girafe (~girafe@LFbn-1-11729-221.w2-7.abo.wanadoo.fr) left irc: Read error: Connection reset by peer [01:09] wjp: maybe you understand what I was trying to say the whole time. No idea if my English is that bad, if you understand it, please tell snover. [01:10] right now it seems VM kenel call 0x57 is used [01:15] m_kiewitz: i understand now what you were saying. walking away is good sometimes. [01:18] ok, i can help you create the hook script code in case you want me to. we could simply differentiate between save + restore within that code and then call kSaveGame(32) or kRestoreGame(32) [01:18] this could then also solve the torin problem [01:18] you are setting local variables for Torin, but for the generic one, why is that so? [01:18] does Torin do things differently? [01:19] yep. [01:19] how is the description set for the other games? [01:20] ah nvm [01:20] the dialogue is passed a string reference to be filled [01:20] inside .data [01:20] i feel that overloading kRestoreGame in the way that it is in sci16 is much more of a hack than adding a new kernel function designed for scummvm integration. the overloaded kRestoreGame function combines two unrelated concepts (showing a dialogue to pick a game, and receiving a save game number to actually restore a game). [01:20] there are plenty free kernel slots, and the whole point of the kernel interface is to allow the interpreter to assist the game, so i dont see that taking a dummy kernel slot and using it for the scummvm interpreter is a hack. [01:21] you never know when some fan-hacker will hack some new opcode into the engine [01:21] for AGI that went to absurd situations [01:22] where one "free" kernel id is used by 2 or 3 different hacks and we got to figure out which of those is supposed to be there [01:23] well in any case, what i really don't like is two completely different approaches [01:23] so otherwise one could change the SCI16 approach to that one [01:24] yeah. consistency is good. [01:24] we could also for example use some higher up kernel opcodes [01:24] like maybe reserve 0xE0 -> 0xEF for us [01:25] that sounds very reasonable [01:25] because in for example AGI Sierra themselves called some of the Dummy ones [01:25] you never know if they used those inbetweeners for debug functions [01:25] a dummy call does lead to a crash doesnt it? [01:25] error: dummy function called! or whatever [01:25] haven't tried that in SCI [01:26] ah it does? i thought it was a warning [01:26] error("Kernel function was called, which was considered to be unused - see log for details"); [01:26] ah, weird i thought it was just a warning [01:26] in AGI I think it is a warning and I saw it pop up during several games [01:26] kStub is a warning [01:26] ah, ok [01:27] i reintroduced kWait for Hoyle5 to get rid of its spinloops so that would also need to get hoisted to wherever, if we do decide to carve out a specific opcode range [01:27] i think 0xE0 to 0xEF would be pretty nice, E for enhancement [01:28] but, going back to my original thing& why is `&rest 0` sending (0000:0001, 0000:0000) instead of (0000:0000) when the parent calls arguments are (0000:0000)? :\ [01:28] sci2.1 goes up to 0xA0 [01:28] no idea if we got the kernel list for sci3 already somewhere [01:28] (i put that 0xE0 range on my list of todos) [01:28] I think SCI3 goes up to 0xA1 [01:29] hmm [01:30] could you try &rest 1? [01:30] i think &rest 0 passes over the parameter count as well [01:31] yeah, using &rest 1 for torin gets just the (0000:0000), but then the default one gets zero arguments, so i am wondering if i am doing something wrong or if i have just triggered a edge bug in the VM [01:32] wtf is going wrong [01:32] and SRDialog::doit gets really called with 1, 0 by the scripts in Torin? [01:33] The default one (SRDialog::doit) is always called from a member function, whereas in Torin the call is a local procedure [01:33] that really sounds like a VM bug in ScummVM then [01:33] or maybe it's something where the original SCI engine also goes crazy, idk [01:34] so Torins local procedure gets called with "1 parameter, parameter list 0"? [01:34] ah wait [01:34] local procedures do not have a parameter list, afaik [01:35] the backtraces: https://gist.github.com/csnover/72423168a3dc70d34611259abbe1d56c [01:35] hmm, need to verify that somehow [01:36] we should really add comments to those VM opcodes [01:37] 64866 export 1 has no parameters, it calls to localproc 36 with one parameter (0) [01:38] i patch localproc 36 to forward arguments using `&rest 0` to `callk kScummVMSaveLoad, 0` [01:38] (0000:0001, 0000:0000) is sent instead [01:39] in most of the other SCI32 games, SRDialog::doit is called with one parameter (0), i patch SRDialog::doit to forward arguments using `&rest 0` to `callk kScummVMSaveLoad, 0` and correctly receive (0000:0000) [01:39] it really has to be the local procedure [01:40] thats what i was thinking, but i cant really see anything in op_call that jumps out at me as being materially different yet [01:41] my eyes glaze over a little bit at the parameter list to ExecStack tho :) [01:43] can you set a breakpoint on the op_rest opcode [01:43] and then check what s->xs->argc says? [01:44] one moment please [01:45] some other code is using op_rest so i need to figure out the condition for this breakpoint [01:46] you could also warning() the s->xs->argc out [01:46] and then set a breakpoint on your kernel function [01:47] are local subroutines capable of dynamic parameters? [01:47] dreammaster (~dreammast@c-73-167-118-204.hsd1.ma.comcast.net) joined #scummvm. [01:47] #scummvm: mode change '+o dreammaster' by ChanServ!ChanServ@services. [01:47] the pmachine document and the code for op_call seem to indicate so [01:47] documentation* [01:48] but then that would be quite a big bug in &rest [01:48] maybe sierra never used it in such a case [01:49] GitHub35 (~GitHub35@192.30.252.45) joined #scummvm. [01:49] [scummvm] dreammaster pushed 1 new commit to master: https://git.io/vDnrq [01:49] scummvm/master 9e09592 Paul Gilbert: TITANIC: Implementing more CMusicRoomHandler code [01:49] GitHub35 (GitHub35@192.30.252.45) left #scummvm. [01:49] im doing a quick check to see if i can find anywhere that seems to call a local or export with rest [01:50] `Print.sc: (= temp0 (proc64921_3 &rest))` heres one, using calle though [01:52] well, actually, i should double-check that it is using calle. its a call to an exported localproc i think [01:52] that would be calle then and different [01:52] maybe it works in that case too [01:53] the local call in torin is an exported localproc [01:53] export 2 [01:53] but it the code calls it as a local [01:53] hmm, ok so what happens then? [01:54] well, it is the proc that seems to have broken &rest forwarding :) [01:55] so Print::addTextF is `push0; &rest 1; call $0191, 0` [01:56] interesting that it starts at &rest 1 [01:56] since it has no explicitly named parameters [01:56] now lets see what happens with the &rest calls that are made to selectors& [01:57] i guess it depends on the original call opcode [01:58] it is also &rest 1. so i guess i am dumb and &rest 0 is wrong [01:59] can you find &rest 0 anywhere? [02:00] but with &rest 1, it also doesn't work correctly, right? [02:00] &rest 1 might not work correctly because maybe the first parameter was optional, or just did an invalid read [02:01] it depends [02:01] im not sure if &rest 0 means -> pass over all parameters including parameter count [02:01] or if &rest 0 is basically invalid and &rest1 means exactly that instead [02:01] op_rest code says [02:01] / +1 because temp counts the paramcount while argc doesn't [02:03] in case &rest 0 is invalid, maybe we should add an error() for that case [02:03] i found only one place that seems to use &rest param2, so i am looking at that [02:03] i have not found any explicit &rest 0 [02:03] yet [02:03] when we figure this out we should really add a comment to op_rest [02:03] it is unfortunate that zero arguments looks like one argument of value 0, since 0 is the expected value& [02:04] /s/zero arguments/&rest 0 [02:04] what happens again when you try &rest 1 inside the patched hook? [02:04] when you try it on one of the other games? [02:04] what exactly do you get? [02:04] one moment [02:05] &rest 0 should happen quite often in case it really just forwarded all parameters [02:10] yeah, that is another very good observation [02:11] wait, it seems it's a parameter count [02:11] im starting to remember that i think there was an uninitialized read complaint about Restore::doit [02:13] WARNING: Uninitialized read for parameter 1 from method Restore::doit (room 375, script 64990, localCall ffffffff)! sigh [02:13] well the good news is everything makes sense now. [02:13] thank you so much for your help. [02:13] the vm is fine, though i will also do what you suggest and make a note in op_rest [02:14] does it work now? [02:14] i guess we should at least add a warning() to op_rest, when it's called with parameter[0] = 0 [02:14] or even an error(), i guess so much testing has to be done anyway, that an error() wouldn't be that bad [02:15] oh right and a comment should be added in any case about the exact behavior [02:15] i think i went through this years ago already figuring out the same questions [02:16] or welll answers [02:23] yeah, seems to be working ok now that you managed to dislodge the stupid that was stuck to my brain :) [02:23] you're welcome. have to get some sleep now. bye [02:23] ok. thanks again : [02:23] :) [02:23] m_kiewitz (~m_kiewitz@scummvm/undead/m-kiewitz) left irc: Quit: technology isn't intrinsically good or evil. It's how it's used. Like the Death Ray. [02:36] WinterGrascph (~WinterGra@catv-178-48-146-216.catv.broadband.hu) left irc: Ping timeout: 256 seconds [02:39] Dominus (~dominus@unaffiliated/dominus) left irc: Ping timeout: 240 seconds [02:40] Dominus (~dominus@91-115-163-69.adsl.highway.telekom.at) joined #scummvm. [02:40] Dominus (~dominus@91-115-163-69.adsl.highway.telekom.at) left irc: Changing host [02:40] Dominus (~dominus@unaffiliated/dominus) joined #scummvm. [02:41] Vampire0_ (~Vampire@jEdit/Vampire) joined #scummvm. [02:44] Vampire0 (~Vampire@jEdit/Vampire) left irc: Ping timeout: 240 seconds [02:49] Littleboy (~littleboy@c-73-186-252-231.hsd1.ma.comcast.net) left irc: Quit: Ętre dans le vent, une ambition de feuille morte. [03:38] D0SFreak (~D0SFreak@172.56.4.15) left irc: Ping timeout: 258 seconds [03:40] GitHub110 (~GitHub110@192.30.252.45) joined #scummvm. [03:40] [scummvm] dreammaster pushed 1 new commit to master: https://git.io/vDnXR [03:40] scummvm/master 529680e Paul Gilbert: TITANIC: Beginnings of music object and parser classes [03:40] GitHub110 (GitHub110@192.30.252.45) left #scummvm. [03:43] I'm honestly not sure if I should be happy or frustrated that there's a (currently unknown) music related support class that itself using a special string parser for parsing a whole bunch of goobledegook for setting up an array of values [03:43] It's kind of fascinating, in a bizarre kind of way :) [03:51] https://www.gog.com/promo/20170130_weekly_sale Sierra catalogue at discount [03:56] dreammaster: that sounds amazing [03:58] My current guess that it's some kind of wave table or sound font for each of the four instruments. Though I'm not sure why it'd be needed if that's the case, since the source raw data for the music is coming from .wav files, not MIDI [03:59] I suppose I should count it as a plus that there's intruiging/interesting support classes mixed up in all this music handling stuff [04:40] te_lanus (~te_lanus@154.66.195.97) joined #scummvm. [04:41] ST (~ScottT@203-227-181-180.cpe.skymesh.net.au) left irc: Quit: Leaving. [04:45] GitHub56 (~GitHub56@192.30.252.42) joined #scummvm. [04:45] [scummvm] dreammaster pushed 1 new commit to master: https://git.io/vDnMv [04:45] scummvm/master d10ac86 Paul Gilbert: TITANIC: Implemented CMusicObject initialization [04:45] GitHub56 (GitHub56@192.30.252.42) left #scummvm. [05:06] o kay. torin integrated save/load seems to be working now too. [05:08] so gk1, pq4, qfg4, lsl6 hires, sq6, torin, and gk2 all have the scummvm save integration [05:08] Cool :) [05:08] What's left? [05:08] hoyle has no save, kq7 and phant1 do bookmarks so arent relevant [05:09] mgdx also does bookmarks [05:09] and nobody cares about pq:swat [05:09] LOL :) [05:09] so thats all the sci2/2.1 games [05:09] oh, and shivers has its own special thing, i dunno if i wanna mess with it [05:10] hypothetically the game would maybe work with integration, but it uses this weird guestbook model [05:10] i shutter to think of what happens if someone manages to generate a save game with a long name [05:10] so i might just leave that one with its custom save/load for now [05:11] GitHub176 (~GitHub176@192.30.252.42) joined #scummvm. [05:11] [scummvm] dreammaster pushed 1 new commit to master: https://git.io/vDnM9 [05:11] scummvm/master 7abea34 Paul Gilbert: TITANIC: Minor fixes to CMusicObject & CMusicParser [05:11] GitHub176 (GitHub176@192.30.252.42) left #scummvm. [05:11] whats left is making the deferred save code work [05:11] which is that thing that lets you load a game direct from the launcher [05:11] Well, certainly ScummVM save integration isn't a mandatory requirement [05:15] Anyway, getting a bit late for me, so goodnight [05:15] dreammaster (~dreammast@c-73-167-118-204.hsd1.ma.comcast.net) left irc: [05:34] peterkohaut (~peterkoha@188-167-125-162.dynamic.chello.sk) left irc: Ping timeout: 255 seconds [05:35] for the delayed games i am currently thinking of some way to invoke Game::restore and bypass the dialog call by having it immediately return the stored delayed save game number; well see how that goes. [06:38] Strangerke (~Strangerk@cable-85.28.84.13.coditel.net) left irc: Ping timeout: 256 seconds [06:51] frankyboy_ (~franky@ppp91-78-198-166.pppoe.mtu-net.ru) joined #scummvm. [06:54] goom (~goom@cpe-66-25-153-174.satx.res.rr.com) joined #scummvm. [06:57] frankyboy_ (~franky@ppp91-78-198-166.pppoe.mtu-net.ru) left irc: Read error: Connection reset by peer [06:58] frankyboy_ (~franky@ppp91-78-198-166.pppoe.mtu-net.ru) joined #scummvm. [07:10] _sev (~sev@scummvm/undead/sev) left irc: Ping timeout: 240 seconds [07:12] diehumblex (uid209517@gateway/web/irccloud.com/x-czriltlzpoatbgpc) joined #scummvm. [07:21] TMM (~hp@fsf/member/pdpc.professional.tmm) left irc: Quit: Ex-Chat [07:57] ajax16384 (~User@109.60.130.33) joined #scummvm. [07:57] #scummvm: mode change '+o ajax16384' by ChanServ!ChanServ@services. [08:10] Lightkey (~Darklock@p200300764C2EBF7622CF30FFFE083718.dip0.t-ipconnect.de) left irc: Ping timeout: 240 seconds [08:23] Lightkey (~Darklock@p200300764C2EBF0522CF30FFFE083718.dip0.t-ipconnect.de) joined #scummvm. [08:41] _sev (~sev@scummvm/undead/sev) joined #scummvm. [08:41] #scummvm: mode change '+o _sev' by ChanServ!ChanServ@services. [08:42] LittleToonCat (~littlecat@sydnns0115w-047054148237.dhcp-dynamic.FibreOP.ns.bellaliant.net) left irc: Remote host closed the connection [08:45] Axy (~Mia@78.191.237.45) joined #scummvm. [08:45] Axy (~Mia@78.191.237.45) left irc: Changing host [08:45] Axy (~Mia@unaffiliated/mia) joined #scummvm. [08:46] hi [08:47] hi [08:47] Mia (~Mia@unaffiliated/mia) left irc: Ping timeout: 245 seconds [08:49] frankyboy_ (~franky@ppp91-78-198-166.pppoe.mtu-net.ru) left irc: Ping timeout: 276 seconds [08:50] frankyboy_ (~franky@ppp46-138-43-255.pppoe.spdop.ru) joined #scummvm. [08:57] frankyboy_ (~franky@ppp46-138-43-255.pppoe.spdop.ru) left irc: Read error: Connection reset by peer [08:58] frankyboy_ (~franky@ppp46-138-43-255.pppoe.spdop.ru) joined #scummvm. [09:07] jamm (~jam@unaffiliated/jamm) joined #scummvm. [09:29] _sev (~sev@scummvm/undead/sev) left irc: Ping timeout: 245 seconds [09:31] WooShell (~Markus@ipbcc071f7.dynamic.kabel-deutschland.de) joined #scummvm. [09:34] good meowning =^.^= [09:36] _sev (~sev@2001:67c:1810:f051:64d1:414e:44a1:b5c5) joined #scummvm. [09:36] _sev (~sev@2001:67c:1810:f051:64d1:414e:44a1:b5c5) left irc: Changing host [09:36] _sev (~sev@scummvm/undead/sev) joined #scummvm. [09:36] #scummvm: mode change '+o _sev' by ChanServ!ChanServ@services. [09:51] _sev (~sev@scummvm/undead/sev) left irc: Quit: This computer has gone to sleep [09:56] Deledrius (~Deledrius@2602:100:4476:8bd6:245b:edca:9f40:da73) left irc: Ping timeout: 256 seconds [09:57] Deledrius (~Deledrius@2602:100:4476:8bd6:245b:edca:9f40:da73) joined #scummvm. [10:04] goom (~goom@cpe-66-25-153-174.satx.res.rr.com) left irc: Quit: Leaving [10:11] Analogue (~yaaic@2001:67c:1810:f055:e8dc:24e:bd2:fadf) joined #scummvm. [10:12] Analogue (~yaaic@2001:67c:1810:f055:e8dc:24e:bd2:fadf) left irc: Client Quit [10:18] begasus (~begasus@ptr-4p6jpioq26xl346on9r.18120a2.ip6.access.telenet.be) joined #scummvm. [10:18] Nick change: begasus -> Begasus [10:25] m_kiewitz (~m_kiewitz@x4d03c3b6.dyn.telefonica.de) joined #scummvm. [10:25] m_kiewitz (~m_kiewitz@x4d03c3b6.dyn.telefonica.de) left irc: Changing host [10:25] m_kiewitz (~m_kiewitz@scummvm/undead/m-kiewitz) joined #scummvm. [10:25] #scummvm: mode change '+o m_kiewitz' by ChanServ!ChanServ@services. [10:31] Begasus (~begasus@ptr-4p6jpioq26xl346on9r.18120a2.ip6.access.telenet.be) left irc: Quit: Ex-Chat [10:40] criezy (~criezy@host86-175-214-121.range86-175.btcentralplus.com) left irc: Quit: criezy [10:41] rootfather (~rootfathe@unaffiliated/rootfather) left irc: [10:45] Begasus (~Begas_@d54C3C8C2.access.telenet.be) joined #scummvm. [10:51] diehumblex (uid209517@gateway/web/irccloud.com/x-czriltlzpoatbgpc) left irc: Quit: Connection closed for inactivity [10:51] frankyboy_ (~franky@ppp46-138-43-255.pppoe.spdop.ru) left irc: Remote host closed the connection [10:54] dang [11:00] FOSDEM [11:15] FOSDANG [11:28] _sev (~sev@2001:67c:1810:f051:e0c6:7f1:77d5:98d4) joined #scummvm. [11:28] _sev (~sev@2001:67c:1810:f051:e0c6:7f1:77d5:98d4) left irc: Changing host [11:28] _sev (~sev@scummvm/undead/sev) joined #scummvm. [11:28] #scummvm: mode change '+o _sev' by ChanServ!ChanServ@services. [11:31] Begasus (~Begas_@d54C3C8C2.access.telenet.be) left irc: Quit: Vision[0.9.8]: i've been blurred! [11:37] wjp: ah right, why aren't you there too? [11:39] unless you actually are :P [11:54] Dominus (~dominus@unaffiliated/dominus) left irc: Ping timeout: 240 seconds [11:56] Dominus (~dominus@194-166-152-76.adsl.highway.telekom.at) joined #scummvm. [11:56] Dominus (~dominus@194-166-152-76.adsl.highway.telekom.at) left irc: Changing host [11:56] Dominus (~dominus@unaffiliated/dominus) joined #scummvm. [11:57] begasus (~begasus@ptr-4p6jpiol1yvts2mxi0j.18120a2.ip6.access.telenet.be) joined #scummvm. [12:03] Wishmaster2 (~Wishmaste@dslb-178-006-246-091.178.006.pools.vodafone-ip.de) joined #scummvm. [12:09] _sev (~sev@scummvm/undead/sev) left irc: Quit: This computer has gone to sleep [12:38] begasus (~begasus@ptr-4p6jpiol1yvts2mxi0j.18120a2.ip6.access.telenet.be) left irc: Quit: Ex-Chat [12:42] NuSuey (uid3556@gateway/web/irccloud.com/x-reeulbazauyedxsy) joined #scummvm. [13:25] diehumblex (uid209517@gateway/web/irccloud.com/x-teolysnujogsdydj) joined #scummvm. [13:40] WinterGrascph (~WinterGra@catv-178-48-146-216.catv.broadband.hu) joined #scummvm. [13:40] #scummvm: mode change '+o WinterGrascph' by ChanServ!ChanServ@services. [14:05] _sev (~sev@2001:67c:1810:f051:4c2a:8f3d:a271:b7ba) joined #scummvm. [14:05] _sev (~sev@2001:67c:1810:f051:4c2a:8f3d:a271:b7ba) left irc: Changing host [14:05] _sev (~sev@scummvm/undead/sev) joined #scummvm. [14:05] #scummvm: mode change '+o _sev' by ChanServ!ChanServ@services. [14:08] Begasus (~Begas_@d54C3C8C2.access.telenet.be) joined #scummvm. [14:13] salty-horse (~salty-hor@unaffiliated/salty-horse) joined #scummvm. [14:13] #scummvm: mode change '+o salty-horse' by ChanServ!ChanServ@services. [14:13] I'm on windows, launched scummvm via the installer. alt+s doesn't take a screenshot, says nothing in ctrl+d console. is it trying to write to "program files" where it has no permissions? [14:14] 2) the readme doesn't state where screenshots are saved to. should it say "current directory" for all platforms? for windows, should we instead save in "my documents" somewhere? [14:14] (to circumvent any write permission issues) [14:17] GitHub194 (~GitHub194@192.30.252.41) joined #scummvm. [14:17] [scummvm] sev- pushed 3 new commits to master: https://git.io/vDcUr [14:17] scummvm/master 04a2a8b Eugene Sandulenko: GRAPHICS: Hid noisy debug messages in MacText [14:17] scummvm/master e15f2e7 Eugene Sandulenko: DIRECTOR: Hid font test under debug channel [14:17] scummvm/master 6d8d398 Eugene Sandulenko: DIRECTOR: Implemented pausing/continuing of playback [14:17] GitHub194 (GitHub194@192.30.252.41) left #scummvm. [14:17] GitHub118 (~GitHub118@192.30.252.34) joined #scummvm. [14:17] [scummvm] criezy pushed 1 new commit to master: https://git.io/vDcUo [14:17] scummvm/master 87237f6 Purple T: I18N: Update translation (French)... [14:17] GitHub118 (GitHub118@192.30.252.34) left #scummvm. [14:17] WinterGrascph (~WinterGra@catv-178-48-146-216.catv.broadband.hu) left irc: Quit: Leaving [14:21] Begasus (~Begas_@d54C3C8C2.access.telenet.be) left irc: Read error: Connection reset by peer [14:21] Begasus (~Begas_@d54C3C8C2.access.telenet.be) joined #scummvm. [14:27] Begasus (~Begas_@d54C3C8C2.access.telenet.be) left irc: Read error: Connection reset by peer [14:27] Begas (~Begas_@d54C3C8C2.access.telenet.be) joined #scummvm. [15:06] Nick change: Begas -> Begasus [15:23] opened a bug about the windows screenshot issue: https://bugs.scummvm.org/ticket/9701 [15:24] Begasus (~Begas_@d54C3C8C2.access.telenet.be) left irc: Ping timeout: 240 seconds [15:24] Begas (~Begas_@d54C3C8C2.access.telenet.be) joined #scummvm. [15:31] Begas (~Begas_@d54C3C8C2.access.telenet.be) left irc: Read error: Connection reset by peer [15:44] _sev (~sev@scummvm/undead/sev) left irc: Quit: This computer has gone to sleep [15:44] GitHub51 (~GitHub51@192.30.252.41) joined #scummvm. [15:44] [scummvm] sev- pushed 5 new commits to master: https://git.io/vDcLd [15:44] scummvm/master 91d85fe Eugene Sandulenko: GRAPHICS: Correctly process empty lines in MacText [15:44] scummvm/master 1a4be95 Eugene Sandulenko: GRAPHICS: Try to generate font names from slant in MacFontManager [15:44] scummvm/master 906d94a Eugene Sandulenko: GRAPHICS: Enforce font recomputation in MacText [15:44] GitHub51 (GitHub51@192.30.252.41) left #scummvm. [15:45] Begasus (~begasus@ptr-4p6jpilsigpbwi231l0.18120a2.ip6.access.telenet.be) joined #scummvm. [16:25] _sev (~sev@scummvm/undead/sev) joined #scummvm. [16:25] #scummvm: mode change '+o _sev' by ChanServ!ChanServ@services. [16:35] jamm (~jam@unaffiliated/jamm) left irc: Read error: Connection reset by peer [16:44] Farmboy0 (~quassel@p5DD10F1E.dip0.t-ipconnect.de) joined #scummvm. [16:44] Farmboy0 (~quassel@p5DD10F1E.dip0.t-ipconnect.de) left irc: Changing host [16:44] Farmboy0 (~quassel@xoreos/farmboy0) joined #scummvm. [16:52] GitHub158 (~GitHub158@192.30.252.45) joined #scummvm. [16:52] [scummvm] sev- pushed 1 new commit to master: https://git.io/vDcYX [16:52] scummvm/master a8c9e47 Eugene Sandulenko: DIRECTOR: Removed text cast width hack. It is incorrect. [16:52] GitHub158 (GitHub158@192.30.252.45) left #scummvm. [16:54] te_lanus (~te_lanus@154.66.195.97) left irc: Read error: Connection reset by peer [16:55] te_lanus (~te_lanus@154.66.195.97) joined #scummvm. [17:01] _sev (~sev@scummvm/undead/sev) left irc: Quit: This computer has gone to sleep [17:09] Wishmaster2 (~Wishmaste@dslb-178-006-246-091.178.006.pools.vodafone-ip.de) left irc: Read error: Connection reset by peer [17:10] Nick change: Begasus -> Begasus_bbl [17:35] Littleboy (~littleboy@c-73-186-252-231.hsd1.ma.comcast.net) joined #scummvm. [17:35] #scummvm: mode change '+o Littleboy' by ChanServ!ChanServ@services. [17:37] te_lanus (~te_lanus@154.66.195.97) left irc: Remote host closed the connection [17:39] Wishmaster2 (~Wishmaste@dslb-178-006-246-091.178.006.pools.vodafone-ip.de) joined #scummvm. [17:59] NuSuey (uid3556@gateway/web/irccloud.com/x-reeulbazauyedxsy) left irc: Quit: Connection closed for inactivity [18:06] LittleToonCat (~littlecat@sydnns0115w-047054148237.dhcp-dynamic.FibreOP.ns.bellaliant.net) joined #scummvm. [18:09] _sev (~sev@scummvm/undead/sev) joined #scummvm. [18:09] #scummvm: mode change '+o _sev' by ChanServ!ChanServ@services. [18:22] klusark (~klusark@216-71-194-243.dyn.novuscom.net) left irc: Quit: quit [18:33] jamm (~jam@unaffiliated/jamm) joined #scummvm. [18:50] kurtwr (~kurtwr@c-50-173-166-91.hsd1.ca.comcast.net) joined #scummvm. [18:52] kurtwr2 (~kurtwr@c-50-173-166-91.hsd1.ca.comcast.net) left irc: Ping timeout: 256 seconds [18:55] TMM (~hp@fsf/member/pdpc.professional.tmm) joined #scummvm. [18:55] #scummvm: mode change '+o TMM' by ChanServ!ChanServ@services. [18:59] klusark (~klusark@216-71-194-243.dyn.novuscom.net) joined #scummvm. [19:05] dang. my approach of performing delayed restores by prefilling save game slot and calling Game object ::restore works everywhere except SQ6& [19:06] looks like sq6 has a global guard variable i can possibly abuse& [19:07] hmm. it is the current room number global [19:07] snover, add a patch overlay to add another one? :D [19:08] this sounds like the kind of fun thing that leads to a few years of fun with different patches/versions [19:09] the room number its checking is the sierra logo/main menu room, so i guess the delayed restore is just a little bit early [19:09] fuzzie: of course. games with different patch versions are incompatible in ssci :\ [19:10] among other things, it relies on the initialisation code executing exactly the same every time, otherwise persistent objects arent given the same memory ID and the game crashes [19:10] crashes when you try to restore a game* [19:11] i still havent thought of how to make delayed (from the launcher) restore work with original save/load enabled [19:12] the game script restore method *has* to be called for restores to work correctly because its responsible for rejiggering the VM to accept a new save game state [19:17] yay, works now. [19:19] Begasus_bbl (~begasus@ptr-4p6jpilsigpbwi231l0.18120a2.ip6.access.telenet.be) left irc: Ping timeout: 255 seconds [19:22] this also fixes the really important bug that the sierra logo was stuck being displayed in pq:swat when loading from the launcher [19:25] for original save/load, i wonder if i can just selectively patch the restore code if there is a pending delayed restore, and then it will get fixed up back to the original when the savegame overwrites all the scripts& hmm. lets find out! [19:29] arcane magic! [19:29] I love it :) [19:29] TMM: yeah& there is a reason i am segregating all this code into its own class [19:30] snover, is one of the class methods 'add_gnat_eyes(int num);'? [19:31] i dont get the joke :( [19:31] Begasus_bbl (~begasus@ptr-4p6jpilsigpbwi231l0.18120a2.ip6.access.telenet.be) joined #scummvm. [19:32] snover, oh, it's like a recipe for a magic potion 'gnat eyes' [19:33] i think it might be more like `here_be_dragons(int num)` ;) [19:33] increase the number, increase the fun [19:38] omer_mor_ (~Omer@46-117-132-33.bb.netvision.net.il) joined #scummvm. [19:40] omer_mor (~Omer@46-117-132-33.bb.netvision.net.il) left irc: Ping timeout: 255 seconds [19:46] rootfather (~rootfathe@unaffiliated/rootfather) joined #scummvm. [19:46] #scummvm: mode change '+o rootfather' by ChanServ!ChanServ@services. [20:18] dreammaster (~dreammast@c-73-167-118-204.hsd1.ma.comcast.net) joined #scummvm. [20:18] #scummvm: mode change '+o dreammaster' by ChanServ!ChanServ@services. [20:20] GitHub68 (~GitHub68@192.30.252.42) joined #scummvm. [20:20] [scummvm] dreammaster pushed 1 new commit to master: https://git.io/vDc8R [20:20] scummvm/master c6f4da1 Paul Gilbert: TITANIC: Fix CMusicParser to produce correct results [20:20] GitHub68 (GitHub68@192.30.252.42) left #scummvm. [20:35] ny00123 (~ny00123@bzq-79-182-43-200.red.bezeqint.net) left irc: Quit: Leaving [20:38] GitHub90 (~GitHub90@192.30.252.34) joined #scummvm. [20:38] [scummvm] dreammaster pushed 1 new commit to master: https://git.io/vDc4L [20:38] scummvm/master b78b30c Paul Gilbert: TITANIC: Fix CMusicObject initialization [20:38] GitHub90 (GitHub90@192.30.252.34) left #scummvm. [20:39] dreammaster: something like INT_MAX sure would be nice eh :) [20:39] Yes indeed [20:40] I was actually thrown for a bit originally, because the minimum they used was 0x80000000, and I couldn't remember if that was a positive or negative signed value [20:41] the smallest number in the world of 32-bits [20:51] Well, now it's matching exactly what the original did at least. And the class doesn't have any other methods, so nothing more surprising for it. Now that that's all taken care of, I guess it's back to CMusicRoomHandler [20:53] i saw what you were saying earlier about it seeming weird, but id guess it is exactly what you said, basically doing some soundfont-like thing to allow a single sample to be used for a range of notes, and also remaining in sync with the rest of the song [20:53] if i had to guess [20:54] if you like more speculation on your speculation [20:55] Well, when it's fully implemented we'll see if it's more understandable then. Worst case scenario, it can just stay as the generic "CMusicObject" with unnamed fields [20:56] in other good news, my idea for how to restore with original save/loads also seems to be working [20:56] I kind of understand the use of the parser a bit now too. The first string results in 35 8-byte entries, so the string is a more compact way to represent it. And I guess they had some meaningful tool for produce the string to begin with [20:56] Excellent. The channel logs have certainly been bursting over the last 24 hours :) [21:02] so once i have cleaned all this up, adding a workaround for that harp problem in kq7, which should be a one-liner, means that these games should all be ready to go to testing, once everything lands. [21:02] m-kiewitz (~m_kiewitz@x4d03dc7d.dyn.telefonica.de) joined #scummvm. [21:02] m-kiewitz (~m_kiewitz@x4d03dc7d.dyn.telefonica.de) left irc: Changing host [21:02] m-kiewitz (~m_kiewitz@scummvm/undead/m-kiewitz) joined #scummvm. [21:02] #scummvm: mode change '+o m-kiewitz' by ChanServ!ChanServ@services. [21:03] m_kiewitz (~m_kiewitz@scummvm/undead/m-kiewitz) left irc: Ping timeout: 255 seconds [21:05] jamm (~jam@unaffiliated/jamm) left irc: Ping timeout: 240 seconds [21:11] girafe (~girafe@LFbn-1-11729-221.w2-7.abo.wanadoo.fr) joined #scummvm. [21:35] dreammaster (~dreammast@c-73-167-118-204.hsd1.ma.comcast.net) left irc: Ping timeout: 240 seconds [21:37] dreammaster (~dreammast@c-73-167-118-204.hsd1.ma.comcast.net) joined #scummvm. [21:37] #scummvm: mode change '+o dreammaster' by ChanServ!ChanServ@services. [21:44] i wonder if save games below the current save game version should be blocked for sci32, since they are almost certainly corrupt by missing some of the game-specific save code [21:45] snover: shouldn't be a problem. My own saved games from my gk1 testrun are broken now, so useless. [21:46] and sci32 was never officially supported, so broken saved games are still allowed to happen. [21:46] i have some earlier save games that still work, but are corrupt in subtle ways. i just dont want to get bug reports because someone decided to try loading an old game that kinda works [21:47] but i am not sure how much of a problem this really is [21:47] Begasus_bbl (~begasus@ptr-4p6jpilsigpbwi231l0.18120a2.ip6.access.telenet.be) left irc: Quit: Ex-Chat [21:48] some of mine either error() out because of invalid segment ids or even crash scummvm [21:48] blocking them would surely would be good. [21:56] I have a lsl6 one that a user submitted that seems OK except one of the control icons in the menu is wrong, but certainly has more problems than that [21:57] Had it been a problem for other engines in the past at all? [22:00] Well, I generally put in a version number as part of the savegame header on engines I work on, and simply ignore the savegame if the version is too old (and it's not feasible to handle the older version) [22:21] GitHub72 (~GitHub72@192.30.252.34) joined #scummvm. [22:21] [scummvm] dreammaster pushed 1 new commit to master: https://git.io/vDcEa [22:21] scummvm/master 8e87dc1 Paul Gilbert: TITANIC: Implemented CMusicRoomHandler fn1 and getPitch [22:21] GitHub72 (GitHub72@192.30.252.34) left #scummvm. [22:28] Nick change: rootfather -> rootfather|afk [22:28] dreammaster (~dreammast@c-73-167-118-204.hsd1.ma.comcast.net) left irc: Ping timeout: 245 seconds [22:32] GitHub135 (~GitHub135@192.30.252.41) joined #scummvm. [22:32] [scummvm] sev- pushed 1 new commit to master: https://git.io/vDcum [22:32] scummvm/master 76e66a4 Eugene Sandulenko: DIRECTOR: Lingo: Implemented b_quit() [22:32] GitHub135 (GitHub135@192.30.252.41) left #scummvm. [22:34] GitHub122 (~GitHub122@192.30.252.42) joined #scummvm. [22:34] [scummvm] sev- pushed 1 new commit to master: https://git.io/vDcuZ [22:34] scummvm/master 29ad5a0 Eugene Sandulenko: DIRECTOR: Lingo: Implemented b_shutDown() and b_restart() [22:34] GitHub122 (GitHub122@192.30.252.42) left #scummvm. [22:38] salty-horse (~salty-hor@unaffiliated/salty-horse) left irc: Quit: Leaving [22:50] Henke37 (~Henrik@81-227-16-59-no133.bredband.skanova.com) left irc: Quit: ERR_SHUTDOWN [23:01] ajax16384 (~User@109.60.130.33) left irc: Read error: Connection reset by peer [23:08] Wishmaster2 (~Wishmaste@dslb-178-006-246-091.178.006.pools.vodafone-ip.de) left irc: Read error: Connection reset by peer [23:18] WinterGrascph (~WinterGra@winter.sch.bme.hu) joined #scummvm. [23:18] #scummvm: mode change '+o WinterGrascph' by ChanServ!ChanServ@services. [23:20] girafe (~girafe@LFbn-1-11729-221.w2-7.abo.wanadoo.fr) left irc: Read error: Connection reset by peer [23:42] dreammaster (~dreammast@c-73-149-116-247.hsd1.vt.comcast.net) joined #scummvm. [23:42] #scummvm: mode change '+o dreammaster' by ChanServ!ChanServ@services. [23:43] GitHub34 (~GitHub34@192.30.252.34) joined #scummvm. [23:43] [scummvm] dreammaster pushed 1 new commit to master: https://git.io/vDc2P [23:43] scummvm/master b005198 Paul Gilbert: TITANIC: Implemented remainder of CMusicRoomHandler code [23:43] GitHub34 (GitHub34@192.30.252.34) left #scummvm. [23:46] kurtwr (~kurtwr@c-50-173-166-91.hsd1.ca.comcast.net) left irc: Read error: Connection reset by peer [23:46] kurtwr (~kurtwr@c-50-173-166-91.hsd1.ca.comcast.net) joined #scummvm. [00:00] --- Sun Feb 5 2017