NintendoDS(NDS)非公式開発 Part3
■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。
2008/04/08(火) 07:05:13ID:MngpkM4u初心者歓迎。質問歓迎。英語苦手な人歓迎。冷やかし歓迎。ネカマ歓迎。
資料、リンク等
http://nocash.emubase.de/gbatek.htm
http://www.bottledlight.com/ds/index.php/Main/HomePage
http://www.helloworld.jp/~duke/nintendo_ds/
開発環境
http://www.devkitpro.org/
http://sourceforge.net/project/showfiles.php?group_id=114505
関連スレ
ゲームボーイアドバンス(GBA)開発@ゲ製板(避難所)
http://bbs.gamdev.org/test/read.cgi/gamedev/1055111303/
ゲームボーイアドバンス(GBA)非公式開発 Part2
http://pc5.2ch.net/test/read.cgi/gamedev/1099119005/
前スレ
http://pc11.2ch.net/test/read.cgi/gamedev/1175812090/
0285名前は開発中のものです。
2008/07/26(土) 16:39:13ID:Auh5eJ2y0286名前は開発中のものです。
2008/07/26(土) 17:17:36ID:9fSQH7CP0287名前は開発中のものです。
2008/07/26(土) 18:12:23ID:h/jClE6o0288名前は開発中のものです。
2008/07/26(土) 21:27:39ID:2TBdmr2b見ている限り2年前のはにはに+夏kanon動作確認動画からバージョンうpしてないようなのだが・・・
ONSをDSで動かすにはかなり大変なようだし・・・なんだかなぁ
0289名前は開発中のものです。
2008/07/26(土) 23:48:03ID:YbbPRemH俺も同じ経験がある。
3か月くらい前の話だが、既にダメだった。
0290名前は開発中のものです。
2008/07/28(月) 16:31:18ID:2D9ctRkYスプライトの ATTR0_ROTSCALE_DOUBLE 使用時は、
ATTR1_FLIP_X の併用はできないのでしょうか?
ATTR1_FLIP_X を使わない場合は通常通り表示されているグラフィックが
ATTR1_FLIP_X を使った時に限り単色塗りつぶし矩形として表示されてしまいます。
同じような現象に遭った方、いらっしゃいませんでしょうか?
0291名前は開発中のものです。
2008/07/28(月) 22:46:35ID:y5/QDNNB0292名前は開発中のものです。
2008/07/28(月) 23:31:53ID:RsoqNuWb0293名前は開発中のものです。
2008/07/28(月) 23:34:02ID:SZNX3m/m0294名前は開発中のものです。
2008/07/29(火) 01:16:35ID:3E6q8T5VSUB_BG3_XDX = ( angleCos * scaleX ) >>8;
SUB_BG3_XDY = ( -angleSin * scaleX ) >>8;
SUB_BG3_YDX = ( angleSin * scaleY ) >>8;
SUB_BG3_YDY = ( angleCos * scaleY ) >>8;
の所を
SUB_BG3_XDX = ( -angleCos * scaleX ) >>8;
SUB_BG3_XDY = ( -angleSin * scaleX ) >>8;
SUB_BG3_YDX = ( -angleSin * scaleY ) >>8;
SUB_BG3_YDY = ( angleCos * scaleY ) >>8;
ってやったら反転できた。スプライトも似たようなもんだから
こんな感じで出来るかも
0295名前は開発中のものです。
2008/07/29(火) 01:20:51ID:3E6q8T5V○これはBGだけど
0296290
2008/07/29(火) 16:45:46ID:ka3ZdjYgご指摘の方法を試してみた所、望んでいた処理結果となりました。
当方、行列や微分積分を習わない学科に籍を置いていたため、
「変換行列でフリップをしてみては?」という意見が出ていても
なかなか理解できなくて困っていたのでとても助かりました。
ありがとうございました。
0297名前は開発中のものです。
2008/07/30(水) 12:24:49ID:Yc2cQFuo0298名前は開発中のものです。
2008/08/02(土) 03:07:01ID:3KgJL95d0299名前は開発中のものです。
2008/08/02(土) 09:16:04ID:RY65IW340300名前は開発中のものです。
2008/08/02(土) 18:57:36ID:pOzuVdtQ毎回微妙に違うから最新版は目覚まし時計のソースから引っ張ってきたらいいが、単体でアップされていたglibに付属ツール群が同梱されていたので、Windows用ツールは単体glibから使うのがお勧めだ。
一発画面初期化関数と、CglCanvasは便利すぎる。
0301名前は開発中のものです。
2008/08/02(土) 21:28:31ID:3KgJL95dありがとうございます!
さっそく使わせてもらいます。
0302名前は開発中のものです。
2008/08/05(火) 06:08:08ID:pz5K41tp0303名前は開発中のものです。
2008/08/05(火) 08:46:48ID:ENW5ls370304名前は開発中のものです。
2008/08/05(火) 17:10:30ID:iQ6V5DCV0305名前は開発中のものです。
2008/08/05(火) 18:27:23ID:AC7UDN7L俺が読んだ話だと、M3さくらで大金貰ったからバカバカしくてやめたらしい。(ソースはさくらスレ)
けど最後の日記を見るとそうは思えないんだよな−−−
でかサクラ関係なのは間違いないんだろう。良い人を亡くしたよ。
0306名前は開発中のものです。
2008/08/06(水) 15:39:02ID:iupa6le2関連付けするにはどうすればいいでしょうか?
0307名前は開発中のものです。
2008/08/06(水) 19:58:07ID:+ObwHsP9/⌒ ⌒\ ホジホジ
/( ●) (●)\ >>305
/::::::⌒(__人__)⌒::::: \ <で?
| mj |ー'´ |
\ 〈__ノ /
ノ ノ
0308名前は開発中のものです。
2008/08/07(木) 04:59:45ID:3S2Xa5LTバンクとかビデオモードって何?ってかんじです(^^)
0309名前は開発中のものです。
2008/08/07(木) 12:05:39ID:Y8nTPA6rGBからの歴史的経緯で妙な事になってたりするからな
単に携帯機でプログラム書きたいならPSPもありだと思う
0310名前は開発中のものです。
2008/08/07(木) 12:19:37ID:KK0q6wSe0311名前は開発中のものです。
2008/08/09(土) 16:27:29ID:vqJFqWaeマック必須とか俺的には無いが
0312名前は開発中のものです。
2008/08/10(日) 10:12:54ID:G9d4jf9R0313名前は開発中のものです。
2008/08/10(日) 12:19:08ID:bnNN4Ddfつttp://digital-haze.net/vnds.php
日本語対応よろしくw
0314名前は開発中のものです。
2008/08/13(水) 01:54:52ID:mCa7yggbバカな俺がちょっと疑問に思ってみた。
0315名前は開発中のものです。
2008/08/13(水) 12:13:38ID:qx2eQaCKネットに流れてるROMは実際のものとヘッダが違うのでそこを調べる。
つかネットに流れてる奴って暗号化がすでに解かれてるんだろ?調べれば一発じゃん。
もっと詳しく調べたいならマジコンが置かれる領域をあらかじめ調べ
現物があるか調べる、但しこれは本来禁止されている行為(DSの意図しない領域へのアクセス)
なのでやる可能性は低い。それ以外だと昔ながらの方法で直にROM領域に書き込んでみるとか。
しかしROM領域に書き込む方法は無かったはず・・。
0316名前は開発中のものです。
2008/08/13(水) 22:50:38ID:uSr/SbZ8というのは常に非合法、となってしまうわけか?
やり口うまいなぁ。
ちなみにNScriptなんかも危険なのかね?(エロゲ移植楽勝的な意味で
0317名前は開発中のものです。
2008/08/14(木) 11:59:48ID:AGQkLAj70318名前は開発中のものです。
2008/08/14(木) 20:57:13ID:0ZgQNLErマジコンの販売は全部非合法のはず
ソフトの開発を完全に制限すると独禁法に引っかかるから制限していない
(1社につき何本、などはあり)
0319名前は開発中のものです。
2008/08/15(金) 16:48:44ID:Na0PYdPb0320名前は開発中のものです。
2008/08/15(金) 19:24:44ID:6cB068BM0321名前は開発中のものです。
2008/08/16(土) 01:16:13ID:tqgEmnbZ■DSの同人エロゲが発売中止に→制作者、任天堂に逆ギレ
http://blog.livedoor.jp/dqnplus/archives/1156809.html
これの事か。
0322名前は開発中のものです。
2008/08/16(土) 01:53:38ID:ZFcyT52eブースでマジコン自体を売ろうとしてたという話もあるし
そりゃさすがにマズいだろという
0323名前は開発中のものです。
2008/08/18(月) 20:55:59ID:at+m9WaDそりゃただのねつ造 ニンテンは圧力かけてないだろ
0324名前は開発中のものです。
2008/08/18(月) 21:36:11ID:HS9yFwFt0325名前は開発中のものです。
2008/08/19(火) 03:14:07ID:cmsJU7X50326名前は開発中のものです。
2008/08/24(日) 15:14:53ID:lq+jPbXwdevkitって書いてあるだろ
0327名前は開発中のものです。
2008/08/24(日) 18:39:27ID:xXzDezRGdevkitだろうとなんだろうとな
0328名前は開発中のものです。
2008/08/24(日) 20:02:54ID:8VfoSDG9CD-ROMに焼いたとか、量産できる媒体に対して著作権などが発生する
逆にソフトウェアそのものにはほぼそれらが発生しない。
>>325はそういうことが言いたかったんじゃないかな?
0329名前は開発中のものです。
2008/08/24(日) 23:51:10ID:xXzDezRGもちろん、DSに刺してそのまま動くような媒体で配布するのでなければ
なんら問題ないとは思っているよ
0330名前は開発中のものです。
2008/08/26(火) 21:05:40ID:UH3fc3I70331名前は開発中のものです。
2008/08/27(水) 07:53:51ID:+r6/O9dOお前が作れ
0332名前は開発中のものです。
2008/08/27(水) 19:59:55ID:0IBhzRAf期待してるぞ
0333330
2008/08/27(水) 20:21:54ID:NY8U1MXK0334名前は開発中のものです。
2008/08/28(木) 14:35:31ID:himZTe+50335名前は開発中のものです。
2008/08/28(木) 14:45:58ID:itYkETsy0336名前は開発中のものです。
2008/08/30(土) 18:10:45ID:OueHFlIwところで、PAlibの最新版が出てたんだ。
未だにr21のみの対応か、絶望した!
0337sage
2008/08/31(日) 12:53:15ID:NgWtUu+Wビットマップを追加するごとに毎回インクルードするのめんどくさいから、
ファイルをアーカイブするツール作って1個のbinにして中で解析してるんだけど、
なんかヘンだ…
00 00 FE 5D
のような並びにあって、FEの位置のポインタを
u8* p = bufとして取得したとして、
u16* plt = (u16*)p;
u16 color;
memcpy( &color, &plt[0], sizeof( u16 ) );
てすると
plt[0] -> FE00
color -> 5DFE
てなる…orz
0338名前は開発中のものです。
2008/08/31(日) 12:54:42ID:NgWtUu+W0339名前は開発中のものです。
2008/08/31(日) 13:05:48ID:RBkQ5Qjd何が問題?どういう動作を求めてる?
memcpyの動作は正しいよな。pltはアライメントかな?
0340名前は開発中のものです。
2008/08/31(日) 16:54:02ID:NgWtUu+W管理するクラスが#include "archive_bin.h"しつつ、
archive_binのそれぞれのファイルの先頭ポインタを保存する仕組みを作成していたんです。
とりあえず手始めにビットマップのコンバートからやってたのですが、
indexとpalleteのポインタをそのままSPRITE_PALETTEとSPRITE_GFXにdmcCopyしても、
なぜか絵がうまく出ないんです。(色が変だったり所々が欠けたような絵になります)
AGBGFXConverterで吐き出したソースと同じ様に配置したつもりなんですけど…
ちなみにAGBGFXConverterで同じ絵をコンバートして、
インデックスを両方1タイル分ずつprintfして見ているんですけど、
インデックスの並びは全く一緒でした。
なので色はバグってても同じ絵は出ると思ったのですが…
で今度はパレットの中身を見たらあれ?みたいな感じになったわけです。
0341名前は開発中のものです。
2008/09/01(月) 23:08:04ID:/cE8NRcOこんな感じで取得させていて、構造体の中にインデックスとパレットのポインタが入っています。
arc::bmp_info* bmp = arc::bmp_info((char*)"256color_test.bmp");
こんな感じだと正常に表示されました。
// ----------------------------------------------
u16 color[ 256 ];
memcpy( color, bmp->palette, sizeof( color ) );
for ( u32 i = 0 ; i < 256 ; ++i )
{
SPRITE_PALETTE[ i ] = color[ i ];
}
u32 size = ( ( 32 * 32 ) / 2 );
u16 index[ size ];
memcpy( index, bmp->index, sizeof( index ) );
for ( u32 i = 0 ; i < size ; ++i )
{
SPRITE_GFX[ ( 64 * 16 ) + i ] = index[ i ];
}
// ----------------------------------------------
0342名前は開発中のものです。
2008/09/01(月) 23:09:40ID:/cE8NRcO// ----------------------------------------------
u16 color[ 256 ];
memcpy( color, bmp->palette, sizeof( color ) );
dmaCopy( color, SPRITE_PALETTE, sizeof( color ) );
u32 size = ( ( 32 * 32 ) / 2 );
u16 index[ size ];
memcpy( index, bmp->index, sizeof( index ) );
dmaCopy( index, &SPRITE_GFX[ 64 * 16 ], sizeof( index ) );
// ----------------------------------------------
これもダメ(本来こうしたい)
// ----------------------------------------------
dmaCopy( bmp->palette, SPRITE_PALETTE, sizeof( u16 ) * 256 );
dmaCopy( bmp->index, &SPRITE_GFX[ 64 * 16 ], bmp->GetSize() );
// ----------------------------------------------
あとソースで
u32 size = ( ( 32 * 32 ) / 2 );
u16 index[ size ];
見たいな書き方してるんですけど、間違えて書いたら普通にビルドが通るので使ってました。
0343名前は開発中のものです。
2008/09/01(月) 23:19:54ID:JD3+KZZhメインメモリ4MBってつまり
libfat使わない限りはndsファイルのサイズつかプログラム+データを
4MBに収めないといけないってこと?
プログラムとメモリの関係が良くわからんです・・・
0344名前は開発中のものです。
2008/09/01(月) 23:25:31ID:v+MMQ4csつ swiCopy()
0345名前は開発中のものです。
2008/09/01(月) 23:29:46ID:wvhb43Poiprintf("bmp %x\n",bmp);
iprintf("%x\n",bmp->palette);
iprintf("%x, %x\n",bmp->index, bmp->GetSize() );
の実行結果見せて。
dkpr23bのdmaCopyはDMA_COPY_HALFWORDSで実装されてるから2byte単位になっていれば大丈夫なはずなんだけど。
ないとは思うけど、DMA3を別で使ってるところがないかどうかも確認したほうがいいです。
>>343
そうです。GBAカート時代のNDSマジコンは外部ROMとして使えたから便利だったんだけどね。
0346名前は開発中のものです。
2008/09/01(月) 23:35:25ID:XJAdcBTd0347名前は開発中のものです。
2008/09/01(月) 23:49:45ID:/cE8NRcOこっちでもアーカイブした中でもファイルによって正常に出るものがあったので、
アライメントをファイル内でそろえようとしていた所でした。
ちなみにアドレスをprintfした結果はこれです。
bmp 202c6900
200f7db
200f3bd, 400
0348名前は開発中のものです。
2008/09/02(火) 00:44:46ID:xhnSuTcgRAMとして扱えるのが4M
っ gbfs ndstool
0349名前は開発中のものです。
2008/09/02(火) 02:08:35ID:bvei474e>>343じゃないけど、R4とかだとできないよね?
0350348
2008/09/02(火) 08:38:04ID:xhnSuTcgまじで?
DSTTしかもってないしfat使ってるから実際に試したことは無かった
仕事終わったらちょっとやってみる
0351名前は開発中のものです。
2008/09/02(火) 10:42:55ID:PcRBassS4M以降に配置されるヤツはスロ1のマジコンではだめだったとおもうけど。
0352名前は開発中のものです。
2008/09/02(火) 15:30:28ID:bvei474e4M内ならgbfs使うメリットあんまないよね
0353名前は開発中のものです。
2008/09/02(火) 16:53:09ID:bEchRn3L0354343
2008/09/02(火) 21:04:24ID:9aalbRTR参考になりました。
音楽はメモリ食い虫なのでバッサリ切る事にしました。
ところで大量(数百〜)のオブジェクト扱うとなるとスプライト使えないんですね・・・
フレームバッファで直描きで良いんでしょうか?
2Dエンジンのグラフィックモードの意味がさっぱり理解出来ないので
ごり押しでソースかいてるんですがみなさんお勧めのモードとかありますか?
DirectXみたいに2Dゲーだけど描画自体は3Dでテクスチャーを平面で動かすとか
そういうのが主流だったりするんでしょうかね。
0355名前は開発中のものです。
2008/09/02(火) 22:42:52ID:WCYfR70y天然?真性?釣り?
0356343
2008/09/02(火) 23:27:25ID:9aalbRTR日本語のサイトは当たったのですが素で良くわかってません。
リアルタイムなプログラムは初めてな割りに変な知識だけ持ってしまったので。
やっぱとんちんかんなこと言ってますか。
って実機で試したら全画面αブレンド(自前計算)するだけで処理落ちしてる!
ndsの2Dのスペック最大30Mピクセル/秒て
VRAMに毎フレーム0.5Mピクセルぶんアクセス出来るって意味じゃないんですか?!
奥が深い・・・
0357名前は開発中のものです。
2008/09/02(火) 23:46:53ID:bvei474e大量のスプライト出したかったらスプライトダブラでぐぐればいいよ
多分GBA用の解説がすぐ見つかるだろ
0358343
2008/09/03(水) 00:12:57ID:Bl/fBETL水平割り込みか〜その発想は無かったわ。
安直に必要な数だけドット打ってもなんとかなるだろうと高をくくっていたが甘かったようです。
0359名前は開発中のものです。
2008/09/03(水) 00:16:04ID:sLvGkNcJ2Dは基本的にGBAと同じで、スプライトとタイルベースのBG。
BGをフレームバッファで使う場合は静止画のみが一般的。
3Dはlibnds経由でしか使ったことがないが、これはOpenGL
に似ている(というより制限は昔のMESAに近い)が、別物。
値域制限とAPIコール順の制限と帯域制限とに泣かされるw
まあ、とりあえずガンガレwww
0360名前は開発中のものです。
2008/09/05(金) 23:17:45ID:FS1IdIEW0361名前は開発中のものです。
2008/09/06(土) 14:45:49ID:cOB7URl00362名前は開発中のものです。
2008/09/09(火) 23:29:29ID:DL/yAEJj0363名前は開発中のものです。
2008/09/19(金) 23:25:16ID:eFBo0juohttp://www.gpara.com/kaigainews/eanda/2008091802/
0364名前は開発中のものです。
2008/09/20(土) 20:28:56ID:yq1ZRhT4DSでムジュラか時オカやりたいぜ
0365名前は開発中のものです。
2008/10/05(日) 16:18:34ID:E308TimE0366名前は開発中のものです。
2008/10/05(日) 16:19:13ID:E308TimE0367名前は開発中のものです。
2008/10/05(日) 16:44:07ID:Ll2+pPcY0368名前は開発中のものです。
2008/10/05(日) 17:15:56ID:E308TimEカメラ使うためのAPI(?)は公開されるのかねぇ?
0369348
2008/10/05(日) 18:04:25ID:Vc0IrAL90370名前は開発中のものです。
2008/10/05(日) 18:04:59ID:Vc0IrAL90371名前は開発中のものです。
2008/10/06(月) 03:15:32ID:taaAzVwLRAMとかグラフィックエンジンまわりとか結構強化されてそうな気がするんだが、
どうなんだろ。両面タッチだし、AACもハードサポートだったら...
わりと順当に次世代機(gc→wii的な)なんじゃね、と妄想
0372名前は開発中のものです。
2008/10/06(月) 10:41:50ID:Sfe+Bc3cそれは無いよねぇ
0373名前は開発中のものです。
2008/10/06(月) 16:49:35ID:+fanK/9E少なくとも内蔵メモリは増えてるだろう。白黒GBとGBcolorくらいの差かねえ。
homeblewでどれくらいhackされるかだなぁ。
0374名前は開発中のものです。
2008/10/07(火) 21:12:40ID:w8Xd+xBj必要に迫られてC++初めて三日くらいなんですが、
ゲームオブジェクトの管理は線形リスト使ってクラスでタスク管理するのが一般的らしいですが、
DSでもそれがセオリーなんでしょうか。
狭いメモリ空間でnewとかdeleteとか繰り返してたら面倒なことになりそうで怖いんですが。
全部構造体配列にしちゃって固定領域にして管理の方が安心できると思うのは素人考えですか?
0375名前は開発中のものです。
2008/10/07(火) 21:48:18ID:IVP3DQmnC++の恩恵も受けたいなら専用メモリマネージャーを書くのも手だよ。
固定サイズのクラスを大量に作成・削除する場合はかなり違う。
Efficient C++オススメ。
0376名前は開発中のものです。
2008/10/07(火) 23:03:26ID:omqMgnyg業務でやってる場合→素直に周りに合わしとけ
学業でやってる場合→指導している香具師に相談すれ
趣味でやってる場合→好きにしろ
newとかdeleteしないという手もあるけどなw
0377名前は開発中のものです。
2008/10/08(水) 00:13:31ID:NagLnHXNModern C++ Designオススメ
0378名前は開発中のものです。
2008/10/08(水) 00:19:32ID:1UMri7Pr断片化が怖けりゃplacement newという手もある。
・・・>>375と言ってること同じだな。
0379名前は開発中のものです。
2008/10/08(水) 19:29:19ID:K+Yf7Fpfとりあえずメモリ管理が怖いというか良くわかってないので
構造体+関数ポインタで乗り切ることにしました。
0380名前は開発中のものです。
2008/10/09(木) 03:27:36ID:tdzcvyWhレベル低いなー」とか煽ってんの見たことあるけど実際悩むよな
0381名前は開発中のものです。
2008/10/09(木) 07:44:25ID:zU0f5kHo技術レベルは高い低いじゃなくてベクトルが違う
0382名前は開発中のものです。
2008/10/09(木) 23:01:32ID:XZEfPKbk0383名前は開発中のものです。
2008/10/09(木) 23:12:03ID:MqpwjMOD話はそれからだ
0384名前は開発中のものです。
2008/10/09(木) 23:34:05ID:zxSbmjXPhttp://schiphol.2ch.net/test/read.cgi/gameurawaza/1221395085/
0385名前は開発中のものです。
2008/10/10(金) 16:28:00ID:5gz8zgTn4 :名無しさん@お腹いっぱい。[sage]2008/09/19(金) 12:32:46 ID:v1ChYlVo
ROMちょいと見てみた。
/book/book_*.bin
これらが本のデータで、それらの中身はそれぞれ15個のファイルから構成されている。
その他にも本の名前、著者などのデータも書き込まれている。
15個のファイルは、本の表紙画像、実際の本のデータなどが含まれる。
全てNARCファイルをLZ77符号化されたものであり、その中の6番目のデータに本の文章データが入っている。
文章データは基本的にShift-JISで、ひらがな、カタカナのみ再マッピングする必要がありそう。
ただ不安なのが、/book/book_*.binの先頭の16byte。
これらはもしかしたら正規のデータであるかのチェック用なのかもしれない・・
そうなると面倒ですね。
とりあえず書き換えは上の情報でできるので、誰かやってみてください。
7 :名無しさん@お腹いっぱい。[sage]2008/09/20(土) 09:55:35 ID:ZuRsuQAX
>>4追記
セーブデータの方も少し見てみました。
WIFI経由のセーブデータへの本のダウンロードでも全く同じファイル形式で保存されている模様。
けどセーブデータの前半部分(0x0000~0x11FF(奇) と 0x1200~0x23FF(偶))に暗号化が施されていて、その部分の解除が出来ない限り書き換えられなそう。
それからよく分からない16byteのことだけど、セーブデータ内にも同様に、大抵のセクションの先頭に付加されている。
やっぱり整合性を確認する物なのかも・・
私はそういうのは分からないのでとりあえず諦めました。
■ このスレッドは過去ログ倉庫に格納されています