ゲームボーイアドバンス(GBA)非公式開発 Part2
2 :
名無し:04/10/30 19:17:24 ID:PxuG7sID
おつ
NDSも自作できるといいな
ハードがGBPだとソフト側から認識するにはどうしたらいい?
知ってる人がいないようならレジスタダンプしてみるが...
この板って即死判定とかないよね? 大丈夫だよね?
>4
どうだろ。多分大丈夫では?
>3
知らないけど興味あるのでダンプきぼんぬ。
とりあえず即死回避パピコ
何レスまでやればいいんだろ。
30レスくらいまでじゃなかったか?
即死防止支援
11レスまでは頑張ってみようか
即死はさけたいね
G・B・A! G・B・A!
5面どうやってクリアするんだ?
☆☆☆☆┌─┐☆☆☆☆
☆■┌─┘始└─┐■☆
☆■│■■│■■│■☆
☆□│□□│□□│□☆
☆■│■■│■■│■☆
☆■│■■│■■│■☆
☆□│□□│□□│□☆
☆■│■■│■■│■☆
☆■└┐■│■終┘■☆
☆☆☆└─┘☆☆☆☆☆
洩れは3面が解けない.......orz
確かにこれなら簡単に作れそう、ということで
作っちゃったんだな。
そうなると、本家としてどのようにこのルールをベースに
商品価値を付加するか見物だな。
発売日が楽しみだ。
もういっかいうぷしろ〜
20 :
名前は開発中のものです。:04/11/17 13:45:32 ID:DSQ7Ab5T
すみません、質問なのですが・・・
今割込みを使ったプログラムを作っているのですが
どうやらROM(0x08000000)から割込みのベクターアドレス(0x03007FFC)
への読み込みができていないようなのです。
そこで調べてみるとbl命令は相対オフセット24ビットなので
32MBの領域しかジャンプできないために
ROM(0x08000000)とIWRAM(0x03000000)を相互に
行き来できないということがわかりました。
これを解決するためにはリンカースクリプトとスタートアップルーチンに
何か変更点を加えたらいいのでしょうか?
分かりにくい説明ですみません・・・
>>18 体験者として言わせてもらうと、
付加価値なんて考慮不要、
ヒトフデはタッチパネルに自分の手を使って
ペンで書きなぞるから面白い。
十字キーやマウスでも遊べるルールだけど、それじゃ価値がまったくない。
絵に描いたモチを食べたフリをするのと一緒。
・・・というわけで発売日を楽しみにしようぜ。
>>20 質問の意味がよく分からないんだが...
絶対アドレスにジャンプしたいならlrに戻り先をセットしておいてpcを直接変更すればいいよ。
>>22 すみません私もどう説明したら伝わるか・・・
でも、回答ありがとうございます。
試してみます。
24 :
名前は開発中のものです。:04/11/18 17:23:50 ID:/hjQO2k+
でも正直一筆書きって、
交点からでる線が奇数のところを始点・終点にするだけだから
めちゃめちゃ簡単という
25 :
名無しのプログラマー:04/11/18 18:25:38 ID:+7pPznZo
それがわからねーから一筆書きのゲームがあるんでしょう
DSのヒトフデって一筆書きとはルールが違うけどね
27 :
名前は開発中のものです。:04/11/22 21:23:02 ID:pRmxZCcK
DSで動いてる!(当たり前かw
29 :
名前は開発中のものです。:04/11/24 06:31:19 ID:9DDqex30
フラッシュROMどこで買うの?
30 :
名前は開発中のものです。:04/11/24 23:39:20 ID:qruBncC8
開発セット、ネットで注文した
届くの楽しみだなぁ
DSまだ発売日ちがうでは?
32 :
名前は開発中のものです。:04/11/25 22:06:37 ID:v8lQuljl
フラッシュROMどこで買うの?
インポート屋から買えねえ?
34 :
名前は開発中のものです。:04/11/28 19:56:20 ID:lxsmleX3
開発キット届いた!
けど読んでる暇がねぇ orz
IDEはコード戦士だっけ?
DSの話か?
37 :
名無し:04/12/02 00:31:06 ID:A5K4gV3W
DSの開発環境マダー?
GBAの開発環境は発売後、どのくらいでリリースされたの?
関係あるかどうか微妙だけど一応紹介しておく
Interface2005/1号の特集
フリーソフトウエア活用
組み込みプログラミング
オイラはヘタレだから誰かeclipseを利用する環境を作ってくれ
>>39 仮にeclipse環境を作ってやったところで、オマイは
・APIが整ってないYO!
・資料がないYO!
と騒ぎ立てるようになる。
間違いない!
42 :
39:04/12/04 23:01:36 ID:OJIlWiOJ
APIなんてあるんか?
基本的に組み込み開発と同じだと考えているんだが?
とりあえずアドレス情報と割り込み回り関連の資料から
なんとかするしかないんじゃないのか??
保守
46 :
:04/12/19 05:49:23 ID:VlmHqZFM
ほしゅ
保守
2005年初カキコ保守
質問。
DevkitAdvance使ってGBAのプログラム作ってるんですけど、
これって公開すると不味かったりします?(違法性やら任天さんが怒るやら
>>50 おお、すごい。JPEGの展開方法が分かれば作れるのだろうけど。
漏れも画像処理を勉強しようと思いつつほったらかしだ…。
>>51 オレは既に公開しているが。
なにがどうまずいのか知りたいね。
>>52 Jpeg、結構おもしろかったです。当初はGBAで?と思っていたのですが、細切れ(必要な分だけ)展開とかメモリ節約とか、そういうとこは組み込み用ならではの面白さがありました。
フーリエ変換とか初めてまじめに読んだけど、エンコーダの方は数学のエッセンス(?)盛りだくさんでそういう意味でも結構楽しかったり。でもお腹一杯もうイイヤ。(苦笑
もっと色々な人のを見られたら…と日々夢想してます。海外ばっかり元気でつまらないです。(笑
>>51 公開するときにアレを入れなければとりあえず…どうなんでしょう。わからないです。
でも本気で潰そうと思われたら多分負けると思います。わからないけど多分。
良し悪し微妙ですが、GBA自体がすでにNさんのメインストリームから外れているっぽいのが安心要因かもです。わからないけど…。
長文失礼しました。
>>54 ということをGBA新参者の私が言うのがかなり間抜けなことに数秒で気付く。
スルーお願いします…(汗々
>>50 20050103.zipの方を試しますたが、pogoshell2.0b3だと表示した後L+R
復帰しないでつ。真っ白い画面でフリーズしますた
拡大縮小表示も欲しいでつMDXデータ再生ソフトと同じ用に。クレクレ厨でスマソ
57 :
56:05/01/04 19:25:00 ID:66EitpcQ
58 :
56:05/01/04 23:32:44 ID:66EitpcQ
>>50 20050104.zip早速試しますた。gba単体で動かす方は良かったのでつが
pogoshellに入れたら画像が油絵のように表示して・・・・。・゚・(ノД`)・゚・。ウワァァン!!
ガーーン。実機テストしてないのバレバレですね!
すいません、いまメモリ節約(拡縮表示コードのための隙間空けw)をしている最中で起動しません。(それもどうかと思うw
はうー。テストしてくださってありがとうございます。がんばってなおしますー。
(ちなみに、picture viewer for GameBoy Advanceは展開したベタ画像(BMPみたいな)が入っているみたいです。やっぱり圧縮したままROMに入れたいと思うのは私だけでしょうか…)
60 :
56:05/01/07 23:08:11 ID:R+o9g/1c
>>59 0107を試しますた。拡大縮小までついて・・・・GJでつ!あーうー
ネタがなくてあきてきた。>自分
62 :
名前は開発中のものです。:05/01/14 18:45:30 ID:AQW/ehzA
GBAじゃなくてGBの事で申し訳ないけど、
GBのROMからソース吐かせるには何を使えばよいでしょうか?
gbdkとか使えますか?
なんか初歩過ぎて、一般論でいいのかわからんけど、
アセンブラのソースでいいなら、Z80の逆アセンブラ使えばいいんじゃないの?
gbdkがどうこうってまさかCのソース?
ニーモニックはある程度の互換はあるが、機械語コードレベルでは違うんでなかったっけ?
確か、Z80逆アセンブラではダメだった気がする。
違ったらスマン。
65 :
62:05/01/15 08:29:42 ID:vuowdCRG
66 :
名無し:05/01/15 20:11:08 ID:SVSB615b
DSのブートケーブルが出れば問題ないのでは。
69 :
名無し:05/01/17 18:44:53 ID:9FSzJh/+
ケーブルさす所ないよ。まぁ、GBAソフトかDSソフト挿すところ
使うって手はあるけど。
それより無線LANでDLプレイができるんだから
そっちでなんとかならないかな
70 :
56:05/01/18 17:15:37 ID:hpMS7aB9
>>59 ps2gsm003試しますた。ファイル名が日本語だと黒抜き表示になりまつね
同胞ps2_ChangePogoShellReset.exeでmda006にパッチがあたりませんですた
mda006はpogoshellだと動きませんですた(GBA単体では動作した)
ps2jpg002はps2jpg_linker.exeで1回変換しても表示化けする物や2回変換して
良くなったり謎でつ
ps2txt014の方はバグ無しみたいでつcsvデータが読めたらいいなぁ(チラシ裏)
ぐぁむばってくだちぃ ぷぅ〜ぅ
>>70 はっはっは。バグだらけですナー。テストありがとうございますふてくされて寝ます。
DragonBasicって消えた?
次バージョンでROMサイズの制限が解除されるってところあたりまでは
みてたんだけど…
73 :
名前は開発中のものです。:05/01/20 02:07:41 ID:sVf2YbpB
質問です。
SFCのROMをGBAのROMに変換することは可能ですか?
ロマサガR2ってのがあるってのを聞いたんですが。
>>74 エミュレータのことだろうけど、SNESのエミュレートは完全じゃないから
出来ても遊ぶのはむりぽ
>>75 違います。
エミュではなくて、GBAで出来るエロゲとかありますでしょ?
それみたいな感じで完全再現をしてるってものがある、と聞きました。
GBAカートリッジ用のデータなのか、データだけ配布されてたのか知らないのですが。
元データをコンバートしたものということかい。
>>76 帽子屋インサイドのは全部コンバータです。
他のもあるだろうけど基本はコンバータ。
それよりGBAで"完全再現"って一体なんだ?
基本的にはエミュレータと違うもんだから完全再現なんてありえない。
>>78 コンバータ+GBA版のシナリオプレーヤ(?)じゃないですか?
アリスのsystem3.xとか。
だから、
>>76 プログラム本体とシナリオその他が別になっているから出来る技であって、そうでない
ゲームだとエミュレータを使わないと無理。
ご回答ありがとん
お話をきいてようやく私が耳にしたのはネタだったと言う事に気づきました
83 :
39:05/01/29 18:00:47 ID:CTQ8u2OO
一応また紹介しておく
Interface 2005/03号
ゲームボーイアドバンスへuiTRONを移植する
>>83 ずっと前からARMへの移植例は公開されてるので、
他人の褌で相撲を取るというやつだな。
美味しい仕事の取り方でうらやましい。
85 :
名無し:05/01/29 23:50:37 ID:POwjpwKb
DSソフトの自作まだー?
ポケモソのむげんのチケットってプログラミングで作れないのか?
DSでLinuxが動いたな。
単に画面制御コードを解析しただけだろ
91 :
名前は開発中のものです。:05/02/06 04:27:08 ID:crEZxWcI
92 :
名前は開発中のものです。:05/02/06 14:32:44 ID:WyWYpKfC
そこから芋づる式に解析が進む可能性もあるだろ。
誰かノベルでもいいから上げてくれ。
95 :
Moonlight:05/02/13 12:07:59 ID:mr1hSykq
>>94 ちょうどアップしたところでびっくり。(ノベルってノベルゲーという意味ですよね
デモムービーだけですが。
sage忘れました。すいません…。
>>94 さいたまベーダー移植してみたが、原作者さんからOKが出ないのでアゲらんない
残念〜ッ!
98 :
94:05/02/14 02:29:30 ID:oUf+WrNf
>>Moonlight
デモムービー見ました。
題材は同人ゲーですかね?
それにしても久しぶりにワクワクしました。
Moonlightさん日記はどのくらい前から読めば流れがつかめますかね。
ちなみにBGはMODE3でしょうか?
>>97 残念〜ッ!!
>>98 そうです。中里一さんという作家さんが好きなので移植してみました。
十日ほどかかったので今月分を読んで頂ければ大体何考えてたのか分かると思います。
ろくなコト書いてないですけどそれでもよろしければ…。
フルカラーを使う都合上、MODE3を使いましたが、テキストスムーズスクロールをしたかったのでスプライトを敷き詰めて16色タイルマップの代わりにしています。
BGとスプライトはアルファチャネル付き合成が出来ない(単一アルファ値の加色合成のみ)ので、アンチエイリアスフォントが読みづらくなっているのが玉に瑕です。
100 :
名前は開発中のものです。:05/02/14 12:43:47 ID:iwoTUxlr
[GBA] ZOIDS SAGA FUZORS (ゾイドサーガフューザーズ) をMXかshareに流してください。
よろしくお願いします。
ネタが少ないのでくだらない質問でも許されるかもと期待しながら書き込み。
SRAMに高速アクセスしたときに不具合のあった経験のある方いらっしゃいますか。
また、具体的にSRAM->SRAM間のときだけは、とか読み込みだけ、書き込みだけウェイト掛けれとか。
んなのSRAMチップの仕様書見ながら多めにウェイト掛けろバカといわれればそれまでなのですが…。
というかSRAM->SRAM転送はやっちゃダメですか?(できるけどやらない方がいい、という意味で)
好きにやりゃいいよ
誰にも制約されないのが非公式開発のいいところだろ
>>105 うはw任天堂なにやってるんだwww
ひょっとする予感!
うわ、これを見てプレイやんが欲しくなった。
ひょっとして、ひょっとしてくれ。
ジョイキャリーランチャーみたいな感じではないかと。
昔GBでハドソンがKISSだかゆーのやってたの思い出した。
プレイやん、ゲット。
ガレージの展開に期待。
ガレージゲームはasf形式だな。そのまま動画として再生できる。
ひょっとしたら、ひょっとした考えはダメか?
ガレージゲームの名前がプレイやんのROMの中に書き込まれてるみたい・・・
112 :
109:05/02/22 21:54:00 ID:8Jj3O2qy
.asfでコンテナにしてるみたいだな。
しかし、ゲーム画面小さすぎだよ…orz
名前だけじゃなく、ファイルサイズとかチェックサムとかも
ROMに書かれていたら、ほぼお手上げだな。
MODE3でバックバッファ無いから、WORD配列[240*160]作ったけど、
VRAMに転送しても表示されない...。
BG2_ENABLE?
116 :
114:05/02/24 16:40:51 ID:kxDRQPBZ
YES
117 :
114:05/02/24 17:52:07 ID:kxDRQPBZ
配列全体に単色で塗りつぶしてもダメ...。
他の色も混じってて(横線)バグってる。
その配列にconst修飾で、画像データ入れたら綺麗に表示された。
そもそもバックバッファ作ろうとすること自体不可能なのか。。。
症状出ているサンプル上げてもらえますか?
それとも適当なサンプルアップしますか?
IWRAM 32kb
Mode3VRAM 240x160x16bit 76800byte
グローバル変数はIWRAMに確保される。EWRAMはmallocなり自流ポインタアクセスなり。
連続書き込み失礼。
const修飾するとROM領域にマッピングされる。
広大でリニアなメモリ空間のあるWindows環境と比べて、メモリが不足してないか、分断してないか、どの領域を使い分けるか、領域外アクセスしていないか、を常に頭に入れておく必要がある。
個人的には面倒くさいのでEWRAMにmallocで終わり。ちなみにEWRAMは256kb。
121 :
114:05/02/24 18:53:47 ID:kxDRQPBZ
おぉ、ありがとうございます。
GBA初心者なものでメモリ配置とか無視してました。
というより、知らなかっただけなんですが。
256kb以内なら良いと思ってたんですが、とんでもない間違いだったと。
でかいマップを扱うときに
うまく切り替えて相対表示させるいい方法ありませんか
32x22(240x160+上下左右隠蔽8x8分)のマップを表示して見えない部分を書き換える。
8x8以下の微動分はオフセットでコントロールする。
具体的に右に動く(左にスクロールする)時は、全体を1map(8x8)分をDMAなりCPUSetなりで左にコピーして右端一列を書き換える。
上下左右一端は見えない領域だから無限マップのように見える古典的手法。
GBAはファミコン、PCEクラスの使い古されたテクニックが使えるので古い文献を当たってみるのもいいかもしれない。
画面一杯でない、CPUが有り余っている、同時に使うキャラクタパターンが異常に多い、不定形or生成キャラクタを使う、前後関係が複雑(3面以上?)、8x8の倍数以外…
めんどいからMODE4でもいいんじゃね?
WINDOWSの富豪的プログラムに慣れ親しんでしまってて、
高速化に鈍感だったのを思い知らされる...。GBAに。
というかPCじゃ速すぎてそうならざる得ない所が痛い。
127 :
名前は開発中のものです。:05/03/16 09:36:23 ID:6URp9XZB
GBAプログラム研究所にDSデモのスクショがある
128 :
名無し:05/03/16 10:21:50 ID:KTADbIgb
ほんとだ。
つーか、エミュもうあったのか
129 :
名前は開発中のものです。:05/03/18 08:57:57 ID:xdEzd/mQ
GBAプログラム研究所にDS開発環境の詳細がある
どうする?もうDSに移行したい?
131 :
名前は開発中のものです。:05/03/18 11:49:39 ID:hgCKeqrG
98SEなんでインスコ出来ないんです><
ちょっとまて。
2000とxpの方法が書いてあるだけでそんなことは・・・。
ためしてみるから早まるな。
中間報告だが、
CMD.EXEが98SEになさそうだな?
おそらく別の方法を探すしかない。
8メガのほうは展開されないので諦める。
rar形式のほうはOKだったが、
まだできないんだが。
ndslibのinstallで詰まる。
神が降臨するのを待つしかないか?
136 :
NAGA:05/03/18 14:24:59 ID:GusXn0Ti
DSがPCで?
137 :
名無し:05/03/18 20:44:41 ID:MWRJcpGT
>>134 MS-DOSプロンプトでいいんでない?
98SEならcommand.exeだったと思うけど
make書き換えでなんとかなりそうですか?
ちょっとやってみます。
139 :
sage:05/03/18 21:15:43 ID:c4Wp8MOS
command.comです。
俺の気のせいだったのかも。
template.nds.binが生成されたということは成功なのかもしれん。(←かなり疑問が残る。)
Win98SE
疑問とは
install.bat実行中に
YESかNOと聞いてくるはずのところで
ディレクトリの指定が違います。が6行でて終了。
141 :
名無し:05/03/19 02:01:23 ID:rTN9pn5h
はやく実機で動してー
というかすでにエミュレータの動作環境が満たされてないっぽい。
エミュレータが関連付けに対応してない(´・ω・`)ショボーン
スプライトサンプルはなんとなくわかるけどbmp表示どうやってるんだろ
bmpから変換したっぽい.cソースが見当たらん
研究所のページによると
画像のフォーマットはGBAと同じらしい。
145 :
名無し:2005/04/04(月) 20:48:59 ID:E7ZB2tjS
DSのAction Replay、セーブデータは読み書きできるみたいだけど
ROMのほうは読めないのかな?
ndsdev2.2.6
サンプルをmakeしたものを実行しようとするとエミュレータが落ちるよ(´Д⊂グスン
漏れの環境に何か問題があるんかな・・・
…即解決。
2D_Example_davrなんだけど、
StartUp Guideを読んだら、arm9.bin(エミュ用の?)が実行ファイルだったよ。
カレントに出力されたtemplate.ds.gbaを実行しようとしてたよ…
arm7とかbootとか絡めてる辺り、カレントに出力されたものは実機用なのかな。
148 :
名無し:2005/04/12(火) 21:34:59 ID:Wxb/7tj8
はあっ!!スレがまだ生きている!!
というかarm9が実行ファイルだったのかぁっ!!
150 :
名無し:2005/04/28(木) 22:21:18 ID:jhMyagtx
>>150 任天堂ゲームセミナーは相当狭い門ですぜ?
>>83 コンパイルが出来ん・・・
% ./configure -C arm7tmdi -S evaluator_7t
だけじゃいけないんだよな・・・
-Pも設定しないといけないしコンパイラ設定も変更しないといけないんだよな・・・
わからん・・・
初心者過ぎて申し訳ないけど、
VisualHAMは支援ツール?これのみでコンパイルは出来ないの?
DevkitAdvanceは入れないとダメ?
コンパイル出来るぞ。
プロ研でDevkitAdvanceの導入を説明してるのは、IDEだけ使いたかったからじゃねーの。
HAM使うと最初にロゴ入っちゃうし。
>>154 回答、情報ありがとう。
とりあえず環境の構築がんばってみます。
機会があればまた宜しくお願いします。
156 :
age:2005/05/19(木) 20:57:05 ID:lftmMhtg
なんで動かんの?と悩んでたんだが、リンク時のbssアドレス指定ミスか・・・
IWRAM領域を指定してたら足りなくなるよなぁ
質問なんだけど、スタック領域はどこに割り当てられるの?
このあたりの指定はどうやってするの?
♯私はIDE、ソースデバッガとしてVisualStudioを使ってます
♯VisualBoyAdvanceとは交信できないけどね。
♯Insightデバッガは使い方がわからん
158 :
名前は開発中のものです。:2005/05/28(土) 21:55:39 ID:Y2DuO2Y0
今日から1ヶ月以内にGBAでインターネットができるようなソフトを作ろうと思うのですが、
遠隔操作ソフトを使ってパソコンから画像を発信してGBAではマウスの操作と画像を読み込むシステムにしようと思っているのですが、
なかなかよいソフトが見つかりません。もし何かよいソフトを持っている方がいたら教えて下さいお願いします。
まずは
>>158を日本語に訳してくれる有志を募ろうか
160 :
名前は開発中のものです。:2005/05/29(日) 00:44:05 ID:tpMSB+bX
まあ、そこまで言わなくても一行の文章を短く終わらせて書けば。
SaTaって人が全く同じことやってるよ
memsetは使えてるっぽいけどsprintfは使えないのかな?DevkitAdvance
-nostdlib ってどういう意味だろ?
最適化は面倒だからパスしようかな、とりあえずの目標はクリアしたり・・・
このまったりとした流れなら言えそうなので質問、音楽鳴らそうと思ってダイレクトサウンドについて調べた
C言語ファイルでデータを記述するものとオブジェクトデータでデータを記述するものがあるらしい
容量的にはオブジェクトデータの方が軽くなるらしいので使おうと思ったがC言語ファイルのデータを読むサンプルしか見つからない
pcmconvでコンバートしその後オブジェクトデータを出力するらしいbin2oを実行しても元ファイルに非常に似たファイルが出てくるだけです
その後調べてみたところリンカーの辺りで結合するらしいのですが、分からない事がいくつか出てきました
どのようにして結合すれば良いのでしょうか?
またデータがどこにおいてあるのかどうやって調べれば良いのでしょうか?
一番の問題としてポインタすら完全には理解できていない人の手に負えるものでしょうか?
開発環境はDevkitAdvanceのバージョン4です
>>163 ヒント:__iwram_overlay_lma
(u8 *)(&__iwram_overlay_lma)
これですか?
宣言の後にこれで読めると言うのは分かりました。
同じ所でファイルそのものをバイナリで結合していたのですが
こんな事をやっても大丈夫?と言うかこれが普通なのでしょうか?
(とりあえず確めてみてだめだったらもう一度ヒントもらいに来ます
>>164 有難うございました
__iwram_overlay_lmaは生のデータを後から追加で結合したいときだけに使え。
.oを作れるならリンクしたほうが確実だぞ。リンクの仕方は分かってるのか?
bin2o hoge.bin hoge.o !hogeでhoge.oを作ったとして
Cから使うにはextern const unsigned char hoge[];と宣言するだけだ。
リンクの仕方もわかってません
makefile.txtに色々書きこんでバッチ処理の時に一緒に読み込ませてるのはわかるので
とりあえずググッていくつかの.o読み込んでるサンプル眺めて来ます
ついでにC言語ファイルでは音が出せました
けど割り込みで失敗します
研究所の割り込みのソースのブランクをTIMER0に変えるだけでは駄目なのでしょうか?
リンクの仕方が分からないようなら書こうと思ったけど、調べるんならいいや。
>研究所の割り込みのソースのブランクをTIMER0に変えるだけでは駄目なのでしょうか?
TM0CNTの割り込みフラグは立ててるか?
>TM0CNTの割り込みフラグ
それだ!
タイマー開始のところの数字弄ったら解決できました。有難うございます。
170 :
162:2005/06/02(木) 15:39:03 ID:F8Q5wqFY
やっぱり最適化してます
プログラムをIRAMに置かない場合、thumb用でコンパイルしないといけないんだよな?
objdumpで逆アセンブルしてみたら4Byte間隔で0x0800****番地に配置されて
いるのはARM用にコンパイルされてるから?
#リンク時に -Ttext 0x08000000 としてます
コンパイル時の指定はどうすればthumbでコンパイルできるの?
-bかな?machineの指定はどうすればいいんだろう・・・
>>170 つ -mthumb-interwork -mthumb
指定しない場合はARM
ちなみにARMだろうかTHUMBだろうが動くんじゃないかな。
172 :
162: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
しかつかってないや・・・
みんなすごいね、割り込みとか、タイマーとか、スプライトとか、音とか・・・
typedef const unsigned char u8;
u8 foo[] = { }
っていうデータの音楽のファイルを馬鹿でかく(1.4MB)してコンパイルしよう
としたら
Virtual memory exhausted: Permission denied
って出るんだが…これってメモリに入りきらないって事?
普段はROMに置きっぱなしで必要な時だけ読み出すとかで解決出来るのであればその解決方を誰か教えて頂けないでしょうか?
>>173 Cのソースがでかすぎてコンパイル出来ねえよってこと。
コンパイルオプションに-O0(マイナスオーゼロ)をつけるか
bin2oで出来たオブジェクトファイルを直接リンクするか
ソースをasm(.s)で書け。
オブジェクトファイルのリンクが出来ない…orz
研究所のWav2gba_guiで.oファイルを作り
makefileの
OFILES += main.o \
bgm01.o
ってやってるんだが何度やっても変数がないって罵られる
makefileが悪いのかそれとも他に原因があるのか…
誰か初心者が陥っているであろうミスを教えてくれ
176 :
175:2005/06/04(土) 10:32:44 ID:Ri0Izx+x
自己レス
とりあえず原点回帰ということで
Dark Fader's site
のwav2gba bin2oで.oファイル作ったらコンパイルできた
今度は音がならない…
177 :
175:2005/06/04(土) 16:55:43 ID:Ri0Izx+x
またも自己レス
宣言をu16にしたら音は出たんだがCソースのデータでやってた時と比べて激しくノイジー
次から次に問題が出てくるんだが自分なんか間違ったやり方でやってるんだろうか?
178 :
175:2005/06/04(土) 17:23:30 ID:Ri0Izx+x
もう何が原因だったのかわからない。
もう一度u8に戻しても音再生できたしorz
ついでにノイジーになったのはシンクロナイズ外してたからでコンパイル時のミスではありませんでした
まる一日掛けて駄レスしまくってスマソ
179 :
162:2005/06/06(月) 21:58:46 ID:PaMPnmfV
質問です
memcpyでローカル変数の配列データをVRAMへデータをセットしようとすると
上手くいく時となんか行かない時が規則的に現れるんですが
原因はなんだと思いますか?
現状は:
配列データは多分予想どおりのデータが入ってる。
#memcpyを使わないでforループで書き込むと上手くいってる
objdumpでみると多分/arm-agb-elf/lib/thumb/interwork/libc.aの中のmemcpyをリンクしている
ヒントでもいいからプリーズ
180 :
162:2005/06/06(月) 22:32:35 ID:PaMPnmfV
追加:
memcpyの座標が1dot x方向に増えた座標へcopyすると上手くいく
#逆に上手くいってたものが上手く色を塗らなくなった
どう変かといえば、白が薄ピンク色になる
#オセロ盤で本来なら全部白いマスのはずが白いマスとピンクのマスが交互に並んでしまう
ヒント: バス幅
182 :
162:2005/06/06(月) 22:51:05 ID:PaMPnmfV
あ、もしかして書込み先が4Byte境界じゃないと上手く動かないのかな?
ヒント: 8× 16○ 32○
184 :
162:2005/06/06(月) 23:46:08 ID:PaMPnmfV
ドット単位でなにかしたいのなら
仮想VRAMに書いてドカッとコピーするか、
奇数偶数で演算を変えればいいだけだが?
もっともGBAはそういうアーキじゃないけどな
VRAMは書き込みが遅いので、
mallocでとっておいて、
そこに書いた後DMA転送するのがいいです。
バイト単位で書き込みできるしね。
外部ファイルから取り込んだビットマップデータとかならDMA一発だしな。
188 :
162:2005/06/07(火) 18:32:29 ID:ZI5uYn33
>>188 #include <malloc.h>
u16* pseudoscreen;
if ((pseudoscreen = malloc(sizeof(u16) * ScreenWidth * ScreenHeight)) == NULL) while (1) {};
とか。
190 :
162:2005/06/07(火) 23:38:21 ID:ZI5uYn33
mallocって前もって準備しなくても使えるの?devkitadvance使ってます
PCでmallocの使い方はわかるけど、GBAの開発でそのまま使えるとは思わなかった
manでみるとsbrkのサポートが必要みたいだけどこれはどうなってるの?
使えるなら質問
mallocで確保されるメモリはIWRAM領域から確保されるの?
EWRAM領域?bssで指定された領域?グローバル変数との使い分けは大丈夫なの?
実際にmallocしてアドレス確認すりゃいいと思うんだが
それよりはlnkscriptとgccの吐くmapファイルを見比べるべきだと思うが。
crt0.Sなんか見ても役に立たんぞ。
悩むな
u16 buff[ScreenWidth * ScreenHeight];
これでおっけー
196 :
162: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)を使ってみよう
>>196 おいおい、ゲーム製作とは違うところに逝ってるぞw
質問が途切れたみたいなので質問
PCMの合成はどうすれば出来るのでしょうか?
ゲーム製作時にどのチャンネルはBGMとか決めておくものなのでしょうか?
(英語の説明書が理解できなくて海外のサウンドドライバの使い方がわからない orz
>>198 PCMでいいんだよね?なら足し算
効果音をどうしたいかだよねぇ。
ファミコン時代なんかBGM使っているチャンネルで効果音を割り込ませて鳴らしてたな。
>>199 そんな簡単な方法でいいので…けどそう簡単でもないか
足し算結果をどっかに置いといてDMA転送元にそこを指定でいいのですかね?
まぁとりあえずRUNしてみます
>>200 オーバーフローチェックをどうするかだけ注意
たとえば4重合成するのなら、最初から1/4音量データを用意するとか。
シフトしてから加算でもいいけどな。
>>201 signed shortで合成しておいて、後で一括してクリッピングしてもいいかもな
すっごい素人なんだけどBGMって割り込みで鳴らすの?
音用のメモリがあるからそこにDMA転送で入れる。
DMAはTimer割り込み(正しくはFIFOとか言うのが割り込んでるらしいが)で送らせるように設定しておく。
ついでにビットレートはTimerの設定速度によって決まる(なんか勝手にゲーム本体がそうする)からTimerで使う値を多く取れば
低解像度(ビットレートが少ない低音質の音楽ファイル)の音が鳴る(高音質のはむちゃくちゃ遅くなる)
だから使いたい音のビットレートによってTimerに入れる値は変わる。
…らしい(所詮勘でプログラムしてるから理解していない厨wwww
206 :
162: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:2005/06/20(月) 10:45:55 ID:nuWkCFET
#mallocから逃げてるオイラ
memcpyの代わりにDMAを使ってローカル変数配列をVRAMに描くことで最適化できないかと思い
for(行数分){
// memcpy();
DMAmemcpy(); //中でDMAをつかってる
}
こんな感じでDMAをつかってmemcpyしたら速くなるかな?とおもって作ってみました。
でも動かないT_T
こんな感じでDMAを使うのはまちがってるんでしょうか?
#間違ってるんだろうなぁ・・・
#小さい画像データならスプライト使うほうが正しいんだろうなぁ・・・
DMAmemcpy();の中身か、せめてパラメータを書いてくれないと全く要領を得んな。
・memcpyと違ってDMAの転送サイズ指定は2バイトか4バイト単位
・表示期間中はDMAでVRAMへの転送は出来ない
・そもそもDMAの設定方法が間違ってる
このどれか。
209 :
162:2005/06/20(月) 12:03:40 ID:nuWkCFET
>>208 さんくす
たぶん、「 表示期間中はDMAでVRAMへの転送は出来ない」これだろうなぁ
1番はエラーチェック入れてるし、3番は多分間違ってない、と思うし
描画タイミングなんて考えたこと無かった
う〜ん、イベントループで描画用イベントをつくり、描画はそちらにまとめないと駄目だなぁ・・・
それにしても動かないってことは無いだろ。
数ミリ秒ロックかかるだけなんだから。
211 :
162:2005/06/20(月) 13:29:38 ID:nuWkCFET
動かない、ってのは誤解させたか
正確に言えば、その部分の描画処理をしてくれない、かな
四角く塗りつぶす関数
for(y行分){ for(x幅){ VRAMへ書き込む } }
を
for(x幅){ローカル配列に書き込み}
for(y行分){ローカル配列をDMAmemcpyでVRAMへ}
って処理にしたら塗ってくれなくなったのよ
調べてたらDMAチャンネルうんぬんってのがあるみたいだし、
CPUが空いててもDMAコントローラ(?)は空いてないだろうし・・・
>>211 DMA busyチェック/終了確認してるかい?
同じDMAで転送中に更に転送開始したら、中断する。
213 :
162:2005/06/20(月) 14:12:35 ID:nuWkCFET
>>212 それだ、やっと頭の中でつながった!サンクス
>>213 で、何作ってんの?
AVGサンプル(DMA使用)ならゲ研にあるよ
215 :
162:2005/06/21(火) 17:36:36 ID:2bu24OLk
一番の目標は、組み込み向け開発ノウハウの勉強
それも、単純なLEDだけの世界じゃなくて、ある程度GUIがある組み込み。
でもそれだけじゃ漠然としすぎてどこから手をつけたらいいか迷うので
今作ってるのはパズル。「数独」ってしってる?
これならグラフィックやシナリオで迷わなくていい。
次はマインスイーパかソリティアでもつくろうかなって思ってるところ
>216
パズルの方はフラッシュに焼いて実行するなら、
makefile の LDFLAGS の -Ttext=0x02000000 を
-Ttext=0x08000000 にするんじゃない??
誤:パズルの方はフラッシュに焼いて実行するなら
正:パズルの法はエミュレータやフラッシュに焼いて実行するなら
optimizeのパズルサンプルをエミュレータで動かしたい場合は拡張子を.mb.gbaにすればいい。
>>216が作ったのはたぶんROMに焼いて動かすためのイメージだから
実機で動かすにはFlashROMを買ってくるか、
実機のRAMに直接転送して動くように作り直す必要がある。
プログラム研究所のサンプルも同様。
>>216 実機で起動するときNINTENDOロゴがちゃんと表示されるか?
表示されていなければヘッダを修正する必要がある。
221 :
216:2005/06/25(土) 21:10:36 ID:aa82OW6G
やはり原因は0x08000000 -> 0x02000000でした。
無事実機でも動きました!
皆様色々ありがとうございました。
const int __gba_multiboot;
これもあったなあ
とりあえず環境落として始めてみたんだが、
ゲーム作るためのライブラリを作るだけでおなかいっぱいになりそうだ_| ̄|○
225 :
162:2005/07/07(木) 22:26:25 ID:IdWw8xni
226 :
162:2005/07/07(木) 22:28:21 ID:IdWw8xni
操作方法は
・selectでメニュー
・Aでセルの数字が増える
・Bでセルクリア
・十字キーで移動
です
すみません。ど素人な質問なんですが、できればお答え下さい。
GBAのプログラムはだいたいどの位までの、データを実機で使えるものでしょうか?
個人的に、電子辞書+単語帳代わりにデータを写して使いたいのですが、
200Mbyteぐらいいけますか。また、基本的な組み込み系のプログラムはまるで触ったことのない人間なのですが、
C言語とC++をちょっとさわったくらい(ベターC程度にしか使えません)でも扱えるような物でしょうか?
あと、起動時間は10秒ぐらいでしょうか?
ROMが最大32Mbyte RAMが256kbyte+32kbyte
言語はCが使えれば充分 C++はベターCで全然よし
起動時間はメーカーロゴが入るので5秒くらい メーカーロゴを含めなければ一瞬
ビットマップにフォントを表示できるようになれば簡単な辞書ならすぐ作れると思う
ただし容量が少ないのでデータを厳選するか きつめに圧縮するかしないと
いけないだろうな
頑張れや
>>227 キミの好きそうなprintf()もscanf()もないからやめとけ
素直にザウルスか電子辞書買っとけ
230 :
162:2005/07/13(水) 14:04:49 ID:QdmkZAfq
printfくらいは自作してもいいけど入力どうしようかな?
ケータイみたいな仮想キーを作ってそれで入力する、かなぁ
これなら12この仮想キー(ボタン?)で済む
「ホームランド」みたいな入力システム作れればいいんだろうけど、ムズカシイ・・・
>>230 RとLボタンで文字種変更、十字キーで文字変更(右左で子音・上下で
母音変更とか、ケータイ方式とか)でAボタンで決定、Bでクリアとか。
SELECTでエディットモード抜けて十字キーかRLボタンでカーソル移動とか。
どうせやるならNDSでやったほうが良いと思う。入力デバイスの問題で。
実機で動かす方法は知らんが。
ゆうていみやおうきむこうでいいやん
とあるラベルを4バイトアラインで配置したいときってどうするんでしょう?
今は配置したいラベルの前に、
asm(".align 4");
って入れているんですが、何か違うような、もっとすっきりした方法があるような気がします
236 :
235:2005/07/30(土) 16:42:19 ID:rH8bjVXA
>>235 ごめん。上の方法、正しくリンクできなくなります。
誰も使わないと思うけど、念のため…
>>235 gcc なら __attribute__((aligned(4))) とか
>>237 できました。ありがとうございます。
それはそうと、gccでラベル全てをアライン付けるオプション試してみたけど、何も変わりませんでした
devkitのこれとは違うんでしょうか。自分が意味を取り違えてる可能性のほうが高いと思うけど。
無いはずだが。何かと勘違いしてるんじゃないか?
ちょっと程度の低い事ですが質問です。
スプライトの画像を左右を逆転して表示したいのですが、
sprites[0].attribute1 |= 0x1000;
とかやってますが、どうもうまくいきません。
どのようにすれば、反転して表示できるのでしょうか。
attribute0の拡縮フラグは0になってるか?
それぐらいしか思い浮かばないが・・・。
>>241 とりあえず、spritesの構造体定義を晒せ
話はそれからだ
…まさか、VBlank期間外にOAMを書き換えようとしてないだろうな?
>242
うう、まさしくそれでした。
削ったつもりだったのですが、色々試してた時のが残っていて。。。という感じでした。
兎も角、ちゃんと反転表示はできるようになりました。ありがとうございます。
>243
まんま「GBAプログラミング研究所」さんのサンプルを利用してます。
>>243 垂直表示期間中に書き換えても、その状態が継続しているのであれば
次フレームで反映される。
247 :
名前は開発中のものです。:2005/08/22(月) 13:25:40 ID:xaZ8lnmP
DMAに手を出してみたけど…むつかしいね。
というか、devkitのDMA転送マクロをそのまま使うと、ちゃんと動作しないときがあるっぽい
(同じチャンネルを使い、連続して転送を実行した場合?)
別のサイトから拾ってきたソースのを使ったらうまくいったけど…ごめん。URL忘れた。
DevkitAdvanceを使えと言われそうですが、都合により Thumb/ARM GCC の環境を作ろうとしていて、
そのために必要な libg.a を探しています。
ぐぐって探したところ、Glibc というライブラリに入ってそうな感じがしたのですが
ダウンロードしてアーカイブをバラしても見つかりませんでした。
どなたか持っている方がいたらアップして頂けないでしょうか?
ttp://gamdev.org/up/
249 :
248:2005/08/28(日) 16:48:57 ID:rrKRiOqt
自作の同人ゲーをブートスティックに入れて売ってみたいんだが、
やっぱオプティマイズの中の人の許可が無いと色々怒られっかな。
オプティマイズの中の人も任天堂に許可を取って売っているわけではない
規模にもよるだろうけど構わないんじゃないの
スプライト表示の際ブレンド指定したら、全てのスプライトが半透明になっちゃったんですが
何か気をつけるべきことってありましたっけ?attribute0のb10,11はきっちり設定しています
あとちょっと確認なのですが、
スプライト#0はブレンド、#1はDARK…みたいにはできませんよね?
あくまでもブレンドモードなら128枚全てブレンド(か通常表示かwindow)、DARKなら128枚全てDARKで
>>252 ちょっと勘違いしてる
REG_BLDMODは面全体に掛ける指定で、OBJを指定したらOBJ面全部が半透明になる
スプライトattribute0の半透明属性は、スプライト一個一個に対して個別に
ブレンドを指定したいときに使う
スプライトを一個だけ半透明にしたいのならREG_BLDMODのOBJフラグは立てないように
また、attribute0で半透明にしておいて、さらにREG_BLDMODでDARKにすることは可能らしい
>249
それは x86 で動く EOTA という OS 専用のバイナリなので、他では使えませんよ
あちゃ、Vブランク関係のせいでコンパイルがうまく通らなかったのはそれのせいか・・・?
(↑の関数を一つコメントアウトしたら通ったけど)
経験が浅いので正直よくわかりませんが
>>253 ありがとうございます。
特定のスプライトだけ半透明にしたいときは、
パラメータはREG_COLEVで与えるだけで、REG_BLDMODは0のまま
半透明にしたいスプライトのattribute0をつつくってことでいいってことですよね。
いろいろこねくりまわしてみたす。
>>255 勘で書いてますが、コンパイルを通すためだけに libg.a が必要なら
libc.a があるならそれを libg.a のファイル名でコピーをして代用に
すればよいかもしれません。
BASIC言語で開発が出来ると知り、初めて何か作ってみようと思い、
DragonBasicという開発ソフトを探していたのですが、見当たりませぬ…orz
入手可能なサイトの誘導 or うpきぼんぬ…
>>259 検索してみたけど、サイトなくなっちゃってるね
ドメイン乗っ取られたのか、開発やめたのか・・・
DragonBasicってもう、制限外れたんですか?
だったらやってみようかな・・・
64kbの制限はもう無くなったみたい。
これで日本語の資料があればいいんだけどね。
つ Binary Patch
>>265 すんません。もうちょっとヒントください
269 :
259:2005/09/22(木) 06:03:06 ID:LA1GrTxo
亀だが、サンクス
(長らくアクセス規制の巻き添えをくらっていたもので…)
VBAだとレジスタの状態とかがチェックできることを最近知ったんだけど、
他のエミュレータでこういう開発者向け機能が付いたのってないのかな
MappyとNO$GBAは開発者向けやね
たとえばMappyは単体でbreakpointが指定できる
>>271 横レスですが、ありがとー
早速導入してみます。
今まで(VBA)は0x0001に書き込んで通過したしてないを確かめてたもので…
デバッガとその使い方を探しています。
開発環境は、devkitARM+libgba(cygwin上でビルド)です。
試したのは、
- gdb6.0
- VBAのサイトにあるinsight
- MappyVM
なんですが、gdbの接続に関する考え方やMappyVMでのブレークの貼り方などVCにどっぷりだった人間には敷居が高すぎます。
あと、NO$GBAも試したいのですが、フリー版以外(Shareware Debugger版)が見つかりません。
何かよい資料、もしくはサイトがあれば教えてください。
>>273 敷居が高いのなら手を引けばいいんジャネーノ?
276 :
273:2005/09/26(月) 17:57:12 ID:y5B9QtHo
>>276 VisualBoyAdvance(-SDL) -Gtcp file.gbaで接続待機状態にしておいて
あとはInsightでfile.elfを開いて127.0.0.1:55555にtcp接続するだけ
念のため注意しておくが
コンパイルオプションに-gをつけて
デバッグ情報を付加しておくのを忘れないように
279 :
273:2005/09/28(水) 04:16:38 ID:CFaCLSg8
VBA-SDLで接続までこぎつけたんですが、ソースが表示できなかったり、ステップ実行できなったりきちんと動いていない模様。
CFLAGSには、-g -O0を入れているんだけど・・・。
あと、NO$GBAの作者から返事がこない。
ルーズ(時間がゆっくり進んでいる)なのか、気難しい人なのか・・・。
>>279 その作者にも日常の生活もあるし、問い合わせをするのが貴方だけとも限らない。
たかが3日で、ルーズだの気難しいなどは失礼だぞ。
281 :
273:2005/09/30(金) 23:35:40 ID:Yq1rn3Bb
>>273 devkitARMはどのリリースを使ってる?
r14だとデバッグに支障があるって話を聞いたぞ。
283 :
273:2005/10/06(木) 19:50:44 ID:s4p5XHWr
>>282 cygwinで開発しているのでbuildscripts-20050915 でビルドしました。
リリースの日付から、r16(09/14リリース)相当かと勝手に思ってます。
ところでセル分割、何でやってる?
セル分割とは?
286 :
名前は開発中のものです。:2005/10/13(木) 18:07:24 ID:4qzozV78
任天堂がだしてる開発ツールを使った事ある人はいませんか?
どのていどのスキルがあれば使えるのか知りたいです。Linuxのと同じくらいだと自分の腕ではツライかなって思ってます。
>>286 どんなスキルがあっても、カネとコネが無いと使えないと思うよ。
>>285 とある画面を8*8単位で分割。
同じパターンの絵をまとめて、レイアウトを吐き出すことです
これだけでわかります?
レイアウト : mode#0-2において、0600E000からに配置するデータのこと
>>289 ありがとうございます。でももう自分で作っちゃった
DOS窓ベースでバッチ処理可能ですが…いる人とかいます?
ゲーム製作ほぼ初心者の俺も参加していいんですかね?
任天堂が出してるツール、と一口に言われても以下略
>>290 うpうp
>>292 ありがとうございます。以下のアップローダーに上げておきました。
使用は自己責任でお願いします。
とりあえず自分で使っているので、最低限の機能はあると思います。
XPのDOS窓で動作します。使い方はヘルプ参照で。
ウィルスチェックはしてありますが、念のためお願いします
ttp://49uper.com:8080/html/img-s/89218.zip MD5:B364816D3FA4BE611502A94AE72D3696
pass : agb_2ch0
あと
>>290ですが
×DOS窓ベースでバッチ処理可能ですが…
○DOS窓ベースなのでバッチ処理可能ですが…
ちょっとDSをつついてみようかと、devkitproを入れたんですが、
コマンドが干渉しているのかGBAのプログラムのmakeができなくなってしまいました。
(dumping stack track…gcc.exeって出てくる)
一応make前に環境変数を書き換えて対応しているのですが、もっとスマートな方法ないでしょうか
環境変数の変更( set PATH でのパスの追加) → make
の一連の流れをバッチファイルにする。
うまくいくかどうかは知らない
>>295-296 即レスありがと。
当然バッチかましてますー。意外なところで役に立つMS-DOSの知識
今はこんな感じ…でもいまいちスマートじゃなくて。
[prjmake.bat]
PATH = c:\devkitadv\bin;%PATH%
make -f makefile.txt
pause
devkitproはarm-elf-gccで
devkitadvanceはarm-agb-elf-gccじゃなかったか?
makefileのgccって書いてあるところを
直接ファイル名で指定すれば干渉しないと思う
>>298 ごめん。ダメだった。
エラーがgcc.exeからarm-agb-elf-gccにかわっただけ。
もしかしてshかmakeが悪さしてるのか?
エラー内容をコピペしてみてくれないか。
>(dumping stack track…gcc.exeって出てくる)
じゃ何が起きてるのかすら分からん。そもそもdumping stack traceだし。
もしDOS窓なら右クリックでコピペできるから。
gcc.exe.stackdumpの中身もあったらよろしく。
お手数かけます
gcc -g -O3 -mthumb-interwork -Wall -fverbose-asm -fpeephole -c src/bios/actctrl.c -o actctrl.o
0 [main] gcc 816 open_stackdumpfile: Dumping stack trace to gcc.exe.stackdump
がDOS窓に出た後、
[問題が発生したため、gcc.exeを終了します。ご不便をかけて申し訳ありません。]のウィンドウが出てくる状態です
詳細情報は、
AppName : gcc.exe AppVer : 0.0.0.0 ModName cygwin1.dll
ModVer : 1003.0.0.0 Offset : 000586df
exception information
code : 0xc0000005 : flags : 0x00000000
ごめん。以下略で
stackdump忘れてました
Exception: STATUS_ACCESS_VIOLATION at eip=61008206
eax=710A66EC ebx=715B2F6C ecx=000208D0 edx=00000774 esi=00000000 edi=715B00D4
ebp=0240FEC0 esp=0240FE9C program=e:\sdk\AGB\devkitadv\bin\gcc.exe
cs=001B ds=0023 es=0023 fs=003B gs=0000 ss=0023
Stack trace:
Frame Function Args
0240FEC0 61008206 (715B00D4, 00000774, 00000003, 61003A6E)
0240FF10 61003BE9 (00000000, 00000002, 852E0D98, 852E0D98)
0240FF40 6100421D (004013A0, 00000002, EC845C68, 8053D991)
0240FF60 6100425C (00000000, 00000000, FFFFFFFA, 00000000)
0240FF90 0040168F (004013A0, 852E0D20, 80579100, E5553300)
0240FFC0 0040103D (00000002, 0022DFC0, 7FFDF000, EC845CF0)
31317 [main] gcc 816 handle_exceptions: Error while dumping state (probably corrupted stack)
GBAのバンク切り替えってどうやってやればいいんでしょうか?
GB時代はSWITCH_ROM_MBC*でやっていた記憶があるのですが、
GBAでは見つかりません(使えない?)でした。
そもそも、32kbの壁を越えたプログラムって作れないんでしょうか。
1Gbitとかのフラッシュがどうやって動作しているか不思議で夜も眠れません。
16MBの壁ならあるが32kBの壁など無いぞ
何のことを指しているのだ?
誤解を解くためにはそこからはじめる必要がある
ごめん32MBの間違いだった。
306 :
303:2005/10/25(火) 22:42:51 ID:IoKP5aST
>>304-305 ご、32MByteですた。ごめんなさい。
最近のフラッシュは1Gbit(1024Mbit)=128MByteですよね。
これってどうやって上位アドレスにアクセスしているのですか?
テストプログラムを組んでみたんですけど、32MB領域までしか
取り出せませんでした、、、という事はバンク切り替えで?
ひょっとしたらpogoshellのソースにあるlibfc_*が使えるかもしれないが
使えたとしてもROM全体のオフセットアドレスが変えられるだけで
GBのようにROMエリアの後半だけ切り替えるみたいな芸当は出来ないぞ
現実的でないと思う
308 :
303:2005/10/26(水) 17:31:06 ID:WC7Mmkli
情報ありがとうございます。libfc_*を解読中です。
でも、どこで切り替えているのかさっぱりw
多分executeCartあたりかなーっ。
> ROMエリアの後半だけ切り替えるみたいな芸当は出来ないぞ
全体切り替えでも十分です。
ただ、切り替えに相当の時間がかかるようであれば問題なのですが、、、
合計で50MBを越える大容量の画像データを扱いたいのですが、
何か良い方法はないのでしょうか。
310 :
303:2005/10/26(水) 23:45:05 ID:WC7Mmkli
ありがとうございます!! まさにコレです。
でも、ひとつ解せない事があって
> 0x8008000 rom1 register is 0x08
0x08 = 256KB(0x200000) なので、0x80200000 が開始アドレスになると思うのですが、、、
うぅ〜ん、まぁ、いいか。調べてみます。
> PSPに転向したほうが・・・('A`)
おっしゃる事は重々身に沁みるのですが、諸事情でゴホゴホ、、、
copy /b でバイナリに付加したファイルやpogoshellから引き渡されたファイルのサイズを取得する方法はありませんか?
__iwram_overlay_lma の存在までは探したんですが・・・。
引数でファイルサイズは渡されない。
フォーマットが決まっているもの(BMP等)なら、引数のアドレスから求める。
ベタデータならフォーマットを作って、予めサイズを付加しておく。
>>311 ケツにくっつけたバイナリは
>>312の通りとして、pogoshellの方な
#define POGO_FILEHEAD (*(volatile u8**)0x0203fbfc)
#define POGO_FILETAIL (*(volatile u8**)0x0203fbf8)
u32 pogo_filesize = (u32)POGO_FILETAIL - (u32)POGO_FILEHEAD;
どらごんBASICのひとカモン!!
呼んだ?
ギャルのパンティおくれー!!
うちの妹のでいい?
wavファイルを元にして音を鳴らそうとしています。
ttp://yun.cup.com/falinker10.html このページを参考に、というかそのまんまマネをして
wavファイルの用意、変換、ソースコードへの取り込みとやってみたのですが
うまく鳴りませんでした。
全く反応がないわけではありませんが、ジジジジってノイズ音がするだけです。
wavファイルを差し替えながら何回か試行してみたのですが、結果は同じでした。
何かこう、うまく質問できないんですが、どなたか原因を推測できる方・・・いませんか?
Devkit、wav2gba、b2x、wavの編集にSoundEngineを使いました
>>318 ソースとデータ一式どっかにうpれば見てくれる危篤な香具師がいるかもヨ?
話の流れを変えてすいませんが、どなたか
ノベルエンジンのHeavensDoorというのを
持っていませんか
あ○ぱ○ for GBA、キテタ━━━━━━(゚∀゚)━━━━━━ !!!!!
さりばとーる氏、乙
325 :
安心君:2005/12/14(水) 19:57:14 ID:fzqg+vfa
326 :
名前は開発中のものです。:2005/12/14(水) 20:59:12 ID:pV4C0JuU
er
327 :
安心君:2005/12/15(木) 17:01:11 ID:623xAln9
winMeでDS開発てどうなりました?
そんな糞OSは捨てろ
>>330 なに!もしかしてgbaのSDLポートですか?
>>318 SoundEngineで編集する前にHotWavで一度上書きしてみ
たぶん出来るよ
>>334 余裕で入手出来る
日本のサイトでもダウンロードから環境設定まで
詳しく説明してくれてる
>>334 どうしてもGCCGBAじゃないと嫌なのか?
他にdevkitadvanceやdevkitarmもあるが・・・
この二つも中身はgccだぞ
337 :
334:2005/12/29(木) 23:40:06 ID:LuJbg6uF
ほとんどのコンパイラがgccベース(というかgccそのもの)なのは知っていますが
モノによって付属のファイルに違いがある様なので、違うものと見なして色々試している所です。
とりあえず、まだ手に入る様なのでもうちょっと探してみます
>>338 それ何ですか!?
ものすごい興味があります
つ readme.txt
リンク先が英語でさっぱりわからないんですが
ゲームを作るにはまずどうしたら良いのでしょうか?
エミュレータ上で動けば満足です。
つ【Excite翻訳・ goo辞書】
まて、gbaならば、日本語サイト一杯あるっしょ
345 :
名前は開発中のものです。:2006/01/13(金) 00:09:05 ID:K9moGWkO
日本語サイトでおすすめはどこですか?
347 :
名前は開発中のものです。:2006/01/13(金) 22:46:41 ID:EKsFivTw
あり
サウンドエンジンでなにか良いものは無いですか?
いままで小物を作る時にはAASを使っていました。
ただ、
- ロゴ表示やライセンスがらみが大変そう
- modのチャンネル制限とかを受け入れながらデータを作ってくれる人がいない
- リンカスクリプトとか自分の把握しきれないソースを付加されるのが気分的にあまりよくない
(うまくいえないけど「気持ち悪い」ってやつ?)
などの理由があって、もっと手軽なものは無いかと探しています。
とりあえず、Code WavesのGBA Module Playerを試しています
ttp://www.codewaves.com/gbaplay.html # oggとかでループができると嬉しいかも
#ここかNDSスレか迷ったけどこっちにしよ
任天堂がPalmOSのライセンスを買ったって本当か?
PalmはVisorの頃しか知らんが旧MacのToolboxに似たAPIを持ってたと記憶してる。
あんなライブラリが使えるのか・・・うらやましい
351 :
名前は開発中のものです。:2006/01/15(日) 15:43:47 ID:eWml9L9Z
DevkitAdvanceのファイルをDLできないけど
他にDLできるとこないですか?
352 :
名前は開発中のものです。:2006/01/15(日) 16:16:01 ID:eWml9L9Z
ちなみに基礎から学ぶサイトに
agb-win-core-r5.zip
agb-win-binutils-r4.zip
agb-win-gcc-r4.zip
agb-win-newlib-r4.zip
agb-win-libstdcpp-r4.zip
agb-win-patch-r4.zip
これをDLしろと書いてますが
このサイトからはDLできなかったので他のサイトで
agb-win-binutils-r5-beta-3.zip
agb-win-core-r5-beta-3.zip
agb-win-gcc-r5-beta-3.zip
agb-win-insight-r5-beta-3.zip
agb-win-libstdcpp-r5-beta-3.zip
agb-win-newlib-r5-beta-3.zip
これをDLしたのですが、これだけでいいのでしょうか?
基礎から学ぶサイトと違うので合ってるか分かりません
どなたかご指摘をお願いします
353 :
名前は開発中のものです。:2006/01/15(日) 16:54:13 ID:eWml9L9Z
自己解決しました
oggを再生するには解凍しながら再生するわけだから
17メガヘルツ(だっけ?)のGBAではキツイかも。
音楽だけならともかくスプライトやら背景やらの表示で
処理落ちしそう。ゲーム部分の重さにもよるだろうけど。
355 :
名前は開発中のものです。:2006/01/15(日) 20:44:38 ID:hHmhgK/M
基礎から学ぶサイトのStep 01 開発環境の通りにDLしたのですが、
その後の解凍のところで手詰まりになりました^^:
ダウンロードしたあと、それらのファイルを解凍ソフトを使って解凍したあとに
ひとつの「devkitadv」のなかにまとめます。と書いてますが、
解凍するたびに「devkitadv」フォルダが出てきて上書きになってしまいます。
これは全部上書きでいいのですか?
それとCOPYINGというファイルも複数出てくるので
これも上書きでいいのですか?
どなたか教えてください
全部上書きで良いはず
駄目でも最初からやり直せば済む話だしなんでもやってみ
357 :
名前は開発中のものです。:2006/01/15(日) 22:07:52 ID:SzmXDjQJ
全部上書きでやってみました。
また質問なんですが、
正しくインストールされたか確認するの項目の
部分がよく分からないのですが、
解凍したgcctestフォルダのgcctestをクリックでokですか?
これをクリックしてもこのサイトで
書かれてる文章が出てこないのです
何度もすみませんが教えてください
質問なんですが、bmpファイルをプログラム内で解析して、表示
(つまりbmpファイルをそのまま表示)することって出来るんですか?
なんか.gbaファイル以外はなにも生成されないので、無理っぽいのですが。。。
361 :
名前は開発中のものです。:2006/01/16(月) 15:19:06 ID:T9mslL+x
初心者すぎるとだめですか
そうですか
そんなこと無いけどGBA研究所のBBSで聞いた方がいい
質問が多いみたいですね。あちらの方が丁寧に
教えてくれますよ。
363 :
名前は開発中のものです。:2006/01/16(月) 16:27:56 ID:T9mslL+x
ごめんスレ間違った
パスが通ってねえだけだろ
DOS窓開いて
c:
cd \devkitadv\bin
gcc -v
と打て
バージョンが表示されたらパスの設定しなおし
されなかったらインストールのしなおし
365 :
357:2006/01/16(月) 18:44:54 ID:CbJ6YI7c
C:devkitadv¥gcctest>gcc-V
‘gcc’は内部コマンドまたは外部コマンド、操作可能なプログラムまたはバッチファイルとして認識されてません。
C:devkitadv¥gcctest>pause
続行するには何かキーを押してください、、、
と出ます
だから path 通せって・・
367 :
357:2006/01/16(月) 22:20:20 ID:CbJ6YI7c
通してますよ
Pathを選び編集、編集値の最初か最後にC\devkitadv\bin:を入れてOKですよね?これやっているけどできないです・・・ちなみに最後に付けてます
単なるタイプミスかもしれないけど、それセミコロンじゃないよな
369 :
357:2006/01/16(月) 22:35:07 ID:CbJ6YI7c
あのレスは自分で打ったので気にしないでください。登録に使ったのは基本から学ぶサイトのをコピーして貼ったから間違いはないと思うのですが・・・
>>367 最後に入れる場合は ;C\devkitadv\bin; のほうが良いかもしれない
はっきり言ってこんなところでつまづいてるようじゃ先が思いやられる
あとお前は鼻で馬鹿にしてるんだろうが
>>364もちゃんとやっとけよ
372 :
357:2006/01/16(月) 22:59:18 ID:CbJ6YI7c
>>370-371 おぉできました
ありがとうございましたm(__)m
>>1に初心者歓迎と書いてたからやってみたくなったんです
本当にありがとうございましたm(__)m
>>372 できれば、どこが間違ってたかを晒しておくと、
後で、このスレみた初心者が同じところでつまづくことがなくなっていいぞ。
374 :
名前は開発中のものです。:2006/01/17(火) 00:42:17 ID:9917DXoA
>>372 >>371氏の指摘してくれたこれに ;C\devkitadv\bin; を使ったらいけました
俺様メモ:
moefs20040712の関数moe_getfilenum()内の
if(strcmpi(filepath,fn)==0)
{
return i;
}
の直下に
filepath[0] = '\0';
が必要…あれ?公開停止!?
>>375 間違えた。
for()ループの先頭にあるべきだ。
377 :
名前は開発中のものです。:2006/01/28(土) 04:46:46 ID:qHfVsUDg
ここでいいのかわからないけど。
空ロムにただのゲームボーイソフト突っ込んで、アドバンスでうごくの?
ゲームボーイの空ロムならうごくけど
アドバンスの空ロムには無理
8bit PCMのwavをwav2gbaとかで変換せずにそのまま鳴らすには
wavヘッダ解析した後に割り込みの中でunsigned→signed変換する
しかない?
383 :
382:2006/02/06(月) 21:50:38 ID:WwPe7cx3
あ、382は >380へのレスです。
384 :
名前は開発中のものです。:2006/02/09(木) 10:13:49 ID:Pyq5lHIe
(コメント以外で)日本語を含むプログラムを書いた人っていませんか?
今、GCC 2.9 が採用している文字コード表を探していまして
直接的には見つからなかったのですが、「(\バグ付の)不完全なシフトJIS」らしいので
シフトJISコード表を参考にプログラムしちゃっていいんでしょうか
「ソ」や「表」などの¥でエスケープすべき文字が分かっていればそれでいいよ。
EUCに代えるのも一つの手だとは思うけど。
>>384 ―ソЫ\噂浬欺圭構蚕十申曾箪貼能表暴予禄兔喀媾彌拿杤歃濬畚秉綵臀藹觸軆鐔饅鷭xx
んだけ
387 :
名前は開発中のものです。:2006/02/09(木) 19:59:06 ID:BVk4/W+U
388 :
名前は開発中のものです。:2006/02/09(木) 21:08:07 ID:2FQ4gYWp
GBAプログラム研究所落ちてない?
なんでだろ。教えてエロい人。
389 :
名前は開発中のものです。:2006/02/09(木) 21:10:03 ID:2FQ4gYWp
GBAプログラム研究所落ちてない?
なんでだろ。教えてエロい人。
390 :
名前は開発中のものです。:2006/02/09(木) 21:45:17 ID:BVk4/W+U
ほんとだ
トップページは403 その他は404になってる
鯖落ちか何かじゃない
みんななんだかんだいって見てるんだね
最近BBSにも書き込みなかったみたいだけど
392 :
名前は開発中のものです。:2006/02/11(土) 00:08:16 ID:BVtzYhDA
SFCのロムから吸い出したスプライトデータとかみると
24*32サイズのものが多い気がします。
これをGBAで利用するには32*32のスプライトを用意して
センター寄せで読み込ませるしかないんでしょうか?
それとも24*32サイズのスプライトを造ることができるんでしょうか?
24は無理
その前に吸出しデータを利用するな
394 :
名前は開発中のものです。:2006/02/11(土) 00:27:43 ID:BVtzYhDA
すいません。キャラチップ作るのに時間をかけたくなかったので…。
RPGツクールのフリー素材とかも24*32なんですよね。
SFCでは24*32ってモードがあったんでしょうか?
ツクールの素材ってツクールにしか使えないやつがほとんどじゃない?
任意のサイズにしたかったら複数のスプライト組み合わせればいいじゃん
32x32のスプライトをEDGEで縦3/4にするとか
ロムから吸い出したデータなんか役に立つのかいな
色化けてるんじゃない?SFCはパレットじゃなくハイカラー以上なのか
>>394 SNESも24は無理
その程度の知識でよくROM吸い出来たな
>>392 どうしたらいいのか思いつかないようなヴァカには無理だからやめとけ
>>395の言うように8x32と16x32を組み合わせるか
右に8ドットの空白を足して32x32で使うかだな
前者はROMサイズとVRAMの節約
後者は手間とスプライトの節約
俺なら後者を取るがね
>>392 センターよせが一番無難じゃないか?
回転させることとかも考えれば。
ところで、BoyScoutって公式トラッカーしかないの?
日本語環境だとレイアウトが微妙に崩れてて使いにくそうなんだが。
だいぶ前にDirectSoundで音を鳴らそうとしていた
>>318です。
「波平」と、サンプルソース(
>>318と同じ処理 )を拾うことができたので、
あらためてチャレンジしてみたところ音が鳴るようになりました。
どうも、SoundEngineが原因だった様な気がします。
次にwavを複数登録しようとしたのですが、また壁に当たってしまいました。
複数のWavファイルをROMに格納しておいた場合、
指定してないファイルが勝手に再生されてしまうことがあります。
extern u8 test[]; // wav1
extern u8 data[]; // wav2
void AgbMain()
{
play_dma((u32*)&data);
// play_dma((u32*)&test);
while(1){}
}
こういうソースがあったとき、例えば data を指定して再生すると
data だけが再生されるのですが、 test を指定して再生すると
test の再生が終わった後、勝手に data の再生が始まるのです。
どうも、wavファイルの配列の先頭のアドレスは引数として渡されているけど
終端の方がチェックされていないので、ずるずると再生が続いてるような気がします。
>>322のソースでは、フレーム数を計ってプログラマーの方で手動で再生を切っているようですが
そんな方法しかないのでしょうか
int play_dma(u32* sound_src){
// DirectSound設定 REG_SGCNT0_H = 0x0906;
*(u16*)0x4000082 = 0x0b0E; // sound control channel ( SGCNT0_H )
// 左右ボリュームの設定 1234 1234xLLL xRRR (0x77) REG_SGCNT0_L = 0xffff;0x0080;
*(u16*)0x4000084 = 0xffff; //sound enable ( SGCNT1 )
// *(u32*)0x40000BC =(unsigned long)&ROM_Sample; // the address of the source
// *(u32*)0x40000BC = (u32*)sound_src; // the address of the source
// Waveデータ転送アドレス設定
*(u32*)0x40000BC =(u32)sound_src; // the address of the source
// DMA→サウンド REG_SGFIFOA_L
*(u32*)0x40000c0 = 0x040000a0;// Dest DMA LOW&HIGH written (0x40000c0= DM1DAD_L )(0x040000a0=SGFIFOA_L)
// DMA有効,転送元増加,転送先固定,32ビット
// REG_DM1CNT_H = DMA_ENABLE(8000) | DMA_TIMMING_SOUND(3000) | // DMAイネーブル・サウンドFIFO要求
// DMA_IF_ENABLE(4000) | // 割り込み要求イネーブル
// DMA_CONTINUOUS_ON(0200) | // 連続モードON
// DMA_SRC_INC(0000) | DMA_DEST_FIX(0040) | // 転送元増加・転送先不変選択
// DMA_32BIT_BUS(0400); // 32ビット
// =e640
*(u16*)0x40000C6 = 0xB640; // サウンドFIFO要求を入れると音が鳴らない?
// タイマー0の値を設定 u16の−値がサンプリングレート(周波数)になる
// 11KHzの場合 -1520
*(u16*)0x4000100 = (u16)(-1520);
// タイマー0を設定、周期は1クロックで1進む
*(u16*)0x4000102 = 0x0080; //timer Control. Ingen IRQ eller nerdelning av CPU clockan.
}
>>402 >フレーム数を計ってプログラマーの方で手動で再生を切っているようですがそんな方法しかないのでしょうか
そんな方法しか無い
サウンドのサイズを自分で管理し
サイズ分転送したらDMAとサウンドの両方を止めれ
わかりました・・・
頑張って自前で管理することにします
ファイル長はすぐわかるね。
wav2gba.exeの吐き出した.binデータを右クリック、プロパティを開く
サイズ ???KB (????? バイト)
()内のバイトがファイルサイズ。
407 :
名前は開発中のものです。:2006/02/13(月) 14:40:33 ID:eECtxr3h
次のゲームの画面を再現するにはどの画面モードで
各要素をどの画像で再現すればいいでしょうか?
1)SFCのころのドラクエ風戦闘画面
要素:
背景画像
インターフェース
文字
モンスター
攻撃&魔法エフェクト
僕の予想では
画面モードはモード0。
背景、インターフェースはタイル。
エフェクトはタイル?(全画面アニメがあるため)
モンスターはスプライト(ボスキャラ等はタイル+スプライト)
文字はスプライト(タイルのBG面が足りないため)
つぎのレスにつづく
408 :
名前は開発中のものです。:2006/02/13(月) 14:41:59 ID:eECtxr3h
2)SFCのころのFF風戦闘画面
要素:
背景画像
インターフェース
文字
プレイヤーキャラクター
モンスター
攻撃&魔法エフェクト
僕の予想では
画面モードはモード3。
背景、インターフェース、モンスターはビットマップ。
プレイヤーキャラクター、エフェクト、文字はスプライト。
タイルモードかなと思ったんですがボスキャラが消えるときとか
キャラ画像の奇数ラインと偶数ラインがずれて消えるときとかあるので
あれをタイルモードで再現する方法がわかりませんでした。
あってますでしょうか?アドバイス御願いします。
主人公、モンスター、効果はスプライト。
BGの仕様を決めるのは難しい。
どういう演出をするのかによって変わる。
背景を拡大縮小する演出をするならモード12345。
しないなら絵がたくさん登録できるモード0。
表示する情報が少なく簡単にレイアウトできるなら0123のキャラクターモード、
多色を使って、8x8ドットに縛られたくないならモード345。
でもモード345は情報量が多く重くなる。ダブルバッファを使用するなら
モード4か5しかない
たしかBGが容量の大きいモードのとき、スプライトの登録数が圧迫されるんじゃ
なかったっけ。
全体のバランスを取るには、だいたいの仕様を決めて
サンプルを作って動かしてみるしかないんじゃない?
FFも3とか4とか決めてそれを目標にすれば、イメージも明確になるのじゃいか。
そういえば文字の表示が大きな悩み。
日本語表示するのだろうから、VRAMにすべての文字を登録するのは
不可能。割り込み中に表示画面に必要な分の文字を転送するしかない。
あるいはダブルバッファリングできるモードを使う?
ということはビットマップモード4か5。キャラのモードの時は
意識して上の領域はA、そのとき見えない領域B
としてダブルバッファリンク゛することもできるけど。
GBA研究所の日本語表示サンプルを改造してドラクエ戦闘画面の
インターフェースみたいのをまず作ってみるべき。
ワールドマップとかはそのあとでもいい。まず日本語表示が難関。
411 :
名前は開発中のものです。:2006/02/13(月) 17:42:11 ID:eECtxr3h
GBA研究所は落ちてるんですよね…。
マップエディタが入手できず大弱りです。
>>407 インターフェースと文字は一緒に出来る
あと戦闘中の文字は平仮名カタカナしかないことに気づこう
BG0 背景
BG1 文字+枠
BG2 半透明エフェクト
SPR 敵+エフェクト
>>408 BG0 敵
BG1 背景+文字
BG2 エフェクト
SPR 味方+エフェクト
FF6は
BG0 背景
BG1 背景+文字
BG2 半透明エフェクト
SPR 敵+味方+エフェクト
一部の魔法はBG2にウインドウ重ね掛けで
敵を消すときはタイルマップじゃなくてタイルを直接消してる
413 :
407:2006/02/13(月) 19:55:05 ID:eECtxr3h
みなさん、アドバイス有難う御座います。
これでとりあえずの実装は出来そうです。
魔法別で悩んだらまた質問しますので
厳しくもやさしく教えてください。。。
俺のMAPエディタをうpしてやろうかと思ったけど
みなさんで一括りにされたからやめるか
心が狭いのね
狭くなくっちゃ、心も車も
文字表示の実装が全く分からないのですが、
分かりやすいサイトはないですか?
417 :
407:2006/02/13(月) 23:11:29 ID:eECtxr3h
414さまアップお願い致します。
>>416 タイルモードのときはタイルを順番に横に並べて
並べたタイルに文字データを転送するだけ
ビットマップモードのときはVRAMに直接書けばいいだけなので
PCでやるのとやり方は一緒
どっちにしても文字データは自分で用意しなくちゃ駄目
>>406 wav2gbaはv1.01だと、バイナリの先頭に
2byte: type
2byte: stat
4byte: freq
4byte: loop
4byte: size ←これがデータ長
なヘッダが付いてるので気を付けれ。
>>418 自分の書き方が悪かったです。printf関数みたいな
感じでやりたいんです。
そもそもprintf関数の仕組みがよく分からない・・・
のぞいて見てもチンプンカンプンです。
>>420 sprintfで文字列を作って
その文字列を表示する関数を作るんだ
printfは最初から無いものとして諦めろ
422 :
名前は開発中のものです。:2006/02/14(火) 00:40:40 ID:945ce4fT
研究所のやつじゃなくてもいいので
使い勝手のいいマップエディタしりませんか?
ドラクエ風のワールドマップを作りたいのですが。。。。
sprintfって使えたっけ?devkitadv
自作snprintfで対応しちゃった
#あと文字が書いてあるbitmap背景の2本立て
425 :
384:2006/02/14(火) 00:59:46 ID:tYPhpHwC
俺もprintf関数もどき作りました。
全角の文字列を引数として受け取って、
その先頭のアドレスから、内容を4ビット(16進一桁、要するに文字コードの中の一桁)
ずつチェックしていき、最終的に文字コードとBGタイル番号をつき合わせて
BG一面に出力するようにしました
BGを一つ占領しちゃうんであまりよいやり方では無さそうですが
>>424-425 自作するよりそっちの方が簡単だろうと思ってな
printf関数の仕組みが分からないとも書いてるし
もちろんsprintfはstring.hをincludeすれば使えるぞ
427 :
名前は開発中のものです。:2006/02/14(火) 18:19:17 ID:KtOq4mfG
スプライトの表示数についてなんですが
最大128個でモード0〜2のVRAMのスプライトキャラクター領域は
32kバイトですよね?
32*32dotで16色のスプライトを扱う場合
下記の計算だと最大64個だと思うんですが
それ以上の表示が可能です。複数のエミュで確認したんですが
どれも表示できました。
私の計算方法がいけないんでしょうか?
それとも実機とは挙動が違うんでしょうか?
32*32dotのスプライトのデータサイズ
4bit(16色)*32dot*32dot=4096bit/8(byte換算)=512byte
VRAMのスプライトキャラクター領域
32kbyte=32768byte
16*32dotのスプライトの場合
32768byte(VRAM)/512byte(Sprite)=64個表示可能
画像データ領域(VRAM)とキャラクター領域(OAM)は分離して考えろ
>>427の例で言うと
OAMには128個登録できても
VRAMには64種類の画像しか収まらない
逆に言うと64種類の画像を128個表示できるということ
429 :
429:2006/02/14(火) 19:29:47 ID:KtOq4mfG
なるほど、つまりVRAMにおさまりさえすれば
64*64の画像を128個表示することができると
いうことなんですね。
430 :
424:2006/02/14(火) 21:44:12 ID:oQP7vhex
431 :
420:2006/02/15(水) 23:02:19 ID:UMaLkZ5l
ありがとうございます!
正直、よく分からないですが、参考にするか
もしくはそのまま使わせて頂きます!
コンパイル出来たけど何も表示しまへん。
コンパイル用バッチファイル
SET PATH=c:\devkitadv;c:\devkitadv\bin;c:\devkitadv\tools:$PATH;
gcc -o main.elf main.c utils.c -mthumb-interwork
objcopy -O binary main.elf main.gba
どこがいかんのでしょう
みたとこ画像データが無いようですが。
433 :
424:2006/02/16(木) 09:40:13 ID:IJObToHy
うん、文字画像データは入ってないよ
あくまでもおいらが作ったsnprintfの実装(snprintf_mini)だから文字列を作るだけです。
main.cはちゃんと作れているかどうか確認している単体テスト用のプログラム
なのでdevkitadvのgcc(arm-agb-elf-gcc)じゃなくて普通(?)のgccを使って
snprintf実装例を確認してね。
GUIなデバッガがあればどんな感じで処理してるか追っかけられるでしょ
#VCだとsnprintfが使えないかも。そのときはsprintfで代用して確認してね
作った文字列をVisualBoyAdvanceで表示するには文字列表示用の処理と文字データを
自分の環境用につくらないと出来ないです。
まず、putcみたいな1文字表示用の関数を作ってみてはどうでしょうか?
◆◆,,,,_ /⌒;
/*' 3 `*ヽーっ /<ワンワン,ツウツウ,スリィスリィ,フォウフォウ
⊂二 。 ゚ ⌒_つ/ ガンガン ズンズン グイグイ 上昇
`、 ⌒_つ /
`'ー-‐'''''" /
/_/
///
. _____
. `ヽ ,」_ァ'"´
. f'て}. ̄ rY ト、 __
. | r个 √`>‐.k } f゙)ヾ>
}l r ''"`ァ'゙ ,ノ、ム'^'ァ'゙
人.ヒ,ィ゙ ァ弌__,,>'´゙ヽ
い, `'<, ,r'^ ,ノ
. }⌒'‐\ ,、 ゙'くョr.''"´
い弌-、 \ }. ゝ-、
. `'ー' ゙'ー‐--‐'⌒''''''゙
>>433 これだけヒントを貰ってるのに文字表示すら自分で作れない香具師に
何をアドバイスしてやっても無駄だって。
>>433 親切すぎる。
漏れは呆れてレスする気がしなかったぐらいだってのに。
437 :
424:2006/02/16(木) 21:32:19 ID:IJObToHy
>>438 俺が流用してるフォントと同じのを使ってる・・・気がする
俺は8x8でやってるけど
441 :
424:2006/02/16(木) 23:55:24 ID:IJObToHy
へー、かっこいい
フリーのフォントって知らなかったけど調べてみたらいろいろあるんだな
とりあえず、FONTX形式にすればいいのだろうか?
442 :
432:2006/02/17(金) 16:40:32 ID:x9jBkP1z
サンプルありがとうございます。
私は420=431さんとは別人です、横入りすみません。
フリーのフォント、元GBA研究所のサンプルにあったものを
流用しようと・・問題有りますでしょうか
完全フリーなものが欲しいのですけどそうなるとなかなか
ありませんよね。フリーソフトのみとかメールでの通知義務とか。
444 :
424:2006/02/18(土) 01:08:37 ID:uRwRaCgY
DIRECTSOUNDをDMAで鳴らそうと
http://belogic.com/gba/directsound.shtml を参考にしてるんですが、演奏を止めるためのTM1設定
REG_TM1CNT_L=0x7098; //0xffff-the number of samples to play
REG_TM1CNT_H=0xC4; //enable timer1 + irq and cascade from timer 0
のthe number of samples to playの算出式がよくわかりません。
単純にデータサイズというわけではなさそうですが。。。
データサイズで合ってる
cascade from time 0になっているということは
timer 0が桁あふれしたときにtimer 1が1つ進むということ
timer 0が桁あふれしたとき同時に何が起こっているのか考えてみればそのうち分かる
頑張れ
>>446 すみません、もう少し教えてください
データサイズが0xffffを超える場合はどう設定すればいいのでしょうか?
5つほど上に既に貼ってあるジャマイカ
研究所が未だに復活しない件。
猫でもみたいなTips集的な使い方をしていたので、他所を探すのが以外に大変。
儂はウェブアーカイブで拾ってきたよ。zipファイルは保存してないからサンプルは取れないけど。
ヘッダとソースは見られる。makefileが無いのが難点。
>>447 どうしてもtimerを使って止めたいならtimer 2を使えばいい
お勧めしないが。。。
// (0xXXXX * 0xYYYY = datasize)
REG_TM1CNT_L=0x10000 - 0xXXXX;
REG_TM1CNT_H=0x84; //enable timer1 + cascade from timer 0
REG_TM1CNT_L=0x10000 - 0xYYYY;
REG_TM1CNT_H=0xC4; //enable timer2 + irq and cascade from timer 1
REG_IE=0x20; //enable irq for timer 2
REG_IME=1; //master enable interrupts
453 :
452:2006/02/19(日) 01:11:38 ID:prU8DMPB
間違ったスマソ
// (0xXXXX * 0xYYYY = datasize)
REG_TM1CNT_L=0x10000 - 0xXXXX;
REG_TM1CNT_H=0x84; //enable timer1 + cascade from timer 0
REG_TM2CNT_L=0x10000 - 0xYYYY;
REG_TM2CNT_H=0xC4; //enable timer2 + irq and cascade from timer 1
REG_IE=0x20; //enable irq for timer 2
REG_IME=1; //master enable interrupts
>>452 了解しました。トライしてみます。
あと、timerを使わずに止める方法があるのならご教授プリーズ。
>>455 BeLogicのサンプルみたく別タイマーで止めないとダメだとばかり思い込んでました。
このスレよく読み直したら過去にヒントが出てたんですね。。。orz
DarkFaderのMylibとかNylibとか入れてみようと思ってやってみたがダメだ…。
やり方が悪いのかサンプルmakeできなかった。
ライブラリ自体はすごそうだ。使ってる人いる?
NyLibは任天堂の純正ライブラリそのものだから使わないほうがいいぞ
MyLibはゴミ
1Dモードでスプライトの属性を指定します。
attr2(ゼロが最初)のキャラクタ番号(0-9ビットまで)に指定の番号をセットすると正しく表示されません。
2倍の値をセットすると正しく指定できました。
これってあってる? ゼロビット目がキャラクタ番号じゃないんじゃ、とか思います。
1Dのスプライトについて書かれているページとかありませんか?
マジですか。コンパイルもようできんからgcc自分で持ってきてarm-elfで作ったりしたんだがなぁ。
最低限eloistのgba.hとgbatekとかのドキュメント、あとは自分でがんばるかね。
>>459 スプライトが256色設定の場合は2倍で指定するらしいからそのせいではないかな?
>>459 気になるならVBAのTile Viewerでタイル番号とアドレスを確認すれ
463 :
名前は開発中のものです。:2006/02/21(火) 05:42:06 ID:uuzcpC5q
ボタンを押した瞬間を取得したいんですが
下記のソースがうまく動作しません。
何がいけないかわかりますか?
//ボタンに関する列挙型
typedef enum{UP,DOWN,RIGHT,LEFT,A,B,L,R,START,SELECT} KEY;
//スタティックグローバル変数
static u32 sgKey; /* キーセンス */
static u32 sgKeyhit; /* キー押した瞬間 */
//メインループの頭でボタンの状態を一括取得
void UpdateKeySense(void)
{
static u32 keyold = 0;
sgKey = (u32)(*KEYS);
sgKeyhit = sgKey & (~keyold);
keyold = sgKey;
}
//特定のキーが今押されたかを調べる
u8 KeyHit(KEY key){
switch(key){
case A:
if(!(sgKeyhit & KEY_A)) return 1;
else return 0;
case B:
if(!(sgKeyhit & KEY_B)) return 1;
else return 0;
}
return 0;
}
書き込みできるかテスト
466 :
名前は開発中のものです。:2006/02/25(土) 15:23:38 ID:LRNrnoNa
ある構造体に汎用的な配列を用意し、状況によって汎用配列部分に
別の構造体をキャストすることでいろいろ使い分けられるように
したいんですが下記(分けて書き込みます)のようなソースがうまく動きません。
「w->cnt = 5;」等の部分で値を代入しているのに正しい値がはいりません。
VC++では正しく代入できるようです。なぜだかわかりますか?
仕様なんでしょうか?
467 :
名前は開発中のものです。:2006/02/25(土) 15:24:22 ID:LRNrnoNa
typedef struct{
u8use;/* 動作フラグ */
u16no;/* 自分自身のタスク番号 */
u8 phase;/* 動作フェーズ */
u8wrk[48];/* 汎用ワークエリア */
void*entryfunc;/* 実行関数 */
}TSKWRK;
TSKWRKts[10];/* 実体 */
/* 構造体 */
typedef struct{
u16 cnt;
u8 x;
u8 y;
u32 tmp;
}TEST;
//メイン処理
int main(void)
{
TSKWRK *tp = &ts[0];
TEST *w = (TEST*)&tp->wrk[0];
w->cnt = 5;
w->x = 4;
w->y = 9;
w->tmp = 1;
}
468 :
名前は開発中のものです。:2006/02/25(土) 15:25:34 ID:LRNrnoNa
変数の型と変数名がつながっているのは書き込み時に
つながってしまったもので実際には正しく記述しています。
470 :
424:2006/02/25(土) 17:25:32 ID:T5T+YA0I
こういう使い方をしたいときはunionを使うんだっけ?
使ったことないけど
>>466 >>469を踏まえてこれでもう一度テストしれ
typedef struct{
u8 use;/* 動作フラグ */
u16 no;/* 自分自身のタスク番号 */
u8 phase;/* 動作フェーズ */
u8 wrk[48];/* 汎用ワークエリア */
void *entryfunc;/* 実行関数 */
} __attribute__ ((packed)) TSKWRK;
typedef struct{
u16 cnt;
u8 x;
u8 y;
u32 tmp;
} __attribute__ ((packed)) TEST;
>>470 この場合unionは全く関係ないし的外れ
メモリをダンプしてみろ
それからだ。
>>470,472
union 使ってアライメント確保する方法がある。
Cだとコレぐらいでいいんじゃないかな?
union
{
u8 size_holder[48];
void* pointer_align;
long long integer_align;
long double floating_point_align;
} wrk;
C++ だとメンバ変数・関数ポインタを追加。
>>471 packed はパフォーマンス落としたりバイナリ互換に問題が発生したりするんで
気をつけて使う必要がある。非標準になるしね。
その例だと TSKWRK に packed は必要ない。
475 :
名前は開発中のものです。:2006/02/25(土) 18:20:18 ID:LRNrnoNa
みなさん、アドバイスありがとうございます。
アライメント自体の概念はわかりました。
実用についてはまだよくわからんのですこし調べてみます。
>>474 unionのサンプルの意味は
u8でサイズを決めつつ、何のデータを扱ってもいいように
void型のポインタと最大サイズの整数と浮動少数で
共用体を定義しているということでよろしいでしょうか?
あと、私が書き込んだソースを下記のように修正したら問題なく
動くようになったんですがこのまま使い続けるのは
問題あるでしょうか?
u8 wrk[48] → u32 wrk[12]
476 :
474:2006/02/25(土) 18:33:56 ID:ChwfFfDn
>>475 サンプルの意味はそういうこと。
union 自体のアライメント要求がメンバの中で最大の物になることを利用したもの。
GBA のハードウェアで4バイト以上のアライメントを要求するものは
無かったと思うので、 GBA に限った動作だけを考えれば
u32 での置き換えで問題ないと言える。
477 :
名前は開発中のものです。:2006/02/26(日) 00:08:14 ID:WfB5cmW7
関係ないけど
GBAって電源切ったとき画面の色が黒でなく白なのはなんでだろう?
白黒液晶ってのは黒色の文字を表示するものだから背景が黒かったらどうしようもないと
ここまで書いてGBAが白黒ではないという事実を思い出した
>>381 ノベル制作ツール「のべ〜る」で
VisualBoyAdvanceでプログラムスタート直後に音割れする現象の対策
*TOP:
#play_wav 1 music0.bin
#page
■セロ弾きのゴーシュ;
ゴーシュは町の活動写真館でセロを弾く係りでした。#w ;
けれどもあんまり上手でないと評判でした。#w ;
……
スクリプト開始のしょっぱなに何より先に#play_wavし、
直後に#pageします。これでなぜか音割れ現象が発生しなくなります。
なぜこれでうまくいくのかはよく分かりません。
ちなみに実機やその他のエミュでは試していません。
もしかしたら割り込み内でサウンドの処理より画像の処理を
先にやってるのかなとか思ったり・・見当ハズレなら作者さまスマソ。
これで使える。ヤター!
480 :
479:2006/02/26(日) 07:53:54 ID:e+6sQVje
481 :
466:2006/02/26(日) 15:39:57 ID:UpVKMws2
くだ質で大変申し訳ないのですが、
C++でGBAのプログラミングはできないのでしょうか?
様々なサイトをググってみたのですが、すべてCでの開発で
C++を扱っているサイトを全く見かけません。
よろしければご教授をお願いします。
485 :
482:2006/02/28(火) 00:35:45 ID:jBhKnEbd
>>484氏に紹介いただいたサイトを見る限り、DevkitAdvanceで普通にできそうですね。
早速試してみようと思います。
どうもありがとうございました。
GBAプログラミング研究所のBMP2RGB.exeで256色の出力のとき、
255番のパレットを指定したドットが0x00になり、
255番のパレット自体も0x0000になって出力されるんだけど
何か意味があるのでしょうか。
確証は無いけど透明色じゃないの?
488 :
名前は開発中のものです。:2006/03/01(水) 17:29:46 ID:CwoNSWML
ソースレベルデバッグをしたいんですが
MAPPY VMとVHAM&DevkitAdvanceの組み合わせの場合
どのようにすればよいのでしょうか?
また、NO$GBAとMAPPY VMだとどの程度違いますか?
Insight + VBA(devel版) で*.elf読ませる方が楽っぽくね?
arm-agb-elf-insightつかってデバッグするときにVisualBoyAdvanceの画面の状態を
確認しながらデバッグするにはどうしたらいいのですか?
File-TargetSettingからConnection-TargetをSimulatar選んでからOptionをVBAの
GDB接続待ちPortの数字にあわせればいいのですか?
InsightデバッガからRun-ConnectTargetはSucessfully connectedってでるから
成功したのかな?
でも、VBA側の接続待ち状態ダイアログが消えないから違うんだろうなぁ
>>490 漏れの環境ではVBA-SDLでしかInsightと接続できないorz
ところでGBAゲームでセーブデータってどうやって作るんですが?
研究所にはあったみたいだけど落ちてて見れない・・・
494 :
名前は開発中のものです。:2006/03/04(土) 14:06:07 ID:KUpila9P
>>455 このサンプルでDirectSoundの再生方法を試しているんですが
サウンド再生関数を1回目に実行した際には音がならず
2回目の実行で音がなります。
これ以外のDirectSoundのサンプルでも同様の現象が起きます。
455のサンプルに関してはソースをまんまでコンパイルしても
同様の現象になります。
付属のロムデータでは正しく動作しているようですが
何がいけないかわかりますか?
495 :
名前は開発中のものです。:2006/03/04(土) 17:16:26 ID:KUpila9P
AGBがまともにサウンドを鳴らせないほど非力なのは仕様です
497 :
名前は開発中のものです。:2006/03/04(土) 17:34:40 ID:KUpila9P
まじですか!?
じゃあ、GB互換音源を使うしかないんですね。
研究所が消滅してコンバーターの入手も難しいし
こまったもんだ…。
498 :
492:2006/03/04(土) 21:18:52 ID:m5qLcxRB
>>493 いや、そういう意味じゃなくて、
自作したゲームにセーブデータを作らせようと思ったらどうすればいいんですか?
>494
キーを入力しないと鳴らないんです。
main.cをコレで鳴るんじゃない?
mu_wok = 0;// 再生の直前に++のため、0からの値になります。
se_wok = 0;
PlayMusic(mu_wok,PLAY_LOOP_ON); //※追加
while(1)
{
>497
4つもの機能のちがう音源を制御するのが重そう。
ゲーム部分を軽くすることは出来ないでしょうか…
GBAプログラミング研究所って結局どうなりました?
どこかへ移転したとか…
日本のGBA開発に欠かせないサイトだったし、あれほどみんなが
利用していたのに突如閉鎖というのは有り得ない。
>>498 SRAM(0x0E000000〜)に数値書き込めばいい
>>502 iswebからアマゾンの広告かなんかに警告出されたとかいうこと書いてなかったっけ?
それ放置してたら消されたとか?
>>503 怒られたので消しました、って更新履歴にあったような気が?
今となっては確認が難しいが。
”捕まった”とか言うとデマに発展しそうな気がしてイヤンな感じ
広告掲載の方法についてサーバーの提供元から警告が来たので広告を消した、
というような更新が最後だった希ガス
確かにGBAの方は更新がほぼ止ってたような気がしないでもないが
DS用のページも作ってたみたいだし(DSの方はやってないのでよく知らないが)
更新意欲がなくなってそのままフェードアウトした感じではないのだが・・・
DSの方の掲示板は業者スパムだらけだったな
507 :
名前は開発中のものです。:2006/03/07(火) 00:19:36 ID:2maRPTXR
ソニックザヘッジホッグやロックマンとかの横スクロールアクションで
地形、足場の当たり判定をどのように持つかについて質問なんですが
素人考えだと
@タイルごとに当たり判定の属性を持つ。
A当たり判定のある背景だけを一つのBGに分けて
背景色以外の部分に当たり判定を持つ。
だと思うのですが
@だとタイル単位でしか扱えないため斜めの坂などの複雑な地形を作れません。
Aだと坂とかも表現できるとおもいます。
でも、ロックマンゼロとかのマップデータをVBAで確認してみると
当たり判定がある部分と無い部分の背景が一枚のBGに描かれています。
この場合、どのように当たり判定を持っているのでしょうか?
作成するゲームによって当たり判定の持ち方は変わってくると思いますが
上記のようなゲームを作る場合はどのように当たり判定を持つのが一般的でしょうか?
参考になるサイトとかあれば教えてもらえないでしょうか?
>>507 当たり判定だけのマップを作る
そのマップが視覚的に見えてる必要は無い
>>507 BGにとらわれずに、マップのパラメータを配列の変数として持てばいいんじゃね?
床と傾斜の違いも同じく。
>>507のAは草の上を歩く場合、困ったことに…葉っぱ一枚の上にも乗っかってしまう。
>>509 510のやり方をになると想像。チップごとに当たり判定がある@の方法。
チップごとに次のような判定をする。
0…当たり判定無し
□□□□
□□□□
□□□□
□□□□
@…当たり判定あり。
■■■■
■■■■
■■■■
■■■■
A…当たり判定ありで次のような判定をする
■□□□
■■□□
■■■□
■■■■
B…当たり判定ありで次のような判定をする。
□□□■
□□■■
□■■■
■■■■
白い□の部分は当たり判定が無い。背景チップ番号を取得して0〜Bの場合に
分けて当たり判定。当たり判定の種類をもっと増やすこともできる。
これでマリオ風の坂道をなだらかに歩いて降りる表現もできるようになる。
チップ内の当たり判定だけど、上は4x4マスにしたけど、8x8ドットで
判定するなら8x8マスでの当たった/当たらない判定になる。
やったことないので想像です、スマソ。
>508
乙です。ありがたく使わせていただきます。
インターネットアーカイブがzipとかも保存してればなぁ・・・
使用に堪えるデバッガ付きエミュってどれでしょう?
CowBiteとMappy Virtual Machineは中々いいんですが
前者は使いづらく、後者はエミュとして弱い
516 :
名前は開発中のものです。:2006/03/12(日) 22:58:52 ID:oHXV1jml
タイルモードで512*512のBGを扱う際、
メモリ上の配列が256*256単位で左上→右上→左下→右下となっているのは
仕様ですか?
仕様です
518 :
516:2006/03/13(月) 01:03:53 ID:OoJGMs+j
>>517 レスどうもです。
なぜそんなことを聞いたかというと
市販ソフトのBGを見ると512*512でやっているのが多いんですが
なぜなのかなと思ったんですよ。
512*512にしろ256*256にしろスクロール部分を書き換えなきゃ
いけないのは一緒だし、だったら256*256でやったほうが
メモリ配列のことなんか考えなくていいし
VRAMの使用量もすくないじゃないですか。
なんでなんでしょう?
>>516 タイルの配列は、2Kごとに区切られているような扱いをしてる模様。
Webでのサンプルは256x256はかりなので以外に気付かない罠。
>>518 256だと横幅が16ピクセルしか余裕がないからそれ以上のスクロール量が発生した時の案パイだと思われ。
520 :
任天堂本社より警告:2006/03/21(火) 20:45:17 ID:5b78pgIg
任天堂本社情報通達部から本スレッドをご利用の皆様に警告します。
いかなる場合においても、ゲーム機本体および周辺機器、ソフトの内容を
改変する事は違法であり、個人使用もその限りではありません。
日本条例により罰せられますので早急におやめ下さい。
今回は警告という事で免除しますが、後日2ちゃんねる管理人に許諾を得て
なんらかの処分を決定させていただきますのでご了承ください。
法的手段に踏み切る事も視野に入れて検討中です。
アクセス解析等によりご自宅にお邪魔させていただく場合があります。
会社・学校・友人・親・親戚への連絡を行う場合があります。
>>520 なんだこれ?
気になって取説とパッケージ見直してみたけど、そんなこと書いてないね。
悪質ないたずらだな。
どうせ警告だすならマジコンスレでやってくれよ頼むから(w
>>520 ダウト
情報通達部なんて部署ないぞ
やるとしても法務部だろ
"任天堂本社情報通達部"に該当するページが見つかりませんでした。
"任天堂情報通達部"に該当するページが見つかりませんでした。
"情報通達部"に該当するページが見つかりませんでした。
>会社・学校・友人・親・親戚への連絡を行う場合があります。
これ結構発想が古いよな
おっさんかな?とも思ったけど
情報通達部とかネーミングが安直杉て大人の考えた文章にも見えない
春だから変なのが出てきたな
>>524 つーか、ワンクリック詐欺のメールによくある文面じゃないか?
527 :
名前は開発中のものです。:2006/03/23(木) 06:40:59 ID:yzl+UCcc
GBAのソフト作りたいんですが、既にGBAプログラミング研究所は閉鎖?
っぽいですね。
PC用とiアプリくらいしか作ったことなくて
メモリを書き込むとかピンとこないんですが
私でもできますかね?
一応調べてはいるんですが、なかなか良いサイトもなくて。
みなさんはどうやって調べてますか〜?
529 :
名前は開発中のものです。:2006/03/23(木) 08:44:08 ID:yzl+UCcc
527です。
コンパイルくらいは出来るようにと思い、挑戦してみました。
devkitadvを使っています。
パスは通せていると思うのですが、コンパイルしようとすると
'gcc' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。
と言われます。
明らかに失敗しているんですが、理由がわかりません。
私がディレクトリ構造が解っていないからでしょうか?
今はc:\devkitadv\{include,bin,arm-agb-elf,lib}という感じになっています。
devkitadv内のディレクトリの中はイジってません。
>>529 なんでその状態で「パスが通せている」なんて思うんだ?
531 :
名前は開発中のものです。:2006/03/23(木) 10:01:02 ID:yzl+UCcc
>>530 申し訳ない、書き方が悪かったです(;´瓜`)
やり方は間違っていないと思うのですが、という意味でした。
XPだとDOSからパス通せないんですね(´・ェ・`)
研究所のキャッシュから何とかできました。
コンパイルなんですが、
int main(){}
に warning: no newline at end of file って返してきます。
これってドコガおかしいのでしょう?
他にも下のように返してきます、私にはよくわからないんですが。
/cygdrive/c/devkitadv/bin/../lib/gcc-lib/arm-agb-elf/3.0.2/../../../../arm-agb-e
lf/bin/ld: cannot open crt0.o: No such file or directory
collect2: ld returned 1 exit status
crt0.oファイルが場所がわからずに開けないって事ですかね?
テキストファイルの拡張子をelfとして、出力されるであろう場所に
先にファイルを保存してからコンパイルしてみたらファイルが消えたので
アクセスしてはいるんですが…。
何度もすいません(=;ェ;=)
>コンパイルなんですが、
>int main(){}
>に warning: no newline at end of file って返してきます。
>これってドコガおかしいのでしょう?
えっと、これは多分
int main(){}[EOF]
になってるからじゃないかな?
int main(){}[改行]
[EOF]
にすればいいんじゃねーの?
あとgccじゃなくてarm-agb-elf-gccでコンパイルしてる?
%find /cygdrive/c/devkitadv -name crt0.o
でなんて表示される?
#これはcrt0.oを/cygdrive/c/devkitadv以下から検索するコマンドです
gcc(arm-agb-elf-gcc)がリンカ(arm-agb-elf-ld)をどうやって検索して
リンクするファイルを決定してるんだっけ?binutilsの知識が足りないから良くわかんないや
いっつも何も考えずに
%make
するだけだから・・・
リンク用スクリプトはこれかな?
(インストールディレクトリ)/ctrls/lnkscripts
devkitproならインストーラあるからそっちのほうが楽じゃね?
サンプルもついてるし
スーパーカードSDってミクロでも使えるのか?
ミクロで使いたいんで買おうかどうか迷ってるんだが。
538 :
sage:2006/03/24(金) 02:14:18 ID:ImOqKFUg
529です。
プログラム中の改行の問題は
>>532の通りでした。ありがとうございます(><
crt0.oの問題についてですが、こちらは改善しませんorz
crt0.oというファイルがディレクトリ内にあるのでしょうか?
私はファイル検索にひっかかりませんでした。
>>533 arm-agb-elf-gccでコンパイルしても結果は同じでした。
やはりcrt0.oというファイルがないとダメなんですかねぇ(;´瓜`)
zip展開してディレクトリまとめただけなんですけどねぇ(´・ω・`)
539 :
sage:2006/03/24(金) 03:24:57 ID:ImOqKFUg
名前: sage
E-mail:
内容:
>>538下がって無かった(´・ェ・`)
なんとか、自己解決しましてgbaファイルの出力までこぎつけました。
cannot find lc とか言われましたがgoogleの文面でなんとかできました。
それでコンパイルに関しては一応できたのでいいんですがディレクトリ構造について質問です。
コンパイルまでにいくつかファイルを移動しなければなりませんでした。
今は
下記のようになっているんですが、いくつか同じディレクトリ名のものが
ありますがこれは正常なのでしょうか?
これは同一ディレクトリとしてまとまっていなければいけないのでしょうか?
これからまた問題が起こる様だと嫌なので(゚Д゚;)
全然GBA開発っぽい質問じゃないですね、申し訳ないorz
☆参照
C:\DEVKITADV
├─arm-agb-elf
│ ├─bin
│ └─lib
│ ├─interwork
│ ├─ldscripts
│ └─thumb
│ └─interwork
├─bin
├─ctrls
├─include
│ └─g++-v3
│ ├─arm-agb-elf
│ │ └─bits
│ ├─backward
│ ├─bits
│ └─ext
└─lib
└─gcc-lib
└─arm-agb-elf
└─3.0.2
├─include
├─interwork
└─thumb
└─interwork
せっかくなので自分の環境TREE晒してみる。
C:\GBA\DEVKITADV
├─arm-agb-elf
│ ├─bin
│ ├─include
│ │ ├─machine
│ │ └─sys
│ └─lib
│ ├─interwork
│ ├─ldscripts
│ └─thumb
│ └─interwork
├─bin
│ ├─bin2o
│ └─old
├─include
│ └─g++-v3
│ ├─arm-agb-elf
│ │ └─bits
│ ├─backward
│ ├─bits
│ └─ext
└─lib
└─gcc-lib
└─arm-agb-elf
└─3.0.2
├─include
├─interwork
└─thumb
└─interwork
失敗したのでもう一度
C:\GBA\DEVKITADV
├─arm-agb-elf
│ ├─bin
│ ├─include
│ │ ├─machine
│ │ └─sys
│ └─lib
│ ├─interwork
│ ├─ldscripts
│ └─thumb
│ └─interwork
├─bin
│ ├─bin2o
│ └─old
├─include
│ └─g++-v3
│ ├─arm-agb-elf
│ │ └─bits
│ ├─backward
│ ├─bits
│ └─ext
└─lib
└─gcc-lib
└─arm-agb-elf
└─3.0.2
├─include
├─interwork
└─thumb
└─interwork
ん〜、結構ちがうっぽいw
VHAMは人気ないのね・・・
GUIだから使いやすいのに
devkitproにもIDE環境付いてないか?
>>547 今のはProgrammer's Notepadが入っているのか
至れり尽くせりじゃん
549 :
名前は開発中のものです。:2006/03/28(火) 23:20:56 ID:2Tli5+F3
保守シツツ質問〜。|-`).。oO(sage進行だったかしら…)
え〜、いわゆる背景のような一枚絵を表示しようとして24bitカラーを16bit
長で変換するのはできたんですが。
GBAに組み込めません。
const unsigned short bg[]={0x48f3,0x48f3,0x48f30x,48f3……}
のような配列をVRAM転送しようとしたんですが、elfファイルへの変換
で詰まってしまいました。
ん〜、これだけじゃ解らないと思うのでどこがわからないかも教えて頂ければ
その都度答えます。
どうぞよろしく<(_ _)>
elfファイルへの変換って*.oファイル群をくっつける段階ってこと?
>arm-agb-elf-gcc -o Hoge.elf main.o AAA.o … リンカ用オプション群…
この段階でエラーが出るって事でしょうか?
objcopy 使えよ。
554 :
549:2006/03/30(木) 05:54:46 ID:2KH+avLQ
え〜っと、*.oは使ってません。objcopyもつかってます。
因みにバイナリファイルじゃないのでbin2oはいらないのでは?(-_-;)
arm-agb-elf-gcc -oだけでいってます。
コンパイルは自作のプログラムにしちゃってソース消しちゃいました(;;
配列にcg=[0x7fff,0x2344…}って感じになってます。
>>554 なんかちょっと
>>551 が正解な様な気がしてきた。
まともに説明できる自信が無いなら
「やったこと」と「結果」を全部そのまま貼れ。
特にエラーメッセージは一字一句変えずにコピペすること。
arm-agb-elf-gcc でコンパイルしている時の引数を正確に書いてくれ
#多分text領域指定が間違ってる(指定していない?)からgccの中の人が
#RAM領域に配置しようとして「場所がないぞゴラッ!!」って言ってるだと予想
557 :
554:2006/04/02(日) 05:20:18 ID:5zOmLFeS
なんか、ひさしぶりに触ったら問題はあるものの表示までできました(−。−
質問に答えてくださった。
>>550,551,552,553,555,556
みんなありがとうございまいした(><
またヴァカで解らなくなったらききにきます(´・ェ・`)
>>557 自分でできたにしても解決方法を書き残すのが最低限の礼だ。おぼえとけ。
早くDSエミュがまともにならないかなぁ
今はまだ手をつける気にならん。
ttp://www.msh-tools.com/GBA/gbagps.html コレと同じような事をしたいと思っています。
GBAの通信ポートの最低速度は9600BPSですが、4800BPSの機器と通信することはできるのでしょうか?
信号のHI/LOを一定間隔でポーリングして8ビットずつビットを詰めてバイトにしたりできるんでしょうか?
ノウハウなしで妄想を書いてみたんですが、実際どうすればいいんでしょうか?
予想(根拠無し):
定期的に割り込みかけてポートアドレスを監視。
アドレスを読んだ結果をリングバッファかなにかに記録していく
これでなんとかならんかな?
Dragon BASICの制限がいやなんで
Ver 1.4.1やってるんですけど、
このVerはローカル変数なし?
565 :
564:2006/04/22(土) 02:35:28 ID:uGulsd+Z
すいません、自己解決しました 自分の勘違いでした
BASICの事もよく知らずに手を出したのがそもそもの間違いでした
Dragon BASICってどのBASICに近いんですか?
PascalでGBA開発しようってページがあったと思うのですが、
どなたか知りませんか?
Delphi使いなので、Cよりよさそうに思えて
569 :
名前は開発中のものです。:2006/05/09(火) 00:27:24 ID:Nv+mbjmE
GBAで mameを動かせませんか?
mameってソース公開されてんだから、569が移植すれば動くんじゃ?
誰か前スレのログ持ってませんか?にくちゃんねるには無くて…。
gbaをbinに変換するソフトでおすすめはありますか?
いろいろ探しているのですが…
574 :
名前は開発中のものです。:2006/05/15(月) 22:24:21 ID:DwdJ4zT9
MOTHER3をやってて、
RPGを作るならGBAの性能があれば十分だと悟った。
ひさしぶりのGBAだがやるぞ。
やっちゃる。
576 :
572:2006/05/24(水) 15:18:05 ID:aWvyhvvF
頂きました。サンクス。
誰か研究所にあったVisualHAMのDevkitAdvance用テンプレート持ってませんか?
578 :
名前は開発中のものです。:2006/05/30(火) 21:03:09 ID:lX9ZFjmr
>>578 おぉ!ありがとうございます!
それにしても何で研究所なくなったんでしょうね?
GBAの次はNDSかな
GBAでゲーム作る手順だけど、みんなどうやってる?
自分はまず、WINDOWSのVCで240x160のウンドウサイズでゲームを作ってから
GBAに移植するようにしています。
理由は、コンパイルもその方が早いし、ツールも充実してるから。
ツールが充実してても、結局は移植の際に手間がかかるんじゃね?
>>583 Cだから関数さえ用意すれば、数時間で移植出来るよ。
そのかわり、GBAのハードスペックに合わせた作りしなくちゃいけないけど。
それより、一番面倒くさいのは、データをバイナリに変換する作業。
ちっとも楽しくねぇ
>>584 > 関数さえ用意すれば
これが一番苦しくてやらない奴続出な罠。
関数セットが用意されてれば楽なんだけどね。
587 :
名前は開発中のものです。:2006/06/23(金) 00:23:34 ID:jbDE0Qdh
エディタとしてVCを使ってる
コンパイルが通るところまでVCでやってcygwin上でmakeしてエミュ上でチェック
Insightデバッガがなぜか使えないのでVC?エミュを細かい単位で繰り返してます
C++の例外的なデバッグ用マクロ作ってソースの中に埋め込んでるし
ライブラリを作る時にVC上でもデバッグもできるよう単体テストプログラムも平行して作ってる
最悪画面なしでデバッグ出来るようgba.hをVC上でも動かせるように改造してるので
何とかなってる、のかな?
588 :
dささfsdfs:2006/06/27(火) 03:18:06 ID:yZB52bbM
竜の戦士をVBAでやっているのですが、マップ上で装備画面とか道具画面が見れません;;何か特別な操作方法でもあるのでしょうか?ごぞんじのかたおしえてください><
普通にエミュ+Devkit使った方が、簡単じゃね?
それ以外の方法で作ってる香具師がいたなんてビクーリ
VisualHAMだっけか、あれ開発しやすいね。
GBAを電子ブックにしたら便利じゃね?
とか思ったのですが自力でそんな物作れない上、検索してもその手のソフトは見つかりません。
すでに公開されてたりしないでしょうか?
なかったら仕方ないのでやってみるつもりですが
Cなんてコマンドプロンプト上で計算させるくらいしか出来ないのでちょっとキツイ
>>594 2.0.2ならいける。
簡単な試し方としては、sampleのGAPMANあたりで
音を容量が大きなものに変更したりなんかするといい。
上記方法で、コード未記入で128KBリミットエラー、記入するといけた。
596 :
名前は開発中のものです。:2006/07/26(水) 16:40:18 ID:fHmjjFuN
f2a使いだが。セーブするとクラッシュするのがある、、、
GBA SP 以降の本体はバッテリーで動いてますが、
このバッテリーの残り容量って何処かのレジスタとかで知ることって
できるんでしょうか?
できない
ありがとうございます。
メニューとかで残り容量をパーセント表示できれば
便利かなと思ったんですけど残念です。
>>596 環境と状況、再現方法が分からない。
詳しく書くと回答があるかも知れない。
602 :
名前は開発中のものです。:2006/07/29(土) 05:16:54 ID:VU8bWXZr
>>601 空ロムはf2a ultra 512メガで三国志 信長の野望 この二つだけセーブするとクラッシュ。
他のはセーブできるんだが、、、でクラッシュ後でバックモード〔パソコンに繋いでセレクト+ab〕で見ると、sramエラー、、
このふたつでだけなんだよなー、、、、
マジコンスレでやれ
なんだ、自作ROMじゃなかったのか。
SRAMのサイズは 32KB と 64KB がありますが、
このサイズ情報ってカートリッジの隠しヘッダが何かで
指定できたりしますかね?
EZClient のデフォルトだと 32KB にアサインされるので、
普段は 32KB にしているのですが、
自動的に 64KB と認識させることが出来ると、
SRAM 空間が広がって嬉しいかなと。
自分で調べろ
32KBの場合ミラーリングされるから
64KB空間に書き込んで32KB空間に変化が出れば32KBとして扱え
>>607 ありがとうございます。
32KBでも64KBでも動くようにゲームデザインをするのは
手間がかかりすぎてしまうので
それならば 32KB 決め打ちで作ってしまう感じですね。
かといって 64KB のみ対応で作ってしまって、
32KB の場合に「64KBの設定で焼き直してください」とするのも
ありえない感じがするので、
ROM 焼きの際に確実に 64KB を保証させる方法が
ないかどうかは引き続き調べてみます。
何とんちんかんなことを言ってるんだ?
はげはひっこんでろ
んー、とんちんかんですか……。
SRAM を使用するゲームの公開をする際に悩ましい問題だと思っているのですが。
ちなみに、SRAM を使用するゲームを公開している方は
何か工夫とかされてますでしょうか?
EZ とか F2A とかに焼いて遊んでくれる人が
EEPROM 形式とかで焼いてしまってセーブ出来ないという事態を出来るだけ
避けたいという気持ちもありますし。
(確実に SRAM 64KB で焼いてもらえる方法があれば、
SRAM 32KB でなくて、SRAM 64KB を使いたかったので質問しました)。
EEPROM 形式と来たか
とんちんかんにも程があるぞ
>EEPROM 形式とかで焼いてしまってセーブ出来ない
EEPROMに書き込むコードを自分で書かない限りEEPROMが使用されることはありえないわけだが
>確実に SRAM 64KB で焼いてもらえる方法
F2Aは確実に64KBありバンク切り替えで通常256KB最低でも128KB使用できるわけだが
Pogoshellにしてもデフォルトで64KB設定になっているわけだが
EZClientの件については
>>612 何が悩ましいんだ?
反省はしてないが少し悪意をこめ過ぎた
はげは遺伝で俺のせいじゃない
◆ (No Subject) / 三国志 信長の野望 で
flash2advance ウルトラ 512 がセーブすると固まり、デバックモードでみるとsramエラー
このソフト以外はセーブ出来のにセーブ形式っ一応すべて網羅してますよねこのーカード
2006/07/27(Thu) 17:56:18 [No.3522]
616 :
名前は開発中のものです。:2006/09/15(金) 12:07:00 ID:NHtCgRBY
まぁ無理だと思うけどバーチャルコンソールで自作ゲームが動けばいいなage
>>617 標準でGBAローダーが付いているのだが。
もちろんGBAROMはマルチブートで作成すること。
みんなNDSに行ってしまったのかのぉ・・・
>>619 GBAでゲーム作っても遊んだ人からの反応まったくないし
作っても公開しなくなった
理由は自分のゲームがヘボイからかもしれないけど
中国サイト行けば市販のゲームがゴロゴロしてるんでわざわざ個人が作った
ゲーム遊ぶ必要ないからかなとも思ってる。
90年代初期はメールもなかったのにしょーもないゲームを作っても
わざわざ手紙で感想を送ってくれる素晴らしい時代だっただけに
開発環境が整った現代でこのような状況は残念でならない。
そんなわけでNDSでゲーム作れるようになっても公開する気全然ないし
1人でニヤニヤしながら自分の作ったゲームを眺めるだけになりそう。
まぁ、それはそれで楽しいんだけどw
40歳近いオヤジのグチでした。
飽食の時代だからよほど美味しいものでない限り感想なんて出ないよ
日記はチラシの裏へ
623 :
名無しさん@ピンキー:2006/10/28(土) 13:47:39 ID:gjo4UGO4
枯れた名無しの水平思考:2006/10/28(土) 10:56:32 ID:+NQmeL9E0
そうか
625 :
名前は開発中のものです。:2006/10/31(火) 16:54:30 ID:yUNj5TBp
今から(今更?)「Linuxから目覚めるぼくらのゲームボーイ!」を片手に開発しようと
しているんだが
頑張って作って公開してみるよ
11月中に公開できるように頑張ってみる
626 :
名前は開発中のものです。:2006/11/01(水) 07:04:47 ID:/sm3ufDZ
>>625 ケーブルつきのってまだ売ってます?
売ってるところ知ってたら教えてください。
大阪梅田のジュンク堂にはまだあった
他にも梅田か日本橋か天王寺で一つ二つ見かけた気がする
>>620 遊ぶために機器が必要だったり知識が必要だったりするから気軽に遊べないんだろう
629 :
名前は開発中のものです。:2006/11/07(火) 01:50:38 ID:AW0GICw7
ACGのローダーってないですか?
630 :
名前は開発中のものです。:2006/11/28(火) 17:59:17 ID:lYNXLR4z
玄人受けというか、ARM7の教材として扱いやすいから?
元々アドバンスのソフト開発の本出してる人じゃなかったっけ?
633 :
名前は開発中のものです。:2006/11/29(水) 00:46:30 ID:PE+92vg7
>玄人受けというか、ARM7の教材として扱いやすいから?
まぁInterface的にはそうだろうなぁ・・・
でも現実問題としてCPUなんて気にする?Cで書いてあとはコンパイラまかせじゃない?
>元々アドバンスのソフト開発の本出してる人じゃなかったっけ?
そーすね、TeamKNOx ってのは結構みる名前だね
ttp://www.teamknox.com/
super cardのSD版を使っているのですが、
自作のソフトが古いファームでは動くのですが、最近のファームでは動かなかったり。
原因らしきものをご存知の方、いませんでせうか。
>>634 俺も欲しいなぁ。ソースとページ合わせて
500円位なら出してもいい。
639 :
636:2006/12/30(土) 15:23:02 ID:0mYHchrL
>>637 頂きました。ありがとう。
それはそれとして、GBAプログラミング研究所のログ(html、ツール、ソース等)
なるべく完全な形で持ってる方、譲って頂けないでしょうか?
>>639 ある程度は自分で何とかしないと、道具だけあったって
いつまでたっても完成しないぜ。
642 :
名前は開発中のものです。:2007/01/25(木) 03:02:53 ID:M87w4hor
h
上のツールとログ感謝。
プログラミング初心者だけど少しずつ勉強してます。
DragonBasicでプログラミングをしたみたいんですが、
どんなサイトや本で勉強するのがいいでしょうか?
また、どのBasic言語に近いですか?
DragonBasicやるぐらいなら Cの方が良くね?
資料やサンプルも多いし。。。
上に同じく、DragonBasicだけはお勧めできない。
まだVisualHAMの方がましかと思われ。
647 :
名前は開発中のものです。:2007/04/02(月) 22:07:34 ID:0q+4yudy
AGE
誰かすずめ愛好会のログ保管してる方いません?
>648
http://web.archive.org/web/*/http://vsync.org/ 今年最初も消えた騒ぎあったから、たぶんまた復活するよ
・・と思ってたら今度は「閉鎖します」ってあるね。
どうしたんだろう・・
DSはエミュの準備が遅れたせいか盛り上がりが今ひとつだし。
コンシューマーで趣味で開発するのも下火になってくのかな
PS、DC以降になるとパソコン用のゲームを作るのとなんら変わり無いし。
そういや最近はXBOXのゲームを開発できるとか。
650 :
名前は開発中のものです。:2007/04/20(金) 17:50:22 ID:uuMZCywc
>>649 この前移転したばっかじゃん…と思ったら消えてた。
まぁ研究所と違ってhtml保存しといたからいいけど、
すずめ愛好会はGBAの項書きかけなんだよな。
653 :
名前は開発中のものです。:2007/05/01(火) 16:14:42 ID:PWiUSG0M
「ゲームボーイのプログラム・改造マニュアル」って本読んだ事ある人居ますか?
買おうかと思ってるんだけど
ゲーム制作に生かせそうな内容なのかな?
ゲームボーイの構造を理解するのには使えると思う。
開発環境の導入からわからなかったり、自作のフラッシュカートリッジを作るつもりなら買うといい。
ゲーム製作についてのノウハウに期待するならやめておいた方がいい。
>>654 遅れながら参考になりました、ありがとうございます。
656 :
名前は開発中のものです。:2007/05/07(月) 00:05:29 ID:OG5zBZdn
書籍つながりで、さっきヤフオクでケーブル付きのGBA本が
かなり競った結果、定価以上で落札されてた。
書籍は相当薄かったから価値の殆どはケーブルだろうけど。
とりあえず、昨日定価で売ってるところ見つけたんで買いに行ってくるわノシ
押入れから昔買ったパラレル用のブートケーブルが出てきた
いつ買ったか記憶にねえけどこれを使って遊んだ記憶はある
USB版もあるらしいけどもう売ってないんだね・・・
これからやろうと思うんだけど、どの環境でやるのがおすすめ?
devKitProはインストール簡単って聞いたけど、これでよい?
>>658 devkitProとVC2005EEおすすめ。
ありがとう
lfwgewreheh
hjyjrwyjwj
ryuklryul
ryeyet
ylflily
sdbhsfhfsd
yrlyrli
>>662 前に見たけど、
今見ると、スプライトダブラーすごいよなあ
他の発売されたソフトでもやってたんかな?
>>662 何か知らんがやる気が湧いてきた。ありがとー。
665 :
名前は開発中のものです。:2007/09/18(火) 13:11:31 ID:X/1lrDkx
Macで作ってる人居ますか?
ゲームボーイのプログラム・改造マニュアル
ゲームボーイプログラミング入門
両方吸出し機とかの方に力入れてて全然役に立たなかった。
特に後者はGBAを表紙に入れておきながら殆ど触れていない。
一緒に買ったC言語超入門―Windowsでゲームボーイのプログラムを作ろう!は使えたなぁ。
すいません、質問させて下さい。
typedef unsigned char u8;
typedef unsigned short u16;
typedef signed char s8;
#define USE_SPRITE_NUM 8
typedef struct{
u8 tileno ; // 使用するタイル番号
u8 sizetype ; // スプライトの形状とサイズ。
s8 posx ; // 座標X
s8 posy ; // 座標Y
u8 mirror ; // 反転フラグ。bit0が左右でbit1が上下
u8 dummy[3] ;
} spritedata_t ;
typedef struct{
u16 tileno ; // 使用するタイルデータ番号
u8 usespritenum ; // 使用するスプライトの数
spritedata_t sprites[USE_SPRITE_NUM] ; // スプライトの情報
u8 dummy[1] ;
} graphicpat_t ;
こんな感じで、作ってるのですが、sizeof(graphicpat_t)でサイズを調べると、
VC++で作成したツール上で68、GBA上で72と、違いが出てくるのですが、
何故なのでしょうか?
境界揃えようとするから。
&graphicpat_t->sprites[0] でアドレス出力してみりゃいい。
typedef struct{
u16 tileno ; // 使用するタイルデータ番号
u8 usespritenum ; // 使用するスプライトの数
ここにダミーが1バイト
spritedata_t sprites[USE_SPRITE_NUM] ; // スプライトの情報
u8 dummy[1] ;
ここにダミーが3バイト
} graphicpat_t ;
多分こうなってる。
dummy[1] を上に移動するだけでもいいよ。
>>669-671 あれから自分でもパディングの事を調べてみたんですが、
パディングって構造体の最後だけじゃなくてメンバの途中にも入るんですね。
メンバがu8一つだけの構造体のサイズを調べると2バイトになっていたり、
u8二つの構造体のサイズは4バイトだったりするのが謎だったりで
まだちゃんと理解できてはいないのですがとりあえず
graphicpat_tのdummy[1]をusespritenumnumの次にする事でうまくいってます。
レスありがとうございました。
.cファイルに書いた場所(順番)によって、ポインタが指す場所が変わるのですが、
原因がわかる方はいらっしゃいますか?
具体的には
const u8 hogebindata[HOGE_SIZE] ; // .oファイルから
HOGE* pHoge1 = &hogebindata[0] ; // HOGE構造体のポインタ
HOGE* pHoge2 = &hogebindata[0] ;
これでpHoge1とpHoge2の指す場所が変わったのですが。
その現象は確認したことがないので
お役に立てないかも。
指す場所が変わったというけれど
1,2バイト程度のズレなのか、全然無関係な
アドレスを見ているのか気になります。
前者ならコンパイラの最適化の影響?
volatile修飾子つけてみてはどうでしょうか。
もしくは
HOGE* pHoge1;
HOGE* pHoge2;
pHoge2 = pHoge1 = &hogebindata[0];
でやってみるとか。
>674
レスありがとうございます。ズレも定義する位置毎に変わったり、
さらには他の部分の関数等の量(?)にも変わったりするので良く解りません。
とりあえず、今まではグローバルで定義と初期化をしていたのですが、
初期化をAgbmain()の冒頭にしたら見かけ上はうまく行きました。
原因が解らないのが気持ち悪いところではありますが…。
・u8型なのに、HOGE*型で参照しようとするので
キャストがおかしくなっているのかもしれない。
・Agbmain関数と聞いて、開発環境が
DevkitAdvanceではないかと思いました。
もしそうならばdevkitProに変えてみるといいかも。
・最終手段で、バグのままの状態でプロジェクト一式
アップしてみるとか(ぉ。
これぐらいしか思いつくことはないので
後は傍観させていただきます。
全部じゃなくても、そちらの環境で再現する最小限のソースをうpしてみなよ。
>676
片方が駄目で、片方は普通に使えるというのが謎なんですよね。
コンパイラの最適化関係で、何かされているのでしょうか。
makefileは他のサンプルをそのまま使っているので、
その辺のオプションは弄くれていないのでそういう事もあるかも知れないです。
それとお察しの通り、DevkitAdvanceを使ってます。
自分もdevkitProに変えたいのですが、いまいちやり方がわからず…。
もうちょい弄ってみます。
ソースは上げられませんが、HOGEの中身はu16 data[8]だけです。
>677
どれくらいの量でズレが起きるのかがイマイチ解りません。
新規に初めてみて試してみます。
コンパイラはDEVKITのどのバージョンですか
2バイトパレットってBIT15は未使用のはずなのに、
ゲームによってはBIT15が1で、+8000hされてる色が
稀に使用されていたりして、用途がさっぱり解らないんだけど
誰かわかります?
色違いキャラなどで、同じ色が使用されている時に片方のみ
+8000hされてるなんて事はないから
意図的な設定なんだろうけど
同じ色が含まれている、の間違いです
なんの根拠もないが、なんかのフラグで使ってるんじゃないか?
たとえば、パレットアニメの対象外にする時にビットを立てておくとか。
>662
変なのー。
周りのやる気をなくさせようという気がまんまんだね。
言ってることとやってることが違うと何だか腹立つ。
…やってること自体は簡単だから、「すごい」とか騙されては駄目だよ。
一介のプロのつもりなんだろうけど、むしろ手抜きが目立つね。
サウンドも背景もちゃんと凝った方が全体の評価は高い。
>>680 GBAだと使用しないけど、NDSだとBIT15は透過フラグになってて、モードによってはそのBITを立てて使う。
NDSのプログラムでも使えるようにしてるか、git(データの変換)なんかでフラグ立てる設定で
変換したのを間違ってそのまま使ってるんじゃないかな。
透過フラグの存在は初耳です。
でもキャラスプライトに二つ以上の透過色が
必要な使われ方はしてなかったようです。
何かのフラグが残ったままって可能性はありそう。
>>682 そういうケースもありそうですが、
パレットアニメが使われてた様子はないっぽいです
聞いたことないけど
もし'何かある'としたらブレンドモードだと思う。
どんな状況で表示されてるスプライトなんだ?
>>685 NDSはスプライトにはタイルだけじゃなく、ビットマップも使えるようになってる。
ビットマップだと0番パレットみたいな透過色の代わりに、BIT15立てることによって透過を実現してるんじゃない。
俺にもビット15が0で色が表示されないと悩んでた時期があった
689 :
名前は開発中のものです。:2007/11/15(木) 20:19:19 ID:LZz2LXH5
携帯電話の液晶を再利用したボードPC「DVIEW」
ttp://slashdot.jp/hardware/article.pl?sid=07/11/15/0122209 スプライトは使えないけど、オイラ的には実機でも動かしてみたいからこれ買うつもり
性能的にはこんなもん
CPU: ARM7TDMI Core (81MHz)
メモリ: On-Chip 40Kb SRAM (外部SD, FlashROMが利用可能)
ディスプレイ: 320x240、32K(RGB555)色
サウンド: 2ch,16bit audio-DAC for stereo/mono output (MP3, MIDI, ADPCM対応)
周辺機器: CMOS sensor input, VideoOut, SD Host I/F, UART, SPI, JTAG (拡張ボード利用で USB, LAN)
会社のページに繋がらないのは何故だ?
メモリ 40Kbで、一体なにができるんだw
40KBの間違いだろ
40KBでも同じこと
>>692 最初に買ったパソコンはRAM16KBだったがいろいろ出来たぞ
全くの初心者なんですが質問させてください
既存のゲームをベースにポケモンやメダロットやFFなんかを、
テキストやら音楽やら絵やらパーツやらモンスターやらを追加したり差し替えたりして作りたいと思っているのですが
おおまかな手順と必要な知識を教えてください
簡単に言うと板違い。
gameurawazaに行って下さい。
難しく言うと
差し替え→コンスタント領域から該当箇所を見つけてリプレース
追加→コード領域からコンスタント領域参照部分を見つけて分岐もしくはテーブル書き換え
必要な知識→各種データフォーマット・LZ77圧縮法・ARM7インストラクション
算数知らないのに数学の教えを乞うようなモン
質問でもなんでもない
と書こうとしたら695が親切すぎて泣いた
>>694 GBAは難しいからファミコンで練習するといいんじゃない。
super card上でデータを保存するにはどうすればいいんでしょうか
sramに書いたあと、自分でメニュー呼んでSDに保存できればいいのですが、どうパッチをあててもできず。
自作ソフトには付けられないんですかね、パッチ。
また、同じくsuper cardで新しめのファームウェアだと起動すらしないのですが、アプリ側でできる対処法などご存知の方いませんか
誰かwww.agbdev.netで配布してたデモ(Nok_Keysupd.zip、sprite.zipとか)
持ってる人いる?どんな中身か知りたいんだけどサイトが潰れちゃってさ。
すいません。この本「Linuxから目覚めるぼくらのゲームボーイ!」
を読みながら、第2章のbox_tile.cまで進んだんですが、
サンプルプログラムをそのまま使用して、
コンパイルまでできたのですが、VBAで実行させると画面が真っ暗なままで
何も起こりません。これは実機でないと動作しないのでしょうか?
半分あたり
その本はメモリからブートすることを前提にしているので
ROMからブートすることを前提にしているエミュだとそのままでは動作しない
VBAで動かすにはbox_tile.mb.binに名前を変えてあげな
>>701 レスありがとうございます。
ファイル名を変えてやってみましたがうまくいきませんでした。。
代わりにリンカスクリプトでプログラムの開始アドレスを0x08000000に変えたら動きました!
おかげで挫折する期間が延びましたwありがとうございました。
しかしbox_tile.cより前に出てくるプログラムは何で内部メモリブートでもうまくいったのかなあ
すいません。「Linuxから目覚めるぼくらのゲームボーイ!」
を第3章まで読み進めたのですが、clock.cがうまく動作しません。
割り込みハンドラの中でvolatile修飾したグローバル変数の値を書き換えているのに
全く値が変わりません。なにか考えられる原因はありますか?
ちなみに割り込みハンドラ自体が実行されていることは自作のprintf文の実行結果から
画面に文字が出力されるので間違いありません。
>ちなみに割り込みハンドラ自体が実行されていることは自作のprintf文の実行結果から
>画面に文字が出力されるので間違いありません。
釈然としない
どう出力されたからそう思ったの?
ちょっと貼ってみてよ
該当部分のソースを張ります。
これでタイマー0がオーバーフローしたときに下記関数が実行されて、
VBAver1.7.2だとなぜか0110100100111010が常に表示されます。
volatile int tmr0_cnt = 0x0000;
void int_handler(void){
int flag;
int i;
register(INT_IME) = INT_IME_OFF;
flag = register(INT_IF);
if(flag & INT_TMR0){
tmr0_cnt++;
draw_str("タイマーわりこみ", 0, 13, BG_1);
for(i=0; i<16; i++){
if(((tmr0_cnt >> i) & 0x0001) == 1){
draw_str("1", 16-i, 1, BG_1);
}
else{
draw_str("0", 16-i, 1, BG_1);
}
}
}
register(INT_IF) = flag;
register(INT_IME) = INT_IME_ON;
}
ちなみにメイン関数の方では下記処理を行っており、
タイマ0のカウンタは正常にカウントアップしていることが画面表示から確認できました。
何か分かりますでしょうか。よろしくお願い致します。
while(1){
sec = register(TMR_COUNT0);
for(i=0; i<16; i++){
if(((sec >> i) & 0x0001) == 1){
draw_str("1", 16-i, 0, BG_1);
}
else{
draw_str("0", 16-i, 0, BG_1);
}
}
}
あと、リンカスクリプトを書き換えて、テキストセクションの開始アドレスを
0x80000000にしているのですが、このことが何か関係があるのでしょうか。。
ひょっとして全て理解した上でからかってる?
>>707はたしかに関係ある
テキストセクションを0x08000000に置いたあと以降の
連続した領域にBSSセクションとデータセクションを置いているので
グローバル変数に書き込みたくてもROMだから書きこめない
今までよく動いてたな。。。
例えば
mov r1, #128
strh r1, [r3, #0]
ldrh r3, [r2, #0]
を実行するのに、何クロック掛かるか・・という事を説明してくれる
本やサイトご存知内ですか?
音の多重再生をするにはどうしたらいいのですか
数十曲の音楽データをROMに格納したいのですが容量が足りません。
何か工夫が必要なのでしょうか。
マザー3なんかは100曲ものBGMが入ってましたがあれはどうやって実現しているのでしょうか。
すいません。100曲でなく250曲の間違いでした。
譜面データと、音源データを分けて持っているから、かな?
MIDI見たいな感じで。
それに、要所要所でPCMをかぶせれば
大抵の曲は再現できそう。
あとは、圧縮をかけるだね。
(譜面データにたいして、また、ADPCMとは言わないが適当な圧縮形式で。)
そんなのは俺の手に負えねえ。ここで挫折しまするわ。
ここでGBの事聞いても大丈夫かな?
バンク切り替えの事について調べてるんですけど
MBC2のバンク切り替えについてすずめさんところのウェブアーカイブと
お受験に出るゲームボーイのページを調べてみたんですけどMBC2に関する情報が載っていなくて…
恐らく0x2000番地への書き込みだと思うんですけどどこか正確な情報がある場所ってないでしょうか?
それと現在自分がどのバンクを操作しているのか判別する方法があるかないかご存知の方いらっしゃいますか?
もしかしてバンクの位置情報はどこにも展開されず完全に自分で管理する必要があるんでしょうか?
デバッグの際にバンク情報がないと調べるのが大変で…
すみません該当するようなスレが無かった物で。
挙げて頂いた上記サイト等も参考にしてみます。
エミュのソースをみれば確かに内部動作はカンペキに把握できますね。
GBのエミュも大分こなれてる様なのでその辺も参考にしてみます。
ご親切にどうもありがとうございました。スレ汚し失礼しました。
>>712-715 GBA用のFreeのMODライブラリでも使って組み込めばそれで終わり。
問題は、MODを作れるかどうかだがw
devkitProを使ってGBAでゲームを作っているのですが、
const int hoge1 = 1 ;
const int hoge2 = hoge1 ;
のようにすると、「initializer element is not constant」と出てしまいます。
VC++だと普通にコンパイルが成功しました。
Cではこういう事は出来ないのでしょうか?
>>720 スレ違いだが回答。
C言語とC++のconst修飾子の動作の違いのために起きる問題。
const int hoge1 = 1 ;
がC言語では変数として定義されるのに対し、C++では定数として定義される。
このため、
const int hoge2 = hoge1 ;
がエラーとなる(初期値つき変数に定数以外を指定したから)。
結論:C++でなくC言語で書くなら、定数はマクロやenumで定義しましょう。
余談だが、const修飾子には他にも違いがあり、グローバル変数をconst修飾した場合に、
C言語ではデフォルトで外部リンケージ(要するにextern)になるのに対し、
C++では内部リンケージ(要するにstatic)となる。
>>721 スレ違うというか板違いでしたね。
あと、一応補足。
当たり前だけどC++でグローバルな
const int hoge0 = 1;
static const int hoge1 = 1;
extern const int hoge2 = 1;
を定義すると、hoge0とhoge1は定数、hoge2は変数となる。
>>722 変数と定数と、どう言い分けてるの?
挙げられた例だと全部定数式として使えるはずだよ。
>>723 スマン。内容に不足があった。
×hoge2は変数となる
○hoge2は定数であると同時に外部リンケージの変数も定義される
725 :
720:2008/03/17(月) 03:34:16 ID:C1jKoyjP
なるほど、そもそもCとC++じゃconstの仕様が違うのですね。
良く分かりました。
板違いの質問に答えて頂き、ありがとうございました。
>>724 やっぱり変数と定数の意味に無理があるだろ。どこで
そんなネタ仕込まれたんだ?
722 の3つは全部 const int 型変数の定義。
const int 型変数が定数式で初期化されていれば、
それもまた定数式となる。
リンケージはそれぞれ決まっているし、外部リンケージ
じゃなければ初期化が必須だったりするけど、それらは
定数式として使えるかどうかとは別の話。
GB音源(例えばチャンネル1)でエンベロープをハードウェアでは無く自力でやりたい場合、
SOUND1CNT_Hのbit12-15をいじって、
SOUND1CNT_Xのbit15を立てて初期化するしかないのでしょうか?
これだと発音中の波形の状態も最初に戻ってしまうらしく、
音が自然にならないので困っています。
何か良い方法をご存知の方はいらっしゃらないでしょうか?
その方法しか無いがチャンネル1と2は必ず発音がリセットされるので実質使えない
チャンネル3はリセットされないからソフト制御可能
GBAのスペックに
サウンド:アナログ(パルス波2ch+波形メモリ1ch+ノイズ1chの音源、従来機と同様)+デジタル(PCM)2ch
ってあるけどこれと同時発音数は別の話だよね
もっと沢山鳴らしてるようなメガデモはあるし、実際は何音までなんでしょ
それで全部だけど?
では同じトラック三つコピペして全部違うPCMにしても
音切れがないのはどういう仕組み?
>>731 複数の音をリアルタイムに合成すればいいんじゃないの?
自分でPCMと書いてるじゃん・・・
デジタル(PCM)2chって書いてあるけど
合成すればいいってんなら何音まで?
>>734 好きなだけ重ねればいいんじゃないかな。
あとは処理時間を見て4音や8音などに制限していくとか。
「GBA PCM 合成」でググってみるといいかもよ。
736 :
727:2008/03/25(火) 03:27:18 ID:XMS5LhkT
>728
うへぇそうなんですかorz レスありがとうございます。
こんなキッツイ制限があるのにGBのゲームには一杯名曲があるというのが信じられません。
というかFCよりもキツイですねこれは。
FCミニとか、エミュレーターとかも結構苦労して再現してそうですね。
737 :
名前は開発中のものです。:2008/03/25(火) 21:01:25 ID:cUljzw0d
すげえな
739 :
名前は開発中のものです。:2008/04/04(金) 05:56:12 ID:hXz7vhFd
GBAよりスーファミの方が開発意欲がそそられる
devkitProを使ってみようかと思ってるのですが、
コレを使ってGBAソフトを作ってネットで配布する場合、
ソースも配布可能にしなきゃいけないのでしょうか?
ライブラリを改変しなければ配布しなくてもよかったと思います。
>>740 ソースクレクレ厨が出てきたら、改変して売りつける悪質な業者だと思ったほうがいいよ
配布には十分注意しる
まぁ、GBAだからもう居ないと思うけどね・・・
743 :
740:2008/04/28(月) 03:52:19 ID:fpXnuQEH
>>741 そのまま組み込めば、配布しなくてもOKって事ですか、分かりました。
教えていただきありがとうございます。
>>742 配布しなくちゃいけなくなった場合に、そういう輩も出てくるんじゃないかと
懸念していたのですが、どうやら大丈夫みたいですね。
海外ソフトの和訳ハックとか作れますか?
もし可能性が少しでもあるなら頑張ってみようかなと・・・
予備知識ゼロだけど・・・orz
GB伊次郎ってどっかで手に入らないものだろうか…
>>746 GBXchangerと任天堂パワーのGB用カートリッジがあれば、似たようなことができると思う
それが手に入れば苦労はしないっての…
この手のものは時期逃すと手に入りにくいからなあ・・・
数年前なら、数少ないが売っている店はあった
あとは今あるとしたらオークション
ヤフオクで1点だけ見かけた
GBのマジコンって今でも需要あるんだね
KOMAKUYAはもうスターターキット出さないのかな
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)です。
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)です。
ブレゼンハムでググれ
こんなところで聞くよりいい解説がどこかにある
デジタル微分解析(DDA)でググ・・・ったら余計わからんくて俺が吹いた
厳密に考えるとやっかいなところは多々あるが
2Dで直線や多角形描くぐらいならただの差分方程式だろ
GBAで1〜10までのランダム値を取ろうと思ったらどうすればよいのでしょうか?
rand()は使えませんよね
>>757 rand() % 10 + 1
…ってスレ違いだね。
プログラミング初心者向けのスレに行くといいよ。
Homebrew BOF
ゲーム機など開発環境が公開されていないハード、及びマイナーハード開発者の集いを企画しています。
日時:コミケ(12/28-30)前後 当日なら17-19時くらい + 宴会
場所:東京都区内
費用:会場実費(0-数百円?)
たぶん日本全体で100人もいないんじゃないかと思いますが、
コミケで上京する人もいるでしょうからその時期を予定しています。
http://www27.atwiki.jp/homebrew/ マルチすまん
760 :
名前は開発中のものです。:2009/01/09(金) 21:44:01 ID:JmGx4bkn
age
761 :
名前は開発中のものです。:2009/01/09(金) 21:54:46 ID:JmGx4bkn
おtingting
762 :
名前は開発中のものです。:2009/01/09(金) 22:02:00 ID:JmGx4bkn
マジキチ動画(ββ)
GBAでMP3を再生する方法を教えてください
市販プレーヤー買った方が手間取らない
プレイやん
サウンドプレイヤーを自作したいと思っています。20曲程入れたいんですが何らかの形で圧縮して組み込みことが必要だと思うのですがどうしたらいいですか。
PCでそのプログラムは作ってみた?
PCではDXライブラリを使えばMP3の再生ができるので作れることが分かっています。
じゃ、DXライブラリ使わずにmp3再生できるように頑張れ
770 :
名前は開発中のものです。:2009/02/06(金) 17:43:16 ID:6cgXmSA9
じゃあ脳内再生しかないな
GBAの性能じゃmp3プレイヤーは厳しくないか?
DMA1&2とTIMER0&1を使って、ダイレクトサウンドA&Bで同時に音を鳴らしたいのですが
片方しか音が鳴りません。
VBAのIOViewerでFIFOが変化しているのは確認したのですが
何も音がしない理由としては、どんな事が考えられますか?
SGCNT0_H(0x4000082)
SGCNT1(0x4000084)
の音量他もちゃんと値が入ってます。
本当に値が正しいなら
あとはVBA側でDirect Sound A,Bのどちらかがオフになってる位しか無いな
774 :
772:2009/02/15(日) 06:41:13 ID:boVc3Mdt
レスありがとうございます。
VBAの設定も間違いなかったみたいです。
あれから色々試してました。
実は多重再生の為に、FIFOにコピーするバッファはサウンドデータと別にしていて、
TIMERのハンドラ内で手動でDMAを使ってFIFOにコピーをしてました。
鳴らないのはダイレクトサウンドAの方(BGM用)で、
ダイレクトサウンドB(効果音用)が鳴った時に何故かAも鳴ったので
調べてみると、効果音用のTIMER1が動くと鳴ると解りました。
とりあえず、AとBのFIFOコピーにどちらもTIMER1を使用することで一応解決しました。
タイマーを分けると鳴らなくなる理由がわからないままですが。
もしやDSOUNDCTRL(0x4000082)以外にも、
TIMERとダイレクトサウンドを関連付けるレジスタがあるのでしょうか?
775 :
772:2009/02/15(日) 08:59:40 ID:boVc3Mdt
原因が解りました…。
DSOUNDCTRLの初期化にor演算子しか使っていなかったこと
(タイマーを指定するのに、DSOUNDCTRL |= DSOUNDCTRL_ATIMER(0)としかやってませんでした)
自分の使っているgba_sound.hのDSOUNDCTRL_ARESETが
0x0400と定義されていた事(実際は0x0800。0x0400はタイマーの指定に使用)
が原因でした…。
お騒がせしてしまってすみませんでした。
GBAとかファミコンは開発環境が強力じゃないから
そういう所でハマっちゃうと、抜けるの大変だよね
GBCの板は昔あったんだが、過疎すぎて落ちちゃった
VCとかに配信できたら面白そうだけどね>自作ゲーム
今まではメインループの始めにV-Blankを待って、それから各処理を行っていたのですが、
開発が進むにつれてV-Blank中だけじゃ処理が間に合わなくなってしまいました。
そこでゲーム処理と描画関係の処理にわけて
while( V_COUNT != 0 ){}
GameProc() ; // ゲーム処理
while( V_COUNT < 160) {}
GraphicProc() ; // 描画関係の処理
と、二つに分けてやる事にしました。
表面上はうまく動いているように見えるのですが、
こういう事をやってしまっても大丈夫なのでしょうか?
分けること自体は問題ないけど
ゲーム処理でV_COUNT != 0を待つ意味は無いよ
描画が終わったらすぐに処理を始めていい
while( V_COUNT < 160) ;
GraphicProc();
GameProc();
781 :
779:2009/04/01(水) 03:36:13 ID:2baejuDU
>780
おおなるほど。
確かにそうした方が処理時間をより多くさけますね。
レスありがとうございます。
ここってまだ人いますかね……
自分で作ったプログラムをPogoShellから起動する場合,「終了してPogoShellに戻る」
という機能をつけると便利だと思うんですが,やりかたがさっぱりわかりません.
どこで調べればいいのかご存知のかた,教えてくださいませ.
カートリッジのバンクセレクタを元に戻してswi 1, swi 0の順でリセットかければおk
Visoly系(F2A)とEZ/XG-Flashはlibpogoのrestart.Sを使えばいいよ
おお,回答ありがとうございます.
リブート自体はbiosコールでできるのかなとは思ってたんですが,
バンクセレクタ云々というのが俺がよくわかってない点のようですね.
F2Aを使ってるので,とりあえずrestart.sを見てみます.
実はC言語しか知らないので時間がかかりそうですが.
圧縮した音楽ファイルはどうやって再生すればいいのでしょうか。wavじゃサイズ大きすぎる。
何で圧縮した音楽ファイル?まずはそこからだけど。
mp3は再生できないよ。
そもそも、サンプリングされた音の再生がGBAじゃ無理だと思うんだが
スペックが足りない
それはさすがにGBAなめすぎ。
44kHzで16トラック合成出来るくらいのスペックはあるよ。
効果音の周波数って、どれくらいが良いんでしょうか?
アクションゲームを作っているのですが、
現在8000kHzで同時再生させる為に自力合成で結構処理が重いです。
77.8MHzがオススメだよ。
793 :
791:2009/09/26(土) 02:31:51 ID:IAonhfHR
>>791の8000kHzは8000Hzの間違いでしたw
>>792 77.8MHzという事は77800000Hzですか。
8000Hzでヒーコラ言ってるので自分では無理っぽいですね。
795 :
791:2009/09/30(水) 04:44:16 ID:BCNooBfe
なん・・・だと?
出来るかわかりませんが市販のゲームを調べてみます。
8kHzくらいで重くなるってことはほとんど無いから
なにかやり方間違ってるんじゃないの?
DirectSoundからサウンド要求があるたびに割り込んでたりとか
797 :
791:2009/10/03(土) 05:07:24 ID:UpJ1HpGL
やっぱり8000Hzは低い部類になるって事ですね。
現在は、合成用バッファを1フレームで消費する量の2倍確保して、
前半を再生中なら後半に書き込み、後半を再生中なら前半を書き込む処理を
1フレームに一度呼び出す方法を取っています。
2チャンネル同時再生するとHBlankの数値が30弱くらいの重さです。
やっぱり何かやり方が間違ってそうなので、ソース見直して見ます。
重いというからどれほどかと思ったら2音合成でHBlank30ライン分か。
チューニングしてなければ、それくらいはいくかもね。
軽くポイントだけ。
7884Hzにしろ8121Hzにしろバッファのサイズは4の倍数なのでループを4回分展開出来るな。
10512Hzだと16の倍数になるから、16回展開出来る分更に速いかもしれない。
どっちにしてもDuff's Deviceを使えばいい。
効果音は1フレーム単位のサイズに揃えれば、終了判定は毎フレ1回/チャンネルに抑えられる。
これをやった上でそれ以上速くしたかったら、既成のライブラリを検討した方がいいかもしれないよ。
void mixAudio(); // プロトタイプ宣言
void mixAudio() { ... } // コード
があるとして
void mixAudio() IWRAM_CODE;
IWRAM_CODE void mixAudio() { ... }
にして、そのソースを-marmでコンパイルするだけで、おそらく負荷が1/3になる。
手元で軽く組んでみたが馬鹿正直に作って2チャンネル合成でHBlank30弱だったのが
IWRAM_CODEにしたら10弱になった。
800 :
791:2009/10/05(月) 04:23:04 ID:6seh3Jx2
>798
ループの展開…?forループを全部べた書きするという事なのか…?と思いつつ、
「Duff's Device」というのを知らなかったのでググって見たのですが、
これは凄いですね。こんな方法は自分では絶対に思いつかないです。
>799
わざわざ検証して頂いてありがとうございます。
IWRAM_CODEという存在は知っていたのですが、
効果音再生よりも重い処理があったら困るので、
これは最後の切り札にしようと思ってました。
ループで成り立っている高負荷な処理は、切り札と言わず全てIWRAM_CODEにすればいいよ。
ぶっちゃけループ展開はする必要ない。
俺はPCM合成の他にアニメーション処理や当たり判定をIWRAM_CODEにしてる。
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. ,
300
懐かしいなぁ
毎日このスレチェックしてたよ
805 :
名前は開発中のものです。:2009/12/17(木) 07:56:51 ID:7qcTAUbw
RTCの使い方がよく分からん
>>806-807 ご親切にありがとうございます。
割り込みは使わないからrtc.cをそのまま使えば動きそうです。ありがとうございます。
それGPLだからな
それ使ったものをどこかで公開するときは一緒にソースも配布するようにしろよ
そのままで動かなくて苦労したけど
最終的には出来ました
本当にありがとうございます
811 :
名前は開発中のものです。:2010/01/05(火) 21:27:52 ID:pzmXnMW+
エミュレータで動くのに実機や
実機BIOSで動かしたエミュレータで動かないって
どうゆうことなの?
ヘッダに適切なデータが入っているかチェックして、無ければ動かないようになってる
そのデータはdevkitARMに同梱されてるgbafixで埋めれ
thx
分かりました。
814 :
名前は開発中のものです。:2010/05/27(木) 18:01:00 ID:t7j8nc4S
GBAって単純に考えればSFCの2〜3倍くらいのスペック?
CPUだけでも軽く8倍以上はある
理論値高くても実際に出たゲームはSFCに毛が生えた程度だったな
wikiにはsfcと同程度って書いてあるけど詳しくないからよくわからん
はやくgbaで作ってみたいなー
>>815 ×CPUだけでも
○CPUだけは
CPU以外はそんなに違わないと思う。
既に完成された形。
>>817 ゲームの面白さは画面の派手さ等とは関係ないし、
無理に派手にするのは違うと思う。
それに携帯機器なので、消費電力を抑えるのもメリット。
派手さとか関係なくGBAはその程度の性能ってだけ。
>>819 スプライトが回転できて、回転BGも2面まで使えるから
そのアドバンテージだけで4倍相当くらいはあると思ってるんだけどどうよ?
画面の狭さで2倍に戻るが
>>821 うーん使いどころが…
その機能を有効に使って面白いゲームを作れたら凄いんだが。
GBAってムービー使ったりROM丸々容量使ってアニメ一話分のソフト出したり
SFCより性能が上とパッと見分かるのってそれくらいだろ
824 :
名前は開発中のものです。:2010/06/03(木) 20:59:01 ID:jjhre0VD
ゲームボーイアドバンスSPの内蔵充電池をNDSで使うことは出来ますか?
>>824 リチウムイオン電池は危険だから、そういう変なことはしないほうが身のためだよ。
SFCよりは当然性能いいけど
SFC末期みたいに性能フルに使うって感じは無かったから
中途半端なハードになっちまった
827 :
名前は開発中のものです。:2010/06/16(水) 02:46:14 ID:cnscT1cZ
DSとPS1ってポリゴン数以外は似たようなもん?
アーキテクチャ的に全然違う
ネトウヨは巣に帰れよ
どんだけ貼ってんだよ
お前こそ祖国に帰れよ
832 :
名前は開発中のものです。:2010/06/26(土) 03:43:55 ID:hrviSwbr
某教授より l \
/ ノ´⌒ヽ,, \
| し な 間 〉 // γ⌒´ ヽ \ は
| ら っ に |/ l // ""⌒⌒\ ) < 辞
| ん て あ / i /::::::::: \ /ヽ )_/ め や
| ぞ も わ |> !:::::::::::(・ )` ´( ・) i/\ さ
| | な |`/\ |:::::::::::::::(__人_) | \ せ く
っ | く |/ / l´,.-― 、:::::「匸匚|' |――/ ろ
!!!! | \ ', / /`7-、|/^⌒| /// / 俺
lT´ { / / ト、_ノ _'// / !!!!!
l´ ヽ、 > ー ,/ |ニ.ノ /_ を
i``` 、/ } ',,,..' |-'´,- '´ ̄/ ヽ∧ ____
\/ ' \_ `´ノ7l´ / // ヽ lヽ
/ ̄ |  ̄ ̄/ ノ L_/ ★ U |
/ ヽ /`ー´ /l |
ケーブルって今手に入らないのかよwww
F2A USB LinkerかF2A USB Link Cableなら手に入ると思うぞ
ブートケーブルと中身一緒だから同じように使える
835 :
833:2011/05/08(日) 20:18:35.07 ID:4vIg1REE
>>834 thx! 今度秋葉行った時探してみる。
どうしてもブートケーブルじゃなきゃ駄目な理由があるならともかく
探すならF2Aだけじゃなくて他のマジコンも視野に入れたほうがいいよ
837 :
名前は開発中のものです。:2011/08/26(金) 21:41:13.98 ID:jAnNKv73
関係ないがFC、GB、GBC、GGって性能面でどういう順序なん
FC据え置き GB GBC GG 携帯ゲーム機
FC GB GBC 任天堂 GG セガ
登場時期 FC 。。。GB GBC=GG
FCとGBがほとんど同じ性能
表示能力はGBのほうがはるかに劣るけど音源が同じだし、CPUが同じ8BIT
FCとGBCが表示能力も同じ程度かな
画面の解像度はGB GBCのほうがはるかに狭いけど
登場時期からしてGGはGBCと同じ程度の能力じゃないの?
DSは今はプチコンでお手軽にプログラミングできちゃうから需要もないのかなぁ・・・
842 :
名前は開発中のものです。:2013/09/09(月) 10:09:19.47 ID:2MAD9fnF
843 :
名前は開発中のものです。:2013/12/04(水) 21:08:51.90 ID:r+daLjPk BE:6323227698-2BP(5600)
テ
844 :
名前は開発中のものです。:2013/12/04(水) 21:12:27.85 ID:r+daLjPk BE:1405162144-2BP(5600)
ぐ、途中書き込みしてしまった。
テスト段階だけど自分で作ったGBAソフトが想像したものより若干しょぼく見えるとかなり凹むよね。
あー・・・まるで製品みたいだなって言われるくらいクオリティ高いゲーム作りたいわ・・・
わと