260504 radioc.dat 最近の更新

2025年12月から2026年5月4日まで。

PS/55

PC98

その他

260503 インドア

Image: 260503 インドア

今シーズン、全然外出していないなと思って歩数計を見たら、休日はほとんど外を歩いていなかった。かと言って今は足が筋肉痛になってしまい、この5月の長期休みは遠くに出掛けるのは難しい。

3月はDOSのディスクフォーマットの解析とか、5550エミュレーターの修正、PDP-11のマニュアルを読み込んだりとかしていた気がする。4月はフォーマットの解析の続きとサーバーの移行、研究成果をブログに落とし込んで、後は3分の1くらいはゲームプレイだった。これはこれで自己満足してるからいいんだけど、足が戻ったら"普通の"生活に戻そうか。それまではゲームばかりやっていると思う。

260502 インクレディブル・マシーン3 [3]超上級パズル クリア

Image: 260502  インクレディブル・マシーン3 [3]超上級パズル クリア
Windows用パズルゲーム『インクレディブル・マシーン3』(Sierra On-line、サイベル、1996年)をプレイ。類似のゲームで『ころぱた』は最近プレイしていたけど、こちらは10年越しくらいの再挑戦。ゲーム自体はもう30年物ですけどね。超上級といっても、テトリスのようにテクニックや思考の速さは要求されない。ごり押しと少しのひらめきでだいたい何とかなる。
本文を読む…

『スペシャルねこまんま57号』とかいう名前から正体不明なツール

Image: 『スペシャルねこまんま57号』とかいう名前から正体不明なツール
TIM3の不具合を外部から調べるためにリソースを抽出する必要があり、久しぶりにこのツールを使った。名前を忘れていたので見つけるのが大変だった。変わった名前だというのは覚えていたけど、こんなゆるい名前だったか。私にとっては変わった名前のフリーソフトというと『カハマルカの瞳』が真っ先に出てきて、こちらを思い出せなかった。
本文を読む…

インクレディブル・マシーン3のBGM MIDIデータにあるバグを直す

Image: インクレディブル・マシーン3のBGM MIDIデータにあるバグを直す

PCゲーム『インクレディブル・マシーン3』日本語版のBGM “Picture”(クラシック音楽『展覧会の絵』のアレンジ)、“New Age”、“Detective Theme"のMIDIデータにあるバグを直す。

症状

  1. BGM “Pictures” で、ある2音がループ後に鳴り続ける場合がある。
  2. BGM “Pictures” と “New Age”、“Detective Theme” の一部のチャンネルのピッチが1オクターブ以上高くなる場合がある。

ただし、MIDIデバイスによっては再現しないことがある。

原因

いずれもゲームのMIDIデータの誤りによるもの。

  1. ノート・オフ メッセージが送られる前にループに入ってしまうため。
  2. ピッチベンドを初期化するメッセージが足りないため。

修正方法

次から差分ファイルをダウンロードしてゲームインストール先に配置し、MS-DOSプロンプト上でそこをカレントディレクトリにしてbupdate resourceを実行して下さい。パッチ対象は Resource.002(タイムスタンプ 1996/11/01 17:03:36、1,824,417 バイト)です。

tim3jpat.zip (17.8 KB)

BGM “Pictures” のバイナリー差分のみ、以下に示す。

163CB0  C1 38 00 B0 07 7F 00 B1 07 68 00 0A 33 01 FE 14
        C1 38 00 E1 00 40 00 B1 07 68 00 0A 33 01 FE 14
                 ^^ ^^ ^^

164A00  35 5B 57 5E 52 64 59 00 2E 60 60 5B B0 69 00 00
        35 5B 57 5E 52 64 59 00 2E 60 60 62 B0 69 00 00
                                         ^^

164FC0  58 00 52 61 63 5F B0 69 00 00 FF 2F 00 48 4D 49
        58 00 52 61 63 65 B0 69 00 00 FF 2F 00 48 4D 49
                       ^^

詳細

リソースファイルには標準MIDIフォーマット (.mid) のデータと、Human Machine Interface (.hmi) というMIDIフォーマットから派生した特殊なフォーマットのデータが収録されている。ゲームでは専ら後者のデータが使われている。

ファイルのヘッダーはHMI-MIDISONG061595、トラックデータのヘッダーはHMI-MIDITRACKで、トラック内のデータは標準MIDIフォーマットと似ている。大きな違いはノートオンとノートオフの2つのメッセージを長さ値にした1つのメッセージとしていることと、ループ用のメタデータを含んでいること。

例えば、BGM “Pictures” のトラック1の冒頭は次の通り。数値データは7ビットで表されることに注意する必要がある。

ΔTime -  Message (2-3 bytes)
00       B0 69 01 ?
00       C1 38    Program Change 56 (Trumpet)
00       B0 07 7F Control Change 07 (Volume) - Ch.1- 127
-> 00    E1 00 40 Pitch Wheel Change - Ch.2 - 2000H
00       B1 07 68 Control Change. 07 (Volume) - Ch.2 - 104
00          0A 33 Pan
01       FE 14 FF FF Loop start

パッチでは Ch.1 に対する音量変更メッセージ(この目的は不明)をピッチホイール変更メッセージに置き換えている。また、ループ終わりメッセージのデルタ時間を長くして、ノート・オフメッセージより後に来るように調整している。BGM “New Age” と “Detective Theme” では不要メッセージを置き換えても1バイト足りないため、ヘッダーの長さを削っている。このため、ヘッダーサイズ(オフセット0x57, 0x5B)とループ開始位置(オフセット 0xB4)などを変えた。

参考

DOSゲーム用にCPU速度を落とす方法を模索する

マザーボードの設定でCPUの倍率やベースクロックを変える

この方法はBIOS設定画面で変えられるのであればそこまで大変じゃないが、ボード上のスイッチ操作が必要となると面倒くさい。コアなゲーマーならTurboスイッチを外付けするといった改造で解決してしまうが、私には真似できそうにない。

CPUキャッシュを無効にする

これもBIOS設定画面で変えられる。例えば ASUS P2B (Award ROM PCI/ISA BIOS) の場合、BIOS FEATURES SETUP -> CPU Level 1 Cacheや CPU Level 2 CacheをDisableにすることでCPUキャッシュを無効にできる。

Image: BIOS FEATURES SETUP

キャッシュを無効にしてからNorton Utilitiesでベンチマークを測ってみると驚きの結果が。

Image: Norton Utilities SysInfo

Pentium II 400 MHzが 286 12 MHzとそれほど変わらないという結果に。あまりにも遅すぎて、80年代のDOSゲームをプレイするにはいいかもしれないが、90年代のをプレイするには性能が不足しているかもしれない。

ACPIのCPUスロットリング機能を利用する

この機能を利用するとCPU速度を1/1から1/8まで変更できる。この機能を利用したソフトウェアにCPUSPDがある。

CpuSpd - A Hardware Based CPU Speed Control Utility for DOS/Win9X Retro Gaming \ VOGONS

UltimaやLemmingsはこれを使うと速いPCでも正常に動かせるらしい。試しにCPU速度を1/4に下げてみた結果、スコアは1000からぴったり1/4の250になった。

Image: Norton Utilities SysInfo

FALCON 3.0はビデオカードの速度に依存しているようで、これを使ってCPUスロットリングを変更しても効果があるどころか、BGMやSEが正常にならなくなる不具合が発生した。やはりISAバスのビデオカードじゃないとうまく動かないか。

DOS/V日本語環境で英語DOSテキストモードのDOSアプリを動かす

Image: DOS/V日本語環境で英語DOSテキストモードのDOSアプリを動かす

DOS/Vの日本語環境はビデオメモリーの使い方が米国英語版DOSと異なるため、ビデオメモリーを直接書き換える系の海外DOSアプリケーションは日本語環境では画面が更新されず、IBM DOSならCHEV US、MS-DOSならUSコマンドで事前に英語環境へ切り替える必要がある。しかし、コンパック版MS-DOSに付属するVE386.EXE(コンパック ビデオ エンハンサ ドライバ)を使えば、この操作をせずにそのままテキストモードで動く海外DOSアプリケーションを使うことができる。コンパック版MS-DOS (MS-DOS 5.0J/V) はメモリーマネージャーにCEMMが使われているが、このVE386は普通のEMM386との組み合わせでも問題なく使えるようだ。

このツールを含むディスク『Compaq サプリメンタル プログラム』は、かつて Hewlett Packard のFTPサイトからダウンロードできたが、2026年現在は閉鎖されているようだ。10年くらい前にサルページして作成したディスクイメージ(もともとのファイルはディスクイメージ自己展開形式だった)をここに置いておく。

DOS Supplemental Programs Diskette 1.08J REV.A (358 KB)

ほとんどのDOSゲームはグラフィックモードで動くため効果がない。DOS/V発売当初は日本語に対応したユーティリティーソフトや通信ソフトが少なかったため、海外のDOSアプリを動かすためにこのツールが重宝したのかもしれない。今ではそういう用途で使う機会は少ないが、Sound Blasterなどの拡張カードに付属するドライバーユーティリティは英語環境でしか動かないものが多く、それらを使うときにこのツールが役に立つ。

CONFIG.SYSにVE386.EXEを組み込むとビデオメモリーが英語環境のテキストモードと同じアドレス B8000h でエミュレートされる。また、コマンドライン上でVE386 USを実行すると、半角フォントがコードページ437に置き換えられる。

Sound Blaster AWE64用英語版ドライバーのDIAGNOSEユーティリティーを起動したところ。画面解像度はDOS/Vのテキストモードである640×480のままで、英文フォントで違和感がない表示になっている。

Image: DIAGNOSE

日本語フォントのままでも罫線文字が文字化けするだけで、使う分には問題ない。

Image: DIAGNOSE

260428 消滅するメカニカルキーボードブランド FILCO Majestouch

Image: 260428 消滅するメカニカルキーボードブランド FILCO Majestouch

メカニカルキーボード FILCO Majestouch で知られるダイヤテックが4月22日に閉業したと発表した。

ダイヤテック突然閉業 「FILCO」ブランドの“壊れないキーボード”に定評 - ITmedia NEWS

私が15年前に初めて購入したメカニカルキーボードがMajestouchだったので名前に思い出深く感じるが、ブランドが消滅したこと自体は特に惜しく思わないな。(→後日発表された情報によれば、ブランドは台湾支社によって存続するらしい。)

FILCO Majestouch NINJAキーボードを分解する

その当時、PCゲーミングにメカニカルキーボードという発想がなくて、ロジクールやマイクロソフトはメンブレンやパンタグラフのキーボードしか売っていなかった。量販店で入手できた非メンブレンキーボードは、PFUのHHKB、東プレのRealForce、UniCompのIBM式バックスプリングキーボードと、このシリーズくらいだった。これらは四六時中キーボードを相棒とするプログラマーが使うものという認識だった。Cherry MX黒軸と茶軸に加えて赤軸のキーボードが出始めた頃だ。確か、メーカー (Cherry) が出しているスイッチのラインナップには青軸や白軸は既に存在したはずだが、それを使ったキーボードが出回っていなかった。

このシリーズのキーボードは良く言えば手頃な価格(当時の水準)でシンプル、堅実な作り、悪く言えば華やかさや面白みに欠ける。Bluetoothに対応したのはかなり後のことでで、技術革新に乏しく、マーケティングも渋かった。

そうは言っても私はMajestouch NINJAを10年くらい使っていたが、メカニカルキーボードのラインナップが豊富な今ではこれにこだわる理由もなく、2022年にEpoMakerの96%キーボードに乗り換えた。Majestouch NINJAは今でも持っているのだが、Majestouch 2シリーズ共通の欠点としてPS/2変換アダプターで使うとキーボードがスリープから復帰したときに反応しなくなるという不具合があり、使い道がなく押し入れの肥やしになっている。

今は数多のメーカーからゲーミングマウスとキーボードが出ていて、カラーやデザインを選びやすい。消費者にとっては助かる。ダイヤテックはその流れについて行けなかった。