1 名前:名前は開発中のものです。 mailto:sage [04/10/30 15:50:05 ID:XmInH8YR] GBAで何やら作ってみようという人の為のスレ。ライセンス不要。 初心者歓迎。質問歓迎。英語苦手な人歓迎。冷やかし歓迎。ネカマ歓迎。 資料、リンク等 www.devrs.com/gba/ www.gbadev.org/ www.vsync.org/agb/ nocash.emubase.de/gbatek.htm www.bomber.co.jp/chaola/docs/ARM/ 開発環境 DevkitAdvance devkitadv.sourceforge.net/index.html DevkitARM www.devkit.tk/ VisualHAM visualham.console-dev.de/ DragonBasic jm-basic.com/dragon/index.php GBA Wiki cgi.f26.aaacafe.ne.jp/~gbawiki/pukiwiki/pukiwiki.php 【GBA】Linuxから目覚めるぼくらのゲームボーイ! pc5.2ch.net/test/read.cgi/linux/1070983168/ ゲームボーイアドバンス(GBA)開発@ゲ製板(避難所) bbs.gamdev.org/test/read.cgi/gamedev/1055111303/ 前スレ pc5.2ch.net/test/read.cgi/gamedev/1013750899/
371 名前:名前は開発中のものです。 mailto:sage [2006/01/16(月) 22:52:01 ID:mOmX5K2f] >>367 最後に入れる場合は ;C\devkitadv\bin; のほうが良いかもしれない はっきり言ってこんなところでつまづいてるようじゃ先が思いやられる あとお前は鼻で馬鹿にしてるんだろうが>>364 もちゃんとやっとけよ
372 名前:357 [2006/01/16(月) 22:59:18 ID:CbJ6YI7c] >>370-371 おぉできました ありがとうございましたm(__)m >>1 に初心者歓迎と書いてたからやってみたくなったんです 本当にありがとうございましたm(__)m
373 名前:名前は開発中のものです。 mailto:sage [2006/01/16(月) 23:31:51 ID:4iFikG75] >>372 できれば、どこが間違ってたかを晒しておくと、 後で、このスレみた初心者が同じところでつまづくことがなくなっていいぞ。
374 名前:名前は開発中のものです。 [2006/01/17(火) 00:42:17 ID:9917DXoA] >>372 >>371 氏の指摘してくれたこれに ;C\devkitadv\bin; を使ったらいけました
375 名前:名前は開発中のものです。 mailto:sage [2006/01/17(火) 01:45:50 ID:Nc6+wOb/] 俺様メモ: moefs20040712の関数moe_getfilenum()内の if(strcmpi(filepath,fn)==0) { return i; } の直下に filepath[0] = '\0'; が必要…あれ?公開停止!?
376 名前:名前は開発中のものです。 mailto:sage [2006/01/17(火) 02:35:03 ID:Nc6+wOb/] >>375 間違えた。 for()ループの先頭にあるべきだ。
377 名前:名前は開発中のものです。 [2006/01/28(土) 04:46:46 ID:qHfVsUDg] ここでいいのかわからないけど。 空ロムにただのゲームボーイソフト突っ込んで、アドバンスでうごくの?
378 名前:名前は開発中のものです。 mailto:sage [2006/01/28(土) 05:27:44 ID:qqUIY9F3] ゲームボーイの空ロムならうごくけど アドバンスの空ロムには無理
379 名前:名前は開発中のものです。 mailto:sage [2006/01/28(土) 14:37:31 ID:RRZH8vGq] 8bit PCMのwavをwav2gbaとかで変換せずにそのまま鳴らすには wavヘッダ解析した後に割り込みの中でunsigned→signed変換する しかない?
380 名前:名前は開発中のものです。 mailto:sage [2006/02/03(金) 02:23:02 ID:slbWlN2h] つ ttp://gamdev.org/up/img/4552.zip
381 名前:名前は開発中のものです。 mailto:sage [2006/02/06(月) 21:06:46 ID:T2WaEpGB] つTinyB2T v0.20 ttp://nagoya.cool.ne.jp/dcdev38/gba/
382 名前:名前は開発中のものです。 mailto:sage [2006/02/06(月) 21:49:34 ID:WwPe7cx3] すばらしい。 それでちょっと試してみたんですが、サウンドが音割れするみたい。 ここでいいのかわかりませんが一応ご報告。 >>gamdev.org/up/img/4582.zip
383 名前:382 mailto:sage [2006/02/06(月) 21:50:38 ID:WwPe7cx3] あ、382は >380へのレスです。
384 名前:名前は開発中のものです。 [2006/02/09(木) 10:13:49 ID:Pyq5lHIe] (コメント以外で)日本語を含むプログラムを書いた人っていませんか? 今、GCC 2.9 が採用している文字コード表を探していまして 直接的には見つからなかったのですが、「(\バグ付の)不完全なシフトJIS」らしいので シフトJISコード表を参考にプログラムしちゃっていいんでしょうか
385 名前:名前は開発中のものです。 mailto:sage [2006/02/09(木) 18:56:56 ID:jiBYaVSU] 「ソ」や「表」などの¥でエスケープすべき文字が分かっていればそれでいいよ。 EUCに代えるのも一つの手だとは思うけど。
386 名前:名前は開発中のものです。 mailto:sage [2006/02/09(木) 19:25:28 ID:6fIFnbBj] >>384 ―ソЫR噂浬欺圭構蚕十申曾箪貼能表暴予禄兔喀媾彌拿杤歃濬畚秉綵臀藹觸軆鐔饅鷭xx んだけ
387 名前:名前は開発中のものです。 [2006/02/09(木) 19:59:06 ID:BVk4/W+U] >>385-386 わかりました どうもありがとうございます
388 名前:名前は開発中のものです。 [2006/02/09(木) 21:08:07 ID:2FQ4gYWp] GBAプログラム研究所落ちてない? なんでだろ。教えてエロい人。
389 名前:名前は開発中のものです。 [2006/02/09(木) 21:10:03 ID:2FQ4gYWp] GBAプログラム研究所落ちてない? なんでだろ。教えてエロい人。
390 名前:名前は開発中のものです。 [2006/02/09(木) 21:45:17 ID:BVk4/W+U] ほんとだ トップページは403 その他は404になってる 鯖落ちか何かじゃない
391 名前:名前は開発中のものです。 mailto:sage [2006/02/10(金) 00:31:48 ID:IqPCQaO9] みんななんだかんだいって見てるんだね 最近BBSにも書き込みなかったみたいだけど
392 名前:名前は開発中のものです。 [2006/02/11(土) 00:08:16 ID:BVtzYhDA] SFCのロムから吸い出したスプライトデータとかみると 24*32サイズのものが多い気がします。 これをGBAで利用するには32*32のスプライトを用意して センター寄せで読み込ませるしかないんでしょうか? それとも24*32サイズのスプライトを造ることができるんでしょうか?
393 名前:名前は開発中のものです。 mailto:sage [2006/02/11(土) 00:20:59 ID:lrk8MfSr] 24は無理 その前に吸出しデータを利用するな
394 名前:名前は開発中のものです。 [2006/02/11(土) 00:27:43 ID:BVtzYhDA] すいません。キャラチップ作るのに時間をかけたくなかったので…。 RPGツクールのフリー素材とかも24*32なんですよね。 SFCでは24*32ってモードがあったんでしょうか?
395 名前:名前は開発中のものです。 mailto:sage [2006/02/11(土) 00:46:51 ID:lPtUC7MP] ツクールの素材ってツクールにしか使えないやつがほとんどじゃない? 任意のサイズにしたかったら複数のスプライト組み合わせればいいじゃん
396 名前:名前は開発中のものです。 mailto:sage [2006/02/11(土) 01:42:14 ID:5ZKNwKwC] 32x32のスプライトをEDGEで縦3/4にするとか
397 名前:名前は開発中のものです。 mailto:sage [2006/02/11(土) 01:43:41 ID:5ZKNwKwC] ロムから吸い出したデータなんか役に立つのかいな 色化けてるんじゃない?SFCはパレットじゃなくハイカラー以上なのか
398 名前:名前は開発中のものです。 mailto:sage [2006/02/11(土) 02:52:49 ID:lrk8MfSr] >>394 SNESも24は無理 その程度の知識でよくROM吸い出来たな
399 名前:名前は開発中のものです。 mailto:sage [2006/02/11(土) 02:55:29 ID:XLrbZqXi] >>392 どうしたらいいのか思いつかないようなヴァカには無理だからやめとけ
400 名前:名前は開発中のものです。 mailto:sage [2006/02/11(土) 03:47:31 ID:lrk8MfSr] >>395 の言うように8x32と16x32を組み合わせるか 右に8ドットの空白を足して32x32で使うかだな 前者はROMサイズとVRAMの節約 後者は手間とスプライトの節約 俺なら後者を取るがね
401 名前:名前は開発中のものです。 mailto:sage [2006/02/11(土) 06:59:41 ID:hZfjJeiU] >>392 センターよせが一番無難じゃないか? 回転させることとかも考えれば。 ところで、BoyScoutって公式トラッカーしかないの? 日本語環境だとレイアウトが微妙に崩れてて使いにくそうなんだが。
402 名前:名前は開発中のものです。 mailto:sage [2006/02/12(日) 17:28:27 ID:7Ys7XIFa] だいぶ前にDirectSoundで音を鳴らそうとしていた>>318 です。 「波平」と、サンプルソース( >>318 と同じ処理 )を拾うことができたので、 あらためてチャレンジしてみたところ音が鳴るようになりました。 どうも、SoundEngineが原因だった様な気がします。 次にwavを複数登録しようとしたのですが、また壁に当たってしまいました。 複数のWavファイルをROMに格納しておいた場合、 指定してないファイルが勝手に再生されてしまうことがあります。 extern u8 test[]; // wav1 extern u8 data[]; // wav2 void AgbMain() { play_dma((u32*)&data); // play_dma((u32*)&test); while(1){} } こういうソースがあったとき、例えば data を指定して再生すると data だけが再生されるのですが、 test を指定して再生すると test の再生が終わった後、勝手に data の再生が始まるのです。 どうも、wavファイルの配列の先頭のアドレスは引数として渡されているけど 終端の方がチェックされていないので、ずるずると再生が続いてるような気がします。 >>322 のソースでは、フレーム数を計ってプログラマーの方で手動で再生を切っているようですが そんな方法しかないのでしょうか
403 名前:名前は開発中のものです。 mailto:sage [2006/02/12(日) 17:33:59 ID:7Ys7XIFa] int play_dma(u32* sound_src){ // DirectSound設定 REG_SGCNT0_H = 0x0906; *(u16*)0x4000082 = 0x0b0E; // sound control channel ( SGCNT0_H ) // 左右ボリュームの設定 1234 1234xLLL xRRR (0x77) REG_SGCNT0_L = 0xffff;0x0080; *(u16*)0x4000084 = 0xffff; //sound enable ( SGCNT1 ) // *(u32*)0x40000BC =(unsigned long)&ROM_Sample; // the address of the source // *(u32*)0x40000BC = (u32*)sound_src; // the address of the source // Waveデータ転送アドレス設定 *(u32*)0x40000BC =(u32)sound_src; // the address of the source // DMA→サウンド REG_SGFIFOA_L *(u32*)0x40000c0 = 0x040000a0;// Dest DMA LOW&HIGH written (0x40000c0= DM1DAD_L )(0x040000a0=SGFIFOA_L) // DMA有効,転送元増加,転送先固定,32ビット // REG_DM1CNT_H = DMA_ENABLE(8000) | DMA_TIMMING_SOUND(3000) | // DMAイネーブル・サウンドFIFO要求 // DMA_IF_ENABLE(4000) | // 割り込み要求イネーブル // DMA_CONTINUOUS_ON(0200) | // 連続モードON // DMA_SRC_INC(0000) | DMA_DEST_FIX(0040) | // 転送元増加・転送先不変選択 // DMA_32BIT_BUS(0400); // 32ビット // =e640 *(u16*)0x40000C6 = 0xB640; // サウンドFIFO要求を入れると音が鳴らない? // タイマー0の値を設定 u16の−値がサンプリングレート(周波数)になる // 11KHzの場合 -1520 *(u16*)0x4000100 = (u16)(-1520); // タイマー0を設定、周期は1クロックで1進む *(u16*)0x4000102 = 0x0080; //timer Control. Ingen IRQ eller nerdelning av CPU clockan. }
404 名前:名前は開発中のものです。 mailto:sage [2006/02/12(日) 20:32:14 ID:lQGmnJOY] >>402 >フレーム数を計ってプログラマーの方で手動で再生を切っているようですがそんな方法しかないのでしょうか そんな方法しか無い サウンドのサイズを自分で管理し サイズ分転送したらDMAとサウンドの両方を止めれ
405 名前:名前は開発中のものです。 mailto:sage [2006/02/12(日) 23:09:14 ID:Cgq3GpSK] わかりました・・・ 頑張って自前で管理することにします
406 名前:名前は開発中のものです。 mailto:sage [2006/02/13(月) 02:39:56 ID:Gtc5I6Df] ファイル長はすぐわかるね。 wav2gba.exeの吐き出した.binデータを右クリック、プロパティを開く サイズ ???KB (????? バイト) ()内のバイトがファイルサイズ。
407 名前:名前は開発中のものです。 [2006/02/13(月) 14:40:33 ID:eECtxr3h] 次のゲームの画面を再現するにはどの画面モードで 各要素をどの画像で再現すればいいでしょうか? 1)SFCのころのドラクエ風戦闘画面 要素: 背景画像 インターフェース 文字 モンスター 攻撃&魔法エフェクト 僕の予想では 画面モードはモード0。 背景、インターフェースはタイル。 エフェクトはタイル?(全画面アニメがあるため) モンスターはスプライト(ボスキャラ等はタイル+スプライト) 文字はスプライト(タイルのBG面が足りないため) つぎのレスにつづく
408 名前:名前は開発中のものです。 [2006/02/13(月) 14:41:59 ID:eECtxr3h] 2)SFCのころのFF風戦闘画面 要素: 背景画像 インターフェース 文字 プレイヤーキャラクター モンスター 攻撃&魔法エフェクト 僕の予想では 画面モードはモード3。 背景、インターフェース、モンスターはビットマップ。 プレイヤーキャラクター、エフェクト、文字はスプライト。 タイルモードかなと思ったんですがボスキャラが消えるときとか キャラ画像の奇数ラインと偶数ラインがずれて消えるときとかあるので あれをタイルモードで再現する方法がわかりませんでした。 あってますでしょうか?アドバイス御願いします。
409 名前:名前は開発中のものです。 mailto:sage [2006/02/13(月) 16:11:54 ID:2pbmjWEa] 主人公、モンスター、効果はスプライト。 BGの仕様を決めるのは難しい。 どういう演出をするのかによって変わる。 背景を拡大縮小する演出をするならモード12345。 しないなら絵がたくさん登録できるモード0。 表示する情報が少なく簡単にレイアウトできるなら0123のキャラクターモード、 多色を使って、8x8ドットに縛られたくないならモード345。 でもモード345は情報量が多く重くなる。ダブルバッファを使用するなら モード4か5しかない たしかBGが容量の大きいモードのとき、スプライトの登録数が圧迫されるんじゃ なかったっけ。 全体のバランスを取るには、だいたいの仕様を決めて サンプルを作って動かしてみるしかないんじゃない? FFも3とか4とか決めてそれを目標にすれば、イメージも明確になるのじゃいか。
410 名前:名前は開発中のものです。 mailto:sage [2006/02/13(月) 16:17:41 ID:2pbmjWEa] そういえば文字の表示が大きな悩み。 日本語表示するのだろうから、VRAMにすべての文字を登録するのは 不可能。割り込み中に表示画面に必要な分の文字を転送するしかない。 あるいはダブルバッファリングできるモードを使う? ということはビットマップモード4か5。キャラのモードの時は 意識して上の領域はA、そのとき見えない領域B としてダブルバッファリンク゛することもできるけど。 GBA研究所の日本語表示サンプルを改造してドラクエ戦闘画面の インターフェースみたいのをまず作ってみるべき。 ワールドマップとかはそのあとでもいい。まず日本語表示が難関。
411 名前:名前は開発中のものです。 [2006/02/13(月) 17:42:11 ID:eECtxr3h] GBA研究所は落ちてるんですよね…。 マップエディタが入手できず大弱りです。
412 名前:名前は開発中のものです。 mailto:sage [2006/02/13(月) 19:45:25 ID:VY0KRAb6] >>407 インターフェースと文字は一緒に出来る あと戦闘中の文字は平仮名カタカナしかないことに気づこう BG0 背景 BG1 文字+枠 BG2 半透明エフェクト SPR 敵+エフェクト >>408 BG0 敵 BG1 背景+文字 BG2 エフェクト SPR 味方+エフェクト FF6は BG0 背景 BG1 背景+文字 BG2 半透明エフェクト SPR 敵+味方+エフェクト 一部の魔法はBG2にウインドウ重ね掛けで 敵を消すときはタイルマップじゃなくてタイルを直接消してる
413 名前:407 [2006/02/13(月) 19:55:05 ID:eECtxr3h] みなさん、アドバイス有難う御座います。 これでとりあえずの実装は出来そうです。 魔法別で悩んだらまた質問しますので 厳しくもやさしく教えてください。。。
414 名前:名前は開発中のものです。 mailto:sage [2006/02/13(月) 20:19:49 ID:VY0KRAb6] 俺のMAPエディタをうpしてやろうかと思ったけど みなさんで一括りにされたからやめるか
415 名前:名前は開発中のものです。 mailto:sage [2006/02/13(月) 20:34:51 ID:NZEWyj/P] 心が狭いのね 狭くなくっちゃ、心も車も
416 名前:名前は開発中のものです。 mailto:sage [2006/02/13(月) 20:59:44 ID:pe7jKuDW] 文字表示の実装が全く分からないのですが、 分かりやすいサイトはないですか?
417 名前:407 [2006/02/13(月) 23:11:29 ID:eECtxr3h] 414さまアップお願い致します。
418 名前:名前は開発中のものです。 mailto:sage [2006/02/13(月) 23:53:36 ID:VY0KRAb6] >>416 タイルモードのときはタイルを順番に横に並べて 並べたタイルに文字データを転送するだけ ビットマップモードのときはVRAMに直接書けばいいだけなので PCでやるのとやり方は一緒 どっちにしても文字データは自分で用意しなくちゃ駄目
419 名前:名前は開発中のものです。 mailto:sage [2006/02/14(火) 00:03:36 ID:Mc0x+HZh] >>406 wav2gbaはv1.01だと、バイナリの先頭に 2byte: type 2byte: stat 4byte: freq 4byte: loop 4byte: size ←これがデータ長 なヘッダが付いてるので気を付けれ。
420 名前:名前は開発中のものです。 mailto:sage [2006/02/14(火) 00:06:53 ID:x7UBz7YU] >>418 自分の書き方が悪かったです。printf関数みたいな 感じでやりたいんです。 そもそもprintf関数の仕組みがよく分からない・・・ のぞいて見てもチンプンカンプンです。
421 名前:名前は開発中のものです。 mailto:sage [2006/02/14(火) 00:34:47 ID:WgJRobF9] >>420 sprintfで文字列を作って その文字列を表示する関数を作るんだ printfは最初から無いものとして諦めろ
422 名前:名前は開発中のものです。 [2006/02/14(火) 00:40:40 ID:945ce4fT] 研究所のやつじゃなくてもいいので 使い勝手のいいマップエディタしりませんか? ドラクエ風のワールドマップを作りたいのですが。。。。
423 名前:名前は開発中のものです。 mailto:sage [2006/02/14(火) 00:51:24 ID:kJMSUOot] ttp://user.chem.tue.nl/jakvijn/downloads.htm この辺とかは?
424 名前:名前は開発中のものです。 mailto:age [2006/02/14(火) 00:51:46 ID:DPfKwksc] sprintfって使えたっけ?devkitadv 自作snprintfで対応しちゃった #あと文字が書いてあるbitmap背景の2本立て
425 名前:384 mailto:sage [2006/02/14(火) 00:59:46 ID:tYPhpHwC] 俺もprintf関数もどき作りました。 全角の文字列を引数として受け取って、 その先頭のアドレスから、内容を4ビット(16進一桁、要するに文字コードの中の一桁) ずつチェックしていき、最終的に文字コードとBGタイル番号をつき合わせて BG一面に出力するようにしました BGを一つ占領しちゃうんであまりよいやり方では無さそうですが
426 名前:名前は開発中のものです。 mailto:sage [2006/02/14(火) 01:49:16 ID:WgJRobF9] >>424-425 自作するよりそっちの方が簡単だろうと思ってな printf関数の仕組みが分からないとも書いてるし もちろんsprintfはstring.hをincludeすれば使えるぞ
427 名前:名前は開発中のものです。 [2006/02/14(火) 18:19:17 ID:KtOq4mfG] スプライトの表示数についてなんですが 最大128個でモード0〜2のVRAMのスプライトキャラクター領域は 32kバイトですよね? 32*32dotで16色のスプライトを扱う場合 下記の計算だと最大64個だと思うんですが それ以上の表示が可能です。複数のエミュで確認したんですが どれも表示できました。 私の計算方法がいけないんでしょうか? それとも実機とは挙動が違うんでしょうか? 32*32dotのスプライトのデータサイズ 4bit(16色)*32dot*32dot=4096bit/8(byte換算)=512byte VRAMのスプライトキャラクター領域 32kbyte=32768byte 16*32dotのスプライトの場合 32768byte(VRAM)/512byte(Sprite)=64個表示可能
428 名前:名前は開発中のものです。 mailto:sage [2006/02/14(火) 18:55:03 ID:WgJRobF9] 画像データ領域(VRAM)とキャラクター領域(OAM)は分離して考えろ >>427 の例で言うと OAMには128個登録できても VRAMには64種類の画像しか収まらない 逆に言うと64種類の画像を128個表示できるということ
429 名前:429 [2006/02/14(火) 19:29:47 ID:KtOq4mfG] なるほど、つまりVRAMにおさまりさえすれば 64*64の画像を128個表示することができると いうことなんですね。
430 名前:424 mailto:age [2006/02/14(火) 21:44:12 ID:oQP7vhex] 自作snpritnf(snprintf_mini)です。良かったらどうぞ 49uper.com:8080/html/img-s/111753.lzh
431 名前:420 mailto:sage [2006/02/15(水) 23:02:19 ID:UMaLkZ5l] ありがとうございます! 正直、よく分からないですが、参考にするか もしくはそのまま使わせて頂きます!
432 名前:名前は開発中のものです。 mailto:sage [2006/02/16(木) 00:00:45 ID:htR/zHvl] コンパイル出来たけど何も表示しまへん。 コンパイル用バッチファイル SET PATH=c:\devkitadv;c:\devkitadv\bin;c:\devkitadv\tools:$PATH; gcc -o main.elf main.c utils.c -mthumb-interwork objcopy -O binary main.elf main.gba どこがいかんのでしょう みたとこ画像データが無いようですが。
433 名前:424 mailto:age [2006/02/16(木) 09:40:13 ID:IJObToHy] うん、文字画像データは入ってないよ あくまでもおいらが作ったsnprintfの実装(snprintf_mini)だから文字列を作るだけです。 main.cはちゃんと作れているかどうか確認している単体テスト用のプログラム なのでdevkitadvのgcc(arm-agb-elf-gcc)じゃなくて普通(?)のgccを使って snprintf実装例を確認してね。 GUIなデバッガがあればどんな感じで処理してるか追っかけられるでしょ #VCだとsnprintfが使えないかも。そのときはsprintfで代用して確認してね 作った文字列をVisualBoyAdvanceで表示するには文字列表示用の処理と文字データを 自分の環境用につくらないと出来ないです。 まず、putcみたいな1文字表示用の関数を作ってみてはどうでしょうか?
434 名前:名前は開発中のものです。 mailto:sage [2006/02/16(木) 09:44:32 ID:zo8+sFWC] ◆◆,,,,_ /⌒; /*' 3 `*ヽーっ /<ワンワン,ツウツウ,スリィスリィ,フォウフォウ ⊂二 。 ゚ ⌒_つ/ ガンガン ズンズン グイグイ 上昇 `、 ⌒_つ / `'ー-‐'''''" / /_/ /// . _____ . `ヽ ,」_ァ'"´ . f'て}. ̄ rY ト、 __ . | r个 √`>‐.k } f゙)ヾ> }l r ''"`ァ'゙ ,ノ、ム'^'ァ'゙ 人.ヒ,ィ゙ ァ弌__,,>'´゙ヽ い, `'<, ,r'^ ,ノ . }⌒'‐\ ,、 ゙'くョr.''"´ い弌-、 \ }. ゝ-、 . `'ー' ゙'ー‐--‐'⌒''''''゙
435 名前:名前は開発中のものです。 mailto:sage [2006/02/16(木) 18:36:32 ID:kz0iIF7u] >>433 これだけヒントを貰ってるのに文字表示すら自分で作れない香具師に 何をアドバイスしてやっても無駄だって。
436 名前:名前は開発中のものです。 mailto:sage [2006/02/16(木) 20:06:45 ID:M6PXBfNk] >>433 親切すぎる。 漏れは呆れてレスする気がしなかったぐらいだってのに。
437 名前:424 mailto:age [2006/02/16(木) 21:32:19 ID:IJObToHy] 確認用に作った文字表示用プログラムです ttp://49uper.com:8080/html/img-s/112125.lzh VCとVisualBoyAdvanceの両方で動作確認できるようにちょっと細工してます このフォントデータは多分ライセンス違反になると思います。 #外見はラスタフォント6x13そのままです。 #文字を表示した状態のスクリーンショットBMPからデータを作りました・・・
438 名前:名前は開発中のものです。 mailto:sage [2006/02/16(木) 22:19:46 ID:M6PXBfNk] 拙作 ttp://gamdev.org/up/img/4680.png
439 名前:名前は開発中のものです。 mailto:sage [2006/02/16(木) 22:21:45 ID:kxrgDS8c] >>438 俺が流用してるフォントと同じのを使ってる・・・気がする 俺は8x8でやってるけど
440 名前:名前は開発中のものです。 mailto:sage [2006/02/16(木) 22:53:00 ID:Jk3f3/1N] >>438 liarsoftさん?
441 名前:424 mailto:age [2006/02/16(木) 23:55:24 ID:IJObToHy] へー、かっこいい フリーのフォントって知らなかったけど調べてみたらいろいろあるんだな とりあえず、FONTX形式にすればいいのだろうか?
442 名前:432 mailto:sage [2006/02/17(金) 16:40:32 ID:x9jBkP1z] サンプルありがとうございます。 私は420=431さんとは別人です、横入りすみません。 フリーのフォント、元GBA研究所のサンプルにあったものを 流用しようと・・問題有りますでしょうか 完全フリーなものが欲しいのですけどそうなるとなかなか ありませんよね。フリーソフトのみとかメールでの通知義務とか。
443 名前:名前は開発中のものです。 mailto:sage [2006/02/17(金) 18:32:26 ID:iAZtWxeh] ttp://khdd.net/kanou/fonts/x11bdfs.html
444 名前:424 mailto:age [2006/02/18(土) 01:08:37 ID:uRwRaCgY] おお、サンクス でもbdfフォーマットの仕様書はadobeの有料開発メンバじゃないと読めないのね・・・ で、探した結果、良さそうなページを発見 ttp://hp.vector.co.jp/authors/VA013241/font/bdf.html あとは日本語文字コードか、やれやれ。
445 名前:名前は開発中のものです。 mailto:sage [2006/02/18(土) 02:27:52 ID:QKtp7HhO] DIRECTSOUNDをDMAで鳴らそうと belogic.com/gba/directsound.shtml を参考にしてるんですが、演奏を止めるためのTM1設定 REG_TM1CNT_L=0x7098; //0xffff-the number of samples to play REG_TM1CNT_H=0xC4; //enable timer1 + irq and cascade from timer 0 のthe number of samples to playの算出式がよくわかりません。 単純にデータサイズというわけではなさそうですが。。。
446 名前:名前は開発中のものです。 mailto:sage [2006/02/18(土) 03:41:17 ID:4ZdB2i2h] データサイズで合ってる cascade from time 0になっているということは timer 0が桁あふれしたときにtimer 1が1つ進むということ timer 0が桁あふれしたとき同時に何が起こっているのか考えてみればそのうち分かる 頑張れ
447 名前:名前は開発中のものです。 mailto:sage [2006/02/18(土) 16:03:02 ID:1rrcgcm5] >>446 すみません、もう少し教えてください データサイズが0xffffを超える場合はどう設定すればいいのでしょうか?
448 名前:名前は開発中のものです。 mailto:sage [2006/02/18(土) 17:05:13 ID:ZbScaNGm] フリーの日本語ビットマップフォント一覧 ttp://kappa.allnet.ne.jp/kanou/fonts/x11bdfs.html
449 名前:名前は開発中のものです。 mailto:sage [2006/02/18(土) 18:51:03 ID:iQRmZRdR] 5つほど上に既に貼ってあるジャマイカ
450 名前:名前は開発中のものです。 mailto:sage [2006/02/18(土) 21:15:59 ID:yUcx3isO] 研究所が未だに復活しない件。 猫でもみたいなTips集的な使い方をしていたので、他所を探すのが以外に大変。
451 名前:名前は開発中のものです。 mailto:sage [2006/02/18(土) 22:05:41 ID:q2PjLLP+] 儂はウェブアーカイブで拾ってきたよ。zipファイルは保存してないからサンプルは取れないけど。 ヘッダとソースは見られる。makefileが無いのが難点。
452 名前:名前は開発中のものです。 mailto:sage [2006/02/19(日) 01:10:26 ID:prU8DMPB] >>447 どうしてもtimerを使って止めたいならtimer 2を使えばいい お勧めしないが。。。 // (0xXXXX * 0xYYYY = datasize) REG_TM1CNT_L=0x10000 - 0xXXXX; REG_TM1CNT_H=0x84; //enable timer1 + cascade from timer 0 REG_TM1CNT_L=0x10000 - 0xYYYY; REG_TM1CNT_H=0xC4; //enable timer2 + irq and cascade from timer 1 REG_IE=0x20; //enable irq for timer 2 REG_IME=1; //master enable interrupts
453 名前:452 mailto:sage [2006/02/19(日) 01:11:38 ID:prU8DMPB] 間違ったスマソ // (0xXXXX * 0xYYYY = datasize) REG_TM1CNT_L=0x10000 - 0xXXXX; REG_TM1CNT_H=0x84; //enable timer1 + cascade from timer 0 REG_TM2CNT_L=0x10000 - 0xYYYY; REG_TM2CNT_H=0xC4; //enable timer2 + irq and cascade from timer 1 REG_IE=0x20; //enable irq for timer 2 REG_IME=1; //master enable interrupts
454 名前:名前は開発中のものです。 mailto:sage [2006/02/19(日) 02:00:16 ID:m3SmeD2S] >>452 了解しました。トライしてみます。 あと、timerを使わずに止める方法があるのならご教授プリーズ。
455 名前:名前は開発中のものです。 mailto:sage [2006/02/19(日) 04:25:56 ID:iq15VETn] チョット違うことしてるのかな?一応 つdirecsoundサンプル gamdev.org/up/img/4705.zip
456 名前:名前は開発中のものです。 mailto:sage [2006/02/19(日) 10:19:03 ID:QSXlPkGt] >>455 BeLogicのサンプルみたく別タイマーで止めないとダメだとばかり思い込んでました。 このスレよく読み直したら過去にヒントが出てたんですね。。。orz
457 名前:名前は開発中のものです。 mailto:sage [2006/02/19(日) 21:44:01 ID:oTR8sHnf] DarkFaderのMylibとかNylibとか入れてみようと思ってやってみたがダメだ…。 やり方が悪いのかサンプルmakeできなかった。 ライブラリ自体はすごそうだ。使ってる人いる?
458 名前:名前は開発中のものです。 mailto:sage [2006/02/20(月) 03:17:45 ID:B+Dm9jGk] NyLibは任天堂の純正ライブラリそのものだから使わないほうがいいぞ MyLibはゴミ
459 名前:名前は開発中のものです。 mailto:sage [2006/02/20(月) 21:23:56 ID:bbMb17ur] 1Dモードでスプライトの属性を指定します。 attr2(ゼロが最初)のキャラクタ番号(0-9ビットまで)に指定の番号をセットすると正しく表示されません。 2倍の値をセットすると正しく指定できました。 これってあってる? ゼロビット目がキャラクタ番号じゃないんじゃ、とか思います。 1Dのスプライトについて書かれているページとかありませんか?
460 名前:名前は開発中のものです。 mailto:sage [2006/02/20(月) 21:39:23 ID:LHhnamaS] マジですか。コンパイルもようできんからgcc自分で持ってきてarm-elfで作ったりしたんだがなぁ。 最低限eloistのgba.hとgbatekとかのドキュメント、あとは自分でがんばるかね。
461 名前:名前は開発中のものです。 mailto:sage [2006/02/20(月) 22:06:12 ID:LHhnamaS] >>459 スプライトが256色設定の場合は2倍で指定するらしいからそのせいではないかな?
462 名前:名前は開発中のものです。 mailto:sage [2006/02/21(火) 00:33:12 ID:zwimk+yf] >>459 気になるならVBAのTile Viewerでタイル番号とアドレスを確認すれ
463 名前:名前は開発中のものです。 [2006/02/21(火) 05:42:06 ID:uuzcpC5q] ボタンを押した瞬間を取得したいんですが 下記のソースがうまく動作しません。 何がいけないかわかりますか? //ボタンに関する列挙型 typedef enum{UP,DOWN,RIGHT,LEFT,A,B,L,R,START,SELECT} KEY; //スタティックグローバル変数 static u32 sgKey; /* キーセンス */ static u32 sgKeyhit; /* キー押した瞬間 */ //メインループの頭でボタンの状態を一括取得 void UpdateKeySense(void) { static u32 keyold = 0; sgKey = (u32)(*KEYS); sgKeyhit = sgKey & (~keyold); keyold = sgKey; } //特定のキーが今押されたかを調べる u8 KeyHit(KEY key){ switch(key){ case A: if(!(sgKeyhit & KEY_A)) return 1; else return 0; case B: if(!(sgKeyhit & KEY_B)) return 1; else return 0; } return 0; }
464 名前:名前は開発中のものです。 mailto:sage [2006/02/21(火) 07:28:21 ID:GiHvck/8] 書き込みできるかテスト
465 名前:名前は開発中のものです。 mailto:sage [2006/02/21(火) 08:22:43 ID:BSGVJJY5] >>463 それぞれの変数の値を出力してみろ
466 名前:名前は開発中のものです。 [2006/02/25(土) 15:23:38 ID:LRNrnoNa] ある構造体に汎用的な配列を用意し、状況によって汎用配列部分に 別の構造体をキャストすることでいろいろ使い分けられるように したいんですが下記(分けて書き込みます)のようなソースがうまく動きません。 「w->cnt = 5;」等の部分で値を代入しているのに正しい値がはいりません。 VC++では正しく代入できるようです。なぜだかわかりますか? 仕様なんでしょうか?
467 名前:名前は開発中のものです。 [2006/02/25(土) 15:24:22 ID:LRNrnoNa] typedef struct{ u8use;/* 動作フラグ */ u16no;/* 自分自身のタスク番号 */ u8 phase;/* 動作フェーズ */ u8wrk[48];/* 汎用ワークエリア */ void*entryfunc;/* 実行関数 */ }TSKWRK; TSKWRKts[10];/* 実体 */ /* 構造体 */ typedef struct{ u16 cnt; u8 x; u8 y; u32 tmp; }TEST; //メイン処理 int main(void) { TSKWRK *tp = &ts[0]; TEST *w = (TEST*)&tp->wrk[0]; w->cnt = 5; w->x = 4; w->y = 9; w->tmp = 1; }
468 名前:名前は開発中のものです。 [2006/02/25(土) 15:25:34 ID:LRNrnoNa] 変数の型と変数名がつながっているのは書き込み時に つながってしまったもので実際には正しく記述しています。
469 名前:名前は開発中のものです。 mailto:sage [2006/02/25(土) 16:32:04 ID:ChwfFfDn] >>466-467 アライメントの勉強をしてみよう。 www.google.co.jp/search?q=%E3%83%A1%E3%83%A2%E3%83%AA+%E3%82%A2%E3%83%A9%E3%82%A4%E3%83%A1%E3%83%B3%E3%83%88 この場合は u8 のアライメントしか持っていない wrk に u16 としてアクセスしていることが原因。 GBA の CPU である ARM ではアライメント違反した書き込みはできない。 VC++ で正しく動作するように見えるのは CPU が違うから。 x86 系ではアライメント違反した書き込みはパフォーマンスが落ちるだけ。
470 名前:424 mailto:age [2006/02/25(土) 17:25:32 ID:T5T+YA0I] こういう使い方をしたいときはunionを使うんだっけ? 使ったことないけど
471 名前:名前は開発中のものです。 mailto:sage [2006/02/25(土) 17:28:03 ID:JLoubNl/] >>466 >>469 を踏まえてこれでもう一度テストしれ typedef struct{ u8 use;/* 動作フラグ */ u16 no;/* 自分自身のタスク番号 */ u8 phase;/* 動作フェーズ */ u8 wrk[48];/* 汎用ワークエリア */ void *entryfunc;/* 実行関数 */ } __attribute__ ((packed)) TSKWRK; typedef struct{ u16 cnt; u8 x; u8 y; u32 tmp; } __attribute__ ((packed)) TEST;