Ninja Gaiden (USA)
Ninja Gaiden (USA) は MMC1 の基板に載り、プログラムは 131,072 バイト。電源投入から 400 歩のクロールが、新しいコードを見つけた道筋を 36 本残した。それらを 24,896 フレームにわたって再生すると、プログラムのうち 8,601 バイト、7 パーセントが実行された。
規則が名付けたもの
- パッドの読み取り: 1
- フレーム待ち: 3
- ジャンプエンジン: 2
- バンク切り替え: 12
- 画面メモリへの書き手: 1
- パレットの書き手: 1
- スプライトの書き手: 9
- スクロールの書き手: 1
- 画面の分割: 3
- サウンドドライバ: 1
走行が入った 123 個のルーチン
ゲームのコードに入った場所のすべて。呼び出し、割り込み、テーブル経由のジャンプのどれかで入る。規則が名付けたものを先に、規則が見たものと一緒に並べる。
| 場所 | 入り方 | 回数 | 何であるか、その証拠 |
|---|---|---|---|
| $80F4 (バンク 3) | 呼び出し | 36,011 | サウンドドライバ: 走ったフレーム 9,074、書き込み 102,492 |
| $E819 (バンク 7) | 呼び出し | 28,174 | パッドの読み取り: ポート $4016、一フレームの読み 15、一フレームのストローブ 3 |
| $C028 (バンク 7) | 呼び出し | 21,686 | バンク切り替え: 書き込み 108,349、ブランク中 0、描画中 108,349 |
| $C02A (バンク 7) | 呼び出し | 17,612 | バンク切り替え: 書き込み 88,029、ブランク中 0、描画中 88,029 |
| $80A8 (バンク 5) | 呼び出し | 17,372 | ジャンプエンジン: テーブル 1、そこを通った跳躍 17,372 |
| $F91A (バンク 7) | 毎フレーム(NMI) | 14,087 | バンク切り替え: 書き込み 308,539、ブランク中 260,271、描画中 48,268 パレットの書き手: 走ったフレーム 14,148、書き込み 118,694 スクロールの書き手: 走ったフレーム 14,148、ブランク中の書き込み 28,174 画面メモリへの書き手: 走ったフレーム 14,148、書き込み 151,036、ブランク中 151,036、描画中 0 |
| $823B (バンク 4) | 呼び出し | 8,693 | フレーム待ち: 待つ相手のバイト $001F、入った回数 8,692、周回 12,877,382、フレーム割り込みの下での書き込み 14,057、全フレーム 14,396 |
| $8181 (バンク 4) | 呼び出し | 8,686 | スプライトの書き手: 走ったフレーム 8,686、スプライトのページへの書き込み 527,376 |
| $F104 (バンク 7) | 呼び出し | 5,096 | フレーム待ち: 待つ相手のバイト $001F、入った回数 5,116、周回 16,857,610、フレーム割り込みの下での書き込み 14,057、全フレーム 14,396 |
| $F5A2 (バンク 7) | 呼び出し | 4,954 | バンク切り替え: 書き込み 49,467、ブランク中 0、描画中 49,467 画面の分割: 走ったフレーム 4,953、描画中のスクロール書き込み 9,897、描画中のステータス読み 3,417,661 |
| $8013 (バンク 5) | 呼び出し | 2,454 | スプライトの書き手: 走ったフレーム 2,454、スプライトのページへの書き込み 78,408 |
| $F768 (バンク 7) | 呼び出し | 1,154 | スプライトの書き手: 走ったフレーム 1,154、スプライトのページへの書き込み 72,654 |
| $F0A7 (バンク 7) | 呼び出し | 1,125 | スプライトの書き手: 走ったフレーム 1,125、スプライトのページへの書き込み 19,813 |
| $D8D5 (バンク 7) | 呼び出し | 1,107 | バンク切り替え: 書き込み 5,529、ブランク中 0、描画中 5,529 |
| $F47E (バンク 7) | 呼び出し | 504 | バンク切り替え: 書き込み 5,040、ブランク中 0、描画中 5,040 |
| $8301 (バンク 4) | 呼び出し | 269 | フレーム待ち: 待つ相手のバイト $001F、入った回数 269、周回 756,096、フレーム割り込みの下での書き込み 14,057、全フレーム 14,396 |
| $F5EA (バンク 7) | 呼び出し | 251 | バンク切り替え: 書き込み 1,255、ブランク中 0、描画中 1,255 |
| $818E (バンク 6) | 呼び出し | 240 | ジャンプエンジン: テーブル 1、そこを通った跳躍 240 |
| $81E9 (バンク 4) | 呼び出し | 199 | バンク切り替え: 書き込み 995、ブランク中 0、描画中 995 |
| $86D2 (バンク 4) | 呼び出し | 133 | スプライトの書き手: 走ったフレーム 133、スプライトのページへの書き込み 133 |
| $817D (バンク 4) | 呼び出し | 131 | スプライトの書き手: 走ったフレーム 131、スプライトのページへの書き込み 8,253 |
| $8328 (バンク 4) | 呼び出し | 102 | スプライトの書き手: 走ったフレーム 102、スプライトのページへの書き込み 408 |
| $FFDA (バンク 7) | 電源投入 | 36 | バンク切り替え: 書き込み 252、ブランク中 252、描画中 0 スプライトの書き手: 走ったフレーム 108、スプライトのページへの書き込み 9,216 |
| $E902 (バンク 7) | 呼び出し | 29 | バンク切り替え: 書き込み 270、ブランク中 0、描画中 270 |
| $EAC1 (バンク 7) | 呼び出し | 29 | バンク切り替え: 書き込み 290、ブランク中 0、描画中 290 画面の分割: 走ったフレーム 116、描画中のスクロール書き込み 58、描画中のステータス読み 21,286 スプライトの書き手: 走ったフレーム 116、スプライトのページへの書き込み 116 |
| $F8F0 (バンク 7) | 呼び出し | 29 | バンク切り替え: 書き込み 290、ブランク中 0、描画中 290 画面の分割: 走ったフレーム 58、描画中のスクロール書き込み 58、描画中のステータス読み 19,923 |
| $8161 (バンク 3) | 呼び出し | 37,495 | |
| $BF98 (バンク 4) | 呼び出し | 17,612 | |
| $BFB3 (バンク 5) | 呼び出し | 17,372 | |
| $8000 (バンク 3) | 呼び出し | 14,085 | |
| $8003 (バンク 5) | テーブル | 8,686 | |
| $8006 (バンク 5) | テーブル | 8,686 | |
| $83A9 (バンク 4) | 呼び出し | 8,686 | |
| $83B5 (バンク 4) | 呼び出し | 8,686 | |
| $81D7 (バンク 6) | 呼び出し | 6,940 | |
| $81C8 (バンク 6) | 呼び出し | 6,700 | |
| $82B9 (バンク 3) | 呼び出し | 6,139 | |
| $81A4 (バンク 6) | 呼び出し | 5,704 | |
| $81B5 (バンク 6) | 呼び出し | 5,704 | |
| $81E5 (バンク 6) | 呼び出し | 5,704 | |
| $E792 (バンク 7) | 呼び出し | 5,445 | |
| $82E0 (バンク 4) | 呼び出し | 4,234 | |
| $867F (バンク 4) | 呼び出し | 3,205 | |
| $F53E (バンク 7) | 呼び出し | 3,024 | |
| $F568 (バンク 7) | 呼び出し | 3,024 | |
| $837A (バンク 3) | 呼び出し | 3,020 | |
| $8193 (バンク 5) | 呼び出し | 2,454 | |
| $80D6 (バンク 5) | 呼び出し | 2,422 | |
| $87A0 (バンク 4) | 呼び出し | 1,383 | |
| $84D7 (バンク 3) | テーブル | 1,245 | |
| $D85D (バンク 7) | 呼び出し | 1,125 | |
| $DC88 (バンク 7) | 呼び出し | 1,125 | |
| $EB64 (バンク 7) | 呼び出し | 1,125 | |
| $F10D (バンク 7) | 呼び出し | 1,125 | |
| $D710 (バンク 7) | 呼び出し | 1,107 | |
| $D9E4 (バンク 7) | 呼び出し | 1,107 | |
| $DD32 (バンク 7) | 呼び出し | 1,107 | |
| $E560 (バンク 7) | 呼び出し | 1,107 | |
| $E625 (バンク 7) | 呼び出し | 1,107 | |
| $E677 (バンク 7) | 呼び出し | 1,107 | |
| $EB7B (バンク 7) | 呼び出し | 1,107 | |
| $EFF1 (バンク 7) | 呼び出し | 1,107 | |
| $F1AC (バンク 7) | 呼び出し | 1,107 | |
| $F7E4 (バンク 7) | 呼び出し | 1,107 | |
| $8225 (バンク 3) | テーブル | 884 | |
| $820A (バンク 3) | テーブル | 883 | |
| $81F0 (バンク 3) | テーブル | 852 | |
| $EC7B (バンク 7) | テーブル | 741 | |
| $8535 (バンク 3) | テーブル | 638 | |
| $822F (バンク 4) | 呼び出し | 577 | |
| $F2DD (バンク 7) | 呼び出し | 504 | |
| $81AA (バンク 4) | 呼び出し | 466 | |
| $823A (バンク 3) | テーブル | 427 | |
| $8205 (バンク 3) | テーブル | 426 | |
| $83CB (バンク 3) | テーブル | 300 | |
| $8340 (バンク 4) | 呼び出し | 256 | |
| $8398 (バンク 4) | 呼び出し | 256 | |
| $8000 (バンク 6) | テーブル | 240 | |
| $8157 (バンク 6) | 呼び出し | 240 | |
| $8166 (バンク 6) | 呼び出し | 240 | |
| $BFB3 (バンク 6) | 呼び出し | 240 | |
| $8192 (バンク 4) | 呼び出し | 233 | |
| $81CF (バンク 4) | 呼び出し | 233 | |
| $81DE (バンク 4) | 呼び出し | 233 | |
| $8243 (バンク 3) | 呼び出し | 216 | |
| $E2C3 (バンク 7) | 呼び出し | 216 | |
| $F745 (バンク 7) | 呼び出し | 216 | |
| $8471 (バンク 3) | テーブル | 213 | |
| $83E6 (バンク 3) | テーブル | 208 | |
| $F85D (バンク 7) | テーブル | 200 | |
| $81FD (バンク 4) | 呼び出し | 197 | |
| $F850 (バンク 7) | テーブル | 187 | |
| $F86F (バンク 7) | テーブル | 187 | |
| $F83E (バンク 7) | テーブル | 179 | |
| $F86A (バンク 7) | テーブル | 179 | |
| $F831 (バンク 7) | テーブル | 175 | |
| $EDB1 (バンク 7) | テーブル | 136 | |
| $ED0D (バンク 7) | テーブル | 135 | |
| $85EB (バンク 4) | 呼び出し | 132 | |
| $84C3 (バンク 3) | テーブル | 123 | |
| $EEE7 (バンク 7) | 呼び出し | 121 | |
| $8448 (バンク 3) | テーブル | 117 | |
| $80BE (バンク 4) | 呼び出し | 102 | |
| $860A (バンク 4) | 呼び出し | 66 | |
| $868D (バンク 4) | 呼び出し | 66 | |
| $F62D (バンク 7) | 呼び出し | 58 | |
| $EE55 (バンク 7) | テーブル | 57 | |
| $8407 (バンク 3) | テーブル | 56 | |
| $EE99 (バンク 7) | テーブル | 38 | |
| $8000 (バンク 4) | 呼び出し | 36 | |
| $E526 (バンク 7) | 呼び出し | 36 | |
| $8500 (バンク 3) | テーブル | 32 | |
| $850D (バンク 3) | テーブル | 30 | |
| $E7DC (バンク 7) | 呼び出し | 29 | |
| $E7E7 (バンク 7) | 呼び出し | 29 | |
| $F0F3 (バンク 7) | 呼び出し | 29 | |
| $83FA (バンク 3) | テーブル | 28 | |
| $84F2 (バンク 3) | テーブル | 28 | |
| $D97C (バンク 7) | 呼び出し | 27 | |
| $E30A (バンク 7) | 呼び出し | 27 | |
| $F653 (バンク 7) | 呼び出し | 27 | |
| $F6B5 (バンク 7) | 呼び出し | 27 | |
| $8431 (バンク 3) | テーブル | 2 |
ジャンプエンジンのテーブル
テーブルはそれぞれ、エンジンへの呼び出しの直後にある。項目は、走行が選ぶのを見た所までを数える。本当のテーブルはもっと長いかもしれない。最後の列は、その値が項目を選んだメモリのバイトで、追えた場合だけ書いてある: ゲームのモードか、物体の一つが今していることだ。
| 場所 | 項目 | 選ばれた数 | 選んだバイト |
|---|---|---|---|
| $BFB6 (バンク 5) | 3 | 2 | |
| $BFB6 (バンク 6) | 1 | 1 |
ルーチンが共有するメモリ
あるルーチンが書き、別のルーチンが読んだメモリは 364 バイト。添字を通して届いた場所は 45 か所で、メモリの中のテーブルや、物体の枠の並びはそう見える。
添字で届いた範囲: 位置を含むもの、次いで最も長いもの
| 起点 | 届いたバイト | 命令 | 含まれる位置 |
|---|---|---|---|
| $0300 | 256 | 2 | |
| $0200 | 253 | 4 | |
| $0203 | 253 | 3 | |
| $0201 | 253 | 2 | |
| $0202 | 253 | 2 | |
| $0627 | 113 | 1 | |
| $0628 | 113 | 1 | |
| $062C | 113 | 1 | |
| $0630 | 113 | 1 | |
| $0340 | 49 | 2 | |
| $0700 | 35 | 4 | |
| $03A3 | 32 | 6 |
最も忙しい共有バイト 24 個
| バイト | 読み書き | 書くルーチン | 読むルーチン |
|---|---|---|---|
| $0028 | 737,493 | 3 | 6 |
| $00F0 | 691,793 | 3 | 6 |
| $00F3 | 669,677 | 2 | 6 |
| $00F2 | 608,412 | 2 | 5 |
| $00F1 | 468,867 | 3 | 6 |
| $0000 | 272,189 | 6 | 6 |
| $0001 | 239,632 | 6 | 6 |
| $0002 | 98,806 | 6 | 6 |
| $033F | 56,776 | 5 | 5 |
| $005C | 53,461 | 3 | 3 |
| $00F4 | 51,827 | 6 | 6 |
| $00F5 | 45,592 | 6 | 6 |
| $001C | 42,477 | 6 | 6 |
| $0380 | 41,832 | 3 | 3 |
| $00E4 | 32,060 | 3 | 5 |
| $00E5 | 32,060 | 3 | 5 |
| $066D | 27,677 | 2 | 3 |
| $067D | 27,676 | 2 | 3 |
| $064D | 27,154 | 2 | 3 |
| $00A7 | 27,118 | 5 | 4 |
| $069D | 26,954 | 2 | 3 |
| $0626 | 25,367 | 2 | 3 |
| $067C | 23,748 | 5 | 6 |
| $069C | 23,610 | 4 | 6 |
このページはゲームのバイトを一つも見せない。これらの数を読み取ったリスティングは、カートリッジと一緒に留まる。