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サイクルから状況によりさまざま

アイテムドロップ抽選の処理内容

アイテムドロップは
  1. アイテムドロップを発生させるかどうかの抽選
  2. ドロップするアイテムの抽選
の二段階処理になっており、国内版(R8PJ01)では1.については0x801BD3D4から、2.については0x801BD400からの命令列で処理されている。
以下、逆汗解析によって得た処理内容の詳細を説明する。

  • アイテムドロップ発生抽選
  1. あらかじめ乱数を1サイクルだけ進める
  2. 新しく求めた乱数値を定数0x28F5C28で割った商を求める。この値をP1とする。
    なお、0x28F5C28は0xFFFFFFFFを0x64で割った商である。
  3. P1が100以上だった場合は、もう1サイクル乱数を進め、新しい乱数値を同様の方法で割り算し、新しいP1を求める。P1が100未満になるまでこの操作を行う。
  4. 敵ステータス定義にあるドロップ発生確率の値とP1を比較し、P1の方が小さかった場合にはドロップアイテム抽選処理に入る。大きかった場合はドロップは発生しない。

  • ドロップアイテム抽選
  1. ドロップアイテム定義テーブルに書かれてある各アイテムの重み付けの和を求める。この値をWとする。
  2. 定数0xFFFFFFFFをWで割った商を求める。これをP2とする。
  3. P2が1未満であった場合には、P2=1とする。
  4. 乱数を1サイクル進める
  5. 乱数をP2で割った商を求める。これをP3とする。
  6. P3がW以上だった場合は、もう1サイクル乱数を進め、新しい乱数値をP2で割り、新しいP3を求める。P3がW未満になるまでこの操作を行う。
  7. P3がら、各アイテムの重み付けを定義テーブルに書かれている順番に引いていく
  8. 結果がマイナスになったところで引き算をやめる。最後に引いた重み付けに対応するアイテムがドロップ確定アイテムとなる。


バグ

詳細はこちらを参照。ここでは概要の紹介にとどめる。

速度保存滑空

ピーチ用。ノッテこーに乗ってダッシュジャンプをし、下降に転じたら空中で降りてすぐにパラソルを出すと、ノッテこー乗車時の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