Defender II (USA)
Defender II (USA) は NROM の基板に載り、プログラムは 16,384 バイト。電源投入から 6,400 歩のクロールが、新しいコードを見つけた道筋を 84 本残した。それらを 227,944 フレームにわたって再生すると、プログラムのうち 9,444 バイト、58 パーセントが実行された。
規則が名付けたもの
- パッドの読み取り: 2
- フレーム待ち: 1
- 画面メモリへの書き手: 1
- パレットの書き手: 2
- スプライトの書き手: 15
- スクロールの書き手: 1
- 画面の分割: 2
- サウンドドライバ: 1
- 乱数のバイト: 2
- 二つのものを比べる所: 3
走行が入った 136 個のルーチン
ゲームのコードに入った場所のすべて。呼び出し、割り込み、テーブル経由のジャンプのどれかで入る。規則が名付けたものを先に、規則が見たものと一緒に並べる。それらのリスティングでの名前は、何であるかを言う: poll (読み取り)、engine (エンジン)、drain (書き出し)。
| 場所 | リスティングでの名前 | 入り方 | 回数 | 何であるか、その証拠 |
|---|---|---|---|---|
| $C40D | random_C40D | 呼び出し | 11,226,345 | 乱数のバイト: 走ったフレーム 59,272、バイト $001D,$001E,$001F,$0020,$0021,$0022,$0023,$0024,$0025,$0026,$0027、回転 11、排他的論理和 1 |
| $C59C | compare_C59C | 呼び出し | 1,898,695 | 二つのものを比べる所: 命令 4、バイトの組 44、バイトの総数 30、比べた回数 33,369、横の位置のバイト $0016,$03C3,$03CD,$0583,$058D,$05A3,$05C3,$0663,$0683、縦の位置のバイト $001D,$001E,$03C1,$03CC,$040C,$0411,$042C,$0431,$0451,$0471,$0491,$04AC |
| $C47C | sprites_C47C | 呼び出し | 336,176 | スプライトの書き手: 走ったフレーム 26,887、スプライトのページへの書き込み 2,203,688 |
| $C448 | poll_C448 | 呼び出し | 117,414 | パッドの読み取り: ポート $4016、一フレームの読み 8、一フレームのストローブ 0 パッドの読み取り: ポート $4017、一フレームの読み 8、一フレームのストローブ 0 |
| $C120 | drain_C120 | 呼び出し | 58,788 | パレットの書き手: 走ったフレーム 58,707、書き込み 568 スクロールの書き手: 走ったフレーム 58,707、ブランク中の書き込み 117,414 画面メモリへの書き手: 走ったフレーム 58,707、書き込み 132,402、ブランク中 131,756、描画中 646 |
| $F880 | sound_F880 | 呼び出し | 58,696 | サウンドドライバ: 走ったフレーム 56,763、書き込み 117,389 |
| $CBD4 | sprites_CBD4 | 呼び出し | 58,693 | スプライトの書き手: 走ったフレーム 58,597、スプライトのページへの書き込み 12,213 |
| $DB46 | compare_DB46 | 呼び出し | 52,636 | 二つのものを比べる所: 命令 3、バイトの組 2、バイトの総数 3、比べた回数 88,886、縦の位置のバイト $03C1,$05A1,$05C1 |
| $C144 | split_C144 | 呼び出し | 33,477 | 画面の分割: 走ったフレーム 33,477、描画中のスクロール書き込み 17,678、描画中のステータス読み 1,039,246 |
| $E814 | sprites_E814 | 呼び出し | 28,981 | スプライトの書き手: 走ったフレーム 28,981、スプライトのページへの書き込み 399,303 |
| $E4D8 | random_E4D8 | 呼び出し | 26,342 | 乱数のバイト: 走ったフレーム 26,322、バイト $0005,$0006、回転 10、排他的論理和 1 |
| $DC7B | sprites_DC7B | 呼び出し | 26,320 | スプライトの書き手: 走ったフレーム 26,320、スプライトのページへの書き込み 210,560 |
| $E029 | sprites_E029 | 呼び出し | 26,320 | スプライトの書き手: 走ったフレーム 26,320、スプライトのページへの書き込み 105,280 |
| $E7AA | sprites_E7AA | 呼び出し | 26,320 | スプライトの書き手: 走ったフレーム 26,320、スプライトのページへの書き込み 263,200 |
| $D950 | sprites_D950 | 呼び出し | 26,318 | スプライトの書き手: 走ったフレーム 26,318、スプライトのページへの書き込み 1,008 |
| $DA1B | sprites_DA1B | 呼び出し | 15,328 | スプライトの書き手: 走ったフレーム 958、スプライトのページへの書き込み 15,328 |
| $E9E6 | sprites_E9E6 | 呼び出し | 11,346 | スプライトの書き手: 走ったフレーム 1,891、スプライトのページへの書き込み 18,910 |
| $E9C7 | sprites_E9C7 | 呼び出し | 7,564 | スプライトの書き手: 走ったフレーム 1,891、スプライトのページへの書き込み 18,910 |
| $C603 | sprites_C603 | 呼び出し | 4,017 | スプライトの書き手: 走ったフレーム 2,850、スプライトのページへの書き込み 3,888 |
| $E9BA | sprites_E9BA | 呼び出し | 2,893 | スプライトの書き手: 走ったフレーム 2,221、スプライトのページへの書き込み 34,716 |
| $CA8E | sprites_CA8E | 呼び出し | 403 | スプライトの書き手: 走ったフレーム 403、スプライトのページへの書き込み 103,168 |
| $C0D7 | split_C0D7 | 呼び出し | 327 | パレットの書き手: 走ったフレーム 490、書き込み 5,852 画面の分割: 走ったフレーム 490、描画中のスクロール書き込み 650、描画中のステータス読み 5,996 |
| $DDD6 | compare_DDD6 | 呼び出し | 182 | 二つのものを比べる所: 命令 1、バイトの組 2、バイトの総数 3、比べた回数 2、横の位置のバイト $001E,$001F,$04D3 |
| $C983 | reset | 電源投入 | 84 | スプライトの書き手: 走ったフレーム 59,440、スプライトのページへの書き込み 21,504 |
| $CF50 | sprites_CF50 | 呼び出し | 68 | スプライトの書き手: 走ったフレーム 136、スプライトのページへの書き込み 272 |
| $E76B | 呼び出し | 397,928 | ||
| $DB1D | 呼び出し | 185,083 | ||
| $DC17 | 呼び出し | 100,624 | ||
| $CAA1 | 毎フレーム(NMI) | 59,272 | ||
| $D2CF | 呼び出し | 59,272 | ||
| $D6D8 | 呼び出し | 59,202 | ||
| $C073 | 呼び出し | 58,707 | ||
| $C087 | 呼び出し | 58,707 | ||
| $C434 | 呼び出し | 58,707 | ||
| $CEE8 | 呼び出し | 58,696 | ||
| $FA4C | 呼び出し | 58,696 | ||
| $C3CC | 呼び出し | 54,198 | ||
| $D73C | 呼び出し | 52,636 | ||
| $D7EA | 呼び出し | 52,636 | ||
| $DBF1 | 呼び出し | 52,636 | ||
| $E31D | 呼び出し | 52,636 | ||
| $E5A8 | 呼び出し | 48,486 | ||
| $D90D | 呼び出し | 35,212 | ||
| $CE5B | 呼び出し | 29,466 | ||
| $CE1D | 呼び出し | 29,026 | ||
| $D449 | 呼び出し | 29,025 | ||
| $CD4D | 呼び出し | 28,981 | ||
| $DEE9 | 呼び出し | 28,750 | ||
| $E6D5 | 呼び出し | 26,853 | ||
| $E6E1 | 呼び出し | 26,797 | ||
| $D1DD | 呼び出し | 26,583 | ||
| $D91A | 呼び出し | 26,320 | ||
| $DE78 | 呼び出し | 26,320 | ||
| $E47A | 呼び出し | 26,320 | ||
| $CD89 | 呼び出し | 26,318 | ||
| $CF11 | 呼び出し | 26,318 | ||
| $D098 | 呼び出し | 26,318 | ||
| $D4E9 | 呼び出し | 26,318 | ||
| $D5E8 | 呼び出し | 26,318 | ||
| $D726 | 呼び出し | 26,318 | ||
| $D7D0 | 呼び出し | 26,318 | ||
| $D867 | 呼び出し | 26,318 | ||
| $D8CD | 呼び出し | 26,318 | ||
| $DB2B | 呼び出し | 26,318 | ||
| $DBC1 | 呼び出し | 26,318 | ||
| $DC49 | 呼び出し | 26,318 | ||
| $DC62 | 呼び出し | 26,318 | ||
| $DCCA | 呼び出し | 26,318 | ||
| $DE22 | 呼び出し | 26,318 | ||
| $DE99 | 呼び出し | 26,318 | ||
| $DEB3 | 呼び出し | 26,318 | ||
| $DF77 | 呼び出し | 26,318 | ||
| $DFC8 | 呼び出し | 26,318 | ||
| $E046 | 呼び出し | 26,318 | ||
| $E240 | 呼び出し | 26,318 | ||
| $E306 | 呼び出し | 26,318 | ||
| $E3D1 | 呼び出し | 26,318 | ||
| $E5C1 | 呼び出し | 26,318 | ||
| $E611 | 呼び出し | 26,318 | ||
| $E6BE | 呼び出し | 26,318 | ||
| $E6F8 | 呼び出し | 26,318 | ||
| $E888 | 呼び出し | 26,318 | ||
| $D6ED | 呼び出し | 5,326 | ||
| $D709 | 呼び出し | 5,326 | ||
| $E45D | 呼び出し | 5,305 | ||
| $CE51 | 呼び出し | 4,753 | ||
| $F89C | 呼び出し | 4,390 | ||
| $C24C | 呼び出し | 4,149 | ||
| $F8BD | 呼び出し | 3,902 | ||
| $F8F9 | 呼び出し | 3,258 | ||
| $DBB2 | 呼び出し | 3,014 | ||
| $C139 | 呼び出し | 2,663 | ||
| $DA03 | 呼び出し | 1,916 | ||
| $F8D4 | 呼び出し | 1,848 | ||
| $F8D8 | 呼び出し | 1,410 | ||
| $F8FF | 呼び出し | 848 | ||
| $C092 | 呼び出し | 806 | ||
| $E140 | 呼び出し | 696 | ||
| $E14C | 呼び出し | 588 | ||
| $C3E2 | 呼び出し | 587 | ||
| $D6CC | 呼び出し | 568 | ||
| $D6EA | 呼び出し | 519 | ||
| $F89E | 呼び出し | 420 | ||
| $DA75 | 呼び出し | 378 | ||
| $DA98 | 呼び出し | 378 | ||
| $C24E | 呼び出し | 206 | ||
| $DA8A | 呼び出し | 198 | ||
| $D1A8 | 呼び出し | 185 | ||
| $DE0E | 呼び出し | 182 | ||
| $C346 | 呼び出し | 180 | ||
| $DAD9 | 呼び出し | 177 | ||
| $F8DF | 呼び出し | 159 | ||
| $F898 | 呼び出し | 127 | ||
| $DAA7 | 呼び出し | 126 | ||
| $DAB1 | 呼び出し | 126 | ||
| $DABE | 呼び出し | 126 | ||
| $C324 | 呼び出し | 120 | ||
| $C177 | 呼び出し | 103 | ||
| $C183 | 呼び出し | 103 | ||
| $F894 | 呼び出し | 98 | ||
| $DDC3 | 呼び出し | 91 | ||
| $D072 | 呼び出し | 83 | ||
| $D17B | 呼び出し | 83 | ||
| $C1F8 | 呼び出し | 72 | ||
| $F8EA | 呼び出し | 68 | ||
| $DA40 | 呼び出し | 63 | ||
| $C303 | 呼び出し | 60 | ||
| $F8AE | 呼び出し | 38 | ||
| $CE91 | 呼び出し | 37 | ||
| $F8BA | 呼び出し | 26 | ||
| $C261 | 呼び出し | 20 | ||
| $C27E | 呼び出し | 20 | ||
| $C355 | 呼び出し | 20 | ||
| $CEC4 | 呼び出し | 20 | ||
| $F8A7 | 呼び出し | 13 | ||
| $D12F | 呼び出し | 5 |
待つ場所
規則が名付けたループのうち、ルーチンの内側にあって、それ自身はコードの入口ではないもの。
| 場所 | リスティングでの名前 | 何であるか、その証拠 |
|---|---|---|
| $CA6A | wait_CA6A | フレーム待ち: 待つ相手のバイト $00A2、入った回数 26,403、周回 11,199,943、一周ごとの呼び出し 1、フレーム割り込みの下での書き込み 52,661、全フレーム 59,524 |
ルーチンが共有するメモリ
あるルーチンが書き、別のルーチンが読んだメモリは 547 バイト。添字を通して届いた場所は 29 か所で、メモリの中のテーブルや、物体の枠の並びはそう見える。
添字で届いた範囲: 位置を含むもの、次いで最も長いもの
| 起点 | 届いたバイト | 命令 | 含まれる位置 |
|---|---|---|---|
| $0560 | 117 | 1 | 横 4、縦 5 |
| $0660 | 21 | 6 | 横 1、縦 2 |
| $001D | 11 | 8 | 横 2、縦 2 |
| $0012 | 6 | 1 | 横 1 |
| $0000 | 256 | 6 | |
| $029C | 48 | 8 | |
| $00A0 | 48 | 1 | |
| $0299 | 48 | 1 | |
| $0214 | 37 | 1 | |
| $0380 | 32 | 3 | |
| $00D1 | 31 | 2 | |
| $0244 | 29 | 1 |
最も忙しい共有バイト 24 個
| バイト | 読み書き | 書くルーチン | 読むルーチン |
|---|---|---|---|
| $0000 | 44,488,857 | 6 | 6 |
| $001D | 44,100,665 | 2 | 6 |
| $001E | 44,047,134 | 2 | 6 |
| $001F | 33,028,773 | 2 | 6 |
| $0021 | 33,005,949 | 2 | 6 |
| $0020 | 33,002,451 | 2 | 5 |
| $0027 | 28,408,882 | 2 | 3 |
| $0026 | 27,295,106 | 2 | 3 |
| $0024 | 26,963,381 | 2 | 3 |
| $0023 | 25,181,293 | 2 | 4 |
| $0022 | 19,047,074 | 2 | 4 |
| $0025 | 17,807,231 | 2 | 3 |
| $0001 | 16,604,303 | 6 | 6 |
| $0002 | 12,733,192 | 6 | 6 |
| $0004 | 12,568,039 | 6 | 6 |
| $0003 | 12,455,666 | 6 | 6 |
| $0007 | 5,395,881 | 6 | 6 |
| $0006 | 3,658,666 | 6 | 6 |
| $0005 | 1,760,388 | 6 | 6 |
| $0019 | 706,930 | 3 | 6 |
| $03E0 | 686,032 | 6 | 6 |
| $03F0 | 685,681 | 6 | 6 |
| $001B | 594,981 | 3 | 3 |
| $0010 | 425,155 | 6 | 6 |
このページはゲームのバイトを一つも見せない。これらの数を読み取ったリスティングは、カートリッジと一緒に留まる。