GBAで何やら作ってみようという人の為のスレ。ライセンス不要。
初心者歓迎。質問歓迎。英語苦手な人歓迎。冷やかし歓迎。ネカマ歓迎。
資料、リンク等
http://www.devrs.com/gba/
http://www.gbadev.org/
http://www.vsync.org/agb/
http://nocash.emubase.de/gbatek.htm
http://www.bomber.co.jp/chaola/docs/ARM/
開発環境
DevkitAdvance http://devkitadv.sourceforge.net/index.html
DevkitARM http://www.devkit.tk/
VisualHAM http://visualham.console-dev.de/
DragonBasic http://jm-basic.com/dragon/index.php
GBA Wiki
http://cgi.f26.aaacafe.ne.jp/~gbawiki/pukiwiki/pukiwiki.php
【GBA】Linuxから目覚めるぼくらのゲームボーイ!
http://pc5.2ch.net/test/read.cgi/linux/1070983168/
ゲームボーイアドバンス(GBA)開発@ゲ製板(避難所)
http://bbs.gamdev.org/test/read.cgi/gamedev/1055111303/
前スレ
http://pc5.2ch.net/test/read.cgi/gamedev/1013750899/
ゲームボーイアドバンス(GBA)非公式開発 Part2
■ このスレッドは過去ログ倉庫に格納されています
04/10/30 15:50:05ID:XmInH8YR
721名前は開発中のものです。
2008/03/16(日) 12:05:58ID:0SBCpDyI >>720
スレ違いだが回答。
C言語とC++のconst修飾子の動作の違いのために起きる問題。
const int hoge1 = 1 ;
がC言語では変数として定義されるのに対し、C++では定数として定義される。
このため、
const int hoge2 = hoge1 ;
がエラーとなる(初期値つき変数に定数以外を指定したから)。
結論:C++でなくC言語で書くなら、定数はマクロやenumで定義しましょう。
余談だが、const修飾子には他にも違いがあり、グローバル変数をconst修飾した場合に、
C言語ではデフォルトで外部リンケージ(要するにextern)になるのに対し、
C++では内部リンケージ(要するにstatic)となる。
スレ違いだが回答。
C言語とC++のconst修飾子の動作の違いのために起きる問題。
const int hoge1 = 1 ;
がC言語では変数として定義されるのに対し、C++では定数として定義される。
このため、
const int hoge2 = hoge1 ;
がエラーとなる(初期値つき変数に定数以外を指定したから)。
結論:C++でなくC言語で書くなら、定数はマクロやenumで定義しましょう。
余談だが、const修飾子には他にも違いがあり、グローバル変数をconst修飾した場合に、
C言語ではデフォルトで外部リンケージ(要するにextern)になるのに対し、
C++では内部リンケージ(要するにstatic)となる。
722名前は開発中のものです。
2008/03/16(日) 12:18:17ID:0SBCpDyI >>721
スレ違うというか板違いでしたね。
あと、一応補足。
当たり前だけどC++でグローバルな
const int hoge0 = 1;
static const int hoge1 = 1;
extern const int hoge2 = 1;
を定義すると、hoge0とhoge1は定数、hoge2は変数となる。
スレ違うというか板違いでしたね。
あと、一応補足。
当たり前だけどC++でグローバルな
const int hoge0 = 1;
static const int hoge1 = 1;
extern const int hoge2 = 1;
を定義すると、hoge0とhoge1は定数、hoge2は変数となる。
723名前は開発中のものです。
2008/03/16(日) 15:31:08ID:3fassPpA724名前は開発中のものです。
2008/03/17(月) 02:10:37ID:xMktvNUH725720
2008/03/17(月) 03:34:16ID:C1jKoyjP なるほど、そもそもCとC++じゃconstの仕様が違うのですね。
良く分かりました。
板違いの質問に答えて頂き、ありがとうございました。
良く分かりました。
板違いの質問に答えて頂き、ありがとうございました。
726名前は開発中のものです。
2008/03/17(月) 10:01:08ID:7F2zgz+N >>724
やっぱり変数と定数の意味に無理があるだろ。どこで
そんなネタ仕込まれたんだ?
722 の3つは全部 const int 型変数の定義。
const int 型変数が定数式で初期化されていれば、
それもまた定数式となる。
リンケージはそれぞれ決まっているし、外部リンケージ
じゃなければ初期化が必須だったりするけど、それらは
定数式として使えるかどうかとは別の話。
やっぱり変数と定数の意味に無理があるだろ。どこで
そんなネタ仕込まれたんだ?
722 の3つは全部 const int 型変数の定義。
const int 型変数が定数式で初期化されていれば、
それもまた定数式となる。
リンケージはそれぞれ決まっているし、外部リンケージ
じゃなければ初期化が必須だったりするけど、それらは
定数式として使えるかどうかとは別の話。
727名前は開発中のものです。
2008/03/24(月) 05:51:58ID:UCF17QKn GB音源(例えばチャンネル1)でエンベロープをハードウェアでは無く自力でやりたい場合、
SOUND1CNT_Hのbit12-15をいじって、
SOUND1CNT_Xのbit15を立てて初期化するしかないのでしょうか?
これだと発音中の波形の状態も最初に戻ってしまうらしく、
音が自然にならないので困っています。
何か良い方法をご存知の方はいらっしゃらないでしょうか?
SOUND1CNT_Hのbit12-15をいじって、
SOUND1CNT_Xのbit15を立てて初期化するしかないのでしょうか?
これだと発音中の波形の状態も最初に戻ってしまうらしく、
音が自然にならないので困っています。
何か良い方法をご存知の方はいらっしゃらないでしょうか?
728名前は開発中のものです。
2008/03/24(月) 08:16:50ID:bI8PsKud その方法しか無いがチャンネル1と2は必ず発音がリセットされるので実質使えない
チャンネル3はリセットされないからソフト制御可能
チャンネル3はリセットされないからソフト制御可能
729名前は開発中のものです。
2008/03/24(月) 13:22:21ID:o6pWhQxB GBAのスペックに
サウンド:アナログ(パルス波2ch+波形メモリ1ch+ノイズ1chの音源、従来機と同様)+デジタル(PCM)2ch
ってあるけどこれと同時発音数は別の話だよね
もっと沢山鳴らしてるようなメガデモはあるし、実際は何音までなんでしょ
サウンド:アナログ(パルス波2ch+波形メモリ1ch+ノイズ1chの音源、従来機と同様)+デジタル(PCM)2ch
ってあるけどこれと同時発音数は別の話だよね
もっと沢山鳴らしてるようなメガデモはあるし、実際は何音までなんでしょ
730名前は開発中のものです。
2008/03/24(月) 16:23:44ID:bI8PsKud それで全部だけど?
731名前は開発中のものです。
2008/03/24(月) 18:13:20ID:o6pWhQxB では同じトラック三つコピペして全部違うPCMにしても
音切れがないのはどういう仕組み?
音切れがないのはどういう仕組み?
732名前は開発中のものです。
2008/03/24(月) 18:22:44ID:+9oLoWUN733名前は開発中のものです。
2008/03/24(月) 18:22:59ID:bI8PsKud 自分でPCMと書いてるじゃん・・・
734名前は開発中のものです。
2008/03/24(月) 18:32:15ID:o6pWhQxB デジタル(PCM)2chって書いてあるけど
合成すればいいってんなら何音まで?
合成すればいいってんなら何音まで?
735名前は開発中のものです。
2008/03/24(月) 21:01:23ID:+9oLoWUN736727
2008/03/25(火) 03:27:18ID:XMS5LhkT >728
うへぇそうなんですかorz レスありがとうございます。
こんなキッツイ制限があるのにGBのゲームには一杯名曲があるというのが信じられません。
というかFCよりもキツイですねこれは。
FCミニとか、エミュレーターとかも結構苦労して再現してそうですね。
うへぇそうなんですかorz レスありがとうございます。
こんなキッツイ制限があるのにGBのゲームには一杯名曲があるというのが信じられません。
というかFCよりもキツイですねこれは。
FCミニとか、エミュレーターとかも結構苦労して再現してそうですね。
737名前は開発中のものです。
2008/03/25(火) 21:01:25ID:cUljzw0d Raylight Studios - Resident Evil GBA + Bonus
http://jp.youtube.com/watch?v=DBHNtTNPzV0
やっぱ出なかったのは容量の問題かな
http://jp.youtube.com/watch?v=DBHNtTNPzV0
やっぱ出なかったのは容量の問題かな
738名前は開発中のものです。
2008/03/25(火) 22:32:13ID:DSvlIXZK すげえな
739名前は開発中のものです。
2008/04/04(金) 05:56:12ID:hXz7vhFd GBAよりスーファミの方が開発意欲がそそられる
740名前は開発中のものです。
2008/04/27(日) 02:28:18ID:BegmYBqI devkitProを使ってみようかと思ってるのですが、
コレを使ってGBAソフトを作ってネットで配布する場合、
ソースも配布可能にしなきゃいけないのでしょうか?
コレを使ってGBAソフトを作ってネットで配布する場合、
ソースも配布可能にしなきゃいけないのでしょうか?
741名前は開発中のものです。
2008/04/27(日) 09:09:17ID:gOa+IOAb ライブラリを改変しなければ配布しなくてもよかったと思います。
742名前は開発中のものです。
2008/04/27(日) 14:36:38ID:gA0/oGVB743740
2008/04/28(月) 03:52:19ID:fpXnuQEH744名前は開発中のものです。
2008/06/22(日) 12:06:27ID:/JClv6am >>50
サイト消えてる・・・
サイト消えてる・・・
745名前は開発中のものです。
2008/07/22(火) 08:08:44ID:UkA+4UPJ 海外ソフトの和訳ハックとか作れますか?
もし可能性が少しでもあるなら頑張ってみようかなと・・・
予備知識ゼロだけど・・・orz
もし可能性が少しでもあるなら頑張ってみようかなと・・・
予備知識ゼロだけど・・・orz
746名前は開発中のものです。
2008/10/15(水) 19:46:04ID:BTWkaFv3 GB伊次郎ってどっかで手に入らないものだろうか…
747名前は開発中のものです。
2008/10/20(月) 09:28:59ID:udn3EoyF >>746
GBXchangerと任天堂パワーのGB用カートリッジがあれば、似たようなことができると思う
GBXchangerと任天堂パワーのGB用カートリッジがあれば、似たようなことができると思う
748名前は開発中のものです。
2008/10/21(火) 00:04:47ID:Izk3rpBS それが手に入れば苦労はしないっての…
749名前は開発中のものです。
2008/10/21(火) 09:46:42ID:weSdSC9r この手のものは時期逃すと手に入りにくいからなあ・・・
数年前なら、数少ないが売っている店はあった
あとは今あるとしたらオークション
数年前なら、数少ないが売っている店はあった
あとは今あるとしたらオークション
750名前は開発中のものです。
2008/10/22(水) 12:38:33ID:nJuXMnla ヤフオクで1点だけ見かけた
751名前は開発中のものです。
2008/11/01(土) 00:24:39ID:Tvk5Kt8k GBのマジコンって今でも需要あるんだね
KOMAKUYAはもうスターターキット出さないのかな
KOMAKUYAはもうスターターキット出さないのかな
752名前は開発中のものです。
2008/11/16(日) 05:12:20ID: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)です。
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名前は開発中のものです。
2008/11/16(日) 12:27:42ID: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)です。
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名前は開発中のものです。
2008/11/16(日) 18:17:08ID:9y44eiNe ブレゼンハムでググれ
こんなところで聞くよりいい解説がどこかにある
こんなところで聞くよりいい解説がどこかにある
755名前は開発中のものです。
2008/11/17(月) 12:01:38ID:M2eDLwwk デジタル微分解析(DDA)でググ・・・ったら余計わからんくて俺が吹いた
756名前は開発中のものです。
2008/11/17(月) 22:21:48ID:0FeRBUS+ 厳密に考えるとやっかいなところは多々あるが
2Dで直線や多角形描くぐらいならただの差分方程式だろ
2Dで直線や多角形描くぐらいならただの差分方程式だろ
757名前は開発中のものです。
2008/11/18(火) 22:54:21ID:35X+8Y/i GBAで1〜10までのランダム値を取ろうと思ったらどうすればよいのでしょうか?
rand()は使えませんよね
rand()は使えませんよね
758名前は開発中のものです。
2008/11/19(水) 03:13:42ID:iECaJTAb759名前は開発中のものです。
2008/12/03(水) 21:17:08ID:ZUsaZJd3 Homebrew BOF
ゲーム機など開発環境が公開されていないハード、及びマイナーハード開発者の集いを企画しています。
日時:コミケ(12/28-30)前後 当日なら17-19時くらい + 宴会
場所:東京都区内
費用:会場実費(0-数百円?)
たぶん日本全体で100人もいないんじゃないかと思いますが、
コミケで上京する人もいるでしょうからその時期を予定しています。
http://www27.atwiki.jp/homebrew/
マルチすまん
ゲーム機など開発環境が公開されていないハード、及びマイナーハード開発者の集いを企画しています。
日時:コミケ(12/28-30)前後 当日なら17-19時くらい + 宴会
場所:東京都区内
費用:会場実費(0-数百円?)
たぶん日本全体で100人もいないんじゃないかと思いますが、
コミケで上京する人もいるでしょうからその時期を予定しています。
http://www27.atwiki.jp/homebrew/
マルチすまん
760名前は開発中のものです。
2009/01/09(金) 21:44:01ID:JmGx4bkn age
761名前は開発中のものです。
2009/01/09(金) 21:54:46ID:JmGx4bkn おtingting
762名前は開発中のものです。
2009/01/09(金) 22:02:00ID:JmGx4bkn マジキチ動画(ββ)
763名前は開発中のものです。
2009/01/17(土) 21:22:00ID:/uotE80P GBAでMP3を再生する方法を教えてください
764名前は開発中のものです。
2009/01/18(日) 02:54:34ID:eSDINTKa 市販プレーヤー買った方が手間取らない
765名前は開発中のものです。
2009/01/18(日) 05:28:35ID:vCC7QsmR プレイやん
766名前は開発中のものです。
2009/01/18(日) 13:23:24ID:F84aYW6Z サウンドプレイヤーを自作したいと思っています。20曲程入れたいんですが何らかの形で圧縮して組み込みことが必要だと思うのですがどうしたらいいですか。
767名前は開発中のものです。
2009/01/18(日) 14:23:20ID:+OkZIPbY PCでそのプログラムは作ってみた?
768名前は開発中のものです。
2009/01/18(日) 14:26:28ID:F84aYW6Z PCではDXライブラリを使えばMP3の再生ができるので作れることが分かっています。
769名前は開発中のものです。
2009/01/19(月) 01:08:21ID:4HQkQlpM じゃ、DXライブラリ使わずにmp3再生できるように頑張れ
770名前は開発中のものです。
2009/02/06(金) 17:43:16ID:6cgXmSA9 じゃあ脳内再生しかないな
771名前は開発中のものです。
2009/02/06(金) 19:56:14ID:BaBBx5bc GBAの性能じゃmp3プレイヤーは厳しくないか?
772名前は開発中のものです。
2009/02/15(日) 02:31:54ID:boVc3Mdt DMA1&2とTIMER0&1を使って、ダイレクトサウンドA&Bで同時に音を鳴らしたいのですが
片方しか音が鳴りません。
VBAのIOViewerでFIFOが変化しているのは確認したのですが
何も音がしない理由としては、どんな事が考えられますか?
SGCNT0_H(0x4000082)
SGCNT1(0x4000084)
の音量他もちゃんと値が入ってます。
片方しか音が鳴りません。
VBAのIOViewerでFIFOが変化しているのは確認したのですが
何も音がしない理由としては、どんな事が考えられますか?
SGCNT0_H(0x4000082)
SGCNT1(0x4000084)
の音量他もちゃんと値が入ってます。
773名前は開発中のものです。
2009/02/15(日) 05:26:13ID:PZvLdBG/ 本当に値が正しいなら
あとはVBA側でDirect Sound A,Bのどちらかがオフになってる位しか無いな
あとはVBA側でDirect Sound A,Bのどちらかがオフになってる位しか無いな
774772
2009/02/15(日) 06:41:13ID:boVc3Mdt レスありがとうございます。
VBAの設定も間違いなかったみたいです。
あれから色々試してました。
実は多重再生の為に、FIFOにコピーするバッファはサウンドデータと別にしていて、
TIMERのハンドラ内で手動でDMAを使ってFIFOにコピーをしてました。
鳴らないのはダイレクトサウンドAの方(BGM用)で、
ダイレクトサウンドB(効果音用)が鳴った時に何故かAも鳴ったので
調べてみると、効果音用のTIMER1が動くと鳴ると解りました。
とりあえず、AとBのFIFOコピーにどちらもTIMER1を使用することで一応解決しました。
タイマーを分けると鳴らなくなる理由がわからないままですが。
もしやDSOUNDCTRL(0x4000082)以外にも、
TIMERとダイレクトサウンドを関連付けるレジスタがあるのでしょうか?
VBAの設定も間違いなかったみたいです。
あれから色々試してました。
実は多重再生の為に、FIFOにコピーするバッファはサウンドデータと別にしていて、
TIMERのハンドラ内で手動でDMAを使ってFIFOにコピーをしてました。
鳴らないのはダイレクトサウンドAの方(BGM用)で、
ダイレクトサウンドB(効果音用)が鳴った時に何故かAも鳴ったので
調べてみると、効果音用のTIMER1が動くと鳴ると解りました。
とりあえず、AとBのFIFOコピーにどちらもTIMER1を使用することで一応解決しました。
タイマーを分けると鳴らなくなる理由がわからないままですが。
もしやDSOUNDCTRL(0x4000082)以外にも、
TIMERとダイレクトサウンドを関連付けるレジスタがあるのでしょうか?
775772
2009/02/15(日) 08:59:40ID:boVc3Mdt 原因が解りました…。
DSOUNDCTRLの初期化にor演算子しか使っていなかったこと
(タイマーを指定するのに、DSOUNDCTRL |= DSOUNDCTRL_ATIMER(0)としかやってませんでした)
自分の使っているgba_sound.hのDSOUNDCTRL_ARESETが
0x0400と定義されていた事(実際は0x0800。0x0400はタイマーの指定に使用)
が原因でした…。
お騒がせしてしまってすみませんでした。
DSOUNDCTRLの初期化にor演算子しか使っていなかったこと
(タイマーを指定するのに、DSOUNDCTRL |= DSOUNDCTRL_ATIMER(0)としかやってませんでした)
自分の使っているgba_sound.hのDSOUNDCTRL_ARESETが
0x0400と定義されていた事(実際は0x0800。0x0400はタイマーの指定に使用)
が原因でした…。
お騒がせしてしまってすみませんでした。
776名前は開発中のものです。
2009/02/20(金) 20:47:15ID:Oxql6lkt GBAとかファミコンは開発環境が強力じゃないから
そういう所でハマっちゃうと、抜けるの大変だよね
そういう所でハマっちゃうと、抜けるの大変だよね
777名前は開発中のものです。
2009/03/10(火) 20:46:38ID:yBs8MUSr GBAではないですが、GBCの板が見当たらなかったので試しに書いてみます。
ttp://nagasaki.cool.ne.jp/xor-a/
ユーザーアプリがロッピーとかで配信出来たらなぁと思うのは愚痴ですが。
ttp://nagasaki.cool.ne.jp/xor-a/
ユーザーアプリがロッピーとかで配信出来たらなぁと思うのは愚痴ですが。
778名前は開発中のものです。
2009/03/20(金) 18:11:44ID:RqzCAhzX GBCの板は昔あったんだが、過疎すぎて落ちちゃった
VCとかに配信できたら面白そうだけどね>自作ゲーム
VCとかに配信できたら面白そうだけどね>自作ゲーム
779名前は開発中のものです。
2009/03/31(火) 03:30:28ID:LhzYAQbh 今まではメインループの始めにV-Blankを待って、それから各処理を行っていたのですが、
開発が進むにつれてV-Blank中だけじゃ処理が間に合わなくなってしまいました。
そこでゲーム処理と描画関係の処理にわけて
while( V_COUNT != 0 ){}
GameProc() ; // ゲーム処理
while( V_COUNT < 160) {}
GraphicProc() ; // 描画関係の処理
と、二つに分けてやる事にしました。
表面上はうまく動いているように見えるのですが、
こういう事をやってしまっても大丈夫なのでしょうか?
開発が進むにつれてV-Blank中だけじゃ処理が間に合わなくなってしまいました。
そこでゲーム処理と描画関係の処理にわけて
while( V_COUNT != 0 ){}
GameProc() ; // ゲーム処理
while( V_COUNT < 160) {}
GraphicProc() ; // 描画関係の処理
と、二つに分けてやる事にしました。
表面上はうまく動いているように見えるのですが、
こういう事をやってしまっても大丈夫なのでしょうか?
780名前は開発中のものです。
2009/03/31(火) 12:58:22ID:WlDU8zsj 分けること自体は問題ないけど
ゲーム処理でV_COUNT != 0を待つ意味は無いよ
描画が終わったらすぐに処理を始めていい
while( V_COUNT < 160) ;
GraphicProc();
GameProc();
ゲーム処理でV_COUNT != 0を待つ意味は無いよ
描画が終わったらすぐに処理を始めていい
while( V_COUNT < 160) ;
GraphicProc();
GameProc();
781779
2009/04/01(水) 03:36:13ID:2baejuDU >780
おおなるほど。
確かにそうした方が処理時間をより多くさけますね。
レスありがとうございます。
おおなるほど。
確かにそうした方が処理時間をより多くさけますね。
レスありがとうございます。
782名前は開発中のものです。
2009/04/23(木) 20:20:06ID:jG2DENZH ここってまだ人いますかね……
自分で作ったプログラムをPogoShellから起動する場合,「終了してPogoShellに戻る」
という機能をつけると便利だと思うんですが,やりかたがさっぱりわかりません.
どこで調べればいいのかご存知のかた,教えてくださいませ.
自分で作ったプログラムをPogoShellから起動する場合,「終了してPogoShellに戻る」
という機能をつけると便利だと思うんですが,やりかたがさっぱりわかりません.
どこで調べればいいのかご存知のかた,教えてくださいませ.
783名前は開発中のものです。
2009/04/23(木) 23:16:10ID:GrL4nFHE Pogoshell resetでググってみた。
ttp://boards.pocketheaven.com/viewtopic.php?p=52627&sid=a2b1ee533e1a9b52029d305b2c611034
になんか書いてあるような気がする。
あとは自分でガンバレ
ttp://boards.pocketheaven.com/viewtopic.php?p=52627&sid=a2b1ee533e1a9b52029d305b2c611034
になんか書いてあるような気がする。
あとは自分でガンバレ
784名前は開発中のものです。
2009/04/24(金) 08:02:45ID:7kCUCgG4 カートリッジのバンクセレクタを元に戻してswi 1, swi 0の順でリセットかければおk
Visoly系(F2A)とEZ/XG-Flashはlibpogoのrestart.Sを使えばいいよ
Visoly系(F2A)とEZ/XG-Flashはlibpogoのrestart.Sを使えばいいよ
785名前は開発中のものです。
2009/04/24(金) 08:52:53ID:oh9KlDGe おお,回答ありがとうございます.
リブート自体はbiosコールでできるのかなとは思ってたんですが,
バンクセレクタ云々というのが俺がよくわかってない点のようですね.
F2Aを使ってるので,とりあえずrestart.sを見てみます.
実はC言語しか知らないので時間がかかりそうですが.
リブート自体はbiosコールでできるのかなとは思ってたんですが,
バンクセレクタ云々というのが俺がよくわかってない点のようですね.
F2Aを使ってるので,とりあえずrestart.sを見てみます.
実はC言語しか知らないので時間がかかりそうですが.
786名前は開発中のものです。
2009/08/16(日) 22:24:12ID:DZlUccKL 圧縮した音楽ファイルはどうやって再生すればいいのでしょうか。wavじゃサイズ大きすぎる。
787名前は開発中のものです。
2009/08/17(月) 12:45:32ID:SfTpCTHN 何で圧縮した音楽ファイル?まずはそこからだけど。
mp3は再生できないよ。
mp3は再生できないよ。
788名前は開発中のものです。
2009/08/17(月) 17:31:39ID:SHxtq19H そもそも、サンプリングされた音の再生がGBAじゃ無理だと思うんだが
スペックが足りない
スペックが足りない
789名前は開発中のものです。
2009/08/18(火) 04:34:22ID:GgRqyFMU それはさすがにGBAなめすぎ。
44kHzで16トラック合成出来るくらいのスペックはあるよ。
44kHzで16トラック合成出来るくらいのスペックはあるよ。
790名前は開発中のものです。
2009/08/29(土) 13:25:09ID: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等のソースも参考になります。
> 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等のソースも参考になります。
791名前は開発中のものです。
2009/09/18(金) 03:08:25ID:si+yuBJ2 効果音の周波数って、どれくらいが良いんでしょうか?
アクションゲームを作っているのですが、
現在8000kHzで同時再生させる為に自力合成で結構処理が重いです。
アクションゲームを作っているのですが、
現在8000kHzで同時再生させる為に自力合成で結構処理が重いです。
792名前は開発中のものです。
2009/09/25(金) 03:10:20ID:JAA61hM3 77.8MHzがオススメだよ。
793791
2009/09/26(土) 02:31:51ID:IAonhfHR794名前は開発中のものです。
2009/09/27(日) 16:50:00ID:fPKTk+yY795791
2009/09/30(水) 04:44:16ID:BCNooBfe なん・・・だと?
出来るかわかりませんが市販のゲームを調べてみます。
出来るかわかりませんが市販のゲームを調べてみます。
796名前は開発中のものです。
2009/10/01(木) 00:00:06ID:NOpZROc8 8kHzくらいで重くなるってことはほとんど無いから
なにかやり方間違ってるんじゃないの?
DirectSoundからサウンド要求があるたびに割り込んでたりとか
なにかやり方間違ってるんじゃないの?
DirectSoundからサウンド要求があるたびに割り込んでたりとか
797791
2009/10/03(土) 05:07:24ID:UpJ1HpGL やっぱり8000Hzは低い部類になるって事ですね。
現在は、合成用バッファを1フレームで消費する量の2倍確保して、
前半を再生中なら後半に書き込み、後半を再生中なら前半を書き込む処理を
1フレームに一度呼び出す方法を取っています。
2チャンネル同時再生するとHBlankの数値が30弱くらいの重さです。
やっぱり何かやり方が間違ってそうなので、ソース見直して見ます。
現在は、合成用バッファを1フレームで消費する量の2倍確保して、
前半を再生中なら後半に書き込み、後半を再生中なら前半を書き込む処理を
1フレームに一度呼び出す方法を取っています。
2チャンネル同時再生するとHBlankの数値が30弱くらいの重さです。
やっぱり何かやり方が間違ってそうなので、ソース見直して見ます。
798名前は開発中のものです。
2009/10/03(土) 21:37:39ID:5IuFgICN 重いというからどれほどかと思ったら2音合成でHBlank30ライン分か。
チューニングしてなければ、それくらいはいくかもね。
軽くポイントだけ。
7884Hzにしろ8121Hzにしろバッファのサイズは4の倍数なのでループを4回分展開出来るな。
10512Hzだと16の倍数になるから、16回展開出来る分更に速いかもしれない。
どっちにしてもDuff's Deviceを使えばいい。
効果音は1フレーム単位のサイズに揃えれば、終了判定は毎フレ1回/チャンネルに抑えられる。
これをやった上でそれ以上速くしたかったら、既成のライブラリを検討した方がいいかもしれないよ。
チューニングしてなければ、それくらいはいくかもね。
軽くポイントだけ。
7884Hzにしろ8121Hzにしろバッファのサイズは4の倍数なのでループを4回分展開出来るな。
10512Hzだと16の倍数になるから、16回展開出来る分更に速いかもしれない。
どっちにしてもDuff's Deviceを使えばいい。
効果音は1フレーム単位のサイズに揃えれば、終了判定は毎フレ1回/チャンネルに抑えられる。
これをやった上でそれ以上速くしたかったら、既成のライブラリを検討した方がいいかもしれないよ。
799名前は開発中のものです。
2009/10/04(日) 23:37:24ID:vY9mcI2T void mixAudio(); // プロトタイプ宣言
void mixAudio() { ... } // コード
があるとして
void mixAudio() IWRAM_CODE;
IWRAM_CODE void mixAudio() { ... }
にして、そのソースを-marmでコンパイルするだけで、おそらく負荷が1/3になる。
手元で軽く組んでみたが馬鹿正直に作って2チャンネル合成でHBlank30弱だったのが
IWRAM_CODEにしたら10弱になった。
void mixAudio() { ... } // コード
があるとして
void mixAudio() IWRAM_CODE;
IWRAM_CODE void mixAudio() { ... }
にして、そのソースを-marmでコンパイルするだけで、おそらく負荷が1/3になる。
手元で軽く組んでみたが馬鹿正直に作って2チャンネル合成でHBlank30弱だったのが
IWRAM_CODEにしたら10弱になった。
800791
2009/10/05(月) 04:23:04ID:6seh3Jx2 >798
ループの展開…?forループを全部べた書きするという事なのか…?と思いつつ、
「Duff's Device」というのを知らなかったのでググって見たのですが、
これは凄いですね。こんな方法は自分では絶対に思いつかないです。
>799
わざわざ検証して頂いてありがとうございます。
IWRAM_CODEという存在は知っていたのですが、
効果音再生よりも重い処理があったら困るので、
これは最後の切り札にしようと思ってました。
ループの展開…?forループを全部べた書きするという事なのか…?と思いつつ、
「Duff's Device」というのを知らなかったのでググって見たのですが、
これは凄いですね。こんな方法は自分では絶対に思いつかないです。
>799
わざわざ検証して頂いてありがとうございます。
IWRAM_CODEという存在は知っていたのですが、
効果音再生よりも重い処理があったら困るので、
これは最後の切り札にしようと思ってました。
801名前は開発中のものです。
2009/10/05(月) 18:42:46ID:71pb6xEM ループで成り立っている高負荷な処理は、切り札と言わず全てIWRAM_CODEにすればいいよ。
ぶっちゃけループ展開はする必要ない。
俺はPCM合成の他にアニメーション処理や当たり判定をIWRAM_CODEにしてる。
ぶっちゃけループ展開はする必要ない。
俺はPCM合成の他にアニメーション処理や当たり判定をIWRAM_CODEにしてる。
2009/10/23(金) 02:07:30ID: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名前は開発中のものです。
2009/11/23(月) 03:07:00ID:mfSHcmeu 300
804名前は開発中のものです。
2009/11/27(金) 20:00:11ID:6JlPxnBm 懐かしいなぁ
毎日このスレチェックしてたよ
毎日このスレチェックしてたよ
805名前は開発中のものです。
2009/12/17(木) 07:56:51ID:7qcTAUbw RTCの使い方がよく分からん
806名前は開発中のものです。
2009/12/18(金) 02:08:11ID:+ECztpCI >>805
http://nocash.emubase.de/gbatek.htm#gbacartrealtimeclockrtc
を見ると、普通の3線シリアルのRTCが汎用I/Oポートに繋がってるだけみたい。
http://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)のタイミングで作ればどっちでも動くけど。
http://nocash.emubase.de/gbatek.htm#gbacartrealtimeclockrtc
を見ると、普通の3線シリアルのRTCが汎用I/Oポートに繋がってるだけみたい。
http://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名前は開発中のものです。
2009/12/18(金) 02:19:08ID:+ECztpCI808名前は開発中のものです。
2009/12/18(金) 02:23:34ID:en3rwnMo809名前は開発中のものです。
2009/12/18(金) 19:15:50ID:qBiN8wfk それGPLだからな
それ使ったものをどこかで公開するときは一緒にソースも配布するようにしろよ
それ使ったものをどこかで公開するときは一緒にソースも配布するようにしろよ
810名前は開発中のものです。
2009/12/19(土) 00:09:05ID:x2u0UE4k そのままで動かなくて苦労したけど
最終的には出来ました
本当にありがとうございます
最終的には出来ました
本当にありがとうございます
811名前は開発中のものです。
2010/01/05(火) 21:27:52ID:pzmXnMW+ エミュレータで動くのに実機や
実機BIOSで動かしたエミュレータで動かないって
どうゆうことなの?
実機BIOSで動かしたエミュレータで動かないって
どうゆうことなの?
812名前は開発中のものです。
2010/01/06(水) 00:55:22ID:32aIAfzG ヘッダに適切なデータが入っているかチェックして、無ければ動かないようになってる
そのデータはdevkitARMに同梱されてるgbafixで埋めれ
そのデータはdevkitARMに同梱されてるgbafixで埋めれ
813名前は開発中のものです。
2010/01/06(水) 23:02:48ID:glp7KWm8 thx
分かりました。
分かりました。
814名前は開発中のものです。
2010/05/27(木) 18:01:00ID:t7j8nc4S GBAって単純に考えればSFCの2〜3倍くらいのスペック?
815名前は開発中のものです。
2010/05/27(木) 21:25:00ID:wK0RKXLp CPUだけでも軽く8倍以上はある
816名前は開発中のものです。
2010/05/29(土) 02:02:41ID:405QXtv/ >>815
謙虚だな。
謙虚だな。
817名前は開発中のものです。
2010/05/30(日) 03:22:44ID:nDVa0oLW 理論値高くても実際に出たゲームはSFCに毛が生えた程度だったな
818名前は開発中のものです。
2010/05/30(日) 10:00:46ID:sxXB+X5d wikiにはsfcと同程度って書いてあるけど詳しくないからよくわからん
はやくgbaで作ってみたいなー
はやくgbaで作ってみたいなー
819名前は開発中のものです。
2010/06/01(火) 09:59:10ID:ti3pNW1a820名前は開発中のものです。
2010/06/01(火) 21:29:48ID:O24QPlO5 派手さとか関係なくGBAはその程度の性能ってだけ。
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- れいわ議員「母親はね、子どもを戦争に行かせるために産んだんじゃないんだよ」 高市総理に“10秒回答”迫り、残り5分は“独壇場”★3 [♪♪♪★]
- 中国国防省が再反論 SNSで公開した音声とは“別の通報”で日本に訓練の時間や海域を通報したと主張★3 [夜のけいちゃん★]
- BreakingDown選手がくも膜下出血、瓜田純士、平手打ちを行った江口響は「もう格闘技も辞めます。責任取りたいです』とまで言ってきてる」 [muffin★]
- フィンランド、ミスや国会議員つり目投稿 くり返されるアジア人差別 ★4 [蚤の市★]
- 資さんうどんが「PayPay」の取り扱いを停止 他のキャッシュレス決済は引き続き利用可能 [少考さん★]
- こども家庭庁、2026年から“独身税”を開始、年収200万なら年4200円、年収400万なら年7800円 ★7 [お断り★]
- ダーケストダンジョンマスター来てくれ!
- 【速報】高市早苗、文春砲wwwwwwwwwwwwwwwwwwwwwwwwwwwww [339035499]
- 今オナニーしながらスレ立てしてる。お前らがスレ開く頃に射精するよ
- 反安倍・プーアノン・親イスラエル・反高市の勝利だったよな [805596214]
- ハムチャンが飼い主の指をおうちに持って帰ろうとする現象に名前をつけたい
- 明日体育だからオナできない
