When trying to play an empty XMI MIDI file (see EMPTY.XMI from attachment EMPTY.ZIP) using XMPlay MIDI plugin, XMPlay automatically strikes out the file with a single line (ie: marked unplayable). However, when trying to play the struck out file again, eventually the following dialogue box appears:
XMPLAY caused an invalid page fault in
module IN_MIDI.DLL at 018f:01b95580.
Registers:
EAX=05acd500 CS=018f EIP=01b95580 EFLGS=00210212
EBX=00000003 SS=0197 ESP=0077cb40 EBP=0077cb6c
ECX=0625e6bc DS=0197 ESI=0000000c FS=6d2f
EDX=008dab5c ES=0197 EDI=007911c4 GS=0000
Bytes at CS:EIP:
8b 01 85 c0 74 08 50 ff 15 d8 20 ba 01 59 c3 53
Stack dump:
01ba1565 007911c4 007911c8 00000003 00000000 00000388 0077c970 0077cba4 01ba19d0 01ba3060 00000000 0077cbb0 01b953fe 0625e6bc 0000000c 007911bf
After the dialogue box is closed, another one appears:
XMPLAY caused an invalid page fault in
module IN_MIDI.DLL at 018f:01b95580.
Registers:
EAX=0077c724 CS=018f EIP=01b95580 EFLGS=00210202
EBX=01ba3060 SS=0197 ESP=0077c6e0 EBP=0077c708
ECX=0625e6b0 DS=0197 ESI=00000000 FS=6d2f
EDX=bff768fa ES=0197 EDI=8191c710 GS=0000
Bytes at CS:EIP:
8b 01 85 c0 74 08 50 ff 15 d8 20 ba 01 59 c3 53
Stack dump:
01ba15da 8191c710 00000000 01ba3060 0077c6e4 0077c510 0077c724 01ba19d0 01ba3070 00000000 0077cb6c 01ba159f 0625e6b0 0000000c 007911be 01b95580
After closing error dialogue box again, the third error dialogue box appears after XMPlay windows are closed:
XMPLAY caused an invalid page fault in
module IN_TXT.DLL at 018f:01bd23ee.
Registers:
EAX=02240690 CS=018f EIP=01bd23ee EFLGS=00010206
EBX=00000001 SS=0197 ESP=0367fc30 EBP=0367fc70
ECX=7ffce00c DS=0197 ESI=01d00ef4 FS=942f
EDX=c00309fc ES=0197 EDI=00000001 GS=0000
Bytes at CS:EIP:
8b 08 50 ff 51 08 c3 e8 05 00 00 00 e9 0a 00 00
Stack dump:
01bd70e1 00000000 01bd0000 00000001 01bd7084 00000000 00000000 00000001 01bd43e4 01bd447c 01bd0000 00000000 00000001 00000000 01bd0000 819253dc
The number of times needed to trigger the error varies between XMPlay sessions without specific pattern, but XMPlay is more likely to crash if the playlist only has dead file(s). After comparing with XMI MIDI files from Buck Rogers Matrix Cubed[1], it seems the empty XMI MIDI file has 16 bytes at the beginning of the actual file header. After removing the extra contents from the beginning of the, XMPlay properly recognizes and plays the MIDI file without crashing. Even so, XMPlay should never have crashed when trying to play unplayable files.
[1]
http://www.old-games.com/download/3900/buck-rogers-matrix-cubed