たまりば

  パソコン・インターネット パソコン・インターネット  三鷹市 三鷹市

Atari2600はじめました。
2015年03月24日 01:19

Atari2600で猫耳1
ファミコンGBAに続き、Atari2600の開発を始めてみた。
…と思っていたのだが、Twitterのログやファイルの日付を見ると2011年5月あたり、GBAより前だった。やってすぐに書かないとこういうことになる。

Atari2600と聞いてもピンと来ない人もいるかもしれない、というか自分自身始める前はおぼろげに名前を聞いたことがあるかという程度だった。
日本では流行らなかったけれどアメリカの方ではファミコンの前世代機として一時代を築いた名機らしいのだが。

このAtari2600、当然(総合的な)性能はファミコンを大きく下回るわけだが、画面の描画方法が他のゲーム機には無い独特なもので、挑戦しがいのある機械である。
詳細な仕様については別に書こうかと思うが、ごく簡単にまとめると以下のようになる。 (4/13追記: 書いた→Atari2600詳細)
・画面解像度は横160ドット
・背景面は横4ドット単位でしか描けない
・スプライトは計5個
 横8ドットの絵が描けるものが2個
 横1ドットが3個
 (スプライトは複製or拡大できるが、詳細は割愛)

縦は? と思うだろうが、ここがAtari2600最大のポイント。なんとVRAMを走査線1本分しか持っていないため、何もしなければ縦縞しか描けない。絵を作るには1ラインごとにVRAMを書き換える必要がある。
さらに走査線の描画中でもお構い無しにVRAMを書き換えることができて、スプライトの3倍複製モードで描画するそばから書き換えることで6キャラクタ分48ドットの任意の画像を表示する高等テクニックがある。(実際にはそれだけでは書き換え速度が足りないので裏レジスタを使うというさらにひとひねり必要。詳細は割愛)

そのテクニックを使って描いたのが冒頭の画像。
Atari2600のCPUはファミコンと同じ6502(正確にはその機能削減版の6507)なのでプログラムは楽であった。
なお開発環境はdasm、エミュレータはz26。
dasmでアセンブルするとなぜか出力ファイルの頭に謎の2バイトが付いてそれを消さないとz26で動かなかった。なんだかよく分からないがとりあえず備忘録的に書いておく。

あとつい最近またAtari2600をやりたくなって描いた絵を2枚。
Atari2600で猫耳2
Atari2600ではちゅねミク
プログラムもちょこちょこ変えているが外見はただ絵が変わっただけ。下の数字はエミュレータの機能。
はちゅねミクの絵で分かる人には分かると思うが、次はアニメーションさせたい。

  • 同じカテゴリー(プログラム)の記事画像
    JPEG圧縮を繰り返しても際限なく劣化するわけではない
    ゲームボーイの吸い出し機を作った (後編)
    ファミコンで全画面に任意の画像(ただしモノクロ)を表示
    最近のWindowsのビットマップフォントの太字
    PCのキーボードのアーウが反応しなくなったあどうすえばよいか
    ARMマイコンはじめました。
    同じカテゴリー(プログラム)の記事
     謎の色名「honeydewtab」とlegacy color valueパース手順 (2018-03-24 12:45)
     JPEG圧縮を繰り返しても際限なく劣化するわけではない (2017-02-10 01:47)
     ゲームボーイの吸い出し機を作った (後編) (2017-01-16 22:44)
     ファミコンで全画面に任意の画像(ただしモノクロ)を表示 (2017-01-14 00:00)
     最近のWindowsのビットマップフォントの太字 (2017-01-09 18:49)
     浮動小数点数の10進指数表示のアルゴリズム (2016-12-28 01:28)
    URL欄を実験的に消してる間に廃止されてしまいました。まあいいか。
     
    <ご注意>
    書き込まれた内容は公開され、ブログの持ち主だけが削除できます。
    削除
    Atari2600はじめました。
      コメント(0)