「殺意の接吻 KISS OF MURDER」の MSX2/DISK版 ですが、FM音源の検索部分にバグがあり、一部のMSX2+/turboRの本体内蔵FM音源や、拡張スロットに差したFM-PACを認識してくれません。
ディスクにパッチを当てることで、このバグを修正しよう、というページです。
10 'KISS OF MURDER FM-PATCH 20 CLEAR50,&HD000 30 FOR I=&HD000 TO &HD01F:READ A$:POKEI,VAL("&H"+A$):NEXT 40 DATA 01,F9,01,21,00,D1,11,0D,00,AF,C3,44,01,00,00,00 50 DATA 01,F9,01,21,00,D1,11,0D,00,AF,37,C3,44,01,00,00 60 CLS:DEFUSR1=&HD000:DEFUSR2=&HD010 70 PRINT"INSERT DISK AND HIT ANY KEY":A$=INPUT$(1) 80 A=USR1(0) 90 IF PEEK(&HD111)<>&H3A OR PEEK(&HD112)<>&HFF THEN PRINT"ILLEGAL DISK":END 100 FOR I=&HD119 TO &HD176:READ A$:POKEI,VAL("&H"+A$):NEXT 110 A=USR2(0) 120 PRINT"COMPLETE":END 200 'PATCH 210 DATA 16,00,1E,00,21,C1,FC,7E,E6,80,E5,26,40,B2,B3,D5 220 DATA CD,24,00,21,1C,40,11,8E,30,CD,75,30,38,29,21,18 230 DATA 40,11,8A,30,CD,75,30,30,10,21,18,40,11,86,30,CD 240 DATA 75,30,38,13,3E,01,32,F6,7F,3E,01,D1,E1,08,F1,D3 250 DATA A8,F1,32,FF,FF,08,C9,D1,E1,CB,7E,28,08,7B,C6,04 260 DATA E6,0C,5F,20,B2,14,7A,E6,03,28,E2,23,18,A9
210 DATA E6,F3,5F,16,00,21,C1,FC,7A,E6,0C,B3,D3,A8,CB,7E 220 DATA E5,28,44,3A,FF,FF,2F,E6,F3,6F,7A,07,07,E6,0C,B5 230 DATA 32,FF,FF,21,1C,40,D5,11,8E,30,CD,75,30,38,2D,21 240 DATA 18,40,E5,11,8A,30,CD,75,30,E1,30,0D,11,86,30,CD 250 DATA 75,30,38,18,3E,01,32,F6,7F,D1,E1,3E,01,08,F1,D3 260 DATA A8,F1,32,FF,FF,08,C9,14,14,14,18,C7,D1,14
もともとなぜ認識しないのかというと、このゲームのFM音源を検索するプログラムに不具合があるからです。
MSXは、0から3までの4つの基本スロットがあり、それぞれのスロットの下にはさらに0から3までの4つの拡張スロットを設けることができます。
MSX2+までの機種のスロット構成はメーカーごとに異なっており、例えばA1WXとF1XDJでは内蔵FM音源のスロットが違います。
以下の緑色の部分がFM音源のスロットなのですが、A1WXではスロット0-2に、F1XDJではスロット3-3に存在します(MSX SLOT INFORMATION VIEWER ONLINEより)
また、MSXの64KBのメモリ空間には、PAGE0(0000H-3FFFH)、PAGE1(4000H-7FFFH)、PAGE2(8000H-BFFFH)、PAGE3(C000H-FFFFH)の16KB単位で別々のスロットを割り当てることができます(こうして表に出すことでアクセスできるようになります)。
FM音源が存在するかどうかのチェックは、PAGE1(4000H-7FFFH)のスロットを切り替えながら特定の文字列を探すのですが、このスロット切り替えプログラムはとても面倒かつ危険なので、BIOSのスロット切り替えルーチンを使うことが推奨されています。
「殺意の接吻」の場合は、この切り替え部分をBIOSを使わずに自前で実装しているのですが、残念ながら不具合があります。
ざっくりいうと、「殺意の接吻」のFM音源検索ルーチンは、基本スロット3以外では、拡張スロットの切り替えが正しく行われません。
そのため、スロット0-0、スロット1-0、スロット2-0、スロット3-0,3-1,3-2,3-3にFM音源が存在する場合は大丈夫なのですが、それ以外の場所にFM音源があっても見つけることができません。
A1WX/ST/GTなどのPanasonicの2+やturboRは、スロット0-2にFM音源があるため、「殺意の接吻」ではPSGでのサウンドになってしまうのでした。