NEStinymachines

マリオのように、穴に落ちる

命のレッスンのレベルに、地面の穴を開けた。遊んで縁から歩き出してみてほしい: 四角は画面の底を抜けて落ち、落ちる途中もまだ舵が効き、歩き手たちは歩き続け、待ち時間のあとにようやく命が取られてレベルがまた始まる。プログラムは 1,527 バイトの命令 597 個で、作り方も確かめ方も同じだ。

ここで遊ぶ 机の上で変えてみる カートリッジ。NES のカートリッジを遊べるところならどこでも遊べる: pit.nes

画面の上では

フレーム 44
フレーム 44
フレーム 56
フレーム 56
フレーム 180
フレーム 180
フレーム 300
フレーム 300

穴はもうひとつの死で、別の場面だ

スーパーマリオブラザーズでマリオが穴に歩き込んでも、何も固まらず、跳ねもしない。パッドにまだ応えながら画面の底を抜けて落ち、世界はマリオ抜きで進む。クリボーは歩き続け、カメラが落ち着くのは数フレーム後だ。命が取られるのは、姿が見えなくなってからずいぶん経って、落下の音楽が鳴り終わってからで、それから命を失ったときと同じ画面が残りの命を見せ、レベルが初めから始まる。このカートリッジは自前の待ち時間と自前の言葉でその場面を演じる。歩き手にぶつかるのは、命のレッスンと同じく、もうひとつの死のままだ。

このカートリッジスーパーマリオブラザーズ
縁から画面の底までのフレーム数1519
落ちる途中に横へ動いたピクセル数、右を押したまま1116
途中で跳ね上がったピクセル数00
姿が消えてから命が取られるまでのフレーム数90249
そのあいだ歩き手は歩き続けたはいはい
命を失ってから絵が消されるまでのフレーム数02
また遊べるようになるまでのフレーム数121155
レベルは初めからやり直すはいはい

書いたとおりに

このレッスンが扱うプログラムの部分。プログラム全体は、ただのテキストファイルだ: pit.s

falling:
    LDA $15
    CMP #$F0
    BCC onscreen
    LDA #$05
    STA $50
    LDA #$5A
    STA $51
    RTS
onscreen:
    JSR feet
    BEQ flying
    LDA $21
    AND #$F0
    SEC
    SBC #$10
    STA $15
    LDA #$00
    STA $14
    STA $16
    STA $17
    STA $03
flying:
    RTS
rising:
    LDA $15
    STA $21
    LDA $11
    STA $20
    JSR solid
    BNE head
    LDA $11
    CLC
    ADC #$0F
    STA $20
    JSR solid
    BEQ flying
head:
    LDA $21
    AND #$F0
    CLC
    ADC #$10
    STA $15
    LDA #$00
    STA $14
    STA $16
    STA $17
    RTS

この前は: マリオのものと同じ、レベルの終わり

次は: 最後の命と、そのあとに来るもの、マリオのように

すべてのレッスン