NEOGEO CDZ Emulator 0.1.9 for PSP

現在使用しているPSPSDKは SVN revision 1812 です。

バグ報告はこちらまでお願いします。 neocdz@infoseek.jp

------------------------------------------------------------------------------------

※フォルダの設定とかがわからない方がいるようですが、NeoCDPSP 0.5と同じです。
  readme.txtを読んで設定してください。そのために同梱しています。
  基本的には、

  zip圧縮しない場合
  ・NCDZPSPフォルダに適当な名前のフォルダを作成。
  ・作成したフォルダにNEOGEO CDの中身をそのままコピー。
  ・CDDAを再生する場合は、作成したフォルダの下にneocd.mp3フォルダを作成。
    適当な名前xx.mp3 (xxは02〜99までの二桁のトラック数)という名前でMP3を作成して
    neocd.mp3フォルダにコピー。

  zip圧縮する場合
  ・NCDZPSPフォルダに適当な名前のフォルダを作成。
  ・作成したフォルダにNEOGEO CDの中身を圧縮したzipファイルをコピー。
  ・CDDAを再生する場合は、作成したフォルダの下にneocd.mp3フォルダを作成。
    適当な名前xx.mp3 (xxは02〜99までの二桁のトラック数)という名前でMP3を作成して
    neocd.mp3フォルダにコピー。

  isoファイルをコピーしても動作しません。
  詳しくはreadme.txt(英語ですが)を参照ください。

  (0.5以降と互換性があるかどうかは試していないのでわかりません)

------------------------------------------------------------------------------------
0.1.9

・エラーメッセージが表示された場合に、スプライトキャッシュの一部がクリアされ、
  画面が正常に表示されなくなっていたバグを修正。
・サウンドとCDDAの音量調整を追加しました。処理速度を下げたくないため、元の音量
  より小さい値しか設定できませんので、音量をあげる場合はメニューでサウンドとCDDAの
  音量のバランスを調整した上で、PSPの音量ボタンを操作してください。
  (追加メニュー項目：Sound volume, CDDA Volume)
・コントローラをプレイヤー2にも割り当てられるようにしました。
  メニューの追加項目"Controler"でPlayer 1/Player 2を切り替えてください。
・スリープが正常に動作するように修正しました。再開時にCDDAが曲の先頭から始まりますが、
  レスポンスを考慮すると避けられない問題ですので、ご了承ください。

※サウンドとMP3の処理を書き直したため、新たな不具合が発生している可能性があります。
  問題がありましたらご連絡ください。

------------------------------------------------------------------------------------
0.1.8

・ステートセーブのメニューにDeleteの項目を追加しました。
・ステートセーブをした後に×ボタンを押すことで、メニューに戻らずに直接ゲームに
  復帰できるようにしました。
・ステートセーブで、データがあるスロットでロードを選択し直後にEmptyのスロットに
  移動しセーブを実行しようとした場合に、セーブができなかったバグを修正。

※PSPの電源によるスリープ/レジュームが正常に動作しなくなっているとの報告が
  ありましたが、原因が良くわからないため現状直っていないと思います･
  原因が判明するまでメニューを開いてからスリープするか、ステートセーブをご利用
  ください。

(0.1.8 bugfix1)
・BIOS起動ができなくなっていた不具合を修正。単純なミスでした。

(0.1.8 bugfix2)
・"ERROR: lost synchronization" が表示されることがあったようなので修正。
  多分直っていると思うんですが。
・セーブ/ロードステートの実行画面を表示したままHomeボタンを押して終了しようとすると
  フリーズしていた不具合を修正。

(0.1.8 bugfix3)
・ステートデータの日付を元に戻しました。私のPSPの日付が1年遅れてました(笑)
  処理はあっているのに何でずれるかわからなかったんですが・・・。
  表示処理の問題なので、データ自体には変更はありません。

(0.1.8 bugfix4)
・エラーメッセージが表示された場合に、スプライトキャッシュが一部クリアされて
  描画が正常に行われなくなる不具合を修正。

※サウンド/MP3のボリューム調整の要望がありましたので、次の0.1.9で対応します。

------------------------------------------------------------------------------------
0.1.7

・セーブ/ロードステート機能を追加。
  メインメニューでL/Rトリガーを押すとページが切り替わります。
  スロットを選択し、左右でセーブ/ロードを選択、○ボタンを押すとセーブ/ロードを開始します。
  各ゲームにつき、10個まで保存が可能です。

※PSPのシステムの言語設定に合った現在時刻/日付の取得方法がわからなかったため、
  エミュレータのRegion設定がJapan以外のときはGMTの時刻で保存しています。
  Japanの場合はJSTで記録します。(システムの言語設定に合った時刻の取得方法の情報求む)

※プログラム側でMC68Kのメインメモリから画像及びPCMデータの転送が行われた場合の
  保存/復帰処理を実装していません。ゲームによっては、復帰後に画像や音声が乱れる
  場合があります。

※データのサイズが比較的大きいです。(300KB〜1MBくらい)
  NEOGEO CDの仕様上、どうしてもデータのサイズをこれ以上小さくすることができないため、
  メモリスティックの読み書きに時間がかかります。
  書き込み字はデータ圧縮のために一時メモリスティックにアクセスしなくなり、ランプが
  消灯しますが、電源等を切らずにお待ちください。
  中断した場合ファイルが破損して、Windows等でチェックディスクを実行しないと
  ファイルが消せなくなります。

------------------------------------------------------------------------------------
0.1.6

・スプライトのズーム処理を修正。KOF'94の日本ステージのスクロール表示や月華の剣士1の
  コンティニュー画面の縮小処理が正常に表示されるようになりました。
  トッププレイヤーズゴルフやラリーチェイスの画面はまだおかしいですが、これを完全に
  直すには、ラスタエフェクトを有効にしないと無理でした。
・configとsnapディレクトリがない場合に、自動的に作成する処理を作るのをすっかり忘れて
  いたのでいまさらですが追加しました。

(0.1.6 bugfix)
・NEOドリフトアウト等で描画が正常に行えていなかったバグを修正。
・スプライト縮小描画処理の際、余分なスプライトが描画されていた場合があったバグを修正。
・レンダーのズーム処理使用時に、背景の左側に拡大前の画像が表示されることがあった
  不具合に暫定的に対処。

(0.1.6 bugfix 2)
・月華の剣士2のオープニングデモBでフリーズする不具合を暫定的に修正。

(0.1.6 bugfix 3)
・サウンドが44100Hzの時、22050Hzのストリーム出力処理を行っていた不具合を修正。

------------------------------------------------------------------------------------
0.1.5

・月華の剣士2が動作しなかった不具合を修正。
・必要なコードを誤って削除してしまったため、KOF'99等で画面が崩れていた不具合を修正。
・サウンドのサンプルレートに11025Hzを追加。あまり速度は変わらない模様。
  オプションの値が変更されたため、再設定しなおしてください。
・CDDAで曲が再生される際に、前に再生していた曲が一瞬再生されてノイズになる場合が
  あった不具合を修正。

------------------------------------------------------------------------------------
0.1.4

・入力チェックのバグで、常に60psのフレーム制限がかかっていた不具合を修正。
  60fps limitをOFFにしてみると良くわかるかと。
  VsyncをONにしてもほとんどのゲームが普通に動作するかもしれない気が。
・CZ80のバグ修正が完了しました。MAME Z80コアと変わらなくなったと思います。
  というわけで、MAME Z80版は廃止。
・サウンドのサンプリングレートを指定できるようにしました。
  44100Hzが選択できるようになりましたが、あまり変わらないかも。

(0.1.4 bugfix)
・サンプルレートを変更した場合に、メニューを抜ける際に再起動するようにしました。
・VSYNCオプションが無効になっていたので修正。ただ、まだきれいに同期できているわけでは
  ないので、いい方法を模索中。

(0.1.4 bugfix 2)
・再起動がうまくいかなかった不具合の修正。
・サンプルレート以外の変更でも、必要に応じて再起動するように変更。
・起動直後にBIOS起動を実行するとフリーズしていたバグの修正。

(0.1.4 bugfix 3)
・再起動のダイアログが×ボタンでキャンセルできていた不具合を修正。
・いくつかのゲームが起動できない可能性があった不具合を修正(psp-gccのバグっぽいんですが)。

※ちと体調を崩して辛いので、今週末は更新できないかもしれません。

------------------------------------------------------------------------------------
0.1.3

・一部のゲームでロード画面が表示されなくなっていた不具合を修正。
・Rボタンのスクリーンショットが非常に鬱陶しいので、デフォルトからはずしました。

------------------------------------------------------------------------------------
0.1.2

・龍虎の拳2がまたフリーズするようになっていたため修正。
・ADKのゲームでフリーズする、ロードエラーが表示されるなどの問題が発生していたため修正。
・その他、細かい修正をいくつか。

------------------------------------------------------------------------------------
0.1.1

・MC68000の割り込みをクリアし忘れていた不具合を修正。
  でも、C68Kの仕様上あまり関係ない模様。

・ロード画面を表示しない場合に、読み込み後に画面の一部が表示されない場合があった
  不具合を修正。

・ロード画面を使用しない読み込み及びロード画面を無効にした場合において、若干読み込み
  速度を向上。

・オプションを二つ追加。
  いずれも0.1で速度向上のために追加したスプライト管理機能のオプションです。
  通常は変更する必要はありません。

  Cache clear timing: 指定したフレーム数表示されなかったスプライトをキャッシュから削除
    速度を安定させるために、一定のフレーム数表示されなかったスプライトをキャッシュ
    からクリアしていますが、このオプションでそのフレーム数を指定します。
    キャッシュサイズをできる限り少なくするために、毎フレームチェックを行うため
    あまり小さい値にすると再登録の時間が増えて逆に重くなります。30以上を推奨します。

  Palette refresh type: パレット更新時のキャッシュクリア方法を指定
    パレット更新時に、「全てのキャッシュをクリアする」、「変更のあったパレットの
    スプライトのみをキャッシュから削除する」のいずれの方法でキャッシュをクリアするか
    指定します。通常は変更のあったパレットのみのほうがいいです。

------------------------------------------------------------------------------------
0.1 正式版

・Z80 CPUコアをMAMEのものに変更しました。
・CZ80の修正も一応終わったので、更新しました。
・サウンドの修正が完了しました。一部ゲームでおかしかったサウンドも直った模様。

------------------------------------------------------------------------------------
0.1 Release Candidate 4

※Z80の修正が進まないので、ちょっと更新しておきます。

・スプライト管理部分を変更。速度との兼ね合いで、このくらいがベストではないかと
  思います。オプションで設定を変更できるようにするかもしれませんが、ちょっと様子見で。
・ファイターズヒストリーダイナマイトで、ロード画面を無効にしていると、プレイ開始後に
  スプライトが描画されなくなる不具合の修正。
  (いつも情報ありがとうございます)

------------------------------------------------------------------------------------
0.1 Release Candidate 3

・CZ80のバグを一部修正。いくつかのゲーム(龍虎の拳2オープニングデモ等)での不具合が
  修正されました。無理な処理をしなくなったので、SSGの効果音もきれいに再生されるように
  なったかと。

※まだパワースパイクス2やダンクドリームのサウンドが再生されないので、どこか
  に不具合がある模様。週末までに間に合わせたいところ。

(RC3 bugfix)
・パレットが変更されるとスプライトが正常に描画されなくなる場合があったため、一部処理を
  一時的に元に戻しました。(パレットが徐々に変化する場合、ちょっと速度落ちてます)

------------------------------------------------------------------------------------
0.1 Release Candidate 2

・スプライト描画を最適化しました。ゲームによっては、RC1よりはだいぶ軽くなったと
  思います。

(RC2 bugfix)
・ファイルブラウザで拡張子のないファイルがあった場合にフリーズしていたバグを修正。

------------------------------------------------------------------------------------
0.1 Release Candidate

・ユーザーインタフェースの変更及びが完了しました。(多少の変更はあるかも)

・タイマ及びMC68000の割り込み周りの調整が完了しました。

・龍虎の拳2(Art of Fighting 2)のスピード変更が正常に反映されるようになりました。
　特殊な割り込み方法を使用しているため、このゲームのみ専用の処理を行っています。

・ラスタエフェクトは実装してみたものの、プレイ可能な速度ではなかったため廃止しました。
  使用予定だった000-lo.loも結局使わなかったため、現状では起動には不要となります。

・サウンドエミュレーションを変更中のため、いくつかのゲームで不具合が発生していますが、
  既知のバグですので、これに関する報告は不要です。

------------------------------------------------------------------------------------
0.1 beta 8

・うぅぅ、バックアップメモリの読み書きができなくなっていたバグを修正しました。
  ご報告どうもありがとうございます。

・こつこつ作成してきたフォントがようやく完成したので、ユーザインタフェースを新しい
  ものに変更中です。
  フォント(とアイコン)にアンチエイリアス処理とシャドー処理を行えるようにしました。
  GUでやろうと思いましたが、ソフトウェアでも十分速度が出ているのでこのままにしようかと。
  ダイアログ等はまだ作成していないため、古いユーザインタフェースのままです(進行度50%)。
  完成するまで更新するつもりはなかったので、バージョン表記は0.1になっていますが、
  まだ正式版ではありません(今週末に公開できるといいですが)。

------------------------------------------------------------------------------------
0.1 beta 7

・起動時にZoom1,Zoom2,Fullが指定されていた場合の描画の不具合を再度修正。
・上記の問題に伴い、ユーザインタフェースの描画処理(pg.c)を暫定的に書き直し。
  エミュレーション側の描画方法と異なり不具合がおきやすいため、最終的には廃止予定。
・リスタートを選ぶと無限ループに陥っていた不具合の修正。

------------------------------------------------------------------------------------
0.1 beta 6

・メールでご報告いただいた、起動時にZoom1,Zoom2,Fullが指定されていた場合の描画の
  不具合を修正。
・ついでなので、ラスタエフェクト対応に備えてスプライト描画処理を変更。
  (※ラスタエフェクトには対応していません)
  000-lo.loが必要になります。neocd.bin同様、EBOOT.PBPと同じディレクトリに
  置いてください。
・オートフレームスキップの初期化を修正。

------------------------------------------------------------------------------------
0.1 beta 5

・サウンドタイマの処理を調整。
・ロード画面等の画面クリアの処理を修正。

※ネオジオエミュレーション部分の調整はこれで一段落です。
  次あたりでインタエースの変更を完了して、正式版にしたいところ。

------------------------------------------------------------------------------------
0.1 beta 4

・ラスタカウンタの処理を修正。ラスタカウンタをチェックする以下のゲームが動作する
  ようになりました。

  OVER TOP
  NEO Drift Out

  これで全部動作するようになったんじゃないかと。
  あとはラスタエフェクトをどうにかしないと・・・。

------------------------------------------------------------------------------------
0.1 beta 3

・タイマ処理で無限ループにはまってしまう可能性があった不具合を修正。
  ちとまずい処理だったので修正しました。

------------------------------------------------------------------------------------
0.1 beta 2

・ベクタテーブルの保存の際、ROM領域とRAM領域を間違えていたため、かなりの数のゲームが
  動作しなかった不具合を修正。
・ネオジオCDのVRAMエミュレート用のメモリが、半分しか確保されていなかった不具合の修正。
・ハードウェアレンダリングを修正。拡大縮小時のスプライトがきれいに表示されるように
  なりました。これに伴い、ソフトウェアレンダリングを廃止。
・CPUとサウンドのスケジューリングを若干変更。まだ不完全ですが、以前より多少SSGサウンド
  がきれいに再生されるようになったかと。
・設定ファイルをテキスト形式で保存するように変更。
・キーコンフィグ設定ファイルをテキスト形式で保存するように変更。
  configディレクトリに保存されます。
・スナップショットをsnapディレクトリ内に保存するように変更。
・メニュー項目をいくつか追加、変更

  (追加)
  Auto frameskip limit:
     オートフレームスキップのスキップしないスピードの下限値を指定します。
     エミュレーションスピードがこの値を下回った場合にオートフレームスキップを開始します。

  (変更)
  Restart:従来のResetです。エミュレーションを初期化からやり直します。
  Reset:エミュレーションをリセットして、タイトルに戻ります。

------------------------------------------------------------------------------------
0.1 beta 1

・ネオジオエミュレーションコアを拙作のNEOGEO CDZ Emulatorベースに全て書き直し。
  チェックしていませんが、ほとんどのゲームは動作するかと。
・ロード画面対応。
・PSP依存部分を修正。
・細かなフレームスキップ設定、オートフレームスキップを追加。
・キーコンフィグを追加。
・サウンド修正。
・startup.bin及びpatch.prgは不要に。
・タイトル画像があるゲームは、メニュー上に表示(ZIP圧縮ファイルは展開に時間が
  かかるため未対応)
・NeoCDPSPじゃなくなったので、センスのないアイコン、背景画像、メニューの背景
  を仕方なく作成。(ロード画面は作っていませんので、適当に用意してくだされ。
  ファイル名は本家と同じloading.bmpです。なくても動作しますが)
・そして、実行速度の低下(笑)
