スレッド立てました。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