Opened 15 years ago
Closed 15 years ago
#4834 closed defect (fixed)
DRACI: Corruption of Text Glyphs with Stumps and Credits
Reported by: | digitall | Owned by: | rspalek |
---|---|---|---|
Priority: | normal | Component: | Engine: Draci |
Version: | Keywords: | ||
Cc: | Game: | Dragon History |
Description
The speech text glyphs are corrupted in a number of cases including on the Two Stumps Scene and during a number of the slides of the closing credits.
ScummVM 1.1.0pre48399 (Mar 25 2010 02:42:50) Features compiled in: Vorbis FLAC MP3 ALSA RGB zLib FluidSynth built on Linux x86_32 2.6.31 by GCC 4.3.4
Ticket imported from: #2976767. Ticket imported from: bugs/4834.
Attachments (8)
Change History (12)
by , 15 years ago
Attachment: | scummvm00000.jpg added |
---|
comment:1 by , 15 years ago
Attached are screenshots of the corruption, which is not completely deterministic.
The attached savegame can be used to replicate, by loading then : * Go to bottom of screen to access map * Go To Dragons House * Wait For Cutscene to complete * Credits will be played with corruption as per screenshots supplied.
Running this with valgrind yields the following relevant output : ==6690== Invalid read of size 1 ==6690== at 0x82C813E: Draci::Font::getStringWidth(Common::String const&, int) const (font.cpp:260) ==6690== by 0x82D656A: Draci::Text::setText(Common::String const&) (sprite.cpp:283) ==6690== by 0x82D3415: Draci::Script::talk(Common::Array<int> const&) (script.cpp:720) ==6690== by 0x82D4A22: Draci::Script::run(Draci::GPL2Program const&, unsigned short) (script.cpp:1173) ==6690== by 0x82D4B8B: Draci::Script::runWrapper(Draci::GPL2Program const&, unsigned short, bool, bool) (script.cpp:1199) ==6690== by 0x82CE50E: Draci::Game::enterNewRoom() (game.cpp:1303) ==6690== by 0x82CE5EE: Draci::Game::start() (game.cpp:165) ==6690== by 0x82C75D2: Draci::DraciEngine::run() (draci.cpp:365) ==6690== by 0x80565C0: runGame(PluginSubclass<MetaEngine> const*, OSystem&, Common::String const&) (main.cpp:216) ==6690== by 0x8056F69: scummvm_main (main.cpp:389) ==6690== by 0x8053451: main (main.cpp:65) ==6690== Address 0x63b695c is not stack'd, malloc'd or (recently) free'd ==6690== ==6690== Invalid read of size 1 ==6690== at 0x82C813E: Draci::Font::getStringWidth(Common::String const&, int) const (font.cpp:260) ==6690== by 0x82C846B: Draci::Font::drawString(Draci::Surface*, Common::String const&, int, int, int, int, bool) const (font.cpp:212) ==6690== by 0x82D653B: Draci::Text::draw(Draci::Surface*, bool, int, int) const (sprite.cpp:297) ==6690== by 0x82D7629: Draci::Text::drawReScaled(Draci::Surface*, bool, Draci::Displacement const&) const (sprite.h:159) ==6690== by 0x82DAE06: Draci::Animation::drawFrame(Draci::Surface*) (animation.cpp:164) ==6690== by 0x82DBD00: Draci::AnimationManager::drawScene(Draci::Surface*) (animation.cpp:363) ==6690== by 0x82CBD23: Draci::Game::advanceAnimationsAndTestLoopExit() (game.cpp:470) ==6690== by 0x82CC478: Draci::Game::loop(Draci::LoopSubstatus, bool) (game.cpp:550) ==6690== by 0x82D3745: Draci::Script::talk(Common::Array<int> const&) (script.cpp:767) ==6690== by 0x82D4A22: Draci::Script::run(Draci::GPL2Program const&, unsigned short) (script.cpp:1173) ==6690== by 0x82D4B8B: Draci::Script::runWrapper(Draci::GPL2Program const&, unsigned short, bool, bool) (script.cpp:1199) ==6690== by 0x82CE50E: Draci::Game::enterNewRoom() (game.cpp:1303) ==6690== Address 0x63b695c is not stack'd, malloc'd or (recently) free'd ==6690== ==6690== Invalid read of size 1 ==6690== at 0x82C809D: Draci::Font::getLineWidth(Common::String const&, unsigned int, int) const (font.cpp:295) ==6690== by 0x82C8504: Draci::Font::drawString(Draci::Surface*, Common::String const&, int, int, int, int, bool) const (font.cpp:223) ==6690== by 0x82D653B: Draci::Text::draw(Draci::Surface*, bool, int, int) const (sprite.cpp:297) ==6690== by 0x82D7629: Draci::Text::drawReScaled(Draci::Surface*, bool, Draci::Displacement const&) const (sprite.h:159) ==6690== by 0x82DAE06: Draci::Animation::drawFrame(Draci::Surface*) (animation.cpp:164) ==6690== by 0x82DBD00: Draci::AnimationManager::drawScene(Draci::Surface*) (animation.cpp:363) ==6690== by 0x82CBD23: Draci::Game::advanceAnimationsAndTestLoopExit() (game.cpp:470) ==6690== by 0x82CC478: Draci::Game::loop(Draci::LoopSubstatus, bool) (game.cpp:550) ==6690== by 0x82D3745: Draci::Script::talk(Common::Array<int> const&) (script.cpp:767) ==6690== by 0x82D4A22: Draci::Script::run(Draci::GPL2Program const&, unsigned short) (script.cpp:1173) ==6690== by 0x82D4B8B: Draci::Script::runWrapper(Draci::GPL2Program const&, unsigned short, bool, bool) (script.cpp:1199) ==6690== by 0x82CE50E: Draci::Game::enterNewRoom() (game.cpp:1303) ==6690== Address 0x63b695c is not stack'd, malloc'd or (recently) free'd ==6690== ==6690== Invalid read of size 1 ==6690== at 0x82C828B: Draci::Font::drawChar(Draci::Surface*, unsigned char, int, int, int) const (font.cpp:131) ==6690== by 0x82C858B: Draci::Font::drawString(Draci::Surface*, Common::String const&, int, int, int, int, bool) const (font.cpp:232) ==6690== by 0x82D653B: Draci::Text::draw(Draci::Surface*, bool, int, int) const (sprite.cpp:297) ==6690== by 0x82D7629: Draci::Text::drawReScaled(Draci::Surface*, bool, Draci::Displacement const&) const (sprite.h:159) ==6690== by 0x82DAE06: Draci::Animation::drawFrame(Draci::Surface*) (animation.cpp:164) ==6690== by 0x82DBD00: Draci::AnimationManager::drawScene(Draci::Surface*) (animation.cpp:363) ==6690== by 0x82CBD23: Draci::Game::advanceAnimationsAndTestLoopExit() (game.cpp:470) ==6690== by 0x82CC478: Draci::Game::loop(Draci::LoopSubstatus, bool) (game.cpp:550) ==6690== by 0x82D3745: Draci::Script::talk(Common::Array<int> const&) (script.cpp:767) ==6690== by 0x82D4A22: Draci::Script::run(Draci::GPL2Program const&, unsigned short) (script.cpp:1173) ==6690== by 0x82D4B8B: Draci::Script::runWrapper(Draci::GPL2Program const&, unsigned short, bool, bool) (script.cpp:1199) ==6690== by 0x82CE50E: Draci::Game::enterNewRoom() (game.cpp:1303) ==6690== Address 0x63b695c is not stack'd, malloc'd or (recently) free'd ==6690== ==6690== Invalid read of size 1 ==6690== at 0x82C7FA8: Draci::Font::getCharWidth(unsigned char) const (font.cpp:111) ==6690== by 0x82C85AF: Draci::Font::drawString(Draci::Surface*, Common::String const&, int, int, int, int, bool) const (font.cpp:233) ==6690== by 0x82D653B: Draci::Text::draw(Draci::Surface*, bool, int, int) const (sprite.cpp:297) ==6690== by 0x82D7629: Draci::Text::drawReScaled(Draci::Surface*, bool, Draci::Displacement const&) const (sprite.h:159) ==6690== by 0x82DAE06: Draci::Animation::drawFrame(Draci::Surface*) (animation.cpp:164) ==6690== by 0x82DBD00: Draci::AnimationManager::drawScene(Draci::Surface*) (animation.cpp:363) ==6690== by 0x82CBD23: Draci::Game::advanceAnimationsAndTestLoopExit() (game.cpp:470) ==6690== by 0x82CC478: Draci::Game::loop(Draci::LoopSubstatus, bool) (game.cpp:550) ==6690== by 0x82D3745: Draci::Script::talk(Common::Array<int> const&) (script.cpp:767) ==6690== by 0x82D4A22: Draci::Script::run(Draci::GPL2Program const&, unsigned short) (script.cpp:1173) ==6690== by 0x82D4B8B: Draci::Script::runWrapper(Draci::GPL2Program const&, unsigned short, bool, bool) (script.cpp:1199) ==6690== by 0x82CE50E: Draci::Game::enterNewRoom() (game.cpp:1303)
comment:2 by , 15 years ago
Owner: | set to |
---|
comment:4 by , 15 years ago
Resolution: | → fixed |
---|---|
Status: | new → closed |
Screenshot of Stumps Scene Corruption