Fester's Quest (USA)
Fester's Quest (USA) は MMC1 の基板に載り、プログラムは 131,072 バイト。電源投入から 8,000 歩のクロールが、新しいコードを見つけた道筋を 221 本残した。それらを 314,881 フレームにわたって再生すると、プログラムのうち 13,207 バイト、10 パーセントが実行された。
規則が名付けたもの
- パッドの読み取り: 2
- フレーム待ち: 5
- ジャンプエンジン: 1
- バンク切り替え: 5
- 画面メモリへの書き手: 1
- パレットの書き手: 1
- スプライトの書き手: 4
- スクロールの書き手: 1
- サウンドドライバ: 1
走行が入った 82 個のルーチン
ゲームのコードに入った場所のすべて。呼び出し、割り込み、テーブル経由のジャンプのどれかで入る。規則が名付けたものを先に、規則が見たものと一緒に並べる。それらのリスティングでの名前は、何であるかを言う: poll (読み取り)、engine (エンジン)、drain (書き出し)。
| 場所 | リスティングでの名前 | 入り方 | 回数 | 何であるか、その証拠 |
|---|---|---|---|---|
| $C9D2 (バンク 7) | b7_bank_C9D2 | 呼び出し | 529,567 | バンク切り替え: 書き込み 2,646,883、ブランク中 548,326、描画中 2,098,557 |
| $8605 (バンク 3) | b3_sound_8605 | 呼び出し | 342,785 | サウンドドライバ: 走ったフレーム 95,798、書き込み 135,084 |
| $CA0F (バンク 7) | b7_sprites_CA0F | 呼び出し | 231,173 | スプライトの書き手: 走ったフレーム 55,863、スプライトのページへの書き込み 5,029,996 |
| $C024 (バンク 7) | b7_poll_C024 | 呼び出し | 208,560 | パッドの読み取り: ポート $4016、一フレームの読み 16、一フレームのストローブ 4 パッドの読み取り: ポート $4017、一フレームの読み 16、一フレームのストローブ 4 |
| $C072 (バンク 7) | b7_engine_C072 | 呼び出し | 109,816 | ジャンプエンジン: テーブル 2、そこを通った跳躍 109,816 |
| $C364 (バンク 7) | b7_nmi | 毎フレーム(NMI) | 103,798 | スクロールの書き手: 走ったフレーム 103,798、ブランク中の書き込み 206,587 |
| $C3FC (バンク 7) | b7_drain_C3FC | 呼び出し | 103,575 | パレットの書き手: 走ったフレーム 103,575、書き込み 1,333,017 画面メモリへの書き手: 走ったフレーム 103,575、書き込み 1,333,017、ブランク中 1,333,017、描画中 0 |
| $C968 (バンク 7) | b7_bank_C968 | 呼び出し | 103,575 | バンク切り替え: 書き込み 1,033,532、ブランク中 1,033,532、描画中 0 |
| $C0CC (バンク 7) | b7_sprites_C0CC | 呼び出し | 55,854 | スプライトの書き手: 走ったフレーム 55,854、スプライトのページへの書き込み 2,636,250 |
| $C168 (バンク 7) | b7_bank_C168 | 呼び出し | 30,428 | バンク切り替え: 書き込み 151,954、ブランク中 0、描画中 151,954 |
| $C0C7 (バンク 7) | b7_sprites_C0C7 | 呼び出し | 978 | スプライトの書き手: 走ったフレーム 837、スプライトのページへの書き込み 62,592 |
| $C9BE (バンク 7) | b7_bank_C9BE | 呼び出し | 820 | バンク切り替え: 書き込み 4,100、ブランク中 1,105、描画中 2,995 |
| $FFF3 (バンク 7) | b7_irq | 割り込み(IRQ) | 221 | バンク切り替え: 書き込み 442、ブランク中 442、描画中 0 スプライトの書き手: 走ったフレーム 31,752、スプライトのページへの書き込み 56,576 |
| $C34E (バンク 7) | b7_wait_C34E | 呼び出し | 2 | フレーム待ち: 待つ相手のバイト $00F5、入った回数 2、周回 36、一周ごとの呼び出し 1、フレーム割り込みの下での書き込み 3,647,761、全フレーム 104,461 |
| $81A3 (バンク 3) | 呼び出し | 826,082 | ||
| $9C9A (バンク 6) | 呼び出し | 721,396 | ||
| $856F (バンク 3) | 呼び出し | 342,854 | ||
| $C046 (バンク 7) | 呼び出し | 208,556 | ||
| $9A70 (バンク 6) | 呼び出し | 109,786 | ||
| $9AB2 (バンク 6) | 呼び出し | 108,658 | ||
| $C053 (バンク 7) | 呼び出し | 103,575 | ||
| $C9E8 (バンク 7) | 呼び出し | 103,575 | ||
| $E0A8 (バンク 7) | 呼び出し | 103,575 | ||
| $8000 (バンク 3) | 呼び出し | 103,570 | ||
| $C000 (バンク 7) | 呼び出し | 101,868 | ||
| $8510 (バンク 6) | テーブル | 100,468 | ||
| $D1C3 (バンク 7) | 呼び出し | 97,786 | ||
| $D29F (バンク 7) | 呼び出し | 35,723 | ||
| $DD69 (バンク 7) | 呼び出し | 35,215 | ||
| $9C0A (バンク 6) | 呼び出し | 30,428 | ||
| $CA86 (バンク 7) | 呼び出し | 30,428 | ||
| $8000 (バンク 6) | 呼び出し | 30,409 | ||
| $84AF (バンク 6) | 呼び出し | 30,409 | ||
| $E840 (バンク 7) | 呼び出し | 30,409 | ||
| $EB45 (バンク 7) | 呼び出し | 30,409 | ||
| $9AE9 (バンク 6) | 呼び出し | 29,947 | ||
| $A857 (バンク 5) | 呼び出し | 23,867 | ||
| $A8E8 (バンク 5) | 呼び出し | 14,722 | ||
| $A974 (バンク 5) | 呼び出し | 14,722 | ||
| $88DC (バンク 6) | テーブル | 8,190 | ||
| $A87A (バンク 5) | 呼び出し | 6,474 | ||
| $DEC0 (バンク 7) | 呼び出し | 5,268 | ||
| $DEE1 (バンク 7) | 呼び出し | 5,268 | ||
| $DF0F (バンク 7) | 呼び出し | 5,268 | ||
| $DFAE (バンク 7) | 呼び出し | 5,126 | ||
| $E04A (バンク 7) | 呼び出し | 5,126 | ||
| $8891 (バンク 3) | 呼び出し | 3,468 | ||
| $991E (バンク 6) | 呼び出し | 3,328 | ||
| $9988 (バンク 6) | 呼び出し | 3,328 | ||
| $A8C1 (バンク 5) | 呼び出し | 2,623 | ||
| $A900 (バンク 5) | 呼び出し | 2,623 | ||
| $A92F (バンク 5) | 呼び出し | 1,903 | ||
| $A947 (バンク 5) | 呼び出し | 1,903 | ||
| $862B (バンク 6) | テーブル | 1,128 | ||
| $9ADD (バンク 6) | 呼び出し | 1,128 | ||
| $C088 (バンク 7) | 呼び出し | 938 | ||
| $80C8 (バンク 3) | 呼び出し | 803 | ||
| $C091 (バンク 7) | 呼び出し | 769 | ||
| $C3C5 (バンク 7) | 呼び出し | 694 | ||
| $80F3 (バンク 3) | 呼び出し | 677 | ||
| $C144 (バンク 7) | 呼び出し | 462 | ||
| $E871 (バンク 7) | 呼び出し | 438 | ||
| $C379 (バンク 7) | 呼び出し | 265 | ||
| $E32F (バンク 7) | 呼び出し | 234 | ||
| $8009 (バンク 5) | 呼び出し | 223 | ||
| $C13F (バンク 7) | 呼び出し | 223 | ||
| $B63A (バンク 6) | 呼び出し | 207 | ||
| $C09A (バンク 7) | 呼び出し | 159 | ||
| $C106 (バンク 7) | 呼び出し | 159 | ||
| $8003 (バンク 4) | 呼び出し | 153 | ||
| $D23A (バンク 7) | 呼び出し | 152 | ||
| $E12D (バンク 7) | 呼び出し | 152 | ||
| $DF5F (バンク 7) | 呼び出し | 142 | ||
| $DFFD (バンク 7) | 呼び出し | 142 | ||
| $8527 (バンク 3) | 呼び出し | 58 | ||
| $CF5C (バンク 7) | 呼び出し | 30 | ||
| $CF74 (バンク 7) | テーブル | 28 | ||
| $E17B (バンク 7) | 呼び出し | 26 | ||
| $E307 (バンク 7) | 呼び出し | 19 | ||
| $8006 (バンク 4) | 呼び出し | 6 | ||
| $8049 (バンク 3) | 呼び出し | 2 | ||
| $D114 (バンク 7) | テーブル | 2 |
待つ場所
規則が名付けたループのうち、ルーチンの内側にあって、それ自身はコードの入口ではないもの。
| 場所 | リスティングでの名前 | 何であるか、その証拠 |
|---|---|---|
| $A800 (バンク 4) | b4_wait_A800 | フレーム待ち: 待つ相手のバイト $00F5、入った回数 256、周回 745、一周ごとの呼び出し 1、フレーム割り込みの下での書き込み 3,647,761、全フレーム 104,461 |
| $A825 (バンク 5) | b5_wait_A825 | フレーム待ち: 待つ相手のバイト $00ED、入った回数 956、周回 952、一周ごとの呼び出し 9、フレーム割り込みの下での書き込み 206,611、全フレーム 104,461 |
| $B6B2 (バンク 6) | b6_wait_B6B2 | フレーム待ち: 待つ相手のバイト $0080、入った回数 4、周回 1,024、一周ごとの呼び出し 1、フレーム割り込みの下での書き込み 1,813、全フレーム 104,461 |
| $C004 (バンク 7) | b7_wait_C004 | フレーム待ち: 待つ相手のバイト $00F0、入った回数 103,499、周回 382,776,872、フレーム割り込みの下での書き込み 103,319、全フレーム 104,461 |
ジャンプに使うテーブル
ゲームがその中から一つを選ぶ、アドレスのテーブル。ジャンプエンジンへの呼び出しの直後にあるものもあれば、カートリッジのどこかにあるものもある。後者は、ゲームが通って跳んだアドレスがどこから読み込まれたかで見つける。アドレスを積んでそこへ戻ることで跳ぶゲームもあれば、テーブルを二つに分けて、アドレスの下位バイトをある場所に、上位バイトを別の場所に置くゲームもある。どちらも同じやり方で見つける。項目は、走行が選ぶのを見た所までを数える。本当のテーブルはもっと長いかもしれない。最後の列は、その値が項目を選んだメモリのバイトで、追えた場合だけ書いてある: ゲームのモードか、物体の一つが今していることだ。
| 場所 | 届き方 | 項目 | 選ばれた数 | 選んだバイト |
|---|---|---|---|---|
| $84C5 (バンク 6) | 呼び出しの直後 | 32 | 3 | $0012, $030E, $031E, $032E |
| $CF62 (バンク 7) | 呼び出しの直後 | 7 | 2 | $04EB |
ルーチンが共有するメモリ
あるルーチンが書き、別のルーチンが読んだメモリは 390 バイト。添字を通して届いた場所は 49 か所で、メモリの中のテーブルや、物体の枠の並びはそう見える。
添字で届いた範囲: 位置を含むもの、次いで最も長いもの
| 起点 | 届いたバイト | 命令 | 含まれる位置 |
|---|---|---|---|
| $0300 | 256 | 17 | |
| $0200 | 256 | 6 | |
| $0700 | 255 | 18 | |
| $0000 | 240 | 1 | |
| $0400 | 128 | 3 | |
| $030F | 113 | 10 | |
| $0309 | 113 | 7 | |
| $030A | 113 | 7 | |
| $030B | 113 | 7 | |
| $030C | 113 | 7 | |
| $030E | 113 | 3 | |
| $0308 | 97 | 6 |
最も忙しい共有バイト 24 個
| バイト | 読み書き | 書くルーチン | 読むルーチン |
|---|---|---|---|
| $0010 | 7,459,526 | 6 | 6 |
| $00F5 | 6,834,962 | 4 | 6 |
| $0011 | 5,981,496 | 6 | 6 |
| $0020 | 5,213,268 | 2 | 2 |
| $0021 | 5,212,150 | 2 | 2 |
| $0012 | 4,466,574 | 6 | 6 |
| $0013 | 3,163,038 | 6 | 6 |
| $00EF | 2,326,248 | 5 | 2 |
| $001B | 1,547,600 | 6 | 2 |
| $0016 | 1,537,201 | 6 | 2 |
| $0017 | 1,423,087 | 6 | 1 |
| $00ED | 1,413,832 | 3 | 6 |
| $00CF | 1,356,281 | 5 | 5 |
| $0000 | 1,311,206 | 6 | 6 |
| $0001 | 1,055,274 | 6 | 6 |
| $0015 | 885,328 | 6 | 6 |
| $00C8 | 791,841 | 3 | 4 |
| $0087 | 582,449 | 5 | 3 |
| $0014 | 549,912 | 6 | 4 |
| $0084 | 536,548 | 4 | 3 |
| $0089 | 517,823 | 3 | 2 |
| $0030 | 327,327 | 3 | 3 |
| $04FB | 301,766 | 3 | 6 |
| $04F9 | 297,519 | 3 | 6 |
このページはゲームのバイトを一つも見せない。これらの数を読み取ったリスティングは、カートリッジと一緒に留まる。