NEStinymachines

Q-bert (USA)

Q-bert (USA) は CNROM の基板に載り、プログラムは 32,768 バイト。電源投入から 400 歩のクロールが、新しいコードを見つけた道筋を 17 本残した。それらを 20,757 フレームにわたって再生すると、プログラムのうち 4,409 バイト、13 パーセントが実行された。

規則が名付けたもの

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

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

場所入り方回数何であるか、その証拠
$911E呼び出し161,477
スプライトの書き手: 走ったフレーム 10,092、スプライトのページへの書き込み 243,315
$91EC呼び出し81,105
スプライトの書き手: 走ったフレーム 5,932、スプライトのページへの書き込み 81,103
$8207呼び出し22,502
ジャンプエンジン: テーブル 9、そこを通った跳躍 22,502
$CC12呼び出し20,194
パッドの読み取り: ポート $4016、一フレームの読み 16、一フレームのストローブ 4
パッドの読み取り: ポート $4017、一フレームの読み 16、一フレームのストローブ 4
$CE58呼び出し13,960
サウンドドライバ: 走ったフレーム 3,528、書き込み 1,067
$CAF5毎フレーム(NMI)10,138
割り込みの中のゲーム: 走ったフレーム 10,138、全フレーム 10,257、待機の場所 $CAF2
$90A5呼び出し10,109
パレットの書き手: 走ったフレーム 10,109、書き込み 1,440
画面メモリへの書き手: 走ったフレーム 10,109、書き込み 19,680、ブランク中 19,680、描画中 0
$CB69呼び出し10,109
スクロールの書き手: 走ったフレーム 10,109、ブランク中の書き込み 20,218
$8000呼び出し10,097
乱数のバイト: 走ったフレーム 9,935、バイト $003C,$003D、回転 2、排他的論理和 1
$9292呼び出し10,095
スプライトの書き手: 走ったフレーム 10,092、スプライトのページへの書き込み 564,785
$E88D呼び出し116
スプライトの書き手: 走ったフレーム 116、スプライトのページへの書き込み 116
$CC3B呼び出し40
バンク切り替え: 書き込み 80、ブランク中 0、描画中 80
$CA85電源投入17
バンク切り替え: 書き込み 34、ブランク中 34、描画中 0
スプライトの書き手: 走ったフレーム 10,172、スプライトのページへの書き込み 4,352
$CC37呼び出し17
バンク切り替え: 書き込み 34、ブランク中 0、描画中 34
$8452呼び出し128,000
$9329呼び出し91,197
$D3CD呼び出し13,960
$CB9F呼び出し10,109
$CBB5呼び出し10,098
$CD6C呼び出し10,098
$CDDA呼び出し10,098
$CE3C呼び出し10,098
$CBDB呼び出し10,097
$CBF7呼び出し10,097
$84FD呼び出し10,092
$D430呼び出し7,147
$CE35呼び出し6,719
$D4C9呼び出し6,355
$8132呼び出し5,698
$811Cテーブル4,111
$8220呼び出し3,871
$D20E呼び出し3,316
$D237呼び出し3,316
$802Dテーブル3,180
$9C73テーブル2,748
$9CDCテーブル2,736
$E510呼び出し2,736
$E8B9呼び出し2,572
$E5D4テーブル2,513
$D1A7呼び出し2,483
$D1C6呼び出し2,483
$E611テーブル2,396
$E85F呼び出し2,396
$E8E0呼び出し2,396
$D252呼び出し1,970
$84F4呼び出し1,914
$84A1呼び出し1,870
$81B5呼び出し1,570
$C272呼び出し934
$D0B7呼び出し924
$D1D3呼び出し833
$C28Eテーブル705
$C29D呼び出し705
$C4FF呼び出し705
$C54A呼び出し667
$C286テーブル594
$C55F呼び出し358
$CC8E呼び出し352
$C56A呼び出し347
$D3E7テーブル302
$C243呼び出し294
$D2BAテーブル292
$C268呼び出し229
$84EE呼び出し185
$84F6呼び出し185
$E59Aテーブル176
$E5AFテーブル176
$C145呼び出し147
$C190呼び出し147
$C196呼び出し147
$E81A呼び出し147
$CB89呼び出し102
$D370テーブル102
$D1FD呼び出し92
$D39C呼び出し90
$D38F呼び出し86
$C4E3呼び出し82
$D2C1テーブル67
$E575呼び出し60
$E5DFテーブル60
$E5FAテーブル57
$C1F1呼び出し49
$C216テーブル49
$C21Fテーブル49
$C4C4呼び出し49
$CEBE呼び出し49
$E51Dテーブル47
$83E4呼び出し45
$CD57呼び出し45
$E94D呼び出し42
$814C呼び出し40
$83E0呼び出し40
$D2D4テーブル40
$C555呼び出し38
$CBC3呼び出し37
$8143呼び出し34
$C23C呼び出し33
$C2AFテーブル33
$C2F7呼び出し33
$C33E呼び出し33
$CC56呼び出し33
$E940呼び出し31
$81D4呼び出し28
$9E2Bテーブル23
$9E1Fテーブル22
$E918呼び出し20
$8157テーブル17
$8174テーブル17
$817Fテーブル17
$CA8A割り込み(IRQ)17
$CB53呼び出し17
$83BA呼び出し16
$D340テーブル15
$80F2テーブル12
$8107テーブル12
$81CF呼び出し12
$81D8呼び出し12
$9CA8テーブル12
$9CE7テーブル12
$E645呼び出し9
$9E27テーブル4
$D3DA呼び出し4
$E908呼び出し2

待つ場所

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

場所何であるか、その証拠
$CAF2
待機のループ: 周回 74,970,040、一フレームの周回 7,309

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

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

場所項目選ばれた数選んだバイト
$801B97$0018
$817911$0090
$9C8A22$0034
$9CE122$0090
$C1F8115$0053
$E51533$008E
$E59F11$008F
$E5D933$008F
$E88533$002E

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

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

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

起点届いたバイト命令含まれる位置
$030025614
$07002567
$04002561
$05002561
$02002532
$02012531
$02022531
$02032531
$00001524
$06001281
$040F171
$0460163

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

バイト読み書き書くルーチン読むルーチン
$0000984,21066
$0001824,55666
$0008778,44745
$0009753,79923
$0003600,52066
$0002559,51266
$000E263,49723
$000C214,03423
$000B172,31622
$00AB88,05826
$002282,09523
$00F760,61623
$009A41,81366
$000D37,42923
$003235,35866
$003035,14534
$00F533,46524
$00A532,45866
$001E31,59266
$009827,53036
$009927,53036
$00AC24,09213
$00FF22,56744
$001D21,26753

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

すべてのゲーム