Opened 9 years ago

Closed 7 years ago

Last modified 7 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 9 years ago.
sq5_graphical_glitch_02.png (125.2 KB ) - added by OmerMor 9 years ago.
sq5.005 (38.4 KB ) - added by OmerMor 9 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 9 years ago.
glitch #2 in rev 52923

Download all attachments as: .zip

Change History (47)

by OmerMor, 9 years ago

Attachment: sq5_graphical_glitch_01.png added

by OmerMor, 9 years ago

Attachment: sq5_graphical_glitch_02.png added

by OmerMor, 9 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, 9 years ago

added another screenshot & a savegame before the glitch

comment:2 by SF/mthreepwood, 9 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, 9 years ago

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

comment:4 by bluegr, 9 years ago

Resolution: worksforme

comment:5 by bluegr, 9 years ago

Owner: set to bluegr

comment:6 by OmerMor, 9 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, 9 years ago

Resolution: worksforme

comment:8 by m-kiewitz, 9 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, 9 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, 9 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, 9 years ago

should be fixed in r52911

please check

comment:12 by m-kiewitz, 9 years ago

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

comment:13 by OmerMor, 9 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, 9 years ago

Attachment: sq5_graphical_glitch_03.png added

glitch #2 in rev 52923

comment:14 by SF/sf-robot, 9 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, 9 years ago

Status: pendingclosed

comment:16 by wjp, 9 years ago

Status: closednew

comment:17 by wjp, 9 years ago

Resolution: fixed

comment:18 by bluegr, 9 years ago

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

comment:19 by OmerMor, 9 years ago

Yes it does (using 1.3.0svn53938).

comment:20 by bluegr, 9 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, 9 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, 9 years ago

Your files are identical to mine. Very strange, indeed

comment:23 by bluegr, 9 years ago

What OS are you using omer_mor?

comment:24 by OmerMor, 9 years ago

Windows 7 32bit Ultimate

comment:25 by bluegr, 9 years ago

Owner: m-kiewitz removed

comment:26 by bluegr, 9 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, 9 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, 9 years ago

Owner: set to bluegr
Resolution: fixed
Status: newpending

comment:29 by bluegr, 9 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, 9 years ago

Resolution: fixed
Status: pendingnew

comment:31 by OmerMor, 9 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, 9 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, 9 years ago

Owner: bluegr removed

comment:34 by wjp, 9 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, 8 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, 8 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, 8 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, 8 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, 8 years ago

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

comment:40 by wjp, 8 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, 8 years ago

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

comment:42 by OmerMor, 7 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, 7 years ago

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