GBAで何やら作ってみようという人の為のスレ。ライセンス不要。
初心者歓迎。質問歓迎。英語苦手な人歓迎。冷やかし歓迎。ネカマ歓迎。
資料、リンク等
http://www.devrs.com/gba/
http://www.gbadev.org/
http://www.vsync.org/agb/
http://nocash.emubase.de/gbatek.htm
http://www.bomber.co.jp/chaola/docs/ARM/
開発環境
DevkitAdvance http://devkitadv.sourceforge.net/index.html
DevkitARM http://www.devkit.tk/
VisualHAM http://visualham.console-dev.de/
DragonBasic http://jm-basic.com/dragon/index.php
GBA Wiki
http://cgi.f26.aaacafe.ne.jp/~gbawiki/pukiwiki/pukiwiki.php
【GBA】Linuxから目覚めるぼくらのゲームボーイ!
http://pc5.2ch.net/test/read.cgi/linux/1070983168/
ゲームボーイアドバンス(GBA)開発@ゲ製板(避難所)
http://bbs.gamdev.org/test/read.cgi/gamedev/1055111303/
前スレ
http://pc5.2ch.net/test/read.cgi/gamedev/1013750899/
探検
ゲームボーイアドバンス(GBA)非公式開発 Part2
■ このスレッドは過去ログ倉庫に格納されています
04/10/30 15:50:05ID:XmInH8YR
407名前は開発中のものです。
2006/02/13(月) 14:40:33ID:eECtxr3h 次のゲームの画面を再現するにはどの画面モードで
各要素をどの画像で再現すればいいでしょうか?
1)SFCのころのドラクエ風戦闘画面
要素:
背景画像
インターフェース
文字
モンスター
攻撃&魔法エフェクト
僕の予想では
画面モードはモード0。
背景、インターフェースはタイル。
エフェクトはタイル?(全画面アニメがあるため)
モンスターはスプライト(ボスキャラ等はタイル+スプライト)
文字はスプライト(タイルのBG面が足りないため)
つぎのレスにつづく
各要素をどの画像で再現すればいいでしょうか?
1)SFCのころのドラクエ風戦闘画面
要素:
背景画像
インターフェース
文字
モンスター
攻撃&魔法エフェクト
僕の予想では
画面モードはモード0。
背景、インターフェースはタイル。
エフェクトはタイル?(全画面アニメがあるため)
モンスターはスプライト(ボスキャラ等はタイル+スプライト)
文字はスプライト(タイルのBG面が足りないため)
つぎのレスにつづく
408名前は開発中のものです。
2006/02/13(月) 14:41:59ID:eECtxr3h2)SFCのころのFF風戦闘画面
要素:
背景画像
インターフェース
文字
プレイヤーキャラクター
モンスター
攻撃&魔法エフェクト
僕の予想では
画面モードはモード3。
背景、インターフェース、モンスターはビットマップ。
プレイヤーキャラクター、エフェクト、文字はスプライト。
タイルモードかなと思ったんですがボスキャラが消えるときとか
キャラ画像の奇数ラインと偶数ラインがずれて消えるときとかあるので
あれをタイルモードで再現する方法がわかりませんでした。
あってますでしょうか?アドバイス御願いします。
409名前は開発中のものです。
2006/02/13(月) 16:11:54ID:2pbmjWEa 主人公、モンスター、効果はスプライト。
BGの仕様を決めるのは難しい。
どういう演出をするのかによって変わる。
背景を拡大縮小する演出をするならモード12345。
しないなら絵がたくさん登録できるモード0。
表示する情報が少なく簡単にレイアウトできるなら0123のキャラクターモード、
多色を使って、8x8ドットに縛られたくないならモード345。
でもモード345は情報量が多く重くなる。ダブルバッファを使用するなら
モード4か5しかない
たしかBGが容量の大きいモードのとき、スプライトの登録数が圧迫されるんじゃ
なかったっけ。
全体のバランスを取るには、だいたいの仕様を決めて
サンプルを作って動かしてみるしかないんじゃない?
FFも3とか4とか決めてそれを目標にすれば、イメージも明確になるのじゃいか。
BGの仕様を決めるのは難しい。
どういう演出をするのかによって変わる。
背景を拡大縮小する演出をするならモード12345。
しないなら絵がたくさん登録できるモード0。
表示する情報が少なく簡単にレイアウトできるなら0123のキャラクターモード、
多色を使って、8x8ドットに縛られたくないならモード345。
でもモード345は情報量が多く重くなる。ダブルバッファを使用するなら
モード4か5しかない
たしかBGが容量の大きいモードのとき、スプライトの登録数が圧迫されるんじゃ
なかったっけ。
全体のバランスを取るには、だいたいの仕様を決めて
サンプルを作って動かしてみるしかないんじゃない?
FFも3とか4とか決めてそれを目標にすれば、イメージも明確になるのじゃいか。
410名前は開発中のものです。
2006/02/13(月) 16:17:41ID:2pbmjWEa そういえば文字の表示が大きな悩み。
日本語表示するのだろうから、VRAMにすべての文字を登録するのは
不可能。割り込み中に表示画面に必要な分の文字を転送するしかない。
あるいはダブルバッファリングできるモードを使う?
ということはビットマップモード4か5。キャラのモードの時は
意識して上の領域はA、そのとき見えない領域B
としてダブルバッファリンク゛することもできるけど。
GBA研究所の日本語表示サンプルを改造してドラクエ戦闘画面の
インターフェースみたいのをまず作ってみるべき。
ワールドマップとかはそのあとでもいい。まず日本語表示が難関。
日本語表示するのだろうから、VRAMにすべての文字を登録するのは
不可能。割り込み中に表示画面に必要な分の文字を転送するしかない。
あるいはダブルバッファリングできるモードを使う?
ということはビットマップモード4か5。キャラのモードの時は
意識して上の領域はA、そのとき見えない領域B
としてダブルバッファリンク゛することもできるけど。
GBA研究所の日本語表示サンプルを改造してドラクエ戦闘画面の
インターフェースみたいのをまず作ってみるべき。
ワールドマップとかはそのあとでもいい。まず日本語表示が難関。
411名前は開発中のものです。
2006/02/13(月) 17:42:11ID:eECtxr3h GBA研究所は落ちてるんですよね…。
マップエディタが入手できず大弱りです。
マップエディタが入手できず大弱りです。
412名前は開発中のものです。
2006/02/13(月) 19:45:25ID:VY0KRAb6413407
2006/02/13(月) 19:55:05ID:eECtxr3h みなさん、アドバイス有難う御座います。
これでとりあえずの実装は出来そうです。
魔法別で悩んだらまた質問しますので
厳しくもやさしく教えてください。。。
これでとりあえずの実装は出来そうです。
魔法別で悩んだらまた質問しますので
厳しくもやさしく教えてください。。。
414名前は開発中のものです。
2006/02/13(月) 20:19:49ID:VY0KRAb6 俺のMAPエディタをうpしてやろうかと思ったけど
みなさんで一括りにされたからやめるか
みなさんで一括りにされたからやめるか
415名前は開発中のものです。
2006/02/13(月) 20:34:51ID:NZEWyj/P 心が狭いのね
狭くなくっちゃ、心も車も
狭くなくっちゃ、心も車も
416名前は開発中のものです。
2006/02/13(月) 20:59:44ID:pe7jKuDW 文字表示の実装が全く分からないのですが、
分かりやすいサイトはないですか?
分かりやすいサイトはないですか?
417407
2006/02/13(月) 23:11:29ID:eECtxr3h 414さまアップお願い致します。
418名前は開発中のものです。
2006/02/13(月) 23:53:36ID:VY0KRAb6 >>416
タイルモードのときはタイルを順番に横に並べて
並べたタイルに文字データを転送するだけ
ビットマップモードのときはVRAMに直接書けばいいだけなので
PCでやるのとやり方は一緒
どっちにしても文字データは自分で用意しなくちゃ駄目
タイルモードのときはタイルを順番に横に並べて
並べたタイルに文字データを転送するだけ
ビットマップモードのときはVRAMに直接書けばいいだけなので
PCでやるのとやり方は一緒
どっちにしても文字データは自分で用意しなくちゃ駄目
419名前は開発中のものです。
2006/02/14(火) 00:03:36ID:Mc0x+HZh >>406
wav2gbaはv1.01だと、バイナリの先頭に
2byte: type
2byte: stat
4byte: freq
4byte: loop
4byte: size ←これがデータ長
なヘッダが付いてるので気を付けれ。
wav2gbaはv1.01だと、バイナリの先頭に
2byte: type
2byte: stat
4byte: freq
4byte: loop
4byte: size ←これがデータ長
なヘッダが付いてるので気を付けれ。
420名前は開発中のものです。
2006/02/14(火) 00:06:53ID:x7UBz7YU421名前は開発中のものです。
2006/02/14(火) 00:34:47ID:WgJRobF9422名前は開発中のものです。
2006/02/14(火) 00:40:40ID:945ce4fT 研究所のやつじゃなくてもいいので
使い勝手のいいマップエディタしりませんか?
ドラクエ風のワールドマップを作りたいのですが。。。。
使い勝手のいいマップエディタしりませんか?
ドラクエ風のワールドマップを作りたいのですが。。。。
423名前は開発中のものです。
2006/02/14(火) 00:51:24ID:kJMSUOot ttp://user.chem.tue.nl/jakvijn/downloads.htm
この辺とかは?
この辺とかは?
424名前は開発中のものです。
2006/02/14(火) 00:51:46ID:DPfKwksc sprintfって使えたっけ?devkitadv
自作snprintfで対応しちゃった
#あと文字が書いてあるbitmap背景の2本立て
自作snprintfで対応しちゃった
#あと文字が書いてあるbitmap背景の2本立て
425384
2006/02/14(火) 00:59:46ID:tYPhpHwC 俺もprintf関数もどき作りました。
全角の文字列を引数として受け取って、
その先頭のアドレスから、内容を4ビット(16進一桁、要するに文字コードの中の一桁)
ずつチェックしていき、最終的に文字コードとBGタイル番号をつき合わせて
BG一面に出力するようにしました
BGを一つ占領しちゃうんであまりよいやり方では無さそうですが
全角の文字列を引数として受け取って、
その先頭のアドレスから、内容を4ビット(16進一桁、要するに文字コードの中の一桁)
ずつチェックしていき、最終的に文字コードとBGタイル番号をつき合わせて
BG一面に出力するようにしました
BGを一つ占領しちゃうんであまりよいやり方では無さそうですが
426名前は開発中のものです。
2006/02/14(火) 01:49:16ID:WgJRobF9427名前は開発中のものです。
2006/02/14(火) 18:19:17ID: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個表示可能
最大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個表示可能
428名前は開発中のものです。
2006/02/14(火) 18:55:03ID:WgJRobF9 画像データ領域(VRAM)とキャラクター領域(OAM)は分離して考えろ
>>427の例で言うと
OAMには128個登録できても
VRAMには64種類の画像しか収まらない
逆に言うと64種類の画像を128個表示できるということ
>>427の例で言うと
OAMには128個登録できても
VRAMには64種類の画像しか収まらない
逆に言うと64種類の画像を128個表示できるということ
429429
2006/02/14(火) 19:29:47ID:KtOq4mfG なるほど、つまりVRAMにおさまりさえすれば
64*64の画像を128個表示することができると
いうことなんですね。
64*64の画像を128個表示することができると
いうことなんですね。
430424
2006/02/14(火) 21:44:12ID:oQP7vhex 自作snpritnf(snprintf_mini)です。良かったらどうぞ
http://49uper.com:8080/html/img-s/111753.lzh
http://49uper.com:8080/html/img-s/111753.lzh
431420
2006/02/15(水) 23:02:19ID:UMaLkZ5l ありがとうございます!
正直、よく分からないですが、参考にするか
もしくはそのまま使わせて頂きます!
正直、よく分からないですが、参考にするか
もしくはそのまま使わせて頂きます!
432名前は開発中のものです。
2006/02/16(木) 00:00:45ID:htR/zHvl コンパイル出来たけど何も表示しまへん。
コンパイル用バッチファイル
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
どこがいかんのでしょう
みたとこ画像データが無いようですが。
コンパイル用バッチファイル
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
どこがいかんのでしょう
みたとこ画像データが無いようですが。
433424
2006/02/16(木) 09:40:13ID:IJObToHy うん、文字画像データは入ってないよ
あくまでもおいらが作ったsnprintfの実装(snprintf_mini)だから文字列を作るだけです。
main.cはちゃんと作れているかどうか確認している単体テスト用のプログラム
なのでdevkitadvのgcc(arm-agb-elf-gcc)じゃなくて普通(?)のgccを使って
snprintf実装例を確認してね。
GUIなデバッガがあればどんな感じで処理してるか追っかけられるでしょ
#VCだとsnprintfが使えないかも。そのときはsprintfで代用して確認してね
作った文字列をVisualBoyAdvanceで表示するには文字列表示用の処理と文字データを
自分の環境用につくらないと出来ないです。
まず、putcみたいな1文字表示用の関数を作ってみてはどうでしょうか?
あくまでもおいらが作ったsnprintfの実装(snprintf_mini)だから文字列を作るだけです。
main.cはちゃんと作れているかどうか確認している単体テスト用のプログラム
なのでdevkitadvのgcc(arm-agb-elf-gcc)じゃなくて普通(?)のgccを使って
snprintf実装例を確認してね。
GUIなデバッガがあればどんな感じで処理してるか追っかけられるでしょ
#VCだとsnprintfが使えないかも。そのときはsprintfで代用して確認してね
作った文字列をVisualBoyAdvanceで表示するには文字列表示用の処理と文字データを
自分の環境用につくらないと出来ないです。
まず、putcみたいな1文字表示用の関数を作ってみてはどうでしょうか?
434名前は開発中のものです。
2006/02/16(木) 09:44:32ID:zo8+sFWC ◆◆,,,,_ /⌒;
/*' 3 `*ヽーっ /<ワンワン,ツウツウ,スリィスリィ,フォウフォウ
⊂二 。 ゚ ⌒_つ/ ガンガン ズンズン グイグイ 上昇
`、 ⌒_つ /
`'ー-‐'''''" /
/_/
///
. _____
. `ヽ ,」_ァ'"´
. f'て}. ̄ rY ト、 __
. | r个 √`>‐.k } f゙)ヾ>
}l r ''"`ァ'゙ ,ノ、ム'^'ァ'゙
人.ヒ,ィ゙ ァ弌__,,>'´゙ヽ
い, `'<, ,r'^ ,ノ
. }⌒'‐\ ,、 ゙'くョr.''"´
い弌-、 \ }. ゝ-、
. `'ー' ゙'ー‐--‐'⌒''''''゙
/*' 3 `*ヽーっ /<ワンワン,ツウツウ,スリィスリィ,フォウフォウ
⊂二 。 ゚ ⌒_つ/ ガンガン ズンズン グイグイ 上昇
`、 ⌒_つ /
`'ー-‐'''''" /
/_/
///
. _____
. `ヽ ,」_ァ'"´
. f'て}. ̄ rY ト、 __
. | r个 √`>‐.k } f゙)ヾ>
}l r ''"`ァ'゙ ,ノ、ム'^'ァ'゙
人.ヒ,ィ゙ ァ弌__,,>'´゙ヽ
い, `'<, ,r'^ ,ノ
. }⌒'‐\ ,、 ゙'くョr.''"´
い弌-、 \ }. ゝ-、
. `'ー' ゙'ー‐--‐'⌒''''''゙
435名前は開発中のものです。
2006/02/16(木) 18:36:32ID:kz0iIF7u436名前は開発中のものです。
2006/02/16(木) 20:06:45ID:M6PXBfNk437424
2006/02/16(木) 21:32:19ID:IJObToHy 確認用に作った文字表示用プログラムです
ttp://49uper.com:8080/html/img-s/112125.lzh
VCとVisualBoyAdvanceの両方で動作確認できるようにちょっと細工してます
このフォントデータは多分ライセンス違反になると思います。
#外見はラスタフォント6x13そのままです。
#文字を表示した状態のスクリーンショットBMPからデータを作りました・・・
ttp://49uper.com:8080/html/img-s/112125.lzh
VCとVisualBoyAdvanceの両方で動作確認できるようにちょっと細工してます
このフォントデータは多分ライセンス違反になると思います。
#外見はラスタフォント6x13そのままです。
#文字を表示した状態のスクリーンショットBMPからデータを作りました・・・
438名前は開発中のものです。
2006/02/16(木) 22:19:46ID:M6PXBfNk 拙作
ttp://gamdev.org/up/img/4680.png
ttp://gamdev.org/up/img/4680.png
439名前は開発中のものです。
2006/02/16(木) 22:21:45ID:kxrgDS8c440名前は開発中のものです。
2006/02/16(木) 22:53:00ID:Jk3f3/1N >>438
liarsoftさん?
liarsoftさん?
441424
2006/02/16(木) 23:55:24ID:IJObToHy へー、かっこいい
フリーのフォントって知らなかったけど調べてみたらいろいろあるんだな
とりあえず、FONTX形式にすればいいのだろうか?
フリーのフォントって知らなかったけど調べてみたらいろいろあるんだな
とりあえず、FONTX形式にすればいいのだろうか?
442432
2006/02/17(金) 16:40:32ID:x9jBkP1z サンプルありがとうございます。
私は420=431さんとは別人です、横入りすみません。
フリーのフォント、元GBA研究所のサンプルにあったものを
流用しようと・・問題有りますでしょうか
完全フリーなものが欲しいのですけどそうなるとなかなか
ありませんよね。フリーソフトのみとかメールでの通知義務とか。
私は420=431さんとは別人です、横入りすみません。
フリーのフォント、元GBA研究所のサンプルにあったものを
流用しようと・・問題有りますでしょうか
完全フリーなものが欲しいのですけどそうなるとなかなか
ありませんよね。フリーソフトのみとかメールでの通知義務とか。
443名前は開発中のものです。
2006/02/17(金) 18:32:26ID:iAZtWxeh ttp://khdd.net/kanou/fonts/x11bdfs.html
444424
2006/02/18(土) 01:08:37ID:uRwRaCgY おお、サンクス
でもbdfフォーマットの仕様書はadobeの有料開発メンバじゃないと読めないのね・・・
で、探した結果、良さそうなページを発見
ttp://hp.vector.co.jp/authors/VA013241/font/bdf.html
あとは日本語文字コードか、やれやれ。
でもbdfフォーマットの仕様書はadobeの有料開発メンバじゃないと読めないのね・・・
で、探した結果、良さそうなページを発見
ttp://hp.vector.co.jp/authors/VA013241/font/bdf.html
あとは日本語文字コードか、やれやれ。
445名前は開発中のものです。
2006/02/18(土) 02:27:52ID:QKtp7HhO 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の算出式がよくわかりません。
単純にデータサイズというわけではなさそうですが。。。
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の算出式がよくわかりません。
単純にデータサイズというわけではなさそうですが。。。
446名前は開発中のものです。
2006/02/18(土) 03:41:17ID:4ZdB2i2h データサイズで合ってる
cascade from time 0になっているということは
timer 0が桁あふれしたときにtimer 1が1つ進むということ
timer 0が桁あふれしたとき同時に何が起こっているのか考えてみればそのうち分かる
頑張れ
cascade from time 0になっているということは
timer 0が桁あふれしたときにtimer 1が1つ進むということ
timer 0が桁あふれしたとき同時に何が起こっているのか考えてみればそのうち分かる
頑張れ
447名前は開発中のものです。
2006/02/18(土) 16:03:02ID:1rrcgcm5448名前は開発中のものです。
2006/02/18(土) 17:05:13ID:ZbScaNGm フリーの日本語ビットマップフォント一覧
ttp://kappa.allnet.ne.jp/kanou/fonts/x11bdfs.html
ttp://kappa.allnet.ne.jp/kanou/fonts/x11bdfs.html
449名前は開発中のものです。
2006/02/18(土) 18:51:03ID:iQRmZRdR 5つほど上に既に貼ってあるジャマイカ
450名前は開発中のものです。
2006/02/18(土) 21:15:59ID:yUcx3isO 研究所が未だに復活しない件。
猫でもみたいなTips集的な使い方をしていたので、他所を探すのが以外に大変。
猫でもみたいなTips集的な使い方をしていたので、他所を探すのが以外に大変。
451名前は開発中のものです。
2006/02/18(土) 22:05:41ID:q2PjLLP+ 儂はウェブアーカイブで拾ってきたよ。zipファイルは保存してないからサンプルは取れないけど。
ヘッダとソースは見られる。makefileが無いのが難点。
ヘッダとソースは見られる。makefileが無いのが難点。
452名前は開発中のものです。
2006/02/19(日) 01:10:26ID:prU8DMPB >>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
どうしても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
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
// (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
454名前は開発中のものです。
2006/02/19(日) 02:00:16ID:m3SmeD2S455名前は開発中のものです。
2006/02/19(日) 04:25:56ID:iq15VETn456名前は開発中のものです。
2006/02/19(日) 10:19:03ID:QSXlPkGt457名前は開発中のものです。
2006/02/19(日) 21:44:01ID:oTR8sHnf DarkFaderのMylibとかNylibとか入れてみようと思ってやってみたがダメだ…。
やり方が悪いのかサンプルmakeできなかった。
ライブラリ自体はすごそうだ。使ってる人いる?
やり方が悪いのかサンプルmakeできなかった。
ライブラリ自体はすごそうだ。使ってる人いる?
458名前は開発中のものです。
2006/02/20(月) 03:17:45ID:B+Dm9jGk NyLibは任天堂の純正ライブラリそのものだから使わないほうがいいぞ
MyLibはゴミ
MyLibはゴミ
459名前は開発中のものです。
2006/02/20(月) 21:23:56ID:bbMb17ur 1Dモードでスプライトの属性を指定します。
attr2(ゼロが最初)のキャラクタ番号(0-9ビットまで)に指定の番号をセットすると正しく表示されません。
2倍の値をセットすると正しく指定できました。
これってあってる? ゼロビット目がキャラクタ番号じゃないんじゃ、とか思います。
1Dのスプライトについて書かれているページとかありませんか?
attr2(ゼロが最初)のキャラクタ番号(0-9ビットまで)に指定の番号をセットすると正しく表示されません。
2倍の値をセットすると正しく指定できました。
これってあってる? ゼロビット目がキャラクタ番号じゃないんじゃ、とか思います。
1Dのスプライトについて書かれているページとかありませんか?
460名前は開発中のものです。
2006/02/20(月) 21:39:23ID:LHhnamaS マジですか。コンパイルもようできんからgcc自分で持ってきてarm-elfで作ったりしたんだがなぁ。
最低限eloistのgba.hとgbatekとかのドキュメント、あとは自分でがんばるかね。
最低限eloistのgba.hとgbatekとかのドキュメント、あとは自分でがんばるかね。
461名前は開発中のものです。
2006/02/20(月) 22:06:12ID:LHhnamaS >>459
スプライトが256色設定の場合は2倍で指定するらしいからそのせいではないかな?
スプライトが256色設定の場合は2倍で指定するらしいからそのせいではないかな?
462名前は開発中のものです。
2006/02/21(火) 00:33:12ID:zwimk+yf463名前は開発中のものです。
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;
}
下記のソースがうまく動作しません。
何がいけないかわかりますか?
//ボタンに関する列挙型
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;
}
464名前は開発中のものです。
2006/02/21(火) 07:28:21ID:GiHvck/8 書き込みできるかテスト
465名前は開発中のものです。
2006/02/21(火) 08:22:43ID:BSGVJJY5 >>463
それぞれの変数の値を出力してみろ
それぞれの変数の値を出力してみろ
466名前は開発中のものです。
2006/02/25(土) 15:23:38ID:LRNrnoNa ある構造体に汎用的な配列を用意し、状況によって汎用配列部分に
別の構造体をキャストすることでいろいろ使い分けられるように
したいんですが下記(分けて書き込みます)のようなソースがうまく動きません。
「w->cnt = 5;」等の部分で値を代入しているのに正しい値がはいりません。
VC++では正しく代入できるようです。なぜだかわかりますか?
仕様なんでしょうか?
別の構造体をキャストすることでいろいろ使い分けられるように
したいんですが下記(分けて書き込みます)のようなソースがうまく動きません。
「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;
}
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 変数の型と変数名がつながっているのは書き込み時に
つながってしまったもので実際には正しく記述しています。
つながってしまったもので実際には正しく記述しています。
469名前は開発中のものです。
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 系ではアライメント違反した書き込みはパフォーマンスが落ちるだけ。
アライメントの勉強をしてみよう。
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を使うんだっけ?
使ったことないけど
使ったことないけど
471名前は開発中のものです。
2006/02/25(土) 17:28:03ID:JLoubNl/472名前は開発中のものです。
2006/02/25(土) 17:30:14ID:JLoubNl/ >>470
この場合unionは全く関係ないし的外れ
この場合unionは全く関係ないし的外れ
473名前は開発中のものです。
2006/02/25(土) 17:32:36ID:+k+s2zkt メモリをダンプしてみろ
それからだ。
それからだ。
474名前は開発中のものです。
2006/02/25(土) 17:38:12ID:ChwfFfDn475名前は開発中のものです。
2006/02/25(土) 18:20:18ID:LRNrnoNa みなさん、アドバイスありがとうございます。
アライメント自体の概念はわかりました。
実用についてはまだよくわからんのですこし調べてみます。
>>474
unionのサンプルの意味は
u8でサイズを決めつつ、何のデータを扱ってもいいように
void型のポインタと最大サイズの整数と浮動少数で
共用体を定義しているということでよろしいでしょうか?
あと、私が書き込んだソースを下記のように修正したら問題なく
動くようになったんですがこのまま使い続けるのは
問題あるでしょうか?
u8 wrk[48] → u32 wrk[12]
アライメント自体の概念はわかりました。
実用についてはまだよくわからんのですこし調べてみます。
>>474
unionのサンプルの意味は
u8でサイズを決めつつ、何のデータを扱ってもいいように
void型のポインタと最大サイズの整数と浮動少数で
共用体を定義しているということでよろしいでしょうか?
あと、私が書き込んだソースを下記のように修正したら問題なく
動くようになったんですがこのまま使い続けるのは
問題あるでしょうか?
u8 wrk[48] → u32 wrk[12]
476474
2006/02/25(土) 18:33:56ID:ChwfFfDn >>475
サンプルの意味はそういうこと。
union 自体のアライメント要求がメンバの中で最大の物になることを利用したもの。
GBA のハードウェアで4バイト以上のアライメントを要求するものは
無かったと思うので、 GBA に限った動作だけを考えれば
u32 での置き換えで問題ないと言える。
サンプルの意味はそういうこと。
union 自体のアライメント要求がメンバの中で最大の物になることを利用したもの。
GBA のハードウェアで4バイト以上のアライメントを要求するものは
無かったと思うので、 GBA に限った動作だけを考えれば
u32 での置き換えで問題ないと言える。
477名前は開発中のものです。
2006/02/26(日) 00:08:14ID:WfB5cmW7 関係ないけど
GBAって電源切ったとき画面の色が黒でなく白なのはなんでだろう?
GBAって電源切ったとき画面の色が黒でなく白なのはなんでだろう?
478名前は開発中のものです。
2006/02/26(日) 00:10:13ID:vz2qCRmn 白黒液晶ってのは黒色の文字を表示するものだから背景が黒かったらどうしようもないと
ここまで書いてGBAが白黒ではないという事実を思い出した
ここまで書いてGBAが白黒ではないという事実を思い出した
479名前は開発中のものです。
2006/02/26(日) 07:47:46ID:e+6sQVje >>381 ノベル制作ツール「のべ〜る」で
VisualBoyAdvanceでプログラムスタート直後に音割れする現象の対策
*TOP:
#play_wav 1 music0.bin
#page
■セロ弾きのゴーシュ;
ゴーシュは町の活動写真館でセロを弾く係りでした。#w ;
けれどもあんまり上手でないと評判でした。#w ;
……
スクリプト開始のしょっぱなに何より先に#play_wavし、
直後に#pageします。これでなぜか音割れ現象が発生しなくなります。
なぜこれでうまくいくのかはよく分かりません。
ちなみに実機やその他のエミュでは試していません。
もしかしたら割り込み内でサウンドの処理より画像の処理を
先にやってるのかなとか思ったり・・見当ハズレなら作者さまスマソ。
これで使える。ヤター!
VisualBoyAdvanceでプログラムスタート直後に音割れする現象の対策
*TOP:
#play_wav 1 music0.bin
#page
■セロ弾きのゴーシュ;
ゴーシュは町の活動写真館でセロを弾く係りでした。#w ;
けれどもあんまり上手でないと評判でした。#w ;
……
スクリプト開始のしょっぱなに何より先に#play_wavし、
直後に#pageします。これでなぜか音割れ現象が発生しなくなります。
なぜこれでうまくいくのかはよく分かりません。
ちなみに実機やその他のエミュでは試していません。
もしかしたら割り込み内でサウンドの処理より画像の処理を
先にやってるのかなとか思ったり・・見当ハズレなら作者さまスマソ。
これで使える。ヤター!
481466
2006/02/26(日) 15:39:57ID:UpVKMws2 構造体のキャストで質問したものです。
とりあえず、みなさんのおかげで
スプライト制御が一段落したんで
経過をご報告します。
ttp://2ch-library.com/uploader/src/up_2121.zip
とりあえず、みなさんのおかげで
スプライト制御が一段落したんで
経過をご報告します。
ttp://2ch-library.com/uploader/src/up_2121.zip
482名前は開発中のものです。
2006/02/27(月) 22:06:09ID:KqQE3G30 くだ質で大変申し訳ないのですが、
C++でGBAのプログラミングはできないのでしょうか?
様々なサイトをググってみたのですが、すべてCでの開発で
C++を扱っているサイトを全く見かけません。
よろしければご教授をお願いします。
C++でGBAのプログラミングはできないのでしょうか?
様々なサイトをググってみたのですが、すべてCでの開発で
C++を扱っているサイトを全く見かけません。
よろしければご教授をお願いします。
483名前は開発中のものです。
2006/02/27(月) 22:45:37ID:NtZAdaLq >>482 gcc なんだから、できるよ。
484名前は開発中のものです。
2006/02/27(月) 23:07:51ID:yy1S2zAQ >>482
つ Tennodai Bunko
つ Tennodai Bunko
485482
2006/02/28(火) 00:35:45ID:jBhKnEbd486名前は開発中のものです。
2006/02/28(火) 09:22:37ID:1wwrrnAa GBAプログラミング研究所のBMP2RGB.exeで256色の出力のとき、
255番のパレットを指定したドットが0x00になり、
255番のパレット自体も0x0000になって出力されるんだけど
何か意味があるのでしょうか。
255番のパレットを指定したドットが0x00になり、
255番のパレット自体も0x0000になって出力されるんだけど
何か意味があるのでしょうか。
487名前は開発中のものです。
2006/02/28(火) 13:47:49ID:ykuetkSe 確証は無いけど透明色じゃないの?
488名前は開発中のものです。
2006/03/01(水) 17:29:46ID:CwoNSWML ソースレベルデバッグをしたいんですが
MAPPY VMとVHAM&DevkitAdvanceの組み合わせの場合
どのようにすればよいのでしょうか?
また、NO$GBAとMAPPY VMだとどの程度違いますか?
MAPPY VMとVHAM&DevkitAdvanceの組み合わせの場合
どのようにすればよいのでしょうか?
また、NO$GBAとMAPPY VMだとどの程度違いますか?
489名前は開発中のものです。
2006/03/02(木) 21:30:54ID:yUNPC8aZ Insight + VBA(devel版) で*.elf読ませる方が楽っぽくね?
490名前は開発中のものです。
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側の接続待ち状態ダイアログが消えないから違うんだろうなぁ
確認しながらデバッグするにはどうしたらいいのですか?
File-TargetSettingからConnection-TargetをSimulatar選んでからOptionをVBAの
GDB接続待ちPortの数字にあわせればいいのですか?
InsightデバッガからRun-ConnectTargetはSucessfully connectedってでるから
成功したのかな?
でも、VBA側の接続待ち状態ダイアログが消えないから違うんだろうなぁ
491名前は開発中のものです。
2006/03/02(木) 23:52:12ID:fFp03F4Q >>490
漏れの環境ではVBA-SDLでしかInsightと接続できないorz
漏れの環境ではVBA-SDLでしかInsightと接続できないorz
492名前は開発中のものです。
2006/03/04(土) 11:46:20ID:m5qLcxRB ところでGBAゲームでセーブデータってどうやって作るんですが?
研究所にはあったみたいだけど落ちてて見れない・・・
研究所にはあったみたいだけど落ちてて見れない・・・
493名前は開発中のものです。
2006/03/04(土) 13:52:52ID:x3hAFwv9 >>492
VBAでGBAファイル起動
VBAでGBAファイル起動
494名前は開発中のものです。
2006/03/04(土) 14:06:07ID:KUpila9P >>455
このサンプルでDirectSoundの再生方法を試しているんですが
サウンド再生関数を1回目に実行した際には音がならず
2回目の実行で音がなります。
これ以外のDirectSoundのサンプルでも同様の現象が起きます。
455のサンプルに関してはソースをまんまでコンパイルしても
同様の現象になります。
付属のロムデータでは正しく動作しているようですが
何がいけないかわかりますか?
このサンプルでDirectSoundの再生方法を試しているんですが
サウンド再生関数を1回目に実行した際には音がならず
2回目の実行で音がなります。
これ以外のDirectSoundのサンプルでも同様の現象が起きます。
455のサンプルに関してはソースをまんまでコンパイルしても
同様の現象になります。
付属のロムデータでは正しく動作しているようですが
何がいけないかわかりますか?
495名前は開発中のものです。
2006/03/04(土) 17:16:26ID:KUpila9P やっとこさゲームらしくなってきたんですけど
サウンドがなるとめっさ重いんですよね。
GBAってこんなもんなんでしょうか?
それともプログラムがヘボイだけ?
ttp://2ch-library.com/uploader/src/up_2173.zip
サウンドがなるとめっさ重いんですよね。
GBAってこんなもんなんでしょうか?
それともプログラムがヘボイだけ?
ttp://2ch-library.com/uploader/src/up_2173.zip
496名前は開発中のものです。
2006/03/04(土) 17:18:01ID:vi0lIxtr AGBがまともにサウンドを鳴らせないほど非力なのは仕様です
497名前は開発中のものです。
2006/03/04(土) 17:34:40ID:KUpila9P まじですか!?
じゃあ、GB互換音源を使うしかないんですね。
研究所が消滅してコンバーターの入手も難しいし
こまったもんだ…。
じゃあ、GB互換音源を使うしかないんですね。
研究所が消滅してコンバーターの入手も難しいし
こまったもんだ…。
499名前は開発中のものです。
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つもの機能のちがう音源を制御するのが重そう。
ゲーム部分を軽くすることは出来ないでしょうか…
キーを入力しないと鳴らないんです。
main.cをコレで鳴るんじゃない?
mu_wok = 0;// 再生の直前に++のため、0からの値になります。
se_wok = 0;
PlayMusic(mu_wok,PLAY_LOOP_ON); //※追加
while(1)
{
>497
4つもの機能のちがう音源を制御するのが重そう。
ゲーム部分を軽くすることは出来ないでしょうか…
500名前は開発中のものです。
2006/03/04(土) 22:08:24ID:Msh9zdwX GBAプログラミング研究所って結局どうなりました?
どこかへ移転したとか…
日本のGBA開発に欠かせないサイトだったし、あれほどみんなが
利用していたのに突如閉鎖というのは有り得ない。
どこかへ移転したとか…
日本のGBA開発に欠かせないサイトだったし、あれほどみんなが
利用していたのに突如閉鎖というのは有り得ない。
501名前は開発中のものです。
2006/03/04(土) 22:30:48ID:ega3649d >>498
SRAM(0x0E000000〜)に数値書き込めばいい
SRAM(0x0E000000〜)に数値書き込めばいい
502名前は開発中のものです。
2006/03/05(日) 10:53:06ID:bBYTbtx/ >>500
管理人が捕まったとか
管理人が捕まったとか
503名前は開発中のものです。
2006/03/05(日) 11:16:39ID:JLfn0Pan504名前は開発中のものです。
2006/03/05(日) 16:30:00ID:vg84cSdA505名前は開発中のものです。
2006/03/05(日) 22:27:41ID:aIloybH9 ”捕まった”とか言うとデマに発展しそうな気がしてイヤンな感じ
広告掲載の方法についてサーバーの提供元から警告が来たので広告を消した、
というような更新が最後だった希ガス
確かにGBAの方は更新がほぼ止ってたような気がしないでもないが
DS用のページも作ってたみたいだし(DSの方はやってないのでよく知らないが)
更新意欲がなくなってそのままフェードアウトした感じではないのだが・・・
広告掲載の方法についてサーバーの提供元から警告が来たので広告を消した、
というような更新が最後だった希ガス
確かにGBAの方は更新がほぼ止ってたような気がしないでもないが
DS用のページも作ってたみたいだし(DSの方はやってないのでよく知らないが)
更新意欲がなくなってそのままフェードアウトした感じではないのだが・・・
506名前は開発中のものです。
2006/03/05(日) 22:32:48ID:ZGr9k1wh DSの方の掲示板は業者スパムだらけだったな
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【制服】中高生の「制服代」が中1は約8000円、高1は約1万円上昇…授業料無償でも重い「教育費の家計負担」とどう向き合えばいい? [少考さん★]
- 【東京】赤坂サウナ火事2人死亡 サウナ室のドアノブ外れ閉じ込められた可能性 ★8 [nita★]
- EU、エンジン車禁止見直しへ 35年以降も条件付き販売容認―日本勢に追い風 [蚤の市★]
- 中国国防省が再反論 SNSで公開した音声とは“別の通報”で日本に訓練の時間や海域を通報したと主張★4 [夜のけいちゃん★]
- 【ドアノブ外れ】東京・赤坂の“個室サウナ店夫婦死亡火災” 非常用ボタンの電源が切れていた可能性 [nita★]
- 「机の裏に変なものがくっついてる!」「ほんとだね(カメラ回収)」→6日後に男性教員(40)を逮捕「10年以上前から女児盗撮繰り返した」 [Hitzeschleier★]
- 初セックスのことが忘れられないんやが😭
- 🏡👊😅👊なにここ珍百景👊😅👊🏡
- 嫁が俺を嫌いな理由
- 国民「え、まって。物価高対策は?年末、年始なんですけど!?」 [153490809]
- パンダ🐼さん、中国から1億円で借りて、30億円の経済効果を日本に与えてくれていた。😭高市辞めろぉっ! [153490809]
- シンプルなデスクを極めたらついにデスクの上にモニターアームとモニターだけという構成になった
