[Back to Index]

  
[00:00] <snover> assuming your localised version has the same script without modifications&
[00:00] <snover> its there, i promise, just search the disasm ;)
[00:07] <-- Simei left irc: Ping timeout: 240 seconds
[00:07] --> Simei joined #scummvm.
[00:07] <-- SylvainTV left irc: Read error: Connection reset by peer
[00:13] <-- Gentle left irc: Ping timeout: 255 seconds
[00:13] <m_kiewitz> snover: any way to look inside an array?
[00:13] <snover> in scummvm? yeah, just run vr on it
[00:14] <m_kiewitz> hmm it's calling Kernel params: (0000:0002, 0014:0294, 0000:0001) on the array
[00:15] <m_kiewitz> hmm
[00:15] <m_kiewitz> the End class has number Cues == 2
[00:15] <m_kiewitz> but it seems the array isn't properly set up?
[00:15] <snover> calling kArraySetElements?
[00:15] <snover> sorry, which kernel call are those kernel params for?
[00:16] <m_kiewitz> kArray
[00:16] <m_kiewitz> but it seems it's not that calls fault
[00:16] <m_kiewitz> it seems the array is broken
[00:16] <m_kiewitz> it's 10 elements???
[00:16] <m_kiewitz> and only the first one is 4
[00:16] <m_kiewitz> everything else is 0
[00:16] <m_kiewitz> so that explains it
[00:16] <m_kiewitz> i guess there should be a 10h somewhere
[00:21] <m_kiewitz> does IntArray::new
[00:22] <m_kiewitz> calls IntArray::at[FUNCT](0000:0000, 0000:0004) later
[00:23] --> Mellified_Man joined #scummvm.
[00:23] <m_kiewitz> then calls IntArray::at[FUNCT](0000:0001, 0000:0000)
[00:24] <m_kiewitz> o_O
[00:26] --> Gentle joined #scummvm.
[00:39] --> dreammaster joined #scummvm.
[00:39] #scummvm: mode change '+o dreammaster' by ChanServ!ChanServ@services.
[00:39] <m_kiewitz> snover: it seems i got it now
[00:39] <m_kiewitz> it actually looks like a script bug
[00:40] <snover> phew!
[00:40] <snover> excited to learn the details.
[00:40] <m_kiewitz> well im not sure if we should treat something differently
[00:40] <m_kiewitz> as 2nd cel for cue it gets a reference to object soMakeCheese
[00:41] <m_kiewitz> and it then tries to figure out with "gt?", if the cel number is out of bounds
[00:41] <m_kiewitz> if it is, it sets last cel number
[00:41] <m_kiewitz> and this gt? does not trigger
[00:41] <m_kiewitz> it's
[00:42] <m_kiewitz> push (acc contains soMakeCheese)
[00:42] <m_kiewitz> pToa clientLastCel
[00:42] <m_kiewitz> gt?
[00:42] <m_kiewitz> bnt [skip over setting it to clientLastCel]
[00:42] <m_kiewitz> it jumps here
[00:43] <m_kiewitz> then it does a
[00:43] <m_kiewitz> ldi 0
[00:43] <m_kiewitz> wait
[00:43] <m_kiewitz> lst temp[1] <- contains cel for cue, so in this case reference to soMakeCheese
[00:43] <m_kiewitz> ldi 0
[00:43] <m_kiewitz> lt?
[00:44] <m_kiewitz> bnt [skip over setting it to 0]
[00:44] <m_kiewitz> and THIS one triggers
[00:44] <m_kiewitz> and that's why 2nd cel to cue is 0 inside the array
[00:44] <m_kiewitz> thus 2nd cue never happen
[00:44] <m_kiewitz> s
[00:45] <m_kiewitz> im not sure if our VM isn't doing value vs reference comparisons right
[00:45] <m_kiewitz> or if it just happens to work by accident in SSCI because offset of the object is low
[00:45] <m_kiewitz> in one case, VM fix would be needed
[00:45] <m_kiewitz> in other case, script patch
[00:46] <m_kiewitz> it gets hairy, because i know there are situations where scripts compare references to values and such and this needs to work properly for sci16
[00:46] <m_kiewitz> so maybe they changed something for sci32, maybe this is a special case
[00:47] <m_kiewitz> I guess wjp should look over it and look inside sci32 idb
[00:47] <m_kiewitz> you could too of course
[00:47] <snover> comparisons between references and numeric values should never happen
[00:47] <m_kiewitz> well they do in any case, because some scripts check against 0 to figure out if a reference is set
[00:47] <m_kiewitz> and it also happens in other cases (surely script bugs)
[00:48] <m_kiewitz> i remember that there was an issue in some game, can't remember
[00:48] <snover> there have been similar problems with e.g. phantasmagoria
[00:48] <m_kiewitz> and you script patched them?
[00:49] <snover> possibly. there was some issue where screen items were drawn in the wrong order because the game was making bad comparisons (and this problem would randomly happen in SSCI too, just much harder to trigger). let me go jog my memory about that.
[00:49] <m_kiewitz> i think someone needs to take a look at the sci32 VM
[00:50] <m_kiewitz> what it's doing and also how exactly references to objects are handled
[00:50] <m_kiewitz> if sci32 uses handles, then we need to figure out if those start at 1 and are re-used
[00:50] <m_kiewitz> if that's the case, then one can assume that it's always < 0x7FFF
[00:50] <m_kiewitz> <=
[00:51] <snover> it uses handles (16-bit numeric indexes into memory manager) and they are reused
[00:51] <m_kiewitz> hmm and that's since the very first sci32?
[00:51] <snover> yes
[00:55] <m_kiewitz> hmm this is really complicated, need to go through commit logs from 2009+2010+2011.
[00:55] <snover> what are you looking for?
[00:55] <m_kiewitz> anyway gotta get some sleep now, until tomorrow
[00:55] <m_kiewitz> any hints about GT/LT used in sci16 games
[00:55] <m_kiewitz> im pretty sure there were cases like that
[00:55] <m_kiewitz> sadly it seems no comments in the sourceode
[00:55] <m_kiewitz> unless i missed them
[00:56] <snover> reg_t::pointerComparisonWithInteger and reg_t::sci32Comparison?
[00:56] <m_kiewitz> ah
[00:57] <m_kiewitz> ah exactly that's it
[00:57] <snover> i *think* the sci32Comparison is bogus at this point since it turned out to be buggy in the same way as SSCI
[00:57] <m_kiewitz> well sci16 didn't use handles
[00:57] <snover> but i can talk to you more about it tomorrow
[00:57] <m_kiewitz> it used straight pointers to objects
[00:58] <m_kiewitz> so right, we will have to implement that for sci32 then
[00:58] <m_kiewitz> at least memory handles starting at 1 should make it somewhat work properly all the time (although in that case there could still be issues in theory)
[00:59] <m_kiewitz> maybe it starts at 256 or so, wouldn't surprise me
[00:59] <m_kiewitz> anyway, until tomorrow
[00:59] <m_kiewitz> bye
[00:59] <-- m_kiewitz left irc: Quit: technology isn't intrinsically good or evil. It's how it's used. Like the Death Ray.
[01:14] <-- WooShell 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.
[01:49] <-- Dominus left irc: Ping timeout: 260 seconds
[02:15] --> GitHub57 joined #scummvm.
[02:15] <GitHub57> [scummvm] dreammaster pushed 1 new commit to master: https://git.io/vHqhw
[02:15] <GitHub57> scummvm/master bf3d66d Paul Gilbert: TITANIC: Fix result of CMatrixTransform fn5 method
[02:15] GitHub57 (GitHub57@192.30.252.45) left #scummvm.
[02:56] <-- dreammaster left irc:
[03:11] <-- snover left irc: Ping timeout: 260 seconds
[03:15] --> tsoliman joined #scummvm.
[03:15] #scummvm: mode change '+o tsoliman' by ChanServ!ChanServ@services.
[03:17] --> snover joined #scummvm.
[03:17] #scummvm: mode change '+o snover' by ChanServ!ChanServ@services.
[03:44] --> GitHub181 joined #scummvm.
[03:44] <GitHub181> [scummvm] csnover pushed 1 new commit to master: https://git.io/vHmJa
[03:44] <GitHub181> scummvm/master fdb8761 Colin Snover: SCI32: Fix selector search for SCI2/2.1 games with missing vocab.997...
[03:44] GitHub181 (GitHub181@192.30.252.42) left #scummvm.
[04:17] --> GitHub101 joined #scummvm.
[04:17] <GitHub101> [scummvm] csnover pushed 1 new commit to master: https://git.io/vHmTE
[04:17] <GitHub101> scummvm/master cffe015 Hein-Pieter van Braam: SCI32: Add 'music/' subdir to file path for LSL7 GOG...
[04:17] GitHub101 (GitHub101@192.30.252.45) left #scummvm.
[04:17] --> GitHub105 joined #scummvm.
[04:17] <GitHub105> [scummvm] csnover closed pull request #951: SCI: Add 'music/' subdir to file path for LSL7 GOG (master...lsl7-gog-music-folder) https://git.io/vHI6C
[04:17] GitHub105 (GitHub105@192.30.252.40) left #scummvm.
[04:17] --> GitHub172 joined #scummvm.
[04:17] <GitHub172> [scummvm] criezy pushed 1 new commit to master: https://git.io/vHmTu
[04:17] <GitHub172> scummvm/master dc9c121 Thierry Crozat: I18N: Update translations templates
[04:17] GitHub172 (GitHub172@192.30.252.42) left #scummvm.
[04:42] --> omer_mor joined #scummvm.
[04:44] <-- omer_mor_ left irc: Ping timeout: 272 seconds
[05:01] <-- TMM left irc: Ping timeout: 240 seconds
[05:01] <-- Gentle left irc: Quit: No Ping reply in 180 seconds.
[05:03] --> Gentle joined #scummvm.
[05:09] --> TMM joined #scummvm.
[05:09] #scummvm: mode change '+o TMM' by ChanServ!ChanServ@services.
[05:31] <-- Lightkey left irc: Ping timeout: 240 seconds
[05:44] --> Lightkey joined #scummvm.
[06:01] --> omer_mor_ joined #scummvm.
[06:03] <-- omer_mor left irc: Ping timeout: 240 seconds
[06:10] <-- |Cable| left irc: Ping timeout: 246 seconds
[06:11] --> |Cable| joined #scummvm.
[06:58] --> waltervn joined #scummvm.
[06:58] #scummvm: mode change '+o waltervn' by ChanServ!ChanServ@services.
[06:58] <waltervn> morning
[07:04] <Simei> morning :)
[07:33] --> Dominus joined #scummvm.
[07:36] <Simei> t0by: here is the branch you asked for, forgot to put it here yesterday : https://github.com/yinsimei/scummvm/tree/t0by_please_check_this
[07:48] --> Axy joined #scummvm.
[07:48] <-- Axy left irc: Changing host
[07:48] --> Axy joined #scummvm.
[07:51] <-- Mia left irc: Ping timeout: 246 seconds
[07:51] <TMM> snover, I still can't figure out why game detection was failing the other day. I did something wrong but I can't reconstruct what I did. I'm going to assume it's a non-issue
[07:59] --> m_kiewitz joined #scummvm.
[07:59] <-- m_kiewitz left irc: Changing host
[07:59] --> m_kiewitz joined #scummvm.
[07:59] #scummvm: mode change '+o m_kiewitz' by ChanServ!ChanServ@services.
[08:03] <-- LittleToonCat left irc: Remote host closed the connection
[08:26] --> omer_mor joined #scummvm.
[08:28] <-- omer_mor_ left irc: Ping timeout: 268 seconds
[08:38] <-- TMM left irc: Ping timeout: 272 seconds
[09:09] <m_kiewitz> wjp: available?
[09:13] --> t0by joined #scummvm.
[09:13] #scummvm: mode change '+o t0by' by ChanServ!ChanServ@services.
[09:18] <t0by> Morning!
[09:27] --> ajax16384 joined #scummvm.
[09:27] #scummvm: mode change '+o ajax16384' by ChanServ!ChanServ@services.
[09:28] <wjp> m_kiewitz: not really
[09:28] <m_kiewitz> but you are? :P
[09:28] <m_kiewitz> you read IRC from yesterday?
[09:28] <m_kiewitz> any thoughts on that?
[09:29] <m_kiewitz> (lsl7 having a script bug and comparing a pointer to an object with a number)
[09:30] <m_kiewitz> i mean do you know what ssci32 does for pointer to objects? snover said it uses a handle
[09:30] <m_kiewitz> any details on that? starts at a certain value?
[09:33] <-- t0by left irc: Quit: t0by
[09:33] --> WooShell joined #scummvm.
[09:35] <WooShell> good meowning =^.^=
[09:35] --> t0by joined #scummvm.
[09:35] #scummvm: mode change '+o t0by' by ChanServ!ChanServ@services.
[10:10] <wjp> we'd have to RE the memory manager for that I guess
[10:10] <wjp> maybe snover already worked on that
[10:12] <m_kiewitz> ah i see
[10:12] <m_kiewitz> i guess i should fix the script bug in any case
[10:12] <m_kiewitz> but we should also fix comparisons for sci32 (in case we can)
[10:13] <m_kiewitz> and maybe we should even add a warning, when such comparisons take place
[10:13] <m_kiewitz> or did we remove such from sci16?
[10:13] <m_kiewitz> i doubt it happens that many times (comparisons that are not vs. value 0, but an actual reference)
[10:30] <t0by> Simei: how is it going? Managed to run scripts yet?
[10:31] <t0by> Sorry for running off yesterday but I was no longer able to keep my eyes open
[10:31] <Simei> t0by: I'm trying to modify the macro functions a little to make them work for a class instance
[10:31] <Simei> That's not a problem
[10:32] <t0by> Simei: don't do significant refactoring yet, keep as much of the original code intact and make everything public if necessary
[10:32] <t0by> I.e. do the quickest & dirtiest thing you can come up with
[10:33] <t0by> Use a friend class, whatever you want, just focus on getting the thing running first.
[10:33] <Simei> I tried to, but there is a function pointer array built with macro
[10:34] <Simei> used to call built-in functions
[10:34] <t0by> oh, that one
[10:34] <Simei> I can't pass by it
[10:34] <t0by> a second
[10:34] <Simei> I think I'm quite close now, now sure
[10:35] <t0by> ewwwww
[10:36] <t0by> Simei: can you get away with "everything public"?
[10:36] <t0by> otherwise if you are close please continue
[10:36] <t0by> but don't spend half a second more than necessary in order to make it neat
[10:37] <t0by> oh i see
[10:37] <Simei> using public, there is a also a problem between static functions and class member functions
[10:38] <Simei> I think I'm close, only a few complier errors for now :p
[10:38] <t0by> Simei: *I think* that weird arrangement is necessary in order to have a shared functionlist.h between interpreter and compiler so that builtins have the same opcodes
[10:39] <t0by> We don't care a whole lot about it
[10:39] <t0by> Simei: what's with class members?
[10:39] <t0by> Simei: well, do as you think is sensible, but if you are stuck for more than half an hour on this ping me
[10:40] <t0by> consider showing your WIP code now and then
[10:40] <Simei> Ok, I will do that. Thanks!
[10:40] <Simei> Yes, I will
[10:59] <Simei> t0by: I make code compile now. But it seems all built-in functions should be added in order to make it work.
[11:00] <t0by> Simei: let's please see?
[11:00] <Simei> yes, i'm commiting it
[11:02] <Simei> Ah, I just noticed that I'will have a course of 3 hours in 20 minutes.
[11:02] <Simei> https://github.com/yinsimei/scummvm/tree/WIP1-1
[11:04] <t0by> Simei: yes, you have to uncomment the builtin function list, I think.
[11:04] --> TMM joined #scummvm.
[11:04] #scummvm: mode change '+o TMM' by ChanServ!ChanServ@services.
[11:04] <t0by> Is there a problem with that?
[11:05] <t0by> (Also for future reference, you could simply have amended your previous commit instead of doing and undoing something, it's clearer that way and you have better chances of spotting weird thing you might mistakenly introduce)
[11:05] <Simei> Yes, I should do it.
[11:05] <t0by> Yes, I think that's the way it should be done
[11:05] <Simei> But to make code compile, we have to add all built-in functions
[11:06] <Simei> I will add them when my course finishes later.
[11:06] <Simei> That means squashing the two commits?
[11:08] <t0by> When you want to alter your latest commit you can use the "amend" function, which in this case would have let you take all // edits out. Alternatively, you can now squash the "comment" and "uncomment" commit for a clearer history.
[11:09] <t0by> Simei: in fact I would have resumed working from c19b8509
[11:09] <t0by> But do whatever you are comfortable with
[11:10] <t0by> What matters at the end of day is that the builtins are added "as they are", with just the calls to stuff *outside* the interpreter commented out and replaced with debug calls
[11:10] <t0by> Simei: can do that?
[11:11] <t0by> If you are struggling please ask.
[11:11] <Simei> Yes. I will do it.
[11:12] <Simei> Nothing prevents me from doing it now :)
[11:14] <t0by> Great
[11:14] <t0by> I'm off too lunch, ttyl
[11:17] <Simei> I need to leave now as well. I'll be back when my course finishes.
[11:28] <-- _sev_ left irc: Ping timeout: 240 seconds
[11:37] --> _sev joined #scummvm.
[11:37] #scummvm: mode change '+o _sev' by ChanServ!ChanServ@services.
[11:47] <-- exmensa left irc: Read error: Connection reset by peer
[11:47] --> exmensa joined #scummvm.
[12:09] <m_kiewitz> wjp: can you please tell me, how relocation works for sci32? is it done after script patcher has run?
[12:09] <m_kiewitz> i have to move a lofsa and weidly I'm always getting 0x72 0x00 0x00 byte code
[12:10] <m_kiewitz> and when i move that, im of course getting an error stating that there is no object
[12:10] <m_kiewitz> *weirdly
[13:21] <-- Cheeseness left irc: Remote host closed the connection
[13:22] --> jamm joined #scummvm.
[13:23] --> Cheeseness joined #scummvm.
[13:29] <m_kiewitz> snover: available?
[13:37] --> GitHub34 joined #scummvm.
[13:37] <GitHub34> [scummvm] m-kiewitz pushed 1 new commit to master: https://git.io/vHmbb
[13:37] <GitHub34> scummvm/master 97d4a9e Martin Kiewitz: SCI32: Add script patch for cheese maker issue...
[13:37] GitHub34 (GitHub34@192.30.252.40) left #scummvm.
[13:41] <m_kiewitz> TMM: can you please update to latest commit and then try this with your English lsl7 copy?
[13:42] <m_kiewitz> start scummvm with parameter --debugflags=ScriptPatcher, then warp to room 540
[13:42] <m_kiewitz> i hope my script signature gets a match
[13:42] <TMM> m_kiewitz, I'll give it a go! I'm actually a little disappointed you fixed it, I was hoping to do some debugging ;)
[13:42] <m_kiewitz> this was quite a pain to figure out
[13:44] <TMM> m_kiewitz, I'll try it when I get home, I'll try to play through the entire game
[13:44] <TMM> m_kiewitz, I'll let you know if this puzzle functions now
[13:45] <m_kiewitz> that would be great, but please warp to room 540 to check if my signature matches first
[13:45] <TMM> how do I do that?
[13:45] <m_kiewitz> a patcher log message should appear as soon as you warp to that room
[13:45] <TMM> I can do that now if you'd like
[13:45] <m_kiewitz> (you need to enable ScriptPatcher logging, see above)
[13:45] <m_kiewitz> that would be very helpful
[13:46] <TMM> how do I warp?
[13:46] <m_kiewitz> i was unable to contact anyone right now, who owns the English release
[13:46] <m_kiewitz> enter debugger via Ctrl-Shift-D
[13:46] <m_kiewitz> then enter "room 540"
[13:46] <m_kiewitz> then exit debugger by pressing ESC
[13:47] <TMM> building
[13:49] <TMM> Script-Patcher: 'fix make cheese cutscene' on script 540 offset 26775
[13:49] <TMM> seems to be fine
[13:50] <m_kiewitz> nice
[13:50] <m_kiewitz> thx
[13:54] <TMM> \o/
[13:54] <TMM> I'll try to just play the game today then
[14:02] <m_kiewitz> i should do that too
[14:02] <m_kiewitz> never played Larry 7
[14:13] --> Begasus joined #scummvm.
[14:25] --> Begas_VBox joined #scummvm.
[14:35] <TMM> m_kiewitz, it's one of the funniest P&Cs I think
[14:47] <snover> m_kiewitz: i did reverse much of the memory manager (at least, i tried to figure out signatures) at the time i reversed the resource manager so I could understand more of what was going on. comparing memory handle indexes to numbers is a bogus operation, even in SSCI; there is no guarantee that any particular object will have any particular handle number.
[14:48] <m_kiewitz> that's not important
[14:48] <m_kiewitz> what's more important: do those memory handles start at a specific number?
[14:48] <m_kiewitz> like 100h?
[14:49] <m_kiewitz> also i wonder if it would be helpful in case we added warnings when such comparisons take place (except when its against 0)
[14:52] <snover> iirc the interpreter reserves a certain number of low IDs for some static memory, but I dont remember how many. some number less than 100 i think.
[14:53] <snover> memory handle 0 is like a null pointer
[14:54] <m_kiewitz> well, then i guess such situations should always get patched out
[14:55] <m_kiewitz> maybe we should change comparisons to either error out for sci32
[14:55] <m_kiewitz> or get a big warning out
[14:55] <m_kiewitz> and then simply assume that any reference > 256 (signed) and act accordingly
[14:55] <m_kiewitz> right now it seems the code is doing the opposite of that
[14:55] <snover> with regards to relocation, SCI3 is not the same as SCI2.1-; in SCI3, the size of items in script data is still the same (16-bits), but the relocation table is extended to hold 32-bit values
[14:56] <m_kiewitz> (it seems references are seen as some high number with highest bit also set)
[14:56] <m_kiewitz> but do we process relocation on the fly? do we change scripts?
[14:57] <m_kiewitz> i tried to move a lofsa and it didn't work out. the offset was always 0 in the script data
[14:57] <snover> so when a value is a pointer to some object, the compiler would usually put 0x0000 in the script and then the relocation table would adjust the object offset up to wherever it is supposed to be
[14:57] <m_kiewitz> sure, shouldn't this be done before script patcher changes data?
[14:59] <snover> the script patcher can patch the relocation table
[15:00] <m_kiewitz> hmm, is this SCI3 specific?
[15:01] <snover> which thing is this?
[15:01] <m_kiewitz> this situation, where script patcher would have to patch reloction table too?
[15:01] <m_kiewitz> because im pretty sure that i moved offsets like that for sci16 and i was simply able to move the value around inside the script data
[15:02] <m_kiewitz> (== relocation data seems to be injected into script data before script patcher is called)
[15:05] <m_kiewitz> oh and we should look for a way to identify music in some way
[15:06] <m_kiewitz> in lsl7 the music is all digital, setting music volume obviously doesn't do anything
[15:06] <snover> in sci0 through sci2.1, all offsets could be represented by uint16, so the offsets in the code are simply just offsets from the start of the script/heap; in sci3 they did not increase the size of values in the script, they just changed the relocation code
[15:07] <m_kiewitz> ah right
[15:07] <m_kiewitz> that makes sense
[15:07] <m_kiewitz> hmmm, well we will see if we need that functionality
[15:07] <m_kiewitz> i was able to change the lsl7 patch so that i don't have to move the lofsa
[15:08] --> Henke37 joined #scummvm.
[15:11] <-- TMM left irc: Quit: Ex-Chat
[15:11] --> omer_mor_ joined #scummvm.
[15:13] <-- omer_mor left irc: Ping timeout: 268 seconds
[15:39] --> ny00123 joined #scummvm.
[15:40] <snover> for the record, it looks like there are 41 reserved memory handles
[15:41] <snover> (in 2.1mid, maybe there are more in sci3)
[15:45] <m_kiewitz> interesting
[15:46] <m_kiewitz> i hope lsl7 is now completable
[15:46] <m_kiewitz> oh right, and i think i saw a priority issue during that cheese maker cutscene
[15:46] <snover> it should be. that was the only blocker i found.
[15:46] <m_kiewitz> haven't checked yet, if it happens in the original too
[15:46] <m_kiewitz> it happens right after the start of it, right after larry is done talking
[15:47] <m_kiewitz> larry himself appears in front of the machine instead of behind it
[15:48] <m_kiewitz> when he pours the liquid inside the cheese maker
[15:48] <snover> (nsfwish, because, lsl7) https://www.youtube.com/watch?v=PEiv1MsJhfA&feature=youtu.be&t=6m52s
[15:49] <m_kiewitz> urgh, happens in the original too
[15:54] <m_kiewitz> put it onto the SCI bugs wiki page
[15:55] <snover> why not just open a ticket?
[15:57] <m_kiewitz> it's just an optical issue and it happens in original interpreter too
[15:58] <snover> i think that is what the low priority is for :)
[15:58] <m_kiewitz> i don't think such issues should be on the bug tracker
[15:58] <m_kiewitz> i think we never had those on it
[15:59] <m_kiewitz> although right, on the other hand if someone reports it...
[15:59] <m_kiewitz> well i can just look into it, maybe it's simple to fix
[15:59] <m_kiewitz> have looked into that script anyway already
[16:05] <m_kiewitz> snover: urgh, we can forget fixing that
[16:05] <m_kiewitz> sierra sets priority intentionally
[16:06] <-- ajax16384 left irc: Read error: Connection reset by peer
[16:06] <m_kiewitz> so that part of the "larry pours" view is not behind the cheese maker
[16:06] <snover> m_kiewitz: like mothergooseHiresSignatureHorse?
[16:07] <m_kiewitz> yes
[16:07] <m_kiewitz> damn hacks
[16:08] <m_kiewitz> well i need to check what the priority of that guillotine is
[16:08] <m_kiewitz> cheese maker is 373
[16:11] <-- Begasus left irc: Ping timeout: 255 seconds
[16:14] <m_kiewitz> snover: a similar fix will work, I just checked
[16:14] <m_kiewitz> someone was simply lazy and used priority 500 :/
[16:23] --> Begasus joined #scummvm.
[16:24] --> LittleToonCat joined #scummvm.
[16:26] <m_kiewitz> snover: will change your mixed up mother goose patch to actually use SIG_SELECTOR8 and not a hardcoded value
[16:30] --> ajax16384 joined #scummvm.
[16:30] #scummvm: mode change '+o ajax16384' by ChanServ!ChanServ@services.
[16:45] --> GitHub140 joined #scummvm.
[16:45] <GitHub140> [scummvm] m-kiewitz pushed 1 new commit to master: https://git.io/vHY0z
[16:45] <GitHub140> scummvm/master 26fe96d Martin Kiewitz: SCI32: Add script patch for lsl7 cheese maker priority bug...
[16:45] GitHub140 (GitHub140@192.30.252.42) left #scummvm.
[16:46] <m_kiewitz> snover: i think we are both quite crazy. fixing some small priority issue,which is not even our bug, like mad men :P
[16:50] --> GitHub143 joined #scummvm.
[16:50] <GitHub143> [scummvm] m-kiewitz pushed 1 new commit to master: https://git.io/vHYE0
[16:50] <GitHub143> scummvm/master ad1cc61 Martin Kiewitz: SCI32: Fix typo in script patch name
[16:50] GitHub143 (GitHub143@192.30.252.34) left #scummvm.
[16:52] <-- jamm left irc: Read error: Connection reset by peer
[17:20] <-- Begasus left irc: Ping timeout: 240 seconds
[17:27] <m_kiewitz> snover: any more known game breaking issues atm?
[17:32] --> Begasus joined #scummvm.
[18:11] <snover> m_kiewitz: lsl7 or in general?
[18:11] <m_kiewitz> in general
[18:19] <snover> https://bugs.scummvm.org/ticket/9675 breaks *some* GK2 versions i guess
[18:19] <snover> QFG4 probably has lots of breaker bugs
[18:22] <m_kiewitz> snover: i don't see anyone actually saying what "crash" is to them, an actual crash? an error?
[18:22] <snover> it sounds like the game just gets stuck with a wait cursor that never goes away
[18:22] <m_kiewitz> hmmm
[18:22] <m_kiewitz> will look into that then
[18:22] <snover> i was going to try reproducing it today again, but did not manage to verify it before i had to leave
[18:23] <m_kiewitz> hmm maybe I will
[18:24] <m_kiewitz> maybe it's machine speed related
[18:24] <snover> there is a problem with bitmap reuse in the about screen of lsl7 which triggers an assertion failure (i am not sure if the original engine just ends up doing out-of-bounds reads, or if there is something wrong with the way we manage memory). i came up with one solution but i dont know if it is a real solution or just a workaround
[18:25] <m_kiewitz> in sci16 it was possible to access already freed resources
[18:25] <m_kiewitz> so i wouldn't be surprised in case this was possible in sci32 for some things too
[18:26] <m_kiewitz> imo those are bugs, which were simply never fixed by Sierra because "it works"
[18:27] <m_kiewitz> i had to implement it so that ports stay in memory for a tiny bit of time
[18:27] <snover> heh. sounds familiar: my solution was to record bitmap handles that need to be freed, and then actually free them only after the next call to kFrameOut
[18:28] <m_kiewitz> yikes, my gk2 english is 1.11
[18:28] <m_kiewitz> yes, i had to do something similar for ports
[18:28] <m_kiewitz> almost exactly like that
[18:28] <m_kiewitz> and some games even required that the same handle ids would be granted for some ports on top of that
[18:29] <m_kiewitz> because they saved handles, then freed them, then reallocated them but used the originally saved handles :/
[18:30] <m_kiewitz> my localized GK2 is 1.0, but who knows what that is internally
[18:30] <m_kiewitz> can i simply warp to chapter 6 to that place?
[18:31] <snover> probably
[18:31] <snover> i dont know what the trigger guidelines are, other than that this randomly placed security guard has to be at the grotto, and then walk away
[18:32] <snover> when i did a playthrough i dont remember a guard being there
[18:35] <t0by> mmmmmmmmmm gk2
[18:36] <snover> it will be interesting to see if these are also caused by cycler call malfunctions
[18:36] <t0by> snover: don't ask me why, but can you elaborate a second on that last one?
[18:38] <snover> the LSL7 bug from earlier today was caused by a script object pushing itself into an array of cel numbers instead of a cel number
[18:39] <snover> and resulted in an animation that would never trigger a cue to continue
[18:42] <t0by> snover: out of curiosity which file/line of code is this?
[18:42] <m_kiewitz> where do i jump to?
[18:42] <m_kiewitz> it's inside script 540
[18:43] <m_kiewitz> soMakeCheese::changeState, on state 6
[18:43] <m_kiewitz> you see multiple pushSelf opcodes, the last one is incorrect and should have been a pushi 10h
[18:43] <m_kiewitz> where do I jump to in gk2? chapter 6 and then? which location?
[18:44] <m_kiewitz> i never played that game, although I have owned it for ages
[18:45] <m_kiewitz> or well, i can just start chapter 6. shouldn't take that long to get there. hopefully debug menu gives me required inventory items
[18:46] <m_kiewitz> yikes
[18:46] <m_kiewitz> my English 1.1 errors out
[18:46] <m_kiewitz> Script 65535 not found!
[19:06] --> Strangerke joined #scummvm.
[19:06] #scummvm: mode change '+o Strangerke' by ChanServ!ChanServ@services.
[19:07] <Strangerke> hi guys
[19:09] --> TMM joined #scummvm.
[19:09] #scummvm: mode change '+o TMM' by ChanServ!ChanServ@services.
[19:10] <TMM> snover, m_kiewitz, I found one problem with lsl7. The dice game is way too easy, your opponent will *always* think you're bluffing so you can always win by just saying you have one of a dice you actually have
[19:12] <m_kiewitz> TMM: can you please check what the original interpreter does in your case?
[19:20] <t0by> Simei: so, how 's it going? Have you managed to solve it?
[19:21] <t0by> Do we have something running?
[19:31] <-- t0by left irc: Quit: t0by
[19:32] --> t0by joined #scummvm.
[19:32] #scummvm: mode change '+o t0by' by ChanServ!ChanServ@services.
[19:33] <TMM> m_kiewitz, the oriignal interpreter actually plays the game, and is actually pretty hard to beat
[19:34] <m_kiewitz> hmm really weird now
[19:38] <Simei> t0by: Yes, the built-in function works now. But I didn't have time to verify if every argument pushed was popped. The printed information looks good.
[19:38] <t0by> Simei: that's good enough.
[19:38] <Simei> I found there was another memory leak was caused because of some debug string are not deleted
[19:39] <t0by> Simei: does it work even with non completely trivial scripts - e.g. take Welcome and add a while and an if block or something?
[19:39] <Simei> Because in sludge, there are something generate it automatically, I just noticed it :p
[19:39] <t0by> Simei: good catch, let's talk about that later though
[19:40] <Simei> Ah, not yet. I didn't add timer etc in the main loop
[19:41] <t0by> Simei: I'm sorry?
[19:41] <Simei> Just something simulating it. I put runSLudge directly in the while loop
[19:41] <t0by> Stop right there.
[19:41] <t0by> 1. push code :)
[19:41] <TMM> m_kiewitz, yeah, just verified, SIERW5.exe actually plays a pretty mean liars' dice
[19:41] <t0by> 2. what?
[19:42] <Simei> Ah, I didn't check with if and while yet
[19:43] <Simei> Ok, I'll push it.
[19:43] <t0by> Simei: please do it - it should.
[19:43] <t0by> Probably it will work out of the box if the stack doesn't get horribly borked at some point.
[19:51] <t0by> Simei: did it work?
[19:54] <Simei> Network at my place is not very stable at the moment
[19:54] <Simei> Still pushing the commit :/
[19:54] <-- Harekiet left irc: Ping timeout: 255 seconds
[19:56] <t0by> o_O
[19:56] <Simei> Oops, I have a "non-fast-forward" error
[19:56] <t0by> Simei: have you rebased or amended something?
[19:57] <Simei> Yes, I tried to amend the last commit
[19:57] <t0by> if so, you can either force overwrite your old remote branch with -f, or create a new branch and push that.
[19:57] <t0by> i.e. git push -f origin yourbranch
[19:57] <Simei> ah , ok
[19:58] <t0by> Simei: of course don't get into the habit of forcepushing stuff... :)
[19:58] <Simei> It works :D
[19:58] <Simei> https://github.com/yinsimei/scummvm/commits/WIP1-1
[19:59] <Simei> I'll squash the last two commits now
[19:59] <Simei> If I want to add more things to the last pushed commit, it's a rebase but not amend that I should use ?
[20:00] <t0by> Simei: amend for the last pushed commit.
[20:01] <t0by> Simei: you can also edit previous commits with rebase, if you are so inclined.
[20:01] <t0by> er sorry
[20:01] <t0by> Amend is for your HEAD, whatever it is
[20:01] <t0by> not for the "last pushed commit"
[20:02] <Simei> Ok, I see.
[20:04] --> Harekiet joined #scummvm.
[20:09] <t0by> Simei: push the other example scripts/games you've tried so that I can try them as well
[20:10] <t0by> on your test-games repository
[20:10] <Simei> it's the Welcome.slu
[20:11] <Simei> https://github.com/yinsimei/sludge-test-games/blob/master/Welcome/script.slu
[20:11] <t0by> Simei: oh, so you haven't tried with slightly more complex variations thereof?
[20:11] <t0by> You should try editing Welcome as a new game and adding a few more lines in that scripts
[20:11] <Simei> Sorry, not yet
[20:11] <t0by> a while loop or something
[20:11] <t0by> it'll probably take you 5 minutes, please try that
[20:11] <Simei> Ok, i'll do it
[20:11] <t0by> Thank you
[20:12] <t0by> Then push the resulting test game(s)
[20:24] --> Farmboy0 joined #scummvm.
[20:24] <-- Farmboy0 left irc: Changing host
[20:24] --> Farmboy0 joined #scummvm.
[20:28] <Simei> t0by: I think changing the script modifies the .slg file
[20:29] <Simei> scummvm only works with this file
[20:30] <Simei> I'll add the other example game into the engine to test
[20:30] <Simei> into the game description
[20:31] <-- t0by left irc: Quit: t0by
[20:31] --> t0by joined #scummvm.
[20:31] <-- t0by left irc: Changing host
[20:31] --> t0by joined #scummvm.
[20:31] #scummvm: mode change '+o t0by' by ChanServ!ChanServ@services.
[20:33] <t0by> Simei: I'm sorry?
[20:33] <t0by> Yes, you should add another game
[20:33] <t0by> take the "Welcome" game and alter its one script a bit
[20:33] <t0by> and then, of course, compile it
[20:38] <snover> TMM: thats not a bug, thats a feature ;)
[20:51] <snover> m_kiewitz: can you reproduce the problem with gk2 trying to load script -1?
[20:56] <m_kiewitz> my gk2 english doesn't work at all, it errors out immediately after startup, so yes
[20:56] <m_kiewitz> and i also got the corrupt data message for localized gk2
[20:56] <m_kiewitz> currently copying that over again from floppy
[20:56] <m_kiewitz> to make sure the data is correct
[20:57] <snover> floppy?
[20:59] <m_kiewitz> gk2? :P
[20:59] <m_kiewitz> 6 CDs of course
[20:59] Action: t0by squints
[21:00] <t0by> Simei: so, any luck? :)
[21:01] <Simei> Yes, it works with a little modification, just, for the fopen, I put the hard name "Welcome.slg" for it
[21:02] <t0by> Hum, that's tolerable.
[21:02] <t0by> Simei: let's see, let's see :)
[21:03] <t0by> The sample game as well
[21:08] <-- ajax16384 left irc: Read error: Connection reset by peer
[21:09] <m_kiewitz> snover: urgh, localized gk2 actually has a few corrupted audio resources :/
[21:09] <snover> check for the same audio map on other CDs, it might be valid
[21:10] <m_kiewitz> how can i do that easily?
[21:10] <m_kiewitz> it seems its all resmap.001 pointing to resaud.001
[21:11] <Simei> t0by: I just add two "if" for the Welcome demo. It doesn't make any change
[21:11] <m_kiewitz> i now need to copy all files over from new notebook to old one to be able to work with it again :/
[21:11] <Simei> But the other complicated demo "Verb Coin"
[21:11] <Simei> I think stacks are not removed well
[21:11] <TMM> snover, That's an interesting feature! I actually quite liked playing the liar's dice :)
[21:11] <Simei> cause a segmentation fault too soon
[21:11] <TMM> snover, the scummvm version lacks a certain... challenge now ;)
[21:13] <m_kiewitz> its all ressci.001, and the audio resources are 180, 162, 0, *
[21:20] <snover> m_kiewitz: the first number of an audio36 is the number of the map
[21:20] <snover> so it would be the 180.MAP inside RESSCI.001
[21:21] <t0by> Simei: may I please see?
[21:21] <Simei> Yes, yes, pushed
[21:22] <Simei> https://github.com/yinsimei/scummvm/commits/WIP1-1
[21:22] <snover> you can see at resource_audio.cpp:469 an example of bypassing a bad audio map in PQ:SWAT
[21:23] <t0by> Simei: try something slightly more complicated: http://wiki.c2.com/?FizzBuzz
[21:23] <Simei> https://github.com/yinsimei/sludge-test-games/blob/master/Welcome2/script.slu
[21:24] <Simei> Just made a small change. I'll thnik about something more complexe later
[21:24] <Simei> But this game doesn't work
[21:24] <Simei> https://github.com/yinsimei/sludge-test-games/tree/master/VerbCoin
[21:24] <t0by> Simei: spend half an hour on having something like fizzbuzz working, then try something in the same style with a function call inside the loop.
[21:24] <t0by> if there's something obvious, we'll notice it.
[21:25] <t0by> Only then try to use a debugger to see where VerbCoin crashes.
[21:25] <t0by> Simei: if you can't get anything out of it, I'll have a look myself tomorrow.
[21:26] <t0by> Simei: however, this is weird, if you have indeed preserved the original code verbatim with just the drawing calls and the like commented out.
[21:27] <Simei> There is the problem with debug string. I didn't have to fully solve it yet
[21:27] <t0by> Simei: can you please elaborate on that?
[21:28] <t0by> (Please link to specific lines of code if you can)
[21:28] <Simei> Maybe I've stubbed something too much
[21:29] <t0by> let me have a look at your code
[21:30] <snover> m_kiewitz: also, not related, the sdl alt-key-fixing code broke ctrl keys for some reason https://bugs.scummvm.org/ticket/6703#comment:4
[21:31] <m_kiewitz> i will change that soon anyway
[21:31] <Simei> t0by: like line 2522 in built-in.cpp
[21:31] <m_kiewitz> no need to work on it
[21:31] <Simei> the string "mess" is not freed
[21:31] <m_kiewitz> will remove the sdl code
[21:32] <t0by> Simei: I don't see anything *super* fishy except that it looks like you've still been a bit trigger-happy with the commenting
[21:32] <Simei> It's true [palmface]
[21:34] <Simei> I will check the strings with "debug()" function, I replace its "fatal()" function with it
[21:35] <Simei> But I think in its "fatal()" function, there is a string delete somewhere
[21:36] <-- waltervn left irc: Quit: Leaving
[21:36] <Simei> That's one thing.
[21:37] <t0by> Simei: so, here's an idea.
[21:37] <m_kiewitz> snover: I'm pretty sure I tested Ctrl keys back then
[21:37] <t0by> Try redoing it from scratch from c19b8509. It should take you a few minutes now that you know the lowdown. Try not to make a mess.
[21:37] <m_kiewitz> so possibly platform-specific
[21:37] <t0by> Then please try running a reasonably complex script (at least with a while), then try something with a function call. These should work. If you can, spend 10 extra minutes trying to write something that breaks the interpreter.
[21:37] <t0by> Then use a debugger to find out what's with verbcoin.
[21:37] <t0by> Then report on your findings; tomorrow morning I'll set a couple of hours aside to investigate, ok?
[21:39] <t0by> Simei: "Try redoing it from scratch from c19b8509" means "checkout c19b8509, make a new branch, FIRST paste the interpreter code and its dependencies, (it won't compile) commit, THEN do laser-guided edits to comment out anything that does actual drawing or the like.
[21:39] <t0by> Only stub what you *must*.
[21:40] <t0by> You'll get one clean "stub" commit that is easy to analyze in case you still have problems.
[21:41] <t0by> Simei: I hope all of the above will do the trick. Please do it. If it still does not, please report in detail your findings and tomorrow morning I'll have a go at it myself. Deal?
[21:42] <Simei> Ok, deal. I'll try me best
[21:42] <t0by> Fantastic.
[21:42] Action: t0by crosses fingers
[21:43] <Simei> Thank you for your help!
[21:44] <t0by> Simei: oh btw
[21:44] <-- ny00123 left irc: Quit: Leaving
[21:44] <t0by> if you right-click on a line number on Github and click "copy link" or whatever it is called on your browser
[21:45] <t0by> https://github.com/yinsimei/scummvm/commit/4ce197704ffb0fd5508a06b1015128c9847de50c#diff-7137b0135e8a34b7f939cd6e4a5efb50L33
[21:45] <t0by> You get a link to the exactly line
[21:45] <t0by> *exact line
[21:46] <Simei> Ah, ok, I see.
[21:46] <t0by> My english is deteriorating quickly.
[21:58] <-- Begasus left irc: Quit: Ex-Chat
[21:58] <-- Begas_VBox left irc: Quit: Vision[0.9.8]: i've been blurred!
[22:00] --> girafe joined #scummvm.
[22:20] --> omer_mor joined #scummvm.
[22:23] <-- omer_mor_ left irc: Ping timeout: 272 seconds
[22:24] <-- girafe left irc: Read error: Connection reset by peer
[22:39] --> Strangerke_ joined #scummvm.
[22:40] <-- Farmboy0 left irc: Remote host closed the connection
[22:41] <-- Strangerke left irc: Ping timeout: 240 seconds
[22:41] Nick change: Strangerke_ -> Strangerke
[23:07] <-- t0by left irc: Read error: Connection reset by peer
[23:08] --> t0by joined #scummvm.
[23:08] #scummvm: mode change '+o t0by' by ChanServ!ChanServ@services.
[23:09] <-- Henke37 left irc: Quit: ERR_SHUTDOWN
[23:19] <-- t0by left irc: Quit: t0by
[23:42] <-- m_kiewitz left irc: Quit: technology isn't intrinsically good or evil. It's how it's used. Like the Death Ray.
[23:42] <snover> now i just need to look at my 71 stashes to figure out if there is anything in there i forgot&
[23:44] <Lightkey> definitely not a squirrel
[23:54] <snover> lots of temporarily commented out code
[23:57] <snover> lots of aborted attempts to convert the same parts of code&
[23:58] <snover> lots of super useful stash messages. crap CRAP Mostly garbage stuff temp stuff sci3 stuff YOLO
[00:00] --- Thu May 25 2017