スレッド立てました。9月末からBCCさんとフリー互換TOWNS OS、名付けて津軽OS開発してます。主目標は3点あって、
(1) フリーソフトを実行可能な形で配布可能にする。
(2) 富士通が提供したファイルが無くても復刻版の販売を可能にする。これができたら復刻版の話も出てくるのではないか、という希望。
(3) 新たにTOWNS用アプリを開発したい人がいた場合のプラットフォームにする。
↑これです。
ソースなどは、以下のURLにあります。
https://github.com/captainys/FreeTOWNSOS
BCCさんが、いくつか当時のフリーソフトをWindowsからダブルクリックで実行できる形式にまとめて公開してくださいました。以下のURLです。
https://bcc.hatenablog.com/entry/2024/11/05/202154
BCCさんの多大な協力もあり、nabeさんにもfree386をこれに合わせて何点か修正していただき、たった2か月でここまで進むと思わなかったというレベルで進んでます。上のURLのフリーソフト以外にも確認できたフリーソフトはあり、フリーじゃなくてもすでにAfterburner 2, Galaxy Force 2も動作確認してます。問題は僕が下手でクリアまで確認できない点ですが。あ、Afterburner2だったらできそうだな。真面目にテスト (遊んでるんじゃなくてテスト) しようかな。復刻版出そう!みたいな話が出るといいんですけどね!
2024-11-05 23:07:04
面白そうなプロジェクトですね。
確かにminiを作る上でのソフトウェア的な障壁の多くが無くなるような気がしますね。
私がお手伝い出来るとすればソフトウェアのテストぐらいですが、折角なので進めようと思います。 (結果はこちらとWikiの方に記録する方向で)
ハードウェア的な物としては、ケースとプラットフォームへの移植ですが移植の方が大変かもしれませんね。
各miniは基本的にarmベースのMCU上で動いていると思いますので、良くはなったと言えPCに比べて格段に低スペックですし恐らくOS上ではなくベアメタル開発にならざるを得ないでしょうし。
とは言えネガティブな事ばかり考えていても前に進まないので、今出来る事を考えていこうと思います。
2024-11-06 09:25:50
互換OS、楽しみなプロジェクトですね。
マーティー、20F、SNで動作するかをちょこちょこ試させて頂いていますが、まだ動作には至っていません。
今日更新されましたUSEROM版では、FD読み込み直後に4行ほどのメッセージが表示され、
最後の行のJUMP TO IO.SYSまで表示されて止まります。
キーボード入力も受け付けていないようです。(コンソールレスのOSが起動していると想定して操作してみました)
T-OS V2.1L31で作った起動FDにMINVCPI.SYSとFree386をコピーして、CONFIG.SYSにDEVICE=MINIVCPI.SYSを追加してFree386からゲームの起動を試しましたがCDドライブを読む前に止まっているようでした。
2行のメッセージは表示されます。(最後にURLがあります)
2024-12-04 22:20:44
今日の互換OSを試しました。
USEROMバージョンはマーティー、SN、HCで起動途中で止まり、
互換ROMバージョン?FDIMGの方は、マーティーを除くSN、HCでA:\>まで到達しました。
互換ROMバージョンのHCでの挙動は、起動直後にA:\>の後に何故かk(小文字のk)が入力されています。
A:\>の状態でDIRコマンドは動作しますが、DIR Q:を行うとno such file or directory.と表示され、以後はDIRと入力してもno such file or directory.と表示されます。
その状態でA:\>oriconと入力してもno such..(略).です
USEROM版の各機種での表示は
マーティー
INT HANDLER READY TO GOで止まります。(USEROM版、互換ROM版どちらもこの時点で止まります)
SN
ORICONが起動してOAK/2の
Inverstigated by K.MIYAZAKI Thanks a lot.
_
で止まります。
HC
INT HANDLER READY TO GOの次の行が文字化けしていると言いますか、半行ズレたような表示で
途中にMicrosoft corp 1981-1986があるのが読み取れます。次の行に
PASSED DOSINT
が表示された所で止まります。
SNは何もメモリ予約をしていないはずで、HCはHIMEM.SYSやアプリ1,2のメモリを確保しています。
2024-12-06 20:49:18
試していただきありがとうございます! 本家ROM内のMS-DOS.SYSとCOMMAND.COMに対応するのは大変そうなので、FD_USEROM.binの方はとりあえず今のところ無視してください。
それからYAMAND.COMはまだ最低限の機能しか実装していないもので、DIRはカレントディレクトリしか表示できなくなってます。なので、Q:に移動してDIRを取らないとCDのディレクトリが見れません。
ただ、その後AドライブでORICONが実行できないのがひっかかりますね。CDドライブのディレクトリを取らずに free386 とタイプしたら、free386のロゴが出ますかね?
2024-12-06 22:21:48
ドライブを移動してDIRなのですね。了解しました。
今確認したところFDから起動してしばらくするとFDの回転が止まるのですが、その状態でDIRコマンドを実行するとno such file or directory.となりました。
FDの回転が止まった状態でORICONなどを実行しようとするとWrong commandみたいなメッセージが出ます。
FDが回転している時ならDIRコマンドや、ORICONの実行が出来ました。
Qドライブは内蔵CDドライブ内のCDが回転していてもno such file or directory.となりました。
2024-12-07 00:56:19
おおなるほど。ご確認ありがとうございます!Marty用にさらにプログレス表示を増やしたバイナリをPUSHしたので、お時間のあるときにでもよかったらお試しください。
FDのモーターは、たしか10秒ぐらい何もアクセスが無かったら止めることにしていたのですが、アクセスのたびにオンにしたはずなんですが、何かしくじってるんですね。確かに考えてみたらMXと2Fでテストしたとき起動直後しかディレクトリ見てなかったような気がする。うちのMXだと今やってみたらQドライブのDIR見ようとしたら固まりますね。やっぱり実機はいろいろ難しい。
2024-12-07 02:27:33
マーティーではREAD DIRが表示された所で止まり、FDが回転しっぱなし状態です。
FDIMG版、USEROM版どちらも同じでした。
互換OSは何気にORICONが起動しているのが凄いですね。
互換性?が高いもののTOWNS Systemsoftwareで使うにあたってcocoやFORRBIOSなどが無いと起動してくれなかったはずですし。
2024-12-07 11:41:19
ご報告ありがとうございます!
すんません、マーティー以外で起動してるのが奇跡的でした。メッセージ表示がバグってて、BX CX DXを破壊してたので、次のREADが失敗してて、ROMドライブのMSDOS.SYSにfall backしてました。バイナリ更新したので、よかったらお試しください。まだ止まるかもしれないですが、多分違うメッセージで止まると思います。よろしくお願いします。
2024-12-07 23:16:17
マーティーでは
USEROM版はREAD DIRまで
FDIMG版はDOS LOADEDまで
20Fでは
USEROM版はPASSED DOSINITまで表示されて止まります。
FDIMG版はFDの回転が停止しからDIRしても回転を開始してファイル一覧が表示されるようになりました。
Q:へ移動してDIRをすると、CDの回転が安定するまではNo such file..が表示されますが、
回転が安定してからDIRすればファイル一覧が表示されました。
Towns systemsoftwareでは回転が安定するまでリトライ、中止、無視を聞いてきます。
それとFDIMG版起動後に、kが一文字だけ入力されている点は変わらずでした。
次にFree386を使ってCDのゲーム(インディジョーンズ最後の聖戦、スーパーストリートファイター2)を起動するか試しましたところ、こちらは起動せずでした。
Q:
A:\FREE386 SSF2.EXP
このように入力して、FDからFree386を読み込み、CDをいい感じで読み込んで黒画面で止まります。
CDのアクセスランプの光り方からすると、ちゃんと読んでいるようであと一歩と言う感じでした。
2024-12-08 02:35:15
多分原因解明しました!MartyはSCSIを持ってないので、I/Oは常にFFが返ってくるはずなんですが、津軽ではSCSIありとしてあったので通過していたようです。津軽で、MartyだったらSCSI無効ということにしてみたら、同じ場所で止まりました。多分SCSI持ってる機種ではコマンド実行中以外でStatusがFFになることはありえないので、3度Statusを読んで、いずれもFFが返ってきたらSCSI持ってないと判定するようにしてみました。あと、起動中にキーバッファをクリアするようにしたので、最初のkも出ないと思います。
バイナリ更新して、SCSIが無い状態で起動することを確認したので、多分今度はMartyでも起動できるのではないかと思います。
SSF2等は、まだいろいろ対応するもの増やさないと難しいでしょうね。とりあえず、津軽上ではAfterburner2, Galaxy Force 2, New Zealand Storyの起動に成功してます。フリーソフトだとVSGP, Sky Duel, Iron Fist, VIPS, VIPS2, Panic Ball 2, Planet Attacker, Ground Attack, Tactical Air Wingは起動しましたね。実機でも確認できたのは時間の都合でこの一部ですが。
FORRBIOSの対応がまだ途中なので、それでしくじってるのが多い鴨しれません。
2024-12-08 11:17:38
USEROM版はマーティー、20Fで変わらずで、
FDIMG版はマーティーで起動しました!
ただ、Q:としてもA:\>のままでCDを見る事はできませんでした。
20FではQ:でCDを見る事ができ、Free386でギャラクシーフォース2の起動もできました。
またkも入力されなくなりました。
ギャラクシーフォース2の動作ですが、CD音がしなくて(CDはずっと回転しています)、効果音がとても小さくボリュームを最大にして普段の最小時と同じくらいでした。
効果音は殆どが欠けていまして、短い音が1音だけ鳴っている感じです。
武器発射音が1回だけ鳴ってしばらく無音で、爆発音が1つだけ鳴ってしばらく無音みたいな感じ。
武器発射音が鳴ると、次に鳴る音も武器発射音になる割合が高く、あるタイミングで爆発音がなると次も爆発音が鳴る割合が高かったです。
動作速度はキャラクターの動作が遅めで、CDから起動した場合に比べて6割くらいでしょうか。
ついにゲーム起動に到達ですね。
2024-12-08 13:43:46
早速試していただきありがとうございます!Q:に移動できないということはそもそもMSCDEXは起動していないと思われるので、MartyではMSCDEXを見つけられてないっぽいですね。USEROMの方でも起動しないということは、MSDOS.SYSも見えていないと見た方が良さそうですね。救難IPLはUXでも成功しているようだし、386SXだと386DXのUnrealモードが使えないとも思えないし、同じ上位メモリアクセスルーチンを救難IPLで使っているので、CMOSセーブ・リストアができているのであれば上位メモリアクセスできているはずでなんですね。
MSCDEXはドライブを登録しただけだとまだドライブにはアクセスしないので、CD-ROM BIOSの問題という可能性も少ない感じがします。
これはどうやってデバッグしたもんかな。止まっているものを見つけるのだとちょっとずつ範囲を狭めていけばいいんですが。あきらめてROMドライブは使わないことにして、SHSUCDXを使ってしまうという手もあるんですが、そのうちTGBIOSを上位メモリに置きたい(今はリアルメモリをがっつり使っている)ので、上位メモリアクセスはできるようにしておかないと。
C:に移動してDIRを取ったらCOMMAND.COMとかMSDOS.SYSとか見えますかね? 多分それが見えないのではないかという感じがするのですが。
2024-12-08 22:59:33
マーティーでCドライブへ移動する事は出来ましたが
C:\>DIRではNo such...と表示されてしまいます。
SNではCドライブにCOMMAND.COM、MSDOS.SYS、MSCDEXが見えました。
CドライブってBIOSではどいう扱いなのでしょうね。専用のデバイス種別があるのかな。
マーティーDOS-ROM(00E00000H)のIPL4の次にBPBと思われるデータがあって、1024バイト/セクタという印象でした。
00680000Hにある2MBのEX-ROMにもIO.SYSやMSCDEXがあって、区別のためにデバイス番号や種別指定が必須になったなどがあるのかななど妄想しています。
全くの未調査なので見当違いの可能性大ですが・・・。
2024-12-09 11:20:26
予想通りですね。MartyのOSROM領域が読めてないようです。本家IO.SYSでは未公開デバイスコードが割り当てられていて、512バイト/セクタのドライブとして認識することになってます。デバイスコードはたしか自分のメモによると、40Hだったと思ったので、津軽OSでも同じデバイスコードを割り当ててます。そういやUNZで起動するか試してみようと思ってMartyモードで起動してみたんですが、普通に起動してしまいますね。
あっ、と思ったら救難IPLで使ってるRDHIGHと津軽OSで使ってるRDHIGHが微妙に違うし。同じ奴使ってると思ってた。うーん、厳密に言うとUnreal Modeでもないんだよな。プロテクテドモードに移行して、DSだけ更新してるという半端なモードになってるから、ここ、まじめに書き直すか。
うーん、あ、そうだ。救難IPLで起動できるんですよね?青森県地図の左にある MACHINE ID: っていうところは 4A03 になってるか確認していただけますか?
よろしくお願いします。
2024-12-09 12:15:41
マーティーでは4A03が表示されています。
デバイスコード40Hですか。
ありがとうございます。
改定4版の赤本がほしい。
2024-12-09 13:55:00
ご確認ありがとうございます!
上位メモリアクセスは、救難IPLと同じコードを使ってるはずだから、メモリカードへのCMOSのバックアップ・リストアができるのに、なぜOSROMが見えないんだろう?と、思ったら違うコード使ってました。救難IPLは割と素直な(?)Unreal Modeを使っていて、転送はリアルモードに戻ってからなのですが、津軽OSの方はプロテクテドモードに移行した後だけどCSは切り替える前という半端な状態で転送していたので、まじめにプロテクテドモードのCSに切り替えてから転送してリアルモードに戻るように(本来のプロテクテドモードの使い方)に変更してみました。果たしてこれが386SXと386DXの微妙な違いを踏んでしまっていたのかは不明なのですが、たしかにCPU本来の使われ方とは違う使い方をしていたので、これが悪かった鴨しれません。バイナリ更新したので、一応MXでは起動とMSCDEXインストールが成功することを確認したのですが、よかったらお時間のあるときにでもお試しください。
2024-12-09 22:22:44
お疲れ様です。
SNとマーティーで試しましたが状況変わらずでした。
マーティーではC:\>の状態でDIRしてもNo such file or Directoryと表示されます。
マーティーのOSROMにあるBPBらしき部分にはセクタサイズ0400h、セクタ数04D0hとフロッピーみたいな数値があるのですが、実際には参照されず512バイト/セクタ(0200h)決め打ちのみなのかな。
2024-12-10 01:28:58
おおなるほど!なんかわかった気がする。今度のバイナリではどうですかね? Martyだと物理E00000Hには何もないのではないかという気がする。
2024-12-10 07:27:00
マーティーでQドライブ、Cドライブが見えました!
CドライブでDIRコマンド実行するとEX-ROMのファイルが表示されました。
ギャラクシーフォース2の起動はしませんでした。
白っぽい画面になった後、Q:\>に戻ってきます。
> 物理E00000Hには何もないのではないかという気がする。
これビンゴかもです。まさかこんなことが。
DOS6.2+HIMEM.SYSのデバッガで調べたところ、E00000hには何もなく、
600000hにOSROMが680000hにEXROMが見えました。
2024-12-10 19:28:50
ギャラクシーフォース2の件はメモリが足りない可能性を考えて、6MBから2MBに減らした20Fで試したところ同様に起動しませんでした。
1MBで動作可能なターボアウトランでしたらマーティーと20F(2MB)で動作しまして、
1MBで動作するはずのアフターバーナーはどちらも動作しませんでした。
20Fと同等の動作をするようになったのではないでしょうか。
それとCDを入れ替えてDIRすると入れ替え前のファイル一覧が表示されました。
2024-12-10 20:19:46
テストしていただきありがとうございます!なんと。OSROMが600000Hにあったとは。
ということは、Galaxy Force, Turbo Outrunは成功、AfterburnerIIが失敗ですね。AfterburnerIIがしくじるの意外だなあ。TOWNSの最初のゲームだから割と素直な書き方しかしてないはずなのに。CDの入れ替えはまだ検出出来てなかったですか。
なお、音がものすごく小さい原因は特定できたので、次回バイナリ更新で直ります。
2024-12-10 22:15:31
なお、Afterburner2ですが、もう少し詳しい状況を教えていただけますか?まったく動作しませんか?あるいは、クラッシュしてORICONに戻りますか?MXだと外付けSCSICDからですが、音が変な意外動いてしまったもんで。内蔵CD BIOSの問題かなあ。
2024-12-11 02:29:55
Q:
Q:\>A:\FREE386 AB2
で実行して、CDが読み込まれ
解像度切り替えの動作のような動作があり、一瞬真ん中に大きい文字らしきものが見えた瞬間にORICONに戻ってきます。
メモリを6MBにした20Fでも確認しました。
FDIMG版はSCSICDも使えるのですか?
メモリを6MBにした20Fのみでの確認ですが、
アフターバーナー3はプレー可能で
ラストサバイバーは起動せずでした。
2024-12-11 09:38:44
了解しました!ありがとうございます!スマホで動画撮って最後に出てる文字を特定するとかってちょっと手間ですかね? 一瞬で消えるものを特定するときは最近動画撮ってコマ送り再生する手を使うんですが。ただ、ORICONに戻ってきているということは、貴重な情報ですね。最後に何が起きたのか偽VCPIドライバでいろいろ調べられそうなので、考えてみます。
SCSI CDリダイレクションを使うには、起動してから、
ECHO E > TOWNS_CD
とすると、SCSIリダイレクションが有効になります。また、
ECHO 3 > TOWNS_CD
のようにするとSCSI ID指定でリダイレクションが有効になり、
ECHO e > TOWNS_CD
だと、SCSI IDを0版から昇り順にスキャンしてCDドライブを探します。(大文字だと6番から下り順)
ECHO D > TOWNS_CD
でリダイレクションを解除します。なお、大文字・小文字は区別します。
なお、CDイメージをCD-Rに焼いて、CD-Rから起動した場合は (CD-IPLなのにSCSIから起動したと言われた場合は) 自動的にリダイレクションを有効にします。
アフターバーナーは本棚のどこかに原本ディスクがあったので、内蔵CDから起動した場合同じことが起こるかMXでも試してみます。うちのMXはまだプレスしたCDであれば読めるので。しかし、MXが登場した1993年でもまだCD-Rがこんなに簡単に手に入るようになるとは誰も思ってなかったので、もともとレーザーがそんなに強くなかったのかもしれませんね。一応、ソフトバンクからいただいた仕事 (FM TOWNSシステムセットアップガイド) でTowns OS V2.1 L51のプロトタイプをCD-Rでいただいたので、MXがそれを読めたことは間違いないのですが。とっときゃよかったけど渡米のどさくさで行方不明になっちゃった。
2024-12-11 22:51:28
実機で内蔵CDを使った場合のクラッシュ、こちらでも確認できました!なんとなく想像がつくので、確認してみます。
効果音は、結構鳴るようになってきたのですが、まだ出ないときがある、という感じで、まだ原因究明中です。どうも雰囲気的にPCMの反応速度の問題っぽいです。
2024-12-11 23:20:55
MXでも同様でしたか。
お疲れ様です。
PCMは普通にCDからゲームをするだけでも白TOWNSだけ正常に鳴らない事があった気がします。
一応こちらでの結果も書きますね。
マーティーでは
iLLEGAL
の文字が左から順番に?表示されているようで、画面下よりに白と灰色の点と言いますかモールス信号のような並びが2行分くらい表示されています。
その後、Q:\>が表示され、画面最下段あたりに16ドット分くらいの白い横線が複数表示されています。
20Fではマーティーとほぼ同様で、異なる部分はiLLEGALの下は真っ暗な所です。
ただ、モニターが解像度変更についていけていなくて見えていないだけの可能性はあります。
どちらもiLLEGALのフォントはゲーム内で使用されている物と同じかもしれません。
HCではiLLEGALの文字は見えず、紫や緑などカラフルなモールス信号のような点が画面真ん中あたりに2行分くらい表示されたあと、
エラーメッセージが表示されました。
CPU Expection INT 0dh - General Protection Exception
Err = 0000_3795 CS:EIP = 0110:0000_4525 SS:EP = 0014:0000a_32b4
DS = 0014 ES = 0014 FS = 0118 GS = 0000 C0 P1 Z0 S0 O0 D0 I1
EAX = 0009_7f94 EBX = 000a_3320 ECX = 0000_0120 EDX = 0001_e882
ESI = 000a_3324 EDI = 0009_01e0 EBP = 000a_3328 FLG = 0001_7206
CR0 = 8000_0031 CR2 = 0000_0000 CR3 = 0005_8000
HC+SCSICDでは起動しました。
CD音はミュージックモードで鳴っていない印象です。(ゲームプレーするのを忘れていました)
>FM TOWNSシステムセットアップガイド
取り出してみたら確かに山川機長さんのお名前が。
Windows3.1時代のCD-Rなんて珍しいですね。
私もMAやFresh EでCD-Rを試して、読み取りがあまりよくなく、起動しないとか映像と音がズレることもしばしありました。
よく光を反射しそうな見た目のCD-Rを選んでいたのですが。
2024-12-12 01:25:51
おおなるほど!ありがとうございます!
原因は特定できました!津軽BIOSが、なぜかCD Type 1を返していて、本来は3を返すべきところなんですね。そのチェックにひっかかってました。しかし、HCが厄介ですね。GS=0がどこから出たものか。CS:EIP=110:4525は、MOV AL,GS:[EAX]ということをやっていて、単色のPUTです。Pentiumはいろいろ違うんですね。追って解明したいと思いますが、まずはRead TOCをなんとかします。
2024-12-12 08:35:44
おかげさまで、原因は解明できたようです!実機MXの内蔵ドライブでAfterburner 2の起動に成功しました!今バイナリを更新したので、このバイナリだと実行できると思います。
CDの入れ替え検出に失敗するのと、HCでクラッシュするのが気になりますが、HCは必ず同じ個所でクラッシュしますか? (ORICONの表示の CS:EIP=0110:0000_4525)。しかし、内蔵CDが健在なHCが残ってるのが奇跡的ですね。
2024-12-12 10:04:02
CD入れ替え検出問題、多分解明しました。自分のメモでは、CDのステータス 00 08 00 00 がディスク入れ替え検出だったと思ったんですが、実機でテストしたところ、21 08 00 00 がディスク入れ替え検出だったようです。
というか、実験したところ、21 08 00 00 は、最後のTOC Read (CDC Command 25H)以後ディスク入れ替えがあった、と解釈すると正しいようで、入れ替えチェックに引っかかったら必ず一度TOC Readするようにしたら、うちのMXでは安定して入れ替えを検出するようになりました。
あと、外付けCDですが、音楽演奏まだ対応してないもんで、そのうち演奏できるようになる予定です。
2024-12-12 15:14:35
> HCは必ず同じ個所でクラッシュしますか? (ORICONの表示の CS:EIP=0110:0000_4525)
前バージョンのFDIMGで再度試したところエラーメッセージは表示されず、20F同様の止まり方をしました。
新しいFDIMGではHCでアフターバーナーが動作しました。
CDの音楽が演奏されていますし、効果音も多分全て鳴っていてボリュームも正常です。
20Fとマーティーでも動作しましたが、CDから音は出ていません。
効果音は欠けぎみですがボリュームは正常です。
スーパーストリートファイター2が20Fで動作するようになりました。
CDから音は出ていません。
ラストサバイバー、インディジョーンズ最後の聖戦は変わらず起動せず。
ワーズワースは次のエラーが出ました。
CPU Expection INT 01h - Debug Exception
Err = 0000_3795 CS:EIP = 0110:0000_d16d SS:EP = 0014:0001_fef4
DS = 0014 ES = 0014 FS = 0110 GS = 0118 C0 P0 Z1 S1 O1 D1 I1
EAX = 7f3f_7f3f EBX = 0000_002f ECX = 0000_0118 EDX = 0000_04d2
ESI = 7f3f_7f3f EDI = 0000_04d2 EBP = 0001_ff44 FLG = 0000_7fc2
CR0 = ffff_ffe1 CR2 = 0000_0000 CR3 = 0005_d000
> 21 08 00 00 は、最後のTOC Read (CDC Command 25H)以後ディスク入れ替えがあった、
CDC周辺のコマンドやステータスって未公開情報ですよね。
解析にかかる労力がすごそう。
2024-12-12 23:35:09
実験していただきありがとうございます!ひょっとするとHCのクラッシュはORICONの書き込みタイミングとなにか関係があるかもしれませんね。Iron Fistとか、ORICONから起動すると、タイミングが悪いとスプライトを登録するタイミングでORICONが画面を書いてしまって、パターンが崩れるという現象が起きます。なお、iLLEGAL というメッセージが出た場合は、プログラム的には正常終了しています。
HCで効果音がすべて鳴っているというのは意外な現象ですね。書き込みが速すぎる可能性を考慮してディレイを入れたり、先ほどは本家TBIOSとレジスタ書き込み順を揃えるなどしたのですがやや改善したような気がするものの爆発音とか鳴らないんですよね。どうも調べたところ、SND_Key_OffとSND_Key_Onを両方使っているようで、また、エンベロープがかかっているようなので、ひょっとするとKey_On直後にエンベロープで音量がゼロになってしまうという現象が起きているのではないかという仮説で調査中です。CD-ROMはMXでは普通に音が出るんですが、20Fで音が鳴らないということは多分2Fでも鳴らなさそうなので、確認してみます。
2024-12-13 05:21:45
CDDAなのですが、以下のディレクトリにCDDAPLAY.COM なる実験プログラムを書いたのですが、
https://github.com/captainys/FreeTOWNSOS/tree/master/tests/diskbios
Martyや20Fで、津軽BIOSで起動して、
CDDAPLAY 2
みたいにトラック番号を指定して実行したとき、CDDA流れますかね? 演奏が始まらない場合、CDは回り続けますかね? それとも少ししたら止まってしまいますかね?
もしもお時間がありましたら、試していただけると非常に助かります。よろしくお願いします。
2024-12-14 02:31:17
マーティーでテストしましたがCDDAは流れてきませんでした。
アフターバーナーのCDを入れてCDDAPLAYを実行するとトラック一覧が表示され、
CDDAPLAY 1を実行するとAH=02 CX=ff01のエラーが発生しA:\>に戻ります。
CDDAPLAY 3を実行するとCDドライブのシーク音がしてA:\>に戻ります。
CDは回転し続けています。
マーティーはスピーカーを内蔵していなくて、モニター側のスピーカーを使用しています。
アフターバーナーなどを起動させてCDDAの音が聞こえなくても、音を流しているような動作(CDが回転している)はしています。
それとCDDAPLAY実行後、CDを入れ替えてCDDAPALYを実行するとエラー(AH=80 CX=0001)が出ますが、
一旦DIRコマンドを実行するとエラーが出ず実行できました。
20Fは夜か明日に確認できます。
2024-12-14 11:39:34
非常に興味深いことがわかりまして、実機MXは、CDDA Playコマンドを送ったらそのままCDDA再生を開始するのですが、実機2Fでは、CDDA Playコマンドを送って、ステータスバイトを読むまで再生を開始しないようです。我がCD-ROM BIOSが、ステータスバイトを正しく読んでいなかった影響で再生が始まらなかったようです。
あと、CDDAPLAYコマンドで音が鳴らなかったのは、全MUTEでElectric Volumeが0になったままだった影響もあったようです。
おそらくMartyやSHでCDDAがかからなかったのは同じ原因だと思うので、多分先ほどPUSHしたバイナリでCDDA再生するようになるのではないかと思います。
あと、もうひとつわかったのは、実機MXはCDDAを再生中はTOCを読めないようなのですが、実機2FだとCDDA再生中もTOCを読むことができました。
こういう差異はやってみないとわからないもんですね。
しかし、PCMがときどき流れない原因はいまだ解明できません。弾が出るのと同じタイミングでKey_Onしているので、弾が出た回数と同じ回数だけ機銃音を鳴らしているはずなのですが。ときどきFire!とか爆発音とか鳴らないですよね。
2024-12-14 14:04:03
マーティー、20FでアフターバーナーのCDDAが流れました。
音量もCDから起動した時と同じです。
いい感じで動作しています。
> 実機2Fでは、CDDA Playコマンドを送って、ステータスバイトを読むまで再生を開始しないようです。
2FでCDDAPLAYを実行するとCDが回転しないとか、回転が途中で止まる状況になるのですか?
MXでのPCM欠けはCDから起動した場合と比べても多いですか?
こちらもFresh-Eあたりをメンテナンスしてテスト環境に加えられるようにしてみますね。
20FではPCM欠けは無さそうで、マーティーでは最後まで鳴っていないPCMが少しある印象でしたが、
CDから起動した場合も同じように僅かに欠けていました。
むしろCDから起動した方が欠けが多いような気がします。
2024-12-15 09:47:45
HCの互換モードでアフターバーナーをCDから起動した場合、ゲームプレー中にPCM欠けがかなり発生しました。
またSOUNDテストで色々な音を鳴らしまくると音がおかしくなったり鳴らなくなります。
マーティーでもSOUNDテストで色々音を鳴らすと音がおかしくなります。(音が鳴らなくなることはありません)
消音させれば正常に戻ります。
FDIMGからアフターバーナーを起動した場合は
HC(互換モード)、20F、マーティーでPCM欠けは発生しませんでした。
SOUNDテストではFLiGHT(ミサイルが飛んでいく音)を鳴らすと音が流れる時間が短いです。
CDから起動した場合は4秒くらいですが、FDIMG経由でスト2秒弱くらいです。
2024-12-15 14:37:35
ご報告ありがとうございます!ということは、実はHCの互換モードでは津軽BIOSを使わなくてもPCM欠けが発生するんですね? ということはTGBIOSだけの問題でもないのかな。
なお、MXだと普通にCDから起動した場合(Afterburner2についてくるTBIOSを使った場合)はPCMは欠けないですが、ただFASTモードでテストしてました。
音が流れる時間が短いとすれば多分エンベロープのタイミングが間違ってるんですね。例えばRRが64だったとき、どのぐらいの時間をかけて音を減衰させればいいのか、これがわかってないもんで。これは本家が出してくる波形といずれ比べて調整しようと思ってます。
2024-12-17 02:06:53
> 実はHCの互換モードでは津軽BIOSを使わなくてもPCM欠けが発生するんですね?
はい。
FASTモードでも確認したところ、こちらは殆どPCMが出ない状態になります。
それとメニュー画面のカーソルの動きが速すぎてSOUND TESTが選べませんでした。
少し前に互換モードのみで確認していたのですが、HCにHAのCPUボードを乗せて、DX2の66MHz、PentiumODP 83MHz、ODPのクーラーを外して33MHzとしてもPCM欠けが発生していました。
(PentiumODPのクーラーを外すと2.5倍動作だったのが等倍動作になります)
MXだとFASTモードでもPCM欠けが発生しないのですね。
PCM欠けが発生しないラインはHR以前のモデルだと思っていましたので、MAかMXをメインにしたくなってきました。
白色TOWNS(どのモデルで確認したのか覚えていません)で多くのゲームでPCM欠け発生していまして、古いゲームをFASTモードで遊びたい場合はHRを使っていた記憶があります。
2024-12-18 20:27:16
そうですねえ、救難IPLを使ってSCSI-CDから起動したときはとくにPCM欠けは無かったような。ただ、速くて欠けが発生するということは、やっぱりRF5C68が高速アクセスに耐えられないということなんでしょうか。かと思えばIronFistの効果音はすべて出てるっぽいし。
2024-12-20 02:54:22
MF(486SX 33MHz)で試したところ互換モードでPCM欠けは発生せず、FASTモードではよく聞けば稀にFIREの最後らへんが欠ける感じですが全然気にならないレベルでした。
アーバンのCPUボードが見つかればDX4で試せたのですがまだ見つかっていません。
HA(HC)ではCPUを486DX 33MHzに変えてもPCM欠けは発生し、Pentiumの時と状況は変わらずです。
HCのマザーボードが不調なのか、他のHCでも同様なのか気になってきました。
2024-12-20 22:36:07
MFにAMDのDX4 100MHz(キャッシュは8KB)を乗せたところ、PCM欠けが目立つようになりました。
RF5C68が高速アクセスに耐えられないのはありそうですね。
ただ、私のHC(FAST、互換モード両方)の時ほど破綻はしていませんので、PCM欠けは私のHCが不調である可能性など複数の要因が絡んでいそうです。
テストした全機種共通の症状として
SOUNDTESTで
HELiCOPTERでAボタンを一回押すとヘリの音がずっとなり続けますので、その状態で2秒程度以内に
FLiGHT を2回
EXPLOSiON を2回
VULCAN を1回
鳴らして、最後にFiREを1回押すとヘリの音がおかしくなります。
MARTYですとVALCANを押す前におかしくなっています。
この順番に限らず、音をたくさん鳴らし続けるとこの症状が発生します。
この症状が発生している時、EXPLOSiONなど複数の音を鳴らしている間だけヘリお音が正常に戻り、爆発音などが停止すると正常ではないヘリの音に戻ります。
TOSV2.1に変えたら問題が発生しなくなる可能性あるのかな。
2024-12-23 10:51:31
SystemSoftware V2.1 L31からアフターバーナーを起動しても状況変わらずでした。
実機での違いに興味を持ってしまいテストしましたが、すっかり互換OSのテーマから離れてしまいましたね。
2024-12-25 12:16:45
そうそう。SND_key_onに注目して色々調べてきたんですが、何か別の理由のような。
とりあえずプレイアブルではあるようなので、これは引き続き調べるとして 今RAM Diskを使えるようにしてCDから起動したらfree386をRAM Diskに置くようにしたいと思ってるんですがね。
2024-12-27 12:30:15
そうそう。SND_key_onに注目して色々調べてきたんですが、何か別の理由のような。
とりあえずプレイアブルではあるようなので、これは引き続き調べるとして 今RAM Diskを使えるようにしてCDから起動したらfree386をRAM Diskに置くようにしたいと思ってるんですがね。
2024-12-27 12:30:15