トップページ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/

0194名前は開発中のものです。2006/07/31(月) 05:43:56ID:A1+AapYa
>>192
漢字の使えるテキストメモ帳希望
スタイルブックのは使えん
0195名前は開発中のものです。2006/07/31(月) 07:28:58ID:vL2uDKKB
>>194
MSXエミュ上でテキストエディターを使えばすむ。
確かMSX-DOS2ツールズの中に
漢字の使えるテキストエディタがあったはず。
0196名前は開発中のものです。2006/07/31(月) 08:04:52ID:ONeiiHHo
>>192
>作りたいゲームのねたが無い

コミケ前までに
DS用コミケカタログビュアーをw
0197名前は開発中のものです。2006/07/31(月) 08:57:54ID:wMuvCTeg
カタログデータだけで容量オーバーな気がする。
0198名前は開発中のものです。2006/07/31(月) 10:36:49ID:9ZtdXfJ8
>>192
Win用のdpgファイルプレーヤーかコーデックを…

0199名前は開発中のものです。2006/07/31(月) 10:41:11ID:Np79AVC+
>>196
ttp://members.jcom.home.ne.jp/cal/main.htm
0200名前は開発中のものです。2006/07/31(月) 11:15:00ID:DugNe46w
「GBA-DSプログラミング研究所」が消えてるみたいなのですが
移転先かミラーはありませんか? なんで消されちゃったんだろう

02011922006/07/31(月) 23:04:46ID:l2+ZzGO5
>>193
SCってスーパーカード?
>>194
日本語変換のエンジンをどうするのか小一時間
>>196,197
ファイルシステムがあるようなので意外に実現は出来そう。
コミケカタログのファイル?のフォーマットがわかりません。
>>198
調べずに聞いてみる。dpgってなに?
>>200
http://web.archive.org/web/20050309224100/http://j-gbadev.hp.infoseek.co.jp/index.html
0202名前は開発中のものです。2006/08/01(火) 03:23:14ID:EM01fVD/
>>201
キャッシュありがとうございます。
やはり管理者ごと任天堂に消されたのでしょうか

>dpgってなに?
moonshellなどで使われているNDS用動画フォーマットです。


GBA用のコミケカタログは
メモリの都合で3ファイルぐらいに
わかれてるようですね。
使用するにはGBAデベロッパ環境も必要らしいです。

0203名前は開発中のものです。2006/08/01(火) 13:20:42ID:bO1u5c7P
ローカルに保存したhtmlが見たいのですが、htmlビューアって無いのでしょうか?

DSwebというソフトがソレっぽい事できそうなんですけど、まだ未完のようなので・・・。
ttp://teamnnc.free.fr/phpBB2/viewtopic.php?t=562&sid=3ac1d25059db33290408efdbf37f6760
0204名前は開発中のものです。2006/08/01(火) 22:24:13ID:8eJZAM4J
>>199
コミケ70のデータを変換すると
.elfファイルの作成までいったあとにエラー出て止まる
デベロッパ環境が失敗したのだろうか
0205名前は開発中のものです。2006/08/02(水) 02:33:42ID:DaXdY2Vo
ReinMoon 0.4 betaをGBAMPで使ってみました。
セーブデータの吸出しは特に問題なし。

たまにCFの内容が破壊されるのは、REINやその他FATドライバで新規書き込みを
行ってるものならどれも発生するので、これは無視。

問題はセーブデータのrestore。
バンブラのセーブデータでしか試してませんが、100%失敗しています。
(成功してるように見えるが、実際には壊れたデータが書き込まれている)
同じセーブデータを、ファイル名を短くしてREIN r15でrestoreした場合は
問題ありませんでした。
(REINはファイル名が長すぎるとファイルのopenに失敗するため)
0206名前は開発中のものです。2006/08/02(水) 04:05:41ID:CglaW648
Reinは使えるけどReinMoonは怖くて使えん
0207名前は開発中のものです。2006/08/02(水) 10:01:50ID:ahs8nqsQ
>>196
こちらへどうぞ

【CD-ROM】電子化コミケカタログの活用スレ【PDA】
ttp://sports2.2ch.net/test/read.cgi/comiket/1060629408/
0208名前は開発中のものです。2006/08/02(水) 19:04:50ID:Yb2JtrHo
JPEGみれる画像ビュアーって無いですか?
画像みるだけならできたんですがあまり使いやすくなかったんで
0209名前は開発中のものです。2006/08/02(水) 20:17:09ID:xUeMT7rv
いいこと考えた それを使いやすく改造して俺にくれ
0210名前は開発中のものです。2006/08/02(水) 20:22:47ID:YLGAk7X1
>>208
それは欲しいかも。
地図画像とか何枚か入れて持ち歩きたいなぁって思ったことがあったので
0211名前は開発中のものです。2006/08/03(木) 00:08:11ID:9LOZqD/h
>>208
Moonshell
jpegどころかpngやPSDファイルまで表示可能
AやXボタンで拡大縮小、タッチパネルやカーソルでスクロール可
0212名前は開発中のものです。2006/08/04(金) 00:25:57ID:CrcWfCS3
devkitproで使える、PNGのライブラリって無いですか?
PNG画像をメモリに展開して使いたいんです。
0213Moonlight2006/08/04(金) 15:38:31ID:HWZ8EDXA
touchReadXYのx/yは、タッチパネル補正前の生データだったと思います。
で、px/pyが補正後のデータ。(256x192の範囲内に収まる数値)
ファームから補正情報読み込んでスケーリングとか色々計算するのですが、libndsがやってくれるので基本的に気にしないでOKだと思います。
libndsのソースの、arm7/touch.cのtouchReadXY関数がそれなので眺めてみると楽しいかも。

>>198
ほんとは私がdpgツールの一部として作っておくべきだと思うのですが、WindowsでC言語が使えないので無理っ!(苦笑

>>205
ReinMoonVer0.5betaで修正しました。
Type3フラッシュメモリは書き込む前に全初期化しないといけないのを忘れていました。
教えてくれてTHXですー。

>>206
FATライブラリは同じもの使ってるんですけどね…。ただ、独自拡張してるのでバグがあるかも…(苦笑

>>208
(MoonShellを推したいけど)DSオーガナイズとか?

>>212
オープンソースのlibpngとzlibがそのままNDSでも使えました。
Windowsでlibpngを使ったことがあるなら違和感なく使えると思います。やったことはないですけど。
0214名前は開発中のものです。2006/08/04(金) 18:16:44ID:eZAuZvRJ
SCでも動く改造ツール作ってください。
0215名前は開発中のものです。2006/08/05(土) 15:51:37ID:ATzmwjnG
>>192
CSV形式をエクセルみたいに表示できるCSVビュアー希望

0216名前は開発中のものです。2006/08/05(土) 16:10:36ID:63ZUPrMH
ハードなんですれ違いがもしれんがUSBのキーボードや外付けHDDとかつなげるようにして欲しい
0217名前は開発中のものです。2006/08/05(土) 16:34:16ID:ThRSjFwo
>>216
インターフェイスは??

PSPなら普通のUSBがあるが
0218名前は開発中のものです。2006/08/05(土) 16:50:31ID:APzy0J3I
>>215=217
0219名前は開発中のものです。2006/08/05(土) 21:12:25ID:2FB+F25i
>>213
libpngを落としてきたけど、難しそうだ。
最低限ファイル名orポインタとか関数に渡せば、画像が取り出せれるといいんだけどなぁ〜
0220Moonlight2006/08/05(土) 23:28:48ID:IINTof3Z
>>219
純正libpngが難しければ、MoonShellのpngプラグインのソースからライブラリだけ引っこ抜いたら簡単かもです。
置換で_consolePrintfをconsolePrintfに変えたりとか、そういう作業は必要ですが。
0221名前は開発中のものです。2006/08/06(日) 13:43:10ID:dJkOtY4P
ゲーム製作技術板なのにViewer希望ばかりか藁
0222名前は開発中のものです。2006/08/06(日) 15:44:01ID:HEBinSu5
自作のプログラムをネット等で公開する場合
実行可能形式だけを配布するのは問題なし?
GPLなライブラリとか使ってたらソース公開必須?
実行形式のみ配布して、任○堂からクレーム付けられる可能性は?

今後の為に知識として知っておきたい。
0223名前は開発中のものです。2006/08/06(日) 16:16:55ID:ZtXOiPj6
>>222
何を言っているんだお前は
0224名前は開発中のものです。2006/08/07(月) 04:49:24ID:R/kak1DT
>任○堂からクレーム付けられる可能性
ライセンス違反といえなくもないので
ありえなくもない。

かつては、スーファミのSM調教師瞳ですら
任天堂の指令により制作者が逮捕されていた。
02251922006/08/07(月) 20:00:10ID:DnGCjQop
せっかくABXYボタンあるので、アケ版DDRが新作出てるし、BMSプレイヤとかどうだろう?
とか思った。
コナミは嫌われますか?
0226名前は開発中のものです。2006/08/07(月) 20:56:05ID:Ic5RSCDN
とりあえず作ってみれ
0227名前は開発中のものです。2006/08/08(火) 23:18:37ID:/ly5By2d
どんなゲームがやりたいですか?
0228名前は開発中のものです。2006/08/09(水) 02:02:49ID:y6tILUJU
>>227
偽春菜
0229名前は開発中のものです。2006/08/09(水) 09:51:37ID:wvfqQcJD
>>216
IS-NITRO-UICがUSB clientだけじゃなくってhostにもなればいいのにね。
0230名前は開発中のものです。2006/08/09(水) 12:39:26ID:V6L1h+27
ブラウザがほしい
純正のDSブラウザは遅いからなぁ
携帯サイト専用ブラウザでもいいから誰か作ってくれないですかねぇ
0231名前は開発中のものです。2006/08/09(水) 13:39:50ID:f1XrJuMC
>>230
クロックうp
0232名前は開発中のものです。2006/08/10(木) 11:27:32ID:eReYGMjp
クロックアップでどれだけ改善されるんだろうか
DSブラウザの為に本体改造のリスクかぁ
ちと悩むなぁ
0233名前は開発中のものです。2006/08/10(木) 18:33:02ID:niI4ueWm
当日に間に合うかわからんが、DS用の簡易カタログビューア作ってる

カタログの内容を全部携帯機に入れるんじゃなくて、
サークルチェック結果だけで良いと思うんだ

というコンセプトで作ってるんだがどうなることやら
0234名前は開発中のものです。2006/08/10(木) 18:36:19ID:niI4ueWm
当日って明日だった(笑)

とりあえず3日目に間に合えば良いと思うんだ

無理っぽいけど
0235名前は開発中のものです。2006/08/10(木) 21:05:35ID:I9GN2H/u
ゲームじゃないなら板違い
0236名前は開発中のものです。2006/08/10(木) 22:32:57ID:zR3/h3yd
DSで自分を誘導するというゲーム性が
0237名前は開発中のものです。2006/08/11(金) 01:34:40ID:9U+ERiBW
こっちがベストじゃないだろうか

■ニンテンドーDSの自作プログラムを作ろうぜえ■
http://game9.2ch.net/test/read.cgi/gameurawaza/1116614246/
0238名前は開発中のものです。2006/08/11(金) 16:17:43ID:26yGIs2q
>>233
大期待してる
洩れは紙で済ましてるが

>>237
そこは基地外の場所なので
高尚なDSプログラム話にはふさわしくないw
0239名前は開発中のものです。2006/08/11(金) 21:52:33ID:4YheNsYP
devkitpro ARMSをインストールまではしたけど、それからの使い方がさっぱりわからん。

頼む誰か。
理解する取っ掛かりがほしいので、簡単なサンプルプログラムのmakeまでを
解説している日本語のサイトを教えてくれ。
0240Moonlight2006/08/11(金) 22:58:14ID:9yKR/DgJ
勝手にdevkitProUpdater-1.3.5.exeをオプションそのままでインストールと決め付けました。
[C:\devkitPro\examples\nds\templates\combined]フォルダに入って、makeと打てばOKです。
最初からコンパイル済みなので気になるようなら、make cleanとすればコンパイル済みバイナリは全部消えます。(なんで最初からコンパイルしてあるんだろう?)
サンプルに入ってる中でARM7とARM9がまとまっているのはcombinedしかないし、これが一番単純なのでおすすめです。
コマンドプロンプトの使い方は当然知っているとシンジテル…
0241名前は開発中のものです。2006/08/11(金) 23:44:13ID:4YheNsYP
>>240
ありがとう。
makeを実行したら色々なファイルが作られるのを確認しました。
NDSにWifiでndsファイルを送信したら、崩れたロゴが出て固まりましたが・・・。
このサンプルプログラムを動かすのにはFlashROMが必要なのでしょうか?
(実は持っていない)

Nintendo DS - Wireless Multiboot
http://users.belgacom.net/bn967347/

このサイトにあったサンプルのndsファイルは実行できたので、とりあえず
開発環境と、プログラムを実行させる環境は整ったので、後は自分の
努力しだいと判断します。
さて、今からC言語の勉強を始めます。(マテ

取っ掛かりができましたので、回答してくださって感謝します。
ありがとうございました。
0242名前は開発中のものです。2006/08/12(土) 00:03:09ID:Eayw3C5n
マジで今からC言語を勉強するなら悪いことは言わない、やめとけ
0243名前は開発中のものです。2006/08/12(土) 00:10:55ID:h3w8Q1SX
ご助言感謝。

でも、C言語とC++はどちらにしても今から勉強するんですよ。
ナニモノモ オレヲ トメルコトハ デキナイ。
ついでにNDSでの開発も覚えようかという訳です。
0244名前は開発中のものです。2006/08/12(土) 00:48:30ID:k4g8gfad
NDSじゃなくてGBAからはじめた方が無難
というかGBにしておけ
0245名前は開発中のものです。2006/08/12(土) 00:57:41ID:sfNXM7kP
>>243
大丈夫
キミの能力がブレーキになるYO!
0246名前は開発中のものです。2006/08/12(土) 01:12:30ID:S5X708ZL
応援するお^^
0247名前は開発中のものです。2006/08/12(土) 01:12:32ID:h3w8Q1SX
>>244
そうは思ったんだけどね。
NDSなら手持ちの物で環境が整えられるんで、これで行きます。

>>245
ダカラ ココロノ ブレーキハ カケラレナイ!
0248名前は開発中のものです。2006/08/12(土) 01:24:09ID:h3w8Q1SX
>>246
ガンバル!
アリガトウ!
0249Moonlight2006/08/12(土) 01:25:52ID:OVMMuGXv
うろ覚えで。Wifiでhomebrewを起動する方法は、(私が知ってるのは)2種類あったと思います。
1・F2AなどのFLASHタイプのGBAカートに書き込んで、WifiMeからGBAカートを経由して起動する。
2・FlashMeする。

1はGBAROM領域からメインメモリにコピーするブートローダーが必要だったような気がします。たぶんSC/M3とかは不可。
2ならFlashMeがRSA認証を潰したので、未認証(要するにhomebrew)のROMイメージがそのまま起動できたと思います。

懐かしー。うろ覚えなので間違ってたらごめんなさい。
0250名前は開発中のものです。2006/08/12(土) 01:41:37ID:rAKEFzkn
NDSkybookのセーブ機能まだー?
02511292006/08/12(土) 05:16:09ID:d02VPBZk
>>250
いまいち、「コレダ!」っていうセーブ先が決まらず放置に・・・
blogでリクエストもらったので、
とりあえず週末中に、日本語ファイル名対応版をリリースします。
02522332006/08/12(土) 12:36:03ID:/B751hXg
http://sports2.2ch.net/test/read.cgi/comiket/1060629408/
ゲームでない以上、確かにスレ違いだと思うので、こちらに移動させていただきました。
0253名前は開発中のものです。2006/08/14(月) 15:12:18ID:kqJN+BQk
>>241
基本的にwifi経由の実行はRSA認証がかかっているためhomebrewは実行できない。
ただ、認証がかかっているのはARM7とARM9のベースコード部分だけで、オーバレイ部分にはない。
MARIWOかなんかのコードがオーバレイ部分に飛んでいるものがあって、これを利用して
素のDSでhomebrewが実行できた…………………………………………………………時期もあった。

ある時期のDSから上記のMARIWOには対策が打たれて実行できなくなった。んで、FlashMeすればいいんだけど、
FlashMeするには結局ハードへ若干の改造が必要&失敗するとひどい目に遭うんで、結局PassMe系と比べた
利点がなくなって流行らなくなって現在に至る。

んじゃなかったかな。やっぱりうろおぼえスマン。
0254名前は開発中のものです。2006/08/14(月) 15:20:46ID:kqJN+BQk
ちなみに、belgacomにあるサンプルは、単に「正式にRSAキーを取った」wifi配布ゲームをキャプチャしただけなんで、
最近の対策済みDSでも実行できる。
0255名前は開発中のものです。2006/08/14(月) 15:43:44ID:3DqFE+/1
>>251
セーブ機能マジで期待しております。夏ばてなどなされないようお体にはお気を付け下さい。
0256名前は開発中のものです。2006/08/14(月) 21:47:50ID:TUBmIhpR
テストで作ったプログラムが、
SuperCARDでは起動して、M3だとロード画面で止まってしまう。

M3でプログラム動かす時は、何か手順踏まないと動作しないの?
0257名前は開発中のものです。2006/08/15(火) 00:37:43ID:mCVrhKr9
>>256
クライアント通す通さないぐらいしかチェックポイントが見当たらんが・・・。

liboggとlibvorbisをビルドしてみた。
サウンド周りってARM7かARM9どっちでビルドすればいいんだ?
横着してサウンド周りの資料やサンプルを見ずにビルドだけしたんだがorz
0258Moonlight2006/08/15(火) 01:59:28ID:mQlnaCaz
>>256
基本的にhomebrewモノはそれぞれのアダプタ毎に対応する必要があるみたいです。
せめて起動シーケンスくらい統一してくれれば…と思うのはワガママなんでしょうね。

一応私が調べた範囲だと、
・M2もしくはアドムービー
ブートローダ無し。これだけファイル名は'_BOOT_MP.nds'固定。別途FINEやMoonShellなどのメニューローダーを使えばファイル名は可変。
・SuperCardCF/SD(たぶんMiniSDもMicroSDも同じ)
フラッシュカートと同じタイプのブートローダが必要。ndstoolや色々なヘルパーアプリがある。
・M3CF/SD/MiniSD
ROM開始時にAボタンではなくSTARTボタンで起動するならヘッダ無しでOK。(DEMOモード?)
普通の感覚だとAボタンを押してしまう(と思う)ので、ブートローダを付けると親切だと思います。
私は、pepsiman-m3powerloader-20060117.binを使っています。

ブートローダ不要、ファイル名可変なアダプタ。
・MaxMediaLauncherCF
・EZ-Flash4(MiniSDもMicroSDも一緒?)
・Ewin2MicroSD
・MagicKey2/3
後発のアダプタはみんな大丈夫なんですよね。

生ROMイメージだけ配布して、ヘッダはユーザ各位勝手に自分用のを付けてくれってもアリだと思います。
ちなみに、ディスクアクセス方法は、物の見事に全部違います。まったく共通性がありません。少しは(ry
0259Moonlight2006/08/15(火) 02:01:52ID:mQlnaCaz
>>257
ストリームPCM再生ってどうやるんでしょうか。
どちらにしても、ARM7でまともに使えるメモリは64kbyteしかないし33MHzはデコードに非力すぎるので、ARM9で展開、ポインタか共有メモリ経由でARM7に渡して再生、という感じになると思います。
びっくりしたのですが、DevKitARMr18(r19?)以降は、C++サポートをARM7側にも拡張したらしく、ARM7メモリが残り5kbyteくらいしか使えなくなっています。
まともに組むならDevKitARMr17がオススメです。
MoonShellのストリーム再生はいまだにプチノイズが乗るのですよ…だから参考にしないで(笑
ぜひぜひ信頼性の高い方式を開拓してほしいです。そしてソースプリーズ。(笑
0260名前は開発中のものです。2006/08/15(火) 05:53:55ID:LCNocl7z
トラックバック:http://game9.2ch.net/test/read.cgi/gameurawaza/1116614246/
0261名前は開発中のものです。2006/08/15(火) 08:22:30ID:t+707qIL
>>258
現在試した方法は、
・SuperCard miniSD
devkitproでコンパイルしたファイルをそのままコピーして実行可能。
・M3
ある自作プログラムが、Devkitproでコンパイルしたファイルそのままで
Aボタン・スタートボタン共に動作可能。但し動かない時もあり?
別の自作プログラムは、Aボタン・スタートボタン共に動作せず。

ブートローダ付けて試してみようと思ったけど、
今から仕事なんで帰ってきてからだorz
0262名前は開発中のものです。2006/08/15(火) 13:44:27ID:Z/PyVByn
M3は糞だから対応しなくても問題ないよ
0263Moonlight2006/08/15(火) 16:44:35ID:mQlnaCaz
>>261
M3でもローダ無しでAボタン起動できる可能性があるということでしょうか。
むぅ。改めて調べてみる必要がありそうです。
私が調べたのはずいぶん前なので、ファームの更新でhomebrewサポートが強化されているのかもしれませんね。
ファーム書かせろもしくは固定ファイル名起動専用ファーム作れと随分突っついたのですが無碍に断られました。(当たり前(苦笑
0264名前は開発中のものです。2006/08/16(水) 13:35:24ID:mLNsWot8
>>192
>作りたいゲームのねたが無い
moonshellのプラグインフォルダに入れて使える
mp4やdivxファイル再生プラグイン
0265名前は開発中のものです。2006/08/17(木) 15:52:06ID:+BT+gal0
作る際、SC用とM3用の違いというのは
どうやってわけるのだろう。
そして、同じプログラムで両方で動くものと
専用ものでないと動かないものの差は
どこから来るのだろう。



>>192
>作りたいゲームのねたが無い

N Scripter。

帽子屋、活動やめちゃったし
0266名前は開発中のものです。2006/08/17(木) 16:00:34ID:TIHaO9Ud
どっちもゲームじゃねぇYO!
0267名前は開発中のものです。2006/08/17(木) 21:18:14ID:MHdljUvu
>作る際、SC用とM3用の違いというのは
>どうやってわけるのだろう。

ちょっとググったらこんなのが出てきた
ttp://japan.cnet.com/news/media/story/0,2000056023,20203307,00.htm
0268名前は開発中のものです。2006/08/17(木) 21:19:30ID:Iib4HyQh
>>192

じゃあ、アイドルマスターDSをつくってくれ
wi-fiやタッチパネルの特性も活かせる良い媒体だ
0269名前は開発中のものです。2006/08/17(木) 21:19:57ID:UU4Z/G1E
>>265
SCとM3、同じプログラムが動いてくれないと開発が非常に面倒になりそう。
他の奴でも個別修正必要となったら、やってらんね〜

>>258
CFやSDのディスクアクセスは、gba_nds_fat使えば一応SCでもM3でも
プログラム的に互換性保てるんですよね?
ところで、書き込み不安定な原因って何なんでしょうか?
回避方法は、PCでダミーファイル作って、それに上書き?
0270Moonlight2006/08/17(木) 21:48:04ID:PHnIFK0a
アダプタごとの違いについての私感。(あくまで私感で)
NDS開発界隈で標準となっているchism氏作gba_nds_fatはFAT互換関数と多数のアダプタ対応とアダプタ自動検出が売りだと思います。
それ自体は素晴らしいのですが、いかんせん最近別のことをしているらしく開発が滞っています。
全てのアダプタを持っていないと自動検出コードは書けないので、新しいアダプタの追加などもできません。

そこで、対応できる範囲を狭めて一つのROMイメージで賄ったのがSaTa.氏です。独自拡張でM3MiniSDやSCSDなどが入っていますが、所持し自分で確認している範囲だと思います。
それとは別に、自動検出を捨て、とにかく多種のアダプタに対応したのが私です。このため、セットアップで(ユーザが)アダプタを選択する必要があります。

どちらが良いとは言えませんが、できるだけ同じROMが使えるのがベターですよね。セットアップ面倒くさいし。

また、アダプタ毎に違う部分はディスクアクセスだけではなく、拡張メモリ領域や起動方法が異なります。
ぶっちゃけ全てに対応するのは無理。(苦笑

>他の奴でも個別修正必要となったら、やってらんね〜

やってらんね〜〜〜〜。です。(苦笑
0271Moonlight2006/08/17(木) 22:07:13ID:PHnIFK0a
>>269

>ところで、書き込み不安定な原因って何なんでしょうか?
gba_nds_fatのFAT対応が不完全だからです。
fseekバグ、フリークラスタ検出バグ、二重FATエリアの無視、最適化オプションによる挙動の違い、などなど。
本当はchism氏が直してくれるといいのですが、前述のとおり彼はほかの事をしているみたいで。
ちなみに、fwriteバグは直っているそうなので、新規ファイルへのシーケンシャルな書き込みだけなら大丈夫…らしいです。私は信じていませんが。chkdskでエラー出るしね。
それなりに私も頑張ってみたのですが、FATわからない。お手上げっ!でした(苦笑

>回避方法は、PCでダミーファイル作って、それに上書き?
正直あんまり安全とは思えないのですが…普通にfwriteするより安全だと思える方法を。
1.Windows上で書き込み用ダミーファイルを作る。
2.gba_nds_fatでディレクトリエントリからダミーファイルの先頭クラスタを取得する。
3.クラスタリンクリストを使ってファイルサイズ分のセクタ番号一覧を作成して、テーブルにでも保存しておく。
4.あとはセクタ番号指定のダイレクト書き込みでディレクトリエントリやFATなどを一切触らず書き込む。
これで、とりあえずそれなりに安全な書き込みができると思います。

本当は、3のテーブル作成もgba_nds_fatに助けてもらいながらだと非常に楽なのですが、特にFAT32コードが信じられなくて。挙動が変なことが多数です。(最適化オプションによって安定するのかもしれませんが)
なんというか。面倒。すごい面倒。FAT16マンセー。SDFormatter最高。

でもなんというかチラ裏なのですが、「読み込めないぞなんだこれつかえねー」っていう被害と「書き込み失敗ディスク飛ばしたー」って被害では、レベルがまったく違うと思います。めんどくさいですが。
(うるせーよどこにも「正常に書き込めます」って書いてねーだろーってのもアリ…有?無?w)

まぁマジコンのファームウェアも自動セーブ退避やらなにやらでFAT壊すんだから、個人homebrew開発者が気にすることじゃないって思いますけどね。
0272名前は開発中のものです。2006/08/17(木) 23:04:07ID:UU4Z/G1E
>>271
うへぇ。クラスタリンクまで管理せんとダメっすか〜
FAT16のみの対応でいいから、まともに書き込みできる奴が欲しいですね。
まぁ、自動判別できなくても、アダプタ毎に組み込むgba_nda_fatが違ったとしても、
まともに動くのが欲しいっす。
あ〜、FAT16って最大2Gまででしったっけ?NDSで2Gも必要?


書き込みに不安があると、ゲームでもアプリでもデータ保存に困ります。
書き込み失敗して、
「おきのどくですが、ぼうけんのしょはきえてしまいました」
と出て、orz な状態で呆然とするのは勘弁っすw
0273名前は開発中のものです。2006/08/19(土) 21:34:55ID:Whiy4IfG
ReinMoonのインストールフォルダを、MoonShellと同じフォルダに統合して欲しいです。

524,AFFJ,Final Fantasy 3,ファイナルファンタジー3,0x0000,cd1000,
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じゃだめ?
■ このスレッドは過去ログ倉庫に格納されています