Rémi Bernon (@rbernon) commented about dlls/dmusic/instrument.c:
+ { + CONNECTION *conn = &articulation->connections[articulation->list.cConnections]; + USHORT dst = gen_to_conn_dst[oper]; + + if (dst == CONN_DST_NONE || dst == CONN_DST_GAIN) + continue; + + conn->usSource = gen_to_conn_src[oper]; + conn->usDestination = dst; + + if (oper == SF_GEN_SUSTAIN_MOD_ENV || oper == SF_GEN_SUSTAIN_VOL_ENV) + conn->lScale = (1000 - (SHORT)generators->amount[oper].value) * 65536; + else if ((SHORT)generators->amount[oper].value == -32768) + conn->lScale = 0x80000000; + else + conn->lScale = (SHORT)generators->amount[oper].value * 65536; `-32768 * 65536 = 0x80000000`, why the special case?
-- https://gitlab.winehq.org/wine/wine/-/merge_requests/9607#note_123915