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