明けましておめでとうございます。
今年も津軽の更なる発展を期待しております。
ディスクイメージは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