Opened 10 years ago

Closed 8 years ago

Last modified 8 years ago

#5183 closed defect (fixed)

SCI: SQ5: Graphical glitch after Captain Quirk slips

Reported by: OmerMor Owned by:
Priority: normal Component: Engine: SCI
Keywords: Cc:
Game: Space Quest 5

Description

After captain Quirk slips and falls on the floor the background is not refreshed correctly. I attached a screenshot of this. Game version: 1.03, English, DOS Scummvm version: svn51783

Ticket imported from: #3041069. Ticket imported from: bugs/5183.

Attachments (4)

sq5_graphical_glitch_01.png (116.1 KB ) - added by OmerMor 10 years ago.
sq5_graphical_glitch_02.png (125.2 KB ) - added by OmerMor 10 years ago.
sq5.005 (38.4 KB ) - added by OmerMor 10 years ago.
savegame before the glitch - you need to finish moping the floor to see the glitch
sq5_graphical_glitch_03.png (95.6 KB ) - added by OmerMor 10 years ago.
glitch #2 in rev 52923

Download all attachments as: .zip

Change History (47)

by OmerMor, 10 years ago

Attachment: sq5_graphical_glitch_01.png added

by OmerMor, 10 years ago

Attachment: sq5_graphical_glitch_02.png added

by OmerMor, 10 years ago

Attachment: sq5.005 added

savegame before the glitch - you need to finish moping the floor to see the glitch

comment:1 by OmerMor, 10 years ago

added another screenshot & a savegame before the glitch

comment:2 by SF/mthreepwood, 10 years ago

Summary: Graphical glitch after Captain Quirk slips on the floorSQ5: Graphical glitch after Captain Quirk slips on the floor

comment:3 by bluegr, 10 years ago

I can't reproduce this with my version, doing the same steps as you :(

comment:4 by bluegr, 10 years ago

Resolution: worksforme

comment:5 by bluegr, 10 years ago

Owner: set to bluegr

comment:6 by OmerMor, 10 years ago

I re-checked with svn52211 and the glitch is still there. If you can't reproduce this, I am willing to help. I am a (C#) programmer, so I guess that with a little guidance I could trace the source of this.

comment:7 by OmerMor, 10 years ago

Resolution: worksforme

comment:8 by m-kiewitz, 10 years ago

It seems this bug could be the same as the lsl5 dream sequence bug, where kDrawPic is called while a textbox is shown. Which results in no transition taking place, so the old picture will stay on screen.

LSL5 got fixed later, SQ5 1.04 is also fixed (user has 1.03). I also don't have 1.03, so can't test here, although i got the problematic lsl5 version.

@ omer_mor: please enter "logkernel DrawPic on", "logkernel NewWindow on" and "logkernel DisposeWindow on" in debug console (Ctrl-D to access it) during the scene right before that issue and then post the results from the text console in here.

comment:9 by OmerMor, 10 years ago

Here you go:

User picked target 'sq5' (gameid 'sci')... Looking for a plugin supporting this gameid... SCI Engine [SCI0, SCI01, SCI10, SCI11, SCI32] Starting 'Sierra SCI Game' Emulating SCI version SCI1.1

WARNING: matched and patched scrubbing send crash on script 119 offset 2453! kDisposeWindow: 3, 0 = 3 kDrawPic: 25, 32775, 1 = 32775 WARNING: Resource type mismatch loading audio.136! WARNING: resMan: Failed to read audio.136! WARNING: Failed to find audio entry 136! kDrawPic: 26, 32775, 1 = 32775 kNewWindow: 151, 61, 167, 159, 148, 58, 170, 163, 0, 128, 15, 0, 6 = 3 kDisposeWindow: 3, 0 = 3 kNewWindow: 13, 43, 37, 218, 10, 40, 40, 222, 0, 128, 15, 0, 6 = 3 kDisposeWindow: 3, 0 = 3 kNewWindow: 46, 60, 62, 201, 43, 57, 65, 205, 0, 128, 15, 0, 6 = 3 kDisposeWindow: 3, 0 = 3 kNewWindow: 6, 60, 62, 201, 3, 57, 65, 205, 0, 128, 15, 0, 6 = 3 kDrawPic: 25, 32775, 1 = 32775 kDisposeWindow: 3, 0 = 3

comment:10 by m-kiewitz, 10 years ago

kNewWindow: 6, 60, 62, 201, 3, 57, 65, 205, 0, 128, 15, 0, 6 = 3 kDrawPic: 25, 32775, 1 = 32775 kDisposeWindow: 3, 0 = 3

like i thought, it is the same situation as in lsl5

comment:11 by m-kiewitz, 10 years ago

should be fixed in r52911

please check

comment:12 by m-kiewitz, 10 years ago

Owner: changed from bluegr to m-kiewitz
Resolution: fixed
Status: newpending

comment:13 by OmerMor, 10 years ago

Not quite there yet. The glitch seen in image #1 is still happening. The glitch in image #2 just looks less better - but not fixed. I attached a new image of that screen.

by OmerMor, 10 years ago

Attachment: sq5_graphical_glitch_03.png added

glitch #2 in rev 52923

comment:14 by SF/sf-robot, 10 years ago

This Tracker item was closed automatically by the system. It was previously set to a Pending status, and the original submitter did not respond within 14 days (the time period specified by the administrator of this Tracker).

comment:15 by SF/sf-robot, 10 years ago

Status: pendingclosed

comment:16 by wjp, 10 years ago

Status: closednew

comment:17 by wjp, 10 years ago

Resolution: fixed

comment:18 by bluegr, 10 years ago

Does this still occur? I can't reproduce it (just tried again with version 1.03)

comment:19 by OmerMor, 10 years ago

Yes it does (using 1.3.0svn53938).

comment:20 by bluegr, 10 years ago

OK, from the sound of it, it looks like you have corrupted game files. Please, try recopying the game files from the original media. If the problem still persists, please provide the MD5 files of the full file contents (rather than the first 5000 bytes) - use something like MD5 summer for Windows (http://www.md5summer.org/)

comment:21 by OmerMor, 10 years ago

I don't believe my files are corrupt: DosBox plays this scene flawlessly. However - here are the md5s:

4ff2dc339352972581da584cc0a8d2f1 *0.FON 33027c81d10c98561510ecca2749cf81 *10.FON 8d6a0376f1bfc5075bf9dcadcc57c159 *100.V56 932ae1660a9d2eaa0a86e20559fd806f *1004.V56 3fb8da6bf544a3fe9a9fce762c59c287 *1005.FON 898155cd5cb8b28eca7a409562f92ab7 *1006.V56 b7dcaa54d212a759e74d344b1d6c2bee *1007.FON bfbe2d6b81c430b34b07c4fdbbc14118 *1008.FON c386324b796ec971f3d48555af3801b4 *101.V56 776af52d1c1260483db068fd9b57f01a *104.HEP 5259e9eeba67469e92f312348e2486f2 *104.SCR 8e77415577fcf962087bfa3c856e4c82 *105.V56 bf0e068f78df3500ef4ff44641ab5f14 *114.V56 b2b77be8b691c9e23ff272e614abdb24 *119.P56 6fbefbff4fcbc2bb3434fdb3f80c7543 *127.P56 d6d5d65b5d6b30ff3ce4e2d218fd67be *1307.FON 0a6891fd10b8f0e528d7fa8366fb89bb *133.P56 f53b83f3908b430affff8c3fcd5f3724 *137.HEP eb8961fefd49123b8be0001161945d21 *137.SCR f915aa140fbd2aaa859a8c4cbe52d524 *142.V56 46980b468c9d4d03d31b0c36b985ec5b *160.V56 57938b04a294a0881c920a358c0ccab9 *1605.FON cf08cacb90924d9596f618143241e551 *167.V56 e9cfbdcf9684c356f69f4eb9368d1371 *2003.V56 9259685bee5a8b76770c3fc15e649d68 *201.HEP a35fa153b958101bce6550fd37bd9908 *201.SCR 0b37dae3ad4932a97288472b47a8bddd *201.TEX 5e7aae17631d53b96a07cafad43c1860 *204.HEP 9105a591e12e454358c7b886e21f222b *204.SCR b2b1c4b35331f84bbfd52a330c25011e *205.V56 8eef67c7a39a440d368d669d098c2998 *2099.V56 4ff2dc339352972581da584cc0a8d2f1 *2106.FON 33b93d16a8721b57cb45d8e0ea6b5ef1 *211.V56 685a5b218c211127b0655d857a7a1543 *2306.FON e994fe81286f41d1fafbbd143aea36e9 *24.P56 6e03765b4d7136f5cc781cc8a06990db *2407.FON 495ac117570f568445589002fc2d058b *2510.FON 676131b3534e8d7de2efecdb5bb62357 *252.V56 43b0bdb1a6a305305c91cefe420938fa *264.V56 e93c989d283c14b3ba03ff8e25e3db3f *29.V56 810779c5330dfc6741a277684014dc68 *31.P56 0f18cde9cdface83baa442c4d29f5402 *335.HEP bdbf393f702e1de9db35667d4154bf80 *335.SCR 5b0d667b915abab96d23b636cf703b22 *4.FON ef5f9963c174f9b0201df1920e2d16b5 *4115.FON 017e100468064e8f945b3287a5ea4df1 *48.P56 77f0e10f4ff8b1dd0e2380ef2af925ab *5.P56 a9711eb63f7c4fa8833829515e763fcc *50.P56 2539fa55a717a7dc9119798ae2e8f3fc *537.V56 f6cdab00fccfb80abb3ae672aa013fae *538.V56 c335577b59a2123f80fbbda20d789cba *550.V56 6eb993135164a5a834b0b64ba69b2309 *606.V56 b6d0dbb8d5c6f7f3f3d122802269adc4 *613.V56 34b228365150ddcf4411e088e00a19aa *616.V56 0e62453a2b4a0cd6dc8b6b5f8c895b72 *625.V56 7eb8bde90afaa6ccf8b3bcd92a3ac810 *627.V56 ff6d8f0130406c0947fda636fd50fb32 *65535.MAP 5139cfbb6cdc795f87fae260462ed023 *667.V56 1ee096de25dba5012cfa1b2a101170ad *674.V56 c6ed168ede17ffacf94e3a1239ca709a *676.V56 8e27a914bcc8cf9cca0d2c7270cb3a21 *7.P56 df6dc9e68ba37cf58d67601b740a8660 *701.V56 c5d1f9cb7e79a7b74f625bfd303e37f3 *8.P56 c4c6f4b088593026fe17d887fb1e5a43 *81.P56 84441c2804fec95f1403accc01efd494 *900.V56 ef04d534a3bb4e3789f4f9fef3ed3e6c *910.V56 b085a15042a4c114559fa4c92512a537 *916.V56 0f05ddeeaafa7bd51ebe1da50c9ccc0a *917.V56 463fd943cec71c1d8cc94e780ea5824f *96.V56 a68997ac8f9eaa2852e159a89ec4c393 *97.V56 5c7651f2aa70379255fee3d4c3cd52c7 *98.V56 c475c307e517c8b3da707c22f8fb13e4 *980.V56 d56013abf4e51658c7359e9f811d5987 *986.V56 589ac1aedf0df5f7877e4a117df8d790 *987.V56 9fc04634ca7843f62c9851f8c6fbe273 *988.V56 526c673609196cbab7b198ba2f7ced86 *99.V56 04265d5153beeecae8491fa2930f191d *992.V56 d56424c519a4639fe8000b1d52276be0 *995.V56 8fadda516df6e9da6e75b84e8b46909f *999.FON 5b3b93130e29620927a2056ca1d31084 *ADL.DRV 0d63600a0db202b85a4657de96079851 *AUDBLAST.DRV f2143cdccf77eec2315c7043ece952ae *AUDDISNY.DRV a66ec477b7c4fb9e1108b164ead8f8cf *AUDMSSYS.DRV 214d16f20e97491e91c4c787044f03d6 *AUDNONE.DRV e6f0b58fc3767d0a68c0c0d9a9c04b38 *AUDPRO.DRV 84c578086d5662edbb55d7f7768d1b42 *AUDPRO16.DRV 8035673b703a28fadaaf9d1efb38fd3c *AUDPS1.DRV eafd3fc787ff1604eb339105db6b9d5e *AUDTHUND.DRV 36e21e035d55cf46308a6e685fbc328f *EGA640.DRV 22aa153907cb69d5aac4b128555f7b62 *GENMIDI.DRV c85f0400af5f5026d1c7b262622ecdf5 *IBMKBD.DRV f545b3c136e25c7397ae9e38163a1148 *IBMPS1.DRV eb99d7e054fd9cc8547268c1b2619e03 *INSTALL.EXE 6f7f08c4e82a98338b56345c6750b45f *INSTALL.HLP e318de47e17298adee4abbf4569eb0b6 *INSTALL.SCR 8d43c3a7b6ac9bfb53cf8f139f4fa794 *INSTALL.TXT dcaf26c41e63e543a50a0862cc5d721e *INTERP.ERR c75b73974160ff652a909a0d01f97214 *JOYSTICK.DRV 573d43b239a85ab06a96ccc6ba2624e1 *MESSAGE.MAP a07ab4e2fb521593915f1baa1f47082d *MICROSOF.DRV e2bcbb34b6bfe586c52605258ef9a312 *MT32.DRV 733d8fb18d8cac53cb6d995a8ec17dd0 *NULL c82126cb5a78d3c8c9671b14e5c25e30 *PROAUDIO.DRV fe2dd9defa98cc8059cf97dd8a3a1bc6 *README 192ad5d5a5d8af8d5d76e502a4292581 *RESOURCE.000 947fae2666cd8ba2f4b8c21491ebb707 *RESOURCE.AUD f28f667bcaa6a21387ef9680cc0ae720 *RESOURCE.CFG ea937aae231c4acdaeb249dea8f71060 *RESOURCE.MAP 47fec20a4d5d973e4235bab8cea40676 *RESOURCE.MSG b1d29b42de35f70265852d42be8ffd62 *SIERRA.EXE 09a8abcd5c04058751ffc66fed94bb0e *SQ5.BAT 742297f2ceebce0f42f43d4689437f8a *SQ5SG.000 98ba218c53202d767f12e57722f157a3 *SQ5SG.001 4a5cf7e02350af4ca669875bed480fe0 *SQ5SG.002 fa35a0949ab6026c83be024a8edb8a39 *SQ5SG.DIR f545b3c136e25c7397ae9e38163a1148 *STD.DRV f545b3c136e25c7397ae9e38163a1148 *TANDY3V.DRV f2b0054b79403596c4687dda393ba724 *VERSION 6ce7e367bdea13766b59d8ef1898e382 *VGA320.DRV 143ce4219d360a31cb2d01aa81019af7 *VGA320BW.DRV

If you need a copy of this version (1.03) for testing, don't hesitate to ask.

comment:22 by bluegr, 10 years ago

Your files are identical to mine. Very strange, indeed

comment:23 by bluegr, 10 years ago

What OS are you using omer_mor?

comment:24 by OmerMor, 10 years ago

Windows 7 32bit Ultimate

comment:25 by bluegr, 10 years ago

Owner: m-kiewitz removed

comment:26 by bluegr, 10 years ago

There were several changes regarding graphics in the latest unstable version. Could you test if this issue still occurs?

comment:27 by bluegr, 10 years ago

I don't get this glitch, so I'm changing the status of this one to "pending", so I'm considering it fixed till proven otherwise

comment:28 by bluegr, 10 years ago

Owner: set to bluegr
Resolution: fixed
Status: newpending

comment:29 by bluegr, 10 years ago

This tracker item is pending response by the submitter; we cannot continue processing it before that happens. As a consequence, its status has been set to "Pending". It will automatically revert to "Open" once a new comment is made to this item. If no response is made within 14 days, it will automatically be closed.

Thank you.

comment:30 by OmerMor, 10 years ago

Resolution: fixed
Status: pendingnew

comment:31 by OmerMor, 10 years ago

I tried it again today with the latest 1.3.0git daily version and the glitch still occurs. Like I said in one of the earliest comments: I am a programmer myself (in C#, but it doesn't matter). I could help you debug it on my machine if you'll just give me some pointers.

comment:32 by bluegr, 10 years ago

Thing is, we got no idea why this occurs in your system, and none of us could reproduce this :( SCI is very complex, so it could be anything. So, even if you are a programmer, there's little we can do about this.

I did try this with MSVC, both with Debug and Release builds, under Windows 7 64-bit, both 1.03 and 1.04 versions. Others tried it with gcc under *nix. Nobody could replicate it. Thus, if this can't be reproduced, there's not much we can do to help, I'm afraid :(

comment:33 by bluegr, 10 years ago

Owner: bluegr removed

comment:34 by wjp, 10 years ago

Which of the three screenshots you posted still occur for you with current snapshots?

Can you say _exactly_ what you do after the scrubbing finishes? Do you click through any of the dialogs in the cutscene? Do you wait for it to finish uninterrupted?

comment:35 by OmerMor, 10 years ago

screenshots #1 & #3 still occur with current snapshots. After the scrubbing finishes, I click through all the dialogs in the cutscene until I get to the glitch.

(BTW - I tried to save myself the trouble of waiting by saving the gaming right before the cutscene ends using the console debugger save_game command. However when I try to restore that save, I get an exception. I guess the engine does handle well save games from within a cutscene, but I accept this as it was not supported in the original engine either)

comment:36 by wjp, 10 years ago

Does it also happen if you let the cutscene happen uninterrupted? (Just wondering if it depends on the timing of the clicks, for example.)

Judging by the screenshots, it looks like outdated underbits are being restored to screen after a scene change. If you could figure out where they come from (given your offer on the forums), that could be helpful. A starting point for that might be determining the exact rectangle that is broken, and putting a breakpoint on GfxScreen::bitsRestore (in graphics/screen.cpp) when it restores that rectangle. The last time that breakpoint is triggered is then likely the wrong call.

comment:37 by OmerMor, 10 years ago

New findings: 1. When debugging this it's not always happening (the 2 graphical glitches) - behaves like some race condition. 2. The script is also behaving wrong: In DosBox, after Quirk is slipping, Beatrice is laughing at his toupee. Quirk says "arrggh", and then says something like "you did this on purpose Wilco". However in ScummVM, the first 2 text balloons are shows very briefly, and immediately replaced with "you did this on purpose Wilco", accompanied with the graphical glitch".

Maybe the script bug will be easier to debug.

comment:38 by digitall, 10 years ago

My copy of SQ5 is v1.04 and does not exhibit this issue. However, loading savegames (from the launcher) in the Scrubbing Scene can result in not being able to complete the scrubbing i.e. the script fails to detect success..

I did check and no valgrind issues including un-inited reads are associated with this issue.

I suspect that the v1.03->v1.04 have fixed/masked the gfx issue, but it appears that the Scrubbing Scene scripts are probably fairly brittle and should be analysed to see if a patch can be made to correct them.

comment:39 by wjp, 10 years ago

Summary: SQ5: Graphical glitch after Captain Quirk slips on the floorSCI: SQ5: Graphical glitch after Captain Quirk slips

comment:40 by wjp, 9 years ago

omer_mor: I still can't reproduce this, but we did fix a number of priority and screen updating glitches this weekend, so could you try again sometime?

comment:41 by OmerMor, 9 years ago

tried it with 1.4.0git1050-g4c70d39 (Jun 13 2011 04:58:38), glitch still happens.

comment:42 by OmerMor, 8 years ago

Just checked this with 1.6.0git240-g52a1a6e, and the glitch appears to be solved! I still wonder what fixed this, but the more thing is that it is fixed now. Amazing work guys!

comment:43 by OmerMor, 8 years ago

Resolution: fixed
Status: newclosed
Note: See TracTickets for help on using tickets.