正直日記



2005/11/28

_ MZ700GBA
公開されていたので試してみた。
http://www11.cds.ne.jp/~youkan/freetalk.html



おおお!MZ-700のスペハリが動いてる!これは凄い。

ちなみに右のはSEGAアーケードギャラリーのスペハリ(蛇足過ぎる)

2005/11/26

_ うさだうさだ言いつつまた計測してるよ
昨日の続きだけど、なんか大嘘を書いたかもしれないよ。まあいつものこと
だけど。というか嘘だよ。

よく考えたら1010という数字はおかしい。VCOUNT割り込みの方でもISRの処理
に同じだけクロックが割かれるはずなので、960にならないといけないはず。

ISRの所要サイクル数を適当に計算したら丁度50くらいだったので油断してた。
            H-DISP = 960サイクル           |  H-BLANK = 272サイクル
+----------------------------------------->|+------------------------>
+>IRQ発生でBIOSへ                          |
 +->BIOSからISRへ                          |
    +->ISRからVCOUNT割り込み関数へ         |
      +--->タイマ数値取得                  |
          +->mainに帰る------------------->|
                                           |+>IRQ発生でBIOSへ
                                           | +->BIOSからISRへ
                                           |   +->ISRからHBLANK割り込み関数へ
                                           |     +--->タイマ数値取得
                                           |         +->mainに帰る--->

          |                                          |
          +------------------------------------------+
                  この範囲は960くらいになるはず
VCOUNTがどのタイミングで入るのかは分かったので目的自体は達成している ものの、数字が気持ち悪いのでやり直す。 と思ったんだけど、なんかソレっぽい数値にはなるものの、理想からはほど 遠い数字になるので、結果は出さずにソースとバイナリだけ晒すことにした。 051126tester.zip 誰か適当に直しといて。俺はねえ、あんまりヘボまってるから、もう寝るよ。
_ なぜX68000が欲しいかというと
ラインバッファなスプライトを持つマシンだからなのであった。

俺がスプライトダブラに固執しているのは、多分、TOWNSユーザだったから
だろうな。擬似スプライトとか言われてたんだよなあ。TOWNSのスプライト
はフレームバッファだからあまり小細工出来なかったし、数を稼ぎたいとき
はファミコンソフトのように点滅でカバーするくらいしか方法が無かった。

とか言ってるけど、そんなにスプライトを使うゲームって作ったことないよ。

というか今更X68000実機を入手したところで、環境を作るところから挫折し
てそのままオブジェと化す気がする。エミュレータですら、満足な開発環境
を作るのは(68どころかTOWNSも)挫折してるのに。主に面倒くさくて。
というか、面倒くさいし。
_ レミングサー


3モード対応のFDドライブがみつかったので昔のFDDから色々発掘してたら、
レミングスの体験版があったので録音してみたよ。少なくともBGMに関して
は、TOWNS版が一番AMIGAオリジナルに近いと思った。まあ当時としては国内
で一番、音源構成が豪華なパソコンだったしな。

Fun : Tricky : Taxing : Mayhem
_ シャープのX68000 XVI欲しい!
ここに書いても意味無いよ。

つーか、どこに書いても意味無いよ。

SaTa. > うちにX68000CompactXVIがあります。高級MDX目覚まし時計として稼動。  (2005/12/01 21:03:32)
> それはもったいない!いや勿体無くなかった!うちにはTOWNSが7台あるけど全て死蔵中……  (2005/12/02 05:04:44)

2005/11/25

_ 俺が褒められてたよ
strange 2.0経由で自ニュの話題を追ってたら素光先生に褒められてたよ。
http://spica.tdiary.net/20050409.html#p11

ところでやっぱり自ニュにはコメント機能はつけなくて良かったと思うんだ。
というのは、ニュースサイトは副であって、それを肴に各々の掲示板で床屋
政談をするのがいいと思うからだ。コミュニティの主となるんじゃなくて、
あくまでサブに徹するべきだと。

でもあんまりストイックすぎるとニュース投稿者にメリットが無さ過ぎるの
で、リンクが踏まれた数で人気度を量り、ささいな自己満足を得られるよう
にした。(か、どうかは覚えてない。単に俺ニュースの★をなんらかの形で
再現したかっただけだったような気がする)

まあでも、コメント機能をつけなかった本当の理由は、そんなものをつける
とたちまち軋轢が発生して管理が面倒くさくなるからなんだけどな。最終的
には俺の手を離れてナトリ先生に管理してもらう予定だったし。
_ うだうだ言いつつ計ったよ
昨日の続き。結局自分で計測した。

手順としてはVBLANKを待った後タイマを回し始め、同時にVCOUNT・HBLANKの
それぞれを割り込み許可。割り込みが起こったら、走査線が30ライン目に入っ
たのを確認してから(HBLANK割り込みは毎ラインで発生するので)タイマを
読んで変数に格納した。割り込みサービスルーチン(ISR)はJeff Frohwein氏
のものを使用した。

言葉で書くよりソース出したほうが分かりやすいだろうけど、サーバに上げ
るのが面倒くさいので、なんとか分かってくださいよ。二つで十分ですよ。

んでもってテストの結果、VCOUNTのタイマ値が55249で、HBLANKのタイマ値
が56259となった。

 56259 - 55249 = 1010

H-DISP期間が960cyclesあって、割り込みサービスルーチンの処理が(割り
込みが発生してからHBLANK関数までたどり着くのに)50cycles。

 960 + 50 = 1010

見事に数字が一致した。HBLANK割り込みが起こる960サイクル前に、つまり、
走査線がラインを移動した直後に、ちゃんとVCOUNT割込が発生してたよ。


あれ?じゃあなんで俺のスプライトダブラはエミュと実機で挙動が違うんだ?
(;´Д`)コマル

SaTa. > どんなときも実機を信じる事です。SCEI製品以外は(w  (2005/11/26 00:19:22)
> むしろSCEI製品のタイマこそ、信頼できるブランドだと思いまっす。笑い  (2005/11/26 00:22:56)

2005/11/24

_ うだうだ言うより計測すりゃいいんだが
gbadevでスプライトダブラに関する話題が出てた。
http://forum.gbadev.org/viewtopic.php?t=7497

走査線が次のラインに移った瞬間にVCOUNT割り込みが発生するようなことが
書かれているけど、実際にはHSYNCと同じタイミングで起こってる気がする。

エミュと実機でスプライトダブラの挙動が違うのでそう思ったわけであり、
いずれちゃんと計ろうと思いつつも面倒くさいので延び延びにしっぱなしだ。
計るとしたら、VCOUNTとHSYNCの両方で割り込みをかけといて、それぞれの
割り込みが入った直後にタイマを読めばいいかな。誰かやっといて。

2005/11/22

_ 続々々スプライトダブラ
どうにか回転機能が使えないかと考えてるけど、アフィン変換を通した後の
矩形サイズをいちいち把握してられないのと、行列をいれるレジスタが飛び
飛びなのとで、やっぱり現実的でないという結論にいたった次第なのだった。

まあ、使わない機能にいつまでも拘ったってしょうがないよなあ。

2005/11/20

_ それはおいといて
うんづのFM TimerBの実装が実機と違うのではないかという話をする。

TimerA は TBIOS の EUPドライバによってテンポを作るために使用されてい
て、一方、TimerB は SNDドライバによって PCMエンベロープをカウントする
ために使われている。このとき、TimerBレジスタの値は221(多分)で固定さ
れていて、約10msに一度エンベロープカウンタが更新されるようになってい
る。アタックが127だったら1.27秒で TL まで立ち上がるといった具合ね。

誰もがSNDドライバを使っていたので、TimerBレジスタにどんな値が入ろうと、
10ミリ秒に一度割り込みが掛かるようになっていれば通常の使用範囲では問
題ないわけなのだった。

ところが

……なんか面倒くさくなったので続きは今度書く。(たぶん書かないと思う
ので先に結論だけ書いておくと、うんづに非は無いことが分かったよ)
_ そして次の展開
「どうしたら分かって貰えるのか」といった言い訳エントリが続きます。
_ でも経験上、一番怖いのはPC-FXファンとTOWNSファンだと思った。
http://gmk.9bit.org/note/20051119-nintendofan.htm

マイノリティ気取りが、マイナーマイノリティ貶しで取り戻したちっぽけな
自尊心!ヒャッハー。

2005/11/15

_ 執事喫茶
執事の名前はやはりセバスチャンだろう、という話になったのでググったら
やっぱりセバスチャンだったので笑った。そして、セバスチャン以外の名前
が全く思いつかなかったので困った。

2005/11/14

_ 日記に見せかけた質問ですから!(;´Д`)
日記に見せかけた質問ですから!(;´Д`)
_ 初めてのC からやり直したほうがいいか?
配列へのポインタを含む構造体の初期化をしたいんだけど
static const struct {
  int x, y;
  int size;
  int *data;
} Table[] = {
  { 0, 2, 3, {MAPCHIP_01, MAPCHIP_02, MAPCHIP_03} },
};
みたいな初期化って、やっぱり出来ないのかね。文字列定数のように、無名 配列定数に対するポインタが勝手に生成されてくれないかなーとか期待した んだけど、駄目?そこをなんとかお願いしますよ。
_ お汁娘屋かと思ったやん
http://rko.jp/img/nes/musashi_no_bouken/index.html

ここの画像集に触発されて(65535両であんなことになるとは!)ムサシの
冒険をやり始めたら止まらなくなって最後までプレイしてしまった。そして
スタッフロールの

    GRAPHIC DESIGNER
     GINGA TEIOU
       ACKY

という記述によって、点と点が繋がり線となって、そして、よくよく見直し
てみたら点のまんまだった。

SaTa. > 俺的解釈で澄int値を格納する領域が必要。  (2005/11/15 12:06:44)
> その格納する領域をコンパイラが勝手に確保しといてくれないかと。やっぱ無理すかね。うわいかん、堂々巡りしそうだ。  (2005/11/16 02:26:54)
SaTa. > あとで、ふと気が付いたけど、int * じゃなくて int [] じゃだめですか?ポインタにする理由が思いつきません。  (2005/11/16 10:22:27)
>
データが一つだけならそうするだろうけど、複数あると配列のサイズが
まちまちになって破綻すると思ったのでポインタにしました。

static const struct {
u8 x, y;
u8 data[];
} StringTable[] = {
{ 0, 1, "ab" },
{ 0, 2, "cdef" },
{ 0, 3, "ghi" },
};

をコンパイルすると(gccでコンパイル出来たのでビックリした)

.align 2
.type StringTable, %object
.size StringTable, 12
StringTable:
.byte 0, 1
.ascii "ab\000"
.byte 0, 2
.ascii "cdef\000"
.byte 0, 3
.ascii "ghi\000"

こうなるみたい。これは破綻しますよね。

うーん、文字列リテラルならポインタの初期化にラベル使ってくれるんだけどなぁ。
諦めて、int data[MAX_DATA_SIZE] と宣言すべきか。
 (2005/11/17 04:41:06)

2005/11/13

_ ここを聖地とするが良い


俺の聖地はTVジャンキーでいいです。

2005/11/12

_ HEKIRU Linuxとか作ろうぜっ
これなんだけど。
http://itpro.nikkeibp.co.jp/article/NEWS/20051111/224444/

オタの思考回路(嗜好回路)はどいつもこいつも似たような構造をしてるの
で、パッケージ名やプリフィクス、名前空間に好きなキャラ名なんかを安易
につけてしまうと、変なところでうっかり衝突しそうな気がするぜ。

namespace akari

などと書こうものなら「どのあかりだよ」と突っ込まれるに違いない。オタ
同士の衝突が発生するんだぜ。sakuraもまた然りであり、あとyuiとか他に
も例を考えると枚挙に暇が無い。

ので、ここは一つ無難に、あずきちゃんとか、わんころべえでどうよ?
(結局なかよしかよ)
_ 検索ネタ
MKS4AGBで検索してうちに来る人がたまにいるけど、んなもん直に置いとく
奴いねーよ!agblibで検索しなおしなさい。中国はほんとアレやね。

2005/11/11

_ 4kデモ@gba
これなんだけど。つーか馬鹿だ。
http://www.pouet.net/prod.php?which=18664

GBAはヘッダで256バイト使っちゃうから小容量デモシーンでは不利だよなあ
とか思ったがPEも似たようなもんか。

たまのGBAエントリなので、折角だし、ついでにここに書く。
最近は障害とゲームについて考えていて、例えば色弱については「この色と
この色の組み合わせは避ける」とか、色盲についてなら「そもそも色で何か
を区別しようとする行為自体をどうにかするべき」とか。あと、これは俺も
そうだから思うんだけど、聴覚障害のことを考えると「音だけで何かが起こっ
たことを知らせる」ってのは有り得ないなとか。そういうことをうっすらと
考えたりしているわけですが、ついに俺は一つの結論に達した。

ヘレン・ケラー用に振動だけでゲーム作ればいいんじゃね?

振動で何が表せるか考えて、とりあえずモールス信号を使ってみるかという
所までは到達したんだけどそれで具体的にどんなゲームを作れるのかまでは
思いついてない。タイトルだけはもう決まってるんだけど。川´)⊇(`川
_ ET2005誰か一緒に行こうぜ!
これなんだけど。
http://www.jp.arm.com/event/et2005.html

ARMアーキテクチャリファレンスマニュアル ver6が貰えて、あと「1日1回の
抽選会では、今大人気のARMアーキテクチャ搭載のゲーム機が当たるチャンス
があります。」だって言うから後先考えずに申し込んでしまったよ。抽選の
品がポケステだったりしたら笑えるが。(どうやらGBMicroらしい)

まあリファレンスマニュアルだけでも、と思ったんだけど、よく考えてみた
ら往復の電車賃を考えるとARMプロセッサ入門を買った方が安い。ほんま何も
考えてません。ちなみに同内容のPDFは来年からネットでダウンロード出来る
ようになる模様。
_ やる気が無い
やる気復活とか書いておきながら全然更新が無いのは、つまり、そのなんだ、
アレですね。嘘ですね。

2005/11/07

_ Eclipseをいれてみたものの
まるで便利じゃないので消した。
どうやって便利に使うんだよ!これ!
_ やる気復活
開発機からGBAにROM転送できないので、一月近くやる気が出なかったんだが
USB2インタフェースボードを買ってきてようやく開発機から転送出来るよう
になったためやる気が戻ってきたよ。俺おめ。

……ついでにRT2560の載ってる無線LANボードも買ってくりゃ良かったかな。
具体的にどのボードがそうなのかは把握して無いが。
_ これまでのあらすじ
色々あった。

最新
2010 | 01 04
2009 | 01 02 03 04 05 06 07 09 10 11 12
2008 | 01 02 03 04 05 06 07 08 09 10 11 12
2007 | 02 03 04 05 06 07 08 10 11 12
2006 | 01 02 03 04 05 06 07 08 09 10 11 12
2005 | 01 02 03 04 05 06 07 08 09 10 11 12