「PIC AVR 工作室」サイトの日記的なブログです。
サイトに挙げなかった他愛ないことを日記的に書き残してます。
PIC AVR 工作室 ブログ



相変わらず、AVRスプライト用の横スクロール対応です。
進展しました!

一通りコーディングを終え、シミュレーターにかけて
ダンプリストとにらめっこ。

ダンプリストの内容的には、多分想定した通りの機能が
実現できているはず。
それと、実行時間のシミュレートをしてみて、実際の
使用時にどうなるかを考えてみたところ、UARTの
ダブルバッファを使用しつつ、通常のスクロール処理
を行っていく範囲内では実用上何の問題もないと判明。

→処理の重いコマンド…横8ドット毎のスクロールコマンド
 …を連続して行わない限り、UARTがオーバーフロー
 することはないと判明。通常は1ドット単位、もしくは
 2ドットかせいぜい4ドット単位でスクロールする
 だろうから、その範囲内では全く問題なし。

 そもそも、ウェイトを置かずに横8ドット単位でスクロール
 してしまったら、横120ドットしかないスクリーンは
 4ミリ秒弱でスクロールし尽くしてしまう計算。
 それって、垂直同期の1/4の時間でしかありません。
 そんなのまともに表示できないジャン! 考慮不要!

というわけで、当初想定したとおりの使い方をすれば、
縦横自由自在にスクロールができるようになりました。

追加機能として、背景表示器からもUART出力が可能と
しました。スプライト表示器と同様に、専用のコマンドを
送ると、バイパスしてUARTに1バイト出力するという
もの。
これを使えば、背景表示器の後ろに背景表示器を次々と
チェーン接続して、理論上は無限枚の背景を多重スクロール
することも可能です。(ワルノリしすぎですね)

時間ができたら、テストプログラムも用意し、実機に
ダウンロードして確認してみたいところです。

…いや、コーディングイメージが頭に残っているうちにと
いうのが自分への言い訳だったので、実験するのは
ひとまずこの忙しさから逃れてからにすべきかな…


まぁ、あとは実機確認さえ取れれば、ゼビウスみたいな
縦スクロールだって、グラディウスみたいな横スクロール
だって、いや、組み合わせれば斜めスクロールだって
当然可能。

さらには、背景にインベーダーやギャラクシアンのキャラ
を背景に埋め込んでスクロールによって動かせば、
その手の「軍団がズンズン侵略する系」のゲームだって
実現可能なはず。

ようやく、AVRを使うことで70年代までタイプスリップ
が可能となったわけです。よかった、よかった。

ここまでできちゃえばもうスプライトには未練は無いな…



コメント ( 0 )




つい、「忘れないうちに!」なんて思って、ソース修正に
手を染めてしまった…

AVR用背景表示器の横スクロール機能のお話です。

横方向のオフセット値を元に1ビット単位でビットイメージ
をシフトする処理は頭の中で確かに「これでいける!」って
確信できたので、ソースの修正を始めたんですが…

1つ大事なことを忘れてましたよ。オフセット値の設定を
する際に、8ドット毎に1キャラクター分のシフトを
行わないとならないんだった…。
1キャラクター1バイトなら何の問題も無かったんだけど、
SRAM容量の都合で2キャラクターを1バイトに押し込んで
あるので、4ビット単位でスクロールしないとならないん
だった…すっかり忘れてた…

1バイトずつ読み込んで4ビットずつシフトする
必要があるんだよなぁ…AVRにはそんな便利な命令は
ないから、ゴリゴリと力技で書いて行かないと…

まぁ、乗りかかった船。仕方ないのでザッとロジックを
組んでみました。
アセンブルしてシミュレーターをかけてみると、横方向
4ビット単位のシフト処理は1回あたり64us。あぁ、
処理時間の余裕値を大きくはみ出した…

どうしようかなぁ…
ひとまず機能の実現を直近の目的において、そのあと
チューニングするなり、使用上の注意(運用留意事項
とも言うべきか)でなんとかするとか。

機能の実現自体は多分できるんだけど、処理能力の
問題で、横8ドット毎に適度なウェイト処理(もしくは
ダミーデータ出力)等行うことで、なんとか実現に
こぎつけたいなぁ…。

横スクロールの後に1~2バイトのダミーデータを
送信すれば(走査線2~4本分の時間が稼げるので)
うまく動作するはずだから、実用上は問題は無い
はずなんだけど。

ただ、個人的には、そういう「使用上の注意」って
いうのは嫌いなんだよなぁ…。
理屈どおりにシンプルに動いてくれるのが一番
勘違いやトラブルを生まないのに…

なかなか上手く行かないもんですねぇ…

まぁ、なにより動作することを最優先にすすめる
ことにしましょう。


それにしても、時間が無いってのに要らないことやって
新たな問題を掘り起こしているのは我ながらおバカですねぇ…

やるべきことを最優先しないと…



コメント ( 0 )




忙しいのに、時間無いのに、でもって忙しいのに、
つい思いついて計算を始めてしまいました…

背景表示器の処理は目下のところ、デコード処理に28.75us、
表示処理に48.80us。それぞれが走査線1本(63.4us)以内
に行っています。

一方、uart受信等の処理は、デコードも表示も行って
いない空き時間に裏でやってます。

この空き時間で一番時間を要する処理は1画面丸ごとの
洗い替え処理。

1回42.10usを要するんですが、これは走査線4本分の間に
処理が完了すれば良い設計。
(メインCPUから4バイト送出する間に1回画面洗い替え
 ができればよいので)

ここから逆算すると、デコード処理はあと30us程度長く
なってもギリギリで入る計算。この30usに追加のロジック
を押し込めば良いんだゾ。と。

と、ここまでわかったので、軽ーくソースを眺めていると、
なんとなくロジックが思いついてしまいました。
ウン。行けそう!

横方向へのオフセット値分について1ライン16バイトのデータ
を右シフトさせるのに必要な増分は、このロジックなら
20us程度。よーし。なんとかギリギリ入りきる!
プログラムも短くて済むし。

ここまで来ると、頭にソースイメージまで思い浮かんで
しまったので、ソース修正だけでもやってしまおうかな…。
忘れないうちに。

でも、手をつけちゃったらどんどんワルノリしそうだし…
時間が無いんだ、時間が無いんだ。なおかつ時間が無いんだ。
2月頭まで忙しいんだった…。

どうしよう?

さらに、もう一つ追加したい機能があるんだよなぁ。
多重スクロールができる機能。こっちは簡単な話なんだけど、
そんなことまで全部やってたら時間が…

今月はダメだ…



コメント ( 0 )




http://headlines.yahoo.co.jp/hl?a=20080117-00000005-zdn_lp-sci

新しいシングルモルトウィスキーですと。
シングルにこだわる必要は無いと思うんですが、モルト
オンリーのウィスキーは好きです。

ただ、日本のこの値段帯のモルトウィスキーは、なんだか
甘味を無理矢理増しているような味付けでちょっとねぇ…
だからと言って山崎とか買っちゃうと高いし。

やっぱり、スコッチが一番美味しいなぁ。グレンフィディック
やグレンリベットあたり。味も香りもクセが無くて、
口当たりが良くて、しかも安上がり。12年ものでも最近は
3000円もしませんからねぇ。多分、ちょっと高級な焼酎
よりもコストパフォーマンスは上かと。

まぁウィスキーはいいとして、その記事の下のほうのリンク。
デスラー総統のワインセット。

以前この記事見かけたとき、
   「あぁ、勲章だけ欲しいなぁ…」
って思って、でももし勲章だけもらっておいてワインは
飲まずに処分しちゃうなんてことしたら、昔社会問題にも
なったビックリマンチョコといっしょだな… っていうか、
子供時代に退化だな…って思ってしまいました。

このワインの中身って、放送時に出てきたようなあの
薄紫色の気持ち悪いワインでしょうかね?どうせやるなら
そこまでワルノリしてみても面白いんだけどなぁ。

ガミラス星のどこらへんで葡萄が採れるんだろう???
ワイン飲んだら、体がシュワッと溶けたりしないだろうなぁ。

付属のワイングラス。極めて普通のデザインだなぁ…
できれば、あの無駄に尖がった部分がついて、デスラーが
持ち辛そうに持っていたあのトンガリ付きグラスの形状で
あって欲しかったなぁ…。

勲章よりもそういうワイングラスを単体で売り出すほうが
面白い気もするんだけど…。

そうそう、大人買いしてデスラー勲章をたくさん集めて、
ドメルよりもダゴンよりもガイデルよりも偉くなって
みるのも吉。

いっぺん実物見てみたいなぁ。



コメント ( 0 )




いしかわきょーすけさんの掲示板で、高木浩光さんの
ブログの話題から出た80年代初期のI/O誌の話。

懐かしくなって探してみたら、1981年3月以降の
I/Oなど色んな本が出てきました。

私のココロにぐぐっと来てしまったので、写真を
1枚載せておきます。


とても味のあるネコサンでしたよね。大好きでした。

この当時I/Oを買ってた目的というと、
(自分で入力すれば)タダでゲームができちゃうし、
どうせプログラムの中身なんで全然わかってなかったし、
っていうわけで、「ゲーム」と「ネコサン」だった
ような気がします。

確か、このネコサンを描いていたイラストレーターの方。
交通事故かなにかで亡くなられたと聞いた記憶があります。

そのことを知った当時、子供ながらに何か一つの時代が
終ったような気がして、とてもがっかりした記憶が
あります。

あれ以降も、たくさんの時代が次々と終って行きましたねぇ…
なるほど、道理で年をとるわけだ…



コメント ( 0 )



« 前ページ 次ページ »