diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..5095452 --- /dev/null +++ b/.gitignore @@ -0,0 +1,92 @@ +.DS_Store +.svn +ip6kai.ini +cp.sh +*.o +*.a +*.6? +*.rom +iP6 + +# http://www.gnu.org/software/automake + +Makefile.in +/ar-lib +/mdate-sh +/py-compile +/test-driver +/ylwrap +.deps/ +.dirstamp + +# http://www.gnu.org/software/autoconf + +autom4te.cache +/autoscan.log +/autoscan-*.log +/aclocal.m4 +/compile +/config.guess +/config.h.in +/config.log +/config.status +/config.sub +/configure +/configure.scan +/depcomp +/install-sh +/missing +/stamp-h1 + +# https://www.gnu.org/software/libtool/ + +/ltmain.sh + +# http://www.gnu.org/software/texinfo + +/texinfo.tex + +# http://www.gnu.org/software/m4/ + +m4/libtool.m4 +m4/ltoptions.m4 +m4/ltsugar.m4 +m4/ltversion.m4 +m4/lt~obsolete.m4 + +# Generated Makefile +# (meta build system like autotools, +# can automatically generate from config.status script +# (which is called by configure script)) +Makefile + +# Visual Studio +*.obj +*.exe +*.exp +*.pdb +*.dll +*.user +*.aps +*.pch +*.vspscc +*_i.c +*_p.c +*.ncb +*.suo +*.tlb +*.tlh +*.bak +*.cache +*.ilk +*.log +[Dd]ebug*/ +*.lib +*.sbr +Thumbs.db +[Ll]ib/ +[Rr]elease*/ +[Tt]est[Rr]esults/ +_UpgradeReport_Files/ +_ReSharper.*/ + diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..5b44e67 --- /dev/null +++ b/LICENSE @@ -0,0 +1,20 @@ +License + +This software is based on fmsx. (https://fms.komkon.org/fMSX/) +The code written by Mr.Marat Fayzullin is under the license of fmsx. +Commercial use is prohibited. For non-commercial use, you may leave it free, but be sure to include a reference + +The Roma character conversion function (romaji.c) is MIT license. + +The Extended kanji rom making function (Winkanji.c/extkanji.h) is MIT license. + + +fmgen (PSG/FM tone emulator) and pd7752 (speech synthesis emulator) comply with the license of Mr.cisc. + +Of the source list, sound.c / schedule.c / schedule.h / Voice.c / Voice.h refered to Mr. Yumitaro's PC6001V and Mr. Nishida's Cocoa iP6. + +The Mr.Akikawa's Compatible BASIC ROM (http://000.la.coocan.jp/p6/basic.html) is LGPL license. + +The font of Compatible BASIC ROM is shinonome font (http://openlab.ring.gr.jp/efont/shinonome/) and misaki font http://littlelimit.net/misaki.htm + +The icon is used Mr.Tenmaru's PC-6601SR icon (http://www3.plala.or.jp/tenpulako/index.html). diff --git a/Makefile.am b/Makefile.am new file mode 100644 index 0000000..b53db82 --- /dev/null +++ b/Makefile.am @@ -0,0 +1,13 @@ +# +# ./Makefile.am +# + +SUBDIRS = src doc Win_Project + + + + +EXTRA_DIST=\ + Readme.html + +AUTOMAKE_OPTIONS = foreign diff --git a/README.md b/README.md new file mode 100644 index 0000000..5cd178e --- /dev/null +++ b/README.md @@ -0,0 +1,450 @@ +# iP6 Plus (PC-6000/6600 Emulator) + +Last Update 2020/03/28
+Release 4.9 Beta 2
+ +## 1. はじめに + +

このプログラムは、NEC PC-6000/6600 シリーズをエミュレートするプログラムです。 + +

isioさんの PC-6000/6600 シリーズのエミュレータである 「 iP6 for Unix/X11」をベースとして、 + SR特有の機能や、ディスク入出力機能等を 新たに追加しました。 + + +## 2. 起動方法 + +Windows + +

バイナリーファイルの中の、iP6.exe をダブルクリックしてください。 +ROMファイルが見つからない場合、「実行に必要なROMファイルを検索して、自動設定しますか?」と聞かれるので、はいと答えると、ディスクの中を検索します。ROMファイルが見つかると、「ROMファイルが見つかりました。」と表示されて、OKを押すとエミュレータが起動します。 +または、メニューのControl → Configure から、ROMパス名を指定してください。 + +または、実行ファイルと同じディレクトリか、rom サブディレクトリに、必要な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 をディスクイメージとしてマウントする
+
+ +

X11版で、 ROMファイルが見つからない時は、終了します。 +実行ファイルと同じディレクトリか、rom サブディレクトリに、必要なROMファイルをコピーしてください。 + +


+ +## 3. できること + +
+オリジナルの 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 (PC-6001/PC-6601) をサポート
+ - ローマ字入力機能をサポート
+
+ +
+ +## 4. 使い方 + +### 4.1 注意してほしいこと + +

このプログラムを使用されるときは、十分注意してご使用ください。 +ROMイメージなど 大切なものに関しては、 +**必ずバックアップをとっておいてください。** +  +

Rel.4.7 で、ディスクのアクセスランプを右下に作りました。(Windows版) + これが点灯中は ディスクにアクセスに行ってますので、いきなり終了したり、 + リセットしたりしないで下さい。 + + +

ディスクやテープにアクセス中は、どこでもセーブしないでください。どこでもロードした場合、正しい動作を期待できない場合があり、最悪の場合、ディスクイメージなどの破損につながります。 + +  + 

Rel.4.5 以降のバージョンから、d88のファイルが、読み取り専用になっている + イメージも対応するようになりました。 + ただし、読み込みは出来ますが、書き込みは出来ませんので、注意が必要です。 + +  + 

ゲームでディスクにセーブしたい場合などは、必ず 読み書き可能な属性にしてからマウントしてください。 + BASIC上で、save"hoge"や、bsave"hoge"としても、??AT Error となってしまいます。 + なお、d88ファイル内部のヘッダの書込み禁止フラグは見ていません。 +  +  + +


+ +4.2 必要なROM +  + 

実行するには、実機に内蔵されているROMファイルが必要になります。まずは、ROMを取得してください。 +  + 

実行ファイルと同じディレクトリか、rom というサブディレクトリに置いてください。 +  + 

+  +  +  +  +  + 
(PC-6001 として利用する場合)
ファイル名 サイズ 対応するROM
BASICROM.60 16KB N60-BASICインタプリタROM
CGROM60.60 4KB N60-BASIC用CGROM
+ 
+ + +  +  +  +  +  +  +  +  +  + 
(PC-6001mk2 として利用する場合)
ファイル名 サイズ 対応する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
+ 
+  +  +  +  +  +  +  +  +  + 
(PC-6601 として利用する場合)
ファイル名 サイズ 対応する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
+ 
+  +  +  +  +  +  +  + 
(PC-6001mk2SR として利用する場合)
ファイル名 サイズ 対応するROM
SYSTEMROM1.64 64KB システムROM1
SYSTEMROM2.64 64KB システムROM2
CGROM68.64 16KB CGROM (saver3で取り込んだROM)
+ 
+  +  +  +  +  +  +  + 
(PC-6601SR として利用する場合)
ファイル名 サイズ 対応するROM
SYSTEMROM1.68 64KB システムROM1
SYSTEMROM2.68 64KB システムROM2
CGROM68.68 16KB CGROM (saver3で取り込んだROM)
+ 
+  + オプション機能 +  +  +  +  + 
(拡張漢字ROM (PC-6601-01 / PC-6007SR) を、利用する場合)
ファイル名 サイズ 対応するROM
EXTKANJI.ROMEXKANJI.ROM 128KB 拡張漢字ROM          
+ +
+### 重要なお知らせ + +

Rel 4.5から、4.8 までの拡張漢字ROMのファイルは (EXTKANJI.ROM) でしたが、4.9以降は新ファイル名&新フォーマットに変更になります。理由としては、他のエミュレータとの齟齬が発覚したためです。 + + +

拙作のksaver で取り込まれた方は、お手数ですが、下記の通り実行してください。 + +

+   1. エミュレータと同時配布の ip6plus_new_kanji.exe を拡張漢字ROMのあるディレクトリーにコピーする
+   2. ip6plus_new_kanji.exe を実行する
+   3. EXTKANJI.ROM から、EXKANJI.ROM に変換されます。EXKANJI.ROM を使用してください。
+  
+ 

ちなみに、えすびさんの取り込みソフト saverkanji.zipで取り込まれる場合は、上記の処理は不要になります。 + + + 


+ +## ROMの取得方法 +  + 

基本的には、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は、読み込みしか出来ません。 +     +    

サポートしないディスクを指定した場合、ディスクを、自動的にイジェクト +    してしまいます。ディスクなしになってしまうので、注意してください。 +    そのときは、メッセージで、お知らせします。 +     + +
+
+ +     + + +


+## 5. 開発者情報 + +### 5.1 ライセンス + +同梱のLICENSE ファイルを参照ください + +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 を実行してください + - 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 β2の変更点 + + - 秋川様のPC-6001/ PC-6601 互換ROMに対応しました。 + - PC-6001 のメモリマップを修正しました。 + - PC-6001 でMODEキーを無効にしました。 + - モニターモードで g / G で再開した時に、ALT押したままにしないようにしました。 + - EXTROM 刺された時のみ さすようにしました。 + - 拡張漢字ROM 作成機能と、ローマ字変換機能を、MIT ライセンスにしました。 + - カタカナ入力モードで、ファンクションキーが、常に SHIFT+ファンクションキー で入力される問題を修正しました。 + - ローマ字変換機能で、「DDA」「DDO」に対応しました。 + - プログラムの一部を、ノーウエイトで動作させることができる機能を追加しました。( 今回の目玉機能、重い処理をかっとばせるようになります。)  +
+  ※デバッグモニターを開いて、nowait [start-addr] [end-addr] コマンドを使用してください。PCレジスターが、start-addr のアドレスに到達すると、 +ノーウエイトモードに移行して、end-addr に到達したら、通常モードに戻ります。
+ + +### 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 さんに感謝します。 + - PC-6001とPC-6601の互換ROMの作者 秋川さんに感謝します。 + - バグをたくさん見つけてくれた、チョコぼんさんに、感謝します。 + - そして、このパソコンを作られた 日本電気の方々に感謝します。 + +

石岡さん本当にありがとうございました。(__) + +

iP6 がなかったら、とてもじゃないけど、一からこれを作るのは、 +無理だったと思いますので、感謝しても感謝しきれないです。(_) + + + + +


+

## お問い合わせ先

+ + +

なお、プログラム自体に関する お問い合わせについては、全て私までお願いします。 + +

(isioさんは このプログラムの開発に直接は関わってませんので、これについてisioさんに問い合わせることは、ご遠慮下さい。) + +

バグや使用上の問題については、出来れば、対応したいと思っています。 +しかし、フリーソフトウエアで有る以上、限界というものも有りますので、よろしくお願いします。 + + + + + + diff --git a/Win_Project/Makefile.am b/Win_Project/Makefile.am new file mode 100644 index 0000000..3201f03 --- /dev/null +++ b/Win_Project/Makefile.am @@ -0,0 +1,5 @@ + +EXTRA_DIST=\ +iP6.sln \ +ip6plus.psess \ +ip6plus.vcxproj diff --git a/Win_Project/iP6.sln b/Win_Project/iP6.sln new file mode 100644 index 0000000..9b58e77 --- /dev/null +++ b/Win_Project/iP6.sln @@ -0,0 +1,107 @@ +Microsoft Visual Studio Solution File, Format Version 8.00 +Project("{8BC9CEB9-8B4A-11D0-8D11-00A0C91BC942}") = "iP6.exe", "iP6.exe", "{700449C1-EB81-4A0A-B6D6-3C03377F6FD0}" + ProjectSection(ProjectDependencies) = postProject + EndProjectSection +EndProject +Global + GlobalSection(SolutionConfiguration) = preSolution + Debug = Debug + EndGlobalSection + GlobalSection(ProjectConfiguration) = postSolution + {700449C1-EB81-4A0A-B6D6-3C03377F6FD0}.Debug.ActiveCfg = Debug + EndGlobalSection + GlobalSection(SolutionItems) = postSolution + src\buffer.c = src\buffer.c + src\buffer.h = src\buffer.h + src\Build.h = src\Build.h + src\cgrom.h = src\cgrom.h + src\Codes.h = src\Codes.h + src\CodesCB.h = src\CodesCB.h + src\CodesED.h = src\CodesED.h + src\CodesXCB.h = src\CodesXCB.h + src\CodesXX.h = src\CodesXX.h + src\config.h = src\config.h + src\config.h.in = src\config.h.in + src\cycles.h = src\cycles.h + src\d88.c = src\d88.c + src\d88.h = src\d88.h + src\Debug.c = src\Debug.c + src\Debug.h = src\Debug.h + src\Debug_old.c = src\Debug_old.c + src\device.c = src\device.c + src\device.h = src\device.h + src\fmgen\diag.h = src\fmgen\diag.h + src\disk.c = src\disk.c + src\disk.h = src\disk.h + src\error.c = src\error.c + src\error.h = src\error.h + src\extkanji.h = src\extkanji.h + src\fdc.c = src\fdc.c + src\fdc.h = src\fdc.h + src\fmgen\file.cpp = src\fmgen\file.cpp + src\fmgen\file.h = src\fmgen\file.h + src\fm.h = src\fm.h + src\fmgen\fmgen.cpp = src\fmgen\fmgen.cpp + src\fmgen\fmgen.h = src\fmgen\fmgen.h + src\fmgen\fmgeninl.h = src\fmgen\fmgeninl.h + src\fmgen\fmtimer.cpp = src\fmgen\fmtimer.cpp + src\fmgen\fmtimer.h = src\fmgen\fmtimer.h + src\fmgen\headers.h = src\fmgen\headers.h + src\Help.h = src\Help.h + src\iP6.c = src\iP6.c + src\mem.c = src\mem.c + src\mem.h = src\mem.h + src\message.c = src\message.c + src\message.h = src\message.h + src\fmgen\misc.h = src\fmgen\misc.h + src\new.c = src\new.c + src\fmgen\opm.cpp = src\fmgen\opm.cpp + src\fmgen\opm.h = src\fmgen\opm.h + src\fmgen\opna.cpp = src\fmgen\opna.cpp + src\fmgen\opna.h = src\fmgen\opna.h + src\Option.c = src\Option.c + src\Option.h = src\Option.h + src\os.h = src\os.h + src\P6.c = src\P6.c + src\P6.h = src\P6.h + src\Pd7752.c = src\Pd7752.c + src\Pd7752.h = src\Pd7752.h + src\pngrw.c = src\pngrw.c + src\pngrw.h = src\pngrw.h + src\fmgen\psg.cpp = src\fmgen\psg.cpp + src\fmgen\psg.h = src\fmgen\psg.h + src\Refresh.c = src\Refresh.c + src\Refresh.h = src\Refresh.h + src\resource.h = src\resource.h + src\Sound.c = src\Sound.c + src\Sound.h = src\Sound.h + src\SThread.h = src\SThread.h + src\Tables.h = src\Tables.h + src\Timer.h = src\Timer.h + src\types.h = src\types.h + src\fmgen\types.h = src\fmgen\types.h + src\voice.c = src\voice.c + src\voice.h = src\voice.h + src\win\Win32.c = src\win\Win32.c + src\win\Win32.h = src\win\Win32.h + src\win\Win32fscr.c = src\win\Win32fscr.c + src\win\Win32fscr.h = src\win\Win32fscr.h + src\win\Win32gui.c = src\win\Win32gui.c + src\win\Win32gui.h = src\win\Win32gui.h + src\win\Win32stick.c = src\win\Win32stick.c + src\win\Win32stick.h = src\win\Win32stick.h + src\win\Win32Timer.c = src\win\Win32Timer.c + src\win\WinKanji.c = src\win\WinKanji.c + src\win\WinKeydef.h = src\win\WinKeydef.h + src\win\WinMenu.h = src\win\WinMenu.h + src\win\WinSound.c = src\win\WinSound.c + src\win\WinSound.h = src\win\WinSound.h + src\win\WinThread.c = src\win\WinThread.c + src\Z80.c = src\Z80.c + src\Z80.h = src\Z80.h + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + EndGlobalSection + GlobalSection(ExtensibilityAddIns) = postSolution + EndGlobalSection +EndGlobal diff --git a/Win_Project/ip6plus.VC.db b/Win_Project/ip6plus.VC.db new file mode 100644 index 0000000..2dc0e81 Binary files /dev/null and b/Win_Project/ip6plus.VC.db differ diff --git a/Win_Project/ip6plus.psess b/Win_Project/ip6plus.psess new file mode 100644 index 0000000..1920bd9 --- /dev/null +++ b/Win_Project/ip6plus.psess @@ -0,0 +1,80 @@ + + + + ip6plus.sln + Instrumentation + None + true + true + Timestamp + Cycles + 10000000 + 10 + 10 + + false + + + + false + 500 + + \Memory\Pages/sec + \PhysicalDisk(_Total)\Avg. Disk Queue Length + \Processor(_Total)\% Processor Time + + + + true + false + false + + false + + + false + + + + Debug\ip6plus.exe + 01/01/0001 00:00:00 + true + true + false + false + false + false + false + true + false + Executable + Debug\ip6plus.exe + .\ + + + IIS + InternetExplorer + true + false + + false + + + false + + {CB92A5B4-7D7D-4D83-90D9-F849225530E9}|ip6plus.vcxproj + ip6plus.vcxproj + ip6plus + + + + + ip6plus180413.vsp + + + + + :PB:{CB92A5B4-7D7D-4D83-90D9-F849225530E9}|ip6plus.vcxproj + + + \ No newline at end of file diff --git a/Win_Project/ip6plus.vcxproj b/Win_Project/ip6plus.vcxproj new file mode 100644 index 0000000..60d31c1 --- /dev/null +++ b/Win_Project/ip6plus.vcxproj @@ -0,0 +1,201 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + {CB92A5B4-7D7D-4D83-90D9-F849225530E9} + ip6plus + ManagedCProj + 10.0 + + + + Application + v142 + MultiByte + OldSyntax + + + Application + v142 + MultiByte + false + + + + + + + + + + + + + <_ProjectFileVersion>15.0.27625.0 + + + $(SolutionDir)$(Configuration)\ + $(Configuration)\ + true + + + $(SolutionDir)$(Configuration)\ + $(Configuration)\ + false + + + + -DDEBUG -DSOUND -DHAVE_DIRECT_H -DHAVE_LIBPNG_=1 -Ic:\library\include -D_WIN32_WINNT=0x0400 -DWINVER=0x0400 %(AdditionalOptions) + Disabled + WIN32;_DEBUG;%(PreprocessorDefinitions) + false + EnableFastChecks + false + MultiThreadedDebugDLL + Level3 + ProgramDatabase + Default + + + /SUBSYSTEM:WINDOWS winmm.lib comctl32.lib dsound.lib dxguid.lib dinput8.lib dxguid.lib + c:\library\lib\libpngd.lib c:\library\lib\zlibd.lib %(AdditionalOptions) + $(OutDir)$(ProjectName).exe + true + true + + + + + WIN32;NDEBUG;%(PreprocessorDefinitions) + false + MultiThreadedDLL + Level3 + ProgramDatabase + + + $(OutDir)$(ProjectName).exe + true + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/configure.ac b/configure.ac new file mode 100644 index 0000000..77137b0 --- /dev/null +++ b/configure.ac @@ -0,0 +1,108 @@ +# -*- Autoconf -*- +# Process this file with autoconf to produce a configure script. + +AC_PREREQ([2.69]) +AC_INIT(iP6,4.9-Beta-2, [BUG-REPORT-ADDRESS]) +AC_CONFIG_SRCDIR([src/config.h.in]) +AC_CONFIG_HEADERS([src/config.h]) +AM_INIT_AUTOMAKE(1.15 foreign) + + +# Checks for programs. +AC_PROG_CXX +AC_PROG_CC +AC_PROG_RANLIB + +# checks for build enviroment +AC_CANONICAL_BUILD + +# Checks for libraries. + + + +# Checks for header files. +AC_PATH_X +AC_CHECK_HEADERS([dirent.h OS.h fcntl.h limits.h locale.h malloc.h memory.h stddef.h stdlib.h string.h strings.h sys/ioctl.h sys/time.h unistd.h]) + +# Checks for typedefs, structures, and compiler characteristics. +AC_CHECK_HEADER_STDBOOL +AC_C_INLINE +AC_TYPE_PID_T +AC_TYPE_SIZE_T +AC_CHECK_TYPES([ptrdiff_t]) + +# Checks for library functions. +AC_FUNC_MALLOC +AC_CHECK_FUNCS([opendir atexit floor getcwd gettimeofday memset pow setlocale strchr strstr strtol]) + +#AC_CHECK_HEADERS([X11/extensions/scrnsaver.h], [], [], +# [[#include +# ]]) + + + + +AC_ARG_ENABLE(mitshm, +[ --enable-mitshm turn on MITSHM [[default=no]]], +[\ +case "${enableval}" in + yes) enable_mitshm=yes ;; + no) enable_mitshm=no ;; + *) AC_MSG_ERROR(bad value for --enable-mitshm) ;; +esac], +enable_mitshm=no) +if test x"${enable_mitshm}" = x"yes"; then +# AC_DEFINE(MITSHM, 1, [Define to 1 if you want to MITSHM]) + CFLAGS="$CFLAGS -DMITSHM" +fi + +case ${build_vendor} in + apple) + LIBS="-framework OpenAL $LIBS" + ;; + *) + LIBS="-lopenal $LIBS" + ;; +esac + + +AC_SUBST( CFLAGS) +CFLAGS="$CFLAGS -O0 -DX11 -DUNIX -I/usr/X11/include -I/usr/X11R6/include -I/usr/local/include" + +AC_SUBST( CXXFLAGS) +CXXFLAGS="$CFLAGS" + +AC_SUBST( LIBS) +LIBS="-L/usr/X11/lib -L/usr/X11R6/lib -L/usr/local/lib -lpthread \ + -lXaw -lXt -lXmu -lXext -lX11 -lm `libpng-config --static --libs`\ + $LIBS" + + +AC_ARG_ENABLE(sound, +[ --enable-sound Enable sound [default=yes]], + ,enable_sound=yes) +if test x$enable_sound = xyes; then + CFLAGS="-DSOUND $CFLAGS" +fi + +AC_ARG_ENABLE(debug, +[ --enable-debug Enable debugging mode [default=yes]], + ,enable_debug=yes) +if test x$enable_debug = xyes; then + CFLAGS="-DDEBUG $CFLAGS" +fi + + +AC_CONFIG_FILES([ \ + Makefile \ + doc/Makefile \ + src/Makefile \ + src/compatible_rom/Makefile \ + src/fmgen/Makefile \ + src/sysdep/Makefile \ + src/unix/Makefile \ + src/win/Makefile \ + Win_Project/Makefile \ + ]) +AC_OUTPUT + diff --git a/doc/BUGS.html b/doc/BUGS.html new file mode 100644 index 0000000..b2bb966 --- /dev/null +++ b/doc/BUGS.html @@ -0,0 +1,162 @@ + + +iP6 Plus の現在 判明している不具合について + + + + + +

iP6 Plus の現在 判明している不具合について

+ +Last update 2018/8/14 + + +

共通の不具合や、問題について

+ + + +

Windows版

+ + + + +

Unix版

+