- 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/
- 120 名前:名前は開発中のものです。 mailto:sage [05/02/24 18:27:01 ID:3vx/UQTw]
- 連続書き込み失礼。
const修飾するとROM領域にマッピングされる。 広大でリニアなメモリ空間のあるWindows環境と比べて、メモリが不足してないか、分断してないか、どの領域を使い分けるか、領域外アクセスしていないか、を常に頭に入れておく必要がある。 個人的には面倒くさいのでEWRAMにmallocで終わり。ちなみにEWRAMは256kb。
- 121 名前:114 mailto:sage [05/02/24 18:53:47 ID:kxDRQPBZ]
- おぉ、ありがとうございます。
GBA初心者なものでメモリ配置とか無視してました。 というより、知らなかっただけなんですが。 256kb以内なら良いと思ってたんですが、とんでもない間違いだったと。
- 122 名前:名前は開発中のものです。 mailto:sage [05/02/28 23:41:58 ID:k73Ny1KH]
- でかいマップを扱うときに
うまく切り替えて相対表示させるいい方法ありませんか
- 123 名前:名前は開発中のものです。 mailto:sage [05/03/01 08:43:23 ID:/qSC9hpB]
- 32x22(240x160+上下左右隠蔽8x8分)のマップを表示して見えない部分を書き換える。
8x8以下の微動分はオフセットでコントロールする。 具体的に右に動く(左にスクロールする)時は、全体を1map(8x8)分をDMAなりCPUSetなりで左にコピーして右端一列を書き換える。 上下左右一端は見えない領域だから無限マップのように見える古典的手法。 GBAはファミコン、PCEクラスの使い古されたテクニックが使えるので古い文献を当たってみるのもいいかもしれない。
- 124 名前:名前は開発中のものです。 mailto:sage [05/03/01 14:55:44 ID:4qmU95zQ]
- 画面一杯でない、CPUが有り余っている、同時に使うキャラクタパターンが異常に多い、不定形or生成キャラクタを使う、前後関係が複雑(3面以上?)、8x8の倍数以外…
めんどいからMODE4でもいいんじゃね?
- 125 名前:名前は開発中のものです。 mailto:sage [05/03/01 19:56:13 ID:4qmU95zQ]
- >>122
ttp://j-gbadev.hp.infoseek.co.jp/cgi-bin/gba_bbs/gba_bbs.cgi?mode=log&no=836 ttp://j-gbadev.hp.infoseek.co.jp/cgi-bin/gba_bbs/gba_bbs.cgi?mode=log&no=837 ttp://j-gbadev.hp.infoseek.co.jp/cgi-bin/gba_bbs/gba_bbs.cgi?mode=log&no=838
- 126 名前:名前は開発中のものです。 mailto:sage [05/03/16 04:12:19 ID:RhUd5twa]
- WINDOWSの富豪的プログラムに慣れ親しんでしまってて、
高速化に鈍感だったのを思い知らされる...。GBAに。 というかPCじゃ速すぎてそうならざる得ない所が痛い。
- 127 名前:名前は開発中のものです。 [05/03/16 09:36:23 ID:6URp9XZB]
- GBAプログラム研究所にDSデモのスクショがある
- 128 名前:名無し mailto:sage [05/03/16 10:21:50 ID:KTADbIgb]
- ほんとだ。
つーか、エミュもうあったのか
- 129 名前:名前は開発中のものです。 [05/03/18 08:57:57 ID:xdEzd/mQ]
- GBAプログラム研究所にDS開発環境の詳細がある
- 130 名前:名前は開発中のものです。 mailto:sage [05/03/18 11:30:21 ID:UpZJvGe+]
- どうする?もうDSに移行したい?
- 131 名前:名前は開発中のものです。 [05/03/18 11:49:39 ID:hgCKeqrG]
- 98SEなんでインスコ出来ないんです><
- 132 名前:名前は開発中のものです。 mailto:sage [05/03/18 12:00:09 ID:UpZJvGe+]
- ちょっとまて。
2000とxpの方法が書いてあるだけでそんなことは・・・。 ためしてみるから早まるな。
- 133 名前:名前は開発中のものです。 mailto:sage [05/03/18 12:11:28 ID:+JmJ5BHL]
- www.drunkencoders.com/tools/ndslib.zip
のリンクが切れてるけど www.aaronrogers.com/nintendods/files/ndslib.zip でいいの?
- 134 名前:名前は開発中のものです。 mailto:sage [05/03/18 12:48:44 ID:UpZJvGe+]
- 中間報告だが、
CMD.EXEが98SEになさそうだな? おそらく別の方法を探すしかない。
- 135 名前:名前は開発中のものです。 mailto:sage [05/03/18 14:02:37 ID:UpZJvGe+]
- 8メガのほうは展開されないので諦める。
rar形式のほうはOKだったが、 まだできないんだが。 ndslibのinstallで詰まる。 神が降臨するのを待つしかないか?
- 136 名前:NAGA mailto:5ch掲示板が出来たね。 [05/03/18 14:24:59 ID:GusXn0Ti]
- DSがPCで?
- 137 名前:名無し mailto:sage [05/03/18 20:44:41 ID:MWRJcpGT]
- >>134
MS-DOSプロンプトでいいんでない? 98SEならcommand.exeだったと思うけど
- 138 名前:名前は開発中のものです。 mailto:sage [05/03/18 21:00:09 ID:UpZJvGe+]
- make書き換えでなんとかなりそうですか?
ちょっとやってみます。
- 139 名前:sage [05/03/18 21:15:43 ID:c4Wp8MOS]
- command.comです。
- 140 名前:名前は開発中のものです。 mailto:sage [05/03/18 22:17:38 ID:UpZJvGe+]
- 俺の気のせいだったのかも。
template.nds.binが生成されたということは成功なのかもしれん。(←かなり疑問が残る。) Win98SE 疑問とは install.bat実行中に YESかNOと聞いてくるはずのところで ディレクトリの指定が違います。が6行でて終了。
- 141 名前:名無し mailto:sage [05/03/19 02:01:23 ID:rTN9pn5h]
- はやく実機で動してー
- 142 名前:名前は開発中のものです。 mailto:sage [05/03/19 11:06:09 ID:vDcym4qc]
- というかすでにエミュレータの動作環境が満たされてないっぽい。
- 143 名前:名前は開発中のものです。 mailto:sage [05/03/19 11:29:20 ID:34NDR8Jw]
- エミュレータが関連付けに対応してない(´・ω・`)ショボーン
スプライトサンプルはなんとなくわかるけどbmp表示どうやってるんだろ bmpから変換したっぽい.cソースが見当たらん
- 144 名前:名前は開発中のものです。 mailto:sage [2005/03/23(水) 10:44:39 ID:KnbzUNwA]
- 研究所のページによると
画像のフォーマットはGBAと同じらしい。
- 145 名前:名無し mailto:sage [2005/04/04(月) 20:48:59 ID:E7ZB2tjS]
- DSのAction Replay、セーブデータは読み書きできるみたいだけど
ROMのほうは読めないのかな?
- 146 名前:名前は開発中のものです。 mailto:sage [2005/04/12(火) 20:42:58 ID:sfo0NTM8]
- ndsdev2.2.6
サンプルをmakeしたものを実行しようとするとエミュレータが落ちるよ(´Д⊂グスン 漏れの環境に何か問題があるんかな・・・
- 147 名前:名前は開発中のものです。 mailto:sage [2005/04/12(火) 20:58:09 ID:sfo0NTM8]
- …即解決。
2D_Example_davrなんだけど、 StartUp Guideを読んだら、arm9.bin(エミュ用の?)が実行ファイルだったよ。 カレントに出力されたtemplate.ds.gbaを実行しようとしてたよ… arm7とかbootとか絡めてる辺り、カレントに出力されたものは実機用なのかな。
- 148 名前:名無し mailto:sage [2005/04/12(火) 21:34:59 ID:Wxb/7tj8]
- users.belgacom.net/hyperds/wmb-passme.wmv
forum.gbadev.org/viewtopic.php?t=4447&postdays=0&postorder=asc&start=510 Wireless マルチブートきたー?
- 149 名前:名前は開発中のものです。 mailto:sage [2005/04/12(火) 23:11:15 ID:6ge74tOk]
- はあっ!!スレがまだ生きている!!
というかarm9が実行ファイルだったのかぁっ!!
- 150 名前:名無し mailto:sage [2005/04/28(木) 22:21:18 ID:jhMyagtx]
- ttp://www.nintendo.co.jp/n10/seminar/index.html
DSのソフトが作れる・・・都合が合えば行ったのに
- 151 名前:名前は開発中のものです。 mailto:sage [2005/04/29(金) 21:14:42 ID:M5yck9uH]
- >>150
任天堂ゲームセミナーは相当狭い門ですぜ?
- 152 名前:名前は開発中のものです。 mailto:sage [2005/05/05(木) 11:01:50 ID:vy4ixo8o]
- >>83
コンパイルが出来ん・・・ % ./configure -C arm7tmdi -S evaluator_7t だけじゃいけないんだよな・・・ -Pも設定しないといけないしコンパイラ設定も変更しないといけないんだよな・・・ わからん・・・
- 153 名前:名前は開発中のものです。 mailto:sage [2005/05/17(火) 20:36:28 ID:X16jtpzA]
- 初心者過ぎて申し訳ないけど、
VisualHAMは支援ツール?これのみでコンパイルは出来ないの? DevkitAdvanceは入れないとダメ?
- 154 名前:名前は開発中のものです。 mailto:sage [2005/05/18(水) 05:41:26 ID:06W9q8Ma]
- コンパイル出来るぞ。
プロ研でDevkitAdvanceの導入を説明してるのは、IDEだけ使いたかったからじゃねーの。 HAM使うと最初にロゴ入っちゃうし。
- 155 名前:名前は開発中のものです。 mailto:sage [2005/05/18(水) 14:47:12 ID:L9iNmBkK]
- >>154
回答、情報ありがとう。 とりあえず環境の構築がんばってみます。 機会があればまた宜しくお願いします。
- 156 名前:age mailto:age [2005/05/19(木) 20:57:05 ID:lftmMhtg]
- なんで動かんの?と悩んでたんだが、リンク時のbssアドレス指定ミスか・・・
IWRAM領域を指定してたら足りなくなるよなぁ 質問なんだけど、スタック領域はどこに割り当てられるの? このあたりの指定はどうやってするの? ♯私はIDE、ソースデバッガとしてVisualStudioを使ってます ♯VisualBoyAdvanceとは交信できないけどね。 ♯Insightデバッガは使い方がわからん
- 157 名前:名前は開発中のものです。 mailto:sage [2005/05/20(金) 00:38:41 ID:On9mnSyy]
- >>156
ttp://www.geocities.co.jp/SiliconValley/5604/tech/EmuOnConsole.html まず2.2.2を読んでね DevkitAdvanceの場合はインストールしたフォルダのctrls/lnkscriptsに 指定が書いてあるよ。
- 158 名前:名前は開発中のものです。 [2005/05/28(土) 21:55:39 ID:Y2DuO2Y0]
- 今日から1ヶ月以内にGBAでインターネットができるようなソフトを作ろうと思うのですが、
遠隔操作ソフトを使ってパソコンから画像を発信してGBAではマウスの操作と画像を読み込むシステムにしようと思っているのですが、 なかなかよいソフトが見つかりません。もし何かよいソフトを持っている方がいたら教えて下さいお願いします。
- 159 名前:名前は開発中のものです。 mailto:sage [2005/05/28(土) 23:46:29 ID:w56wSIin]
- まずは>>158を日本語に訳してくれる有志を募ろうか
- 160 名前:名前は開発中のものです。 [2005/05/29(日) 00:44:05 ID:tpMSB+bX]
- まあ、そこまで言わなくても一行の文章を短く終わらせて書けば。
- 161 名前:名前は開発中のものです。 mailto:sage [2005/05/29(日) 02:55:21 ID:UFZ9c0zv]
- SaTaって人が全く同じことやってるよ
- 162 名前:名前は開発中のものです。 mailto:sage [2005/05/31(火) 16:11:29 ID:llLI5kWl]
- memsetは使えてるっぽいけどsprintfは使えないのかな?DevkitAdvance
-nostdlib ってどういう意味だろ? 最適化は面倒だからパスしようかな、とりあえずの目標はクリアしたり・・・
- 163 名前:名前は開発中のものです。 mailto:sage [2005/06/01(水) 01:30:53 ID:61IqLEFZ]
- このまったりとした流れなら言えそうなので質問、音楽鳴らそうと思ってダイレクトサウンドについて調べた
C言語ファイルでデータを記述するものとオブジェクトデータでデータを記述するものがあるらしい 容量的にはオブジェクトデータの方が軽くなるらしいので使おうと思ったがC言語ファイルのデータを読むサンプルしか見つからない pcmconvでコンバートしその後オブジェクトデータを出力するらしいbin2oを実行しても元ファイルに非常に似たファイルが出てくるだけです その後調べてみたところリンカーの辺りで結合するらしいのですが、分からない事がいくつか出てきました どのようにして結合すれば良いのでしょうか? またデータがどこにおいてあるのかどうやって調べれば良いのでしょうか? 一番の問題としてポインタすら完全には理解できていない人の手に負えるものでしょうか? 開発環境はDevkitAdvanceのバージョン4です
- 164 名前:名前は開発中のものです。 mailto:sage [2005/06/01(水) 06:10:01 ID:by7iY2yF]
- >>163
ヒント:__iwram_overlay_lma
- 165 名前:名前は開発中のものです。 mailto:sage [2005/06/01(水) 07:29:52 ID:61IqLEFZ]
- (u8 *)(&__iwram_overlay_lma)
これですか? 宣言の後にこれで読めると言うのは分かりました。 同じ所でファイルそのものをバイナリで結合していたのですが こんな事をやっても大丈夫?と言うかこれが普通なのでしょうか? (とりあえず確めてみてだめだったらもう一度ヒントもらいに来ます >>164 有難うございました
- 166 名前:名前は開発中のものです。 mailto:sage [2005/06/01(水) 10:00:55 ID:OOZ2G8Rs]
- __iwram_overlay_lmaは生のデータを後から追加で結合したいときだけに使え。
.oを作れるならリンクしたほうが確実だぞ。リンクの仕方は分かってるのか? bin2o hoge.bin hoge.o !hogeでhoge.oを作ったとして Cから使うにはextern const unsigned char hoge[];と宣言するだけだ。
- 167 名前:名前は開発中のものです。 mailto:sage [2005/06/01(水) 11:02:19 ID:61IqLEFZ]
- リンクの仕方もわかってません
makefile.txtに色々書きこんでバッチ処理の時に一緒に読み込ませてるのはわかるので とりあえずググッていくつかの.o読み込んでるサンプル眺めて来ます ついでにC言語ファイルでは音が出せました けど割り込みで失敗します 研究所の割り込みのソースのブランクをTIMER0に変えるだけでは駄目なのでしょうか?
- 168 名前:名前は開発中のものです。 mailto:sage [2005/06/01(水) 12:22:10 ID:OOZ2G8Rs]
- リンクの仕方が分からないようなら書こうと思ったけど、調べるんならいいや。
>研究所の割り込みのソースのブランクをTIMER0に変えるだけでは駄目なのでしょうか? TM0CNTの割り込みフラグは立ててるか?
- 169 名前:名前は開発中のものです。 mailto:sage [2005/06/01(水) 19:16:47 ID:61IqLEFZ]
- >TM0CNTの割り込みフラグ
それだ! タイマー開始のところの数字弄ったら解決できました。有難うございます。
- 170 名前:162 mailto:sage [2005/06/02(木) 15:39:03 ID:F8Q5wqFY]
- やっぱり最適化してます
プログラムをIRAMに置かない場合、thumb用でコンパイルしないといけないんだよな? objdumpで逆アセンブルしてみたら4Byte間隔で0x0800****番地に配置されて いるのはARM用にコンパイルされてるから? #リンク時に -Ttext 0x08000000 としてます コンパイル時の指定はどうすればthumbでコンパイルできるの? -bかな?machineの指定はどうすればいいんだろう・・・
- 171 名前:名前は開発中のものです。 mailto:sage [2005/06/02(木) 16:32:58 ID:mT3sDBIJ]
- >>170
つ -mthumb-interwork -mthumb 指定しない場合はARM ちなみにARMだろうかTHUMBだろうが動くんじゃないかな。
- 172 名前:162 mailto:sage [2005/06/02(木) 17:41:22 ID:F8Q5wqFY]
- ありがと>>171
いろいろ調べてみたけど、みんな気にしてないのかな? たいてい指定無しでmakefileつくってる。-mthumb-interworkだけで > ちなみにARMだろうかTHUMBだろうが動くんじゃないかな。 うん、いまのとこ何も指定しなくても(ってことはARMか)でも動いてる いままではCのプログラムとしては最適化してきたけど GBA用としてはまったく最適化してないの つーか、GBAの機能はビデオバッファとその指定(MODE3,BG2限定)、キー入力の #define KEYS *(volatile u32*)0x04000130 しかつかってないや・・・ みんなすごいね、割り込みとか、タイマーとか、スプライトとか、音とか・・・
- 173 名前:名前は開発中のものです。 mailto:sage [2005/06/03(金) 22:30:00 ID:aUPd22sd]
- typedef const unsigned char u8;
u8 foo[] = { } っていうデータの音楽のファイルを馬鹿でかく(1.4MB)してコンパイルしよう としたら Virtual memory exhausted: Permission denied って出るんだが…これってメモリに入りきらないって事? 普段はROMに置きっぱなしで必要な時だけ読み出すとかで解決出来るのであればその解決方を誰か教えて頂けないでしょうか?
- 174 名前:名前は開発中のものです。 mailto:sage [2005/06/04(土) 00:22:05 ID:VXQa3VA9]
- >>173
Cのソースがでかすぎてコンパイル出来ねえよってこと。 コンパイルオプションに-O0(マイナスオーゼロ)をつけるか bin2oで出来たオブジェクトファイルを直接リンクするか ソースをasm(.s)で書け。
- 175 名前:名前は開発中のものです。 mailto:sage [2005/06/04(土) 08:49:38 ID:Ri0Izx+x]
- オブジェクトファイルのリンクが出来ない…orz
研究所のWav2gba_guiで.oファイルを作り makefileの OFILES += main.o \ bgm01.o ってやってるんだが何度やっても変数がないって罵られる makefileが悪いのかそれとも他に原因があるのか… 誰か初心者が陥っているであろうミスを教えてくれ
- 176 名前:175 mailto:sage [2005/06/04(土) 10:32:44 ID:Ri0Izx+x]
- 自己レス
とりあえず原点回帰ということで Dark Fader's site のwav2gba bin2oで.oファイル作ったらコンパイルできた 今度は音がならない…
- 177 名前:175 mailto:sage [2005/06/04(土) 16:55:43 ID:Ri0Izx+x]
- またも自己レス
宣言をu16にしたら音は出たんだがCソースのデータでやってた時と比べて激しくノイジー 次から次に問題が出てくるんだが自分なんか間違ったやり方でやってるんだろうか?
- 178 名前:175 mailto:sage [2005/06/04(土) 17:23:30 ID:Ri0Izx+x]
- もう何が原因だったのかわからない。
もう一度u8に戻しても音再生できたしorz ついでにノイジーになったのはシンクロナイズ外してたからでコンパイル時のミスではありませんでした まる一日掛けて駄レスしまくってスマソ
- 179 名前:162 mailto:sage [2005/06/06(月) 21:58:46 ID:PaMPnmfV]
- 質問です
memcpyでローカル変数の配列データをVRAMへデータをセットしようとすると 上手くいく時となんか行かない時が規則的に現れるんですが 原因はなんだと思いますか? 現状は: 配列データは多分予想どおりのデータが入ってる。 #memcpyを使わないでforループで書き込むと上手くいってる objdumpでみると多分/arm-agb-elf/lib/thumb/interwork/libc.aの中のmemcpyをリンクしている ヒントでもいいからプリーズ
- 180 名前:162 mailto:sage [2005/06/06(月) 22:32:35 ID:PaMPnmfV]
- 追加:
memcpyの座標が1dot x方向に増えた座標へcopyすると上手くいく #逆に上手くいってたものが上手く色を塗らなくなった どう変かといえば、白が薄ピンク色になる #オセロ盤で本来なら全部白いマスのはずが白いマスとピンクのマスが交互に並んでしまう
- 181 名前:名前は開発中のものです。 mailto:sage [2005/06/06(月) 22:41:15 ID:TKmnaeHh]
- ヒント: バス幅
- 182 名前:162 mailto:sage [2005/06/06(月) 22:51:05 ID:PaMPnmfV]
- あ、もしかして書込み先が4Byte境界じゃないと上手く動かないのかな?
- 183 名前:名前は開発中のものです。 mailto:sage [2005/06/06(月) 23:34:11 ID:TKmnaeHh]
- ヒント: 8× 16○ 32○
- 184 名前:162 mailto:sage [2005/06/06(月) 23:46:08 ID:PaMPnmfV]
- >>182 サンクス
ここのページの ttp://home.att.ne.jp/blue/moonlight/uraha/gbadevmemo.html 真ん中少し上の「メモリアクセス速度について」の VRAMのwriteの書き込み制限(8bitでは×)のことかな? こんな制限あったんだ、なるほど wmemcpyを使えばいいんだろうか?
- 185 名前:名前は開発中のものです。 mailto:sage [2005/06/06(月) 23:47:19 ID:s0kMJQK9]
- www.work.de/nocash/gbatek.htm#memorymap
Address Bus Width and CPU Read/Write Access Widths VRAMって使いづらいよね。
- 186 名前:名前は開発中のものです。 mailto:sage [2005/06/07(火) 01:57:10 ID:hxwVLTzF]
- ドット単位でなにかしたいのなら
仮想VRAMに書いてドカッとコピーするか、 奇数偶数で演算を変えればいいだけだが? もっともGBAはそういうアーキじゃないけどな
- 187 名前:名前は開発中のものです。 mailto:sage [2005/06/07(火) 09:09:18 ID:x9MyQnam]
- VRAMは書き込みが遅いので、
mallocでとっておいて、 そこに書いた後DMA転送するのがいいです。 バイト単位で書き込みできるしね。 外部ファイルから取り込んだビットマップデータとかならDMA一発だしな。
- 188 名前:162 mailto:sage [2005/06/07(火) 18:32:29 ID:ZI5uYn33]
- mallocを使うのってsbrkを移植するの?
newlibを移植すればいいのかな?このあたりのことはよくわからん この辺に書いてあるかな? C/C++による組み込みシステムプログラミング ttp://www.amazon.co.jp/exec/obidos/ASIN/4873110130/
- 189 名前:名前は開発中のものです。 mailto:sage [2005/06/07(火) 21:20:15 ID:3YUGrd7x]
- >>188
#include <malloc.h> u16* pseudoscreen; if ((pseudoscreen = malloc(sizeof(u16) * ScreenWidth * ScreenHeight)) == NULL) while (1) {}; とか。
- 190 名前:162 mailto:sage [2005/06/07(火) 23:38:21 ID:ZI5uYn33]
- mallocって前もって準備しなくても使えるの?devkitadvance使ってます
PCでmallocの使い方はわかるけど、GBAの開発でそのまま使えるとは思わなかった manでみるとsbrkのサポートが必要みたいだけどこれはどうなってるの? 使えるなら質問 mallocで確保されるメモリはIWRAM領域から確保されるの? EWRAM領域?bssで指定された領域?グローバル変数との使い分けは大丈夫なの?
- 191 名前:名前は開発中のものです。 mailto:sage [2005/06/07(火) 23:51:14 ID:f73nwpU2]
- 実際にmallocしてアドレス確認すりゃいいと思うんだが
- 192 名前:名前は開発中のものです。 mailto:sage [2005/06/08(水) 00:20:06 ID:mCV1pDkj]
- >>190
つ[crt0.s]
- 193 名前:名前は開発中のものです。 mailto:sage [2005/06/08(水) 02:08:57 ID:Rbo74Gtn]
- それよりはlnkscriptとgccの吐くmapファイルを見比べるべきだと思うが。
crt0.Sなんか見ても役に立たんぞ。
- 194 名前:名前は開発中のものです。 mailto:sage [2005/06/08(水) 10:20:33 ID:q69/QVDR]
- >>190
つ「論よりRUN」
- 195 名前:名前は開発中のものです。 mailto:sage [2005/06/08(水) 11:15:54 ID:VgzV7AVL]
- 悩むな
u16 buff[ScreenWidth * ScreenHeight]; これでおっけー
- 196 名前:162 mailto:sage [2005/06/08(水) 23:15:03 ID:aq/RdM9p]
- ヒントがあるかと思ってnewlibのコンパイルに挑戦
makeは出来たっぽいけどmake installが上手くいかん でもlibc.aは出来たし(同じとは限らんが)、malloc等標準ライブラリのソースも 付いてたのはうれしい発見だな #おかげでmemcpyが8bit毎にコピーしてるのが確かめられた ふーん、libc.aって***.oをarで固めたものなんだ。 やっぱり組み込み側の知識が足りんなぁ 参考資料: Interface2005年1月号フリーソフトウエア活用組み込みプログラミング 第4章 C標準ライブラリ(newlib)を使ってみよう
- 197 名前:名前は開発中のものです。 mailto:sage [2005/06/09(木) 01:51:48 ID:cFLah592]
- >>196
おいおい、ゲーム製作とは違うところに逝ってるぞw
- 198 名前:名前は開発中のものです。 mailto:sage [2005/06/09(木) 12:45:46 ID:TWsYVQDp]
- 質問が途切れたみたいなので質問
PCMの合成はどうすれば出来るのでしょうか? ゲーム製作時にどのチャンネルはBGMとか決めておくものなのでしょうか? (英語の説明書が理解できなくて海外のサウンドドライバの使い方がわからない orz
- 199 名前:名前は開発中のものです。 mailto:sage [2005/06/09(木) 15:55:56 ID:NH9D76hP]
- >>198
PCMでいいんだよね?なら足し算 効果音をどうしたいかだよねぇ。 ファミコン時代なんかBGM使っているチャンネルで効果音を割り込ませて鳴らしてたな。
- 200 名前:名前は開発中のものです。 mailto:sage [2005/06/09(木) 16:40:56 ID:tx6qK9Bb]
- >>199
そんな簡単な方法でいいので…けどそう簡単でもないか 足し算結果をどっかに置いといてDMA転送元にそこを指定でいいのですかね? まぁとりあえずRUNしてみます
- 201 名前:名前は開発中のものです。 mailto:sage [2005/06/09(木) 17:35:13 ID:Cuk1n6wp]
- >>200
オーバーフローチェックをどうするかだけ注意 たとえば4重合成するのなら、最初から1/4音量データを用意するとか。 シフトしてから加算でもいいけどな。
- 202 名前:名前は開発中のものです。 mailto:sage [2005/06/09(木) 18:04:21 ID:txnsDHBq]
- >>201
signed shortで合成しておいて、後で一括してクリッピングしてもいいかもな
- 203 名前:名前は開発中のものです。 mailto:sage [2005/06/10(金) 00:05:29 ID:3crWFAgA]
- >>200
つ ttp://belogic.com/gba/directsound.shtml
- 204 名前:名前は開発中のものです。 mailto:sage [2005/06/10(金) 14:55:38 ID:YPq61nfL]
- すっごい素人なんだけどBGMって割り込みで鳴らすの?
- 205 名前:名前は開発中のものです。 mailto:sage [2005/06/10(金) 17:17:15 ID:sKosQ+eo]
- 音用のメモリがあるからそこにDMA転送で入れる。
DMAはTimer割り込み(正しくはFIFOとか言うのが割り込んでるらしいが)で送らせるように設定しておく。 ついでにビットレートはTimerの設定速度によって決まる(なんか勝手にゲーム本体がそうする)からTimerで使う値を多く取れば 低解像度(ビットレートが少ない低音質の音楽ファイル)の音が鳴る(高音質のはむちゃくちゃ遅くなる) だから使いたい音のビットレートによってTimerに入れる値は変わる。 …らしい(所詮勘でプログラムしてるから理解していない厨wwww
- 206 名前:162 mailto:sage [2005/06/13(月) 00:15:38 ID:WeLHi+pU]
- チラシの裏:
newlibのmake,make install成功。 上手くいかなかった原因はdevkitadb/binがPATHの検索順で自分でコンパイルしたarm-elf-**より先にあったためと思われる 対処方法としてdevkitadb/binをPATHからはずしてbinutils,gcc,newlibを作成 ありがとう、みんな
- 207 名前:162 mailto:sage [2005/06/20(月) 10:45:55 ID:nuWkCFET]
- #mallocから逃げてるオイラ
memcpyの代わりにDMAを使ってローカル変数配列をVRAMに描くことで最適化できないかと思い for(行数分){ // memcpy(); DMAmemcpy(); //中でDMAをつかってる } こんな感じでDMAをつかってmemcpyしたら速くなるかな?とおもって作ってみました。 でも動かないT_T こんな感じでDMAを使うのはまちがってるんでしょうか? #間違ってるんだろうなぁ・・・ #小さい画像データならスプライト使うほうが正しいんだろうなぁ・・・
- 208 名前:名前は開発中のものです。 mailto:sage [2005/06/20(月) 11:08:20 ID:eN4g0qsd]
- DMAmemcpy();の中身か、せめてパラメータを書いてくれないと全く要領を得んな。
・memcpyと違ってDMAの転送サイズ指定は2バイトか4バイト単位 ・表示期間中はDMAでVRAMへの転送は出来ない ・そもそもDMAの設定方法が間違ってる このどれか。
- 209 名前:162 mailto:sage [2005/06/20(月) 12:03:40 ID:nuWkCFET]
- >>208
さんくす たぶん、「 表示期間中はDMAでVRAMへの転送は出来ない」これだろうなぁ 1番はエラーチェック入れてるし、3番は多分間違ってない、と思うし 描画タイミングなんて考えたこと無かった う〜ん、イベントループで描画用イベントをつくり、描画はそちらにまとめないと駄目だなぁ・・・
- 210 名前:名前は開発中のものです。 mailto:sage [2005/06/20(月) 13:03:44 ID:eN4g0qsd]
- それにしても動かないってことは無いだろ。
数ミリ秒ロックかかるだけなんだから。
- 211 名前:162 mailto:sage [2005/06/20(月) 13:29:38 ID:nuWkCFET]
- 動かない、ってのは誤解させたか
正確に言えば、その部分の描画処理をしてくれない、かな 四角く塗りつぶす関数 for(y行分){ for(x幅){ VRAMへ書き込む } } を for(x幅){ローカル配列に書き込み} for(y行分){ローカル配列をDMAmemcpyでVRAMへ} って処理にしたら塗ってくれなくなったのよ 調べてたらDMAチャンネルうんぬんってのがあるみたいだし、 CPUが空いててもDMAコントローラ(?)は空いてないだろうし・・・
- 212 名前:名前は開発中のものです。 mailto:sage [2005/06/20(月) 13:56:46 ID:3V9hgg4C]
- >>211
DMA busyチェック/終了確認してるかい? 同じDMAで転送中に更に転送開始したら、中断する。
- 213 名前:162 mailto:sage [2005/06/20(月) 14:12:35 ID:nuWkCFET]
- >>212
それだ、やっと頭の中でつながった!サンクス
- 214 名前:名前は開発中のものです。 mailto:sage [2005/06/21(火) 01:26:05 ID:tMrqvmNm]
- >>213
で、何作ってんの? AVGサンプル(DMA使用)ならゲ研にあるよ
- 215 名前:162 mailto:sage [2005/06/21(火) 17:36:36 ID:2bu24OLk]
- 一番の目標は、組み込み向け開発ノウハウの勉強
それも、単純なLEDだけの世界じゃなくて、ある程度GUIがある組み込み。 でもそれだけじゃ漠然としすぎてどこから手をつけたらいいか迷うので 今作ってるのはパズル。「数独」ってしってる? これならグラフィックやシナリオで迷わなくていい。 次はマインスイーパかソリティアでもつくろうかなって思ってるところ
- 216 名前:名前は開発中のものです。 mailto:sage [2005/06/25(土) 01:31:23 ID:e5faRMhJ]
- ちょっと質問です。
自分もGBAで何か作ってみようと思い、まず画像を表示する程度のものを作りました。 が、エミュ(VisualBoyAdvance)上では問題無く動くのですが、実機に転送すると動きませんでした。 試しに、ttp://j-gbadev.hp.infoseek.co.jp/ にあるサンプルを転送してみましたがやはり動かず。 ttp://optimize.ath.cx/bootcable/index.html のパズルは動作しましたが、逆にこちらはエミュ上で動かず。 実機で動作させるには何が必要なのでしょうか。
- 217 名前:名前は開発中のものです。 mailto:sage [2005/06/25(土) 08:06:17 ID:BG1w9J0p]
- >216
パズルの方はフラッシュに焼いて実行するなら、 makefile の LDFLAGS の -Ttext=0x02000000 を -Ttext=0x08000000 にするんじゃない??
- 218 名前:名前は開発中のものです。 mailto:sage [2005/06/25(土) 08:09:59 ID:BG1w9J0p]
- 誤:パズルの方はフラッシュに焼いて実行するなら
正:パズルの法はエミュレータやフラッシュに焼いて実行するなら
- 219 名前:名前は開発中のものです。 mailto:sage [2005/06/25(土) 14:05:30 ID:8t7IF5k/]
- optimizeのパズルサンプルをエミュレータで動かしたい場合は拡張子を.mb.gbaにすればいい。
>>216が作ったのはたぶんROMに焼いて動かすためのイメージだから 実機で動かすにはFlashROMを買ってくるか、 実機のRAMに直接転送して動くように作り直す必要がある。 プログラム研究所のサンプルも同様。
- 220 名前:名前は開発中のものです。 mailto:sage [2005/06/25(土) 16:01:46 ID:IKOdqJ6y]
- >>216
実機で起動するときNINTENDOロゴがちゃんと表示されるか? 表示されていなければヘッダを修正する必要がある。
|

|