1 名前:名前は開発中のものです。 [2008/04/08(火) 07:05:13 ID:MngpkM4u] NDSで何やら作ってみようという人の為のスレ。ライセンス不要。 初心者歓迎。質問歓迎。英語苦手な人歓迎。冷やかし歓迎。ネカマ歓迎。 資料、リンク等 nocash.emubase.de/gbatek.htm www.bottledlight.com/ds/index.php/Main/HomePage www.helloworld.jp/~duke/nintendo_ds/ 開発環境 www.devkitpro.org/ sourceforge.net/project/showfiles.php?group_id=114505 関連スレ ゲームボーイアドバンス(GBA)開発@ゲ製板(避難所) bbs.gamdev.org/test/read.cgi/gamedev/1055111303/ ゲームボーイアドバンス(GBA)非公式開発 Part2 pc5.2ch.net/test/read.cgi/gamedev/1099119005/ 前スレ pc11.2ch.net/test/read.cgi/gamedev/1175812090/
650 名前:名前は開発中のものです。 mailto:sage [2009/02/17(火) 06:40:17 ID:98N4Azzj] つかむしろこの制限が楽しくてやってる人ばっかりだと思ってたぜ スプライトあるハード弄ったのはDSが初めてです
651 名前:名前は開発中のものです。 mailto:sage [2009/02/17(火) 11:13:59 ID:7F1cTAxW] そもそもDirectXが出てくる時点で(ry
652 名前:名前は開発中のものです。 mailto:sage [2009/02/17(火) 12:01:44 ID:YdMRZ2fK] 2Dにも使える高速3Dエンジンを搭載しているんだがな line,tri,quad,texture他に何が必要なんだ?
653 名前:名前は開発中のものです。 mailto:sage [2009/02/17(火) 13:02:26 ID:6ifU8rUt] なんで高速3Dエンジンがあるのに旧世紀の遺物のスプライトがあるの?
654 名前:名前は開発中のものです。 mailto:sage [2009/02/17(火) 13:17:46 ID:CYgZ2Ha2] >>653 GBAとの互換性のため 3Dがさっぱりな俺のため
655 名前:名前は開発中のものです。 mailto:sage [2009/02/17(火) 17:34:19 ID:+gJCRER9] 結局DSiでGBA切り離したし 任天堂ってやることがいちいちうざいな
656 名前:名前は開発中のものです。 mailto:sage [2009/02/17(火) 17:54:12 ID:CYgZ2Ha2] DSiメニューにハッキングできたらな 内蔵フラッシュからhomebrewを起動したい
657 名前:名前は開発中のものです。 mailto:sage [2009/02/17(火) 18:26:20 ID:98N4Azzj] >>653 あと3Dって基本片方の画面だけだからな そのおかげでもう片方の何に使うかは皆苦労するみたいだけれども
658 名前:名前は開発中のものです。 mailto:sage [2009/02/17(火) 18:33:53 ID:gvnaSd9X] へえ そいつは凄いや
659 名前:名前は開発中のものです。 mailto:sage [2009/02/17(火) 18:41:17 ID:4kZeiqJz] >>655 好きなの買ってこい GBA GBASP GBAmicro DS DSLite
660 名前:名前は開発中のものです。 mailto:sage [2009/02/17(火) 20:42:24 ID:Wvxt0Lcq] soundPlaySample(const void* data, SoundFormat format, u32 dataSize, u16 freq, u8 volume, u8 pan, bool loop, u16 loopPoint); こいつでフリーズする・・・ これを使って音楽鳴らすだけのサンプル作ったら動作したのだが 実際の処理に組み込んだ途端この関数を呼ぶタイミングで固まる。 arm9から無理にアクセスしてるのが原因かと推測するが 誰か同じような目にあってない?&どうやって解決した?
661 名前:名前は開発中のものです。 mailto:sage [2009/02/17(火) 21:08:03 ID:9keTwm9l] そっちじゃねーよw あんたは根本的なとこで間違えている
662 名前:名前は開発中のものです。 mailto:sage [2009/02/17(火) 21:43:46 ID:98N4Azzj] soundPlaySampleでフリーズしたのはエミュにideas使った時だけだなぁ テストで簡単なゲーム作ったけど問題なく動作したよ
663 名前:名前は開発中のものです。 mailto:sage [2009/02/17(火) 21:57:29 ID:Wvxt0Lcq] 根本的なとことはどこでしょう? この行だけコメントアウトすれば普通に動くんですが(当然音は出ないが・・・)
664 名前:名前は開発中のものです。 mailto:さげ [2009/02/18(水) 05:35:08 ID:jvIOLsTR] 調べないズルをせずに、自分のプログラムの方を一行ずつコメントアウトして、何が悪いのか怪しいのか調べなよ。
665 名前:名前は開発中のものです。 mailto:sage [2009/02/18(水) 18:57:18 ID:vVcHPw4L] 上のPSPでビーマニっての見て思ったんだが、 DSってタッチパネルで複数の箇所を同時押しとか出来るのか? 反応速度もそんなに良くないみたいだし。
666 名前:名前は開発中のものです。 mailto:sage [2009/02/18(水) 19:30:07 ID:ZSKmh/q4] >>665 無理不可能 ここ と ここ をタッチすると ↓ ↓ ○ ◎ ○ ↑ ここを押したことになる
667 名前:660 mailto:sage [2009/02/18(水) 20:38:59 ID:FEj3mrZu] irqInitするとFifoの割り込みがつぶされるのが原因でした。 arm7の機能をarm9から簡単アクセスしたい場合はirqinit使っちゃだめなんですね。
668 名前:608 mailto:sage [2009/02/20(金) 19:39:10 ID:2DMYgGyo] >>638 万が一、使用している人がいれば使用中止してください。 ・左右非対称のモデルの展開がおかしい ・テクスチャの貼り付けがおかしい の2件の問題があります。 修正の目処はついているので、近日中に修正&公開予定。 >>639 d やってみたら意外と簡単ですYO!
669 名前:名前は開発中のものです。 mailto:sage [2009/02/20(金) 23:45:53 ID:B1PJ8AXs] ニンテンドーDS用MASTER,20G,DEATH,SHIRASE 操作系(背景さえ)もTGM,TAP,TIから選択可能。 rs314.rapidshare.com/files/142297349/NDS_TGM_20080815.zip 開発終了までにソースが公開されなかったことが悔やまれる。 NDS_TGMの作者が実験で作った音ゲー? www.nicovideo.jp/watch/sm2388469 マジ、自分のニンテンドーDSで遊びたい。 やりまん氏の弟子作 DS版ベラボーマン www.nicovideo.jp/watch/sm5112692
670 名前:608 mailto:sage [2009/02/21(土) 21:05:24 ID:0EjIkX44] 修正版。 axfcが使えなかったので、 かりんと大57364 パスはメ欄。 添付のndsはAボタンでモデルが切り替わるので 試してみて欲しい。 mikoto対応のmqoでもうまくモデルが表示される よう変更してみた。 あとαは今ひとつ扱いに困ったので停止させてある。 なにかアドバイスがあればお願いしたい。
671 名前:名前は開発中のものです。 mailto:sage [2009/02/22(日) 00:07:52 ID:HFKbZOsM] >>669 TGMとM原の信者乙
672 名前:名前は開発中のものです。 mailto:sage [2009/02/22(日) 00:25:50 ID:wOpJ9pB4] ベラボーマンはダウンロードできないのか・・・
673 名前:名前は開発中のものです。 mailto:sage [2009/02/22(日) 07:31:34 ID:VExqFJq1] マリオ64移植できてるってことはDSの方が性能上なのか
674 名前:名前は開発中のものです。 mailto:sage [2009/02/22(日) 12:53:44 ID:8un20adA] 性能上のところもあれば下のところもある (解像度やテクスチャの問題もあるが) 将来的にSNESとN64を完全に再現出来る携帯機が欲しいところ
675 名前:名前は開発中のものです。 [2009/02/22(日) 15:07:28 ID:PC4UB1Nx] 開発環境の構築について教えて頂きたい事があるのですが、 参考サイト等に記載のやり方でやってもまったく上手くいきません。 例えば>>78 氏のサイトにあるような1.4.4をインストールしても レミングス等はコンパイル不可でした。("SOUND_8BIT"が定義されていない、とか関数の引数がおかしい、とか) 最新の1.4.9も同様で、Palibフォルダ内のexamplesフォルダのテキスト"Hello World"等もコンパイル出来ないです。 (構造体メンバの"aux"が無いとか) どうやったらちゃんと開発環境出来ますか? (ちなみに当方WinVISTAです)
676 名前:名前は開発中のものです。 mailto:sage [2009/02/22(日) 16:02:25 ID:uwaKrkXC] レミングスDSは公式にDevKitPro r20と書いてあるだろう ここからr20を探して入れろ sourceforge.net/project/showfiles.php?group_id=114505&package_id=124207 Palibも同様に080823版を使う場合はr21を入れろ
677 名前:675 mailto:sage [2009/02/22(日) 22:34:35 ID:PC4UB1Nx] >>676 devkitPRO 1.4.9 devKITARM r21 Palib 080823 の組み合わせでも不可です。 C:/devkitPro/palib/lib/include/nds/arm9/PA_General.h:402: warning: 'getIPC' is deprecated (declared at c:/devkitPro/libnds/include/nds/ipc.h:64) C:/devkitPro/palib/lib/include/nds/arm9/PA_General.h:402: error: 'TransferRegion ' has no member named 'aux' C:/devkitPro/palib/lib/include/nds/arm9/PA_General.h:403: warning: 'getIPC' is deprecated (declared at c:/devkitPro/libnds/include/nds/ipc.h:64) C:/devkitPro/palib/lib/include/nds/arm9/PA_General.h:403: error: 'TransferRegion ' has no member named 'aux' In file included from C:/devkitPro/palib/lib/include/nds/PA9.h:58, from c:/devkitPro/palib/examples/Text/Normal/HelloWorld/source/ main.c:3: C:/devkitPro/palib/lib/include/nds/arm9/PA_Keyboard.h: At top level: C:/devkitPro/palib/lib/include/nds/arm9/PA_Keyboard.h:45: error: 'Keyboard' redeclared as different kind of symbol c:/devkitPro/libnds/include/nds/arm9/keyboard.h:113: error: previous declaration of 'Keyboard' was here という感じで、auxが無いだの、Keyboardの定義がおかしいだのでエラーです。 組み合わせるバージョンの指定は厳しいんですね・・・。
678 名前:名前は開発中のものです。 mailto:sage [2009/02/23(月) 00:00:14 ID:Ie1BTwA3] ・・・もしかしてdevkitPRO 1.4.9を入れた上からdevkitARM r21を上書きした?
679 名前:675 mailto:sage [2009/02/23(月) 00:29:52 ID:4p6+MeQR] >>678 いえ、devkitPRO 1.4.9入れてからです。 devkitARMをリネームして退避 → r21を導入。 という流れです。
680 名前:名前は開発中のものです。 mailto:さげ [2009/02/23(月) 03:33:49 ID:DlqqnuXR] libndsのバージョン合わせてないオチじゃないよな?
681 名前:名前は開発中のものです。 mailto:sage [2009/02/24(火) 00:28:19 ID:hxRbqK/7] >>680 libndsのバージョン合わせまで必要なんですか? (そこまで言及してる解説サイト様も無かったので・・・・) 結局のところ、コンパイルするやつに合わせてバージョン変えるしかない、ですか・・? かなり、不便なんですね・・・。
682 名前:675 mailto:sage [2009/02/24(火) 00:44:19 ID:hxRbqK/7] >>680 書き忘れましたが、ご指摘されたlibndsについて libnds-20071023 等も試してみましたが、 fat.hが無い等のI/Fエラーで結局コンパイル出来ません。 もう何が正しいやらサッパーリです(TヘT)
683 名前:名前は開発中のものです。 mailto:あぁ春休みか・・・ [2009/02/24(火) 01:00:03 ID:9qOCdOaY] libfatインスコしてないやんけ。
684 名前:名前は開発中のものです。 mailto:sage [2009/02/24(火) 01:17:29 ID:GC6o6RLt] 環境構築すら人に頼らないとできない時点で、 この先の困難さを思い知ったほうがいいなw
685 名前:名前は開発中のものです。 mailto:sage [2009/02/24(火) 01:30:53 ID:l7+IouWc] ぽまいら冷たいお(´;ω;`)
686 名前:名前は開発中のものです。 mailto:sage [2009/02/24(火) 01:44:08 ID:GC6o6RLt] あったくしょうがねぇな ほらよw ttp://forum.palib.info/index.php?PHPSESSID=b8d07f5e567d8f3cd592ab1f8fefa6ac&topic=6319
687 名前:名前は開発中のものです。 mailto:sage [2009/02/24(火) 01:49:19 ID:hxRbqK/7] >>683 libndsフォルダをリネーム退避 → ゲットしたlibndsを導入で、消えてたみたいです。 結局のところ、どのソフトのどのバージョンを入れるのが正解なんですか?
688 名前:名前は開発中のものです。 mailto:sage [2009/02/24(火) 07:38:19 ID:9o3pnbz7] どのバージョン使ってるか作者も把握してないのはよくあること。
689 名前:名前は開発中のものです。 mailto:sage [2009/02/24(火) 07:42:34 ID:9o3pnbz7] むしろどのライブラリのどのバージョンの組み合わせでどのバージョンのHomebrewをコンパイルできたか情報もらえたら助かる。
690 名前:名前は開発中のものです。 mailto:sage [2009/02/24(火) 14:06:11 ID:9qOCdOaY] なんかいろいろ酷くて疲れたわ。
691 名前:名前は開発中のものです。 mailto:sage [2009/02/24(火) 15:01:15 ID:l7+IouWc] ぽまいら死ねぇぇ(´;ω;`)
692 名前:名前は開発中のものです。 mailto:sage [2009/02/24(火) 15:34:21 ID:yD6D+5sj] ID:l7+IouWcが一番何もしてない件
693 名前:名前は開発中のものです。 mailto:sage [2009/02/24(火) 17:53:30 ID:6cmZpWTE] 単発が言う件
694 名前:名前は開発中のものです。 mailto:sage [2009/02/24(火) 18:13:58 ID:jZRLhqc7] 6cmの奴がうるさいぜ
695 名前:名前は開発中のものです。 mailto:sage [2009/02/25(水) 06:27:33 ID:rYtUGQFi] DSLua(v0.7)のソケット関数が使えないんだが、未実装なの? Wifiの初期化は出来るみたいなんだが
696 名前:名前は開発中のものです。 mailto:sage [2009/02/26(木) 00:46:51 ID:KPhZLOYY] 過疎り杉ワロタw
697 名前:名前は開発中のものです。 mailto:sage [2009/02/26(木) 08:42:13 ID:w5iYbh+j] 元からこんなんじゃ
698 名前:名前は開発中のものです。 mailto:sage [2009/02/26(木) 10:02:08 ID:Jd9bcMX/] DSってサウンドは普通にいいな DQ4やDQ5も結構音質よくてクオリティよかったし
699 名前:名前は開発中のものです。 mailto:sage [2009/02/26(木) 10:50:13 ID:w5iYbh+j] スピーカーはだめ イヤホンだとそれが判る
700 名前:名前は開発中のものです。 [2009/02/26(木) 23:06:26 ID:LTHzrsdh] soundPlaySample(const void* data, SoundFormat format, u32 dataSize, u16 freq, u8 volume, u8 pan, bool loop, u16 loopPoint); この関数を使用して、1分程度のPCMを再生しようとするのですが、 20秒程度で停止してしまいます 容量制限などあるのでしょうか?ご存知の方、お教えいただけないでしょうか ポインタもサイズも渡してるんでメモリなめてるだけだと思ってるんですが…
701 名前:名前は開発中のものです。 mailto:sage [2009/02/27(金) 02:01:00 ID:wr3mrhBf] メモリ足りてる?
702 名前:名前は開発中のものです。 mailto:sage [2009/02/27(金) 02:08:04 ID:G1JMczya] (;^ω^)
703 名前:名前は開発中のものです。 [2009/02/27(金) 02:16:05 ID:w0XRUM04] 近ごろはライブラリ部分を疑って、自分のプログラム部分は疑わないのがトレンディ? そういう質問が続くよね。
704 名前:名前は開発中のものです。 mailto:sage [2009/02/27(金) 12:47:20 ID:l9Udippu] 7度デバッグしてから人を疑えと祝一平が言ってた
705 名前:名前は開発中のものです。 mailto:sage [2009/02/27(金) 19:33:44 ID:8EIL6nuq] 皆ってどんな思いでプログラムしてる? 1.漠然と解析して動かしたい(ex.動かしたら満足) 2.DSという媒体をいかして遊びたい (ex.タッチペン等を使ったアイディアを生かし任天堂に企画持込) 3.オリジナルでゲーム作りたい(ex最終目標は販売) 4.同人でゲーム作りたい(exコミケで販売)
706 名前:名前は開発中のものです。 mailto:sage [2009/02/27(金) 22:12:19 ID:wkWc0+ir] >>705 1と2。 だけど、任天堂に企画を持ち込む気はない。
707 名前:名前は開発中のものです。 mailto:sage [2009/02/27(金) 22:14:48 ID:lHmooKwd] Nスクの不完全再現 実現出来れば多くのアレがアレできるので個人的に嬉しい しかし道は長い
708 名前:名前は開発中のものです。 mailto:sage [2009/02/28(土) 01:19:19 ID:Uk8XxPzh] 仮に販売できる作品が出来たとしても、客はマジコンを持ってることが前提になる?
709 名前:名前は開発中のものです。 mailto:sage [2009/02/28(土) 03:06:41 ID:YWGCCuBr] そのレベルのスキルの持ち主なら、普通にwinで作って堂々と販売すればいいじゃない
710 名前:名前は開発中のものです。 mailto:sage [2009/02/28(土) 07:12:29 ID:IJaRMG7X] 何かとマジコン問題視されてるし、 非公式開発用の代用品があればなぁ。
711 名前:名前は開発中のものです。 mailto:sage [2009/02/28(土) 12:51:37 ID:OixSpQER] ゲーム作ったものの配布するかどうかで結構迷ったな まだ弄れるところがあるってことで結局見送ったけど 実機での動かし方とか質問されても答えにくい…
712 名前:名前は開発中のものです。 mailto:sage [2009/02/28(土) 17:13:12 ID:9WcANibW] 公開してる人は使い方の分かる人だけとか書いてるし 特に動かし方は何も書かなくておk 何か質問されたらグーグルのアドレスを貼る
713 名前:名前は開発中のものです。 mailto:sage [2009/02/28(土) 17:41:38 ID:Uk8XxPzh] いずれにしても金儲けは出来そうにないよな
714 名前:名前は開発中のものです。 mailto:sage [2009/02/28(土) 18:43:28 ID:8f7b0xkm] その昔ジーコサッカーというのがあってだな・・・
715 名前:名前は開発中のものです。 mailto:sage [2009/02/28(土) 21:12:53 ID:8s2n0430] >>670 くっ、消えてたか。 どのくらいのポリゴンまで使えるのかな・・・(メタセコのデータサイズ的に)
716 名前:名前は開発中のものです。 mailto:sage [2009/03/01(日) 01:32:11 ID:Mf/Aa5l/] 4000604h - RAM_COUNT - Polygon List & Vertex RAM Count Register (R) 0-11 Number of Polygons currently stored in Polygon List RAM (0..2048) 12-15 Not used 16-28 Number of Vertices currently stored in Vertex RAM (0..6144) 13-15 Not used の制限は超えられないと思うよ ttp://blog.livedoor.jp/orenos/archives/cat_50041571.html をみると2000ぐらいじゃないかな?
717 名前:名前は開発中のものです。 mailto:sage [2009/03/01(日) 08:53:29 ID:NCPT6IzU] >>716 なるほど・・・。ありがたう。 その辺に落ちている初音ミクとかDSに、とかは全然無理って事だな。
718 名前:名前は開発中のものです。 mailto:sage [2009/03/01(日) 09:43:01 ID:FCLhxfXA] 60fpsで動かそうとすればな… 今市場に出ているDSの3Dゲーはほとんど30fpsで 3Dと3Dキャプチャとの合成をよく使う
719 名前:名前は開発中のものです。 mailto:sage [2009/03/06(金) 04:12:52 ID:TOXTdHLF] フォントを入れてみて、SJISの漢字を表示できるようにしてみたのですが、 漢字のファイル名も使えるファイラーを作ろうと思ったところ、 diropen、dirnextで取ってくる2バイトコードば不規則に壊れているように思えるのです。 (最初の18バイトは3バイトごとに0xC2が入り込み、その後 0x20 なども入り込む) この理由って何でしょうか? なにか対処法とか知ってる方いらっしゃいますか?
720 名前:名前は開発中のものです。 mailto:sage [2009/03/06(金) 11:22:53 ID:yjbnJ68z] >>719 お前がSJISと思い込んでるだけでファイル名は実はUTF-8で書かれていたりする
721 名前:719 mailto:sage [2009/03/06(金) 12:22:56 ID:TOXTdHLF] >>720 文字コード表で比較したのですがUTF-8ではないと思うのですが・・・ ash.jp/code/unitbl1.htm というか単に1バイト文字列として判定しながら、 最上位ビットが立っていると、自動的にその直前に「0xC2」を追加しているだけ のように見える。 もうちょっと調査してみます。
722 名前:名前は開発中のものです。 mailto:sage [2009/03/06(金) 12:51:34 ID:yjbnJ68z] libfatのソース見たけど 〜\libfat-src-1.0.3\source\directory.c if (_FAT_directory_ucs2tombs (entry->filename, lfn, MAX_FILENAME_LENGTH) == (size_t)-1) { // Failed to convert the file name to UTF-8. Maybe the wrong locale is set? return false; } UTF8に変換してるんじゃないの
723 名前:名前は開発中のものです。 mailto:sage [2009/03/06(金) 13:00:17 ID:yjbnJ68z] バージョンで違うかもと思って昔のソース見たらやっぱり違ってたわ 昔のは変換処理が無かった
724 名前:719 mailto:sage [2009/03/06(金) 13:11:00 ID:TOXTdHLF] >>722-723 ありがとうございます。 なるほどlibfatのバージョン上げるとUTF-8に変換してくれると・・・ でも既にSJISの表示ができてるので、まぁ今のままでいいかなとw (0xC2の除去は簡単にできましたので)
725 名前:名前は開発中のものです。 mailto:sage [2009/03/06(金) 15:34:15 ID:s9e7Y5/A] 8.3形式で収まるファイル名はそのまま書き込まれ それに収まらないファイル名はロングファイルネームとしてUnicodeで格納される FAT関係のフォーマット解説あさった方がいい
726 名前:名前は開発中のものです。 mailto:sage [2009/03/07(土) 12:15:01 ID:Spw06Iei] Kingdom Hearts 358/2 Days - Special Trailer www.youtube.com/watch?v=rYRXf5DDrn8 DSって凄いんだな
727 名前:名前は開発中のものです。 mailto:sage [2009/03/07(土) 15:22:32 ID:P2NlkDFd] >>726 ほとんどプリレンダの動画だな ゲーム画面は1分もないじゃないか まあDSにしては頑張ってるんだろうけど
728 名前:724 mailto:sage [2009/03/08(日) 17:48:39 ID:H3Gxp9K9] >>725 そのとおりでした。 エミュ(ideas)で開発していたら、単にSJISにC2のゴミが入るだけでしたが、 実機ではUnicodeに変換されているようです。 素直に変換プログラムを組んでみます・・・・
729 名前:724 mailto:sage [2009/03/08(日) 17:50:21 ID:H3Gxp9K9] ちなみに、実行ターゲットって取得できないものでしょうか・・・・ エミュではC2除去したSJIS表示、 実機ではUnicode表示と切り替えたいとも思うのですけど、
730 名前:名前は開発中のものです。 mailto:sage [2009/03/08(日) 20:35:07 ID:3YB+hXPZ] それこそC2入ってたらエミュとかでいいんでないの
731 名前:724 mailto:sage [2009/03/08(日) 21:14:06 ID:H3Gxp9K9] >>730 確かに! 調べてみたら、C2付きに置き換えられたSJIS(C28xxx,C29xxx,C2Exxx,C2Fxxx) に対応するUTF-8コード(SJIS内)はないのでエミュ起動とみなして良いようです。 ash.jp/code/unitbl21.htm UTF-8⇒SJIS変換プログラムを探したけど、 結局自分でUTF8⇒SJISテーブルを持たないとダメそう (nkfのソースとかは見たけどわけわからんw) Windowsのツールならすぐ作れるし、 7630文字の3バイトなので、データ容量としてもDSに十分入ると思うんだけど、 UTF8の方がビット幅が広いので、 テーブルが虫食い状態になるのをどうしよう ハッシュテーブルにしてもどうしたら均一になる取り方が思いつかない・・・・・ 他のツール作者さんたちはどうやってるんだろう
732 名前:名前は開発中のものです。 mailto:sage [2009/03/09(月) 00:39:57 ID:SXSH5WYs] >731 思いっきりはずしてるかもだけど、MoonShellのunicode/sjis.tblが 何かヒントになるかも? mdxonline.dyndns.org/ ところで... www35.atwiki.jp/hikipuro/pages/33.html www.bottledlight.com/ds/index.php/FileFormats/NDSFormat ここに書いてあるNDSファイルフォーマットの、「FAT オフセット」に セットされているアドレスにはFATデータがあるんだろうけど、 このFATのフォーマットはどうなってんの? 解説したサイトとかある? ファイル名テーブルや実ファイルデータをどうやって 管理しているのかよくわからない... ここがわかれば、1つのNDSファイルだけで4MBを超えられる 方法がわかるような気がするんだけど。
733 名前:724 mailto:sage [2009/03/09(月) 04:10:07 ID:omb2zf0w] >>732 ヒントになりました。ありがとうございます。 あくまで推測の範囲ですが、 データを見る限り、2バイト区切りになっているのでUnicodeビット⇒SJISのデータを格納しているように見える。 かなりの多くのかたまった0x00があるので、圧縮やハッシュ化はしていない模様。 2バイト区切りだとすると、65536文字ほどの空間を保持していることになるが、 10万文字を超えるといわれるUnicodeの空間すべてをテーブルを持っているわけでなく、 日本語や中国語などの漢字(SJISに載っている)部分だけのテーブルと思われる。 2バイト区切りではありそうだが、SJISの生データではない。 Unicodeの漢字部分がこの程度(128kbytesに収まる)なら、 まず自分でやってみて確認してみたいと思います。 ありがとうございました。
734 名前:724 mailto:sage [2009/03/09(月) 04:11:44 ID:omb2zf0w] >>732 ちなみに私はフォントのビットデータなどを別ファイルで読み込ませていますが、 特にフォーマットやファイル名に規則はないように思います。 まだ特にフォーマットを決めてないので生データをそのまま読ませています。 // FAT初期化. if ( !fatInitDefault() ) { iprintf( "Cant't Init Fat !" ); return -1; } // 読み込み FILE* file = fopen( "FAT1:/GOTHIC24.DAT", "rb" ); if( file != NULL ){ fread( byFont24Data, FONT24FILESIZE, 1, file ); fclose( file ); } else { iprintf( "File Load false !" ); } で読み込めてます。 (byFont24Dataは読み込むデータ分の空き容量へのポインタ)
735 名前:732 mailto:sage [2009/03/09(月) 21:30:46 ID:SXSH5WYs] >734 それはlibfatを使ったときの話ですよね。 ndsファイルとGOTHIC24.DATを別々に用意して読み込むっていう。 そうではなくて、devkitproのexample/embedded_gbfsみたいに、 ndsファイル内に埋め込めるファイルシステムを商用のndsファイルは 使ってると理解してるんですが、その形式・方式ってどうなってんのかな、 というのを知りたいんです。1ファイルに全部入れたいな、と。 embedded_gbfsでは、ndsヘッダのFATデータにもファイルテーブルにも 何も書かれないので目的のものとはちょっと違うと思ってます。 最終的には、過去ログの>>609-614 にあるような、自身のndsファイルを 開くのではなくて、nds内の必要なデータだけメモリにロードするような 方式が知りたいんです。
736 名前:名前は開発中のものです。 mailto:sage [2009/03/09(月) 22:23:03 ID:FcNM6iim] 個人で楽しむ範囲で市販のROMを解析してみれば。
737 名前:734 mailto:sage [2009/03/09(月) 23:06:08 ID:omb2zf0w] >>735 そうでしたか。なんか当たり前の事を講釈してしまってすいませんm(_ _)m ふと思いついたのが、ndsプログラムから、自分のndsをfopenして、 fseekして目的の位置だけをfreadとかできないかなぁと。 ファイルポインタは4GB制限はないだろうと。 (もしかしたら自分は開けないのかもしれないけど) 4GBオーバーしたndsを通常起動しても、 おそらく4GBまでロードして、エントリポイントからプログラムが動き始める 4GB周辺のデータはスタックに壊されながら使われる。 このときデータが壊されることよりもスタック周辺データでプログラムが不安定な動きをしないように 予めスタック周辺のデータはNULL(0)を入れておく(念のため) あとはリンカにマップファイルを読み込ませて、ヒープ領域を明示的に指定しておく (もしかしたらスタック領域も指定しないといけないかもしれない) (もちろんデータ読み込み用アドレスをマップファイルで指定してもいいけど) こうすればスタック、ヒープ以外にとっておいた空き領域に 読み込ませて起動できるのではないかと あくまで全部推測ですけど・・・・ (ちなみにファイル名UTF8をSJISに変換して漢字表示できました。ありがとうございました。)
738 名前:732 mailto:sage [2009/03/10(火) 00:17:00 ID:FyCLTQRk] 過去ログの>>609-614 がまさに自ファイルをfopenして、目的のデータだけを freadして4MB以上のndsファイルを実現しているって話みたいです。 リンカの制御についてちょっとお勉強してみます。 あと、ndsファイルももうちょっと調査してみます。 (ちょっと確認したところでは、FATデータには、各アドレスの 先頭アドレス(4Byte)がずらずら格納されているだけのようでした。)
739 名前:732 mailto:sage [2009/03/10(火) 00:23:24 ID:FyCLTQRk] 書き忘れました。 自ファイルをopenしてfreadするやり方だと、ndsファイル名を変更できないし、 ファイルを置く場所も固定になってしまうので嫌だなあと思ってるだけです。 fopen("./hoge.nds", ...)みたいにカレントディレクトリ指定でopenきれば まだいけるのですが... ごちゃごちゃ言っているうちに、なんか興味がわいてきたので調べてみます。
740 名前:名前は開発中のものです。 mailto:さげ [2009/03/10(火) 01:01:12 ID:WT0mcKmk] スタートアップのmain()のargvで自分自身の名前が返ってくりゃスッキリするのにな。
741 名前:名前は開発中のものです。 mailto:sage [2009/03/10(火) 01:02:30 ID:bFNIRTD6] 以下、転載 OCNがアクセス規制だったのでこっちで…。気付かなかったら気にしない。(笑 To 737 実行中のNDSプログラムから自分自身のファイル名を知る方法はないと思います。 (一応コマンドラインから受け取れるようになっているようですが、それを渡してくれるように作られたファームウェアを(私は)知りません) それができればたくさんのデータファイルをコピーさせなくても自作アプリが公開できるのですが…。 (これ以下はリンクで ttp://home.att.ne.jp/blue/moonlight/to737.html
742 名前:名前は開発中のものです。 mailto:sage [2009/03/10(火) 01:22:01 ID:0zF3GRcV] ちょっと思いついた自分自身のndsを見つける強引な方法ですが、 現在のディレクトリをdiropenで開いて、 dirnextで次々と開いてファイルサイズを調べて、同じ大きさなら自分のnds ファイルサイズの調べかたですが、fseekでSEEK_ENDを指定して、 ファイル終端にファイルポインタを設定して、 ftellで得られると思います。 まぁ、片っ端から調べるんなら、ndsファイルヘッダでも何か固有情報は埋められるような気もしますが・・・・
743 名前:名前は開発中のものです。 mailto:sage [2009/03/10(火) 11:00:57 ID:g2TKFoHz] それならファイル終端に識別子入れたほうが楽
744 名前:732 mailto:sage [2009/03/10(火) 23:30:35 ID:FyCLTQRk] ndstoolのソースを見ると、NDSファイルのヘッダにあるFATテーブル がどういう形式なのかわかりました。 「ファイルの先頭アドレス(4byte), ファイルの最後のアドレス+1(4byte)」 がずらずら並んでいるようです。 >741の内容(ファイルを全部メモリにロードしてSWI0(soft reset)する)と、 nocash.emubase.de/gbatek.htm#biosresetfunctions を見ると、要するにBIOSがNDSヘッダを読んでよきに計らってくれるのだ と理解しました。 ということは、NDSヘッダにFATデータもBIOSを使ってうまく取り回せるの かな、と思うのですが・・・これ以上は資料も見つけられず・・・ やっぱりlibfat使って自ファイルをfreadするとか、うまいこと面倒を見る ランチャ(というかシェルと呼んだ方がいいのかな?実現可能かも不明) を作るとか、が現実的かもしれないですね。
745 名前:名前は開発中のものです。 mailto:sage [2009/03/11(水) 14:21:25 ID:tSVd9IUE] MoonShell2のバグトラックに 「フォルダ名またはファイル名の先頭に「蟲」を含むとき、ディスクチェックが停止するバグがある。」 とあるが、FATではファイル名の先頭の0xE5は削除されたことを表すから、 その0xE5がShift_JISの第1バイトと重なってしまうため、 FATの日本語ファイル名では0xE5の代わりに0x05を使用している、 という話を聞いたことがある。 もしかしたら、0xE5と0x05辺りのバグかもしれない。 以下問題ありそうな文字リスト 蕁蘂蕋蕕薀薤薈薑薊薨蕭薔薛藪薇薜蕷蕾薐藉薺藏薹藐藕藝藥藜藹蘊蘓蘋 藾藺蘆蘢蘚蘰蘿虍乕虔號虧虱蚓蚣蚩蚪蚋蚌蚶蚯蛄蛆蚰蛉蠣蚫蛔蛞蛩蛬 蛟蛛蛯蜒蜆蜈蜀蜃蛻蜑蜉蜍蛹蜊蜴蜿蜷蜻蜥蜩蜚蝠蝟蝸蝌蝎蝴蝗蝨蝮蝙蝓 蝣蝪蠅螢螟螂螯蟋螽蟀蟐雖螫蟄螳蟇蟆螻蟯蟲蟠蠏蠍蟾蟶蟷蠎蟒蠑蠖蠕蠢 蠡蠱蠶蠹蠧蠻衄衂衒衙衞衢衫袁衾袞衵衽袵衲袂袗袒袮袙袢袍袤袰袿袱裃 裄裔裘裙裝裹褂裼裴裨裲褄褌褊褓襃褞褥褪褫襁襄褻褶褸襌褝襠襞
746 名前:名前は開発中のものです。 mailto:sage [2009/03/11(水) 16:31:29 ID:13ayMoIc] >>745 FATのlfnはUCS2だから0xE000-0xE8FFは私用領域で使われてない
747 名前:名前は開発中のものです。 mailto:sage [2009/03/11(水) 16:41:13 ID:cohO+OUe] 8.3形式の話だと思うが
748 名前:名前は開発中のものです。 mailto:sage [2009/03/11(水) 20:32:17 ID:13ayMoIc] FATを調べたけどファイル名の1バイト目に意味があるのはロングファイルネームに対応していないFATでファイル名には英数文字しか使えない ロングファイルネームに対応しているVFATではファイル名は2バイト目から始まるようだ
749 名前:名前は開発中のものです。 [2009/03/11(水) 23:43:28 ID:Zqyue3/y] M3さくら日本語版ではv5しか起動できません。 v6 v6.1 v6.1fix を読み込むとローディングのまま黒画面で停止する・・バグ?
750 名前:名前は開発中のものです。 mailto:sage [2009/03/12(木) 00:09:43 ID:Ad+ZYM8b] >>749 多分K氏のソフトと同じ理由。