正直日記



2005/10/29

_ ボタン拡張
ゲーモクのBBSより、バックライトSPに十字キーが全押し出来てしまう不具合
のある機種があるらしい。
http://gmk.9bit.org/bbs/20051023014449.htm

FM TOWNSのパッドはATARI仕様を拡張して、上下キーが同時に押されたらSTA
RT、左右キーが同時に押されたらSELECTとして認識されるようになっていた
なーとか思い出しつつ(アフターバーナーIIでブースト・ブレーキがSTART/
SELECTに割り当てられていて、速度変更しながら敵の弾が避けられないんだ
よなあ)、それと同じように、上下左右同時押しを一つのボタンとして認識
したら面白いんじゃないかなと思った。3秒間長押しするとドラミちゃんが
秘密道具を持ってきてくれるとかさー。

2005/10/24

_ でもねえ、既に
時代はダブルクロス・プラットフォームだと思うんだ。
_ WRRRRRRYYYYYYYYYY WORLDごときが
4.23MBも食うのは解せない!UPXで圧縮しても790kBもある!

クロスッ!

プラッッッッットフォーーーーーーーーーーーーーーーーーーーーーーム!
_ wxWidgetsをキメそう
 wxWidgets でクロスプラットフォーム GUIアプリを作ろう
 http://namazu.org/~satoru/pub/uu-2004-08/

を参考にwxWidgets2.6.2 / wxGladeな環境を作る。で、そのページの通りに
hello worldを作ってみるもののコンパイルエラー。こっからが大変だった。
省略するけど。

2005/10/21

_ リプレイ保存
1フレーム辺り2バイト保存するとして、生のままで1分7.2k、20分で144k。
RLEで保存すれば大幅に縮むけどレバガチャに弱いので悩みどころ。とか考え
つつ適当に実装してテストしてみたら、なぜかリプレイがずれるので変だと
思ったら、ポーズ中もキー情報を保存してた。ありがち。
_ 馬鹿は風邪を引かない
という伝説に基づき、風邪を引いてしまったよ。

2005/10/16

_ 「繁殖期ゴキブリ級」です(20段階中20番目)
恋愛価値鑑定ってまだあったんだねえ。名前変わってるけど。
http://hanihoh.com/love2/

というわけでやってみる。ちなみに2001年の俺のデータがここに残ってた。
見てもつまんないとは思うけど、まあ一応。

さて結果は……
http://www.liarsoft.org/data/kantei2005.txt

(;´Д`)

> 嘘ばっかり言いなさい! 嘘ばっかり言いなさい!  (2005/10/16 15:32:52)
> マジだって!オタクみたいのをクレーマーっちゅうんですよ!(`Д´)もう  (2005/10/17 03:23:09)
[東京酷網] > [東京酷網]  (2005/10/21 09:59:59)
> その件に関しましては弁護士を通じて回答させていただきます。  (2005/10/21 16:12:03)

2005/10/13

_ VBASmooth
自作ソフトを何本か動かしてみたところ、スプライトの回転がおかしい気が
した。気になったので市販ソフトを動かしてみたら、おかしいのは俺だった。
つか、お皿マンゲームの挙動がおかしいよ。なんかトンカチとか有り得ない
方向に飛んでくし。まぁ、もうソースを見返したくないので見なかったこと
にしようと思う。

2005/10/11

_ プリオン100%FREE
生協がすき屋の牛丼の具を扱いだしたんですが、食ってみると旨いっすね。
吉野家のプリオン丼はいつまでたっても再開しないし、こっちでいいような
気がします。

調べてみたらネット通販でも買える模様。
http://www.rakuten.co.jp/zensho/

俺はすき屋の回し者じゃないよ!マジで。
_ 大人の味
メルシャンSTINGのCMで「STINGは35歳になってから」というテロップが入る
んですけど、それで大人になってから分かるようになる味ってどんなものが
あるかねって話になって、その場では特に思いつかなかったんですが、実際
どんなものがあるんですかねぇ。タモさん、これトリビアになりませんかね。

とりあえず、子供のころは苦いだけだったビールを旨いと感じるようになっ
たのは、やはり大人になってからだった。苦い食べ物の味わいは大人のほう
が分かるんですかね。

2005/10/10

_ ハイパー・スプライト・クワドロプリゃ64 その3
どりるれろはGBPでやるとL/Rボタンの押し込みがキツいですね。つーかGCの
L/Rボタンは押し込みが深すぎる上にバネが硬いンだよ。疲れてたまらんよ。
その点PS2の感圧ボタンはいい感じですね全然調整効かねーけどつーか、MGS
以外に対応してるゲームみたときねーけどレースゲーなんかは対応してるの
かねえといったところ。

で、GBPで「どりるれ」るとGCのコントローラが振動するわけですが、これは
どうやるんだろう。I/Oレジスタのどこかを突付くのかな。

さて、スプライトダブラの続きです。

VBLANK期間中に仮想OAMリンクリストからY座標毎のOAM配列を作っておいて、
HSYNCでWRAMからOAMへ転送するわけですが、ここでHDMAを使います。ただし
DMA0を使ってしまうとDSoundにプチノイズがのってしまうので、DMA2を使い
ます。

HBLANK期間は228サイクルあって、WRAMからOAMに32bit転送するのにR2のW2で
4サイクル掛かるので、スプライト1個転送するのに8サイクルとして28個転送
できますね。…マジで?!昨日64個かどうたら書いておきながら、その半分
も転送出来ないのは困りますね。しょうがないので、2ライン分の割り込みを
使って56個の方向で考えるとして、机上計算ばかりなのもアレなのでそろそ
ろ実装にとりかかってみますか。

cube > I/O レジスタではなく,通信ポートにつながっているように見えるようです。 http://hem.passagen.se/flubba/download/GBPTech.txt  (2005/10/11 22:12:06)
> なるほどSIOを使うのか!対応ソフトで長めのGameboyPlayerロゴが入る(しかも飛ばせない)理由も分かって得した気分です。どうもありがとうございます。  (2005/10/11 23:56:25)

2005/10/09

_ ネオ・スプライト・クワドロプリャ〜 その2
某ゲーム(仮にGSHとする)をやっていたらスプライトのライン制限がバン
バンで豪快だなーすげーなーと思った次第。とは言うものの普通は消えない
ように調整すると思うので、そういう点で考えるとしょっぱいのかもしんな
い。

なんか既視感があると思ったら、ちょうど去年の今頃似たような事を書いてた。
進歩ねーなー俺、ガハハ。

まあそれは置いといて、スプライトダブラの続きをやりますよ。

通常1ラインに描けるスプライトは1,210ドットまでで、HBLANK期間中に書き
換える(REG_DISPCNTのH_BLANK_OAMを有効にしておく)場合は954ドットまで
なので、それに基づいて設計するといいんじゃないかと。

例えば16x16の場合は1ラインに59個まで安全に表示できるので、スプライト
計128個を64個ずつに分割して交互に書き換えると、ちょっと足りませんね。
じゃあどうするかっつうと、どうもしないよ!64個も並んでいるのなら5個
くらい消えても構うこたーないよ。本当にいいのか?

2005/10/08

_ ケイブからのメール
>濠頡コッッ聶ョ胥ョッ釿苜ッ鴟硼皹鴃蒟頡
>邱蟾ュュュュュュュュュュュュュュュュュュ濠株式会社ケイブ

ほうほう、それはすばらしい!
ところで何語ですか?

(´σ`) > 嘘吐御大に次回作のオファーが!!111ぬぬぬ  (2005/10/08 22:20:46)
> ワカリマスワカリマス  (2005/10/08 23:53:37)
> えっ(;゚Д゚)お前らケイブからメール来てないのかよ  (2005/10/09 07:26:15)

2005/10/07

_ ぎゃああああああ
OSが限りなくクリーンな状態であるにもかかわらず、USB-Linkerがまともに
機能してくれない。開発機の本体そのものに問題があるようだ。なんか急激
にやる気が失せてきたよ。
_ Windowsの再インストールしたり
やはり開発機でUSB-Linkerが使えないのは不便なのでOSを再インストールし
てみたものの、素のXPを目の当たりにして泣きそうになってしまった。ファ
イル検索の仕方すら分からない始末だったり。この犬をどうしてくれようか。

2005/10/06

_ メガ・スプライト・クワドロプリャー
時代はダブラーを通り越してクワドロプリャーですよ奥さん。
まあ、そういうわけでスプライトダブラを作り直していこうかと。

とりあえず振り出しに戻ってみます。
void HBlankFunc(void)
{
  OAMEntry *obj = (OAMEntry *)OAMmem;
  u16 vc = REG_VCOUNT;

  if (vc > 160)
    return;

  if ((vc & 0x1f) == 0x1f)
    obj->attr0 = (obj->attr0 & ~SP_Y_MASK) | vc+1;

  return;
}
ひとつのスプライトを五倍にする割り込み関数でっす! なんかすげー戻った感じですね。 HBLANK割り込みよりも、VCOUNT割り込みの方が効率良さげな気がしますね。 なんとかします。明日やろう明日やろう。明日なんてなかった。

2005/10/05

_ Aterm「らくらく無線スタート」の採用について
http://121ware.com/product/atermstation/info/2005/info1005.html
<利用可能なAtermシリーズアクセスポイント>
○ 	AtermWR7850S
○ 	AtermWR6650S
○ 	AtermWR7800H (※)
○ 	AtermWR6600H (※)

あの、Aterm WR7600H を使ってるのですが……だめですか?分かりません!(><)
_ 割り込みハンドラがthumbで動かない訳
IRQ例外が発生すると現在の状態に関わらずARMステートに移行した後、BIOS
の0x00000018に飛ぶわけですよ。

ARM7TDMI Programmer's Model : 9.1. 例外発生時の動作
ARM7TDMI Programmer's Model : 9.9. 例外ベクタ

んで、BIOSから割り込みハンドラへと飛ぶのですが、そのときにbx(ARM←→
THUMBステートの移行が出来る)ではなく ldr(ARM←→THUMBステートの移行
が出来ない)で飛んでいるんです。

実際はTHUMBコードで書かれているのに、CPUはARMステートのままなのでARM
コードとして解釈されるわけです。だから割り込みハンドラを-mthumbでコン
パイルするとうまく動かないわけ。

なんとなく書いてみたい気分だった。

SaTa. > わりと重要ですねこのへん。NDSも同じです。安易に-mthumbをつけるべきではありません。  (2005/10/05 20:25:21)
>
GBAの場合は、ROM上のコードは-mthumbでいいかなという気もします。
割り込みハンドラだけ気をつければ、あとはどちらでも動いてしまう
ので、速度とサイズと気分に応じた使い分けですね。

NDSは、メモリ多いし、コードは全てオンメモリだと思っていたんで
すけど、ひょっとしてROM上でも動いてるんですか? ……てメモリ
ウェイトが多いのかぁ(;´Д`)ROMと変わんないんですね
http://neimod.com/dstek/dstek2.xml#System%20Control
 (2005/10/05 22:46:52)
SaTa. > 基本はDSカードから読み込んでMAIN RAM(0x02000000)で実行ですが、ARM9の内蔵メモリITCM/DTCMもあります。もちろんGBA ROM(0x08000000)も実行領域として使えますがクソ遅いでしょうねぇ。  (2005/10/06 08:19:07)
> なるほど。命令TCMがGBAで言うIWRAMの代わりになるわけですか。確かに考え方的にはNDSもGBAとあまり変わらないようですね。  (2005/10/07 00:08:21)

2005/10/04

_ 初心者です!教えてください!
XPでF2A USB-Linkerがうまく動作しない件について調べてみたところ、俺と
同じ症状の出ている人が新たに二件ほど見つかった。

gbadev : [help] F2A software problem
F2AU Support : Wait power-on cancelled! find_port() error!

んで、それによると他のドライバ(USBポートに刺さってないので今は表示
されないけどインストールはされているドライバ)が競合してるんじゃない
かって話らしいんだけど……。

手持ちのUSB機器を一個ずつ、全てのポートに片っ端から刺していってドラ
イバをアンインスコしてみたけど、結局解決しなかったよ!

多分OSを再インスコすれば使えるようになるんだ。前もそうやって解決した。
それは分かってるんだけど……。(;´Д`)(;´Д`)

SaTa. > USBコントローラ直下のデバイスを根こそぎ削除ではダメでしょうか?  (2005/10/05 20:06:21)
> コメントありがとうございます。全て削除した上でUSBホストコントローラ(とハブ)の削除→復活も試してみたのですが、症状は変わりませんでした。もうだめだ(;´Д`)  (2005/10/05 20:15:44)

2005/10/03

_ イス寝りじゃないと駄目か
ああ書いておけば絶対に出てくると思ったんだがやっぱり出なかったよ。
小人の妖精なんてなかった。

2005/10/02

_ 敵スクリプトとか
最近は「敵もスクリプトで記述できたほうがいいかなあ」と思って、それに
ついて考えてるんだけど、どこまでスクリプトで記述できるようにするかで
悩んだりする。

例えば、ドリームな感じの砲台を作るときは、コードベタ打ちだと
// 自機の方向に向かって回転する
void 
DreamCannon_SearchShipAct(TWORK *this)
{
  ENEMY *en = (ENEMY *)&this->work[0];
  CHR_STAT *chr = en->chr;
  int angle;

  CheckDead(this);

  en->px += H_SCROLL_SPEED;
  angle = ATAN2(en->cx - MyShip->cx, en->cy - MyShip->cy);
  en->angle = RotateTo(en->angle, angle, TICK_SHOT_ANGLE);
  PutSprite(chr->pattern + en->angle/16, en->px, en->py, PRI_EN_CANNON);

  if (ABS(en->angle - angle) <= TICK_SHOT_ANGLE) {
    this->func = DreamCannon_ShotAct;
    this->shotangle = en->angle;
  }
  return;
}

// 方角が定まったので撃ち始める
void 
DreamCannon_ShotAct(TWORK *this)
{
  ENEMY *en = (ENEMY *)&this->work[0];
  CHR_STAT *chr = en->chr;
  short mes;

  CheckDead(this);

  en->px += H_SCROLL_SPEED;
  PutSprite(chr->pattern + en->angle/16, en->px, en->py, PRI_EN_CANNON);
  mes = ShotScripter(en->pshotscr);
  if (mes == SHOT_SCR_END) {
    this->func = DreamCannon_SearchShipAct;
  }
}
こんな感じになって(コピペじゃなくてフォームに直打ちしてるので適当)、 状態遷移の数だけ関数があるのは見通しが悪い気がするし、共通する部分も 多いしでダサいので、じゃあスクリプト化すればこういう風に書けるんじゃ ないかと。
(寝て起きたら、ここにスクリプトの内容が書かれているはず)
↑何の解決にもなってないが(^_^;) 書いてる最中に猛烈な眠気が襲ってきたので、続く。
_ SDLでよくね?
レベルエディタはMapEdを使う方向で考えるとして、自作せずに済んで良かっ
たねー、とハッピーエンディングを迎えたものの、唐突にキャラクターエディ
タも欲しくなったので結局何かしらGUIアプリを自作することにした。

で、GUI関数覚えるの面倒だからさー、いっそのことSDLでフレームバッファ
とマウスポインタだけなんとかして、GUIはテキトーにどうにかするってのは
どうよ?と思ったわけよ。

じゃあゲームもさ
もうSDLでよくね?
いちいち実機に焼くのめんどいし
ゲームボーイとかマジあり得なくね?
何が楽しくて今時スプライトとか騒いでるわけ?
別にWindowsで全部出来るしなーとか思い始めたわけよ。

2005/10/01

_ レベルエディタ
気に入ったものが無ければ自分で作るつもりで探してみる。Win32 APIのGUI
を覚えるのはかったるいので、まさに背水の陣であった。

Platinum
http://www.valley.ne.jp/~valencia/

 複数レイヤー、16x16〜
 複数チップを矩形選択でまとめて置けたり、マップから右クリックですぐ
 にチップを抽出できたりと使いやすさを考えた作りっぽい。最小編集単位
 が16x16なので、GBAで使うには出力データを更に加工する必要がある。

MapEd
http://nessie.gbadev.org/

 複数レイヤー、8x8〜、HV反転可
 サイズやスクロール速度の違うレイヤーを重ねてエディット可能。自由な
 形状の複数チップを置けたりと、使い勝手は抜群。だが非常に重い。

Level Mapper
http://www.gbatools.com/pages/level_mapper/lm.htm

 複数レイヤー、16x16〜
 画像ファイルを独自形式(.ts)に変換する必要あり。
 体験版はExport不可だが、独自形式のマップファイルは単純な構造なので
 コンバータ経由で使える。非常に軽い。使用できるチップ数が少ない?
 最小編集単位は16x16だが、出力は8x8。

GBA World
http://forum.gbadev.org/viewtopic.php?t=3079

 複数レイヤー、8x8〜、HV反転可
 横に並んだチップを横方向に選択して置くタイプなので、方形サイズでいっ
 ぺんに配置したりは出来ない。マップからチップを抽出選択する場合は矩
 形で選べる。最初が面倒かも。

Mappy Editor
http://www.geocities.com/SiliconValley/Vista/7336/robmpy.htm

 複数レイヤー、8x8〜

TileMax (Java)
http://seanreid.ca/project/TileMax/
GmBaAp (Linux, 要GTK+2.0)
http://gbafromscratch.sourceforge.net/
_ more ぱそdeふぁみ
迷宮組曲を試してみて気づいたけど、これはスプライトが背景を透過してる
んだな。なんでこんなことになってるんだか……EGB周りはすっかり忘れちゃ
ったなあ。YM-2612周りは今でも思い出せるんだけど(笑い

_ そうか、もう月末なんだな。(・ω・)
オムツ(´ω`)

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