NEStinymachines

Defender II (USA)

Defender II (USA) は NROM の基板に載り、プログラムは 16,384 バイト。電源投入から 6,400 歩のクロールが、新しいコードを見つけた道筋を 84 本残した。それらを 227,944 フレームにわたって再生すると、プログラムのうち 9,444 バイト、58 パーセントが実行された。

規則が名付けたもの

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

ゲームのコードに入った場所のすべて。呼び出し、割り込み、テーブル経由のジャンプのどれかで入る。規則が名付けたものを先に、規則が見たものと一緒に並べる。それらのリスティングでの名前は、何であるかを言う: poll (読み取り)、engine (エンジン)、drain (書き出し)。

場所リスティングでの名前入り方回数何であるか、その証拠
$C40Drandom_C40D呼び出し11,226,345
乱数のバイト: 走ったフレーム 59,272、バイト $001D,$001E,$001F,$0020,$0021,$0022,$0023,$0024,$0025,$0026,$0027、回転 11、排他的論理和 1
$C59Ccompare_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
$C47Csprites_C47C呼び出し336,176
スプライトの書き手: 走ったフレーム 26,887、スプライトのページへの書き込み 2,203,688
$C448poll_C448呼び出し117,414
パッドの読み取り: ポート $4016、一フレームの読み 8、一フレームのストローブ 0
パッドの読み取り: ポート $4017、一フレームの読み 8、一フレームのストローブ 0
$C120drain_C120呼び出し58,788
パレットの書き手: 走ったフレーム 58,707、書き込み 568
スクロールの書き手: 走ったフレーム 58,707、ブランク中の書き込み 117,414
画面メモリへの書き手: 走ったフレーム 58,707、書き込み 132,402、ブランク中 131,756、描画中 646
$F880sound_F880呼び出し58,696
サウンドドライバ: 走ったフレーム 56,763、書き込み 117,389
$CBD4sprites_CBD4呼び出し58,693
スプライトの書き手: 走ったフレーム 58,597、スプライトのページへの書き込み 12,213
$DB46compare_DB46呼び出し52,636
二つのものを比べる所: 命令 3、バイトの組 2、バイトの総数 3、比べた回数 88,886、縦の位置のバイト $03C1,$05A1,$05C1
$C144split_C144呼び出し33,477
画面の分割: 走ったフレーム 33,477、描画中のスクロール書き込み 17,678、描画中のステータス読み 1,039,246
$E814sprites_E814呼び出し28,981
スプライトの書き手: 走ったフレーム 28,981、スプライトのページへの書き込み 399,303
$E4D8random_E4D8呼び出し26,342
乱数のバイト: 走ったフレーム 26,322、バイト $0005,$0006、回転 10、排他的論理和 1
$DC7Bsprites_DC7B呼び出し26,320
スプライトの書き手: 走ったフレーム 26,320、スプライトのページへの書き込み 210,560
$E029sprites_E029呼び出し26,320
スプライトの書き手: 走ったフレーム 26,320、スプライトのページへの書き込み 105,280
$E7AAsprites_E7AA呼び出し26,320
スプライトの書き手: 走ったフレーム 26,320、スプライトのページへの書き込み 263,200
$D950sprites_D950呼び出し26,318
スプライトの書き手: 走ったフレーム 26,318、スプライトのページへの書き込み 1,008
$DA1Bsprites_DA1B呼び出し15,328
スプライトの書き手: 走ったフレーム 958、スプライトのページへの書き込み 15,328
$E9E6sprites_E9E6呼び出し11,346
スプライトの書き手: 走ったフレーム 1,891、スプライトのページへの書き込み 18,910
$E9C7sprites_E9C7呼び出し7,564
スプライトの書き手: 走ったフレーム 1,891、スプライトのページへの書き込み 18,910
$C603sprites_C603呼び出し4,017
スプライトの書き手: 走ったフレーム 2,850、スプライトのページへの書き込み 3,888
$E9BAsprites_E9BA呼び出し2,893
スプライトの書き手: 走ったフレーム 2,221、スプライトのページへの書き込み 34,716
$CA8Esprites_CA8E呼び出し403
スプライトの書き手: 走ったフレーム 403、スプライトのページへの書き込み 103,168
$C0D7split_C0D7呼び出し327
パレットの書き手: 走ったフレーム 490、書き込み 5,852
画面の分割: 走ったフレーム 490、描画中のスクロール書き込み 650、描画中のステータス読み 5,996
$DDD6compare_DDD6呼び出し182
二つのものを比べる所: 命令 1、バイトの組 2、バイトの総数 3、比べた回数 2、横の位置のバイト $001E,$001F,$04D3
$C983reset電源投入84
スプライトの書き手: 走ったフレーム 59,440、スプライトのページへの書き込み 21,504
$CF50sprites_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

待つ場所

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

場所リスティングでの名前何であるか、その証拠
$CA6Await_CA6A
フレーム待ち: 待つ相手のバイト $00A2、入った回数 26,403、周回 11,199,943、一周ごとの呼び出し 1、フレーム割り込みの下での書き込み 52,661、全フレーム 59,524

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

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

004080C0$0000$0100$0200$0300$0400$0500$0600$0700
コンソールのメモリ 2,048 バイト。一行が 256 バイト。 濃い四角は、規則が比較を見た位置。 行の下の印は、最も忙しい共有バイト 24 個のうちの一つ。 二行目は、プロセッサがスタックを置くページだ。 添字で届いた範囲のうち、どの表にも属さないものは描いていない: メモリを消すループは、ほとんどすべてのバイトに届くからだ。

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

起点届いたバイト命令含まれる位置
$05601171横 4、縦 5
$0660216横 1、縦 2
$001D118横 2、縦 2
$001261横 1
$00002566
$029C488
$00A0481
$0299481
$0214371
$0380323
$00D1312
$0244291

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

バイト読み書き書くルーチン読むルーチン
$000044,488,85766
$001D44,100,66526
$001E44,047,13426
$001F33,028,77326
$002133,005,94926
$002033,002,45125
$002728,408,88223
$002627,295,10623
$002426,963,38123
$002325,181,29324
$002219,047,07424
$002517,807,23123
$000116,604,30366
$000212,733,19266
$000412,568,03966
$000312,455,66666
$00075,395,88166
$00063,658,66666
$00051,760,38866
$0019706,93036
$03E0686,03266
$03F0685,68166
$001B594,98133
$0010425,15566

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

すべてのゲーム