Battle Chess (USA)
Battle Chess (USA) は MMC1 の基板に載り、プログラムは 262,144 バイト。電源投入から 6,400 歩のクロールが、新しいコードを見つけた道筋を 49 本残した。それらを 183,069 フレームにわたって再生すると、プログラムのうち 9,181 バイト、4 パーセントが実行された。
規則が名付けたもの
- パッドの読み取り: 2
- フレーム待ち: 9
- メモリに置かれたハンドラ: 1
- バンク切り替え: 3
- 画面メモリへの書き手: 1
- パレットの書き手: 2
- スプライトの書き手: 7
- スクロールの書き手: 1
- サウンドドライバ: 1
- 乱数のバイト: 1
走行が入った 186 個のルーチン
ゲームのコードに入った場所のすべて。呼び出し、割り込み、テーブル経由のジャンプのどれかで入る。規則が名付けたものを先に、規則が見たものと一緒に並べる。それらのリスティングでの名前は、何であるかを言う: poll (読み取り)、engine (エンジン)、drain (書き出し)。
| 場所 | リスティングでの名前 | 入り方 | 回数 | 何であるか、その証拠 |
|---|---|---|---|---|
| $C160 (バンク 15) | b15_bank_C160 | 呼び出し | 147,239 | バンク切り替え: 書き込み 736,195、ブランク中 1,740、描画中 734,455 |
| $C4EF (バンク 15) | b15_nmi | 毎フレーム(NMI) | 36,863 | スクロールの書き手: 走ったフレーム 37,100、ブランク中の書き込み 66,538 |
| $D42F (バンク 15) | b15_sprites_D42F | 呼び出し | 36,706 | スプライトの書き手: 走ったフレーム 36,944、スプライトのページへの書き込み 9,243,994 |
| $C764 (バンク 15) | b15_poll_C764 | 呼び出し | 36,665 | パッドの読み取り: ポート $4016、一フレームの読み 8、一フレームのストローブ 2 パッドの読み取り: ポート $4017、一フレームの読み 8、一フレームのストローブ 2 |
| $C6D0 (バンク 15) | b15_drain_C6D0 | 呼び出し | 33,105 | パレットの書き手: 走ったフレーム 33,105、書き込み 1,059,360 画面メモリへの書き手: 走ったフレーム 33,105、書き込み 1,059,360、ブランク中 1,059,360、描画中 0 |
| $D4A0 (バンク 15) | b15_sprites_D4A0 | 呼び出し | 17,363 | スプライトの書き手: 走ったフレーム 14,724、スプライトのページへの書き込み 373,400 |
| $8000 (バンク 14) | b14_sound_8000 | 呼び出し | 16,986 | 乱数のバイト: 走ったフレーム 16,985、バイト $0690、回転 1、排他的論理和 1 サウンドドライバ: 走ったフレーム 16,985、書き込み 58 |
| $D05E (バンク 15) | b15_sprites_D05E | 呼び出し | 14,799 | スプライトの書き手: 走ったフレーム 14,796、スプライトのページへの書き込み 29,592 |
| $C35F (バンク 15) | b15_wait_C35F | 呼び出し | 14,300 | フレーム待ち: 待つ相手のバイト $0030、入った回数 14,297、周回 52,330,296、フレーム割り込みの下での書き込み 48,944、全フレーム 39,849 |
| $C9FD (バンク 15) | b15_palette_C9FD | 呼び出し | 537 | パレットの書き手: 走ったフレーム 489、書き込み 5,024 |
| $CD8F (バンク 15) | b15_sprites_CD8F | 呼び出し | 162 | スプライトの書き手: 走ったフレーム 963、スプライトのページへの書き込み 41,185 |
| $C099 (バンク 15) | b15_sprites_C099 | 呼び出し | 157 | スプライトの書き手: 走ったフレーム 609、スプライトのページへの書き込み 40,192 |
| $C000 (バンク 15) | b15_reset | 電源投入 | 49 | バンク切り替え: 書き込み 392、ブランク中 392、描画中 0 スプライトの書き手: 走ったフレーム 19,560、スプライトのページへの書き込み 12,544 |
| $C174 (バンク 15) | b15_bank_C174 | 呼び出し | 49 | バンク切り替え: 書き込み 245、ブランク中 245、描画中 0 |
| $E67B (バンク 15) | b15_handlers_E67B | 呼び出し | 11 | メモリに置かれたハンドラ: 跳躍 11、着地した場所 2、アドレスの写し元 $04B3 |
| $C7CD (バンク 15) | b15_sprites_C7CD | 呼び出し | 5 | スプライトの書き手: 走ったフレーム 5,495、スプライトのページへの書き込み 20 |
| $C156 (バンク 15) | 呼び出し | 41,153 | ||
| $D3BE (バンク 15) | 呼び出し | 36,709 | ||
| $C63C (バンク 15) | 呼び出し | 36,706 | ||
| $D3E2 (バンク 15) | 呼び出し | 36,662 | ||
| $DD3C (バンク 15) | 呼び出し | 24,108 | ||
| $DD55 (バンク 15) | 呼び出し | 17,712 | ||
| $D36F (バンク 15) | 呼び出し | 17,330 | ||
| $CCC8 (バンク 15) | 呼び出し | 16,986 | ||
| $807A (バンク 14) | 呼び出し | 16,979 | ||
| $8091 (バンク 14) | 呼び出し | 16,935 | ||
| $CC8D (バンク 15) | 呼び出し | 14,799 | ||
| $E2A1 (バンク 15) | 呼び出し | 14,799 | ||
| $E2BE (バンク 15) | 呼び出し | 14,799 | ||
| $C79D (バンク 15) | 呼び出し | 14,271 | ||
| $C343 (バンク 15) | 呼び出し | 12,212 | ||
| $9819 (バンク 0) | 呼び出し | 12,192 | ||
| $97E5 (バンク 0) | 呼び出し | 12,020 | ||
| $97A7 (バンク 0) | 呼び出し | 12,009 | ||
| $9CC1 (バンク 0) | 呼び出し | 12,009 | ||
| $80CA (バンク 14) | 呼び出し | 7,577 | ||
| $80E9 (バンク 14) | 呼び出し | 7,396 | ||
| $81EB (バンク 14) | 呼び出し | 7,396 | ||
| $CA93 (バンク 15) | 呼び出し | 6,132 | ||
| $D8EA (バンク 15) | 呼び出し | 5,832 | ||
| $EA8A (バンク 15) | 呼び出し | 5,316 | ||
| $EAA3 (バンク 15) | 呼び出し | 5,312 | ||
| $E2EB (バンク 15) | 呼び出し | 5,292 | ||
| $C567 (バンク 15) | 呼び出し | 4,432 | ||
| $DC7C (バンク 15) | 呼び出し | 4,018 | ||
| $E357 (バンク 15) | 呼び出し | 4,000 | ||
| $C149 (バンク 15) | 呼び出し | 3,911 | ||
| $D93C (バンク 15) | 呼び出し | 3,888 | ||
| $E727 (バンク 15) | テーブル | 3,807 | ||
| $DBE8 (バンク 15) | 呼び出し | 2,132 | ||
| $8D99 (バンク 0) | 呼び出し | 2,094 | ||
| $8A98 (バンク 0) | 呼び出し | 2,079 | ||
| $DC39 (バンク 15) | 呼び出し | 1,886 | ||
| $D9C9 (バンク 15) | 呼び出し | 1,711 | ||
| $DA3C (バンク 15) | 呼び出し | 1,353 | ||
| $DAED (バンク 15) | 呼び出し | 1,353 | ||
| $8283 (バンク 14) | 呼び出し | 1,310 | ||
| $EB70 (バンク 15) | 呼び出し | 1,211 | ||
| $CAD3 (バンク 15) | 呼び出し | 1,120 | ||
| $DB52 (バンク 15) | 呼び出し | 1,066 | ||
| $DD73 (バンク 15) | 呼び出し | 1,066 | ||
| $DD7F (バンク 15) | 呼び出し | 1,066 | ||
| $82A9 (バンク 14) | 呼び出し | 943 | ||
| $DB9D (バンク 15) | 呼び出し | 943 | ||
| $DD6D (バンク 15) | 呼び出し | 943 | ||
| $DD79 (バンク 15) | 呼び出し | 943 | ||
| $8355 (バンク 14) | 呼び出し | 686 | ||
| $D980 (バンク 15) | 呼び出し | 648 | ||
| $C103 (バンク 15) | 呼び出し | 608 | ||
| $C367 (バンク 15) | 呼び出し | 525 | ||
| $C0EF (バンク 15) | 呼び出し | 404 | ||
| $C0F8 (バンク 15) | 呼び出し | 404 | ||
| $C931 (バンク 15) | 呼び出し | 295 | ||
| $C9C7 (バンク 15) | 呼び出し | 295 | ||
| $CDE1 (バンク 15) | 呼び出し | 270 | ||
| $CDD6 (バンク 15) | 呼び出し | 269 | ||
| $99ED (バンク 0) | 呼び出し | 266 | ||
| $C0E0 (バンク 15) | 呼び出し | 264 | ||
| $8372 (バンク 14) | 呼び出し | 257 | ||
| $CEE1 (バンク 15) | 呼び出し | 200 | ||
| $8C9A (バンク 0) | 呼び出し | 196 | ||
| $8C6E (バンク 0) | 呼び出し | 190 | ||
| $C04C (バンク 15) | 呼び出し | 158 | ||
| $C13E (バンク 15) | 呼び出し | 158 | ||
| $C074 (バンク 15) | 呼び出し | 157 | ||
| $C143 (バンク 15) | 呼び出し | 157 | ||
| $8115 (バンク 14) | 呼び出し | 153 | ||
| $8CCC (バンク 0) | 呼び出し | 146 | ||
| $CAC5 (バンク 15) | 呼び出し | 125 | ||
| $814E (バンク 13) | 呼び出し | 123 | ||
| $CACA (バンク 15) | 呼び出し | 123 | ||
| $E6B2 (バンク 15) | テーブル | 120 | ||
| $818E (バンク 13) | 呼び出し | 117 | ||
| $C0D3 (バンク 15) | 呼び出し | 113 | ||
| $CA5A (バンク 15) | 呼び出し | 110 | ||
| $E1DF (バンク 15) | 呼び出し | 110 | ||
| $CA85 (バンク 15) | 呼び出し | 104 | ||
| $817F (バンク 13) | 呼び出し | 94 | ||
| $EA66 (バンク 15) | 呼び出し | 88 | ||
| $880C (バンク 0) | 呼び出し | 87 | ||
| $CE13 (バンク 15) | 呼び出し | 87 | ||
| $CE67 (バンク 15) | 呼び出し | 87 | ||
| $CEF1 (バンク 15) | 呼び出し | 87 | ||
| $CFC8 (バンク 15) | 呼び出し | 87 | ||
| $D00C (バンク 15) | 呼び出し | 87 | ||
| $E1FC (バンク 15) | 呼び出し | 87 | ||
| $E23B (バンク 15) | 呼び出し | 87 | ||
| $E373 (バンク 15) | 呼び出し | 87 | ||
| $E3DF (バンク 15) | 呼び出し | 87 | ||
| $8231 (バンク 13) | テーブル | 84 | ||
| $EA78 (バンク 15) | 呼び出し | 83 | ||
| $E6D6 (バンク 15) | テーブル | 60 | ||
| $E6DF (バンク 15) | テーブル | 60 | ||
| $C8C0 (バンク 15) | 呼び出し | 59 | ||
| $80B9 (バンク 14) | 呼び出し | 51 | ||
| $CCC0 (バンク 15) | 呼び出し | 51 | ||
| $E4E4 (バンク 15) | テーブル | 51 | ||
| $8A16 (バンク 0) | 呼び出し | 49 | ||
| $C01F (バンク 15) | 割り込み(IRQ) | 49 | ||
| $C3B7 (バンク 15) | 呼び出し | 49 | ||
| $EB1F (バンク 15) | 呼び出し | 49 | ||
| $822B (バンク 13) | テーブル | 48 | ||
| $EB43 (バンク 15) | 呼び出し | 48 | ||
| $821A (バンク 13) | テーブル | 47 | ||
| $C3BE (バンク 15) | 呼び出し | 47 | ||
| $EA02 (バンク 15) | 呼び出し | 44 | ||
| $EA32 (バンク 15) | 呼び出し | 44 | ||
| $8CFB (バンク 13) | 呼び出し | 42 | ||
| $8D2B (バンク 13) | 呼び出し | 42 | ||
| $8FAE (バンク 13) | 呼び出し | 42 | ||
| $9698 (バンク 0) | 呼び出し | 42 | ||
| $96B7 (バンク 0) | 呼び出し | 42 | ||
| $E87F (バンク 15) | 呼び出し | 42 | ||
| $EAFD (バンク 15) | 呼び出し | 42 | ||
| $96F0 (バンク 0) | 呼び出し | 41 | ||
| $D7FA (バンク 15) | 呼び出し | 41 | ||
| $D826 (バンク 15) | 呼び出し | 41 | ||
| $8A4F (バンク 0) | 呼び出し | 40 | ||
| $8076 (バンク 13) | 呼び出し | 39 | ||
| $8086 (バンク 13) | テーブル | 39 | ||
| $9C63 (バンク 0) | 呼び出し | 39 | ||
| $8108 (バンク 14) | 呼び出し | 28 | ||
| $8D41 (バンク 0) | 呼び出し | 24 | ||
| $CC9F (バンク 15) | 呼び出し | 24 | ||
| $8A54 (バンク 0) | 呼び出し | 19 | ||
| $8081 (バンク 13) | 呼び出し | 14 | ||
| $995D (バンク 0) | 呼び出し | 13 | ||
| $8B65 (バンク 0) | 呼び出し | 11 | ||
| $8D7C (バンク 0) | 呼び出し | 11 | ||
| $9EB1 (バンク 0) | 呼び出し | 11 | ||
| $E558 (バンク 15) | テーブル | 11 | ||
| $E669 (バンク 15) | テーブル | 11 | ||
| $8C53 (バンク 0) | 呼び出し | 10 | ||
| $9DA1 (バンク 0) | テーブル | 8 | ||
| $9DE4 (バンク 0) | 呼び出し | 8 | ||
| $80AA (バンク 14) | 呼び出し | 7 | ||
| $CCBA (バンク 15) | 呼び出し | 7 | ||
| $8AF9 (バンク 0) | 呼び出し | 4 | ||
| $8B36 (バンク 0) | 呼び出し | 4 | ||
| $82F6 (バンク 13) | 呼び出し | 3 | ||
| $8BCC (バンク 0) | 呼び出し | 3 | ||
| $9DB3 (バンク 0) | テーブル | 3 | ||
| $9E48 (バンク 0) | 呼び出し | 3 | ||
| $CE87 (バンク 15) | 呼び出し | 3 | ||
| $E1ED (バンク 15) | 呼び出し | 3 | ||
| $8071 (バンク 13) | テーブル | 2 | ||
| $808F (バンク 13) | テーブル | 2 | ||
| $8098 (バンク 13) | テーブル | 2 | ||
| $809C (バンク 13) | テーブル | 2 | ||
| $80C7 (バンク 13) | テーブル | 2 | ||
| $80D6 (バンク 13) | テーブル | 2 | ||
| $813F (バンク 13) | 呼び出し | 2 | ||
| $8254 (バンク 13) | 呼び出し | 2 | ||
| $8296 (バンク 13) | 呼び出し | 2 | ||
| $8309 (バンク 13) | 呼び出し | 2 | ||
| $8323 (バンク 13) | 呼び出し | 2 | ||
| $8383 (バンク 13) | 呼び出し | 2 | ||
| $8396 (バンク 13) | 呼び出し | 2 | ||
| $839E (バンク 13) | 呼び出し | 2 | ||
| $844D (バンク 13) | 呼び出し | 2 | ||
| $8D10 (バンク 13) | 呼び出し | 2 | ||
| $914E (バンク 0) | テーブル | 2 | ||
| $E8DD (バンク 15) | 呼び出し | 2 | ||
| $91E4 (バンク 0) | テーブル | 1 | ||
| $921D (バンク 0) | テーブル | 1 | ||
| $9286 (バンク 0) | 呼び出し | 1 |
待つ場所
規則が名付けたループのうち、ルーチンの内側にあって、それ自身はコードの入口ではないもの。
| 場所 | リスティングでの名前 | 何であるか、その証拠 |
|---|---|---|
| $C150 (バンク 15) | b15_wait_C150 | フレーム待ち: 待つ相手のバイト $03E9、入った回数 2,915、周回 10,771,895、フレーム割り込みの下での書き込み 66,466、全フレーム 39,849 |
| $C3B9 (バンク 15) | b15_wait_C3B9 | フレーム待ち: 待つ相手のバイト $0030、入った回数 48、周回 18,393,403、フレーム割り込みの下での書き込み 48,944、全フレーム 39,849 |
| $C3C0 (バンク 15) | b15_wait_C3C0 | フレーム待ち: 待つ相手のバイト $0663、入った回数 46、周回 11,162,932、フレーム割り込みの下での書き込み 586,640、全フレーム 39,849 |
| $C3CA (バンク 15) | b15_wait_C3CA | フレーム待ち: 待つ相手のバイト $0663、入った回数 41、周回 2,904,578、フレーム割り込みの下での書き込み 586,640、全フレーム 39,849 |
| $C568 (バンク 15) | b15_wait_C568 | フレーム待ち: 待つ相手のバイト $002B、入った回数 5,642、周回 4,163,468、フレーム割り込みの下での書き込み 3,437、全フレーム 39,849 |
| $C8B2 (バンク 15) | b15_wait_C8B2 | フレーム待ち: 待つ相手のバイト $03E9、入った回数 5,463、周回 7,798,908、フレーム割り込みの下での書き込み 66,466、全フレーム 39,849 |
| $D82A (バンク 15) | b15_wait_D82A | フレーム待ち: 待つ相手のバイト $002B、入った回数 648、周回 1,981,370、フレーム割り込みの下での書き込み 3,437、全フレーム 39,849 |
| $DA9B (バンク 15) | b15_wait_DA9B | フレーム待ち: 待つ相手のバイト $002B、入った回数 1,353、周回 2,074,721、フレーム割り込みの下での書き込み 3,437、全フレーム 39,849 |
ジャンプに使うテーブル
ゲームがその中から一つを選ぶ、アドレスのテーブル。ジャンプエンジンへの呼び出しの直後にあるものもあれば、カートリッジのどこかにあるものもある。後者は、ゲームが通って跳んだアドレスがどこから読み込まれたかで見つける。アドレスを積んでそこへ戻ることで跳ぶゲームもあれば、テーブルを二つに分けて、アドレスの下位バイトをある場所に、上位バイトを別の場所に置くゲームもある。どちらも同じやり方で見つける。項目は、走行が選ぶのを見た所までを数える。本当のテーブルはもっと長いかもしれない。最後の列は、その値が項目を選んだメモリのバイトで、追えた場合だけ書いてある: ゲームのモードか、物体の一つが今していることだ。
| 場所 | 届き方 | 項目 | 選ばれた数 | 選んだバイト |
|---|---|---|---|---|
| $E6C4 (バンク 15) | ポインタ経由 | 2 | 2 | $04B3 |
ルーチンが共有するメモリ
あるルーチンが書き、別のルーチンが読んだメモリは 714 バイト。添字を通して届いた場所は 99 か所で、メモリの中のテーブルや、物体の枠の並びはそう見える。
添字で届いた範囲: 位置を含むもの、次いで最も長いもの
| 起点 | 届いたバイト | 命令 | 含まれる位置 |
|---|---|---|---|
| $0700 | 256 | 6 | |
| $0200 | 256 | 3 | |
| $0000 | 256 | 1 | |
| $0300 | 256 | 1 | |
| $0400 | 256 | 1 | |
| $0500 | 256 | 1 | |
| $0600 | 256 | 1 | |
| $0004 | 231 | 16 | |
| $0560 | 120 | 1 | |
| $0005 | 113 | 1 | |
| $000A | 113 | 1 | |
| $000B | 113 | 1 |
最も忙しい共有バイト 24 個
| バイト | 読み書き | 書くルーチン | 読むルーチン |
|---|---|---|---|
| $03E9 | 18,692,195 | 2 | 4 |
| $0663 | 14,965,645 | 3 | 6 |
| $002B | 8,278,315 | 6 | 6 |
| $000B | 5,920,519 | 6 | 6 |
| $005D | 1,590,574 | 5 | 4 |
| $0032 | 1,397,302 | 6 | 6 |
| $0664 | 802,416 | 3 | 4 |
| $0033 | 549,842 | 6 | 6 |
| $0007 | 492,302 | 6 | 6 |
| $006F | 433,916 | 6 | 6 |
| $000E | 410,526 | 6 | 6 |
| $00A4 | 279,299 | 5 | 5 |
| $00A2 | 267,922 | 5 | 6 |
| $00A3 | 267,468 | 5 | 6 |
| $007B | 203,666 | 6 | 6 |
| $00A6 | 196,179 | 5 | 6 |
| $0004 | 168,393 | 6 | 6 |
| $005F | 132,958 | 4 | 4 |
| $0026 | 129,173 | 6 | 6 |
| $0390 | 123,326 | 6 | 6 |
| $0393 | 123,326 | 6 | 6 |
| $0391 | 122,752 | 6 | 6 |
| $0394 | 122,752 | 6 | 6 |
| $000D | 120,008 | 6 | 6 |
このページはゲームのバイトを一つも見せない。これらの数を読み取ったリスティングは、カートリッジと一緒に留まる。