Metroid (USA)
Metroid (USA) は MMC1 の基板に載り、プログラムは 131,072 バイト。電源投入から 400 歩のクロールが、新しいコードを見つけた道筋を 22 本残した。それらを 12,802 フレームにわたって再生すると、プログラムのうち 6,967 バイト、5 パーセントが実行された。
規則が名付けたもの
- パッドの読み取り: 2
- フレーム待ち: 2
- ジャンプエンジン: 1
- バンク切り替え: 11
- 画面メモリへの書き手: 1
- パレットの書き手: 2
- スプライトの書き手: 7
- スクロールの書き手: 1
- 画面の分割: 1
- サウンドドライバ: 1
走行が入った 193 個のルーチン
ゲームのコードに入った場所のすべて。呼び出し、割り込み、テーブル経由のジャンプのどれかで入る。規則が名付けたものを先に、規則が見たものと一緒に並べる。
| 場所 | 入り方 | 回数 | 何であるか、その証拠 |
|---|---|---|---|
| $C1E0 (バンク 7) | 呼び出し | 1,940 | パレットの書き手: 走ったフレーム 1,962、書き込み 1,571 画面メモリへの書き手: 走ったフレーム 1,962、書き込み 16,971、ブランク中 3,243、描画中 13,728 |
| $C215 (バンク 7) | 呼び出し | 1,940 | パッドの読み取り: ポート $4017、一フレームの読み 8、一フレームのストローブ 2 |
| $C21F (バンク 7) | 呼び出し | 1,940 | パッドの読み取り: ポート $4016、一フレームの読み 8、一フレームのストローブ 2 |
| $C29A (バンク 7) | 呼び出し | 1,940 | スクロールの書き手: 走ったフレーム 1,936、ブランク中の書き込み 3,828 |
| $C4D9 (バンク 7) | 呼び出し | 1,940 | バンク切り替え: 書き込み 9,700、ブランク中 9,570、描画中 130 |
| $C27C (バンク 7) | 呼び出し | 1,820 | ジャンプエンジン: テーブル 4、そこを通った跳躍 1,820 |
| $B3B4 (バンク 0) | 呼び出し | 1,761 | サウンドドライバ: 走ったフレーム 1,804、書き込み 1,761 |
| $C1A3 (バンク 7) | 呼び出し | 936 | スプライトの書き手: 走ったフレーム 936、スプライトのページへの書き込み 240,896 |
| $C30C (バンク 7) | 呼び出し | 720 | パレットの書き手: 走ったフレーム 724、書き込み 168 |
| $9147 (バンク 0) | テーブル | 672 | スプライトの書き手: 走ったフレーム 682、スプライトのページへの書き込み 2,496 |
| $C1BC (バンク 7) | 呼び出し | 452 | スプライトの書き手: 走ったフレーム 456、スプライトのページへの書き込み 43,392 |
| $90D7 (バンク 0) | テーブル | 426 | スプライトの書き手: 走ったフレーム 426、スプライトのページへの書き込み 1,704 |
| $C4EF (バンク 7) | 呼び出し | 238 | バンク切り替え: 書き込み 1,190、ブランク中 340、描画中 850 |
| $C9D7 (バンク 7) | テーブル | 200 | スプライトの書き手: 走ったフレーム 200、スプライトのページへの書き込み 96 |
| $C7AB (バンク 7) | 呼び出し | 188 | バンク切り替え: 書き込み 940、ブランク中 100、描画中 840 |
| $C4E8 (バンク 7) | 呼び出し | 26 | バンク切り替え: 書き込み 130、ブランク中 0、描画中 130 |
| $C4B2 (バンク 7) | 呼び出し | 22 | バンク切り替え: 書き込み 110、ブランク中 0、描画中 110 |
| $C4FA (バンク 7) | 呼び出し | 22 | バンク切り替え: 書き込み 110、ブランク中 110、描画中 0 |
| $C5D7 (バンク 7) | 呼び出し | 22 | バンク切り替え: 書き込み 110、ブランク中 110、描画中 0 |
| $FFB0 (バンク 7) | 割り込み(IRQ) | 22 | バンク切り替え: 書き込み 308、ブランク中 308、描画中 0 スプライトの書き手: 走ったフレーム 2,002、スプライトのページへの書き込み 5,632 |
| $C6D6 (バンク 7) | 呼び出し | 16 | バンク切り替え: 書き込み 80、ブランク中 0、描画中 80 |
| $8071 (バンク 0) | テーブル | 4 | スプライトの書き手: 走ったフレーム 8、スプライトのページへの書き込み 640 |
| $C20E (バンク 7) | 呼び出し | 4 | 画面の分割: 走ったフレーム 8、描画中のスクロール書き込み 8、描画中のステータス読み 148 |
| $C5DC (バンク 7) | 呼び出し | 4 | バンク切り替え: 書き込み 20、ブランク中 0、描画中 20 |
| $C604 (バンク 7) | 呼び出し | 4 | バンク切り替え: 書き込み 20、ブランク中 0、描画中 20 |
| $B4BD (バンク 0) | 呼び出し | 17,292 | |
| $C36B (バンク 7) | 呼び出し | 12,632 | |
| $BC53 (バンク 0) | 呼び出し | 5,220 | |
| $B4EE (バンク 0) | テーブル | 5,027 | |
| $B4BD (バンク 1) | 呼び出し | 2,323 | |
| $C2A8 (バンク 7) | 呼び出し | 2,047 | |
| $C0D9 (バンク 7) | 毎フレーム(NMI) | 1,998 | |
| $C97E (バンク 7) | 呼び出し | 1,976 | |
| $C2CA (バンク 7) | 呼び出し | 1,940 | |
| $C44D (バンク 7) | 呼び出し | 1,940 | |
| $C4DE (バンク 7) | 呼び出し | 1,814 | |
| $C000 (バンク 7) | 呼び出し | 1,792 | |
| $C114 (バンク 7) | 呼び出し | 1,792 | |
| $C266 (バンク 7) | 呼び出し | 1,792 | |
| $B31B (バンク 0) | 呼び出し | 1,757 | |
| $B322 (バンク 0) | テーブル | 1,757 | |
| $B34B (バンク 0) | 呼び出し | 1,745 | |
| $B33D (バンク 0) | 呼び出し | 1,740 | |
| $BC36 (バンク 0) | 呼び出し | 1,740 | |
| $BC3D (バンク 0) | テーブル | 1,740 | |
| $BC4B (バンク 0) | テーブル | 1,740 | |
| $BC64 (バンク 0) | 呼び出し | 1,740 | |
| $B35C (バンク 0) | テーブル | 1,734 | |
| $9A07 (バンク 0) | 呼び出し | 1,720 | |
| $B344 (バンク 0) | テーブル | 1,705 | |
| $B329 (バンク 0) | 呼び出し | 1,687 | |
| $B330 (バンク 0) | テーブル | 1,687 | |
| $B364 (バンク 0) | テーブル | 1,687 | |
| $C318 (バンク 7) | 呼び出し | 1,330 | |
| $BA08 (バンク 0) | 呼び出し | 920 | |
| $BA41 (バンク 0) | 呼び出し | 920 | |
| $B4EE (バンク 1) | テーブル | 697 | |
| $BC53 (バンク 1) | 呼び出し | 697 | |
| $B9F3 (バンク 0) | 呼び出し | 460 | |
| $BA37 (バンク 0) | 呼び出し | 460 | |
| $812C (バンク 0) | テーブル | 437 | |
| $EF9E (バンク 7) | 呼び出し | 416 | |
| $BA41 (バンク 1) | 呼び出し | 406 | |
| $B31B (バンク 1) | 呼び出し | 236 | |
| $B322 (バンク 1) | テーブル | 236 | |
| $B34B (バンク 1) | 呼び出し | 236 | |
| $B3B4 (バンク 1) | 呼び出し | 236 | |
| $C7D5 (バンク 7) | 呼び出し | 234 | |
| $BC64 (バンク 1) | 呼び出し | 233 | |
| $B33D (バンク 1) | 呼び出し | 232 | |
| $B344 (バンク 1) | テーブル | 232 | |
| $BC36 (バンク 1) | 呼び出し | 232 | |
| $BC3D (バンク 1) | テーブル | 232 | |
| $BC4B (バンク 1) | テーブル | 232 | |
| $B329 (バンク 1) | 呼び出し | 229 | |
| $B330 (バンク 1) | テーブル | 229 | |
| $B35C (バンク 1) | テーブル | 229 | |
| $B364 (バンク 1) | テーブル | 229 | |
| $B9F3 (バンク 1) | 呼び出し | 203 | |
| $BA08 (バンク 1) | 呼び出し | 203 | |
| $BA37 (バンク 1) | 呼び出し | 203 | |
| $C2BF (バンク 7) | 呼び出し | 191 | |
| $B4A9 (バンク 0) | 呼び出し | 157 | |
| $C434 (バンク 7) | 呼び出し | 148 | |
| $B7E7 (バンク 0) | テーブル | 102 | |
| $F1F4 (バンク 7) | 呼び出し | 92 | |
| $C158 (バンク 7) | 呼び出し | 86 | |
| $C16D (バンク 7) | 呼び出し | 86 | |
| $C376 (バンク 7) | 呼び出し | 77 | |
| $C3C6 (バンク 7) | 呼び出し | 60 | |
| $C2C5 (バンク 7) | 呼び出し | 48 | |
| $B6A1 (バンク 0) | テーブル | 47 | |
| $C439 (バンク 7) | 呼び出し | 42 | |
| $EAC0 (バンク 7) | 呼び出し | 40 | |
| $C487 (バンク 7) | 呼び出し | 38 | |
| $B493 (バンク 0) | 呼び出し | 37 | |
| $8FF1 (バンク 0) | 呼び出し | 36 | |
| $9001 (バンク 0) | 呼び出し | 36 | |
| $9011 (バンク 0) | 呼び出し | 36 | |
| $B4A2 (バンク 0) | 呼び出し | 36 | |
| $EB85 (バンク 7) | 呼び出し | 36 | |
| $EF8C (バンク 7) | 呼び出し | 36 | |
| $B36C (バンク 0) | 呼び出し | 35 | |
| $909F (バンク 0) | 呼び出し | 34 | |
| $9449 (バンク 0) | 呼び出し | 34 | |
| $B7D9 (バンク 0) | テーブル | 34 | |
| $C42C (バンク 7) | 呼び出し | 34 | |
| $C43D (バンク 7) | 呼び出し | 30 | |
| $C45D (バンク 7) | 呼び出し | 30 | |
| $C2B3 (バンク 7) | 呼び出し | 28 | |
| $C37E (バンク 7) | 呼び出し | 28 | |
| $EA2B (バンク 7) | 呼び出し | 24 | |
| $A93E (バンク 0) | 呼び出し | 22 | |
| $C531 (バンク 7) | テーブル | 22 | |
| $90BA (バンク 0) | テーブル | 18 | |
| $911A (バンク 0) | テーブル | 16 | |
| $940B (バンク 0) | 呼び出し | 16 | |
| $DF6B (バンク 7) | 呼び出し | 16 | |
| $DFA3 (バンク 7) | 呼び出し | 16 | |
| $EF09 (バンク 7) | 呼び出し | 16 | |
| $9450 (バンク 0) | 呼び出し | 13 | |
| $8A8C (バンク 0) | 呼び出し | 12 | |
| $E564 (バンク 7) | 呼び出し | 12 | |
| $ED7A (バンク 7) | 呼び出し | 12 | |
| $80B0 (バンク 1) | 呼び出し | 8 | |
| $B40E (バンク 0) | 呼び出し | 8 | |
| $B41D (バンク 0) | 呼び出し | 8 | |
| $B43E (バンク 0) | 呼び出し | 8 | |
| $B87F (バンク 0) | テーブル | 8 | |
| $C1D4 (バンク 7) | 呼び出し | 8 | |
| $C45C (バンク 7) | テーブル | 8 | |
| $C578 (バンク 7) | 呼び出し | 8 | |
| $E5E2 (バンク 7) | テーブル | 8 | |
| $EB06 (バンク 7) | テーブル | 8 | |
| $EB0C (バンク 7) | 呼び出し | 8 | |
| $EB28 (バンク 7) | 呼び出し | 8 | |
| $EB4D (バンク 7) | 呼び出し | 8 | |
| $EB7A (バンク 7) | 呼び出し | 8 | |
| $ED51 (バンク 7) | 呼び出し | 8 | |
| $ED8C (バンク 7) | 呼び出し | 8 | |
| $FB7B (バンク 7) | 呼び出し | 8 | |
| $8DDE (バンク 0) | 呼び出し | 6 | |
| $8E21 (バンク 0) | 呼び出し | 6 | |
| $8E4E (バンク 0) | 呼び出し | 6 | |
| $8F60 (バンク 0) | 呼び出し | 6 | |
| $80D0 (バンク 0) | テーブル | 4 | |
| $80F9 (バンク 0) | テーブル | 4 | |
| $8BD4 (バンク 0) | 呼び出し | 4 | |
| $8D12 (バンク 0) | 呼び出し | 4 | |
| $8D3D (バンク 0) | 呼び出し | 4 | |
| $B3FC (バンク 0) | 呼び出し | 4 | |
| $B3FC (バンク 1) | 呼び出し | 4 | |
| $B404 (バンク 0) | 呼び出し | 4 | |
| $B9E4 (バンク 0) | 呼び出し | 4 | |
| $B9E4 (バンク 1) | 呼び出し | 4 | |
| $BC7A (バンク 0) | テーブル | 4 | |
| $BC80 (バンク 1) | テーブル | 4 | |
| $BF19 (バンク 0) | 呼び出し | 4 | |
| $BF19 (バンク 1) | 呼び出し | 4 | |
| $C2C0 (バンク 7) | 呼び出し | 4 | |
| $C552 (バンク 7) | テーブル | 4 | |
| $C801 (バンク 7) | テーブル | 4 | |
| $C8B0 (バンク 7) | 呼び出し | 4 | |
| $C8BB (バンク 7) | 呼び出し | 4 | |
| $C8D1 (バンク 7) | テーブル | 4 | |
| $CA18 (バンク 7) | 呼び出し | 4 | |
| $CB8E (バンク 7) | 呼び出し | 4 | |
| $CBFD (バンク 7) | 呼び出し | 4 | |
| $E193 (バンク 7) | 呼び出し | 4 | |
| $E720 (バンク 7) | 呼び出し | 4 | |
| $EA05 (バンク 7) | 呼び出し | 4 | |
| $EA26 (バンク 7) | テーブル | 4 | |
| $EC93 (バンク 7) | 呼び出し | 4 | |
| $EC9B (バンク 7) | 呼び出し | 4 | |
| $ED5B (バンク 7) | 呼び出し | 4 | |
| $ED65 (バンク 7) | 呼び出し | 4 | |
| $ED98 (バンク 7) | 呼び出し | 4 | |
| $EF00 (バンク 7) | 呼び出し | 4 | |
| $EFF8 (バンク 7) | 呼び出し | 4 | |
| $F01C (バンク 7) | 呼び出し | 4 | |
| $8142 (バンク 0) | テーブル | 3 | |
| $B40E (バンク 1) | 呼び出し | 3 | |
| $B41D (バンク 1) | 呼び出し | 3 | |
| $B43E (バンク 1) | 呼び出し | 3 | |
| $B368 (バンク 0) | 呼び出し | 2 | |
| $B374 (バンク 0) | 呼び出し | 2 | |
| $B695 (バンク 0) | テーブル | 2 | |
| $CF6B (バンク 7) | 呼び出し | 2 | |
| $DC8F (バンク 7) | 呼び出し | 2 | |
| $DCC3 (バンク 7) | 呼び出し | 2 | |
| $DE3D (バンク 7) | 呼び出し | 2 | |
| $DFDF (バンク 7) | 呼び出し | 2 | |
| $B878 (バンク 0) | テーブル | 1 |
待つ場所
規則が名付けたループのうち、ルーチンの内側にあって、それ自身はコードの入口ではないもの。
| 場所 | 何であるか、その証拠 |
|---|---|
| $C42F (バンク 7) | フレーム待ち: 待つ相手のバイト $001A、入った回数 34、周回 20,860、フレーム割り込みの下での書き込み 1,976、全フレーム 2,302 |
| $C442 (バンク 7) | フレーム待ち: 待つ相手のバイト $001A、入った回数 114、周回 410,730、フレーム割り込みの下での書き込み 1,976、全フレーム 2,302 |
ジャンプエンジンのテーブル
テーブルはそれぞれ、エンジンへの呼び出しの直後にある。項目は、走行が選ぶのを見た所までを数える。本当のテーブルはもっと長いかもしれない。最後の列は、その値が項目を選んだメモリのバイトで、追えた場合だけ書いてある: ゲームのモードか、物体の一つが今していることだ。
| 場所 | 項目 | 選ばれた数 | 選んだバイト |
|---|---|---|---|
| $802A (バンク 0) | 28 | 9 | $001F |
| $C141 (バンク 7) | 9 | 3 | $001E |
| $EA1C (バンク 7) | 5 | 3 | |
| $EAE4 (バンク 7) | 2 | 1 |
ルーチンが共有するメモリ
あるルーチンが書き、別のルーチンが読んだメモリは 926 バイト。添字を通して届いた場所は 60 か所で、メモリの中のテーブルや、物体の枠の並びはそう見える。
添字で届いた範囲: 位置を含むもの、次いで最も長いもの
| 起点 | 届いたバイト | 命令 | 含まれる位置 |
|---|---|---|---|
| $0300 | 255 | 3 | |
| $0000 | 224 | 2 | |
| $0500 | 193 | 1 | |
| $0509 | 193 | 1 | |
| $0260 | 160 | 2 | |
| $007A | 101 | 1 | |
| $0405 | 81 | 3 | |
| $040F | 81 | 2 | |
| $0400 | 81 | 1 | |
| $0401 | 81 | 1 | |
| $0404 | 81 | 1 | |
| $0409 | 81 | 1 |
最も忙しい共有バイト 24 個
| バイト | 読み書き | 書くルーチン | 読むルーチン |
|---|---|---|---|
| $001A | 4,469,530 | 3 | 6 |
| $0001 | 766,025 | 6 | 6 |
| $0000 | 676,135 | 6 | 6 |
| $064D | 534,003 | 4 | 6 |
| $00E4 | 117,699 | 2 | 3 |
| $00E5 | 117,699 | 2 | 3 |
| $00E2 | 59,249 | 6 | 6 |
| $00E3 | 59,225 | 6 | 6 |
| $00E0 | 39,856 | 6 | 6 |
| $00E1 | 39,856 | 6 | 6 |
| $0002 | 37,877 | 6 | 6 |
| $0003 | 36,592 | 6 | 6 |
| $0014 | 23,510 | 1 | 4 |
| $002E | 19,756 | 2 | 2 |
| $002F | 17,964 | 2 | 2 |
| $065C | 15,102 | 3 | 6 |
| $002A | 14,164 | 1 | 2 |
| $00EB | 11,378 | 2 | 3 |
| $001D | 11,052 | 3 | 6 |
| $0018 | 9,837 | 1 | 3 |
| $6997 | 9,256 | 3 | 4 |
| $0012 | 8,947 | 1 | 6 |
| $001F | 8,572 | 6 | 6 |
| $0015 | 7,800 | 1 | 2 |
このページはゲームのバイトを一つも見せない。これらの数を読み取ったリスティングは、カートリッジと一緒に留まる。