他愛もないない事から、悩み事までなんでもお書きください。
では、手始めに私の困ったことから。
我が家の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
困っていることではないのですが、私のTOWNS歴は、モデル2 → MA → HB と、見事にWINDYさんの1ランク下ですねw
もうずっと実機は触ってないのでCD-ROMドライブは動くのかどうか?(その前に本体が動くのかどうか‥)
2020-07-30 21:59:37
to fuzzballさん
ホントに見事に被ってますね。今となってはMAでもMXでも,HBでもHCでも同じような物ですけど。(汗)
環境が許せばぜひ実機に火を入れてやってください。 漏れなくHBの爆音に引くことは間違いないと思います。
その際にはバッテリも切れてるでしょうから、交換が必要になると思いますが、こちらの方は今でも割合と情報は入手できますので何とかなると思います。
因みに私はHCのバッテリーをニッパーで切り落として単4電池BOXをハンダ付けして外に出すと言う魔改造を施しました。これで10数年は持つかと・・・
2020-07-30 23:20:08
僕は model2 -> 2F -> 20F -> MX でしたね。2F, 20Fは旺文社の高校生パソコンソフトコンテストでもらいました。その影響で、2Fはたったの1年しか使っていなくて、しかも一応受験生だったのでそんなに激しくゲームとかできなかったので、保存状態が良く、CDドライブも今のところ何の問題もなく動作しています。MXは渡米時に友達にあげてしまったまま行方不明なのですが、ヤフオクで新しいのを落としたものの、CDドライブがダメになってました。普通のCDは読めたり読めなかったりで、CD-Rは全滅ですね。またBドライブが読めるけど書けない(本体は書いているつもり)という問題もあります。が、ときどきイベントで実機が動作してるところを見せたくてYSSCSICD.SYSを開発してしまうという功績がありました。
2020-07-31 10:27:02
私のTowns遍歴を間違ってました。 2Fじゃなくてmodel2でした。
実感ではありませんが、ネットでの評判だとM*以降位のドライブは弱いような話をよく目にしますね。
うちのmodel2もCDドライブは大丈夫ですよ、この前立ち上げたら恐ろしく遅くてビックリしましたが。
ただし、今のモニターが31KHzからなのでTownsOSが立ち上がるまで見えません。
今の野望は15KHz,24KHzからのスキャンコンバータの制作と、TownsのCD-ROMドライブの解析ですが・・・ 先が長そうですね
2020-07-31 13:13:02
なぜか皆んなHRをスルーしてますねw 横置きに抵抗があったのかなぁ(忘れた)
私がHBを買ったのは96年だか97年だかでちょっと遅かったのですが、
その時に調子の悪かったMAのドライブを交換修理しました。
なので、ほとんど使ってなくて状態はいい‥かも知れません。
ちなみにモデル2は処分してしまいました。
(サイドパネルとCPUだけ形見に取ってます)
2020-07-31 20:27:54
私の場合、HRは購入タイミングの谷間だったのですが形は好きですね。あと、あの特徴的な色はHR世代が最後ですが大好きでした。
HCも当初は購入予定ではなく、TOWNSが続いていたらパスしていたでしょう。PureTownsの打ち切りの報を聞いてからの購入です。
使ったパソコンは・・・・ 全部有りますね、なんだか情が入って捨てることが出来ないのです。FM-7,TOWNS,GATEWAY G6-300,メビウス,・・・・・
でも使っていて一番面白かったのはTOWNSとFM-7だったりします。
2020-07-31 22:56:49
私は、HR -> H20(V-TOWNS)でした。どちらも、皆さんが避けているモデルですね(^^;)
白TOWNSが発売されたときは、HRより、いろいろ機能・性能強化されていて
HRを買ったことを、ものすごく後悔しました。でも、HRのカラーだけは、気にいっていました。
HRは、私が中3ぐらい時に買ってもらった、初めてのパソコンで、
しかも、パソコン詳しい友人もいなく、PC-98とTOWNSで、動くタイトルの数が、
全然違うことすら知らずに、性能が高い方が良いと思って、TOWNSにしました。
なぜ、TOWNSとPC-98で両方で動くソフト、片方しか動かないソフトがあるのが何とかならないのか。
エミュレーターなるものが作れないか、必死に調べました。
そのおかげで、そこそこ、パソコンに詳しくなって、今の仕事へ繋がったので、
最初にTOWNSのHRだったのは、良かったと思っています。
自分で、エミュレーターを書き始めようとしたら、うんづが登場して、
いつか、ソースも公開するという話だったので、ソースの公開の楽しみにしていました。
しかし、開発が止まって、いつか、再開すると期待していて、
ときどき、うんづの掲示板に、見に来ていたのですが、
山川機長さんの「津軽」プロジェクトを知って、
すごい勢いで日々進化する「津軽」に毎日感動しております。
ちなみに、V-TOWNSは、TOWNSカードだけ欲しくて、型落ちしてから買ったものですが、
TOWNSカードが動くかは、チップセットの機能の有無で、マザーボードが限られる上に、
半田ごてで、マザーボードを改造する必要があったので、マザーボードを買ったまま
結局改造しませんでした。
HRもH20も、置き場に困って、5年前に捨てましたが、つい最近、
ヤフオクで、HRとFresh Tを落としました。ただ、まだ、試せていません。
(どちらも、一応、発送前には、CD-ROMドライブが動作するのを確認してもらってますが...)
2020-08-03 12:16:41
>>8
初めてのパソコンがHRですが・・・・ 少しジェネレーションギャップを感じます(涙)
当時はメーカー毎/シリーズ毎に互換性なんて無かったので、各社の個性が出ていて面白かったですよね。
古い話で今更どうのこうのは言いませんが、今になって思うのは「凸凹は必要かな」と 少なくとも私にとってはそれが面白かったのは事実です。
ヤクオフで落としたHRとFreshTも是非再稼働させましょう! 協力します。
是非、第4のエミュレータも・・・・ (冗談です・・・ しかし、有ればうれしい)
2020-08-03 14:23:12
WINDYさん、初めまして!
私も、当時は面白い時代だったと思います。
TOWNSの再稼働計画でうまく行かなかったら、
相談させてください。
時間見つけて、試してみたいと思います。
第4のエミュレータも、トライしてみたいですが、
山川機長さんみたいな才能は無いので、
津軽が完成?してから、技術資料みたいなものが
整理されたら、チャレンジしてみたいです。
2020-08-03 22:45:34
WINDYさん、参加者の皆さん、初めまして。
先日までFM-8/7シリーズエミュレータの開発(メンテナンス?)を担当しておりました「たけがみりう」と申します。
Kasanovaさんのリンク欄でのご指摘通り、うんづ板では一時期を除いて「匿名キボーン@うんづ板」という名前でたまに書き込んでいたりしたので、一部の方は覚えているかもしれませんね。
なんかTOWNSの乗り換え履歴を書くのがお約束(?)になっているようなので私の場合をメインマシンのみを簡単に紹介しますと、20F→HR→MA→HC→グレー外装のMX(Am5x86-P75 with アーバンODPざぶとん憑き)→Fresh・GS→SH20といった感じです。なぜかやみなべDXの副編集長のGaKさんには初代から持っていると勘違いされていましたし、新品で買ったのは20FとHCだけなのですが(汁)。
当初はXM7が一段落したら第3(ではないんですけどね、実は)のTOWNSエミュレータを開発しようと思っていたのですが、Artane.さん、山川機長さんによるオープンソースのTOWNSエミュレータ開発着手の知らせを聞き、やる気がなくなりました(^^;)。
というわけで、今後ともよろしくお願いいたします。
2020-08-08 08:57:27
>>11
あっ、りうさんだ。
2020-08-08 14:04:16
>>12
nabe@abkさん、ご無沙汰しておりました。某所(^^;)の「Inside TOWNS-OS」の一部解析やKokPlayのFree386対応(というかなんというか)ではお世話になりました。
僧天さんやたけくんのMSV系サイトや佐藤さんの「V-TOWNSの部屋」がなくなってからしばらくはあまりTOWNSに触れていなかったのですが、数年前にヤフオクにてジャンクのSH20を入手し、たまに火を入れて遊んでいます。
津軽/emuFMTOWNSにおいて何か協力できることがありましたら協力しますので、こちらでもよろしくお願いいたします。
2020-08-08 15:59:13
>>11
たけがみりうさん、こんにちは。
TOWNSエミュレータの開発宣言を楽しみにしています(嘘)
実は私はFPGAブームの際にFPGA-7を画策していた事が有ります。
ひねくれ物の私は頑なにC言語を拒否して来たために、情報処理を学生時代に学んでいたのにC言語が未だに中途半端で就職の際にもハードウェア系に進んだ事もあって、C言語で組むよりもVHDLで組んだ方が解りやすかったので、試しにシングルCPUの6809マシンをFPGAで組む所までやったのですが・・・ そこで妙に納得してしまって、放置しています。 またやる気になったら相談させていただきます!
2020-08-08 22:17:07
>>11
たけがみりうさん、初めまして!
ヒロと申します。
ようやく見つけたHR仲間です(^^;)。
ぜひぜひ、よろしくお願いします。
アーバンODPざぶとんは、私も買いましたが、
5年前、ハードウェアは根こそぎ捨てたので、
ヤフオクで買い戻しているところです。
この10年ぐらいは、主にRを使ったデータマイニングをやってきました。
20年前ぐらいは、新しい機械学習の方法論をCで開発していたりしました。
しかし、私は、学校・大学でもプログラミングを習ったことが無い
えせプログラマです。
Cを独学で覚えたのは、TOWNS エミュレーターを作りたかった
からですのが、もう必要なさそうですね。
もともと大学の専門は、化学・生物工学科だったので化学・生物ですが、
なぜか、今は、人様には、「物理化学(量子化学など)」を教えています。
(シュレーディンガーの方程式の解き方とか....なんでやねん)
フリーランスのプログラマに憧れてます!
これから、よろしくお願いします。
2020-08-08 23:28:49
たけがみりうさん、Wikiの方ではコメントしましたがあらためて初めまして!
こちらで日本から輸送したFM-7, 77AVを再稼働させるときXM7には非常にお世話になりました。PCのFDドライブから320KBディスクの読み書きが難しくなるにつれてRS232Cでデータをやりとりするしかなくなったのですが、XM7がRS232CをエミュレートしてくれていたのでXM7上でテストして実機に持っていく方法でRS232Cユーティリティを書くことができて、ついにディスクをリダイレクトしてThexderやDragon BusterをRS232Cから実行することにも成功しました。今年はコロナの影響でキャンセルになりましたが、こちらの大学で年に2度ほどレトロPCを稼働状態で展示するイベントがあるのですが、富士通のFMシリーズは珍しくて好評でした。去年の11月のイベントではたしかヨーロッパから来ていた研究員の人がFM-7上でRS232C経由で走っているThexderを見て、「これは僕が初めてプレイしたゲームだ!」と言って感動してました。なお、津軽開発の大きな目的のひとつは内蔵ドライブが壊れた実機でSCSI CDからソフトを起動するためのパッチを書くためのデバッガが欲しい、というのがあります。さらに津軽弁の開発でもFM音源が本来出すべき波形を見るためにXM7上でYM2203に書き込んで出てくる波形と津軽弁が出す波形を比較して調整したりXM7には非常にお世話になっています。ありがとうございます!
津軽の開発で、りうさんに協力していただけるのであれば非常に心強いです。引き続きよろしくお願いします!
2020-08-09 00:17:32
>>山川機長
Demosplashの作品見ました。上位常連さんで驚きました。
リベンジおめでとうございますw
2020-08-13 22:22:32
上位常連というか、大体各部門5本ぐらいしか参戦が無いですからね(^_^;)Demo文化を知るまではコピープロテクトというのは芸術作品であるソフトウェアを将来にわたって使用可能にすることを妨げるだけの悪である、と、思ったのですが、それへの反発としてDemo文化が発生したと聞いて、「ああ、コピープロテクトも文化に貢献したんだな」と、思うようになって、今ではコピープロテクトの技術自体も将来役に立つかはわからないとしても残しておきたい技術遺産のように感じています。なので、BrandishをできればD77にしてコピープロテクトを含めてエミュレートしたいんですが、最近D77ってめちゃくちゃ作りにくいですよね。実機Townsで作ってRS232Cで転送するコードを書こうと思ってるんですが。FM-7/77AVのディスクも最近は実機で読んでRS232CでWindowsに転送するようにしてます。一枚に40分かかるのですが。FM77AV40に刺せる38400bps対応RS232Cカードを開発中なんですがね。それができたら320Kが20分に短縮できるはず。
2020-08-14 10:49:54
ところで、気の長い話ですが、すでにUNZ用に互換ROMがあるので、あとMSDOS.SYS, MSCDEX.EXE, COMMAND.COMの互換モジュールさえ書いてしまえば自己完結型のFM Townsエミュレータて可能ですよね。COMMAND.COMはちょっと頑張れば書けるとして、MSCDEX.EXEも多分もう少し頑張れば書けるとして、MSDOS.SYSは相当頑張らないと書けないような気がしますが、FreeDOS (GPL)を改造してなんとかならんですかね。津軽はまだいろいろ残ってますが大体動くようになったら、そのうちトライしてみたいと思っています。(その時はできれば津軽の起動画面は青森県地図にしたい)
2020-08-15 04:07:53
>>19
MSCDEXの代わりは、以前書いた SHSUCDX がそのまま使えますよ(うんづでもTsugaruでも動作確認済)。
2020-08-15 14:10:54
あとMSDOS.SYSは、建前上は「機種汎用(機種非依存)」になっています(機種依存部分がIO.SYS)。
ですが、ROM中のMSDOS.SYSは、TOWNS専用APIを組み込むために多分改造されています。
逆にDOS6のMSDOS.SYSはおそらく無改造で、TOWNS APIは「TOS.SYS」として config.sys で組み込まれます。
何が言いたいかと言いますと、TOS.SYS に相当するものが用意できれば、
MSDOS.SYS の部分(DOS本体)は FreeDOS から流用できるんじゃないかなと。
ただまあ、このTOS.SYSが隠しAPIの宝庫なんですが……。
2020-08-15 15:36:47
訂正。現に DOS3.1 から MSDOS.SYS が生成できるということは、
「TOS.SYS」相当のAPIはIO.SYSにあると思われるので、MSDOS.SYSは他機種用の小幅な改造で動きそうな予感。
2020-08-15 15:47:25
連投ごめんなさい。
FreeDOSはIO.SYSとMSDOS.SYS相当が一緒になっているので、
MSDOS.SYS 相当に分離するのが相当大変そうですね……。
COMMAND.COMは機種依存するものではないでFreeDOS(or FreeDOS(98))の成果物がそのまま使えそうな予感。
2020-08-15 16:14:50
情報ありがとうございます!MSCDEX.EXEはすでにあるんですね!
僕もIO.SYSが機種依存のメイン部分でMSDOS.SYSは割と機種依存が小さいのではないかとみているというか希望を持ってます。MSDOS.SYSは.SYSだけに64KBに収まっているのではないかと思うのですが、今ざっとリアルモードのIDTを見たところ、INT 21Hのセグメントは1E42、同じセグメントに飛んでいるのはINT 28H, 40H, B0H, B1H, B2H, B8Hですね。
28Hはどうやらキー待ち、40Hはタイマーとして、B0Hはほかにも使ってる場所が結構あって、意味がわからなくて苦労したやつですね。去年(おととしだったかな?)実家で奇跡的にFM-R徹底解析マニュアルを発掘してきたので、ひょっとして、と、思ったのですが何も情報はありませんでした。
2020-08-15 22:21:12
INT B?Hは頻繁に使われてるのを見た記憶はあるけど、DOS内部でしか使われていなければどうということはない、と、思って試しにBRKON INTを使ってしらべたら、あえなくFM/PCM割り込み(4DH)から使ってました(^_^;)あ、思い出した。しかも、B0Hって中でSPを操作して一気に二段分 IRET するからCallstackを惑わせてくれる厄介な奴だった(今は上流までさかのぼって探すことにしたから惑わない)。なんかだんだん思い出してきたような。MS-DOSの処理は AF37 セグメントでやってたような。だとすると1E42セグメントは実はIO.SYS、あるいは別のドライバがTake Overしてるやつ鴨しれないですね。何もデバイスドライバ入れない状態でどうなってるか見てみるといいのか。はっ!しかし、今こんなことを始めてしまったら月末から大学の秋学期が始まるのに絶対大変なことになるからせめて感謝祭の連休まで封印しなくては。
2020-08-15 22:42:32
ああ、そういえば、もうひとつ津軽を作って確認したいと思ってたことがあるんですが、MX以降の機種って本当に1.44MBフロッピーディスクから起動できないもんですかね?だんだん1232KBでフォーマットできるDOS機が減ってきて、実機動態保存の障害になりつつあるのですが。もしも、自分でIPL書いてでも、1.44MBあるいは720KBフロッピーディスクから起動する方法があるなら、いったん起動してしまえば実機で1.2MBディスクのフォーマットはやりたい放題なので。現状の本体の内蔵CDが死んでて1.2MBの起動フロッピーも無いと手も足も出ないという状況をなんとか打開したいと思ってるのですが。
究極的にはFPGAで内蔵CDドライブのエミュレートを目指してるんですが、そんなに早くはでき無さそうなので。ちなみに、そのときに備えてカーネギーメロンの電子工学科が廃棄処分にするはずだった$5000の(ただし新品だった当時)Logic Analyzerをひとつもらってきてあります。そういや電源入れてないな。本当に起動するのだろうか。
ちなみに、SYSROMですが、INT B?Hは、Towns OS V1.1では使用してないようですね。ということは互換MSDOS.SYSを作る場合INT B?Hは心配しなくても良さそうです。あと10日で秋学期が始まってしまいますが、授業が始まったら、とりあえず津軽弁をもう少しなんとかしつつIO.SYSがMSDOS.SYSを組み込む仕組みとかデバッガでたどって調べてみようかな。
2020-08-21 10:09:14
>26
津軽でI/O020CのWriteでBRKONしてみましたら、ブートROM内で40Hを書き込んでいますので、この時点で2HD(1.2MB)を指定しています。
仮にこの部分を何とかして1.44MBを指定するようにしたら、IPLを自作すれば起動自体は出来そうですがその後のDOSもセクタ長=1024を期待していると思われますのでこちらの方も手を加えないと駄目なような気がします。
違ってたらごめんなさい
2020-08-21 12:45:48
調べていただいてありがとうございます!うーん、しかし、そうでしたか。なんで日本は1232KBなんていう規格を標準にしてしまったのか。IPLさえ読んでくれれば、IO.SYS以降は1440KB対応していると思うんですがね。やっぱり究極的には実機の動態保存には内蔵ドライブをFPGAか何かでエミュレートするしかなさそうですね。縦置きTOWNSにはDOC Brownが対応するとか聞いたのですが。
2020-08-22 02:56:12
FDX68 で検索すると良いですよ。
2020-08-22 19:22:44
なるほど!HxC以外にもフロッピーエミュレータあるんですね!もっとも最近アメリカに物資を送るのが大変なんですけどね。たしかに、YSSCSICD.SYSはあるので、とりあえずフロッピードライブさえエミュレートできればなんとかなりそうですね。僕としてはクラシックPC研究会さんで作ってくれたら買うのになあ、とか思っているのですが。
2020-08-23 06:29:50
パソコンに接続してFDDをエミュレートする物としては、HxCやその互換機等たくさん有ります。
FDX68は上記の機能に加えてFDDを繋げてメディアのデータを収拾する機能を有するものですので、データのマイニングにも使用可能と言うところが非常に優秀です。
ただ一点だけ残念なところを挙げるとするとオープンソースではない事で(提供は受けれるが、改変したプログラムを勝手には開示できない)、標準機能に足りない処理や特殊な事例において、個人で改変する事は可能ですが、その成果を勝手に配布できないところです。
HxCを制作された方が最近、新しくオープンソースで開発しているデータマイニング用ハードとしてPaulineと言うものが有りますが、こちらはFPGA(恐らくTerasicのDE10 Nano)のソースからハードの回路図まで開示されていますので、興味があれば一度覗いてみては如何でしょう?
(KryoFlexに能力的な限界を感じて制作されたようで期待は出来そうです)
https://sourceforge.net/p/hxcfloppyemu/code/HEAD/tree/HxCFloppyEmulator/Pauline/trunk/
2020-08-23 07:29:08
>WINDYさん
FDX68がオープンソースソフトウェアではない理由ですが、FDX68の開発者であるGIMONSさんは以前X680x0エミュレータ「XM6 TypeG」の開発も手がけられており、かつてはバイナリも公開されていました(ソースについては一貫して一般公開はされていません)。しかし、6年ほど前にMESS(レトロPC/ゲーム機のマルチエミュレータ。現在はMAMEに統合)のコミュニティに所属しているドイツ人から「XM6 TypeGを勝手ビルドしてWindowsXPに対応させたいからソースを寄越せ」(注:XM6 TypeGは途中からWindowsVista以降のみ対応ということになりました)というムチャクチャな要求をされ、それに対して相当憤慨なされたようで、その際にXM6 TypeGの一般公開をやめて内輪向けに対するリリースへと変更したという経緯があります。その後XM6 TypeGは再びバイナリの配布を再開したのですが、昨年にそれもまたやめてしまい、XM6の原作者のPI.さんにソースとバイナリをお返ししており、現在では表向きには最終バージョンとされているバイナリのみがPI.さんのサイトで配布されているという状況です。そんな経緯もあり、FDX68やRaSCSI(Raspberry PiでのSCSIエミュレータ)についてもXM6 TypeG同様に非オープンソースの方針をとったものと思われます(詳しいことはご本人に伺ってみないとわかりませんが)。
あと、KyroFluxやPaulineについてはAPIがWindowsのDLLしか公開されていないこともあり、マルチプラットフォームエミュレータである津軽には向かないのではないかと思います。
2020-08-24 14:47:01
>↑(ただの自爆)
また書き忘れました(いけないな~…)。
オリジナルXM6およびXM6 TypeG(ついでにXM7/XM7 TypeRも)はそもそも「オープンソースソフトウェア」でも「自由ソフトウェア」でもないため、バイナリおよびソースの配布については作者が自由に条件を定めることができます。これを理解しないで「ソースが公開されているからオープンソースだ!」と勝手に勘違いし、大さわぎするアレな人も一部にいますが念の為。
2020-08-24 15:03:42
>たけがみりうさん
MESSの件については、概ね理解をしていました。 残念な事ですが仰る通り作者が好意でソースを公開している事を「オープンソースであり、改変や公開が自由に行える」と勘違いしている方が存在する事も確かです。(そう言うアレな方のおかげ?でソースが非公開になり、自分の知識やスキルアップのために見れないのは残念で仕方ない事ですが)
FDX68もイメージファイルであるFDX形式の仕様を公開されているので津軽でのFDX対応も出来るでしょうし、実際の所は使ってみたら全く問題がないのかもしれません。
個人的に人柱で1つ購入してみる手は有りかと思っています。(問題が有るのかどうかは使わないと判らないので)
2020-08-24 17:21:24
りうさん、
ああ、そういう人いますね。僕もYS FLIGHT SIMULATOR公開した当時、ソースよこせメール、とか、オープンソースにしろメール、が多数届いて、本当はソース公開しようと思ってたのにやっぱりやめたという経緯がありました。(でもGithubでリリースする味をしめたのでそのうちするかも)。せめて丁寧なメールで頼まれるならまだしも、まるでソースもらえることが当然の権利であると思ってたり、ソースを公開しないのが悪みたいな言い方されると絶対ソース出してやらねえ、と、思ってしまいますね。津軽を始めたときもある程度トンデモメールやトンデモメッセージが届くであろうと思ってたのですが、今のところ一件も届いてません。仮に届いても自動的に無視するんですけどね。
2020-08-24 21:47:35
>WINDYさん、山川機長さん
フリーウェアを作っているといろいろありますよね…特に山川機長さんのように米国在住となると自由ソフトウェアやオープンソースソフトウェアの概念が日本より浸透しているだけによくありがちです。
日本国内の状況をGIMONSさんの言葉を借りて言わせていただくとすれば、昔は「モジュール+価値観」として存在していたものが、いつの間にか「モジュール」しか存在しなくなっていた(それか価値観だけ変な方(悪く言えば西洋かぶれ?)にアップデートされたか)、といった感じでしょうか。意図的に「フリーウェア」と「フリーソフト」(和製英語)と「フリーソフトウェア」が混乱されて使用されているみたいだし。
以下、自分語りになります(笑)。
実はXM7(XM7[改]) V3に関しては、自分にとって初めてのWin32ソフト公開と言うことで当時FTOWNSのRTCで仲が良かったK_OKADA氏(画像ビュアー「ViX」で有名ですね。最近別のハンドルでいろいろと活躍されているようで何よりです)にだいぶ脅されつつも(^^;)参加したのですが、当初は感覚をTOWNS時代そのままでアップデートしないで始めたので、PI.さん側によるV3.0L30/V2.5L20が出たところまでで深追いをやめておけばよかったんです。
当時何故判断を誤ったのかは謎ですが、PI.さんがXM6の開発に専念されると言うことだったのでこちらで微妙な修正版を出した数日後にあの事件がやってきました。ええ、例の「HuVOICE事件」です(XM7のドキュメントでもソフト名等の明言は避けつつ、いろいろと書いてきましたが)。「XM7をHuVOICEに対応させてください」というだけならまだしも、何とディスクイメージまで送りつけて来られたので、こちらとしては「(日本国内では)著作権法に抵触する可能性がありますのでおやめください」と断ったところ、相手は何の権利があってか知りませんが「それはXM7の開発に逆行する」とか言い出し、そこでもう泥沼。それに対するこちらからの返信は「そんなに私(注:りう)を苦しめてまでHuVOICEの対応を迫るのは何故ですか。自分が持っていないソフトに対して苦労してまで対応する価値が見いだせません。」となったのですが、さらにそれに対しての返答は…何と、予想外の「私(注:HuVOICEを送ってきた人物)は著作権関連の仕事をしている。謝罪しろ」ということでした。そのときに一切返信を出すのはやめ、それ以来「謝罪」という言葉が大っ嫌いになりました。どっちが犯罪者だよ…。そんなこんなでXM7以前にFTOWNSでもすったもんだあり(2000年頃にFTOWNSに出入りしていた方ならご存じのあの事件ですが、ここでは詳細は伏せます)、さんざんK_OKADA氏には先輩としてのアドバイスをいただきつつも頭がおかしなのと付き合ってから今年で20年以上。イタい書き込みやメールは数百件。いや、ネットって広大だわ。
というわけでここまでの長文に付き合っていただいた方には感謝します(笑)。
2020-08-25 01:06:08
いや、ホント、色々あります。 私は本当に小さなプログラムしか組めないので、ネットはおろかNifty等へも今までソフトを公開していませんが、たけがみりうさんやGIMONSさんのような嫌な思いは体験していませんが、ユーザー(と言っていいのか?)からの圧や無理なリクエスト,ソースの無断盗用等により公開を中止された作者さんやネットやNiftyから遠ざかった作者さんを随分見てきました。
話は変わりますが上で私は「FDX68を個人的に購入するかも」と言いました。ポチる直前まで行ったのですが、生憎FDX68の在庫が無いのでライセンス関連をもう一度考えた結果、購入はしないと結論を出しました。(しないよりも出来ないに近い感覚です)
これは、FDX68を購入して回路図やソースを受けてしまうと、今のライセンス上では類似の機能を持ったデバイスが作れなくなる事も考えられる為です。
本当は有るものは活用したいのですが、今現在私の手元にFDDのデータマイニングを行うためにあれこれやっている現物(当然今の時点ではFDX68の影響は受けていません)が存在し、この先FDX68を購入してハード的にもソフト的にも情報が入ってしまうと、影響を受けずに開発できる確たる自信がないのと、(しないだろうけど)ネットに私が開発したものを公開した際にGIMONSさんへ迷惑をかける可能性を生む事を懸念した為です。
(購入者が自分のプロダクトと関連した物を公開した場合、普通でも盗用を懸念しますし、良くは思わないでしょう)
従って、私がFDX68を購入するかもしれないと発言した内容については撤回したいと思います。
2020-08-25 07:31:49
削除済
2020-08-26 20:33:21
削除済
2020-08-26 20:34:52
削除済
2020-08-27 21:18:38
皆様のお奨めのpcありますか?
2020-08-28 15:47:34
>41 皆様のお奨めのpcありますか?
それを此処で聞くのは野暮でしょう。
TOWNSが好きだから此処に居ます。でも、普通の人にはお薦めしません。(新製品も出ませんし)
2020-08-28 17:20:14
仕事用のPCの隣にTOWNSと77AVがいつでも稼働状態で鎮座してると最高ですね!
2020-08-29 11:19:05
>42
77AV40EXが欲しかったんですよ、SXがアレだっただけに。(流石に黒→大理石は萎えました)
今でも欲しいので時々ヤクオフとか覗くんですが、趣味にしては高すぎるヨ
2020-08-29 21:50:27
カセットコネクタが廃止されたのは40EXでしたっけ?うちのサイトにT77イメージをRS232Cにリダイレクトするプログラムを置いてますが、なんと、ロシアから使い方を問い合わせるメールがあって、なんでも77AVSXがなぜかロシアのご家庭にあったらしく、テープ版ソフトを実行したいとのことだったのですが、無事RS232C経由で実行できたらしいです。僕はFM-7系だと最後に使ってたのは77AVでした。青森県立弘前高校在学中に自分でパソコン部を発足させたので、卒業するときに寄付してきてしまったのですが、さすがにもう残ってないでしょうね。今手元にある77AVはヤフオクで落としたやつですが、フロッピードライブにフタが無いので中がやや汚れているものの完全に動作してます。現役当時どういう人に仕えていたんだろう?と思いますが、聞いても答えぬ77AVですね。あとAV40が二台あるんですが、一台は普段使い、もう一台はスペア部品用と思ったらどっちも普通に動いてしまって。AVシリーズって丈夫にできてるんですね。FM-7も二台あって、片方は僕が11歳のとき使ってたやつと、もう一台部品取り用に買ったら、これもやっぱり完全に動いてしまってます。
2020-08-29 22:29:29
>山川機長さん
CMT I/Fコネクタが廃止されているのは20EXと40SXの2モデルなのですが(40EXは付いてます)、数年前に手元にある40SXをバラしたところ空きパターンがありました…w
2020-08-29 23:46:10
18年ぶりにMAの電源を入れてみましたが、ひどいものでした。
CD-ROM: 回転すらしない
HDD: スピンアップしない。内蔵ベイ脱着の衝撃で復活(読めないファイル多々あり)
電池: もちろん切れています
マウス: 行方不明
Tsugaruでフォーマットしたフロッピーイメージを焼いたところにDOS6のsetup2.exeをコピーしてどうにかなりましたが
電池と替えのHDDをなんとかしないとだめですね…
HDDの中には「ろりろりぽん」(健全な麻雀ゲームです)や「館」(3Dアドベンチャー)といった
懐かしいゲームのアーカイブもありましたが、いずれもファイル全体を読み取ることはできず残念です。
2020-08-31 07:09:32
>47
電池は3Vのボタン電池(CR2450)を使用していると思いますが、CR2450は入手が困難なのでCR2032でもOKです。ただし、 容量が半減しますので数年でバッテリーが切れますので再交換する事を考慮して近付けの場合はバッテリーホルダーを使って取り付けると良いでしょう(HR等はバッテリーホルダーに入っているのでそのまま交換すればOK)。 私は単四電池x2をホルダーに 入れて接続しました。
HDDはIDE-SCSI変換基板を使ってIDEのHDDを内蔵化しています。IDE HDDは製造終了していますが、いまならまだAmazon等で買えると思います。
CD-ROMは今のところなんともならない訳ですが、起動に使用しないのであればSCSI接続タイプが有れば何とかはなります。
2020-08-31 07:52:13
一時期の外付けSCSI HDDがドライブ自体の価格差からIDE-SCSI変換基板を使用してあれこれ言われていましたが、
まさかあのボードに需要のある時代が来るとは、ですね。
いろいろ選択肢はあるようなので、ゆっくり考えてみます。(乾電池を使うアイデアは素敵です)
電解コンデンサが大変なことになっている例もあるとかで、一度全バラシも必要なようですし。
2020-08-31 08:30:51
>49
私はかなり前にHCに対してIDE-SCSI変換基板を使用して、手元にあったIDE HDDを内蔵しています。
注意点としては、HDDベイの大きさに限りがあるので変換基板の大きさや取付方法を考慮する事と、TOWNSの内蔵HDD用コネクタは確かSCSI信号と電源信号が入っている(=ピン数が多い)ので、全品ストレートではなく電源以外をストレートにつなぐ必要が有る事です。(電源用ピンは片方に寄っていたと思います)
(実例は有りませんが、SCSI-SFカードやSISC-SDカードも今となっては良いかもしれません)
2020-08-31 09:54:14
>47
MXの電池に関してはホルダのようです。↓
http://fmtowns540.blog.fc2.com/blog-entry-6.html
恐らくMAも同様でしょう。
2020-08-31 11:01:34
電池と言えば、今のところその兆候はないものの、2Fの電池が液漏れしないか心配しているのですが、充電池だから簡単に乾電池とかと交換してしまうわけにいかないですよね。なんかうまい方法ないもんだろうか。
と、これを書いていて、だったらEneloop数本直列で置き換えればいいんじゃね?という気がしてきてしまった。やってみようかな。
2020-09-01 23:16:16
電池で思い出しましたが、初代TOWNSのニッカド電池がすぐ充電できなくなるって問題があったような…それだけです。
2020-09-02 09:07:38
>52
2Fの電池が何であるかが判らないのですが、初代と同じニッカド電池の場合はEneloop(ニッケル・水素蓄電池)とはタイプが異なりますので置き換えはしないほうが良いと思います。
単に電池として放電させるだけであれば大丈夫でしょうけど、恐らく本体側より充電を行っていますので充電の方式が異なる事から問題が発生する可能性が有ります。
CR****とかのボタン電池(一次電池)の場合は、電圧と容量を気にすればよいのですが二次電池(ニッカドやニッケル・水素を含む)の場合は、充電器は専用の物を使用する必要が有ります。
気になったので初代のサイドパネル(左)を開けてみたら、コイン型電池を4つ組にした組電池が結束バンドで固定されていました。
時間がなかったので形番までは確認できていませんが、この電池についても代替品の検討を考えます。
2020-09-02 10:33:20
>pinさん
「ろりろりぽん」…またえらく懐かしいゲームをw プログラム:ITAROさん(板ろり) 音楽:H.IMOTOさん(芋にゃん) 絵:むかいしんやさん(ぱ弟子)と豪華なメンバーで作られたゲームでしたよね。
ちなみに弟の親友にUXとろりろりぽんをあげたら、その翌日は学校に来なかったそうです(^^;;;;;;;;;;
2020-09-02 10:47:12
モデル2の電池についてですが、向かって左側のサイドパネルを開けた所にオレンジ色の長さ100mm程の物が電池なのですが
ビニールの外皮で形状からボタン型電池だとは判断できるのですが、形番が見えないので外皮を剥いてみました。
結果的には外皮を剥いても溶接された端子が邪魔で完全には形番が読めなったのですが、そのサイズと一部の読めた形番から
リチウム電池 CR2450が4つと思われます。 少なくともLITIUM BATTERYの文字はほぼ完全に見えるので、二次電池ではなく
一時電池です。
電池自体の交渉電圧は3Vですが、ダイオードや抵抗の付いた小さな基板に載っていることから5Vを供給しているのかも知れません。
時間のあるときにもう少し見てみます。
2020-09-02 23:20:16
MAを分解してみました。富士通の職人さんによるジャンパ配線に圧倒されます。
電池はホルダー式と言いつつ、ホルダー内でリード線にはんだ付けされているので、いずれにせよ半田ごてを出す必要はありそうです。
ところで、よくスプライトRAMはSRAMなのでリセットしても内容が残っていると言われていましたが
MAにはTC528128BJ(128KBマルチポートDRAM)が9チップ載っていて、これがVRAM+スプライトRAMだと思われます。
>51 のリンク先にあるHRの基板でもDRAMっぽいチップが20並んでいるので、意外にSRAMだった期間は短いのかもしれません。
2020-09-03 01:13:29
>57
電池がコネクタに繋がっているのであれば、コネクタから先を自作する手もアリですね。
モデル2を買ってFPUを搭載する時にサイドパネルを開けたらジャンパが飛びまくっていたので、「最初の機種だから?」と思っていましたがHCを開けた時にもジャンパが飛んでいるのを見て少々呆気にとられた記憶があります。
仕事で色々な基板を見ましたが、あれだけジャンパが飛んでるのはそう見ません。製造時に手がかかって大変だろうにと思います。
2020-09-03 10:08:08
やっぱいきなりEneloopつなぐのはやめた方がいいですかね。2Fのバッテリーは専用の充電池っぽいです。MXもホルダー式で、中にはんだ付けされた電池が入ってます。多分MAと同じやつだと思います。大学においてあるやつは既にソケットにして簡単に電池を交換できるようにしたんですがね。今朝引っ張り出したMXはこれからです。
2020-09-03 10:35:29
>59 山川機長さん
2Fのバッテリーは上の56で私が確認したモデル2と同じでしょうか?
見た目がオレンジ色の被覆に囲まれている25x100mm位の薄い板状の物です。
もし、同じものであれば充電池では無く普通の電池(リチウムボタン電池)4つを基板上にハンダ付けされています。
2020-09-03 11:50:44
2Fのは充電池ですね。今確認してきました。YUASA 3-151FT-A 3.6V 150mAh NiCd とあります。基盤から赤と黒のリード線が伸びて、電池にはんだ付けされてます。電池の形状はボタン電池を3枚ぐらい重ねて外からShrink Wrapをかぶせたみたいな形をしています。充電池でさえなければ3.6Vの普通の電池で置き換えるのですが。充電池ということは、電源が入ると本体から逆に電圧がかかるものと思われるので、躊躇してます。
2020-09-03 12:32:48
>61 山川機長さん
↓これですね、買えそうですが・・・・ なんか怪しそうなサイトではあります。(汗)
https://batteryguy.com/yuasa+3-51ft-a-replacement-battery.html
こういう情報もあまり無いので、WIKIの方に載せたいですね。
2020-09-03 14:06:17
そうなんですよね。本当に新品?という心配があって。できればボタン電池みたいな一次電池に置き換えたいところなのですが。Townsではないですが、他のレトロPCでは、線を延長して本体の外に出すような改造をして液漏れが起きたとしても内部を破壊しないようにしてる人もいるようです。どうせサージが心配で日ごろは電源をつないでいないので結局起動するたびにCMOS設定しなおしになっているので、切ってしまうという手もあるんですがね。
2020-09-04 01:01:40
私もHCでは、単4電池BOXを外部まで延長して液漏れ事故を防いでいます。HCはボタン電池でしたので電圧だけ合わせた格好です。
2Fの場合は充電池なので方法的には2つあると思います。
1)同等品のバッテリーを使用するが、リード線部分を延長してバッテリーを筐体外に追い出す。
2)一次電池に交換したうえで、上記と同様にバッテリーを筐体外に追い出す。
1)は、単に延長ケーブルを制作するだけですので、非常に簡単でコストも押さえることが出来ますが、充電池の入手が困難となった場合に困ります。
2)は、単純に電池を置き換えると問題があるので、何がしかの手を打って充電しないようにする必要が有ります。
で、"充電しない方法"とは? と聞かれると困るのですが、そもそも充電の仕組みを理解していない状態で思いつく方法として、ダイオードを使用して充電方向の電圧をカットする手では駄目なのだろうか?と思っています。
もう少し充電に関して勉強してみます。
2020-09-04 08:07:41
プレイテストということでStrike Commander始めてしまいました!(あくまでもテスト!)現在、モーリタニア、アンデス・マヨルカ、エジプト、ケベックで勝利して、アラスカにいます。UNZでやったとき、グランドキャニオンでCPUの設定とかいろいろ変えないとVM自体がクラッシュする現象があったのですが、津軽で何か見つかるかどうか。パフォーマンスの問題がありますが、シェーディングとかのオプションをかなり削ってCPUを40MHzに設定したら15~20fpsぐらい出ますね。ThinkPad X1 Yoga 3rd Genでやってるのですが、デスクトップ機だったらもう少し速いのかな。たまに再起動してやらないとStrike Commanderのプログラムがクラッシュしますが、これは実機でプレイしたときもあったような気がします。しかし、今はマウスで操縦機能があるからかなりスムーズに飛べますが、よく当時キーボードでクリアしたなあ。相当睡眠時間を削った気がする。
あとは、これはジョイスティックのボタンをキーボードに割り当てる機能が増えるとさらに操縦しやすくなりますね。多分他のゲームにも使えるし。それからせっかくおいてあるCH Pro Throttleが使えないので、スロットルでStrike CommanderとPlusのエンジン調整機能という2本のゲームにしか使え無さそうな拡張と、あとボタンをキーボードに割り当てる機能を追加しようと思ってます。
2020-09-06 00:24:08
>65
同感です、私もStrikeCommanderは無印とPlusの両方を所有しているのですが、この前動作テストを行った際に全く操縦できなくて当時はキーボードで全てクリアした事が信じられませんでした。(GunShipやF29も同様ですが)
CH Pro Throttleをお持ちなんですね、私はThurustMaster F-22proとF16 TQSの2点が有って、本来はGamePort+PS/2に接続するデバイスなのですがこれをUSBに変換しようと思っています。
2020-09-06 07:20:47
というわけで、パッドのボタンにキー割り当てと、ストライクコマンダー専用のスロットルを1~0キーに割り当てる機能を追加してみて、これで無線交信ぐらいしかキーボード使わなくて済む、と、思ったら、ThurstmasterのTOPGUNジョイスティックのボタン2~4が多分接点が酸化しててうまいことボタン押せない。とほほ。このジョイスティックがいいんですけどね。ぼちぼち新しいの買うかなあ。ただ、ブレーキとスロットルがPro Throttleでコントロールできるようになりました。これで空中戦はめちゃくちゃ楽になる予定です。1995年ごろさんざん苦労した恨みを今ころ晴らさなくては。まさに江戸の恨みを青森で。
なお、健全と思った2MXはCD-ROMが突然読めなくなりました。読めるときはCD-Rでも読めるし、読めないときはぜんぜんダメで、あとAドライブが不安定なことがわかってショックを受けてました。が、Bドライブから起動してハードディスクのイメージは一応取れたようで、SCSI2CDのドライブにセーブしたものをPCに持ってくるとこまでできました。ソースコードはgithubのtownsapp/hdimage/hdread.c です、と、言っても今コンパイルできる人はほとんどいませんね。多分GithubでもHigh-Cは使えないと思うので、ビルドしたEXPファイルもgithubに上げときます。
2020-09-06 12:05:47
>63
TOWNSではなく、X68000の事例ですが充電池をボタン電池に変更している例です。
やはりダイオードを入れただけのようですが、よく似た事例ではダイオードの破損時にショートしても充電電流がバッテリーに過度に流れないようにダイオードと抵抗を直列に入れる例も有りました。 そこまで必要なければダイオード1本のみでOKのようです。
http://sbeach.seesaa.net/article/474882375.html
また、同じP6つくろうブログにMAのCD-ROMの読取不具合を調整している物も有ります。
トリマの調整なので壊れはしないだろうけど駄目もとでやってみる価値はありそうです。
http://sbeach.seesaa.net/article/475985723.html
2020-09-08 18:26:15
おおなるほど!これはまた貴重な情報ですね!とりあえず、わが2Fの電池はまだ液漏れしていないので、応急処置として本体外に出す改造をして、その後ダイオードを使った改造をしてみようと思います。
それから、CD-ROMのピックアップの調整というのはこのネジなんですね!リンク先の記述だとぐるぐる回して元の位置に戻すとありますね。ちなみに、大学に置いてあるMXのドライブが深刻で、かろうじて普通のCDなら読めるときもあるというレベルなので、こちらでトライしてみようと思います。
2020-09-09 02:04:42
シリアルでの実機-Win/Mac間の通信ですが、パッドポートを使用する方法を試されたケースが以下に有ります。
MORIYAさん(PC-6001) http://p6ers.net/mm/pc-6001/dev/joy2rs232c/
TINY野郎さん(MSX) http://www.tiny-yarou.com/joyjoy_fs.html
えすびさん(PC-6001) http://sbeach.seesaa.net/article/474320787.html
ハードはTINY野郎さんのが作り易そうです。
ボーレートはえすびさんの所では最大で115200bpsが出せるみたいなので、普通にシリアル通信をするよりも早そうです。
2020-09-10 18:08:03
シリアル115200bpsは、結構タイムリーかもしれません。が、どなたか富士通 M1603SAU のジャンパセッティングをご存知の方いないでしょうか?ソケットが届いたので今日わがMXの電池をCR2032で置き換えて、ヤフオクで落としたまま寝てたHDDに何が入ってるか見てみようと思ったら、なんとこっちにもOASYSが入ってました。そして、起動できました!早速イメージを取ろうと思ったのですが、あろうことか、ID0~ID6まですべてのSCSI IDがこのハードディスクになってしまって、本来ID=1で見えるようにしたはずのSCSI2SDが認識されません。ジャンパセッティングを探したところ、どうやらCNH1のピン1-2, 3-4, 4-5でSCSI IDを指定するらしい、と、あるのですが、どうも僕のM1603SAUはバージョンが違うらしく、CNH1のピン数が多いです。Webで見つかるバージョンのM1603SAUは、CNH1はピン1~7があるらしいのですが、僕のはピンが16本出てます。すべてのペアがショートしているので、仮にピン1~5でSCSI IDであれば7番になっていて、本体のIDとぶつかるため、中で混乱してすべてのIDに対してこのHDDが応答してしまっているのではないか、と、思うのですが、ピン1~5をはずしてSCSI IDが0になると確証が持てないため、いまいち踏み切れません。最悪、読んだ内容をシリアルで外に出す手を使うしかないかと思っているのですが、520MBのHDDを19200bpsで読みだすと、一か月ぐらいかかる計算になりますかね(^_^;)どなたかCNH1が16ピン出ているバージョンのM1603SAUの情報をお持ちの方いましたら、ピン設定を教えていただけると非常に助かります。
2020-09-11 10:12:41
すみません。ひとつだけ、信用できそうなできなさそうな情報を見つけたので、例の電子工学科の卒業生と協議したうえでジャンパの最初の3本を抜いてやってみたら無事SCSI ID 0番になりました。お騒がせしました。今からイメージ取ります!
2020-09-11 10:35:41
なるほど!
2020-09-11 17:13:12
↓この辺あたりを使って、プリンタポートで引っ張り混む手も有りかと思います。
https://akizukidenshi.com/catalog/g/gK-01799/
残念ながらTOWNSのプリンタポートはEPPでは無いので下り(Win/Mac→TOWNS)は数本の信号線しか使えませんが上り(Win/Mac←TOWNS)は8ビットでデータを渡せるのでそれなりの速度が出るのではないかと思います。
一度トライしてみようかな・・・
2020-09-11 23:11:17
こうなると、拡張ボードを自作できるといいんですけどね。仕様とか見つかると貴重ですね。。。。あったりして。後で検索してみよう。FM-7でRS232CカードとFM音源カードを再生産して味を占めたので、TOWNS用ボードも作れたら、なんて思ってるんですが。
それと、さすがに既にマザーボードが使ってるI/Oをオーバーライドするなんていうのは無理なんでしょうね。CD-ROM I/Oをオーバーライドできるなら一気に内蔵CD-ROM故障問題を解決する拡張ボードが作れそうなのですが。
ちなみに、OASYS問題は、キーボードのデータレジスタ0600HにA1を書き込んでいたので、今なら実機でテストしてやるぜ!ということで386ASMとHigh-Cでやってみたところ、どうやら0602Hに書き込むのと同じ効果があるようです。(A1はリセットコマンド)。そのように津軽を書き換えたところ次の段階に進みました。SCSIコマンド08を出しているところで止まってます。なお、さきほど最初にイメージ化した方のHDDを再度実機につなげてOASYSの起動を確認しました。どっちも起動できるようです。
ちなみに、津軽とSCSI2SDと実機TOWNSを使ったハードディスクイメージ化の方法を書いたので、Githubに上げます。今ユニットテストを流しているのでそれが終わったらPUSHします。
2020-09-12 07:40:06
あ、そうだ、と思って(僕も連続書き込みが多いですね)、試しにキーボードをはずしてOASYS起動を試みたところ、文字化けしたエラーメッセージが出たので津軽の動作は正しかったことが判明しました。どうやら希望持てますね!
2020-09-12 07:44:12
どういう方向性でやってるのか、と言われそうですが、OASYS起動成功しました!めちゃくちゃ懐かしい!まだ使い方が思い出せなくて文書編集まで進めませんが、というか、そもそもキーが足りないのですが、とりあえず起動して正常に動作してるようです。ただ、文書フロッピーディスクを作ろうとするとWrite TrackコマンドをFDCに書き込むものの失敗しているようなので、まだ何かありそうですね。
OASYS対応の副産物でキーボードのエミュレーションが良くなって、SCSIコマンド08H (READ 6)と0AH (WRITE 6)に対応しました。DOSと違うアクセスの仕方をしてるみたいなので、エミュレーションの精度を上げるにはちょうどいい鴨しれません。
2020-09-13 05:26:56
話は変わりますが、最近適当にヤフオクで何冊かOh!FM TOWNSを落としたのですが、1992年2月号のInside Townsに興味深い内容がありました。Disk BIOSの未公開機能INT 93H AH=0EHに関してなのですが、これまで解析してきた結果、おそらくメディア交換フラグを返すものだろうと思っていたのですが、この記事で確かにそのように書いてありました。それで、V2.1以降のDisk BIOSだとDLのビット0が交換ありフラグというのも当たってました。これなんですが、TownsOSのV1.1だとALのビット0ではないかと思うんですね。解析してて、あれ?と思った記憶があるので。もっとも僕の記憶ほどあてにならないものもないんですが。あとこの記事ではICメモリカードからブートしようとするようだが実際ブートできるか不明、と、ありました。
津軽がICカードをサポートしたらICメモリカードからのブートシーケンスを解明できるかもしれないと思ってます。津軽開発のひとつの大きな目標が実機の動態保存で、なんとしてもCDとFD両方死んだ実機を救済する方法を探してて、ICメモリカードからIO.SYSを読み込んで外付けCD-ROMドライブにリダイレクトするような書き換えを加えた上でジャンプさせられないか、というようなことを考えているのですが、これも、津軽上で試したい機能のひとつです。ちなみに、TownsII以降だとPCMCIAの古いバージョンと聞いたのですが、例えばPCMCIAのCompact Flashカードみたいなのを入れたら読むんでしょうかね?やってみりゃいいのか。たしかどこかにPCMCIAのコンパクトフラッシュリーダー保存してあったはず。今度やってみよう。
2020-09-13 06:14:01
生死は不明ですが512KBのICメモリカードありますよ。
もう手元にはPCカードのささるノートPCがないので無用の長物なのですが、開発に役立つのでしたら差し上げます。
2020-09-13 06:32:19
開発の方向については、個人的な意見では私も含めて外野の言う事は2の次で、1には山川機長さんの興味の向くままであるべきだと思っています。
完成度が高くなるにつれ利用する人(外野)も多くなり、外野の意見を大切にするあまりプロジェクトが頓挫する事例を過去にも沢山見てきましたので、津軽に関してはそうなって欲しくないと思います。
さて、ICカードですがJEIDA4対応はCX/UX世代以降となります。
また、386DX搭載機と386SX搭載機ではバンクの大きさやエリアが異なりますので注意が必要です。
ICメモリカードからのブートに関しては、当時にブート環境を作った方がいらっしゃったのは記憶しています。 ただ、その環境は情報も含めてクローズドで開発,有償で提供だったので、実際の所はどうであったかまでは踏み入れてはいません。
公式にはSRAMカードのみのサポートだったのですが、フラッシュメモリはひょっとしたら読み込みのみ可能かもしれないですね。
私もどこかを探せばSRAMメモリカードの1枚や2枚は発見できるかも知れませんので、ある程度協力する事は出来ると思いますので発掘しておきます。
2020-09-13 07:28:12
ご配慮ありがとうございます!とりあえず、公開してTOWNSを動態保存しようとする人が使える形のものを目指しているので、今でもある程度入手可能なもので実現できる、あるいは自作可能なものを目指しているので、とりあえずICメモリカードは大切に保管してください。もっとも、ICメモリカードを大量入手できたら救済環境を作ってヤフオクとかに放流という手もありますね。ん?でもICメモリカードってバッテリー使うんだっけ?
コンパクトフラッシュカードが読めればジャンク屋で簡単に見つかるので、いろいろな可能性が出てくるように思いますね。しかも、たしか単純にメモリにマップですよね。ここにブートローダを書き込むことができれば、あとはどうにでもなりそうな気がします。CX/UX以降だけでも救うことができればFM TOWNS動態保存界(そんな界があるのか!?)に大きな貢献になると思ってます。うちにも一枚どこかに保管してあったはずなんだけどな。何かパターンを書き込んだフラッシュメモリを刺して、C0000000H~にデータが出てくるか見ればいいんですよね。うーん、この間の引っ越しのときに見たような。どこやったっけ。
2020-09-13 10:12:47
SRAMメモリカードにはメモリカードにボタン電池をセットして使用します。
フラッシュメモリタイプは使用したことが無いのですが、仕事でメンテナンスをしていた機器がCFメモリーを使っていてそのデータの保存等でCF→PCカードのアダプタ(PCカードにCFカードを差し込んで使用)を使用していましたので、仕事場の机の中にそれらはあると思います。
仕事でCFカードを使用する事が無くなった(最近はUSBやSDスロットが機器の方に有る)ので、もって帰って動作確認は出来ると思います。
実機で確認する場合は、JEIDA4対応機種はC1000000~,それ以外はC0000000~がメモリカード領域ですね。
2020-09-13 12:23:08
http://oswiki.osask.jp/?TOWNS%E3%81%AE%E3%83%A1%E3%83%A2%E3%83%AA%E3%82%AB%E3%83%BC%E3%83%89%E3%82%B9%E3%83%AD%E3%83%83%E3%83%88
CompactFlashについてはこちらの「2003-09-19 (金) 21:34:14」のコメントが気になります。
まだまだ新品が供給されているので、SRAMカードよりよいですね。
ようやくMAの電池を交換して組み立てました。(CR2450はヨドバシAkiba, CR2450用電池ホルダは稲電機(平日のみの営業に変更中)にてそれぞれ在庫あり)
SCSI+CDのライザカードをメインボードに固定するコネクタと、拡張スロットのコネクタが粉を吹いている(ゆべしのような感じです)のが気になりますが、樹脂の材質でしょうか。
ただちにショートや接触不良になる感じではなさそうなので、今回は見なかったことに…。
2020-09-13 23:08:45
>83 pinさん
樹脂の劣化による物と思われます。劣化により強度が低下している可能性が有りますのでなるべく力が加わらないように丁寧に扱った方が良いでしょう。
乾いた布などで軽く拭き取ってあげて下さい。エタノールなどで拭くと逆効果となる可能性が有るので要注意です。
本当はコネクタを交換した方が良いのですが、余程の状況で無い限り基板へのダメージの方が大きいので今は静観する方が良いと思います。
CFカードは産業機器やデジタルカメラ等に結構使われていましたので、需要が今でも有るのだと思います。
が、しかし、TOWNS当時はCFは存在せず、容量に関してもスピードに関しても当時のハード設計時では考えられないくらいの発展をしましたので、果たしてTOWNSのカードスロットでどの様な壁が有るのかハッキリしませんので、取り敢えずは色々試すしか方法が無いのも確かです。
色々試すためにはまず確実であるSRAMのPCカードで容量が数メガ程度の物で動作確認をして、ステップアップするのが良いと思います。
会社に行ったら恐らく512K~2MB程度のSRAMカードが有るはずなので、それで試せればと思います。
2020-09-13 23:43:05
起動デバイスにならない、というのは、TownsOSからシステムの複写ができないという意味なのか、IPLを書き込んでも起動できないという意味なのか微妙ですね。ただ、C1000000HからにマップされるのであればICカードブートがC1000000H~を見に行くか、それともC0000000Hしか見ないかによりますね。津軽のデバッガで動作を追ってみる。。。。より前にまず津軽がICカードサポートすりゃいいのか。まずそこからですね。やってみます!
2020-09-14 07:57:05
TOWNSのPCカードスロットですが、TYPEIの様な気がしてきました。
よくよく考えると時期的な物やサポートしているカード種等からTYPE Iではないかと思いますが、CF→PCカードアダプタはTYPE IIであり、物理的にもカードの厚さが異なる事(3mm/5mm)から挿入できないのでは? と思います。
因みにTYPE Iのフラッシュメモリは存在し、俗にリニアフラッシュメモリと言われている物となりますが、今では入手が困難です。
2020-09-14 10:57:51
メモリカードの件ですが、CF→PCカードのアダプタはまだ見つけることが出来ていません。が、4MBのSRAMカードを発掘しました。
状況は下記の通りです。
(1)SRAMカードのフォーマットは、コマンドモードより"TICMFMT.EXE"を実行することにより正常完了
(2)SRAMカードへのアクセスはTMENU上から適当なファイルを書き込んでみましたが正常
(3)上記のフォーマット時に与えるパラメータとしては、メモリカードの容量をKB単位で与えるパラメータしかヘルプでは出てこない為、システムは転送できない。
(4)SRAMカードはドライブ構成上は存在しない為、REIPLコマンドによる再起動(REIPL H:)は、エラーが出て実行できない。
TICMFMT.EXEのパラメータとしてシステムを転送出来るような物が有るかどうかは、TICMFMT.EXEを解析しないと解らないようです。
ブートROMにICメモリカードよりブートする処理が有るかどうかは不明で、有ったとしてもその時に使用するIPLがどういう物かを考える必要が有りそうですね。
(少なくともリアルモードからアクセスできるメモリエリアにICメモリカードの領域が無いので、プロテクトモードに移行する必要が有るような気がします)
他に何か調べることが有りましたら教えてください。
2020-09-14 17:00:57
なるほど!早速調べていただいてありがとうございます!こちらも、津軽上でICメモリカード対応しようとしています。
昨日、物置でType IIIをPCMCIAカードをType IIのスロットに刺すためにコネクタを外に引き出すアダプタをアパートの物置で発掘したのですが、今回は関係ないと思っておいてきてしまいました。CFアダプタはどうもアパートに無さそうなので研究室に置いてきた模様です。今IIMXのカードスロットを見てみたところでは、CFカードは上下にちょっと余裕をもって入るぐらいの幅があったので、PCMCIA CFアダプタは刺せるのではないかと思いますが、やってみないと確実にはわからんですね。
IPLはもとよりMASMで自分で書くつもりです!DOSの通常のIPLはIO.SYSとMSDOS.SYSを読み込んで、MSDOS.SYSがブートシーケンスを走らせるのだと思うのですが、Townsの場合、多分IO.SYSとMSDOS.SYSとMSCDEX.EXEまで常駐させてMSDOS.SYSのブートシーケンスを始めているのではないか、(希望)と見ています。そうであれば、IO.SYS, MSDOS.SYS, MSCDEX.SYSとYSSCSICD.SYSまで組み込んでブートシーケンスを始めると、外付けSCSI CD-ROMドライブから一気にブートできるはず、というようなことを考えてます。津軽がメモリカードをサポートしたらブートキーコンビネーションでICメモリカード起動にして物理メモリのどのへんを読んでいるか調べられると思います。多分、B000:0000~にメモリカードの特定の領域をコピーして、最初4バイトがIPL4だったらB000:0004にジャンプ、だと思うんですけどね。
2020-09-15 01:21:37
なるほど、IPLは自作されるのですね。
こちらでも動作確認を含めて協力できることが有れば協力させてもらいます。そうとなればSCSIのCD-ROMを何とか入手しなければなりませんが、何とかなるでしょう。
古いPCカード接続のものやパラレル接続のCD-ROMは有るのですが、PCカード接続はI/Oカードだと思うので、TOWNSでは駄目でしょうし、パラレル接続もEPPでしょうから駄目だと思うので、最悪はSCSI-IDEまたはSCSI-SATA変換を入れる事も考えますが、素直にSCSI接続のドライブを第1目標に入手したいと思います。
2020-09-15 06:37:17
ありがとうございます!でも、現時点ではまだ果たしてそれが実現可能かどうかもわからないので、実現できなかったら申し訳ないので、なにか投資するのはまずは津軽でメモリカードとSCSI接続のCDドライブのエミュレーションをやってからにしてください。すくなともSCSI CDドライブのエミュレーションができるようになると、今YSSCSICD.SYSで起動できないソフトにパッチを書いて津軽上で動作確認ができるようになります。(前は出力をRS232Cに出すとか結構苦労したけど、津軽でテストできるようになってしまえば多分楽。)
ただ、ICカードとは別にSCSIのCDドライブを確保しておくのはTOWNSの延命には良いかと思います。YSSCSICD.SYSでTOWNSシステムソフトウェアを含め結構な数のCDタイトルが動作するようになったので、FDが生きているならばFD+CDで起動が可能になってます。とりあえず使ってないフロッピーディスクはTOWNS OSでシステムの複写付きでフォーマットしておくことにしてます。IO.SYSさえ書いてあればあとはファイルのコピーでなんとかなりそうなので。eBayだと割とまだ手に入るんですけどね。日本だと結構品薄でしょうか。
2020-09-15 09:11:32
TICMFMT.EXEによるフォーマットに成功しました!一応、旧型としてマウントしてもJEIDA4としてマウントしてもフォーマットができているっぽいので、大丈夫と思います。DISKBIOSは属性情報をチェックしているのですが、調べたところよくわからないチェックしかしていなくて、メモリカードであるということをチェックしていなさそうだったので、単に無(FFHを最初に返す)ということにしたらあっさりフォーマットできました。まだイメージファイルをセーブしてないのでRAM DISK状態ですが。
FM-OASYSがメモリカードをサポートしているようなので、フォーマットできるかやってみます。。。。ひょっとして富士通はFM-OASYSのためにメモリカードをつけてたんだろうか。OASYS用にメモリカードで拡張機能とか売られてましたかね?
SYSROMはIO.SYSよりも前に読んでいるはずなので、属性情報のチェックが違う可能性がありますが、とりあえず一歩前進です。今日の晩のソースから使えるようになる予定です。晩までにイメージセーブできるようにしておこう。
2020-09-15 22:59:09
あまり気になさらないでください、半分?いや,なにやらいじくりたおすのは、ほぼ趣味ですので(汗)
SCSIのCD-ROMは日本では中古に出回らないで、オークションに出品されています。OldMACで使用していた物が多めですが。
OASYS用のフォントは確かに有ったと思います。
そうか、OASYSの為に有ったのか・・・・ なぜ初代から(しかも初代は天面に蓋まで付けて、入れ替えを考慮していない)付いていたのか、何だか府に落ちます。
2020-09-15 23:53:13
今朝の実装ではJEIDA4も選べるようにしたつもりがばっちり選べてなかったのですが、ついさっきJEIDA4に正式対応してイメージもセーブできるようになりました。旧フォーマットでセーブしたものをJEIDA4としてマウントしても読むことができたので、内容は共通のようです。興味深いことに、TICMFMT.EXEはディレクトリだけでなく、IPLを書き込んでます。以下はイメージの先頭部分なのですが、EB 68はジャンプ命令で本当のIPLの入り口にジャンプしてます。そして、IPL1という識別子がついてます。自作IPLを作るときは、多分、最初の8バイトをJMP REALIPL \n DB 0,0 \n DB "IPL1" みたいな感じで書き始めれば読んでくれそうな気がします。問題は、JEIDA4のカードからIPLを読んでくれるかですね。これは割とデバッガで簡単にチェックできそうなので、今晩にでもチェックしてみます。
00000000 EB 68 90 49 50 4C 31 20 20 20 20 00 02 02 01 00 | 7E |.h.IPL1 .....
00000010 02 00 01 00 20 F8 0C 00 08 00 02 00 00 00 29 00 | 5A |.... .........).
00000020 00 52 00 00 00 20 00 00 00 00 00 00 00 00 00 00 | 72 |.R... ..........
00000030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | 00 |................
00000040 04 00 00 00 01 00 00 00 40 00 03 F4 00 F4 00 F4 | 24 |........@.......
00000050 00 F4 00 F4 00 BB 00 F4 00 F4 00 8A 00 B3 00 B3 | 7B |................
00000060 00 B3 00 46 42 49 4F 53 00 00 0E 1F 50 53 80 E3 | 59 |...FBIOS....PS..
もしも実機でCFに書き込みもできるということになったら実機とPC間のデータ転送問題が一気に解決しますね。一方通行でも大きなファイルを持っていくにはいいかも。あ、そうか。一応MS-DOSフォーマットだから、案外FATがWindowsから見えたりして。そうだったら画期的だなあ。でもそこまで甘くないかな。だとしてもWin32 Disk Imagerで読んだイメージを津軽にマウントとかできそう。
2020-09-16 02:44:59
結局現実逃避ですぐ調べてしまったのですが、SYSROMはC0000000H~しか見てないですね。↓に気になる記述があって、
http://oswiki.osask.jp/?TOWNS%E3%81%AE%E3%83%A1%E3%83%A2%E3%83%AA%E3%82%AB%E3%83%BC%E3%83%89%E3%82%B9%E3%83%AD%E3%83%83%E3%83%88
「C0000000H~C0FFFFFFHは切り替わりません」と、あるので、ひょっとするとJEIDA4でも最初の16MBは常にC0000000H~に出ている可能性もあり、そうであれば起動可能ですが、JEIDA4はC1000000H~にしか出ていないとすると起動は不可能ですね。
単にC0000000H~のアドレスバスが直接カードのアドレスバスにつながっているのに対して、C1000000H~のアドレスバスがバンク切り替えを経由しているだけだったらJEIDA4でも最初の16MBはC0000000H~に出っぱなしの可能性はあると思うのですが、実験しないとわからんですね。
2020-09-16 03:17:17
実機で動作を見るべく32MBのCFカードとCF to PCMCIAアダプタを発注してしまいました。で、実機の物理アドレスのダンプを表示するユーティリティ、physdump.exeを書いたので、後ほどPUSHします。MASMはさすがにGITHUBで使えないだろうと思ったので。。。。使えるのかな。案外使えたりして。後で検討してみよう。まあ一応 dosapp/exe にアセンブルしたバイナリも入れておきました。PHYSDUMP.EXEは津軽とDOSBOX上で正しく動作しているように見えます。YSSCSICD.SYS書いたときに作ったUnrealモードを使ったコードをちょっと手を変えて使いましたが、もしも、最初の16MBがC0000000Hからに出ててくれたらIPLを書くときにも使える予定です。出てるといいんですけどね。雰囲気としてC1000000H~のときは単にJB0とJB1をアドレスバスのbit 20,21に出してるだけではないかという気がするので、結構C0000000H~でJEIDA4カードの最初の16MB読める気がしてます。PHYSDUMP C0000000 と PHYSDUMP C1000000で同じ内容が出てくれれば大勝利です。
2020-09-16 09:57:16
>93
IPL1って、FMR-50系のIPLですね。
TOWNSはIPL4なので、IPL1と有るとブートの際のチェックでブートメディアとして認識しない様な気がします。
2020-09-16 10:13:46
実機とのデータ交換ですが、そう言えば私は230MBですがMOを持ってる事を忘れていました。
こちらも使えそうなので機会があればトライしたいと思います。
(ドライブもメディアもFD以上に手に入らないので新規で買い揃えると言う訳には行きませんが、機器を持っている人がデータ交換の手段として使うには良さそうです)
2020-09-16 10:41:53
>95
こちらでの結果は、FATフォーマットをしたCFカードをCFtoPCMCIAアダプタに装着した物を読み込むことが出来ませんでした。
使用したCFtoPCMCIAアダプタはバッファロー製BSCRCFAで、CFカードがバッファロー製RCF-X(32MB)です。
状況的にはT-MENU上からICメモリーアイコンをダブルクリックすると、時計アイコンとなったまま戻ってこない状態で、エラーも発生しません。
2020-09-16 22:42:32
早速実験ありがとうございます!それは興味深いですね。DiskBIOSの解析ではCIS情報が壊れているとすぐにエラーを返してあきらめてしまうはずなので、CIS情報は読めているのかもしれなくて、もしも内容が読めなくて全部FFとか00になっていてもエラーを返しそうなので、フォーマットが違うだけでCPUは内容を読めている鴨しれないですね。実機にPHYSDUMP.EXEを持っていって、C0000000H~とC1000000H~のダンプを見れますかね?コマンドから PHYSDUMP C0000000 みたいな感じでタイプすると使えます。
IPL1はFM-R系なんですね。起動中に「システムが違います」と出てたのはその影響ですね。メモリカードは先頭にジャンプ命令があって4バイト目にIPL1と書いてありますが、FDイメージ等を見ると、セクタ先頭にIPL4が書いてあって、4バイト目にジャンプ命令があるので、多分メモリカードイメージも同じように書けばSYSROMはIPLとして認識してくれる(多分B000:0000~に読み込んでB000:0004をCALLF)と思います。
2020-09-17 01:20:50
>99
PHYSDUMP.EXEですが、実機で実行しましたが無反応でコマンドモードに帰ってもこないので、CTRL-Cを押すとビープが鳴って暴走状態でした。
(PHYSDUMP C0000000 でも PHYSDUMP だけでも同じ反応でした)
MS-DOS6.2上にTOSをインストールしていますが、環境が影響しているかもしれません。
(素のTOSをCD-ROMより起動しようと思ったのですが、ドライブが不調で試せませんでした)
2020-09-17 07:42:56
あ、すみません。DOS6でEMM386が走ってるとプロテクテドモードに入れないので多分暴走します。了解しました。こちらも月曜にはメモリカードが届くはずなので、実験してみます!
もしも成功したらですが、現状ではWindows 10で1232KBフォーマットのディスクが作れないため、FDDが生きていてもCDが死んでいると起動ディスクを作れないという問題があるので(現にそういう状況で困ってる人から年に1~2回メールをもらう)、最初の目標はメモリカードから起動してフロッピーディスクをフォーマット、そしてRS232C経由で(気長に)ディスクイメージを流し込めるローダーを目指してみようと思ってます。
少しFDの起動プロセスを解析してみたのですが、MSDOS.SYSをロードした後でジャンプする部分を特定して、処理をいったん奪ってドライバをインストールできるといいのですがIO.SYSごとに場所が違いそうなので各バージョンごとに書かなくてはならなさそうでした。というようなことをやっていて、気が付いたんですが、うまくやるとCMOSが飛んでいたら自動的にSCSI ID0にドライブを割り当てて再起動するようなローダーを書くとCMOSが飛んでいても起動可能なハードディスクイメージが作れるのではないか、とかいろいろ想像がふくらみました。
2020-09-17 08:48:10
>101
そう言うことですか、了解しました。
モデル2(=HDDが無い)からCD-ROMを起動して、メモリカードを使用するようにする為に情報ディスクを作る所までやったので、続きはこちらの時間で夜になると思います。
それで上手く行かなければHCのCONFIG.SYSからEMM386を抜いて実験したいと思います。
長らく使用していたCRTモニターをLCDモニターに変えたのですが、LCDモニターの仕様範囲外の24KHzでも問題なくモデル2でのコンソール画面が見れるようになりました。
CRTの時はコンソールを使用するにはHCを使う必要が有ったのですが、CD-ROMが不調で今回のようなCD-ROMから起動したい場合はどうしようも有りませんでしたが、助かりました。(遅いけど)
あとは、SCSIのHDDをモデル2に接続するかどうかです。(SCSIのHDDが生きていればいいけど)
2020-09-17 10:07:33
なるほど!
2020-09-17 19:10:19
>101
モデル2での確認では、そもそもHCでフォーマットしてファイルの読み書きを確認したSRAMカードが認識できず、フォーマットを行うと最初の1度目は正常に完了したとの表示が出ましたが、ディレクトリを取るとエラー,その後はフォーマットもエラーとなるようになりましたので確認は出来ていません。
上記の確認後、HCで同じメモリカードを見るとファイルは存在しておりフォーマット出来ていないようです。
HCを使用しての確認では、EMM386.SYSをCONFIG.SYSより抜いた(REMを付けた)物でブートしてもPHYSDUM.EXEを実行するとハングします。(CTRL-Cを押してもビープは鳴らなくなりました)
その後、HIMEM.SYSやKKCFUNC.SYS,OAK関連を抜いた状態でも同じくハングします。
DOS6がいかんのかなぁ? 山川機長さんの確認を待って違いを考えましょうか。
2020-09-17 23:25:01
うーん、そうですか。うちの2MXでTownsOS V2.1 L20のCDからブートした場合はPHYSDUMP.EXEは普通に動作しました。TBIOSのヘッダとかスプライトRAMとか(コンソールモードだとテキストVRAM扱い)読めたのですが。DOS6と相性が悪いのかもしらんですね。しかしPCMCIAは無理でもSRAMカードであればモデル2でも認識できそうな感じがしますけどね。
ちなみに、さっきまでTICM.SYSを解析していたのですが、パラメータに/U0あるいは/t0としてユニット番号を指定するようになってるようなのですが、0番しか受け付けない模様でした。それで、もうひとつ考えたのがIO.SYSを読み込んでIO.SYSがMSDOS.SYSまでロードしたところでTICM.SYSをインストールして起動ドライブをICカードに変更してしまえばあとはやりたい放題ではないか、と、考えたのですが、TICM.SYSはドライブレターの指定はできないようでした。しかし、ドライブレターを決定している箇所を特定したので、そこを MOV AL,0FH とすることで強制的にPドライブにできることを確認しました。後の問題としては、TICM.SYSは鶏と卵問題になるので、INT 21H AH=4BH を使ってロードできないので、メモリをアロケートしてそこにバイナリをコピーして、Strategy, Interruptを順にコールということになりそうですが、このときTICM.SYSにCONFIG.SYSから呼び出されたと思わせる必要があり、ドライバのチェインに追加する必要がある(多分)と思うので難航するかもしれません。
2020-09-18 01:51:19
>105
かなり昔にモデル2でSRAMカードを読んだような気がするのですが、関係は無いと思いますがその時はもっと小さな容量の物だったと思います。
その後、あれこれやったのですが、残る手はCD-ROMを読めるようにするしか無いように思いますので、例のトリマ調整をやりたいと思います。
2020-09-18 09:48:36
津軽(v20200917)のDOS6環境でPHYSDUMPは正常に動作するので、DOS6の直接的な問題ではないような気がしてきました。
一つ言えることは実機で試したときはPHYSDUMPのタイトルメッセージさえ表示されなかったので、プロテクトモードに突入する以前で暴走していますので、FD経由で持って行った際にファイルが破損している可能性が有るかもしれません。(一応ファイルのサイズは同じ事は確認済み)
2020-09-19 07:15:06
了解しました。ただ、TownsのDOSはタイマー割り込みとかVSYNC割り込みとかを使ってテキスト画面を書き換えているので、最初のメッセージを書くINT 21Hが出てから、次の割り込みが発生する前にクラッシュしてしまうと文字は出ないので、プロテクトモード突入時にクラッシュしている可能性はまだありうる鴨しれません。
その後さらにいろいろ考えて、ドライバのインストールは大変だけどINT 93をオーバーライドするだけだったら安全なメモリ領域を確保するだけでいいのでできそうな気がしてきて、IO.SYSを読んだら大体MSDOS.SYSにジャンプする箇所はパターンがあるので検索して見つけられそうなので、ICメモリカードから起動→SCSI CD ROMのIO.SYSを読み込み→ローダーの後半にジャンプして戻ってくるようにパッチをあててIO.SYSにジャンプ→MSDOS.SYSがインストールされた後にローダーにジャンプしてきたタイミングでINT 93Hをリダイレクト→MSCDEXをインストール→本来のとび先にジャンプ、という手でICメモリカードからSCSI CD-ROM上のシステムを起動させられるのではないか、また、ICメモリカードにISOイメージを書き込むことでCD-ROMのリダイレクトでICメモリカード上のISOイメージから起動ができるのではないか、という希望を持ってます。TownsMENUってLZEXPとか使って詰め込むとFDからも起動できますよね。数メガはローダーやメニューで使うとしても10MBおあればレスキュー用TownsMENUを置くのは十分過ぎるスペースと思います。とりあえず、BIOS使わずにSCSIコマンドを撃つアセンブリコードを書いてました。実機でまだ試してないですが、津軽とUNZで試したら正しく読んでいるようなので、多分実機でも動きそうな気がします。これが実現したらCDもFDも死んでるTOWNSを起動できるようになるかも。すべてはPCMCIAのCFカードを実機がC0000000Hからにマップしてくれるかにかかってますね。あとデバッグするために津軽にSCSI CD-ROMサポートを追加しなきゃ。
2020-09-19 13:26:46
CFカード来ました。そして、やってみました。が、残念ながらさすがに甘かったですね。CF to PCMCIAアダプタを刺した状態ではC0000000H~出てくる値は変わるのですが、意味のある内容ではありませんでした。ひたすら
00 01 01 01 00 00 00 50 00 00 00 00 00 01 50 7E
が続くとか。ほぼ必ず16バイトごとのパターンになるのですが、カードを抜いて刺すと同じカードでも値が変わるようでした。ついでに、Towns上でフォーマットを試みたところCFカードがWindows上で読めたり読めなかったりするようになってしまいました。が、もともとカードが古いだけにもう劣化してたのかもしれません。しかし、こんなこともあろうかと2枚買ってあったので、もう一方は安定してWindowsで読めていますがやっぱりTOWNS上では読み込みはできませんでした。多分PCMCIA 1.0でも古すぎるんでしょうかね。
入手が難しいとは言ってもひとつ古いICメモリカードを手に入れて起動イメージをTOWNS上で書き込めばICメモリカードからの起動は実現できそうですが、これだと、公開しても鶏と卵問題になって、今でも割と普通に手に入る部品でFDとCDが死んでるTOWNSを救済するという目的には向かなさそうですね。残念。$60燃やしてしまった。
ひとつわかったことは、津軽上でTICMFMT.EXEでフォーマットして値を書き込んだICメモリカードイメージをCFカードにWin32DiskImagerで焼くと普通にWindowsからファイルが見えました。ただ、それは不安定になった方でやったので一瞬見えてまた見えなくなりましたが。ついでに、これを書いててひょっとしてと思ってeditdisk.exeでplain imageとして開いたらファイル見えますね。
ただ、今回得た知見から、外付けCDのIO.SYSを直接読み込んで起動するIPLは作れるような気がしてきました。これができるとV1.1用、V2.1用と別々の起動フロッピーディスクを用意しておかなくてもSCSI CDドライブからTownsシステムソフトウェアや直接CD I/Oを攻撃していないゲームなどは起動可能にできると思います。
というと、だれか外付けフロッピーディスクのエミュレータを作ってくれるとそこから起動できるようになったりするかも。なんかそれがいい気がしてきた。外付けフロッピーディスクコネクタって各モデル共通でしたっけ?あとピン割り当てって解明されてましたかね?誰かArduino Megaとか使ってTOWNSの外付けFDポートにつなげてディスクイメージを流し込むフロッピードライブエミュレータ作りません?
2020-09-20 05:49:34
外付けFDDコネクタのピンアサインは赤本の付録Aに掲載されています。
コネクタはおそらく全機種で共通なのですが、むしろこれが手に入るかどうか…
https://www.htk-jp.com/product/index.php?m=seriesOutline&ser_id=PCS
(TOWNS本体側は赤本によると PCS-E50LMD です)
同じ1.27㎜ピッチのよく似たSCSIコネクタとの互換性は不明です。
(外付けSCSI HDDを分解して入手した雌コネクタでは、少なくともそのままでは爪が邪魔でささりません)
2020-09-20 06:56:44
>109
FDDエミュレータの制作用意は有ります。別件でFM-7の外部FDDユニット(MB27611)を駆動させて吸い出そうとしている所ですが、それをFDDエミュレータに仕立てることは可能だと思います。
ArduinoではCPUの処理能力的に無理があると困るので、TEENSY3.6を使用しています。
外部FDDコネクタはpinさんの仰る通り本多通信のコネクタが入手難ですので、本体コネクタに繋ぐ方が良いと思います。(機能的にはどちらも同じような物なので)
2020-09-20 09:01:32
うーん、コネクタの入手が難しいですか。一応、目指してたのは本体無改造でCDとFDが両方死んでるTOWNSを、なるべく安価に復活させるという目標だったのですが、なかなか難しいですね。フルに1232kBのフロッピードライブのエミュレートができれば既にYSSCSICD.SYSを組み込んだディスクイメージをエミュレータ上で作成すればSCSI-CDからTowns SYSTEMを起動してCMOSの設定などをしなおすことができるようになっているので、新しいブートローダーを開発する意義はあまり無いかもしれませんね。いや、だけど現状だと例えばVINGBIOSが必要な場合とかディスクを分けなきゃならなくなってるからユニバーサルに起動できるブートローダーを書く意義はあるかな。Windows上でフロッピーディスクを1232KBにフォーマットできるとまだいいんですが、最近TownsのFDが生きててもそもそも1232KBフォーマットのフロッピーディスクが生産できなくなってしまったんですよね。なんにせよ、とりあえず津軽にSCSI CDドライブサポートをちょっとずつ追加してます。
2020-09-20 11:21:24
>112
FDDエミュレータ自体は内蔵でも外付けでも同じですので、コネクタを持っている方は外付けに出来るように結線情報を公開すれば良いかと思います。
そういう意味ではFDDのエミュレータであり、且つ、FDDを駆動する側の機器でも有る物を作れれば(FDX68がまさにそういう物ではあるのですが)良さそうです。
2020-09-20 13:17:36
FM-7用のRS232Cカードを作ったときはMouserからFCNコネクタを買うことができたので、ここで売ってないかと思いましたが売ってませんでした。残念。いや、仮にあっても比較的手に入りやすい部品で瀕死の実機TOWNSの救済というコンセプトには合わないですね。一応、PCMCIA路線も簡単にメモリカードを生産できそうな方法が見つかったら試してみようと思います。PCMCIAコネクタは売ってるんですよね。というか、たんにピンのピッチが短いだけでただのRectangular Connectorですね。差し込んで線を引き出す仕組みさえ作れればエミュレートはFPGAで案外簡単そうに見えました(https://www.simms.co.uk/wp-content/uploads/2015/09/PCMCIA-JEIDA-SRAM-Card-spec_V10_-2014_11_03.pdf)。問題は左右に貼り付けるガイドレールが生産できんですね。でもArduinoだと圧倒的に反応が間に合わなさそうだしな。引き続き考えよう。どうせFPGA使うんだったら、究極の目標の横置きTOWNSのCD-ROMのピンの信号を解明してCDドライブエミュレータを作りたいんですよね。ロジックアナライザまで用意してあるんですが、時間とテスト環境を展開する場所が問題です。
とりあえず津軽上ではYSSCSICD.SYSを組み込んでFDで起動してSCSI CD-ROMのTownsOSを立ち上げることができるようになりました。興味深いことがわかって、どうやらTownsOS V2.1 L20のRUN386はCDからEXPファイルを読むとき、freadを介さずに直接MODE1READをCDCに送ってるようです。なぜわかったかというと、cdrom.cppでMODE1READがDrive Not Readyのときもエラーを返さないようになってたもんで、内蔵CDの方からEXPファイルを読み込んだと思い込んでクラッシュしてました。どうやらMODE1READがエラーになったらfreadを試すようです。CD-ROM BIOSなどはMODE1READを出す前にGETSTATE (LinuxのヘッダでSETSTATEとなってるからcdrom.cppの中もそれに準拠してみたけどどう考えてもGETSTATE。気持ち悪いから後で名前変えよう。) でDrive Not Ready, Disc Changedなどをチェックした上でMODE1READを出してたのですが、RUN386はいきなりMODE1READを出していました。こんなこともエミュレータで追ってみないとわからないですね。MODE1READもDrive Not Readyエラーを返すように修正したところ実機と同じような動作になりました。
2020-09-21 02:50:10
>114
残念ながら私は所有していませんが、樹脂部品であれば3Dプリンタで作成出来ますね。(或いは、3Dプリンタのプリントサービスを利用するかです)
外部FDD用のコネクタは一般用途での流通量は多くはなく、主に産業用として流通は今も有るようです。
ミスミではコネクタ付きケーブルの作成サービスが存在しますが、個人は利用できなかったと思いますので多くの方が利用できるサービスでは有りません。
それであれば内部FDDコネクタを利用する方向で考えた方が良いかもしれません。(400~500mm x 2程度の延長であれば信号のスピードも遅いので問題ないと思います)
2020-09-21 23:51:23
とりあえず、FD0~FD3どれでも起動できるブートローダーのイメージができれば、誰かがなんとかしてくれるでしょう、という他力本願でIPLが作れるかの実験を始めてしまいました。どうもB000:0004にジャンプしたときのBHがユニット番号を表しているような。まず字が出ないとどうにもならんだろうと思って、画面に15色で "TEST IPL" とメッセージを書くだけのIPLを作ってみたんですが、これ、行けますね。最初のセクタにIPL4に続けてコード書いておくとそこに飛んでくれるので。HDイメージにするときは、最初のパーティションをブートローダー用にして、同じドライブ上のパーティションから起動するか、あるいは外付けCDから起動するか選べるようになるといいですね。とりあえずはFDイメージか。起動画面に青森県のマップを表示しよう。
2020-09-22 10:43:07
なお、救難ブートローダープロジェクトは↓でやってます。MASMとHigh-Cと386ASMを使う環境があればビルドできます。
https://github.com/captainys/FM/tree/master/TOWNS/IPL
2020-09-22 12:09:03
削除済
2020-09-23 11:47:36
>>118
SPAM来るからメールアドレスは安易に書かないほうが良いような……。
2020-09-23 22:56:16
>>119
そうですね、しかも自分のではなく人さまのアドレスを書くとは。 軽率でした。
一旦削除して再書き込みをしておきます。
有り難うございます。
2020-09-24 00:22:25
>116
シリーズのどこまで有効なのか判らないのですが、TOWNSのIPL読み込み直後の各レジスタの意味合いは下記の通りです。
・AXレジスタ
1MB以下の物理メモリの装着状態をビットイメージで表現(ビットONでメモリが存在)
b0→0x00000000~0x0000FFFF
b1→0x00010000~0x0001FFFF
・ ・
・ ・
b15→0x000F0000~0x000FFFFF
・BXレジスタ
ブートデバイス種
BL → 0x01=HDD, 0x02=FDD, 0x04=IC-CARD, 0x08=CD-ROM, 0x80=CXが有効(※詳細不明)
BH → ユニット番号(FDならドライブ番号,HDDならSCSI-ID,IC-CARD or CD-ROMなら意味がない)
・FLAGS
全ビットクリア状態
・その他
AHにエラーコードを設定してキャリーフラグを立ててfar RETすると次のデバイスからブートしようとする
※情報源 : Yukio KATOHさん FDIPLTソースファイルより
2020-09-24 00:24:09
CRTCのふるまいをモデル化すべく実機(MA)で調査を進めていたのですが、
高解像度機では(それとも一定の機種以降?)CR0の下位4ビット(CL0, CL1)は何を設定しても表示には影響しませんでした。
(赤本のレジスタセット28番で実験)
ありそうな話としては、新CRTCで従来のCRTCの動作をシミュレートしているせいでしょうか。
ここを変えることでVRAMからのデータ供給頻度とCRTへの出力頻度を相違させることができ、壊れた表示の周期に
内部構造の情報があらわれるかとも思ったのですが、なかなか思ったようにはいかないものですね。
2020-09-24 01:30:59
>122 pinさん
実は初代からCRTCにも(無意味に)設定値があるだけでビデオ出力制御レジスタ00(でいいんだっけ?)のほうの設定が優先される可能性はあります。
あと、MX/MAはMF(Fresh)/ME以降の中解像度機と違い、スキャンコンバータを切れば4種類のドットクロック設定もきちんと反映されるので(MF/ME以降の中解像度機は2種類のみ)、新CRTCに従来のCRTCが内包されているともされていないとも言い切れないのですが…やたらと画面まわりの制御用と思われるチップが増えているのだけはわかります(ぉ
2020-09-24 09:38:14
こちらの『雑談スレッド』がICメモリカードやCRTCの話題に埋め尽くされるのもアレなので、ハードウェア解析・考察スレッドを別途立てました。以上です。
2020-09-24 09:41:53
お久しぶりです。
津軽への質問はこの辺で宜しいでしょうか。
日本語キーボードで"keyboard translate"コマンドでモード移行した状態でエスケープキーを押そうとした場合、ESCを押しても反応しないのですが、translateモードでESCを入力する方法はありますでしょうか。
Directモードでチルダキーとして@キーでESC相当になるのは承知していますが、translateモードで毎回モードチェンジするのは厳しいです。
起動パラメータに指定したいくらいなのですが
2020-09-28 05:03:50
すみません途中で送信してしまいました。上記の件、ESCに割り振るという案はどうでしょう。Breakはまず使わないですし。
ファイル操作にDOSのファイラを使っているのでどうしても引っかかっています。
以上、ご検討お願い致します。
2020-09-28 05:09:20
おおなるほど。うーん、BreakはF-BASIC386で使ったりします。ただ、どちらの場合もESCとBreakが両方出ても困らない気がしてきたので、Translation ModeではBreakキーとESCキーを両方押したことにしてみましょうかね。多分Breakが効く状態ではESCは効果が無くて、ESCが効く状態ではBreakには効果が無いのではないかと思います。。。。。
ここまで書いてF-BASIC386のプログラムでESCを待ってるやつがあったらESCを押したら止まってしまうということに気が付いた。いや、けどESCを使うようなBASICプログラムだったら多分DIRECTモードで使っても大丈夫かな。とりあえずやってみて、あまりよくないようだったらパラメータとコマンドを追加しましょう。
2020-09-29 21:51:04
>>山川機長さん
ありがとうございます!
2020-09-29 22:26:24
とりあえず、リリース出しました。TranslationモードでESCを押すとBreakとESC両方出るようになりました。
2020-10-01 09:30:34
>>山川機長さん
無事ESCキーでESC入力ができるようになりました。
ご対応ありがとうございます。
2020-10-01 19:05:20
F-BASIC386を使ってESC入力って普通にあると思うので(そんなツール昔作ったことある)、
Breakには、可能であれば Pauseキー を割り当てたほうが良いかと思います。
2020-10-02 12:08:36
なるほど、そうでしたか。うーん、これはオプションでDIRECTモードをいくつか用意しようかな。ESCキーがESCになるモード、BREAKになるモード、ESCとBREAK両方出すモードとか。今周りにあるキーボードを見回してみたのですが、Pause/Breakがついてるのがひとつしかありませんでした。そして日ごろ使いのキーボードにはばっちりついてなくて。
2020-10-02 23:50:20
BreakはF-BASICで必要でしたか。
そういえば先日購入したグローバルモデルのキーボードにはPause/Breakキーがありませんでした。日本のキーボードとはこういう差があるんですね。
トランスレーションモードは日本語キーボードが想定されていると思うのでBreakをPause/Breakに割り当ててもいいかと思うのですが、
キーボードオプションが指定できるようになるのでしたら、ついでにトランスレーションも加えて頂けるとCUI派はバッチに書けて便利だと思うのですがいかがでしょう(^-^;
2020-10-04 15:35:26
そういえば、ぜんぜん関係ない話ですが、Towns System Software V1.1 L10のデモ、Towns ILLUSIONのBGMなんですが、あれって誰が作曲したんでしょうね?結構気に入ってて仕事中のBGMにかけたりします。
あのTowns ILLUSIONの3Dグラフィックスは、富士通が自分の3Dエンジンは持ってなかったと思うので、Polysysを開発してたT&Eに外注したのではないかと推測していて、海中のシーンはおそらくAfterburner作ってたCRIに外注したのではないか、と見ていたのですが、津軽を作ってみたら海中のシーンはスプライトを使ってないことがわかってAfterburnerとは違うコードですね。むしろ遥かなるオーガスタの木々のコードに近い鴨しれません。ということで今は全面的にT&Eに外注だったのではないか、と推測しているのですが。富士通の関係者の方がいたらわかると思うのですが。TOWNSで自分のフライトシミュレータを書きたいと思ってた僕は目の前にいきなり目標ができてしまったデモでした。何回も再生した記憶があります。(そして今も津軽のユニットテスト流すと毎回流れてる)
2020-10-06 02:29:56
>134
随分と懐かしいお話ですね、私も最初にモデル2を買った時に何度も見ていました。
MXやHCを買った時も最初に見るのはTownsILLUSIONだったのを覚えています。
FM-77AVのデモはHummingBirdSoftだったと思いますが、TownsILLUSIONはT&Eだったのだろうか・・・・
2020-10-06 07:31:32
あ、間違ってキーボードの件ブートローダーのスレッドに書いてしまった。一応、TRANS1, TRANS2, TRANS3とモードを3種類にして、起動パラメータ/GUIでも選べるようになりました。
ちなみに、ここ数日MSDOS.SYSの逆アセンブルを読んでますが、入りのところは、MicrosoftがGithubに公開してるMS-DOS V2.0のソースとほぼ一致ですね。V3.1まで公開してくれればと思いますが。果たしてそういう日が来るかどうか。他機種用の例えばPC-98用とかIBM用のMSDOS.SYSでどこまで走るか見てみたいところですね。MSINIT.ASMのDOSINITに対応する部分を見た感じでは、8086を前提に作ってるので例えばビットシフト命令とかわざわざいったんCLにシフト回数を入れてSHLするとかしてるし、ジャンプテーブルのセグメントだけ初期化するために@@: STOSW, ADD DI,2 LOOP @b なんていうのは、REP STOSD としてしまえるので386を前提にして書けばもっと効率よく書けそうだと思いました。またメモリ搭載量が小さい場合に対応するために血のにじむような苦労をしているように見えるのですがTOWNSで走ればいいだけだったらDOSが1MB使う前提に書いてもいいので、そういう血のにじむような工夫は無くても書けそうな気がしました。IPLを工夫すればROMドライブのやつを自作に置き換えることもできるので実機でもパフォーマンスが上がったりして。とりあえずプリンタの心配はしなくてもいいし、うーん、たかが28KBのバイナリなんだよな。仕様が完全にわかれば自分でも同等なものが書けると思うんだけど。V3.xの逆アセンブルとか誰か既にやってそうだなあ。コンピュータクラブの人に聞いてみよう。
2020-10-07 21:57:07
>>136
無茶苦茶ありがたいです。感謝感激(o_ _)o))
(これでバッチ起動のいろんな環境作って遊べそうだなー)
2020-10-07 23:37:17
>135 WINDYさん
TownsILLUSIONはT&E SOFTですね。実行ファイルに書いてありますw
2020-10-11 14:19:06
なるへそ
2020-10-11 15:31:44
>138 りうさん
わざわざ有り難うございます。 書いてあったのですね。
しかしまあ、コードの構成から開発元を推測するとは・・・・ すげぇとしか出ません。 → 山川機長さん
2020-10-11 17:04:34
>りうさん
おおそうでしたか!やはりPOLYSYSを使ってたんですね!なんかすっきりしました。あの曲名と作曲した人もどこかに書いてあったりして。さすがにそれはないかな。
2020-10-12 08:29:25
今HR見てたら電源ボタンのすぐ左に赤外線のレセプタのカバーっぽい黒い部分があることに気が付いてしまったんですが、HRって赤外線センサーなんて積んでましたっけ?MXだと対応する箇所は普通に白いプラスチックのカバーになってますが、赤外線だったらどっちも通しそうですね。
2020-10-15 10:10:52
良く覚えてないのですが、Wikipediaには白TOWNS(MA/ME/MX世代~)の項目に"チューナーカードのリモコン受信口は塞がれた"とあります。
チューナーカード(FMT-416)を増設スロットに挿した際に使用されるようです。
2020-10-15 15:02:55
>142 山川機長さん、143 WINDYさん
某pediaはあまり信用しないほうがいいかと…。
WINDYさんの仰るとおり、HR/HGの電源ボタンと内蔵マイクの間にある黒い窓はチューナーカード(FMT-416)用赤外線受光部です。
本来UX用として出たオプションだったはずなのですが、UG/URではCD-ROMドライブ右側のインジケータパネルに組み込まれ、HR/HGでは黒い窓が付いている…という感じです。
某pediaには「MA/ME/MX世代~」とあるそうですが、ほぼ色を変えてチューナーカード用赤外線受光部を塞いだのがMX/MA、そもそもフロントパネルのデザイン・設計からを変えたのがME/MFです。
なお、テレビチューナー付き(ビデオカード機能なし)Freshの場合、Fresh・TVではハードディスク搭載部の右上あたりに穴を空けて半分無理矢理受光部を設置したのに対し、Fresh・Tでは再度フロントパネルのデザインが改められ、ME/MFで内蔵スピーカがあった位置の下に受光部が設置されています。Fresh・Tのフロントパネルの設計は同機の後継機であるテレビチューナー付きビデオカード内蔵のFresh・ET/FTにも引き継がれています。
2020-10-15 18:30:36
おおなるほど。そういうことだったんですね。ということは、これを使って何か遊べるようなことは無さそうですかね。
2020-10-16 03:48:21
今日この動画見てたんですが、
https://www.youtube.com/watch?v=6F-K1e1rj0I
非常に興味深いことに22分付近、Chase HQのところで、エンジン音にノイズが乗ってるんですが、これが津軽のPCMエミュレーションでバンクのトランジションがうまくエミュレーションできてなかったときに出てたノイズと完全に一致してるんですね。でも、2月13日のビデオらしいので津軽を使ってビデオを作ったというわけではないのは間違いないです。2月13日は、開発開始からまだ一か月経過してなくてOAK0.SYSを動かそうといろいろやってた時点でChase HQなどまったく動く状態ではなかったですね。FreshだとPCMの処理に何か違いがあるのでしょうか。MXだとこのようなノイズは出てなかったように思います。
しかしこのビデオ、Freshなのに全般的に動きがもっさりしてますね。本人はFAST Modeがあることを認識しているようなので(Shooting Townsのナレーションで触れている)、まさかSLOWモードで録画したということは無いと思うのですが。
2020-10-16 08:57:30
>145 山川機長さん
その役割は7代目Freshの第2世代(ややこしい…)の時に出たワイヤレスコマンダーが担っていると思います。
ただ、ワイヤレスコマンダーは富士通提供ライブラリがテレビやビデオのリモコン機能専用なので、Zaurus(シャープ)との連携の仕方などがいまいちよく分かりません…接続ポート自体はMSX規格のジョイスティック端子(FMV-TOWNS用「ワイヤレスコマンダーV」/「IRコマンダー」ではシリアルポート接続に変更)なので、ライブラリを解析してどう制御すればいいのかがわかればFM-7シリーズでも使えるかもしれませんが。
そういえばモデルHC本体に付属していた「FM TOWNS拡張計画」だったか何かの初版にHR/HG/MX/MAのリモコン受光部でデータ通信ができるとか訳のわからないことを書いてあったんですが、2版目からは削られているらしいです。
2020-10-16 13:44:16
ワイヤレスコマンダー・・・ 持ってます。
実家に有るので遊ばれるのであれば付き合いますョ ただ、1台しかないので相手をどうするかが問題では有ります。
IRのLEDでもArduinoから光らせてシリアルデータを遅らせることは容易に可能です。
2020-10-16 14:23:56
実家にあるのは頼もしいですね
バッキバキに使っちゃって下さい(*´▽`*)
2020-10-16 20:01:08
それって、どのぐらいの解像度で信号出ますかね?どのぐらいの解像度が必要だったかソース見ないと忘れてしまったのですが、それを使うと、TOWNSをFM77AV/AV20/AV40のリモコンキーボードとして使うプログラムが書けそうですね。まさに、老々介護!それができたら楽しそうですね。ただ、普通のリモコンより少し高い解像度が必要だったように記憶しています。1ビットが平均1msだったかな?36KHzのmodulationで1ビットがパルス4回とかだったような気がする。しかしI/Oはライブラリを解析しないとわからんですか。それってHigh-Cマルチメディアキットに入ってましたかね?
2020-10-16 22:41:52
>150 山川機長さん
High C マルチメディア開発キット V1.7L13にはライブラリが入っていることを確認しています。
FM77AVシリーズのワイヤレスキーボードとして機能させるとかお互いにワイヤレスコマンダーをつないで通信するとかのネタはユーザーフォーラムになった後のFTOWNSのRTCでもいろいろと話題にはなったのですが、誰も作りませんでした。w
2020-10-20 17:05:20
おおそうですか!それだと津軽で動作を見れますね。十分な解像度が出るようなら老々介護プログラムが書けると思います。ジョイスティックポートに信号が出てるようなら互換ハードは作れると思います。うーん、この間Arduino用に書いたFM77AV赤外線キーボードエミュレータのコントロールプログラムをCで書いておくべきだった。大学の物置とかにHigh-C++落ちとらんかな。
2020-10-22 01:06:47
雑談というか余談です。
ユーザーフォーラム版FTOWNSには初期を除くベンダーフォーラム時の2フォーラム体制を維持(会議室は再編成)した際のユーザーフォーラム(FMTOWNS Multimedia Forum)と、そのあと1フォーラム体制に規模を縮小してフォーラムマネジャーも交代した後のユーザーフォーラム(FMTOWNSフォーラム)があるのですが、1フォーラム体制の時のフォーラムマネジャーは実はベンダーフォーラム当時の絵画喫茶(ふり~はんど)で「うぇいとれす」をつとめてた「あや」さんでしたw
2020-10-23 05:32:54
ワイヤレスコマンダーは残念ながらまだ発見できていません。 代わり(?)にCyberStickとTownsMXをサルベージして参りました。
MXはCMOSが飛んでいるので、電池の交換とドライブ構成から行う必要が有ります。 CD-ROMの調子も良くなくてFASTモードでは読み込みが正常に行われない様ですし、互換モードでも成功率は低い様子ですので、SCSIからブートする事になりそうです。本当に助かります。
2020-10-27 09:06:54
ブートローダーで一台でもTOWNSが救えたら作った甲斐がありました。現在ハードディスク用ブートローダーを既存のハードディスクイメージの後ろにひっつけるスクリプトを書いてテストしています。津軽上の実験ではCMOSが飛んだ2Fを仮想ハードディスクだけで外付けCDドライブも使わずに復活させることに成功してますが、まだ実機の起動プロセスと何かが違ってる部分があるようなので実機であっさり成功するかどうかはやってみるまでわからんですね。これがうまくいったら、普段使いのハードディスクイメージの後ろにひっつけたものをSDカードに焼きSCSI2SDなどを使って実機を復活させることができて、しかもそのまま継続使用可能(困ったらまたブートローダーから復活させる)になる予定です。
ワイヤレスコマンダーは、僕の環境でやろうと思ったらどうせ自作が必要になるので、そのうちワイヤレスコマンダー再生産プロジェクトをしましょう。単純にCOM信号でOn/Offを出してるだけだったら簡単な赤外線LEDの回路で済むかもしれないですが、そこまで甘くはないですかね。
2020-10-27 10:43:09
引き揚げてきたMXは結構重症で、内蔵CD-ROMはほぼ使い物にならない状態,FDDはドライブ0側が故障,HDDは認識出来ない状態でした。
取り敢えずバッテリーホルダの入手から順に行っていこうと思いますが、HDDは今更SCSIのHDDやIDE→SCSI変換も入手が困難なのでSCSI2SDと同様な物を作る事を考えています。
ワイヤレスコマンダーは何処に行ったのやら・・・ 購入時の外箱は有ったので実在することは記憶も合わせて間違いないのですが・・・ 持ってきてるのかなぁ?
見つかったらハードウェアの解析もやりますね。 どうせならUSBで接続できるようにして再生すればMacやWindowsとの通信にも使えるようにできればと、妄想が膨らみます。
2020-10-28 08:06:04
FDD0が故障は結構いたいですね。でも、0と1を交換すればなんとかディスク1枚のものは起動できますかね。
ところで、まったく関係ない話なのですが、ふと初代TOWNSのモニタのダンパーワイヤー線のことを思い出して、そういえば、TOWNSのモニタはトリニトロン管になったからダンパーワイヤー線が見えるは正常で故障じゃないとかそんな話をしたもんだったなあ、と、思っているうちに意味もなく津軽で再現したくなったのですが、あれって画面のどの辺に入ってましたっけ?下から3分の1ぐらいのところだったように記憶してるのですが。でも、ピクセルの角が見えるのに感動しましたよね。(同意を求めてどうする)
2020-10-28 10:03:26
>157 山川機長さん
FDDは仰るように#0と#1を暫定的に入れ換えました。 元#1のFDDも汚れやホコリが酷いので何時までもつか不安ですが、そのうちジャンク品に置き換えようかなと思っています。(MXのFDDはHCとは違い、電源が34pinのコネクタに入っているタイプなので魔改造が必要ですが)
モニターのダンパー線は記憶では下から1/3位の所に入っていたような気がします。(FM-DP532)
モニターのサイズやタイプによってはダンパーの数や位置は異なる事が有るようですのでUX等の一体型で型の小さいモニターはどうだったか判りません。
実測で計ってみたいような気がします・・・・ でも、うちのモニター(DP532)はパチパチと内部から音がするので怖いのです(故障が)
もう何年も通電していないので放電してるから、空けて掃除をしたら直るかな?
因みに当時は「ブラウン管はトリニトロン管であるべき」とまで思っていましたのでテレビもSONY製でした。(汗)
ついこの前まで使用していたEIZOのモニターもトリニトロン管でしたね。
2020-10-28 16:06:01
了解しました!大体下から3分の1ということで大体合ってそうですね!というわけで、早速、津軽史上最も意味が無いと思われるダンパーワイヤー線を表示するオプションを追加しました!今日の晩のリリースから使えるようになります。僕も純正モニタは大学に置いてあるんですけどね。今年は出番が無くなってしまいましたが年に一度のイベントのときだけ使うことにしてます。
2020-10-29 01:02:17
ああ・・・ ダンパーワイヤーだ。懐かしい 何か良いですね、雰囲気が出ます。 後はスキャンラインとオーバースキャンが有れば完璧ではないでしょうか?
ローレゾモードの1ドットずれも確認できました。
2020-10-29 08:00:43
おおなるほど!15KHzモードのスキャンラインだったら1ピクセル幅でピクセルを暗くすれば雰囲気出そうですね、ということで、やってみたのですが(ついでに2フレームごとに奇数ラインと偶数ラインを入れ替えてみた)、いまいち雰囲気出ませんでした。Windowsが勝手にWindowにスケーリングをかけてしまう(他のOSでも多分同じ)影響で、ただ、変なのは1倍以上であれば描画されないラインは発生しないと思うのですが、ところどころ暗い線が見えませんでした。多分スケーリングがなんか変なことしてると思うんですよね。一応、-SCANLINE15K オプション使えるようになってます。
2020-10-31 09:24:26
実家に保管してあった「Music from Ys」のLPレコードが処分されてしまったらしい。ここ十年ぐらいで最大級に凹む。。。。。。
2020-11-04 11:52:11
ぎりぎりで処分免れました。お騒がせしました。
なお、(ついでに)津軽でベストプレイ・ベースボールが動くようになりました。ENTER命令の実装を間違ってたというか無限ループになってた。
2020-11-05 08:56:28
貴重なレコードが処分されていなかったのは何よりです。
私はFM-7のテープ版ソフトが全て処分されていました。 泣けました。
妻は文庫本や漫画が大量に処分されたようで・・・・ 実家はヤバいですね。
2020-11-06 23:23:15
https://github.com/yas-sim/floppy_disk_shield_2d
なにやら面白そうな物が・・・・ 書き込みには今のところ(?)対応していないようですが、キャプチャ→modifiedD77ファイルを作成できる様子です。
プロテクト込みで保存するのが目的だそうで、なにやら思想的に類似点がありますね。 →山川機長さん
2020-11-16 13:48:17
それおもしろそうですよね。コピープロテクトはゲームの保存にただの害だと思ってたんですが、コピープロテクトを解除するついでにデモを仕込む文化が始まって今ではデモ自体が文化になってるという話を聞いて、今ではコピープロテクトも次の世代に残したい技術遺産みたいに思います。考えてみるとあのいたちごっこもそれはそれで当時の時代を彩っていたような。
ちなみに、デモといえば今週末アメリカ東部時間の金曜と土曜(日本時間だと土曜と日曜)、毎年恒例のDemosplash 2020があります。今年は残念ながら全面的にオンラインになってしまって、手持ちのFMシリーズを展開して展示はできなくなってしまったのですが、デモ、チップチューン、その他プレゼンテーションなど予定していますのでよかったら http://demosplash.org から見に来てください。
2020-11-18 01:42:49
取り敢えず手元にTEENSY3.5が有るので、似たようなものを作ってみようと思います。
4MHzでサンプリングするとFDが300rpmなので800Kビット=100KバイトなのでTEENSY3.5のRAMに入りますので、1トラック毎にSDカードに保存出来そうです。
デコード/デコードもTEENSY上で行えれば最終的にはFDDエミュレータが出来そうな気がします。
コピープロテクトは正当な報酬を得る事に対する自衛が生み出した産物ですので悪と戦った武器であり楯でも有ると考えています。
コピープロテクトも含んだ物が1つの作品であると考えると、それを解除したものはオリジナルでは無くなるとも思いますのでイメージ化する際にはプロテクトも含む方が良いのは確かですね。
Demosplash 2020は、是非見に行こうと思います。(英語は解らんけど 汗)
一時期海外のデモが流行った時に驚愕したのを覚えています、AmigaやATARIは触る機会が無かったので技術的にどうなのか判断できなかったのですが、PCのデモは98やTOWNSとスペック
的にそう変わらないので、正直「凄いなぁ」と感心したものです。
2020-11-18 11:57:17
>誰となく
実FM音源(代表的なものはSCCI,G.I.M.I.C.,C86BOXあたり)にしろプロテクト込みのフロッピーディスクイメージ(代表的なものはHxC/KryoFlux系(APIはDLL経由),FDX68(APIが特にあるわけではない)あたり)にしろ、規格が乱立することはエミュレータ開発者に負担をかけることであり、あまり望ましいものではないと考えています。それだけです。
2020-11-21 19:30:51
そうですねえ、開発する方としては、とりあえず対応できそうなものは対応するという感じなので、無理そうなフォーマット対応のリクエストがあったら、「ごめん、無理」って言って済ましてしまうのですが、どっちかというとユーザの不便さの方かもしれないですね。
ただ、保存という観点では読める限りの情報を読んでおいてくれればあとは必要になったときになんとかする、とも言えるので、とくにTOWNS用フロッピーディスクタイトルについてディスクが生きているうちに少なくともD77化したいところですね。
昨日と一昨日Demosplashでした。今年は全面オンライン開催でしかも各自ばらばらの場所からライブキャストになったので、途中アクシデントで穴が空いたとき僕がレトロゲームでつなぐという予定になっていて、FM77AVの用意したネタを使い切ったときに備えてTOWNS 2MXでStrike CommanderとWing Commanderを走らせられるように準備していたのですが、結局TOWNSの出番はありませんでした。ちなみに金曜の(日本時間土曜)のふたつのレトロゲームのライブキャストは最初から予定されていて予定通りだったのですが、土曜(日本時間日曜)のX68KとMSX2のライブキャストが途中で配信担当のネットが切れるというアクシデントがあって、急遽切り替えて僕がFM77AVで25分ほどつなぎましたね。おもしろい経験でした。
ですが、我がYM2612(津軽弁)の音と本物YM2612の音と比べると、津軽弁はやや音に切れがないですね。実機の方がシャキシャキしているというか。あの差はどこから出ているんだろう?YMチップは深いフィードバックかかったとき、わざと発散させてノイズを作っているようなので発散の仕方が合ってないのだとすると合わせこみは大変そうですね。あと、やっぱ486DX 66MHzは速いですね。津軽をあれに追い付かせようと思ったら、今から倍のスピードアップか。。。。
2020-11-23 08:18:46
>169 山川機長さん
D77(D88)フォーマットはプロテクト含めて保存するにはあまり向いていないフォーマットなので…時分秒プロテクトや意図的に一部をアンフォーマット状態にしている場合、GAP長の調整によるデータ詰め込み程度ならある程度対処できますが(XM7の新規ディスク作成機能は基本的な1トラック当たり1024バイト5セクタ 400KBを想定しているので、それを超えるフォーマットとなると改めてデータ領域の確保が必要です)、コロコロフォーマット(読む度にデータが変わる)などには対処できません。
あと、津軽弁と実OPN2系チップの音の傾向の違いですが、仰るとおりフィードバックを最大の7に設定してトータルレベルを上げた場合に意図したノイズ音にならずに何となく別のノイジーな音にきこえる感じがします。拙作のデータでもそれをやっているものがあるのですが、さすがにいろいろと権利関係がまずくて配布するわけにはいきません…すいません。
あと、津軽でハイレゾモードを有効にしている場合、なぜかTownsシステムソフトウェア V2.1L51のQuickTimeプレーヤーが1024×768ピクセルモードになって起動できず、そのままTownsMENUに戻ってしまいます。Unzでのハイレゾモード時の動作、および津軽でのハイレゾモード無効時は問題なく起動するっぽいですが、もしかしたらベースになっているMS-DOSのバージョンの違いから来る問題かもしれないので(ハイレゾモード無効時はCD起動で試しました)、もうちょっと調べてみます。
2020-11-23 11:58:40
170番の書き込みですが、「あと、」が2つありますね。失礼しました。
とりあえず津軽でのQuickTimeプレーヤーの追試を行なったのですが、現状ではTownsOSがDOS6ベースだとハイレゾモードの設定にかかわらず起動しないようです(実機でもメモリ実装容量が64MBを超える場合に起動できない問題がありますが、これは実はRUN386.EXEの隠しパラメータで認識メモリ量を制限することで実行できます。-MAXEXTMEM なんとか…だったかな?)。特にログにはエラーらしきものは出ていないので、もうちょっと続けて追ってみます。
…まぁ、TownsOS V2.1L51のQuickTimeプレーヤーはバージョンが古すぎるのですがw
2020-11-23 12:06:15
りうさん、
やはりフィードバックの問題が大きい模様ですか。僕個人的には、気に入っていて一時期着信音にも使っていたSuper大戦略のイントロが微妙にふにゃふにゃしてしまう問題と、Strike CommanderのBGMの音がやや歯切れが悪いというのがひっかかっているのでいずれなんとかしたいと思っています。ちなみに、津軽弁はこの先C++用のPLAY関数を実装して授業で学生に使わせようとかいかいうことを考えはじめてます。
なお、FM音源とPCM音源のボリューム問題ですが、一昨年書いたTOWNS用デモを走らせたら音が割れるような気がして、調べたら本当に割れていて+32767,-32768の範囲を超えてました。どうやら津軽弁の出力は下げて、もとのDirect Soundのボリュームを上げる必要があるようなので、そのように修正します。今音が割れてるやつがあったらこれで直る鴨。
かならず決まった位置でクラッシュするものがある場合は、それはデバッグのチャンスですね。QuickTime Playerは僕は使ったことないのですがTowns OSに入ってたんでしたっけ?
D77フォーマットに関しては、コロコロに関しては効率は良くないですが、同じ番号のセクタをひとつのトラックに複数書けるようなので、二度書いておいて読み出す方はもしも同一トラックに同一セクタが複数あったら比較して一致しないバイトは毎回乱数にするような対応が可能ではないかと思っています。我がFM-7/77実機を使ってRS232Cでイメージを転送するユーティリティはCRCエラーがあったセクタはデフォルト3度読みするようにしてます。この方法の難点は、Index Hole検出後n回Address Markをスキップしてから読むみたいなプロテクトに対応しようとすると競合するかもしれないという問題ですね。。。。いや、そうでもないか。Read AddressとRead Dataの順番によってやりようはあるのかな(また考えながら書く僕)。とはいえ、なかなかすべての条件を満たすのは難しいので、Raw Readを保存しておくというのはひとつの解決策かもしれないですね。
2020-11-24 03:52:30
>172 山川機長さん
QuickTime Playerですが、170で書いた通り、Townsシステムソフトウェア V2.1L51に入っています(アイテム登録はされていないようなので、ファイル名を挙げておくと\T_TOOL\PLAYER.EXPになります)。
あと、実際にD77という拡張子のまま津軽側で独自拡張されてしまうと、私はともかくとして原作者のPI.さんにもご迷惑をおかけしそうなので…。
2020-11-24 13:44:19
プロテクト情報を含んだイメージファイルについては、"D77"と言う拡張子は使用すべきではないと私も思います。
元のmodifiedD77ファイルではD77フォーマットの未使用部分を利用して拡張されていますが、未使用部分についての取り扱いが各エミュレータにより異なる可能性も有りますし、例えD77イメージを使用するソフトが全て(完全に)動作したとしても使用者ならびにエミュレータ制作者の混乱の原因となると思われます。
2020-11-24 14:22:14
おおなるほど。D88→D77と来たから、拡張したものを別にするんだと、D386ですかね?4文字拡張子がやや気持ち悪いですが、D86にすると8086と思われそうだし。ただ、TOWNSの場合今のところFM-7時代のようなえぐいプロテクトは見つかっていなくて単にセクタが多い程度だけみたいなので、TOWNS用に拡張は必要ないような気もしています。いずれにしてもすぐにはやらないですけどね。
2020-11-24 21:38:43
あと山川機長さんにご相談なのですが、ファイルセレクタのワイルドカードに*.xdf,*.hdm,*.d88等を追加していただけないでしょうか。無理強いはしないのでお願いいたします。
2020-11-25 07:13:31
おおなるほど!拡張子の追加は簡単なのでやりましょう!
ハードディスクの拡張子を何にしようかと考えていてとりあえず困ったときのBINにしているのですが、自分のディスクの中にはH0になっていたりHDMになっていたりするので、どれかに統一しようかと思ってるところなのですが。あ、ひらめいた!H77形式!いや、FM77用じゃないからやっぱりやめよう。
ちなみにWing Commanderの設定速度と最高速度を記録している箇所を特定できたっぽいので、ストライクコマンダーのようにスロットルレバーで速度をコントロールできるようにしてやろうと思ってます。こういうパラメータを探すメモリフィルタ機能が初めて役に立ちました。
2020-11-25 09:45:30
ハードディスクの拡張子はうんづが".H0"等ですが、中身は単なるRAWデータですよね。
津軽も今のところはヘッダーとかの付かないRAWデータですので、たとえ拡張子が違っても"BIN","HDM","H0"などが使えるわけですが,本来はこれらは同一の機能を提供するものですので統一されるべきだと思います。
しかしながら、使用目的が"FMTOWNSのHDDイメージ"であり、同じRAWデータでも他の機種のHDDイメージとしては使用できないことから拡張子により分ける必要も有ると思います。
使用目的が同じで内容が同じであれば、"うんづのHDDファイルと共通"と言うことを表すために、うんづの"H0"等に合わせておくのが無難だと思うのですが、どうでしょう?
2020-11-26 08:00:20
こちらは感謝祭の休日だったのでWing Commander 2を二周プレイテストしました。(あくまでもプレイテスト)
Wing Commander 2は1に比べて難易度がガクッと上がってますね。というか、敵機・味方機との衝突が多すぎ。オートパイロットにバグがあって、目的地に艦がいるとまっすぐ突っ込んで自機が粉々になってしまうことが何度もあったり、また、敵艦攻撃の指示"Attack My Target"を出しても通常兵器で敵艦を攻撃しようとしてウイングマンが自滅してしまうとか、後半のミッションでは指示自体に従わなって敵艦に自機だけで立ち向かわなくちゃならなくなったり、完成度が低いようですね。最終ミッション以外は一応タクティクスがあって考えて戦えば結構勝てるようになったのですが、最終ミッションだけは無敵モードを使ってすら自機がダメージを受けてしまって(爆発しないだけでダメージは受ける)対艦ミサイルを撃てなくなってクリアできなかったりするのは難易度調整に難があるように思いましたが、若かりし頃だったらもっと勝てたのかなあ。あ、あと後方銃座の操作で縦と横が同時に動かないという仕様になってて、それはさすがにあんまりだろうと思ったので解析して-APP WINGCOMMANDER2で起動するとパッチを当てて同時に動かせるようにしてしまいました。GOGのWing Commander 2も買ってあるんだけど同じ仕様なのだろうか。あの仕様だと爆撃機でほとんど勝てない。ときどきクラッシュしたのが津軽の問題なのかWing Commander 2の問題なのかはわからんですが。ときどきVM自体がクラッシュしたけど頻度が低すぎて原因の究明には至りませんでした。
HDDのイメージファイルですが、UNZのH0ってSCSI ID 0番のイメージという意味なのではないかと思ったんですが、同じHDイメージを違うSCSIIDにつなぐこともあるので、ちょっとこれを標準にするのはいまいちすっきりしないんですけどね。一応GUIの方ではH0~H3を含めて拡張子を選べるようにしてみました。そういえば、Pinさんがビープをつけてくれました。日ごろ読みやすいコードを書くようにと学生さんに言ってるものの、自分でうまくできてるだろうか?と、思っていたのですが、それなりに読めてるみたいで良かったです。
2020-12-01 01:40:08
訂正(かもしれない)。なんでWing Commander 2のラストミッションがこんなに大変なんだ?と、思って見なおしてみたらジョイスティックインテグレーションで出すマウスの座標が振り切ってませんでした。多分操縦桿出力が1割ぐらい違ってたのでこれだともう少し勝てるかもしらんです。今晩にも再度やってみます。
2020-12-01 02:07:03
WingCommander2、お疲れさまです。
難しかったと言う記憶が飛んでいるのですが、やり応えが有ったと言う記憶は有ります。
この前に動作確認でプレイしたときには散々な結果だったので腕が落ちているのは確かですね。(自分)
HDDのイメージファイルに関してはH0やH1の数字の部分は確かにSCSIのIDを示していますが、確かに拡張子に入れる必要もない(1番をSCSIの0番として使用しても問題ない)し、うんづでのHDDの指定方法からすれば必要のない番号だと思います。
敢えて言えば今のところそのようなTOWNSエミュレータは存在しないのですが、HDDイメージの保存されているフォルダのみを指定すれば自動的に拡張子の番号通りにSCSIを接続した状態とする事が出来る事くらいでしょうか?(それが便利かどうかは別として)
無理にうんづに合わせる必要も無いとも思いますが、理想を言えばうんづと津軽のイメージデータに互換性がある以上は拡張子を変える場合はうんづ側でも新しい拡張子に対応するようにしてもらうべきかと思うのですが・・・・ 暫く更新されてませんので望みは薄いのかもしれませんね。
そういう意味では津軽サイドではうんづと同じHxの拡張子を今はメインとして使用するが、別の拡張子を考えてうんづ側の動きによっては歩調を合わせて新しい拡張子に移行するのもアリだとも思います。
(あくまで私の思いや考えですので、"こんな考えも有る"程度に受け止めていただければと思います。)
前に紹介したfloppy_disk_sheldですが、ブレッドボード上での制作を始めました。
最初はyas-simさんの物と同等の機能を有する物を作成した上で2HD対応やエミュレータ機能の搭載を考えています。
本当はFDDからのReadDataをアナログ値で保存した方が良いのでしょうが、今はデジタル値でのサンプリングを目標にしています。
サンプリングも2HDの事を考えると4MHzでは心もとないので、6~8MHzでのサンプリングが必要なのかなとも思っています。
亀以下の速度でしか進まないのですが、ボチボチやっています。(汗)
2020-12-01 10:16:11
調子に乗ってWing Commander 2プレイ動画上げました。エンディングのスタッフロールに出演声優さんのリストがあるので貴重ですね。Wing Commander 2だとクリアしないと見えないだけに。Hironori Hirata Kilrathiとあるんですが、一人でキルラーの人達(猫達?)の声全部やったのだろうか。ん?Wing Commander 1って出演声優さんの名前ってオープニングのCreditに出てたかな?
https://www.youtube.com/watch?v=Pu4iL86IG_w
やっぱりジョイスティックインテグレーションがフルに振り切ってなかったのが難しさの要因で、直したらスラカス機を落とすのは割と簡単になりましたが、続く4機の迎撃機は苦戦しますね。でも修正前みたいに20回やったら一度ぐらいクリアできるレベルから2回に1回ぐらいはクリアできるレベルになりました。ということは、これに気が付くまでのミッションすべてで僕はものすごい苦労をしてきたんですね。多分、ジョイスティックの入力の最後の10%ぐらいで非線形に角速度が上がっていたのではないかと思います。二周やってしまったのでいろいろ作戦とかわかってきましたね。アステロイドフィールドで、アステロイドを盾にする戦法を上のビデオの中で実践してますんで、よかったら見てください。
HDDの拡張子は、まあ、妥協案は全部H0にする感じですかね。もっとももはや3文字拡張子にこだわる時代でもないので.TOWNSHDみたいにしてもいいかもしれないですが、僕もこれといって強く主張する案も無いですね。Floppy Disk Shieldは2HD版ができるといいですね。しかし、Arduinoは16MHzだから8MHzでサンプルするには2クロックで一度サンプルを取る必要があるのか。あ、でもその部分をシールドでやって8ビット単位でバスに出すのかな?そうしたら16クロックに一度で良くなる計算ですかね。どういう形式にするかとは別の問題としてTOWNS用FDアプリケーションのコピープロテクトを含めた保存ができるといいんですが。でもゲーム保存協会とかでは既にやってるのかな。
2020-12-01 12:37:48
プレイ動画を拝見させていただきました。 早々にキツイのを食らってレーダーが使えなくなったので辛そうでした。
"うーん、これはクリアしたのだろうか?"と思っていたのですが、デブリーフィングのセリフに覚えが有るような,ないような・・・これはもう一度やって記憶に残す必要が有りそうです。
FloppyDiskSheldの現在の方法では、サンプリングはデジタル値としてSPI SRAMに直接送り込まれていますのでArduinoには関係なくサンプリングレートで保存されます。
SPI SRAMは20MHzまでのSPI Clock品ですので20MHzまでは大丈夫なのですが、容量が1Mbitですのでサンプリングレートが4MHzで1トラック分しか入らない換算です。
今現在ブレッドボードで試しているのはArduino UNOではなく、TEENSY3.5を使用していますのでSPI SRAMに保存するのではなくTEENSY3.5内のRAMに流し込む予定ですがそれでもサンプリング周波数が8MHzを越える場合にはRAMの容量が足りなくなりますので、その場合はTEENSY4.1を使用するつもりです。(4.1も手元に有るのですが、5Vトレラントではないので面倒くさくて)
(TEENSY3.5 → Cortex-M4F@120MHz,RAM128KByte,TEENSY4.1 → Cortex-M7@600MHz,RAM1024KByte・・・・ 4K円程度でこのスペックが実現できる時代なんですね。)
2020-12-01 13:52:27
なんと、600MHzのがあるんですね。学生さんが皆Arduinoを使ってる影響でArduino以外のは使ったことが無かったのですが、この冬に横置きTOWNSの内蔵CDコネクタの調査をしようと思ってたのですが、究極的にはロジックアナライザだとデータのモニタしかできなくてバイトデータを抜き出すことができないのでFPGAを検討していたのですが、こっちの方が良さそうですね。うーん、しかし5V未対応なのか。
プレイ動画について、コメントにも書いたのですが、ウイングコマンダー2は空中衝突(空宙衝突?)が多すぎるんですよね。正面から向かってきてる敵機と激突するならまだプレイヤーの責任と言えるのですが、このプレイ動画のようにまったくの視野外の敵機になんの警告も無く激突された上に大ダメージを受けるのはちょっとやる気を削がれますね。今のゲームでこれやったら相当叩かれそうですが、でも当時だとこの3Dグラフィックスと演出だけで感動したもんでしたね。ちなみに僕は当時既に部屋にはMXとDOS/V機が並んで置いてあったころで、Wing Commander II以降はすべてDOSで英語版をプレイしていたので、日本語版Wing Commander IIをクリアしたのはこれが初めてでした。TOWNS版Wing Commander IIは、当時富士通勤務だった友達に、TOWNS版のWing Commander II出たけど、BGMがオーケストラになってるか気になってるんだよね、と言ったらなぜかホイと一枚CDだけくれたやつを今でも大事に保管してます。
2020-12-02 00:10:29
奇遇ですね、私もCDROMをどうにかしたくてデータのモニタを画策しています。
CD-ROMは等速で150KByte/sなので倍速でもTEENSY3.5で充分では無いかと思っていますので、取り敢えずは本体-TEENSY-Driveと接続して流れるデータのモニタを考えています。
残念ながら私はオシロは持っているのですが、ロジアナは持っていませんので途中でTEENSYでデータをモニタリング(TEENSY-PC間はUSBシリアル@2MBPS)してデータ解析が出来るかなと思っています。
でも、その前にFDDの方を何とかしないと駄目ですね。(すぐに違う方に気が向いてしまいがちな人なのです)
因みにTEENSYはArduino互換ですので、開発環境はArduinoIDEを使用しますので今までArduinoで養った知識と経験は全て流用可能ですのでお薦めです。
WingCommanderIIの減点はCDDAによる豪華なBGMでは無くなった事と、デジタル操作の操縦でしたがこちらは山川機長さんのご尽力により大幅な改善が得られました。感謝です。
この冬休みにでも通しプレイをしてみます。(メインのテレビを独占するので嫁と子供の冷たい視線が予想されますけど、気にしたら負けかな?)
2020-12-02 10:05:34
CD-ROMドライブはTOWNSの動態保存の聖域と思ってます。これさえなんとかすれば、という感じですよね。今のブートローダーでとりあえずまったく起動できないという状況は回避できるようになったと思うのですが、フラクタルエンジンとかほぼパッチ当てるのが不可能なものは実行できないですからね。でもOh!TOWNSを読んでたら、実は編集部にはハードディスクから実行するプロトタイプが回ってきたという記述があり、実はパッチ当てるの可能か?と、ちょっと思ったりもしているのですが。ロジックアナライザは解析の初期段階でピンの役割を解明するまでで、それが終わったらロジックアナライザで取り切れる分量を超えるデータを読まなくてはならなくなるので、TEENSYは良さそうですね。
なお、Wing Commander IIは、サイバースティックに対応しているようです。起動時のゲームポートのスキャンでそれらしいチェックをしてました。津軽のスロットルインテグレーションは機能するようになったのですが、注意点は、スロットルレバーの読み取り値が揺れる場合(わがCH Pro Throttleだと結構大きくプルプル震える)、キーコードを送信し続ける影響で、イベント画面が次々に先に進んでしまう点です。これを防止するには、イベント発生前にスロットルレバーをゼロの位置に引いて速度ゼロに減速しておく必要があります。例えばConcordia着艦前にスロットルレバーで速度ゼロにして、キーボードの+で前進して着艦みたいにするとイベントのスクリプトがものすごい勢いで進むのを防止できます。スロットルの設定を書いてあるアドレスは特定済みなので、直接値を書いてしまってもいいんですけどね。
是非、冬休みはお子様と奥様にウイングコマンダーシリーズの魅力を力説してください。
2020-12-02 12:03:24
あ、そうだ。もう一点ウイングコマンダー2と言えば、YouTubeの他のプレイ動画を見るとわかるのですが、DOS版だと使ってるサウンドボードによって効果音とBGMの質に結構な違いが出ていたようです。多くのプレイ動画では銃撃の音が8ビット機みたいな効果音になってますね。それはそれで好きな人には味がある音ですが(^_^;)おそらくFM TOWNS版は最高級に近い(けどMIDI未満)のサウンドボードで録音されたのではないかと思います。オーケストラにはならなかったですが、BGMと効果音は標準的なDOS版よりは良かったようですね。スロットルインテグレーションもGUIに統合しなきゃなあ。
2020-12-03 01:45:04
Wing Commander Secret Missions 1もクリア確認できました。調子に乗ってまた最終ミッションのプレイ動画を上げました。
https://youtu.be/WXQlE2JEXGk
なお、この動画ですが、確か前にも書いたような気がするのですが、別パッケージのSecret Missions 1,2ではなく、最初にリリースされたWing Commanderのファイルを使って起動してプレイしてます。多分富士通&Originは何か大急ぎでWing Commander 1 for TOWNSをリリースしたのではないかと推測しているのですが、Secret Missions 1,2に必要なファイルはすべてCDに入っているのに、開始しようとすると、camp.001, camp.002ファイルが読めないため起動しません。このファイルはsavepathにあるとプログラムが思っているので、全ファイルをハードディスクにインストールして同じディレクトリにセーブするようにsavepathパラメータを設定するか、この2本のファイルをデータファイルのあるフロッピーディスクにコピーすることで別パッケージを買ってこなくてもSecret Missions 1,2がプレイできるようになります。ただ、3rd missionではデブリーフィングをESCキーでスキップしないとプログラムがクラッシュする他、不完全なところがかなり多いですね。この方法は当時解明して別パッケージのSecret Missions 1,2がリリースされるより前に僕は両方クリアしてしまっていた、というか別パッケージがあったことを最近まで知らなかったんですがね。当時どうやって調べたんだったか、適当にハードディスクにインストールしたら起動しちゃったんだったか、386DEBUGで解明したんだったかよく覚えてません。
たしか日本語訳が終わってない箇所があったと記憶していたのですが、それは見当たりませんでした。Secret Missions 2の方だったかもしれませんね。
そういえば、Wing Commanderのジョイスティックインテグレーションも逆G(?)のターンと斜めのターンが振り切ってないという問題を確認したので、直しました。なんでわかったかというと、いくつかのミッションが異様に難しくて、こんなに難しかったっけ?と思ってチェックしたらわかりました。直したバージョン、近いうちにPUSHします。
2020-12-04 14:57:37
Wing Commander, Wing Commander Secret Missions 1, Wing Commander Secret Missions 2, Wing Commander 2, Wing Commander Special Operations 1, Wing Commander Special Operations 2とすべて津軽でクリア確認できました。夏頃に既にまさか半年でここまで進むとはと思ってましたが、1月に津軽の開発を始めたときはまさか11か月でここまでできるようになっているとはまったく思いませんでした。皆さんがテスト情報をアップロードしていただくようになって、開発が加速したような気がしますね。ありがとうございました!引き続きよろしくお願いします。
なお、ウイングコマンダーについて、いろいろメモしたこと、ミッションごとの解説、思いついたことなど以下にまとめましたので、よかったらご参照ください。YSFLIGHT.COMは基本日本語と英語両方出すようにしてるんだけど、ちょっと長くなったから英語版書くのはまたにしよう。。。。
http://ysflight.com/FM/towns/wingcommander/wc1_j.html
2020-12-11 11:09:29
津軽ともエミュレータとも全然関係なくて恐縮なのですが、あの「AnotherTOWNS」の連載の最終号に載せようとしてポシャった文章の手直し版(まだ手直し中ですが)をアップロードしておきました。興味のある方は読んでみてください。
http://retropc.net/ryu/unz/at/at20_00.htm
2020-12-17 15:50:25
読みました!ありがとうございます!
フリコレは、僕としてはあれが圧力になって市販ソフトの値段が下がってくれんかと思っていたのですが、ソフト高かったですね。TOWNS発表前後にたしかOh!FMだったと思いますが、ちらっとCD-ROMはコピーが不可能(当時まだCD-Rは無かった)だから、コピープロテクトが必要なくてコストが下がるはず、とか書いてあったと思ったのですが、ふたを開けてみたらぜんぜん値段は下がらなくて、これだとTOWNS本体は値段が張っても一度買ってしまえばソフトにかかるコストは低いと言えないじゃん、と思っていたので、安くしないとフリコレでみんな済ませちゃうよ、というプレッシャーがかかればメーカーは値段を下げてくれるんじゃないかという期待は期待だけで終わりましたが。
今となっては、当時金と時間と若さと社会生活と頭髪を犠牲にして開発したソフトがプレスされたCDとして残ってるというのがうれしいですね。こんなことならソースも公開しときゃよかった、と、今となっては遅いですが。ポリゴンペイントのConcorde Graphics Libraryはソース込みでフリコレに出したと思うのですが、僕の記憶はつねに宇宙線にさらされてビットが反転しまくっているのではないかと思うぐらいあいまいなので、これも記憶が違うかもしれません。
フリコレが出てきた背景とか当時の事情とか、後に誰かが研究したくなったときにできるように残しておきたいですね。というか、一段落したらまじで「Writing FM TOWNS Emulator」って本書きたい。紙にならなくていいからPDFにしてばらまいておきたい。
ところで、フリコレ3だったと思うのですが(ベッド下収納してあるからすぐ取り出せない)、作者用に特別にゴールドのCDをプレスしませんでしたか?手元に残ってるうち一枚はゴールドであることは収納する前に確認したのですが3だったかどうか覚えてないのですが。あれって、作者用が特別にゴールドで、それ以外一般に販売された分は普通のシルバーでしたよね?
2020-12-18 03:10:37
>りうさん
読ませていただきました、ありがとうございます。
うーーん・・・・ 私はまるごと「負の圧力」側ですね。(汗)
HIGH-Cも386|ASMもF-BASIC386も持っていたのに、当時は何もコミュニティーに対して貢献する事が出来ずにいた自分が情けないです。
>山川機長さん
フリコレ10は一般品もゴールドですね。
でも、何かの記憶で作者向けに特別なディスクが有ったような気もしますが、定かでは有りません。
2020-12-18 10:56:16
>191 山川機長さん、192 WINDYさん
TOWNSのソフトがあまり安くならなかった券についてはいいとして…w
作者贈呈用のフリコレ3もゴールドディスクですね。後年になってあるルート(変なルートではない)から1枚入手した物があります。
フリコレ10のシルバー版も出荷はされたものの、見かけたことはとうとう一度もありませんでした。オークションで見かける物も全部普通(?)のゴールドディスク版ですし…
2020-12-18 19:22:51
宣伝ですが、↓に
https://github.com/captainys/FM/tree/master/TOWNS/XMODEM
コマンドモードで38400bpsでXMODEMできるユーティリティをアップロードしました。使い方は、パラメータにファイル名を指定するだけという簡単仕様になってます。-19200bpsオプションをつけると19200bpsまではスローダウンできます。レシーバの方はデフォルトCRCですが、-checksumオプションでXMODEM Checksumも使えます。ああ、それから、38400bpsで転送するときはRS232Cケーブルが長いとエラーを起こしやすいので、USBの方を延長ケーブルで伸ばした方が良いようですね。
実はWINKなどは低速のモデムなどを想定しているためか、128バイト送受信するたびに転送画面にバイト数を書くため19200bps転送時などは画面表示のためにスピードが落ちてます。が、コマンド版のXMODEMだとほとんど無言で転送するので-19200bpsオプションをつけた場合でもGUIのXMODEMより速いです。
FM音源のサンプルを取るためにDOSBOXでコンパイルしたテストプログラムをWindowsから実機に何度も送り込む必要があったのですが、フロッピーを使うのも面倒だしと思ってWINKのXMODEMでやってたのですが、19200bpsまでしか出なかったのと転送するたびにWINKに入るのが面倒だったのでコマンド版を書きました。書いたものの、とりあえずエンベロープ解析のためのサンプルは大体取れた後という。。。。TOWNS側でシリアル経由でgitできればいいのにな。
なお、今朝Attack Phaseの上がり方も実機に合わせて調節したので、かなり再現性上がってると思います。ソースPUSHしました。
2020-12-22 14:50:21
193だけだと誤解されそうなので。
>192 WINDYさん
フジツーサンによるPureTOWNS撤退から20世紀末~21世紀初めあたりまでのTOWNSユーザーを取り巻く状況がどうであれ、今あなたが運営しているこの掲示板やWikiも、(現状Artane.さんは主に5ちゃんねるで活動されているのでこちらに来られないと思いますが)山川機長さんの作品である「津軽」に対して意見や感想などをきちんと伝えられる場として提供している訳なので、それはTOWNS現役時代にあなたがどうであったかは関係なく、大変立派なことだと思います。
2020-12-22 23:21:40
このクリスマスは、津軽でSuper大戦略とStrike Commanderをずっとプレイするという幸福なクリスマスになってしまったのですが、25年間解明しないままにしてあった、Strike Commanderではゴールデンゲートブリッジの下をくぐることができるのか?という疑問を解決しました。「穴があったら入ってみたい」「橋があったらくぐりたい」とことわざにも言います。(いや、言わない)。調子に乗ってプレイビデオを上げました。
https://youtu.be/N14XGFgwQjQ
なお、↓で橋に当たり判定があることも確認しました。
https://youtu.be/EnhSQVPVUjA
2020-12-27 03:06:11
>195 りうさん
なんだか言わせてしまった感が拭えませんが、そう言って頂けると助かります。
何せ学生時代に情報を学んだ人間なのですが、その時代の「情報」は主にCOBOLとFORTRANだったのでCは未だに習得できずにいます。(記号と括弧だらけなのと言語としての自由度が逆に縛りのきつい言語から入った人間としては障壁になっています)
>196 山川機長さん
「穴があったら入ってみたい」「橋があったらくぐりたい」・・・・解るような気がします。私の場合は、それに加えて「成層圏へ行きたい」も加わります。
最近ではGTAでミッションを忘れてひたすら色々な乗り物で橋の下を通過した覚えが有ります。
2020-12-28 09:59:04
Strike Commanderですが、飛行中、WORD PTR CS:[D15D6]の値を書き換えてBGMを切り替えることができることが判明しました。Strike Commander PlusだとDS:[D5182]ですね。飛行開始して離陸待ちのタイミングで使うとゆっくり再生できますね。曲の中には、曲と曲の間のつなぎなのでフルに再生されないものがあるので、いくつかの曲はこれで通して聴くことができました。なお、この場所はMUSICをオフにした状態で書き込んでも割り込み処理ルーチンがピックアップして再生を始めます。おもしろいのは、10H,11H,12H,13Hに関しては再生後、直前に再生していた曲にスムーズに接続します。Strike CommanderはBGMのトランジションが非常によくできていました。
また、
000C:0006B60D 6A19 PUSH DWORD PTR 19H
この19HがEvent-ModeのMusic ID(In-Flightと別)で、この値(000C:6B60E)を書き換えてからView Objectsを選ぶと任意のイベントモード使用曲を再生できます。0~1Cまで曲が入っているようです。
Strike CommanderはBGMをキャプチャしたものとされるMIDIファイルが出回っていますが、その最初の曲が名曲なのですが、どう探しても入ってないという謎が残ってます。この曲はファンが作曲したものかもしれません。
また、Strike Commander Plusのオープニングは、第三の音楽再生ルーチンを使っているようで、別データになっているようです。が、PlusのオープニングはStrike Commanderの世界観とぜんぜん合ってなくて、いまいち好きじゃない人が多いのではないかと思うんですがね。Strike Commander無印(区別するためにStrike Commander Minusと呼んではどうかと一瞬思ったけど、やっぱりやめた)のオープニングは名曲と思います。
これ、いずれ.VGM形式のキャプチャができるようにしようと思っていて、その準備で解析しました。
2020-12-28 11:19:46
>197 WINDYさん
いえ、大元のRTC(1999年12月中旬頃)ではもともとそのような趣旨で発言していたので、恐縮されなくてもいいです。
…今日はそれだけ?(汁
2020-12-28 12:55:13
今年は津軽開発で大変お世話になりました。最初の1行目を書いたのは今年の1月17日で、始めたときは本当にTowns OSを起動することができるのだろうか?自分にエミュレータが書けるのだろうか?と思いながら始めたレベルなのに、まさか年内にここまで進むとは思いませんでした。自分の予想では今年中にAfterburnerが動くぐらいまで進めば大成功と思っていたので、まさかWing Commander 1/2、Strike Commander 無印/Plus、Super大戦略がクリア確認できて実機動態保存用IPLまで作れるとは。
WINDYさんにWikiと掲示板をセットアップしていただいてから開発が加速したように思います。多数のソフトウェアをテストしていただき、動作しないタイトルを迅速に特定できたことが開発の加速につながりました。また、こちらでテストできない件に関してテストプログラムを実行していただいたり、詳細な技術情報を提供していただいたことも大きかったですね。非常に助かりました。ありがとうございました。
シャープがX68000で究極の68000搭載ホビーパソコンを開発しようとしていたとき、NECがPC-9801でホビーパソコンを開発しなかったとき、富士通は究極の80386搭載ホビーパソコンを開発しようとしたことを世界に誇るべきだと思います。その足跡を残して世界に伝えることに自分なりの貢献ができたかと思っています。
この先エミュレーションを実機に近づける他にも、高速化、実機CD-ROMコネクタの信号の解明、また互換MSDOS.SYS開発などやったら楽しそうなプロジェクトはたくさん残っています。引き続きよろしくお願いいたします。
2020-12-31 08:44:39
こちらこそ‼️
2020-12-31 13:45:08
大晦日ですが、Towns実機を使ってD77形式ファイルを作れるようにしてみました。
プログラムは、https://github.com/captainys/FM/tree/master/TOWNS/MAKED77/EXE ここにあります。
run386 -nocrt MAKED77.EXP a: 1232kb -out disk.d77
みたいな感じで使います。1232kbは640kb, 720kb, 320kb, 2D, 2DD, 2HD_1232 の中から選べます。1440KBは未対応です。というか、BIOSでどう設定していいかマニュアルに書いてないし。メディアタイプが合ってないとエラーが出ます。なお、-outの代わりに-38400bpsまたは-19200bpsを指定するとXMODEMで送信するのでハードディスクが無い場合でもRS232Cでつながっていればイメージ作成ができます。
また、-listonlyオプションと、-starttrk, -endtrkオプションを組み合わせて、
run386 -nocrt MAKED77.EXP a: 1232kb -listonly -starttrk 6 -endtrk 6
みたいにすると、セクタのCHRN表示だけしてイメージ作成はしません。
CRCエラーがあると3度までリトライして、それぞれのリトライ時の読み込み結果はすべてD77に記録します。イメージはいったんメモリに作成するため、メモリは最低4MB必要です。
ハードディスクがある場合はなるべくファイルにしてLHAとかで圧縮してPCに持っていくのがいいと思います。XMODEMで送るときはディスクサイズを128の整数倍に強制的に伸ばして送るので、後ろに00がひっついたD77になります。(最後1Fで埋めてもよかったけど万が一最後のセクタの最後のバイトが1Fだったらしくじる)。
くれぐれも、99%アルコールでカビ取りをしてから読むようにしてください。今ヘッドが汚れてしまうとヘッドクリーナーを探すのがひどく大変です。
とりあえず、試した感じではDinosaurは予想通りのプロテクトでした。二カ所ほどCRCエラーがあったようなのですが、リトライで成功していたので手作業でエラーがあったトライを消せば多分イメージ化に成功したと思います。が、手元の他のファルコムのディスクは普通の番号のセクタにもCRCエラー出まくりでちょっとイメージ化失敗したっぽいです。
もしも過去にメッセージを送れるならフロッピーディスクはすべて乾燥剤と一緒に保存しろとメッセージを送りたい。
良いお年をお迎えください!
2020-12-31 14:27:03
>200 山川機長さん
遅レスで申し訳ありません。
そうか、津軽の開発開始から約1年なんですね・・・ 流石としか言いようが無い速度と実績だと思います。
少しでもお役に立てて私も嬉しく思います。
私はTOWNSが発表になった時にCPUが68000でなかった事に落胆した"いけない子"でした。
X68000への憧れは全く有りませんでしたが、当時の"ワークステーション = CPUは68000"と言う世間の風評に影響されたものでしたが、結果としてはFJ2が80386を選択した事は間違いではなかったと思います。(当時のワークステーションが68000を使用していた理由がフラットで広大なメモリ領域を利用できる点である事などは当時は知りませんでしたので)
TOWNSはある意味で"最後のホビー用パーソナルコンピュータ"の1台だと思います。
実機CD-ROMコネクタの信号の解明は残された謎の中でも特にやりたいテーマではありますので、私に出来る事であれば是非協力させて頂きたく思いますので、こちらこそよろしくお願いします。
2021-01-02 22:26:56
喪中につき新年のあいさつを控えさせていただきますが、今年もよろしくお願いします。
この年末は、DINOSAURクリア確認しました!最初の城の地下までは自力でやったんですが、いったん力尽きました。攻略サイトがあってくれて助かりました。
http://tatanet.s16.xrea.com/dino/dino_index.html ここを参考にしました。しかし、1990年のRPGは容赦ないですね。エンカウントが多すぎて歩き回るだけでも一苦労で、何度も心が折れそうになりましたが。
しかし、DINOSAURは同じ場所でリターンキーを押しっぱなしにすると、勝手に戦闘が進むんですね。しかし、それだとある程度の回数繰り返すと止まってしまうようなのですが、しかし、キーボードをトランスレーションモードにすると、キーリリースも入るので、勝手に無限に戦闘が進むことに気が付いて、二晩ほど(一日目は地下神殿、二日目は城の3階)自動レベルアップさせたらおそるべきレベルに上がってました。が、それでもなお単独行動とか二人で行動のエリアは突破が大変だったので、やっぱ容赦ないですね。
クライマックスは、新たにD77化したプログラムディスクのトラック55、サイド0、セクタ3でCRCエラーが起きていたのですが、なんと!ちょうどエンディングに必要なデータだったらしく、エンディングが途中で止まって音楽だけ流れ続けるものの画面が真っ暗で焦ったのですが、以前のRAW Binaryを使ったらエンディングが見れました。無双レベルに上げてあったのでラスボス戦が余裕だったので二度目勝利するのは楽でしたね。
攻略サイト見たらエリスの眼は治せるんですね。攻略サイトの言うがままに進めたら泉がどこにあるかわからんかった。。。。
ということで、D77イメージを作ったら津軽はDINOSAUR完全対応してます!
2021-01-03 11:32:51
悪乗り(^_^;)
DINOSAURの自動レベルアップに味を占めたので、ユニットテスト用のイベントログ機能を拡張して、↓みたいなテキストを書いて、 LOADEVT file.txt でロードして、PLAYEVTで再生、STOPEVTで停止ができるように書き換えてます。
EVT KEYPRESS
KEY TOWNS_JISKEY_T
T 0ms
EVT KEYRELEASE
KEY TOWNS_JISKEY_T
T 20ms
EVT KEYPRESS
KEY TOWNS_JISKEY_RETURN
T 50ms
EVT KEYRELEASE
KEY TOWNS_JISKEY_RETURN
T 60ms
EVT REPEAT
現状の自動レベルアップは、リターンキーを物理的に押しっぱなしにする必要があったため、自動レベルアップ中他に何もできなくなってしまうという問題がありましたが、この機能を使うことでWebブラウズなど別のことをしながら背後でDINOSAURのレベルアップを進めることが可能になります。
2021-01-03 14:07:51
ふと思うところがあって富士通FMRシリーズ徹底解析マニュアルをみてみました
赤本にない情報で、TOWNSに共通と思われるものは
・TVRAM, コンソールエスケープシーケンスの仕様
・リアルモードBIOSの仕様(一部は昔何かで知っていたので、実はどこかにまとまっているかもしれませんが)
・IPLに渡ってくるパラメータ(AX=メモリ実装状況、BX=起動デバイス)
・CALL FFFB:0014 (AH=3 or 5)がINT 93h相当の動作(INT 93Hと違ってIPLから使える?)
といったところでしょうか。
2021-01-20 16:32:01
pinさん、
CALL FFFB:0014はディスク書き込みも対応しているようです。ひょっとするとTOWNSのSYSROMのみかもしれません。IPLから使いまくってますね。IPLにわたってくるパラメータも出てましたか。それは、気が付かなかったですね。
実は一本だけFM-Rでも使えるのフリーソフトを作ったことがあります。「フライトシミュレータ・目に悪い一号」というやつなのですが、Townsが手に入ったものの、まだ386ASMが手に入る前で仕方なくMASMで書いたものだったように記憶してます。このときFM-R徹底解析マニュアルを頼りにGDSを使ったような。
2021-01-23 13:13:56
GDSの仕様も載っていましたね
当時、この本ではないどこかでGDSの仕様を見てワイヤーフレームを描画するようなものを書いた記憶はあるのですが、
一体どこで見たのか全く思い出せません
なかなか時間がとれずやろうと思っていることの1割も手を付けられていませんが
今年もよろしくお願いします(もう正月どころか立春ですが)
2021-02-06 10:37:40
pinさん
赤本ってTOWNSの基板であるFMRの事柄については紙面の都合なのかバッサリとカットされていますので、それらの情報は非常に貴重な情報だと思います。
TOWNS OS上でプログラムを制作する上では必要ないものの、IPLや自作OS等のMS-DOSに頼れない領域では必須の知識だと思いますし、現時点でのWEB上にはFMRに関する資料はほぼ存在しないので、TOWNSに関連する部分だけでも形として残しておきたいですね。
WIKIの方に記載していただけると助かるのですが、お時間が取れないようでしたらこの掲示板上に細切れでも書いていただければ私の方で纏めます。
山川機長さん
「フライトシミュレータ・目に悪い一号」・・・ このインパクトのある名称・・・ 記憶には有ります。
当時、フライトシミュレータが何より好きだったので起動してみて「目に悪い一号」の意味を理解した記憶も有るような・・・ 無いような・・・・
2021-02-09 12:34:16
>209
TOWNSの基板 → 基盤 ですね、全く意味が異なってしまう。
2021-02-09 14:36:37
ちょっとIPLとリアルモードBIOSのページ(中身があるのはINT FDhだけですが)を作っておきました
INT FDhも何かで使ったのですが、何を見て知ったのか思い出せず頭を抱えています
2021-02-10 00:12:30
pinさん
早速対応頂き有り難うございます。
私の方でも何か追加できることが有れば(有るのか?)追記していこうと思います。
2021-02-10 13:22:54
日本では大きな地震があったようですが、皆様被害などには遭われなかったでしょうか?
最近、MSDOS.SYSの自主開発をトライしてます。工法を考えて、MXのMSDOS.SYSの末尾にパッチをひっつけて、徐々に機能を食っていくという方法で始めました。既に、初期化(DOSINIT)が終わるまでの部分はすべてテイクオーバーしました。これ、IO.SYSが7800hバイトしか読んでくれなくてどうしようかと思ったのですが、OS-ROM上でMSDOS.SYSが本来ある場所にはローダーを書いて、ローダーが本物のMSDOS.SYSを読み込むという方法で63.5KBまで伸ばせるようにしました。次はINT 21Hを徐々に書いていこうと思ってます。
nabe-abkさんに教えていただいたSHSUCDXを使おうと思ったら、パラメータの取り方が違って/Lオプションが先に来るとエラーが出たので、これもソースを見て、/Lが先でも大丈夫に書き直したバージョンを作り、SHSUCDXが走るように我がMSDOS.SYSにバージョンを V 3.31 とレポートさせたら COMMAND.COM が未対応のバージョンと言い出したので、これもとりあえずパッチを当てて、走らせてますが、いずれはCOMMAND.COMもフリーのものを探してくるか、自作の必要がありますね。
とりあえず、現状、パッチを当てたMSDOS.SYS、SHSUCDX.COM→COMTOEXE→MSCDEX.EXEに改名したもの、パッチを当てたCOMMAND.COMでTowns OS V2.1 L20、V1.1 L10、V1.1 L30、Afterburner IIが動作するという感じになってます。
あと、Kasanovaさんの互換FMT_SYSも津軽で動くように修正しました。ライセンス条項によると誰がどこを修正したのかを明示するという条件で公開・再配布可能とのことでしたので、近いうちにgithubに上げようと思っています。これは、MSDOS.SYSがうまくいったら、FDとHD起動に対応しようと思ってます。OASYSは、、、、ちょっと無理かな。
MS-DOS V2.0のソースは参考になるのですが、さすがにV3.xには無いものがたくさんあるので、難工事が予想されますね。うまくいったら自己完結型のFM TOWNSエミュレータができるので、引き続き精進します。とりあえずMXのMSDOS.SYSを切り離して単独で起動できるとこまでできたら公開しようと思ってます。
ところで、Towns OSってMSCDEX.EXEの読み込みが終わるまでコンソール出力が出ませんが、あれってなにで制御してるかわかります?コンソールBIOSにINT 91H AH=1Dで文字は飛んできているのに何も書かないのは何故だろう?と、いうか、MSCDEXのデバッグで仕方ないからBRKON INT 21で一文字ずつ出てくる文字コードを拾ってメッセージを組みなおすという地道な作業が必要になったので、出てくれたらありがたいのにと思いました。(そして、我がMSDOS.SYSから "YS-DOS386 by CaptainYS" と表示させたい。)
もうSHSUCDX直しちゃったけど、デバッガにINT 21Hの文字をキャプチャして表示する機能を追加するべきだった。。。。
2021-02-14 10:28:10
SHSUCDXだとTownsOS V1.1 L30がR:\RUN386.EXE読み込みができなくて起動しない、と、思ったら、IO.SYS内のMENU_DRVドライバ、バグってますね。
MENU_DRVの0A42:2AC0は、エラーが無い場合(CF=0)だとジャンプするのですが、ジャンプしてしまうと、次のPOP BXが実行されないため、スタックがずれて、DS,ES,AX,BX,CX,DXの値がもとに戻りません。ところが、保存してあるスタックポインタをリストアしてRETFするので、クラッシュはしません。延々R:\RUN386.EXEが読み込めないループになります。MSCDEXは自主的にレジスタを保存していたのかもしれません。
そこで、 JAE 2AC9h, POP BXを、 POP AX, JAE 2AC9h (AXはどうせすぐMOV AX,*されるからダミーポップにはちょうどいい)にパッチを当ててやると、エラーを回避できるようです。そして、自作版MSDOS.SYSだったら、DOSINIT内でこのエラーを検出してパッチを当ててしまえばいいんですね。
0A42:00002ABE 5B POP BX
0A42:00002ABF 1F POP DS
0A42:00002AC0 7307 JAE 00002AC9 -> 58h POP AX
0A42:00002AC2 5B POP BX -> 73h 06h JAE 2AC9
0A42:00002AC3 B80281 MOV AX,8102H
0A42:00002AC6 E9BB00 JMP 00002B84
0A42:00002AC9 E9B500 JMP 00002B81
というパッチ当てを我が互換MSDOSのDOSINITに追加したら無事Towns OS V1.1 L30も起動するようになりました。V1.1 L20の場合、素のMSCDEXを使っても、V2.1でなんらかのCMOS設定をするとR:\RUN386.EXEが読めなくて起動しなくなる現象があるっぽいのですが、同じ根っこかと思いましたが、違ったっぽいです。
今日は、MALLOCを実装したので、ここらで一度CD起動だけでもテストを書こうと思ったらいきなりTowns OS V1.1 L30でひっかかって、半日がかりで解明しました。またひとつ30年の歳月を経たバグを取ってしまいました。
2021-02-15 06:03:35
(まったく上の書き込みと関係ないけど)
最近の20歳代ぐらいの人の武勇伝、小学生のころからプログラミングができて云々を聞いて思うこと。
ワシの若い頃はのう、3次元グラフィックスの勉強をしておっても、遊んでないで学校の勉強をせいと言われたもんじゃった。
2021-02-15 09:21:03
社会的な環境もそうですが、
自分の若かったころと比べて、最近の若い人は最初から使える計算資源が桁違いなのがうらやましい限りです
一方で今の計算資源に慣れてしまった身としては
せっかくTOWNS動くようにしたのだから何かデモっぽいものでも作りたいなぁと欲だけはあるのですが
これはこれでメモリ(特にVRAM)ののんびりさを計測して改めて認識してしまい、悩んでいます
2021-02-17 19:46:15
結局、SHSUCDXがTownsのIO.SYS起動時に使えなかった問題は、作者のJasonさんにコンタクトしたところ、直してくれました。一応、僕が直したソースも送ったけどさすがは作者だけにもっとうまいこと直してました。
というわけで、新しいSHSUCDXでTownsOSが起動するかテストしてたら、Towns OS V1.1 L20のMENU_DRVにもバグがありますね。
Interruptの入り口なんですが、
0A7E:000046CE FA CLI
0A7E:000046CF 8C165640 MOV [4056H],SS <- CS:
0A7E:000046D3 89265840 MOV [4058H],SP <- CS:
0A7E:000046D7 BC7E0A MOV SP,0A7EH
0A7E:000046DA 8ED4 MOV SS,SP
0A7E:000046DC BC5A42 MOV SP,425AH
0A7E:000046DF FB STI
CSにするのを忘れてるので、MSCDEXのDSのどこかをばっちり破壊してますね。当然出口もこうなってます。
0A7E:00004848 FA CLI
0A7E:00004849 8B265840 MOV SP,[4058H] <- CS:
0A7E:0000484D 8E165640 MOV SS,[4056H] <- CS:
0A7E:00004851 FB STI
0A7E:00004852 CB RETF
ひょっとするとV1.1L20が特定のCMOS設定になるとRドライブの読み込みに失敗して起動しないのはここに問題があったかもしれません。これは、SSに値を入れた次の命令ではINTが発生しない80x86の特性を利用して、STI/CLIを削ることでCSのPrefixを入れる余地ができるので、以下のパッチで対応できますね。自作中MSDOS.SYSで確認しました。
ORG 46CEH
MOV CS:[4056H],SS
MOV CS:[4058H],SP
PUSH CS
POP SS
MOV SP,425AH
STI
NOP
NOP
ORG 4848h
MOV SS,CS:[4056H]
MOV SP,CS:[4058H]
なお、自作MSDOS.SYSはINT 21H AH=02H (PUTC)ぐらい簡単だろうと思って中身を読み始めたら、Ctrl+C対応だとか、リダイレクト対応だとか案外いろいろあって予想を超える難しさに直面してま。だが、あきらめなければいつかできるはず。
2021-02-18 00:11:17
>215 山川機長さん
>ワシの若い頃はのう、3次元グラフィックスの勉強をしておっても、遊んでないで学校の勉強をせいと言われたもんじゃった。
まさかこの「遊び」が今に繋がっていようとも、親御さんにしたら想像もされてませんでしょうから・・・・
私も親になった今となれば自分もこの言葉は理解できますね。 でも私は私の方針として決して学校の勉強を優先させていませんけど・・・ これがどう出るかは楽しみでも有り不安でも有ります。
3次元グラフィックスに必要な演算や座標の演算なんて今や勝手にしてくれますし、何よりもCPUやGPUの速度や有り余るメモリ量が当時とは桁違いですので今の人は私たちの悩んでいた時点よりも、もう一歩か二歩先から考えるのが当たり前ですから。
でも、足元が疎かなような気がするんですよね、なんだか・・・「OSってどう言う作りなの?」とか、「この機能はどうやって実現しているのだろう?」とかっていつも思っていた人から見たら。
2021-02-18 10:17:27
> pinさん、
是非デモ書いてください!新しいプログラムが書かれている以上、FM TOWNSはまだプラットフォームとして死んでません!僕も今年はDemosplashに参戦する予定です。まだアイディアは無いんですが。
KhronosがVulkanなんていう失敗作を出してくれたおかげでOpenGLの先行きにまで影が落ちてしまって、今の計算力だったらソフトウェアのレンダラー書いても結構いけるんじゃないだろうかと思って、だったらCで書いたらTOWNSも対応できたりして、でも、486DX前提にしてもちょっときついか、とかいう思考が堂々巡りしてます。
> WINDIYさん
僕はC++を教えてますが、そこは難しい問題です。僕の脳内では、最近のコンピュータはものすごく脆い、工事現場の足場みたいなものの上に、大きなビルを建設しているように見えてます。既にあるものが多すぎて、学生さんに基礎をしっかり覚えてもらおうと思っても興味を持ってくれないんですね。基礎を知らない人がプログラムを書くから安定したものができるわけも無いように思います。COCOAの件なんか見てると、さもありなん、と思います。多分、基礎・基本を軽視する風潮が構造にまで悪影響を与えてるんじゃないですかね。なお、日本だけじゃなくて、アメリカも似たようなもんですね。
というような話を以前友達としたとき、だけど我々が30年以上かけて勉強してきたことを学生さんに2~3年で急に勉強しろって言ってもやっぱり無理なんだよね、ということになって、確かにその通りなんですけどね。でも、航空機だったらゼロから新しいの設計して作れって言ったらできる人もいるけど、例えばOSを作れって言ってできる人は、、、まあ、目立たないだけで、いるのかな。
ちなみに、INT 21H AH=02Hは多分なんとかなったので、今はFCLOSEをテイクオーバーしようとしてます。見れば、MSCDEXが面倒見てるドライブに関しては、単にINT 2FHにリダイレクトするだけなので、これは読み込みだけだったら案外早くできるんじゃね?と、思ったものの、ROMドライブ対応があったからやっぱりそう甘くないですね。僕は簡単なものでもOSを自分で書いたことはないので、興味深いですね。ただ、やっぱり書き方がBASICとアセンブラの時代の書き方ですね。かなりMSが公開してるV2.0のソースとマッチングが取れるのですが、取れない部分になると意味を理解するのがなかなか大変ですね。
2021-02-19 04:15:52
FM TOWNS、発表から32周年おめでとう!! …それだけなんですが(汁
2021-02-28 14:59:04
あ、そうか。キリのいい、020h周年記念ですね!二十h歳ですね!おめでとうございます! (年齢の16進数表記推進委員会)
2021-03-01 00:06:59
もう20h年ですか。(←早速使ってます)
キリが良いので何か残したいな・・・・ と思いつつ、CD-ROMドライブの謎解析のためにロジアナを購入したりしました。
FDイメージの方もやり切れてないので、そっちが先ですね。(色々検討中ですが、やはりイメージデータはD77またはD77を拡張した物よりもFDX形式が良さそうな気がしています)
2021-03-01 23:33:25
FOPEN (AH=3Dh)も大体できるようになってきました。と、言ってもCD-ROMから起動するためには、MSCDEX.EXEとCOMMAND.COM以外はINT 2FHが面倒見てくれるので、この2本以外は実質的に自作コード使わないですね。あ、あとCHARDEVもあったけど、無事開けているようです。次の大きなとこはEXE/COMの実行(INT 4Bh)かな。互換MSDOS.SYSスレッド別にした方がいいかな?
ところで、DINOSAURのイントロですが、インパクトのある不協和音で始まって、こういうものなのかと思ったら、https://www.youtube.com/watch?v=wTJdhLj0UoA これ聞いたら津軽が出す音とちょっと違いますね。低音が弱いのかな?
2021-03-09 01:04:51
別スレッドにすることにより後から見る人がまとまった情報として利用できる利点は有りますが、山川機長さんのWEBでも進捗状況は公開されていますので支障は無いとも思います。
また、必要であればまとめめスレッドを後から作ることも出来るので。
DINOSAURのイントロ部分ですが、yuutubeに上がっている物の録音環境や各自のPCの音源回りが異なりますので一概には言えませんが、少し低温が弱いような気がします。
マニアックな方向けにパラメータでPCM,FM,CDDAの音量やゲインを変えれるようにする手も有りだとは思いますが、音作りに関しては個人差が有りますのである程度以上は個々人が自分のPC上で行えば良いのではないかと思います。
せっかくなので実機で聞いてみようかと思ってFDより起動を試みましたが、起動できなくて凹みました。
時間があるときにもう一度試してみようと思います。
2021-03-12 09:02:11
世間で話題のGTAのロード時間の話(JSONのパース中にsscanfがstrlenを呼ぶため、O(N^2)になっていた等)で、
ダンジョンマスターIIスカルキープを思い出しました。
当時、ゲームの起動まで相当待たされた人も多いと思いますが、
あれは使用可能なメモリ量を事前に確認するためにサイズを増やしながらmallocを呼んでいたためでした。
それだけならO(N)なのですが、High Cのmallocはデフォルトで確保した領域を特定の値で初期化するため、O(N^2)になっていたんですね。
初期化するかどうかのフラグがEXPファイルの中にあるので、反転してやればまともな速度になります。
2021-03-18 04:39:06
1981年5月20日のFUJITSU MICRO 8(FM-8)から数えてFMシリーズ40周年おめでとう!!
…またそれだけなんですが(爆死
2021-05-20 12:38:54
富士通(クライアントコンピューティング)も何か40周年記念行事するみたいですね。
https://www.fujitsu.com/jp/group/fccl/about/resources/news/press-releases/2021/0520.html
グッズも出すみたいなこと書いてますが、津軽とRaspbery PI使ってTOWNSミニ出せばいいのにな。
2021-05-21 02:50:41
40周年おめでとうございます。記念モデルとかグッズとかどんなものが出るのか楽しみですね。
2021-05-22 01:36:50
40周年ですか、めでたいですね。
私はFM-7からのつきあいで、FM-8は殆ど触ったことが無いのですが記念モデルとしてFM-8形の一体PCを希望・・・・だれも買わないか・・・
でも、TOWNSミニだったら確実に触手が動きますね。
2021-05-25 09:01:13
ハル研究所から、パソコンミニのFM-7版が発売されるはずと期待してるんですけど。
(コンパチでNew7にも出来たら なおうれしい)
2021-05-25 17:04:31
すでにご存じの情報でしたらご容赦ください。
(情報1)
元グローディアのプログラマ ホエー桑田氏が
グローディアのゲームをプレイできる状態でUPくださっています。
PC98や88版が多いようです。
https://www.quarter-dev.info/
(情報2)
日本時間 6/25の0時にwinodows11発表イベントなんて噂が流れています。
私の英語ヒアリングでは聴き取れないと思いますが。
https://game.watch.impress.co.jp/docs/news/1332338.html
2021-06-24 17:21:46
先ほどのwindowsイベントのリンク
https://www.microsoft.com/en-us/windows/event
2021-06-24 17:27:48
おおなんと!知りませんでした。ありがとうございます!
なお、エメラルドドラゴンは、小カシャ島に来ました。多分シナリオの半分ぐらいは来ているのではないかと思っているのですが。しかし、これはレベルは140が最高みたいですね。オートレベルアップを二晩仕掛けたらレベルが140になってそれ以後上がらなくなってしまいましたが。ボス戦も数ターンで勝ってしまうので、なにか悪いことしたような気になりながら先に突き進んでます。
Windows 11は、また後方互換性をざっくり切り捨てなければいいと思ってるのですが。僕はハードウェアがまだ健全なデバイスを古くなったという理由だけで捨てるのがかわいそうで、いまだに17年前に買ったHP Laser Jet 1012を使ってますが、Windows Updateが勝手にドライバを消してしまうので、なんとかドライバの再インストールで持たせてます。あとは、5年ぐらい前に卒業した学生さんがいらないからと置いて行ったWacomのBambooタブレットのドライバもWindows Updateが勝手に消してしまって再インストールしなくてはならなくなってます。ハードウェアが寿命になってやむを得ず廃棄するなら仕方ないとしても、OSベンダーの商売の都合で健全なハードウェアを廃棄せざるを得なくなるのは、法律でペナルティを課すべきだと思うんですがね。
2021-06-25 13:41:20
Windows11の話は荒れる要因になりそうなので簡易に留めますが、
コロナでリモートワークが進んだりと、Windows10の初期に想定していなかった
使い方が出てきたのでWindows11が出てきたのかもと考えています。
リモートワークをするにはセキュリティが最重要ですので、
Windows11では数年前のハードウェアを切り捨てても、
セキュリティを確保したかったのかもと考えています。
(企業サイドの要求という可能性も)
2021-06-25 15:01:25
エメラルドドラゴンの話ですが、
ステ吟味の必要性は以下の文書をご覧になるとわかるかもしれません。
https://www.quarter-dev.info/emedra/pdf/emprs.pdf
PDFの20ページ目(文書内の16ページ目)上部にレベルアップ時のステータス上昇値を
見ることができます。
吟味しなければ0~8の上昇値で平均4上昇したとしてLV140で139*4=536上昇
吟味すると8上昇でLV140で139*8=1112上昇となります。
実際は最大値があるのでしょうからそこまで気にしなくてもいいのかもしれませんが。
2021-06-25 15:06:35
とりあえず魔王ガルシアまで倒しました。
なるほど。エメドラはWizardryみたいにレベルアップ時のステータスの上りに幅があるんですね。僕は、自動で140まで上げてしまったので既に後戻りできないですね。クリアまでに基本的にレベル140まで上げることを前提にしているとすると結構つらくなってくるかもしらんですね。
ヒントを見ずにクリアを目指してるのですが、マップが広いですね。自作のマップつなぎ合わせツールでチマチマとマップをつなぎ合わせながら進めているのですが、結構しんどくなってきました。
2021-06-26 11:48:17
ラストダンジョンはいい装備を取り逃せないのに
マップが広いですから、大変かもしれません。
プレイ済みでしたらお忘れください。
サブシナリオが2個程度あります。
ファルナと再会するまでだったかな。
タイミングがシビアです。
装備がもらえたりします。
2021-06-26 16:01:43
ネタバレ失礼します。
サブシナリオは3シナリオありまして
タイミングだけ記載します。
1シナリオ目はオストラコンを倒した直後
2/3シナリオ目はガルシア尾を倒してファイルなと再会するまで
2/3シナリオで入手できる装備はラストまで使える可能性はあります。
2021-06-26 16:07:53
ふふふ、エメラルド・ドラゴン、津軽でクリア確認しましたよ!名作と聞いていたのですが、ずっとプレイする機会が無いまま数十年、ついに完走できました。マップが広くてしんどかった。まだ2フロア未踏破のフロアがあるので、フロア掃討作戦が残ってますが。最後までレベル140まで上げたアトルシャンとタムリンは無双でしたが、ときどきハスラムが突っ込んでやられてゲームオーバーになるのが困りましたね。これで、サウンドトラック聴けます!サブシナリオは、気が付かなかったですね。のちほどやってみます。
2021-06-27 06:14:39
おめでとうございます。
ハスラムは一番後ろに下げて何もしてくれるなと思っていました・・・。
ワラルムの薬でパワーアップさせても非常に弱いのです。
サブシナリオはタイミングがあるので、セーブデータが残っているといいのですが。
TOWNS版だけでなくPC98版もクリアしたことがあります。知り合いの家に通いました。
(TOWNS版との違い)
・一定レベル以上のタムリンは回復魔法を使わないため、ファルナがいない状態で回復魔法の使い手がいない。
・タムリンの混乱魔法でラスボス混乱して何もしてこないという悲しい状態になる。
気になった点が一つ
いずれのゲームか忘れましたが、
unzではイベントシーンの途中でCDによるBGM再生が終わってしまい、イベントシーン途中から無音ということがあった気がします。
同じトラックを繰り返し再生していないのかもしれません。
津軽でもそのようなことが起きることを想定されるのでしょうか?
2021-06-27 09:19:47
レベル140まで上がったタムリンはTOWNS版でもラスボスを混乱させられるようです。今回クリアしたときもその状態になって最後は一方的な展開になってラスボスには申し訳ないことをしました!ちなみに、レベル140になると、最後の城塞に入るまでフィールドのエンカウント確率がゼロになるようで、ボス戦以外はひたすら宝箱を探して歩くだけという状態になりました。マップを作るにはよかったですが、この年だと目が疲れますね。奇跡的に視力がまったく落ちてないのですが、近いものはつらくなってきました。
UNZはCD-ROM I/Oに出てきたコマンドをSCSIコマンドに置き換えて物理CDドライブに送っているものと思いますが、物理ドライブには多分リピート機能というのは無いと思います。YSSCSICD.SYSでもたしかその理由でリピートはできません。UNZがCD再生中に状態をポーリングして止まったら再生を再開させるような処理をしていないのであればリピートはできないかもしれませんね。なお、せっかくTOWNSのCDCにはリピート機能があるのに、Towns OS付属のCDプレイヤーでリピートさせると状態をポーリングして終わったら再度再生コマンドを出しているようでした。
TOWNS本体は、おそらくCDドライブをコントロールするワンチップがCD再生が終わったことを検出して再度再生を開始しているのではないかと見ています。
津軽の場合、物理ドライブは使ってないのでそこはやりたい放題なのでリピート機能も再現しています。とりあえず、今回通してプレイして途中でBGMが止まるという現象は無かったですね。
2021-06-27 10:29:33
ボス混乱の件、ありがとうございます。
TOWNS版では混乱魔法使うまでタムリンのレベル上げていなかったのかもしれません。
今度ステ吟味なしにプレイしてみようかなと考えています。
津軽はリピートするとのことで、ますます安心して使っていけます。
2021-06-27 10:54:19
がーん、エメドラのサウンドトラックの封印を解いて再生してみたらアレンジ版だった。サウンドトラックっていうからFM音源を期待してたのに。クリアするまで聞かないつもりで封印してたのに。。。。アレンジ版って書いてあったら買わなかったのに。いやそれでも買ったかな。ソーサリアンとか結局どっちも買ったしな。
2021-06-27 11:39:37
ああっ!サウンドトラックだと思って買って封印してあったCD「全曲集」って書いてある!(自爆)
2021-06-27 13:21:15
TOWNS版のエメドラにミュージックモードがあり、
内蔵音源のBGMを聴いた記憶があります。
エメラルドドラゴンは後日譚のCDドラマがあるようです。
エレメンタルドラグーン
私は聴いたことありませんが。
2021-06-27 21:25:22
ああっ!本当だ!メニューにミュージックモードがあるし!隠し機能ですらなかったとは。。。。(さらに自爆)
でも、サウンドトラックを買うのは、ひとつは作曲した人がどういう風に聞いてほしかったのか知りたいという側面もあるのでミュージックモードがあるゲームでも僕は結構サウンドトラックを買ってしまいますね。ということは、全曲集に沿ってミュージックモードで録音してしまえばいいのか。
ゲームミュージックのアレンジも元の雰囲気を残したままうまくアレンジしてあるのもあれば、これはちょっと、と思うようなのもありますよね。なんとなく思うのは、ゲームミュージックの中には、積極的にFM音源やPSG音源を楽器として活用している曲と、本当はTraditionalな楽器で演奏してほしいんだけど仕方なくコンピュータ音源で鳴らしてる曲と二種類あるような気がしますね。前者はアレンジするとがっかりしますが、後者はアレンジ版の方がよくなる傾向があるように思います。
2021-06-27 23:05:58
自宅の書籍を整理していたら、
1989年1月のASCIIを見つけて読みふけってしまいました。
(広告)
FM77AV40SX(南野陽子)
Rupo(ワープロ)
X1 turbo ZIII
PC-VAN
20MB HDD
TURBO C 2.0
TURBO PASCAL 5.0
懐かしい・・・・。
2021-07-02 21:37:10
https://bcc.hatenablog.com/entry/2021/07/02/222319
FM TOWNS版DOOMを公開してみました。
ただ、効果音を多重再生するために強引な手法(一度効果音が鳴ったら鳴っている状態を最大限維持したままにする)を取っているため、
「津軽」では問題はなかったのですが「うんづ」だと効果音にノイズが入る、実機での動作検証を行っていないので正常に動くかわからないです。
実機で動作確認を行えましたら報告をよろしくお願いいたします。
2021-07-02 22:35:13
https://1drv.ms/u/s!Aqq3BKBfkjZ2pt5G5FCvCFoHk_tVVw?e=wyAf4T
実機(MA+DX4カード)で試してみました。良い感じですね!
(終了後にキー入力がおかしくなりますが、些細な問題です)
2021-07-02 23:56:58
あ、キャプチャ環境の都合で音は入っていないのですが、ちゃんと鳴っていました。
2021-07-03 00:00:13
pinさん
次回アップデートする際は修正しておきます>終了後のキー入力
あとWINDYさんも含めNASMと_inlineの情報を教えていただきありがとうございます。
2021-07-03 02:39:45
おお!素晴らしい!津軽を開発に使っていただけたということで、非常にうれしいです。
DOOM移植が一段落したら、もしもよかったらDemo Scene参戦もご検討ください。
2021-07-03 08:16:05
BCCさん
DOOM動かしてみました。
HCでも安定動作しているようです。音も異常はありませんでした。
2021-07-03 21:57:46
>Type.dさん
報告ありがとうございます。
>山川機長さん
エミュレータ津軽、ライブラリTORNARDが無かったらFM TOWNS版DOOMは完成しなかったのです。ありがとうございます。
時間がないのでDOOMのバグ取りや一部修正後はDemoやその他ソフトの作成はできないと思いますが、もしTOWNS版DOOMをオフラインイベントなどで展示することがありましたらお願いします。
2021-07-04 21:12:22
TOWNS用DOOMの記事がGIGAZINEに出てましたね!
https://gigazine.net/news/20210711-doom-fm-towns/
DemosplashのRetro Gaming Room、春のRetro Gaming Nightでは必ず一台DOOMを走らせるようにします!
2021-07-12 08:01:42
なお、せっかくDOOMを移植していただいたので、Wikiの動作確認リストに追加したいと思いますが、津軽は動作ランクA、うんづではノイズが乗るということなのでランクBという感じでしょうか?ノイズも気にならない程度であればAランクとして良い感じでしょうか?
2021-07-18 11:08:53
>256 山川機長さん
私自身は実機では試せていないのですが、うんづで試した限りではノイズに関してはさほど気にならなかったのでAで構わないのではないかと思います。
皆さんはいかがでしょう? ご意見を頂ければ助かります。
※動作確認表の動作ランクについては測定する事も出来ないので記載された方の感覚で入力していただいて構わないと思います。
2021-07-18 16:45:04
了解しました!では、津軽、うんずともにAランクということで、動作確認リストに追加させていただきました!
2021-07-18 22:53:41
Defenderのソースが公開されたんですね。たしか、FM TOWNSフォーラムにTOWNSに移植したものが一瞬アップロードされたことがあったと思いましたが。
https://github.com/mwenge/defender
これって6809なんですね。FM77AVに移植できんかなあ、と、思ってソースコードを読み始めてしまいましたが、そんなことを始めたらまた恐るべき時間を楽しいことに浪費してしまう、と、思って封印しましたが。
2021-07-23 03:32:25
>>259 山川機長
Defenderありましたね。出来が良かった覚えがあるのですが、どうだったでしょうか。
以前、フリコレに入っていないかと探したことがあるのですが、試作品のような(ちょっとした技術検証程度の)ものしか見つかりませんでした。同じ作者ではないかも知れませんが。
解像度が292x240のようなので、FM77AVへの移植は手間が掛かりそうですね。
2021-07-24 12:42:56
Defenderの後にDARIUSの自機のデモも有りましたね。両方とも非常に良くできていましたが、版権絡みの問題で早急に取り下げられたのではないかと記憶しています。
元BeOS, 現HAIKUがベータ3だそうですね、TownsOSにも夢が欲しいなぁと考えてしまいます。
https://www.haiku-os.org/get-haiku/r1beta3/release-notes/
2021-07-27 11:33:09
ちなみに、3次元グラフィックスライブラリを作ってたころちょうどパトレイバーの劇場版が公開で、二次元の回転ぐらい簡単に作ってやるぜ!と思って「篠原HOSの起動画面」を作ってTOWNSフォーラムに上げたことがありましたが、TOWNSフォーラムから取り下げにはならなかったのですが、フリコレには没になりましたね。あのソースもまだどこかにとってあったかな?
2021-07-29 03:16:18
僕は、1989年にF-BASIC386用「MUSIC AMA TOWNS」(あまりにもMUSIC PRO TOWNSが出てこなかったんで我慢が切れて作った)で、1990年に「A4 Skyhawk Flight Simulator」で旺文社高校生パソコンソフトコンテストに入賞したという過去があるんですが、後に販売された、「ソフトウェアコンテスト作品集」には果たして収録されたのか、という疑問をずっと持ってたんですが、この間ヤフオクにソフトウェアコンテスト作品集4本まとめて出ていたので、落としてみたら、作品集は1990年からなんですね。というころで、MUSIC AMAは入らなかったけどFlight Simulatorは入ってたんですね。
これを確認するためだけにヤフオクで落としたんですが、そうしなかったらきっと死の間際に「うーん、俺のプログラムは作品集に入っていたのか、知りたかったー」と言い残して死ぬところだったので、思い残すことがひとつ減りました。とりあえず、当分死ぬ予定はないんですけどね。いや、それだけなんですがね。
2021-08-30 08:24:30
本当に雑談ですが、西氏が何やら画策されているようで・・・
CPUお化けですね、FPGAにした方が良くない? とか思いますが、何にせよパーソナルコンピュータ界隈にとっては喜ばしい話です。
https://www.4gamer.net/games/999/G999905/20210830103/
2021-08-31 10:02:45
今度富士通から出る"UHKB"なかなかいいですね。HHKBとはまた違う今風の趣があります。
40周年だし記念に1台手に入れようと思っています。
据え置き用のハイエンドキーボードと比べると安価ですし、BTもマルチペアリング、電源は充電式(USB TypeC)です。
電源を切って繋ぐとUSBキーボードとして動作するというところにこだわりを感じます。
モバイル向けに限らず最近はこういう平面キーボードが流行りのようですね。
https://japanese.engadget.com/fccl-uhkb-greenfunding-010057854.html
2021-09-04 21:21:19
UHKB、英語版があれば検討したのですが、すでに僕の手は英語版のキーボードに慣れてしまっていて、日本に帰ると苦労します。
というか、どうせ40周年記念やるなら、もう少し遊んでほしいですね。FM77AVキーボード風のワイヤレスキーボード出してほしかったかな。うーん、でも日本語キーボードになってしまうんだろうなあ。いや、キーボードなんだけど外観はFM-7だったら買ったかも。
2021-09-22 00:12:03
失礼しました。後から気付いたのですが英語版が無いのですよね。
第一弾はこういうものでした。ちなみに時分はメカニカル派です。
FM7の形をしたキーボード、1/1サイズの模型として考えると面白いです。アメリカ的発想ですね(^^;
自分の想像力ではFMRNote配列のミニキーボードくらいしか思いつきませんでした。
そういえば随分前に山川さんの書き込みを見て津軽をRaspberryPI4で動かしてみましたが、音声周りが途切れて辛そうでした。
試したOS環境が悪かったのかも知れませんが、Beta版のOSだから仕方ないかといった感じです。
その環境は更新したら壊れたのでそのうちまたチャレンジします。
2021-09-22 22:08:16
>>268自己レスです
SDでは無理でSSDにインストールしてみましたがパワーが自分のPI4じゃ足りないようでした。メモリは空いてるようですが。
環境構築中にウインドウを動かせなくなったりするのでOS側の問題かも知れませんし、参考にならないと思いますが参考まで。
別の話で恐縮ですが、ここは専用ブラウザ対応と書いてありますけど書くと数日読めなくなりますね。Webブラウザで書き込まなきゃ… ;-)
2021-09-26 13:23:35
おおなるほど。結構CPUのエミュレーションが食うので、Raspberry PI 4だときついかもしれないですね。しかし、これも毎年スピードが上がっていくでしょうから、いずれはある程度実行可能になってくるかもしれないですね。ただ、OpenGL使ってる影響もあるかもしれませんね。RGBAビットマップを転送すればいいだけなのでOpenGLを使う必要はまったくないのですが、楽なもんで(^_^;)
2021-09-26 23:38:01
データウエストの改良型DAPSのように高速モードでないと重いタイトルもありますし、やはりPC前提ですね。
昨日、今まで失敗していたCDの取り込みに別のドライブで成功したので、またPCの津軽で動かしてみます。
実機では動くからプロテクトかとも思ったのですけど:)
2021-09-27 20:31:19
書き込み出来ない件、運営に問い合わせてみたところ、
>>取り急ぎ問題箇所を修正いたしました。
とのことで、書き込みテストです。
2021-10-11 16:28:09
??? ここ、書き込みできない状態だったのですね。 fuzzballさん、わざわざ有り難うございます。
果てしない仕事量とワクチンの副反応(なのかなぁ?? 理由は判らず)でダウンしておりました。 体調は未だに完全ではありませんが先週に比べるとマシにはなりました。
2021-10-11 17:58:29
おおなるほど。運営は把握してなかったんですね。fuzzballさん、ありがとうございました。
WINDYさん、ワクチン接種されたんですね。副反応は僕は接種24時間後ぐらいに出始めて一日続きましたが、人によって結構続く人もいるようですね。お大事にしてください。
僕はというと、バリバリの理系の僕が、ピッツバーグ日本語補習校でなんと「国語」を教えることになるという異常事態が発生してます。今までコンピュータ言語をずっと教えてきましたが初めて人間の言語を教えることになるとは。学生さんに向かって「教科書の例題ってつまらんよね」とか「昔の読者向けに書かれた文章読んで感想言えって言われたって感想出ないよね」とか「こんな文章読むよりマンガを読みこんだ方が勉強になると思うなあ」とかいう問題教師です。(教科書があまりにもつまらないので、論文の添削ならできるから、教科書と並行して論文風の作文を毎週書いてもらうことにした)。ということで毎週日曜日がつぶれて、体力の回復に充てることができなくてかなり疲れてます。
なお、FPU命令をいくつか実装して、Vector版のPoly Racerが動くところまでこぎつけました。まだかなりの命令を実装してないんですが、多分アセンブリでFPU命令を直接使うことはまずなかったと思うしHigh-Cが使ってない命令だと無くてもあまり困らないんですね。今はまだコマンドから ENA FPU とタイプするしかFPUを有効化できなくて、ステートセーブにFPU状態が出ないですが、数日中にユーザーインターフェースに出してステートセーブもできるようにしようと思ってます。
ところで、Poly Racerって、COM車が道路に透けて見えます? FPU命令の実装に何か問題があるのか、そういうものなのか判断がついてないのですが。
あ、そうだ。マイコン・インフィニティ68ってやってたんですね。Raspberry PIで津軽を走らせるミニタウンズが出てた、と、教えてもらって嬉しくなってました。
2021-10-12 00:58:43
自分も今日、ワクチン接種2回目となりました。副反応などはわかりませんが、1回目と同様に左腕が筋肉痛のようになってきました。
動作報告スレッドみたいになってしまいますが、報告したギャラクシーフォース2やジェノサイドスクウェアの2でゴミ捨て場や2-3背景がチラつく問題は直っているようです。
Poly Racerはフリコレ11(整数演算のみ)版の時点で道路に透ける描画となっていましたが、これが正常かはわかりません。
初めて見ましたけどVector版ってテクスチャマッピングや車体もちゃんと車らしくモデリングされてたんですね。流石にフリコレ11版から進化している。
もう一つ、3D CGソフト「EASTRAY」(天晴 Vol.2に収録)の387版でサンプルデータをレンダリングしようとしてみたんですが、FBLD(m80dec)命令が無いとのことで止まるようです。
それにしても、当時使っていたTOWNS II MXに搭載されていた486 66MHzが0.06GFLOPSくらいなのに対して、今使っているGeForce RTX 3060 TiがRTコアだけで31.6TFLOPS・・・何時間もかかっていたレイトレーシングがリアルタイムレンダリングでできる技術の進化。
2021-10-12 02:24:16
> PolyRacer
vector版を実機で確認してみました
壁の裏の車が見えるのはそういうもののようです
https://imgur.com/a/ydBmchF
しかし、これほどテクスチャ貼れるものなんですねえ
スクリーンxy、テクスチャuv、三角形の内外判定用のクロス積2個、テクスチャアドレス、VRAMアドレスなどと考えていくと、もうレジスタの数が足りていない感がありますが…
2021-10-12 02:54:24
いろいろ調べていただいてありがとうございます!Poly Racerは動作OKのようですね!
天晴Vol2は、あったと思ったら行方不明なので、ヤフオクでHRを落とした時CDドライブに入ったままになっていて一緒に届いてしまった天晴Vol1のEASTRAYで試したところ、FBLDで止まることを確認しました。その後、FBLD/FSINCOS/FMUL ST,STiとサポートしたのですが、もう少し命令が必要のようですね。今はFSUBPで止まってます。EASTRAYはFPU命令のテストにちょうどいいですね。引き続き精進しますんで。
2021-10-12 12:58:58
今PUSHしたソースだと、天晴Vol1のEASTRAY 387で例題のBALL3.RAYは出るようになりました。CUBE.RAYを処理しようとするとなぜか「レイトレーシングは既に計算済みでした」というメッセージが出て絵が出ないのですが、FPU使わないバージョンでも同様なので、これはそういうものなのかもしれません。(何か津軽が間違ってるとするとFPU以外の部分の気がする。)
2021-10-12 22:46:32
山川機長さん
>「レイトレーシングは既に計算済みでした」
多分、ディレクトリ内に計算済みデータのMSG・VOX拡張子のファイルが存在するのでそのメッセージが出るのかと思います。
一度削除してみて再実行するとレンダリングされるはずです。
PUSHされたソースをこちらでも試してみますと、\SAMPLE\RAYTRACE\RAYTRACE.RAYの計算結果が変なようでした。
https://twitter.com/bcc2528/status/1447934939572416515
2021-10-12 23:40:45
おおなるほど。MSGファイルも消さないといかんのですね。やってみます。
アップトードしていただいた絵を見ると、テクスチャマッピングが変なのと、世界が平面でスパッと切れてますね。Voxel境界でも無さそうですね。EASTRAYってソースって公開されてましたっけ?ソースが無いと、どこでしくじってるか見つけるのが結構大変そうな雰囲気です。あ、ひょっとして無限大とか使ってるのかな。現在TEST、Compare以外でFPUのフラグの扱いがいい加減なのと、無限大、NaNなどの扱いがいい加減です。とりあえず無限大の扱いを真面目にやってみようかな。
2021-10-13 00:14:08
EASTRAY、80bit floating point使ってるんですね。。。。無限大の実装を間違ってるところがあって、直したらBALL3.RAYも走らなくなって、調べていったら、80bit floating pointでは有限だけどdoubleに変換したら表現できる範囲を超えてる数があってとりあえず津軽ではINFINITYにしてたのですが、それに0をかけると、80bitで演算してたらゼロだけど、INFINITY×0だとNANになってしまう、という現象が起きてました。うーん、80-bit浮動小数点を計算するライブラリを書くことは不可能ではないけど結構手間だし、FPU使っても全然速くならなさそうだし、どうしようかな。
2021-10-13 13:16:39
山川機長さんがフリコレ11に応募していたFPU必須のデモ4本(\T_OS\DEMO\YS11)も起動まではいくようになっているようですが、これもマウスカーソルと操作キーのみで他に何も表示されない状態の様でした。
例外エラーなどで強制停止せずQキーを押せば終了するようなのでEASTRAYと同様の理由なのでしょうか。
FPUの実装とは別ですが、EASTRAY SUPPORT.EXPで「ファイル」→「イメージ表示」で適当なTIF画像を開いてウィンドウを右側に移動すると横512ドット目から黒縁がかかったように画像が表示されないようです。
2021-10-13 19:51:30
うーん、なんでこんな巨大な値が出てくるんだ?と、思ったら単に exponent&=0x7FFF; するのを忘れていただけだったという。
いや、よくあることよくあること。
今大学にいるんで、うち帰ったらなおして試してみます。少なくともこれでBALL3.RAYは復活するかな。
2021-10-14 00:44:17
> 80-bit浮動小数点を計算するライブラリ
EASTRAY は exponent のマスクで解決するようですが、例えば boost の cpp_bin_float_double_extended とかでしょうか。
2021-10-14 03:12:01
うちでも確認しました。とりあえず、ソースPUSHしました。EASTRAYはBALL3.RAYとRAYTRACE.RAYが正常動作しました。boostへのdependencyは増やしたくないので、そのうちC++の標準に組み込まれたら考えます。多分80bitが本当に必要になるケースはほとんどないと思うんですね。
SUPPORT.EXPの絵がずれるのは、2画面モードの裏の画面の表示開始位置を間違ってるぽいですね。CRTCは結構解明したと思ったのですが、まだCRTCのエミュレーションでできていない部分があるとは。
2021-10-14 06:30:30
今年もDemosplash 2021、やります! (http://demosplash.org) それで、アメリカ東部時間の11月12日(金曜)の夜、日本時間13日(土曜)の午前中に、Japanese Computer I というセッションで僕が30分ほど時間をもらったので、DOOMとBad Apple!!を実機で流します!Scenesatなるサービスでネット生放送するので、良かったら見てください。
それで、せっかくTOWNSをプロジェクタにつなぐんだから、プレゼンテーションはTowns GEARで作ろう、と、思っていきなりページの背景の絵の指定方法がわからなくて(というか、GEARってテキストに12または16ドットフォントしか選べなかったんだったか)詰まったのですが、これはどうやるんでしたっけ?Q:\FJ2\NOTEの例題ノートは各ページに背景画が貼ってあるので、同じように絵を作って貼ろうと思ったのですが、ページの背景はタイルまたは色の指定しか発見できなくて。メニュー項目はすべて絨毯爆撃したと思ったのですが。誰か背景画の指定方法覚えてますか?
2021-10-15 00:21:55
DOOMは最適化とバグ修正、Bad Apple!!はマウスの左右クリックどちらかを押すことで終了できるようにそれぞれちょっと更新されているので最新版のダウンロードをお願いいたします。
https://drive.google.com/file/d/1gfXDAJU1lPA1vt_FIoGG_Xd7md9ypE_l/view
https://drive.google.com/file/d/14jk80HTWxvjDD-W0ZnGfWnVvlz0bNY2V/view
TownsGEARは当時から使ってみても全く直感的じゃなくてう~ん・・・と思っていたツールでしたね。
山川機長さんのイメージしている作業かはわかりませんが、メニューの「作成」から「イメージ」、イメージフレーム作成ウィンドウで実行ボタンを押して出てきた枠を画面いっぱいまで広げて、メニューの「編集中」を「実行中」に切り替えて枠をダブルクリックするとイメージエディタに切り替わるのでここでTIFF形式の画像を貼っていくとかですかね。
2021-10-15 01:35:36
了解しました!使うMXは大学の机に置いてある方で、どちらもこれから走らすソフトのインストールとかするので、最新版をインストールします!
Towns GEARは、富士通が推してたので、何度か使おうとしたのですが、僕も大変だった、という記憶しかないですね(^_^;)例題にある背景のイメージだと、固定してあって他のパーツとは違うレイアにあるみたいだったので、それを使うのがいいかと思ったのですが、やっぱりパーツとしてイメージを貼るぐらいしか思いつかないですよね。やっぱりTowns GEARで準備するのは大変かな。しかし、TOWNSとAV40とWindowsを切り替えるのも悔しいな。できればTOWNSとAV40だけで行きたい。
なお、フリコレ11の僕のプログラム(ラジコンT-4 Blue Impulseなど)が走らなかった理由ですが、FPREMで成功の場合はFPUフラグのC2をクリアするべきところを無視していたのが原因でしたが、そこを通過しても、FST m32realが必要で、それはすぐ書いたのですが、次にFILD m64intがまだ実装してなくて止まってるというところで、時間切れになったのでボウリングの試合後にまた続きを書きます。
2021-10-15 02:05:52
原因解明しました!FPREMはPopしなくていいんですね。FPREMで誤ってPopしていたというのが問題だったので、それを修正してフリコレ11の僕のプログラムも動作するようになりました。ラジコンT-4 Blue Impulse、懐かしいですね。
ぼちぼちState Saveできるようにして、GUIとコマンドオプションに出して、リリースにしようと思います。
2021-10-16 02:09:54
ということで、CUIに-USEFPU/-DONTUSEFPU オプション、GUIにEnable 80387 FPU チェックボックスを追加したソースをPUSHしました。その後、sinにマイナスの角度を与えると正しく動作しないことがわかって修正して、F-BASIC386を起動しようとしたらFCLEXを使ってて止まったので、その命令もサポートしてF-BASIC386もFPU命令使えるようになりました。
興味深いことに、High-Cのライブラリはsinを計算するのにFSINを使わずにFPTANを使って値をtan/sqrt(1+tan^2)としてるんですね。ひょっとしてFPUを有効にするとStrike CommanderとかFPU使って速くなったりして、という期待は破れました。確かStrike Commanderって推奨環境80486DX 66MHz以上のはずなんですが、DX関係なくない?と思いました。
が、まだ対応してないFPU命令が多数あるので、弱気にデフォルトはオフということになってます。以後、未対応命令が発見され次第、各個撃破していこうと思います。TOWNSのアプリケーションだとそんなにFPUを使ったものは多くないかと思いますが、何か見つけたら動作報告の方に教えてください。FB386で数値演算多用してるようなプログラムがあるとヒットするかも。よろしくお願いします!
2021-10-16 10:33:17
https://game.watch.impress.co.jp/docs/news/1356990.html
何故だ、何故TOWNS用は出ないんだ!?
Towns OS用に出すのだと今から富士通からTBIOSとかDOS Extenderの権利問題でTowns OSが別に必要になってしまうから、という可能性も考えられますが、8ビットのゲームを移植するぐらいだったらリアルモードだけでできそうだけどな。IO.SYSがなければ別にIPLから書いてしまえば、ってそこまでやらんか。
Dragon SlayerはリアルタイムではFM-7のテープ版しかやったことがなくて、のちにDragon Slayer ChroniclesのPC88版を根性で全ステージクリアするまでステージ2以降というのを見たことがありませんでした。というかFM-7テープ版もクリアできたことあったかな。あのゲーム、どこでもセーブ無しでクリアできる気がしない。しかし、パズル要素とか戦略要素とかあって間違いなく傑作でしたね。
2021-10-21 02:11:52
FM TOWNS版DOOMをちょっとだけ最適化しました。ほぼ誤差レベルですけどDemosplashではこちらをお願いします。
https://drive.google.com/file/d/1CSqp6igp_lbxblKl_z0z26mvravEICoM/view
High Cコンパイラで気になったんですが、絶対値返す内部関数_absって連続で使用すると最初の_absの結果が破棄されてしまう(絶対値を入れたレジスタの値が退避されずに次の命令に進む)バグがあるんですね。
2021-10-28 15:04:01
了解しました!更新しておきます!
2021-10-29 20:51:03
申し訳ありません。また最適化できたようなのでお手数ですが再度の更新をお願いいたします。
https://drive.google.com/file/d/1vn-4K94idxtmuXVX2FBxVqTMexCe7bIr/view?usp=sharing
前Verより5-7%くらいは高速化、メモリが多ければキャッシュも効きやすくなったはず。
これで最後にしておきたい(汗)
2021-11-02 01:27:22
今週末必要なファイルのコピーなどやってしまおうと思っているので、大丈夫です!
しかし津軽のCPUはなかなか速くならんですね。前からoperandSizeを何度もチェックしているのが気になっていたので、そうならないように書き換えたり、プログラマブルシェーダーの癖で条件分岐を避けて書いてた場所があったものの考えてみたらCPUだと投機的実行とかするわけだからかえって無理にテーブル化とかしてたところを条件分岐に戻してみたりとやってますが。UNZのRecompilerってどうやっているんでしょうかね。UNZもそうだけどDOSBOXがどうやってあのスピードを出しているのだろうか。
2021-11-02 04:27:12
今の実装が最大何MHz相当といったベンチマークを取る手段はあるでしょうか?
逆アセンブル結果が一見よくなるような変更があっても、効果が定量的に確認できないのにPRを出してもなぁという気持ちはあります
(-NOWAITでメモリカウントの速度をみて、IPLに入ったところでアボートさせるとか…?)
2021-11-03 04:56:14
うーん、メモリテスト中は、Pagingがオフな上にREPをまとめて実行するのが効いているようで、66MHz余裕(うちのCore i9)なんですが、Towns OS V2.1のTowns MENUのGUIが立ち上がると途端にVMが遅れ始めるんですよね。
ベンチマークを取る方法があるといいのですが、現状ではVMがついてきているか見るのは今はTime Balanceを見るしかないのですが、それも別のプロセスの負荷によってスピードが上がったり下がったりしますね。1%とか2%の改善は誤差範囲に入ってしまうので、難しいですね。それでも積み重ねれば目に見えるスピードアップになるはず、と信じるしかないというか。
また、こうすれば速くなるはず、という書き換えをしても体感であまりわからなかったりするし、アプリケーションによって着いてこれる場合着いてこれない場合が結構バラバラのようなので、何が最適なのかという問題も本当は考えた方がいいのですが、今は適当に思いつく書き換えをやってます(^_^;)
2021-11-05 00:06:40
>DOOM
「これで最後にしておきたい(汗)」と記述しましたけど、また最適化してしまいました(大汗)。DL先は上のURLから変わりません。
>津軽のCPU
Visual Studioのパフォーマンスプロファイラーで津軽がTownsOSを起動するまで(計測中は重すぎる)の実行経過時間の長い関数を調べてみると命令フェッチかメモリアクセスと思われる関数で長く時間を取られているようでした。
元から実行時間の短い部分を最適化してもほぼ誤差にしかならないと思われるので、最適化して効果的なのはここでしょうか。
2021-11-05 01:43:49
> DOOM
了解しました!まだ実機にコピーしてなかったので大丈夫です!なお、結局プレゼンテーションをTowns GEARで苦労して作りましたというか9割ぐらい作りました。絵を貼ろうと思ったら320x240に落とさなくてはならず、しかもTowns形式のTIFFにしないと読んでくれないので、BMPでTownsに持って行ってICVでTowns形式TIFFに変換してセーブするとなぜかほぼ確実にICVがクラッシュするので、これを追求すると何かまた別のCPUコアのバグが取れそうな気がしています。
> CPU
Visual Stuioってプロファイラついてるんですね!なんでもコマンドでやりたがる旧態依然たるプログラマーなので気づきませんでした!命令フェッチは各命令ごとに、メモリアクセスは大半の命令で発生するので、命令フェッチとメモリアクセスはまさになんとかしたいけどいいアイディアが思いつかないところですね。
使用頻度という観点では関数に出入りするたびにPUSH/POPを使うので、ここが速くできんかと思っているのですがね。PUSH EBX, PUSH EDI, PUSH ESIみたいな3連続が来たら、未使用opCodeに置き換えてレジスタ3個まとめてPUSHする、みたいなことができると、命令3個分のフェッチが1度になり、書き込み先ポインタを取得するのも1回で済むようになってよさそう、と、いうことを考えたものの、1バイトの未使用opCodeが無い.... 1個あるにはあるけど、DOS ExtenderがINT 6のテストに使っちゃってるし。386命令多過ぎ(^_^;) 未使用REGを使うという手はありますが。
2021-11-05 03:47:41
さっき、FetchInstructionの中を1ステップ減らしたけど、これは効いてる気がする。前まで40MHzぐらいまでしか着いていかなかったのが41MHzになった気がする(^_^;)
2021-11-05 06:16:46
昨日の晩、Virtual Functionをやめて、普通のFunction Pointerに変えよう、と、思ったのですが、アセンブリレベルだと、
MOV ESI,[memAccessObject+EAX*8] ; EAX=(Physical Address/1024)
MOV ESI,[ESI+vTable]
CALL [ESI+FetchByte]
が、
MOV ESI,[memAccessObject+EAX*8] ; EAX=(Physical Address/1024)
CALL [ESI+FetchByte]
こう変わるだけなんですよね。キャッシュミスによる大きなペナルティが発生する可能性があるものの、インストラクション1個なんだよな、と考えると、Fetchするところを、
if(IsMainRAM(physAddr))
{
return mainRAM[physAddr];
}
else
{
return memAccess[physAddr>>10]->FetchByte(physAddr);
}
と、変えると、main RAM以外のアクセスがif文1個分遅くなる半面、mainRAMアクセスは関数呼び出しが無くなる (IsMainRAMはポインタの比較かなんかにする)分トータルでスピードが上がるのではないか、という仮説を考えたのですが、考えたのでやってみます。(考えながら書くな!)と、考えていくと、まさかstd::vectorのoperator[]がinlineになってないとかいうことないよな。。。。今からオフィスアワーで多分学生さん誰もこないから調べてみよう。
2021-11-06 00:05:43
ramromですと、小ネタとしてはこのようなものがあります。どちらも単体で有意な差はありませんが。
・memAccessPtr を std::vector から std::array にすると間接参照が1段減る
・Release は見ていませんが、MSVC の RelWithDebInfo では ConstPointer::FetchTwoBytes, FetchFourBytes は1バイトずつのコピーになっています。
これは memcpy に変えると word, dword 単位のコピーになります。(buf と ptr が重なる場合はundefined behaviorなので、逆説的に重ならないと仮定した最適化が行えるため)
上のIsMainRAMは、例えば ((physAddr ^ 0xc0000) - 0x40000) < 実装メモリ で3命令でしょうか。
2021-11-06 04:58:03
((physAddr ^ 0xc0000) - 0x40000) < (実装メモリ - 0x40000) でした。右辺は起動時に決まっているので3命令に差はないですが。
2021-11-06 05:38:44
がーん、なんてことだ!本当だ!1バイトずつのコピーになってますね。ああ、これはオプティマイザがこれぐらい認識して勝手に4バイトぐらいまとめてコピーしてくれるだろう、と、期待したら裏切られたんで他の部分ではこの書き方はやめたと思ったんですが、残っていたとは。しかも、ためしにVisual Studioでアセンブリコードを出してみたら、
movzx eax, BYTE PTR [rdx]
mov BYTE PTR [rcx], al
movzx eax, BYTE PTR [rdx+1]
mov BYTE PTR [rcx+1], al
movzx eax, BYTE PTR [rdx+2]
mov BYTE PTR [rcx+2], al
movzx eax, BYTE PTR [rdx+3]
mov BYTE PTR [rcx+3], al
あそうか。重なりがある場合を想定してるのか。なるほどなー!しかし、どういう心の闇があってわざわざmovzxを使うのか。。。。movzxは無いような。何かmov al,[rdx]にしな理由があるのだろうか。いつも隅々までコードを読んでいただいて、ありがとうございます。この点は変えておきます。
しかし、これで有意な差が無かったですか。たしかに、ConstPointerを使ってるのはインストラクションのフェッチとだけだったかな?だとするとそれ以外のRAMのアクセスが圧倒的に多いということでしょうか。
IsMainRAMは、if(memAccessPtr[physAddr>>Memory::GRANURALITY_SHIFT]==&mainRAMAccess)とすると、アクセスポインタはいずれにせよ取ってくる必要があるので、&mainRAMAccessをキャッシュしておくと、cmpとjneだけで行けないかな?
2021-11-06 14:23:11
movzx は既に rax に存在する値との依存関係を切ることができるからですね
486だと3clockもかかる命令なので、気持ちはわかります
2021-11-06 18:30:17
Memory Windowのアドレス範囲チェックを、↓こうやってたのを、
if(linearAddrBase<=addr && addr<linearAddrBase+MEMORY_WINDOW_SIZE)
↓みたいに書き換えたら(2か所)、
addr-=linearAddrBase;
if(addr<MEMORY_WINDOW_SIZE)
これも結構効果があったような気がします。
最初だと、reg1=addrとして、書き換え前だと
cmp reg1,[linearAddrBase]
jb is_false
mov reg2,[linearAddrBase]
add reg2,MEMORY_WINDOW_SIZE
cmp reg1,reg2
jae is_false
; is_true
みたいなのが、
sub reg1,[linearAddrBase]
cmp reg1,MEMORY_WINDOW_SIZE
jae is_false
; is_true
に減るのと、Instruction FetchとPUSH/POPで効いてくるので、数%は違うような気がします。ベンチマークに使ってるTowns MENU V2.1 L31がうちのCPUでFREQ 43ぐらいまでほぼ着いてくるような。(この前は41ぐらいだったと思う)。FREQ 66でもDeficitが振り切れることが減ったような気がします。けど、他のプロセスの負荷でこのぐらい変わるからちょっとはっきりしないんですけどね。
ただ、これってCPUが2の補数表現を使っているので引き算でアンダーフローすると巨大な数になるからできてますが、C/C++の言語仕様としては保証してないんですよね。今は保証してるのかな?僕のCの知識は共立出版の「プログラミング言語C 第2版」(まだ捨てずにとってある)のまま止まってるとこが多いので。そこまで考えんでいいのかもしれないですが、一応 #ifdef YS_TWOS_COMPLEMENT のとき書き換えが有効になるようにしてます。
2021-11-07 13:14:31
あ、そうだ。そういえばUNZでSuper大戦略を起動すると、最初のループからタイトルの曲が割り込みによる間延び無く流れるように演奏してくれるのですが、実機か津軽だとフロッピーディスク読み込み中に割り込みマスクしちゃうもんだからちょっと曲が止まるタイミングがあるんですよね。(楽器弾いててしくじったとき「今ちょっとフロッピーディスクの割り込みが」と言い訳しても若い人には通じない、いやそもそも若くない人でも「割り込み」が何か知らない人には通じない)。津軽でも、ひょっとしてFDの反応を爆速にするといいのか、と、思ってやったらちょっとはFD読み込みに時間がかからないとかえって動かないものが大発生して断念したんですが、というかたしかSuper大戦略自体が起動しなかったと思ったのですが、あれってどうやってるんですかね?想像つきます?
一周まわるまで待てば流れるような演奏は聞けるのですが、UNZがどうやってるのか単純に興味があるというか。Super大戦略の曲ってPC98版、X68版、PC88版で微妙に音の質が違うのですが、僕はTOWNS版がいちばん好きですねって前にも書いたような気がするけど一年以上前だったような気がするから時効ということで。(最近眼を甘やかしてたら右目がかなり遠視気味になってしまったので、ぎりぎり焦点が合わない距離まで近づけて本を読んで眼の筋トレをやったら今朝は眼精疲労で微妙に頭痛がする。。。。)
2021-11-07 23:49:09
C/C++では unsigned の演算は mod 2^N であり、オーバーフローはありません
いつからこれが仕様に含まれているかは知りませんが、C++98 にも書いてあるので案外 ANSI C (C89) まで遡れるのではないでしょうか
C++20 では signed な型の負の数の表現が2の補数になりますが、いずれにせよオーバーフローは undefined bahavior です
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1236r1.html
2021-11-08 02:14:41
singedに数を足していったり引いていったりすると符号が反転するのと、unsignedで0から1を引いて0xFFFFFFFFになるのと、0xFFFFFFFFに1を足すと0になるのは、書いたらそうなるけど、C/C++の保証の範囲じゃないと記憶してたのですが、unsignedは保証されてましたか? 符号の反転と、0-1=0xFFFFFFFF, 0xFFFFFFFF+1=0になるのは、CPUが2の補数表現を使っているとsignedもunsignedも同じSUB/ADD命令が使えるからだ、と、ずっとおぼえたんですがね。
unsignedの方は保証されてるんだったら、unsignedで小さな数から大きな数を引かないようにプログラム書いてたから、今まで縛りプレイになってたな。
2021-11-08 10:51:25
LOOP命令、ビットシフトが1回、ANDが2回、ORが1回になってるので、素直にoperandSizeを最初にチェックして16と32で分けようと思ったら、、、unsignedで0から1引かないようにしてたつもりでも、LOOP命令の実装で既にやってるし。。。。こういうのたくさんあるんだろうなあ。Big EndianのCPUでも一応実行できるように書いてるつもりだけど実際テストしてないしなあ。
2021-11-08 13:53:15
ISO自体はオンラインで参照できないので同内容の draft ですが、unsigned の演算については
C++11 は http://www.open-std.org/jtc1/sc22/wg21/docs/standards の N3242 の 3.9.1 Fundamental types の 4 と脚注、
C99 は http://www.open-std.org/jtc1/sc22/wg14/www/projects にある N1256 の 6.2.5 Types の 9 を参照ください。
移植性については難しいですよね。
x86は何から何まで親切なCPUなので、たまに gcc, clang の -fsanitize=undefined など使うと「見なかったことにしよう」という気持ちになります。
高速化の話では、昔FLAGS計算が速くならないかなと思って試していたブランチがありました。
分岐が無くなり命令数が減るものの目に見える効果はなかったと記憶していますが、リサイクルできるアイデアはあるかもしれません。
https://github.com/pinterior/TOWNSEMU/compare/e1a5af3...eflags
2021-11-08 19:17:49
(さっき書いたつもりが、Timeoutになってて書けてなかったっぽい)
まったくいきなりですが、フリコレ11に入ってるICVってバグってますね。
000C:002323F9 83C30C ADD EBX,0CH
000C:002323FC 8A0433 MOV AL,[EBX+ESI]
000C:002323FF 3C20 CMP AL,20H <- これを 20H or 00Hにするべきだ。
000C:00232401 7407 JE 0023240A <- JBE (76H)にする。
ファイルをセーブした後で、ウィンドウのタイトルにファイル名をコピーする部分だと思うのですが、いったんローカルのchar str[256];みたいなのにファイル名をコピーして、"(1)"とか"1:1"を追加しようとしているようなのですが、本来nulまでコピーするべきところを、' 'が出るまでコピーしているので、バッファオーバーランでスタックが破壊されて終了。
これをなんとかしようと思ったら、' 'またはコントロールコードまでコピーするようにすれば大丈夫なようです。JEをJBEにすれば解決ですね。
EXGもEXPも場所は違いましたがバイト列は同じだったのでバイナリエディタで直せます。
このバグにはTowns GEARでDemosplash用のプレゼンテーションを作ってて何度も悩まされたのですが、多分津軽のCPUコアの問題だろうと思って、そのうち直そうと思ったら、逆アセンブル見たらICVのバグっぽくて、実機でもクラッシュすることが確認できました。そして、既に変換が必要な画像ファイルは全部変換してしまった後という。。。。
2021-11-10 10:23:22
Demosplashが終わって放心してましたが、思い立ってメモリアクセスでmain RAMの場合はvirtual functionを使わないように変更を試してみたのですが、結果はほとんど変わりませんでした。残念。これは結構効果が出そうと思ったんですが。virtual関数だとRTTIアクセスでキャッシュミスが起こるとペナルティが大きいかと思いましたが、考えてみるとCPUの実行中は頻繁にmain RAMのアクセスが起こるので、うまいことCPUキャッシュに入ってしまうのかもしれないですね。あるいは、virtual functionを使わないことで稼いだ分、増えたif文でロスしてしまうのかもしれないですね。
それよりも、マウスやキーやジョイスティックのチェックが8msに一度0.8ms程度かかっているようなので、この一部でも別スレッドにしたら少し稼げるかもしれないという気がしています。
あとは、ゲーム中のスピードだとPCMとFM音源ですかね。。。あ、ALLTYNEX忘れてた。あれはCh3の特殊モード使ってるのか確認するんだった。鳴ってないパートがあるとすると多分それじゃないかと思うんですがね。
2021-11-21 05:36:40
VM自体の最適化とは違うかもしれませんが、
TownsRenderingThread::ThreadFunc内のif文前にあるcond.wait(mainLock);をコメントアウトして
if文最後に
else
{
cond.wait(mainLock);
}
と記載するとTownsOS上でマウスを動かした際にホスト側とTowns側のマウスカーソルの遅延が軽減される印象でした。
2021-11-23 22:43:17
おおなるほど!多分、その修正は、cond.waitの本来正しい書き方の、
cond.wait(mainLock,[&]{return NO_COMMAND!=command;});
このようにするのと同じのはずですね。Predicate入れなくても動いていたので、手を抜いてました。たしかに言われてみると追従が速くなったような気もするような。この方がC++的には推奨のようなので、このように修正してみます。
2021-11-25 12:36:45
ついさっき、絶対これで速くなっても遅くなるはずは無い、という書き換えを試したら、目に見えてスピードが落ちたので、なんで速くならんのだろう?と、思って調べたら、Visual C++は、結構勝手にinlineを無視するんですね。__forceinlineにすると構造的に可能ならinlineにしてくれるみたいですが。一応、この部分は__forceinlineにしたらスピードは落ちなかったんですがね。大して速くもならなかったのですが(^_^;)しかし、構造上inline化できない場合はわかりますが、/O2オプションつけてるのにinlineを無視するとは。実際パフォーマンス落ちたので、結構本来inlineにしてほしいところをinlineにしてくれてなかったりして。うーん、どうしようかな。inline.h でも作って対応しようか。
2021-11-29 14:31:05
>>291 山川機長さん
X68000用のアプリケーションはポロポロと出てますよね。
何故X68000なのか? 恐らくは回路図やOSや言語まで解放している事が最大の要素ではないかと思っています。
勿論、X68000と言う機種の魅力や未だに存在するユーザーの数,当時に移植されていないソフトウェアの存在も有りますが、今更High-Cや386|ASMを合法的に入手して残された情報を頼りに開発を行う事と比べると遥かに敷居が低いような気がします。
個人的には別に好感も持っていないのですが、SHARPと言う会社のX68000ユーザーに対する想いなのか何なのか・・・・
開発を終えて社会的にも寿命を終えたプロジェクトの終わり方としては見事としか言えません。 TOWNSも・・・・ 無理かなぁ?
2021-11-30 10:06:46
これは効果は薄かったですが、device.cpp内のDevice::Push###・Read###も
#ifdef YS_LITTLE_ENDIAN
v = *((データ型*)data);
ないし
*((データ型*)buf[len]) = data;
#else
で最適化できるようです。
2021-11-30 20:57:03
すみません、勘違いだったかもしれません。
2021-12-01 01:14:55
BCCさん、
コード見ていただいてありがとうございます!そうですね。このPushとReadはステートセーブ・ロード以外に使ってないので実行時間には影響ないですね。
昨日から、FetchOperandを書き換えていて、2~3%程度はスピードが上がってるような気がします。逆アセンブルを見ると、オペランドが無い場合が case 0 になるように書くと最初のレンジチェックで分岐してしまってcall indirectを使わないので1インストラクションあたり結構なクロック数の削減になってるはずで、これは絶対書き換え前よりも1クロックも長くなることはありえません。
その前は、FetchOperand事態をやめて、RunOneInstructionのswitch-case内でオペランドも取るようにしようとしたのですが、こうするとswitch-caseの分岐がひとつ減るから結構目に見えてスピードが上がるかと思ったら意外なことにほとんど効果がありませんでした。どうやら、減るのは微妙なのですが、switch-caseに入る前にインストラクションのバイト数が確定しない影響で一ステップ増えるので効果を打ち消してしまったのかもしれません。
現状だとFREQがぎりぎりになると、デバイスのポーリングが入ったタイミングでガクっと遅れて取り返し切らないうちに次のデバイスポーリングが入って、という流れになっているようなので、デバイスのポーリングを別スレッドにできないか検討しています。そもそも使ってるFsSimpleWindowというライブラリ、仕事でも授業でも趣味でも使いまくっているのですが、30fpsぐらい出ればいいや、という非常に安易に作ったものなので、遅いんですよね。
2021-12-01 09:57:06
WINDYさん、
TOWNS用のアプリを新規に出そうと思ったら、IO.SYSがひっかかってるのではないかという気がしてます。開発環境はまだ割とHigh-Cマルチメディアキットがときどきヤフオクに出るし、テキスト形式とはいえ当時と同じ情報が一通り入っているし、DOS ExtenderはFree386でなんとかなるのかな?TBIOSに関しては無けりゃなくても頑張れば根性である程度のことはできるし。しかし、IO.SYSが無いとそもそもファイルにアクセスできないし。これだと、Towns System SoftwareでブートしてFD上のファイルをダブルクリックで起動みたいなことはできても、CDまたはFDから直接起動可能なものを作ろうと思ったら富士通が権利を塩漬けにしてしまったIO.SYSとかを載せられないのでできないのかも。
現実的にTOWNS用に新たなアプリを作ろうと思ったら、CDが死んでしまったTOWNSが多いことを考えるとフロッピーディスクベースになると思うんですね。フロッピーディスクだけアクセスできればいいのであればまだ互換IO.SYSも書こうと思ったら書けるかもしれません。あるいは、YSDOS.SYSがあるんだから、FreeDOSみたいに、YSDOS.SYSにフロッピーディスクアクセスを追加したの書けばいいのか。こっちの方が簡単そうな気がしてきた。しかし需要がない!
ただ、フォーマットでのシステムの複写のオプションは同人系のソフトの配布で使ってもらうためのものだったのではないかと推測しているので、実は使ってもいいんじゃないかという気がしているのですが、僕が探した範囲ではTowns OSでシステムを複写したフロッピーディスクを再配布してもいいのかどうかについて記述が見つかりませんでした。
2021-12-02 02:49:47
>FsSimpleWindow
Tsugaru_CUI.exeを直接起動するとCPU1コアの使用率が80-90%ほどいくのに比べてTsugaru_GUI.exeからの起動ですとSeparate Processを有無に関わらずCPU使用率が50-60%で頭打ち、動作自体も遅れるのが気になりました。
2021-12-02 19:27:10
Visual C++がinlineを無視する問題は、結構じわじわ効いてるようで、パラメータが多いとcallが増えるだけでなくパラメータをスタックに積むオーバーヘッドも大きいみたいですね。ということで、だったらパラメータを減らしてみようと思って、InstructionとOperandふたつはセットで使うことが多いので、セットにしてみたところ、ちょっとスピード上がったみたいです。ソースPUSHしました。
それで、今までスピードをうまく比較する方法が無くて、スピードが上がたような下がったようなだったのですが、1msごとに計測するtime balanceを過去4秒記録して平均を表示するようにしてみました。(何故今までしなかった!?)なお、表示自体に時間がかかるので、一度表示したら次の表示まで最低4秒間待たないとだんだん時間負債が増えていくように見えます。それから、他のプロセスに影響を受けるので、とくにWeb Browser立ち上げてると目に見えてスピードが落ちたように見えます。
ここ2~3日の書き換えで、うちのCPUでFREQ 66でTowns MENU V2.1 L31を起動して何も触らないで少し放置してからの計測で、
書き換え前の時間負債 420K後半 (単位はナノ秒)
書き換え後の時間負債 390K前半
ということになったので、効果出てるっぽいですね。これが大雑把にスピードアップの割合なので、7%ぐらいスピードが上がったはず。それで、Virtual Functionの削減はどうだったかというと、
全ての改善+Virtual Func削減した場合 410K後半
という結果になったので、やはりif文が増える分オーバーヘッドの方が大きいようです。
ただ、一部効いてそうな__foceinlineが案外結果が変わらなかったりするので、簡単な話ではないようですね。キャッシュに入るとか入らないとかあるのかな。そういえば6809でもLBSRじゃなくても飛べる範囲内に書くとかやったなあ。
2021-12-02 23:35:31
BCCさん、
おおなるほど。Separate ProcessにしてもGUIが遅れますか。今ざっと確認した感じではオプションと蚊明らかな間違いは見つからなかったですが、GUIにもTime Balanceの表示を追加してみます。
2021-12-02 23:41:51
あ、計算違うか。スピード比較は(1ms+Deficit)の比にするべきかな?だったら1.6%か。書いた後で、7%も上がってる気しないなあ、と思った。まあ、Deficitを減らし続ければそのうちパフォーマンス上がるはずだし。
結構長いこと、(徒歩)通勤途中にインストラクションのキャッシュができないか考えるものの、いい方法が浮かばないですね。EIPの下位16ビットをキャッシュのインデックスに使うことにして、CSとEIPの上位16ビットまで含めて一致したらキャッシュされてるInstructionとOperandを使い、違ってたらあらためてフェッチしてオペランドをデコードしなおす、という方法を考えているものの、うまく動かないパターンがいくつも思い浮かんでしまっていまいち踏み切れない。キャッシュするまではいいけど、内容が書き換わったことを検出できないので、絶対クラッシュしますね。コストゼロでキャッシュが無効になったことを知る方法があったらいいのですが。自己書き換え型のコードはほぼ全滅するし、PACKとかLZEXPかかってても怪しい。かといってメモリ書き込みでキャッシュクリアなんかしてたらかえってそれによって遅くなるし。ページングさえなければポインタで持たせられるのにな。
2021-12-04 11:01:58
山川機長さん
>Visual C++がinlineを無視する
inline指定子はインライン展開を指定するものでなく、複数回同じ変数・関数を定義させるための指定子のようです。
https://lpha-z.hatenablog.com/entry/2019/02/17/231500
記述しておくと逆にコンパイラによるインライン展開の最適化を妨げることになることもあるようなので高速化目的では記述しないほうがいいかもしれません。
2021-12-04 19:54:00
BCCさん、
なるほど。新しい解釈のように思いますが、inlineはやっぱり本来は展開されるもののように思いますね。Link-Time Optimizationのアイディアが出てから話がややこしくなってinlineを別の.cppに書くような書き方が出てきたと思いますが、その昔は、別CPPファイルに書いたinline関数は絶対にinline展開されないルールだったと思います。僕は今でも必ず、inline関数は使用する.cppファイル内、または.hファイル内に書くことにしています。まれに外の.cppから使うときはinline展開されないつもりで書いています。
Visual C++の場合、inline指定があると、cost-benefit analysisによってinline展開するか決定する、とあります。
https://docs.microsoft.com/en-us/cpp/cpp/inline-functions-cpp?view=msvc-170
それで、期待したところが展開されてなかったりしたので、cost-benefit analysis間違ってない? と思ったのですが、ここは展開するでしょ、という個所を試しに__forceinline指定に変えて結果を比較してみたのですが、Visual C++が出してくるアセンブリは変わっているのですが、効果が無かったりして、call命令減ってるのになんでだろう? と謎になってます。
どうも、inline関数が本当に単純な場合だとinline関数がひとつかふたつのCPU命令に置き換わってくれるのですが、複雑だと結局パラメータはinline関数のローカル変数としてスタックに積んでしてしまうみたいです。簡単な命令の場合だとパラメータをスタックに積む負荷+call+retが減るのに対して、複雑な関数だと減るのはcall+retだけで、その程度だと最近のCPUだとほとんど負荷になってないのかもしれません。
あと、もしもスタックに積む負荷が結構効いているという仮説が合ってるとすると、最初の4個のパラメータはレジスタ渡しらしいので、パラメータ数が少ない関数も効果が薄いかもしれないですね。
2021-12-06 00:22:21
ちょっと気になったのですが、glDrawPixelsがかなり遅いのでこれをなんとかしないとCPU部分をいくら高速化しても結局ここがボトルネックになるのではないのでしょうか?
おそらくこの関数、ピクセル毎にCPU->GPUへ色を指定して描くドローコールをその都度出すだけで一気に配列上のデータをGPUに転送してるわけじゃないので相当遅いのかと。
OpenGLについて詳しいわけじゃないので試していませんが、glTexImage2Dでテクスチャを作成してglTexSubImage2DでVMのフレームバッファをテクスチャに転送、4角形ポリゴンにそのテクスチャを貼りつけって方法が思いつきました。
これもそこまで早くはないかもしれませんが、3Dしか基本対応していない昨今のGPUではテクスチャ上に一旦転送するのが基本のはずですし、DOSBOXやSnes9XのOpenGLレンダー設定もソースコードで確認した感じもこんな方法みたいです。
CUIに比べてGUIが何故か圧倒的に遅い・CPU使用率が低いのももしかしたら津軽そのものに遅い部分があるんじゃなくて何か遅い外部関数読み出しがあるせいなのか。
2021-12-09 21:42:33
まさにおっしゃる通りでございます(^_^;)glDrawPixelsは使うのが簡単だから使っているのですが、遅い関数ですね。ですが、おそらく内部ではテンポラリなテクスチャを作って、転送して、テンポラリテクスチャを削除するというステップで実装されていると思うので、テクスチャを使ってもビットマップの転送が入る以上そんなにパフォーマンスは変わらないように思います、とか書きながら案外テクスチャのリソース確保と削除に時間かかってたりして?と、思い始めてしまったので、後でテクスチャを使う方法も試してみますね。それに、最近のシェーダーがテクスチャを多用するので、案外テクスチャの転送はglDrawPixelsとは別の最適化された方法があるかもしれないですね。
本当はOpenGLの依存もなくするといいんですけどね。クロスプラットフォーム化するのに楽だからという理由でOpenGLを使っているのですが、多分直接ビットマップをウィンドウに転送する関数を使った方がオーバーヘッドがかなり少ないはずなので、しかもビットマップが小さいので、時間は稼げると思うのですが、GUIのWidgetを全部OpenGLで描いているもので、これを全部OpenGLを使わないように書き直すのが大変という問題があって、なかなかOpenGL依存からの脱却はできないですね。。。。。DOSBoxとSnes9XってOpenGL使ってたんですか!?だったら案外OpenGLのままでもいいか。
ただ、一応FREQ 66で画面を描画しなかったらどうなるかというもの試してみたところやっぱりCPUも追いつかないので、CPUのスピードはなんとか工夫して上げていかないとと思ってます。一応目標はMXの再現なので、多少ハイエンドなPCが必要になったとしても66MHzは出るようにしたいところです。いや、待ってればそのうち勝手にホストPCが速くなっていくという消極的な考え方もあるにはあるのですが。
CPUにかなり手を入れたので、テストを増やしてみました。去年作った救難IPLのイメージだと僕が書いたものだから、その起動テストは外部依存無しに実行できるので追加して、FPUのテストを強化したかったのでPoly RacerとPower Driveをテストに加えてみました。Power Driveって良くご存じでしたね!FPUのテストにありがたいですね。あとAlltynexの起動とEASTRAYもテストに加えようと思ってます。
2021-12-10 01:42:39
自分のPC環境で確認した限りではglTexImage2Dでの描画の方がtimebalanceの遅れが殆ど目立たない値になっていました。対応ありがとうございます。
他に報告ですが、PCM音源が鳴っている最中にVMをリセットするとPCM音がループで鳴り続けTownsOS起動時にフリーズしてしまう不具合があるので、TownsSound::State::Reset内にrf5c68.Clear();を追記したほうがいいのかもしれません。
2021-12-20 19:15:54
おおなるほど!その問題は、気が付きませんでした!そのように対応します。ありがとうございます!
2021-12-26 13:18:04
githubにMDS/MDF対応版ソースをアップロードしました。まだ数本しか試してませんが、正しく動作しているように見えます。
僕はAlchol 52%をイメージ作成に使ってるのですが、やっぱりPre Gapをバイナリに書かないんですね。BIN/CUEファイルの場合、ディスク長の情報も、トラックがバイナリファイル内のどこから始まるのかの情報も全くないため、Pre Gapが書いてあるのか判別する方法がありませんでした。が、MDF/MDSだとファイル内のトラック開始位置がわかるので、ディスク長はバイナリファイルの長さから最終トラックのファイル内開始位置を引いて、セクタ長で割ったものを最終トラックのセクタ開始位置に加算することで計算できるということがわかり、これにより、Operation Wolfに合わせるとEmerald Dragonのイベントシーンが流れず、Emerald Dragonに合わせるとOperation Wolfが起動しないという問題をついに解決できたと思います。これからは全部MDS/MDFでイメージ作ろう。Fuzzさん、情報ありがとうございました!
皆さま、アメリカではあと6時間ほど良いお年をお迎えくださいですが、日本では新年おめでとうございます!
2022-01-01 07:59:58
新年明けましておめでとうございます。
景気やコロナウィルスの事もあって、世界的に見てもあまり手放しでおめでとうございますとは言えない状況では有りますが、TOWNS界隈においては旧年は"津軽"の登場は素晴らしいトピックであり、本年はさらなる飛躍を期待させる物でも有りました。
山川機長さん並びに皆様の努力に対し感謝します。
ところで、最近の(と言うかかなり前から)グラフィックスカードって、CPUから見るとどう言うアクセス方法なんでしょう?
TOWNSのようにV-RAMが直接的に見えていると言うのは所謂旧世代的な方法で、CGAやVGAではそうなっていたと思うのですが・・・・・
中途半端な世代である、SEGA SATURNだと、ドローリストでスプライトやグラフィックの描画を管理しているようなので、同じようなもので出来ているのかな?とか思うのですが。
え? 何のためにそんな事を考えているか? いや, その・・・ 新年早々 TOWNSに拡張グラフィックスカードを開発するなんて妄想を・・・・・
2022-01-01 08:41:11
明けましておめでとうございます。
こちらハワイもようやく年が明けたところです。(嘘ですすみません)
>>332
実装するのに十分な情報が含まれているのか心配していましたが、無事に実装出来たようで良かったです。
私はmds/mdfフォーマットは使っていないのでテスト出来なくてすみません。
それでは本年も宜しくお願い致します。
2022-01-01 19:55:10
明けましておめでとうございます。
今年も津軽の更なる発展を期待しております。
ディスクイメージはccdもメジャーでいいと思いますよ…自分はclone cdで取り込んでます。
2022-01-02 05:57:50
冬休みだからゲームしよう、と、思ってMDS/MDF対応のテストを兼ねて、遥か昔高校生だったころ友達がプレイしてるのを指をくわえてみていた「大航海時代」をやってみよう!と、思って始めたのですが、誰かクリアした人います?割と順調に進んだかに見えたのですが、「海賊ホアンを討伐せよ」と国王からの指令があったものの、待てど暮らせど出てこないホアン。それどころか、海賊自体が滅多に出てこなくて、果たして何か自分がフラグを立ててないのか、それとも津軽のCPUの問題なのか、あるいは例えば乱数の発生にRTCとか使ってると2022年にもなると絶対発生確率が0になってしまうのか、などいろいろな仮説を考えているのですが、この手のゲームはシリーズものだけに新しいシリーズの攻略情報が出てしまうんですね。うーん、セーブデータのディスクイメージを書き戻して実機でやってみるか。。。。
2022-01-05 15:08:13
妄想のネタを書いておこうと思います。
OSSC(Open Source Scan Converter)と呼ばれるスキャンコンバータが有ります。(https://github.com/marqs85/ossc)
主な用途としては、HDMIを持っていない旧世代のゲーム機器の映像及び音声をスキャンコンバートしてHDMI出力するものなのですが、これを購入しました。
機能的にはラインダブラー方式で、VGAやSCART(RGB21pinの場合はSCART→RGB21の変換が必要)で入力された映像を2倍や3倍にして出力する物で、垂直及び水平周波数の変換等は行わないものです。
wikiを見るとPC-9801やPC-8801でもパラメータの調整により、PCモニターであれば対応できるものも存在するようで、願わくばTOWNSでも使用できるかと思い購入しました。
今のところは31KHzや16KHzの画面モードでは問題なく使えるようで、これらについては多くのテレビでも大丈夫だと思います。
パラメータの詰めが出来ていないので、24KHzの画面モードについては手元ではPCモニター,テレビ共に表示できていませんが、PCモニターについてはなんとかなるかもしれません。
テレビについては、HSYNCが55Hzとなる事からテレビ上の表示で対応しない周波数である旨のメッセージが出ていることから恐らくは表示することは出来ないものと思います。
OSSCの主な回路構成は、TI社TVP7002(ビデオ&グラフィックデジタイザ),ITE社IT6613(HDMIトランスミッタ)とFPGAと言う非常にシンプルな作りで、FPGA内のCPUコア(RISC-V)で双方の素子に対しての初期化や設定及び表示用のLCDとOSDの制御をしている形となります。
ここで、ふと考えたのが、「これにホストCPUとのI/Fを加えて、拡張カードを作れないだろうか」と言う考えですが、簡単なものであれば充分に実現可能な様に感じます。
でもTOWNSのスロットに関しては情報が無いので、まず此処から着手する必要が有りそうです。 しかも世代によって違うという短所まで・・・・
2022-01-11 09:55:55
なにやら、25年も前に作ったスクリーンセーバーがYouTubeで話題に上がっていたので、ビルドできるようにして、ついでにTowns OS用もコンパイルできるようにしてみました。
https://www.youtube.com/watch?v=hAQt33Gj3KY&lc=UgzLnaQp7wCTtFgApr14AaABAg.9XsjgjAtAmn9XxvijmISce
ソースコード、実行ファイルなどは以下のURLに上げたので、よかったらお試しください。
https://github.com/captainys/FLYBY2
fmtownsディレクトリ内のファイルを全部コピーして(ぎりぎり1.44MBディスクに収まります)、Towns OS V2.1 L31以上からFLYBY2.EXGをダブルクリックすると起動できます。まだ実機でテストしてないですが、多分動くと思います。なお、FPU使ってて、多分386+387だとちょっと遅すぎると思うのでMX以上が必要です。(津軽FPUに対応させといてよかった)。うーん、HRにODPでも行けるかな。
2022-02-03 12:53:43
ロッキードマーティンのPCから発掘されたというのがさすがです:->
2022-02-04 17:51:30
HCで動いたことをご報告致しますm(_ _)m
動画見ましたが滑らかですねー凄いです。
2022-02-05 03:18:10
私の方は動作する所まで行けませんでした。
もし何か思い当たるところがあれば是非ご意見ください。
”BuffaloのASPIマネージャで認識させている外付けのフラッシュメモリ(127MB)”に保存したflyby2内のEXGファイルをダブルクリックしたところ、
cannot open AIRPORTやF117Aのようなメッセージが出て終了します。
次にD77をFDWRITE.EXPで1.44MBフォーマットしたディスクへ書こうとしたところ「イメージは1.44MBだけどディスクは1.23MBです」のようなメッセージが出て終了しました。
TMENUやWindowsPC上でフロッピーにファイル群をコピーして、その中のEXGを起動した場合もエラーメッセージがでて終了します。
CDドライブは壊れているので、システムソフトウェアV2.1L31で作成した起動ディスク(YSSCSICD、ASPIマネージャ入り)から起動し、外付けフラッシュメモリ、CDドライブを認識させシステムソフトウェアV2.1L51のCDを起動させています。
もしくはブートローダー版FDからの起動でシステムソフトウェアV2.1L51のCDを立ち上げてFD内のEXGファイルをダブルクリックしています。
SCSIハードディスクはありません。
メモリは8MB、CPUは486DX2です。
2022-02-05 13:54:22
FDWRITE.EXPについて、学習のいい機会だと思いFDWRITE.Cを拝見しましたところ
74行目から始まる
int IdentifyDestinationMediaFormat(int drive) // 0:A drive 1:B drive
{
unsigned int devNo=0x20|drive;
int secnum;
DKB_restore(devNo);
このあたりにFORMAT_1440KBを返す部分が無いのかなと思いました。
メディアが1440KBかどうかを検出する方法は分かりませんでした。
DKB_setmodeって何だろう?HighCの説明書で解説されているのかな、などと妄想しています。
FMTOWNS.D77を書こうとしたときのエラーメッセージは下記の通りでした。
Disk Image Format=1440KB
Destination Media Format=1232KB
Disk Image format and Media Format are incompatible.
2022-02-05 18:11:38
aochanさん
> ”BuffaloのASPIマネージャで認識させている外付けのフラッシュメモリ(127MB)”に保存したflyby2内のEXGファイルをダブルクリックしたところ、
> cannot open AIRPORTやF117Aのようなメッセージが出て終了します。
これを実行したときFMTOWNS.D77以外のファイル全てをフラッシュメモリの同一ディレクトリに入れていましたか?
2022-02-06 01:33:43
ありがとうございます。
https://github.com/captainys/FLYBY2
こちらの Code▼の所からFLYBY2-master.zipをダウンロードして、その中のfmtownsフォルダ(33ファイル)を丸ごとコピーしました。
先ほど再度ダウンロードしてファイルコピーをしてEXGの起動を試したのですが結果変わらずでした。
エラーメッセージは
Can't Open airport.fld【LF】RIBBONSMOKE【LF】ALTITUDE【LF】
Can't Open f117a.srf【LF】AIRCRAFT
の2つです。
【LF】はLとFが小さくLが左上、Fが右下で、2つが斜めに並んだ半角1文字です。【】はありません。
使用したCDドライブはパナソニックのポータブル10倍速と4倍速で、システムソフトウェアV2.1L31とL51の2種です。
32MBメモリの増設も試しました。
他社製CDドライブもあったはずなので探してみます。
2022-02-06 11:47:55
話題が飛んですみません、思い立って、ホストVM間のファイル共有機能を書き始めて、INT 2Fドライブにすれば簡単で、しかもエミュレータなんだからマシンのすべてがコントロールできるんだから、ゲストのドライバは最小にして全部ホストにやらせればいいじゃない、と、気が付いてどんどん進めていて、とりあえずコマンドからだとホストのディレクトリが取れてTYPEコマンドでテキストが表示できるぐらいまでできたのですが、Towns OS V2.1 L31のTowns MENUでドライブアイコンが出てきてくれないという問題に直面してます。L51だと見えるのですが。
何を元にドライブ選択ウィンドウのアイコンを作ってるのか、DOSのCDSを見てるようでもなく、CMOSの32CDh~を見ているようでもなく、DOSのDPBでもなさそうなんですよね。TICM.SYSがどうやってアイコン増やしてるのか解析をトライしたのですが、IO.SYSの壁に阻まれて解明できず、という状況に陥ってます。ちょっとさすがにこれを知ってそうな人はいないような気もしますが、誰かTowns OS V2.1が何をもとにドライブアイコンを作ってるか知ってます?
まあ、コマンドモードでファイルが見えればそれでいいや、という用途にはかなり近づいてきているのですが。なお、興味のある方は、DOSAPPのTGDRV.COMをMASMでアセンブル(ハードル高いけど多分簡単にNASM用に書き替えられる)したものを津軽に持って行って、津軽起動時に -SHARDDIR フルパスディレクトリ名 オプションをつけて起動して、TGDRV /D:P みたいにするとPドライブが共有ディレクトリになります。
2022-02-06 13:25:21
先日目玉Townsを引っ張り出してきて去年買ったOSSCを通して表示させてみました。
24KHzが映ったので設定手順を確認しようと一旦リセットしたら全く映る気配がなくなり、
仕方なくセーブスロットからリストアして戻す羽目になりました。
この設定はどうやったんだろう。
aochanさん
試してみましたが、どうもその方法でダウンロードすると正常に取得できないようです。
改行コードが違う(CRが抜けている)ファイルが含まれていました。
gitコマンドで取得することをおすすめします。
山川機長さん
ディスクイメージに直接書き込まなくても良くなるのですね。
2022-02-06 20:43:20
VS Code で編集して git で管理しつつ津軽で make & 実行できるようになると捗りますねえ。
ところで、部品取り用に買った MA や HR の仲間の横置きプラ筐体モデルを掃除していて気づいたのですが、
天板に(おそらくたわみ防止の)鋼材を固定している皿ネジが脱落、ないしゆるんでいるケースが複数みられました。
該当モデルをお持ちの方はノッチ固定ネジとあわせてお気を付けください。メインボード上から発見されたケースもありましたので。
2022-02-07 00:48:02
>346 D-Typeさん
OSSC、24KHzで表示できたのですね、私のモニターでは2Xモードにすると表示できませんでした。
OSD表示でー水平同期の項目が赤く表示されているので、サポート外のようです。(パススルーまたは直接接続だとサポート外だけど表示はされるのですが)
↓にPC-9801での設定例が有りますが、参考になるでしょうか?
https://junkerhq.net/xrgb/index.php?title=Optimal_timings
私ももう少し真面目に詰めてみようかとは思っていますが、ケチってリモコンを買わなかったので昔買ったマランツの学習リモコンで操作をしているのですが、これがまたやりにくいのなんのって・・・私の詰めが甘かったのですが。(大汗)
CD-ROMドライブがお亡くなりになっているケースが相当数有るのは確かで、かくゆう私のMXも相当やばい状態なので今更ながらCD-ROMドライブの解析準備をしています。
引き出しケーブルが未だ無いのでドライ部側のピン配置を見ていたのですが、40ピンのうち19ピンがGNDで残り21ピンのうち2ピンがVCCで有ることと、9ピンがプルアップされてICに接続されている事が判りましたが、この9ピンがデータとアドレスではないかと考えています。
今週以降に波形を見てみようと考えていますが、ピン数からシリアルではなくパラレル接続のような気がしています。
(外すことや複数台のドライブを接続することを考慮する必要のない物なのにプルアップされている理由がいま一つ理解できませんが・・・・・)
TOWNS専用のCD-ROMエミュレータが作れればと甘い考えを抱いております。
2022-02-07 09:21:42
>348 WINDYさん
情報ありがとうございます。
折角なので目玉Townsなら3種類の周波数どれも同じだろうとCXと入れ替えたのですが、なんとOSSCの設定をリセットしても24KHzが映ってしまいました。
しかし、画面が変にはみ出たりしていたので、頂いたURLを参照してPC9801の設定を参考に少しずらしてみると綺麗に表示されるようになりました。
Townsの中でも古いもの(model2)は何か違うのですかね。モニターは複合同期とか差があったのは覚えていますが。
リモコンのほうですが、自分が買ったOSSC付属のリモコンはボタンがブヨブヨしていてお世辞にも使い易いとは言えないです。
むしろ国内品の学習リモコンを検討したくなるくらいです。押し方が悪いとボタンが戻らず、使うにもコツが必要です。
Towns搭載可能なCDイメージを扱うCD-ROMエミュレータは、一度オークションで搭載済みTownsを見掛けて驚いた記憶があります。
記憶が確かならメニューでディスクイメージを選択してブートするものでした。
ハードルは高そうですが何か作れる人にはぜひ開発して欲しいですね。
USBを搭載したワンボードマイコンが普及し始めて久しいですし、あの辺を使ってUSB用の普通のCDが使えたら面白いですね(^^;
勿論、救済IPLのSCSICDブートは偉大な発明だと思っています。アフターバーナーIIで遊べますし。
2022-02-07 23:08:13
>346 D-Type さん
動作しました!ありがとうございます。
Gitの導入に手間取ってしまい、まずはバイナリエディタでLFをCRLFに一括変換して動作確認できました。
GitではGitBashから
$git clone https://github.com/captainys/FLYBY2.git
でファイル群をダウンロードしたのですが、fmtownsフォルダ内のファイルをバイナリエディタで見た感じではLFでした。
導入したばかりなのでもう少し調べてみます。
2022-02-07 23:13:16
WINDYさん、
なんと、データピン9本なんですね!パラレルであることは間違いないはずです。でも、パラレルって、データのフラッシュに1本、転送方向にもう1本ピンが必要なものだと思ってました。まさか4ビット単位で送ってるなんてことはさすがにないですよね。
D-Typeさん、
TownsのCD-ROMエミュレータは、Marty用Doc Brownを作った人が縦置きTowns用のものを最近出したらしいです。ですが、仕様がわからないので、その人が公開をやめたら再生産が不可能なんですよね。僕も、ロジックアナライザを展開するスペースさえあれば調べたいのですが。それから、横置き機用のはまだ無いと思います。保存という観点ではちょっと足りない感じです。
pinさん、
ファイル共有は、開発用に使うレベルには割とすぐ到達しそうな感じです。ひとつひっかかってるのが、DOSにはfind_firstとfind_nextはあっても、find_closeが無くて、find structがいらなくなったらそのまま放棄すれば良かったのですが、ホストはWin32もUnixもfind structをクローズしないとリークになってしまうのですが、VM側からクローズのリクエストは上がってこないのでどうしようもない、という問題が起きてます。最後までfind_nextしてくれればいいのですが、ダイアログに表示する分だけ取って止めるみたいな感じの場合困りますね。それから、カナと漢字は扱うのはあきらめてて、あと、どうしてもドライブ割り当てですね。V2.1 L31でどうしてもドライブアイコンが出てくれないので、ダミードライブを作ってもらってTGDRV.COMでそれをハイジャックするような方法も検討してますが。
aochanさん、
おおなるほど!GithubからZipでダウンロードするとCRLFはUnixスタイルになるんですね。そしてHigh-CのfgetsはLFだけだとだめだったのか。最近どっちも割と対応してくれるので気にしてなかったのですが。
2022-02-08 01:52:14
>349 D-Typeさん
CRTCへの設定値が同じなので基本的に同じだと思うのですが、CXとmodel2では微妙に周波数が違うのかもしれません。
リモコンはどちらも似たような物なのですね、少し安心しました。 リモコンに関してはNEC系のコードを使用するようですのでNEC系のコードが出せる他機能リモコンであればOSSCの電源を入れる際にボタン(どっちだったか忘れました)を押しながら立ち上げて、OSSC側のリモコン設定を変えることにより利用できます。
お手元にNEC系のコードが出せるTVのリモコン等が有れば試してみるのも良いかと思います。
CD-ROMドライブエミュレータで使用する予定のワンボードマイコンは、手持ちのがTEENSY3.6とTEENSY4.1しか有りませんので最初はこれを使うつもりですが、高速性が必要なければSTM32(BluePill)でも良いかもしれませんね。
>351 山川機長さん
今回配線を追ったのはCD-ROMドライブ内の基盤で、コネクタ~IC101(SHARP製 LZ95B32)間です。
この素子については手がかりも無くピンの入出力等も判りません。 また、TOWNS本体側サブCPUのH8については基本的にGPIOは入力でも出力でも可能で、プログラム次第で有る事からこちらも極性が不明です。
少なくともMX搭載のドライブにおいてはコネクタの9本のピンが150オーム(だったけ?)でプルアップされており、残りは直接IC101に行っている物と、抵抗を挟んでIC101に行っている物が数本と、GND及び電源だと判断しました。(電源電圧については、ドライ部側基盤でレギュレータを搭載しており、供給電源は5Vではないと思います)
9本と言う半端な数に戸惑っていますが、ある程度後期に作られたCD-ROMモジュールはI2Cで制御を行い,I2SでAUDIO信号を出しているケースも多い事から、これらのようなシリアル通信を行っている可能性も有ります。 ただし、I2Cの規格化はTOWNSの初代が発売された年よりも後ですので少なくともタワー型タイプでI2Cを使用しているケースは無いのではないかと推測しています。(因みにI2Cは2本,I2Sは4または3本の信号線となります)
何れにせよただピン配置を確認したのみの状態ですので、どの様な使われ方をしているのかは波形を観測した後に判明すると思います。
得られる情報や技術に関しては私のポリシーにより、全て無償で公開するつもりでいます。
2022-02-08 10:04:49
>350 aochanさん
起動できたようでなによりです。
自分はGit for windowsを入れてWindows Terminalでcloneしていますが、
先程GitBashでやってみたところ、やはり改行はCRLFでした。
少々解せないところではありますが、まずは解決ということで。
2022-02-08 19:50:16
>351 山川機長さん
見つけました。The Grey Tower Wizard (https://bit.ly/3Lcjbm9)ですね。
クローズドで再生産できないとなると確かに足りない感じですね。
>352 WINDYさん
そうなんですね。これはいいことを知りました。
今のリモコンはHDMIセレクタと干渉するのでNEC系のリモコンも検討してみたいと思います。
CD-ROMエミュレータ、できるといいですね!
2022-02-08 20:46:02
ファイル共有機能、一応、安定してきたので、TGDRV.COMもPUSHしてみました。まだGUIは対応してないのですが、オプションで、
-SHAREDDRV フルパスディレクトリ名
オプションを追加して、津軽上で TGDRV.COM を実行すると、共有ディレクトリがドライブとして見えるようになります。Towns OS V1.1ではTowns MENUに出ません。V2.1ではL20、L31はICメモリカードとして、L51では謎ドライブとして表示されます。これ、Towns OSのバージョンをリアルモードから取得する方法があれば、L51ではネットワークドライブとして表示させられるのですが、INT AFH AH=05HだとBIOSバージョンは全部同じと出るんですね。DOS6でも大丈夫っぽいです。互換ROMでも大丈夫になったと思います。なお、共有ドライブは最大8個まで指定できます。
ユニットテスト追加してないのですが、手動で走らせたところ互換ROM用に作ったファイルの読み書きなどのテストは通過したので、多分大体大丈夫と思うのですが。これによりVM・ホスト間のファイル転送がめちゃくちゃ楽になりますので、よかったらお試しください。
ソースを共有して津軽上でMAKEして実行、あるいはDOSBOXと同じディレクトリを共有して、DOSBOXでBuildして実行、みたいな使い方ができます。
制限としては、ファイルのオープン状態、ファイルのリスティング途中の状態はステートセーブされないので、ファイル開きっぱなしとかファイルリスティングの途中とかでステートセーブすると復活しないと思います。リスティングの方はセーブしないと思いますが、ファイルのオープン状態はセーブできるようにしようと思ってますが、時間の都合で先延ばししてます。あと、くれぐれも、共有ディレクトリのファイルはバックアップを取ったうえで使ってください。
2022-02-12 10:49:26
Tsugaru_CUI.exe に -SHAREDDIR pathを追加して
TGDRV.com -SHAREDDRV path をVMで実行
という感じでやってみたら共有できました。
共有フォルダをWin側で開きつつTowns側から操作するとちょっと面白いですね。
2022-02-15 00:09:20
一念発起してMarty対応してしまいました。津軽CUIだと-TOWNSTYPE MARTY (手抜きしててMARTYは大文字でないと認識しない)として、MartyのROMを使って、CDも何も入れずに開始するとMartyのメニュー見れます。GUIもこのために機種選択を追加しました。どこかのエミュレータレビューサイトで、津軽はMarty対応してないからいくない、とか書いてあるところがあったんですが、とりあえずこれでMarty未対応とはもう言わせない。
ついさっきMartyモードでもTowns OSが起動することだけ確認したのですが、富士通はMartyにはなんらかのチェックを入れてMarty対応のソフト以外は敢えて走らないようにしていた、という記述を複数個所で見かけたことがあるのですが、本当ですかね?これからいろいろ試してみようと思います。
2022-02-19 11:20:21
あ、対応したと思ったら、MartyモードだとDOS ExtenderがなぜかTBIOS破壊して先に進まないや。このDOS ExtenderはメインRAMの後半を消去するようにできてるんですね。実に興味深い。がんばって原因究明します。
2022-02-19 14:08:29
ソース直してPUSHしました。津軽、Martyも対応しました。Martyの起動画面をもう一度見たい方はご利用ください。
2022-02-20 03:39:53
gitの改行コードの話ですが、core.autocrlfの設定の違いではないでしょうか?
git config core.autocrlf で確認できます。
実際に試してみたところ下記のようになりました。(command.mdで確認)
zip -> LF
clone (core.autocrlf=true) -> CRLF
clone (core.autocrlf=false) -> LF
2022-02-20 14:05:45
> 357 山川機長 さん
> Marty対応のソフト以外は敢えて走らないようにしていた、という記述を複数個所で見かけたことがあるのですが、本当ですかね?
Marty発売時期付近やそれ以降に発売されたエルフのゲームパッケージには、同級生以外全てにMarty不可の印刷がありまして、
同級生、シャングリラ2、ワーズワースではCD読み込み直後にリセットされたようになります。
Marty不可のパッケージでも同級生2、ドラゴンナイト4は起動できました。
386、2MB、CDの環境で動作するソフトのうち、Martyで動作しないソフトが殆ど無くて、これが「Marty対応のソフト以外は敢えて走らないようにしていた」に該当するのか興味あります。
> 360 fuzzball さん
ありがとうございます。
gitインストール時にConfiguring the line ending conversionsでCheckout as-is,commit as-is(変換をしない)設定にしていたようで、
git config core.autocrlf ではfalseの状態でした。
git config --global core.autocrlf true
を実行して、デモプログラムをCRLFでダウンロードできました。
2022-02-20 20:27:04
Marty対応、ご苦労さまです。
2月20日って、Martyの誕生日だったのですね。 この次期の対応・・・・ 素晴らしい!!!
https://japanese.engadget.com/today20-203029540.html
生憎私はMarty保有者ではありませんが、秘蔵っ子のCarMartyは持っています。
オークションで落としたッきり電源さえも入れていないので、生きているかどうか不明なんですが。(汗)
そもそもナビ研の地図CDが付いてないのと、GPSアンテナを含むケーブル類も無いのでこのコネクタの解析から始めないといけないので腰が重いんですよね。おまけにコネクタが見た事ない形状だし。 車載品なので特殊なのかな?と思っています。
2022-02-21 09:00:10
Marty対応お疲れ様です。
YouTubeで見てきましたが、当時のゲーム機のように内部ニューを持っていてTowns MenuがなくてもFDの管理などができるんですね。
当時は本当にゲーム機にしたかったんでしょうね。
今まで年齢制限があるソフトは全部Martyじゃ動かないんだと思ってました(^^;
TVに繋いだらどんな画質だったのか見てみたかったけど、今は入手難で取引額が高騰してますね。
2022-02-21 22:17:47
おおなんと、2/20はMartyの日だったとは。当時の記憶では、Marty高すぎない?と、思った記憶がありましたが、海外でMartyが謎の人気なんですよね。津軽をMartyに対応させてほしいという声は結構あって、起動画面が見たいのだろうか?と疑問に思ってたのですが。一応、これもTOWNSの歴史の一部と言えるので、対応した方が良かろうとは前から思っていたし、これでもう津軽はMarty対応してないからいくないとは言わせない(根に持ってる)。
2022-02-22 02:38:40
実機なら送料の問題でMartyを選ぶのも仕方ないと思うんですが、普通にTOWNSソフト動かすならメモリ・HDD対応から通常のTOWNSの方がいいはずですよね。
Martyに関連して、DOOMは移植したものの486 CPU必須でタワーTOWNS/Martyでは動かせないんで今度はWolfenstein 3Dでも移植できないかと検討中です。
オリジナルのソースコードは80286の16ビット用コードでセグメント切り替え多数・アセンブラ部が10%くらいあってちょっと面倒だなって思ってたんですが、IBM PC用のDOSエクステンダに移植しているコードがあったんでこれを元にしようかと。
当時のoh!FM誌を何冊か手に入れて直接VRAM操作もできるようになったんですが、MartyってTOWNSと同じセグメント指定でVRAMいじれますかね?
2022-02-22 14:51:08
Wolfenstein 3Dいいですね!Martyというか386SX機はDOS ExtenderがPagingでリニアの80000000h~を適切な位置にマップするようなので同じセグメントでVRAMいじれるはずです!
2022-02-23 01:23:31
明後日、Winterhack IVというイベントでプレゼンテーションを頼まれたので、一応宣伝しておきます。一般的な話をしてもつまらないので、「大航海時代」の解析について話そうと思ってます。オンラインでも見れるらしいです。ただ、ピッツバーグの土曜日の午後3時は日本だと日曜の午前5時でちょっと早いですね。
http://winterhack.flightdoor.com/
2022-02-25 01:02:32
うんづ板ではあのねさんが書き込んでますが…
FM TOWNSくん、33歳のお誕生日おめでとう!!
…ここにはえらく久々に書き込んだなw
2022-02-28 03:47:31
りうさん、
おお!そうですね!0x21歳ですね!(16進表記だと)まだまだ若い(ように見えますね)!
2022-02-28 11:20:24
最近、妙に津軽のビルドにかかる時間が長い、と、思ったら、なぜかCMakeで作ったプロジェクトは必ず実行ファイルを毎回再リンクするようになってしまったんですが、誰か直し方知ってます?状況は、http://ysflight.com/main/j2022.html に書いたのですが、カスタマーサポートが困る「何もしてないのに壊れた」になってしまいました。当面GeneratorをNMake Makefilesに変更して対応しようと思うのですが、それだと--parallelでビルドできなくなってしまって。
それから、Towns実機起動用IC Memory Cardプロジェクトの状況を ysflight.com/FM/towns/icm/j.html ここに書いてます。この掲示板に書いた内容よりもとくに新しいことは無いですが、進むたびに更新しようと思ってます。
2022-03-31 10:22:51
試さず憶測で書いておりますが、CMakeが32ビットのもので見えているSYSTEM32が違うとかでしょうか
2022-03-31 14:12:42
CMakeのバージョンの可能性も考えてx64の最新バージョンも試してみたんですが、だめでしたね。さらにCMUのもう一台のPCでも試したのですが、同じ問題が発生して、いつからこうなってたんだろう?と謎になってます。しかし、なんかビルドに異常に時間がかかると感じ始めたのは先週あたりだったんですよね。勝手にアップデートが当たってしまったのか?そうであれば「msbuildが必ず再リンクする」とか「msbuild always relink」みたいなキーワードで探せば他にも困ってる人がいそうな気がしますが。
2022-03-31 23:27:20
あ、これ、前から発生してたの鴨。妙に時間がかかり始めたのは別の原因な気がしてきた。
2022-04-01 00:24:03
解決しました!さすがpinさん!cmakeの問題ではなく、msbuild.exeが(多分)32-bitだったからのようです。
その後あの手この手で調べたところ、僕はアメリカに住んでるもんで英語版WindowsのSystem Localeを日本語にして使っているのですが、すると、link.exeがどういうわけかC_1252.NLSを読み込んでしまうようです。msbuild.exeがどうやってファイルの依存をチェックしてるかと思ったら、Tracker.exeというプログラムを経由してLink.exe実行時に読み書きしたファイルをすべて記録しているようです。Link.exeも32-bitバイナリだと思うので、果たしてC_1252.NLSを読めているのか不明ですが、多分少なくともOpenしようとしているため、必要なファイルと判断しているようです。
ところが、次回ビルド時の依存関係のチェックで、msbuild.exeは32-bitバイナリなので、SYSWOW64の中にC_1252.NLSを探しに行きますが見つからないので、リンクが必要と判断するようです。
簡単に、Admin Consoleに入ってSYSTEM32のC_1252.NLSをSYSWOW64にコピーするだけで解決して、津軽その他快適にビルドできるようになりました。
うちのPCで妙にビルドが遅くなったのは、多分DOSBOXのHeavy Debug版をビルドするためにvcpkgを入れたからではないか、と見てますが、この解決策で気にならなくなくなったので放っておこうと思います。DOSBOXのHeavy Debug版で、DOS用Windows 3.1と津軽上のWindows 3.1の動作の違いを見てますが、いろいろわかってきました。根気が続けばなんとかなる鴨しれません。
これLanguage Locale変えて使ってるプログラマー全員あてはまりそうな問題だな。あとでysflight.comに書いておくと、googleがそのうち勝手に見つけてくれるだろう。
2022-04-01 04:07:16
こんなイベント↓あるんですね。
https://retroexp.com/
誰か行きます?うーん、行きたい。けど距離的に行けない。残念。
2022-04-20 11:29:55
>375 山川機長さん
レトロエクスプレスですが会場にいると思います…サポートスタッフとして(滅
2022-04-20 11:50:28
おおそうですか!サポートスタッフだと忙しそうですね!楽しんできてください!
アメリカでもレトロコンピュータイベントってやってるらしいんですよね。いつかTownsと77AVを持って参戦したいと思ってます。
2022-04-22 11:12:43
この間割と安くRainbow Island Extraが手に入ったので、イメージ化しよう、と思ったら、セクタ0にエラーが起きて、イメージ化できませんでした。Alcohol 52%だと全部ゼロで埋まってしまうんですね。ところが、まだSLOWモードにすると起動可能な我がMXで起動したところ、普通に起動しました。試しにCD-ROM BIOSを使って最初のセクタを読んでみたら何のエラーも無く読めてしまいました。
TOWNSでは読めるけれど、他の環境では読めないということは、コピープロテクトなのではないか?TOWNSが出た直後はCD-Rなんていうものは存在せず、CDがコピーできるなんていうことはありえないと思っていたものでしたが、途中でCD-Rが出てきてCDがコピーされるということも可能になってきたので、実はそれを見越してのことではないか?だとすると、TOWNSのソフトの中で、CDのコピー自体を拒否するコピープロテクトはこれが初確認なのではないか?と、思ったのですが、誰かRainbow Island Extraの原本持ってる人います?もしも持ってたらWindowsなりMacなりのイメージ作成ツールでセクタ0が読めるか試してみていただけると検証できるのですが。
数あるセクタの中で偶然セクタ0だけエラーが出る上に、TOWNS実機なら普通に読めるというのは偶然にしては出来すぎだと思うんですよね。
なお、MXで読み込んだセクタ0は比較はしてないですが、普通のIPLのようでした。
2022-05-08 05:13:52
これはうんづですと代替IPLを使用する必要があるソフトで、うんづで実CDをWindowsPCにセットする場合もこの設定が必要でした。
色々なソフトでイメージ化を試しても上手くいかず、バイナリエディタでイメージ修正も試したことがありますが、何も解決も出来なかった苦い思い出があります。
TOWNSのBIOS経由だと読めるのですね。
一体どんな構造をしているのだろう。
レインボーアイランドエクストラ以外にエンジェル、EVOLUTIONが同様だったと思います。
2022-05-08 11:48:59
レインボーアイランドエクストラは持ってませんがスプラッターハウスやプリルラといったRIE以降に発売されたVINGタイトルは問題なく吸い出せたり、同じようにセクター0で止まる現象はザ・マンホール・ぷよぷよ・フリコレ1で発生したことがあります。止まるタイトルのディスクデータ面に傷や汚れがついているわけではなく、吸い出すドライブを変えると正常に吸出しが完了しました。
2022-05-08 12:47:50
おおなるほど!だとするとほぼ確定ですね!うんず+物理ドライブで使う場合だと、CRCエラーが出る影響で、IPLセクタが読めなかったものと思います。だとすると、少なくともセクタ0のエラーは僕が持ってるディスク固有のものではないんですね。偶然できたエラーにしては出来すぎなので、多分意図的なコピープロテクトですね。
ただ、Evolutionはうちのドライブだと普通にイメージ化できましたね。
ありがとうございます!
2022-05-08 13:05:45
マスタリングソフトのバグを踏み抜いてしまったが、TOWNSのドライブのEDC/ECCチェックもいい加減だったために気付かれず世に出てしまった…なんてことはないですかねえ
2022-05-09 03:05:37
代替IPLを使用しない設定にしたうんづで、Evolution、エンジェル、ぷよぷよ、ザ・マンホールを試した所、どれも起動しました。
私の勘違いだったのか、それともOSやドライブが変わって読めるようになったのか・・・。
レインボーアイランドが見つからなくてテスト出来ませんでしたが、このソフトも当時は代替IPLが必要で、私のメモ書きにもそう書き残されていました。
2022-05-09 08:02:53
レインボーアイランドエクストラを、代替IPLを使用しない設定にしたうんづで試した所こちらも起動しました。
実機+救済IPL+外付CDドライブで試した所、レインボーアイランドエクストラ、Evolution、エンジェル、ぷよぷよ全て起動しました。
起動してくれて嬉しいのですけども、あの当時苦労した記憶とのギャップに困惑しております。
イメージ化をした場合のみIPLが消えるのかな。
2022-05-09 20:53:10
SHSUCDXをTownsOSで使用されている方いらっしゃいますか?
TownsOS V2.1L20とL31で作成した起動FDにSHSUCDXを組み込んでみたのですが、Must be DOS 3.3 or later.と表示されて使用できませんでした。
AUTOEXEC.BATに記述した内容は SHSUCDX.COM /D:TOWNS_CD,Q です。
互換ROMに入っているSHSUCDXを取り出して置き換えても同じ結果でした。
過去の投稿を検索していた所、SHSUCDXの時間取得に関する部分を互換ROM側で調整したように思える報告がありましたので、エラーメッセージのとおりDOS5、6.2専用でしょうか。
2022-09-03 10:06:21
SHSUCDXは DOS 3.3 以降専用ですね。しかし、TOWNS用プログラムの中には3.1であることを前提にしているプログラムがあります。そこで、YSDOS.SYSは、SHSUCDX起動時のみ自身は3.3であるふりをして、それ以外では3.1であるふりをしています。実機で使うためにはSHSUCDXのソースを書き替えてビルドするか、バイナリにパッチを当てる必要があると思います。
2022-09-04 10:55:49
ありがとうございます。DOS3のマイナーバージョンをチェックしないようにしたところ、DIRとTYPEコマンドのみの確認ですがTownsOS V2.1L31で使用できました。
25KB程メモリが空いたようです。
2022-09-04 14:50:39
初めまして。突然、済みません。私は「本堂」と申します。
約40行の長文になりました。本当に本当に済みません。
以前から津軽が気になっていまして、実は(雑談)掲示板を拝見して居り、
書き込まれている方の幾人様かのハンドルネームは、Oh! FM TOWNS誌、パソ
コン通信のNIFTY-Serve、フリーソフト等にて頻繁に拝見して居り、加えて当
時はFM TOWNS最盛期な上に私の青春の頃(笑)だった事も有りまして、今も記
憶に残っております。
ちなみに私はMAが最後の実機で、約4年前あたりから「うんづ」と併用して
いましたが、実機の動作が怪しくなり始めた事も有り遠方へ引っ越す親友に
(大切に使ってくれそうなので)実機をプレゼントして実機と別れました。
ただソフトは売るつもりが全く無いので今も大切に私は持っており、特に
大切な物は保険を掛ける感じでCD-ROMはディスクイメージ化もし、マニュア
ルもいわゆる自炊という状態です。
-----
実はOSがWindows XP環境から変わって以来、うんづでは例えば「ふしぎの
海のナディアのCD-DAが異常になる」等で津軽も利用してみたいと思って居る
のですが、情け無い事に(津軽は基本的にCUIなので)私は詳細なReadmeが無い
と駄目なので困っています。また詳細なReadmeが有れば、誰でも思い付きま
すが「使うソフトごとに起動バッチファイルを作れば済む」と考えてます。
ただ我が儘だとは分かって居るのですが、雑談の掲示板とは言え、書き込
まれている内容を拝見していますと、私から見ていてまるで(よい意味での)
ハッカーの様な内容なので、私が何かしらを書き込むには敷居もハードルも
高そうなので困っています。
例えば「津軽はMIDIに対応していますか?」と伺ってみたいのですが、逆
に作者様から私へ環境などを詳細に問い合わせて下さった際に上手く応じら
れそうに無いですし……。
私が貢献できるのは、当時、余り売れなかったゲームソフトの動作の報告
くらいという情け無さです。それだけでもよければ今後、貢献させて頂きま
す。あと蛇足ですが、特に調べたいソフトがリスト化などされているとよい
かも? とも思いました。
※癖で約70文字で強制的に改行しています。読みづらい場合は教えて下さい。
..
2022-10-19 16:03:50
本堂さん
津軽でもGUIでの操作や設定等に対応していますよ。Tsugaru_CUI.exeのほうではなくtsugaru_GUI.exeのほうで起動するだけです。
https://bcc.hatenablog.com/entry/2021/08/11/191950#TOWNS%E3%82%A8%E3%83%9F%E3%83%A5%E3%83%AC%E3%83%BC%E3%82%BF%E6%B4%A5%E8%BB%BD%E3%81%AE%E8%A8%AD%E5%AE%9A%E4%BD%BF%E3%81%84%E6%96%B9%E3%82%AC%E3%82%A4%E3%83%89
1年以上前に書いた自分のblogで、旧バージョンによるスクリーンショットなので表記が現在と変わっている箇所はありますが参考になるかと思います。
MIDI対応に関してはまだ津軽は対応していないと思います。
2022-10-19 21:46:12
> 本堂さん
いやあ、MIDIの需要結構あるみたいなんですが、自分が実機をメインとして使ってた頃もMIDI持ってなかったし、MIDIの知識がゼロなんですよ。せめてYM2612/2203コアでなんらかの音が出るとこまででもできればいいのですが。
津軽のGUIは、申し訳程度についてる感じですが、一応デバッガ以外の機能は大体使えるようになってますので、お試しください。
ゲームの動作報告は、是非Wikiの方にお願いします!
2022-10-20 00:54:35
>本堂さん
実のところ私はソフトウェアにしてもハードウェアにしても中途半端で本格的に何かをするには足りない状況です。
しかしながら自分の出来る範囲内で何かをする事は少なからず誰かの役に立つかも知れないと考えています。
なので本堂さんも自分の出来ることを出来る範囲で行い、疑問に思ったことは率直に発言する事から始めてみては如何でしょう?
新規のスレッド作成についても制限を設けていませんので、適当なスレッドが無ければスレッドを作成していただいても構いません。
>山川機長さん
将来的にMIDI音源カードに関して取り組みが必要な場合、お声掛け頂ければMIDI音源ボードを提供することが出来ます。
MIDI機器を持ってないし、音楽の知識も無いのに当時ジェノサイドの音が聞きたくて購入して所持しております。
2022-10-27 10:41:24
こんばんは。
技術力が皆無の私に対し、皆様から優しい言葉を頂けてほっとしました。
実は「当然だ!」とか「何を今更!」と突っ込まれそうですが、真剣に遊ん
でいるゲームは安定している「うんづ」を使い、津軽上での動作の状況などを
試す目的で実験的に遊ぶゲーム等については「津軽専用HDDイメージ」を作る
など、2つのエミュレータ環境を併用する事にしました。
これから様々なソフトの動作の確認をぼちぼちと行ってみます。
↓蛇足です。
C:\Program Files\津軽\Tsugaru_GUI.exe
の様に津軽をHDDに入れて使ったり、読み込むソフトのCD-ROMディスクイメー
ジを
D:\game\ゲーム.iso
と言う様にする等、フォルダやファイルに何かしら「全角文字を絡めた状態」
では、津軽が正常に動作しない事も、今更ながら知りました……。
恥ずかしいです(笑)。
..
2022-10-27 21:10:18
>本堂さん
フォルダの漢字を含む全角文字に関しては何かとトラブルの原因となるので極力使用しない方が良いですね。
そういう意味ではユーザー名も同様で、漢字にしていると一部のソフトではトラブルの原因となりますので注意が必要です。
うんづと津軽の共用に関しては、ハードディスクイメージとして津軽はうんづ形式(.H0~.H4)をサポートしますのでうんづで作成したHDDイメージを津軽で使用出来ます。
ソフトの実験なんかでHDDイメージをクラッシュさせる可能性が無く、アプリケーションの動作確認のためであればうんづと津軽を同じHDDイメージを使用するように設定すれば良いかもしれません。
ただし、うんづと津軽を同時に起動して比較するような場合はHDDイメージファイルを分けておく必要が有りますので注意してください。
2022-10-28 09:14:23
> 本堂さん、
一応、漢字入りのファイル名は、システムのエンコーディングをShift JISからUTF-8に変更すると読めるようにはなっているのですが、そうすると日本語のフリーソフトとか文字化けして使えなくなるものが続出するので、しばらく移行は難しいかもしれないですね。しかし、Shift JISが残ってるのはWindowsだけになりつつある(と、思ってるのはアメリカに住んでるからなのか?)ので、いずれはWindowsもUTF-8が標準になるのではないかと思うんですがね。
2022-10-29 01:27:51
アメリカ東部時間の明日夕方と明後日午後、日本時間土曜日午前と日曜日午前、カーネギー・メロン大学でDemosplash 2022が開催されます。コンピュータ・アートとヒストリーの祭典で、僕もFM TOWNS 2F, HR, MX, FM-7, FM77AV, FM77AV40を展示します。ここ2年COVIDの影響で縮小開催だったので、3年ぶりの全力展開となります。
詳しくは、https://demosplash.org をご参照ください。
オンラインでの視聴も可能なので、是非ご視聴ください。僕は、東部時間土曜日午後7時半、日本時間日曜日午前9時半から、ゲーム保存協会と共同研究しているFM-7、FM TOWNSシリーズのコピープロテクトの研究の成果を発表します。
その前に、FM-7シリーズの歴代デモを流して時間をつぶす、という任務も入ったのですが、その準備をしていたら、なんと!FM-7のデモプログラムをFM77AV以降で流すとBGMが鳴らない!という驚愕の事実を発見したんですが、これって既知でしたかね?FM-7界では有名なApolloさんと原因の究明を試みたのですが、陸奥で追ったところ、Reg 7に FF -> FE -> F8 と値を書きこんでいるはずなのに、なぜかReg 7を読んだらBFが帰ってきたので、F-BASICコードのいろんなところに SOUND 7,&HB8 を追加したところ鳴るようになりました。
FM Techknowによると、FM77AVではPSG Reg 7の上位2ビットは必ず 1 0 である必要があるとのことだったので、内部的にフィルターをかけているんでしょうかね。そして、FM-7デモプログラムはその微妙な非互換を踏んでしまっていたんでしょうね。こんなところにFM77AVとFM-7の非互換があったとは。という発見がありました。
2022-11-18 00:09:56
え? あぁ、もう終わってるのか・・・ 見れませんでしたが、如何だったでしょうか?
FM-7/77/AVの非互換部分については、知りませんでした。AVで7のデモを走らせるという発想が今まで有りませんでしたので気づいていませんでしたが、今更ながら原因が気になったので軽く調べてみたらAY-3-8913(PSG)は、元々のAY-3-8910のIOポートなし版で,そのIOポートの入力イネーブルコントロールがReg#7の上位2ビットだったようですね。
AY-3-8913では機能として存在しないので特に値としてはなんでも良かったようで、当時のドキュメントからもReg#7の上位2ビットに関してはなんの説明も有りませんが、YM2203をではIOポートにパッドコネクタが接続されており、Reg#7の上位2ビットは'10'である必要が生じています。
読みきれないのですが、AVの回路図ではFM音源のデータバス(YDATABUS)からREG07信号を生成してFMDB6信号やFMDB7信号を生成している事から怪しいですね。
2022-11-21 09:49:51
今年はDemosplashはかつてないぐらい盛況で大成功でした。現在燃え尽きて真っ白な灰になってます。当時の模様はScenesatの録画がもうすぐアップされると思うので、興味がありましたらご視聴ください。
FM77AVの非互換の件ですが、PSGのreg7にFD0D,FD0Eから値を書き込んだ場合、問答無用で上位2ビットが 10 に固定されるようです。例えば実機AVでFFを書き込んで、読み戻すとBFが帰ってきました。それを陸奥で再現してみたのですが、それでもまだ陸奥上では音が鳴ってしまうので、まだ何か違うようです。IRQがかかってしまっていてF-BASICがPLAY文と勘違いしている説、F-BASICインタプリタが値を書き換えてしまっている説などいろいろ考えたのですが、どれも正しくなさそうで、やはりなんらかの理由でReg7への書き込みが無視されているようです。結構新しい発見だったので、どういう条件でReg 7への書き込みに失敗するのか調べてみたいところなんですがね。
2022-11-22 03:18:28
回路図から辿る限りでは、REG#7のデコードはYDATABUS0~7(YM2203のデータライン,元はメインデータバス)を用いて生成されています。
そのREG07信号をデータとしてD-FFに入力,CKは*YMWR信号(出元はゲートアレーMB113T613),Q出力をMDB7(MainDataBus#7)とORされて、FMDB7信号としてD-FF(LS374)の入力として入ります。
Q出力の反転出力(Qbar)をMDB6(MainDataBus#6)とANDして、FMDB6信号としてD-FF(LS374)の入力として入ります。
両方のD-FFのCK(取込タイミング)は*WSGDATA(SSGポートへの書込タイミング?),OC(出力タイミング)は*YMWR(FM音源ポートへの書込タイミング?)です。
回路としては、REG#7への書込が発生した場合にYM2203に与えるデータの7,6を10に固定しているようです。
ただし、重要なタイミング生成をゲートアレーで行っていますので詳細なタイミングは判りませんけど。
2022-11-22 09:51:15
そうなんですよね。タイミングがMB113T613のゲートアレイということはカスタムチップだと思うんですが、これが正しいタイミングで書いているかというのがポイントですが、ひっかかってるのがFM音源に書き込むには本来Ready待ちをしなくてはならないのがPSGのI/Oで書き込むときは待ってないというポイントなんですね。なんらかの順にPSGレジスタに書き込んでしまうとYM2203Cが一瞬Busyになってしまってそのタイミングで書いてしまっているのではないか、と疑ってるんですがね。しかし、これ以外FM77AVでFM-7のソフトが動かないという話は聞いたことがないのでものすごく珍しい条件を踏んでしまってるのは間違いないはずなんですが。
2022-11-23 08:21:01
AVの回路図だとYM2203へのアドレス/データはLS374で制御していますが、これのCKには*WSGDATA信号が入っていますよね。
この*WSGDATA信号はゲートアレーから出力されているのですが、普通に考えると互換性のためにPSGのI/Oアクセスの際にも,FM音源のI/Oアクセスの際にもアサートされると思うんです。
(そうしないと、AVシリーズにはAY-3-8913が搭載されていないので従来のソフトを走らせた場合にPSGの音が鳴らない)
仰るようにそもそもFM音源を意識したコードが書かれている訳が無いFM-7のデモプログラムで、容赦なしにPSGのI/Oへ書込を行った場合にYM側がついてこれないのかも知れませんが、そんなコードは恐らく数多く有りそうなのに、現象が発生するケースは他で報告されていない事を考えると無さそうとしか思えないですよね。
因みにFM-7のFM音源カードはどうなっているか気になったので調べたらREG#7のbit7,6に細工してる気配は無さそうですね。
(そんな回路図が有るかな?と思って調べたら山川機長さんのサイトに載ってたと言うブーメラン的な事が発生しました。 貴重な情報を有り難うございます)
2022-11-24 10:03:55
ところで、Oh!FM創刊号からOh!FMTOWNS最終号までの目次をテキストかSpreadsheetに入力してどの記事がいつ載ってたか検索できるようにしよう、というプロジェクトがあって、この間ゲーム保存協会に寄ったときに全号の目次の写真を撮らせてもらってきたのですが、こういうデータってまだ誰もやってないですよね?フリコレに途中まで無かったかと思って調べたんですが、フリコレ8の表紙絵集ぐらいしかないですよね?既にあるのに再度やってもと思ったのですが。
フリコレ8の表紙絵集、津軽で実行したら画面の拡大間違ってますね。。。。そういえばアルシャークの起動時のRIGHT STUFFのロゴも横拡大率間違ってるってissueがgithubに上がってたんだよね。512x480モードで横の倍率が2倍に設定されてると津軽は思っているようだが、実際はこれ拡大しないのが正解なんだな。何で2倍と思ってるんだろうか?
2022-11-26 11:50:56
CR1が3なので、24kHz用のクロックを使っているのですね。
本来512x480の画面モード17ではレジスタセット31、CR1=2なので、各ドットは 25.175/21.0525 = 1.2 倍横にふくらむことになります。
ピクセル数(分解能)は 512x480 のまま、614x480 相当のワイドな表示を行うための設定だと思います。
この設定が、ゲームなどで同様の原理で256x240のスプライトを横に広げて表示領域を太らせるゲーム用の例外処理にヒットしたのではないでしょうか。
2022-11-26 22:35:13
ホントに雑談です。
http://zuiki.co.jp/x68000z/
いやぁ~ 愛ですね。
特段強い思い出が有りませんのでクラウドファンディングに参加するつもりは有りませんが、TOWNSと同世代の機種として,ホビーPCとして,何よりもモトローラのMPUを使っているパソコンとしての思いは有りますので応援しています。
富士通の次期ホビー機が噂される中、"MC68000らしい"とかの噂に惑わされてウキウキしていて、いざ発表されたらi80386でガッカリが半分,(ソフトウェアの面から)期待が半分だった頃が懐かしいです。
なんとかminiって色々出ましたけど、メジャー所で出てないメーカーは富士通位ですね。 何とかならんすか?
MSX3界隈もやや斜め上方向に向かいつつも活発なようでうらやましい限りです。
2022-12-22 10:39:44
ついでにもう一つ。
FM-7/77AV絡みで申し訳ありませんが、先日スタークラフトの九龍島を子供からのリクエストでプレーする流れに・・・・
イメージファイルは遠い過去にPCに5インチFDDを装着して作ったものの、PCの引っ越しやら何やらで消失,今のPCに5インチFDDは繋がらないし、3.5インチ版は持ってないので77AV40EXにFM-7で使っていた外付けドライブユニット内のFDDを直繋ぎして起動。
タイトル画面で"ディスクエラー"との表示・・・・・ 「データが化けた?」と思ったのですが、「残念! また考えとくわ」となり終了。
んで、今「ハッ! AV40EXなので2DD! って事はダブルステップでトラック0以外は期待したデータが読めずにエラーなのか」と急に思いついた。(遅すぎ)
「じゃあダブルステップを回避できれば大丈夫! って事は2DDだと思わせて起動できればOK?」と考えてAVのイニシエータROMの逆アセンブルリストを参照。
思っていた通りイニシエータROM内で起動時に2DになるようにI/Oポートにデータを書いてるので、「ROMBASIC起動後にPOKE命令で2DDモードになる様にデータを書き込んだ後にEXEC-512でリブートすれば大丈夫では?」と考えました。
XM-7で試してみたらリブート後も2DDモードが維持されているし、家に帰ったら実機でやってみようと思います。
ちょっと面倒ですが、うまくいったら2DD機で外付け5インチFDDを無理やり稼働させたい方には朗報かも(そんな奴は恐らく居ない)
2022-12-22 14:03:22
初めまして、どむやまと申します。
皆様のTOWNS関係の書き込み、いつも楽しみに拝見しております。
このたび、あにくん様のTOWNS-gpp(TOWNS-gcc)非公式ページで公開されているTOWNS-gccを利用して
Windows上でTOWNS-OS上で動作する.expファイルを生成するクロスコンパイル環境ができましたので
下記ページにて公開しております。
https://mcdom.blog.fc2.com/blog-entry-4.html
過去にTOWNS上で開発されていた方も、これから開発してみたい方も是非お試しいただければと。
動作検証にあたっては山川機長様の津軽が大活躍しました。
有用なソフトを公開いただき、ありがとうございます。
これからも楽しみにしております。
2023-02-08 18:56:59
はじめまして、どむやまさん。
クロスコンパイル環境ですが、素晴らしい!
まだ試してみていないのですが有用なソフトを有り難うございます。
問題は私がCを超苦手としている事ですが・・・他の皆さんには有用なはずです。
2023-02-09 08:55:41
WINDYさま、ありがとうございます。
私も当時はFBASIC386ばかり使っていて、GCCからc言語を知り、HighCを買ったもののロクにプログラミングできず仕舞いでした。
FBASICで結構いろいろできてしまったのも大きいのかも知れません。
せっかく構築したので、簡単な物でも作ってみたいと思います。皆様も是非。
2023-02-10 00:02:42
どむやまさん、
素晴らしい!津軽もお役に立てたようで良かったです。是非、Demosceneへの参戦もご検討ください!
2023-02-13 10:42:46
山川機長様、ありがとうございます。
今回の作業で津軽の素晴らしさを改めて実感しました!神ソフトありがとうございます!
demosceneの作品、凄すぎて到底追いつけませんが、ほそぼそとTownsソフト、ハードで何か世に出せたらなぁと思っております。
これからもよろしくお願いいたします。
2023-02-13 22:36:56
どむやまさん、
いつか私も使えるレベルまで上がれば、と思いつつダウンロードさせて頂きました。
ありがとうございます。
モニターの記事も、初めて知る事ばかりで興味深かったです。
評判の良い9.7モニターは私も購入しまして、実際に他機種用としてとても良かったのですが、
個人的に2大”液晶モニターを拒むTownsゲーム”と思っている、雷電伝説とスーパーリアル麻雀P2&P3(プラスでは無い方)は、
前者は下側が切れて、後者は表示すらされませんでした。
私も書き換えをやってみようかな。
2023-02-18 22:17:39
aochanさん、ご報告ありがとうございます。
gccは今確認したらアカウントがロックされていてダウンロードできなくなってますね‥
githubにでも上げなおそうと思います。
townsのc開発については書籍がほぼ無いようなので、大変かと思いますが一緒に頑張っていきましょう!
9.7液晶に対応した書換ソフトも用意できたので、映らないソフトウェアに対応できるか私も調査してみます。こちらもまたアップしますね。
2023-02-21 23:30:22
TOWNSとPC-98にmemtest86を移植したので、お知らせします。
https://mcdom.blog.fc2.com/blog-entry-5.html
TOWNS版ではFDDからの起動処理に、山川機長様のFDブートローダーを参考にさせていただきました。
また、製作中のデバッグには「津軽」のデバッグ機能が大活躍しました。津軽最高ですね!
BEEP音やクロック数取得対応など、積み残しは沢山ありますが、とりえあず最低限のテスト動作はするようです。
もしお気づきの点やBEEP音の鳴らし方、実クロックの取得方法などご存じでしたら皆様ご教授ください。
>aochansさん
9.7液晶で確認してみましたが、雷電伝説は水平周波数32.3/垂直周波数60.3 768x512の設定を追加すると画面切れなく映るようになりました。
スーパーリアル麻雀P2&P3は736x480の解像度っぽいのですが、水平ブランキングを削りすぎているのか9.7液晶では映るようにはできませんでした。
mstarチップ搭載の液晶では表示できるのですが・・・残念です。
2023-02-28 20:19:16
> BEEP音
I/O 60h の SOUND ビットをセットするか、メモリ 000CFF98 をリードすることで鳴ると思います。
もしこれで鳴らない場合、PITのチャネル2の周期を設定してやる必要があるかと(PITの矩形波出力がミキサー経由でスピーカーに繋がっているので)
46h に out してチャネル2を選択し、44h に2回 out してカウント数をセットするのですが、これは津軽のI/Oモニタで 44h, 46h をモニタし、DOS等が設定している様子を見るのが一番楽だと思います。
2023-03-02 21:02:57
>pinさん
おお~、情報ありがとうございます。
津軽にはI/Oモニタまであるのですね!
PC-98版ではPITのCh:0インターバルタイマを利用してPentium以降のクロック数取得ができるようになったので、
TOWNS版も同じ対応でいけるか試しているところです。
BEEPも対応できたらまたgithub更新します。
2023-03-03 20:46:03
FM NOTEBOOKだけかもしれませんが、
FM NOTEBOOKシリーズプログラミングマニュアルではブザーBIOS(INT 9EH AH=03H)を使用するときは、次のようにしてねと記載されていました。
発音数分ループする{
BIOSを起動し(AH=03H)、カウンターによる発音を行う
{
BIOSを起動し(AH=04H)、現在のブザー情報を読む
}設定時間≠0ならループ
}
モニター情報もありがとうございます。
やはりスーパーリアル麻雀は変わった解像度だったのですね。
紹介してくださっている書き換え基板のうち、DSUB15ピンのある方を注文しました。
LCD-8000VがMStarだったような。
こちらは雷電伝説、スーパーリアル麻雀共に表示可能です。
以前LCD-8000Vの液晶パネルを1024x768のパネルに交換したのですが、左上に少し小さく800x600の映像が表示されるだけでした。
書き換えでフル表示や、逆に800x600のパネル内に拡大無しの640x400を表示出来るようにならないかなど、試したくなってきます。
2023-03-04 13:57:39
aochanさん、ありがとうございます。
プロテクトモードに移行したあとだとリアルBIOSは呼べないようなので、ご紹介いただいた方法は使えなさそうです。せっかく調べていただいたのに申し訳ない。
書換基板ですが、その後の調査により基板無しでRTD2556の書換方法判明したので無くても大丈夫です。書換用途の為だけに購入されたのであればキャンセルしてもらったほうがお得かも。書換えツールもgithubで公開しますんで。情報提供遅れてすみません。
LCD-8000vをお持ちで羨ましい。私は情報得た頃には販売終了してまして、結局手に入りませんでした。また書き換え結果など教えてくださいね。
2023-03-05 18:23:36
> その後の調査により基板無しでRTD2556の書換方法判明したので無くても大丈夫です。
なんと。急がず一度お伺いしてから購入すれば良かったかもですね。
せっかく注文した事ですし、キャンセルせずに到着を楽しみにしたいと思います。
LCD-8000Vはノングレアである事や、スーパーリアル麻雀の表示が可能なことを除けば、9.7液晶の方が良さそうです。
タイルパターンも奇麗に見えますしね。
4:3の液晶へ接続する場合、白TOWNSですと640x400の映像が縦に引き伸ばされにくいですし、
灰色TOWNSでも救済IPLから起動すれば、ゲーム画面は16:10を維持してくれますし(下側に関係ない映像が表示されてしまいますが)TOWNSには良いかもです。
2023-03-05 23:16:53
どむやまさん
ついに9.7液晶で雷電伝説の表示が出来ました。
csv出力プログラムが無ければやり切れる気がしませんでした。
ありがとうございます。
スーパーリアル麻雀の方は、私も出力なし表示から抜け出せませんでした。
交換可能なMStarのボード(できればS端子付き)があれば、入手したくなりますね。
WINDYさん
救済IPL対応ソフトウェアリストの変更をお願いします。
サーク2、パラメデス、プリンスオブペルシャ、ザレジェンドオブキランディア
の4本は現在のICカード版で◯になりました。
FD用の最新版は試していません。
サーク2のみSCSI-CDのオーディオOUTからTOWNSのオーディオインにケーブルを接続する必要があります。
これをすることで、お店に入った時にCD音がミュートされるようになり、FM音と被らなくなります。
2023-03-21 21:49:05
1年前にやろうとしたものの挫折していたWolfenstein 3DのFM TOWNS移植を再開しているのですが、PCM再生でちょっと困ったことがありまして、
https://twitter.com/bcc2528/status/1641337217590362112
PCM音源STデータレジスタ(0x04F6)に値を書き込めば、書き込んだそのチャンネルのみ再生がまた始まると解釈しているつもりなんですが、どうもch1のSTデータレジスタに書き込むとチャネルON/OFFレジスタで有効になっている全ch分また再生されてしまうようです(上記の動画ではch1の効果音が鳴る瞬間にch2のプレイヤーの銃声も一緒に再生されている)。
津軽で発生していますが、うんづでは問題なくch1分のみしか再生せず正常に聞こえるようになっています。エミュレータの再現性の問題なのか、それとも実機でもこのような仕様なのでしょうか。
2023-03-30 16:44:58
BCCさん、さすがですね!ざっとPCMのコードを見直してみたのですが、怪しそうなところは特定できませんでした。多分なんらかの理由でch2の再生ポインタが巻き戻されてしまっているのではないかと思います。BRKON IOWとかで、問題のch1 STに書き込んでるタイミングで止めて、SOUNDのステータスとか取れますかね?
2023-03-30 23:21:28
CH00(汎用的なPCM音)を再生前は
CH00:ENV=FF PAN=FF ST=00 FD=02AE LS=F000 PlayPtr=F000 LeftOver=055C
CH01:ENV=FF PAN=FF ST=D0 FD=02AE LS=F000 PlayPtr=F001 LeftOver=000A
CH02:ENV=00 PAN=77 ST=00 FD=075A LS=0000 PlayPtr=0000 LeftOver=0000
CH03:ENV=00 PAN=77 ST=00 FD=075A LS=0000 PlayPtr=0000 LeftOver=0000
CH04:ENV=00 PAN=77 ST=00 FD=075A LS=0000 PlayPtr=0000 LeftOver=0000
CH05:ENV=00 PAN=77 ST=00 FD=075A LS=0000 PlayPtr=0000 LeftOver=0000
CH06:ENV=00 PAN=77 ST=00 FD=075A LS=0000 PlayPtr=0000 LeftOver=0000
CH07:ENV=00 PAN=77 ST=00 FD=075A LS=0000 PlayPtr=0000 LeftOver=0000
PLAYING=1 BANK=0000 CB=00 CHOnOff=FC
IRQ=0 IRQBank=00 IRQBankMask=00
となっており
再生する際は
CH00:ENV=FF PAN=FF ST=00 FD=02AE LS=F000 PlayPtr=0000 LeftOver=0000
CH01:ENV=FF PAN=FF ST=D0 FD=02AE LS=F000 PlayPtr=D01B LeftOver=066A
CH02:ENV=00 PAN=77 ST=00 FD=075A LS=0000 PlayPtr=0000 LeftOver=0000
CH03:ENV=00 PAN=77 ST=00 FD=075A LS=0000 PlayPtr=0000 LeftOver=0000
CH04:ENV=00 PAN=77 ST=00 FD=075A LS=0000 PlayPtr=0000 LeftOver=0000
CH05:ENV=00 PAN=77 ST=00 FD=075A LS=0000 PlayPtr=0000 LeftOver=0000
CH06:ENV=00 PAN=77 ST=00 FD=075A LS=0000 PlayPtr=0000 LeftOver=0000
CH07:ENV=00 PAN=77 ST=00 FD=075A LS=0000 PlayPtr=0000 LeftOver=0000
PLAYING=1 BANK=2000 CB=00 CHOnOff=FC
IRQ=0 IRQBank=00 IRQBankMask=00
となります。
波形RAMの0000~BFFFは再生前に書き込み、C000~EFFFまではプレイヤーの銃声で常駐、F000に00と書き込んでそれ以降はFF、ループ部分に到達したら無音の永久ループという形を取っています。
PCM効果音を再生する関数のソースは
_outb(0x04f7, 0xc0);
_outb(0x04f6, 0);
とだけ記述していています。
2023-03-31 01:17:59
原因を探ったところ、波形RAMに書き込む際に04f7のON/OFFビットを0にしていたのが原因のようでした。再び1にすると津軽だとSTデータレジスタのアドレスからまた再生される、うんづは再生中だったアドレスからまた再開されるという違いがあるようです。どちらが実機通りなんでしょうか?
このビットを0にしているとCPUから波形RAMの読み出しができなくなるということで念のため0にしていたのですが、1のままでも書き込みのほうは問題ないでしょうか。
2023-04-01 00:20:04
おおなるほど!それは、再生を止めたときにポインタを巻き戻してしまっていたからですね。というか、4F7Hと4F8Hで意味が違うのかもしれませんね。
void RF5C68::PlayStopped(unsigned int chNum)
{
auto &ch=state.ch[chNum];
ch.playPtr=(ch.ST<<8); // ←これ
ch.playPtrLeftOver=0;
}
4F8Hで止めたときは本当にストップでポインタ巻き戻しで、4F7HだとPAUSEみたいな意味鴨しれません。そのように修正してみたソースをPUSHしたので、試してみていただけますか?多分既に動いていたソフトへの悪影響は無いと思うのですが。
2023-04-01 23:41:12
https://bcc.hatenablog.com/entry/2023/04/09/235722
FM TOWNS版Wolfenstein 3Dをとりあえず公開しました。マウス入力機能には対応していませんがやる気が出たら実装するかもしれません。
本当はマーティーへの対応も予定していたのですが、正直モチベーションが出てこないのでこれで正式版とします。
ただ、コントローラでの操作は問題ないのですが、キーボードで操作すると「津軽」ではランダムでクラッシュ、「うんづ」ではそもそもゲーム中操作不可という不具合があります。キーボード割り込み(id_in.c内のINL_KeyService関数を読み出し)を使用してキーボード入力フラグ配列を書き換えているのですが、エミュレータの問題なのかプログラムが間違っているのかよくわかっていません。
割り込み中に割り込み(キーボード入力そのものやFM音源側のタイマ)が発生しているかもしれないことも考えて_disable()・_enable()で強制的に割り込みを禁止してみたりしてみましたが、改善されませんでした。
2023-04-10 00:38:47
うろ覚えですが、新しめのTownsOSにはスクリーンセーバ機能があって、
キーボード割り込み(INT 41h)をプログラム内で処理して元のハンドラにチェーンしない場合、これを解除できないのでご注意ください
INT 90h AH=02h でスキャンモードに変更して IN_ReadControl で INT 90h AH=09h でバッファにたまっているものを全部処理するか、
(386|ASMで16-32混在プログラムを作る必要がありそうですが) IN 90h AH=0ah でマトリクス読み込みするかでどうでしょうか
2023-04-10 02:24:55
あと、costable は High C のバグなどではなく、BuildTables で sintable の範囲外にアクセスしているからでしょう
long sintable[450] の直後に int *costable が来るよう連続して配置されると思いますが、
i が 90 のときに sintable[90+360] にアクセスするので、costable の値を上書きしてしまうのではないでしょうか
オリジナルはアライメントの都合かリンカの気分で運よく回避していたのでしょうね
2023-04-10 02:49:02
× int *costable → 〇 long *costable でした(直し忘れ…)
2023-04-10 02:54:30
LCD-10000VH3でもいけるか試してみました。
雷電伝説は下16ドット程度が表示されません。
スーパーリアル麻雀P2&P3、初期状態では左右がはみ出していますが設定画面で横幅調整できました。
15kHzには非対応。
搭載チップはRTD2668
RTD2556,2660,2795,2995用とされるファームウェア書込機では読み書き出来ませんでした。
24LC02が搭載されていましたので、書込機用ソフトウェアのI2C設定でそのスレーブアドレスを直接入力して読み込んでみましたが、
内容はモニター情報らしい256バイトのデータのみで、解像度テーブルでは無さそうでした。
2023-04-16 14:47:13
aochanさん、LCD-10000VH3の報告ありがとうございます。
15KHzが映らないのはちょっと惜しいですが、なかなかの対応結果ではないでしょうか?
Raspberry Piをお持ちでしたら、加工したVGAケーブルでモニタのi2c端子とつないで
i2cdetectするとRealtekのファーム読み書き用の0x4aポートが空いているか確認できます。
ただ、書込機でも読めない、ということはそもそもVGA端子にi2c信号線が出てないのかもしれませんね。
2023-04-19 22:54:43
どむやまさん、ありがとうございます。
スーパーリアル麻雀の表示に対応していたのはありがたかったです。
Raspberry Piは持っていませんので、輸入したアダプタとそれ用の?ソフトウェア(Windows用)を使って、
0x30~0x7Fまで読み込みを試したのですが何れもI2C no ACKと表示されました。
0xA0ですと24LC02の内容と思われる値が表示されます。
15ピンRGBコネクタのI2C用ピンからは、24LC02とRTD2668の両方のピンに接続されていまして、
HDMIのI2C用ピンからは、RTD2668の別のピンに接続されていました。
I2C信号線が来ていないか、他のアドレスなのかもですね。
2023-04-22 22:23:16
実機用にCAPCOM Power Stick Fighterをつなげるアダプタを作ろうとしているのですが、一応Arduino使えばできそうなのですが、6ボタンパッドって対応してるソフトって何がありましたかね?Super Street Fighter 2, Muscle Bomberは使えるようなのですが。あとSamurai Spiritsとかも使えそうですね。一応、今年のDemosplashでは6ボタンジョイスティックでSuper Street Fighter 2を走らすことを目標にやってます。
2023-08-30 02:01:33
CAPCOM Power Stick Fighter、いいですよね。
レバーのサイズがゲームセンターのと同等で持ちやすいですし。
6ボタンパッド対応ですと、プリルラ、ブランディアプラスもありますが、他には何があるのでしょうね。
2023-09-02 09:49:53
過去にセガサターンの周辺機器(標準パッド,マルコン,バーチャスティック)をUSBに変換してWindowsで使うコンバーターを制作しました。
Towns仕様へは個人的に用途が無かったので作ってはないのですが少し興味が湧きます。
残念ながらPowerStickFighterを持っていないので件のコンバーターは試せないのですが・・・・
6ボタンパッド対応のソフトウェアについては、そのような情報を纏めた資料も存在しないので価値はあると思いますので調査の上、Wikiに掲載する事もありですね。
2023-09-04 09:19:08
ふと気になったのですが、6ボタンパッドと「CAPCOM Power Stick FighterとPower Stick Fighterパソコンアダプタの組み合わせ」って同等もしくは、ボタンに割り当てたアルファベットが異なるだけでしたっけ?
スーパーストリートファイター2では、6ボタンとCPSファイターで設定が別だったような記憶が・・・。
マッスルボマーの説明書にはCPSファイター、2ボタンパッドのみ記載で、
プリルラ、ブランディアの説明書では6ボタンパッド、マーティーパッド(3ボタン対応)、2ボタンパッドのみでした。
富士通6ボタンパッドってCAPCOMのパソコンアダプタより後の発売ですよね。
2023-09-07 21:09:33
あれ?成功しました!って書き込んだつもりが?
なお、成功して、回路図、Arduinoコードを以下のURLに上げました。
https://github.com/captainys/FM/tree/master/TOWNS/KiCAD/SNES2TOWNS
https://github.com/captainys/FM/tree/master/TOWNS/SNES2TOWNS
まだブレッドボード上のプロトタイプで成功しただけなので回路図間違ってる可能性はゼロではないのですが、PCBが届いて正式に確認できるのは多分2週間後ぐらいになります。
富士通6ボタンパッドとCPSFは違いますね。CPSFだと、COM出力で全6ビット(上下左右AB)が切り替わるのですが、6ボタンパッドの場合、4ビット(上下左右)のみ切り替わります。なのでCPSFは合計12ビットの情報をCPUに送ることができますが、6ボタンパッドの場合合計10ビットしか送ることができません。
CPSFはSTARTとSELECTにそれぞれ1ビット使って独立したビットにしましたが、6ボタンパッドでは依然としてSTART, SELECTを押すと、上下、または左右が同時に押された扱いになるようです。
2023-09-08 05:45:29
2つは違っていたのですね。
6ボタンのみ対応しているソフトの場合、START、SELECTを使用しない、A、Bボタンをcom出力前に読み取っているなら、CPSFを接続しても使用出来そうかな。
ところで、いくつかのTOWNSでパッド/マウスコネクタへの電源ラインがとても細いせいか、マザーボード側の線が焼き切れているのを見た事があります。
配線の太さが0.1mmくらいしか無かった気がします。HCはフィルタ~9ピンコネクタ間だけ0.2mm幅くらいですが、こちらは大丈夫そうでした。
消費電力に注意する必要があるかもしれません。
CPSFは確か電池動作なので、そのあたり有利かもしれませんね。
2023-09-09 10:32:41
焼き切れがありましたか。過電流に対する保護回路とか無さそうですね。今計ったところ60mA食ってました。MSXのゲームポートが50mAが上限ということになってるそうなので、60mAぐらいならなんとかなりそうな気がするのですが、何か省電力を考えた方がいいかもしれないですね。Arduino NANOの最低消費電力が20~30mAということなので、多分何か使ってない機能に電力が使われてそうな気がします。
ちなみにワイヤレスコマンダーって電池が必要でしたっけ?赤外線LEDなんて100mAぐらい食うはずなので、電池無しでワイヤレスコマンダーを給電できるなら多分100mAは行けそうな気がするのですが。
2023-09-10 07:57:06
僅かな記憶では、ワイヤレスコマンダーは電池が必要だったような・・・ と、調べたらやはり必要そうですね。
https://aucview.aucfan.com/yahoo/p1091939499/
確かに持ったいたし、ビデオの制御とかも実際にやっていたのにどこに行ったか判らないんですよね>ワイヤレスコマンダー
2023-09-10 08:42:33
おおなるほど。やっぱりさすがに電池が必要でしたか。
試しに更新の頻度を1/64秒単位にして、何もしてないときはSleepするようにさせてみたら52mAまで下がりました。あくまでも平均の電流でピークはもっと上がってるのかもしれないですが。
ちょっと失敗だったのは、13番ピンを十字ボタンの↑に割り当ててあって、↑押したらLEDが消えるからテストになってちょうどいいや、と、思ったら、LEDだけで8mAぐらい食ってたので、違うピンにすればよかった。が、PCB発注しちゃった。
データシート見たら74LS154が8mAも食うんですね。2個で16mAか。LEDが8mA、Arduino本体が25mA、74LS154x2で16mAとすると合計49mAで大体計算合ってますね。
↓を見たところX68000だと120mAぐらいまでは大丈夫と見ているようですね。
https://ixsvr.dyndns.org/x68k2usb
↓だとやっぱりMSXのゲームポートは50mAが上限という解釈のようですね。
https://www.nana.or.jp/~hiramats/h8/nazokou/astick.html
2023-09-10 11:49:14
一部TOWNSのパッドコネクタにおける電源線の細さは、設計時の不備ではないかと予想しています。
焼き切れた原因や何mAで焼けたのかは不明なので、適切な消費電力を予想しにくい所ではあるのですが。
個人的に細すぎと感じた機種はURと初期型CARMARTYのMVP-1です。
後期型のMVP-10では太い線に修正されていました。
時期的に怪しいUXやUG、多くの機種は未調査です。(HR、MA、Fresh、MARTYは2mm程度で大丈夫だったような)
HCの0.2mm程度なのも他機種では1~2mm程度の余裕を持たせている状況からして、大丈夫なのか詳しい方の解説をお伺いしたい感じです。
ネットで調べましたところ、銅箔35μm、幅0.1mmの銅線ですと100mAが目安で、4層以上の基板ですと銅箔18μmが標準との事なので、
50mAを目安にするのがいいのかなと勝手に予想しています。(200mAあたりから危険?)
パッドコネクタの電源を使用する機器って、マウス、アナログコントローラー、6ボタンパッド、連射パッド、CPSFパソコンアダプタ、教育ソフト用のセンサーあたりでしょうか?
6ボタンパッド、CPSFパソコンアダプタの、ゲーム上での違いについてKtJ Dragonさんのサイトを参考にしながら考えてみました。
CPSFのみ対応のソフト(マッスルボマーのみ?)で6ボタンパッドが使えるかどうかは、CPSFのSTART、L(CPSF-MDの場合はA)が必須でなければ使えそうですね。
逆に6ボタンパッドのみ対応のソフトの場合、6ボタンパッドのSTART、SELECTが必須でなければCPSFでも使えそう。
どちらもボタンの配置設定が出来る前提になりますが。
2023-09-10 16:58:49
Arduinoの13番ピンを使うのをやめたところ、44mAまで下がりました。ついでに、師匠によると、74LS157の未使用ピンはGNDではなくVccにつないだ方がいい、とのことなので実験したところ、42mAまで下がります。あとは、74LS157を74HC157に換装するとどうやらさらに6mAぐらい消費電流が下がりそうなのですが、これだけ発注するとチップ10個買って$8、送料が$7であまりにも悔しいので、もう少し必要な部品が発生してから実験してみようと思ってます。一応MSXのゲームポートは50mAまで補償ということなので、50mA切ってれば多分大丈夫でしょう。
とりあえず、もうすぐ届いてしまう初期バージョンのPCBは、一部の線を切ってジャンパーで補修して対応しようと思ってます。本当は、光らせるのが好きなのでLEDを最低1個は余計に搭載したかったのですが、LEDはあきらめるしか無さそうですね。
2023-09-11 03:59:10
LSとHCで結構差が出るのですね。すごい。
私の持っているTOWNS対応コントローラーうち、消費電流の多そうなのは
サーバースティック、アナログコントローラー、タブレット、ワイヤレスパッド(こちらの受信部は電池不要)
かなと予想しているのですが、タブレットは100mA以下と説明書に書かれていて、アナログコントローラーの説明書には消費電力が書かれておらず仕様が分かりませんでした。
サイバースティックは説明書を持っていませんので不明で、ワイヤレスパッドは収納箱奥にあるため諦めました。
連射を可能にする中間アダプタや
VCC、GND共に0.1mm程度のURの線を焼いたのは、タブレットかサイバースティック(ICを多く搭載していますので)あたりではないかと疑ったり。
CPSFパソコンアダプタの定格電流は12mAでした。
と書いている時に、連射対応にしてくれる中間アダプタやPC用のアナログコントローラーを接続する変換アダプタがTOWNS対応で発売されていたのを思い出しました。
2023-09-16 10:10:22
一つ上の私の書き込み442の7行目の
「連射を可能にする中間アダプタや」の所は、書込み準備中に消し忘れていました。
アダプタが燃えたような書き込みになっていますが、ここは私の書き込みミスです。
2023-09-17 21:33:27
CPSFアダプタは12mAなんですね。さすがにそこまで下げるのは大変そうですが、カスタムチップを使ってるようなのでできたんでしょうね。
なお、一応、PCBバージョンも動作確認しました! PCBの方では電流は計ってないのですが、Breadboard上のものと同じ回路なので、42mAのはずです。何も光らせないのも悔しいので、1秒に1度、1/64秒だけオンボードLEDがチカっと光るようにしましたが、平均の電流消費に与える影響は軽微だと思います。少なくともMXの話ですが焼けるようなことは無さそうです。タブレットが100mAだとすれば50mA切ってれば大丈夫そうですね、というかMSXのジョイスティックポートが50mAまで補償のはずだから、そこまでは対応してもらわないと困りますね。
割と簡単に作れるので、CPSFに限らず、スーファミ用のコントローラをTOWNS実機につなげて格闘ゲームしたい界(そんな界があるのか!?)では役に立つかもしれないですね。
2023-09-18 09:44:06
74HC157が届いて、実験したところ、消費電流は32.6mAまで低下しました。これだとさすがに焼けることは無いでしょう。今年のDemosplashのレトロゲームルームにはこれで行こうと思います。ご協力ありがとうございました!
Arduinoのコードを書き替えれば2ボタンモード時は使ってないボタンを連射ボタンにするとかもできそうですね。
2023-10-04 13:25:02
お疲れ様でございます。HCへ変更して予想以上に消費電流が下がったのですね。
2ボタンモードも便利そうです。
2023-10-05 21:09:23
知り合いの知り合いが中古のTOWNSを買ったらしく、何かソフトも買いたいから僕が一番おもしろかったTOWNSのソフトって何?できれば移植ものじゃなくてオリジナルがいいんだけど、と聞かれて、一番だったらWing CommanderとStrike Commanderなんだけど、TOWNSオリジナルだとVSGPだろうか、Super大戦略も最後発のTOWNS版がおもしろいと思うけどこれも移植だし、と、思って、結局最後に、一番楽しかったのは386ASMだと思う。って答えてしまった。
2023-10-16 05:30:28
"一番おもしろかったTOWNSのソフト","できればオリジナル"と言う縛りに対しての"386ASM"は良いですね。
386ASMもHigh-Cも移植と言えば移植だし、オリジナルを探すのって難しいですね。
私の場合はフリコレかなぁ、毎回楽しみにしていたし。
後はDATAWEST社のPDSシリーズですかね。
移植物だとWingCommander,StrikeCommander,SCYNDICATE,GUNSHIP・・・色々有りますね。
2023-10-17 09:35:28
>448 WINDYさん
386|ASMはDOS汎用みたいなので、移植ではないと思います…
2023-10-25 09:10:56
フォロー有り難うございます。
そうか、DOS汎用なんですね。すっかりその発想が抜けていました。(そういう意味ではHigh-Cもコンパイラ自体はDOS汎用ですかね)
2023-10-25 09:34:07
>450 WINDYさん
追加情報(?)です。
パッケージ製品としての「386|ASM TOOL KIT」を構成する4本のソフトのうち、機種依存しているのは386|DEBUGのみです。
2023-10-25 11:00:32
コンピュータアート、ミュージック、レトロゲームの祭典 Demosplash 2023 (https://demosplash.org)今年もやります!
アメリカ東部時間今週金曜18:00-24:00, 土曜日13:00-24:00 (日本時間土曜日午前7時から午後1時、日曜日午前2時~午後1時)で、会場はペンシルバニア州ピッツバーグ、カーネギーメロン大学ユニバーシティセンター2階ランゴスですが、オンライン配信もあるので、是非ご視聴ください。リンクは上のURLの「Chat」「Broadcast」タブをご参照ください。なるべく頻繁にレトロゲームルームの模様をチャットに流すようにします。
自分もFM TOWNSエミュレータ津軽、FM-7/77AVエミュレータ陸奥の開発について45分ほどプレゼンテーションが入っています。時間は多分金曜19:30のスロットになる予定です。あとJapanese Retro Platformのセッションが45分あるので、今回はFractal Engine Demo, Microcosm, Scavenger4, MegaMorphを流そうと思ってます。
2023-10-30 11:42:29
ふと思ったんですが、TOWNSのNMIって、赤本によるとキーボードから発生する場合があるようなことを書いていますが、津軽では完全に無視しててとりあえず問題なく動いているようなのですが、これってどういうタイミングでかかってくるんでしょうかねえ?発生するタイミングがわかれば一応エミュレートしようと思いますが、赤本の56ページに「RAS機能(キーボード)」とあるだけで、RASとは何なのか書いてないのでNMIによって何ができるのかわからんのですが。誰か知ってます?
2023-11-15 03:02:47
たしか D, U, M, P の4キー同時押しでメモリダンプが始まる機能があって
たぶんこれがNMIなんだろうなと思ったような記憶があります。違うかもしれませんが。
2023-11-15 03:26:05
私の知っているRAS機能は主にFAコンピュータなどに搭載されているもので、異常(FANの異常やメモリの異常など)を検出して外部に出力したり
外部からの信号を受け付けたりして、LED表示やロギング,OSへの通知などを行う拡張です。
ただし、どの機能が有ればRAS機能を搭載しているかは曖昧でメーカーにより出来ることは様々なのですが、要は異常時の障害対応の切り分けを
しやすくしたり、履歴を残すような機能です。
で、TOWNSのキーボードとの関連ですが正直何を目的にしているのかよく解らないのですが、キーボードによっては拡張キー(SYSREQ等)を備えた
物がありますのでそれらのキーと関連しているのかもしれません。
拡張キーは通常ではどれを押しても何も反応が無かった記憶がありますので、実際には使われていなかったのかもしれません。
2023-11-15 09:34:48
おおなるほど!D,U,M,P機能があったとは。しかし、それだとエミュレートしてなくても困らなかったわけですね。試しに津軽でコマンドからNMI出せるようにしてみようかな。
今、誰も使ってない可能性のあるディスクイメージツールのFDDUMPをEXP化して、DOS6からでも使えるようにしようと思ってて、その間プロテクテドモードから抜けられると困るので、大概のIRQはマスクしてしまえばいいもののNMIがかかってきてたらどうしよう?と、思ったんですが、大丈夫そうですね。実際、実機でプロテクテドモード版FDDUMP.EXPはとりあえず成功したようなので、ぼちぼち(今更)実機のSCSI2SDをDOS6ベースに更新して、ついでにWindows 3.1パーティションも追加してやろう、とか思っているところです。
FDDUMP、GUI版作ったら使う人いるだろうか。いや、いないかな。大体FM系のゲームをコピープロテクトまるごと再現してやろう、という需要が無いですよね。クラックしちゃえばいいじゃんという感じで。
2023-11-16 01:16:29
Free386開発しててTBIOS/RUN386.EXEのクソバグ見つけたので、津軽あんまり関係ないけどここで成仏させてください
Free386でハイレゾ画面に移行しようとすると、TBIOSがセグメンテーションフォールトで落ちるので調べていたら、TBIOS がハイレゾ画面初期化時、VRAMセレクタ 11ch の 0-512KB をゼロ初期化したあと、「8MB から 512KB をゼロ初期化する」というバグを発見しました。ハイレゾVRAMは1MBしかないので、そんなところにメモリはありません。
本来ならRUN386.EXEでも落ちるはずですが、RUN386はRUN386で「ハイレゾVRAMを示すセレクタ11ch, 124h, 12ch」に16MBのメモリ領域を割り当てるというバグがあり、合せ技で動くという……。両方とも16進数で1桁間違えなんですが、なんじゃこりゃという感じです。
追伸
Free386 Ver0.80開発に津軽のデバッガが大変役に立ちました。とても感謝しています。
2023-12-06 20:23:04
>437 nabeさん
RUN386がセレクタ0x11c,0x124,0x12cに16MBのメモリ領域を割り当てる件ですが、「バグではありません」。
赤本の白TOWNSのメモリマップを見れば分かるとおり、ハイレゾVRAM空間は16MBの空間を持っているのが正解で、実際に搭載されたメモリ量が1MBしかなかっただけに過ぎません。ま、I/OポートからハイレゾVRAMサイズを読み取って確保しろっていうならそれはそれで合ってますけど。
2023-12-07 13:20:23
>458(自爆)
おーっと、437じゃなくて457だった(汗
2023-12-07 13:21:08
Free386 Ver0.90を公開しました。
https://github.com/nabe-abk/free386
EIN / TMENUも問題なく動くようになったので、RUN386.EXEと置き換えると少しだけ速くなりますが、試す人いるかな……。
NASM Version 2.16.01のEXP版と、EXPを吐ける新作フリーリンカを収録しているので、この2つは役に立つかもしれません。
>>458
なるほど。
2023-12-28 19:09:58
まったく脈絡ないんですが、冬休みだったんで積んであったゲームを一本やろうと思ってドラゴンスレイヤー・英雄伝説クリアしました。ということで、津軽の動作確認リストに一本追加しました。しかし、これPC9801版のほとんどそのまんまの移植なんですね。開発コストを下げるためには合理的と言えば合理的ですが。起動時から画面モード変えてないっぽいし。
最後までやった感想は「どこにドラゴンスレイヤー要素が?」だったんですが。結局一匹しかドラゴン倒してないような。それも、ドラゴンっぽいけど本当にドラゴンだったのか。あと、このゲーム、リターンキーを連打または押しっぱなしにするとオートレベルアップできますね。津軽のイベントログ機能を使ってリターンキー連打させて一晩放置したらレベル40ぐらいに、もう一晩放置したら99まで上がってて、以後は安全に旅を進めることができました。多分実機でもテープか何かでリターンキー固定したら使えますね。
2024-01-11 13:03:03
> nabeさん
更新ありがとうございます!
前から思ってるのですが、Free386でRUN386は置き換えられるということは、既に互換ROMはあるので、がんばって互換IO.SYSと互換TBIOS書いたら実機ROM無しでフリーソフト実行する環境は可能なわけですよね。ちょっと先が長いかな。
2024-01-16 00:42:18
TOWNS実機でD77/RDD/BINをフロッピーディスクに書き戻すコマンドラインユーティリティ公開しました。
https://github.com/captainys/FM/tree/master/TOWNS/FDWRITE2
EXP形式の実行ファイルがダウンロードできます。
実機ではまだ一枚しか試してませんが(というか使えるディスクがそんなに残ってない)、Dragon Slayer Legend of Heroes 1のプログラムディスクという名のデータディスクは、セクタ番号が10H~17Hという変則的なフォーマットになっていますが、FDWRITE2で無事書き戻しに成功しました。このDragon Slayer Legend of Heroes 1のプログラムディスクですが、最後の力を振り絞って(?)一度だけ読み込みに成功してイメージファイルを作ったら以後読めなくなったという代物でした。
2D未対応なのですが、これ、もしも実機を使って2DDのディスクをまっさらな状態に戻せるのであれば、シリンダを2ステップずつ移動すればいいだけの話なので書き戻しの期待もあるのですが、Write Trackで全部ゼロを書いてもタイミングを取るためのパルスは出てしまうのでまっさらにはならないんですよね。
2024-01-18 03:08:37
津軽のデバッグ中すみません。
これも楽しみなプロジェクトですので、少し使ってみました。
RDDやBIN形式から書き戻したFDですが、どれも起動はしますが、読み始めにマスターディスクでは発生しない15秒程ゆっくり読む時間がありました。
機種はHCでメモリは40MB、OSはDドライブにインストールしたTOS V2.1L51です。
RDD形式はFDDUMP.EXPで、BIN形式はうんづ用ツールに含まれるFDIMGL.EXGで保存し、FDWRITE2でFDに書き戻しました。
コラムスではプロテクトに引っかかった画面まで行けました。
FDDUMPでコラムスをイメージ化した直後のメッセージは、
11CRC Errors
0 CRC Errors in NOT F5,F6,F7 Sectors
です。
2024-02-13 17:57:48
ご報告ありがとうございます!ゆっくり読んでいる時間は、多分セクタの連続読み込みが遅いんでしょうかね。TOWNSのコピープロテクトは今まで見た中ではほとんどが余計なセクタの存在をチェックするだけ、または存在していてCRCエラーが起きないことをチェックするぐらいだったので、セクタを多く詰め込むためにセクタ間ギャップを詰めた影響で、セクタを連続で読むとき、次のセクタの読み込みが間に合わなくてディスクが一周して戻ってくるまで待つ現象が起きるかもしれません。
コラムスは、メッセージから推測すると、11個のCRCエラーはすべてF5, F6, F7セクタから発生しているようなので、MB8877では完全な生成が不可能なナンバーのセクタが混じってるようですね。この手のプロテクトはFM-7時代は多かったのですが、TOWNS用ソフトではあまり多く見なかったので貴重(?)かもしれません。残念ながらTOWNSではそのまま再現するのは極めて難しいですね。なんでもFM-7用のコピーツールでは無理やりF7セクタを作る方法が編み出されていたようですが、TOWNSだとDMA経由でしか書き込むことができないので同じ技は使えないと思います。
この手のツールは、EXG形式にする需要ありますかね?自分がなんでもコマンドでやってしまう人なもので、いまいちGUIを作るモチベーションが沸かないのですが。
2024-02-15 02:05:36
解説までしてくださりありがとうございます。
F5,F6,F7セクタの無い物であれば保存しておくと良さそうですね。
最初の長めの読み込み時間は、Townsシステムソフトウェアで作成した起動ディスクをイメージ化してFDWRITE2で書き戻しただけの物でも発生しました。
EXPかEXGかとなると中々迷ってしまいますね。
フロッピーから起動して、セミIBMフォーマットしたSD(WindowsPCで読み書きできる)へ書き込むならEXPでしょうけど、
救済IPLがあると本体の電池が切れてもHDDの運用が出来ますし、EXGでの手軽な運用も魅力です。
今の所FDDUMP.EXPと同じディレクトリに、よく使いそうな使い方だけを書き込んだテキストファイルを置いていますので、EXP形式でそんなに困る事は無い気がします。
続けて保存する場合はF3キーでコマンドを結構省略できますし。
うんづのFDIMGL.EXGで便利だと思った部分は、
カビを取ったディスクですと不安定な部分があるらしく、イメージ化の際にしばし複数のトラックでCRCエラーが発生するのですが、
エラーの都度に再読み込みか空データの書き込みをするかを聞いてくるので、5回くらい再読み込みを繰り返すうちにCRCエラーが発生しない事があるのでそれを保存できる所ですね。
こういう対話式なのはEXG向けなのかなと思いました。
しかし、これだと不安定さをプロテクトとして使用しているディスクをイメージ化する場合、その目的と相反する感じもします。
2024-02-18 14:39:04
35周年おめでとう!
https://pc.watch.impress.co.jp/docs/column/gyokai/1572032.html
当時まだ学生でFM-77AV40EXが欲しくても買えず、FM-7で凌いでいました。
なんだか判らないが富士通が新しいホビーPCを出すらしいとの噂でワクワクしていたのを思い出します。
2024-02-28 09:20:54
35周年ですか。おめでとうございます。
自分は元MSXユーザーで、当時はFM-77AV系は勿論、88とかX1とかが羨ましかったのをよく覚えています。
富士通プラザまで遊びに行くこともよくありました。
あそこがあったからTownsを買ったと言っても過言ではありません。
Townsを買ってからはDATA WESTのゲームをよくプレイしていました。
サイキックシリーズは全部持っていますが、箱がでかくてかさばりますね(^-^;
2024-02-28 21:59:52
おおー、10年単位の区切りではないのに結構大きく取り上げてくれてますね。あの年の電脳遊園地、高校1年の終わりでしたが、津軽の田舎から東京さ出て見に行ったんですよね。山のようなアフターバーナーとTowns Illusionのデモは感動でした。TOWNSは今は亡き父が買ってくれると約束していてくれたのでこのすごいコンピュータが我が家に来るのかと待ち遠しい日々でした。
2024-02-29 03:11:23
>468 D-Typeさん
MSXは当時、METALGEARがやりたくて友人から本体を借りて遊んでました。
METALGEAR2も自腹で買って散々やり尽くしたので、両方のソフトと共に友人に返却しましたが・・・・・
今となってはプレミアが付いてて欲しくても買えないです -> METALGEAR2
最近、FS-A1をヤフオクで落としたので当時とは違う遊びをしようと思っています。(カートリッジスロットに自作のMCUカードを差して・・・と、訳の判らぬ妄想中です)
↑
FM-7やTOWNSにもこれで得た技術で何かしたいと考え中(取り敢えず最初はCD-ROMのエミュレータです)
>469 山川機長さん
電脳遊園地に行かれたのですね、ガッツが凄いなぁ。 私も行っとけば良かったなぁ。
TOWNSを買ったのは何時だったかなぁ? 2代目が出る前に買ったのでそう遅くは無かったけど。
初任給+αをぶっ込んで100万位は初期投資に使ったと思います。
(必要ないのにプリンターやコプロカードやメモリも足したので今考えると恐ろしい価格です。馬鹿だけど後悔は無い)
2024-02-29 12:01:30
>>470 WINDYさん
Townsのソフトも値段が上がってきてますが、メタルギア2の価格はやばいですね。
本体が買えてしまいそうです。
自分もメタルギア2は、当時自分で買ってクリアしましたが、
初代メタルギアの頃はMSX2がまだ高くてFC版でプレイしてました。
MSXは新しい機種も出るようなので楽しみです。
自分はWindowsPCにATARIパッドを繋ぐコンバータを作ってみたものの、
津軽で使おうとしたらファームウエアのGP2040-CEがStart/Selectを想定していないせいで、
ボタンが利かないというところで止まってました。惜しい。
2024-03-02 04:37:09
まだエミュ上ですがFree386を使ってワーズワースの起動が出来まして、動作環境はMS-DOS6.2+TownsOSV2.1L51で、ワーズワースの起動にはHIMEM.SYSとEMM386.EXEの組み込みが必須でした。
Free386をダウンロードしようとgithubへ進んだところ、COCOなどの貴重な情報があって私では理解できない部分が多いものの、ありがたく何度も読ませてもらっていました。
2024-03-10 21:21:31
FM TOWNS版Windows 95でWinQuakeがとりあえず動かせるのであれば、FM TOWNSネイティブ上で動くQuakeが動くのでは?ということで作ってみました。
https://bcc.hatenablog.com/entry/2024/03/11/112758
要FPU・ハイレゾPCM
486 CPUでは遅くてゲームにならないのでPentium機(HB・HC)かつオーバークロックやCPU換装が必須になってます。
2024-03-11 12:03:19
BCCさん、さすがです!そう、FM TOWNSの勝ちですね!
Windows 95対応が結果的にFM TOWNSの勝利につながることになるとは。やってよかった。というか、そもそもWindows 95対応の突破口が開けたのはWin32S情報からだったのでBCCさんMVPですよ。いつもありがとうございます!
2024-03-11 12:20:09
私もQuakeをダウンロードさせて貰いました。
ありがとうございます。
ノーマルのHCではデフォルトの画面サイズでやや重いものの、普通に遊べそうな感じでした。
180MHz動作のODPでは余裕でした。
TOWNSでこんなリッチな映像のゲームが動作するなんて、不思議な感じがします。
2024-03-13 07:06:36
凄いですねQuakeを移植されたのですね。公開ありがとうございます。
Ryzen3700XのPCの津軽ではちょっと重いようでしたがデモはまずまずでした。
このくらいならハイエンドクラスのWindows PCで普通に遊べそうですね。
2024-03-15 00:41:23
TOWNSと関係ないんですが、先々週日本に出張してまして、BeepでFM77AV用PSY-O-BLADEが3480円で売ってたので思わず買ってきて、メロディモジュールは半端に傷んでいたのですがなんとか曲名を解明して(ネットで調べればわかっただろうけど一応自力解明にこだわった)、陸奥でクリアに成功したんですが、クリア後に「B.N.Pと書かれたディスクが何だったのか最後までわからなくなかった?」ということに気が付いてしまったんですが、検索しても出てこないんですが、誰かPSY-O-BLADE当時プレイした人で、ゲーム中のこのディスクに何の意味があったのかわかった人いますか? 何かのメッセージを読み飛ばしたんだろうか? と思って途中ステートセーブしながらやってたんで、場面に戻っていろいろ試したものの、結局わかりませんでした。
しかし、8ビット機でよくあのレベルのアニメ作りましたね。当時は一度クリアしたらすべてわかってしまうアドベンチャーゲームに5000円も6000円も出せないと思ってあまりプレイしなかったんですが、大学に入って本嫌いが治ってからは、小説を買って読むようなものか、と、納得したもんでした。
2024-03-18 11:06:33
>477 山川機長さん
PSY-O-BLADEは持ってないのでご質問の答えではないのですが、アドベンチャーゲーム好きとしては折角なのでD-SIDEをお薦めします。
前作のLagrange L-2からの続き物ですので前作もお薦めしますが、このシリーズはメニュー選択式ではなくコマンド入力式のアドベンチャーゲームとしては一部を除き答えが論理的でよくありがちな不合理な答えが少なくて良いです。
派手なアニメーションなどは有りませんがペイント方式の描画としては高速な部類な点や、D-SIDEではローマ字入力が出来たりと地味なところで優れていると思います。
"一度クリアしたらすべてがわかってしまうアドベンチャーゲーム"でも繰り返し遊べる良作だと思います。
TOWNSではこういうコマンド入力方式のアドベンチャーゲームが記憶では出なかったので残念でした。 当時は"CD-ROMの大容量を生かして考えられるワードに対する返答を大規模に用意できるのでは?"と考えていましたがシーク速度等を考えると無謀な考えなのかも知れませんね
2024-03-21 09:39:59
いや、今は結構当時アドベンチャーゲームあんまりプレイしなかったのが心残りになってるので割と積極的にプレイしようかと思って、陸奥にはエミュレータでローマ字カナ入力するモードを追加したりしてあったんですが、PSY-O-BLADEはクリックで進んだのでこの機能は使わなかったですが。
Lagrange L-2とD-Sideは割と最近になってプレイしたんですが、画面のクオリティも高くてSF度も高くておもしろかったですね。ただ、攻略情報見ないとクリアできませんでした。
2024-03-22 11:38:42
Quakeを作って思い立ち、マーティーで動かそうとしていたのに手つかずだったWolfenstein 3Dをマーティーでも動くようにしました。
https://bcc.hatenablog.com/entry/2024/03/24/140432
TownsOS V1.1 L30とV2.1 L20の二つのOSが必要、フレームレートは平均一桁、初回ロード3分なので素直に486機・HDDインストールで動かしたほうがいいとは思います。
実機でWolfensteinを動かして津軽と実機で差異がある箇所がありました。該当ソフトはないと思いますし、該当していたWolfensteinも直してしまったので再現する必要性は薄いはずですが。
・RF5C68のコントロールレジスタ(04F7)で最上位ビットをオフにして再度オンにすると有効chがSTレジスタで設定した開始位置から全て鳴る(Wolf用に修正する前のほうが実機通りの挙動だった)
・256色モード時、32bit(4ピクセル)毎にレイヤ1側の設定レジスタに沿って画面表示位置が決まる。現在はレイヤ0側の設定値で一括に表示位置が設定される。
2024-03-28 14:31:34
了解しました!PCMは実機ではSTのOff->Onで再生位置がリセットされるという感じですね? Rocket Rangerのセリフがうまく再生できない原因が解明できずにいたので、実はこれが原因だったのかもしれません。というか、今の津軽の実装ではSTレジスタに値を書いたタイミングでプレイポインタを変更していたのですが、実は再生開始時に更新するのが正しいのかもしれないですね。そのように修正してみます。
256色モードについては1画面モードの場合、実機ではレイア0ではなくレイア1のレジスタで表示位置が決まるということでしょうか? 表示開始位置のみレイア1で、他のパラメータはレイア0の値を参照する感じですかね?
なお、Linuxのハードディスクインストールもできるようになりました。やってるとCD-ROMの読み込みにしくじることがあって、どうしてだろうと思ったらtowns_cd.cの中で律儀にコマンドにエラーがなかったコード(00 00 00 00)を確認しているのですが、他のデバイスの割り込みを禁止してないので、00 00 00 00を読みこむ前にData Ready(22 00 00 00)がステータスコードを上書きしてしまってエラーだと思う、というものだったので、Data Readyを出すときstatus queueをクリアして上書きではなく追加するようにして対応したのですが、内蔵CDのステータスは何バイトのqueueになってるのか、そもそもqueueなのかなどいまいち謎ですね。
2024-03-31 21:19:22
1画面でも4ピクセル毎にレイヤ0・1の設定で交互に表示に反映されるようです。
旧バージョンをMARTYで動かした際の動画(FA0側の初期値は62976で画面の更新のたびに増減、FA1は0のまま。現在のバージョンは両方変更)
https://www.youtube.com/watch?v=InqQTjcNXzU
画面が更新される度にレイヤ0側のレジスタのみ変更してトリプルバッファ表示しても、4ピクセル毎に更新されてないレジスタが参照されるため格子上な表示になってしまう。
一応自分もLinux入門という本に収録されていたSlackware(カーネル2.0)のインストール、X Windowの起動を確認したのですが、フルカラーモードで起動すると津軽そのものが落ちるようです。
デモンストレーション 93 冬のフルカラー切替時にも同じ症状のようなのでLinux特有の問題ではなくハイレゾCRTCそのもの(多分Fixing single-page high-resolution mode.あたりの修正?)の実装かと思います。
2024-03-31 22:01:52
ご報告ありがとうございます!確認して修正したソースをPUSHしました。24-bit colorモードのテストがひとつもなかったんですね。デモ93冬だとフルカラーにたどり着くまでちょっと時間がかかりすぎるんですよね。自分でなんか書くかな。
画面表示位置問題は、これ再現しようと思ったらちょっとレンダリングが大変になりそうです。physmem.hのSinglePageOffsetToLinearOffsetがシングルページモードのVRAMアドレス変換をやってるのですが、ビット2がビット18になり、4バイト単位で2画面モードのレイア0とレイア1のアドレスにマップされてるっぽいんですね。おそらくレイア1のVRAMアドレスに対してはFA1が適用されるということのようですが、この対応はとりあえず保留とさせてください。
2024-04-01 06:48:49
PCMですが、STレジスタ書き込み時と、チャンネルオフ→オンしたときにプレイポインタをSTレジスタの値にリセットするようにしてみました。STレジスタ書き込み時もプレイポインタを変更しないと変になるものがいくつかあったので、多分どっちもプレイポインタをリセットする効果があるのではないかと思います。タイミング的に厳しかったシャーロックホームズの探偵講座その他いくつか試してみたところ、これまで正しく再生できていたものは引き続き正しく再生できているようです。
2024-04-01 08:46:44
残念。この変更でロケットレンジャーのセリフの再生が直るのではないかという期待ははずれました。
2024-04-01 09:34:45
STレジスタは何かの条件で書き込み時にプレイポインタが変更されないケースが存在するようなのですが、その条件がはっきりしません。
MAMEのRF5C68ソースコードでは該当chが停止中のみSTレジスタ書き込み時にプレイポインタを変更するようにしているようですが、そのように変更すると音がおかしくなるEUPファイルが存在するので実際は違うはず。
一応テストした限りでは、津軽と実機で違うケースになったのは以下
実機で全く再生されないケース(津軽では再生されてしまう、旧Wolf3Dコード)
_outb(0x04f7, 0xc1); //該当ch選択
_outb(0x04f6, 0xc0); //STレジスタ変更
_outb(0x04f7, 0x80);
稀に再生されないもののとりあえず再生(津軽では確実に再生、現Wolf3Dコード)
_outb(0x04f8, 0xfe); //chオンオフレジスタで一旦該当chを無効化
_outb(0x4f7, 0x8f); //何故か無駄なRAM書き込みをした後でないとレジスタが正常に反映されない?
*waveram++ = 0x0;
~
_outb(0x04f7, 0xc1); //該当ch選択
_outb(0x04f6, 0xc0); //
_outb(0x04f8, 0xfc); //再度該当chを有効化
_outb(0x04f7, 0x80);
2024-04-01 10:57:45
なるほど!RF5C68はもう少しデータシートを詳しく見てみます。
ちなみにロケットレンジャーはソフトウェアのバグである可能性が僕の脳内では70%ぐらいになってます。調べたらオープニングデモの途中でFM音源割り込み中にクラッシュしてて、普通DOS Extenderはそのまま実行を中断してしまうのですが、ロケットレンジャーはGP Exceptionのハンドラが設定してあってクラッシュしたらそのままオープニングデモを中止してゲームのメインに飛ぶように作ってある、のですが割り込みハンドリング中のクラッシュなものでISRをクリアせずに先に進んでしまうので、以後サウンド割り込みが一切かからなくなるという現象が発生してました。まさかそんなはずは、と、思ったんですがさっき実機で試したら実機でも発生しました。
実機でも本来のオープニングの途中、津軽上とまったく同じタイミングででゲームのメインに移行していて、本来鳴るべきBGMもなってませんでした。(ゲーム中BGMが無くて随分地味なゲームだなと思ったら本来は鳴ってるはずだったらしい)
これは、オープニングデモが早く進み過ぎるのが原因なので、どうなっているのかと思ったらBusy waitでタイミングを取っていて、試しに-FREQ 8 -CDSPEED 1Xにしても早く終わりすぎる現象は変わらなくて、デバッガ使ってBGMが一区切りするまで無理やり止めて先に進めたら正常に進むんですよね。出荷前に誰も気が付かなかったのかと思うんですが。どうやら起動中AボタンとBボタンを両方押し続けて、クラッシュ箇所まで進まないようにするしか手が無いようです。テストする人がオープニングデモを見るのが面倒になっていつもABボタンを押してデモを飛ばしていた可能性ですかね。
2024-04-01 21:12:22
実機互換モードでやったら普通にオープニング最後まで見れた(が、なぜかロケットパックその他が転送されてきた画面でフリーズするのでやっぱりなんか変)ので、試しに津軽でFREQ 4まで下げたら普通に起動しますね。そうか。ビジーウェイトでタイミング取ってる上に386のJNEは486のJNEよりも遅いから影響が大きいのか。486だと3クロックが、386だと7クロック。DEC ECXも386が2クロック、486が1クロックか。だから待ち時間は倍以上の差が出るのか。TOWNSの互換モードってそこまで再現できているのだろうか。CPUの所要クロックまでは変えられないんじゃないかという気がするんだけど。互換モードだとCPUとメモリ間の信号を読んで特定の命令には追加でウェイトをかけてたりするのだろうか?
2024-04-01 22:24:52
互換モードはキャッシュメモリの無効化とメモリ・VRAMウェイトの値を増加させるものかと思います。
ロケットレンジャーは所有していないのでわかりませんが、津軽は現時点でFREQ 5で大体CPU演算・メモリ操作は初代機386DX 16MHz・メモリ3ウェイト相当とほぼ合っている(ベンチマークの結果やCPUの速度でスピードが変わるゲームの体感)ようなのですが、VRAMウェイト(初代機実機では6ウェイト)は反映されてない関係か実機より早く進行する(PSYCHIC DETECTIVE SERIES Vol.1「INVITATION」のデモなど)ものはありました。
2024-04-01 23:11:49
CD-ROMに関しては後悔されている情報が少ないので動きから再現するのが実情だと思うのですが、赤本上ではパラメータレジスタは8段FIFO,ステータスレジスタは4段FIFOとなっていますね。
SUBCPUCがステータスを通知する際に前のステータスが残っている場合の動作なので、より上の層での実装だと思うのですが・・・
コマンドを連続発行して、ステータスが何個まで取れるかを実験コードを書いてテストするしか方法が無いのかも知れません。
2024-04-02 09:20:12
Wolfenstein3D試してみました。
最初、PC-98版のファイルを使用したのですが起動してくれず、
GOGで購入してダウンロードした物だと起動してくれました。
USB接続のCDRドライブが壊れていたため、ICカードでの確認となり
BCCさんが指定してくださっている起動FDでは無い事を予めご承知おきください。
テスト環境は次の通りです。
CONFIG.WL6を除く8つのWL6ファイルと2MB版、4MB版のEXPを4MBのSRAMカードに書き込み。
TOSV2.1L20で起動FDを作成し、AUTOEXEC.BATからMSCDEXを削除、CONFIG.SYSにはTBIOSとICカードドライバ、SHELLのみ記述。
マーティー → 2MB版で起動し、デモが動作しました。メニュー画面操作中やゲームプレーを開始して数秒で止まりがちです。
20F RAM2MB → マーティーと同様でした。
20F RAM6MB → メニュー画面操作中に止まらなくなりました。2MB版、4M版共に画面サイズ変更を繰り返したり、ゲームプレー開始から30秒後あたりで止まります。
SN RAM4MB → 2MB版、4MB版共にゲームプレー開始から2~5分後あたりで止まります。ヌルヌル快適に動作しました。
HC RAM40MB → SN同様。
ICカードの使用を止めて、TOSV2.1L51をインストールしたHDDへゲームをコピーしました。
HC RAM40MB → SN同様でした。
2MBで止まるのはBCCさん指定の起動FDでは無いため、メモリ不足な気がします。
MSCDEXを外せばメモリが足りるかなと気になり試しました。
上位機種で止まる原因は分かりません。
ファイルコピー中にデータが壊れたり、こちらのTOWNS本体の故障の可能性もあります。
4MB以上の環境でゲームが止まるときは、止まる直前のグラフィックが面積1/4サイズで画面上部左右に赤、青、紫など原色に近い色で表示されます。
マーティーでこのデモ画面を拝めたのは感動でした。ありがとうございます。
2024-04-06 08:19:50
>aochanさん
停止する際はキーボードで操作していましたか?
デモは再生できて実操作だと停止する、CPU速度の早い上位機種だと数分は問題ない後状態は、キーボード操作時にフリーズする現象と一緒のようなので。
津軽側が問題かキーボード入力を割り込みで判定している実装の問題かわからず未修正、マーティー実機もキーボードが無かったので未確認でしたが、割り込みじゃなくてバッファ使った実装にしてみます。
2024-04-06 09:15:56
返信ありがとうございます。
停止する際は何れもキーボード操作中です。
矢印キーでメニュー画面のカーソルを操作している時や、
ゲームプレー中に矢印キーで移動や回転をしている最中ですね。
キーボードから指を離している場面では停止しなかったと思います。
2024-04-06 10:56:57
Wolfenstein3Dをパッド操作で行ったところ、投稿番号491のマーティーでも全く止まることなくプレー出来ました。
2024-04-08 21:29:10
津軽のキーボードの実装は、BIOSを見ながらBIOSが期待するような値を返すように書いて行ったので、きわどいところでは実機と動作が違うかもしれません。(ときどきTranslation ModeでShiftキーを取りこぼすのもそのせいかも)
なお、TOWNSとぜんぜん関係ないですが、皆既日食見てきました。http://ysflight.in.coocan.jp/aviation/logbook/j2024.html
2024-04-10 14:02:11
津軽でも実機でも同条件でフリーズするので違いはないと思います。
割り込みやめてバッファでやればいいんですけど、こっちの方がプログラムはスッキリしているし移植元の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