NEStinymachines

Mike Tyson's Punch-Out!! (Japan, USA) (En)

Mike Tyson's Punch-Out!! (Japan, USA) (En) は MMC2 の基板に載り、プログラムは 131,072 バイト。電源投入から 400 歩のクロールが、新しいコードを見つけた道筋を 51 本残した。それらを 58,111 フレームにわたって再生すると、プログラムのうち 16,633 バイト、13 パーセントが実行された。

規則が名付けたもの

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

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

場所入り方回数何であるか、その証拠
$AFA4 (バンク 13)呼び出し137,386
パッドの読み取り: ポート $4016、一フレームの読み 31、一フレームのストローブ 0
パッドの読み取り: ポート $4017、一フレームの読み 31、一フレームのストローブ 0
$A008 (バンク 13)毎フレーム(NMI)47,458
バンク切り替え: 書き込み 86、ブランク中 86、描画中 0
$AA3C (バンク 13)呼び出し37,998
バンク切り替え: 書き込み 37,993、ブランク中 37,446、描画中 547
$AA40 (バンク 13)呼び出し37,579
バンク切り替え: 書き込み 37,574、ブランク中 37,022、描画中 552
$A9DF (バンク 13)呼び出し37,491
バンク切り替え: 書き込み 37,459、ブランク中 37,459、描画中 0
スクロールの書き手: 走ったフレーム 37,491、ブランク中の書き込み 74,977
$AA6A (バンク 13)呼び出し37,026
バンク切り替え: 書き込み 36,975、ブランク中 36,035、描画中 940
$A7A6 (バンク 13)呼び出し36,849
スプライトの書き手: 走ったフレーム 35,353、スプライトのページへの書き込み 4
$F40B (バンク 13)呼び出し22,658
サウンドドライバ: 走ったフレーム 22,335、書き込み 45,316
$AA48 (バンク 13)呼び出し1,712
バンク切り替え: 書き込み 1,708、ブランク中 0、描画中 1,708
$BDB5 (バンク 13)呼び出し1,638
スプライトの書き手: 走ったフレーム 1,638、スプライトのページへの書き込み 56,486
$AF0B (バンク 13)呼び出し1,213
パレットの書き手: 走ったフレーム 1,213、書き込み 38,807
画面メモリへの書き手: 走ったフレーム 1,213、書き込み 38,807、ブランク中 38,807、描画中 0
$BE1A (バンク 13)呼び出し1,137
スプライトの書き手: 走ったフレーム 1,137、スプライトのページへの書き込み 7,057
$AED4 (バンク 13)呼び出し675
ジャンプエンジン: テーブル 4、そこを通った跳躍 675
$CC8B (バンク 13)呼び出し580
スプライトの書き手: 走ったフレーム 343、スプライトのページへの書き込み 12,792
$D176 (バンク 13)呼び出し580
スプライトの書き手: 走ったフレーム 299、スプライトのページへの書き込み 9,284
$D305 (バンク 13)呼び出し572
スプライトの書き手: 走ったフレーム 299、スプライトのページへの書き込み 4,576
$AA44 (バンク 13)呼び出し570
バンク切り替え: 書き込み 570、ブランク中 18、描画中 552
$C978 (バンク 13)呼び出し558
スプライトの書き手: 走ったフレーム 321、スプライトのページへの書き込み 25,884
$AA87 (バンク 13)呼び出し552
バンク切り替え: 書き込み 552、ブランク中 0、描画中 552
$9134 (バンク 7)呼び出し363
ジャンプエンジン: テーブル 1、そこを通った跳躍 363
$BEFF (バンク 13)呼び出し144
スプライトの書き手: 走ったフレーム 72、スプライトのページへの書き込み 972
$AF38 (バンク 13)呼び出し138
スプライトの書き手: 走ったフレーム 232、スプライトのページへの書き込み 35,323
$AA5C (バンク 13)呼び出し121
バンク切り替え: 書き込み 121、ブランク中 0、描画中 121
$BF3C (バンク 13)呼び出し102
バンク切り替え: 書き込み 102、ブランク中 0、描画中 102
$BF55 (バンク 13)呼び出し102
バンク切り替え: 書き込み 408、ブランク中 36、描画中 372
$AA64 (バンク 13)呼び出し82
バンク切り替え: 書き込み 82、ブランク中 0、描画中 82
$AA54 (バンク 13)呼び出し69
バンク切り替え: 書き込み 69、ブランク中 60、描画中 9
$860F (バンク 11)呼び出し65
ジャンプエンジン: テーブル 2、そこを通った跳躍 65
$A000 (バンク 13)割り込み(IRQ)51
スプライトの書き手: 走ったフレーム 10,834、スプライトのページへの書き込み 21,760
$AA50 (バンク 13)呼び出し51
バンク切り替え: 書き込み 51、ブランク中 0、描画中 51
$B666 (バンク 13)呼び出し49
バンク切り替え: 書き込み 49、ブランク中 0、描画中 49
スプライトの書き手: 走ったフレーム 98、スプライトのページへの書き込み 196
$B6A1 (バンク 13)呼び出し49
バンク切り替え: 書き込み 49、ブランク中 0、描画中 49
$D134 (バンク 13)呼び出し44
スプライトの書き手: 走ったフレーム 22、スプライトのページへの書き込み 352
$AF3A (バンク 13)呼び出し37
スプライトの書き手: 走ったフレーム 37、スプライトのページへの書き込み 3,552
$BBAA (バンク 13)呼び出し36
バンク切り替え: 書き込み 36、ブランク中 0、描画中 36
$BCBE (バンク 13)呼び出し36
バンク切り替え: 書き込み 180、ブランク中 0、描画中 180
$BF36 (バンク 13)呼び出し36
バンク切り替え: 書き込み 36、ブランク中 0、描画中 36
$D34F (バンク 13)呼び出し26
スプライトの書き手: 走ったフレーム 22、スプライトのページへの書き込み 208
$C976 (バンク 13)呼び出し22
スプライトの書き手: 走ったフレーム 22、スプライトのページへの書き込み 2,314
$AA9F (バンク 13)呼び出し18
バンク切り替え: 書き込み 18、ブランク中 18、描画中 0
$AF43 (バンク 13)呼び出し9
スプライトの書き手: 走ったフレーム 9、スプライトのページへの書き込み 108
$A800 (バンク 13)呼び出し2
バンク切り替え: 書き込み 2、ブランク中 0、描画中 2
$B001 (バンク 13)呼び出し85,765
$8000 (バンク 8)呼び出し37,579
$8025 (バンク 8)呼び出し37,579
$80CA (バンク 8)呼び出し37,579
$84B1 (バンク 8)呼び出し37,579
$88E2 (バンク 8)呼び出し37,579
$8012 (バンク 7)呼び出し37,446
$AF73 (バンク 13)呼び出し37,446
$A774 (バンク 13)呼び出し37,401
$F412 (バンク 13)呼び出し22,583
$F472 (バンク 13)呼び出し22,502
$F463 (バンク 13)呼び出し22,415
$B021 (バンク 13)呼び出し17,705
$AF8D (バンク 13)呼び出し17,197
$AFBD (バンク 13)呼び出し17,153
$AF02 (バンク 13)呼び出し13,077
$BC1F (バンク 13)呼び出し2,941
$F429 (バンク 13)呼び出し2,070
$BF9E (バンク 13)呼び出し1,975
$F400 (バンク 13)呼び出し1,961
$F422 (バンク 13)呼び出し1,564
$8006 (バンク 7)呼び出し1,425
$AF2E (バンク 13)呼び出し1,415
$C041 (バンク 13)呼び出し993
$C113 (バンク 13)呼び出し989
$F41E (バンク 13)呼び出し936
$BF99 (バンク 13)呼び出し694
$A09A (バンク 13)呼び出し596
$8000 (バンク 7)呼び出し552
$8003 (バンク 7)呼び出し552
$8003 (バンク 11)呼び出し552
$8006 (バンク 11)呼び出し552
$8009 (バンク 7)呼び出し552
$8009 (バンク 11)呼び出し552
$800C (バンク 7)呼び出し552
$800F (バンク 7)呼び出し552
$8015 (バンク 7)呼び出し552
$A7C4 (バンク 13)呼び出し552
$B034 (バンク 13)呼び出し552
$B049 (バンク 13)呼び出し552
$B069 (バンク 13)呼び出し552
$B10A (バンク 13)呼び出し552
$B196 (バンク 13)呼び出し552
$B457 (バンク 13)呼び出し552
$B530 (バンク 13)呼び出し552
$C291 (バンク 13)呼び出し552
$C3D9 (バンク 13)呼び出し552
$C440 (バンク 13)呼び出し552
$C4E7 (バンク 13)呼び出し552
$C890 (バンク 13)呼び出し552
$B549 (バンク 13)テーブル543
$C850 (バンク 13)呼び出し486
$AF04 (バンク 13)呼び出し408
$90FF (バンク 6)呼び出し394
$9158 (バンク 7)呼び出し374
$C24A (バンク 13)呼び出し212
$9151 (バンク 7)呼び出し192
$AE9B (バンク 13)呼び出し182
$C079 (バンク 13)呼び出し173
$C09D (バンク 13)呼び出し173
$8B54 (バンク 7)呼び出し167
$C0BB (バンク 13)呼び出し147
$BEB3 (バンク 13)呼び出し144
$C0E0 (バンク 13)呼び出し138
$BF21 (バンク 13)呼び出し129
$AA1D (バンク 13)呼び出し125
$C105 (バンク 13)呼び出し108
$AA6E (バンク 13)呼び出し104
$AA0A (バンク 13)呼び出し102
$8B19 (バンク 7)テーブル97
$BF7E (バンク 13)呼び出し96
$8B50 (バンク 7)テーブル95
$BD9B (バンク 13)呼び出し93
$BF0D (バンク 13)呼び出し93
$BC5F (バンク 13)呼び出し92
$BEE1 (バンク 13)呼び出し85
$AEA5 (バンク 13)呼び出し83
$F4EF (バンク 13)呼び出し80
$8AF0 (バンク 7)テーブル73
$8B39 (バンク 7)テーブル72
$BEC9 (バンク 13)呼び出し72
$C85C (バンク 13)呼び出し72
$AEF8 (バンク 13)呼び出し63
$8906 (バンク 8)呼び出し53
$801E (バンク 7)呼び出し51
$9000 (バンク 6)呼び出し51
$9030 (バンク 6)呼び出し51
$A75B (バンク 13)呼び出し51
$800E (バンク 9)呼び出し49
$A9D1 (バンク 13)呼び出し45
$B6CB (バンク 13)呼び出し44
$BFAE (バンク 13)呼び出し44
$BFB2 (バンク 13)呼び出し44
$F518 (バンク 13)呼び出し37
$AA06 (バンク 13)呼び出し36
$AAE5 (バンク 13)呼び出し36
$AB4E (バンク 13)呼び出し36
$AE89 (バンク 13)呼び出し36
$BAE3 (バンク 13)呼び出し36
$BE96 (バンク 13)呼び出し36
$BEA1 (バンク 13)呼び出し36
$BEED (バンク 13)呼び出し36
$BFAA (バンク 13)呼び出し36
$BFF2 (バンク 13)呼び出し36
$C720 (バンク 13)テーブル36
$C784 (バンク 13)テーブル36
$910B (バンク 7)呼び出し26
$8B1E (バンク 7)テーブル22
$C58D (バンク 13)テーブル22
$8000 (バンク 11)呼び出し18
$8363 (バンク 11)テーブル18
$C118 (バンク 13)呼び出し18
$83AE (バンク 11)テーブル17
$83A7 (バンク 11)テーブル13
$C5F9 (バンク 13)テーブル13
$802D (バンク 7)呼び出し9
$83F4 (バンク 11)テーブル9
$85D1 (バンク 11)呼び出し9
$AB58 (バンク 13)呼び出し9
$AE5F (バンク 13)呼び出し9
$AF5B (バンク 13)呼び出し9
$B5A9 (バンク 13)テーブル9
$BED9 (バンク 13)呼び出し9
$8DF4 (バンク 7)呼び出し8
$C670 (バンク 13)テーブル8
$C70C (バンク 13)テーブル8
$A4C6 (バンク 13)呼び出し7
$8027 (バンク 7)呼び出し5
$8E3D (バンク 7)呼び出し5
$8493 (バンク 11)テーブル4
$84BE (バンク 11)テーブル4
$8ADD (バンク 7)テーブル4
$BFF6 (バンク 13)呼び出し4
$8021 (バンク 7)呼び出し3
$8024 (バンク 7)呼び出し3
$802A (バンク 7)呼び出し3
$AEF1 (バンク 13)呼び出し2
$801B (バンク 7)呼び出し1
$8E15 (バンク 7)呼び出し1

待つ場所

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

場所何であるか、その証拠
$A8A9 (バンク 13)
フレーム待ち: 待つ相手のバイト $00D9、入った回数 36、周回 1,101、一周ごとの呼び出し 2、フレーム割り込みの下での書き込み 15,815、全フレーム 47,611
$A90B (バンク 13)
フレーム待ち: 待つ相手のバイト $0000、入った回数 9、周回 525、一周ごとの呼び出し 1、フレーム割り込みの下での書き込み 9、全フレーム 47,611
$ABF1 (バンク 13)
フレーム待ち: 待つ相手のバイト $0392、入った回数 9、周回 855、一周ごとの呼び出し 2、フレーム割り込みの下での書き込み 18、全フレーム 47,611
$AF06 (バンク 13)
フレーム待ち: 待つ相手のバイト $001F、入った回数 13,653、周回 164,891,623、フレーム割り込みの下での書き込み 74,942、全フレーム 47,611
$BF83 (バンク 13)
フレーム待ち: 待つ相手のバイト $04C8、入った回数 96、周回 2,710、一周ごとの呼び出し 1、フレーム割り込みの下での書き込み 379、全フレーム 47,611

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

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

場所項目選ばれた数選んだバイト
$8AC2 (バンク 7)16
$8338 (バンク 11)153
$83B2 (バンク 11)123
$B53F (バンク 13)42$0000
$C562 (バンク 13)164
$C724 (バンク 13)31

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

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

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

起点届いたバイト命令含まれる位置
$02002568
$020D24134
$020C24121
$020E24119
$020F24112
$020B24111
$02082416
$00002402
$02011253
$05001091
$05A0961
$0202694

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

バイト読み書き書くルーチン読むルーチン
$00E13,732,18666
$00E02,434,60366
$00D0233,15335
$001E190,95036
$0010159,97956
$00F2112,87532
$00F4109,40753
$00F5108,30724
$070093,42324
$070192,71523
$072584,28616
$00F075,40333
$00F375,34032
$00F175,30322
$00D261,48623
$06C158,44612
$000455,43523
$06A451,65123
$06A651,63323
$002041,00743
$041039,53866
$001238,25633
$00D938,21834
$001437,85142

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

すべてのゲーム