トップページgamedev
984コメント379KB

NintendoDS(NDS)非公式開発 Part1

■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。2005/04/18(月) 08:29:22ID:LMyYYz9X
NDSで何やら作ってみようという人の為のスレ。ライセンス不要。
初心者歓迎。質問歓迎。英語苦手な人歓迎。冷やかし歓迎。ネカマ歓迎。

資料、リンク等

NDSTech Wiki
http://www.bottledlight.com/ds/index.php/Main/HomePage

Home-Brew Programmers Guide to the Nintendo DS Home-Brew Programmers Guide to the Nintendo DS
http://www.dspassme.com/programmers_guide/Tutorial/index.html

開発環境

NDSDevEnv
http://www.aaronrogers.com/nintendods/ndsdevenv.php (Offline Installer 2.2.6 (8MB) をダウンロード)

NDS Development
http://j-gbadev.hp.infoseek.co.jp/ds/index.htm

GBAの資料が役に立つので関連スレ

ゲームボーイアドバンス(GBA)開発@ゲ製板(避難所)
http://bbs.gamdev.org/test/read.cgi/gamedev/1055111303/
ゲームボーイアドバンス(GBA)非公式開発 Part2
http://pc5.2ch.net/test/read.cgi/gamedev/1099119005/

02741922006/08/19(土) 21:36:37ID:Qax6Q72R
諸用で時間が取れず。

>>264
パワーが心配な気が・・・。

>>265
やってみたい気もする。

>>268
トレーニング(だっけ?)の練習クローンぐらいは考えたこともあった。
オリジナルを一回しか完結させてないので、その辺が疎い。
パイタッチって聞くけどなに? って感じなのでorz

何につけても、ogg再生からこつこつやっていくと行き着きそうな気もします。
がんばります。
0275名前は開発中のものです。2006/08/21(月) 11:23:07ID:XEtRrwRi
>moonlight
chism氏がlibfatってやつを開発してるみたいだが試してみた?
0276Moonlight2006/08/21(月) 15:04:59ID:1bPKqePn
>>272
そうですねー。開発が面倒くさくても安定する方がいいですね。
個人的にはFAT16で十分だと思いますが、容量の問題ではなく「FAT32で使っている人も多い」という理由でFAT32コードを切っていません。
MoonShell内蔵FATライブラリはFAT16で最適化してるので(初速の遅い)SDを使うと特に速度が違うと思います。FAT32要らない。(苦笑

>>273
いまから(根本の)インストールフォルダを変えるのはちょっと。チュートリアルとかあるので。
ソースがありますので、文字列置換&再コンパイルだけで変えられます。
これに限らず、自分専用カスタムなどがんがん書き換えて自分の使いやすいように使ってくれればOK。
(私自身も公開用とは違うキー配置バージョンを使っていますし(笑

>>264
192氏の言うとおり「考えるだけ無駄」ってくらい全然無理です。

>>275
alpha版が本当にalphaだったころ(一ヶ月くらい前?)に試しました。文字通りalphaだったので即捨。
最近のは、IRCメインであること、CVSであること、ライブラリ形式であること、新DevKitARM向けであること、などの理由で全くさわっていません。
余談ですが、FatFsはコンパイルが通るところまでいじったのですが、LFN非対応だったのでそのまま放置です。
MoonShellが一段落したので、また色々さわってみたいですね。
02771922006/08/22(火) 02:29:51ID:3eB/98xj
頭ごなしに否定的なレスばかりではアレなので報告&質問。
libogg、libvorbisの最新ソースを拾ってビルド。
あちこち調べながら、ov_open_callbacksが帰ってこずに固まる現象に悩まされております。
# なんでov_open_callbacksかというと、binファイルをメモリブロックとして持っているから

ov_open_callbacksは、悪評が結構あるようで、RC3のものにしろとかいろいろ言われてるけど、今のところどっちもダメ。
ちなみにWindows2000+VisualStudio2005で同じことをすると動く。
スレ違いっぽいがこのあたりに通じている人いませんか?

あと、16チャンネル中、1チャンネルを再生用に占拠すれば意外にストリーミング再生はできるんじゃないかと軽く思ってみたり。
0278Moonlight2006/08/22(火) 03:22:21ID:ifxxTdvS
>>277
音出さないでoggデコードだけするシンプルなサンプルなら、mspv10_oggのソースがわかりやすいかもしれません。
MoonShell 1.31のダウンロードページのMSPV40SDKに入ってます。
ストリームPCM周りは全部MoonShellに依託するので音は出ませんが。
main.cppのStart関数が始めにファイルハンドル付きで呼ばれて、あとは定期的にUpdate関数が呼び出されるだけです。で、最後にFree関数で解放。
ov_open_callbacks使ってますが、別段問題ありませんでした。

メインメモリに直接マッピングされたoggバイナリを展開するなら、

size_t callbacks_read_func (void *ptr, size_t size, size_t nmemb, void *datasource){
s32 len=size*nmemb;
if((FileSize<=FileOffset)||(len<=0)) return(0);
if(len>(FileSize-FileOffset)) len=FileSize-FileOffset;
u8 *pu8=(u8*)ptr;
for(s32 cnt=0;cnt<len;cnt++){
pu8[cnt]=FileBuf[FileOffset];
FileOffset++;
}
return(len);
} // 開業多すぎと怒られたので詰めました…見づらい

ってな感じで。(上のは適当に書いたので動かないと思います。雰囲気だけ)

また、oggライブラリはoggTremorじゃないとCPUが間に合わなかった記憶があります。
-DLOW_ACCURACYしないとoggTremorでも音飛びしましたが、これは私の最適化技術の低さの成せる技だと思います。
あと蛇足ですが、-fsigned-charもやっとかないとダメだったような気がします。
とりあえず、いま192さんが作っているプロジェクトのMakefileに-fsigned-charを追加してみてはいかがでしょうか。

わたしも否定的なレスばかりにならないように心掛けたいです。(ほんとに(苦笑
0279名前は開発中のものです。2006/08/22(火) 11:43:53ID:HyMmc4u+
Metrowerks.CodeWarrior.for.Nintendo.DS.v2.0-EXPERiENCE

EXPERiENCE strikes back with a great release ...
Codewarrior for Nintendo DS 2.0,
The Best solution for Development on this handheld console.
It provides an IDE and a cross-compiler.
It's the latest version.
02801922006/08/23(水) 00:54:02ID:d5xAIo2F
漏れ一人じゃどうにもなんねぇ気がしてきた。
周りに詳しい人いないし、うpしてみます。
ttp://gamdev.org/up/img/7235.lzh
とりあえず、昨日までdualisで落ちていたんですが、落ちなくなりました。
0281Moonlight2006/08/23(水) 02:46:26ID:tj4Pgmzc
>>280
Dualisで音が出るか知らないのですが、とりあえずデコードができた(ような気がする)ので報告しまーす。
DevKitARMr19aで、oggライブラリはUPしてくださったlibogg7/9.aとlibvorbis7/9.aをそのまま使いました。

main.cから。TransferSound*snd = NULL; snd = IPC->soundData;
を、static TransferSound StaticTransferSound; snd = &StaticTransferSound;
に変更。(IPCサウンド処理を飛ばしているだけです)

vc.read_func = ovs_read;
とかを、ov_callbacks vc = {ovs_read,ovs_seek,ovs_close,ovs_tell};
に変更。(多分関係ないです)

if( snd->data[ 15 ].len == 0 ){
の前の行に、snd->data[ 15 ].len=0;
を追加。(IPCサウンド再生完了を待たないだけです)

次、ovstream.cの変更。
if( (readseek + readsize) >= pStream->srcsize ) readsize -= (readseek - pStream->srcsize); // 詰めました。
を、if( (readseek + readsize) > pStream->srcsize ) readsize=pStream->srcsize-readseek;
に変更。

case SEEK_END: seek = pStream->srcsize + offset; break;
を、case SEEK_END: seek=pStream->srcsize-offset; break;
に変更。

で、for(idx=0;idx<read/4;idx+=2) iprintf( "%04x", ((u16*)buffer)[idx]); でそれっぽい波形がでたので大丈夫かも。(音出ししてないので自信がないw
ちょっと気になったのは、IPCにreadではなくBUFFER_SIZEを渡していますが、oggライブラリは常に要求した分だけデコードしてくれる訳じゃないので注意です。BUFFER_SIZEを超えないだけで少ないことはあります。(というか基本的にてきとーなサイズを返してくるみたいです)

いちお、動いた(かもしれない)ファイルをアップしておきます。参考になればいいのですが…。
http://mdxonlinemirror.dyndns.org/oggtest200608230244.zip

0282名前は開発中のものです。2006/08/23(水) 13:21:58ID:Ge0DwE+6
>>192
>作りたいゲームのねたが無い
スーパーカード用のNDSプログラムを
M3上で強引に動かすSCエミュレーター
0283名前は開発中のものです。2006/08/23(水) 18:42:26ID:M/2dONiC
>>282
M3は糞だから困るね
0284Moonlight2006/08/23(水) 21:13:25ID:tj4Pgmzc
>>282
SDカードや拡張メモリを使っていなければ、たぶん同じROMファイルがSTARTボタンで起動すると思います。
いまのところhomebrewで拡張メモリを使っているのはMoonShellだけなので問題はファイルシステムですね。
ちなみに、M3ブートローダーを付ければAボタンでも起動できるようになるはず。
SCはローダー無しでお手軽起動するのはいいのですが、メモリ周りをちゃんと初期化してくれなかったりレジスタが使いっぱなしだったりするので、注意が必要です。
特にARM7のDMAレジスタや、ARM9のCP15などは手動で初期化するように心掛けないとすぐSCで動かなくなります。
といってもSCの方が起動するまでの手順が少ないので一長一短ですね。
って話がずれましたが、SCで動くROMファイルならM3でも動くはずです。
02851922006/08/23(水) 23:02:57ID:d5xAIo2F
>>281
確信犯ですが添削ありがとうございます。
ARM9のメインループでブチブチながら再生できることができました。
TransferSound* の割り付けを勘違いしていたことが大きな原因でした。
swiWaitForVBlank で待って、バッファいっこで鳴らしているので、割り込みとかに処理を移せばモノになりそうな気がします。
# 割り込みはGBAスレとかでみかけはしたので

あと、ARM7側からサウンドの再生完了をARM9に伝えることってできないんですかね?
IPCは、9→7への一方通行っぽいように思うんですが。

ちなみに実機でしか鳴りませんでした。
0286Moonlight2006/08/24(木) 01:25:52ID:mWWi4ejn
>>285
おめでとうございますー。
IPCですが、共有メモリでどちらからどちらへという決まりはありません。
Windowsでいうところのスレッド間衝突(メモリコンフリクト)さえ気を付ければ、どちらから書いても即反映されます。
ARM7でサウンド再生完了ってどうやって取得するんでしたっけ。SOUND_CRのBIT15とかを見ていればいいのかも。
いわゆる「サウンド再生完了割り込み」ってのは(多分)存在しません。
TIMER_xで同じ周期を設定すればそっちで割り込みは起こせます。
ちなみに、MoonShellのソースの、ipc3.hを見ていただければわかると思いますが、勝手に拡張すればOK。
容量が少ないのでサウンドバッファを丸々とかは無理だと思います。
がんばってくださいね。では。
0287Moonlight2006/08/24(木) 15:37:37ID:mWWi4ejn
>>282
ごめん適当なこと書いた!
SCはSC用ブートローダーがくっついてるので、それを取り外してからM3用ブートローダーを付けなきゃダメでした。
ローダー無しで起動するのはSC/M3以外でした。
SC用とM3用は同じサイズ(先頭512byte)なので、取り外さなくても先頭512byteを置き換えるだけでも大丈夫です。
適当なこと言ってすいません。
0288名前は開発中のものです。2006/08/26(土) 02:32:00ID:8D5laUkM
ストリーム配信されている動画(wmv)をダウンロードしたんですが、
DPGTOOL1.0では変換できて、1.1では変換できないようです

エラーメッセージ
WMV3 / Windows Media Video 9

ファイルの詳細
640x480 24Bit Windows Media Video 9 30.00fps 976.00kb/s

Windows Media Audio 9.1 44.10kHz 16Bit 2ch 48.02kb/s

[WindowsMedia] 00:09:21 (561.00sec) / 71,573,478Bytes
02891922006/08/26(土) 17:12:41ID:EAsOCuvp
>>286
なるほど。libndsに書かれてるIPCのTransferSound*はポインタだからその先のデータに同期情報を持たせても意味がないんですね。
MoonShell関連のソースは読ませていただいています。勉強になります。
ただ、膨大なので動きを追うにはまだまだ読めていない状態です。
純粋にWavのストリーム再生だけのソース、とかあればとわがままを思ってみたり。

毎度の進捗としては、割り込み周りの情報を追いながらあちこちいじってます。
プチプチ、なくなんねぇかなぁ。
0290Moonlight2006/08/26(土) 21:39:27ID:Md8I/quv
>>289
TransferSoundはIPC構造体の一部なので、ぶっちゃけ独自でサウンド再生するなら無くしちゃっても大丈夫です。1からIPCを作ってみるのも理解促進かもです。
正規メーカーなら変えちゃだめかもしれませんが、私たちは関係ないので(笑
ちなみに、前も書きましたがMoonShellのストリームPCM再生はプチノイズ有りなので、参考にしないで。というか独自開拓してむしろ教えてほしいです。(苦笑

おまへの都合なんざどーだっていいんじゃサンプルよこせいえー。ってのも可。
無圧縮16bit2chPCM再生サンプルソースという感じで必要だったら言ってくださいね。ではー。
0291Moonlight2006/08/27(日) 03:01:30ID:HMcpH5bw
ageてしまいました。すいませんっ。
お詫びにストリームPCM再生をごちゃっと色々作ってアップしました。
宜しく御査収下さい。
0292名前は開発中のものです。2006/08/27(日) 20:26:06ID:2lrmMVPV
bmpの表示デモが見つからないんだけど、どこにある?
0293Moonlight2006/08/27(日) 20:42:25ID:HMcpH5bw
>>292
nds-examples-20060621に入ってるGraphics/2D/16bit_color_bmpじゃだめ?
0294名前は開発中のものです。2006/08/27(日) 21:02:43ID:2lrmMVPV
>>293
それでOKです。ありがとうございます
0295名前は開発中のものです。2006/08/28(月) 05:46:43ID:SjpAEkkH
DS用Snes開発が全部止まってて悲しい・・・
日本じゃこの手の開発誰もしないのは何故?
0296名前は開発中のものです。2006/08/28(月) 12:12:39ID:8m9sThIq
めんどくさいから。
誰かが作り始めたら、新バージョンマダ〜?と言う奴ばっかり。
0297名前は開発中のものです。2006/08/28(月) 16:32:50ID:SjpAEkkH
>>296
1行目はともかく2行目について質問があるんだが・・・

『他の奴』に一体何を求めてるんだオマイは?
0298Moonlight2006/08/28(月) 16:41:48ID:ihhROeC1
>>295
まず自分で作り始めてみるが吉かも。(できるかどうかは後で考えればいいとか思ってる(笑
もしできればフロンティア(=孤独w)になれるかもヨ。
0299名前は開発中のものです。2006/08/28(月) 23:17:39ID:AMPXn7n5
>>296
じゃぁ、エロゲーコンバータ作ってくれ
任せたぞ
03001922006/08/28(月) 23:49:00ID:OA584+k4
一応、鳴るようになりました。
ttp://gamdev.org/up/img/7345.lzh
どんなデータ使っても、ぷちぷちだらけ→綺麗になっていきます。
レンダリングしていくとパフォーマンスあわせてくれるんでしょうか?

>>291
チャンネルひとつってモノラルだったんですね。
なんかボケてたのかステレオのデータ使ってました。

あと、こんなトピックがありました。
http://forum.gbadev.org/viewtopic.php?t=10778
0301Moonlight2006/08/29(火) 02:58:26ID:E7nNg1D8
>>300
ARM7ソースをざっと見た感じでは、やっぱり割り込みが原因だと思います。以下Timer1をPCMに使ってるとして。
FIFOを使っているようですが、現在libndsの割り込みハンドラは再入禁止コードなので、たとえばVsync割り込み中にTimer1割り込みが発生したりするとダメです。
Vsync割り込み発生->割り込みハンドラ開始->Vsyncユーザーコード->割り込みハンドラ終了->割り込みハンドラ開始->Timer1ユーザーコード->割り込みハンドラ終了
という感じになったとして、Vsync割り込みが完了する前にTimer1割り込みが発生すると、VsyncとTimer1が重なっている時間だけ、Timer1割り込みの実行が遅れます。
サウンドバッファの再生が完了しても次が開始されない時間がプチノイズになります。Timer1の周期が変わる訳じゃないので、そのバッファは再生が終わる前に次に進んでしまいます。
周期的にもVsyncとTimer1は同期していないと思うので、たとえば数秒プチノイズが入り、数分後に数秒プチノイズが入る、というような感じで。

で。解決方法は思いつくのは2つ。ひとつは、多重割り込みを許可する割り込みハンドラを書いて、Timer1割り込み実行中だけ多重割り込みを許可しない、という方法です。
ただこの方法も、割り込みハンドラが割り込み要因を判定する間は多重割り込みできないので、極まれに周期的なノイズが入ります。聞き取れませんけどね。気になる人は気になるということで。
確か、PowerLEDのグラデーションをしたときに、PWM用Timerが秒間1万回、PCM用Timerが秒間100回くらいで動作したので、普通は大丈夫だと思います。
0302Moonlight2006/08/29(火) 02:59:39ID:E7nNg1D8
もひとつは、Timer1割り込み以外の割り込み処理を全てmainループでポーリングする方法です。
要するにストリームPCM再生はTimer1割り込み発生からサウンド再生までの時間が(1バッファ時間以内であれば)遅れたとしても、厳密に一定であればいい話です。
なので、VCOUNTでVSYNCの発生を計算したり、FIFOのEMPTYフラグをずっと見ていたりすれば、Timer1割り込みは一定間隔で呼ばれることになります。
個人的にはIPC内容(タッチパネルとか時計とか)の更新は、FIFOなりIPC_SYNCなりを使って、ARM9から更新要求出して、ARM7でポーリングして受け取って更新して、その間ARM9はポーリングで待つっていうのが一番確実かなーと思いました。

そうそう余談ですが、これはDevKitProとlibndsのバージョンに依存するのですが、IRQモードで動く割り込みハンドラ(たぶん再入不可版はみんな)は、スタック領域もIRQ用に切り替わっているので極めて少量しか使えません。
今年初め頃に調べたときは256byteでした。いまはわかりませんが…。
ARM9のFIFO割り込みでoggストリームのデコードをしているみたいですが、ちょっと危ないかも〜と思いました。
もっとも、IRQモードからユーザーモードに移行しても今度はmallocに潰されたりするんですけどね。(笑

長文&読みづらい文章で申し訳ないです。参考になれば幸いですー。
03031922006/08/31(木) 07:57:12ID:3erodKoV
案2を試したり、リングバッファをトリプルバッファにしてみたりしました。
・・・あんま変化ない。
むぅぅ。
0304Moonlight2006/08/31(木) 14:26:24ID:rFaKnR6R
そうですか…。残念です。割り込みだと思ったのですが当てが外れたみたいです。(笑
いま暇なのでもうちょっと見直してみようと思います。なんでなんだろう。謎だー。
0305Moonlight2006/08/31(木) 15:25:45ID:rFaKnR6R
あ、大事なことを忘れていました。
もし、リングバッファをARM9でmallocしているなら、なのですが、メモリの設定をしていますか?
ご存じの通り、NDSには2つのCPUがあって、それらが協調して動いているのですが、(たぶん標準のブートストラップは)メモリの調停機能がARM9優先になっていたと思いおます。

ためしに、以下のコードを入れて、VRAMの初期化直後にでも呼んでみてもらえますか。


#define _REG_WAIT_CR (*(vuint16*)0x04000204)
static inline void SetARM9_REG_WaitCR(void){
u16 bw=_REG_WAIT_CR;
bw&=BIT8 | BIT9 | BIT10 | BIT12 | BIT13;
bw|=2 << 0; // 0-1 RAM-region access cycle control 0..3=10,8,6,18 cycles def.0
bw|=0 << 2; // 2-3 ROM 1st access cycle control 0..3=10,8,6,18 cycles def.0
bw|=0 << 4; // 4 ROM 2nd access cycle control 0..1=6,4 cycles def.0
bw|=0 << 5; // 5-6 PHI-terminal output control 0..3=Lowlevel, 4.19MHz, 8.38MHZ, 16.76MHz clock output def.0
bw|=0 << 7; // 7 Cartridge access right 0=ARM9, 1=ARM7 def.0
bw|=0 << 11; // 11 Card access right 0=ARM9, 1=ARM7 def.1
bw|=1 << 14; // 14 Main Memory Interface mode 0=Asychronous (prohibited!), 1=Synchronous def.1
bw|=1 << 15; // 15 Main Memory priority 0=ARM9 priority, 1=ARM7 priority def.0
_REG_WAIT_CR=bw;
}
#undef _REG_WAIT_CR

自分用なので冗長ですが、関数を呼ばずに直接一行だけ
REG_WAIT_CR = (REG_WAIT_CR & (BIT8 | BIT9 | BIT10 | BIT12 | BIT13)) | (2 << 0) | (1 << 14) | (1 << 15);
と書いても大丈夫だと思います。

ARM7内部メモリ(通称ARM7/IWRAM)を使うなら問題ないのですが、4MByteのメインメモリをARM7とARM9で同時にアクセスすると、ARM7が待たされてしまいます。
BIT15を立てると、同時アクセスでARM9が待たされることになるので、デコード処理が遅くなりますがプチノイズが乗るよりはましという感じで、私はARM7優先にしています。
0306名前は開発中のものです。2006/08/31(木) 16:23:47ID:mVy695Ds
突然DSでプログラム作ってみたくなってマジコン買ってみた。
今日はとりあえず2D描画やってみたさ。2DはGBAとあんまり変わんないですね。でも速い!

とりあえず初DSプログラム記念のスクショ ttp://gamdev.org/up/img/7399.png
次はどっち方面いじろうかなー
0307名前は開発中のものです。2006/08/31(木) 16:29:21ID:OMe+MWnU
>>306
ぶつ森の家具リスト作ってた人か
0308名前は開発中のものです。2006/08/31(木) 16:57:01ID:mVy695Ds
Σ(゚д゚lll)ガーン 一瞬でバレた! ...そりゃ分かるわな

そーいや一月後にポケモソ発売だからポケモソデータベースとか作ったら便利かもなー。
でもDSで作っちゃうと同時に使えなくなるからGBAで作った方がイイな...
0309名前は開発中のものです。2006/08/31(木) 22:12:35ID:vO+hnB+1
いやーん、SupercardでMoonShellが動かなくなる日が来るなんて嫌ー!!
レジューム最高!ブックマーク超便利なのにー。ぐすん、ぐすん。
03101922006/08/31(木) 23:22:37ID:3erodKoV
>>305
バッファはグローバル変数で準備してます。
libvorbisでもcallocが通っていて驚いたのですが、malloc/freeがあるんですね>DS
Windows→ドリキャス/GC(メモリ確保系なし環境)とわたってきたので、変数で確保するのと
alloc系関数で確保することの違いがよくわからないのですが、次はそれでいってみようと思います。

今日はしょんぼり休みなのでコード触りませんorz
0311Moonlight2006/09/01(金) 00:41:40ID:G6nEj0d/
>>309
すいません。ごめんなさい。本当に。
たぶん動くはずなのですが、動かないとメールがすごいので…。
ドライバ自体は入っているので、「動かない前提」でもよろしければこき使ってやってください。
(「動かない」だけじゃどうにもできないんだー!ってのはプログラマ的な考え方なんでしょうね(笑
0312Moonlight2006/09/01(金) 00:44:49ID:G6nEj0d/
>>310
お疲れ様ですー。
そうなんですよ。組み込み系なのにメモり支援があるのはほんとに助かりますよね。

雑談など。ARM9でstaticしてもmallocしてもメインメモリに確保されて、ARM7だと両方ともARM7内部メモリに確保される設定になってます。
ARM9からARM7内部メモリは触れない罠。ずいぶん悩みました(笑

でわでわ。
0313名前は開発中のものです。2006/09/01(金) 21:35:11ID:8rPSQyLY
NitroRom File Systemのライブラリってdevkitproに含まれてないのかなー?
そしてswiDecompressLZSSWramとswiDecompressLZSSVramが動作してくれないよー

探しても情報がなかなか見つからないから、両方とも自分で作っちゃったさ...
嗚呼、車輪の再発明...
0314名前は開発中のものです。2006/09/01(金) 22:41:51ID:JtqgKQGL
うp!うp!
03153132006/09/02(土) 09:06:00ID:s6zzCzVQ
一応うpするけど、テスト用なんで超テキトーだよ?見てしょんぼりするがいい
ttp://gamdev.org/up/img/7427.zip
・lzssdec.cpp  LZSSのデーコード
  gbalzssのソースをちょっと変えただけ。
  1byte単位で書き込みと2byte単位で書き込みの2種の関数が入ってる。
・nitrofs.cpp  NitroROMFileSystemアクセス
  ディレクトリ未対応、コンテンツは全部ルートにぶちこむべし。
  32MBまでROMにしか対応してない。
  ファイルIDが0から始まると仮定してる。ndstoolで作ればイマノトコ大丈夫みたい(?)

32MB以降のROMエリアにアクセスするにはどうすればよいのでしょう...?
0316名前は開発中のものです。2006/09/02(土) 09:35:17ID:s6zzCzVQ
書き忘れ。nitrofsの方は「WAIT_CR &= ~0x80;」で
ROMエリアにアクセスできるようにしておく必要があると思われり
0317名前は開発中のものです。2006/09/02(土) 10:24:11ID:L7ukrhys
DSLite持ってるいて、GBAやDSのソフト作りたくなったのですが、
自作ゲームを動かす点においてはSCもM3も大きな違いはありませんか?
どれを買うか迷っているところです。
0318名前は開発中のものです。2006/09/02(土) 12:20:31ID:L7ukrhys
×DSLite持ってるいて
○DSLiteを持っていて
いまさら気づいたOTL
0319名前は開発中のものです。2006/09/02(土) 20:52:45ID:s6zzCzVQ
BGM再生できたさ。バッファの書き換えタイミングの調整にちょっと手間取った。
2Dのゲームに必要な部分はだいたいテストできたから、次はゲーム作るお。
どんなゲーム作ろうかなぁ...

>>317
おいら各マジコンの違いに詳しくないんだけど
基本的にはどれも同じで、SDカードとか外部メディアにアクセスするような場合なんかでは
機種によって方法が変わる、といったかんじだと思う。メジャーな機種が情報的には有利かも。
あと、現在主流の外部メディア系のマジコンはGBAでは速度が低下してしまうものが多い。
他にはNDSの自作だと実機テストが多くなるんで、書き込みの手間が少ないのがイイんじゃないかな。
おいらにわかるのはこれくらい...
03201922006/09/02(土) 22:10:14ID:AievlBYK
>>319
うp!うp!
0321名前は開発中のものです。2006/09/02(土) 22:50:46ID:uNLSZq1J
Visual Studioで開発する方法がぜんぜん輪からねぇ・・・
0322名前は開発中のものです。2006/09/02(土) 23:04:56ID:k5DaEm2R
はじめまして。
いきなりですみませんがndstool.exeが欲しいのですが、いろいろ検索しても見つかりません。
どこにあるかわかる方いましたら教えてください。
お願いします。
0323名前は開発中のものです。2006/09/02(土) 23:28:30ID:s6zzCzVQ
>>320
Σ(゚д゚lll) ...別に特別なこと何もしてないですよ...デコード処理もしないで
rawファイルをNitroRomFSに登録しておいて再生してるだけだから...
普通にバッファをループ再生して、再生位置が後半になったら前半更新、前半になったら後半更新してる
更新タイミング取得はTIMER2をサンプリング周期の倍数にあわせて、カスケード接続したTIMER3を見ながらやりますた。
まとまってないんで、どーしても欲しければ明日にでもうpしますよ。

>>321
おいらVS2003でやってるよ。makefile作ってプロジェクトの種類をmakefileにして、
makefileはサンプルそのままか、ちょっと変更すればOK。
ビルドコマンドを「make」、消去を「make clean」、リビルドを「make clean」+改行+「make」にしてる
libndsのヘッダを登録すればlibndsもインテリセンスが効いて便利だぽ。

>>322
DevKitProに入ってるよ。検索してみたけど単体でも入手できるみたいだよ。本家サイトは404かも。
0324名前は開発中のものです。2006/09/03(日) 02:22:49ID:YH4oql1A
>>309
でも洩れのSCLでは普通にMoonShell動いてるのだが。
動かない環境の人は……そうだ、それが任天堂の人が言っていた
「マジコンは動かなくしていく」発言作戦の始まりに違いない
0325名前は開発中のものです。2006/09/03(日) 02:24:34ID:dYGjcFe8
>>317
何故かSCで動くのにM3でダメなプログラムや
M3で正常動作するのにSCでダメなプログラムなどがある。
どちらもDSという同じハードで動かすものなのに謎
0326名前は開発中のものです。2006/09/03(日) 02:33:16ID:eXpLbbFk
>>192
>作りたいゲームのねたが無い


DS版マンガビューアはどこ也?
http://game10.2ch.net/test/read.cgi/handygame/1157020996/
9 名前:枯れた名無しの水平思考 投稿日:2006/08/31(木) 23:37:13 ID:/mHCLKT00
いえ、だからDSを縦にし、タッチパネルをタッチペンで触ったところを
虫眼鏡のようにGBA画面で拡大して見れるような工夫さえあれば
いけると思いまっせ。
これをソフト化したら、多分有料になりそうだけど…
心優しいマルクス的思考の方、タダでつくってくだせぇww

10 名前:枯れた名無しの水平思考 投稿日:2006/08/31(木) 23:39:27 ID:/mHCLKT00
あっ!
忘れてました。
MOON SHELL対応でお願いします。

11 名前:枯れた名無しの水平思考 投稿日:2006/08/31(木) 23:43:07 ID:vNsyEf/J0
とりあえず、死ね

13 名前:枯れた名無しの水平思考 投稿日:2006/09/01(金) 20:38:46 ID:UYnlfTci0
小説のビュアーは出てるな
ttp://www.toheart.to/%7Emanga/toad/frogs/img20060801225119.jpg
0327名前は開発中のものです。2006/09/03(日) 02:40:12ID:XPtERSRf
それよかSNESエミュ移植を(ry
なんで開発されてるのが2つしかないのだろう・・・
しかもどっちも中断orz
0328名前は開発中のものです。2006/09/03(日) 02:56:39ID:eXpLbbFk
PSPエミュレーター

iso化したUMDを4ギガSDカードに入れて
起動するのです。PSPエミュなので
mp4動画の再生も対応
0329名前は開発中のものです。2006/09/03(日) 02:58:40ID:b+XznrEN
>>327
漏れはいろいろ作ってるよ
知人にしか見せてないけどな藁
0330名前は開発中のものです。2006/09/03(日) 07:55:22ID:zpAIIxUO
>>327
おまえは一体「SNESエミュ」に何を求めてるんだ?
欲しけりゃ自分で開発してみればいいじゃないか。

>>329
実行ファイルはいらないから、ScreenShotをうpキボンヌ。
03313172006/09/03(日) 08:37:09ID:saEuhxlL
>>319
>>325
大差はないといった感じですね
とりあえず近いうちに手に入れてみようと思います
0332名前は開発中のものです。2006/09/03(日) 20:48:03ID:NrEspT8Y
>>389
Makefileプロジェクトでやるとめんどくさいのでカスタムプロジェクトで作ろうとしてたんですがうまくいかなくて・・・
素直にMakefileプロジェクトでやることにします
0333名前は開発中のものです。2006/09/03(日) 22:10:44ID:iaE1YTLh
SD…

【SC】SC専用スレ〜其の八〜
ttp://game9.2ch.net/test/read.cgi/gameurawaza/1157022535/
151 名前:名無しさん@お腹いっぱい。 投稿日:2006/09/03(日) 04:45:53 ID:qYR5Z8R4
>>149
MoonShellはこれからM3では動いて
SDでは動かないものに改良していく方針らしい。
理由はSDユーザーは厨メールがうっとうしく
SDユーザーの頭の悪さにほとほと嫌になったかららしい。

152 名前:名無しさん@お腹いっぱい。 投稿日:2006/09/03(日) 04:58:35 ID:FU2Bo8KO
SD
0334Moonlight2006/09/03(日) 22:55:44ID:NGSkBjlp
>>333
あはははは。(失礼
思わず笑ってしまいました。
教えてくださってありがとうございます。何の役にも立ちませんでしたが。(笑
0335名前は開発中のものです。2006/09/04(月) 21:12:16ID:BBzVXUNt
MoonShellは無事にSCでも動き1.41で開発終了とのこと。

DSOrgnaizeは今後M3(M3CF, M3SD, M3miniSD, G6)でのサポート中止。
0336名前は開発中のものです。2006/09/05(火) 19:26:23ID:mecLbBlx
>>326
こんな感じで拡大と全体の両方を同時表示する凡庸ビュアーが出れば
解決できそうですね。さらに90度回転もできれば。でも、重そう。
ttp://puka-world.com/php/upload/niji/img-box/1157451445774.jpg

>MOON SHELL対応でお願いします。
プラグイン、競合したりしないかな。

0337名前は開発中のものです。2006/09/05(火) 19:51:57ID:dDxq0OLg
最近チョコチョコ書き込んでる人でつ。ブロック崩し作ってみますた。
始めて作るゲームといったらやっぱりコレっしょ!?
まだ3面までしか作ってないけど...
ttp://gamdev.org/up/img/7494.zip

ソースいじらないでもステージの追加とかできるよーになってるのですが
ステージ作ってみたい人いますかね...?
0338名前は開発中のものです。2006/09/05(火) 20:33:41ID:dDxq0OLg
バグがあった...2回目以降のゲームで前回の得点からスタートする... ヽ(゚∀゚)ノ
次のリリースで直すさー
0339名前は開発中のものです。2006/09/05(火) 23:16:07ID:Rs6XHT4a
>>336
拡大縮小ルーチンと、jpeg/PNGライブラリさえあえば、簡単に作れると思うが…

俺は別のプログラムで忙しいから、作らんけどね。
0340名前は開発中のものです。2006/09/06(水) 02:54:51ID:30krPfKc
ブロック崩し、バグ修正して10面まで作ったお。
ttp://gamdev.org/up/img/7500.zip
0341名前は開発中のものです。2006/09/06(水) 05:06:05ID:ScyciXqZ
>340
バグ報告

いくらブロックを消しても
後ろの女の子の服が消えないよ ><

0342名前は開発中のものです。2006/09/06(水) 09:57:46ID:BsqMe/3A
>>340
なんだよソース入ってねーじゃねーか
どっかよそでやれよカス
0343名前は開発中のものです。2006/09/06(水) 15:23:10ID:30krPfKc
ちょっとだけ修正。ブロックくずしごときに時間を割くのもアレなんで
とりあえず開発完了として、面白そーなネタ思いついたら次作るさ。
ttp://gamdev.org/up/img/7504.zip

>>341
最初はそーゆーの作ろうかとも思ったんだけど「著作権フリーエロ画像」を発見できなかったんだ...
おいら絵も描けないし...てか、この板エロ禁止かも...
今回のファイルの中に自作ステージ・背景画像の作り方が入ってるので、自分で作ってみてクレ
#でも元からほんのちょっとだけエッチっぽい仕掛けが入ってるような...ないような...
0344名前は開発中のものです。2006/09/06(水) 17:24:17ID:ed6fzJ3A
>>337
M3でも動きましたです。
下画面に大きくでてる女の子股間が
なんともいえないです。

タッチパネルで操作するブロック崩しは
予想以上にいいです。
カーソル操作ものと違って
落下地点にすぐワープできるのが最高。
DSの新たな可能性を感じます。
0345名前は開発中のものです。2006/09/06(水) 19:23:17ID:FHu20s//
>>342
チェケラッチョ!
0346名前は開発中のものです。2006/09/07(木) 01:11:38ID:Zx6550li
DSで256色モード時、各BGごとにパレットを設定できるみたいなのですが、
設定方法がよくわかりません。
どなたか、ご存知ありませんか?
0347名前は開発中のものです。2006/09/07(木) 17:44:03ID:0+dyaC6+
コレかな?やったことないけど。
ttp://nocash.emubase.de/gbatek.htm#dsvideoextendedpalettes

256色モードだとタイル/スプライトのパレット番号は通常意味を持たないが
VRAM(F/G/Iのどれか)を拡張パレット用に設定して、拡張パレットのフラグを立てれば
256色*16セット使用できる。ということだと思われ
0348名前は開発中のものです。2006/09/07(木) 21:39:03ID:Zx6550li
>>347
多分それで間違いないと思います。
手持ちの資料読んでも、拡張パレットはどこに設定するのかが判らなかった。
設定しようにもVRAM(F/G/I)ぐらいしか余ってないから、もしかして?と思ってはいました。
謎がひとつ解けた。ありがとう。
0349名前は開発中のものです。2006/09/09(土) 00:29:46ID:PUI8vkFH
>>406
とりあえずソースうpキボン
0350名前は開発中のものです。2006/09/09(土) 02:25:37ID:IYz33rzO
>>406に超期待w
03511922006/09/09(土) 13:36:57ID:cMufrMd0
Ogg以前にWavは鳴るのか? と思ったので、新規にWav再生を組んでみた。
この時点でブチブチだorz
0352名前は開発中のものです。2006/09/09(土) 20:53:25ID:fnZ99TnU
今日はSDカードの読み込みにチャレンジしてみたよ!
ルートディレクトリの表示までできたさ。(ロングファイルネーム・日本語対応)
非同期読み込み可能なファイルシステムを目指してみるさ。
0353名前は開発中のものです。2006/09/10(日) 00:06:00ID:C1bVPVrl
とりあえずwifiの解析って殆ど終わってたよな?
誰かブラウザに手を出さないのかとワクテカしてる。
0354名前は開発中のものです。2006/09/10(日) 00:30:29ID:Fp/Mh+DZ
個人で作るようなもんじゃない。
0355名前は開発中のものです。2006/09/10(日) 17:00:18ID:x6mPN3ha
教えて。

自作のプログラムを作って動かしたいんだけど。
wifiをするための無線LANカードはある。
当然DSもある。

あとはFlash ROMは絶対に必須?
それか、SDカードやCF用のSuper Cardがあれば動かせる?
できるだけお金はかけたくないので、最低限これが必要というのがあれば
お願いします。
Super Cardで良いのならばCFとSDカードは持っているので、
新しく買わなくてすむので助かるのだが。

本体だけでは無理ですか?
0356名前は開発中のものです。2006/09/10(日) 18:20:43ID:AucepQxO
DSで動かさないんなら、なんもいらないんじゃない?

本体だけでどこに作ったプログラムを保存するつもりか知らんが。
0357名前は開発中のものです。2006/09/10(日) 18:37:29ID:x6mPN3ha
>>356

本体のメモリで動かせない?
動かす方法があるならば、ぜひ教えて欲しいんだ。

ゲームのお試し版ってあるじゃない。
不可能ではないと思ってます。
0358名前は開発中のものです。2006/09/10(日) 20:05:41ID:ub8vS9Zl
>>357
wifimeでぐぐってみるとか。
lite以降のファームでは動かなくなったとか聞いた気もするが。
0359名前は開発中のものです。2006/09/10(日) 20:42:16ID:BbHrYjwq
なるべく安価にというならJavaScriptで組んでDSブラウザで遊ぶという手も...おいらは最初ソレでやってみた。
でも画像表示が異様に遅く、ドラッグが使えない(スクロールしてしまう)ので見切りつけたけど...

それはそーとSDカードのテスト、ディレクトリ移動とファイル読み込みができたー。まだ制限多いけど
ディレクトリエントリーのキャッシュをどーするかが悩ましい...
てかHDDと違ってシーク速いからキャッシュしなくても速いかも...速度測ってみるかな
0360名前は開発中のものです。2006/09/10(日) 22:27:16ID:x6mPN3ha
>>358
サンクスです。
どうあってもGBAカードなりのFlashが必要ってことは理解しました。
0361名前は開発中のものです。2006/09/11(月) 17:30:35ID:xffCU4//
>>192
>作りたいゲームのねたが無い

ムーンシェル上でiniファイルなどのテキスト編集のできるエディタがあれば
DS上だけで global.ini の書き換えが出来て、そこでDSを再起動するだけで
パソコン無しでムーンシェルの行間を変えたり、画像表示のモードを色々と変えられるかも。
英数字のみの日本語非対応で可。


【M3】専用スレ〜其の十〜【Professional】
ttp://game10.2ch.net/test/read.cgi/handygame/1157384138/
106 名前:枯れた名無しの水平思考 投稿日:2006/09/08(金) 19:23:52 ID:sFb2upGP0
>>105
今わかった、そうかこれがムーンシェルか
簡易PCみたいなもんか?

119 名前:枯れた名無しの水平思考 投稿日:2006/09/08(金) 22:05:47 ID:dxprK93w0
今わかった、そうかこれが簡易PCか
ムーンシェルみたいなもんか?

131 名前:枯れた名無しの水平思考 投稿日:2006/09/09(土) 12:26:23 ID:vqIeMlwp0
ムーンシェル、ファイルの移動や
エディタプラグインによりテキスト書き換えも
出来るようになると更に無敵だな
DS上でiniファイルを書き換えられれば
電車の中で設定変更したい時に
にいちいちノートPCを立ち上げたりSD抜いたり
しなくてすむ。



0362名前は開発中のものです。2006/09/11(月) 19:14:17ID:0VKlqzpw
DS用Word+セーブデータから文書ファイルへの変換ツール
DS用Excel+セーブデータから表ファイルへの変換ツール

が最低限PCとしてつかうには必要だな。
あとブラウザ
0363名前は開発中のものです。2006/09/11(月) 19:17:01ID:LcQEqUdZ
PDA買え、普通に。
0364名前は開発中のものです。2006/09/11(月) 19:54:49ID:OkGtkNRC
MoonShellでCG画像を表示する際、
両画面を使うモードにすると、画像比率を崩さないためか
真ん中が切れますが、その切れてる部分は何ドットなのでしょうか。
上下に画像を置いて偽写真を撮りたいとき
目分量で開けてますが


>>362
エクセルのxlsファイルでなく、CSVビュアーでもいいかも
MoonShellのShellフォルダ内にcsv.mspを入れると
以後、拡張子csvのファイルが表組み表示されるのです。
>>192氏が作ってくだされば、以後神として崇められるでしょう。

あと、htmlビュアーとかw
0365名前は開発中のものです。2006/09/11(月) 20:40:21ID:ajwdE75T
>>364
おい、お前!この板の名前を言ってみろぉ!!
0366名前は開発中のものです。2006/09/11(月) 20:41:33ID:lso2KbTW
>>364
お前の釣りネタの為に答える必要はない
0367名前は開発中のものです。2006/09/11(月) 21:03:52ID:x8mux5bT
>>361
エディタならDSOrganizeで出来るでしょ?
03681922006/09/11(月) 23:08:16ID:Kfg8PHlp
スレが流れているのにリクエストが絶えないのは釣りなのか? と勘ぐってしまいますなー。
とりあえず、Wav再生→Ogg再生→某踏みゲの譜面ビュアー、ていうのを目標にしてます。
できるかどうかは別として・・・いまだにWav再生がブツブツだしorz
0369名前は開発中のものです。2006/09/11(月) 23:27:46ID:XLEn9Z2p
おまいがOggOgg言うからおいらもOggVorbis再生をちょっとやってみたじぇ
テキトーにTremorのファイル入れてみたらほぼ修正無しでビルドできてチョトビクーリ

でもなんか遅い...デコードに実時間の倍くらいかかる...これじゃストリーム再生できない...
moonshellなんかではフツーに再生できてるんでなんかやればなんとかなるんだろーけど
なんとかなってもゲームのBGMに使うのはツラそーな気がしたので
おいらは今ままでどーり小市民的に、圧縮無し8bit22KHzでいくことにするよ...(´・ω・`)
03701922006/09/11(月) 23:52:42ID:Kfg8PHlp
SDL DS port

ttp://gpf.dcemu.co.uk/ndsSDL.shtml
とりあえず見つけたんではっときます。
なんかタイマで更新タイミング取るよりVSYNCでやってる人が多いような。
0371名前は開発中のものです。2006/09/12(火) 00:19:51ID:WUwrW0eq
webブラウザは欲しいけどなー。
0372名前は開発中のものです。2006/09/12(火) 01:19:36ID:y4vKeuzJ
貼っとくね

GBA/DS ROM hacking
ttp://www.4shared.com/file/3636881/1f5f088d
0373名前は開発中のものです。2006/09/12(火) 21:34:54ID:+H2zaLnU
誰か訳してくれよ
■ このスレッドは過去ログ倉庫に格納されています