NetHack 3.6.7 で、Windows とそれ以外の OS で、英語と日本語の両方で、IBMGraphics を表示する方法についての記事です。さらに、可能だったので、UTF8Graphics も表示できるようにしてみました。
日本語の場合、フォントを複数設定できるコンソールで、適切なフォントを指定しないと、正しく表示されないかもしれません。
Windows の場合は、デフォルトで表示できるようになっているので、コマンドプロンプトの文字コードを変更する必要はありません。
3.4.3 と同じように、コンソールの文字コードを cp437 とすることで表示できます。文字コードの変更ができないコンソールの場合、UTF-8 に対応したコンソールであれば、後述のパッチを当ててビルドすることで表示できるようになります。
日本語版では、cp437 の文字を表示するコードが無効化されていますが、それを有効にすれば英語と同じように表示でき、日本語と共存できます。後述のパッチを当てるか、自分で書き換えてビルドすることで表示できます。
コンソールの文字コードを cp437 とすると、日本語が表示できなくなります。UTF-8 に対応したコンソールであれば、後述のパッチを当ててビルドすることで両方表示できるようになります。
英語版の Windows 以外で、コンソールの文字コードが UTF-8 であれば
IBMGraphics
を表示できるようになるパッチです。前述の通り、Windows の場合は元々文字コードに関係なく表示できるので、このパッチを当てる必要はありません。
英語版で、コンソールの文字コードが UTF-8 であれば
IBMGraphics
UTF8Graphics
を表示できるようになるパッチです。
cp437 の文字の内、IBMGraphics で使用していない
0x80 ~ 0x87
の範囲の文字を置換するので、それらを表示できなくなりますが、問題は無いと思います。
日本語版で、
IBMGraphics
を表示できるようになるパッチです。
Windows の場合はコンソールの文字コードは関係ありませんが、それ以外だと、UTF-8 である必要があります。
日本語版で、コンソールの文字コードが UTF-8 であれば
IBMGraphics
UTF8Graphics
を表示できるようになるパッチです。
Windows の場合はコンソールの文字コードは関係ありませんが、それ以外だと、UTF-8 である必要があります。
cp437 の文字の内、IBMGraphics で使用していない
0x80 ~ 0x87
の範囲の文字を置換するので、それらを表示できなくなりますが、問題は無いと思います。

