ゲームボーイアドバンス(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/
425384
垢版 |
2006/02/14(火) 00:59:46ID:tYPhpHwC
俺もprintf関数もどき作りました。

全角の文字列を引数として受け取って、
その先頭のアドレスから、内容を4ビット(16進一桁、要するに文字コードの中の一桁)
ずつチェックしていき、最終的に文字コードとBGタイル番号をつき合わせて
BG一面に出力するようにしました

BGを一つ占領しちゃうんであまりよいやり方では無さそうですが
2006/02/14(火) 01:49:16ID:WgJRobF9
>>424-425
自作するよりそっちの方が簡単だろうと思ってな
printf関数の仕組みが分からないとも書いてるし

もちろんsprintfはstring.hをincludeすれば使えるぞ
427名前は開発中のものです。
垢版 |
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個表示可能
2006/02/14(火) 18:55:03ID:WgJRobF9
画像データ領域(VRAM)とキャラクター領域(OAM)は分離して考えろ
>>427の例で言うと
OAMには128個登録できても
VRAMには64種類の画像しか収まらない

逆に言うと64種類の画像を128個表示できるということ
429429
垢版 |
2006/02/14(火) 19:29:47ID:KtOq4mfG
なるほど、つまりVRAMにおさまりさえすれば
64*64の画像を128個表示することができると
いうことなんですね。
430424
垢版 |
2006/02/14(火) 21:44:12ID:oQP7vhex
自作snpritnf(snprintf_mini)です。良かったらどうぞ
http://49uper.com:8080/html/img-s/111753.lzh
431420
垢版 |
2006/02/15(水) 23:02:19ID:UMaLkZ5l
ありがとうございます!
正直、よく分からないですが、参考にするか
もしくはそのまま使わせて頂きます!
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

どこがいかんのでしょう
みたとこ画像データが無いようですが。
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文字表示用の関数を作ってみてはどうでしょうか?
2006/02/16(木) 09:44:32ID:zo8+sFWC
       ◆◆,,,,_    /⌒;
       /*' 3 `*ヽーっ   /<ワンワン,ツウツウ,スリィスリィ,フォウフォウ
    ⊂二  。 ゚  ⌒_つ/     ガンガン ズンズン グイグイ 上昇
       `、   ⌒_つ /
        `'ー-‐'''''"  /
            /_/

            ///




.         _____
.         `ヽ  ,」_ァ'"´ 
.      f'て}. ̄ rY   ト、  __ 
.     | r个 √`>‐.k } f゙)ヾ> 
      }l r ''"`ァ'゙  ,ノ、ム'^'ァ'゙
     人.ヒ,ィ゙ ァ弌__,,>'´゙ヽ
     い,  `'<,   ,r'^  ,ノ
.   }⌒'‐\ ,、    ゙'くョr.''"´
    い弌-、  \   }. ゝ-、
.    `'ー'  ゙'ー‐--‐'⌒''''''゙
2006/02/16(木) 18:36:32ID:kz0iIF7u
>>433
これだけヒントを貰ってるのに文字表示すら自分で作れない香具師に
何をアドバイスしてやっても無駄だって。
2006/02/16(木) 20:06:45ID:M6PXBfNk
>>433
親切すぎる。
漏れは呆れてレスする気がしなかったぐらいだってのに。
437424
垢版 |
2006/02/16(木) 21:32:19ID:IJObToHy
確認用に作った文字表示用プログラムです
ttp://49uper.com:8080/html/img-s/112125.lzh

VCとVisualBoyAdvanceの両方で動作確認できるようにちょっと細工してます
このフォントデータは多分ライセンス違反になると思います。
#外見はラスタフォント6x13そのままです。
#文字を表示した状態のスクリーンショットBMPからデータを作りました・・・
2006/02/16(木) 22:19:46ID:M6PXBfNk
拙作
ttp://gamdev.org/up/img/4680.png
2006/02/16(木) 22:21:45ID:kxrgDS8c
>>438
俺が流用してるフォントと同じのを使ってる・・・気がする
俺は8x8でやってるけど
2006/02/16(木) 22:53:00ID:Jk3f3/1N
>>438
liarsoftさん?
441424
垢版 |
2006/02/16(木) 23:55:24ID:IJObToHy
へー、かっこいい
フリーのフォントって知らなかったけど調べてみたらいろいろあるんだな
とりあえず、FONTX形式にすればいいのだろうか?
442432
垢版 |
2006/02/17(金) 16:40:32ID:x9jBkP1z
サンプルありがとうございます。
私は420=431さんとは別人です、横入りすみません。

フリーのフォント、元GBA研究所のサンプルにあったものを
流用しようと・・問題有りますでしょうか
完全フリーなものが欲しいのですけどそうなるとなかなか
ありませんよね。フリーソフトのみとかメールでの通知義務とか。
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

あとは日本語文字コードか、やれやれ。
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の算出式がよくわかりません。
単純にデータサイズというわけではなさそうですが。。。
2006/02/18(土) 03:41:17ID:4ZdB2i2h
データサイズで合ってる
cascade from time 0になっているということは
timer 0が桁あふれしたときにtimer 1が1つ進むということ
timer 0が桁あふれしたとき同時に何が起こっているのか考えてみればそのうち分かる
頑張れ
2006/02/18(土) 16:03:02ID:1rrcgcm5
>>446
すみません、もう少し教えてください
データサイズが0xffffを超える場合はどう設定すればいいのでしょうか?
2006/02/18(土) 17:05:13ID:ZbScaNGm
フリーの日本語ビットマップフォント一覧
ttp://kappa.allnet.ne.jp/kanou/fonts/x11bdfs.html
2006/02/18(土) 18:51:03ID:iQRmZRdR
5つほど上に既に貼ってあるジャマイカ
2006/02/18(土) 21:15:59ID:yUcx3isO
研究所が未だに復活しない件。
猫でもみたいなTips集的な使い方をしていたので、他所を探すのが以外に大変。
2006/02/18(土) 22:05:41ID:q2PjLLP+
儂はウェブアーカイブで拾ってきたよ。zipファイルは保存してないからサンプルは取れないけど。
ヘッダとソースは見られる。makefileが無いのが難点。
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
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
"任天堂本社情報通達部"に該当するページが見つかりませんでした。
"任天堂情報通達部"に該当するページが見つかりませんでした。
"情報通達部"に該当するページが見つかりませんでした。


>会社・学校・友人・親・親戚への連絡を行う場合があります。
これ結構発想が古いよな
おっさんかな?とも思ったけど
情報通達部とかネーミングが安直杉て大人の考えた文章にも見えない
■ このスレッドは過去ログ倉庫に格納されています