[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 2chのread.cgiへ]
Update time : 05/09 11:45 / Filesize : 221 KB / Number-of Response : 833
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

ゲームボーイアドバンス(GBA)非公式開発 Part2



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/


721 名前:名前は開発中のものです。 mailto: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)となる。

722 名前:名前は開発中のものです。 mailto: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は変数となる。

723 名前:名前は開発中のものです。 mailto:sage [2008/03/16(日) 15:31:08 ID:3fassPpA]
>>722
変数と定数と、どう言い分けてるの?
挙げられた例だと全部定数式として使えるはずだよ。

724 名前:名前は開発中のものです。 mailto:sage [2008/03/17(月) 02:10:37 ID:xMktvNUH]
>>723
スマン。内容に不足があった。

×hoge2は変数となる
○hoge2は定数であると同時に外部リンケージの変数も定義される

725 名前:720 mailto:sage [2008/03/17(月) 03:34:16 ID:C1jKoyjP]
なるほど、そもそもCとC++じゃconstの仕様が違うのですね。
良く分かりました。
板違いの質問に答えて頂き、ありがとうございました。


726 名前:名前は開発中のものです。 mailto:sage [2008/03/17(月) 10:01:08 ID:7F2zgz+N]
>>724
やっぱり変数と定数の意味に無理があるだろ。どこで
そんなネタ仕込まれたんだ?

722 の3つは全部 const int 型変数の定義。
const int 型変数が定数式で初期化されていれば、
それもまた定数式となる。

リンケージはそれぞれ決まっているし、外部リンケージ
じゃなければ初期化が必須だったりするけど、それらは
定数式として使えるかどうかとは別の話。

727 名前:名前は開発中のものです。 mailto:sage [2008/03/24(月) 05:51:58 ID:UCF17QKn]
GB音源(例えばチャンネル1)でエンベロープをハードウェアでは無く自力でやりたい場合、
SOUND1CNT_Hのbit12-15をいじって、
SOUND1CNT_Xのbit15を立てて初期化するしかないのでしょうか?
これだと発音中の波形の状態も最初に戻ってしまうらしく、
音が自然にならないので困っています。
何か良い方法をご存知の方はいらっしゃらないでしょうか?


728 名前:名前は開発中のものです。 mailto:sage [2008/03/24(月) 08:16:50 ID:bI8PsKud]
その方法しか無いがチャンネル1と2は必ず発音がリセットされるので実質使えない
チャンネル3はリセットされないからソフト制御可能

729 名前:名前は開発中のものです。 mailto:sage [2008/03/24(月) 13:22:21 ID:o6pWhQxB]
GBAのスペックに
サウンド:アナログ(パルス波2ch+波形メモリ1ch+ノイズ1chの音源、従来機と同様)+デジタル(PCM)2ch
ってあるけどこれと同時発音数は別の話だよね
もっと沢山鳴らしてるようなメガデモはあるし、実際は何音までなんでしょ



730 名前:名前は開発中のものです。 mailto:sage [2008/03/24(月) 16:23:44 ID:bI8PsKud]
それで全部だけど?

731 名前:名前は開発中のものです。 mailto:sage [2008/03/24(月) 18:13:20 ID:o6pWhQxB]
では同じトラック三つコピペして全部違うPCMにしても
音切れがないのはどういう仕組み?

732 名前:名前は開発中のものです。 mailto:sage [2008/03/24(月) 18:22:44 ID:+9oLoWUN]
>>731
複数の音をリアルタイムに合成すればいいんじゃないの?


733 名前:名前は開発中のものです。 mailto:sage [2008/03/24(月) 18:22:59 ID:bI8PsKud]
自分でPCMと書いてるじゃん・・・

734 名前:名前は開発中のものです。 mailto:sage [2008/03/24(月) 18:32:15 ID:o6pWhQxB]
デジタル(PCM)2chって書いてあるけど
合成すればいいってんなら何音まで?

735 名前:名前は開発中のものです。 mailto:sage [2008/03/24(月) 21:01:23 ID:+9oLoWUN]
>>734
好きなだけ重ねればいいんじゃないかな。
あとは処理時間を見て4音や8音などに制限していくとか。
「GBA PCM 合成」でググってみるといいかもよ。


736 名前:727 mailto:sage [2008/03/25(火) 03:27:18 ID:XMS5LhkT]
>728
うへぇそうなんですかorz レスありがとうございます。
こんなキッツイ制限があるのにGBのゲームには一杯名曲があるというのが信じられません。
というかFCよりもキツイですねこれは。
FCミニとか、エミュレーターとかも結構苦労して再現してそうですね。


737 名前:名前は開発中のものです。 [2008/03/25(火) 21:01:25 ID:cUljzw0d]
Raylight Studios - Resident Evil GBA + Bonus
jp.youtube.com/watch?v=DBHNtTNPzV0


やっぱ出なかったのは容量の問題かな

738 名前:名前は開発中のものです。 mailto:sage [2008/03/25(火) 22:32:13 ID:DSvlIXZK]
すげえな

739 名前:名前は開発中のものです。 [2008/04/04(金) 05:56:12 ID:hXz7vhFd]
GBAよりスーファミの方が開発意欲がそそられる




740 名前:名前は開発中のものです。 mailto:sage [2008/04/27(日) 02:28:18 ID:BegmYBqI]
devkitProを使ってみようかと思ってるのですが、
コレを使ってGBAソフトを作ってネットで配布する場合、
ソースも配布可能にしなきゃいけないのでしょうか?


741 名前:名前は開発中のものです。 mailto:sage [2008/04/27(日) 09:09:17 ID:gOa+IOAb]
ライブラリを改変しなければ配布しなくてもよかったと思います。

742 名前:名前は開発中のものです。 mailto:sage [2008/04/27(日) 14:36:38 ID:gA0/oGVB]
>>740
ソースクレクレ厨が出てきたら、改変して売りつける悪質な業者だと思ったほうがいいよ
配布には十分注意しる

まぁ、GBAだからもう居ないと思うけどね・・・

743 名前:740 mailto:sage [2008/04/28(月) 03:52:19 ID:fpXnuQEH]
>>741
そのまま組み込めば、配布しなくてもOKって事ですか、分かりました。
教えていただきありがとうございます。

>>742
配布しなくちゃいけなくなった場合に、そういう輩も出てくるんじゃないかと
懸念していたのですが、どうやら大丈夫みたいですね。

744 名前:名前は開発中のものです。 mailto:sage [2008/06/22(日) 12:06:27 ID:/JClv6am]
>>50
サイト消えてる・・・

745 名前:名前は開発中のものです。 mailto:sage [2008/07/22(火) 08:08:44 ID:UkA+4UPJ]
海外ソフトの和訳ハックとか作れますか?
もし可能性が少しでもあるなら頑張ってみようかなと・・・
予備知識ゼロだけど・・・orz

746 名前:名前は開発中のものです。 mailto:sage [2008/10/15(水) 19:46:04 ID:BTWkaFv3]
GB伊次郎ってどっかで手に入らないものだろうか…

747 名前:名前は開発中のものです。 mailto:sage [2008/10/20(月) 09:28:59 ID:udn3EoyF]
>>746
GBXchangerと任天堂パワーのGB用カートリッジがあれば、似たようなことができると思う

748 名前:名前は開発中のものです。 mailto:sage [2008/10/21(火) 00:04:47 ID:Izk3rpBS]
それが手に入れば苦労はしないっての…

749 名前:名前は開発中のものです。 mailto:sage [2008/10/21(火) 09:46:42 ID:weSdSC9r]
この手のものは時期逃すと手に入りにくいからなあ・・・
数年前なら、数少ないが売っている店はあった

あとは今あるとしたらオークション



750 名前:名前は開発中のものです。 mailto:sage [2008/10/22(水) 12:38:33 ID:nJuXMnla]
ヤフオクで1点だけ見かけた

751 名前:名前は開発中のものです。 mailto:sage [2008/11/01(土) 00:24:39 ID:Tvk5Kt8k]
GBのマジコンって今でも需要あるんだね
KOMAKUYAはもうスターターキット出さないのかな

752 名前:名前は開発中のものです。 mailto: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)です。

753 名前:名前は開発中のものです。 mailto: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)です。

754 名前:名前は開発中のものです。 mailto:sage [2008/11/16(日) 18:17:08 ID:9y44eiNe]
ブレゼンハムでググれ
こんなところで聞くよりいい解説がどこかにある

755 名前:名前は開発中のものです。 mailto:sage [2008/11/17(月) 12:01:38 ID:M2eDLwwk]
デジタル微分解析(DDA)でググ・・・ったら余計わからんくて俺が吹いた

756 名前:名前は開発中のものです。 mailto:sage [2008/11/17(月) 22:21:48 ID:0FeRBUS+]
厳密に考えるとやっかいなところは多々あるが
2Dで直線や多角形描くぐらいならただの差分方程式だろ

757 名前:名前は開発中のものです。 mailto:sage [2008/11/18(火) 22:54:21 ID:35X+8Y/i]
GBAで1〜10までのランダム値を取ろうと思ったらどうすればよいのでしょうか?
rand()は使えませんよね

758 名前:名前は開発中のものです。 mailto:sage [2008/11/19(水) 03:13:42 ID:iECaJTAb]
>>757
rand() % 10 + 1

…ってスレ違いだね。
プログラミング初心者向けのスレに行くといいよ。

759 名前:名前は開発中のものです。 mailto:sage [2008/12/03(水) 21:17:08 ID:ZUsaZJd3]
Homebrew BOF

ゲーム機など開発環境が公開されていないハード、及びマイナーハード開発者の集いを企画しています。

日時:コミケ(12/28-30)前後 当日なら17-19時くらい + 宴会
場所:東京都区内
費用:会場実費(0-数百円?)

たぶん日本全体で100人もいないんじゃないかと思いますが、
コミケで上京する人もいるでしょうからその時期を予定しています。

www27.atwiki.jp/homebrew/

マルチすまん




760 名前:名前は開発中のものです。 [2009/01/09(金) 21:44:01 ID:JmGx4bkn]
age

761 名前:名前は開発中のものです。 [2009/01/09(金) 21:54:46 ID:JmGx4bkn]
おtingting

762 名前:名前は開発中のものです。 [2009/01/09(金) 22:02:00 ID:JmGx4bkn]
マジキチ動画(ββ)

763 名前:名前は開発中のものです。 mailto:sage [2009/01/17(土) 21:22:00 ID:/uotE80P]
GBAでMP3を再生する方法を教えてください

764 名前:名前は開発中のものです。 mailto:sage [2009/01/18(日) 02:54:34 ID:eSDINTKa]
市販プレーヤー買った方が手間取らない

765 名前:名前は開発中のものです。 mailto:sage [2009/01/18(日) 05:28:35 ID:vCC7QsmR]
プレイやん

766 名前:名前は開発中のものです。 mailto:sage [2009/01/18(日) 13:23:24 ID:F84aYW6Z]
サウンドプレイヤーを自作したいと思っています。20曲程入れたいんですが何らかの形で圧縮して組み込みことが必要だと思うのですがどうしたらいいですか。

767 名前:名前は開発中のものです。 mailto:sage [2009/01/18(日) 14:23:20 ID:+OkZIPbY]
PCでそのプログラムは作ってみた?

768 名前:名前は開発中のものです。 mailto:sage [2009/01/18(日) 14:26:28 ID:F84aYW6Z]
PCではDXライブラリを使えばMP3の再生ができるので作れることが分かっています。

769 名前:名前は開発中のものです。 mailto:sage [2009/01/19(月) 01:08:21 ID:4HQkQlpM]
じゃ、DXライブラリ使わずにmp3再生できるように頑張れ



770 名前:名前は開発中のものです。 [2009/02/06(金) 17:43:16 ID:6cgXmSA9]
じゃあ脳内再生しかないな

771 名前:名前は開発中のものです。 mailto:sage [2009/02/06(金) 19:56:14 ID:BaBBx5bc]
GBAの性能じゃmp3プレイヤーは厳しくないか?

772 名前:名前は開発中のものです。 mailto:sage [2009/02/15(日) 02:31:54 ID:boVc3Mdt]
DMA1&2とTIMER0&1を使って、ダイレクトサウンドA&Bで同時に音を鳴らしたいのですが
片方しか音が鳴りません。
VBAのIOViewerでFIFOが変化しているのは確認したのですが
何も音がしない理由としては、どんな事が考えられますか?
SGCNT0_H(0x4000082)
SGCNT1(0x4000084)
の音量他もちゃんと値が入ってます。



773 名前:名前は開発中のものです。 mailto:sage [2009/02/15(日) 05:26:13 ID:PZvLdBG/]
本当に値が正しいなら
あとはVBA側でDirect Sound A,Bのどちらかがオフになってる位しか無いな

774 名前:772 mailto: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とダイレクトサウンドを関連付けるレジスタがあるのでしょうか?


775 名前:772 mailto:sage [2009/02/15(日) 08:59:40 ID:boVc3Mdt]
原因が解りました…。
DSOUNDCTRLの初期化にor演算子しか使っていなかったこと
(タイマーを指定するのに、DSOUNDCTRL |= DSOUNDCTRL_ATIMER(0)としかやってませんでした)
自分の使っているgba_sound.hのDSOUNDCTRL_ARESETが
0x0400と定義されていた事(実際は0x0800。0x0400はタイマーの指定に使用)
が原因でした…。
お騒がせしてしまってすみませんでした。


776 名前:名前は開発中のものです。 mailto:sage [2009/02/20(金) 20:47:15 ID:Oxql6lkt]
GBAとかファミコンは開発環境が強力じゃないから
そういう所でハマっちゃうと、抜けるの大変だよね

777 名前:名前は開発中のものです。 mailto:sage [2009/03/10(火) 20:46:38 ID:yBs8MUSr]
GBAではないですが、GBCの板が見当たらなかったので試しに書いてみます。

ttp://nagasaki.cool.ne.jp/xor-a/

ユーザーアプリがロッピーとかで配信出来たらなぁと思うのは愚痴ですが。


778 名前:名前は開発中のものです。 mailto:sage [2009/03/20(金) 18:11:44 ID:RqzCAhzX]
GBCの板は昔あったんだが、過疎すぎて落ちちゃった

VCとかに配信できたら面白そうだけどね>自作ゲーム

779 名前:名前は開発中のものです。 mailto:sage [2009/03/31(火) 03:30:28 ID:LhzYAQbh]
今まではメインループの始めにV-Blankを待って、それから各処理を行っていたのですが、
開発が進むにつれてV-Blank中だけじゃ処理が間に合わなくなってしまいました。
そこでゲーム処理と描画関係の処理にわけて

while( V_COUNT != 0 ){}
GameProc() ; // ゲーム処理
while( V_COUNT < 160) {}
GraphicProc() ; // 描画関係の処理

と、二つに分けてやる事にしました。
表面上はうまく動いているように見えるのですが、
こういう事をやってしまっても大丈夫なのでしょうか?



780 名前:名前は開発中のものです。 mailto:sage [2009/03/31(火) 12:58:22 ID:WlDU8zsj]
分けること自体は問題ないけど
ゲーム処理でV_COUNT != 0を待つ意味は無いよ
描画が終わったらすぐに処理を始めていい

while( V_COUNT < 160) ;
GraphicProc();
GameProc();

781 名前:779 mailto:sage [2009/04/01(水) 03:36:13 ID:2baejuDU]
>780
おおなるほど。
確かにそうした方が処理時間をより多くさけますね。
レスありがとうございます。

782 名前:名前は開発中のものです。 mailto:sage [2009/04/23(木) 20:20:06 ID:jG2DENZH]
ここってまだ人いますかね……

自分で作ったプログラムをPogoShellから起動する場合,「終了してPogoShellに戻る」
という機能をつけると便利だと思うんですが,やりかたがさっぱりわかりません.
どこで調べればいいのかご存知のかた,教えてくださいませ.

783 名前:名前は開発中のものです。 mailto:sage [2009/04/23(木) 23:16:10 ID:GrL4nFHE]
Pogoshell resetでググってみた。

ttp://boards.pocketheaven.com/viewtopic.php?p=52627&sid=a2b1ee533e1a9b52029d305b2c611034
になんか書いてあるような気がする。

あとは自分でガンバレ

784 名前:名前は開発中のものです。 mailto:sage [2009/04/24(金) 08:02:45 ID:7kCUCgG4]
カートリッジのバンクセレクタを元に戻してswi 1, swi 0の順でリセットかければおk
Visoly系(F2A)とEZ/XG-Flashはlibpogoのrestart.Sを使えばいいよ

785 名前:名前は開発中のものです。 mailto:sage [2009/04/24(金) 08:52:53 ID:oh9KlDGe]
おお,回答ありがとうございます.
リブート自体はbiosコールでできるのかなとは思ってたんですが,
バンクセレクタ云々というのが俺がよくわかってない点のようですね.

F2Aを使ってるので,とりあえずrestart.sを見てみます.
実はC言語しか知らないので時間がかかりそうですが.

786 名前:名前は開発中のものです。 mailto:sage [2009/08/16(日) 22:24:12 ID:DZlUccKL]
圧縮した音楽ファイルはどうやって再生すればいいのでしょうか。wavじゃサイズ大きすぎる。

787 名前:名前は開発中のものです。 mailto:sage [2009/08/17(月) 12:45:32 ID:SfTpCTHN]
何で圧縮した音楽ファイル?まずはそこからだけど。
mp3は再生できないよ。

788 名前:名前は開発中のものです。 mailto:sage [2009/08/17(月) 17:31:39 ID:SHxtq19H]
そもそも、サンプリングされた音の再生がGBAじゃ無理だと思うんだが
スペックが足りない

789 名前:名前は開発中のものです。 mailto:sage [2009/08/18(火) 04:34:22 ID:GgRqyFMU]
それはさすがにGBAなめすぎ。
44kHzで16トラック合成出来るくらいのスペックはあるよ。



790 名前:名前は開発中のものです。 mailto:sage [2009/08/29(土) 13:25:09 ID:ajW9NjPM]
>>786
> wavじゃサイズ大きすぎる

というのはちょっと理解が足りないと思います。
wavやaviは単なる入れ物なので、中身が問題。
多分、PCM(非圧縮)のことを言ってるのですよね?

同じwavでも中身がmp3だったりADPCMだったりするならサイズは小さくなります。
IMA ADPCMなら約1/4になるし、デコード処理も軽いのでオススメ。
また、Windows付属のサウンドレコーダーでデータが作成できるので手軽。

wiki.multimedia.cx/index.php?title=Microsoft_IMA_ADPCM
wiki.multimedia.cx/index.php?title=IMA_ADPCM

が参考になります。
wav内での格納形式は前者のURL、デコード処理は後者のURLを参照して作ってください。
データはwav内のブロック単位で処理し、ブロック内でデータは完結します。
デコード処理はURLに書かれている4行の処理が全てです(最適化についても書かれていますが)。

また、sox等のソースも参考になります。

791 名前:名前は開発中のものです。 mailto:sage [2009/09/18(金) 03:08:25 ID:si+yuBJ2]
効果音の周波数って、どれくらいが良いんでしょうか?
アクションゲームを作っているのですが、
現在8000kHzで同時再生させる為に自力合成で結構処理が重いです。



792 名前:名前は開発中のものです。 mailto:sage [2009/09/25(金) 03:10:20 ID:JAA61hM3]
77.8MHzがオススメだよ。

793 名前:791 mailto:sage [2009/09/26(土) 02:31:51 ID:IAonhfHR]
>>791の8000kHzは8000Hzの間違いでしたw
>>792
77.8MHzという事は77800000Hzですか。
8000Hzでヒーコラ言ってるので自分では無理っぽいですね。


794 名前:名前は開発中のものです。 mailto:sage [2009/09/27(日) 16:50:00 ID:fPKTk+yY]
>>792
ZIP-FMか!

>>793
ネタをネタと(ry

795 名前:791 mailto:sage [2009/09/30(水) 04:44:16 ID:BCNooBfe]
なん・・・だと?
出来るかわかりませんが市販のゲームを調べてみます。


796 名前:名前は開発中のものです。 mailto:sage [2009/10/01(木) 00:00:06 ID:NOpZROc8]
8kHzくらいで重くなるってことはほとんど無いから
なにかやり方間違ってるんじゃないの?
DirectSoundからサウンド要求があるたびに割り込んでたりとか

797 名前:791 mailto:sage [2009/10/03(土) 05:07:24 ID:UpJ1HpGL]
やっぱり8000Hzは低い部類になるって事ですね。
現在は、合成用バッファを1フレームで消費する量の2倍確保して、
前半を再生中なら後半に書き込み、後半を再生中なら前半を書き込む処理を
1フレームに一度呼び出す方法を取っています。
2チャンネル同時再生するとHBlankの数値が30弱くらいの重さです。
やっぱり何かやり方が間違ってそうなので、ソース見直して見ます。


798 名前:名前は開発中のものです。 mailto:sage [2009/10/03(土) 21:37:39 ID:5IuFgICN]
重いというからどれほどかと思ったら2音合成でHBlank30ライン分か。
チューニングしてなければ、それくらいはいくかもね。

軽くポイントだけ。

7884Hzにしろ8121Hzにしろバッファのサイズは4の倍数なのでループを4回分展開出来るな。
10512Hzだと16の倍数になるから、16回展開出来る分更に速いかもしれない。
どっちにしてもDuff's Deviceを使えばいい。
効果音は1フレーム単位のサイズに揃えれば、終了判定は毎フレ1回/チャンネルに抑えられる。

これをやった上でそれ以上速くしたかったら、既成のライブラリを検討した方がいいかもしれないよ。

799 名前:名前は開発中のものです。 mailto: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弱になった。



800 名前:791 mailto:sage [2009/10/05(月) 04:23:04 ID:6seh3Jx2]
>798
ループの展開…?forループを全部べた書きするという事なのか…?と思いつつ、
「Duff's Device」というのを知らなかったのでググって見たのですが、
これは凄いですね。こんな方法は自分では絶対に思いつかないです。

>799
わざわざ検証して頂いてありがとうございます。
IWRAM_CODEという存在は知っていたのですが、
効果音再生よりも重い処理があったら困るので、
これは最後の切り札にしようと思ってました。


801 名前:名前は開発中のものです。 mailto:sage [2009/10/05(月) 18:42:46 ID:71pb6xEM]
ループで成り立っている高負荷な処理は、切り札と言わず全てIWRAM_CODEにすればいいよ。
ぶっちゃけループ展開はする必要ない。
俺はPCM合成の他にアニメーション処理や当たり判定をIWRAM_CODEにしてる。

802 名前:wKpZsteMsIgntl mailto:g0g4hpm8.@gmail.com [2009/10/23(金) 02:07:30 ID:D5BMcRYR]
This guy was lying in bed, tossing and turning and groaning, and finally he sits up, opens his mouth, and shoots a six-foot flame across the room. ,

803 名前:名前は開発中のものです。 mailto:s [2009/11/23(月) 03:07:00 ID:mfSHcmeu]
300

804 名前:名前は開発中のものです。 mailto:sage [2009/11/27(金) 20:00:11 ID:6JlPxnBm]
懐かしいなぁ
毎日このスレチェックしてたよ

805 名前:名前は開発中のものです。 [2009/12/17(木) 07:56:51 ID:7qcTAUbw]
RTCの使い方がよく分からん

806 名前:名前は開発中のものです。 mailto:sage [2009/12/18(金) 02:08:11 ID:+ECztpCI]
>>805
nocash.emubase.de/gbatek.htm#gbacartrealtimeclockrtc
を見ると、普通の3線シリアルのRTCが汎用I/Oポートに繋がってるだけみたい。

nocash.emubase.de/gbatek.htm#gbacartioportgpio
に書いてあるが、bit0からSCK, SIO, CS。
使わないと思うが、IRQも繋がっているのでアラーム割込みも使えるっぽい。

SII S-3511のデータシート
ftp://ftp.sii.co.jp/pub/ic/old_dtst/old_dt_j/realtime/S3511A_J.pdf
のタイミングチャートを参照し、ポートをパタパタと制御すればよい。
でも、AC特性は3Vと5Vのどっちなんだろうね…
遅いほう(3V)のタイミングで作ればどっちでも動くけど。

807 名前:名前は開発中のものです。 mailto:sage [2009/12/18(金) 02:19:08 ID:+ECztpCI]
>>805
ソースあった
www.brolinembedded.se/projects/gba_rtc/
rtc.cを読んだ感想。マクロ使えよ…

808 名前:名前は開発中のものです。 mailto:sage [2009/12/18(金) 02:23:34 ID:en3rwnMo]
>>806-807
ご親切にありがとうございます。

割り込みは使わないからrtc.cをそのまま使えば動きそうです。ありがとうございます。

809 名前:名前は開発中のものです。 mailto:sage [2009/12/18(金) 19:15:50 ID:qBiN8wfk]
それGPLだからな
それ使ったものをどこかで公開するときは一緒にソースも配布するようにしろよ



810 名前:名前は開発中のものです。 mailto:sage [2009/12/19(土) 00:09:05 ID:x2u0UE4k]
そのままで動かなくて苦労したけど
最終的には出来ました
本当にありがとうございます

811 名前:名前は開発中のものです。 [2010/01/05(火) 21:27:52 ID:pzmXnMW+]
エミュレータで動くのに実機や
実機BIOSで動かしたエミュレータで動かないって
どうゆうことなの?

812 名前:名前は開発中のものです。 mailto:sage [2010/01/06(水) 00:55:22 ID:32aIAfzG]
ヘッダに適切なデータが入っているかチェックして、無ければ動かないようになってる
そのデータはdevkitARMに同梱されてるgbafixで埋めれ

813 名前:名前は開発中のものです。 mailto:sage [2010/01/06(水) 23:02:48 ID:glp7KWm8]
thx
分かりました。

814 名前:名前は開発中のものです。 [2010/05/27(木) 18:01:00 ID:t7j8nc4S]
GBAって単純に考えればSFCの2〜3倍くらいのスペック?

815 名前:名前は開発中のものです。 mailto:sage [2010/05/27(木) 21:25:00 ID:wK0RKXLp]
CPUだけでも軽く8倍以上はある

816 名前:名前は開発中のものです。 mailto:sage [2010/05/29(土) 02:02:41 ID:405QXtv/]
>>815
謙虚だな。

817 名前:名前は開発中のものです。 mailto:sage [2010/05/30(日) 03:22:44 ID:nDVa0oLW]
理論値高くても実際に出たゲームはSFCに毛が生えた程度だったな


818 名前:名前は開発中のものです。 mailto:sage [2010/05/30(日) 10:00:46 ID:sxXB+X5d]
wikiにはsfcと同程度って書いてあるけど詳しくないからよくわからん
はやくgbaで作ってみたいなー

819 名前:名前は開発中のものです。 mailto:sage [2010/06/01(火) 09:59:10 ID:ti3pNW1a]
>>815
×CPUだけでも
○CPUだけは

CPU以外はそんなに違わないと思う。
既に完成された形。

>>817
ゲームの面白さは画面の派手さ等とは関係ないし、
無理に派手にするのは違うと思う。
それに携帯機器なので、消費電力を抑えるのもメリット。



820 名前:名前は開発中のものです。 mailto:sage [2010/06/01(火) 21:29:48 ID:O24QPlO5]
派手さとか関係なくGBAはその程度の性能ってだけ。

821 名前:名前は開発中のものです。 mailto:sage [2010/06/02(水) 10:14:51 ID:tL7tbETO]
>>819
スプライトが回転できて、回転BGも2面まで使えるから
そのアドバンテージだけで4倍相当くらいはあると思ってるんだけどどうよ?
画面の狭さで2倍に戻るが

822 名前:名前は開発中のものです。 mailto:sage [2010/06/02(水) 23:14:49 ID:Yi24Cygo]
>>821
うーん使いどころが…
その機能を有効に使って面白いゲームを作れたら凄いんだが。

823 名前:名前は開発中のものです。 mailto:sage [2010/06/03(木) 01:53:01 ID:IquiZ9YO]
GBAってムービー使ったりROM丸々容量使ってアニメ一話分のソフト出したり
SFCより性能が上とパッと見分かるのってそれくらいだろ

824 名前:名前は開発中のものです。 [2010/06/03(木) 20:59:01 ID:jjhre0VD]
ゲームボーイアドバンスSPの内蔵充電池をNDSで使うことは出来ますか?


825 名前:名前は開発中のものです。 mailto:sage [2010/06/05(土) 15:12:10 ID:NSo58clc]
>>824
リチウムイオン電池は危険だから、そういう変なことはしないほうが身のためだよ。

826 名前:名前は開発中のものです。 mailto:sage [2010/06/08(火) 10:13:18 ID:9Tvajzuo]
SFCよりは当然性能いいけど
SFC末期みたいに性能フルに使うって感じは無かったから
中途半端なハードになっちまった

827 名前:名前は開発中のものです。 [2010/06/16(水) 02:46:14 ID:cnscT1cZ]
DSとPS1ってポリゴン数以外は似たようなもん?

828 名前:名前は開発中のものです。 mailto:sage [2010/06/16(水) 03:38:29 ID:SCFm7Y7R]
アーキテクチャ的に全然違う

829 名前:名前は開発中のものです。 mailto:sage [2010/06/18(金) 17:37:40 ID:2GoixfW1]
これ見てよ↓
livedoor.2.blogimg.jp/agomesu/imgs/5/8/58ff257e.jpg
ばらまこうぜ!




830 名前:名前は開発中のものです。 mailto:sage [2010/06/19(土) 08:24:44 ID:jGSPC2iC]
ネトウヨは巣に帰れよ
どんだけ貼ってんだよ

831 名前:名前は開発中のものです。 mailto:sage [2010/06/24(木) 22:48:46 ID:b7oLXqWU]
お前こそ祖国に帰れよ

832 名前:名前は開発中のものです。 [2010/06/26(土) 03:43:55 ID:hrviSwbr]
 某教授より         l                 \
          /            ノ´⌒ヽ,,   \
| し な 間 〉 //     γ⌒´      ヽ   \      は
| ら っ に |/ l    // ""⌒⌒\  ) <   辞
| ん て あ   /    i /::::::::: \  /ヽ )_/   め   や
| ぞ も わ    |>    !:::::::::::(・ )` ´( ・) i/\    さ
| |   な   |`/\  |:::::::::::::::(__人_)  |   \  せ    く
っ   |    く    |/ / l´,.-― 、:::::「匸匚|'  |――/   ろ
!!!! |        \ ', /  /`7-、|/^⌒|  /// /        俺
           lT´ {  /  /  ト、_ノ _'// /    !!!!!  
          l´ ヽ、 > ー    ,/ |ニ.ノ  /_        を
              i``` 、/ }    ',,,..'  |-'´,- '´ ̄/ ヽ∧  ____
           \/ ' \_  `´ノ7l´   /    // ヽ lヽ
         / ̄ |      ̄ ̄/ ノ L_/      ★  U |
        /   ヽ      /`ー´  /l               |
 






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<221KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef