[Bug 31504] Videos in Galactic Civilization 1 can crash game

wine-bugs at winehq.org wine-bugs at winehq.org
Fri Apr 4 02:40:21 CDT 2014


http://bugs.winehq.org/show_bug.cgi?id=31504

Andrew Smart <svor1988 at gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |svor1988 at gmail.com

--- Comment #4 from Andrew Smart <svor1988 at gmail.com> ---
Confirmed with wine-1.7.15
I observed the same basic error log as Christopher May, specifically:
fixme:quartz:parse_header Not a valid header: 00:00:00:00
GalCiv.exe: mpegsplit.c:691: MPEGSplitter_first_request: Assertion `hr ==
((HRESULT)0)' failed.

However I don't see a relationship to crashing after a video plays as the bug
title claims.

My impression is that an MPEG deployed with the game (the main repeating music)
isn't perfect.  So using winetricks I tried the native quartz dll, with great
success (the ~90 second long main game music loops for ever and ever)!  Though
something still complains about zeroed out MPEG headers:
"Warning: Big change (MPEG version, layer, rate). Frankenstein stream?
Note: Illegal Audio-MPEG-Header 0x00000000 at offset 290064."
http://pastebin.com/Riq79JVB

I also decided to try commenting out the relevant assertion in wine's quartz
(MPEGSplitter_first_request function in ./dlls/quartz/mpegsplit.c:691) which
led to different results than native quartz.  The main music played great for
about a minute, then got intermittently choppy, then stopped altogether (other
game sounds work great I might add, adding credence to my hypothesis that the
main game music occasionally has a bad header or is otherwise imperfect).  No
crash since the assertion was disabled, and the normal error handling took
over.  Here is a snipped of the output:
"fixme:quartz:parse_header Not a valid header: 00:00:00:00"
http://pastebin.com/fqa8qd8c
(I think the fixme:quartz:parse_headers were frequently printed while the song
was intermittently playing, then the later messages printed every minute or so
after the song stopped altogether).

So if anyone wants to work on replicating the native quartz's error handling
into wine's quartz this might be a good use case!  Or just get rid of that
assertion? (Game will work without the assertion but the main song will die
agonizingly, which can be considered a blessing due to it's repetitiveness)

-- 
Do not reply to this email, post in Bugzilla using the
above URL to reply.
You are receiving this mail because:
You are watching all bug changes.



More information about the wine-bugs mailing list