正直日記



2005/06/29

_ 鋳薔薇をやる俺
MUSIC COMPOSER

 Shinji Hosoe (Super Sweep)

ええー。Kenichi Koyanoなら、ある意味凄く納得いったんですが。(;´Д`)

全体的にロックを基調としたプログレ風フュージョン煮込みな曲調なのはク
ライアントの意向なんですかねぇ。スラップがゴリゴリーのハモンドがブリ
バリーでそして汗臭いリードギターにシンセがウネウネ、ついでに変拍子…。
一部の層のゲーム脳、例えば俺とかには直球だと思いますが(;´Д`)流石に
古臭くね?まぁ古臭いゲームには相応しいのかもしれない。それならそれで
統一してくれりゃいいんだけど「お兄ちゃん、遊ぼっかぁ♪」は無いと思う
んですがね。(;´Д`)これがケイブの萌えなのか。当然サントラには6人分
のフィギュアがつくんですよね?(;´Д`)6枚買ってようやくコンプとか、
更にはシークレットで脱衣フィギュアまであった!なんてことは無いですよ
ね?!まぁ魔改造しやすそーなデザインだとは思いますが(;´Д`)どうなん
ですか?!(;´Д`)しまいにゃ怒りますよ(;´Д`)

2005/06/27

_ 鹿で抜いてきた
そりゃもう思う存分、な。hehehe...

2005/06/26

_ そしておっぱい
それにしても柏のB-1は異常ですね。
_ 鋳薔薇をやる俺
上野で飲んだ帰りにゲーセンへ足を運んできた。
なんつーか全体的に感触が弱いですね。

まず打ち込み感と破壊の爽快感が弱い。弾が当たっているんだかよく分から
ないし、当たっててもなんか貫通してる。破壊すると爆炎が上がり異常なほ
ど大量の破片が飛ぶんだけど飛んでるだけ。んで避ける快感も無い。メリハ
リの無い連発WAY弾の隙間をちまちまと縫うか、覚えて大きく避けるだけ。

酔いつつも数十回やったけど2ボスがぜんっぜん安定しないなぁ。開幕は上
に回って生殺し、第二形態は波動で瞬殺して、第三形態はチマ避けし損ねて
死亡。最終形態は気合で避け!つーかやればやるほど難易度が上がっていく
ような気がするんだけど、ひょっとして稼働時間でランクが上昇しますか?
初プレイ時は1ボスのリング状弾が2個までだったんですが、いつのまにか
5+1個になってますが?

http://www.cave.co.jp/amvisual/ibara/imgs/download/wallpaper/meidi1280.jpg
あと1ボスを倒すと、この壁紙で言うところの股間部分が丁度目線の高さで
どアップになるのでキツいっす。

ああ、あと鳩が飛んでたらボム打ち込みたくなります。

2005/06/24

_ やっぱり男はミサイルだぜ
コレに影響を受けてミサイル開始。(つーか、あンた影響受けやすすぎ)



アルファブレンドを有効にしてみたけど背景がグリッドだからか「らしく」
見えないなー。スプライト同士にもブレンドが掛けられるといいんだが。

今回分かって良かったことは、スプライト一つ一つ個別に透明属性をつける
(OBJ_TRANSPARENT)のと、透明属性をスプライト全体に掛ける(BLD_OBJ)
のとでCOLEV とCOLYを併用できるということだ。COLEV でスプライトを透過
させながらCOLYで明度をギュオンギュオン上げていくことで、地味にド派手
なエフェクトが作れるぜよ?

しっかしOBJ_TRANSPARENTの他に、COLY用にOBJ_BRIGHTNESS みたいなフラグ
がもしあったら、色々と楽になったんだがなぁ。惜しいことをしたもんだ。

2005/06/23

_ 履歴書書く奴
気合を入れて志望動機を書いていたら長文になったので、ちょっと茶目っけ
を出して縦読みを仕込んでみた。まあ気付かれたら間違いなくアウトだろう
が、行頭に仕込んだわけじゃないし多分気付かないだろうな。微妙な表現を
使わざるを得なくなったのでその部分で「おやっ?」とは思うかもしれない。
まぁどちらにしても書類選考に落ちた場合の言い訳として使えるだろう。
                              =完=

く、苦しい。

2005/06/22

_ あれ更新
破片アニメを数パターン描いて、散らばるようにした。

枝葉ばかり突付いてなかなか本題に入ろうとしないのはあれだな、絵描きで
言うといきなり目から描き始めて、魂が籠もったと確信してからようやく輪
郭を描くみたいな。

じゃあ貴方は、目に魂を籠めたとでも言うのですか?

だるい。
_ やっちまったぁ
つい勢いで作ってしまった。(;´Д`)

_ 奥様うっとり
貫通しないタイプのレーザーを作った。
作り方は色々あるだろうけど、とりあえず子供をどんどん作っていく方向で。
_ まぁな
秘するが花ということで一部消した。一部な。
まぁ誰も興味無いしな。

2005/06/21

_ あれ更新
敵に自弾との当たり判定がついた。
そしてボスゲージをつけてみた。
上に被ってよく見えNEEEEEEEEEEEEEE!!!1123!
どうしたもんだかな。

050621e.gba



攻略のヒント:スタートボタン連打
_ 鹿で抜いてきた
ああ、思う存分な。hehehe...
_ メモ
午後2時に歯医者予約

2005/06/20

_ 目コピする奴
昨日の弾幕があまりにもうろ覚えすぎたので、ちゃんと目コピーした。でも
まだ若干違うかも。つーか本当に避けられるのか?いわゆるコピーミス……
しかるにリテイク発生ってやつですか?

050620e.gba


(見た目は近くなったと思う)
_ ゲームの手抜き
我々ゲーム脳は、虫姫さま5面終盤の影処理(*1)を指して「手を抜いてい
る」と批判することが出来る。だがそんなことはしないよな。あまりにも馬
鹿げてる!

(*1)
遥か下方にあるはずの雲にまで自機・敵機の影が映りこんでいる。例えば、
それより遥か昔のゲームである達人王では、二重構造の地形の下方部分に影
がさしかかると、スプライトを消して影が映らない様にしている。
_ 本当に新しいゲームなのか?
ゲーム考(Re:無気力なゲーオタに与えるゲームはない)

Ysの新しいゲーム性だ?んなもんはゼルダの伝説が10年以上前に到達して
る領域なんだよ。ったく、これこそ「何を今更」だよ、ほんと。試しに落と
してきた俺がバカみたいじゃないか。

こういう馬鹿がPS2に移植されたYsIIIをやって「左右移動だけという、今の
ゲームとしては特別な方法なので、最初は戸惑うかもしれない」とか言い出
すんだろうな。ケツ毛でも燃やしてろ。

2005/06/19

_ 敵の攻撃の正体がつかめない!
ぶっちゃけ俺は怒蜂5ボスの攻撃が避けられない!

怒蜂が流行ってた当時はよく上級者のプレイをスパっていたものだが、ある
日、俺が上級者の後ろに立つと、その男は無言でボタンから手を離し5ボス
の生殺しプレイをし始めた。多分俺が5ボスで死にまくるのを見ていたんだ
ろうな。

時間にして3・4分ほど経ったか。すると男はわざと自爆し、残機が残って
いるにも関わらず台を離れたのである。

今考えるとこれって誘ってた?



まぁそんなことを思い出しながら、5ボスをうっすらと再現してみたのだが
やっぱり避けられない!縦に動いて避けるってのは分かっているんですがね。
どうも相性が良くないらしい。

> 6ボスと5ボスを間違えた!これがゲーム脳か…  (2005/06/20 20:50:40)

2005/06/18

_ 貴様らの存在を消してやるー(棒読み)
なんとなく携帯で見てみたらアンテナが邪魔だったので消した。
まぁ俺以外使わないだろうし。

最近の携帯ブラウザはちゃんとCSSも読んで解釈するのねぇ。賢いなあ。
_ しかしそれは全て私の筋書きどおりなのだ
敵スクリプトで一思案する。

スクリプトを作るよりもソース直書きでバンバン状態遷移させていった方が
楽だなぁ。まぁ最初はそれでいいか。

2005/06/17

_ ふぁみべよ!再び
気力0からのフリーゲーム起動

インフラストラクチャモードでのダウンロード配信でもメモステへのアップ
ロードでもなんでもいいけど、俺はプレイやんに、ユーザの作ったゲームを
実行する環境が付かなかったのが残念だったと思う。もう枯れてると思うん
だがなー、GBA。 DSでも使えるってのがネックなのかしらね。

任天堂本家がやらないなら、どこか他の会社が……そう、今こそアスキーが
Game Basic Advanceを出すべき時だ。(←これが書きたかったらしい。)

2005/06/16

_ 軟弱な精神は軟弱な肉体に宿る
暑くて寒くて体調を崩したり。

2005/06/15

_ 下手の考え休むに似たり
誤差の出る16bit除算テーブルを使って誤差の無い剰余を得ようとして四苦
八苦したのち、なんとか条件付で誤差無しの結果が得られるようになったん
だけど、よく考えてみたら数字を画面表示するときくらいにしか使わないん
じゃないか?まぁ10で割る分には誤差0%だからいいんだけど(つーか誤差が
あったら困る)。

しかし、それだったら The GBA ARM Code Repository  - Math routines の
Bin2BCD を使えば済む話で、他に剰余を使う必要がなければ完全に徒労だっ
たと言える。必要があっても、BIOSのDiv命令を使えば済むことだし。

誤差で思い出したけど、がんばれゴエモン外伝〜消えた黄金キセル〜の戦闘
シーンにおけるダメージ・回復の計算誤差は異常。メッセージ欄に出てくる
数字と実際に増減するヒットポイントが合わないのはどうよ。どうなのよ。
どうなんですか?

どうなんですね(^_^)
_ XREAのアホめ
あんてなの更新時間を毎時5・35分に設定していたんだけど(30分間隔は短
すぎだけど、どうせ8割方killされるので回数を稼ごうとしていた)あまり
にkillが多すぎる。8時間以上更新されないのは異常!っつーわけで時間を
ずらしたら、ほぼ確実に更新されるようになった。



「5の倍数分」以外の中途半端な時間が狙い目のようですね(^_^)
_ やっぱりゲーム用途にはnext-fitですよね!
キャラクタが増えてきたので64x64のパターンをいくつか捏造して、VRAMが
全部埋まったときのキャッシュの挙動をテストしてみた。



バッチリですね(^_^)

2005/06/14

_ 爆発エフェクト


ドーナツはあかんな。(;´Д`)
でかいのも手で描くか……。
_ ドット絵描いてます
アラエッサッサ



それぞれ位置がおかしいけどパーツを別けて描いてるので修正は楽…なはず。
それよりパトラッシュ……ボク、半回転分描いただけで、もうなんだか眠い
んだ。
_ 今日の思いつき
地下と地上、2画面で展開する新しい「ディグダグ」
――「ディグダグ ディギング ストライク(仮称)」

DSを縦持ちしてさ、左画面でエスプレイド、右画面でエスプガルーダなんて
いいんじゃね?もちろんジョイスティックは共通でさ。2クレ入れて一人で
二人分同時に操作するダブルプレイって遊びがあるけどそれの逆バージョン
というか。新たなゲーム性が見出せるやもしれん。つーか怒首領蜂と大往生
なら、ちょっとコントローラを改造すればっつーかしなくても多機種対応の
パッド変換アダプタを使えば今すぐ出来るんじゃね?誰かやろうぜ!
_ んーーなんか違うな
俺はこの世界に居るべき人間じゃないような気がする。
帰らなきゃ、二次元の国へ。

2005/06/13

_ 公開オナニー始まるよ!
ようやくシステムが固まってきたので、取り合えず現状を公開してみます。

050613e.gba

START でゲーム開始。Aボタンで自/敵弾の発射。SELECT で自殺。
ああ、やっとゲーム本体に本腰を入れられる。
_ 実行順序
発射した最初のフレームだけ妙に弾の移動が速いと思ったら、生成したフレー
ム内で動いてた。生成されるものは、するものよりも実行順序を上げた方が
いいのね。あるいは1フレーム止めとくか。

(ダメな例)
自機→ 弾生成→ 弾動かす→ VBLANK→ 自機→ 弾動かす→ VBLANK→

(良い例)
自機→ 弾生成→ VBLANK→ 弾動かす→ 自機→ VBLANK→
_ メモ
彩京脳
 ・ロボ変形

RAIZING脳
 ・変形ロボ
 ・尻尾

CAVE脳
 ・棒読み
_ バグ取れた!
良かった良かった。

気を良くしてスプライト操作関数を全マクロ化してみたら目に見えて遅くなっ
た。無理してマクロにする(ROM 上で実行される)より、関数をIRAMに配置
してbxした方が速いわね。ARM Stateなのも効を奏しているようだ。

呼び出しに掛かる時間とのトレードオフだよな、などと軽く考えていた俺は
アホだ。

2005/06/12

_ ああ、なるほどね
そういうことだったのか。
当然そういう設計にするわな。
_ 今日の思いつき
DMA転送中にCPUが止まるのはバスが衝突するからだと思うんだけど、じゃあ
プログラムカウンタがIRAMなりWRAMだった場合は衝突しないんじゃないか?
と思ったんだけどどうだろう。

なんかDMAを使う利点が無いな…… CpuFastSetでいいじゃんというか。
_ 昼暑くて夜は寒いものってな〜んだ?
昨日のバグが未だ直らず。8*8のキャラクタを16*16に変更してみたものの、
今度は16*8や8*16のキャラクタがキャッシュに残るようになってしまった。
しようがないので10フレームに一度、参照数が残っているにも関わらず使用
されていないキャッシュを探して消すことにした。

2005/06/11

_ またまたバグ出た
OAMバッファを要求しまくると、限界の3倍ほどに達した時点(普通は有り
得ないけど)でゴミが残るようになるというバグがみつかった。どこかで
不正にリンクが切れてるんだな。早めにみつかって良かった。



まぁ、これは直した。

引き続きテストしてたら今度はPCGキャッシュにゴミが残るバグが出てきた。
ゴミが残るのは8*8のキャラクタに限られるようだけど、滅多に発生しない
ので条件が掴めない。



徹夜したけど直せず。あー。キャラクタの最小単位を16*16にするかなぁ。

2005/06/10

_ またバグ出た
一昨日作ったPCGキャッシュです。

参照数が0になったキャッシュをキャッシュリストから外すわけですが、
外した直後(から、運が良ければ数フレームの間)はVRAMにデータが残っ
てるわけで、外したデータが再度要求されたときに、運良くVRAMが上書き
されてないようであればもう一度リストに入れて、何事も無かったように
利用出来るようにしていたわけです。で、そこにバグが出た。

死して屍拾うものなし、ということで捨てたものを拾うのは止めることに
して一応解決。諸行無常なり。

2005/06/09

_ バグ出た
バグ直った

2005/06/08

_ ご利用は計画的に
PCGキャッシュが一応出来たっぽい。副作用としてDMA転送がまばらに発生
するようになったが、キューに放り込んでおいてDMA割り込みで順次転送
するようにした。重くなったけど作り易くなったから良し。
_ 薄着 付け乳首 大仏
このエントリは検索エンジン用なので、特に意味は無いです。

2005/06/07

_ ワン・ツー・スリーフォー
なんとなくTOWNS版のVIEW POINTを引っ張り出してきた。



NEO-GEOと比べれば一目瞭然だけど横に狭い。まぁ達人王ほど遊びづらい
わけではないからいいけど。本当に素晴らしい移植度なのに、販売本数は
めっちゃ低かったらしい。富士通が買い取ったのか知らんけどフェスタで
無料配布してた記憶がある。しかもなんと箱・取説付きの新品で。バブル
ですなぁ。
_ 今日の発見
const int Array[] = { 1, 2, 3, 4, 5, };

int *pArray[ sizeof(Array) / sizeof(Array[0]) ];

配列の要素数に依存した配列宣言が出来るのねー。GCCすげーすげー。
でもexternした配列の要素数を指定したらさすがに怒られた(^^;ワラ
_ DOOM! DOOM! DOOM!
ケツイ〜絆地獄たち〜のプレイ動画を見ていたのだけど、もしかして最大
128発? というのもドゥームの第一形態で32方向弾を連発してくるのだが
これが 5発目で弾切れしているからだ。



俺のシステムでもスプライトの上限を 128個に設定すれば、同じように弾
切れを起こす。ちなみに俺のは自機への方角 -90度から時計回りに生成す
るので右上が、ケツイは自機への方角から反時計回りに生成するので左下
が切れる。つまり、ケツイの方位弾は時計回りに避けていくのが安全って
ことだな!(゚Д゚)クワッ

2005/06/06

_ midiomを使ってみる
http://mewlist.com/midiom/

起動した瞬間の見た目は一見よさそうに思える。

売りであるところのST/GT方式ステップシーケンサは、ショートカットを覚え
れば便利に使えるだろうか。いちいち範囲選択しないとイベントを削除でき
ないのが×。DelキーだけでなくBSキーも使えれば尚良いんだけど。

ピアノロールは、グリッドをボタン一発でON/OFF出来ないのが辛い。ピアノ
ロールのくせにマウス入力にはあまり向いてなさそうだ。逆に、キーボード
による入力がサクサクだった。笑えるくらいキーボードに特化してある。

入力系に慣れれば作業効率が今よりグンと上がりそうだけど、一番の問題が
その「慣れ」なんだよなぁ。馴染んでしまったものからの移行はなかなかし
づらい。

あと入力系の充実振りに対して表示系が全く無いのも気になる。トラックが
増えると見通しが悪くなるので、ミキサーの一つくらい欲しいところ。

2005/06/02

_ ダウソコーダー収容所
あんてながなかなか更新されない。

cronを用いて毎時30分に自動更新するようにしてるのに、肝心の更新スクリ
プトが途中で強制終了してしまい全く使えない。ログを見たら12回中10回も
強制終了してた。

xreaのCGIは30秒で強制終了するらしいけど、ブラウザから更新CGIにアクセ
スして手動で更新する分には、それ以内の時間で正常終了するんだけどなぁ。

軽くなるように一度作り直したというのに、まだ重いと言うのかしら。
・・・自宅で動かすかな。(;´Д`)
_ ドット絵描いてません
怒首領蜂は意外と空中オブジェ(ヘリ)が少ないことに気付いた。というよ
り地上オブジェが滅法多い。一方、達人王は空中オブジェ(ヘリ)が結構多
い。でも達人王の空中オブジェ(ヘリ)は真上からの視点で描かれてるなぁ。

それにしてもTOWNS版達人王の3面高速スクロール街道は死ぬほど復活が難し
い。まぁ死んでるんですが。
_ フレームアニメーション
XSPのサンプルで超連射68Kのキャラクターアニメーション等が直接見られる
ことに気付き、一通り見て深く感銘を受けた。あのこんまい爆炎がモリモリ
沸いてくる動作なんかもあらかじめアニメーションを作ってあるのね。オブ
ジェクトを一つ一つ生成して、リアルタイムに処理してるものと思ってた。
処理負荷の軽減にもなるなぁ。

というわけで早速パクることにした。パクリながら思ったんだけど、双方向
リストで仮想OAM を持ってスプライトを宣言する毎に優先度比較をするより、
ただの配列で持って後からクイックソートなりをかけたほうが良さそうな気
がしてきた。

(追記)
フレーム毎にソートする必要があるので、そうでもないような気がしてきた。

2005/06/01

_ Wait Stateの謎 (3)
壊れたcpu_countをBGで表示する際に、桁溢れしてタイルマップ→PCGの順に
破壊してたという。しょーもな。(;´Д`)

ただ、何故cpu_countが壊れるのかはまだ謎だ。でも多分これもしょうもない
所でポカやってるんだろうなぁ。自信がなくなってきた。
_ Wait Stateの謎 (2)
PCG にキャラを転送した瞬間から負荷をかけ続けると壊れないようだ。ルー
プ内のベンチ用カウンタも壊れていたので、思い切ってベンチを外し代わり
に VBlankIntrWait() を入れてみたところ、負荷を掛けなくてもPCG は壊れ
なくなった。

unsigned int cpu_count;

int main(void)
{
	REG_WAITCNT = WS_FASTER;
	cpu_count = 0;
	scene = Start;

	GameInit(spr, task, scene);
	IRQ_RegistFunc(Int_VBLANK, (u32*)&VBlankFunc);
	IRQ_Start();

	while (1)
	{
		cpu_count++; // ←壊れる
//		VBlankIntrWait();
	}
	return 0;
}
なんなんだ。(;´Д`) 実機でデバッガ使いたいなぁ……。
_ Wait Stateの謎
エミュだと速いのに実機のベンチが遅いのでREG_WAITCNT を弄ってみた所、
エミュの1.2倍程度の速さで動くようになった。しかし何故かPCG の内容が
若干壊れる。

#define WS_FASTEST  (WS_SRAM_2WAIT \
                    | WS_ROM0_1ST_2WAIT | WS_ROM0_2ND_1WAIT \
                    | WS_ROM1_1ST_2WAIT | WS_ROM1_2ND_1WAIT \
                    | WS_ROM2_1ST_2WAIT | WS_ROM2_2ND_1WAIT \
                    | WS_MODE_AGB | WS_PREFETCH_ENABLE)

#define WS_FASTER   (WS_SRAM_3WAIT \
                    | WS_ROM0_1ST_3WAIT | WS_ROM0_2ND_1WAIT \
                    | WS_ROM1_1ST_3WAIT | WS_ROM1_2ND_1WAIT \
                    | WS_ROM2_1ST_3WAIT | WS_ROM2_2ND_1WAIT \
                    | WS_MODE_AGB | WS_PREFETCH_ENABLE)

#define WS_NORMAL   (WS_SRAM_8WAIT \
                    | WS_ROM0_1ST_3WAIT | WS_ROM0_2ND_1WAIT \
                    | WS_ROM1_1ST_3WAIT | WS_ROM1_2ND_1WAIT \
                    | WS_ROM2_1ST_3WAIT | WS_ROM2_2ND_1WAIT \
                    | WS_MODE_AGB)

という設定でそれぞれ試してみた。Flash2Advance 256MではWS_FASTESTだと
動かなかった。WS_FASTERは動いて、これが大体1.2倍。だけどPCG が壊れる。
WS_NORMALだとエミュと同程度の速度になる。PCG の内容は壊れない。

ってーことはプリフェッチの有無が影響してんのか。でも市販ゲームはプリ
フェッチを有効にしてもPCG は壊れてないわけで。具体的に何が起こってる
んだろう?
_ ドット絵描いてます
だりぃ。

斜め上から見た機体をツールの回転機能で自動回転させてみたら、やっぱり
変だ!ということでZ軸も考慮した回転を手動で描いていますがめげそうだ。
諦めるかも。
_ そうか、もう月末なんだな。(・ω・)
(゚ω゚)ゲツマツー

最新
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