[Ohrrpgce] [ohrrpgce:bugs] Ticket 2000 discussion

TeeEmCee teeemcee at users.sourceforge.net
Wed Aug 7 22:45:02 PDT 2019


Lately (last couple of years), I haven't managed to gt that Tick Tock MIDI or any other MIDI to crash and actually I think it was never reliable: I think it only happened if the window was minimised/restored at the moment that the song looped, or something like that.
But now thanks to Fx Ne I've found there are two BAM songs in Timestream Saga that cause the engine to immediately freeze 100% of the time. I've uploaded one as testfiles/GURGU.mid

I can confirm this affects both music_sdl and music_sdl2. But it didn't crash under wine, despite what I said in 2017.

Also, we have quite a few crashreports for this bug, the stacktrace looks like:
```
----- Stacktrace -----
@ modUnprepare + 0x6 
@ modMessage + 0x8 
@ midiStreamMessage + 0x11 
@ midiOutPrepareHeader + 0x14 
@ [SDL_mixer.dll + 0x151cf]
@ CSynth::PlayBuffer + 0x26 
@ CSynth::PlayBuffer + 0x1c 
@ DriverCallback + 0xd
```
or one-line summary: modUnprepare <- modMessage <- midiStreamMessage
The dlls are midimap.dll, winmm.dll, SDL_mixer.dll, wdmaud.drv.

Now, this stacktrace is interesting, because these function names are googlable. There are implementations of midimap.dll, winmm.dll in wine and ReactOS.
And I found that code for CSynth::PlayBuffer() (real dll: wdmaud.drv) is included as part of a DirectMusic sample software synthesizer implementation in the Windows DDK:
http://joyasystems.com/sample-code/Windows%20Driver%20Samples%2FDirectMusic%20Software%20Synthesizer%20Sample%2FC%2B%2B%2Fcsynth.cpp
Now this isn't the actual source code for any of those dlls, and I don't know how similar it is to the real thing, but it can give insight to what these functions are doing.



---

** [bugs:#2000] Occasional Midi crash when looping on Windows using music_sdl backend**

**Status:** open
**Milestone:** OHRRPGCE
**Created:** Tue May 13, 2014 04:48 PM UTC by Bob the Hamster
**Last Updated:** Sun Feb 19, 2017 04:59 AM UTC
**Owner:** nobody


Sometimes when a midi file loops, it causes the program to crash. This bug is most noticeable on very short midi files that loop rapidly. This only happens when using the music_sdl backend.

See also old archived bug reports:
http://rpg.hamsterrepublic.com/bugzilla/show_bug.cgi?id=797
http://rpg.hamsterrepublic.com/bugzilla/show_bug.cgi?id=976



---

Sent from sourceforge.net because ohrrpgce at lists.motherhamster.org is subscribed to https://sourceforge.net/p/ohrrpgce/bugs/

To unsubscribe from further messages, a project admin can change settings at https://sourceforge.net/p/ohrrpgce/admin/bugs/options.  Or, if this is a mailing list, you can unsubscribe from the mailing list.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.motherhamster.org/pipermail/ohrrpgce-motherhamster.org/attachments/20190808/55d7f623/attachment.html>


More information about the Ohrrpgce mailing list