Opened 13 years ago

Closed 13 years ago

Last modified 5 years ago

#9263 closed patch

SCI: Fix for incorrect MT-32 sysex checksum calculation

Reported by: SF/sven3000 Owned by: waltervn
Priority: normal Component: Engine: SCI
Version: Keywords:
Cc: Game:

Description

In order to calculate the checksum of an MT-32 sysex, ScummVM uses the calculation 128 - chk % 128 (where chk is the sum of the value of the bytes in the message). This calculation is essentially correct, except that if the result is 128 (chk % 128 == 0), the checksum should be 0, not 128.

This problem can be observed with Conquests of the Longbow: while this game is sending the sysex data from the patch.001 resource, the MT-32 displays an "Exc. checksum error" message.

The attached patch fixes the checksum calculation to account for this situation, and has been verified to fix the checksum error encountered in Conquests of the Longbow.

ScummVM version: svn54465 OS: Win7 x64

Ticket imported from: #3118257. Ticket imported from: patches/1368.

Attachments (1)

mt32_checksum.patch (523 bytes ) - added by SF/sven3000 13 years ago.
Patch that fixes checsum calculation.

Download all attachments as: .zip

Change History (4)

by SF/sven3000, 13 years ago

Attachment: mt32_checksum.patch added

Patch that fixes checsum calculation.

comment:1 by bluegr, 13 years ago

A modified patch has been applied in r54471 by waltervn. Thanks!

comment:2 by bluegr, 13 years ago

Owner: set to waltervn
Status: newclosed

comment:3 by digitall, 5 years ago

Component: Engine: SCI
Note: See TracTickets for help on using tickets.