NEStinymachines

Double Dribble (USA) (Rev 1)

Double Dribble (USA) (Rev 1) は UxROM の基板に載り、プログラムは 131,072 バイト。電源投入から 400 歩のクロールが、新しいコードを見つけた道筋を 26 本残した。それらを 18,226 フレームにわたって再生すると、プログラムのうち 15,960 バイト、12 パーセントが実行された。

規則が名付けたもの

走行が入った 154 個のルーチン

ゲームのコードに入った場所のすべて。呼び出し、割り込み、テーブル経由のジャンプのどれかで入る。規則が名付けたものを先に、規則が見たものと一緒に並べる。

場所入り方回数何であるか、その証拠
$80E8 (バンク 2)呼び出し35,346
スプライトの書き手: 走ったフレーム 7,194、スプライトのページへの書き込み 801,499
$C159 (バンク 7)呼び出し32,337
バンク切り替え: 書き込み 32,337、ブランク中 7,304、描画中 25,033
$C314 (バンク 7)呼び出し14,556
パッドの読み取り: ポート $4016、一フレームの読み 16、一フレームのストローブ 4
パッドの読み取り: ポート $4017、一フレームの読み 16、一フレームのストローブ 4
$80ED (バンク 1)呼び出し11,915
サウンドドライバ: 走ったフレーム 3,912、書き込み 7,083
$C41C (バンク 7)呼び出し10,745
ジャンプエンジン: テーブル 7、そこを通った跳躍 10,745
$C15E (バンク 7)呼び出し7,462
バンク切り替え: 書き込み 7,462、ブランク中 7,304、描画中 158
$C036 (バンク 7)毎フレーム(NMI)7,307
割り込みの中のゲーム: 走ったフレーム 7,369、全フレーム 7,726、待機の場所 $C02B
$C100 (バンク 7)呼び出し7,307
スプライトの書き手: 走ったフレーム 7,307、スプライトのページへの書き込み 29,228
$D350 (バンク 7)呼び出し7,307
スクロールの書き手: 走ったフレーム 7,307、ブランク中の書き込み 13,946
$CB63 (バンク 7)呼び出し7,278
パレットの書き手: 走ったフレーム 7,278、書き込み 1,936
画面メモリへの書き手: 走ったフレーム 7,278、書き込み 5,565、ブランク中 5,565、描画中 0
$824B (バンク 2)呼び出し7,276
二つのものを比べる所: 命令 1、バイトの組 32、バイトの総数 10、比べた回数 31,550、縦の位置のバイト $03C2,$03C3,$03C4,$03C5,$03C6,$03C7,$03CA,$03CB,$03CE,$03E0
$8209 (バンク 2)呼び出し7,254
二つのものを比べる所: 命令 1、バイトの組 23、バイトの総数 9、比べた回数 14,824、縦の位置のバイト $03C2,$03C3,$03C4,$03C6,$03C8,$03C9,$03CA,$03CB,$03CE
$8154 (バンク 2)呼び出し7,252
スプライトの書き手: 走ったフレーム 7,252、スプライトのページへの書き込み 256,366
$C165 (バンク 7)呼び出し183
バンク切り替え: 書き込み 183、ブランク中 26、描画中 157
$C10C (バンク 7)呼び出し42
スプライトの書き手: 走ったフレーム 68、スプライトのページへの書き込み 10,752
$ACB6 (バンク 0)呼び出し3
二つのものを比べる所: 命令 1、バイトの組 1、バイトの総数 2、比べた回数 19、縦の位置のバイト $03E0,$041E
$C43A (バンク 7)呼び出し65,297
$847D (バンク 1)呼び出し11,934
$8493 (バンク 1)呼び出し9,020
$C0F3 (バンク 7)呼び出し7,503
$D371 (バンク 7)呼び出し7,307
$8029 (バンク 1)呼び出し7,281
$807A (バンク 1)呼び出し7,281
$81C9 (バンク 2)呼び出し7,278
$C2E6 (バンク 7)呼び出し7,278
$C339 (バンク 7)呼び出し7,278
$C355 (バンク 7)呼び出し7,278
$C187 (バンク 7)呼び出し7,252
$C77F (バンク 7)呼び出し7,252
$CDA4 (バンク 7)テーブル3,356
$C35A (バンク 7)呼び出し2,428
$C1BF (バンク 7)テーブル2,407
$CE05 (バンク 7)テーブル2,174
$C783 (バンク 7)呼び出し1,579
$C220 (バンク 7)テーブル1,447
$C27D (バンク 7)呼び出し1,201
$83B2 (バンク 1)呼び出し1,117
$CDFD (バンク 7)テーブル916
$8436 (バンク 1)呼び出し760
$CD9B (バンク 7)呼び出し625
$8128 (バンク 1)呼び出し507
$83E9 (バンク 1)テーブル489
$810D (バンク 1)呼び出し443
$A73C (バンク 1)呼び出し336
$A7BF (バンク 1)呼び出し260
$C785 (バンク 7)呼び出し260
$83C0 (バンク 1)テーブル233
$D31F (バンク 7)テーブル204
$C724 (バンク 7)呼び出し185
$C549 (バンク 7)呼び出し180
$9CF6 (バンク 0)呼び出し179
$AA20 (バンク 0)呼び出し152
$9B42 (バンク 0)呼び出し141
$A896 (バンク 0)呼び出し130
$9CA0 (バンク 0)呼び出し99
$CBE0 (バンク 7)呼び出し92
$8491 (バンク 0)呼び出し90
$8BC5 (バンク 0)テーブル80
$A84C (バンク 0)呼び出し80
$C16A (バンク 7)呼び出し63
$C17B (バンク 7)呼び出し63
$CC99 (バンク 7)呼び出し63
$8340 (バンク 1)テーブル57
$C450 (バンク 7)呼び出し56
$C3C5 (バンク 7)呼び出し53
$8397 (バンク 1)テーブル52
$843A (バンク 1)呼び出し52
$89B2 (バンク 0)呼び出し50
$91A6 (バンク 0)呼び出し50
$9EBD (バンク 0)呼び出し50
$AB53 (バンク 0)呼び出し45
$AB72 (バンク 0)呼び出し45
$9FA3 (バンク 0)呼び出し41
$C141 (バンク 7)呼び出し41
$9D2D (バンク 0)呼び出し34
$AAEE (バンク 0)呼び出し34
$A85A (バンク 0)呼び出し30
$C0E0 (バンク 7)呼び出し29
$CD6F (バンク 7)呼び出し29
$D33F (バンク 7)呼び出し29
$C001 (バンク 7)電源投入26
$C0B9 (バンク 7)呼び出し26
$C128 (バンク 7)呼び出し26
$C135 (バンク 7)呼び出し26
$C1AD (バンク 7)テーブル26
$C38A (バンク 7)呼び出し26
$C4FA (バンク 7)呼び出し26
$CEB6 (バンク 7)呼び出し26
$9A87 (バンク 0)呼び出し23
$9EA5 (バンク 0)呼び出し23
$AA4A (バンク 0)呼び出し22
$B11F (バンク 0)呼び出し22
$B3E9 (バンク 0)呼び出し22
$852F (バンク 0)呼び出し20
$93AE (バンク 0)呼び出し20
$949F (バンク 0)呼び出し20
$94A5 (バンク 0)呼び出し20
$955E (バンク 0)呼び出し20
$9583 (バンク 0)呼び出し20
$95E0 (バンク 0)呼び出し20
$993A (バンク 0)呼び出し20
$9E70 (バンク 0)呼び出し20
$AAA8 (バンク 0)呼び出し20
$AAC4 (バンク 0)呼び出し20
$AADB (バンク 0)呼び出し20
$AC7F (バンク 0)呼び出し20
$B51D (バンク 0)呼び出し20
$CDC7 (バンク 7)テーブル20
$CE90 (バンク 7)呼び出し20
$8488 (バンク 1)呼び出し19
$914E (バンク 0)呼び出し19
$9B84 (バンク 0)呼び出し19
$9BB0 (バンク 0)呼び出し19
$AE25 (バンク 0)テーブル19
$B377 (バンク 0)呼び出し19
$B473 (バンク 0)呼び出し19
$C251 (バンク 7)テーブル16
$C392 (バンク 7)呼び出し16
$C3BC (バンク 7)呼び出し16
$CE0D (バンク 7)テーブル16
$CE25 (バンク 7)テーブル14
$8DD2 (バンク 0)テーブル10
$9977 (バンク 0)呼び出し10
$9E90 (バンク 0)呼び出し10
$9F26 (バンク 0)テーブル10
$9F70 (バンク 0)呼び出し10
$A5D0 (バンク 0)テーブル10
$AA07 (バンク 0)呼び出し10
$B503 (バンク 0)呼び出し10
$9C06 (バンク 0)呼び出し8
$C694 (バンク 7)呼び出し8
$8131 (バンク 1)呼び出し6
$84C1 (バンク 1)呼び出し6
$9C0B (バンク 0)呼び出し6
$A539 (バンク 1)呼び出し6
$C6A5 (バンク 7)呼び出し6
$C6AD (バンク 7)呼び出し6
$D311 (バンク 7)呼び出し6
$A631 (バンク 1)テーブル4
$9381 (バンク 0)呼び出し3
$945A (バンク 0)呼び出し3
$A4EB (バンク 1)テーブル3
$B035 (バンク 0)呼び出し3
$C110 (バンク 7)呼び出し3
$C547 (バンク 7)呼び出し3
$CEB8 (バンク 7)テーブル3
$CEEA (バンク 7)テーブル3
$CF1C (バンク 7)テーブル3
$CF47 (バンク 7)テーブル3
$D2C3 (バンク 7)呼び出し3
$9490 (バンク 0)呼び出し2
$9395 (バンク 0)呼び出し1
$B017 (バンク 0)テーブル1
$B501 (バンク 0)呼び出し1

待つ場所

規則が名付けたループのうち、ルーチンの内側にあって、それ自身はコードの入口ではないもの。

場所何であるか、その証拠
$C02B (バンク 7)
数える待機ループ: 数えるバイト $0063、周回 8,544,182、一フレームの周回 1,105、ループの外からの読み 2

ジャンプエンジンのテーブル

テーブルはそれぞれ、エンジンへの呼び出しの直後にある。項目は、走行が選ぶのを見た所までを数える。本当のテーブルはもっと長いかもしれない。最後の列は、その値が項目を選んだメモリのバイトで、追えた場合だけ書いてある: ゲームのモードか、物体の一つが今していることだ。

場所項目選ばれた数選んだバイト
$89C0 (バンク 0)132$0347, $0348, $0349, $034A
$9F00 (バンク 0)191$0342
$A01C (バンク 0)542$0342, $0343, $0344, $0345
$AC91 (バンク 0)112$0340
$A4D5 (バンク 1)42$0480
$C199 (バンク 7)65$0018
$CDA9 (バンク 7)910$002A

ルーチンが共有するメモリ

あるルーチンが書き、別のルーチンが読んだメモリは 460 バイト。添字を通して届いた場所は 66 か所で、メモリの中のテーブルや、物体の枠の並びはそう見える。

添字で届いた範囲: 位置を含むもの、次いで最も長いもの

起点届いたバイト命令含まれる位置
$03C01617縦 11
$0410157縦 1
$03E0122縦 1
$02002534
$00002402
$02012012
$02022011
$02032011
$07007334
$03001610
$03101610
$03201610

位置と一緒に動くもの

少なくとも二つのルーチンが、位置の配列と一緒に、同じ範囲をたどった配列。画面上のものの表は、メモリの中ではこう見える: 性質ごとに配列が一つ、ものごとに枠が一つ。どの配列が位置を持つかは言える。ほかの配列のうち、どれが位置に足し込まれるか (速度がすること) と、どれがジャンプのテーブルの行き先を選ぶか (状態や種類がすること) も言える。残りが何を持つかは、まだ名付けていない。

枠配列ルーチン横の位置縦の位置位置に足し込まれる配列ジャンプを選ぶ配列一緒に動く配列
161113$03C0, $0410$0300, $0320, $0330, $0350, $0360, $0370, $03B0, $03D0, $0460
1263$03E0$0390, $03A0, $03F0, $0430, $0440

最も忙しい共有バイト 24 個

バイト読み書き書くルーチン読むルーチン
$001A8,576,75026
$00633,374,45433
$0000906,79066
$0005864,32646
$0001715,57666
$0008712,53266
$0009712,32366
$0003669,01366
$0002614,83466
$0004500,15266
$0013247,16954
$001179,60866
$032067,49966
$001864,71166
$032163,68566
$001061,40666
$032660,95766
$032560,27866
$032259,79466
$032359,79466
$032459,79466
$032759,79466
$032A59,79466
$032859,79366

このページはゲームのバイトを一つも見せない。これらの数を読み取ったリスティングは、カートリッジと一緒に留まる。

すべてのゲーム