[Back to Index]

  
[00:00] <-- Vampire0 left irc: Quit: Verlassend
[00:04] <snover> ok, i dont think i need your save games after all.
[00:05] <sluicebox> ha, ok, it's at http://s000.tinyupload.com/index.php?file_id=41264840182236273207 if you need it
[00:05] <-- SylvainTV left irc: Read error: Connection reset by peer
[00:07] <-- heroux left irc: Ping timeout: 264 seconds
[00:08] --> heroux joined #scummvm.
[00:12] --> GitHub190 joined #scummvm.
[00:12] <GitHub190> [scummvm] csnover pushed 1 new commit to master: https://git.io/vPtnp
[00:12] <GitHub190> scummvm/master 60be24d Colin Snover: SCI: Bump save game number to fix save game compatibility...
[00:12] GitHub190 (GitHub190@192.30.252.40) left #scummvm.
[00:14] <snover> ok. that should address the problem.
[00:15] <snover> the save game you sent works.
[00:17] <sluicebox> Yes, that fixed it, thanks!
[00:49] --> GitHub181 joined #scummvm.
[00:49] <GitHub181> [scummvm] dreammaster pushed 1 new commit to master: https://git.io/vPtWt
[00:49] <GitHub181> scummvm/master 8a96db4 Paul Gilbert: TITANIC: Added CRawSurface class
[00:49] GitHub181 (GitHub181@192.30.252.41) left #scummvm.
[00:54] --> _dreammaster joined #scummvm.
[00:54] #scummvm: mode change '+o _dreammaster' by ChanServ!ChanServ@services.
[00:54] <-- dreammaster left irc: Ping timeout: 244 seconds
[00:55] --> GitHub148 joined #scummvm.
[00:55] <GitHub148> [scummvm] criezy pushed 2 new commits to master: https://git.io/vPtW4
[00:55] <GitHub148> scummvm/master c70701d Thierry Crozat: SCUMM: Use platform from candidate to generate unknown version message...
[00:55] <GitHub148> scummvm/master d1d44eb Thierry Crozat: SCUMM: Move detection entries for Steam versions to end of list...
[00:55] GitHub148 (GitHub148@192.30.252.41) left #scummvm.
[00:56] --> GitHub90 joined #scummvm.
[00:56] <GitHub90> [scummvm] criezy pushed 2 new commits to branch-1-9: https://git.io/vPtW0
[00:56] <GitHub90> scummvm/branch-1-9 403d194 Thierry Crozat: SCUMM: Use platform from candidate to generate unknown version message...
[00:56] <GitHub90> scummvm/branch-1-9 e088f29 Thierry Crozat: SCUMM: Move detection entries for Steam versions to end of list...
[00:56] GitHub90 (GitHub90@192.30.252.40) left #scummvm.
[00:57] <sluicebox> gkcd is now crashing in the first room when using the ask icon on grace: Non-number 0014:0bcc sent to int16 array!
[00:58] <sluicebox> tried it a couple times, happens every time, different number
[01:01] <snover> an exceptionally common script error. in ssci, memory references were all shorts, and frequently script authors used the wrong IntArray instead of the correct IDArray for storing them. in scummvm memory references are reg_ts and dont fit in such an array.
[01:04] <sluicebox> Just tried a different screen with the ask icon, same result. Looks like this happens when the game transitions into "interrogation mode"
[01:05] <snover> do you run with the scummvm debugger enabled?
[01:06] <-- _dreammaster left irc: Ping timeout: 272 seconds
[01:07] <sluicebox> i don't know? the yellow scummvm debugger pops up on these errors, i know a few commands, but i'm not doing anything beyond just compiling and running in msvc14
[01:07] <snover> ok
[01:07] --> dreammaster joined #scummvm.
[01:07] <snover> `bt` will tell where the error happened
[01:07] #scummvm: mode change '+o dreammaster' by ChanServ!ChanServ@services.
[01:08] <-- dreammaster left irc: Client Quit
[01:08] <sluicebox> is there a command to get that info into the clipboard or text file or something outside of the screen?
[01:08] --> GitHub12 joined #scummvm.
[01:08] <GitHub12> [scummvm] csnover pushed 1 new commit to master: https://git.io/vPtWp
[01:08] <GitHub12> scummvm/master 67acdb6 Colin Snover: SCI32: Sync subtitle text speed with ScummVM GUI
[01:08] GitHub12 (GitHub12@192.30.252.34) left #scummvm.
[01:09] <snover> sluicebox: oh. ah. well, there is a text-mode debugger too. i dont know if it works in windows, but it might be worth a shot
[01:10] <snover> building with --enable-text-console
[01:11] <sluicebox> well in this case i don't think you'll have any trouble reproducing it, i'm teleporting around and I can't find anyone where questioning doesn't trip this
[01:11] <snover> haha
[01:11] <snover> ok
[01:12] <snover> let me give it a try.
[01:24] <-- Dominus left irc: Ping timeout: 244 seconds
[01:25] --> Dominus joined #scummvm.
[01:25] <-- Dominus left irc: Changing host
[01:25] --> Dominus joined #scummvm.
[01:30] --> dreammaster joined #scummvm.
[01:30] #scummvm: mode change '+o dreammaster' by ChanServ!ChanServ@services.
[01:30] <snover> the bug is in Interrogation class, so yeah, it would be all of them :) good guess!
[01:32] --> TMM joined #scummvm.
[01:38] <-- heroux left irc: Ping timeout: 244 seconds
[01:47] --> heroux joined #scummvm.
[01:54] --> GitHub58 joined #scummvm.
[01:54] <GitHub58> [scummvm] dreammaster pushed 1 new commit to master: https://git.io/vPt8R
[01:54] <GitHub58> scummvm/master 09561bd Paul Gilbert: TITANIC: Use CRawSurface in video surface getPixel
[01:54] GitHub58 (GitHub58@192.30.252.34) left #scummvm.
[02:11] <-- dreammaster left irc:
[02:12] <-- timofonic1 left irc: Ping timeout: 264 seconds
[02:37] <-- TMM left irc: Ping timeout: 244 seconds
[03:01] <-- snover left irc: Quit: Leaving.
[03:08] <-- Littleboy left irc: Read error: Connection reset by peer
[03:21] <-- sluicebox left irc: Remote host closed the connection
[04:01] --> Poly-C joined #scummvm.
[04:04] <-- Polynomial-C left irc: Ping timeout: 272 seconds
[04:09] --> omer_mor_ joined #scummvm.
[04:11] <-- omer_mor left irc: Ping timeout: 264 seconds
[05:59] <-- LittleToonCat left irc: Remote host closed the connection
[06:33] --> ny00123 joined #scummvm.
[06:34] --> m_kiewitz joined #scummvm.
[06:34] <-- m_kiewitz left irc: Changing host
[06:34] --> m_kiewitz joined #scummvm.
[06:34] #scummvm: mode change '+o m_kiewitz' by ChanServ!ChanServ@services.
[07:52] --> omer_mor joined #scummvm.
[07:52] <-- omer_mor_ left irc: Ping timeout: 244 seconds
[08:03] --> t0by joined #scummvm.
[08:03] #scummvm: mode change '+v t0by' by ChanServ!ChanServ@services.
[08:05] --> frankyboy_ joined #scummvm.
[08:10] --> NuSuey joined #scummvm.
[08:28] --> i30817 joined #scummvm.
[08:31] --> OGadmin joined #scummvm.
[08:33] <m_kiewitz> wjp: any idea what this bug is?
[08:33] <m_kiewitz> https://www.gog.com/forum/quest_for_glory_series/qfg4_inventory_hack_to_fix_domovoi_bug
[08:33] <m_kiewitz> i guess we could script patch it out
[08:34] <m_kiewitz> and this is also weird "The first time I played, I had the Domovoi appear in my room on day 14 and day 15."
[08:34] <m_kiewitz> so maybe it is memory corruption in some way
[08:35] <-- borosky left irc: Ping timeout: 276 seconds
[08:36] <wjp> hm, this sounds like it would take a lot of mapping out of flags and triggers
[08:38] --> WooShell joined #scummvm.
[08:39] <WooShell> good meowning =^.^=
[08:41] <m_kiewitz> wjp: unless it was really done on purpose "day-global > 11, then change it"
[08:41] <m_kiewitz> although i doubt it, especially because of people saying that they had it happen on day 14 or so
[08:42] <m_kiewitz> maybe it already works in ScummVM because we check for uninitialized variables and so on
[08:43] <wjp> I'm not sure they're talking about the same thing. Appearing in room and appearing in common room might be different
[08:47] <wjp> But I really don't know
[08:52] <m_kiewitz> joostp: Anniversary edition just arrived
[08:52] <m_kiewitz> i noticed that the comic for Beneath a Steel Sky is English, that's intentionally? because the broken sword one is in German
[08:53] <m_kiewitz> wjp: i guess we will have to play through it :P
[08:53] <m_kiewitz> physical soundtrack CD, so it's supposed to be done. Nice edition
[08:53] <m_kiewitz> s/so/that's how
[08:55] <wjp> All QfG games tend to have a rather big set of timers, flags and triggers...
[08:56] <m_kiewitz> yes, in the worst case i will have to implement bpw for globals too and then we can check where the flag gets set - in case it works like that
[08:56] <m_kiewitz> or well one could also try to disassemble the whole game and then grep through it
[08:57] <m_kiewitz> is there a list somewhere, that specifies which tracks are on the revolution anniversary soundtrack cd?
[08:57] <m_kiewitz> freedb doesn't have data about it
[08:59] <m_kiewitz> joostp: this here says that the comic is supposed to be in German
[08:59] <m_kiewitz> http://ogdb.eu/index.php?section=compilation&compid=4337
[08:59] <m_kiewitz> so i guess i got a wrong one
[09:00] <m_kiewitz> unless that's an error of course
[09:09] <-- i30817 left irc: Quit: ChatZilla 0.9.92 [Firefox 49.0/20160920074044]
[09:10] --> salty-horse joined #scummvm.
[09:10] <-- salty-horse left irc: Changing host
[09:10] --> salty-horse joined #scummvm.
[09:10] #scummvm: mode change '+o salty-horse' by ChanServ!ChanServ@services.
[09:23] <m_kiewitz> joostp: nvm, i just saw that the BASS comic is explicitly mentioned as being English, will correct the entry then. it's obviously false
[09:32] <m_kiewitz> wjp: what do you think about the summary of SCI bug reports? I changed 2 non-game-specific ones to "SCI32:" instead of "SCI:". One even mentioned a view issue after transitions, which I first assumed to be about SCI16 ones
[09:32] <m_kiewitz> maybe all of them should say SCI32?
[09:32] <m_kiewitz> just like w/ our commits?
[09:37] --> ajax16384 joined #scummvm.
[09:37] #scummvm: mode change '+o ajax16384' by ChanServ!ChanServ@services.
[10:00] --> waltervn joined #scummvm.
[10:00] #scummvm: mode change '+o waltervn' by ChanServ!ChanServ@services.
[10:23] --> Harekiet2 joined #scummvm.
[10:27] <-- Harekiet left irc: Ping timeout: 272 seconds
[10:39] Nick change: Harekiet2 -> Harekiet
[10:41] <-- Harekiet left irc: Quit: Reboot!
[10:45] --> Harekiet joined #scummvm.
[11:47] <-- Harekiet left irc: Ping timeout: 272 seconds
[11:53] --> Harekiet joined #scummvm.
[12:02] <-- t0by left irc: Quit: Bye!
[12:48] <-- ajax16384 left irc: Quit: Leaving
[12:48] --> GitHub148 joined #scummvm.
[12:48] <GitHub148> [scummvm] sev- pushed 2 new commits to master: https://git.io/vPtSI
[12:48] <GitHub148> scummvm/master 342c9cd Retro-Junk: FULLPIPE: Scene28: Fix flies priority
[12:48] <GitHub148> scummvm/master e61cb22 Retro-Junk: FULLPIPE: Fix MctlGraph::getNearestLink
[12:48] GitHub148 (GitHub148@192.30.252.46) left #scummvm.
[12:51] --> ajax16384 joined #scummvm.
[12:51] #scummvm: mode change '+o ajax16384' by ChanServ!ChanServ@services.
[13:10] --> GitHub166 joined #scummvm.
[13:10] <GitHub166> [scummvm] sev- pushed 1 new commit to master: https://git.io/vPtS5
[13:10] <GitHub166> scummvm/master 6032602 Retro-Junk: FULLPIPE: Scene26: Fix valves interaction
[13:10] GitHub166 (GitHub166@192.30.252.41) left #scummvm.
[13:13] <-- ajax16384 left irc: Read error: Connection reset by peer
[13:15] --> t0by joined #scummvm.
[13:15] #scummvm: mode change '+v t0by' by ChanServ!ChanServ@services.
[13:25] --> Littleboy joined #scummvm.
[13:25] #scummvm: mode change '+o Littleboy' by ChanServ!ChanServ@services.
[13:51] <-- Littleboy left irc: Read error: Connection reset by peer
[14:05] <-- NuSuey left irc: Quit: Connection closed for inactivity
[14:26] --> ajax16384 joined #scummvm.
[14:26] #scummvm: mode change '+o ajax16384' by ChanServ!ChanServ@services.
[14:32] --> timofonic1 joined #scummvm.
[14:36] <-- frankyboy_ left irc: Read error: Connection reset by peer
[14:37] --> frankyboy_ joined #scummvm.
[14:51] <-- frankyboy_ left irc: Read error: Connection reset by peer
[14:52] --> frankyboy_ joined #scummvm.
[15:02] --> TMM joined #scummvm.
[15:06] <-- frankyboy_ left irc: Read error: Connection reset by peer
[15:07] --> frankyboy_ joined #scummvm.
[15:17] <-- frankyboy_ left irc: Read error: Connection reset by peer
[15:18] --> frankyboy_ joined #scummvm.
[15:21] --> LittleToonCat joined #scummvm.
[15:26] --> snover joined #scummvm.
[15:26] #scummvm: mode change '+o snover' by ChanServ!ChanServ@services.
[15:29] <-- Harekiet left irc: Ping timeout: 272 seconds
[15:30] --> mworchel joined #scummvm.
[15:30] mworchel (5cd6c90a@gateway/web/freenode/ip.92.214.201.10) left #scummvm.
[15:32] <-- frankyboy_ left irc: Read error: Connection reset by peer
[15:33] --> frankyboy_ joined #scummvm.
[15:34] --> Harekiet joined #scummvm.
[15:38] --> SylvainTV joined #scummvm.
[15:38] #scummvm: mode change '+o SylvainTV' by ChanServ!ChanServ@services.
[15:38] --> Henke37 joined #scummvm.
[15:39] <-- frankyboy_ left irc: Read error: Connection reset by peer
[15:39] --> frankyboy_ joined #scummvm.
[15:43] <-- frankyboy_ left irc: Remote host closed the connection
[15:54] --> TAS_2012v joined #scummvm.
[16:05] --> frankyboy_ joined #scummvm.
[16:28] <-- salty-horse left irc: Ping timeout: 264 seconds
[16:31] --> salty-horse joined #scummvm.
[16:31] #scummvm: mode change '+o salty-horse' by ChanServ!ChanServ@services.
[16:35] <-- ruskie left irc: Excess Flood
[16:35] --> ruskie joined #scummvm.
[16:58] <snover> m_kiewitz: you want me to change the game prefixes in the ticket titles?
[16:58] <m_kiewitz> i'm not sure, i changed 2 because they were not explicitly about a game, and i thought for a moment that they were about sci16
[16:59] <m_kiewitz> i tried to ask wjp about his opinion if we should use sci32: all the time just like with commits, but he seems to be away
[16:59] <snover> I had been using a sci32 tag, per a discussion that he and I had yesterday, but Im thinking that no reporter would know to do that
[16:59] <m_kiewitz> at least atm there is no way to get confused, because the others are game specific
[17:00] <snover> s/tag/keyword
[17:00] <m_kiewitz> i saw that too, but i would prefer it in case it was right in the summary, because that's what I get via RSS
[17:01] <m_kiewitz> and it also seems i only get RSS entries, when a bug is created, it doesn't get sent later (unless it is, and gets detected as a dupe on my side)
[17:01] <m_kiewitz> when the bug is changed in some way
[17:03] <snover> is your rss feed filtered by engine or anything?
[17:05] <m_kiewitz> it seems my feed filters according to engine
[17:05] <m_kiewitz> and engine itself is fine, we can keep that at SCI
[17:05] <m_kiewitz> it's just the summary line
[17:05] <m_kiewitz> or is that auto-created by adding the engine name?
[17:05] <snover> its not auto-created
[17:20] <wjp> hm, just using the prefix instead of (or in addition to) a keyword does make sense I suppose
[17:21] <wjp> I don't really expect reporters to necessarily know the SCI/SCI32 difference
[17:21] <m_kiewitz> they don't, we can change it afterwards. we already changed tons on sourceforge
[17:24] <m_kiewitz> and well one could change it automatically when sci32-only games are selected
[17:40] --> NuSuey joined #scummvm.
[17:47] --> dreammaster joined #scummvm.
[17:47] #scummvm: mode change '+o dreammaster' by ChanServ!ChanServ@services.
[17:50] <-- frankyboy_ left irc: Read error: Connection reset by peer
[17:51] --> frankyboy_ joined #scummvm.
[17:58] <-- m_kiewitz left irc: Ping timeout: 264 seconds
[18:05] <-- frankyboy_ left irc: Read error: Connection reset by peer
[18:06] --> frankyboy_ joined #scummvm.
[18:10] <-- TMM left irc: Quit: Ex-Chat
[18:21] <-- heroux left irc: Ping timeout: 244 seconds
[18:22] --> heroux joined #scummvm.
[18:23] --> m_kiewitz joined #scummvm.
[18:23] <-- m_kiewitz left irc: Changing host
[18:23] --> m_kiewitz joined #scummvm.
[18:23] #scummvm: mode change '+o m_kiewitz' by ChanServ!ChanServ@services.
[18:29] --> GitHub100 joined #scummvm.
[18:29] <GitHub100> [scummvm] sev- pushed 2 new commits to master: https://git.io/vPqvI
[18:29] <GitHub100> scummvm/master 5e814b6 Retro-Junk: FULLPIPE: Scene26: Fix pool level validation
[18:29] <GitHub100> scummvm/master b624e4e Retro-Junk: FULLPIPE: Scene14: Fix ball game
[18:29] GitHub100 (GitHub100@192.30.252.41) left #scummvm.
[18:45] --> GitHub50 joined #scummvm.
[18:45] <GitHub50> [scummvm] sev- pushed 1 new commit to master: https://git.io/vPqfO
[18:45] <GitHub50> scummvm/master 50753f2 Eugene Sandulenko: FULLPIPE: Fix cursor handling in scene25
[18:45] GitHub50 (GitHub50@192.30.252.40) left #scummvm.
[18:55] <snover> note to self: if the wrong type of object is assigned to a global, and you have a save game from before a script patch to fix the object type, the global will still be wrong because it is wrong in the save game&
[18:56] <m_kiewitz> which one is that?
[18:57] <snover> global 176, which is some global used for the interrogation screen in gk1
[18:57] <snover> another IntArray that should have been an IDArray
[19:07] --> GitHub38 joined #scummvm.
[19:07] <GitHub38> [scummvm] csnover pushed 3 new commits to master: https://git.io/vPqJ4
[19:07] <GitHub38> scummvm/master 7d77a71 Colin Snover: SCI32: Fix interrogation screen crash in GK1
[19:07] <GitHub38> scummvm/master d527e75 Colin Snover: SCI32: Fix signature of kString(ArraySetElements) to allow 0 args
[19:07] <GitHub38> scummvm/master 084dfe9 Colin Snover: SCI32: Use selector lookup in Torin script patch instead of magic numbers
[19:07] GitHub38 (GitHub38@192.30.252.34) left #scummvm.
[19:12] <m_kiewitz> snover: in sci16 ScummVM always uses reg_ts for memory blocks and such to avoid exactly such problems. is that impossible for sci32?
[19:12] <m_kiewitz> when a script reads at offset 2, that will converted to offset 4 internally
[19:21] <snover> I dont know. originally all the arrays were reg_t sized and that broke strings
[19:22] <m_kiewitz> how so?
[19:22] <m_kiewitz> then I guess Strings were not working properly
[19:22] <m_kiewitz> did it save references to strings in there or raw bytes of strings?
[19:24] <m_kiewitz> in that aspect we are not really working like SCI, which we should - and this could and probably will cause all sorts of issues and i think patching those out one by one is not really the way to fix it
[19:24] <snover> better rewrite the virtual machine to have short-sized memory handles then :)
[19:25] --> sluicebox joined #scummvm.
[19:25] --> omer_mor_ joined #scummvm.
[19:26] <m_kiewitz> the current model works sort of fine. it's not perfect, but the good thing is that references can be easily detected. with int16 sized memory that wouldn't be the case anymore
[19:26] <m_kiewitz> still what exactly went wrong with strings? i don't get it
[19:27] <m_kiewitz> did the scripts write int16s to it and then used that as string data?
[19:27] --> GitHub86 joined #scummvm.
[19:27] <GitHub86> [scummvm] sev- pushed 2 new commits to master: https://git.io/vPqUi
[19:27] <GitHub86> scummvm/master 70f9cc5 Eugene Sandulenko: FULLPIPE: Further selection to cursor handling in scene25
[19:27] <GitHub86> scummvm/master a4758da Eugene Sandulenko: FULLPIPE: Fix logic in scene25. Now Dude can return back
[19:27] GitHub86 (GitHub86@192.30.252.40) left #scummvm.
[19:27] <-- omer_mor left irc: Ping timeout: 244 seconds
[19:27] <m_kiewitz> why can't we process such data? we could detect it as array and then only use the lower int16 part of each entry
[19:28] <m_kiewitz> all of that works fine in sci16, so i don't understand why it's a problem now
[19:32] --> Tkachov joined #scummvm.
[19:33] <sluicebox> i'm getting another gk1 crash since the kstring/karray merge; clicking ask on the bartender is frequently (but not always) crashing with [CelObjView::getNumCels]: loop number is equal to loop count in method GKEgo::lastCel (room 460, script 64998, localCall ffffffff)!
[19:34] <sluicebox> i took a quick look at that room script, there's a "bartending" script that calls IntArray
[19:41] <snover> m_kiewitz: im very confused. one day you say that kNumCels should not just return a automatically determined compatible value because it might be wrong sometime, and that we must have kernel call signature checks that ssci didnt have because it finds bugs, and now you are advocating the complete opposite position
[19:41] <snover> i dont really have any answers for you today
[19:41] <m_kiewitz> ???
[19:42] <m_kiewitz> the whole reg_t thing is also about catching all sorts of issues
[19:42] <m_kiewitz> and the VM was designed like that (well originally it didn't catch such issues). I think that's a good thing
[19:43] <m_kiewitz> a game simply saying "i need 100 int16s" should get the int16s, but as reg_ts, because that's how the VM works internally
[19:44] <m_kiewitz> the game scripts know nothing about that, so it's not really a fault inside the game scripts.
[19:44] <m_kiewitz> without reg_ts we would also be unable to detect uninitialized variables and much more.
[19:45] <-- NuSuey left irc: Quit: Connection closed for inactivity
[19:46] <m_kiewitz> and we also actually ignore even a few invalid calls automatically, in case it's impossible that they do harm
[19:47] <m_kiewitz> like for example scripts can call a few kernel calls for freeing memory with invalid memory handles. that will get silently ignored.
[19:54] <m_kiewitz> i also added quite a few workarounds even for some actual script bugs inside the sci16 port code. Because there are some scripts, that use already freed ports a few calls later
[19:55] <m_kiewitz> the only other option would have been to either make the VM just work like in SSCI, which means nothing is really freed, but rather overwritten at some point later, which means that all sorts of issues go undetected
[19:55] <m_kiewitz> or we would have needed to write tons of really complicated script patches
[19:56] <m_kiewitz> and in case some script actually writes an object inside a string or whatever, then that should get caught when the string is used anyway (at least I think so)
[20:03] <-- ajax16384 left irc: Read error: Connection reset by peer
[20:05] <m_kiewitz> also how does writing into such memory even work now?
[20:05] <m_kiewitz> are writes checked? or is it simply limited to raw int16s and that's it?
[20:05] <m_kiewitz> i mean does it clip reg_ts in such case without any error? then the current code doesn't help anything, but will make the situation even worse than it is
[20:09] <m_kiewitz> and the kNumCels issue is a completely different thing. If I remember correctly, that one returns basically a random number and nothing that we can calculate. So it's basically an uninitialized read in some way.
[20:10] <m_kiewitz> so we could of course just return some magic number and cross our fingers, that this magic number will work in all cases - and we did that already years ago with actual uninitialized reads
[20:10] <m_kiewitz> that's funnily why I added the uninitialized read detection, because we had multiple situations that required us to return different values, because the scripts didn't work otherwise
[20:11] <m_kiewitz> that's what I said, that an error is better, because then we would have to add a workaround just like in the uninitialized read cases
[20:11] <m_kiewitz> if we could actually calculate what sierra returned, then I would go for that. But afaik we can't
[20:12] <m_kiewitz> s/what I said/why I said
[20:14] <snover> sluicebox: im having trouble reproducing that bug
[20:16] <snover> sluicebox: what day are you on?
[20:21] <snover> oh. maybe because i wrote a workaround first. heh.
[20:21] <snover> linear time, so strange.
[20:22] <sluicebox> i'm on day 1
[20:22] <sluicebox> i *think* it depends on what the bartender is doing when you ask him, as that's random
[20:23] <sluicebox> most reliable way i've reproduced it is to have speed on hi, enter the bar, and click ask on bartender asap
[20:23] <snover> i got it now.
[20:27] --> GitHub138 joined #scummvm.
[20:27] <GitHub138> [scummvm] csnover pushed 3 new commits to master: https://git.io/vPqIu
[20:27] <GitHub138> scummvm/master fb12911 Colin Snover: SCI32: Stub kGraph...
[20:27] <GitHub138> scummvm/master 84978b7 Colin Snover: SCI32: Fix crash when trying to interrogate bartender in GK1
[20:27] <GitHub138> scummvm/master ab88597 Colin Snover: SCI32: Make kNumCels error more detailed
[20:27] GitHub138 (GitHub138@192.30.252.34) left #scummvm.
[20:30] <snover> sluicebox: fixed that for you.
[20:30] --> timofonic2 joined #scummvm.
[20:33] <-- timofonic1 left irc: Ping timeout: 264 seconds
[20:35] <sluicebox> thanks, that did it
[20:44] --> NuSuey joined #scummvm.
[20:48] <-- Tkachov left irc: Quit: https://fnordserver.eu
[20:55] <m_kiewitz> just a heads up - zavvi.com just dropped the price for the Steven Spielberg Director's Collection to 15 pounds only
[20:55] <-- t0by left irc: Quit: Bye!
[21:01] <_sev> so...
[21:02] <_sev> basically Full Pipe is completable
[21:02] <wjp> nice!
[21:02] <dreammaster> Nice.
[21:02] <dreammaster> There any miscellaneous functionality remaining?
[21:02] <_sev> there are still bugs
[21:02] <_sev> like one minigame is not working, and you have to use the cheat code
[21:03] <_sev> there is mess with sounds. They are not looped, some are missing
[21:03] <dreammaster> Ah, so not quite ready for testing yet
[21:03] <_sev> also there are loose ends with some memory management, leading to crashes in few places
[21:03] <_sev> here is the current list of known problems: https://trello.com/b/J0VSwBYS/full-pipe
[21:12] <-- ny00123 left irc: Quit: Leaving
[21:12] --> GitHub162 joined #scummvm.
[21:12] <GitHub162> [scummvm] dreammaster pushed 1 new commit to master: https://git.io/vPqt2
[21:12] <GitHub162> scummvm/master c08c9a7 Paul Gilbert: TITANIC: changePixel is now copyPixel, in progress transparenc blitting
[21:12] GitHub162 (GitHub162@192.30.252.41) left #scummvm.
[21:14] --> GitHub19 joined #scummvm.
[21:14] <GitHub19> [scummvm] sev- pushed 2 new commits to master: https://git.io/vPqtV
[21:14] <GitHub19> scummvm/master 7da5d48 Eugene Sandulenko: FULLPIPE: Clarify MovGraphLink flags variable type
[21:14] <GitHub19> scummvm/master e16725a Eugene Sandulenko: FULLPIPE: Rebames in scene37
[21:14] GitHub19 (GitHub19@192.30.252.34) left #scummvm.
[21:17] <-- salty-horse left irc: Ping timeout: 248 seconds
[21:19] <wjp> (a virtual function for changing a single pixel?)
[21:19] <dreammaster> It's the whole separation of implementation vs interface pattern the entire engine uses
[21:20] <wjp> at what resolution does titanic run?
[21:21] <dreammaster> 640x480
[21:22] <dreammaster> Though actually, it may be unncessary in the case of copyPixel.. from the looks of it, it's pretty much a const method, since it takes in both the source and dest pixel pointers
[21:24] <dreammaster> The only real thing I'd need to do is move the shading palette from OSVideoSurface like the original had to the CVideoSurface base, and then I could remove the virtual from the method.
[21:24] <dreammaster> I'll have a look into doing so once I've completed my working on the transBlitRect method
[21:25] <wjp> might want to run it through a profiler first to see if it's an issue
[21:26] <dreammaster> Well, on it's own, the copyPixel properly can't be optimized for a line.. when transparently blitting a rect, it's not just a simple matter of deciding whether or not to use each pixel, but the whole simulation of alpha transparency using the lookup shading table
[21:27] <dreammaster> The alpha amount itself coming from a separate transparency "surface" which, if I read all the logic I wrote for CRawSurface correctly, can itself be compressed RLE data. So all processing has to be done pixel by pixel
[21:27] <dreammaster> Even if it ends up being slower than a simple blitting, not much way around it
[21:28] <wjp> simulation of alpha?
[21:29] <wjp> what function do I look at to see what that means?
[21:30] <dreammaster> The whole CRawSurface class. Maybe it would be better renamed as CTransparencySurface. Plus the changes I did to AVIDecoder a while back.
[21:30] <dreammaster> Essentially, some video files come with a second video track that contains transparency information for the primary track. Why they couldn't just have used simple RGBA all the time I don't know.
[21:31] <dreammaster> In those cases, the "transparency frame" in the second video track may not even be raw data matching the original frame, but rather RLE encoded data. So the CRawSurface class has methods for setting row and column, and extracting pixels.
[21:32] --> omer_mor joined #scummvm.
[21:32] <dreammaster> I'd have been more comfortable decoding the transparency frame initially, and then just using getBasePtr, but I want to start like the original to begin with. Even with the trouble I have debugging the game, I've had some success setting a breakpoint right at the start, and then manually changing cs:ip to code I want to test. So having code like the original may be an advantage
[21:33] <dreammaster> Of course, this is only tangentially connected to changePixel.. it simply takes in a "transVal" that I now understand represents a transparency index from 0 - 31. Which is the result of calling the CRawsurface to get the transparency amount for each pixel in turn
[21:34] <-- omer_mor_ left irc: Ping timeout: 244 seconds
[21:34] <wjp> wow
[21:34] <wjp> it's creative, anyway :-)
[21:35] <wjp> anyway, sticking close to the original while developing/debugging sounds entirely like a good idea :-)
[21:36] <wjp> oh wow, never mind I said anything about copyPixel. It's indeed this rawSurface.getPixel() call that looks really scary :-)
[21:37] <wjp> anyway, let's see what needs optimizing when the time comes
[21:37] <dreammaster> Right.
[21:38] <wjp> how far along is titanic?
[21:39] <dreammaster> Well, there are two things definitely missing still: music generation logic for a music room puzzle, and the endgame star control mess - over 30 classes just for that one puzzle to do a 3D simulation of a starfield. Currently, I play as far in the prologue as meeting the doorbot. It's not currently transparently drawn, and doesn't animate whilst speaking.
[21:40] <dreammaster> Plus once I've got that working, there'll be the first occurance of the talking conversation interface in the PET. Even if it pretty much ignores what you say in-game, I imagine I'll have to track down and fix bugs to get it working before I can finally get past him and onto the ship
[21:45] <wjp> ah, always a bit frustrating, those huge amounts of code for a relatively small part of the game
[21:45] <wjp> but sounds good
[21:45] <wjp> keep it up :-)
[21:45] <dreammaster> Thanks :)
[21:51] <m_kiewitz> dreammaster: video of that 3D simulation puzzle?
[21:53] <dreammaster> Weren't you the one that gave me a link for it from Youtube a while back?
[21:53] <m_kiewitz> o_O
[21:53] <m_kiewitz> don't remember that :P
[21:54] <dreammaster> https://www.youtube.com/watch?v=6J5igcH92OI at around 7:30
[21:55] <dreammaster> There's a whole starfield you can rotate in 3D. The puzzle, as I understand it, is using the starfield in the photograph you take from your home at the beginning of the game, and locating them as reference points in the 3d starmap to triangulate the position of Earth
[21:55] <wjp> (by the way, for context: one reason to historically do the alpha channel as a separate RLE stream, is to be able to more efficiently handle large non-transparent (or fully transparent) runs, since you can skip checking the alpha of each pixel separately)
[21:56] <m_kiewitz> wow
[21:56] <wjp> (and just skip/memcpy a whole chunk of data when you hit a large run)
[21:57] <dreammaster> That makes sense, I guess. Although the game was never released on floppies, so they weren't that short of space
[21:57] <wjp> it's performance rather than space
[21:58] <dreammaster> Ah, yes, that would make more sense
[22:01] <dreammaster> And given the cleanliness of the rest of the engine, would explain why they'd have some videos with RGBA, and others with the second video track.
[22:12] --> GitHub172 joined #scummvm.
[22:12] <GitHub172> [scummvm] dreammaster pushed 1 new commit to master: https://git.io/vPqY4
[22:12] <GitHub172> scummvm/master 8befee0 Paul Gilbert: TITANIC: Finished transBlitRect method
[22:12] GitHub172 (GitHub172@192.30.252.45) left #scummvm.
[22:13] <-- WooShell left irc: Quit: Zu gotdy od mpy nrmy stpimf. Zu drvpmf zrsmd aogy jrt iq pt viy jrt yp yjr htpimf.
[22:14] --> WinterGrascph joined #scummvm.
[22:14] #scummvm: mode change '+o WinterGrascph' by ChanServ!ChanServ@services.
[22:26] --> GitHub196 joined #scummvm.
[22:26] <GitHub196> [scummvm] dreammaster pushed 1 new commit to master: https://git.io/vPqOe
[22:26] <GitHub196> scummvm/master 459e3f5 Paul Gilbert: TITANIC: Change copyPixel to not be a virtual method
[22:26] GitHub196 (GitHub196@192.30.252.41) left #scummvm.
[22:33] --> omer_mor_ joined #scummvm.
[22:34] <-- omer_mor left irc: Ping timeout: 244 seconds
[22:43] --> girafe joined #scummvm.
[22:43] <-- snover left irc: Remote host closed the connection
[22:43] --> snover joined #scummvm.
[22:43] #scummvm: mode change '+o snover' by ChanServ!ChanServ@services.
[22:44] <snover> m_kiewitz: sorry for being kind of bitchy earlier, theres no excuse for that
[22:45] --> omer_mor joined #scummvm.
[22:46] <m_kiewitz> snover: don't be sorry, we should rather find a way to solve this issue
[22:47] <-- omer_mor_ left irc: Ping timeout: 272 seconds
[22:51] <snover> i have to go back in the history to answer your question about string arrays with 100% accuracy, but in the game scripts Str is just a subclass of ByteArray with a different type property and some extra methods, so when they were not implemented that way in ScummVM, there were a whole bunch of string problemsoverwrites, garbage data, strings being truncated because of null bytes
[22:52] <-- dreammaster left irc:
[22:54] <m_kiewitz> well we can surely detect that type of segment and we will probably have to adjust writing to it in some way
[22:54] <snover> there is no different segment for those
[22:54] <snover> there used to be, and now there is not
[22:55] <snover> which fixes text in basically every game, but especially in LSL6 hires
[22:55] <m_kiewitz> yes sure, but how is memory allocated for that?
[22:55] <snover> malloc
[22:55] <m_kiewitz> no, i meant what do the scripts do call?
[22:55] <m_kiewitz> kMemory?
[22:56] <m_kiewitz> kArray?
[22:56] <snover> kArrayNew or kStringNew
[22:56] <snover> in SCI3 they deleted kStringNew
[22:56] <m_kiewitz> yeah well, then we can differentiate and even add some type identifier or something
[22:56] <snover> they *are* differentiated with a type
[22:56] <m_kiewitz> so we can see what the scripts wanted to do, then allocate a reg_t array and then modify write + reads to it to adjust to it
[22:57] <m_kiewitz> which types can the scripts specify? int16? that other type for references/offsets?
[22:57] <m_kiewitz> unless there is a byte-type, i don't see a problem. And even if, we could check that on writes and also adjust accordingly
[22:57] <snover> there is a byte type.
[22:58] <m_kiewitz> for example byte-write could get changed to full reg_t as well
[22:58] <m_kiewitz> and on reads we would just read back the lower 8 bits of the reg_t
[22:58] <snover> no, no. that is part of why things were broken before to begin with, and is super inefficient, and is not part of the current problem
[22:58] <m_kiewitz> it depends on how many other ways of accessing there are
[22:59] <-- criezy left irc: Quit: criezy
[22:59] <m_kiewitz> well, ok. I guess for byte, we could actually allocate the exact memory that is required, because scripts couldn't save valid offsets into those
[22:59] <m_kiewitz> but for int16 i don't see a problem w/ using reg_ts
[22:59] <m_kiewitz> for which data did they use byte? for string data?
[23:00] <m_kiewitz> i mean SCI16 uses kMemory and we also allocate reg_ts instead of uint16s. That worked totally fine
[23:00] <m_kiewitz> of course maybe performance could be better, but that's not the point. the VM is designed to work that way and for int16 we can't be sure that no offsets are written to it
[23:01] <m_kiewitz> and i doubt performance for such segments is such a problem compared to hires graphic rendering, which has to process way more data
[23:02] <m_kiewitz> in any case, if we would patch all sorts of games, then we change it basically to reg_t anyway, because there is simply no other way
[23:05] <-- exmensa left irc: Remote host closed the connection
[23:06] --> exmensa joined #scummvm.
[23:07] <m_kiewitz> we could in theory also go completely bonkers in case performance is such an issue
[23:07] <m_kiewitz> and simply detect offset writes to such segments and then change the segments to reg_t automatically
[23:07] --> kurtwr2 joined #scummvm.
[23:07] <snover> have you looked at SciArray in segment.h ?
[23:08] <m_kiewitz> not yet
[23:09] <-- WinterGrascph left irc: Remote host closed the connection
[23:10] <-- kurtwr left irc: Ping timeout: 273 seconds
[23:14] <m_kiewitz> was this changed 1 or 2 days ago? my kArray code still allocates reg_t Arrays only?!
[23:14] <m_kiewitz> unless im missing something
[23:16] <snover> yes, it landed a day or so. it was in that PR you looked at parts of
[23:17] <m_kiewitz> i see that the given type isn't checked for unknowns, MSVC is currently doing its IntelliSense, is that checked in SegMan?
[23:17] <snover> is not checked where?
[23:18] <m_kiewitz> in kArrayNew
[23:18] <snover> SciArray::setType checks the type
[23:18] <m_kiewitz> the value is just taken from arg[1] and then passed over
[23:18] <m_kiewitz> ah i see
[23:18] <m_kiewitz> Intellisense needs some time
[23:21] <m_kiewitz> TypeiD means offsets, I guess?
[23:22] <m_kiewitz> and string basically behaves like byte?
[23:23] <snover> The ID array type is for holding references to other things
[23:23] <snover> not just offsets
[23:23] <m_kiewitz> i don't see a big problem, just behave for int16 like with ID
[23:24] <m_kiewitz> unless sierra also tried to save offsets inside string arrays
[23:24] <m_kiewitz> and well some methods will need an offset adjustment
[23:25] <m_kiewitz> like int16At()
[23:25] <m_kiewitz> or do i miss something?
[23:26] <m_kiewitz> oh and do you check for uninitialized writes? i guess those should be caught earlier by VM, i guess - but I'm not entirely sure
[23:27] <-- girafe left irc: Read error: Connection reset by peer
[23:28] <m_kiewitz> oh and maybe the "char showChar" should get changed to "unsigned char showChar"
[23:29] <m_kiewitz> i had an issue like that, which caused some bug on a few platforms and it was a pita to figure out
[23:29] <m_kiewitz> (on a few platforms == where char is taken as signed char)
[23:29] <snover> there is no way to perform an uninitialised write, sci32 arrays automatically expand
[23:31] <m_kiewitz> i meant uninitialized value read by scripts from temp variables
[23:31] <m_kiewitz> but as i said - i guess the VM will probably notice that before the actual kernel call and reject it
[23:32] <m_kiewitz> (although I'm also not sure if temp variables were finally initialized in sci32, they weren't for sci16)
[23:32] <m_kiewitz> which caused all sorts of funny bugs in sci16
[23:33] <m_kiewitz> ah right, VM would complain because of the uninitialized read from temp space
[23:33] <-- Henke37 left irc: Quit: ERR_SHUTDOWN
[23:33] <m_kiewitz> so nvm
[23:35] <-- NuSuey left irc: Quit: Connection closed for inactivity
[23:35] <snover> bbiab.
[23:37] <-- waltervn left irc: Quit: Leaving
[23:48] --> edheldil joined #scummvm.
[00:00] --- Sun Oct 2 2016