NEStinymachines

Super Mario Bros. + Duck Hunt (USA)

Super Mario Bros. + Duck Hunt (USA) は GxROM の基板に載り、プログラムは 65,536 バイト。電源投入から 400 歩のクロールが、新しいコードを見つけた道筋を 39 本残した。それらを 20,979 フレームにわたって再生すると、プログラムのうち 11,910 バイト、18 パーセントが実行された。

規則が名付けたもの

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

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

場所入り方回数何であるか、その証拠
$C588 (バンク 1)呼び出し1,957,668
乱数のバイト: 走ったフレーム 7,842、バイト $05EC,$05ED,$05EE,$05EF、回転 4、排他的論理和 1
$D10E (バンク 1)呼び出し152,286
二つのものを比べる所: 命令 1、バイトの組 1、バイトの総数 2、比べた回数 57、横の位置のバイト $0032,$0033、縦の位置のバイト $0032,$0033
$C35E (バンク 1)呼び出し16,167
ジャンプエンジン: テーブル 5、そこを通った跳躍 16,167
$C086 (バンク 1)毎フレーム(NMI)9,359
割り込みの中のゲーム: 走ったフレーム 9,359、全フレーム 10,479、待機の場所 $8057
$C3C1 (バンク 1)呼び出し7,994
スクロールの書き手: 走ったフレーム 7,974、ブランク中の書き込み 15,948
$C2BF (バンク 1)呼び出し7,974
画面メモリへの書き手: 走ったフレーム 7,974、書き込み 6,923、ブランク中 6,923、描画中 0
$C291 (バンク 1)呼び出し7,776
パッドの読み取り: ポート $4016、一フレームの読み 8、一フレームのストローブ 0
$F56C (バンク 1)呼び出し7,776
サウンドドライバ: 走ったフレーム 7,776、書き込み 7,776
$CE4D (バンク 1)呼び出し5,482
スプライトの書き手: 走ったフレーム 5,482、スプライトのページへの書き込み 1,015,547
$8E04 (バンク 0)呼び出し3,435
ジャンプエンジン: テーブル 8、そこを通った跳躍 3,435
$EBB2 (バンク 0)呼び出し1,944
スプライトの書き手: 走ったフレーム 486、スプライトのページへの書き込み 15,552
$8158 (バンク 1)呼び出し1,219
パッドの読み取り: ポート $4016、一フレームの読み 8、一フレームのストローブ 3
$8082 (バンク 0)毎フレーム(NMI)807
画面の分割: 走ったフレーム 816、描画中のスクロール書き込み 1,218、描画中のステータス読み 103,445
$8EDD (バンク 0)呼び出し807
パレットの書き手: 走ったフレーム 807、書き込み 568
$8E5C (バンク 0)呼び出し806
パッドの読み取り: ポート $4017、一フレームの読み 8、一フレームのストローブ 2
$8E6A (バンク 0)呼び出し806
パッドの読み取り: ポート $4016、一フレームの読み 8、一フレームのストローブ 0
$CA19 (バンク 1)テーブル526
スプライトの書き手: 走ったフレーム 526、スプライトのページへの書き込み 30,725
$CD5C (バンク 1)テーブル526
スプライトの書き手: 走ったフレーム 526、スプライトのページへの書き込み 96,583
$8222 (バンク 0) (別の命令の内側)呼び出し489
スプライトの書き手: 走ったフレーム 494、スプライトのページへの書き込み 30,807
$F0E9 (バンク 0)呼び出し483
スプライトの書き手: 走ったフレーム 483、スプライトのページへの書き込み 966
$CEF9 (バンク 1)テーブル164
スプライトの書き手: 走ったフレーム 164、スプライトのページへの書き込み 26,460
$C23B (バンク 1)呼び出し86
スプライトの書き手: 走ったフレーム 86、スプライトのページへの書き込み 5,504
$82BC (バンク 1)呼び出し78
スプライトの書き手: 走ったフレーム 78、スプライトのページへの書き込み 3,744
$C3B8 (バンク 1)呼び出し73
パレットの書き手: 走ったフレーム 73、書き込み 2,176
$CD16 (バンク 1)テーブル47
スプライトの書き手: 走ったフレーム 47、スプライトのページへの書き込み 8,977
$C617 (バンク 1)呼び出し43
画面の分割: 走ったフレーム 86、描画中のスクロール書き込み 86、描画中のステータス読み 2,366
$8000 (バンク 0)電源投入39
バンク切り替え: 書き込み 39、ブランク中 39、描画中 0
スプライトの書き手: 走ったフレーム 10,189、スプライトのページへの書き込み 5,888
$80EF (バンク 1)呼び出し39
スプライトの書き手: 走ったフレーム 78、スプライトのページへの書き込み 9,984
$822C (バンク 1)呼び出し39
パレットの書き手: 走ったフレーム 39、書き込み 1,248
$8268 (バンク 1)呼び出し39
スプライトの書き手: 走ったフレーム 39、スプライトのページへの書き込み 156
$82B7 (バンク 1)呼び出し38
スプライトの書き手: 走ったフレーム 38、スプライトのページへの書き込み 1,824
$CD3C (バンク 1)テーブル31
スプライトの書き手: 走ったフレーム 31、スプライトのページへの書き込み 5,921
$90CC (バンク 0)呼び出し21
スプライトの書き手: 走ったフレーム 42、スプライトのページへの書き込み 5,376
$8220 (バンク 0)呼び出し16
スプライトの書き手: 走ったフレーム 16、スプライトのページへの書き込み 1,024
$CD4C (バンク 1)テーブル13
スプライトの書き手: 走ったフレーム 13、スプライトのページへの書き込み 2,483
$CD52 (バンク 1)テーブル12
スプライトの書き手: 走ったフレーム 12、スプライトのページへの書き込み 2,292
$CE40 (バンク 1)テーブル10
スプライトの書き手: 走ったフレーム 10、スプライトのページへの書き込み 1,910
$CF00 (バンク 1)テーブル10
スプライトの書き手: 走ったフレーム 10、スプライトのページへの書き込み 1,910
$9061 (バンク 0)テーブル5
スプライトの書き手: 走ったフレーム 5、スプライトのページへの書き込み 20
$82B2 (バンク 1)呼び出し4
スプライトの書き手: 走ったフレーム 4、スプライトのページへの書き込み 192
$EFA4 (バンク 0)呼び出し3
スプライトの書き手: 走ったフレーム 3、スプライトのページへの書き込み 3
$D12B (バンク 1)呼び出し152,934
$D114 (バンク 1)呼び出し152,286
$C426 (バンク 1)呼び出し15,530
$C5F7 (バンク 1)呼び出し8,211
$C607 (バンク 1)呼び出し8,194
$C249 (バンク 1)呼び出し7,974
$C263 (バンク 1)呼び出し7,974
$C61E (バンク 1)呼び出し7,954
$C284 (バンク 1)呼び出し7,776
$C348 (バンク 1)呼び出し7,776
$F591 (バンク 1)呼び出し7,776
$F621 (バンク 1)呼び出し7,776
$F6CF (バンク 1)呼び出し7,776
$F7CC (バンク 1)呼び出し7,776
$C0B3 (バンク 1)呼び出し7,775
$D131 (バンク 1)呼び出し7,633
$D160 (バンク 1)呼び出し7,633
$C86E (バンク 1)テーブル7,195
$CC94 (バンク 1)呼び出し7,195
$C6C4 (バンク 1)呼び出し7,178
$C6F5 (バンク 1)呼び出し7,178
$C7FB (バンク 1)呼び出し7,178
$C890 (バンク 1)呼び出し7,178
$CCA9 (バンク 1)呼び出し7,178
$CFBA (バンク 1)呼び出し7,178
$CFC5 (バンク 1)呼び出し7,178
$D3D2 (バンク 1)呼び出し7,178
$D428 (バンク 1)呼び出し7,178
$D3DF (バンク 1)呼び出し7,168
$CD1D (バンク 1)テーブル3,784
$9BE1 (バンク 0)呼び出し3,445
$84C3 (バンク 0)呼び出し2,898
$C047 (バンク 0)呼び出し2,898
$F26D (バンク 0)呼び出し2,385
$E3EB (バンク 0) (別の命令の内側)呼び出し1,892
$C5E0 (バンク 1)テーブル1,468
$F1F6 (バンク 0)呼び出し1,429
$8129 (バンク 1)呼び出し1,385
$84F4 (バンク 1)呼び出し1,229
$827C (バンク 1)呼び出し1,132
$8EED (バンク 0)呼び出し1,072
$C902 (バンク 1)呼び出し1,016
$BE70 (バンク 0)呼び出し966
$F12A (バンク 0)呼び出し956
$F171 (バンク 0)呼び出し956
$F180 (バンク 0)呼び出し956
$F1D7 (バンク 0)呼び出し956
$E3E8 (バンク 0)呼び出し946
$F564 (バンク 1)呼び出し852
$C71D (バンク 1)呼び出し833
$8EE6 (バンク 0)呼び出し807
$8182 (バンク 0)呼び出し806
$8F97 (バンク 0)呼び出し806
$8F9E (バンク 0)呼び出し806
$F2D0 (バンク 0)呼び出し806
$8212 (バンク 0)呼び出し801
$F544 (バンク 1)呼び出し780
$F42E (バンク 1)テーブル745
$F550 (バンク 1)呼び出し745
$F4EE (バンク 1)テーブル708
$F502 (バンク 1)呼び出し708
$F49B (バンク 1)テーブル647
$F568 (バンク 1)呼び出し647
$8231 (バンク 0)テーブル630
$92B0 (バンク 0)呼び出し536
$92C8 (バンク 0)呼び出し536
$D81B (バンク 1)呼び出し526
$81C6 (バンク 0)呼び出し489
$8245 (バンク 0)テーブル486
$89E1 (バンク 0)呼び出し483
$AEEA (バンク 0)呼び出し483
$B04A (バンク 0)呼び出し483
$B29A (バンク 0)呼び出し483
$B624 (バンク 0)呼び出し483
$B74F (バンク 0)呼び出し483
$B7B8 (バンク 0)呼び出し483
$B855 (バンク 0)呼び出し483
$B9BC (バンク 0)呼び出し483
$BB96 (バンク 0)呼び出し483
$BED4 (バンク 0)呼び出し483
$EEE9 (バンク 0)呼び出し483
$EFBE (バンク 0)呼び出し483
$EFEC (バンク 0)呼び出し483
$F091 (バンク 0)呼び出し483
$C932 (バンク 1)テーブル480
$AF93 (バンク 0)呼び出し473
$B0E9 (バンク 0)テーブル473
$B329 (バンク 0)呼び出し473
$B35A (バンク 0)テーブル473
$B450 (バンク 0)呼び出し473
$B58F (バンク 0)呼び出し473
$B5CC (バンク 0)呼び出し473
$BF09 (バンク 0)呼び出し473
$DC64 (バンク 0)呼び出し473
$DEBD (バンク 0)呼び出し473
$DEC4 (バンク 0)呼び出し473
$DEDD (バンク 0)呼び出し473
$DEE8 (バンク 0)呼び出し473
$DF9A (バンク 0)呼び出し473
$DFA1 (バンク 0)呼び出し473
$DFB0 (バンク 0)呼び出し473
$E29C (バンク 0)呼び出し473
$E3E9 (バンク 0)呼び出し473
$9595 (バンク 0)呼び出し402
$8567 (バンク 0)テーブル301
$88AE (バンク 0)テーブル268
$C5D9 (バンク 1)呼び出し198
$F41B (バンク 0)呼び出し174
$F57C (バンク 0)呼び出し174
$F667 (バンク 0)呼び出し174
$F694 (バンク 0)呼び出し174
$AEDC (バンク 0)テーブル171
$889D (バンク 0)テーブル150
$92DB (バンク 0)テーブル134
$93FC (バンク 0)テーブル134
$9508 (バンク 0)呼び出し134
$CF0B (バンク 1)呼び出し123
$F4E5 (バンク 1)テーブル119
$811C (バンク 1)呼び出し117
$81C5 (バンク 1)呼び出し78
$8218 (バンク 1)呼び出し78
$86E6 (バンク 0)テーブル67
$896A (バンク 0)呼び出し67
$D4EE (バンク 1)呼び出し65
$F366 (バンク 1)呼び出し65
$810F (バンク 1)呼び出し59
$8407 (バンク 1)呼び出し55
$CEED (バンク 1)テーブル49
$F383 (バンク 1)呼び出し46
$F3D0 (バンク 1)呼び出し46
$C22B (バンク 1)呼び出し43
$C232 (バンク 1)呼び出し43
$C5E1 (バンク 1)呼び出し43
$9BBB (バンク 0)呼び出し40
$C64B (バンク 1)呼び出し40
$D4D9 (バンク 1)呼び出し40
$80A9 (バンク 1)呼び出し39
$80EE (バンク 1)テーブル39
$8478 (バンク 1)呼び出し39
$84A1 (バンク 1)呼び出し39
$84F3 (バンク 1)テーブル39
$8511 (バンク 1)呼び出し39
$D528 (バンク 1)呼び出し32
$9589 (バンク 0)呼び出し25
$C230 (バンク 1)呼び出し23
$C303 (バンク 1)呼び出し23
$C5AA (バンク 1)テーブル23
$D4E2 (バンク 1)呼び出し23
$D509 (バンク 1)呼び出し23
$F581 (バンク 1)呼び出し23
$9A2E (バンク 0)テーブル20
$9B0E (バンク 0)テーブル20
$9B36 (バンク 0)呼び出し20
$9BAC (バンク 0)呼び出し20
$C4BF (バンク 1)呼び出し20
$C502 (バンク 1)呼び出し20
$C5EE (バンク 1)呼び出し20
$C641 (バンク 1)呼び出し20
$C793 (バンク 1)呼び出し20
$C7B3 (バンク 1)呼び出し20
$C81D (バンク 1)テーブル20
$C839 (バンク 1)テーブル20
$C854 (バンク 1)テーブル20
$CCD4 (バンク 1)テーブル20
$CF44 (バンク 1)呼び出し20
$D2A4 (バンク 1)呼び出し20
$8E19 (バンク 0)呼び出し15
$8E2D (バンク 0)呼び出し15
$85F1 (バンク 0)呼び出し14
$8F06 (バンク 0)呼び出し14
$8F11 (バンク 0)呼び出し14
$8808 (バンク 0)呼び出し12
$D52C (バンク 1)呼び出し12
$C919 (バンク 1)テーブル10
$CD9A (バンク 1)テーブル10
$858B (バンク 0)テーブル9
$859B (バンク 0)テーブル9
$8652 (バンク 0)テーブル9
$865A (バンク 0)テーブル9
$8693 (バンク 0)テーブル9
$86A8 (バンク 0)テーブル9
$9C03 (バンク 0)呼び出し9
$9C09 (バンク 0)呼び出し9
$9C13 (バンク 0)呼び出し9
$9C22 (バンク 0)呼び出し9
$B038 (バンク 0)呼び出し9
$BC30 (バンク 0)呼び出し9
$F423 (バンク 1)テーブル8
$8325 (バンク 0)呼び出し7
$8FCF (バンク 0)テーブル6
$85BF (バンク 0)テーブル5
$85E3 (バンク 0)テーブル5
$8643 (バンク 0)テーブル5
$86FF (バンク 0)テーブル5
$8732 (バンク 0)テーブル5
$8749 (バンク 0)テーブル5
$90ED (バンク 0)呼び出し5
$9131 (バンク 0)テーブル5
$92AA (バンク 0)呼び出し5
$92AF (バンク 0)呼び出し5
$B069 (バンク 0)テーブル5
$BC36 (バンク 0)呼び出し5
$88A5 (バンク 0)呼び出し3
$8FE4 (バンク 0)テーブル3
$D464 (バンク 1)呼び出し3
$EFDC (バンク 0)呼び出し3

待つ場所

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

場所何であるか、その証拠
$8057 (バンク 0)
待機のループ: 周回 5,174,858、一フレームの周回 493
$813D (バンク 1)
フレーム待ち: 待つ相手のバイト $0020、入った回数 1,385、周回 3,486,089、フレーム割り込みの下での書き込み 9,380、全フレーム 10,479
$C07C (バンク 1)
フレーム待ち: 待つ相手のバイト $0020、入った回数 7,779、周回 1,957,629、一周ごとの呼び出し 1、フレーム割り込みの下での書き込み 9,380、全フレーム 10,479
$C5DC (バンク 1)
フレーム待ち: 待つ相手のバイト $0020、入った回数 198、周回 735,103、フレーム割り込みの下での書き込み 9,380、全フレーム 10,479

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

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

場所項目選ばれた数選んだバイト
$8218 (バンク 0)22$0770
$8237 (バンク 0)44$0772
$856D (バンク 0)1514$073C
$92CB (バンク 0)83$071F
$9667 (バンク 0)252
$AEE2 (バンク 0)22$0772
$B04F (バンク 0)93$000E
$B351 (バンク 0)11$001D
$C128 (バンク 1)175$0025
$C227 (バンク 1)22$0026
$C907 (バンク 1)43$0031, $0301
$CCAE (バンク 1)1911$0031, $03A1
$CE66 (バンク 1)63

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

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

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

起点届いたバイト命令含まれる位置
$0030804横 1、縦 1
$002A92横 1、縦 1
$020025611
$03002569
$05002563
$00002562
$04002562
$06002561
$07002561
$03411454
$03421412
$03431412

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

バイト読み書き書くルーチン読むルーチン
$00204,748,57253
$00073,999,87266
$00301,329,51566
$0037606,85966
$0000480,57866
$0034340,91366
$0033196,88966
$0032192,74766
$000198,03266
$000389,70966
$000672,65066
$000442,97566
$004239,76066
$003837,60266
$003C37,60266
$000534,18166
$002832,40336
$002932,40336
$006D30,78466
$03A029,22066
$003528,31266
$003127,10766
$004026,42466
$03AD24,86866

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

すべてのゲーム