R8PJ01:スーパーペーパーマリオ
エミュレーション設定
推奨ビルド
Dolphin4.0-3610以降
グラフィック推奨設定
○:問題なし、△:一部不具合あり、×:著しく問題あり、-:未確認
OpenGL |
D3D11 |
D3D12 |
Software |
その他 |
× |
○ |
○ |
- |
- |
オーディオ推奨設定
○:問題なし、△:一部不具合あり、×:著しく問題あり、-:未確認
|
OpenAL |
DirectSound |
XAudio |
その他 |
HLE |
○ |
- |
○ |
- |
LLE |
○ |
- |
○ |
- |
エミュレーション推奨設定
○:推奨設定・必要構成、△:非推奨設定、×:禁止設定、-:必要なし、?:未確認
EFB skip |
Ignore Format Change |
EFB copies |
Cache |
XFB |
Fast depth |
Bounding box |
- |
- |
× |
Fast |
- |
- |
○ |
EFB copiesの○は、4.0系初期の設定項目ではEFB copies to Textureと読み替えること。(RAMではない)
Bounding Boxの○は、BBoxのエミュレーションが必要であることを表す。つまり、BBox無効のチェックを外せという意味。
特記事項
OpenGLは描画に致命的欠陥がある。使用しないこと。
問題点
扉開閉時などのエフェクトが消失する
扉開閉時などのマップ移動エフェクトが消失することがある。この問題を回避するにはEFB Copies to Texture Onlyを無効にする(4.0系統初期ではEFB copiesをRAMに設定する)ことで回避できる。
解析情報
RAMマップ
TAS videosのGame Resourcesより抜粋。日本語版のみ掲載。ここに掲載していないRAM情報は
こちら
アドレス |
型 |
サイズ |
内容 |
3D14F0 |
byte[] |
104 |
敵のステータス定義1(クリボー)。 以下3DEE47まで535体分定義されている。 |
4A235F |
byte |
1 |
フェアリン状態値 |
4A237C |
float |
4 |
フェアリンX座標 |
4A2380 |
float |
4 |
フェアリンY座標 |
4A2384 |
float |
4 |
フェアリンZ座標 |
4A23A0 |
float |
4 |
フェアリンX-Z速度(読取専用) |
4A23A4 |
float |
4 |
フェアリンY速度(読取専用) |
4A23A8 |
float |
4 |
フェアリンX-Z面角度 |
4A26BB |
byte |
1 |
アンナ状態値 |
4A26D8 |
float |
4 |
アンナX座標 |
4A26DC |
float |
4 |
アンナY座標 |
4A26E0 |
float |
4 |
アンナZ座標 |
4A2708 |
float |
4 |
アンナX-Z速度(読取専用) |
4A270C |
float |
4 |
アンナY速度(読取専用) |
4A2710 |
float |
4 |
アンナX-Z面角度 |
4A27B4 |
float |
4 |
X座標 |
4A27B8 |
float |
4 |
Y座標 |
4A27BC |
float |
4 |
Z座標 |
4A28AC |
float |
4 |
X-Z速度(読取専用) |
4A28D0 |
float |
4 |
X-Z面角度 |
4A3438 |
float |
4 |
Y速度(読取専用) |
4A3440 |
float |
4 |
重力加速度 |
74029C |
float |
4 |
カメラX座標 |
7402A0 |
float |
4 |
カメラY座標 |
7402A4 |
float |
4 |
カメラZ座標 |
7402A8 |
float |
4 |
焦点X座標 |
7402AC |
float |
4 |
焦点Y座標 |
7402B0 |
float |
4 |
焦点Z座標 |
敵ステータス定義
アドレスは相対アドレスなので注意
アドレス |
型 |
サイズ |
内容 |
00 |
IntPtr |
4 |
識別名1へのポインタ |
04 |
IntPtr |
4 |
識別名2へのポインタ |
08 |
ushort |
2 |
カード番号(カードの存在しないキャラには0) |
18 |
byte |
1 |
HP |
19 |
byte |
1 |
AT |
38 |
short |
2 |
スコア |
3C |
short |
2 |
アクロバット加算スコア |
4A |
ushort |
2 |
コインドロップ率(%) |
4C |
ushort |
2 |
最大コインドロップ量 |
4E |
ushort |
2 |
アイテムドロップ率(%) |
50 |
IntPtr |
4 |
ドロップアイテム定義テーブルへのポインタ |
58 |
flort |
4 |
跳ね返り初速 |
5C |
flort |
4 |
跳ね返り速度 |
ドロップアイテム定義テーブル
アイテム番号(int)と重み付け(int)のペア
アイテム番号に0を指定したところで定義終了
アイテム番号の一覧は
こちら
乱数計算式
RNG(x+1)=(0x5D588B65*RNG(x)+1)%0x100000000
乱数更新頻度
メッセージウィンドウ表示:1サイクル
通常テキスト:1文字につき2サイクル/F
メニューテキスト:1文字につき6サイクル/F
ステージタイトル:1文字につき10サイクル/F
その他:1サイクルから状況によりさまざま
アイテムドロップ抽選の処理内容
アイテムドロップは
- アイテムドロップを発生させるかどうかの抽選
- ドロップするアイテムの抽選
の二段階処理になっており、国内版(R8PJ01)では1.については0x801BD3D4から、2.については0x801BD400からの命令列で処理されている。
以下、逆汗解析によって得た処理内容の詳細を説明する。
- あらかじめ乱数を1サイクルだけ進める
- 新しく求めた乱数値を定数0x28F5C28で割った商を求める。この値をP1とする。
なお、0x28F5C28は0xFFFFFFFFを0x64で割った商である。
- P1が100以上だった場合は、もう1サイクル乱数を進め、新しい乱数値を同様の方法で割り算し、新しいP1を求める。P1が100未満になるまでこの操作を行う。
- 敵ステータス定義にあるドロップ発生確率の値とP1を比較し、P1の方が小さかった場合にはドロップアイテム抽選処理に入る。大きかった場合はドロップは発生しない。
- ドロップアイテム定義テーブルに書かれてある各アイテムの重み付けの和を求める。この値をWとする。
- 定数0xFFFFFFFFをWで割った商を求める。これをP2とする。
- P2が1未満であった場合には、P2=1とする。
- 乱数を1サイクル進める
- 乱数をP2で割った商を求める。これをP3とする。
- P3がW以上だった場合は、もう1サイクル乱数を進め、新しい乱数値をP2で割り、新しいP3を求める。P3がW未満になるまでこの操作を行う。
- P3がら、各アイテムの重み付けを定義テーブルに書かれている順番に引いていく
- 結果がマイナスになったところで引き算をやめる。最後に引いた重み付けに対応するアイテムがドロップ確定アイテムとなる。
バグ
詳細は
こちらを参照。ここでは概要の紹介にとどめる。
速度保存滑空
ピーチ用。ノッテこーに乗ってダッシュジャンプをし、下降に転じたら空中で降りてすぐにパラソルを出すと、ノッテこー乗車時のX速度を保存して滑空できる。そもそもピーチを使うことがほとんどないので使い道はあまりない。
デスジャンプ (Life Shroom Double Jump)
緊急キノコによる蘇生演出の最終フレームに次元技またはジャンプの入力判定を重ねることで2段ジャンプできる。
次元技の場合は演出の最終フレームでA入力、直接ジャンプする場合は演出の最終フレームの3F前から2を先行入力すること。
マリオの無限ジャンプ (Thudley Jump)
マリオのみ可能。ヒップドロップの落下が始まるのにあわせて1を入力してモーション解除をし、その5F後に次元技を出してジャンプする。
何度でも連続で繰り返すことが出来る。カメラが追従するのでステージ境界最上部に到達できる唯一の技。
クッパの無限ジャンプ (Carrie Jump)
クッパのみ可能。ノッテこーに乗った状態で炎を吐きながらジャンプする。炎を吐き終わって通常体勢に戻る最終フレームにジャンプの入力判定を重ねれば再度ジャンプできる。具体的には通常体勢に戻る3F前から2を先行入力する。
何度でも連続で繰り返すことが出来るが、カメラが追従しないので上に上がるには適さない。しかも慣性が殆ど死ぬので長距離横移動にも使えない。
マリオに比べて1段1段を出す時間が短いので距離が必要ではない場面で有効。
ブロックすり抜け
裸足マリオ限定。ブロックの角に対し、特定の座標に向かってしゃがみジャンプをするとめり込む。めり込んだときに2をいったん離し、すぐに再入力すると角からブロックをすり抜ける。土管に対しても可能。通常の地形に対し可能かは不明。
その他
このゲームはBBoxのエミュレーションを必要とするタイトルであるが、一時期(4.0-9000ごろ~5.0-84、5.0安定版も含む)のDolphinでは、描画APIにD3Dを使用しているときにBBoxエミュレーションを行いながらAVI録画をすると、出力映像が崩壊する致命的バグがある。OpenGLでは正常に録画できるが、このゲームに関してはOpenGLでは今まで一貫して描画に致命的欠陥があるため使用出来ず、事実上この時期のDolphinでは正常に録画できない。
動作保障
ビルド |
OS |
CPU |
GPU |
ビデオAPI |
オーディオAPI |
描画 |
音声 |
動作 |
特記事項 |
4.0.2 |
Windows 7 |
Core i7 4600M |
Intel HD Graphics 4600 |
D3D11 |
XAudio |
△ |
○ |
△ |
モノノフ王国ではBBoxを無効にしなければフリーズする。 |
4.0-7015 |
Windows 7 |
Core i7 4600M |
Intel HD Graphics 4600 |
D3D11 |
XAudio |
○ |
○ |
○ |
モノノフ王国のフリーズバグはこのビルドまでに解消されている。常時BBoxエミュレーションを有効にすること。 |
4.0-7015 |
Windows 7 |
Core i7 4600M |
Intel HD Graphics 4600 |
OpenGL |
XAudio |
× |
○ |
○ |
クリア不可能。OpenGLは使用しないこと。 |
5.0 |
Windows 7 |
Core i7 4600M |
Intel HD Graphics 4600 |
D3D11 |
XAudio |
○ |
○ |
○ |
問題なし |
5.0 |
Windows 10 |
Core i7 4600M |
Intel HD Graphics 4600 |
D3D12 |
XAudio |
○ |
○ |
○ |
問題なし |
5.0-114 |
Windows 10 |
Core i7 4600M |
Intel HD Graphics 4600 |
D3D12 |
XAudio |
○ |
○ |
○ |
問題なし。なお、5.0-86以降ではAVI録画のバグは修正されている。 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
最終更新:2016年11月24日 23:00