[過去ログ]
ゲームボーイアドバンス(GBA)非公式開発 Part2 (1002レス)
ゲームボーイアドバンス(GBA)非公式開発 Part2 http://mevius.5ch.net/test/read.cgi/gamedev/1099119005/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
721: 名前は開発中のものです。 [sage] 2008/03/16(日) 12:05:58 ID:0SBCpDyI >>720 スレ違いだが回答。 C言語とC++のconst修飾子の動作の違いのために起きる問題。 const int hoge1 = 1 ; がC言語では変数として定義されるのに対し、C++では定数として定義される。 このため、 const int hoge2 = hoge1 ; がエラーとなる(初期値つき変数に定数以外を指定したから)。 結論:C++でなくC言語で書くなら、定数はマクロやenumで定義しましょう。 余談だが、const修飾子には他にも違いがあり、グローバル変数をconst修飾した場合に、 C言語ではデフォルトで外部リンケージ(要するにextern)になるのに対し、 C++では内部リンケージ(要するにstatic)となる。 http://mevius.5ch.net/test/read.cgi/gamedev/1099119005/721
722: 名前は開発中のものです。 [sage] 2008/03/16(日) 12:18:17 ID:0SBCpDyI >>721 スレ違うというか板違いでしたね。 あと、一応補足。 当たり前だけどC++でグローバルな const int hoge0 = 1; static const int hoge1 = 1; extern const int hoge2 = 1; を定義すると、hoge0とhoge1は定数、hoge2は変数となる。 http://mevius.5ch.net/test/read.cgi/gamedev/1099119005/722
723: 名前は開発中のものです。 [sage] 2008/03/16(日) 15:31:08 ID:3fassPpA >>722 変数と定数と、どう言い分けてるの? 挙げられた例だと全部定数式として使えるはずだよ。 http://mevius.5ch.net/test/read.cgi/gamedev/1099119005/723
724: 名前は開発中のものです。 [sage] 2008/03/17(月) 02:10:37 ID:xMktvNUH >>723 スマン。内容に不足があった。 ×hoge2は変数となる ○hoge2は定数であると同時に外部リンケージの変数も定義される http://mevius.5ch.net/test/read.cgi/gamedev/1099119005/724
725: 720 [sage] 2008/03/17(月) 03:34:16 ID:C1jKoyjP なるほど、そもそもCとC++じゃconstの仕様が違うのですね。 良く分かりました。 板違いの質問に答えて頂き、ありがとうございました。 http://mevius.5ch.net/test/read.cgi/gamedev/1099119005/725
726: 名前は開発中のものです。 [sage] 2008/03/17(月) 10:01:08 ID:7F2zgz+N >>724 やっぱり変数と定数の意味に無理があるだろ。どこで そんなネタ仕込まれたんだ? 722 の3つは全部 const int 型変数の定義。 const int 型変数が定数式で初期化されていれば、 それもまた定数式となる。 リンケージはそれぞれ決まっているし、外部リンケージ じゃなければ初期化が必須だったりするけど、それらは 定数式として使えるかどうかとは別の話。 http://mevius.5ch.net/test/read.cgi/gamedev/1099119005/726
727: 名前は開発中のものです。 [sage] 2008/03/24(月) 05:51:58 ID:UCF17QKn GB音源(例えばチャンネル1)でエンベロープをハードウェアでは無く自力でやりたい場合、 SOUND1CNT_Hのbit12-15をいじって、 SOUND1CNT_Xのbit15を立てて初期化するしかないのでしょうか? これだと発音中の波形の状態も最初に戻ってしまうらしく、 音が自然にならないので困っています。 何か良い方法をご存知の方はいらっしゃらないでしょうか? http://mevius.5ch.net/test/read.cgi/gamedev/1099119005/727
728: 名前は開発中のものです。 [sage] 2008/03/24(月) 08:16:50 ID:bI8PsKud その方法しか無いがチャンネル1と2は必ず発音がリセットされるので実質使えない チャンネル3はリセットされないからソフト制御可能 http://mevius.5ch.net/test/read.cgi/gamedev/1099119005/728
729: 名前は開発中のものです。 [sage] 2008/03/24(月) 13:22:21 ID:o6pWhQxB GBAのスペックに サウンド:アナログ(パルス波2ch+波形メモリ1ch+ノイズ1chの音源、従来機と同様)+デジタル(PCM)2ch ってあるけどこれと同時発音数は別の話だよね もっと沢山鳴らしてるようなメガデモはあるし、実際は何音までなんでしょ http://mevius.5ch.net/test/read.cgi/gamedev/1099119005/729
730: 名前は開発中のものです。 [sage] 2008/03/24(月) 16:23:44 ID:bI8PsKud それで全部だけど? http://mevius.5ch.net/test/read.cgi/gamedev/1099119005/730
731: 名前は開発中のものです。 [sage] 2008/03/24(月) 18:13:20 ID:o6pWhQxB では同じトラック三つコピペして全部違うPCMにしても 音切れがないのはどういう仕組み? http://mevius.5ch.net/test/read.cgi/gamedev/1099119005/731
732: 名前は開発中のものです。 [sage] 2008/03/24(月) 18:22:44 ID:+9oLoWUN >>731 複数の音をリアルタイムに合成すればいいんじゃないの? http://mevius.5ch.net/test/read.cgi/gamedev/1099119005/732
733: 名前は開発中のものです。 [sage] 2008/03/24(月) 18:22:59 ID:bI8PsKud 自分でPCMと書いてるじゃん・・・ http://mevius.5ch.net/test/read.cgi/gamedev/1099119005/733
734: 名前は開発中のものです。 [sage] 2008/03/24(月) 18:32:15 ID:o6pWhQxB デジタル(PCM)2chって書いてあるけど 合成すればいいってんなら何音まで? http://mevius.5ch.net/test/read.cgi/gamedev/1099119005/734
735: 名前は開発中のものです。 [sage] 2008/03/24(月) 21:01:23 ID:+9oLoWUN >>734 好きなだけ重ねればいいんじゃないかな。 あとは処理時間を見て4音や8音などに制限していくとか。 「GBA PCM 合成」でググってみるといいかもよ。 http://mevius.5ch.net/test/read.cgi/gamedev/1099119005/735
736: 727 [sage] 2008/03/25(火) 03:27:18 ID:XMS5LhkT >728 うへぇそうなんですかorz レスありがとうございます。 こんなキッツイ制限があるのにGBのゲームには一杯名曲があるというのが信じられません。 というかFCよりもキツイですねこれは。 FCミニとか、エミュレーターとかも結構苦労して再現してそうですね。 http://mevius.5ch.net/test/read.cgi/gamedev/1099119005/736
737: 名前は開発中のものです。 [] 2008/03/25(火) 21:01:25 ID:cUljzw0d Raylight Studios - Resident Evil GBA + Bonus http://jp.youtube.com/watch?v=DBHNtTNPzV0 やっぱ出なかったのは容量の問題かな http://mevius.5ch.net/test/read.cgi/gamedev/1099119005/737
738: 名前は開発中のものです。 [sage] 2008/03/25(火) 22:32:13 ID:DSvlIXZK すげえな http://mevius.5ch.net/test/read.cgi/gamedev/1099119005/738
739: 名前は開発中のものです。 [] 2008/04/04(金) 05:56:12 ID:hXz7vhFd GBAよりスーファミの方が開発意欲がそそられる http://mevius.5ch.net/test/read.cgi/gamedev/1099119005/739
740: 名前は開発中のものです。 [sage] 2008/04/27(日) 02:28:18 ID:BegmYBqI devkitProを使ってみようかと思ってるのですが、 コレを使ってGBAソフトを作ってネットで配布する場合、 ソースも配布可能にしなきゃいけないのでしょうか? http://mevius.5ch.net/test/read.cgi/gamedev/1099119005/740
741: 名前は開発中のものです。 [sage] 2008/04/27(日) 09:09:17 ID:gOa+IOAb ライブラリを改変しなければ配布しなくてもよかったと思います。 http://mevius.5ch.net/test/read.cgi/gamedev/1099119005/741
742: 名前は開発中のものです。 [sage] 2008/04/27(日) 14:36:38 ID:gA0/oGVB >>740 ソースクレクレ厨が出てきたら、改変して売りつける悪質な業者だと思ったほうがいいよ 配布には十分注意しる まぁ、GBAだからもう居ないと思うけどね・・・ http://mevius.5ch.net/test/read.cgi/gamedev/1099119005/742
743: 740 [sage] 2008/04/28(月) 03:52:19 ID:fpXnuQEH >>741 そのまま組み込めば、配布しなくてもOKって事ですか、分かりました。 教えていただきありがとうございます。 >>742 配布しなくちゃいけなくなった場合に、そういう輩も出てくるんじゃないかと 懸念していたのですが、どうやら大丈夫みたいですね。 http://mevius.5ch.net/test/read.cgi/gamedev/1099119005/743
744: 名前は開発中のものです。 [sage] 2008/06/22(日) 12:06:27 ID:/JClv6am >>50 サイト消えてる・・・ http://mevius.5ch.net/test/read.cgi/gamedev/1099119005/744
745: 名前は開発中のものです。 [sage] 2008/07/22(火) 08:08:44 ID:UkA+4UPJ 海外ソフトの和訳ハックとか作れますか? もし可能性が少しでもあるなら頑張ってみようかなと・・・ 予備知識ゼロだけど・・・orz http://mevius.5ch.net/test/read.cgi/gamedev/1099119005/745
746: 名前は開発中のものです。 [sage] 2008/10/15(水) 19:46:04 ID:BTWkaFv3 GB伊次郎ってどっかで手に入らないものだろうか… http://mevius.5ch.net/test/read.cgi/gamedev/1099119005/746
747: 名前は開発中のものです。 [sage] 2008/10/20(月) 09:28:59 ID:udn3EoyF >>746 GBXchangerと任天堂パワーのGB用カートリッジがあれば、似たようなことができると思う http://mevius.5ch.net/test/read.cgi/gamedev/1099119005/747
748: 名前は開発中のものです。 [sage] 2008/10/21(火) 00:04:47 ID:Izk3rpBS それが手に入れば苦労はしないっての… http://mevius.5ch.net/test/read.cgi/gamedev/1099119005/748
749: 名前は開発中のものです。 [sage] 2008/10/21(火) 09:46:42 ID:weSdSC9r この手のものは時期逃すと手に入りにくいからなあ・・・ 数年前なら、数少ないが売っている店はあった あとは今あるとしたらオークション http://mevius.5ch.net/test/read.cgi/gamedev/1099119005/749
750: 名前は開発中のものです。 [sage] 2008/10/22(水) 12:38:33 ID:nJuXMnla ヤフオクで1点だけ見かけた http://mevius.5ch.net/test/read.cgi/gamedev/1099119005/750
751: 名前は開発中のものです。 [sage] 2008/11/01(土) 00:24:39 ID:Tvk5Kt8k GBのマジコンって今でも需要あるんだね KOMAKUYAはもうスターターキット出さないのかな http://mevius.5ch.net/test/read.cgi/gamedev/1099119005/751
752: 名前は開発中のものです。 [sage] 2008/11/16(日) 05:12:20 ID:yRHdgsS9 void line(hword Xa, hword Ya, hword Xb, hword Yb, hword color) { hword x, y; int j = Ya; int e = 0; for(x = Xa; x < Xb; x++) { draw_point(x, j, color); e = e + (Yb-Ya); if((Xb-Xa)< e) { e = e - (Xb - Xa); j = j + 1; } } } このメソッドがどのように動いて斜線を引いているか分かり易く教えていただけないでしょうか? draw_pointメソッドは指定された(x,j)座標にcolorで指定した色のドットを表示するメソッドです。 斜線の範囲は(Xa, Ya)から(Xb, Yb)です。 http://mevius.5ch.net/test/read.cgi/gamedev/1099119005/752
753: 名前は開発中のものです。 [sage] 2008/11/16(日) 12:27:42 ID:yRHdgsS9 void line(hword Xa, hword Ya, hword Xb, hword Yb, hword color) { hword x, y; int j = Ya; int e = 0; for(x = Xa; x < Xb; x++) { draw_point(x, j, color); e = e + (Yb-Ya); if((Xb-Xa)< e) { e = e - (Xb - Xa); j = j + 1; } } } このメソッドがどのように動いて斜線を引いているか分かり易く教えていただけないでしょうか? draw_pointメソッドは指定された(x,j)座標にcolorで指定した色のドットを表示するメソッドです。 斜線の範囲は(Xa, Ya)から(Xb, Yb)です。 http://mevius.5ch.net/test/read.cgi/gamedev/1099119005/753
754: 名前は開発中のものです。 [sage] 2008/11/16(日) 18:17:08 ID:9y44eiNe ブレゼンハムでググれ こんなところで聞くよりいい解説がどこかにある http://mevius.5ch.net/test/read.cgi/gamedev/1099119005/754
755: 名前は開発中のものです。 [sage] 2008/11/17(月) 12:01:38 ID:M2eDLwwk デジタル微分解析(DDA)でググ・・・ったら余計わからんくて俺が吹いた http://mevius.5ch.net/test/read.cgi/gamedev/1099119005/755
756: 名前は開発中のものです。 [sage] 2008/11/17(月) 22:21:48 ID:0FeRBUS+ 厳密に考えるとやっかいなところは多々あるが 2Dで直線や多角形描くぐらいならただの差分方程式だろ http://mevius.5ch.net/test/read.cgi/gamedev/1099119005/756
757: 名前は開発中のものです。 [sage] 2008/11/18(火) 22:54:21 ID:35X+8Y/i GBAで1〜10までのランダム値を取ろうと思ったらどうすればよいのでしょうか? rand()は使えませんよね http://mevius.5ch.net/test/read.cgi/gamedev/1099119005/757
758: 名前は開発中のものです。 [sage] 2008/11/19(水) 03:13:42 ID:iECaJTAb >>757 rand() % 10 + 1 …ってスレ違いだね。 プログラミング初心者向けのスレに行くといいよ。 http://mevius.5ch.net/test/read.cgi/gamedev/1099119005/758
759: 名前は開発中のものです。 [sage] 2008/12/03(水) 21:17:08 ID:ZUsaZJd3 Homebrew BOF ゲーム機など開発環境が公開されていないハード、及びマイナーハード開発者の集いを企画しています。 日時:コミケ(12/28-30)前後 当日なら17-19時くらい + 宴会 場所:東京都区内 費用:会場実費(0-数百円?) たぶん日本全体で100人もいないんじゃないかと思いますが、 コミケで上京する人もいるでしょうからその時期を予定しています。 http://www27.atwiki.jp/homebrew/ マルチすまん http://mevius.5ch.net/test/read.cgi/gamedev/1099119005/759
760: 名前は開発中のものです。 [] 2009/01/09(金) 21:44:01 ID:JmGx4bkn age http://mevius.5ch.net/test/read.cgi/gamedev/1099119005/760
761: 名前は開発中のものです。 [] 2009/01/09(金) 21:54:46 ID:JmGx4bkn おtingting http://mevius.5ch.net/test/read.cgi/gamedev/1099119005/761
762: 名前は開発中のものです。 [] 2009/01/09(金) 22:02:00 ID:JmGx4bkn マジキチ動画(ββ) http://mevius.5ch.net/test/read.cgi/gamedev/1099119005/762
763: 名前は開発中のものです。 [sage] 2009/01/17(土) 21:22:00 ID:/uotE80P GBAでMP3を再生する方法を教えてください http://mevius.5ch.net/test/read.cgi/gamedev/1099119005/763
764: 名前は開発中のものです。 [sage] 2009/01/18(日) 02:54:34 ID:eSDINTKa 市販プレーヤー買った方が手間取らない http://mevius.5ch.net/test/read.cgi/gamedev/1099119005/764
765: 名前は開発中のものです。 [sage] 2009/01/18(日) 05:28:35 ID:vCC7QsmR プレイやん http://mevius.5ch.net/test/read.cgi/gamedev/1099119005/765
766: 名前は開発中のものです。 [sage] 2009/01/18(日) 13:23:24 ID:F84aYW6Z サウンドプレイヤーを自作したいと思っています。20曲程入れたいんですが何らかの形で圧縮して組み込みことが必要だと思うのですがどうしたらいいですか。 http://mevius.5ch.net/test/read.cgi/gamedev/1099119005/766
767: 名前は開発中のものです。 [sage] 2009/01/18(日) 14:23:20 ID:+OkZIPbY PCでそのプログラムは作ってみた? http://mevius.5ch.net/test/read.cgi/gamedev/1099119005/767
768: 名前は開発中のものです。 [sage] 2009/01/18(日) 14:26:28 ID:F84aYW6Z PCではDXライブラリを使えばMP3の再生ができるので作れることが分かっています。 http://mevius.5ch.net/test/read.cgi/gamedev/1099119005/768
769: 名前は開発中のものです。 [sage] 2009/01/19(月) 01:08:21 ID:4HQkQlpM じゃ、DXライブラリ使わずにmp3再生できるように頑張れ http://mevius.5ch.net/test/read.cgi/gamedev/1099119005/769
770: 名前は開発中のものです。 [] 2009/02/06(金) 17:43:16 ID:6cgXmSA9 じゃあ脳内再生しかないな http://mevius.5ch.net/test/read.cgi/gamedev/1099119005/770
771: 名前は開発中のものです。 [sage] 2009/02/06(金) 19:56:14 ID:BaBBx5bc GBAの性能じゃmp3プレイヤーは厳しくないか? http://mevius.5ch.net/test/read.cgi/gamedev/1099119005/771
772: 名前は開発中のものです。 [sage] 2009/02/15(日) 02:31:54 ID:boVc3Mdt DMA1&2とTIMER0&1を使って、ダイレクトサウンドA&Bで同時に音を鳴らしたいのですが 片方しか音が鳴りません。 VBAのIOViewerでFIFOが変化しているのは確認したのですが 何も音がしない理由としては、どんな事が考えられますか? SGCNT0_H(0x4000082) SGCNT1(0x4000084) の音量他もちゃんと値が入ってます。 http://mevius.5ch.net/test/read.cgi/gamedev/1099119005/772
773: 名前は開発中のものです。 [sage] 2009/02/15(日) 05:26:13 ID:PZvLdBG/ 本当に値が正しいなら あとはVBA側でDirect Sound A,Bのどちらかがオフになってる位しか無いな http://mevius.5ch.net/test/read.cgi/gamedev/1099119005/773
774: 772 [sage] 2009/02/15(日) 06:41:13 ID:boVc3Mdt レスありがとうございます。 VBAの設定も間違いなかったみたいです。 あれから色々試してました。 実は多重再生の為に、FIFOにコピーするバッファはサウンドデータと別にしていて、 TIMERのハンドラ内で手動でDMAを使ってFIFOにコピーをしてました。 鳴らないのはダイレクトサウンドAの方(BGM用)で、 ダイレクトサウンドB(効果音用)が鳴った時に何故かAも鳴ったので 調べてみると、効果音用のTIMER1が動くと鳴ると解りました。 とりあえず、AとBのFIFOコピーにどちらもTIMER1を使用することで一応解決しました。 タイマーを分けると鳴らなくなる理由がわからないままですが。 もしやDSOUNDCTRL(0x4000082)以外にも、 TIMERとダイレクトサウンドを関連付けるレジスタがあるのでしょうか? http://mevius.5ch.net/test/read.cgi/gamedev/1099119005/774
775: 772 [sage] 2009/02/15(日) 08:59:40 ID:boVc3Mdt 原因が解りました…。 DSOUNDCTRLの初期化にor演算子しか使っていなかったこと (タイマーを指定するのに、DSOUNDCTRL |= DSOUNDCTRL_ATIMER(0)としかやってませんでした) 自分の使っているgba_sound.hのDSOUNDCTRL_ARESETが 0x0400と定義されていた事(実際は0x0800。0x0400はタイマーの指定に使用) が原因でした…。 お騒がせしてしまってすみませんでした。 http://mevius.5ch.net/test/read.cgi/gamedev/1099119005/775
776: 名前は開発中のものです。 [sage] 2009/02/20(金) 20:47:15 ID:Oxql6lkt GBAとかファミコンは開発環境が強力じゃないから そういう所でハマっちゃうと、抜けるの大変だよね http://mevius.5ch.net/test/read.cgi/gamedev/1099119005/776
777: 名前は開発中のものです。 [sage] 2009/03/10(火) 20:46:38 ID:yBs8MUSr GBAではないですが、GBCの板が見当たらなかったので試しに書いてみます。 ttp://nagasaki.cool.ne.jp/xor-a/ ユーザーアプリがロッピーとかで配信出来たらなぁと思うのは愚痴ですが。 http://mevius.5ch.net/test/read.cgi/gamedev/1099119005/777
778: 名前は開発中のものです。 [sage] 2009/03/20(金) 18:11:44 ID:RqzCAhzX GBCの板は昔あったんだが、過疎すぎて落ちちゃった VCとかに配信できたら面白そうだけどね>自作ゲーム http://mevius.5ch.net/test/read.cgi/gamedev/1099119005/778
779: 名前は開発中のものです。 [sage] 2009/03/31(火) 03:30:28 ID:LhzYAQbh 今まではメインループの始めにV-Blankを待って、それから各処理を行っていたのですが、 開発が進むにつれてV-Blank中だけじゃ処理が間に合わなくなってしまいました。 そこでゲーム処理と描画関係の処理にわけて while( V_COUNT != 0 ){} GameProc() ; // ゲーム処理 while( V_COUNT < 160) {} GraphicProc() ; // 描画関係の処理 と、二つに分けてやる事にしました。 表面上はうまく動いているように見えるのですが、 こういう事をやってしまっても大丈夫なのでしょうか? http://mevius.5ch.net/test/read.cgi/gamedev/1099119005/779
780: 名前は開発中のものです。 [sage] 2009/03/31(火) 12:58:22 ID:WlDU8zsj 分けること自体は問題ないけど ゲーム処理でV_COUNT != 0を待つ意味は無いよ 描画が終わったらすぐに処理を始めていい while( V_COUNT < 160) ; GraphicProc(); GameProc(); http://mevius.5ch.net/test/read.cgi/gamedev/1099119005/780
781: 779 [sage] 2009/04/01(水) 03:36:13 ID:2baejuDU >780 おおなるほど。 確かにそうした方が処理時間をより多くさけますね。 レスありがとうございます。 http://mevius.5ch.net/test/read.cgi/gamedev/1099119005/781
782: 名前は開発中のものです。 [sage] 2009/04/23(木) 20:20:06 ID:jG2DENZH ここってまだ人いますかね…… 自分で作ったプログラムをPogoShellから起動する場合,「終了してPogoShellに戻る」 という機能をつけると便利だと思うんですが,やりかたがさっぱりわかりません. どこで調べればいいのかご存知のかた,教えてくださいませ. http://mevius.5ch.net/test/read.cgi/gamedev/1099119005/782
783: 名前は開発中のものです。 [sage] 2009/04/23(木) 23:16:10 ID:GrL4nFHE Pogoshell resetでググってみた。 ttp://boards.pocketheaven.com/viewtopic.php?p=52627&sid=a2b1ee533e1a9b52029d305b2c611034 になんか書いてあるような気がする。 あとは自分でガンバレ http://mevius.5ch.net/test/read.cgi/gamedev/1099119005/783
784: 名前は開発中のものです。 [sage] 2009/04/24(金) 08:02:45 ID:7kCUCgG4 カートリッジのバンクセレクタを元に戻してswi 1, swi 0の順でリセットかければおk Visoly系(F2A)とEZ/XG-Flashはlibpogoのrestart.Sを使えばいいよ http://mevius.5ch.net/test/read.cgi/gamedev/1099119005/784
785: 名前は開発中のものです。 [sage] 2009/04/24(金) 08:52:53 ID:oh9KlDGe おお,回答ありがとうございます. リブート自体はbiosコールでできるのかなとは思ってたんですが, バンクセレクタ云々というのが俺がよくわかってない点のようですね. F2Aを使ってるので,とりあえずrestart.sを見てみます. 実はC言語しか知らないので時間がかかりそうですが. http://mevius.5ch.net/test/read.cgi/gamedev/1099119005/785
786: 名前は開発中のものです。 [sage] 2009/08/16(日) 22:24:12 ID:DZlUccKL 圧縮した音楽ファイルはどうやって再生すればいいのでしょうか。wavじゃサイズ大きすぎる。 http://mevius.5ch.net/test/read.cgi/gamedev/1099119005/786
787: 名前は開発中のものです。 [sage] 2009/08/17(月) 12:45:32 ID:SfTpCTHN 何で圧縮した音楽ファイル?まずはそこからだけど。 mp3は再生できないよ。 http://mevius.5ch.net/test/read.cgi/gamedev/1099119005/787
788: 名前は開発中のものです。 [sage] 2009/08/17(月) 17:31:39 ID:SHxtq19H そもそも、サンプリングされた音の再生がGBAじゃ無理だと思うんだが スペックが足りない http://mevius.5ch.net/test/read.cgi/gamedev/1099119005/788
789: 名前は開発中のものです。 [sage] 2009/08/18(火) 04:34:22 ID:GgRqyFMU それはさすがにGBAなめすぎ。 44kHzで16トラック合成出来るくらいのスペックはあるよ。 http://mevius.5ch.net/test/read.cgi/gamedev/1099119005/789
790: 名前は開発中のものです。 [sage] 2009/08/29(土) 13:25:09 ID:ajW9NjPM >>786 > wavじゃサイズ大きすぎる というのはちょっと理解が足りないと思います。 wavやaviは単なる入れ物なので、中身が問題。 多分、PCM(非圧縮)のことを言ってるのですよね? 同じwavでも中身がmp3だったりADPCMだったりするならサイズは小さくなります。 IMA ADPCMなら約1/4になるし、デコード処理も軽いのでオススメ。 また、Windows付属のサウンドレコーダーでデータが作成できるので手軽。 http://wiki.multimedia.cx/index.php?title=Microsoft_IMA_ADPCM http://wiki.multimedia.cx/index.php?title=IMA_ADPCM が参考になります。 wav内での格納形式は前者のURL、デコード処理は後者のURLを参照して作ってください。 データはwav内のブロック単位で処理し、ブロック内でデータは完結します。 デコード処理はURLに書かれている4行の処理が全てです(最適化についても書かれていますが)。 また、sox等のソースも参考になります。 http://mevius.5ch.net/test/read.cgi/gamedev/1099119005/790
791: 名前は開発中のものです。 [sage] 2009/09/18(金) 03:08:25 ID:si+yuBJ2 効果音の周波数って、どれくらいが良いんでしょうか? アクションゲームを作っているのですが、 現在8000kHzで同時再生させる為に自力合成で結構処理が重いです。 http://mevius.5ch.net/test/read.cgi/gamedev/1099119005/791
792: 名前は開発中のものです。 [sage] 2009/09/25(金) 03:10:20 ID:JAA61hM3 77.8MHzがオススメだよ。 http://mevius.5ch.net/test/read.cgi/gamedev/1099119005/792
793: 791 [sage] 2009/09/26(土) 02:31:51 ID:IAonhfHR >>791の8000kHzは8000Hzの間違いでしたw >>792 77.8MHzという事は77800000Hzですか。 8000Hzでヒーコラ言ってるので自分では無理っぽいですね。 http://mevius.5ch.net/test/read.cgi/gamedev/1099119005/793
794: 名前は開発中のものです。 [sage] 2009/09/27(日) 16:50:00 ID:fPKTk+yY >>792 ZIP-FMか! >>793 ネタをネタと(ry http://mevius.5ch.net/test/read.cgi/gamedev/1099119005/794
795: 791 [sage] 2009/09/30(水) 04:44:16 ID:BCNooBfe なん・・・だと? 出来るかわかりませんが市販のゲームを調べてみます。 http://mevius.5ch.net/test/read.cgi/gamedev/1099119005/795
796: 名前は開発中のものです。 [sage] 2009/10/01(木) 00:00:06 ID:NOpZROc8 8kHzくらいで重くなるってことはほとんど無いから なにかやり方間違ってるんじゃないの? DirectSoundからサウンド要求があるたびに割り込んでたりとか http://mevius.5ch.net/test/read.cgi/gamedev/1099119005/796
797: 791 [sage] 2009/10/03(土) 05:07:24 ID:UpJ1HpGL やっぱり8000Hzは低い部類になるって事ですね。 現在は、合成用バッファを1フレームで消費する量の2倍確保して、 前半を再生中なら後半に書き込み、後半を再生中なら前半を書き込む処理を 1フレームに一度呼び出す方法を取っています。 2チャンネル同時再生するとHBlankの数値が30弱くらいの重さです。 やっぱり何かやり方が間違ってそうなので、ソース見直して見ます。 http://mevius.5ch.net/test/read.cgi/gamedev/1099119005/797
798: 名前は開発中のものです。 [sage] 2009/10/03(土) 21:37:39 ID:5IuFgICN 重いというからどれほどかと思ったら2音合成でHBlank30ライン分か。 チューニングしてなければ、それくらいはいくかもね。 軽くポイントだけ。 7884Hzにしろ8121Hzにしろバッファのサイズは4の倍数なのでループを4回分展開出来るな。 10512Hzだと16の倍数になるから、16回展開出来る分更に速いかもしれない。 どっちにしてもDuff's Deviceを使えばいい。 効果音は1フレーム単位のサイズに揃えれば、終了判定は毎フレ1回/チャンネルに抑えられる。 これをやった上でそれ以上速くしたかったら、既成のライブラリを検討した方がいいかもしれないよ。 http://mevius.5ch.net/test/read.cgi/gamedev/1099119005/798
799: 名前は開発中のものです。 [sage] 2009/10/04(日) 23:37:24 ID:vY9mcI2T void mixAudio(); // プロトタイプ宣言 void mixAudio() { ... } // コード があるとして void mixAudio() IWRAM_CODE; IWRAM_CODE void mixAudio() { ... } にして、そのソースを-marmでコンパイルするだけで、おそらく負荷が1/3になる。 手元で軽く組んでみたが馬鹿正直に作って2チャンネル合成でHBlank30弱だったのが IWRAM_CODEにしたら10弱になった。 http://mevius.5ch.net/test/read.cgi/gamedev/1099119005/799
800: 791 [sage] 2009/10/05(月) 04:23:04 ID:6seh3Jx2 >798 ループの展開…?forループを全部べた書きするという事なのか…?と思いつつ、 「Duff's Device」というのを知らなかったのでググって見たのですが、 これは凄いですね。こんな方法は自分では絶対に思いつかないです。 >799 わざわざ検証して頂いてありがとうございます。 IWRAM_CODEという存在は知っていたのですが、 効果音再生よりも重い処理があったら困るので、 これは最後の切り札にしようと思ってました。 http://mevius.5ch.net/test/read.cgi/gamedev/1099119005/800
801: 名前は開発中のものです。 [sage] 2009/10/05(月) 18:42:46 ID:71pb6xEM ループで成り立っている高負荷な処理は、切り札と言わず全てIWRAM_CODEにすればいいよ。 ぶっちゃけループ展開はする必要ない。 俺はPCM合成の他にアニメーション処理や当たり判定をIWRAM_CODEにしてる。 http://mevius.5ch.net/test/read.cgi/gamedev/1099119005/801
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 201 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.015s