NEStinymachines

ゼルダのように、描かずに動くスプラッシュ画面

私たちの四角のためのスプラッシュ画面: 色の変わる SQUARE の文字と、その横を落ちる水滴の列。そして黒へ暗転し、また初めから。遊んで、ただ眺めてみてほしい。プログラムは 522 バイトの命令 227 個で、作り方も確かめ方も同じだ。

ここで遊ぶ カートリッジ。NES のカートリッジを遊べるところならどこでも遊べる: splash.nes

画面の上では

フレーム 100
フレーム 100
フレーム 108
フレーム 108
フレーム 116
フレーム 116
フレーム 406
フレーム 406

動いている間、何も描かない

ゼルダの伝説のタイトル画面はにぎやかで、滝が流れ色が移ろう。それでも絵ができあがってからは、ゲームはタイルを一つも書かない。滝はスプライトの列で、毎フレーム数ピクセルずつ下がり、短い輪を終えると上へ戻るので、水が永遠に落ち続けるように見える。色が変わるのは、数フレームごとにパレットを一つ書き直しているからだ。十分に見せたら黒へ暗転するが、これもパレットを書き直すだけで、そのたびに少しずつ暗くする。このカートリッジも、自前の言葉と水滴と色で同じようにする。

このカートリッジゼルダの伝説
暗転までに見せるフレーム数396487
その間に書いたタイルの数00
色が変わった回数と、その間のフレーム数50 回、8 フレームおき68 回、6 フレームおき
落ちるスプライトが毎フレーム動くピクセル数32
上へ戻るまでのフレーム数88
暗転の段数と、かかるフレーム数5 段、16 フレームで10 段、40 フレームで

書いたとおりに

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

palette:
    LDA $46
    BEQ written
    LDA #$3F
    STA $2006
    LDX $46
    LDA #$00
    STA $46
    CPX #$01
    BNE whole
;; The word's four colours.
    LDA #$04
    STA $2006
    LDX #$04
four:
    LDA $0300,X
    STA $2007
    INX
    CPX #$08
    BNE four
    JMP back
;; All 32, each darker by $10 for every step of the fade; a colour that
;; would go below the darkest row is black.
whole:
    LDA #$00
    STA $2006
    LDX #$00
dark:
    LDA $0300,X
    LDY $43
    BEQ put
darker:
    SEC
    SBC #$10
    BCC black
    DEY
    BNE darker
    JMP put
black:
    LDA #$0F
put:
    STA $2007
    INX
    CPX #$20
    BNE dark
back:
    LDA #$00
    STA $2005
    STA $2005
    LDA #$80
    STA $2000

すべてのレッスン