[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 2chのread.cgiへ]
Update time : 05/09 11:45 / Filesize : 221 KB / Number-of Response : 833
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

ゲームボーイアドバンス(GBA)非公式開発 Part2



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/


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ロゴがちゃんと表示されるか?
表示されていなければヘッダを修正する必要がある。

221 名前:216 mailto:sage [2005/06/25(土) 21:10:36 ID:aa82OW6G]
やはり原因は0x08000000 -> 0x02000000でした。
無事実機でも動きました!

皆様色々ありがとうございました。

222 名前:名前は開発中のものです。 mailto:sage [2005/06/26(日) 02:14:00 ID:YOehEJSa]
const int __gba_multiboot;
これもあったなあ

223 名前:名前は開発中のものです。 mailto:sage [2005/06/28(火) 09:12:06 ID:lhzk0oNN]
www.bidders.co.jp/item/51278471

224 名前:名前は開発中のものです。 mailto:sage [2005/07/05(火) 22:13:11 ID:ioT9KUEt]
とりあえず環境落として始めてみたんだが、
ゲーム作るためのライブラリを作るだけでおなかいっぱいになりそうだ_| ̄|○



225 名前:162 mailto:age [2005/07/07(木) 22:26:25 ID:IdWw8xni]
一応動くようになりました。
ちゃんと動くかな?
質問に答えてもらったお礼です。

up.isp.2ch.net/up/4b16ea0ad8c0.lzh
up.isp.2ch.net/upload/c=03okari/index.cgi

226 名前:162 mailto:age [2005/07/07(木) 22:28:21 ID:IdWw8xni]
操作方法は
 ・selectでメニュー
 ・Aでセルの数字が増える
 ・Bでセルクリア
 ・十字キーで移動
です

227 名前:名前は開発中のものです。 mailto:sage [2005/07/12(火) 03:52:28 ID:gP0YBH4B]
すみません。ど素人な質問なんですが、できればお答え下さい。
GBAのプログラムはだいたいどの位までの、データを実機で使えるものでしょうか?
個人的に、電子辞書+単語帳代わりにデータを写して使いたいのですが、
200Mbyteぐらいいけますか。また、基本的な組み込み系のプログラムはまるで触ったことのない人間なのですが、
C言語とC++をちょっとさわったくらい(ベターC程度にしか使えません)でも扱えるような物でしょうか?

あと、起動時間は10秒ぐらいでしょうか?

228 名前:名前は開発中のものです。 mailto:sage [2005/07/12(火) 04:50:21 ID:vNvKsOE9]
ROMが最大32Mbyte RAMが256kbyte+32kbyte
言語はCが使えれば充分 C++はベターCで全然よし
起動時間はメーカーロゴが入るので5秒くらい メーカーロゴを含めなければ一瞬

ビットマップにフォントを表示できるようになれば簡単な辞書ならすぐ作れると思う
ただし容量が少ないのでデータを厳選するか きつめに圧縮するかしないと
いけないだろうな
頑張れや

229 名前:名前は開発中のものです。 mailto:sage [2005/07/12(火) 23:31:40 ID:mrySnnDH]
>>227
キミの好きそうなprintf()もscanf()もないからやめとけ
素直にザウルスか電子辞書買っとけ

230 名前:162 mailto:age [2005/07/13(水) 14:04:49 ID:QdmkZAfq]
printfくらいは自作してもいいけど入力どうしようかな?
ケータイみたいな仮想キーを作ってそれで入力する、かなぁ
これなら12この仮想キー(ボタン?)で済む

「ホームランド」みたいな入力システム作れればいいんだろうけど、ムズカシイ・・・

231 名前:名前は開発中のものです。 mailto:sage [2005/07/13(水) 18:15:54 ID:D6iTUR2S]
>>230
RとLボタンで文字種変更、十字キーで文字変更(右左で子音・上下で
母音変更とか、ケータイ方式とか)でAボタンで決定、Bでクリアとか。
SELECTでエディットモード抜けて十字キーかRLボタンでカーソル移動とか。

232 名前:名前は開発中のものです。 mailto:sage [2005/07/13(水) 19:05:41 ID:wV9jl+rf]
どうせやるならNDSでやったほうが良いと思う。入力デバイスの問題で。
実機で動かす方法は知らんが。

233 名前:名前は開発中のものです。 mailto:sage [2005/07/13(水) 21:26:47 ID:oLrfzE3q]
ゆうていみやおうきむこうでいいやん

234 名前:名前は開発中のものです。 mailto:sage [2005/07/17(日) 21:50:58 ID:ATGoGOE4]
>>233
ドラクエですな。



235 名前:名前は開発中のものです。 mailto:sage [2005/07/30(土) 16:31:02 ID:rH8bjVXA]
とあるラベルを4バイトアラインで配置したいときってどうするんでしょう?

今は配置したいラベルの前に、
asm(".align 4");
って入れているんですが、何か違うような、もっとすっきりした方法があるような気がします

236 名前:235 mailto:sage [2005/07/30(土) 16:42:19 ID:rH8bjVXA]
>>235
ごめん。上の方法、正しくリンクできなくなります。
誰も使わないと思うけど、念のため…

237 名前:名前は開発中のものです。 mailto:sage [2005/07/30(土) 20:02:20 ID:XQpHvBfH]
>>235 gcc なら __attribute__((aligned(4))) とか

238 名前:名前は開発中のものです。 mailto:sage [2005/08/01(月) 02:57:48 ID:dbKAP3Zw]
>>237
できました。ありがとうございます。

それはそうと、gccでラベル全てをアライン付けるオプション試してみたけど、何も変わりませんでした
devkitのこれとは違うんでしょうか。自分が意味を取り違えてる可能性のほうが高いと思うけど。

239 名前:名前は開発中のものです。 mailto:sage [2005/08/01(月) 08:54:44 ID:4ELQCf+V]
>>238 そんなオプションあったっけ?

240 名前:名前は開発中のものです。 mailto:sage [2005/08/01(月) 09:19:43 ID:FTLI7gLF]
無いはずだが。何かと勘違いしてるんじゃないか?

241 名前:名前は開発中のものです。 mailto:sage [2005/08/12(金) 17:27:25 ID:tqMQkZm3]
ちょっと程度の低い事ですが質問です。
スプライトの画像を左右を逆転して表示したいのですが、
sprites[0].attribute1 |= 0x1000;
とかやってますが、どうもうまくいきません。
どのようにすれば、反転して表示できるのでしょうか。

242 名前:名前は開発中のものです。 mailto:sage [2005/08/12(金) 19:16:14 ID:oL+JILND]
attribute0の拡縮フラグは0になってるか?
それぐらいしか思い浮かばないが・・・。

243 名前:名前は開発中のものです。 mailto:sage [2005/08/12(金) 19:42:07 ID:3HIzF5vl]
>>241
とりあえず、spritesの構造体定義を晒せ
話はそれからだ












…まさか、VBlank期間外にOAMを書き換えようとしてないだろうな?

244 名前:名前は開発中のものです。 mailto:sage [2005/08/12(金) 21:11:23 ID:tqMQkZm3]
>242
うう、まさしくそれでした。
削ったつもりだったのですが、色々試してた時のが残っていて。。。という感じでした。
兎も角、ちゃんと反転表示はできるようになりました。ありがとうございます。

>243
まんま「GBAプログラミング研究所」さんのサンプルを利用してます。



245 名前:名前は開発中のものです。 mailto:sage [2005/08/13(土) 01:01:17 ID:NcqonvKf]
>>243
垂直表示期間中に書き換えても、その状態が継続しているのであれば
次フレームで反映される。

246 名前:名前は開発中のものです。 mailto:age [2005/08/15(月) 23:35:09 ID:zl773reD]


247 名前:名前は開発中のものです。 [2005/08/22(月) 13:25:40 ID:xaZ8lnmP]
DMAに手を出してみたけど…むつかしいね。
というか、devkitのDMA転送マクロをそのまま使うと、ちゃんと動作しないときがあるっぽい
(同じチャンネルを使い、連続して転送を実行した場合?)

別のサイトから拾ってきたソースのを使ったらうまくいったけど…ごめん。URL忘れた。

248 名前:名前は開発中のものです。 mailto:sage [2005/08/27(土) 22:41:20 ID:hXi5z/ZH]
DevkitAdvanceを使えと言われそうですが、都合により Thumb/ARM GCC の環境を作ろうとしていて、
そのために必要な libg.a を探しています。

ぐぐって探したところ、Glibc というライブラリに入ってそうな感じがしたのですが
ダウンロードしてアーカイブをバラしても見つかりませんでした。
どなたか持っている方がいたらアップして頂けないでしょうか?

ttp://gamdev.org/up/

249 名前:248 mailto:sage [2005/08/28(日) 16:48:57 ID:rrKRiOqt]
すいません、自己解決しました。

ttp://eodevtools.sourceforge.jp/cgi-bin/wiki.cgi?page=Linux%CD%D1EOTA%A5%AF%A5%ED%A5%B9%B3%AB%C8%AF%B4%C4%B6%AD
ここにある eota-crosslib-0.8.1.tar.gz というアーカイブを展開したら出てきました

250 名前:名前は開発中のものです。 mailto:sage [2005/08/30(火) 22:10:58 ID:4nbPwlJS]
自作の同人ゲーをブートスティックに入れて売ってみたいんだが、
やっぱオプティマイズの中の人の許可が無いと色々怒られっかな。

251 名前:名前は開発中のものです。 mailto:sage [2005/08/31(水) 00:14:27 ID:mrP0HODf]
オプティマイズの中の人も任天堂に許可を取って売っているわけではない
規模にもよるだろうけど構わないんじゃないの

252 名前:名前は開発中のものです。 mailto:sage [2005/08/31(水) 04:25:15 ID:ZKQSe8Kh]
スプライト表示の際ブレンド指定したら、全てのスプライトが半透明になっちゃったんですが
何か気をつけるべきことってありましたっけ?attribute0のb10,11はきっちり設定しています

あとちょっと確認なのですが、
スプライト#0はブレンド、#1はDARK…みたいにはできませんよね?
あくまでもブレンドモードなら128枚全てブレンド(か通常表示かwindow)、DARKなら128枚全てDARKで


253 名前:名前は開発中のものです。 mailto:sage [2005/08/31(水) 12:22:02 ID:mrP0HODf]
>>252
ちょっと勘違いしてる
REG_BLDMODは面全体に掛ける指定で、OBJを指定したらOBJ面全部が半透明になる

スプライトattribute0の半透明属性は、スプライト一個一個に対して個別に
ブレンドを指定したいときに使う

スプライトを一個だけ半透明にしたいのならREG_BLDMODのOBJフラグは立てないように
また、attribute0で半透明にしておいて、さらにREG_BLDMODでDARKにすることは可能らしい

254 名前:名前は開発中のものです。 mailto:sage [2005/08/31(水) 22:01:06 ID:sP0tVan0]
>249
それは x86 で動く EOTA という OS 専用のバイナリなので、他では使えませんよ



255 名前:名前は開発中のものです。 mailto:sage [2005/08/31(水) 22:17:56 ID:8NGuRNsc]
あちゃ、Vブランク関係のせいでコンパイルがうまく通らなかったのはそれのせいか・・・?
(↑の関数を一つコメントアウトしたら通ったけど)

経験が浅いので正直よくわかりませんが

256 名前:名前は開発中のものです。 mailto:sage [2005/09/01(木) 02:23:37 ID:ZXvSssjt]
>>253
ありがとうございます。
特定のスプライトだけ半透明にしたいときは、
パラメータはREG_COLEVで与えるだけで、REG_BLDMODは0のまま
半透明にしたいスプライトのattribute0をつつくってことでいいってことですよね。

いろいろこねくりまわしてみたす。






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<221KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef