atwiki-logo
  • 新規作成
    • 新規ページ作成
    • 新規ページ作成(その他)
      • このページをコピーして新規ページ作成
      • このウィキ内の別ページをコピーして新規ページ作成
      • このページの子ページを作成
    • 新規ウィキ作成
  • 編集
    • ページ編集
    • ページ編集(簡易版)
    • ページ名変更
    • メニュー非表示でページ編集
    • ページの閲覧/編集権限変更
    • ページの編集モード変更
    • このページにファイルをアップロード
    • メニューを編集
    • 右メニューを編集
  • バージョン管理
    • 最新版変更点(差分)
    • 編集履歴(バックアップ)
    • アップロードファイル履歴
    • ページ操作履歴
  • ページ一覧
    • ページ一覧
    • このウィキのタグ一覧
    • このウィキのタグ(更新順)
    • このページの全コメント一覧
    • このウィキの全コメント一覧
    • おまかせページ移動
  • RSS
    • このウィキの更新情報RSS
    • このウィキ新着ページRSS
  • ヘルプ
    • ご利用ガイド
    • Wiki初心者向けガイド(基本操作)
    • このウィキの管理者に連絡
    • 運営会社に連絡(不具合、障害など)
ページ検索 メニュー
TAS動画まとめ @ ウィキ
  • ウィキ募集バナー
  • 目安箱バナー
  • 操作ガイド
  • 新規作成
  • 編集する
  • 全ページ一覧
  • 登録/ログイン
ページ一覧
TAS動画まとめ @ ウィキ
  • ウィキ募集バナー
  • 目安箱バナー
  • 操作ガイド
  • 新規作成
  • 編集する
  • 全ページ一覧
  • 登録/ログイン
ページ一覧
TAS動画まとめ @ ウィキ
ページ検索 メニュー
  • 新規作成
  • 編集する
  • 登録/ログイン
  • 管理メニュー
管理メニュー
  • 新規作成
    • 新規ページ作成
    • 新規ページ作成(その他)
      • このページをコピーして新規ページ作成
      • このウィキ内の別ページをコピーして新規ページ作成
      • このページの子ページを作成
    • 新規ウィキ作成
  • 編集
    • ページ編集
    • ページ編集(簡易版)
    • ページ名変更
    • メニュー非表示でページ編集
    • ページの閲覧/編集権限変更
    • ページの編集モード変更
    • このページにファイルをアップロード
    • メニューを編集
    • 右メニューを編集
  • バージョン管理
    • 最新版変更点(差分)
    • 編集履歴(バックアップ)
    • アップロードファイル履歴
    • ページ操作履歴
  • ページ一覧
    • このウィキの全ページ一覧
    • このウィキのタグ一覧
    • このウィキのタグ一覧(更新順)
    • このページの全コメント一覧
    • このウィキの全コメント一覧
    • おまかせページ移動
  • RSS
    • このwikiの更新情報RSS
    • このwikiの新着ページRSS
  • ヘルプ
    • ご利用ガイド
    • Wiki初心者向けガイド(基本操作)
    • このウィキの管理者に連絡
    • 運営会社に連絡する(不具合、障害など)
  • atwiki
  • TAS動画まとめ @ ウィキ
  • 乱数解析

TAS動画まとめ @ ウィキ

乱数解析

最終更新:2008年07月26日 19:42

tasdouga

- view
管理者のみ編集可

ある程度のゲーム知識が必要になります

あくまでもエミュを使用して調査した物であり、実機とは異なっているかもしれません


事前調査

何も1から自力でやるのではなく、すでに誰かが解明しているものならば
わざわざ自分でやらなくても良いのです
(マイナーなゲームだと望みは薄いですが)
Google先生に聞いてみると乱数表は既に解析されているようです
※初出はEDRというサイトらしいですが既に閉鎖しているようです
EDR乱数表
00 55 11 67 23 79 35 91 46 02 58 14 70 26 82 37
93 49 05 61 17 73 28 84 40 96 52 08 64 19 75 31
87 43 99 55 10 66 22 78 34 90 46 01 57 13 69 25
81 37 92 48 04 60 16 72 28 83 39 95 51 07 63 19
75 30 86 42 98 54 10 66 21 77 33 89 45 01 57 12
68 24 80 36 92 48 03 59 15 71 27 83 39 94 50 06
62 18 74 30 85 41 97 53 09 65 21 76 32 88 44 00
56 12 67 23 79 35 91 47 03 58 14 70 26 82 38 94
50 05 61 17 73 29 85 41 96 52 08 64 20 76 32 87
43 99 55 11 67 23 78 34 90 46 02 58 14 69 25 81
37 93 49 05 60 16 72 28 84 40 96 51 07 63 19 75
31 87 42 98 54 10 66 22 78 33 89 45 01 57 13 69
25 80 36 92 48 04 60 16 71 27 83 39 95 51 07 62
18 74 30 86 42 98 53 09 65 21 77 33 89 44 00 56
12 68 24 80 35 91 47 03 59 15 71 26 82 38 94 50
06 62 17 73 29 85 41 97 53 08 64 20 76 32 88 44
使い方はとりあえず置いておきます
この乱数表に対してよく言われているのが
「大→小→大→小を繰り返している」
ということです(サーチする時に参考になるので覚えておきましょう)
乱数表がわかったので、後は現在の乱数がわかれば運操作できるかもしれません
乱数はゲーム中にフレーム単位で変化するらしいです
(FE聖戦などのフレーム経過で変化しないものもある)
乱数はどこかのアドレスに入っているはずなので
改造コードをサーチするような感じで判明するでしょう

ここからエミュの出番です

乱数アドレスをサーチ

とりあえず動かして"ゲーム部分"まで進めます
タイトル画面やデータ選択画面等でサーチするのは賢明ではありません
具体的にいうと
"第一章の初めの会話が終わってカーソルが動かせるようになった所まで"進めます

上部メニューから Cheat → Search for New Cheats(active)を選択

するとサーチウインドウがでてきます
各オプションは
  • Comparison Type(検索方法)
    • Not Equal To(不一致)
  • Compare To(どれと)
    • Previous Value(前の数値)
  • Data Type(データ形式)
    • Unsigned(符号なし)
  • Data Size(データサイズ)
    • 1 byte(1バイト)
に設定します
各意味の説明は省きますが

"常に変動している数値"はこうやってサーチする

と覚えてもいいかもしれません(見つからなかったらデータサイズやデータ形式を変えてみましょう)
右上にあるResetボタンを押してからゲームを少し動かします
その後、Searchボタンを押すと何個かのアドレスに絞れます
今回のケースでは9個に絞れました
(場合によって違いますが、だいたい似たような結果になります)
更にゲームを動かしてみましょう
サーチウインドウではリアルタイムに数値が変わっていきます
その中で
  • ランダムに数値が変わっているもの
  • 変化が早いもの
が乱数と思われるアドレスです
結果として
  • 7E046B
  • 7E046C
が候補として残りました
これらをそれぞれ選択した状態で右にあるWatchボタンを押すことで
常に画面に表示されるようになります

コマ送りで数値を観察

Pauseキーでゲームが一時停止されます
その状態で\キーを押すと1フレームずつ進められます
しばらくポチポチ押して乱数を観察してみましょう
7E046Cの数値が大→小→大→小を繰り返しているのがわかると思います
試しにこのアドレスの数値を固定してみましょう
改造コードでいうと"7E046C53"です
※試し斬りの前にQSしておきましょう(Shift+F10でセーブ F10でロード)
マルスで下の盗賊を攻撃してみます
すると何度やっても必殺がでるはずです
(出ない場合は改造コードが正しく入力されているか、改造コードがチェックされているか、Cheat → Appry Cheats がチェックされているかを確認してください)
つまりこれが乱数のアドレスということです

乱数を見ていると、EDR乱数表にはない数値がでてきます
それは実際の乱数は0~255であり、EDR乱数表は見やすいように0~99に直した物だからです(多分)
これでは乱数から乱数表の位置がわからないので、自力で乱数表を作成しなければいけません
で、出来たものがこれ
自力乱数表
000 143 030 173 060 203 090 233 120 007 150 037 180 067 210 097
240 127 014 157 044 187 074 217 104 247 134 021 164 051 194 081
224 111 254 141 028 171 058 201 088 231 118 005 148 035 178 065
208 095 238 125 012 155 042 185 072 215 102 245 132 019 162 049
192 079 222 109 252 139 026 169 056 199 086 229 116 003 146 033
176 063 206 093 236 123 010 153 040 183 070 213 100 243 130 017
160 047 190 077 220 107 250 137 024 167 054 197 084 227 114 001
144 031 174 061 204 091 234 121 008 151 038 181 068 211 098 241
128 015 158 045 188 075 218 105 248 135 022 165 052 195 082 225
112 255 142 029 172 059 202 089 232 119 006 149 036 179 066 209
096 239 126 013 156 043 186 073 216 103 246 133 020 163 050 193
080 223 110 253 140 027 170 057 200 087 230 117 004 147 034 177
064 207 094 237 124 011 154 041 184 071 214 101 244 131 018 161
048 191 078 221 108 251 138 025 168 055 198 085 228 115 002 145
032 175 062 205 092 235 122 009 152 039 182 069 212 099 242 129
016 159 046 189 076 219 106 249 136 023 166 053 196 083 226 113
これで乱数表と乱数アドレスが揃いました
後はこれらの使い方です
具体的にいうと計算方法を解析します
先ほどの改造コードで、なぜ必殺が出たのでしょう?
まず固定した数値「83」
乱数表の一番下の段の右から3番目にあります
そこからの乱数を書き出してみると
083 226 113 000 143 030
となっています
ここで怪しいのは4番目の「000」
試しに4番目が「255」になるように「82」で固定してみると通常攻撃になります
これを踏まえて調査していきましょう

乱数と命中率、必殺率の関係を調査

サンプル
命中率が83、必殺率が10の時
結果 固定した乱数 2番目 3番目 4番目 5番目
通常 082 225 112 255 142
必殺 083 226 113 000 143
必殺 108 251 138 025 168
通常 109 252 139 026 169
このケースでは必殺がでる許容範囲が0~25のようです
必殺のことは置いといて、命中率を見てみましょう
命中率が83、必殺率が10の時
結果 固定した乱数 2番目 3番目 4番目 5番目
通常 185 072 215 102 245
ミス 186 073 216 103 246
ミス 225 112 255 142 029
通常 226 113 000 143 030
3番目の乱数に注目します
255と000で結果が変わっています
命中する許容範囲が0~215のようです
命中率を変えてサンプルをとってみます
命中率が95の時
結果 固定した乱数 2番目 3番目 4番目 5番目
通常 215 102 245 132 019
ミス 216 103 246 133 020
ミス 225 112 255 142 029
通常 226 113 000 143 030
許容範囲が0~245に広がっています
どうやら3番目が命中、4番目が必殺の判定に使用する乱数で
ゲームでの数値(0~100)が大きいと乱数の数値(0~255)も大きいということのようです
ここでEDR乱数表と自力乱数表を見比べてみます
自力 EDR
025 09
215 83
245 95
となっています
合っているようで微妙に違っています
EDRでは0~99なので(ゲーム数値-1)で見るはず
つまり必殺率10ならEDRの0~9で必殺のはず
しかし命中83ならEDRの0~82で命中のはずなのに
83で命中しています
これは計算式が違うからです

各種計算式

情報提供により、正確な計算式がわかりました

コメントで情報提供してくれた方、詳しく教えてくれた方、ありがとうございました

命中率

(乱数×100)÷256(小数点以下切捨て)≦実効命中率

実効命中率というのは戦闘画面で表示される命中率のことです
(実効命中率+1)×2.56=命中度(小数点以下切捨て)
乱数≦命中度で命中
命中率83なら83+1で84
84×2.56で215(小数点以下切捨て)
{これで調査結果と合いました
命中率+1ということは命中率が0の場合おかしくなるのではないか
と思う方もいるかもしれません
計算してみると
0+1で1
1×2.56で2
となり、乱数が0~2の時に命中してしまうことになります
やってみるとわかりますが、実際に命中します
命中が99の場合も+1で100になり
100×2.56で256
乱数は0~255なので100%命中します
(この辺のバグっぽい挙動はあまりサンプルをとってないので間違っている可能性があります)

必殺率

(乱数×100)÷256(小数点以下切捨て)<実効必殺率

実効必殺率×2.56=必殺度(小数点以下切捨て)
乱数≦必殺度で必殺
必殺度が0だと出ない

成長率

(乱数×100)÷256(小数点以下切捨て)<成長率

成長率×2.56=成長度(小数点以下切捨て)
乱数≦成長度で成長
成長度が0だと成長しない

乱数の使用順

まだ調査中であるため間違っている可能性が大きいです

暫定乱数判定使用順

攻撃した側 攻撃された側 再攻撃 成長
命中 必殺 命中 必殺 命中 必殺 力 技 速 運 守 魔 HP 武

乱数が飛ぶケース

  • 攻撃された側が死亡する場合の攻撃された側
  • 攻撃された側が反撃不能の場合(間接攻撃や無装備)の攻撃された側
  • 命中しない場合の必殺
  • ダメージが0の場合の必殺
  • 再攻撃がない場合の再攻撃
  • 成長しない場合の成長

敵軍ターンで乱数が飛ぶ現象

敵軍ターンでは2フレームにまたがって乱数判定計算する場合があり
その間で「1フレームごとに乱数が進む」という処理が入ることによって
乱数が1つ進むことがある
この現象により、本来ありえない事(低い成長率のパラメータが同時に上がる等)が起こるかもしれません

  • 逆汗すると乱数(0~255)を乱数(0~99)の範囲にする処理が見つかります。 - 2008-07-22 12:48:46
  • 具体的には乱数(0~255)×0x64の上位8ビット→乱数(0~99) - 2008-07-22 12:49:15
    • すみません不勉強によりサッパリわかりません 64ってことは100という数字を計算に使っているということでしょうか? - 2008-07-22 15:13:49
      • 比較の際に確率の方に×2.56してるのではなくて、乱数の方に×100÷256(小数切捨て)してるってことだと思います。 - 2008-07-22 15:43:35
        • なるほど よくわかりました 式を直しておきます - 2008-07-22 16:11:25
  • 0~255の乱数表の場合、次の値が+143して256で割った余りになっていますし、乱数表でいちいち確認しなくても近くの乱数は計算できそうですね。 - 2008-07-22 15:48:38
    • そういう割り出し方もあるんですね 実践で使うのはちょっと当方のスペックが足りないのできついですがw - 2008-07-22 16:12:38
  • edrは閉鎖してないですよ - 2008-09-08 00:27:26
  • ええやん (2019-01-21 08:30:05)
「乱数解析」をウィキ内検索
LINE
シェア
Tweet
TAS動画まとめ @ ウィキ
記事メニュー

メニュー

タグ検索 :



検索 :

トップページ


TAS動画とは?


TAS制作記

+ 表示
はじめてのTAS FE紋章 製作記

TAS製作者名鑑


TAS動画一覧

  • 新着動画
  • 全動画五十音順
- 機種別

FC/SFC/GB/GBA

N64/PS/NDS

MD/PCE/その他

+ ジャンル別
ACT/RPG/ARPG/その他
+ シリーズ別
マリオ/ロックマン/サガ
ドラキュラ/メトロイド
ゼルダ/ドラクエ/FF
ポケモン/カービィ/

Movieファイル


today -
yesterday -
totall -

テンプレ等

  • タイトルページ作成/修正ツール
  • 動画ページ作成/修正ツール
  • 簡易新規動画ページ作成ツール
  • タイトルページの作り方
  • 動画ページの作り方
  • タイトルページ
  • 動画ページ
  • テストページ
  • TAS制作者様へ


編集者連絡用

更新2013-02-13 08:00:56 (Wed)

更新履歴

取得中です。
ここを編集
記事メニュー2
人気記事ランキング
  1. TAS動画一覧
  2. FC1
  3. FC
  4. スーパーマリオワールド(海外版) in 10:26.65 by Mister
  5. ファイナルファンタジー5(国内版) in 03:34:41.07 by samurai goroh
  6. SFC
  7. MD
  8. 全動画 発売日順2
  9. SFC レナス
  10. NDS
もっと見る
最近更新されたページ
  • 585日前

    コメント/トップページ
  • 2387日前

    fem04
  • 2449日前

    FC
  • 2732日前

    ロックマン4(海外版) in 34:00.02 by GlitchMan
  • 3758日前

    【TAS】アトランチスの謎 in 02:21.27
  • 3758日前

    【TAS】アトランチスの謎 in 02:21.07
  • 3886日前

    シリーズ別一覧
  • 4323日前

    TASさんの休日 PCエンジン YsI・IIを遊んでみた
  • 4323日前

    PCE Ys I・II
  • 4323日前

    SFC 美少女戦士セーラームーン TAS 28:58
もっと見る
人気タグ「製作Halamantariel」関連ページ
  • ガイア幻想紀(海外版) in 02:09:19.30 by Halamantariel
もっと見る
人気記事ランキング
  1. TAS動画一覧
  2. FC1
  3. FC
  4. スーパーマリオワールド(海外版) in 10:26.65 by Mister
  5. ファイナルファンタジー5(国内版) in 03:34:41.07 by samurai goroh
  6. SFC
  7. MD
  8. 全動画 発売日順2
  9. SFC レナス
  10. NDS
もっと見る
最近更新されたページ
  • 585日前

    コメント/トップページ
  • 2387日前

    fem04
  • 2449日前

    FC
  • 2732日前

    ロックマン4(海外版) in 34:00.02 by GlitchMan
  • 3758日前

    【TAS】アトランチスの謎 in 02:21.27
  • 3758日前

    【TAS】アトランチスの謎 in 02:21.07
  • 3886日前

    シリーズ別一覧
  • 4323日前

    TASさんの休日 PCエンジン YsI・IIを遊んでみた
  • 4323日前

    PCE Ys I・II
  • 4323日前

    SFC 美少女戦士セーラームーン TAS 28:58
もっと見る
ウィキ募集バナー
新規Wikiランキング

最近作成されたWikiのアクセスランキングです。見るだけでなく加筆してみよう!

  1. 機動戦士ガンダム EXTREME VS.2 INFINITEBOOST wiki
  2. MadTown GTA (Beta) まとめウィキ
  3. R.E.P.O. 日本語解説Wiki
  4. シュガードール情報まとめウィキ
  5. ソードランページ @ 非公式wiki
  6. ヒカマーWiki
  7. AviUtl2のWiki
  8. シミュグラ2Wiki(Simulation Of Grand2)GTARP
  9. Dark War Survival攻略
  10. 2025.3.15 小田急線運用表
もっと見る
人気Wikiランキング

atwikiでよく見られているWikiのランキングです。新しい情報を発見してみよう!

  1. アニヲタWiki(仮)
  2. ストグラ まとめ @ウィキ
  3. ゲームカタログ@Wiki ~名作からクソゲーまで~
  4. 機動戦士ガンダム EXTREME VS.2 INFINITEBOOST wiki
  5. 初音ミク Wiki
  6. 検索してはいけない言葉 @ ウィキ
  7. 機動戦士ガンダム バトルオペレーション2攻略Wiki 3rd Season
  8. 発車メロディーwiki
  9. 英傑大戦wiki
  10. モンスター烈伝オレカバトル2@wiki
もっと見る
全体ページランキング

最近アクセスの多かったページランキングです。話題のページを見に行こう!

  1. サーヴァント/一覧/クラス別 - Fate/Grand Order @wiki 【FGO】
  2. 参加者一覧 - ストグラ まとめ @ウィキ
  3. U-オルガマリー - Fate/Grand Order @wiki 【FGO】
  4. 魔獣トゲイラ - バトルロイヤルR+α ファンフィクション(二次創作など)総合wiki
  5. 暦家 - ストグラ まとめ @ウィキ
  6. アルジャーノンに花束を - アニヲタWiki(仮)
  7. 機体一覧 - 機動戦士ガンダム EXTREME VS.2 INFINITEBOOST wiki
  8. いますぐ輪廻 - 初音ミク Wiki
  9. 鬼レンチャン(レベル順) - 鬼レンチャンWiki
  10. 危険度7 - 検索してはいけない言葉 @ ウィキ
もっと見る

  • このWikiのTOPへ
  • 全ページ一覧
  • アットウィキTOP
  • 利用規約
  • プライバシーポリシー

2019 AtWiki, Inc.