# Ｃコンパイラの生成するアセンブラコードには、mlt.hは現れません。
# 掛け算は、全てmlt.wとして生成されます。
# アセンブラコード全体を見ると、合計十個のmlt.wが現れます。
# これらのmlt.wは全て、mlt.hに置き換えて高速化することが可能です。
# 以下にその理由を述べます。
#
# * new_LCDDrawObject()は五つのmlt.wが現れます。
# - 最初の一つは転送元ピクセルオフセットを計算する部分です。
#   転送元ビットマップの幅・高さは明らかに16ビットで表現できるので、
#   32×32→64ビットではなく、16×16→32ビットで充分です。
# - 残りの四つは転送先ピクセルオフセットを計算する部分です。
#   転送元と同じく、転送先サーフェイスの幅と高さも16ビットで表現できるので、
#   32×32→64ビットではなく、16×16→32ビットで充分です。
#
# * render_font()には二つのmlt.wが現れます。
# - 二つのmlt.wは、どちらも描画先ピクセルオフセットを計算する部分です。
#   new_LCDDrawObject()と同様の理由により、
#   32×32→64ビットではなく、16×16→32ビットで充分です。
#
# * mod_seq()には一つのmlt.wが現れます。
# - サンプル番号からサンプル構造体配列要素へのオフセットを計算する部分です。
#   サンプル番号・サンプル構造体サイズ共に16ビットで表現できるので、
#   32×32→64ビットではなく、16×16→32ビットで充分です。
#
# * mod_mix()には二つのmlt.wが現れます。
# - 一つ目のmlt.wは、mod_seq()の場合と同じく、
#   サンプル番号からサンプル構造体配列要素へのオフセットを計算する部分です。
#   mod_seq()と同様の理由により、
#   32×32→64ビットではなく、16×16→32ビットで充分です。
# - 二つ目のmlt.wは、サンプルデータ値×ボリューム→出力値を計算する部分です。
#   サンプルデータ値・ボリューム値共に16ビットで表現できるので、
#   32×32→64ビットではなく、16×16→32ビットで充分です。
#
# 以上の理由により、全てのmlt.wがmlt.hに置き換え可能です。
#
# * 2002/12/08追記:
#   テンポ対応によりmod_seq()にMLTが一つ増え、計十一個となりました。
#   「if(driver->tick >= driver->speed * 125)」に相当するMLTです。
#   これも、32×32→64ビットではなく、16×16→32ビットで充分です。
#
# * 2003/02/01追記:
#   可変チャネル数対応によりmod_seq()にMLTが一つ増え、計十二個となりました。
#   「row = driver->pattern[header->sequence[driver->seqno]] + (driver->chans * driver->rowno)」の中の、
#   「driver->chans * driver->rowno」に相当する部分です。
#   これも、32×32→64ビットではなく、16×16→32ビットで充分です。

s/mlt\.w/MLT.H/

