ゲームボーイアドバンス(GBA)非公式開発 Part2at GAMEDEV
ゲームボーイアドバンス(GBA)非公式開発 Part2 - 暇つぶし2ch750:名前は開発中のものです。
08/10/22 12:38:33 nJuXMnla
ヤフオクで1点だけ見かけた

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

752:名前は開発中のものです。
08/11/16 05:12:20 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:名前は開発中のものです。
08/11/16 12:27:42 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:名前は開発中のものです。
08/11/16 18:17:08 9y44eiNe
ブレゼンハムでググれ
こんなところで聞くよりいい解説がどこかにある

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

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

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

758:名前は開発中のものです。
08/11/19 03:13:42 iECaJTAb
>>757
rand() % 10 + 1

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

759:名前は開発中のものです。
08/12/03 21:17:08 ZUsaZJd3
Homebrew BOF

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

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

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

URLリンク(www27.atwiki.jp)

マルチすまん


760:名前は開発中のものです。
09/01/09 21:44:01 JmGx4bkn
age

761:名前は開発中のものです。
09/01/09 21:54:46 JmGx4bkn
おtingting

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

763:名前は開発中のものです。
09/01/17 21:22:00 /uotE80P
GBAでMP3を再生する方法を教えてください

764:名前は開発中のものです。
09/01/18 02:54:34 eSDINTKa
市販プレーヤー買った方が手間取らない

765:名前は開発中のものです。
09/01/18 05:28:35 vCC7QsmR
プレイやん

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

767:名前は開発中のものです。
09/01/18 14:23:20 +OkZIPbY
PCでそのプログラムは作ってみた?

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

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

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

771:名前は開発中のものです。
09/02/06 19:56:14 BaBBx5bc
GBAの性能じゃmp3プレイヤーは厳しくないか?

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



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

774:772
09/02/15 06:41:13 boVc3Mdt
レスありがとうございます。
VBAの設定も間違いなかったみたいです。

あれから色々試してました。
実は多重再生の為に、FIFOにコピーするバッファはサウンドデータと別にしていて、
TIMERのハンドラ内で手動でDMAを使ってFIFOにコピーをしてました。
鳴らないのはダイレクトサウンドAの方(BGM用)で、
ダイレクトサウンドB(効果音用)が鳴った時に何故かAも鳴ったので
調べてみると、効果音用のTIMER1が動くと鳴ると解りました。
とりあえず、AとBのFIFOコピーにどちらもTIMER1を使用することで一応解決しました。
タイマーを分けると鳴らなくなる理由がわからないままですが。
もしやDSOUNDCTRL(0x4000082)以外にも、
TIMERとダイレクトサウンドを関連付けるレジスタがあるのでしょうか?


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


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

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

URLリンク(nagasaki.cool.ne.jp)

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


778:名前は開発中のものです。
09/03/20 18:11:44 RqzCAhzX
GBCの板は昔あったんだが、過疎すぎて落ちちゃった

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

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

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

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

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

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

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

782:名前は開発中のものです。
09/04/23 20:20:06 jG2DENZH
ここってまだ人いますかね……

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

783:名前は開発中のものです。
09/04/23 23:16:10 GrL4nFHE
Pogoshell resetでググってみた。

URLリンク(boards.pocketheaven.com)
になんか書いてあるような気がする。

あとは自分でガンバレ

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

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

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

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

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

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

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

790:名前は開発中のものです。
09/08/29 13:25:09 ajW9NjPM
>>786
> wavじゃサイズ大きすぎる

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

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

URLリンク(wiki.multimedia.cx)
URLリンク(wiki.multimedia.cx)

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

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

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



792:名前は開発中のものです。
09/09/25 03:10:20 JAA61hM3
77.8MHzがオススメだよ。

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


794:名前は開発中のものです。
09/09/27 16:50:00 fPKTk+yY
>>792
ZIP-FMか!

>>793
ネタをネタと(ry

795:791
09/09/30 04:44:16 BCNooBfe
なん・・・だと?
出来るかわかりませんが市販のゲームを調べてみます。


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

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


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

軽くポイントだけ。

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

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

799:名前は開発中のものです。
09/10/04 23:37:24 vY9mcI2T
void mixAudio(); // プロトタイプ宣言
void mixAudio() { ... } // コード
があるとして
void mixAudio() IWRAM_CODE;
IWRAM_CODE void mixAudio() { ... }
にして、そのソースを-marmでコンパイルするだけで、おそらく負荷が1/3になる。

手元で軽く組んでみたが馬鹿正直に作って2チャンネル合成でHBlank30弱だったのが
IWRAM_CODEにしたら10弱になった。

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

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


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

802:wKpZsteMsIgntl
09/10/23 02:07:30 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:名前は開発中のものです。
09/11/23 03:07:00 mfSHcmeu
300

804:名前は開発中のものです。
09/11/27 20:00:11 6JlPxnBm
懐かしいなぁ
毎日このスレチェックしてたよ

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

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

URLリンク(nocash.emubase.de)
に書いてあるが、bit0からSCK, SIO, CS。
使わないと思うが、IRQも繋がっているのでアラーム割込みも使えるっぽい。

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

807:名前は開発中のものです。
09/12/18 02:19:08 +ECztpCI
>>805
ソースあった
URLリンク(www.brolinembedded.se)
rtc.cを読んだ感想。マクロ使えよ…

808:名前は開発中のものです。
09/12/18 02:23:34 en3rwnMo
>>806-807
ご親切にありがとうございます。

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

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

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

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

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

813:名前は開発中のものです。
10/01/06 23:02:48 glp7KWm8
thx
分かりました。

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

815:名前は開発中のものです。
10/05/27 21:25:00 wK0RKXLp
CPUだけでも軽く8倍以上はある

816:名前は開発中のものです。
10/05/29 02:02:41 405QXtv/
>>815
謙虚だな。

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


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

819:名前は開発中のものです。
10/06/01 09:59:10 ti3pNW1a
>>815
×CPUだけでも
○CPUだけは

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

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

820:名前は開発中のものです。
10/06/01 21:29:48 O24QPlO5
派手さとか関係なくGBAはその程度の性能ってだけ。

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

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

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

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


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

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

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

828:名前は開発中のものです。
10/06/16 03:38:29 SCFm7Y7R
アーキテクチャ的に全然違う

829:名前は開発中のものです。
10/06/18 17:37:40 2GoixfW1
これ見てよ↓
URLリンク(livedoor.2.blogimg.jp)
ばらまこうぜ!


830:名前は開発中のものです。
10/06/19 08:24:44 jGSPC2iC
ネトウヨは巣に帰れよ
どんだけ貼ってんだよ

831:名前は開発中のものです。
10/06/24 22:48:46 b7oLXqWU
お前こそ祖国に帰れよ

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


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch