http://bugs.winehq.org/show_bug.cgi?id=58313
Bug ID: 58313 Summary: Reader Rabbit Kindergarten randomly crashes Product: Wine Version: 10.9 Hardware: x86 OS: Linux Status: NEW Severity: normal Priority: P2 Component: -unknown Assignee: wine-bugs@winehq.org Reporter: alexhenrie24@gmail.com Distribution: ---
Created attachment 78670 --> http://bugs.winehq.org/attachment.cgi?id=78670 Backtrace
Steps to reproduce:
1. Mount "RR Kindergarten.iso"
2. Run `wine 'D:\Setup.exe'`
3. Run `WINEDEBUG=+relay wine 'C:\Program Files (x86)\The Learning Company\Reader Rabbit Kindergarten\rrk32.exe' 2>&1 | tail`
4. Enter and leave areas of the game repeatedly. For example, I tested by clicking "Dinner Lineup", repairing the stairs, talking to the French raccoon chef, going back to the main area, then going back to the raccoon chef over and over.
WINEDEBUG=+relay is not strictly necessary to reproduce the crash, but it makes it happen much more frequently provided that the output is piped to a program or to a file other than /dev/null.
A backtrace is attached. It shows an exception in mfc42.dll.
$ sha256sum Reader-Rabbit-s-Kindergarten_Win_EN_ISO-Version.zip 2e7a5d3e3ec7d2afc08b21d9cecca5632c6ba494671fa1b70186e9567ec882ed
$ sha256sum 'RR Kindergarten.iso' b6ab5770a058f16f1a30c3a4e7cde8255c083190cbee4715880fcf4e8842bb91
https://d2.myabandonware.com/t/3a78bf1b-d002-4991-bcb1-781ec6530524/Reader-R...
http://bugs.winehq.org/show_bug.cgi?id=58313
Alex Henrie alexhenrie24@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords| |download URL| |https://d2.myabandonware.co | |m/t/3a78bf1b-d002-4991-bcb1 | |-781ec6530524/Reader-Rabbit | |-s-Kindergarten_Win_EN_ISO- | |Version.zip
http://bugs.winehq.org/show_bug.cgi?id=58313
--- Comment #1 from Alex Henrie alexhenrie24@gmail.com --- Created attachment 78671 --> http://bugs.winehq.org/attachment.cgi?id=78671 winmm hack for Reader Rabbit Kindergarten
The attached hack prevents the game from crashing. It adds a 2-second delay to TIME_MMSysTimeCallback in winmm.dll. The 2-second delay also causes the characters to speak for an extra 2 seconds, repeating in the last 2 seconds of audio the first 2 seconds of whatever phrase they were speaking.
The 2-second delay has to be after the timer callback is called. Adding a delay before the callback is called does not prevent a crash. That makes me think that there is a use-after-free bug either in the game or in MFC. If it's a bug in the game itself, there's not much that we can do. If it's a bug in MFC, we might be able to fix it when Wine gets its own MFC implementation (Bug 657).