[過去ログ] ゲームボーイアドバンス(GBA)非公式開発 Part2 (1002レス)
上下前次1-新
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
196(1): 162 2005/06/08(水)23:15 ID:aq/RdM9p(1) AAS
ヒントがあるかと思ってnewlibのコンパイルに挑戦
makeは出来たっぽいけどmake installが上手くいかん
でもlibc.aは出来たし(同じとは限らんが)、malloc等標準ライブラリのソースも
付いてたのはうれしい発見だな
#おかげでmemcpyが8bit毎にコピーしてるのが確かめられた
ふーん、libc.aって***.oをarで固めたものなんだ。
やっぱり組み込み側の知識が足りんなぁ
省3
197: 2005/06/09(木)01:51 ID:cFLah592(1) AAS
>>196
おいおい、ゲーム製作とは違うところに逝ってるぞw
198(1): 2005/06/09(木)12:45 ID:TWsYVQDp(1) AAS
質問が途切れたみたいなので質問
PCMの合成はどうすれば出来るのでしょうか?
ゲーム製作時にどのチャンネルはBGMとか決めておくものなのでしょうか?
(英語の説明書が理解できなくて海外のサウンドドライバの使い方がわからない orz
199(1): 2005/06/09(木)15:55 ID:NH9D76hP(1) AAS
>>198
PCMでいいんだよね?なら足し算
効果音をどうしたいかだよねぇ。
ファミコン時代なんかBGM使っているチャンネルで効果音を割り込ませて鳴らしてたな。
200(2): 2005/06/09(木)16:40 ID:tx6qK9Bb(1) AAS
>>199
そんな簡単な方法でいいので…けどそう簡単でもないか
足し算結果をどっかに置いといてDMA転送元にそこを指定でいいのですかね?
まぁとりあえずRUNしてみます
201(1): 2005/06/09(木)17:35 ID:Cuk1n6wp(1) AAS
>>200
オーバーフローチェックをどうするかだけ注意
たとえば4重合成するのなら、最初から1/4音量データを用意するとか。
シフトしてから加算でもいいけどな。
202: 2005/06/09(木)18:04 ID:txnsDHBq(1) AAS
>>201
signed shortで合成しておいて、後で一括してクリッピングしてもいいかもな
203: 2005/06/10(金)00:05 ID:3crWFAgA(1) AAS
>>200
つ 外部リンク:belogic.com
204: 2005/06/10(金)14:55 ID:YPq61nfL(1) AAS
すっごい素人なんだけどBGMって割り込みで鳴らすの?
205: 2005/06/10(金)17:17 ID:sKosQ+eo(1) AAS
音用のメモリがあるからそこにDMA転送で入れる。
DMAはTimer割り込み(正しくはFIFOとか言うのが割り込んでるらしいが)で送らせるように設定しておく。
ついでにビットレートはTimerの設定速度によって決まる(なんか勝手にゲーム本体がそうする)からTimerで使う値を多く取れば
低解像度(ビットレートが少ない低音質の音楽ファイル)の音が鳴る(高音質のはむちゃくちゃ遅くなる)
だから使いたい音のビットレートによってTimerに入れる値は変わる。
…らしい(所詮勘でプログラムしてるから理解していない厨wwww
206: 162 2005/06/13(月)00:15 ID:WeLHi+pU(1) AAS
チラシの裏:
newlibのmake,make install成功。
上手くいかなかった原因はdevkitadb/binがPATHの検索順で自分でコンパイルしたarm-elf-**より先にあったためと思われる
対処方法としてdevkitadb/binをPATHからはずしてbinutils,gcc,newlibを作成
ありがとう、みんな
207: 162 2005/06/20(月)10:45 ID:nuWkCFET(1/4) AAS
#mallocから逃げてるオイラ
memcpyの代わりにDMAを使ってローカル変数配列をVRAMに描くことで最適化できないかと思い
for(行数分){
// memcpy();
DMAmemcpy(); //中でDMAをつかってる
}
こんな感じでDMAをつかってmemcpyしたら速くなるかな?とおもって作ってみました。
省4
208(1): 2005/06/20(月)11:08 ID:eN4g0qsd(1/2) AAS
DMAmemcpy();の中身か、せめてパラメータを書いてくれないと全く要領を得んな。
・memcpyと違ってDMAの転送サイズ指定は2バイトか4バイト単位
・表示期間中はDMAでVRAMへの転送は出来ない
・そもそもDMAの設定方法が間違ってる
このどれか。
209: 162 2005/06/20(月)12:03 ID:nuWkCFET(2/4) AAS
>>208
さんくす
たぶん、「 表示期間中はDMAでVRAMへの転送は出来ない」これだろうなぁ
1番はエラーチェック入れてるし、3番は多分間違ってない、と思うし
描画タイミングなんて考えたこと無かった
う〜ん、イベントループで描画用イベントをつくり、描画はそちらにまとめないと駄目だなぁ・・・
210: 2005/06/20(月)13:03 ID:eN4g0qsd(2/2) AAS
それにしても動かないってことは無いだろ。
数ミリ秒ロックかかるだけなんだから。
211(1): 162 2005/06/20(月)13:29 ID:nuWkCFET(3/4) AAS
動かない、ってのは誤解させたか
正確に言えば、その部分の描画処理をしてくれない、かな
四角く塗りつぶす関数
for(y行分){ for(x幅){ VRAMへ書き込む } }
を
for(x幅){ローカル配列に書き込み}
for(y行分){ローカル配列をDMAmemcpyでVRAMへ}
省3
212(1): 2005/06/20(月)13:56 ID:3V9hgg4C(1) AAS
>>211
DMA busyチェック/終了確認してるかい?
同じDMAで転送中に更に転送開始したら、中断する。
213(1): 162 2005/06/20(月)14:12 ID:nuWkCFET(4/4) AAS
>>212
それだ、やっと頭の中でつながった!サンクス
214: 2005/06/21(火)01:26 ID:tMrqvmNm(1) AAS
>>213
で、何作ってんの?
AVGサンプル(DMA使用)ならゲ研にあるよ
215: 162 2005/06/21(火)17:36 ID:2bu24OLk(1) AAS
一番の目標は、組み込み向け開発ノウハウの勉強
それも、単純なLEDだけの世界じゃなくて、ある程度GUIがある組み込み。
でもそれだけじゃ漠然としすぎてどこから手をつけたらいいか迷うので
今作ってるのはパズル。「数独」ってしってる?
これならグラフィックやシナリオで迷わなくていい。
次はマインスイーパかソリティアでもつくろうかなって思ってるところ
216(4): 2005/06/25(土)01:31 ID:e5faRMhJ(1) AAS
ちょっと質問です。
自分もGBAで何か作ってみようと思い、まず画像を表示する程度のものを作りました。
が、エミュ(VisualBoyAdvance)上では問題無く動くのですが、実機に転送すると動きませんでした。
試しに、外部リンク:j-gbadev.hp.infoseek.co.jp にあるサンプルを転送してみましたがやはり動かず。
外部リンク[html]:optimize.ath.cx のパズルは動作しましたが、逆にこちらはエミュ上で動かず。
実機で動作させるには何が必要なのでしょうか。
217: 2005/06/25(土)08:06 ID:BG1w9J0p(1/2) AAS
>216
パズルの方はフラッシュに焼いて実行するなら、
makefile の LDFLAGS の -Ttext=0x02000000 を
-Ttext=0x08000000 にするんじゃない??
218: 2005/06/25(土)08:09 ID:BG1w9J0p(2/2) AAS
誤:パズルの方はフラッシュに焼いて実行するなら
正:パズルの法はエミュレータやフラッシュに焼いて実行するなら
219: 2005/06/25(土)14:05 ID:8t7IF5k/(1) AAS
optimizeのパズルサンプルをエミュレータで動かしたい場合は拡張子を.mb.gbaにすればいい。
>>216が作ったのはたぶんROMに焼いて動かすためのイメージだから
実機で動かすにはFlashROMを買ってくるか、
実機のRAMに直接転送して動くように作り直す必要がある。
プログラム研究所のサンプルも同様。
220: 2005/06/25(土)16:01 ID:IKOdqJ6y(1) AAS
>>216
実機で起動するときNINTENDOロゴがちゃんと表示されるか?
表示されていなければヘッダを修正する必要がある。
221: 216 2005/06/25(土)21:10 ID:aa82OW6G(1) AAS
やはり原因は0x08000000 -> 0x02000000でした。
無事実機でも動きました!
皆様色々ありがとうございました。
222: 2005/06/26(日)02:14 ID:YOehEJSa(1) AAS
const int __gba_multiboot;
これもあったなあ
223: 2005/06/28(火)09:12 ID:lhzk0oNN(1) AAS
外部リンク:www.bidders.co.jp
224: 2005/07/05(火)22:13 ID:ioT9KUEt(1) AAS
とりあえず環境落として始めてみたんだが、
ゲーム作るためのライブラリを作るだけでおなかいっぱいになりそうだ_| ̄|○
225: 162 [age] 2005/07/07(木)22:26 ID:IdWw8xni(1/2) AAS
一応動くようになりました。
ちゃんと動くかな?
質問に答えてもらったお礼です。
外部リンク[lzh]:up.isp.2ch.net
外部リンク[cgi]:up.isp.2ch.net
226: 162 [age] 2005/07/07(木)22:28 ID:IdWw8xni(2/2) AAS
操作方法は
・selectでメニュー
・Aでセルの数字が増える
・Bでセルクリア
・十字キーで移動
です
227(1): 2005/07/12(火)03:52 ID:gP0YBH4B(1) AAS
すみません。ど素人な質問なんですが、できればお答え下さい。
GBAのプログラムはだいたいどの位までの、データを実機で使えるものでしょうか?
個人的に、電子辞書+単語帳代わりにデータを写して使いたいのですが、
200Mbyteぐらいいけますか。また、基本的な組み込み系のプログラムはまるで触ったことのない人間なのですが、
C言語とC++をちょっとさわったくらい(ベターC程度にしか使えません)でも扱えるような物でしょうか?
あと、起動時間は10秒ぐらいでしょうか?
228: 2005/07/12(火)04:50 ID:vNvKsOE9(1) AAS
ROMが最大32Mbyte RAMが256kbyte+32kbyte
言語はCが使えれば充分 C++はベターCで全然よし
起動時間はメーカーロゴが入るので5秒くらい メーカーロゴを含めなければ一瞬
ビットマップにフォントを表示できるようになれば簡単な辞書ならすぐ作れると思う
ただし容量が少ないのでデータを厳選するか きつめに圧縮するかしないと
いけないだろうな
頑張れや
229: 2005/07/12(火)23:31 ID:mrySnnDH(1) AAS
>>227
キミの好きそうなprintf()もscanf()もないからやめとけ
素直にザウルスか電子辞書買っとけ
230(1): 162 [age] 2005/07/13(水)14:04 ID:QdmkZAfq(1) AAS
printfくらいは自作してもいいけど入力どうしようかな?
ケータイみたいな仮想キーを作ってそれで入力する、かなぁ
これなら12この仮想キー(ボタン?)で済む
「ホームランド」みたいな入力システム作れればいいんだろうけど、ムズカシイ・・・
231: 2005/07/13(水)18:15 ID:D6iTUR2S(1) AAS
>>230
RとLボタンで文字種変更、十字キーで文字変更(右左で子音・上下で
母音変更とか、ケータイ方式とか)でAボタンで決定、Bでクリアとか。
SELECTでエディットモード抜けて十字キーかRLボタンでカーソル移動とか。
232: 2005/07/13(水)19:05 ID:wV9jl+rf(1) AAS
どうせやるならNDSでやったほうが良いと思う。入力デバイスの問題で。
実機で動かす方法は知らんが。
233(1): 2005/07/13(水)21:26 ID:oLrfzE3q(1) AAS
ゆうていみやおうきむこうでいいやん
234: 2005/07/17(日)21:50 ID:ATGoGOE4(1) AAS
>>233
ドラクエですな。
235(2): 2005/07/30(土)16:31 ID:rH8bjVXA(1/2) AAS
とあるラベルを4バイトアラインで配置したいときってどうするんでしょう?
今は配置したいラベルの前に、
asm(".align 4");
って入れているんですが、何か違うような、もっとすっきりした方法があるような気がします
236: 235 2005/07/30(土)16:42 ID:rH8bjVXA(2/2) AAS
>>235
ごめん。上の方法、正しくリンクできなくなります。
誰も使わないと思うけど、念のため…
237(1): 2005/07/30(土)20:02 ID:XQpHvBfH(1) AAS
>>235 gcc なら __attribute__((aligned(4))) とか
238(1): 2005/08/01(月)02:57 ID:dbKAP3Zw(1) AAS
>>237
できました。ありがとうございます。
それはそうと、gccでラベル全てをアライン付けるオプション試してみたけど、何も変わりませんでした
devkitのこれとは違うんでしょうか。自分が意味を取り違えてる可能性のほうが高いと思うけど。
239: 2005/08/01(月)08:54 ID:4ELQCf+V(1) AAS
>>238 そんなオプションあったっけ?
240: 2005/08/01(月)09:19 ID:FTLI7gLF(1) AAS
無いはずだが。何かと勘違いしてるんじゃないか?
241(1): 2005/08/12(金)17:27 ID:tqMQkZm3(1/2) AAS
ちょっと程度の低い事ですが質問です。
スプライトの画像を左右を逆転して表示したいのですが、
sprites[0].attribute1 |= 0x1000;
とかやってますが、どうもうまくいきません。
どのようにすれば、反転して表示できるのでしょうか。
242(1): 2005/08/12(金)19:16 ID:oL+JILND(1) AAS
attribute0の拡縮フラグは0になってるか?
それぐらいしか思い浮かばないが・・・。
243(2): 2005/08/12(金)19:42 ID:3HIzF5vl(1) AAS
>>241
とりあえず、spritesの構造体定義を晒せ
話はそれからだ
…まさか、VBlank期間外にOAMを書き換えようとしてないだろうな?
244: 2005/08/12(金)21:11 ID:tqMQkZm3(2/2) AAS
>242
うう、まさしくそれでした。
削ったつもりだったのですが、色々試してた時のが残っていて。。。という感じでした。
兎も角、ちゃんと反転表示はできるようになりました。ありがとうございます。
>243
まんま「GBAプログラミング研究所」さんのサンプルを利用してます。
245: 2005/08/13(土)01:01 ID:NcqonvKf(1) AAS
>>243
垂直表示期間中に書き換えても、その状態が継続しているのであれば
次フレームで反映される。
246: [age] 2005/08/15(月)23:35 ID:zl773reD(1) AAS
247: 2005/08/22(月)13:25 ID:xaZ8lnmP(1) AAS
DMAに手を出してみたけど…むつかしいね。
というか、devkitのDMA転送マクロをそのまま使うと、ちゃんと動作しないときがあるっぽい
(同じチャンネルを使い、連続して転送を実行した場合?)
別のサイトから拾ってきたソースのを使ったらうまくいったけど…ごめん。URL忘れた。
248(1): 2005/08/27(土)22:41 ID:hXi5z/ZH(1) AAS
DevkitAdvanceを使えと言われそうですが、都合により Thumb/ARM GCC の環境を作ろうとしていて、
そのために必要な libg.a を探しています。
ぐぐって探したところ、Glibc というライブラリに入ってそうな感じがしたのですが
ダウンロードしてアーカイブをバラしても見つかりませんでした。
どなたか持っている方がいたらアップして頂けないでしょうか?
外部リンク:gamdev.org
249(1): 248 2005/08/28(日)16:48 ID:rrKRiOqt(1) AAS
すいません、自己解決しました。
外部リンク[cgi]:eodevtools.sourceforge.jp
ここにある eota-crosslib-0.8.1.tar.gz というアーカイブを展開したら出てきました
250: 2005/08/30(火)22:10 ID:4nbPwlJS(1) AAS
自作の同人ゲーをブートスティックに入れて売ってみたいんだが、
やっぱオプティマイズの中の人の許可が無いと色々怒られっかな。
251: 2005/08/31(水)00:14 ID:mrP0HODf(1/2) AAS
オプティマイズの中の人も任天堂に許可を取って売っているわけではない
規模にもよるだろうけど構わないんじゃないの
252(1): 2005/08/31(水)04:25 ID:ZKQSe8Kh(1) AAS
スプライト表示の際ブレンド指定したら、全てのスプライトが半透明になっちゃったんですが
何か気をつけるべきことってありましたっけ?attribute0のb10,11はきっちり設定しています
あとちょっと確認なのですが、
スプライト#0はブレンド、#1はDARK…みたいにはできませんよね?
あくまでもブレンドモードなら128枚全てブレンド(か通常表示かwindow)、DARKなら128枚全てDARKで
253(1): 2005/08/31(水)12:22 ID:mrP0HODf(2/2) AAS
>>252
ちょっと勘違いしてる
REG_BLDMODは面全体に掛ける指定で、OBJを指定したらOBJ面全部が半透明になる
スプライトattribute0の半透明属性は、スプライト一個一個に対して個別に
ブレンドを指定したいときに使う
スプライトを一個だけ半透明にしたいのならREG_BLDMODのOBJフラグは立てないように
また、attribute0で半透明にしておいて、さらにREG_BLDMODでDARKにすることは可能らしい
254: 2005/08/31(水)22:01 ID:sP0tVan0(1) AAS
>249
それは x86 で動く EOTA という OS 専用のバイナリなので、他では使えませんよ
255(1): 2005/08/31(水)22:17 ID:8NGuRNsc(1) AAS
あちゃ、Vブランク関係のせいでコンパイルがうまく通らなかったのはそれのせいか・・・?
(↑の関数を一つコメントアウトしたら通ったけど)
経験が浅いので正直よくわかりませんが
256: 2005/09/01(木)02:23 ID:ZXvSssjt(1) AAS
>>253
ありがとうございます。
特定のスプライトだけ半透明にしたいときは、
パラメータはREG_COLEVで与えるだけで、REG_BLDMODは0のまま
半透明にしたいスプライトのattribute0をつつくってことでいいってことですよね。
いろいろこねくりまわしてみたす。
257: 2005/09/01(木)22:04 ID:n0AYkfq0(1) AAS
>>255
勘で書いてますが、コンパイルを通すためだけに libg.a が必要なら
libc.a があるならそれを libg.a のファイル名でコピーをして代用に
すればよいかもしれません。
258: 2005/09/13(火)21:09 ID:2pOo5niL(1) AAS
前に出てたヒトフデのゲームをバージョンアップしてみた
外部リンク[zip]:gamdev.org
259(3): 2005/09/14(水)02:09 ID:8Hl+k1Y/(1) AAS
BASIC言語で開発が出来ると知り、初めて何か作ってみようと思い、
DragonBasicという開発ソフトを探していたのですが、見当たりませぬ…orz
入手可能なサイトの誘導 or うpきぼんぬ…
260: 2005/09/14(水)02:26 ID:FaJEB6bA(1) AAS
>>259
検索してみたけど、サイトなくなっちゃってるね
ドメイン乗っ取られたのか、開発やめたのか・・・
261: 2005/09/14(水)07:33 ID:TDMNN+PU(1) AAS
>>259
ん?
外部リンク:db.zhilaware.starfusion.org
外部リンク:dragonbasic.tk
262: 2005/09/17(土)00:11 ID:bFNjE3ho(1) AAS
DragonBasicってもう、制限外れたんですか?
だったらやってみようかな・・・
263(1): 2005/09/20(火)01:06 ID:AHd/OE8y(1) AAS
64kbの制限はもう無くなったみたい。
これで日本語の資料があればいいんだけどね。
264(1): 2005/09/20(火)23:05 ID:hW/W/PPl(1) AAS
>>263
最終版?(2.0.2)での制限は120k
外部リンク:db.zhilaware.starfusion.org
外部リンク:dragonbasic.tk
ここでダウンロード可能なのも同一のもの
制限が解除されていないのも、今確認しました
DragonBasicでも十分にできることがあるんで
省1
265(2): 2005/09/20(火)23:27 ID:IkrO+LDz(1) AAS
つ Binary Patch
266(1): 2005/09/21(水)22:15 ID:UAyFnn//(1) AAS
>>265
すんません。もうちょっとヒントください
267: 2005/09/21(水)22:19 ID:LFo8CgJX(1) AAS
>>265じゃないけど
お断りだ
268: 2005/09/22(木)01:18 ID:M4uqk1uN(1) AAS
>>266
ヒント:等価交換の法則
269: 259 2005/09/22(木)06:03 ID:LA1GrTxo(1) AAS
亀だが、サンクス
(長らくアクセス規制の巻き添えをくらっていたもので…)
270: 2005/09/23(金)16:35 ID:fg66MsQy(1) AAS
VBAだとレジスタの状態とかがチェックできることを最近知ったんだけど、
他のエミュレータでこういう開発者向け機能が付いたのってないのかな
271(2): 2005/09/23(金)21:55 ID:X68oZ9tD(1) AAS
MappyとNO$GBAは開発者向けやね
たとえばMappyは単体でbreakpointが指定できる
272: 2005/09/24(土)12:36 ID:v0cMxf3H(1) AAS
>>271
横レスですが、ありがとー
早速導入してみます。
今まで(VBA)は0x0001に書き込んで通過したしてないを確かめてたもので…
273(7): 2005/09/25(日)10:32 ID:MQ69sEoY(1) AAS
デバッガとその使い方を探しています。
開発環境は、devkitARM+libgba(cygwin上でビルド)です。
試したのは、
- gdb6.0
- VBAのサイトにあるinsight
- MappyVM
なんですが、gdbの接続に関する考え方やMappyVMでのブレークの貼り方などVCにどっぷりだった人間には敷居が高すぎます。
省2
274: 2005/09/25(日)14:10 ID:bCS0/Wcg(1) AAS
>>273
敷居が高いのなら手を引けばいいんジャネーノ?
275(1): 2005/09/25(日)18:33 ID:PrD3dmju(1) AAS
>>273
外部リンク:vba.ngemu.com
ここ見ても分からない?
no$gbaはクラック対策のためwebには無いはず。メールすれば送ってくれるよ。
>>271
IDがX68
276(2): 273 2005/09/26(月)17:57 ID:y5B9QtHo(1) AAS
>>275
そこも見たんですが・・・。
で、こんなページもあったので読んでみたのですが。
外部リンク[html]:www.embedded.jp
VBA側をどうしたらいいのかわかりません。
とりあえず、NO$GBAの作者にメールしました。
上下前次1-新書関写板覧索設栞歴
あと 726 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.024s