FMTownsのアプリケーションの動作報告用
2020-07-28 13:17:50
Samurai Spirits津軽で試した人いますか?普通に起動するじゃん、と思っていたら、途中から画面が崩れて、ざっと調べたところSPENが頻繁にOn/Offしていて、SPENの動作を追ったらVSYNC割り込み内でOn、割り込み終了後どこかのタイミングでOffという怪しい動きをしていて、現在ここで調査が止まってますが、スプライトが何枚描画されたところで止まったのか計算して正確に再現しないとだめか、、、、という予感がしてるんですが。(ひょっとすると画面クリアまでやらせてるだけ鴨しれない)
2024-08-08 23:44:35
SPEN=1でVSYNCを迎えてビジー(スプライト描画中)になれば、途中でSPEN=0にしても指定個数を全て描き終えるまではビジーです
もしDP(スプライト停止時の表示ページの切り替え)も変更しているならなかなか厄介ですが、どんな具合でしょうか…
2024-08-09 04:57:10
pinさん、いつもヒントをありがとうございます!
原因は、Samurai SpiritsはSPENを0にするとき、一緒に表示枚数をコントロールするIND9-0をクリアしていたのが原因でした。津軽は実機のようにインクリメンタルにスプライトを描画せずに、一気に描画してしまうので、描画タイミング(Sprite BUSY->READYに切り替わる、またはSprite BUSYの状態でSPENをゼロにする)でIND9-0がゼロだと1024枚描画してしまっていたのですが、本来はスプライトBUSYになったタイミングでのIND9-0の値が表示枚数をコントロールするので、差が発生していました。そこで、IND9-0をSpriteがBUSYになるタイミングでキャプチャするように変更して問題解決しました。最新版ソースだとSamurai Spiritsも正常動作すると思います。
2024-08-09 10:49:39
最新ソースを試したところ、サムライスピリッツのオープニングで花びらが画面上に残り続ける問題は修正されたようですが、今度はデスブレイドでキャラクターがチラついて表示される不具合が発生してしまっているようです。
2024-08-10 01:58:30
https://www.youtube.com/watch?v=FrX65IFsOos&t=256s
同チャンネルの近い時期の投稿に実機のメンテ動画があるので、おそらくこれも実機で動かしてのレビューですが
"first of all, the character sprites flicker quite a lot." とのことですので、
ある程度のチラつきは実機通りではないでしょうか。(あるいは津軽のそれはプレイに支障をきたすレベルのチラつきでしょうか?)
2024-08-10 03:53:25
>pinさん
支障とまでは言えないですが、その動画よりチラついている印象です。動画中のキャラと同一にしても常時体上部に欠けるスプライトがある。ただ前バージョンはチラつきしなさすぎたのでこっちのほうが実機に近いかもしれません(普通に表示されていたというのは記憶違いだったか)。
2024-08-10 09:02:45
うーん、Death Bladeは難しいですね。見たところ、 VSYNC待ち→なんかちょっと処理→スプライト枚数設定 とやっているようなので、ばっちりSprite Busyなタイミングで枚数設定をしてますね。多分スプライト表示枚数の設定(IND9-0)は画面消去中に間に合えば良いのかもしれません。ときどきチラつくのはおそらくときどき間に合ってないからで。という仮説のもと、スプライト画面消去完了のタイミングで表示枚数をキャプチャするように変更してみたのですが、そうすると今度はSamurai Spiritsがまた壊れました。とりあえず、ちらつきを防止するには、スプライト終了のタイミングでIND9-0を再キャプチャすればいいので、そのような修正を入れたのをPUSHしましたが、Death Bladeを実機に忠実にチラつかせるのは難しいようです。
2024-08-11 21:35:38
素晴らしいアプリケーションを作成して頂き、ありがとうございます。
ROM dirに漢字があるとSTARTさせた時にアプリケーションがクラッシュします。パスを英数字だけにすると落ちないので解決策はありますが、何かのタイミングで修正して頂けると幸いです。
2024-09-03 16:26:57
山川機長さん
>まだ原本ディスクが生きていればFM TOWNS実機でFDDUMP~
→だいぶ長く(約1年)かかってしまいましたが、やっと原本ディスクを回収できました。
早速実機でFDDUMPを試したところ、FDDUMP自体が正常に動作せずイメージ化できませんでした。
症状としてはFDDUMPのコマンドを叩いたあと、FDランプ点きっぱなしでそのまま先に進まない。というものです。
ハードウェアとしては実機のモデルMFにSCSIのMOを接続し、そこを出力先に指定しています。
FDはノンプロテクトの適当なブランクディスクで、DOS単独起動とT-MENUのコンソールの両方で試しましたがどちらも同じ結果でした。
パラメータはあっていると思うので、FDDがハードウェア的に逝ってしまっている可能性もあり、まずはクリーニングしてみます。
2024-10-06 23:55:03
雑談スレッドでハードウェア解析や考察が話題となっていますが、個人的に別途スレッドを立てた方がよいと思ったので立てました。
強制はしませんが、今後のハードウェア解析や考察についてはこちらのスレッドで話題にしていただけると助かります。
2020-09-24 09:40:33
https://www.samba.org/samba/history/samba-4.11.0.html
Samba 4.11からLan Managerの認証は使えなくなったようです。
2024-06-11 21:14:20
実際にRaspberry Pi のSamba 4.13でLAN Manger認証を有効にしてテストしてみましたが認証エラーで接続できませんでした。古いFreeBSDサーバに入れているSamba 3.6.13であれば接続・ドライブレター割当・ファイルの読み書きに成功しました。ただし、日本語ファイル名は文字化けします(TOWNSでファイル名を日本語にリネームしてDIRで確認すると文字化けしますが、Windows11から見るとちゃんと日本語でした)。
設定にあたり、以下のサイトを参考にしました。
SAMBAの設定: https://askubuntu.com/questions/1213759/allow-smb-1-with-lanman-authentication-with-samba
LAN Managerのコマンド: http://hp.vector.co.jp/authors/VA007890/dos/sd/winnet.html
あと、DOS側でLANMAN.INIのdomain=の内容を、SAMBA側のsmb.confで設定するワークグループ名にしておく必要があるようです。
2024-06-13 21:46:28
FM TOWNS/FMV TOWNSのLAN関連ツール等を作成・移植しましたのでお知らせします。
・FMV-181/182/183/184設定ツール
https://github.com/mcDomDom/fmv18xct
入手困難なFMV-18Xの設定ソフト FJN0ISET.exeの代用品です。
・FMV-18X/NE2000/FM50L186用パケットドライバ
https://github.com/mcDomDom/PDFM
EtherDFSやTowns TCP/IPで使用可能なTOWNS OS上で動作するパケットドライバです。
FMV TOWNSのTOWNSモードではFMV-181/182/183/184しか使えない、と思っていましたが、
ISAのNE2000互換カードも使えました。
・TownsOS(MS-DOS3.1)対応版EtherDFS-3
https://github.com/mcDomDom/etherdfs-3-client
以前移植したEtherDFSはMS-DOS 5.0以降でしか動作しませんでしたが、
TOWNS OS(MS-DOS3.1相当?)上で動作するEtherDFSクライアントです。
是非使ってみてくださいね。
2024-07-31 21:17:54
公開ありがとうございます。
起動フロッピーを作ってしまえばシンクライアントみたいな環境でゲームができるかもしれませんね。
小型低価格なEtherDFSサーバー(Linux版のみ?)を用意するとなると
今はRaspberry Pi Zero2 W が丁度良さそうでしょうか。
私の方は、どむやまさんが公開されている”モニターのスーパーリアル麻雀対応化”をしたいなぁと思っている段階です。
ラズパイ3Bの購入まではしまして、初めてのラズパイなのでスローペースですが完了を楽しみにしています。
2024-08-09 22:21:26
aochan様
ありがとうございます。
etherdfsのlinuxサーバーですと、retronasというレトロPC向けの各種サーバーの導入パッケージが便利そうです。私も盆休みにでもraspberry piに導入して見る予定です。
モニター改造、もし不明な点ありましたらご連絡くださいね。
2024-08-10 21:49:44
どむやまさん
9.7インチモニターでスーパーリアル麻雀が映るようになりました。
ありがとうございます。
メニュー画面などの背景が若干チラついていますが、左右はみ出していませんし色も正常です。
もしクロック50の時に左右の幅が合い縦縞が無い場合、クロック60付近にチラつきの止まる箇所が一つります。
その代わり縦縞が少し出てくるのと、右側が一部はみ出します。
LCD-8000Vでも発生しますが、自己紹介でキャラクターを選んだあと、名前が拡大→縮小している際に、
拡大縮小中の文字周辺(水平方向)の色が若干変わります。
(それほど問題ではありませんし、もしかするとCRTでも発生している可能性があります)
20Fで他2本とPC-98で少しテストしました。
雷電伝説
上下切れずに表示出来ています。
スーパーストリートファイター2
HIGHWIDE → CRTの時と同じく左右引き伸ばされて表示されます。
HIGH → お馴染みの正方形に近い表示です。
LOWWIDE → HIGHとあまり変わらない感じです。HIGHに比べると少しぼやけているかも。
LOWVIDEO → LOWと変わらない感じです。
(モニターの設定画面に入り、手動で左右引き伸ばしも可能です)
電源ON時の画面(640x400)
書き換え前と同じく4:3に引き伸ばされますが、モニターの解像度が高いのでシマシマなどの違和感は目立たず。
PC-98(640x400または200)
TOWNSの電源ON時と同じく4:3に引き伸ばされます。
変わった解像度(576x448ドットらしい)のドラゴンバスター
表示可能ですが、マップ画面の縦のシマシマが目立つ状態からは抜け出せず。(モニターの限界かも?)
液晶画面の情報には24.8KHZ 53HZ NN 640x448と表示されます。
動作テストには変わった動作のソフトばかりを使用していますが、
素晴らしい表示能力のモニターに生まれ変わって大変嬉しいです。
今後さらなる最強を求めるとなると、
16:10のモニターのうち、アス比4:3に設定可能な物を探すことになるのかな。
retronasにはetherdfsも含まれているのですね。
Win95からアクセスできるのも良さそうです。
2024-08-15 22:28:04
aochan様
モニター書き換えできたみたいで良かったです。
各種ソフトでの動作報告感謝いたします。
9.7液晶でも解像度を使用したアスペクト比表示ができるように改造できそうなのですが、自室が暑すぎてあんまり作業進んでおりません(^^;
ドラゴンバスターはX68000版しか持っていないので、PC-98版が入手できたら改善できるか試してみます。
16:10で4:3表示できる改造可能モニターはPHILIPS の252B9があるのですが、ちょっとサイズが大きいのと正方形ピクセルで無い点が惜しいと思っています。
Acerも16:10を出してくれたらいいんですが…
2024-08-26 18:08:41
>どむやまさん
貴重なソフトの移植有難うございます。TownsでEtherDFSのDOS3版を使ってみました。
ethersrv-linux-866を入れたRaspberry PI3と、FM50L187搭載のTownsで相互にファイルのコピーができました。
smbも入れてWindowsとも送受信しています。
ファイルを削除したりTowns menuで開くとハングするので、そのうちWindows版のサーバも試したいと思いますが、
Towns OSのままファイル交換ができるのは楽でいいですね。
自分は黒ジャックのiPad9.7インチモニタ(JG2555TC)を持っていてファームを使わせて頂いています。
簡単にファームの書き換えができて驚きました。公開して頂き有難うございます。
2024-09-01 16:48:43
どむやまさん、
アスペクト比表示が実装されればさらに嬉しいですね。
なんでも映るようになった現状でもありがたい状況ですが。
Amazonで調べたところ、今は16:10のモニターが少ないのですね。
1ドットが正方形で無いモニターがある事も知りませんでした。
ドラゴンバスターにつきましては電卓を使って何倍表示になっているかなど調べたところ、現状で最良の表示が得られている気がしてきました。
あと少しクロックを下げて横幅を狭くできれば、丁度横3倍になりそうだけどギリギリ届かない感じでしたが、横3倍にしてしまうと縦長になりますよね・・・。
98版ドラゴンバスターをプレーする機会が得られた時の注意点を書かせてもらいますね。
動作しない機種が多いのと、正常起動してもFDDのアクセスランプが点灯し続ける変わった動作をします。
動作しない原因は、ラップトップやノート、新しい目の機種などに搭載されたFDDの自動回転停止によるもののようで、
初代MATEあたりから自動回転停止(モーター制御)を"しない"に出来るようになったので"しない"にすれば動作すると思います。
MON信号だけを配線変更などして回転させても読めません。
2024-09-03 00:29:00
FMTowns新エミュレータ Tsugaruの情報交換用スレッドです。
Tsugaru : http://www.ysflight.com/FM/towns/Tsugaru/j.html
2020-07-28 12:41:40
あれ?今やったらOSASKでプログラム起動するじゃん、と、思ったら、これ.JPGとか.TXTをダブルクリックして開こうとすると無限ループに陥るっぽいですね。でも、.BINファイルは実行できるっぽい。INVADERとか起動したし。操作方法がわからんかったけど。実機でどうなるのかやってみりゃいいのか。
2024-06-01 13:13:22
なんてことだ。.JPGダブルクリックで普通に表示されるようになっちゃった。さっきまでの無限ループ起こらなくなってしまった。一応、OSASKもサポートできたっぽいということで。半角フォントの表示がまだおかしいかな?
2024-06-01 13:47:12
ちなみにOSASKのドキュメント内に気になる記述があって、CX以降であれば確実にCompact Flashカードを読めるらしいんですね。コードを解析すれば読む方法がわかるかも。ちょっと世の中おもしろいことが多すぎてなかなか手が回り切らないですが。
2024-06-01 22:54:17
OSASKの起動、おめでとうございます。
CompactFlashカードの件、下記リンクのPCCTOOLを用いた実験では過去にHCでPCMCIA_SDカードで読み書き可能でした。
EXPプログラムに仕立てようと考えましたが未だ未着手ですが。
http://oswiki.osask.jp/?pcctol
2024-06-03 09:24:50
YM2612(陸奥ではYM2203)のエミュレートでSustain Levelテーブルが-3db毎に変化し最大値だと-45dbとなってますが、実際は-42dbから一気に飛び越して最後だけ-93dbのようですがどうでしょうか。
同じチップが載っているメガドライブの開発資料、OPN系の仕様書いている記事、その他エミュのソースコードでもこのように実装されているのでこれが正確かと思います。
https://est.ceres.ne.jp/2020/12/16/opn-params/
https://lipoyang.hatenablog.com/entry/20131112/p1
ソースコードの該当箇所だと
void YM2612::MakeSLtoDB100(void)
{
for(unsigned int SL=0; SL<15; ++SL)
{
SLtoDB100[SL]=SL*300;
}
SLtoDB100[15]=9300;
}
このようになるはず。
2024-08-22 14:42:47
おおなるほど。デシベル値は、そのようにすると実機に近くなるっぽいですか?
2024-08-27 06:48:50
これに該当する音色(各オペレータSLに15が設定されるトランペット)が流れるTownsOS付属のEUPを流したところ、出だしのトランペットが弱まり、-45db時よりは早く減音することは確認できました。
が、この変化が実機通りかはまだ定かじゃなく、記憶だと-45dbが近いような気もしてくるんですよね。
EUPプレーヤーのVELOCITYメーターの動きと音の流れが-93db時の方が近い、うんづでも-93db相当の音で、結構思い出補正も激しいんでマーティーでもいいから実機確認もしてみます。
2024-08-27 12:19:14
実機(マーティー)で該当曲を鳴らして確認しましたがやはり-93dbの方が実機に近い印象でした。
2024-08-27 20:50:05
なるほど!では、修正も簡単そうだし、そのように変更してみましょう。僕も変更前と変更後で何曲か聞いてみますね。
2024-08-27 22:27:44
他愛もないない事から、悩み事までなんでもお書きください。
では、手始めに私の困ったことから。
我が家のTowns・・・ モデル2FとMXとHC(MXは実家に置き去りにしていますので手元には無い)ですが、MXとHCはCD-ROMが弱っているようでCD-Rが読めなかったり、
特定のCD-ROMから起動できなかったり・・・・ FDDはメディアが悪いのか,安定しない状態です。
かといってSCSIのCD-ROMドライブを持っている訳でも無いので、Windowsとのデータのやり取りに苦慮する場面がチラホラとあります。
真剣に内蔵CD-ROMを何とかする手だてを考えないといけないのだろうか・・・・ みなさんのTownsの状況は如何ですか?
2020-07-29 10:03:48
津軽でも実機でも同条件でフリーズするので違いはないと思います。
割り込みやめてバッファでやればいいんですけど、こっちの方がプログラムはスッキリしているし移植元のWOLF4GWが同じキーボード割り込み使ってるんでそのままにしておきたい、フリーズする原因がわからないのもなんか腑に落ちず、どうせパッドさえ使えばとりあえず問題はない状況なんで、もうちょっとだけ割り込みのままできないかとはやってます。
2024-04-10 19:28:21
千尋さん、ここ見てますかね?FM TOWNSソフトウェアデータベース(http://fmtowns.fanweb.jp/db/sdb.html)で、細かいことなんですが、グローディアの5作品 Emerald Dragon, Vain Dream, Vain Dream 2, Bible Master, Bible Master 2はいずれもCD+FDのセットになってます。これは手元に全部あるので間違いないです。データベースの方でEmerald Dragon, Vain Dream 2, Bible MasterがCDのみということになってました。ちなみに、Emerald DragonだけTOWNS用のがPC98版の箱に入ってるので、ヤフオクにTOWNS用の箱だけ、とか出て来てくれないかと思ってるんですがね。
2024-07-07 12:46:35
>497 山川機長さん
Emerald Dragonのパッケージですが、先日実家に行った際に押し入れより確保して参りました。
私的にはパッケージに何の付加価値も持っていませんので宜しければお譲りさせて下さい。 価値を持たれている方が所有する方が良いでしょう。
2024-07-16 08:58:57
TOWNS 内蔵SCSIコネクタについてですが、山川機長さんの
「FM TOWNS 内蔵SCSIインターフェースコネクタ仕様」http://ysflight.in.coocan.jp/FM/towns/internalSCSI/j.html
ページで、
「FMTOWNSのファイルスロットを調査せよ!」https://labo.main.jp/newage/towns/fmt_fileslot.html
の情報は正しいとされていますが、両ページで、電源ピンの+5Vと+12Vが逆になってるように思います。
実機で確認したところ、1,2ピンは+5V、7,8ピンが+12Vで山川機長さんの配線が(実際に使われてたものですし)正しいようです。
もう一つ、後者のサイトの42ピンが GNDとなっていますが、実際は MSGなので もしGNDに接続しちゃうとまずいですね。
2024-07-18 21:14:12
tomoさん、
おおなるほど。多分結線図はテスタで調べたので合ってると思うのですが、ピンの意味が間違ってたということでしょうか?
もしも変換コネクタを自作する必要が発生した場合を考えてたので、どのピン間をつなげばいいのかには注意していたのですが、ピン割り当てにはあまり注意してなかったもんで。
ご指摘ありがとうございます!
2024-07-21 11:39:51
Vectorのソフトウェア開発者向けに提供していたホームページサービスが12月20日をもって終了する予定のようです(大本のソフトウェアダウンロードサイトはまだ続くようですが、これもいつまでFM TOWNSコーナー用意してくれるか・・・)。
Vector HPでFM TOWNS関係のサイトだと
RUMSTORMの公式サイト
https://hp.vector.co.jp/authors/VA015539/
こちら花小金井3丁目
https://hp.vector.co.jp/authors/VA018718/towns/index_t.htm
がありますが特に「こちら花小金井3丁目」に関してはTownsOS・TownsGEARのバージョンごとの差異、ピンアサインやFMV-TOWNSなどのハードウェア情報、機種毎のCD-ROMドライブやマウス、カタログのスキャン、Vectorに上がってないフリーソフトなどがあってかなり重要かと思います。
管理人のHOTARUIKA☆さんがサイトを移行するかわかりませんが、とりあえずサイトが見れる今のうちに個人用途で丸ごとバックアップ取っておこうかと思っています。
2024-07-21 13:42:22
>500 山川機長さん
そうですね。「FMTOWNSのファイルスロットを調査せよ!」では、TWONS側 1,2ピンが+12V、7,8ピンが+5V と誤っています(実際は 1,2ピンは+5Vで7,8ピンが+12V)ので、その通りの電源コネクタを作ってしまうとSCSI機器の故障の原因になります。
2024-07-22 22:53:58
FM TOWNSでPlay Station版「DOOM」のタイトル画面や特定ステージ背景に表示される炎エフェクトを再現するデモ
https://github.com/bcc2528/PSX-DOOM-FIRE-FOR-FM-TOWNS
486 CPU搭載機推奨。パッドのAボタンを押していく毎に火力が弱まり、Bボタンで再点火、RUNボタンで終了。
動画
https://www.youtube.com/watch?v=mvlFtJIY4Fc
アルゴリズム解説
https://fabiensanglard.net/doom_fire_psx/
元々アルゴリズムが解析されててコードも載ってるので移植例は何件かあり独自性があるわけではないですが、最初High Cの標準であるrand()関数を使ったところ結構遅かったようで、自前で疑似乱数を出すようにしたら結構フレームレートが改善されました。(rand_num = rand_num * 1103515245 + 12345; random = rand_num & 2147483647;)
High Cで乱数を使ったゲームやデモを作る場合、ちょっとでも速度を稼ぎたい時に有効なテクニックかもしれませんが、65536周期とはいえ乗算を使わない分もうちょっと高速なクロサワ式乱数というものもあるので68000 CPUで動いているようなアーケードタイプのゲームを作るならそれでもいいかも。
2024-07-28 12:51:34
FM TOWNS用デモ「Water Ripple」 486DX2 66MHz以上搭載の機種でないと重たいと思う。
https://github.com/bcc2528/Water-Ripple-on-FM-TOWNS
マウスを左クリックすると画面が波紋の広がりのように歪み、しばらく待っていれば収まっていくエフェクト。
マウスを動かせば波紋の作成位置を変更可能、右クリックで波紋全消去、左右クリック同時押しでプログラム終了。
動画
https://www.youtube.com/watch?v=_i9ATtAc-3k
2024-08-13 13:22:39
掲示板のタイトルからは外れますが、兄弟エミュレータと言うことで。
FM-7/77/AVエミュレータ Mutsu[陸奥]の情報交換用スレッドです。
2022-08-31 16:57:32
うーむ、スロット事にエンベロープのスピード変えてみたけど(時間が無いんじゃなかったのか)変わらんですね。実機やXM7のPresented by Game Artsを聞くと、抑揚がついてますね。ひょっとしてMULTIをいじってるのかと思ったけどそのようでもないし。はて、何が違うんだろう。
2022-09-16 05:47:02
さんざん調べた結果、結論は、Wave生成の時間解像度が足りないということがわかりました。2msにしてたのを1msにしたらかなり改善しましたが、まだ実機と違うので、500usまでトライしてみます。謎なのが、以前1msにしたら最後のWave生成からWaveをデバイスに送るまでの時間があまりにも小さかった影響で(多分)再生が間に合わないという現象が起きてたと思ったのですが、起こらなくなってました。
津軽の方はCSMを使ってるソフトがまだ確認できてないので、引き続き2msで行こうと思ってますが、、、、あそうか。津軽だと486のエミュレーションが厳しくて間に合わんかったのか。77AVだと余裕があるから500usまで下げても大丈夫な気がしてきた。
今日は時間切れになってしまったんですが、明日やってみます!一応、今のソースPUSHしたので、改善を確認していただけるかと思います。
2022-09-18 12:59:38
さらに調べた結果、YM2612のタイマーエミュレーションが間違ってたということが判明しました。津軽でここまで使われてきてるのに、まだこの違いが残っていたとは。XM7のopn.cを参考にさせていただきました。これでシルフィードのPresented by Game Artsはほぼ実機と同等になったと思うのですが、どうでしょう?
2022-09-20 13:34:33
お世話になっております。
以前、こちらの掲示板をご教示頂いたにもかかわらず、何も書き込んでおりませんでした。申し訳ありません。
スクエアのアルファをプレイしてみましたが、CUIからコマンドラインで実行すると「a」のキーが入力できませんでした。
GUIから起動すると「a」キーは入力できております。
オプションにKEYBOARDがあるのは見つけたのですが、パラメータがわかっていない認識です。
お時間のあるときにご教示いただけると助かります。
よろしくお願いいたします。
2024-08-03 13:28:30
こんばんわ、、前田さん
最初の方だけざっくりとやってみたのですが、こちらの環境だとCUIでも「a」キーは入るようです。
ローマ字入力なんで「a」を押すと、「ア」と出てるしあ行も問題無さそうです。
因みにコマンドラインのヘルプは "-help"オプションで表示し、-KEYBOARDオプションには "DIRECT","TRANS","TRANS2","TRANS3"が指定できます。
環境によってはTRANS等の指定が必要かもしれませんので試してもらえませんか?
2024-08-08 23:07:04
前田さん、
ひょっとすると、-GAMEPORT0がKEYになっていないでしょうか?キーボードでゲームパッドをエミュレートすると、TOWNSパッドと思ってしまうので、AキーはSELECTボタンに割り当てられてます。-GAMEPORT0オプションの指定がないか確認していただけますか?よろしくお願いします。なお、何も指定が無い場合はUSBゲームパッドを使うことになってます。(そうしてたはず)
2024-08-08 23:40:56
WINDYさん、山川機長さん、
お世話になっております。前田です。
ご教示、ありがとうございます。
山川機長さんのご指摘のとおり、「-GAMEPORT0 KEY」をオプションで指定しておりました。
コマンドラインを他のゲームイメージのものと共有して使いまわしていた(イメージファイルのみ差替)のが良くなかったです。
お二人の貴重なアドバイス、大変助かりました。ありがとうございます。
2024-08-09 05:28:11
了解しました!解決してよかったです!
2024-08-09 10:43:52
解決して何よりです。
所で「-GAMEPORT0 KEY」オプション時の動作ですが、ゲームパッド入力をキーボード入力に置き換えているのだと思うのですがこれを双方(ゲームパッドとキーボード)共に有効とする事は
何か弊害でも有るのでしょうか? > 山川機長さん
弊害が無ければこのオプションが指定されていてる場合でもキーボード入力も出来るようになる様な気がするのですが。
2024-08-09 12:34:46
スレッド分けました。内蔵CDが故障してしまったTOWNSをフロッピーディスク経由でSCSI CDから起動するブートローダープロジェクト用スレッドです。一応、フロッピーディスク経由の場合と、SCSI2SDや変換番長のような仮想SCSIデバイスからの起動の両方を想定してます。似たようなことは既にYSSCSICD.SYSでできていますが、TownsOS起動ディスクに組み込む必要があるので、ディスクの再配布していいか微妙なのと、特殊なドライバを組み込むタイトルでは専用起動ディスクが必要などの問題がありましたが、このプロジェクトはその2点の解消を目指してます。
まだ津軽上の実験ですが、SCSI CDドライブからIO.SYSを読み込み、INT 93Hなどをインストールして、MSDOS.SYSまで読み込んだところで処理を迎撃することに成功しました。まだ青森県地図の表示はできてません。
しかし、迎撃地点ではMSDOS.SYSは読み込んでいるものの、まだINT 21HがEnableされていないようで、INT 21H AH=48Hでメモリを確保してやろうと思ったら固まってしまいました。これ、INT 21がまだ使えないのではなく、実はPSPとかが存在してないからという可能性もあるんですがね。ただ、考えようによってはBIOSのRedirectorをインストールしようと思ったらこの迎撃地点は悪く無くて、IO.SYSには内蔵CD-ROMから起動したと思い込ませているはずなので、ここでINT 93 AL=C0HがすべてSCSIにリダイレクトされるようにすると、IO.SYSは何事もなかったかのようにSCSI CDから起動してくるはずです。
問題は、リダイレクタをインストールしたとして、リダイレクタが使用するアドレスがその後別のプロセスに上書きされてしまうことを防止しなくてはならない点です。そのために、その後さらに調べたところ、どうも、MSDOS.SYSにジャンプするときのDXの値がMSDOS.SYSが使ってもいい最後のアドレス (DX=B800Hだと物理B8000Hまで使える)になっているようなのですが、どなたかこの解釈が正しいかご存知の方いませんか?また、そうした場合、DOS ExtenderがB8000~BFFFFを使わないと言えるのかという問題もあるのですが。nabeさんとか知ってそうと期待していたりするのですが。もしもこの解釈が正しければ C000H をDXにセットしている場所にパッチを当ててやれば、BIOSリダイレクタ置き場を作ることができるはずです。
これまで津軽のデバッガでMSDOS.SYS入り口で止めてLET DX B800H として放流してやった上でV2.1 L20上で何本かEXPファイルを走らせてみた限りではB8000~BFFFFは守られているようでした。
別な方法としては、もともとのCD-ROM BIOSはいらなくなるので、IO.SYSを識別して、もとのCD-ROM BIOSが書いてある場所にリダイレクタをインストールしてしまうという手もあるのですが、やや乱暴な方法で、多分CD-ROM BIOSは一か所に固まっているのですが他のINT 93Hがその部分のPROCを使っていたらこの手は使えないですね。
また、できればC0000H直前ではなくもっと下の方のIO.SYS直後あたりにインストールしたいところなのですが、どこでIO.SYSが使っていい領域の最初のアドレスをMSDOS.SYSに渡しているのやら。それはまだ見つかってません。ただ、IO.SYSのサイズはTownsOSのバージョンによって異なってもどのTOWNSのMSDOS.SYSを使っても起動できるということは、どこから使っていいかという情報もIO.SYSはMSDOS.SYSに絶対渡しているはずなんですがね。
2020-09-24 09:22:42
おおなるほど!ICMWRITEを386SXに対応させるの忘れてました。ついでに、L51だと書き込みに成功してもエラーと出てしまう問題も原因を調べたところ、デバイスID 0x50がL51だと使えないんですね。0x4Aも試したのですが、これもだめで、仕方ないので0x50と0x4Aを試してデバイスIDエラーが返ってきたときは、直接メモリを比較して書き込み成功したか失敗したか判定するようにしました。新しいICMWRITE.EXPはGithubにPUSHしましたのでよかったらお試しください。
2024-03-11 12:08:02
ありがとうございます。
マーティーで試したところ、ICカードへの書き込みに成功しました。
エラーメッセージも出ませんでした。
ですがICカードからの起動につきましては、マーティーのロゴが表示された直後に一瞬だけ(0.05秒くらい?)IC MEMORY CARD BOOTの文字が表示されて、画面が真っ暗な状態になります。
SNの場合はBOOTメニューが表示されます。
0x4AがICカードの機種があったのですね。
今まで書き込みはL20で行っていました。
2024-03-13 07:05:35
なるほど!考えられる原因としては、(1) MartyはSCSIを積んでないのでSCSIデバイスのリストを取るところで止まっている、または (2)TOWNS OSは使わないCRTC設定で31KHzモードに切り替えているのでMartyのCRTCが認識しない、のどちらかではないかと思います。(1)は一応タイムアウトしたら戻ってくるように書いたつもりなのですが、なにか間違っててそうなってない可能性もありますね。(2)については、これはなんとも言えないですね。
一応、さきほど新しいバージョンのIPLをPUSHしました。このバージョンでは、SCSIのリスティングでとりあえずまずメッセージを表示してからチェックするようにしたので、果たしてSCSIのリスティングで止まっているのか、CRTCで止まっているのかわかると思います。よかったらお試しください。
2024-03-13 22:34:29
ありがとうございます。
マーティーで試したところ、
SCSI: H TYPE: H
と表示されました。
UGの方は電源が壊れており確認できそうにありませんでした。
ATX電源を接続出来ないか探ってみようと思います。
しかし私にはUGは重すぎでした。何Kgあるんだろう。
HRやMAの横置きプラスチック筐体の方が軽くて扱いやすいですね。
2024-03-15 07:03:12
ご確認ありがとうございます!やっぱりSCSIのチェックで止まってるようですね。コードを見直したところ、Ready-Waitの後のタイムアウトをチェックしてなかったので、多分そのままコマンドを出して結果をいつまでも待っていたのではないかと思います。そのチェックを追加したものをアップロードしたので、よかったらお試しください。ただ、Martyだとメニューが出るだけで何か有用なことができるかというと何もできないと思います。Martyってシリアルポートは持ってましたか? そうであればせめてシリアル経由のROMの吸出し機能ぐらいは対応できるかもしれません。
2024-03-18 06:33:43
お疲れ様でございます。
SCSI CD DRIVE NOT FOUND
のメッセージが表示され、30秒程待つといつものメニューが表示されました。
マーティーはシリアルポート非搭載ですね。
アーバンの増設シリアルがあれば・・・と言うところでしょうか。
私はCMOSの保存に使おうと思います。
メモリが2MBですとHIMEM.SYSのためにメモリを予約すると、起動しなくなるソフトがあったと思いますのでその切り替え用ですね。
それとBootMenuからFDを選んでFDから起動すると、MS-DOS6.2は起動しましたがTOSV2.1L20は起動してくれませんでした。
2024-03-19 05:43:52
おお、Martyでもメニューまで進むようになったんですね!ご確認ありがとうございます!
ちなみに、メニューの右上のMACHINE IDのところですが、4A03になってますかね? MartyのMachine IDはTBIOSの解析からどうやら4AHらしいと推測した(と、当時のソースのコメントに書いてあった)のですが、本当にそのIDになってるだろうかと気になってます。
2024-03-22 11:46:05
白MartyとCAR Marty(MVP-1)、どちらも4A03でした。
2024-03-23 14:07:09
了解しました!4Aで合ってるんですね!ありがとうございます!
2024-03-23 23:45:58
FMTowns実機や各種FMTownsエミュレータを使用する上での質問事項
2020-07-28 13:20:43
すみません。スレッドがここでいいのかわかりませんが。
YSSCSICD.SYSを用いてTownsOS V2.1L51(on DOS6.2)をbootすることは成功したのですが、ここからHDDへのインストールでインストールするパッケージ選択後、コピーの段階で先に進まなくなってしまうようです。
実機の電源を修理し、HDDを交換したのでOSのインストールをしようと思いましたがCD-ROMドライブが不調の状態でYSSCSICDであればSCSI CD-ROMからインストールできそうな雰囲気だったのですが、何か分かりますでしょうか。
とりあえずはtsugaruでHDDイメージにインストールしたものを実HDDに書き込むことで代替しようと思っています。
2023-09-13 22:46:13
少しお伺いしたいのですが、
TownsOS V2.1L51(on DOS6.2)が既にHDDへインストールされていて、CONFIG.SYSにYSSCSICD.SYSを組み込んだ状態で起動し、
何らかのソフトウェアをSCSI-CDドライブからそのHDDへインストールしたいと言うことですか?
>コピーの段階で先に進まなくなってしまうようです。
ファイルは1つもコピーされていなさそうですか?
2023-09-16 10:11:23
HDD上のDOS6.2上にTownsOSをインストールするところで引っかかっています。
HDDにDOS6.2のインストールは正常に終了し、\T_FILE\INST_EXTでTownsOS on DOS6起動用FDを作成し、config.sysでysscsicd.sysを
追加しています。
この状態でこのFDとSCSI CD-ROMからTownsOS on DOS6は起動出来ています。
そこからHDインストールを起動し、パッケージ選択までは正常にできるのですが、その後のインストール作業(コピー)から進みません。
ファイルがコピーされているかどうかは確認していません。
2023-09-17 08:16:21
私では何故上手くいかないか全然分からないやつでした。
TOWNSスーパーブック記載の手順とほぼ同等ですし。
インストール先は128MB以上2GB未満のEXT区画ですよね。
HIMEM.SYSの起動には成功していますか?
127MB以下のDOS6.2区画であれば、救済IPL経由で起動したTownsOSV2.1L51からのインストールは確認しているのですが。
FD版救済IPLの作り方も紹介しますね。
詳細はこちら。
http://ysflight.in.coocan.jp/FM/towns/bootloader/j.html
概要はこんな感じです。
https://github.com/captainys/FM/tree/master/TOWNS/IPL/DISKIMG
のFDIMAGE.BINまたはFDMINI.BINをダウンロードします。
Windows上でこのダウンロードしたイメージファイルを、1.25MBフォーマットしたFDに書き込めるようでしたら書き込んでください。
(エクスプローラーなどでのファイルコピーではありません)
書けない場合は、TOWNS実機で書くために
https://github.com/captainys/FM/tree/master/TOWNS/FDWRITE/EXE
FDWRITE.EXPをダウンロードします。
TOWNS実機でFDWRITE.EXPを使ってFDIMAGE.BINまたはFDMINI.BINを、1.25MBフォーマットしたFDに書き込みます。
RUN386 -nocrt FDWRITE.EXP A: FDMINI.BIN
救済FDが出来ましたら
SCSI-CDドライブにTownsOSV2.1L51をセットし、救済IPLのFDを挿入した状態でリセットしてFDから起動、メニュー画面でSCSI-CDを選択すればSCSI-CDドライブからOSが起動します。
OSでHDインストールを実行すればインストールできます。
ただし、この場合は127MB以下の区画でなければなりません。
2023-09-17 21:50:37
返信ありがとうございます。
2047MBのDOS ext区画にインストールしたいと思っています。
HDDのイメージにtsugaruでTOS on DOS6は出来たのでこれをHDDに書き戻し、とりあえずインストールは出来たのですが
やはり実機で出来ないのが気持ちが悪い、それだけです。
救済IPLも興味があったのでまた今度やってみます。(TOWNS本体は実家にあるのですぐにはできませんが)
2023-09-17 22:03:27
おおなるほど。というと、実機でDOS6上にTowns OS V2.1 L51をYSSCSICD.SYSを使ってインストールしようとしたときにクラッシュしたという感じでしょうか?一応、津軽上でDOS6+EMM386環境でYSSCSICD.SYSが動作することは確認した(と思った)のですが、そういえば、最近High-Fidelity Modeがあるので試してみますね。案外何か見つかるかもしれません。
2023-09-18 09:32:18
理解いただきありがとうございます。
クラッシュはしておりません。エラーのダイアログが出てリトライを押しても実行できず、中断しかできない状況です。
HDDイメージからHDDに書き戻したもので正常に起動できることは確認しましたので現状不都合としてはありません。
もし何かのヒントになれば幸いです。
2023-09-19 21:57:13
あ、そうか。YSSCSICD.SYSを入れたフロッピーディスクを使ってCDのTowns OS V2.1 L51を起動してたんですね。だとすると、救済IPLから起動するとうまくいくかもしれません。救済IPLも中でYSSCSICD.SYSを使っているのですが、FDのCONFIG.SYSにYSSCSICD.SYSを書く使い方だと、FDで途中まで起動してからやっぱりシステムドライブはQでした、とTownsOSに思い込ませるようにしていますが、ひょっとするとそれが完全では無いのかもしれません。ですが、救済IPLからの起動だと、もっとかなり初期の段階から起動ドライブをQと思わせて、しかし実はSCSIを見に行ってるというような起動プロセスになるので、(FDで途中まで起動していない分)、完全にコピー元のTownsOSがQドライブと思ってくれるかもしれません。
なお、救済IPLは、CD-Rから直接起動するオプションもあるので、フロッピーディスクが無くても使えます。aochanさんが上で書いていただいたFD用IMAGEと同じgithubのディレクトリからCDIMAGE.ISOをダウンロードして、CD-Rに焼くと使えます。例えば、SCSI CDドライブのID 3にしたとして、救済IPL CD-Rをドライブに入れて、キーボードの H と 3 キーを同時押ししながら起動すると救済IPLのメニューになるので、そこでSCSI CDドライブを選ぶと、CDを入れ替えるように言ってくるはずなので、Towns OS V2.1 L51のCDを入れると起動できると思います。よかったらお試しください。
ただ、この手は20F以前だと使えないはずですね。というのもMOが出てきたあたりからシステムROMはデバイスを区別せずにとりあえずSCSIドライブの先頭セクタを読み込んでジャンプしてみるような仕様になったのですが、初期のモデルではわざわざデバイスの種類をチェックしてハードディスクドライブであるということを確認しないとIPLセクタを読み込まないようになってます。ということは、救済IPLのMO版というのを作るとハードディスクモードに設定したMOからの起動が可能になるはずですが、そこまでせんでもいいかと思ってやってないですが。
しかし、MOドライブが割と安く買えるようになってから、これはバックアップの革命か?と思ったもんでしたが、頻繁に使ってたらドライブがすぐ壊れるという現象に直面して僕は使うのをやめてしまった記憶がありました。高いやつだと長持ちしたのかどうか。3台ぐらい買って結局どれも2~3か月しか持たなかったような気がしますね。当時住んでたアパートにエアコンが無かったから熱で自滅したのだろうか。
2023-09-27 00:34:27
読む限りでは、YSSCSICD.SYSを用いてCDで起動は出来ておりインストールまでは少なくともOSそとしてもCDをYSSCSICD.SYSを通じて内蔵ドライブとして認識はしているように感じます。
クラッシュなどは起こしておらず、インストーラーのプロセスにおいてエラーとなりOSはダイアログを表示している事からアクセスに失敗しているような感じですね。
何を以てエラーと判断しているかが判りませんが単純なファイルコピーだと思うので、シーク時間か応答タイミングなのかDMA関連で連続読み出し時にエラーが起こっているのかもしれません。
通常、TownsOSのインストール時はインストール先やパッケージ(機能)の選択後に実際のコピーが行われ進行状況を表示しますがこの心境状況のバー表示が全く進まない程のタイミングで
エラーとなるのでしょうか? それともある程度進行した後でエラーとなるのでしょうか? > プーさん
何か些細な事でも手がかりになるとやりやすいと思いますので、細かく教えていただければと思います。
2023-09-29 10:23:49
現在Windows 3.1の起動までこぎつけられないかと思ってCPUコアをいじってるのですが、まずLARインストラクションで詰まってたのでそれは単にLARを実装して突破したのですが、INT 91Hで詰まってます。
どうやら、Windows 3.1は、リアルモードのバイナリのうち処理を奪う必要がある個所に 63H (ARPL)を書き込んで、Virtual 86モードでINT 6を出させて処理をいったんカーネル側に移して、その後、IP+1から処理を再開、としているようです。最初ARPLを見たときは何かの間違いではないかと思ったのですが、最初のうちそのままで順調に進んでいるようだったので、どうやらARPLを書き込むこと自体は正しいようです。ARPLが書き込まれる場所の多くは、書き込み前は90H (NOP)になっているのも多分この書き換えが意図的なものであると考えて問題なさそうです。
INT 6ハンドラは、0048:00000102ですが、どうも169Cセグメント(DOS?)内でARPLが起きることを想定しているようで、INT 6を受けて、Exceptionが起きたインストラクションが63Hであった場合、Exception発生個所+2バイトに飛び、その場でリアルモードへの切り替えが起こるように書いてあるようです。0048セグメントはひょっとするとEMM386かも。
しかし、あるタイミングでIDTが書き換わって、INT 6をハンドルするのが0028:80006E5Cに変わり、再度0048:00000102に変わった後で、INT 91Hのハンドラの入り口(07F9:000023F4)のARPLでINT 6が出た後、00B8セグメントのあらぬ場所にジャンプしてクラッシュしてます。INT 91Hのハンドラは先頭にARPLが書かれているのですが、+2バイトではリアルモードに切り替わるように書かれていない上に、00B8セグメントのベースは169C0Hを指したままなので、違うセグメントの無意味なアドレスにジャンプということになってます。
MSDOS.SYS以外のINTのARPLは0028:80006E5Cだとうまくさばけるようなので、IDTが書き換わるべきではないのか、INT 91Hは別の処理の仕方であるべきなのか、そもそももっと前の時点で何かがこわれててINT 91Hが出るべきではないのか、なかなか難しいですね。どうもこの INT 91H (コンソールBIOS) はコンソールに1BHを書き込もうとしてるようなので、すでにコンソールは表示されていないことを考えると実はINT 91Hが出ていること自体が間違ってるのか。
なお、Core i9のPCを買いました。最近シングルコア性能は世代が変わってもほとんど変わらんと思っていたのですが、案外変わってたんですね。多分486SXの66MHz近いスピードが出てるようでStrike Commanderが快適になりました。ただ、nVidiaのGPUだったので、OpenGLのVSYNC待ち(なぜかnVidiaはデフォルトでオンにしている)をオフにしないと待ちが入ってスピードが落ちるという問題がありました。
2021-01-21 00:40:27
>27 山川機長さん
Windows3.1の互換性については基本的にはDOS時代からあまり変わらずで、「動けばラッキー」程度だったと思います。
要はアプリ内でWin16APIだけを使っておれば動くけど、それ以外のI/Oアクセスなどを独自に行っていればフリーズする可能性が有るのだと思います。
(DOS時代もDOSのAPIだけで組めばATでも98でもTOWNSでも動くのと基本的には同じではないでしょうか?)
たしか、後の時代(Windows95?)にINTの何番かを無効にするツールが有ったような気がするのですが、見つけられません。
2023-04-19 09:44:18
その後、Visual C++をEドライブにインストールして、DドライブのWindowsをそっくりもとに戻して、E:\MSVC\BIN\MSVCVARS.BAT で環境変数を設定したら、普通にDOS窓からVisual C++が使えるようになりました。TGDRVで共有したドライブのソースをコンパイルできるので、いろいろ実験できそうです。未実装のFPU命令を使ってくれたら動作確認になると思ったのですが、少し試した範囲では使ってませんでした。
ここ数日、Windows 3.1 L10が起動しないという報告があったので、追跡sいていたのですが、なんと、Windows 3.1 L10のSCSIドライバが、DMAのアドレスの最上位バイトに書き込まないため、32MB搭載していると、Windowsがファイルを16MBより上の領域に読み込もうとしたときに正しい場所に読めないという原因でした。L11とL12では解消しているようでした。Windows 3.1がL10だった当時だと16MBは贅沢で、32MBなんてありえない容量だったんでしょうね。
2023-04-21 01:46:53
Windows 3.1 L11にUpdate 2(おそらくL12相当となる修正パッチ)を適用してテストしているのですが、WinGを使うゲームで起動時に行われるWinGのベンチマークプログラムを実行中にフリーズしてしまうようです。次回起動時にベンチマークが完走しなかった旨のエラーメッセージが表示されるので無視すればゲーム自体は問題なく動きます。
フリーズ時の状況
VM Aborted!
Device:486DX
Reason:Clocks-Passed is not set.
Towns TIME (Nano-Seconds): 1169731320080
CS:EIP=1CFF:000004FA LINEAR:80D5023A EFLAGS=00000202 CPL=03
EAX=00000001 EBX=00000000 ECX=00000028 EDX=8000EBF8
ESI=000B8E62 EDI=80000000 EBP=00000004 ESP=0000103E
CS=1CFF(LIN:80D4FD40) DS=30E7(LIN:00000000) ES=0997(LIN:80DB4000)
FS=0000(LIN:0004AEE0) GS=2FD7(LIN:80D95EE0) SS=0997(LIN:80DB4000)
CR0=8000002B CR1=00000000 CR2=000C7847 CR3=0034E000
CF0 PF0 AF0 ZF0 SF0 TF0 IF1 DF0 OF0 IOPL00 NT0 RF0 VM0 AC0
Default Operand Size=32 Default Address Size=32 Stack Address Size=16
SS+00000000:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
SS+00000010:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
1CFF:000004FA 0FCA
実機TOWNSでWindowsは使っていなかったのでTOWNSにおけるWinGの対応状況はわからないのですが、TOWNS版Windows 3.1特有の問題かエミュレータ側の問題かどちらでしょうか。
2023-04-21 19:10:56
早速テストしていただきありがとうございます!ゲーム自体は動くんですね!デバッガオンにした状態で実行して何か言いますかね?これまでのエラーのうち、ほとんどの場合がCPUインストラクション実行中に例外が発生したとき、CPUステートを元に戻さないまま例外をハンドルしてしまって何かが起きていたので、デバッガを有効にすると、その条件にヒットしていないかテストするようにしました。
他にWinG使ったゲームでフリーでダウンロードできるようなのありますかね?手元にぷよぷよ for Windows (ぷよぷよ通もあるけどこれは95以降のはず) があるので試してみようと思ってますが。
ちなみに僕もTOWNSが現役だったころはWindowsを走らせなかったので、実機がどうなのかよくわかりません。というか実機あるんだから環境作ればいいんですが。
2023-04-22 04:31:05
状況、ぷよぷよ for Windowsで確認できました!これ、BSWAP命令ですね。ここまでやってきて一度も使われたことのない命令で、実装してませんでした。実装してみます。
2023-04-22 07:00:15
BSWAPサポート追加したソースPUSHしました。うちの環境ではぷよぷよ for Windowsが動作するようになりました。が、なんかキー操作がへんてこでちょっと操作に苦戦しましたが。
2023-04-22 08:49:45
> 27 山川機長さん
Visual C++1.0はAT互換機、PC-98、FMR/TOWNS用でそれぞれ別パッケージで存在するのを見た事があります。
機種別に発売されたWin3.1用ゲームは見た事が無いですが、存在するのかは私も気になります。
私の方は機種依存の無さそうな画集ばかり購入していましたので、互換性の問題とは無縁でした。
WinGが登場して、少し動きのあるソフトも登場しだしたのでしたっけ。
Windows3.1L11のCD内にINT10NOP.COMなるINT10を無効にしてくれるファイルが入っていますので、
Windows3.1対応としながらAT互換機でしか動作しない物も一定数はあったのかなと推測したりします。
Windows95になりますが、DOOMIIの95版パッケージにはPC-98用とAT互換機用でCDが2枚入っていました。
2023-04-22 22:29:26
Aochanさん、
MYST日本語版はWindows 3.1用ですが、PC98、FMTOWNS対応って明記してあったので、逆にそう書いてないと対応してなかったということなんでしょうね。MYSTを試したらマウスカーソルが動かなくなってしまって、何かと思ったらTOWNSのハードウェアマウスカーソルは白黒専用なのでカラーがついたらソフトウェアマウスカーソルに切り替えていた影響で、CRTCレジスタからマウスカーソル位置を取得できなくなってしまったというものでした。それで考えて、津軽のHOST-VMインターフェースコマンドにマウス位置の通知というのを追加して、Windows3.1上でバックグランドで動作してひたすらホストにGetCursorPosで取得したカーソル位置を通知し続けるプログラムを書いたところ、無事MYSTもプレイ可能になりました。githubの最新ソースで、winapp/TGMOUSEディレクトリにEXEが入ってて、すぐVMに送れるようにutil/TsugaruUtil.D77にも入ってます。
2023-04-24 22:13:48
ハードウェアマウスカーソルって何だろう?と思ってネット検索などしていましたが、これって赤本未掲載なのですね。
PC-98のグラフィック(PEGC、EGC、GDC)にも無さそうで、GD543Xの資料でやっと同等と思われる機能を見つける事が出来ました。
TOWNSハイレゾってWindowsでの高速化も意識されていたのかもしれませんね。
MYSTを発売したインタープログ社は、その少し前にプリンスオブペルシャ2のTOWNS版、PC-98版を発売していましたので、それ故に両機種の対応表記が出来たのかも。
2023-05-03 23:51:03
CMOSの件だけでも長くなる可能性があるかと思ったのでスレッド作りました。YSSCSICD.SYS開発時、津軽開発時に調べたメモに残ってるのが、
CMOS RAM
起動デバイス
[3182H] 起動デバイス種類が (Floppy:1 Harddisk:2)
[3184H] 起動デバイスユニット番号
MX ROMの逆アセンブルでも確認。2020/05/20参照。
臨時起動デバイス
[3C28H]
MX ROMの逆アセンブルによると、パッドAボタンを押して起動すると08H (AL=08,AH=00 に分解されてCD-ROM), Bボタンで 02H (AL=02,AH=00に分解されてFD0)
シングルドライブモード(多分)
[328CH] 0:解除 1:シングルドライブモード -> [33CEH]がこのバイトを含むチェックサムになってるみたい
ドライブレターをどうやったら割り当てられるのか調べてます。
2020-10-01 23:31:01
Zoomミーティング中暇だったので(不良研究員)調べました。comp_romのソースではCMOSの後半にチェックサムがあるということですが、どうもドライブレターとかシングルドライブモードが書いてある領域は、33CEHを使ってチェックサムが変わらないように調節しているようです。そういえば津軽初期のころは、なんとかシングルドライブモードの意味を解明して津軽初回起動時のCMOSの初期化はSYSROMにさせてホスト側でシングルドライブモードを解除させようと思ってたけど、このチェックサムの意味がわからなくて断念したんだよな。今ならわかる気がする。
ちなみに、ドライブレターの割り当てですが、割り当て後、31D0~31DAに「富士通」が書き込まれます。が、これは多分いつも一定だと思います。(たまたま昨日パーティションテーブルを解析しててこれと同じ文字列をチェックしていたのでわかった。すごい偶然。)
IO8:[31D0] 95 <- SJISで「富士通」
IO8:[31D2] 78
IO8:[31D4] 8E
IO8:[31D6] 6D
IO8:[31D8] 92
IO8:[31DA] CA
それで、ドライブレター割り当てですが、以下のようになっているようです。33CEHはシングルドライブモードの変更でも値が変わって、それ以外が増加した分減らして全体のサムが変わらないように調節しているように見えます。
ということで、これをもとにHD Image用ブートローダーにCMOS設定機能を追加してみます! 実現すれば津軽またはUNZ上で作ったHDイメージとSCSI仮想化ツールだけあればCMOSが死んだ状態から起動可能まで持っていけるはずです!
。。。。今日と明日はミーティングが山のようにあるんだよな。さすがにミーティング中にMASMプログラミングはできんから週末の作業だな。
IO8:[31DC] 00 <- 多分Aドライブ
IO8:[31DE] 00
IO8:[31E0] 00 <- 多分Bドライブ
IO8:[31E2] 01
IO8:[31E4] 05 <- 多分Cドライブ
IO8:[31E6] 00
IO8:[31E8] 02 <- ここが変わった (割り当て前FF)
IO8:[31EA] 00 <- ここが変わった (割り当て前FF) 上位4ビットがSCSI ID, 下位4ビットがパーティションぽい
IO8:[31EC] FF
IO8:[31EE] FF
IO8:[31F0] FF
IO8:[31F2] FF
IO8:[31F4] FF
IO8:[31F6] FF
IO8:[31F8] FF
IO8:[31FA] FF
IO8:[31FC] FF
IO8:[31FE] FF
IO8:[3200] FF
IO8:[3202] FF
IO8:[3204] FF
IO8:[3206] FF
IO8:[3208] FF
IO8:[320A] FF
IO8:[320C] FF
IO8:[320E] FF
IO8:[3210] FF
IO8:[3212] FF
IO8:[3214] FF
IO8:[3216] FF
IO8:[3218] FF <- 多分Pドライブ
IO8:[321A] FF
IO8:[33CE] 45 <- ここも変わった。↑で増えた分減ってるっぽい。多分チェックサム一定化調整。
2020-10-02 00:32:27
随分と前のことですが、モデル2のブートロムを追っかけたことが有って、その時に作成した使用CMOSの資料が有りました。
何分素人が逆アセして目で追いながら作成した資料ですので、間違っている部分も多いとは思いますが役に立てばと思い此処に書き込んでみます。
3180 ?(bit0をチェックしている)
3182 ?
3184 ?(3182とセットで使用 3184→AH,3182→AL)
318E ?(ジャンプテーブル?のベース)disk_command_04
3190 ?(上記テーブルで使用? 3198まで?)
3192 ?
3194 ?
3196 ?
3198 ?
319A ?(読んだあと、and al,0CFh xor cl,al jzと続く)
319C SS(現在のSS:SP)
319E SS
31A0 SP
31A2 SP
31A4 SI
31A6 SI
31A8 SP(ローカルSP)
31AA SP
31AC ?
31AE ?
31B0 ?
31B2 ?(起動時にクリアされる)
31B8 ?(起動時にクリアされる)
31BE ?
31CC ?
3A50~3A5A ?
3A64 ?SP(割り込み処理で使用)
3A66 ?SP
3A68 ?SS
3A6A ?SS
3A6C ?(MasterPIC IMR)
3A6E ?(SlavePIC IMR)
3A70 ?(割り込み要因レジスタの値)
3A98 ?
3B50 ?
3B60~3B6E CD_CMOS_PARA
3B70 CD_CMOS_DATA0
3B72 CD_CMOS_DATA1
3B74 CD_CMOS_DATA2
3B76 ?
3B78 CD-CMOS_DATA3
3B7A ?
3B7C ?
3B7E ?
3C22 ?
3C24 起動時のDX
3C26 起動時のDX
3FC6 ?
3FC8 ?
2020-10-02 11:09:53
ああ、ごめんなさい。
上の資料は元々モデル2で逆アセしてたのですが、途中でHCになったので混在している可能性が有ります。
2020-10-02 11:11:43
たまにはこっちにも書いてみます(?)
TownsOSや起動時の処理に影響するCMOSの内容を、既知の物も含め2点あげておきます。
3C1A 起動時メモリ診断モード(0=通常モード、1=簡略化モード) 3代目あたりから有効
3AD8 各種フラグ (bit7が1の場合、高解像度モードモードON) ハイレゾ機で有効(とはいっても起動時に参照するわけではない)
2020-11-07 12:31:39
SCSIのPhaseのMESSAGE_INとSTATUSの順を入れ替えたら、とりあえずSCSIのエラーは出なくなりました。
が、HIMEM.SYSインストール中に割り込みハンドラを破壊という現象が起きていて原因を調査中です。
なお、デバッガで BRKON INT 21 AH=3D としておくとfile openで止まるので、pri cst するとどのファイルを開くとこかわかるようになってます。
2020-07-28 12:59:54
VERR/VERWありがとうございます。VERRを通過して、CLTS(0Fh 06h)で死亡しました。T-OSはなぜタスク機能を使ってるのか……。
お盆あんまり関係ないんですよね。まとまった時間取れれば集中してドライバ書いてたいのですが。
2020-08-14 21:33:10
CLTS実装ありがとうございます。TBIOSLD.SYSとTOWNS.SYSを組み込んだ状態で起動するようになりました。
ですが、COCO で forrbios.nsd を組み込むとコードでない場所(V86モード)を実行して止まるようです。
(COCOを組み込まなくても適当なEXPを起動してると同じようなところで停止。同条件でEMM386を組み込まない場合は問題なし。)
なんとなく根が深そうなので、お時間あるときに見ていただけら嬉しいです。
2020-08-15 15:15:40
あらぬ場所にジャンプしてしまう現象は、考えられる可能性として高いのは、
(1) Exceptionを正しく出してない。
(2) Exceptionの出し方が正しくない。
(3) Task Gateを使ってジャンプしている。
(4) CPUコアに未発見のエラーがある。
と、このぐらいだと思います。多分、(1)だと思うんですね。なんとか環境を作って調べられないか検討してみます。
2020-08-16 02:51:32
>>40
TOWNS-OS on DOS6環境を作るには、DOS6をインストールしたHDD区画に対して、TOWNS-OS V2.1L40以降のシステムCDを起動して、アイコンから新規インストール先として指定すれば、DOS6上にTOWNS-OSがインストールされます。
これで128MB超えのHDD区画もバッチリ認識……じゃなかった。これで上に書いた問題も再現します(V2.1L50にて確認)。
2020-08-17 18:16:55
了解しました!詰まったら、多分実家から回収してきたFM Townsシステムセットアップガイドを見ながらなんとかできると思います。(一応共著者に名前入ってるけどDOS6の部分は全部武井先生が書いた)。やってみます!
2020-08-19 05:36:29
状況再現しました。クラッシュは↓ですね?
3FF8:000014E1 FFFF
この直前がIRETDで、NT=1となっているので、どうやらTask Returnというのを実装しなくてはならないらしいです。戻ってくるアドレス自体は正しいのですが、素直にStack ReturnsしてしまうとVMフラグをクリアしてしまって、3FF8をセレクタと解釈してとんでもないリニアアドレスだと思っているようです。
想像なのですが、ここはRUN386の中のようで、このTask Returnした先でVMフラグをクリアして3FF8:000014E1に戻してRUN386に続きをさせるということではないかと見ています。
どのぐらい簡単か難しいかまだわからないので、ちょっと勉強してみます。
2020-08-19 08:45:30
うーん、もはやどれを信じていいのかわからない。i486 Programmer's Reference ManualのPsuedo Codeによると、
(* Protected mode *)
IF VM=1
THEN #GP(0)
ELSE
IF NT=1
THEN GOTO TASK-RETURN
と、あるものの、下の説明では、
#GP(0) fault if the IOPL is less than 3, to permit emulation
しかし、VM86モードのIOPLは3のはずだから、'less than'にはあたらない。ので、Pseudo Codeとテキストの解説が矛盾してます。結構こういう誤記なのか手抜きなのかわからない表記多いんですよね。
ここの記述→では、https://www.felixcloutier.com/x86/iret:iretd
IF(EFLAGS.VM=1)
THEN GOTO RETURN-FROM-VIRTUAL-8086-MODE;
ELSE GOTO PROTECTED-MODE;
RETURN-FROM-VIRTUAL-8086-MODE:
(*Processor is in virtual-8086 mode when IRET is executed and stays in virtual-8086 mode*)
とあり、その説明では普通にNTフラグにかかわらずStack ReturnするがVMビットは影響を受けない。とのこと。しかし、そんなことはi486 Programmer's Reference Manualを見る限りまったく書いてません。POPFDではそういう記述があるんですけどね。VMフラグそのたいくつかのフラグはPOPFDによって変化しないそうです。
それで、Task Returnを調べたところ、TSSにReturn先のTRが書いてなければならないことになってますが、EMM386環境ではタスクはひとつしかなくて、ほかのタスクにリターンしたくてもそもそも戻り先タスクが存在しなさそうです。
一番都合のいい解釈は、VM86モード下のIRETではVMフラグが変わらない以外は基本的に普通のIRETと一緒、とする説なので、そのようにしてみたところ、DOS6上でTowns MENUが起動しました。例によって現在ctestを流しているので、全部通ったらソースをPUSHしますね。
2020-08-19 09:44:41
>44 山川機長さん
もうある意味解決しているのかもしれませんが、INTELのia32_arh_dev_man_vol2a_i.pdfの該当個所を見てみると、
RETURN-FROM-VIRTUAL-8086-MODE:
(* Processor is in virtual-8086 mode when IRET is executed and stays in virtual-8086mode *)
IF IOPL=3 (* Virtual mode: PE=1, VM=1, IOPL=3 *)
THEN IF OperandSize = 32
THEN
IF top 12 bytes of stack not within stack limits THEN #SS(0); FI;
IF instruction pointer not within code segment limits THEN #GP(0); FI;
EIP ← Pop();
CS ← Pop(); (* 32-bit pop, high-order 16 bits discarded *)
EFLAGS ← Pop();
(*VM,IOPL,VIP,and VIF EFLAGS bits are not modified by pop *)
とあります。
2020-09-02 14:39:35
そうですね。とりあえずDOS6を走らすレベルでは解決しましたが、ありがとうございます!一応、i486 Programmer's Reference Manualというのを参考にしていて、Intelの公式出版物のようなのですが、エラーが多いです。Intel公式のSoftware Development Manual (多分ia32_arch_dev_man_vol2a_i.pdfがそれかな?) を参考にする方が良い、と、とある知り合いの方から教えていただいたので今後はそのようにしようかと思ってます。
2020-09-03 05:33:45