[PR]今日のニュースは
「Infoseek モバイル」



CONTENTS
Top Profile Vanity Develop P6Dev JavaScript (゚Д゚) BBS Link




PC6001VW
The PC-6000/6600/SR series Emulator.
for Windows 98/Me/2000/Xp


■前のページに戻る■

▼【 ファイルのダウンロード 】へ▼
■ 始めに
PC6001エミュレーター PC6001V の Win32対応版です。

■ 特徴
SUB-CPUの挙動を擬似的に再現しているので、ハドソン製のゲームも大概動作すると思います。 音声合成出力とともに字幕スーパーを表示します。 クリップボードからの文字列転送、ローマ字仮名入力などで雑誌リスト入力支援を行っています。 キーボード置換機能によりキー同時押し排他問題を解決し、 ついでスペースキーやジョイスティックボタンの連射機能、 どこでもセーブ機能なども併せて、 不条理に難しい昔のゲームをガチンコでプレイする事が可能です。


■ 開発方針
開発方針決は、『ソフトエソロジー(software.ethology)』(造語)です。
理屈はともかくとして、実際のソフトウェアの動作内容から実機に期待される挙動を推測し、不具合を補って行く方法を採用しています。 いや、別に資料を全然持っていないとか、実機が危篤状態で実験できないとか、そう言うトホホな理由からではなく(あるけど)、小生が生粋のリーバースエンジニアというだけの事であります(;・∀・)。
その他、P6プログラミングを支援出来そうな機能なども積極的に実装しています。 現役プログラマが作業し易い環境を整えるのも重要なコンセプトですね。

ハードやプログラミングに対するウンチク・小ネタなど情報提供大歓迎。

■ 必要なシステム
■ 必要なランタイムライブラリ
■ インストール
ここではインストール手順を簡単に説明します。

  1. 先ずは DirectX のランタイムライブラリをインストールして下さい。

  2. 所有しているPC6001実機から内臓ROMを吸い出してファイル化してください。 (詳しくは本家PC6001Vサイトの『(DOS版)使い方』のページを参照。)

    [ 備考: PC-6001A用ROMは初代PC-6001用と同じ手順で実機から取り出した後、出来上がったROMイメージの拡張子を ".61" に変更下さい。]

  3. このページからダウンロードした PC6001V for WIN32 の圧縮アーカイブを任意のフォルダに解凍し、上で作成したROMイメージを "ROM" というサブディレクトリに格納してください。

  4. 下のダウンロードコーナーから P6 Allegro をダウンロードして、"PC6001VW.exe" と同じディレクトリに格納してください。

  5. 他、mkII以降のユーザーは必要に応じて固定語音声のWAVファイルを作成して "WAV" というサブディレクトリに格納します。詳しくは "PCM.TXT" 参照のこと。
    ( 固定語WAVは音声合成チップ内のデータと判断しているので、エミュレータには付属させていません。)

これにて、インストール作業は終了です。
基本的な使い方は、DOS版 の PC6001V と同じですので、 その使い方は本家 PC6001V (DOS版) の使い方を読んでください。

PC6001V作者、ゆみたろさんのHP: 自己満足のこころ



■ 実行
PC6001VWエミュレータは4つの実行ファイルが存在します。

PC6001VW システムメニュー。

p6vwemu エミュレータ本体。

p6vwsub エミュレータメニュー。
(エミュレータ内部から実行されます)

p6vwview スナップショットビューアー。
(エミュレータ内部から実行されます)


"PC6001VW.EXE" を起動すると、↓のようなダイアログが表示されます。
OPTION

ここで、各種オプションを設定して [Start Emulation.] のボタンを押すと、 PC6001VWエミュレーターが起動します。 ここで設定されたオプション内容は "PC6001VW.INI" に書き出されます。

Option.1 項目の詳しい内容はこちらのページを参照。
【Option.1 項目説明】


[Option2] タブを選択すると、 下のような画面に切り替わります。
ここは基本的に変更頻度の低い項目が設置されています。
OPTION

Option.2 項目の詳しい内容はこちらのページを参照。
【Option.2 項目説明】


『Usage』 タブを選択すると、↓のようなドキュメントが出てきます。
USAGE

特にメニュー項目を弄る必要もないという場合、"p6vwemu.exe" を実行する事で、直にエミュレータを起動する事が出来ます。
システムメニュー"PC6001VW.exe" は結構リソースを消費するので、 メモリの少ないPCで実行するときにはシステムメニューでオプション項目を設定した後、一旦それを終了させてからエミュレータ本体 "p6vwemu.exe" を起動した方が、OSの負担が軽減されます。
(※:『金ノヽ、似てね〜。』とか言うご意見も有るようですが(笑)、 大昔のPC雑誌の広告写真見ながらプチプチドット打ちした物なので勘弁してケロ。)


『 KeyReplacement 』 タブを選択すると↓のようなダイアログが表示されます。
KeyReplacement

1〜16個まで、キー入力の置換を設定する事が出来ます。
例)  [ M ] >>[ Space ]  と設定した場合、実キーボードの[M]キーを押した時、 エミュレータ内では [Space]キー を押した扱いになります。
詳しい説明はダイアログ内の解説を参照してください。

KeyReplacement
キーボードの入力を Joystick入力に置き換えることも可能です。 置換ボックスの一番下の方にあるのが Joystickコードです(←左図参照)。 逆に、Joystick の入力をキーボードに置き換えることは出来ません。

PC-6001 で Joystick を 2本使用するようなソフトが出てきた時、 Joystick2 をキーボードに割り振るなどして利用してください。


※エミュレータメニューの [Option]->[KeyReplace] からも変更可能です。

PCのゲームをキーボードでをした事がある人なら、 大体自分のキーボードで相性の悪いキー組合せに心当たりがあると思いますが、 一応きちんと目で確認できるようにキーボードチェッカーを作成しました。
実行すると下のような標準的日本語106キーボードの絵が表示され、 実際にキーを押すことで同時押しをチェックすることが出来ます。

KeyboardChecker



■ メディアプロテクト
PC6001VWが扱えるメディアイメージの中で、 D88イメージにはヘッダ内にプロテクト情報の項目が有り、 プロテクトシールの状態まで知ることが出来ますが、 その他、テープイメージやDSKイメージなどのはプロテクト情報を持っていません。
そこで、簡易プロテクトとして、 イメージファイルの属性をプロテクト状態として扱うようにしてみました。 リードオンリーのファイルならプロテクト状態、 ノーマル属性ならノンプロテクトと言うことになります。

■ エミュレーション開始
後はPC-6001実機の使い方通りです。
エミュレータのシステム機能を設定するエミュレータ・メニューについては下の解説ページに記述されています。

エミュレータ・メニューの詳しい内容はこちらのページを参照。
【エミュレータ・メニュー説明】


バージョンアップ情報については内包の "history.txt" を参照してください。

■ モニタモード
モニタモードには各種開発/解析支援用コマンドが実装されています。 モニタモードのコマンドはヘルプ命令で詳細を表示する事が出来ますが、何となく英語表記が不自然なので(笑)、先ずは下の解説ページを参照してください。

モニタモード・コマンドの詳しい内容はこちらのページを参照。
【モニタモード・コマンド説明】


■ サウンドレコーディング
エミュレータを実行中、[F9] キーを押す事により出力サウンドをWAVファイルに録音する事が出来ます ( ON/OFF トグルスイッチ)。 録音WAVファイルは "PC6001VW.EXE" と同じ位置に "p6stream.wav" という名前で出力されます。 WAV録音中、エミュレータの処理オチが起きてスピーカーから出る音がプチプチと途切れる事がありますが、WAVに録音されている音声は正常ですので安心して下さい(;´∀`)。 録音実行中はエミュレータ画面の右下にインジケーター ("@") が表示されていますので、これで録音状態か確認できます。

それと、録音されたWAVファイル( "p6stream.wav" )は、 HDDが大量消費されたままの状態になるのを防ぐ為、 エミュレータを起動しなおすと初期化されてしまいますので、 録音されたWAVを残したい場合は、エミュレータ終了後 ファイル名を変えるか別の場所にコピーして保存して下さい。

尚、エミュレータを終了させないとWAVのヘッダ情報(録音したデータサイズ等…)が書き込まれないので、 エミュレータ実行中に "p6stream.wav" をメディアプレイヤー等で再生させようとしても音は鳴りません。ご注意あれ。



それともうひとつ、エミュレータ中に [F6] キーを押す事により、サウンドチップ(AY-3-8910,YM-2203)へのレジスタ出力情報をS98形式ログで記録することが出来ます ( ON/OFF トグルスイッチ)。
(※ S98形式はPC88/98エミュなどに実装されているサウンド出力の記録形式で、詳細に関してはネット検索を行うなどして資料サイトを参照して下さい。)

記録実行中はエミュレータ画面の右下にインジケーター ("@") が表示されていますので、これで状態か確認できます。 S98ファイルはログ出力フォルダに作成され、記録の ON/OFF されるたびに連番が振られた新しいS98ファイルが作られて行きます。 ("p6vw_nnn.s98" [ nnn が連番になる ] )

S98形式の利点はWAV録音に比べてファイルサイズが格段に小さくて済む事ですが、 一般的なマルチメディアプレイヤーでは再生することが出来ないので、 KbmPlayer などに S98プラグイン を導入して聴くことになります。 因みに、Winamp +S98プラグイン では何故かテンポがヨロけてしまうのでお勧めできません。
尚、S98はあくまでサウンドチップへのデータ出力記録なので、WAV録音の様に音声合成などは保存されないし、エミュレータの擬似ステレオオプションなども反映されません。 用途によって WAV と S98 の使い分けを行ってください。



※注意
市販されたソフトや雑誌掲載リストの音楽などを録音した場合、 個人的に楽しむ以外の用途に用いないよう注意して下さい。 あくまで自己責任の範疇でどうぞ。



■ VDGフォントについて
PC-6001初代機ではテキスト画面のアトリビューに 00H を指定することで、ビデオチップ M5C6847P-1(MC6847互換) 内臓の Video Display Generator フォント (以降、VDGフォントと表記) を表示させることが出来ます。
しかしこのVDGフォント、今のところフォントデータをメモリに実体化させる方法が不明で(もしかして不可能?)、ユーザーが実機から吸い出す事が出来ない状況です。 当然、ROM内データですからエミュレータに内臓というわけにも行きません。 そこでP6VWではこれに該当するフォントを適当に自作してみました。

P6VW-VDG-FONT

[ DOWNLOAD: "cgrom60s.txt" ]

上のアーカイブを解凍して、"ROM" フォルダ内に格納して下さい。 中身は以下の様なテキスト形式の花文字となっています。
00000000
00000000
00000000
00011100
00100010
00100010
00111110
00100010
00100010
00100010
00000000
00000000
00000000
00000000
00000000
00111100
00100010
00100010
00111100
00100010
00100010
00111100
00000000
00000000
00000000
00000000
00000000
00011100
00100010
00100000
00100000
00100000
00100010
00011100
00000000
00000000

初代機を所有している人でオリジナルのVDGフォントを見ることが出来る人は、このファイルをテキストエディタで開いて実機と同じになるようフォントを修正してみて下さい。 データは 8x12 のサイズが 64 個分です。 誤って、データの文字数を変えてしまうとフォントグラフィックにズレが生じるので注意が必要です。 エミュレータ上で表示確認したい時は、N60モードで以下のプログラムを実行して下さい。
5 SCREEN1,1,1:CLS
10 FORI=32TO255:PRINT CHR$(I);:NEXT
20 FORI=32TO255:POKE &H8000+I-32,0:NEXT

( 但し、初代機で拡張RAMを有効にしている場合、POKE の "&H8000" を "&HC000" に置き換える必要があります。)


P6VWエミュレータ 起動時に "cgrom60s.txt" テキストが読み込まれると、 現在選択中のP6機種に対応したVDG_CGROMファイル "cgrom60s.6*" が出力されます。

テキストファイルを修正することで適当なフォントが出来上がったと思ったら、 "cgrom60s.txt" を削除するか、別フォルダに移動して保存しておいて下さい。 次回起動以降、この VDG_CGROM を読み込むようになります。 再度修正を加えたくなったら、 "cgrom60s.txt" を "ROM" フォルダに戻して、エミュレータを起動して下さい。 すると再びそのテキストを元に VDG_CGROM を作成するようになります。 要するに、 "cgrom60s.txt"が存在する限り、P6VW 起動のたびに VDG_CGROM を作り続けてしまうので、納得の行くフォントが出来たら "cgrom60s.txt" を別の場所によけておく。」 という事です。お忘れ無きよう…。


因みに、mkII以降の機種のVDGフォント対応は将来的にどうなるかは分かりません。 テキストファイルの読込もいつまで対応させておくか未定です。 実機から取り出す方法が見付かれば即解決なんですけどね (;゚∀゚)。


■ SCC音源について
唐突に何の事だ!?ってな感じでしょうが…

SCC音源は本来PC6001とは何の関係もありませんが、趣味が高じておもむろに実装してしまいました(;´Д`)ハァハァ。 自分の中の MSXer の DNA がそうさせるのです(何だそりゃ?)。 「もしPC6001にSCCカートリッジが接続できたら…」ということを想定した仮想デバイスなので適当に弄って遊んでみて下さい。 具体的な使い方は下の 【拡張I/Oポート説明】 のページに書いてあります。


■ エミュレータ独自機能
PC-6001システム内からI/Oポートを通してエミュレータの様々な設定を変更したり、エミュレータ独自の拡張機能を利用したりすることが出来ます。

P6VW 独自I/Oポートの詳しい内容はこちらのページを参照。
【拡張I/Oポート説明】


■ 里程標
一応、開発のマイルストーンというか目安です。
と言いつつ、予定なんて思い切り無視してますけど…(^^;

Ver 0xx (済) [プライオリティ]
仕様実装。
実用性・利便性。
Ver 1xx (済) ここまでで、一通りmkIIまでの仕様実装完了。

[プライオリティ]
Allegro は機能過剰な部分があると同時に日本語非対応なので、 この部分を徐々に代理関数に置き換えて行く予定。 最終的には AllegroDLL を使わなくする。 GUI を Windows標準メニューにしたいので、 最低サポート解像度は (320x240) から (640x480) になるでしょう。
Ver 2xx SRの使用取り込み終了。

[プライオリティ]
ユーザーインターフェースやグラフィック表示を独自ライブラリに置き換え、Allegroライブラリから解放。
Ver 3xx Allegro 依存部分の撤去完了。

[プライオリティ]
なんだろ?
Ver 4xx [プライオリティ]
PC-6001mkIII の仕様を設計して…(略
独自のフリーBIOSを作って…(略

妄想デス。



■ FAQ

エミュレータ使用していて陥りがちな事例のトラブルシューティングについてはこちらのページを参照。
【 FAQ 】

ここに挙げられた事例以外で、原因不明の事態に陥る事があったら、 掲示板などでお気軽に質問して下さい…( ゚∀゚)ノ

■ ファイルのダウンロード
ダウンロード
ファイル
説明


PC6001V for Win32
ver 205c
(2008/07/04)
"pc6001vw205c.zip"
[472 KB]

PC6001V の Win32 移植版です。
対応OS はWindows 98/Me/2000/Xp/Vista です。

※ ver205 注意
"どこでもセーブ" のフォーマットが変更されました。 ver204 以前のバージョンの保存ファイルは使用できなくなりますので、注意してください。


アイコン
AllegroDLL for PC6001VW
ver 4.1.13
(2004/06/01)
"p6all4113.zip"
[231 KB]
Allegro Runtime Library DLL の PC6001VWカスタム版です。
他のAllegro対応アプリケーションで使用すると 不具合が発生する可能性があるので、PC6001VW専用という事にしておいて下さい。 尚、今まで通りの動作を望む場合は純正 AllegroDLL を使用してください。 改造点は以下の通りです。

・スレッドポーズ機能を排除。
 窓モード実行中にPC6001VWが非アクティブになってもポーズがかかりません。  ( オフィシャルDLLではスレッドポーズがかかるので 「ビ〜〜〜〜!」と音が鳴りっ放しのまま停止する事となり、 相当喧しいです。)
・階層MENUでマウス左クリックを[決定]、右クリックを[キャンセル]に対応。
 メニューツリー上でマウスカーソルを移動させても自動的に選択項目変更されなくなりました。
・MENU をシングルツリー処理に変更(マウスでのツリー移動に対応)。
 [決定]でメニュー階層が上がり、[キャンセル]で階層が下がります。
 (オフィシャルでは段階メニューが全て同時有効になっている。)


HTML Archive
ver 204
(2005/11/23)
"pc6001vw_doc204.zip"
[218 KB]

HELP の替わりに、ここの説明HTMLページを固めました。

手抜きですが(^^;
アイコン
Keyboard Checker
ver 0.00
(2003/01/08)
"keycheck000.zip"
[20.4 KB]
キー同時押しチェッカーです。


※キー同時押しは意外な程利いていないものです。 キーボードに掌をグシャッと押しつけて全てのキーが反応しているなら、それはカナリ性能の良いキーボードと言うことになります。大切にしましょう(笑。
[ OLD Version. ]
[ PC6001V for Win32 ver 199 ]
SR非対応、最終バージョン。

SR対応版より動作が軽快ですが、如何せん前バージョンなので最新版に比べると完成度はチョト低い。

[ OLD Version. ]
[ PC6001V for Win32 ver 101e4 ]
エミュレータとシステムメニューが一体化している最終バージョン。

ライブラにリは Allegro 4.1 (Alleg41.DLL) を使用。


履歴:
2008.07.04 ver 205c 初代機以外の機種において、メガロム使用中のどこでもセーブデータをロードしたとき、メガロムバンクのページが0に初期化されてしまう不具合を修正。
2008.05.05 ver 205b "PC6001VW.exe","p6vwemu.exe","p6vwsub.exe","p6vwview.exe" UPX非圧縮モジュールアップロード。
2008.04.30 ver 205b SAVETAPEイメージが存在しないとシステムメニューが終了できない不具合を修正。SRモード・解像度:640x480・スキャンラインありの設定でリセットを行うと、スキャンラインが解除されてしまっていた不具合を修正。
2008/02/24 ver 205a 初代機使用時のモニタ画面メモリバンク表記が誤っていたので修正。
2008/02/01 ver 205 MEGA-ROM対応。MEGA-ROMタイプ切り替えメニュー項目追加。モニタ画面に(BC)(DE)(HL)(IX)(IY)(SP)の表示追加。
2005/11/25 ver 204a bugfix。デスクトップ解像度判定の不具合を修正。
2005/11/23 ver 204 SCC実装。PSG to SCC 実装。SRのDISK自動起動での不具合修正。仮想DISKへの書込を定期的に実DISKイメージに反映するように修正。コンテキストメニューで仮名と片仮名が同時選択出来た不具合を修正。
2005/10/21 ver 203a SR機種にてVDPフォント表示の不具合を修正。非SR機種でも BASREQ_OFF に出来るよう修正。テープ読込の不具合修正。P6Tテープ自動読込にMODE:6(SR-BASIC)対応。
2005/10/09 ver 203 VDGフォント読込機能追加。PSG to FM変換演奏機能追加。Z80とフォント描画関数の合理化。その他、不具合修正。
2005/09/01 ver 202 S98形式のサウンド録音追加。モニタモードに "outs" 命令追加。ヘルプも変更。
2005/07/24 ver 201 N60モード,SCREEN4,CSS1 の画面で滲み表示するように修正。画面回転追加。
2005/07/01 ver 200c 不具合修正。
2005/06/20 ver 200b 不具合修正。その他…
2005/06/06 ver 200a 不具合修正。
( 以前、history2.txt 参照… )




▲ ページ頭 へ▲

■前のページに戻る■


CONTENTS
Top Profile Vanity Develop P6Dev JavaScript (゚Д゚) BBS Link



This page was confirmed by IE6 & FireFox.
Copyright(c) 2001-2008 Bernie Mask. All right reserved.
Banner
Banner (200x40)