洞窟物語のGBA移植! 実は俺もオルガーニャ形式の解析をのんびりやってるところだったりする。 どこかでプロジェクト立ち上がってるなら音担当として俺も参加したいなぁ。 グラフィックは.pbmが4bit bmpなのでそのまま使えますな。 マップ形式も.pxmが typedef struct _dou_map { u8 magic[4], // マジック "PXM\10" u16 x, // 水平ブロック数 u16 y, // 垂直ブロック数 u8 mapchar[1], } DOU_MAP ,*PDOU_MAP; な感じですな。多分。
Undo Close Tabにバグがありますね。TBEやminiTが導入されている場合はそっちの 機能を優先するらしいので、必要なら検証したほうがいいかもしれない。
dsdev: Sleeping with a magnet 街中で遊んでいる人を見かけたら、X/Yボタンの辺りに磁石を近づけるといいらしいですよ。
本気でPSGを使おうと思ったらyコマンドが必要になるのだが、ソースがSMFなので どう表現したものだかなぁ。手っ取り早いのはNRPNで、それぞれレジスタと代入 する値を入力する方法だが0〜127までしか表現できない。255まで使いたいのに! かと言ってSysEXをいちいち入力するのは手間だ。やはりパーサに吐かせたMMLを 編集するしか無いかなぁ。そうすると二度手間だし、例えば、 A c1 と書いてある物を A c2& y11,124 c2 ;スイープを設定 みたいにぶった切る作業は手間だ。昔は面倒くさいと思いつつも平気でぶいぶい やってたことだけど、今はそんな時代じゃないのですよ。
NitroHeader.zip タイマとDMAとKEYと割り込みについて追加した。 まぁここらへんはGBAとアドレスが一緒で使い方も変わらんようだし。 NDSTech Wikiに置いてあるNDS templateとNDSlibと、あとDevkitARMとを 組み合わせれば、1画面・2Dオンリーなデモくらいなら作れそうな気がする。 作ったところで動かす環境は無いけどね!(^o^)v
四分音符分解能480で1600小節(演奏時間にして48分超)という化け物みたいなSMFを 入手したのでざっと眺めたのだけど、これだけ長くても絶対時間の値は32bitを使 い切れて無いので軽くビックリした。 ちなみにエリック・サティのVEXATIONS(癪の種)を四分音符分解能480で作ると… 13*2*480*840 = 10,483,200 (9FF600h) これも32bitに収まってしまうのか?!すげーぜ!32bitは伊達じゃねえ! んで、まぁ実際のところSMFでは差分時間(デルタタイム)で、しかも可変長数値で 記録されてるわけだけど、シーケンサが読むときとかは扱いやすいように内部で 絶対時間にコンバートしているわけだし、じゃぁ最初から絶対時間で記録するのは どうよ?と思ったわけだ。 ただし32bitだと大きすぎるから16bitにして、その代わり分解能をVsyncまで下げる。 と、時間にして約18分演奏出来る。すげえすげえよ。これからは絶対時間の時代だよ。 ゲーム用途で使う分には、どうせシーケンサ側からBPMチェンジとかしないし解像度 もそんなに必要ないし言うことなしだよ。なんか考え方が組み込み指向になってきたよ。
Demoscene.TVを観てたらphloamとfr-018が流れてた。 GBAのデモも押さえてるんだな。ずっと観てればPSXとかDCのも流れるかしら。
Synergyを観賞した。 ST-Soundで音楽だけ聴いたことがあったので、こんなCOOOOLなサウンドについている 映像はさぞかし凄かろうと興味があったわけだ。で、今日になって初めて観た訳だけ ど…時代性を考慮して感想は控えておく。 Winampで見られるネットテレビにDemoscene.TVという、デモばっか流してるチャン ネルがあったので朝からずっと観る。 Staying Pictureがすげえ切なくて良かった。
つけてみたけど、過去の日記は平気で嘘を書いてるので調べない方がいいです。
http://sourceforge.net/project/showfiles.php?group_id=114505&package_id=124207 リリース番号が上がって、中身が GCC 3.4.3 (*1)になったみたい。 crt0のバグフィクスもされてるし、dkARMを使ってる人は差し替えて良さそう。 ただしEWRAM初期化ルーチンが、本当にEWRAM領域全てを初期化するように 変更されているので、Pogoshellプラグインを作るときは注意が必要だ。 [gba_crt0.s] 82: mov r3, #0x40 95: mov r1, #0x40 ↓ 82: mov r3, #0x3F 95: mov r1, #0x3F と書き換えれば、EWRAMの後半1Kバイト(Pogoshellからの引数が格納される)は 初期化されなくなる。Pogoshellとか考えない場合はそのままの方がいい。 (*1) ちなみに過去のdevkitで使われているgccのバージョンも調べてみた。 DevkitARM r8 3.4.1 DevKit Advance R5 Beta3 3.2.2 DevKit Advance R4 3.0.1 dkAdv R4って随分古いんだなぁ。 この頃はインラインアセンブリが asm(" hoge fuga "); と書けたのが、その後 asm( "hoge \n" "fuga \n" ); としか書けなくなったので面倒くさいと思ったのだった。 どうでもいっか。
NDSTech Wiki:The homebrew Nintendo DS(TM) technical reference いつのまにかDSのMemory Mapped I/Oとかが詳しく調べられてる。タッチスクリーンの 仕様とかよく調べたなぁ。オラ、なんだかワクワクしてきたぞ。 「公式SDKの中身を書くなよ!我々はあくまで合法な資料を目指している(意訳)」って 注意書きがしてあるんだけど、仮に公式から引用したものが投稿された場合、それと 分かるんだろうか?あとメトロイドを解析するのは合法なんだろうか?なぞなのだ。
熱が41度まで上がりこのまま死ぬのかと思ったが、死ぬほどアクエリをのんで 毛布五枚重ねで寝てたら、バンバン叩かれておきたら、36度まで下がってた。 まぁこうしてテンプレを引用するくらい余裕があるなら大丈夫ですね。
それはともかく起きたら異様に寒いし、だるいし、咽喉が痛いしで とりあえず体温を測ってみたら38.6度だった。 「キリがいい数字だな」と思った俺は正常。
余興のつもりだったけどちょっとムキになり始めてきたぞ。 NitroDefine.hの中身のうち、GBAと互換がありそうなところは定義してみた。 といってもDISPCNT〜BLDCNTまでだが。 NitroHeader.zip 偽情報に踊らされてる可能性もあるけどまあいいやぁ。
DS非公式ライブラリの叩き台とか作ってみる。 NitroHeader.zip 例の資料を改めて見たけど謎になっている部分がまだまだ多すぎるな。 OAMやDMAやタイマとかのI/Oレジスタは、使い方はGBAと互換性があるんだろうけど アドレスが分からん。GBAと比べるとサウンドジェネレータが搭載されて無いので その分詰められてるんだと思うけど…。BGやOAMも二画面分用意されてるみたいだし、 ということは二つ分のレジスタがあるんだろうし、よく分からん。 本物の中身分かってる人は見てニヤニヤするように。
ボム使いまくっての騙し々々ながら、4面までは大体1〜2コインで行けるようになって きた。1〜3面の中では3面が一番簡単かなぁ。ちょん避けだけで進めてしまう。2面も そんなに死にそうな局面は無いな。1面でどう死ぬかがポイントになってきた。
EDGEと使い比べてるんですが、どちらも一長一短ですな。 範囲を選択しての編集はEDGEの方が使いやすい。つーかね、GraphicsGaleは右クリック するとすぐに範囲選択が解けるので使いづらいわよ。 ファイル間のパレット共有が出来るドットエディタは無いものかなぁ。
どうも再発音が入っちゃうなぁ。 キャッシュと上位8ビットを比較して、変化が無ければ下位8ビットだけ書き換える ようにしたほうが良いかもしれず。LFOはともかくポルタメントは諦めた方が無難 かな。スイープでなんとかするって手もあるけど…。
無理そうと思ったけどマニアックに慣れてみると、狙い弾が比較的多いおかげで ちゃんと道が出来てるし弾消し要因もいたるところにあるしで、そんなに無理じゃ なさそうな気がしてきた。方位弾は厳しいが。しかしまずはマニアックの道中を 全部覚えないと。
今頃になって虫姫さまをやりましたがむっちゃ面白いです。ルールが(大往生以降の CAVEシューティングと比べて)非常にシンプルで分かりやすく、爽快感もあって良い。 3 モードを一通りやってきたけど、オリジナルにもマニアックと同じ撃ち込みコンボ 制を取り入れて良かったんじゃないだろうか。コンボ数が出てないとなんだか損した 気分になってしまう。 4回もコンティニューしてようやく2面中盤までしか行けないウルトラモードは俺には 無理そうだ。つかシューティングでコンティニューしたのは初めてだ。あのモードは もう笑うしか無いですね。
知ったことじゃないと書いたものの、移転告知の 済んでないところがあったのでやっぱり戻しました!
あとInteroneのアカからここへの自動転送をやめました。 各地で404が出ると思う。が、俺の知ったことじゃありません!
Interoneから契約更新のメールが来た。 誰が更新するかっつーの(^^;(1) (2) (3) (4) (5) (6) (7) (8) (9) (10) (11)そういうわけで四日市さんのページを勝手に復活させました。 来週には消します。 ↓ ちょっと早いけどアカウントの有効期限が近いので消しました。