NEStinymachines

Blades of Steel (USA)

Blades of Steel (USA) は UxROM の基板に載り、プログラムは 131,072 バイト。電源投入から 400 歩のクロールが、新しいコードを見つけた道筋を 32 本残した。それらを 27,032 フレームにわたって再生すると、プログラムのうち 11,184 バイト、9 パーセントが実行された。

規則が名付けたもの

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

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

場所入り方回数何であるか、その証拠
$C79A (バンク 7)呼び出し38,771
ジャンプエンジン: テーブル 13、そこを通った跳躍 38,771
$C2F1 (バンク 7)呼び出し36,088
バンク切り替え: 書き込み 36,082、ブランク中 24,351、描画中 11,731
$C61C (バンク 7)呼び出し26,440
パッドの読み取り: ポート $4016、一フレームの読み 16、一フレームのストローブ 4
パッドの読み取り: ポート $4017、一フレームの読み 16、一フレームのストローブ 4
$81B2 (バンク 0)呼び出し26,217
スプライトの書き手: 走ったフレーム 6,534、スプライトのページへの書き込み 733,050
$854C (バンク 6)呼び出し16,775
サウンドドライバ: 走ったフレーム 6,356、書き込み 16,843
$C022 (バンク 7)呼び出し14,297
パレットの書き手: 走ったフレーム 13,414、書き込み 20,854
画面メモリへの書き手: 走ったフレーム 13,414、書き込み 131,927、ブランク中 88,304、描画中 54,203
$C175 (バンク 7)呼び出し14,297
パレットの書き手: 走ったフレーム 13,414、書き込み 29,248
$C204 (バンク 7)毎フレーム(NMI)13,274
割り込みの中のゲーム: 走ったフレーム 13,274、全フレーム 16,532、待機の場所 $C1FB
$C2A8 (バンク 7)呼び出し13,247
スクロールの書き手: 走ったフレーム 13,220、ブランク中の書き込み 26,438
$8227 (バンク 0)呼び出し13,217
二つのものを比べる所: 命令 2、バイトの組 84、バイトの総数 22、比べた回数 43,718、縦の位置のバイト $0313,$0314,$0315,$0316,$0317,$0318,$0319,$031A,$031B,$031C,$031D,$031E
$8001 (バンク 0)呼び出し13,215
スプライトの書き手: 走ったフレーム 13,242、スプライトのページへの書き込み 641,249
$82AD (バンク 0)呼び出し6,671
スプライトの書き手: 走ったフレーム 6,206、スプライトのページへの書き込み 97,085
$C512 (バンク 7)テーブル4,722
バンク切り替え: 書き込み 4,695、ブランク中 27、描画中 4,668
$C42D (バンク 7)呼び出し4,205
バンク切り替え: 書き込み 4,204、ブランク中 1,243、描画中 2,961
$8101 (バンク 1)呼び出し2,837
画面の分割: 走ったフレーム 2,868、描画中のスクロール書き込み 5,672、描画中のステータス読み 1,474,339
$C2F7 (バンク 7)呼び出し2,526
バンク切り替え: 書き込み 2,526、ブランク中 125、描画中 2,401
$CD6A (バンク 7)テーブル1,820
バンク切り替え: 書き込み 1,820、ブランク中 0、描画中 1,820
$811A (バンク 0)テーブル1,476
スプライトの書き手: 走ったフレーム 1,476、スプライトのページへの書き込み 47,232
$C3CB (バンク 7)呼び出し389
バンク切り替え: 書き込み 389、ブランク中 0、描画中 389
$C39F (バンク 7)呼び出し316
バンク切り替え: 書き込み 316、ブランク中 0、描画中 316
$C818 (バンク 7)呼び出し153
バンク切り替え: 書き込み 153、ブランク中 0、描画中 153
$C2DE (バンク 7)呼び出し64
スプライトの書き手: 走ったフレーム 64、スプライトのページへの書き込み 8,192
$C816 (バンク 7)呼び出し59
バンク切り替え: 書き込み 59、ブランク中 0、描画中 59
$C373 (バンク 7)呼び出し8
バンク切り替え: 書き込み 8、ブランク中 8、描画中 0
$C37E (バンク 7)呼び出し8
バンク切り替え: 書き込み 8、ブランク中 0、描画中 8
$C7AF (バンク 7)呼び出し58,415
$890A (バンク 6)呼び出し30,856
$886A (バンク 6)呼び出し29,991
$82BD (バンク 6)呼び出し29,985
$85A5 (バンク 6)呼び出し15,557
$E095 (バンク 7)呼び出し14,808
$C956 (バンク 7)呼び出し14,265
$81C3 (バンク 6)呼び出し13,247
$8283 (バンク 6)呼び出し13,247
$823C (バンク 6)呼び出し13,246
$C5E2 (バンク 7)呼び出し13,220
$C464 (バンク 7)呼び出し13,219
$D7D2 (バンク 7)呼び出し12,340
$D8F7 (バンク 7)呼び出し12,340
$DE1E (バンク 7)呼び出し12,340
$873E (バンク 6)呼び出し11,190
$865F (バンク 6)呼び出し10,987
$8537 (バンク 1)呼び出し8,464
$EBED (バンク 7)呼び出し7,491
$8071 (バンク 0)呼び出し6,977
$807D (バンク 0)呼び出し6,977
$80A3 (バンク 0)呼び出し6,977
$85FA (バンク 6)呼び出し6,306
$E053 (バンク 7)呼び出し6,179
$E0B5 (バンク 7)呼び出し6,179
$A569 (バンク 0)呼び出し6,170
$86F3 (バンク 6)呼び出し5,850
$8001 (バンク 1)呼び出し5,672
$8123 (バンク 1)呼び出し5,672
$871C (バンク 1)呼び出し4,695
$8EAA (バンク 1)呼び出し4,695
$9E2B (バンク 1)呼び出し4,588
$C48D (バンク 7)テーブル4,237
$800C (バンク 1)呼び出し4,205
$C107 (バンク 7)呼び出し3,630
$C958 (バンク 7)呼び出し3,624
$8EF6 (バンク 1)テーブル2,820
$B390 (バンク 0)呼び出し2,468
$B47C (バンク 0)呼び出し2,468
$B453 (バンク 0)呼び出し2,464
$B562 (バンク 0)呼び出し2,464
$857F (バンク 1)呼び出し2,382
$A5B2 (バンク 0)テーブル2,364
$8535 (バンク 1)呼び出し2,335
$A57F (バンク 0)テーブル2,331
$8E10 (バンク 1)呼び出し2,141
$8555 (バンク 1)呼び出し2,117
$C95A (バンク 7)呼び出し2,102
$893D (バンク 6)呼び出し2,046
$8803 (バンク 1)テーブル2,000
$8F2E (バンク 1)テーブル1,828
$8002 (バンク 5)呼び出し1,820
$A882 (バンク 0)呼び出し1,820
$CD77 (バンク 7)呼び出し1,820
$A8A6 (バンク 0)テーブル1,812
$AB4F (バンク 0)呼び出し1,812
$C4E4 (バンク 7)テーブル1,802
$8512 (バンク 1)呼び出し1,587
$8524 (バンク 1)呼び出し1,587
$8532 (バンク 1)呼び出し1,514
$8048 (バンク 1)テーブル1,500
$80C0 (バンク 0)呼び出し1,476
$A597 (バンク 0)テーブル1,475
$9FEC (バンク 1)呼び出し1,398
$856F (バンク 1)呼び出し1,286
$A55A (バンク 0)呼び出し1,234
$ADB7 (バンク 0)呼び出し1,234
$CE3A (バンク 7)呼び出し1,234
$9F30 (バンク 1)呼び出し1,210
$C114 (バンク 7)呼び出し1,072
$82A8 (バンク 1)呼び出し1,058
$C8FD (バンク 7)呼び出し1,009
$80EA (バンク 1)テーブル968
$84F1 (バンク 6)呼び出し859
$88CF (バンク 1)テーブル823
$8095 (バンク 1)テーブル744
$86FE (バンク 6)呼び出し732
$85AD (バンク 1)呼び出し603
$8DE5 (バンク 1)呼び出し555
$8D79 (バンク 1)呼び出し542
$83DD (バンク 1)呼び出し529
$8C2D (バンク 1)テーブル498
$80BF (バンク 1)テーブル496
$80D0 (バンク 1)テーブル465
$87A2 (バンク 1)テーブル459
$CD16 (バンク 7)テーブル400
$8001 (バンク 2)呼び出し389
$8871 (バンク 1)テーブル371
$CE43 (バンク 7)呼び出し351
$C15D (バンク 7)呼び出し342
$8813 (バンク 1)テーブル340
$871D (バンク 6)呼び出し325
$813A (バンク 1)呼び出し316
$817A (バンク 1)呼び出し316
$8681 (バンク 1)呼び出し316
$E1E5 (バンク 7)呼び出し316
$E73C (バンク 7)呼び出し316
$819B (バンク 6)呼び出し306
$88F3 (バンク 1)テーブル290
$C298 (バンク 7)呼び出し279
$C2C8 (バンク 7)呼び出し279
$8964 (バンク 1)テーブル278
$8795 (バンク 6)テーブル266
$C4B5 (バンク 7)呼び出し260
$C641 (バンク 7)呼び出し258
$9E2D (バンク 1)呼び出し252
$8573 (バンク 6)呼び出し247
$87AB (バンク 1)テーブル243
$89B0 (バンク 1)テーブル239
$8C7B (バンク 1)テーブル237
$B7F8 (バンク 1)呼び出し236
$C4A9 (バンク 7)テーブル230
$C5C8 (バンク 7)呼び出し230
$8578 (バンク 1)呼び出し228
$9EB1 (バンク 1)呼び出し228
$9EE9 (バンク 1)呼び出し228
$C304 (バンク 7)呼び出し217
$87C6 (バンク 1)テーブル216
$887C (バンク 1)テーブル187
$881C (バンク 1)テーブル180
$884B (バンク 1)テーブル177
$8893 (バンク 1)テーブル168
$8833 (バンク 1)テーブル160
$888E (バンク 6)テーブル157
$87D0 (バンク 6)テーブル150
$803F (バンク 6)呼び出し145
$C31F (バンク 7)呼び出し145
$8C3A (バンク 1)テーブル130
$88DB (バンク 6)呼び出し126
$88E5 (バンク 6)テーブル126
$8C58 (バンク 1)テーブル123
$9EFB (バンク 1)呼び出し114
$9F36 (バンク 1)呼び出し114
$879B (バンク 6)テーブル107
$87B4 (バンク 6)テーブル105
$C16A (バンク 7)呼び出し104
$D744 (バンク 7)呼び出し96
$9F81 (バンク 1)呼び出し74
$8003 (バンク 6)呼び出し72
$88F1 (バンク 6)呼び出し72
$C340 (バンク 7)呼び出し72
$87F8 (バンク 6)テーブル70
$8208 (バンク 6)呼び出し66
$88DE (バンク 6)呼び出し66
$9E3F (バンク 1)呼び出し63
$C68C (バンク 7)呼び出し54
$8D8A (バンク 1)呼び出し51
$B83C (バンク 1)呼び出し43
$B844 (バンク 1)呼び出し43
$8E02 (バンク 1)呼び出し38
$8D46 (バンク 1)呼び出し37
$C5D9 (バンク 7)呼び出し36
$85C0 (バンク 1)呼び出し35
$85E9 (バンク 1)呼び出し35
$801D (バンク 1)テーブル32
$C1C5 (バンク 7)電源投入32
$C28D (バンク 7)呼び出し32
$C6E3 (バンク 7)呼び出し32
$C7C5 (バンク 7)呼び出し32
$C7D1 (バンク 7)呼び出し32
$C7D5 (バンク 7)呼び出し32
$88CB (バンク 6)テーブル31
$EC72 (バンク 7)呼び出し30
$8D57 (バンク 1)呼び出し29
$C66C (バンク 7)呼び出し29
$873C (バンク 1)テーブル27
$8ED0 (バンク 1)テーブル27
$C2B5 (バンク 7)呼び出し27
$C674 (バンク 7)呼び出し27
$87EF (バンク 6)テーブル24
$D627 (バンク 7)呼び出し24
$8EFF (バンク 1)テーブル20
$88AB (バンク 1)テーブル16
$88DC (バンク 1)テーブル16
$C225 (バンク 7)呼び出し15
$883C (バンク 6)テーブル10
$885D (バンク 6)呼び出し9
$8CB1 (バンク 1)テーブル8
$946F (バンク 0)呼び出し8
$A24A (バンク 0)呼び出し8
$A2BF (バンク 0)呼び出し8
$A88E (バンク 0)テーブル8
$AC1F (バンク 0)呼び出し8
$AC31 (バンク 0)呼び出し8
$AC41 (バンク 0)呼び出し8
$AC79 (バンク 0)呼び出し8
$C68E (バンク 7)呼び出し8
$CCD3 (バンク 7)テーブル8
$CCE8 (バンク 7)呼び出し8
$D5FF (バンク 7)呼び出し8
$D60E (バンク 7)呼び出し8
$D6B6 (バンク 7)呼び出し8
$D6C1 (バンク 7)呼び出し8
$D72D (バンク 7)呼び出し8
$E1F1 (バンク 7)呼び出し8
$B593 (バンク 0)呼び出し6

待つ場所

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

場所何であるか、その証拠
$C1FB (バンク 7)
数える待機ループ: 数えるバイト $0024、周回 20,791,885、一フレームの周回 1,257、ループの外からの読み 32

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

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

場所項目選ばれた数選んだバイト
$8112 (バンク 0)11$0036
$A56F (バンク 0)33$0367, $0369, $036B, $036D
$A888 (バンク 0)22$0373
$8011 (バンク 1)66$0080
$8724 (バンク 1)118$0060
$87A7 (バンク 1)22$0061
$8818 (バンク 1)22$0061
$8876 (バンク 1)33$0061
$88D4 (バンク 1)44$0061
$8C32 (バンク 1)44$0061
$8EC8 (バンク 1)44$0367
$C47A (バンク 7)54$0018
$CCAB (バンク 7)33$0030

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

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

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

起点届いたバイト命令含まれる位置
$0312135縦 2
$03CF1210縦 10
$0313101縦 10
$070025557
$02002535
$00002402
$02012293
$02022293
$02032293
$06401285
$0300913
$0701824

位置と一緒に動くもの

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

枠配列ルーチン横の位置縦の位置位置に足し込まれる配列ジャンプを選ぶ配列一緒に動く配列
1343$0312$0300, $0324, $0336
12239$03CF$0410$0367$0301, $0337, $035A, $0367, $0381, $038E, $039B, $03A8, $03B5, $03C2, $03E9, $0403, $0410, $042A, $0437, $0444, $0451, $049F, $04D3, $04ED, $0514, $0589

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

バイト読み書き書くルーチン読むルーチン
$001A20,852,21426
$00E512,422,22966
$00E61,683,62166
$00E41,584,21366
$00001,307,36866
$0004999,04766
$0001991,56966
$0007870,86466
$0005844,91066
$0002698,16466
$0008623,53366
$0003586,35466
$00E2474,63356
$00C4185,76244
$005182,13866
$002172,81266
$000663,94266
$004A60,07765
$004B60,07765
$00F549,73926
$00D249,47644
$00E346,26156
$07E045,70716
$00C344,41632

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

すべてのゲーム