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

■ このスレッドは過去ログ倉庫に格納されています
04/10/30 15:50:05ID:XmInH8YR
GBAで何やら作ってみようという人の為のスレ。ライセンス不要。
初心者歓迎。質問歓迎。英語苦手な人歓迎。冷やかし歓迎。ネカマ歓迎。

資料、リンク等
http://www.devrs.com/gba/
http://www.gbadev.org/
http://www.vsync.org/agb/
http://nocash.emubase.de/gbatek.htm
http://www.bomber.co.jp/chaola/docs/ARM/

開発環境
DevkitAdvance http://devkitadv.sourceforge.net/index.html
DevkitARM http://www.devkit.tk/
VisualHAM http://visualham.console-dev.de/
DragonBasic http://jm-basic.com/dragon/index.php

GBA Wiki
http://cgi.f26.aaacafe.ne.jp/~gbawiki/pukiwiki/pukiwiki.php
【GBA】Linuxから目覚めるぼくらのゲームボーイ!
http://pc5.2ch.net/test/read.cgi/linux/1070983168/

ゲームボーイアドバンス(GBA)開発@ゲ製板(避難所)
http://bbs.gamdev.org/test/read.cgi/gamedev/1055111303/
前スレ
http://pc5.2ch.net/test/read.cgi/gamedev/1013750899/
453452
垢版 |
2006/02/19(日) 01:11:38ID: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
2006/02/19(日) 02:00:16ID:m3SmeD2S
>>452
了解しました。トライしてみます。
あと、timerを使わずに止める方法があるのならご教授プリーズ。
2006/02/19(日) 04:25:56ID:iq15VETn
チョット違うことしてるのかな?一応
つdirecsoundサンプル
http://gamdev.org/up/img/4705.zip
2006/02/19(日) 10:19:03ID:QSXlPkGt
>>455
BeLogicのサンプルみたく別タイマーで止めないとダメだとばかり思い込んでました。
このスレよく読み直したら過去にヒントが出てたんですね。。。orz
2006/02/19(日) 21:44:01ID:oTR8sHnf
DarkFaderのMylibとかNylibとか入れてみようと思ってやってみたがダメだ…。
やり方が悪いのかサンプルmakeできなかった。
ライブラリ自体はすごそうだ。使ってる人いる?
2006/02/20(月) 03:17:45ID:B+Dm9jGk
NyLibは任天堂の純正ライブラリそのものだから使わないほうがいいぞ
MyLibはゴミ
2006/02/20(月) 21:23:56ID:bbMb17ur
1Dモードでスプライトの属性を指定します。
attr2(ゼロが最初)のキャラクタ番号(0-9ビットまで)に指定の番号をセットすると正しく表示されません。
2倍の値をセットすると正しく指定できました。
これってあってる? ゼロビット目がキャラクタ番号じゃないんじゃ、とか思います。
1Dのスプライトについて書かれているページとかありませんか?
2006/02/20(月) 21:39:23ID:LHhnamaS
マジですか。コンパイルもようできんからgcc自分で持ってきてarm-elfで作ったりしたんだがなぁ。
最低限eloistのgba.hとgbatekとかのドキュメント、あとは自分でがんばるかね。
2006/02/20(月) 22:06:12ID:LHhnamaS
>>459
スプライトが256色設定の場合は2倍で指定するらしいからそのせいではないかな?
2006/02/21(火) 00:33:12ID:zwimk+yf
>>459
気になるならVBAのTile Viewerでタイル番号とアドレスを確認すれ
463名前は開発中のものです。
垢版 |
2006/02/21(火) 05:42:06ID: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;
}
2006/02/21(火) 07:28:21ID:GiHvck/8
書き込みできるかテスト
2006/02/21(火) 08:22:43ID:BSGVJJY5
>>463
それぞれの変数の値を出力してみろ
466名前は開発中のものです。
垢版 |
2006/02/25(土) 15:23:38ID:LRNrnoNa
ある構造体に汎用的な配列を用意し、状況によって汎用配列部分に
別の構造体をキャストすることでいろいろ使い分けられるように
したいんですが下記(分けて書き込みます)のようなソースがうまく動きません。
「w->cnt = 5;」等の部分で値を代入しているのに正しい値がはいりません。
VC++では正しく代入できるようです。なぜだかわかりますか?
仕様なんでしょうか?
467名前は開発中のものです。
垢版 |
2006/02/25(土) 15:24:22ID: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:34ID:LRNrnoNa
変数の型と変数名がつながっているのは書き込み時に
つながってしまったもので実際には正しく記述しています。
2006/02/25(土) 16:32:04ID:ChwfFfDn
>>466-467
アライメントの勉強をしてみよう。
http://www.google.co.jp/search?q=%E3%83%A1%E3%83%A2%E3%83%AA+%E3%82%A2%E3%83%A9%E3%82%A4%E3%83%A1%E3%83%B3%E3%83%88

この場合は u8 のアライメントしか持っていない wrk に
u16 としてアクセスしていることが原因。
GBA の CPU である ARM ではアライメント違反した書き込みはできない。
VC++ で正しく動作するように見えるのは CPU が違うから。
x86 系ではアライメント違反した書き込みはパフォーマンスが落ちるだけ。
470424
垢版 |
2006/02/25(土) 17:25:32ID:T5T+YA0I
こういう使い方をしたいときはunionを使うんだっけ?

使ったことないけど
2006/02/25(土) 17:28:03ID:JLoubNl/
>>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;
2006/02/25(土) 17:30:14ID:JLoubNl/
>>470
この場合unionは全く関係ないし的外れ
2006/02/25(土) 17:32:36ID:+k+s2zkt
メモリをダンプしてみろ
それからだ。
2006/02/25(土) 17:38:12ID:ChwfFfDn
>>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:18ID:LRNrnoNa
みなさん、アドバイスありがとうございます。
アライメント自体の概念はわかりました。
実用についてはまだよくわからんのですこし調べてみます。

>>474
unionのサンプルの意味は
u8でサイズを決めつつ、何のデータを扱ってもいいように
void型のポインタと最大サイズの整数と浮動少数で
共用体を定義しているということでよろしいでしょうか?

あと、私が書き込んだソースを下記のように修正したら問題なく
動くようになったんですがこのまま使い続けるのは
問題あるでしょうか? 
u8 wrk[48] → u32 wrk[12]
476474
垢版 |
2006/02/25(土) 18:33:56ID:ChwfFfDn
>>475
サンプルの意味はそういうこと。
union 自体のアライメント要求がメンバの中で最大の物になることを利用したもの。

GBA のハードウェアで4バイト以上のアライメントを要求するものは
無かったと思うので、 GBA に限った動作だけを考えれば
u32 での置き換えで問題ないと言える。
477名前は開発中のものです。
垢版 |
2006/02/26(日) 00:08:14ID:WfB5cmW7
関係ないけど
GBAって電源切ったとき画面の色が黒でなく白なのはなんでだろう?
2006/02/26(日) 00:10:13ID:vz2qCRmn
白黒液晶ってのは黒色の文字を表示するものだから背景が黒かったらどうしようもないと
ここまで書いてGBAが白黒ではないという事実を思い出した
2006/02/26(日) 07:47:46ID:e+6sQVje
>>381 ノベル制作ツール「のべ〜る」で
VisualBoyAdvanceでプログラムスタート直後に音割れする現象の対策

*TOP:
#play_wav 1 music0.bin
#page
■セロ弾きのゴーシュ;
ゴーシュは町の活動写真館でセロを弾く係りでした。#w ;
けれどもあんまり上手でないと評判でした。#w ;
……

スクリプト開始のしょっぱなに何より先に#play_wavし、
直後に#pageします。これでなぜか音割れ現象が発生しなくなります。
なぜこれでうまくいくのかはよく分かりません。
ちなみに実機やその他のエミュでは試していません。
もしかしたら割り込み内でサウンドの処理より画像の処理を
先にやってるのかなとか思ったり・・見当ハズレなら作者さまスマソ。

これで使える。ヤター!
480479
垢版 |
2006/02/26(日) 07:53:54ID:e+6sQVje
のべ〜るは>>380
でした。失礼。
481466
垢版 |
2006/02/26(日) 15:39:57ID:UpVKMws2
構造体のキャストで質問したものです。
とりあえず、みなさんのおかげで
スプライト制御が一段落したんで
経過をご報告します。
ttp://2ch-library.com/uploader/src/up_2121.zip
2006/02/27(月) 22:06:09ID:KqQE3G30
くだ質で大変申し訳ないのですが、
C++でGBAのプログラミングはできないのでしょうか?
様々なサイトをググってみたのですが、すべてCでの開発で
C++を扱っているサイトを全く見かけません。

よろしければご教授をお願いします。
2006/02/27(月) 22:45:37ID:NtZAdaLq
>>482 gcc なんだから、できるよ。
2006/02/27(月) 23:07:51ID:yy1S2zAQ
>>482
つ Tennodai Bunko
485482
垢版 |
2006/02/28(火) 00:35:45ID:jBhKnEbd
>>484氏に紹介いただいたサイトを見る限り、DevkitAdvanceで普通にできそうですね。
早速試してみようと思います。

どうもありがとうございました。
2006/02/28(火) 09:22:37ID:1wwrrnAa
GBAプログラミング研究所のBMP2RGB.exeで256色の出力のとき、
255番のパレットを指定したドットが0x00になり、
255番のパレット自体も0x0000になって出力されるんだけど
何か意味があるのでしょうか。
2006/02/28(火) 13:47:49ID:ykuetkSe
確証は無いけど透明色じゃないの?
488名前は開発中のものです。
垢版 |
2006/03/01(水) 17:29:46ID:CwoNSWML
ソースレベルデバッグをしたいんですが
MAPPY VMとVHAM&DevkitAdvanceの組み合わせの場合
どのようにすればよいのでしょうか?
また、NO$GBAとMAPPY VMだとどの程度違いますか?
2006/03/02(木) 21:30:54ID:yUNPC8aZ
Insight + VBA(devel版) で*.elf読ませる方が楽っぽくね?
2006/03/02(木) 22:48:33ID:LnIoHKvJ
arm-agb-elf-insightつかってデバッグするときにVisualBoyAdvanceの画面の状態を
確認しながらデバッグするにはどうしたらいいのですか?

File-TargetSettingからConnection-TargetをSimulatar選んでからOptionをVBAの
GDB接続待ちPortの数字にあわせればいいのですか?

InsightデバッガからRun-ConnectTargetはSucessfully connectedってでるから
成功したのかな?
でも、VBA側の接続待ち状態ダイアログが消えないから違うんだろうなぁ
2006/03/02(木) 23:52:12ID:fFp03F4Q
>>490
漏れの環境ではVBA-SDLでしかInsightと接続できないorz
2006/03/04(土) 11:46:20ID:m5qLcxRB
ところでGBAゲームでセーブデータってどうやって作るんですが?
研究所にはあったみたいだけど落ちてて見れない・・・
2006/03/04(土) 13:52:52ID:x3hAFwv9
>>492
VBAでGBAファイル起動
494名前は開発中のものです。
垢版 |
2006/03/04(土) 14:06:07ID:KUpila9P
>>455
このサンプルでDirectSoundの再生方法を試しているんですが
サウンド再生関数を1回目に実行した際には音がならず
2回目の実行で音がなります。
これ以外のDirectSoundのサンプルでも同様の現象が起きます。
455のサンプルに関してはソースをまんまでコンパイルしても
同様の現象になります。
付属のロムデータでは正しく動作しているようですが
何がいけないかわかりますか?
495名前は開発中のものです。
垢版 |
2006/03/04(土) 17:16:26ID:KUpila9P
やっとこさゲームらしくなってきたんですけど
サウンドがなるとめっさ重いんですよね。
GBAってこんなもんなんでしょうか?
それともプログラムがヘボイだけ?
ttp://2ch-library.com/uploader/src/up_2173.zip
2006/03/04(土) 17:18:01ID:vi0lIxtr
AGBがまともにサウンドを鳴らせないほど非力なのは仕様です
497名前は開発中のものです。
垢版 |
2006/03/04(土) 17:34:40ID:KUpila9P
まじですか!?
じゃあ、GB互換音源を使うしかないんですね。
研究所が消滅してコンバーターの入手も難しいし
こまったもんだ…。
498492
垢版 |
2006/03/04(土) 21:18:52ID:m5qLcxRB
>>493
いや、そういう意味じゃなくて、
自作したゲームにセーブデータを作らせようと思ったらどうすればいいんですか?
2006/03/04(土) 21:53:58ID:Msh9zdwX
>494
キーを入力しないと鳴らないんです。
main.cをコレで鳴るんじゃない?
mu_wok = 0;// 再生の直前に++のため、0からの値になります。
se_wok = 0;
PlayMusic(mu_wok,PLAY_LOOP_ON); //※追加
while(1)
{

>497
4つもの機能のちがう音源を制御するのが重そう。
ゲーム部分を軽くすることは出来ないでしょうか…
2006/03/04(土) 22:08:24ID:Msh9zdwX
GBAプログラミング研究所って結局どうなりました?
どこかへ移転したとか…
日本のGBA開発に欠かせないサイトだったし、あれほどみんなが
利用していたのに突如閉鎖というのは有り得ない。
2006/03/04(土) 22:30:48ID:ega3649d
>>498
SRAM(0x0E000000〜)に数値書き込めばいい
2006/03/05(日) 10:53:06ID:bBYTbtx/
>>500
管理人が捕まったとか
2006/03/05(日) 11:16:39ID:JLfn0Pan
>>502
iswebからアマゾンの広告かなんかに警告出されたとかいうこと書いてなかったっけ?
それ放置してたら消されたとか?
2006/03/05(日) 16:30:00ID:vg84cSdA
>>503
怒られたので消しました、って更新履歴にあったような気が?
今となっては確認が難しいが。
2006/03/05(日) 22:27:41ID:aIloybH9
”捕まった”とか言うとデマに発展しそうな気がしてイヤンな感じ

広告掲載の方法についてサーバーの提供元から警告が来たので広告を消した、
というような更新が最後だった希ガス

確かにGBAの方は更新がほぼ止ってたような気がしないでもないが
DS用のページも作ってたみたいだし(DSの方はやってないのでよく知らないが)
更新意欲がなくなってそのままフェードアウトした感じではないのだが・・・
2006/03/05(日) 22:32:48ID:ZGr9k1wh
DSの方の掲示板は業者スパムだらけだったな
507名前は開発中のものです。
垢版 |
2006/03/07(火) 00:19:36ID:2maRPTXR
ソニックザヘッジホッグやロックマンとかの横スクロールアクションで
地形、足場の当たり判定をどのように持つかについて質問なんですが

素人考えだと
@タイルごとに当たり判定の属性を持つ。
A当たり判定のある背景だけを一つのBGに分けて
 背景色以外の部分に当たり判定を持つ。
だと思うのですが

@だとタイル単位でしか扱えないため斜めの坂などの複雑な地形を作れません。
Aだと坂とかも表現できるとおもいます。

でも、ロックマンゼロとかのマップデータをVBAで確認してみると
当たり判定がある部分と無い部分の背景が一枚のBGに描かれています。
この場合、どのように当たり判定を持っているのでしょうか?

作成するゲームによって当たり判定の持ち方は変わってくると思いますが
上記のようなゲームを作る場合はどのように当たり判定を持つのが一般的でしょうか?
参考になるサイトとかあれば教えてもらえないでしょうか?
2006/03/07(火) 01:50:52ID:TN1OAFRk
>>480
つ ttp://gamdev.org/up/img/4889.zip
2006/03/07(火) 07:32:50ID:P11agiDo
>>507
当たり判定だけのマップを作る
そのマップが視覚的に見えてる必要は無い
2006/03/07(火) 07:35:16ID:jNiGJUSI
>>507
BGにとらわれずに、マップのパラメータを配列の変数として持てばいいんじゃね?
床と傾斜の違いも同じく。
2006/03/07(火) 22:33:51ID:GCKxwI5B
>>507のAは草の上を歩く場合、困ったことに…葉っぱ一枚の上にも乗っかってしまう。
>>509 510のやり方をになると想像。チップごとに当たり判定がある@の方法。
チップごとに次のような判定をする。

0…当たり判定無し
 □□□□
 □□□□
 □□□□
 □□□□
@…当たり判定あり。
 ■■■■
 ■■■■
 ■■■■
 ■■■■
A…当たり判定ありで次のような判定をする
 ■□□□
 ■■□□
 ■■■□
 ■■■■
B…当たり判定ありで次のような判定をする。
 □□□■
 □□■■
 □■■■
 ■■■■
白い□の部分は当たり判定が無い。背景チップ番号を取得して0〜Bの場合に
分けて当たり判定。当たり判定の種類をもっと増やすこともできる。
これでマリオ風の坂道をなだらかに歩いて降りる表現もできるようになる。
チップ内の当たり判定だけど、上は4x4マスにしたけど、8x8ドットで
判定するなら8x8マスでの当たった/当たらない判定になる。
やったことないので想像です、スマソ。
2006/03/07(火) 22:38:25ID:GCKxwI5B
>508
乙です。ありがたく使わせていただきます。
2006/03/10(金) 16:21:11ID:/vUYzsUw
インターネットアーカイブがzipとかも保存してればなぁ・・・
2006/03/10(金) 17:28:14ID:2iPTfRgc
つ ttp://www.liarsoft.org/diary/
2006/03/11(土) 03:21:32ID:wvglnkMZ
使用に堪えるデバッガ付きエミュってどれでしょう?
CowBiteとMappy Virtual Machineは中々いいんですが
前者は使いづらく、後者はエミュとして弱い
516名前は開発中のものです。
垢版 |
2006/03/12(日) 22:58:52ID:oHXV1jml
タイルモードで512*512のBGを扱う際、
メモリ上の配列が256*256単位で左上→右上→左下→右下となっているのは
仕様ですか?
2006/03/12(日) 23:37:14ID:Yfw9wRAT
仕様です
518516
垢版 |
2006/03/13(月) 01:03:53ID:OoJGMs+j
>>517
レスどうもです。

なぜそんなことを聞いたかというと
市販ソフトのBGを見ると512*512でやっているのが多いんですが
なぜなのかなと思ったんですよ。
512*512にしろ256*256にしろスクロール部分を書き換えなきゃ
いけないのは一緒だし、だったら256*256でやったほうが
メモリ配列のことなんか考えなくていいし
VRAMの使用量もすくないじゃないですか。
なんでなんでしょう?
2006/03/13(月) 06:13:07ID:CqXZ+TIn
>>516
タイルの配列は、2Kごとに区切られているような扱いをしてる模様。
Webでのサンプルは256x256はかりなので以外に気付かない罠。

>>518
256だと横幅が16ピクセルしか余裕がないからそれ以上のスクロール量が発生した時の案パイだと思われ。
520任天堂本社より警告
垢版 |
2006/03/21(火) 20:45:17ID:5b78pgIg
任天堂本社情報通達部から本スレッドをご利用の皆様に警告します。
いかなる場合においても、ゲーム機本体および周辺機器、ソフトの内容を
改変する事は違法であり、個人使用もその限りではありません。
日本条例により罰せられますので早急におやめ下さい。
今回は警告という事で免除しますが、後日2ちゃんねる管理人に許諾を得て
なんらかの処分を決定させていただきますのでご了承ください。
法的手段に踏み切る事も視野に入れて検討中です。
アクセス解析等によりご自宅にお邪魔させていただく場合があります。
会社・学校・友人・親・親戚への連絡を行う場合があります。
2006/03/21(火) 22:14:46ID:QjFV0BDn
>>520
なんだこれ?
気になって取説とパッケージ見直してみたけど、そんなこと書いてないね。
悪質ないたずらだな。
2006/03/22(水) 08:47:24ID:a/VO7x3i
どうせ警告だすならマジコンスレでやってくれよ頼むから(w
2006/03/22(水) 08:58:11ID:YwZnSigd
>>520
ダウト
情報通達部なんて部署ないぞ
やるとしても法務部だろ
2006/03/22(水) 10:09:51ID:LO+kTHWz
"任天堂本社情報通達部"に該当するページが見つかりませんでした。
"任天堂情報通達部"に該当するページが見つかりませんでした。
"情報通達部"に該当するページが見つかりませんでした。


>会社・学校・友人・親・親戚への連絡を行う場合があります。
これ結構発想が古いよな
おっさんかな?とも思ったけど
情報通達部とかネーミングが安直杉て大人の考えた文章にも見えない
2006/03/22(水) 15:43:49ID:xfpFN+qP
春だから変なのが出てきたな
2006/03/22(水) 22:30:28ID:GCp07UCj
>>524
つーか、ワンクリック詐欺のメールによくある文面じゃないか?
527名前は開発中のものです。
垢版 |
2006/03/23(木) 06:40:59ID:yzl+UCcc
GBAのソフト作りたいんですが、既にGBAプログラミング研究所は閉鎖?
っぽいですね。
PC用とiアプリくらいしか作ったことなくて
メモリを書き込むとかピンとこないんですが
私でもできますかね?
一応調べてはいるんですが、なかなか良いサイトもなくて。
みなさんはどうやって調べてますか〜?
2006/03/23(木) 08:38:46ID:hqVbe+bQ
>>527
つ Google
529名前は開発中のものです。
垢版 |
2006/03/23(木) 08:44:08ID:yzl+UCcc
527です。
コンパイルくらいは出来るようにと思い、挑戦してみました。
devkitadvを使っています。
パスは通せていると思うのですが、コンパイルしようとすると

'gcc' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。

と言われます。

明らかに失敗しているんですが、理由がわかりません。
私がディレクトリ構造が解っていないからでしょうか?
今はc:\devkitadv\{include,bin,arm-agb-elf,lib}という感じになっています。
devkitadv内のディレクトリの中はイジってません。
2006/03/23(木) 09:06:24ID:dQR3ranb
>>529
なんでその状態で「パスが通せている」なんて思うんだ?
531名前は開発中のものです。
垢版 |
2006/03/23(木) 10:01:02ID: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として、出力されるであろう場所に
先にファイルを保存してからコンパイルしてみたらファイルが消えたので
アクセスしてはいるんですが…。

何度もすいません(=;ェ;=)
2006/03/23(木) 10:20:27ID:4oHn/BWJ
>コンパイルなんですが、
>int main(){}
>に warning: no newline at end of file って返してきます。
>これってドコガおかしいのでしょう?

えっと、これは多分
int main(){}[EOF]
になってるからじゃないかな?
int main(){}[改行]
[EOF]
にすればいいんじゃねーの?
2006/03/23(木) 10:59:35ID:4oHn/BWJ
あと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
するだけだから・・・
2006/03/23(木) 11:11:31ID:4oHn/BWJ
リンク用スクリプトはこれかな?
(インストールディレクトリ)/ctrls/lnkscripts
2006/03/23(木) 12:44:58ID:sIg8RrCZ
devkitproならインストーラあるからそっちのほうが楽じゃね?
サンプルもついてるし
2006/03/23(木) 14:34:43ID:T8UKKPq0
スーパーカードSDってミクロでも使えるのか?
ミクロで使いたいんで買おうかどうか迷ってるんだが。
2006/03/23(木) 15:25:44ID:o1aF/CaP
>>536
http://game10.2ch.net/test/read.cgi/handygame/1141201889/
538sage
垢版 |
2006/03/24(金) 02:14:18ID:ImOqKFUg
529です。
プログラム中の改行の問題は>>532の通りでした。ありがとうございます(><

crt0.oの問題についてですが、こちらは改善しませんorz
crt0.oというファイルがディレクトリ内にあるのでしょうか?
私はファイル検索にひっかかりませんでした。

>>533
arm-agb-elf-gccでコンパイルしても結果は同じでした。
やはりcrt0.oというファイルがないとダメなんですかねぇ(;´瓜`)
zip展開してディレクトリまとめただけなんですけどねぇ(´・ω・`)
539sage
垢版 |
2006/03/24(金) 03:24:57ID:ImOqKFUg
名前: sage
E-mail:
内容:
>>538下がって無かった(´・ェ・`)
なんとか、自己解決しましてgbaファイルの出力までこぎつけました。
cannot find lc とか言われましたがgoogleの文面でなんとかできました。

それでコンパイルに関しては一応できたのでいいんですがディレクトリ構造について質問です。
コンパイルまでにいくつかファイルを移動しなければなりませんでした。
今は
下記のようになっているんですが、いくつか同じディレクトリ名のものが
ありますがこれは正常なのでしょうか?
これは同一ディレクトリとしてまとまっていなければいけないのでしょうか?

これからまた問題が起こる様だと嫌なので(゚Д゚;)
全然GBA開発っぽい質問じゃないですね、申し訳ないorz

2006/03/24(金) 03:25:32ID:ImOqKFUg
☆参照
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
2006/03/24(金) 09:41:39ID:VA7n455u
せっかくなので自分の環境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
2006/03/24(金) 09:44:01ID:VA7n455u
失敗したのでもう一度
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
2006/03/25(土) 02:45:10ID:O8/pDA5A
ん〜、結構ちがうっぽいw
2006/03/26(日) 17:31:57ID:7U+q1LYU
>>527
devkitadvにこだわらないなら、devkitproってのもあるぞ。
つttp://sourceforge.net/projects/devkitpro/
こっちはWindows用のインストーラもあって導入が楽だぞ。

横槍質問でアレなんだけど、ワイアレスアダプタの無線通信を受けたり、
送ったりしたいんだけど、規格とかの情報が載ってるサイトってありますか?
漏れの心の中にはありませんでした。
2006/03/26(日) 20:02:36ID:M0ZU0si1
>>544
ttp://forum.gbadev.org/viewtopic.php?t=5360&highlight=wireless+adapter
ttp://forum.gbadev.org/viewtopic.php?t=5839&highlight=wireless+adapter
ttp://vbalink.wz.cz/
2006/03/28(火) 21:13:27ID:Fmy3qIDJ
VHAMは人気ないのね・・・
GUIだから使いやすいのに
2006/03/28(火) 22:02:28ID:GzxMWvBO
devkitproにもIDE環境付いてないか?
2006/03/28(火) 23:16:11ID:14VFmU6o
>>547
今のはProgrammer's Notepadが入っているのか
至れり尽くせりじゃん
549名前は開発中のものです。
垢版 |
2006/03/28(火) 23:20:56ID:2Tli5+F3
保守シツツ質問〜。|-`).。oO(sage進行だったかしら…)

え〜、いわゆる背景のような一枚絵を表示しようとして24bitカラーを16bit
長で変換するのはできたんですが。

GBAに組み込めません。

const unsigned short bg[]={0x48f3,0x48f3,0x48f30x,48f3……}

のような配列をVRAM転送しようとしたんですが、elfファイルへの変換
で詰まってしまいました。

ん〜、これだけじゃ解らないと思うのでどこがわからないかも教えて頂ければ
その都度答えます。

どうぞよろしく<(_ _)>
2006/03/28(火) 23:32:05ID:UREbAOXw
elfファイルへの変換って*.oファイル群をくっつける段階ってこと?
>arm-agb-elf-gcc -o Hoge.elf main.o AAA.o … リンカ用オプション群…
この段階でエラーが出るって事でしょうか?

2006/03/29(水) 02:04:54ID:WkICK/I5
>>549
ヴァカには無理だから諦めろ
2006/03/29(水) 10:03:26ID:r+qS9JpC
>>549
bin2oとかいうものをさがしなはれ
■ このスレッドは過去ログ倉庫に格納されています