NEStinymachines

Super Mario Bros. 3 (USA) (Rev 1)

Super Mario Bros. 3 (USA) (Rev 1) は MMC3 の基板に載り、プログラムは 262,144 バイト。電源投入から 6,400 歩のクロールが、新しいコードを見つけた道筋を 160 本残した。それらを 337,580 フレームにわたって再生すると、プログラムのうち 26,553 バイト、10 パーセントが実行された。

規則が名付けたもの

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

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

場所リスティングでの名前入り方回数何であるか、その証拠
$FE99 (バンク 31)b31_engine_FE99呼び出し665,700
ジャンプエンジン: テーブル 26、そこを通った跳躍 665,700
$FF12 (バンク 31)b31_poll_FF12呼び出し645,037
パッドの読み取り: ポート $4016、一フレームの読み 16、一フレームのストローブ 8
パッドの読み取り: ポート $4017、一フレームの読み 16、一フレームのストローブ 8
$FC6F (バンク 31)b31_bank_FC6F呼び出し272,042
バンク切り替え: 書き込み 1,087,584、ブランク中 444,508、描画中 643,076
$F486 (バンク 31)b31_nmi毎フレーム(NMI)164,787
バンク切り替え: 書き込み 1,644,876、ブランク中 1,381,116、描画中 263,760
スクロールの書き手: 走ったフレーム 164,933、ブランク中の書き込み 337,383
$FFAD (バンク 31)b31_bank_FFAD呼び出し164,787
バンク切り替え: 書き込み 1,976,913、ブランク中 1,976,913、描画中 0
$E34F (バンク 31)b31_sound_E34F呼び出し164,317
サウンドドライバ: 走ったフレーム 163,985、書き込み 441,159
$F795 (バンク 31)b31_irq割り込み(IRQ)164,264
バンク切り替え: 書き込み 1,041,437、ブランク中 0、描画中 1,041,437
$B293 (バンク 26)b26_drain_B293呼び出し162,225
パレットの書き手: 走ったフレーム 160,953、書き込み 386,958
画面メモリへの書き手: 走ったフレーム 160,953、書き込み 784,082、ブランク中 719,936、描画中 64,146
$9984 (バンク 30)b30_random_9984呼び出し160,679
乱数のバイト: 走ったフレーム 160,679、バイト $0781,$0782,$0783,$0784、回転 4、排他的論理和 1
$FFC2 (バンク 31)b31_bank_FFC2呼び出し136,931
バンク切り替え: 書き込み 273,813、ブランク中 3,984、描画中 269,829
$A41A (バンク 9)b9_sprites_A41A呼び出し117,854
スプライトの書き手: 走ったフレーム 58,932、スプライトのページへの書き込み 25,948
$A9D3 (バンク 9)b9_sprites_A9D3呼び出し113,562
スプライトの書き手: 走ったフレーム 57,648、スプライトのページへの書き込み 911,386
$FD84 (バンク 31)b31_sprites_FD84呼び出し104,161
スプライトの書き手: 走ったフレーム 104,017、スプライトのページへの書き込み 13,324,022
$B117 (バンク 9)b9_sprites_B117呼び出し98,058
スプライトの書き手: 走ったフレーム 42,214、スプライトのページへの書き込み 784,075
$B5E2 (バンク 9)b9_sprites_B5E2呼び出し58,932
スプライトの書き手: 走ったフレーム 58,932、スプライトのページへの書き込み 471,105
$B9AA (バンク 11)b11_sprites_B9AA呼び出し45,720
スプライトの書き手: 走ったフレーム 5,715、スプライトのページへの書き込み 365,338
$B754 (バンク 24)b24_sprites_B754呼び出し44,841
スプライトの書き手: 走ったフレーム 10,094、スプライトのページへの書き込み 23,982
$B5BE (バンク 11)b11_dispatch_B5BEテーブル44,174
スプライトの書き手: 走ったフレーム 22,087、スプライトのページへの書き込み 399,487
$C3C3 (バンク 10)b10_sprites_C3C3呼び出し43,740
スプライトの書き手: 走ったフレーム 43,740、スプライトのページへの書き込み 252
$B20B (バンク 24)b24_sprites_B20B呼び出し38,755
スプライトの書き手: 走ったフレーム 19,385、スプライトのページへの書き込み 1,154,351
$B36E (バンク 24)b24_sprites_B36E呼び出し33,048
スプライトの書き手: 走ったフレーム 16,524、スプライトのページへの書き込み 2,565
$AF44 (バンク 24)b24_sprites_AF44呼び出し32,947
スプライトの書き手: 走ったフレーム 32,947、スプライトのページへの書き込み 2,108,608
$AE7C (バンク 11)b11_dispatch_AE7Cテーブル22,087
二つのものを比べる所: 命令 1、バイトの組 2、バイトの総数 3、比べた回数 234、縦の位置のバイト $0075,$0076,$0502
$CDCA (バンク 10)b10_dispatch_CDCAテーブル20,893
二つのものを比べる所: 命令 2、バイトの組 2、バイトの総数 4、比べた回数 166、横の位置のバイト $0079,$007A、縦の位置のバイト $0075,$0076
スプライトの書き手: 走ったフレーム 20,893、スプライトのページへの書き込み 376,181
$C52B (バンク 10)b10_sprites_C52B呼び出し16,447
スプライトの書き手: 走ったフレーム 16,447、スプライトのページへの書き込み 164,385
$B7D6 (バンク 24)b24_sprites_B7D6呼び出し14,947
スプライトの書き手: 走ったフレーム 10,094、スプライトのページへの書き込み 358,728
$AC35 (バンク 24)b24_dispatch_AC35テーブル13,292
スプライトの書き手: 走ったフレーム 20,200、スプライトのページへの書き込み 60,076
$FFD1 (バンク 31)b31_bank_FFD1呼び出し9,930
バンク切り替え: 書き込み 19,860、ブランク中 1,736、描画中 18,124
$9BD5 (バンク 30)b30_bank_9BD5呼び出し7,180
バンク切り替え: 書き込み 14,360、ブランク中 1,738、描画中 12,622
$B6EE (バンク 24)b24_sprites_B6EE呼び出し6,299
スプライトの書き手: 走ったフレーム 3,030、スプライトのページへの書き込み 61,846
$B820 (バンク 11)b11_dispatch_B820テーブル5,842
二つのものを比べる所: 命令 2、バイトの組 3、バイトの総数 5、比べた回数 8,763、横の位置のバイト $0079,$00B1,$0722、縦の位置のバイト $0075,$00B2
$B50C (バンク 24)b24_dispatch_B50Cテーブル5,705
二つのものを比べる所: 命令 1、バイトの組 1、バイトの総数 2、比べた回数 5,165、横の位置のバイト $008B,$008C
スプライトの書き手: 走ったフレーム 5,705、スプライトのページへの書き込み 58,010
$C6C4 (バンク 10)b10_dispatch_C6C4テーブル4,953
スプライトの書き手: 走ったフレーム 4,953、スプライトのページへの書き込み 2,622
$B58C (バンク 24)b24_dispatch_B58Cテーブル4,476
スプライトの書き手: 走ったフレーム 4,476、スプライトのページへの書き込み 52,378
$B4C0 (バンク 24)b24_dispatch_B4C0テーブル4,309
スプライトの書き手: 走ったフレーム 4,309、スプライトのページへの書き込み 42,202
$A859 (バンク 24)b24_palette_A859呼び出し4,164
パレットの書き手: 走ったフレーム 300、書き込み 9,600
$B5AE (バンク 24)b24_dispatch_B5AEテーブル2,204
スプライトの書き手: 走ったフレーム 2,204、スプライトのページへの書き込み 22,829
$94CD (バンク 30)b30_bank_94CD呼び出し1,546
バンク切り替え: 書き込み 3,092、ブランク中 0、描画中 3,092
$B600 (バンク 24)b24_dispatch_B600テーブル1,389
二つのものを比べる所: 命令 1、バイトの組 1、バイトの総数 2、比べた回数 264、横の位置のバイト $0085,$008C
$B7BE (バンク 9)b9_sprites_B7BE呼び出し1,289
スプライトの書き手: 走ったフレーム 1,289、スプライトのページへの書き込み 10,307
$B628 (バンク 24)b24_sprites_B628呼び出し1,013
スプライトの書き手: 走ったフレーム 1,013、スプライトのページへの書き込み 10,307
$B568 (バンク 24)b24_dispatch_B568テーブル976
スプライトの書き手: 走ったフレーム 976、スプライトのページへの書き込み 9,790
$CF29 (バンク 10)b10_sprites_CF29呼び出し910
スプライトの書き手: 走ったフレーム 910、スプライトのページへの書き込み 18,057
$B5D9 (バンク 24)b24_dispatch_B5D9テーブル804
スプライトの書き手: 走ったフレーム 804、スプライトのページへの書き込み 7,966
$CB84 (バンク 10)b10_dispatch_CB84テーブル710
スプライトの書き手: 走ったフレーム 142、スプライトのページへの書き込み 93,720
$FFBF (バンク 31)b31_bank_FFBF呼び出し612
バンク切り替え: 書き込み 1,224、ブランク中 0、描画中 1,224
$94BB (バンク 30)b30_bank_94BB呼び出し369
バンク切り替え: 書き込み 738、ブランク中 0、描画中 738
$96CE (バンク 30)b30_sprites_96CE呼び出し332
スプライトの書き手: 走ったフレーム 824、スプライトのページへの書き込み 84,992
$CAA2 (バンク 10)b10_dispatch_CAA2テーブル284
スプライトの書き手: 走ったフレーム 142、スプライトのページへの書き込み 37,488
$B9F4 (バンク 11)b11_compare_B9F4呼び出し254
二つのものを比べる所: 命令 2、バイトの組 3、バイトの総数 5、比べた回数 762、横の位置のバイト $0079,$00B1,$0722、縦の位置のバイト $0075,$00B2
$9ABA (バンク 30)b30_bank_9ABA呼び出し225
バンク切り替え: 書き込み 446、ブランク中 0、描画中 446
$F4F0 (バンク 31)b31_bank_F4F0呼び出し201
バンク切り替え: 書き込み 2,009、ブランク中 1,377、描画中 632
$FF40 (バンク 31)b31_reset電源投入160
バンク切り替え: 書き込み 1,244、ブランク中 800、描画中 444
二つのものを比べる所: 命令 1、バイトの組 1、バイトの総数 2、比べた回数 19,700、横の位置のバイト $00B1,$0722
スプライトの書き手: 走ったフレーム 110,242、スプライトのページへの書き込み 5,285
$D1AC (バンク 10)b10_sprites_D1AC呼び出し144
スプライトの書き手: 走ったフレーム 144、スプライトのページへの書き込み 19,008
$C7A0 (バンク 10)b10_dispatch_C7A0テーブル127
スプライトの書き手: 走ったフレーム 127、スプライトのページへの書き込み 2,622
$B599 (バンク 9)b9_dispatch_B599テーブル30
スプライトの書き手: 走ったフレーム 30、スプライトのページへの書き込み 240
$CA2B (バンク 10)b10_dispatch_CA2Bテーブル16
スプライトの書き手: 走ったフレーム 16、スプライトのページへの書き込み 432
$A996 (バンク 9)呼び出し1,257,258
$AD1B (バンク 9)呼び出し707,184
$B8D0 (バンク 9)呼び出し707,184
$B89C (バンク 9)呼び出し396,626
$AB30 (バンク 9)呼び出し307,912
$AB4D (バンク 9)呼び出し286,871
$A7D2 (バンク 9)呼び出し209,543
$E785 (バンク 31)呼び出し201,466
$A000 (バンク 28)呼び出し164,745
$A661 (バンク 28)呼び出し164,427
$A2AB (バンク 28)呼び出し164,343
$A449 (バンク 28)呼び出し164,343
$A0A1 (バンク 28)呼び出し164,342
$FEBE (バンク 31)呼び出し160,679
$B327 (バンク 9)呼び出し150,624
$B265 (バンク 9)呼び出し150,535
$B9D4 (バンク 11)呼び出し137,160
$B071 (バンク 24)呼び出し128,794
$B2DC (バンク 26)呼び出し121,769
$A0A7 (バンク 9)呼び出し117,864
$A4A8 (バンク 9)テーブル111,828
$B890 (バンク 9)呼び出し111,828
$96E5 (バンク 30)呼び出し111,519
$B3E6 (バンク 26)呼び出し107,411
$E2C0 (バンク 31)呼び出し105,103
$B24D (バンク 9)呼び出し98,053
$B34F (バンク 9)呼び出し98,053
$A9B5 (バンク 9)呼び出し97,715
$B98B (バンク 11)呼び出し91,440
$B035 (バンク 9)呼び出し89,338
$AD3B (バンク 9)テーブル88,361
$B87E (バンク 9)呼び出し85,689
$B884 (バンク 9)呼び出し85,689
$B027 (バンク 9)呼び出し77,297
$AF04 (バンク 9)呼び出し76,320
$AF7F (バンク 9)呼び出し76,320
$AFB9 (バンク 9)テーブル76,320
$9734 (バンク 30)呼び出し60,912
$A1A7 (バンク 9)呼び出し59,013
$A018 (バンク 9)呼び出し58,932
$A026 (バンク 9)呼び出し58,932
$A09C (バンク 9)呼び出し58,932
$A106 (バンク 9)呼び出し58,932
$A2C1 (バンク 9)テーブル58,932
$A2E5 (バンク 9)テーブル58,932
$A3F1 (バンク 9)呼び出し58,932
$AB94 (バンク 9)呼び出し58,932
$ACF6 (バンク 9)呼び出し58,932
$B789 (バンク 9)呼び出し58,932
$AA4E (バンク 9)呼び出し58,918
$9705 (バンク 30)呼び出し56,592
$A806 (バンク 24)呼び出し53,268
$B8F3 (バンク 11)呼び出し45,720
$BC29 (バンク 11)呼び出し44,518
$C4E0 (バンク 10)呼び出し44,376
$ADF5 (バンク 11)呼び出し44,174
$B58D (バンク 11)呼び出し44,174
$BA8A (バンク 11)呼び出し44,174
$B0C1 (バンク 24)呼び出し39,310
$B76E (バンク 24)呼び出し38,695
$A9B4 (バンク 24)呼び出し37,674
$AF6D (バンク 24)呼び出し33,048
$AFF8 (バンク 24)呼び出し33,048
$B0A0 (バンク 24)呼び出し33,048
$B340 (バンク 24)呼び出し33,048
$AA7D (バンク 24)呼び出し31,871
$B421 (バンク 24)呼び出し26,162
$B0AC (バンク 24)呼び出し24,003
$B776 (バンク 24)呼び出し24,003
$C4FA (バンク 10)テーブル22,416
$ADBD (バンク 11)呼び出し22,087
$B53B (バンク 11)呼び出し22,087
$BB6D (バンク 11)呼び出し22,087
$ADF4 (バンク 11)テーブル21,970
$B03C (バンク 26)呼び出し21,486
$B073 (バンク 26)呼び出し21,470
$B175 (バンク 26)呼び出し21,470
$AF9D (バンク 26)呼び出し21,468
$B256 (バンク 26)呼び出し21,468
$B44A (バンク 26)呼び出し21,468
$D1FE (バンク 10)呼び出し20,753
$D280 (バンク 10)呼び出し20,743
$B691 (バンク 24)呼び出し20,421
$AEC5 (バンク 24)呼び出し19,655
$B3C3 (バンク 24)呼び出し19,655
$AAB2 (バンク 24)テーブル16,524
$AB81 (バンク 24)呼び出し16,524
$C506 (バンク 10)テーブル16,447
$B6AD (バンク 24)呼び出し15,960
$AB9A (バンク 24)テーブル13,855
$E33B (バンク 31)呼び出し13,333
$B78E (バンク 24)呼び出し13,292
$E756 (バンク 31)呼び出し11,050
$B556 (バンク 24)テーブル9,849
$B501 (バンク 9)テーブル9,697
$B583 (バンク 9)呼び出し9,369
$E835 (バンク 31)呼び出し7,895
$E7BF (バンク 31)呼び出し7,494
$A9CF (バンク 24)テーブル7,448
$9C78 (バンク 30)呼び出し7,180
$E831 (バンク 31)呼び出し6,624
$B76C (バンク 11)呼び出し4,953
$D369 (バンク 10)呼び出し4,096
$ACD1 (バンク 26)呼び出し4,025
$AD68 (バンク 26)呼び出し4,025
$ABDC (バンク 26)呼び出し3,563
$E7AB (バンク 31)呼び出し3,297
$B45A (バンク 24)テーブル3,030
$B444 (バンク 24)テーブル2,028
$A77B (バンク 9)テーブル1,734
$FDC7 (バンク 31)呼び出し1,382
$B878 (バンク 9)呼び出し1,289
$B431 (バンク 24)テーブル1,241
$AD76 (バンク 26)テーブル1,068
$A459 (バンク 9)テーブル1,048
$C54A (バンク 10)テーブル1,016
$C566 (バンク 10)呼び出し1,016
$CA8C (バンク 10)呼び出し994
$ADBB (バンク 26)テーブル987
$E7B2 (バンク 31)呼び出し987
$ADA6 (バンク 26)テーブル985
$ADD6 (バンク 26)テーブル985
$9935 (バンク 30)呼び出し972
$A1AC (バンク 28)呼び出し762
$ABAD (バンク 24)テーブル756
$FDBF (バンク 31)呼び出し691
$ABF7 (バンク 24)テーブル646
$A070 (バンク 26)呼び出し636
$AB9B (バンク 24)テーブル621
$FDA9 (バンク 31)呼び出し610
$9A49 (バンク 30)呼び出し567
$C42C (バンク 14)テーブル567
$C576 (バンク 14)テーブル567
$AB26 (バンク 24)呼び出し515
$FD97 (バンク 31)呼び出し448
$FCD8 (バンク 31)呼び出し432
$A40E (バンク 26)テーブル406
$9A75 (バンク 30)呼び出し405
$C489 (バンク 14)テーブル405
$ABC0 (バンク 24)テーブル296
$ABCA (バンク 24)テーブル295
$968E (バンク 30)呼び出し286
$AC2A (バンク 26)呼び出し236
$951B (バンク 30)呼び出し225
$ABA3 (バンク 26)呼び出し223
$AC69 (バンク 26)呼び出し223
$B83F (バンク 27)呼び出し223
$E7B9 (バンク 31)呼び出し214
$AB5E (バンク 24)呼び出し197
$AC1A (バンク 9)呼び出し187
$AC8C (バンク 9)テーブル187
$A990 (バンク 24)呼び出し162
$B0C4 (バンク 26)呼び出し162
$B108 (バンク 26)呼び出し162
$C5AB (バンク 14)テーブル162
$C5B8 (バンク 14)テーブル162
$A8AF (バンク 24)呼び出し160
$B7A8 (バンク 24)呼び出し158
$A756 (バンク 11)テーブル157
$A40E (バンク 12)呼び出し144
$A45D (バンク 12)呼び出し144
$FCBF (バンク 31)呼び出し144
$E82B (バンク 31)呼び出し143
$AC1A (バンク 24)テーブル142
$AAF4 (バンク 24)テーブル138
$A2C4 (バンク 26)テーブル136
$A399 (バンク 26)呼び出し136
$C2C4 (バンク 10)呼び出し132
$C34D (バンク 10)呼び出し132
$A1D8 (バンク 11)呼び出し130
$A299 (バンク 11)呼び出し130
$ACBB (バンク 24)テーブル130
$B792 (バンク 11)テーブル127
$B363 (バンク 11)呼び出し117
$C9E5 (バンク 10)テーブル117
$B3E8 (バンク 24)呼び出し102
$A398 (バンク 26)テーブル100
$B818 (バンク 9)呼び出し96
$9553 (バンク 30)呼び出し83
$9A1D (バンク 30)呼び出し81
$A200 (バンク 9)テーブル81
$A23C (バンク 9)テーブル81
$B805 (バンク 9)呼び出し81
$C408 (バンク 14)テーブル81
$C5F2 (バンク 14)テーブル81
$FDB1 (バンク 31)呼び出し81
$B409 (バンク 24)テーブル68
$A0CF (バンク 26)テーブル64
$ACC2 (バンク 9)呼び出し61
$B30F (バンク 9)呼び出し60
$ABE4 (バンク 24)テーブル51
$A328 (バンク 26)呼び出し36
$A3B1 (バンク 26)テーブル18
$A3CD (バンク 26)テーブル18
$B31B (バンク 9)呼び出し18
$B40A (バンク 24)テーブル17
$B41B (バンク 24)テーブル17
$A118 (バンク 26)テーブル16
$AC20 (バンク 26)呼び出し16
$ACAA (バンク 26)呼び出し16
$B43B (バンク 11)呼び出し16
$A092 (バンク 26)テーブル14
$A383 (バンク 9)呼び出し5
$B39D (バンク 11)呼び出し5
$AC13 (バンク 24)テーブル4
$A181 (バンク 9)呼び出し2
$A522 (バンク 26)呼び出し2

待つ場所

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

場所リスティングでの名前何であるか、その証拠
$A81C (バンク 24)b24_wait_A81C
フレーム待ち: 待つ相手のバイト $0010、入った回数 53,258、周回 221,261,149、フレーム割り込みの下での書き込み 329,192、全フレーム 169,160
$A04B (バンク 28)b28_wait_A04B
フレーム待ち: 待つ相手のバイト $04E0、入った回数 4、周回 4、フレーム割り込みの下での書き込み 5,597、全フレーム 169,160
$96FB (バンク 30)b30_wait_96FB
フレーム待ち: 待つ相手のバイト $0010、入った回数 111,474、周回 339,706,037、フレーム割り込みの下での書き込み 329,192、全フレーム 169,160

ジャンプに使うテーブル

ゲームがその中から一つを選ぶ、アドレスのテーブル。ジャンプエンジンへの呼び出しの直後にあるものもあれば、カートリッジのどこかにあるものもある。後者は、ゲームが通って跳んだアドレスがどこから読み込まれたかで見つける。アドレスを積んでそこへ戻ることで跳ぶゲームもあれば、テーブルを二つに分けて、アドレスの下位バイトをある場所に、上位バイトを別の場所に置くゲームもある。どちらも同じやり方で見つける。項目は、走行が選ぶのを見た所までを数える。本当のテーブルはもっと長いかもしれない。最後の列は、その値が項目を選んだメモリのバイトで、追えた場合だけ書いてある: ゲームのモードか、物体の一つが今していることだ。

場所届き方項目選ばれた数選んだバイト
$A1F0 (バンク 9)呼び出しの直後22$0075
$A224 (バンク 9)呼び出しの直後111
$A2CD (バンク 9)呼び出しの直後111
$A44B (バンク 9)呼び出しの直後33
$AC5E (バンク 9)呼び出しの直後11
$AD33 (バンク 9)呼び出しの直後43
$AD89 (バンク 9)呼び出しの直後31
$C4B2 (バンク 10)呼び出しの直後26$0729
$C500 (バンク 10)呼び出しの直後33$0728
$CA92 (バンク 10)呼び出しの直後42$03E1
$AE0E (バンク 11)呼び出しの直後122
$B59C (バンク 11)呼び出しの直後171
$B772 (バンク 11)呼び出しの直後32$008B
$C447 (バンク 14)呼び出しの直後21$0706
$C496 (バンク 14)呼び出しの直後43$000E, $0706
$A9BF (バンク 24)呼び出しの直後76$00DE
$AB86 (バンク 24)呼び出しの直後108$00EE
$B3FD (バンク 24)呼び出しの直後63
$B425 (バンク 24)呼び出しの直後66
$B55E (バンク 24)呼び出しの直後55$00DD
$A088 (バンク 26)呼び出しの直後55$03E6
$A3A1 (バンク 26)呼び出しの直後83$03E5
$AD6E (バンク 26)呼び出しの直後44$044F

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

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

004080C0$0000$0100$0200$0300$0400$0500$0600$07001YX+↓2X22+↓22→3Y3↓333↓3
コンソールのメモリ 2,048 バイト。一行が 256 バイト。 番号の付いた帯は、下に描いた物体の表の列の一つで、番号は下の並び順と同じ。長さは表と同じで、塗り方も下の図と同じだ。表の列どうしが重なる所では、ものが一つずつ、それぞれの性質をすべて持って順に並んでいるので、表は一つの輪郭として描き、性質が始まる所ごとに印を付けてある。 濃い四角は、規則が比較を見た位置。 行の下の印は、最も忙しい共有バイト 24 個のうちの一つ。 そのうち 9 個はカートリッジ側のメモリにあり、この図には無い。 二行目は、プロセッサがスタックを置くページだ。 添字で届いた範囲のうち、どの表にも属さないものは描いていない: メモリを消すループは、ほとんどすべてのバイトに届くからだ。 列が近すぎて一つずつ名前を書けない所では、ラベルを 3 個省いた。下の図にはすべての名前がある。

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

起点届いたバイト命令含まれる位置
$007512919縦 2
$00A5162横 1、縦 1
$0500148縦 1
$0087615横 1
$0079212横 2
$072226横 1
$008423横 1
$008C21横 1
$020125316
$020025315
$020325310
$00002464

位置と一緒に動くもの

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

0481216202428$0075Y+97$0077$0079X$0084X$0085$008CX$008D$0095+$00B7$00CB↓$0722X$0724$0736$073E
表 1: 16 個のルーチンが一緒にたどる、最大 129 枠の配列 14 本。列はそれぞれのアドレスにある配列、行は枠で、画面上のもの一つが、すべての列を横切る一行になる。 129 枠のうち最初の 32 枠を描いてある。 列の下の数は、その配列が表の長さを超えて届いたバイト数。 X と Y は位置で、濃い四角は規則が比較を見た枠。+ は位置に足し込まれる配列で、速度がすることだ。→ はジャンプを選んだ配列で、状態や種類がすることだ。↓ は減らされる一方の配列で、タイマーがすることだ。輪郭だけの列は一緒に動くが、まだ名付けていない。
012345$0077$0087X$008F$0097+↓$009F$00D2$00D8→$051F
表 2: 16 個のルーチンが一緒にたどる、最大 6 枠の配列 8 本。列はそれぞれのアドレスにある配列、行は枠で、画面上のもの一つが、すべての列を横切る一行になる。 X と Y は位置で、濃い四角は規則が比較を見た枠。+ は位置に足し込まれる配列で、速度がすることだ。→ はジャンプを選んだ配列で、状態や種類がすることだ。↓ は減らされる一方の配列で、タイマーがすることだ。輪郭だけの列は一緒に動くが、まだ名付けていない。
012345678910111213$0500Y$050F↓$051E$052D$053C↓$0782
表 3: 6 個のルーチンが一緒にたどる、最大 14 枠の配列 6 本。列はそれぞれのアドレスにある配列、行は枠で、画面上のもの一つが、すべての列を横切る一行になる。 X と Y は位置で、濃い四角は規則が比較を見た枠。+ は位置に足し込まれる配列で、速度がすることだ。→ はジャンプを選んだ配列で、状態や種類がすることだ。↓ は減らされる一方の配列で、タイマーがすることだ。輪郭だけの列は一緒に動くが、まだ名付けていない。
枠配列ルーチン横の位置縦の位置位置に足し込まれる配列ジャンプを選ぶ配列減らされる一方の配列一緒に動く配列
1291416$0079, $0084, $008C, $0722$0075$0095$00CB$0077, $0085, $008D, $0095, $00B7, $00CB, $0724, $0736, $073E
6816$0087$0097$00D8$0097$0077, $008F, $0097, $009F, $00D2, $00D8, $051F
1466$0500$050F, $053C$050F, $051E, $052D, $053C, $0782

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

バイト読み書き書くルーチン読むルーチン
$000030,868,27566
$000129,115,72766
$000E9,318,01566
$00028,850,62366
$000F6,232,38466
$00034,510,84766
$000C3,186,12866
$69102,176,06866
$00051,705,67666
$00061,395,81666
$00071,395,01366
$00041,173,13666
$68CB1,006,63945
$6814997,84266
$6813981,54966
$00F7948,34433
$68CA890,52056
$7E98855,84424
$0015793,31246
$6824717,31556
$6825715,61956
$0075706,63266
$00F8679,38834
$6836679,33166

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

すべてのゲーム