XEBRA


概要

正式名称:エミゅってしまうま(略称:XEBRA)
作者:独田地獄斎(Dr. Hell)
ホームページ:http://drhell.web.fc2.com
旧ホームページ:https://web.archive.org/web/20100820001721/http://members.at.infoseek.co.jp/DrHell


XEBRAは作者自身のレベル上げを通じて、若いエミュレータ開発者に
情報提供することを目的とした実験的PlayStationエミュレータ。

かつてはOS(BIOS)を必要としないARBEXもあったが
XEBRAにOSが搭載された為、廃止となった。

公式サイト


Windows


プレイステーションエミュレータ
 XEBRA : http://drhell.web.fc2.com/ps1/index.html
  ※ページ下部のスクリーンショット画像をクリック

ポケットステーションエミュレータ
 PK201 : http://drhell.web.fc2.com/pocket/index.html
  ※ページ下部のスクリーンショット画像をクリック

Android



ポケットステーションエミュレータ
 PK201 : https://play.google.com/store/apps/details?id=com.dokutajigokusai.pk201

メモリカードマネージャー
 MCIM : https://play.google.com/store/apps/details?id=com.dokutajigokusai.mcim


使い方

作者による使い方が2018.05.29に公開された。
http://drhell.web.fc2.com/ps1/xebra/index.html


設定


設定できる項目の詳細は公式サイトや同梱の「XEBRA.TXT」、そしてXebraのウインドウにあるHelpを参照。

日本語化

  LANGUAGEフォルダに各言語ごとの「XEBRA.LNG」があるので、
  それをXEBRA.EXEと同じフォルダに移動する。


ビデオ設定

  PSEmuPro系ビデオプラグインの使用方法 (XEBRA v171207より)
   1.ビデオプラグインを「VIDEO.DLL」とリネームし、XEBRAのフォルダに入れる。
   2.View->Video Outputにある「Use VIDEO.DLL」にチェックを入れる。
   3.XEBRAを再起動して、View->Video Outputにある「Config」からプラグイン設定をする。


  XEBRA本体での描画について
   画質変更について
    View->Video Outputで
    Draw with OpenGLにチェックを入れるとゲームの相性次第では
    実機以上にポリゴンが滑らかになる。

   画面がチラつく場合
    View->Video Outputで
    Display Skipの値を1ずつ増やしてみる。
    Draw with OpenGLを使用している場合は
    Drawing Skipの値も試してみる。

サウンド設定


  音量調節する場合
   View->Sound Outputで
   N=8
   a1_=0
   a2_=0
   b1_=0
   b2_=0
   にしておけば
   b0_の大小(N=8の場合は0~256)がそのまま音量の大小になる。

コントローラ設定


  View->Controllerで
  1.一番上にあるコンボボックスから "Controller 1" または "Controller 2" を選ぶ
  2.二番目のコンボボックスでコントローラタイプを選ぶ。
  3.ダイアログ上の登録したい箇所のボタンをクリックして、実際のコントローラのボタンを押す。

   ※ 3.で反映されない場合は3.をこの方法で行う
       ダイアログ上の登録したい箇所のボタンをクリック
       コントローラタイプのドロップダウンリストを開く
       再選択せずにリストを開いたままの状態で実際のコントローラのボタンを押す。

  4.スティック設定のコントローラID(先頭の番号)を登録したボタンのコントローラIDと同じ番号にする。
  5.OK(適用)をクリックすると設定が保存される。

   ※1.5.をやり忘れる人が多いので注意
    3.で反映されないのは一部の環境でのみ起きるバグ

スクリーン設定


  View->Width/Height
   ウインドウ(正確にはクライアント領域)の幅/高さを指定

  View->Scale
   Width/Heightで指定した領域の中で映像を映す規模を指定

    16:12  領域全体で表示
    16:10u 幅 x 0.833
    16:10o 高さ x 1.2
    16:09u 幅 x 0.75
    16:09o 高さ x 1.333

  Width/Heightで指定した領域が
   16:12なら16:12を選択
   16:10なら16:10uまたは16:10oを選択
    uでは左右に黒帯が付き、画面全体が収まるように表示
    oでは左右に黒帯が出ないよう拡大
   16:09も上記と同様


Running Image(どこでもロード/セーブ)について


 File->Save->Running Imageでゲーム中の状態を(メモリーカードの状態も含め)保存し、
 File->Open->Running Imageでロードすることができる
 (ロードした際にメモリーカードの内容が上書きされるので
 あらかじめメモリーカードファイルBU00,BU01をバックアップしておくと良い)

 ただし、CD-ROMの読み込みは保存されないので、先にCD-ROMを読み込んで
 その後RunningImageをロードする必要がある

ショートカットキー


 F1~F3キー=XEBRAフォルダ内のRunningImageにセーブ
  F1キー=XEBRA.RUN
  F2キー=[ゲーム型番].RI0ファイル
  F3キー=[ゲーム型番].RI1ファイル

 F4キー=時間同調/早送り
 F5キー=実行(モード1)
 F6キー=実行の中断

 F7~F9キー=XEBRAフォルダ内のRunningImageをロード
  F7キー=XEBRA.RUN
  F8キー=[ゲーム型番].RI0ファイル
  F9キー=[ゲーム型番].RI1ファイル

 F12キー=フルスクリーンモード(もう一度押すとメニュー表示)
 Escキー=ウインドウモード

デフォルトの設定で不具合が出る場合(表示が乱れる,動かない,音割れ等)


 ・設定ファイルであるXEBRA.INIはバージョンごとの互換性が無く、
  不具合の元になるので更新した際はXEBRA.INIを削除する。
  またRunningイメージも互換性が無い可能性が高い。

 ・Run->Run->Mode1-5を変更してみる。特にMode4,5は精度が高い。
 ※Ver.160619まではMode4,Mode5でSimulateのI Cacheを反映しないが、
  Ver.160928からはMode4のみ反映しない。

  それで改善しなければシミュレーション設定を変更する。変更の際には、こちらの「シミュレーション設定について」を参照。
 ・http://drhell.web.fc2.com/ps1/xebra/index.html


実行モードについて

 Mode 1
  コードを関数単位でまとめてバイナリ変換し実行
  遅延処理・割り込み監視を常に実行
  命令キャッシュは疑似再現で、I Cache Rateを使用

 Mode 2
  コードを関数単位でまとめてバイナリ変換し実行
  遅延処理・割り込み監視を適当に端折るので少し高速
  命令キャッシュは疑似再現で、I Cache Rateを使用

 Mode 3
  1コードづつ解釈しながら実行
  遅延処理・割り込み監視を常に実行
  命令キャッシュは全く再現せず、I Cache Rateを使用

 Mode 4
  1コードづつ解釈しながら実行
  遅延処理・割り込み監視を常に実行
  命令キャッシュ完全再現のため、I Cache Rateは不使用

 Mode 5(Ver.160619以前)
  4コードづつバイナリ変換し実行
  遅延処理・割り込み監視を常に実行
  命令キャッシュ完全再現のため、I Cache Rateは不使用

 Mode 5(Ver.160928以降)
  1コードづつ解釈しながら実行
  遅延処理・割り込み監視を常に実行
  命令キャッシュを再現しつつ、I Cache Rateを使用


 理論上の精度としてはMode 4,5が最も高いので
 Mode 1,2では動くのにMode 4,5では動かない場合は、間違いなくタイミング調整の問題。
 ただしI Cache Rateを使用しない実行モードでI Cache Rateを変更しても意味が無いので
 他のシミュレーション設定値を変更してタイミング調整を行う必要がある。


作者がこのような実装をしている理由は公式掲示板(目安箱HG)より
[151] 動作報告 SLPS-01497 Name:yuigenronn			 Date:2011/02/12(土) 06:10 [ Res ]
3X3EYES転輪王幻夢[SLPS-01497]についてです
初めのメニューの一番下「三只眼變成ダイジェスト」を選ぶと半フリーズ状態となり
まともに操作できません。
ご検討いただけたら幸いです。
[153] RE:動作報告 SLPS-01497 Name:Hell			 Date:2011/02/12(土) 12:30
これもシミュレーション設定の最適化が必要なんですが
クロノクロスとかと同類で
I Cacheだけでなく他の部分の調整も必要です。
しかも最適値が実行中にころころ変わるのため
今のところ対応不可ですが、
とりあえずはMisc/Blankで動きます。
--------------------------------------------------
これらに共通しているのはGPUのステータスフラグです。
フラグの値がある値から別の値に変化することをトリガーにしています。
実機よりCPUを遅く(相対的にデバイスを速く)再現したり
またその逆だったりでフラグの変化が既に終了していたり、
逆に変化が遅かったりするわけです。
そうするとゲームプログラムは処理のやりなおしをするので、
袋小路に陥っているわけです。

[23] RE:xebra/arbex動作報告(SLPS-00989) Name:地獄斎			 Date:2009/08/04(火) 19:59
本件はGPUのMoveImage命令で発生した問題ですが、
本質的にはPolygonでも発生する問題です。

MoveImageは、矩形の転送(コピー)を行うもので、
転送元から転送先へ、転送領域の左上の点から右下の点へ向けて、
ラスタスキャンしながらコピーします。
領域が重複する場合、左から右、上から下方向の転送では、
転送したものをさらに転送することになります。
従って通常は周期パタンを形成します。
こちらの現象を利用するゲームも多々あります。
今回そうならないのは、
転送元と転送先の間に(テクスチャ)キャッシュが介在し
転送周期がそのキャッシュサイズ以下だからです。

この(テクスチャ)キャッシュは、意識的にエミュレートしていません。
CPUエミュレーションでもそうですが、
キャッシュをエミュレートするということは、
1コード(ここでは1ドット)毎にキャッシュにヒットしているか
判定機構を設置することになるわけで、とんでもなく遅くなるからです。
10年とは言いませんが、今後数年は、
実機と同じ速度を得られないのは経験上確実です。

MoveImageは判定が簡略化できる(単なる遅延バッファと化す)ため
今回実装に至りました。

先述の様にPolygonについても同様のことが起こり得るのですが、
上記の通り今後数年は、実装するつもりはありません。
PS1のGPUは、テクスチャと描画の領域を同一に出来るため、
Polygonで描いてく端からテクスチャとして利用することができ、
周期的(自己増殖的)な面白い効果が出せます。
これが最終画面の表示だけでなく個々の描画もグラボにやらせる
いわゆるハードウェア描画で再現性が落ちる最大原因になっています。
(再現性が落ちる原因として『スプライト機能が無いから』
というお馬鹿なことを言う人を、今でもたまに見かけますが、
あれはゲームを作る側の人の都合で旧ハードからPS1に
作品を移植しにくいってだけですから)
一方でテクスチャキャッシュを介するため、
短期的にはテクスチャと描画の領域が分かれているような結果になります。
効果として利用される割合は圧倒的に前者の方が多いので、
(後者をやるくらいなら、常識的に初めから別領域にしますから)
ソフトウェア描画の方がハードウェア描画よりも再現性が高いという
評価に結びつきますが、場合によっては、
ハードウェア描画でやった方が実機と同じになる可能性も
無いわけではありません。

見た目的に同じような不具合でも、ムービーの場合は
I Cache Rateの変更で改善するでしょう。
ムービーは定型処理の繰り返しであり、
コードのキャッシュヒット率が高いことを前提に
ゲームが作られるケースがあり、
標準のI Cache Rateでは処理が間に合わないわけです。
(ゲーム内のロジックとして処理落ちしている)

[15] Xebra動作報告 Name:ピーナッツ			 Date:2009/06/23(火) 03:18 [ Res ]
Xebraでクラッシュバンディクー2のボーナスチャレンジに行くと高頻度で
「問題が発生したため、XEBRA.EXEを終了します。ご不便をおかけして申し訳ありません。」
というWinXPのエラーメッセージが表示され、強制終了しました。
どのステージのボーナスチャレンジでも発生しました。

また、クロノクロスで△ボタンから開けるメニュー画面に行くと
CPU使用率がいきなり100%になり、かなり重くなる症状が発生しました。
そのメニュー画面からステータスを開こうとするとフリーズしました。

これらのいずれも090416版、090617版のどちらでも発生しました。
[16] RE:Xebra動作報告 Name:Hell			 Date:2009/06/23(火) 07:13

エミュレートすると重すぎるものを
シミュレートで代替しているので、
限界があります。
裏を返せば、シミュレーション設定を
場面場面で最適化することができれば動きます。
どの設定がいいかは、
ゲーム、場面次第で正解がありません。
あったら標準にしてます。

更新内容(抜粋)

2017/12/16: UIの日本語表記に対応 , GPU制御の修正
 プラグインによっては表示制御命令をロストする場合があることが分かった。
 大した手間でも無いので画面更新毎に表示制御命令を再発行することにした。

2017/12/07: PSEmuProのGPUプラグインに対応
 某GPUプラグインをレンダリングエンジンとして流用出来るようにした。
 (VIDEO.DLLにリネームしてフォルダに置き、Video Outputの設定をONにする)


2016/09/28: Mode 5の変更
 旧 Mode 5 は Mode 4 に比べて利点が感じられないため廃止とし、
 Mode 4 を僅かにモディファイしたものを新 Mode 5 とした。
 (I Cache を再現しつつも I Cache Rate を使用する)

2015/10/11: Soud Outputの変更
 ループ再生・バッファ書き換えからキューイングへ実装を変更
 これにより再生位置と書き換え位置が重なった際の不具合が解消。
 GDIのスケール処理に対応。

2015/06/20: 独自BIOS(XEBRA-OSを搭載した。)
 ARBEXはOS ROMの意図を解釈してx86,ARMネイティブコードで実装していたが
 mipsコードで実装し直すことにした。そのためARBEXはお役御免となった。

2015/02/15:
 動作モードが
  Power(Run)、Debug Run(No I Cache)、Debug Run(I Cache)、Debug Run(I Cache Compile)
 から
  Power(Run)、Mode1(default)、Mode2(little fast)、Mode3(debug)、Mode4(debug)、Mode5(debug)
 へと変更される。

2013/08/15
 動作モードが
  Run1(インタプリタ方式)、Run2(1パスコンパイラ方式)、Run3(2パスコンパイラ方式)
 から
  Power(Run)、Debug Run(No I Cache)、Debug Run(I Cache)、Debug Run(I Cache Compile)
 へと変更される。
最終更新:2021年03月01日 22:35
ツールボックス

下から選んでください:

新しいページを作成する
ヘルプ / FAQ もご覧ください。