このプログラムは、NEC PC-6000/6600 シリーズをエミュレートするプログラムです。
isioさんの PC-6000/6600 シリーズのエミュレータである 「 iP6 for Unix/X11」をベースとして、
SR特有の機能や、ディスク入出力機能等を 新たに追加しました。
バイナリーファイルの中の、iP6.exe をダブルクリックしてください。 ROMファイルが見つからない場合、「実行に必要なROMファイルを検索して、自動設定しますか?」と聞かれるので、はいと答えると、ディスクの中を検索します。ROMファイルが見つかると、「ROMファイルが見つかりました。」と表示されて、OKを押すとエミュレータが起動します。 または、メニューのControl → Configure から、ROMパス名を指定してください。 ### Unix/X11
- X11を、起動してください。 - ターミナルから、下記のコマンドで起動できます。 $ ./iP6 > 主なオプションについて > > -60 .... PC-6001として起動する > > -62 .... PC-6001mkII として起動する > > -64 .... PC-6001mkIISR として起動する > > -66 .... PC-6601 として起動する > > -68 .... PC-6601SR として起動する > -tape hoge.p6 hoge.p6 をテープイメージとしてマウントする > > -disk hoge.d88 hoge.d88 をディスクイメージとしてマウントする
オリジナルの iP6 for Unix/X11 に、いくつかのSR特有の機能とディスク入出力機能 などを追加します。 - PC-6001/PC-6001mk2/PC-6601/PC-6001mk2SR/PC-6601SRの、それぞれの機種として動作可能。 - PC-Unix ネイティブと Windows ネイディブでの動作をサポート - デバッグ機能をサポート - テープの高速読み書き機能をサポート。 - ディスク入出力機能をサポート(2ドライブ対応) - SR特有の機能を サポート - FM音源をサポート (fmgen を使用。) - 拡張漢字ROMと、拡張RAM(64kb) をサポート。 - 戦士のカートリッジ (初代) をサポート
このプログラムを使用されるときは、十分注意してご使用ください。 ROMイメージなど 大切なものに関しては、 **必ずバックアップをとっておいてください。**
Rel.4.7 で、ディスクのアクセスランプを右下に作りました。(Windows版) これが点灯中は ディスクにアクセスに行ってますので、いきなり終了したり、 リセットしたりしないで下さい。
ディスクやテープにアクセス中は、どこでもセーブしないでください。どこでもロードした場合、正しい動作を期待できない場合があり、最悪の場合、ディスクイメージなどの破損につながります。
Rel.4.5 以降のバージョンから、d88のファイルが、読み取り専用になっている イメージも対応するようになりました。 ただし、読み込みは出来ますが、書き込みは出来ませんので、注意が必要です。
ゲームでディスクにセーブしたい場合などは、必ず 読み書き可能な属性にしてからマウントしてください。 BASIC上で、save"hoge"や、bsave"hoge"としても、??AT Error となってしまいます。 なお、d88ファイル内部のヘッダの書込み禁止フラグは見ていません。
実行するには、実機に内蔵されているROMファイルが必要になります。まずは、ROMを取得してください。
実行ファイルと同じディレクトリか、rom というサブディレクトリに置いてください。
ファイル名 | サイズ | 対応するROM |
---|---|---|
BASICROM.60 | 16KB | N60-BASICインタプリタROM |
CGROM60.60 | 4KB | N60-BASIC用CGROM |
ファイル名 | サイズ | 対応するROM |
---|---|---|
BASICROM.62 | 32KB | N60m-BASICインタプリタROM |
CGROM60.62 | 8KB | N60-BASIC用CGROM |
CGROM60m.62 | 8KB | N60m-BASIC用CGROM |
KANJIROM.62 | 32KB | 漢字ROM |
VOICEROM.62 | 16KB | 音声合成ROM |
ファイル名 | サイズ | 対応するROM |
---|---|---|
BASICROM.66 | 32KB | N66-BASICインタプリタROM |
CGROM60.66 | 8KB | N60-BASIC用CGROM |
CGROM66.66 | 8KB | N66-BASIC用CGROM |
KANJIROM.66 | 32KB | 漢字ROM |
VOICEROM.66 | 16KB | 音声合成ROM |
ファイル名 | サイズ | 対応するROM |
---|---|---|
SYSTEMROM1.64 | 64KB | システムROM1 |
SYSTEMROM2.64 | 64KB | システムROM2 |
CGROM68.64 | 16KB | CGROM (saver3で取り込んだROM) |
ファイル名 | サイズ | 対応するROM |
---|---|---|
SYSTEMROM1.68 | 64KB | システムROM1 |
SYSTEMROM2.68 | 64KB | システムROM2 |
CGROM68.68 | 16KB | CGROM (saver3で取り込んだROM) |
ファイル名 | サイズ | 対応するROM |
---|---|---|
128KB | 拡張漢字ROM |
Rel 4.5から、4.8 までの拡張漢字ROMのファイルは (EXTKANJI.ROM) でしたが、4.9以降は新ファイル名&新フォーマットに変更になります。理由としては、他のエミュレータとの齟齬が発覚したためです。
漢字を表すのに、一つのラインにおいて、左8ドット、右8ドットのデータが存在しますが、その並び方は今まで、左ばかり64KB+右ばかり64KB という並び方でした。 それを、左と右が交互に来るように並び方を変更しました。
拙作のksaver で取り込まれた方は、お手数ですが、下記の通り実行してください。
1. エミュレータと同時配布の ip6plus_new_kanji.exe を拡張漢字ROMのあるディレクトリーにコピーしてください。 2. ip6plus_new_kanji.exe を実行して下さい。 3. EXTKANJI.ROM から、EXKANJI.ROM に変換されます。EXKANJI.ROM を使用してください。
ちなみに、えすびさんの取り込みソフト saverkanji.zipで取り込まれる場合は、上記の処理は不要になります。
基本的には、iP6 のROMを使いまわしできるのですが、SRをお持ちの方は、拙作の saver3 での吸出しをお勧めします。
(PC-6601SR の場合です。PC-6001mk2SRの方は、拡張子を.64にして下さい)
1. MODE 6で起動して、拙作のsaver3 で次のROMを取得して下さい。 SYSTEMROM1-1 を取得して、ファイル名を仮に SYSROM11にする。 SYSTEMROM1-2 を取得して、ファイル名を仮に SYSROM12にする。 SYSTEMROM2-1 を取得して、ファイル名を仮に SYSROM21にする。 SYSTEMROM2-2 を取得して、ファイル名を仮に SYSROM22にする。 CGROM を取得して、 ファイル名を CGROM68.68 にする。 2. SYSTEMROM が それぞれ別々に鳴っているので、下記のようにして結合してください。 DOSなら、 copy /b SYSROM11+SYSROM12 SYSTEMROM1.68 copy /b SYSROM21+SYSROM22 SYSTEMROM2.68 Unixなら、 cat SYSROM11 SYSROM12 > SYSTEMROM1.68 cat SYSROM21 SYSROM22 > SYSTEMROM2.68 これでできあがりです。
SR以外の方は、isioさんの saver の使用をお勧めします。
テープ経由の場合、最終的にテープ音声から、データに変換する必要があります。 morikawa さんの P6DatRec の使用をお勧めします。
今のところ、下記のような設定になっています。
機種 | ドライブ | 使用可能なディスク |
---|---|---|
PC-6001mk2 | 外付 | 1D |
PC-6001mk2SR | 外付 | 1DD/ 1D 自動認識 |
PC-6601 | 内蔵 | 1D |
PC-6601SR | 内蔵 | 1DD (1Dも一部可能) |
mk2SRのみ、起動時に、1D/1DDを自動認識します。 PC-6601SRの場合、基本的に1DDですが、ディスクの先頭に 'SYS'が書かれていると、1Dと認識するようです。ただし、この時の1Dは、読み込みしか出来ません。
サポートしないディスクを指定した場合、ディスクを、自動的にイジェクト
してしまいます。ディスクなしになってしまうので、注意してください。
そのときは、メッセージで、お知らせします。
### 4.3 Windows 版の起動の仕方
- 実機からROMファイルを取り込んでください。 - 実行ファイルと同じディレクトリか、ROMサブディレクトリに、上記のROMを置いてください。 - iP6.exeを実行させると、まず、デフォルトでPC-6601SRとして起動しようとします。 - このときに、ROMファイルが見つからない場合は、その旨を表示します。 - PC-6601SR 以外として動作させたい場合は、Control メニューのConfigureの設定パネルで ご希望の機種を選択してください。
設定のうち、(*)マークのついている分については、変更後、再起動するかどうか聞いてきますので今すぐ適用したい場合、再起動してください。 設定は、ip6kai.iniファイルに書き込まれます。(実行ファイルと同じディレクトリーに 自動的にできます。)
詳しい使い方については、同梱のHELPファイルを参照してください。(_)
fMSXの派生物のため、Marat Fayzullin 様の fMSXのライセンスに準拠します。フリーウェアとしての使用が可能です。
Because it is a derivative of fMSX, it conforms to Mr.Marat Fayzullin's fMSX license. You can use it as freeware.
fmgen (PSG音源/FM音源エミュレーター) と、pd7752 (音声合成エミュレーター)は、cisc 様のライセンスに準拠します。 こちらも、フリーウェアとして使用が可能です。
fmgen (PSG / FM tone generator emulator) and pd7752 (speech synthesis emulator) comply with the license of Mr. cics. You can use only as freeware.
[重要] ソースリストを公開していますが、オープンソースではありません。商用利用は禁止とします。非商用の利用については自由にされてもいいですが、引用先を明記してください。
[Important] The source list is open, but it is not open source. Commercial use is prohibited. For non-commercial use, you can leave it freely, but please specify the quotation.
ソースリストのうち、schedule.c/schedule.h/Voice.c/Voice.h はゆみたろ様のPC6001V 、西田様の Cocoa iP6 を参照しています。 Of the source list, schedule.c / schedule.h / Voice.c / Voice.h refers to Mr. Yumitaro's PC6001V and Mr. Nishida's Cocoa iP6.
### 5.2 ビルドの仕方 #### 5.2.1 Windows - Windows 10を入れる - Visual Studio を入れる - [libpng](http://www.libpng.org/pub/png/libpng.html) [zlib](http://www.gzip.org/zlib/) のソースリストを落としてくる - libpng とzlib のスタティックライブラリ版( libpngd.lib , zlibd.lib ) をビルドする。 - libpngd.lib と、zlibd.lib を、c:\library\lib にコピーしてください。 (デフォルトの場合) - Win_Project/iP6plus.vcxproj を開いて、ビルドしてください。 #### 5.2.2 Unix系OSでのコンパイルの仕方 - OSと、X Window System を入れてください。 - X11 ライブラリがない場合は、入れてください。 - libpng と zlib とXaw と OpenAL のライブラリがない場合、入れてください。 - 適当なディレクトリで、iP6 Plusのソースを展開してください。 - ./configure で、Makefileを生成してください - make を実行してください - src ディレクトリの下の iP6 が実行ファイルです。 注意:Mac 用のX11は、 XQuartzを使ってください。 ### 5.3 fmgen の変更点 fmgen.cpp 343行目 void Operator::MakeTable() の中、処理系によっては、優先順位が変わるための対策をしました。 *p++ = p[-512] / 2; ↓ *p = p[-512] / 2; p++; file.cpp のWin32 依存部分を #ifdef WIN32 で囲いました。 opna.cpp と、opm.cppの、pow関数の呼び出し、pow(10,db / 40.0) となっているところを、pow(10.0 , db /40.0) というふうに変更しました。
## 6. 既知の問題 - 一部動かないゲームがあります。(ハドソン系はダメです) - フロッピィドライブは 一部のコマンドしかサポートしていません。 - Unix環境で音が正しく鳴らないかもしれません。 - Unix環境では、設定ダイアログなどが、オリジナルの iP6 0.6.4 のままです。 - SRの音声合成機能は、ちゃんと喋れません。 - 動作がちょっと重いです。
## 7. 更新履歴 ### Rel 4.9 β1の変更点 - 拡張漢字ROM のファイル名と並び方を変更しました。 - About ダイアログの、状態表示を増やしました。(拡張漢字ROMの状態と、現在のロケールは何で認識されているか) - ウインドウのタイトルバーに機種表示と、fps表示を常に行うようにした - 拡張漢字ROM の並び方を変えたので、4.9にあげました。 - 拡張漢字ROM の状態は、EXKANJIROM_ROM だとROMを認識している、EXKANJIROM_MAKEだとWindows のフォントで自動生成している、EXKANJIROM_NONだとROM なしです - ロケールは、LANG_JP だと日本語で、 LANG_EN だと英語です ### Rel 4.8 β5の変更点 - Windowsで、日本語環境以外の場合、なるべく英語表示するようにした(つもり)。 - Windowsの PAUSEメニューで、一時停止できるようにした ### Rel4.8 β3の変更点 - 漏れていたソースリストを追加した - Unix/X11 環境でビルド出来なかった問題を修正(したはず) ### Rel4.8 β2の変更点 - デフォルト設定をスキャンライン無しにした - デバッガーで、ダンプメモリーのときに、メモリーの内容を変更しようとすると、落ちていた問題を修正しました。 ### Rel4.7以降の変更点 - [Windows] PC-6601SRで、DATE$と、TIME$への書き込みが出来るようにしました。(起動時にOSの日時を取得して、それ以降、1秒ごとにタイマーを発火させて、1秒ずつ足していきます。 - ブロック転送命令などの、必要CPUクロックが 0だったのを修正しました。(PC-6601SRの起動メニューの画面表示が速すぎる問題など解消しました) - [Windows] 最大化できるようにしました - [Windows] ウインドウの大きさを自由に変更可能に - 起動時の RAMの初期状態をある程度再現しました。 - どこでも SAVE / LOAD 実装してみた。 - 未定義命令のサポートを追加しました。 - PC6001V のスケジュールを取り込みました。 - 音声合成機能を組み込んでみた。 - PC-6601SRの起動メニューから、テロッパを選ぶと、右下の表示がおかしくなる問題を修正しました。 - デバッグ機能を追加しました。 - デバッグ機能で、逆アセンブラリストをスクロール可能にしました。 - 本来入力できないキー(Shift+¥)を、入力できないように修正しました。 - 本来入力できるはずのキー(かなの句読点)を入力できるように修正しました。 - ディスクを2ドライブ対応しました。
- PC-Techknow6000Vol.1 - PC-6001mk2取扱説明書 - Mr.PCテクニカルコレクション - PC-6001/PC-6001MK2 わかるマシン語入門 - PC-9800 シリーズ テクニカルデータブック HARDWARE 編 - PC-9821 Undocument ( http://www.webtech.co.jp/undoc/io_2d.txt )
ソースリストや、実行ファイルは基本的に無保証です。 テストは行っておりますが、使用した結果、何らかの損害があったとしても、当方では 一切感知できませんので、宜しくお願いします。 特に、大切なROMファイルなどは、必ずバックアップしたものを使用してください。 ## 謝辞
- iP6 for X11 を作られた 石岡さんに 感謝します。 - fMSXの作者Marat Fayzullin さんに感謝します。 - PC6001V の作者 ゆみたろさんに感謝します。 - iP6win の作者 守谷さんに感謝します。 - M88のDITTと、fmgen の作者のCISCさんに感謝します。 - 1DDitt の作者の bobsaito さんに感謝します。 - アイコンの作者 天丸さんに感謝します。 - PC6001VWの作者 Bernieさんに感謝します。 - PC6001VXの作者 eighttails さんに感謝します。 - バグをたくさん見つけてくれた、チョコぼんさんに、感謝します。 - そして、このパソコンを作られた 日本電気の方々に感謝します。
石岡さん本当にありがとうございました。(__)
iP6 がなかったら、とてもじゃないけど、一からこれを作るのは、 無理だったと思いますので、感謝しても感謝しきれないです。(_)
なお、プログラム自体に関する お問い合わせについては、全て私までお願いします。
(isioさんは このプログラムの開発に直接は関わってませんので、これについてisioさんに問い合わせることは、ご遠慮下さい。)
バグや使用上の問題については、出来れば、対応したいと思っています。 しかし、フリーソフトウエアで有る以上、限界というものも有りますので、よろしくお願いします。