第5部:PC88EM開発編:第三幕(下からお読み下さい)
2002/09/26
すっかり涼しくなり秋を感じる今日この頃ですが、88エミュレータ界に結構動きがでております。まず、
pseudo bios:M88作者cisc氏が開発・公開されたfree BIOSです。著作権の問題でBASIC部分がないために起動できないものが結構あるようですが...。しかしこれを開発されるなんて...(絶句)。
さてpseudo biosは(当たり前ですが)M88での動作が前提となっておりまして、これをなんとかPC88EMで...と思ったら
pb2p88:88エミュ界の重鎮AKATTA氏により、pseudo biosを他のエミュレータで動作出来るファイル「PC88.ROM」に変換してくれるツール「pb2p88」が公開されています。ありがたいことにJavaアプリでして、Mac OS Xではダブルクリック起動が可能です。GUI化されてます。
pseudo bios〜pc2p88を経て出来上がった「PC88.ROM」。早速PC88EMで動作させて見ましたが何故か単色モードになる場合が多いです。(なんでだ)
さてCodeWarrior8Jも無事届き、現在Carbon版PC88EMの開発を進めてます(ゆっくりと)。Mac OS Xにもようやっと慣れてきたのですが、画面表示にものすごく足を引っ張られています。QuickDrawのせいか....つうか俺のせいか。なんとか速くしようと試行錯誤しているうちにテキスト表示関連で重大?なバグを発見....。以前arearea氏から御指摘頂いた問題だった。でその部分を修正した、PR3.62を公開致します。またFPS表示なども付けております。(たぶんClassic版の公開は最後になると思います)
2002/09/01
Jaguar(MacOSXx10.2)を買ってしまいました。最初classicが起動しなくて困ったですが...。私的な評価としては少し(従来の)MacOSらしくなったかな....といったところでしょうか。基本的にはv10.1.5とあんまり変わってないですが。
AKATTA氏によるJavaベースのD88ファイルEditor「d88edj」。Mac OS X(v10.1.5 / v10.2)及びMacOS9.2.1での動作が確認されております。88 Break++ にて公開されています。
CodeWarrior8が届くまでおとなしくしていようか...それともCarbonEvent対応を検討するか....どちらにしてもビールを飲んでからでは何もできない。
2002/08/26
結局CodeWarrior8を注文してしまいました。発売は9月13日らしい....。未だかつて一度もバージョンアップをしたことがないのですが、噂によるとソースの手直しが結構でてくる様子...。また遅れの気配。いきおいでJaguarも買ってしまいそうだ。
88エミュレータ界の重鎮AKATTA氏によるJavaベースのD88ファイルEditor「d88edj」が開発中。(Hが初めて覚えたTerminalのコマンド -> [java]....今の所これのみ)。Sub BBSのリンクから入手して下さい。Mac OS X v10.2での動作報告募集。
PC88EMの近況ですがCarbon化を進めております。 が....あまり進んでないです。
2002/08/09
あれ以来.....(いつ?下に書いてあるか....)Mac OS X(10.1.5)がメインになっている状態です。今まであまり関心がなかったのに。Mac OS 9と比べるとメニュー処理とかでもたつく感があったりするのですが、QS(G4/733で)あればそんなに気にならないレベルでしょうか。LC2に入れた漢字Talk7.....そんなフィーリングです。いったいいつの話だったろうか。
私の使っているCode Warriorは相変わらずPro5Jのままですが、9月には8が....。そろそろバージョンアップしないとアップグレード対象から外れてしまうのではないか....迷いますな。
さてPC88EMですが、上記の理由からか?再びCarbon化にトライ中であります。PC88EMCてな名前にするか...。
Carbon化についてはソースの手直し部分はそれほどの手間ではないのですが、問題なのはMac OS XとMac OS 9以前での動作の違い...。Mac OS X(Classic) + Code Warrior Pro5でもCarbonアプリのコンパイルはできるのですが、デバッグができねえ....。でまあぼちぼちと進めております。そういえばBEEP音にsquareWaveSynthを使っているのでココは作り直しが必要だな...。今のところN-Mode以外動かんです。
2002/07/27
Sub-CPU『Auto』時の稼動比を1:1から1:2に変更しました(PR3.6a nC)。
2002/07/26
iToolsが.macと名前を変え有料化。iToolsはMac OS 9のウリのひとつだったはず。許諾契約書なんぞ見てねえぞ...と納得いかんので(署名もした)そうそうにファイルをTripodに移しました。
それはそれとして『Allow other task』なるメニューコマンドを追加し、WaitNextEvent()をメインループ中を入れてみたのですが、結構まとも(だと思われる)なのでPR3.6として公開致します。他の変更点はありません。詳細はReadMeか左のフレームのfaqからどうぞ。
で何故かMac OS Xに急に興味がでてきてしまいました。
2002/07/17
ぽるさんの書き込みで判明したのですが、PC88EM公開からちょうど1年経過しておりました。これを記念してPR3.52nCを。(目標としていたことも半端な状態で...というか記念するほどのもんかという見方もありますな)
今回のポイント(?)は、『Sub CPU制御(駆動)Autoモードの追加』です。他のプラットホームの88エミュレータはとうの昔に実装されていると思いますが、メインからのコマンド待ち状態のときSub CPUを停止させ処理速度をかせぐ...ルーチンを組んでいます。(モノによっては動かないものもありますのでその時はAutoのチェックを外して下さい)
またメインウインドウの下の部分をシンプルにしました。D88ファイル名の表示とかを消してます。これだと何が仮想FDにセットされているかわからないのでこんなウインドウを作ってみました。
ROM Versionが表示されたりします。なんかかっこいいと思っているのは私だけかもしれない...。
なおアップデートの詳細はRead Meにて御確認下さい。
2002/07/06
PC88EM PR3.51nCをアップしました。デバッグをメインとした細かい修正ばっかりですが、まあ0.01ぐらいしか?向上してないです。詳細はRead Meにて御確認して下さい。
下でスクリーンショットをのせた「アルカノイド」は動かないです。だったらのせるな?。確かに。
2002/06/28
もう少し動作ソフトを増やしてやろうと思って活動しておりますが、やはり割り込み処理とFDC廻りがネックとなっているようです。割り込み処理はかなりいい加減な作りだし...FDCもか。といった訳で動いたソフトをちょっと紹介。
アーケードからの移植版「アルカノイド」(C)TAITO。namcoフリークだった私は何故かTAITOを嫌ってました。当時。ところでゲーム開始後にすぐ暴走してしまう...。Z80処理系のバグとみた(もちろんPC88EMの)
「ボコスカウォーズ」(C)ASCII。Read Diagnosticがここでも出て来ました。以前「Might & Magic」で苦しんだのですが、実はこちらでも...。なんか理解できてないです。
御要望の多い「MULE」とかも動かしたいのですが...。
2002/06/15
PC88EM PR3.5nCの公開を開始します。変更点の詳細は同梱のReadMeで御確認下さい。
目玉商品?はBEEPエミュレーションとフルスクリーンモードの搭載といったところ。でも液晶でのフルスクリーンはあんまりよくない...。
BEEP音エミュレーションの出来は作者的には70点といったところでしょうか...。BEEP音はもう少しきれがあるといいのですが。フルスクリーンモードはQuickTimeを使用しています。UI(といってもメニュー廻りだけだったりする)も多少変更しています。
ま、とりあえずこれで「Silence88」の危機はのりこえた訳ですが、FM音源についてはあいかわらず未搭載です。自力開発のためにはサウンドマネージャーをかなり使いこなす必要があるようです。
OnlineFAQというほど立派ではありませんが、紹介のページを作ってみました。
2002/05/26
QT + MIDIと書いたとたんに結構御指導を頂く。
掲示板にも書かれてしまったが「FM音源への思い入れ」。正直あんまりないんですなこれが(BEEP音の方があったりする)。N-BASICかdB-I BASICばっかりさわってたのはご存知かと思いますが...。といってもどうでもいいと思っている訳ではなく、あくまでアプローチの一貫であって、実機になるべく近付けるのが目標なのは変わっておりませんので...一応。でも無理な事を計画しているのではないかという予感が...。
といった訳で現在はSoundManagerを勉強中であります(QT + MIDI はどこに?)。できればBEEP音でまず実装を...とか思っていますがこれがまったく別物だしなあ。
2002/05/19
FM音源のエミュレーションはAppleユーザーとしてQuickTimeを使わない訳にはいくまい。「QuickTime + MIDI」。これだ。これにきまった。とかいってこんな組み合わせのエミュレータは存在しない(のではないか...知っている限り)。一抹の不安を残しつつ進行中。FM音源側アドレスポート0x28に出力されるタイミングでGMドラムキットのCowBellを鳴るようにしてみたら...結構泣ける...。
以前オークションで入手した、「漢字Talk7プログラミング マルチメディアプログラミング」BNN/赤松正行著。やっと出番がきた...と思ったらこのころQuickTimeはできたばっかりで、MacでのMIDIはMIDI Managerを使ってたのか...。QuickTime の資料がこれまたないんだよな...。
上とのからみでメインループの見直し中。MainとSubCPUの処理比率変更モードを追加。(PR3.2までは2つのCPUの処理の順番をMain/Main/Sub(実質Main:Sub = 2:1)で行っていたが、3:1まで増やしても動作はあんまりかわらない。4:1あるいは1:1ではブートできない...。)
メインループを変えた為に結構動作速度が向上したのだが理由がわからん...。
2002/05/17
Welcome to basisi's home(by Basisi氏)のリンク先修正。
専用掲示板はSub BBSとしてとりあえず残すことにしました。イカす名前を考えて下さい...。ぜひ。
2002/05/12
こちらの専用BBS、少し物足りないなあ...と前から感じておりましたので、JBBSに「(H*_*T)the BBS」を開設しました。2ch形式のマルチスレッド掲示板です。
注意事項としては今までと同じなのですが、気楽に書き込んでいただけると幸いです。固定ハンドルとかの機能もありますのでご希望ならばメールでご連絡下さい。
従来の掲示板もとりあえず残しておきますが、近日中に削除の方向で。でもログは読めるようにしておきます。
2002/05/08
ソースの一番始めにいつからそのソースを書きはじめたかをコメントで記載しているのですが、一番古いもの(Z80エミュレーション部分)を見たら【2001.05.10】。もう少しで1周年か...。
それにしてもウイルスメールが多い。
2002/05/03
PR3.2をアップしました。詳細は同梱の「お読み下さい」を御確認下さい。
特に問題がなければ次のステップに...進みたい。
2002/05/02
Game&Watchとか差し歯が欠けたとかが多かったので久々にPC88EMの近況報告を。
「FM音源部の作成を開始する」と高らかに宣言したにもかかわらず、いまだ手をつけておりません。何をやっているかというとμPD765A(フロッピーディスクコントローラー)部分をもう少しなんとかしたい...ということでWRITE IDコマンドを中心にいろいろ修正しております。
といっても特には完璧を求めてる訳ではなくて、はやいうちに見切りをつけてFM音源に...と思っております。(全く対応していないコマンドがあと3つはある。あんまり使われないのばかりですが)。
といった訳で近日中に(もう少し変なところを修正して)PR3.2をアップしようかと考えております。掲示板で御指摘頂いたものは全部、ではもちろんなくて半数ぐらいでしょうか?動くようにはなってます。
古典的名作RPG「Wizardry」。ゲームで最初に徹夜してしまった記憶が。シンプルな上にシビアな設定で最高レベルのハマりを体験。Apple版がオリジナルだと思うが、この88版もいい出来だった。...ディスクアクセスが遅かったけど。
WRITE ID(フォーマット)コマンド対応!...(たぶん)。μPD765Aのエミュレートはやりがいがあるなあ...ホントに。ディスクアクセスのウェイトを付けて無いので何故か高速でフォーマットが完了してしまう。(そういえばTHEXDERの次面データ読み込みもなんか速い...)
PR3.10では「Wizardry」は起動しなかった...と思ってたのですが動きますな(注:V1モードのみ。V2モードでは永久ループに陥ります)。チェック不足だった。
2002/05/01
coup de vent(by一陣の風氏)のリンク先修正。リニューアルおめでとうございます。しかし新掲示板+チャットまで搭載されて困った。(何が?)
2002/04/29
ちょっと実家に帰ってました。古いベーマガは見つけられなかったのですがコレを発見...。
任天堂GAME&WATCH「HELMET」(C)Nintendo 1981。しかし彼のヘルメットはあんまり役にたってない...。GBC、GBAをする子供はよく見かけるが、G&Wで遊んでいたら間違い無くヒーローだ。
このG&W。手にとってみると小学生のときの修学旅行でふとんの中で懐中電灯をつけてやったなあ...とか、液晶全面のシート(家とか地面がプリントされている)をひっくり返したりするのが流行ったなあ...とかいろいろ思い出してしまう。見つかってよかった。他にもデュアルディスプレイ(2画面)のドンキーコングもあったハズだけど見当たらなかった。誰かにあげてしまったか...。
そういえばPC88EMとは何の関連も...。こちらの方はWRITE IDコマンドがだいぶ出来上がってきましてフォーマットが出来たりするようにはなってきてます。
2002/04/19
HのPC環境を1年ぶり(ぐらい)で更新。よけいなことをやってます。
G-VRAMの表示ルーチンをちょっと見直して5%ぐらい速度UP。しかしその前にステート数処理部分をつくったために同じぐらい速度が落ちている。
何の関係もないけれど差し歯が欠けたので歯医者へ。左の奥歯に虫歯が2つあるそうだ。
2002/04/14
N-Mode強化月間に際して(?)、PR3.10nCをアップしました。VRAM(TEXT)廻りの速度向上がメインです。
N-BASICはグラフィックとの重ね合わせがいらないので重ね合わせ用のG-Worldを飛ばして直接メインスクリーンに書き込む様にしたら、「うわー」というほど劇的に速度UP(ほかにも原因はありますが)...というか今まで遅すぎた。こんな感じになってます。
「N-TYPE」ではNo Wait+Sub CPU Stopでもこんな感じで非常に低速になってました(PR3.04)。特にカラー表示が遅くて2面になると上下の岩?が赤になるため、より一層の速度低下...。
4MHzですら速すぎるというのに...。いやーよかった。しかし序盤で<L>のパワーアップがでてこないと先に進めないゲームだ。ちなみに2面のボスとの戦いは左下が安全地帯。(作者Tから聞いた)
掲示板でarearea氏より御指摘の頂いたcolor rnd*7+1:print "*****";のループ。PR3.04(N-Mode)+G4/733での速度
2倍以上速度Upしています。といってもN Modeモードのみ。V1/V2でも少しは向上しているのですが...。
V1/V2モードでも多少変更しており、ちょっとは速度UPしている(はず)。CopyBitsの転送modeにtransparentなんて使っているのがよくないのであろう...きっと。srcOrが使えればいいのだが(実際に使用するとGV-RAMの明るい色を上書き出来ない)。
また、N-BASICモードでCMTファイルが読めるようにもなってます。といってもサンプルが少ないので問題がある場合も想定されますが。あと一部の未定義命令の処理部分追加。
FM音源部分は全く進んでません。(<---これがポイントだな)
2002/04/10
FM音源のエミュレートはやっぱりMIDIでいこうか...とか(ホントか?)思索中ではあるのですが、その前にグラフィック表示を改善したくなってしまいソース作成中。cultリソースを使えば、パレット切り替えの際の速度低下とかなんとかなるのではないか...とか。まあ作ればわかるのですが。だいたい8色しか出ないマシンでフルカラーの必要性があるのか!。(とかいって何度も更新して、古い関数もそのまま残っているのがいっぱいある)
という訳で画面表示部分修正(CRTC部分も) -> ステートの概念とウエイト方法 -> FM音源部分 といった感じで進めてみよう...と。
2002/04/07
テストプレイとかいいつつもFalcomゲームをやり込む日々。スクリーンショットは控えようと下で書いたにもかかわらずちょっとさみしいのでなんとなく...。
「YS」(C)Falcom。ダームの塔内にある渡り廊下。やさしいRPGというサブタイトル?があったようだが...結構難しく攻略ページを渡り歩く。ちなみに最後から2番目?のボスがなかなか倒せず頓挫中。2回はくり返し遊んだ気がするのだが全然記憶が...
「XANADU」(C)Falcom。3日もかかってついに辿り着いたKing Dragon。Web上に攻略ページがたくさん。平成生まれの娘達にも結構人気がある。特にキャラクターデザインがいいと思う(ホントは音楽もいいのだが...)
2002/04/02
FDC廻りのバグフィックス中心ですがPR3.04をアップしました。...なんかPR3.0あたりからWRITE DATA(μPD765Aのコマンド)の処理がおかしくなっていたようです。結果、BASICその他で全てのSAVE命令でハング。掲示板で御指摘頂いたYS(1)のロード&セーブはうまく動作すると思います。
それとREAD DIAGNOSTIC処理のコードを作成しました。いままでREAD DATAと同じにしていたなんて...まさか...。もしかしたら動作ソフトが一気に増えるかも知れない...と淡い期待を抱くもあんまり変わらず。
arearea氏から御指摘頂いたセミグラフィックの部分直しました。
2002/03/29
更新履歴があまりにも長くなってきたので「第4部:PC88EM開発編:第二幕」として分離。あまりにもスクリーンショットが多いので苦情が...あった訳ではないがあまりにも多すぎるのでちょっと控えようかと。なんとなく配色も変更。
リンク先に YOH氏の X68000 Emulator For Macintosh を追加させて頂きました。E日記をダウンロードして読んでいた頃はこうしてリンクを貼らせてもらえるとは思って無かったな...。
--
ここでなんとなくPC88EMの課題を整理してみます。優先順位は...気の向くままだったりして。これではいかんと思われましたら掲示板にでもお書き下さい。ただ気持ちが傾くかどうかは別です。
<<< PC88EM:今後の課題 >>>
項目 何をしなければならないか(何をしていないのか) やればどうなる(と思われる?) FM音源対応 下のZ80エミュレーション部分と重なるが、現状ステート数を計算させていない(ホントかよ...とか言われそう)のでこの部分と、たぶんテンポどりの絡みでウェイト部分を修正しなければならない。
FM音源のエミュレーションをどうするか。(というかMacのSoundManageの事が殆ど分かっていないという問題もある)
特にいうまでもないがサウンドが鳴るようになりTHEXDERが楽しく(なって欲しい...)。BEEP音に関しては次の課題へ。
PR4.0になる(たぶん)
自己満足(以下全ての項目も)
Z80エミレーション いくらでも高速化できる要素はある(はず)。
対応していない未定義命令も結構残っている
はやくなる(書く事もないか...)。但し現状では殆ど(他の事と比較してという意味ですが)バグは見つからないので動作ソフト数はあまり増えないかも...。 画面表示 いくらでも高速化できる要素はある(はず)。特にテキスト表示部分は必須(正確なエミュレートも) はやくなる(テキスト表示部は必須) 割り込み処理正確化 もうちょっと資料を読む(いまいちわかって無い部分が多い...もしかしたら割り込みしすぎなのかも...) 動作ソフト数が少し増える(と思われる) FDCエミュレーション正確化 いまだ未サポート命令あり。READ IDもいまいち不正確か? 現状で起動しないものは殆どココに原因がある(のではないか)。で動作ソフト数が結構増えるのでは? その他 CMTの読み込み処理(20h 21hあたり)があまりにもいいかげん。N-BASICではロードできなかったりする。 N-BASIC & テープマニアの方に御満足頂けるかも 娘達が「トマトアドベンチャー」(for GBA)の話ばっかりしてくるが全く理解出来ない(やってない)ので、「最初にカキが倒れてて、でもその場ではどうしようもないので一旦先に進んで、池で水を汲んで...」とか言って切り返す。