[過去ログ] ゲームボーイアドバンス(GBA)非公式開発 Part2 (1002レス)
1-

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
716: 2008/03/12(水)17:36 ID:Us8flhJs(1/2) AAS
ここでGBの事聞いても大丈夫かな?
バンク切り替えの事について調べてるんですけど
MBC2のバンク切り替えについてすずめさんところのウェブアーカイブと
お受験に出るゲームボーイのページを調べてみたんですけどMBC2に関する情報が載っていなくて…
恐らく0x2000番地への書き込みだと思うんですけどどこか正確な情報がある場所ってないでしょうか?
それと現在自分がどのバンクを操作しているのか判別する方法があるかないかご存知の方いらっしゃいますか?
もしかしてバンクの位置情報はどこにも展開されず完全に自分で管理する必要があるんでしょうか?
デバッグの際にバンク情報がないと調べるのが大変で…
717: 2008/03/12(水)17:53 ID:Jo1vXsg5(1) AAS
スレ違い
外部リンク[txt]:www.geocities.co.jp
外部リンク[html]:fms.komkon.org
エミュレータのソースも併せて読むといい
718: 2008/03/12(水)18:12 ID:Us8flhJs(2/2) AAS
すみません該当するようなスレが無かった物で。
挙げて頂いた上記サイト等も参考にしてみます。
エミュのソースをみれば確かに内部動作はカンペキに把握できますね。
GBのエミュも大分こなれてる様なのでその辺も参考にしてみます。
ご親切にどうもありがとうございました。スレ汚し失礼しました。
719: 2008/03/13(木)15:11 ID:d99ZfhW7(1) AAS
>>712-715
GBA用のFreeのMODライブラリでも使って組み込めばそれで終わり。
問題は、MODを作れるかどうかだがw
720
(2): 2008/03/16(日)06:19 ID:RXPkoV7l(1) AAS
devkitProを使ってGBAでゲームを作っているのですが、
const int hoge1 = 1 ;
const int hoge2 = hoge1 ;
のようにすると、「initializer element is not constant」と出てしまいます。
VC++だと普通にコンパイルが成功しました。
Cではこういう事は出来ないのでしょうか?
721
(1): 2008/03/16(日)12:05 ID:0SBCpDyI(1/2) AAS
>>720
スレ違いだが回答。

C言語とC++のconst修飾子の動作の違いのために起きる問題。

const int hoge1 = 1 ;
がC言語では変数として定義されるのに対し、C++では定数として定義される。
このため、
const int hoge2 = hoge1 ;
がエラーとなる(初期値つき変数に定数以外を指定したから)。

結論:C++でなくC言語で書くなら、定数はマクロやenumで定義しましょう。

余談だが、const修飾子には他にも違いがあり、グローバル変数をconst修飾した場合に、
省2
722
(1): 2008/03/16(日)12:18 ID:0SBCpDyI(2/2) AAS
>>721
スレ違うというか板違いでしたね。
あと、一応補足。

当たり前だけどC++でグローバルな
const int hoge0 = 1;
static const int hoge1 = 1;
extern const int hoge2 = 1;

を定義すると、hoge0とhoge1は定数、hoge2は変数となる。
723
(1): 2008/03/16(日)15:31 ID:3fassPpA(1) AAS
>>722
変数と定数と、どう言い分けてるの?
挙げられた例だと全部定数式として使えるはずだよ。
724
(1): 2008/03/17(月)02:10 ID:xMktvNUH(1) AAS
>>723
スマン。内容に不足があった。

×hoge2は変数となる
○hoge2は定数であると同時に外部リンケージの変数も定義される
725: 720 2008/03/17(月)03:34 ID:C1jKoyjP(1) AAS
なるほど、そもそもCとC++じゃconstの仕様が違うのですね。
良く分かりました。
板違いの質問に答えて頂き、ありがとうございました。
726: 2008/03/17(月)10:01 ID:7F2zgz+N(1) AAS
>>724
やっぱり変数と定数の意味に無理があるだろ。どこで
そんなネタ仕込まれたんだ?

722 の3つは全部 const int 型変数の定義。
const int 型変数が定数式で初期化されていれば、
それもまた定数式となる。

リンケージはそれぞれ決まっているし、外部リンケージ
じゃなければ初期化が必須だったりするけど、それらは
定数式として使えるかどうかとは別の話。
727
(1): 2008/03/24(月)05:51 ID:UCF17QKn(1) AAS
GB音源(例えばチャンネル1)でエンベロープをハードウェアでは無く自力でやりたい場合、
SOUND1CNT_Hのbit12-15をいじって、
SOUND1CNT_Xのbit15を立てて初期化するしかないのでしょうか?
これだと発音中の波形の状態も最初に戻ってしまうらしく、
音が自然にならないので困っています。
何か良い方法をご存知の方はいらっしゃらないでしょうか?
728
(1): 2008/03/24(月)08:16 ID:bI8PsKud(1/3) AAS
その方法しか無いがチャンネル1と2は必ず発音がリセットされるので実質使えない
チャンネル3はリセットされないからソフト制御可能
729: 2008/03/24(月)13:22 ID:o6pWhQxB(1/3) AAS
GBAのスペックに
サウンド:アナログ(パルス波2ch+波形メモリ1ch+ノイズ1chの音源、従来機と同様)+デジタル(PCM)2ch
ってあるけどこれと同時発音数は別の話だよね
もっと沢山鳴らしてるようなメガデモはあるし、実際は何音までなんでしょ
730: 2008/03/24(月)16:23 ID:bI8PsKud(2/3) AAS
それで全部だけど?
731
(1): 2008/03/24(月)18:13 ID:o6pWhQxB(2/3) AAS
では同じトラック三つコピペして全部違うPCMにしても
音切れがないのはどういう仕組み?
732: 2008/03/24(月)18:22 ID:+9oLoWUN(1/2) AAS
>>731
複数の音をリアルタイムに合成すればいいんじゃないの?
733: 2008/03/24(月)18:22 ID:bI8PsKud(3/3) AAS
自分でPCMと書いてるじゃん・・・
734
(1): 2008/03/24(月)18:32 ID:o6pWhQxB(3/3) AAS
デジタル(PCM)2chって書いてあるけど
合成すればいいってんなら何音まで?
735: 2008/03/24(月)21:01 ID:+9oLoWUN(2/2) AAS
>>734
好きなだけ重ねればいいんじゃないかな。
あとは処理時間を見て4音や8音などに制限していくとか。
「GBA PCM 合成」でググってみるといいかもよ。
1-
あと 267 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.053s