このプログラムは、NEC PC-6000/6600 シリーズをエミュレートするプログラムです。
isioさんの PC-6000/6600 シリーズのエミュレータである 「 iP6 for Unix/X11」をベースとして、 SR特有の機能や、ディスク入出力機能等を 新たに追加しました。 まだまだ、至らない部分も沢山ありますが、 よろしくお願いします。
今回のバージョンは、 Release 4.7 です。ありがとうございます。
基本的には、オリジナルの iP6 for Unix/X11 に準じますが、いくつかの SR特有の機能とディスク入出力機能 などを追加します。
主な出来ることは下記のとおりです。
前回の積み残しのバグを直して、機能アップしました。 よろしくおねがいします。(_)
今回は、鬼のように変更点が多いです・・。(汗) それもこれも、皆さんのおかげです。(^^;
Alpha-11 では、存在しないディスクを指定したら、新規作成をして、ブランクディスクとしてマウントするようにしました。
このプログラムを使用されるときは、十分注意してご使用ください。 ROMイメージなど 大切なものに関しては、 必ずバックアップをとっておいてください。 よろしくお願いします。
Rel.4.7 で、拡張ROMをセットできるようになりましたが、PC-6001専用の拡張ROMをさしたまま、 機種を、PC-6601SR などにすると、起動途中で止まってしまう可能性があります。 お手数ですが、拡張ROMを抜いてください。(_)
Rel.4.7 で、ディスクのアクセスランプを右下に作りました。(Windows版) これが点灯中は ディスクにアクセスに行ってますので、いきなり終了したり、 リセットしたりしないで下さい。
Rel.4.7 以降のフルスクリーンモードは、全ての環境でテストされたわけではありません。 もし、使用した結果、上手く切り替わらない場合などは、使わないようにしてください。 よろしくお願いします。
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 |
---|---|---|
EXTKANJI.ROM | 128KB | 拡張漢字ROM |
拡張漢字ROMをお持ちの方は、ksaver で取り込んだ後、上記のファイル名にしてください。
基本的には、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 の使用をお勧めします。
設定のうち、(*)マークのついている分については、変更後、再起動するかどうか聞いてきますので今すぐ適用したい場合、再起動してください。 設定は、ip6kai.iniというファイルに書き込まれます。(実行ファイルと同じディレクトリーに 自動的にできます。)
詳しい使い方については、同梱のHELPファイルを参照してください。(_)
今のところ、下記のような設定になっています。
機種 | ドライブ | 使用可能なディスク |
---|---|---|
PC-6001mk2 | 外付 | 1D |
PC-6001mk2SR | 外付 | 1DD/ 1D 自動認識 |
PC-6601 | 内蔵 | 1D |
PC-6601SR | 内蔵 | 1DD (1Dも一部可能) |
mk2SRのみ、起動時に、1D/1DDを自動認識します。 PC-6601SRの場合、基本的に1DDですが、ディスクの先頭に 'SYS'が書かれていると、1Dと認識するようです。ただし、この時の1Dは、読み込みしか出来ません。
サポートしないディスクを指定した場合、ディスクを、自動的にイジェクト してしまいます。ディスクなしになってしまうので、注意してください。 そのときは、メッセージで、お知らせします。
フロッピィ読み込みツールとしては、 M88 の作者の CISCさんが作成されている DITTか、 それの派生版で、SMC-777用である、1DDitt が有ります。
1DDの場合は、1DDittの使用がお勧めです。何故かというと、1DDは片面メディアなのにたいして、Dittはあくまで両面メディア用なので、問題が生じやすいからです。(汗) (裏面が既にフォーマットされている2DDを使った場合、余計な裏面のデータまで読み取ってしまい、使用できないイメージになってしまいます。(汗))
1DDitt の場合の使用例です。
1dditt r -8 -d a: hogehoge.d88
-8 としているのは、1DDを80トラック読むという意味です。 P6の1DDでは、必ず80トラック読み取る必要があります。 あと、1DDの場合は、-d をつける必要があります。
読み取りが成功すると、ファイルが出来ます。 もちろん、そのd88ファイルは、そのまま このエミュレータで使えます。
それから、1Dの場合、Dittも、1DDitt も、両面読んでしまうので、どちらを使っても、変わらないと思います。その場合は、裏面の無い2Dという形になります。あと、1Dの場合、-8 や、-d は不要になります。
あと、気をつけることといえば、これらのソフトは、FDCを直接叩いているので、MS-DOSか、Windows 95/98/Meの DOS窓などでしか、動作しないということです。(NT4.0 / 2000/ XP などでは、動作しません。)
Linux や、FreeBSDなどでコンパイルする場合は、下記のようにしてください。 標準的な状態で、コンパイルできると思います。
※ Rel.4.7 より、Gnu make が必要になるようになりました。 FreeBSDなど、最初から Gnu make が入っていない環境の方は、お手数ですが、別途 gmake をインストールしてください。
※ Rel.4.7 より、一行編集するだけで、切り替えできるようにしました。 下記の該当する環境の行のコメントを外してください。 (本当は、configure に対応するべきですが、申し訳ございません。)
# OS Selector by Windy # Please select OS. comment out one from following lines #OS = LINUX #OS = BSDI #OS = FREEBSD #OS = MACX11 #OS = SDL
ソースリストを公開しています。が、著作権を放棄しているわけでは有りません。 ソースリストについては、有るがままに提供されます。
このソースリストは、沢山の人の修正が入っていますので、このソースリストの著作表示を消し去って、他の人だけの著作物とすることは出来ません。
派生物を作られるときは、必ず、前の著作表示に追加する形で、併記してください。 それから、派生物も、必ずフリーソフトにしてください。
実のところ、P6エミュレータのSR対応が、少しでも進んでくれれば・・。 との思いから公開していますが、私の実装方法を 鵜呑みにしないでください。 間違いがあると思いますし、たまたま、動いているだけの可能性も有ります。
それから、ソースリストをみていて、気づいたことや、バグ報告などありましたら、 遠慮なくおねがいします。(__)
ソースリストや、実行ファイルは基本的に無保証です。 一応、テストは行っておりますが、 使用した結果、何らかの損害があったとしても、 当方では 一切感知できませんので、宜しくお願いします。
石岡さんには、ソースリストをさわることと、 パッチファイルの公開を 快諾していただきました。 本当にありがとうございました。(__)
iP6 がなかったら、とてもじゃないけど、一からこれを作るのは、 無理だったと思いますので、感謝しても感謝しきれないです。(_)
Rel.4.5以降より、CISCさんの FM音源エミュレータである fmgen と、天丸さんのアイコンを使用させていただきました。ありがとうございました。(_)
それから、fmgen の中で、変更させてもらっている個所があります。 変更箇所は、#ifdef WIN32か、#ifdef UNIXでくくられた個所になります。 主に、Unix環境に対応させるためです。 よろしくお願いします。(_)
あと、opna.cpp と、opm.cppの、pow関数の呼び出しで、pow(10,db / 40.0) となっているところを、pow(10.0 , db /40.0) というふうに変更させてもらいました。(_)
なお、パッチやソースリストやプログラム自体に関する お問い合わせについては、全て私までお願いします。
(isioさんは このプログラムの開発に直接は関わってませんので、このパッチについてisioさんに問い合わせることは、ご遠慮下さい。)
バグや使用上の問題については、出来れば、対応したいと思っています。 しかし、フリーソフトウエアで有る以上、限界というものも有りますので、よろしくお願いします。