NintendoDS(NDS)非公式開発 Part3at GAMEDEV
NintendoDS(NDS)非公式開発 Part3 - 暇つぶし2ch13:名前は開発中のものです。
08/04/11 03:37:11 XWQeXltf
DSはレジスタやらVRAMやら入力やらIPCやらがメモリ上に全てマッピングされてるけど
これってコンピューター的には普通なん? プログラムする側には便利なんだけど・・・

14:名前は開発中のものです。
08/04/11 08:27:41 SdsPk1qX
>>13
メモリマップドIOのことか
普通だよ
ARMにはIN OUT命令がないんじゃないかな


15:名前は開発中のものです。
08/04/11 12:34:48 wT0sV7d6
メモリマップドIOについて調べた
RISCでは普通なんだね
IN OUT命令が必要ないからハードとのやり取りに特別な処理が必要ないんだね

OSが無い環境でのプログラミングって面白いね
*( uint32 *)0x600000 = 1 << 6 とか最初何かと思ったよ
ビット演算子ってこうやって利用するんだね

16:名前は開発中のものです。
08/04/11 15:55:21 SdsPk1qX
>>15
volatileとかWindowsのプログラムでは使わないしね


17:名前は開発中のものです。
08/04/12 00:56:19 8n/EoXt3
>>16
んなこたないw

18:名前は開発中のものです。
08/04/12 02:53:34 ktXoF+sO
そもそもvolatileはポーリング以外での使い道ってあるの?

19:名前は開発中のものです。
08/04/12 10:57:32 NrwO52bj
>>18
C言語の基礎は他でやってくれ

20:名前は開発中のものです。
08/04/15 20:22:42 s+ai1MQz
最近始めた者ですが、カートリッジROMからデータを受け取るには
どうすればいいのでしょうか?
0x40001A8に、B7xxxxxxxx000000のコマンド送信しても
データが受け取れません。
アドレス0x8000000以降には実機だとアクセスできない(?)みたいだし……


21:名前は開発中のものです。
08/04/15 21:29:57 s+ai1MQz
自己解決しました

22:名前は開発中のものです。
08/04/16 22:27:41 4zCW00RZ
DSのテキストエディタでまともなのおせーて!
URLリンク(ds.spacemonkeymafia.com)
URLリンク(www.dcemu.co.uk)
以外で。

23:名前は開発中のものです。
08/04/17 19:49:01 xs50DV4u
>>20-21
役立たずのお前はもう書き込まなくていいよ

24:名前は開発中のものです。
08/04/17 22:27:23 Q+3j3GRU
>>23
そういうこといわない!

25:名前は開発中のものです。
08/04/17 23:56:49 EV2Io6jq
>>23
じゃあおまえは役に立ってるのかと小一時間(ry

26:名前は開発中のものです。
08/04/18 22:10:09 hCAsKzB6
質問して自己解決したのであれば解決法くらい書いとけ
この程度も出来んのなら来るな

27:21
08/04/18 23:25:16 qK96vfQ+
自分勝手な書き込みをしてしまい
大変ご迷惑をおかけしましたm(_ _)m

読み込み部に下のようなプログラムを組んでみました
for (i=0; i<size; i+=4) {
swiDelay(2);
j = srcaddr + i;

// 読み込みアドレス指定
*(u32*)0x40001AC = (j & 0xff);
*(u32*)0x40001A8 = ((j & 0xff00) << 16) | (j & 0xff0000) | ((j & 0xff000000) >> 16) | 0xB7;

// ROMCTRLを読み込み設定に
*(u32*)0x40001A4 = *(u32*)0x27ffe60 | BIT(24) | BIT(29) | BIT(31);

// データコピー
*((u32*)dest + (i>>2))= *(u32*)0x4100010;
}

NO$GBAであっさり読み込めたので、もしかしたら
聞くまでもないことなのかもしれないと思ったので、
あわてて自己解決したと書き込みました。
ですが……実機ではできませんでした。
他にも手続きが必要なのかもと現在調べていますが……
私にはどうやら敷居が高すぎるようです


28:名前は開発中のものです。
08/04/19 12:33:13 PwhlIjw2
>>27
俺にもわからんから力になれない
解決したら教えてくれ
ROM吸出しのソースでもあれば参考になるだろうが
Rudolphに聞いてみたら


29:名前は開発中のものです。
08/04/19 17:01:02 en5yglr0
// 読み込みアドレス指定
*(u32*)0x40001AC = (j & 0xff);
*(u32*)0x40001A8 = ((j & 0xff00) << 16) | (j & 0xff0000) | ((j & 0xff000000) >> 16) | 0xB7;


ソースきちんと読んでないけど、見るからに怪しいな

30:名前は開発中のものです。
08/04/19 17:46:40 yFoqwoJA
素直に1バイトずつにした方が良いんじゃない。

31:名前は開発中のものです。
08/04/19 18:11:36 en5yglr0
いや、1バイトでも4バイトでも駄目で2バイトずつにしなきゃいけないと思う。
バスの幅が16bitsだと、転送で残りの部分にゼロが入ってしまう。
エミュだと動くけど実機では×ならたいていこれ

32:名前は開発中のものです。
08/04/19 22:12:06 57xPYUGE
コントロールレジスタ系を明示的に設定しないとだめな気がする。
デフォルト値を期待しているとエミュと実機で動作が違ったりしたと思う。

33:21
08/04/19 22:53:52 AP7/4/OD
コマンド送信のところを16Bitにしたところ、
・NO$GBA, DeSmuMEでは正常動作
・iDeasでは10000h単位(?)で読みこまれる
・実機では強制的にROMの0x10200番地読み込み(?)
と、挙動がバラバラになりました

GBATekを見てみると、Key1, Key2で暗号化してあるとか、
暗号化回避法とか書いてありますが、この辺も関係あるのかなぁ?

34:21
08/04/19 23:25:16 AP7/4/OD
訂正
・iDeasでは参照アドレスを0x29350と指定すると、0x20050のようになる
 →1000h, 100hは無効
・実機ではROMにはない情報が引き出される

ROMCTRLレジスタのデフォルト値をGBATekにあるのに変えてみたところ、
得られたデータに変化がありましたがROMにない情報でした

35:名前は開発中のものです。
08/04/20 08:54:07 mibeG7R0
暗号回避法ってのは、PassMe/PassThroughとかのことかな?
このあたりは、公式じゃないROMからどうやってプログラムをブートするかの
解説だから、ブート後のROMの読み込み方法じゃないとおも。

あたしは良く読まないで諦めちゃった人だから、頑張って欲しいんだけど
いずれにしても、戻ってくるデータストリームはKEY2で暗号化されてるし
コマンドそのものもKEY2で暗号化して送らないとダメって書いてない?
素直に B7aaaaaaaa000000h 送っても無効なコマンドで処理されそう。
(その場合はKEY2ストリームをビット反転させたものが延々と戻ってくるだけです)


ここからは想像なんだけど
結局ROMのデータを読み出すなら、KEY2の暗号シードが分からないわけで
そのKEY2の暗号シードを取得するには、いったん暗号モードをリセットして
最初から自分でKEY1、KEY2って設定していくしか方法がないんじゃない
かなーって気がします。
たぶんRudolphさんが読み込みにつかってるのはこの方法だと思います。

あるいは他の方法で暗号のシードを取得できたり
暗号化そのものを無効化できる方法があるのかなぁ・・・

36:21
08/04/20 21:11:27 gpbemj1V
>>35
ご指摘ありがとうございます。GBATek読んだらかなり細かく暗号化について
書いてあるんですね。今、暗号化プログラムを組んでいるところです

コマンド送信のバイト幅を8Bitにしレジスタ系を32Bitにしたら、
実機以外のエミュですべて正常動作しました。
あとは暗号化実装さえすれば動きそうな気がしますが……
KEY1の設定大変そうです;

37:名前は開発中のものです。
08/04/21 15:03:22 78g5n2kW
>>8
命令長が32bitだろうと16bitだろうと関係ない。
Core2Duoの最短命令長は8bitだが、8bitCPUとは言わんだろ?
ARM命令とTHUMB命令の違いは関係なくMAIN,SUB両方とも32bitCPU。

ただし、今の時代何をもって何bitCPUと言うのかが微妙になっている。
昔はバス幅で言うのが普通だったが、キャッシュ導入以降は意味がなくなっている。
というか、何bitCPUという言い方自体にあまり意味がない。

38:名前は開発中のものです。
08/04/21 20:13:25 Ii0/LSnu
汎用レジスタのビット数じゃね

39:名前は開発中のものです。
08/04/21 20:33:12 78g5n2kW
>>38
考え方としては賛成だが、メーカー公称はそうでもないんだよね。
例えば、
68000はレジスタは32bitだが、16bitCPU(とモトローラが言っている)。
8086は16bitCPUだが8088は8bitCPU(とIntelが言ってる)。
ただし、8088を搭載した初代IBM PCは16bit PCと誇大広告を…

データバスの幅によってそうなっているのだが、
だからと言って初代Pentiumが64bitCPUかと言うとそれはない。
何bitCPUという言い方自体に意味がなくなっているからどうでもよくなってる。

40:SunDarkness
08/04/22 13:58:50 fwWjNZ2K
NDScripterつくっつた奴。Source公開しないか?
R4に移植は簡単だと思うのだが。

41:名前は開発中のものです。
08/04/22 21:20:16 JGZFpZqN
まずはお前から公開するべきだ。

42:名前は開発中のものです。
08/04/22 23:10:23 /4jMRtNW
移植が簡単なら本人がやるだろ。
素直にソース下さいって言えよw

43:SunDarkness
08/04/23 09:11:31 8ypD7EyW
すんませんどすた。

44:名前は開発中のものです。
08/04/30 16:16:15 5OyLjmlF
40みたいなのがいるから
やる気なくなるんだよな

45:名前は開発中のものです。
08/04/30 20:21:55 dZTwB0pd
sourceforge.net死んでる?
devKitPro落とせないんだけど…

46:名前は開発中のものです。
08/04/30 20:46:22 Ss2vczPN
>>40
後悔するより公開してください

47:名前は開発中のものです。
08/05/02 18:28:49 hSsvv74X
ソースの公開はそんなに嫌なものか?

48:名前は開発中のものです。
08/05/02 18:46:42 qnuTM/pb
当たり前

49:名前は開発中のものです。
08/05/02 20:11:01 YapKo0tj
あたまわるっ

50:名前は開発中のものです。
08/05/02 20:27:37 hSsvv74X
ふーん
でも開発ツールはオープンソースのものを使ってるんだよね
ちょっとは還元しようと思わないの?

51:名前は開発中のものです。
08/05/02 20:43:30 +5fEsdzu
>>50
その理屈はおかしい。
オープンソースはオープンソースプログラム拡大の為に
GPL・LGPL等の厳しいライセンス制約を課している。
それを満たした上でどう使おうが、他人が口を挟める問題ではない。

52:名前は開発中のものです。
08/05/02 21:20:16 hSsvv74X
まぁ強制はしないけどさ
ギブアンドテイクが出来ないなら廃れるだけだよ
狭い界隈だし、協力しあったほうが色々と楽だと思うんだけどねぇ

53:名前は開発中のものです。
08/05/02 21:54:02 +5fEsdzu
>>52
だからその理屈はおかしいっての。
何でも公開するような義務を作ったら、それこそ一発で廃れるから、
廃れないように絶妙のバランスを保つためのオープンソースライセンスなんだよ。

54:名前は開発中のものです。
08/05/02 23:32:04 2Yr33HAj
>>52
おまえ何か出したのか?おまえが件の開発ツールとやらを作って公開してるのか?
何もしてないやつが「ギブアンドテイク」だとか語ってソースを公開させるのは全くギブアンドテイクになってないと思うんだ。
100歩譲っておまえの意見が正しかったとして、おまえが何か公開してからそういうこと言わなきゃ意見が矛盾してることになるんじゃまいか?

世の中には一方的に拾っていくばかりの人が大勢だってことを頭に入れた上で意見を言ったほうがいいぜ?
巨大なお世話かもしれんけどさ。

55:名前は開発中のものです。
08/05/02 23:36:00 zxjXS2Ei
PC-ATは仕様が公開されているのでWindowsもソースを公開すべきです!みたいな論理だなw
まずは、ソースコードはおろかソフトすら公開していないやつが何を言ってもなぁw

56:名前は開発中のものです。
08/05/02 23:59:35 hSsvv74X
確かにDSじゃまだ作り始めたばかりだけど
他の分野でソース付で公開してる

そこまで必死になって嫌がる理由が分からない
将来的に販売するなどの目的があるなら別だけど
みんなでワイワイやったほうが楽しいと思うんだよね

57:名前は開発中のものです。
08/05/03 00:46:44 aXSpfdPa
>>56
だから公開してからいえや
他の分野で公開ってどこだよ、見に行ってやるから言えよ

58:名前は開発中のものです。
08/05/03 00:57:44 My0lu+Sx
こうやって当人が何も言ってないのに的はずれな議論もどきが進んで既成事実になってしまいます

59:名前は開発中のものです。
08/05/03 02:59:05 C2A5UDgG
「ソース見せ合ったほうが楽しいんじゃない?」という程度の意見なのに、
勝手に「ソースは公開すべき」という意見だと曲解した上で必死で否定する人たちって…

60:名前は開発中のものです。
08/05/03 03:37:35 t8DKVKVb
毎度毎度過疎板の過疎スレで熱心なことだなw

61:名前は開発中のものです。
08/05/03 04:34:49 aXSpfdPa
>>59
>>56が何らかのソースを公開したらみんなで楽しもうじゃないか
多分二度とこないと思うけどな。

62:名前は開発中のものです。
08/05/03 07:52:48 UJQoYt/v
>「ソース見せ合ったほうが楽しいんじゃない?」という程度の意見なのに、
すごいこというな・・・
こういう人のために作者は自分の時間を使ってたのか・・・かわいそう

63:名前は開発中のものです。
08/05/03 08:01:25 h7+eVHMM
なんでここにはバカが多いの?

64:名前は開発中のものです。
08/05/03 12:38:57 C2A5UDgG
どうも話が噛み合ってないと思ったら、>>40>>47だと思ってるから必死で否定してるのか。
たしかに>>40みたいなあからさまな乞食は論外だが、
>>47はただ、ソースの公開は嫌なものなのか?って皆に聞いてるだけじゃん。

65:名前は開発中のものです。
08/05/03 14:02:59 aXSpfdPa
>>64
はぁ?必死なのは「ソース見せ合ったほうが楽しいんじゃない?」とかほざいたお前だろ?

66:名前は開発中のものです。
08/05/03 16:21:59 C2A5UDgG
>>65
そんな顔真っ赤にして言われても…

67:名前は開発中のものです。
08/05/03 16:26:20 79Xkme1V
お前がな……はっ!

公開して欲しいと人に頼むなら、自分が公開してから言えってのは同意。
それを踏まえて公開したい人は公開すればいいんじゃね?
求めるだけじゃ誰も答えんよ。

68:名前は開発中のものです。
08/05/03 16:36:40 aXSpfdPa
論点を見事にずらされた希ガス

今俺が希望するのは56のソース公開だけだ
実に楽しみだ、きっとみんなで共有できるはずなのに
当人が一切公開しようとしないんだから困ったものだw

結局そういうもんだよw

69:名前は開発中のものです。
08/05/03 16:45:09 C2A5UDgG
>>67
それには全面的に同意なんだが、>>56の皆でワイワイやったほうが楽しいという意見も納得できるので、
ちょいと口を挟んでみたのだが…どうも言わんとしてるところがうまく伝わらなかったようだな。
というか、俺が>>56だと勘違いされてる?

70:名前は開発中のものです。
08/05/03 17:21:04 Pq8hwf/6
>>68
URLリンク(sourceforge.jp)

ここのどれかだ。
これ以上知りたければお前の氏名とプロバイダのメールアドレスをココに書きな

71:名前は開発中のものです。
08/05/03 17:49:48 9aaHDGgY
>>70
そういうやり方は、公開したくないといってるのと同じだ。




72:名前は開発中のものです。
08/05/03 18:17:04 5+bJ1NHd
>>71
sourcefourgeのプロジェクトなんて個人特定したも同じじゃねーか。
たかが名無しの煽りのためだけに、個人情報に近いものを晒したくはないだろうよ。

73:名前は開発中のものです。
08/05/03 18:30:54 My0lu+Sx
>ちょっとは還元しようと思わないの?
>ギブアンドテイクが出来ないなら廃れるだけだよ

みたいにネガティブな論調、悪意から始めておいて、その態度等に文句を付けられると

>ワイワイやる方が・楽しいんじゃない?

というポジティブで同意を求めやすい善意的な論調にすり替えます。
するといつの間にか自分は公明正大な発言者であると大きな顔が出来るわけですよ

74:名前は開発中のものです。
08/05/03 20:39:50 79Xkme1V
まぁ、いいからゴチャゴチャ言う前に>>56はソースを公開するべきだな。

「sourcefourgeに公開してある」ではなくて、
これから新たにうpろだにでも公開するといいと思うよ。
IDでもテキストに書いていれておけば、証拠にもなるしな。

75:名前は開発中のものです。
08/05/03 20:53:45 aXSpfdPa
自分のプログラムを堂々と晒すこともできずに
「俺は公開している」なんてよくも言えたもんだな。
恥ずかしくないのかね

76:名前は開発中のものです。
08/05/03 21:59:35 C2A5UDgG
なんだかなぁ。
オープンソースを信奉するならまず自分から公開しろというのには賛成なんだが、
ここまで煽りまくるとかえって公開しづらいだろうに…。

と思ってたが>>70のやり方見たらどっちもどっちという気がしてきた。

77:名前は開発中のものです。
08/05/03 22:03:18 h7+eVHMM
>>70 != >>56
だろう常識的に(ry

78:名前は開発中のものです。
08/05/04 00:17:02 uuRP6Trs
じゃこの流れを変えるためにも、俺が自作を公開してみます
DS素人な上にゲーム制作の経験もないけど、
一番最初の入門者にとって参考になれば…と思ってます。
URLリンク(void-main.org)
全然更新していないんだけど、意見あればよろしく。

79:名前は開発中のものです。
08/05/04 01:20:28 OhsOp0+3
あんたえらいな。

80:名前は開発中のものです。
08/05/04 01:55:59 EKIuBmQb
プログラムなんてやったことなくても
意見いったり批判はしていいとおもうけどな

どんな人が書いたかよりも
内容で読んだ方が

81:名前は開発中のものです。
08/05/04 02:30:47 /JCIQP6n
>>78
乙、参考になります。
…って、元A○CCの方じゃないでつか?

82:35
08/05/05 02:34:17 Uak3Varh
久しぶりに来てみたら荒れててワロスw
実機でROMカートリッジの内容を読み込むの成功したんだけど
この雰囲気だと叩かれそうだw

先に結論から言うと、実機でROMを読み込んでも無駄です。
スロットに刺さってるのはマジコンのカートリッジなんだから
この状態で読み込んでも、読み込まれるのは・・・・・

なんでこんな単純なことに気がつかなかったんだろう orz

83:名前は開発中のものです。
08/05/05 07:34:21 uyVcAzjN
DSの開発するとき頼りになるのはサンプルのソースだけど
ソースの公開されてる自作ソフトがあると非常に助かるのは事実
>>82
ROM吸出しソフトはすでにあるよ
皇帝ルドルフとか言う人が作ってた
プログラム実行したらカートリッジ差し替えるんだよ


84:35
08/05/05 08:25:36 Uak3Varh
ROMを吸い出したいんじゃなくて
データを、コードに直接埋め込んだりlibfatを使わずに
カートリッジから直接読み込みたいっていうことじゃないかな?

まぁ結局、素直にlibfat使いなさいていうことですね・・・

85:名前は開発中のものです。
08/05/05 12:08:41 CmhX5RoD
Slot1を読み込みたいならSlot2のマジコンを使えばいい。
Slot2を読み込みたいならSlot2のマジコンを使えばいい。
読み込みたい方と別のSlotからブートすれば何も問題はなかろう。せっかく2つあるんだから。
使えるマジコンは限定されるけど。

86:名前は開発中のものです。
08/05/05 15:17:08 rp/LnXOc
開発時はlibfat+dldiを使ってテスト、リリース時には結合したデータを
gbfsで読み込むよう切り替えたいんだが、なんかいい方法はない?

87:名前は開発中のものです。
08/05/05 17:43:12 Wi/Q4iyL
尻ませんけど有ると重い増すよ

88:名前は開発中のものです。
08/05/05 19:44:29 I85x8lIo
>>82
起動中にDSカード抜くと一発でフリーズするんだね、残念。
PSみたいに途中でメディアを入れ替えられるようになっていれば、
GBAスロットの拡張メモリに一旦転送するとかできどうだけど。

それとも特定のAPIでメディアとの接続を切ったりできるのかな?

89:名前は開発中のものです。
08/05/06 02:18:31 nbRAn1xU
>>88
フリーズするのは主に商用のカートリッジだけですよ?
カートリッジの抜き差しでハードウェア割り込みが発生するので
公式の開発ツールは、カートリッジ割り込みを拾ったらフリーズするように
作られてるんでしょうきっと。

ためしにhomebrewなソフトで抜き差ししてみるといいです。

90:名前は開発中のものです。
08/05/06 03:34:18 xOcS/gYs
>>89
だとすると、割り込みハンドラを登録すればフリーズしないってことだな。
irqSet(IRQ_CARD_LINE, func);
のようにして、まずはテスト用のハンドラを登録して動作を試してみたらいいんじゃないか?

91:つくりませんか
08/05/07 18:23:39 p5xOjkEB
だれかゲームをつくりませんか?

初心者ですが、お願いします。

自分で作ったソフトとか
URLリンク(www.geocities.jp)


92:名前は開発中のものです。
08/05/07 19:00:29 E+5aTInZ
完全に丸投げしているのか
同好の士を募集しているのか
募集しているにしても何を求めているのか
それとも単なる自己紹介なのか
さっぱり分からんな

93:つくりませんか
08/05/07 19:11:22 p5xOjkEB
>>92
つくってください・・・・・じゃなくて、
ただ単にゲームをつくりたいです。
求めているものは、教えあえることです。

94:名前は開発中のものです。
08/05/07 19:31:57 Vb4M9it7
>>93
とりあえず全部教えてください

95:つくりませんか
08/05/07 21:38:50 p5xOjkEB
>>94
???????


96:名前は開発中のものです。
08/05/07 21:41:15 qEv9eqFr
>>95
依存する気100%で「教えあう」と言われても。

97:名前は開発中のものです。
08/05/07 22:11:19 Vb4M9it7
>>95
池沼なんだね

98:つくりませんか
08/05/07 22:47:22 p5xOjkEB
>>94
全部教えてくださいというのはどういう意味ですか??

99:名前は開発中のものです。
08/05/07 23:35:21 Vb4M9it7
>>98
「教えあえることです。」の教えられる部分に決まってるだろjk

100:名前は開発中のものです。
08/05/07 23:52:12 5piMHBxw
何でゲ板は日本語の不自由な奴が多いんだ?

101:名前は開発中のものです。
08/05/08 02:19:41 /70xYc+4
まずはどういったものを作りたいのか示せるか?
それも決まってないようだと、話にならんが。

102:名前は開発中のものです。
08/05/08 02:38:50 +FSp5Ju9
>>93
どんな内容をやりとりするの?
ここや、他のサイトや掲示板でやらず
特定の人たちと情報交換するなら、
明確な目的とかルールを決めておかないと続かないぞ

プログラムメインの情報交換なのか
ゲーム内容メインの情報交換なのかとかさ

情報交換の内容も
初心者と一口にいっても
開発環境の揃え方から教えあうとか
基礎は出来てて一人じゃどうしても分からないことだけ教えあうのかとかも
考えてから募集したほうがいいんじゃない?



103:名前は開発中のものです。
08/05/08 06:49:45 CP6QXV5y
2ちゃんで一緒に作ろうといって出来たためしがない
1人でこつこつやるしかない

104:つくりませんか
08/05/09 01:54:09 m4y4FI3h
なんか夢を失ったので、一人でコツコツつくります。
ありがとうございました。

105:名前は開発中のものです。
08/05/09 11:12:20 b3Fzpyi8
本人なら最低だな
こいつに関わった人カワイソ

106:名前は開発中のものです。
08/05/09 14:08:33 iLaxCFqV
まだ始まってすらいないのに関わった人カワイソ
電波もいいとこ

107:名前は開発中のものです。
08/05/09 15:11:34 K5p3Vw/W
>>104
具体的に何を作るかくらい示さないと釣りとしか思われませんよ。

108:名前は開発中のものです。
08/05/09 20:39:54 C6IOMuha
爆釣りしませんか?

109:名前は開発中のものです。
08/05/10 16:01:10 Dsk0ZCGW
まじめに答えた人カワイソ


110:名前は開発中のものです。
08/05/14 20:17:47 HEb7Ld7s
ndskybookの無線まわりがうちのDSで動かないので、色々なところを直してみた
基本的には、ただコンパイルして新しいdswifiとリンクさせてやるだけでネット回りの問題は解決する模様
しかし相当前の(2006年ごろ)のlibndsで動くように作られていたのでdevkitarm r23対応が地味に面倒くさい
今、ttfフォントファイルを使用した実装にしてみようかと改造中・・・

111:名前は開発中のものです。
08/05/15 01:55:24 Y7BElhp0
最近DSのHomebrewの開発を始めた日曜プログラマーなのですが、
SpriteEntry内のattribute2のタイルインデックスについてお聞きしたいことがあります。

VRAM上の特定の位置にある画像を指定する為にタイルインデックスを指定させ、
画像を設定していますがその上限は10ビット(1024)となっていました。

それ以上の大きいインデックス値に存在する画像を扱いたい場合、
タイルインデックス以外の指定方法はあるのでしょうか?
それとも、必要に応じて書き換えを?

ご教授お願いいたします。

112:名前は開発中のものです。
08/05/15 04:09:12 9eTY5ohq
>>111
基本的にはない。

変則的な方法だと
(1)別のBGに別のキャラクタベースを割り当て、そこに表示して合成する
(2)ラスタ割込みで、途中からキャラクタベースを書き換える
等があるが、
(1)はBGを無駄遣いする(空きBGがあるなら問題はないが)
(2)は同一ラスタ中で混在できない
という問題がある。
要するにキャラクタベースを切り替える方法。
だがそもそも、32x24=768 しか同時にキャラクタを表示できない(表示するスペースが
それしかない)のだから、1024で足りるじゃないか…って思う。
使う分だけ書き換えればいいじゃんって話。

あと揚げ足取りのようだがタイルインデックスの上限は1023。

113:名前は開発中のものです。
08/05/15 08:45:30 r+DVA4aK
ラスタ割り込み、ファミコンでは基本テクニックだったな

114:名前は開発中のものです。
08/05/15 09:56:18 KSCa8HQG
>>112
>>113
情報ありがとうございます。 基本的にはないんですね、開発者の技量次第ですか。
BGについては、まだ将来どう使用するか未定なので今は利用できそうにはありません。

もう一つのラスタ割り込み、ということはIRQ_HBLANKですか。
こちらはそういう用途でも利用できたんですね。
パレット書き換えによる多色表現とかだけだと思ってました。

私はキャラクターがぬるぬる動くアクションゲームでもと思っており、
1キャラのアニメーション量が多いのでこんな質問をしました。

8ビットのプレイヤーキャラだけでインデックス使い切る

4ビットまで減色

プレイヤーキャラの画像領域を縮小して特定範囲だけを使用

いや、知らないだけで実はスプライト用のバンク切り替えがあるんじゃないか?と思い >>111

このような流れです。


>タイルインデックスの上限は1023
0~1023なので上限は確かに1023でしたね。 お恥ずかしい。

115:名前は開発中のものです。
08/05/15 11:49:15 o6NuskXP
今DevkitPro r21を使ってるんだけど、r22に更新すると何かメリットとかある?

116:名前は開発中のものです。
08/05/15 14:41:27 cMc7dGA+
それくらい自分で調べられないと
最後まで続かないと思われ


117:名前は開発中のものです。
08/05/15 15:41:28 dIxlNCjs
>>115
There are a number of improvements

* binutils updated to 2.18.50
* gcc updated to 4.3.0
* grit updated to 0.8
* ndstool now uses default.arm7 from libnds directory
* newlib multibyte code enabled with C-UTF8 locale

release 23が出てるけどね

118:名前は開発中のものです。
08/05/15 17:45:22 993lGL+w
>>114
アニメーションパターンが多いなら
表示するパターンだけVRAMに転送して毎回インデックスを更新すればいいんじゃない?
もしDISPLAY_SPR_2Dで作ってるならDISPLAY_SPR_1Dに切り替えた方が結果的に楽になると思うよ

119:名前は開発中のものです。
08/05/15 19:20:04 dNoJ3Z5k
>>118
当初から1Dでやっており、つい数日前にご指摘なさっている手法に至って
プレイヤーキャラのアニメーションをまかなうようになりました。

VRAM_AやBの128キロバイトをフルに活用できると思っていただけに
タイルインデックスの使用上限にはかなりショックを受けています。
画像のビット深度が倍になるとインデックスの消費量も倍(?)になりましたし

「あー、だからDSになっても16色っぽい主人公がドラキュラ退治するのか」と
納得したような、しないような。
(それでも開発自体は本業より楽しいから問題は無いのですが)

120:名前は開発中のものです。
08/05/15 20:01:41 993lGL+w
なにこの打てば響く完璧なレスw
まぁ元々GBAと互換を保つための機能だからその名残が残ってるのは仕方ないよね
SpriteEntry内にインデックス拡張フラグを入れる余地は全く無いし

121:名前は開発中のものです。
08/05/15 20:43:59 9eTY5ohq
>>114
ごめん。スプライトの話だったんですね。
よく見るとSpriteEntryと書いてありましたね。
BGの話かと思って勘違いしてました。

122:名前は開発中のものです。
08/05/15 23:17:24 KSCa8HQG
>>120
#include <nds/arm9/sprite.h>を覗いた上での
最後の悪あがき的な質問でしたから。

教えてくださる先達に横柄な態度はできませんよ。 こちらは無知ですし。
・・・まぁ、職場にいる先輩PGには慇懃無礼ですが(・∀・)

>>121
たとえ見当違いであっても、
お教えくださったその知識、知恵はありがたいものです。
いつか役立たせていただきます。

123:名前は開発中のものです。
08/05/17 21:44:28 meJQ1fpF
m3さくらはmoonさんが作ってるの?

124:名前は開発中のものです。
08/05/20 11:24:28 xIWP/ob7
この流れを見てると2chで協力つのるのは鬼門なのかね('A`)

125:名前は開発中のものです。
08/05/20 14:01:46 Mu+Z8Ipo
>>91は協力ではなく単なるクレクレ

126:名前は開発中のものです。
08/05/20 15:23:31 RWit6ryT
基本的にプログラムしか出来ない人ばかりな板だしなぁ
凄い勢いで絵を描くから中身を作ってくれ
ってんなら協力者は出てくるかもしれないけどなw

127:名前は開発中のものです。
08/05/20 16:44:47 xIWP/ob7
手書き文字認識モジュールつくったんだけど
学習データが圧倒的に足りないんです、悲しいぐらいに。
とりあえず今はTomoeのデータ使わせてもらってるんだけど
素のTomoeのデータはとてもじゃないけど普通に使えるレベル
じゃないんです。

例えば、書き順がめちゃくちゃ
「止」「上」は、縦線から書くのがたぶん正しい書き順なんだろうけど
tomoeのデータだと、この2つは横線から始まってるし
かとおもったら「歩」に乗っかってる「止」の部分は縦線から始まってる。
「斗」と「科」の書き順も逆になってたり、バラバラで統一されてないし。
まぁ書き順はエンジンの方でなんとでもなるんだけど
もっと酷いのが「旨」
「ヒ」の横棒の部分、は右から左にはらうのが正しい書き方だとおもうんだけど
「指」と「旨」でバラバラだったり、こういうの直してるだけで泣きそうになる。

128:名前は開発中のものです。
08/05/20 16:47:13 xIWP/ob7
せめてDSブラウザぐらいには漢字認識できるようにしたいね
まぁ出来る範囲でコツコツがんばるよ('A`)

129:名前は開発中のものです。
08/05/20 17:22:21 sqxB6/mF
>>127
「止」「上」って上側の横線から書くんじゃないの?

130:名前は開発中のものです。
08/05/20 17:25:19 mzO2jUKQ
> 「ヒ」の横棒
どっちが正しいか迷ったので、"カタカナ 書き順 ヒ"でぐぐってみた。
URLリンク(www.winttk.com)
右から左にはらうのが正しいようだけど、定着してない様子。
どっちからはらっても認識するようにしたほうがいいかも。
これ以外にもこういう文字はあるんだろうなぁ。

131:名前は開発中のものです。
08/05/20 18:23:20 mk1SjfwX
書き順認識はプログラムするほうからは強制したいけどユーザからは無いほうがいいんだよな
市販DSソフトで全然認識しなくていらいらしたことがある
書き順が違ってたらしく書き順変えたらすぐ認識した

132:名前は開発中のものです。
08/05/20 21:09:22 xIWP/ob7
まぁ、あれです
せめてSDカードに学習データを保存できるぐらいまでに完成したら
ここで協力募って学習データ集めさせて、っていうのはありですか('A`)

それよりも泣きたいのは、素のTomoeの辞書データに
カタカナ・ひらがなの濁音拗音がぜんぜん無いンですヴヴヴっヴ
今、がんばってシコシコ作成中 orz

>>127
大漢語林っていう、重さ5kぐらいある鈍器みたいな辞書で調べたら
「上」「止」「歩」いずれも縦の方が筆順が先でした。
筆順なんて国とか時代で違うかもしれないし、本当かどうかはワカンネ

>>131
今考えてるのは、デフォルトの検索は、筆順強制で
それで認識されなければ、書き順フリーで検索して結果を学習
できれば、その学習データをクレクレ君('A`)

133:名前は開発中のものです。
08/05/20 21:41:56 mk1SjfwX
フリーのDS用日本語手書き文字認識ができたらすごいな
DS版もSourceForgeでやってほしいわ

134:名前は開発中のものです。
08/05/20 22:08:14 3kt9IMad
souceforgeじゃなくていいな
むしろうまくいかなくなると思われ

135:名前は開発中のものです。
08/05/20 23:53:39 xIWP/ob7
SourceForgeとかwwwうえww
正直、偉そうなこと言ってるけど、完成度低いんだよホントに・・・
実際に触ってみると分かるよ

URLリンク(www.mediafire.com)

バグ多いけど目つぶってね orz
この流れが続くと痛いから、ぼちぼちROMに戻るデス

136:名前は開発中のものです。
08/05/21 03:37:24 bvk1AfAx
初歩的な質問ですみません。
メモリの空き容量を調べたいと思って、mallocとfreeを繰り返してNULLが帰ってくるまでループ回すってやり方を試してみたんですが、正しい結果が得られないみたいなんです。
何かいい方法はありますか?

137:名前は開発中のものです。
08/05/21 07:13:30 dwc8/njx
>>136
メモリの空き容量っていうのが、曖昧でよくわからない
確保できる「最大の」容量が知りたいのか
確保できる「合計の」容量が知りたいのか
mallocとfreeを繰り返して、っていうのはつまりどういうこと?

メモリはmalloc/freeを繰り返すうちに断片化されていくから
最大の容量≠合計の容量になるのは分かるよね?
最大の容量がしりたいなら
for(size = 40000000; malloc(size) != NULL; size--);
これで調べられるとおもう。

合計の容量がしりたいなら、malloc(256)を何回繰り返せるかカウント
してみたらどうでしょう。

138:名前は開発中のものです。
08/05/21 07:25:04 dwc8/njx
曙が3人座れるサイズの長椅子があったとして、
もし真ん中に曙0.2人分サイズの子供が座ってたら
空いてるスペースは曙2.8人分ぐらいだけれども
実際に座れるのは2人だよね。

malloc() free() を繰り返すっていっても
同じサイズで何度も繰り返すのか、それとも少しずつ
確保するサイズを増やすの、減らすの?

139:名前は開発中のものです。
08/05/21 08:28:21 bvk1AfAx
あいまいな書き方ですみませんです。
今現在取得できる連続したメモリの空き容量ってことで、こんなのでやってました。
これで実行したら、場合によっては4194304以上の数字が出たりします。
んで、whileから抜けれて無いみたい。

char *m_ptr;

m_ptr=NULL;

int cnt=1;



while (1) {

m_ptr=(char*)malloc(cnt*1024);

if (m_ptr==NULL) break;

free(m_ptr);

m_ptr=NULL;

cnt++;

iprintf("mem:%d\n",cnt*1024);

}


iprintf("memfree:%d\n",cnt*1024);

140:名前は開発中のものです。
08/05/21 08:29:24 bvk1AfAx
うぁ、コピペしたら変な改行はいった・・・

141:名前は開発中のものです。
08/05/21 09:13:18 WmlOwoHY
libcが物理メモリと関係なく、確保できるぶんだけ確保するとか、
物理メモリ境界をオーバーしてもNULLを返さないような実装になってんじゃね?

142:名前は開発中のものです。
08/05/21 11:39:45 dwc8/njx
完全に推測でしかないんですが

メインRAMで使える領域は、正確には4Mじゃなくて
後ろの方をシステムが使用してるから(4M - 4k)だよね
/devkitPRO/devkitARM/arm-eabi/lib/ds_arm9.ld を見ると
# MEMORY {
#  rom : ORIGIN = 0x08000000, LENGTH = 32M
#  ewram : ORIGIN = 0x02000000, LENGTH = 4M - 4k
#  dtcm : ORIGIN = 0x0b000000, LENGTH = 16K
#  itcm : ORIGIN = 0x01000000, LENGTH = 32K
# }
# __ewram_end = ORIGIN(ewram) + LENGTH(ewram);
# __eheap_end = ORIGIN(ewram) + LENGTH(ewram);
実際に、こう書いてあるし。

だから、2000000h ~ 3FFF800がmalloc()で確保される空間なんだろうが
/libnds/include/ipc.h をみると
# static inline

# TransferRegion volatile * getIPC() {

#  return (TransferRegion volatile *)(0x027FF000);

# }

ヒープの後ろ4096kを、なんか無断でつかっちょる

前々から、これってmalloc()で27FF000h~が確保されたら
ぐちゃぐちゃになるんじゃないかってヒヤヒヤしてるんだけど
どうなのこれ? 大丈夫なの?

143:名前は開発中のものです。
08/05/21 11:41:39 dwc8/njx
2000000h ~ 3FFF800
じゃなくて
2000000h ~ 2FFF800
に脳内変換しておいてくだしあ orz

144:名前は開発中のものです。
08/05/21 17:00:30 oS9AT3QG
URLリンク(neimod.com)
消えてる?

145:名前は開発中のものです。
08/05/21 20:53:26 bvk1AfAx
難しすぎてよくわかりませんが、先に書いた方法では上手くいかないんですね・・・
ちょっと困っちゃったかもです。
考えてみます。


146:名前は開発中のものです。
08/05/22 00:11:54 0fQn8Ipy
どうすればいいんだ?自分でnewハンドラを実装が一番楽かな

147:名前は開発中のものです。
08/05/22 01:40:27 UbCa5G5P
mallinfo()
使えるかどうかは知らん

148:名前は開発中のものです。
08/05/22 07:45:52 x3H0CM1w
>>142
ld が割り当てる RAM の容量は 4M-4k なんだけど、そうするとその空間は
02000000-023fefff じゃね?
これだと IPC のアドレスが変なんだけど、それは 02400000 からが RAM の
ミラーになってるからで、027ff000 は 023ff000 にあたるので問題無し

>>145
>>137 じゃだめなの?

149:名前は開発中のものです。
08/05/22 08:16:21 UEUlTLpO
>>148
forの方は、4Mから徐々に確保する量を減らして、NULLが帰ってこなかったらそれが連続して取れるメモリ容量って意図だと思うんですが、
初めの確保できないはずの4Mの時点でNULLが帰ってこないので、ループが終わってしまいます。

256づつってのも、確保されたメモリが必ず連続したものとは限らないので、今回の趣旨には合いません。

150:Moonlight
08/05/22 18:31:31 GVceNApO
URLリンク(mdxonline.dyndns.org)

safemalloc_nocheck関数が、私がそれなりに安心して使えると信じて使っているmalloc関数です。
atypeっていうのは、バッファアンダー&オーバーラン、解放し忘れと二重解放を検出するために私が勝手に作った部分ですので、読み飛ばして頂いて問題ありません。
読みづらいと思いますが、もし参考になれば見てみてくださいませ。
DevKitProのmallocが信用できればこんなに苦労しないのに。標準関数をオーバーライドする技術があれば…。(苦笑


151:名前は開発中のものです。
08/05/22 19:33:07 0fQn8Ipy
>>150
こんなに重いmalloc関数、使ってられないんじゃないか?

152:Moonlight
08/05/22 20:00:45 nu+6rnes
>>151
仰る通り本当に重いです。でも安全性を最も気にしていることと、リソース絡みのバグは非常に見つけづらいこともあって、私はこのスタイルを愛用しています。
本当に処理速度が必要な一番内側のループで仕方なくmallocする必要があるときは、ある程度大きなブロックの最初で空きメモリを計算しておいて…あぁ面倒くさい。(苦笑
毎度毎度フラグメントしないようにmallocする順番を考えるのも面倒くさいですし。
メモリをぎりぎりまで使おうと思わなければ(例えば動的キャッシュなどを考えなければ)普通にmallocすれば大抵は動くと思うのですが…。
って愚痴っぽくなってきたので退散します。蛇足失礼しました。


153:名前は開発中のものです。
08/05/22 20:10:06 0fQn8Ipy
>>152
なるほど、さすがに今まで苦労している人は違いますね。サンクス。

俺は今までmallocの問題を感じたことがなかったんだけど、
問題がどこにあるのか完全に切り分けることができれば、
new演算子や完全に独立したmalloc関数を作るのがいいんじゃないか?

154:136
08/05/22 20:43:09 UEUlTLpO
>>Moonlight氏
試しに、プログラムにそのまま組み込んでみます。(当然変更する部分は変更して)
上手くいった場合、組み込んだままプログラム公開とかしても問題ないでしょうか?

155:Moonlight
08/05/22 21:28:14 nu+6rnes
>>153
もちろんスタブをオーバーライドするのが一番いいのでしょうが、標準関数に手を加えるのはDKPがバージョンアップしたときにトラブルの元になりそうと思ってやめてしまいました。
libfatとかはfopenなどを上書きしていましたがなんとなく気持ち悪くて。(プログラマにあるまじき感覚的表現
DevKitProというか、libndsの更新リストが信用でき(ry

>>154
速度や安全性が十分に要求水準を満たすことを確認できたときは、自由に使っていただいてOKです。
私に報告することも、なにか表示する必要もありません。
atype絡みはばさっと切っちゃうが吉ですたぶん。


156:名前は開発中のものです。
08/05/22 22:45:41 x3H0CM1w
うーん、RAM 容量以上でも NULL が返ってこないのは何か
malloc のアルゴリズム以前の別の問題がある気がするんですが…

少なくともうちでは >>137 風のプログラムも >>139 も動いてます
環境は devkitARM release 23 b とそれでコンパイルした libnds 20071023

157:136
08/05/22 23:30:26 UEUlTLpO
環境依存なの?
うちはDevkitPro release 21 (DevkitARM r21)なんで、そのせいとか?
ちなみに、>>139 のを実行したら、値がいくらって出てますか?


158:名前は開発中のものです。
08/05/23 06:04:27 lXYT/wck
r23b で 4128768、r21 で 4145152 でした
ソースと r23b でコンパイルしたものをあげておきます
URLリンク(gamdev3.hp.infoseek.co.jp)

159:136
08/05/23 08:34:48 XZvO7U4o
>>158
DLして試してみたところ、こっちでr21でコンパイルしたものを実行したら4128768の値が出ました。(forのタイプ)
となると、今作ってるプログラムが怪しいってことなのかな?
プログラムでどこかシステムに関わるようなところを潰している?
根本的に何か間違ってる?

160:名前は開発中のものです。
08/05/23 09:03:10 gPnkFXwS
>>159
malloc と free のペアをコンパイラが認識して、最適化で潰されてるってことはない?
コンパイルついでにアセンブリを吐かせてみるとか。

161:名前は開発中のものです。
08/05/23 10:06:00 1BDliqaC
>>160
malloc()やfree()はコンパイラから見たら単なる関数呼び出しだから、最適化で消えることはない。
しかも、freeされないパスもあるわけだから、なおさら最適化で消えるはずはない。

162:名前は開発中のものです。
08/05/23 16:12:01 JQlc5Wg2
BGのパレット0が透明にならないようにする方法ってある?

163:名前は開発中のものです。
08/05/23 16:19:54 GlW5b/3a
一番奥に持っていけばいい

164:名前は開発中のものです。
08/05/23 16:43:13 dp7Y5NLp
>>136
GBAの方でスレ違いだけど
自分はこんな感じで作っています。
URLリンク(akkera102.sakura.ne.jp)

動的確保してないし
そのままだとコンパイルできないけど
参考までに見てやってください。

165:名前は開発中のものです。
08/05/23 17:22:32 JsGk0+Q7
C++で開発したいけどアロケーターというかnewの信頼性って...Devkitだとどんなもんなんだろ...

166:名前は開発中のものです。
08/05/23 21:51:38 kcI1LowV
エエエエなにこの流れは
もう手書き認識エンジンをC++つかって書いちゃったんですけど
もしかして、信頼性やばいとかいう話ですか・・・( ´Д⊂ヽゥエエェ

167:名前は開発中のものです。
08/05/23 22:05:41 kcI1LowV
いちお手書き認識デモのROMイメージ
URLリンク(www.mediafire.com)

認識精度と認識にかかる時間でけっこう苦しんだんですが
問題なく使えるレベルにまでなんとか持っていけたので
この土日に頑張れれば、ソース投下できる気がします。

ただし
相変わらず辞書にTomoeから引っ張ってきたデータを使っているので
カタカナが入っていません。ひらがなも濁音拗音が入っていません。
アルファベットも入っていません orz

168:136
08/05/23 22:20:09 XZvO7U4o
>>166
うちのプログラムがおかしい可能性が大です。

外部関数等を色々引っ張ってきて組み込んだりしてたので、その影響なのかもしれません。
まだ解決には至ってませんが、あとは自分で頑張って調べてみたいと思います。
色々情報等ありがとうございました。

169:136
08/05/24 09:57:36 SU4ROGma
原因が多分わかりました。
自分のプログラムではmallocを使ってメモリを確保していたのですが、他から持ってきたソースがnewを使っていたみたいです。
newを使っていた部分をmallocに変更したら、正しい数値を返すようになりました。
色々とご迷惑をおかけしました。

170:名前は開発中のものです。
08/05/24 17:05:00 vwEWTo+E
セックスフレンドのコンバーター作ってくださいね♥

171:名前は開発中のものです。
08/05/27 10:41:54 YZ7IFeP9
newで確保したメモリをdeleteでなくfreeで開放してたって事でしょうか。
それとも、devkitではnewにはdelete、mallocにはfreeと使い分けてても駄目なのかな?
VC++とかは対応がしっかりしてれば平気なんだけど。
(もちろん、混在しないほうが問題を起こさないで済みますね。前に似たようなトラブルで痛い目に)


172:名前は開発中のものです。
08/05/29 13:34:28 yLtThVzs
ニトロエミュレーター要らない

173:名前は開発中のものです。
08/06/02 20:30:47 WvDNfNGa
J2ME移植してた人どうしてますか?
HSP移植してみたけどこのスレ的には要らない子ですよね。

174:名前は開発中のものです。
08/06/02 23:33:18 ND3GH5J+
>>173
wktk
要らない子だなんて言わないでさぁ。

175:名前は開発中のものです。
08/06/03 20:16:53 A0JtPb+m
>>174
URLリンク(peppermint.jp)
スプライトとタイルエンジンが手抜きなのも一因なんですが
そもそものインタプリタの性能的にアクションゲームは厳しそうです

176:名前は開発中のものです。
08/06/05 01:58:55 2eUO7g6w
NDScripterどなたか再アップロードしていただけませんか?

177:名前は開発中のものです。
08/06/05 15:10:16 9maHgBmq
セックスフレンドのコンバーターどなたか作っていただけませんか?

178:名前は開発中のものです。
08/06/08 23:21:51 uru8nGCo
>>175
typoあるよ。
郡 → 群


179:名前は開発中のものです。
08/06/09 22:02:37 ly2i6a0d
>>178
thx。直しました。

180:名前は開発中のものです。
08/06/12 00:48:39 abLtMVX/
上画面と下画面とで同時に3D画面を表示するのってどうやんの?
できればサンプルコード、キボン

181:名前は開発中のものです。
08/06/12 03:05:39 Yl90CHys
え、できるの?

182:名前は開発中のものです。
08/06/12 03:26:37 ERHI+GZc
3D対応なのはEngineA だけだから、どうしてもやりたいなら
片方はソフトでがんばるしかないんじゃないか?

183:名前は開発中のものです。
08/06/12 08:20:05 59gOD9Qc
いやキャプチャしつつ毎フレームlcdSwapで可能。
フレームレートは半分になるけど。

184:名前は開発中のものです。
08/06/12 10:02:00 Au+VrmBW
devkitARM R23bでサンプルがコンパイルできないんだけど設定が悪いのかな?それとも仕様?
ググッてみたけどPAlibではR21以上では使えないみたいなのしか出てこなかった…PAlibは使ってないのに。

C:\devkitPro\examples\nds\Graphics\2D\hello_world>make
linking hello_world.elf
c:/devkitpro/devkitarm/bin/../lib/gcc/arm-eabi/4.3.0/../../../../arm-eabi/lib/th
umb/ds_arm9_crt0.o: In function `CIDLoop':
(.init+0x2ac): undefined reference to `initSystem'
collect2: ld returned 1 exit status
make[1]: *** [/c/devkitPro/examples/nds/Graphics/2D/hello_world/hello_world.elf]
Error 1
make: *** [build] Error 2

185:名前は開発中のものです。
08/06/12 11:53:49 hPJuu01m
>>184
アップデートしてmakeしてみた
D:\devkitPro\examples\nds\Graphics\2D\hello_world>make
main.cpp
arm-eabi-g++ -MMD -MP -MF /d/devkitPro/examples/nds/Graphics/2D/hello_world/buil
d/main.d -g -Wall -O2 -mcpu=arm9tdmi -mtune=arm9tdmi -fomit-frame-pointer -ffast
-math -mthumb -mthumb-interwork -I/d/devkitPro/examples/nds/Graphics/2D/hello_wo
rld/include -I/d/devkitPro/examples/nds/Graphics/2D/hello_world/build -I/D/devki
tPro/libnds/include -I/D/devkitPro/libnds/include -I/d/devkitPro/examples/nds/Gr
aphics/2D/hello_world/build -DARM9 -fno-rtti -fno-exceptions -c /d/devkitPro/exa
mples/nds/Graphics/2D/hello_world/source/main.cpp -o main.o
linking hello_world.elf
built ... hello_world.arm9
Nintendo DS rom tool 1.38 - May 15 2008
by Rafael Vuijk, Dave Murphy, Alexei Karpenko
built ... hello_world.nds

D:\devkitPro\examples\nds\Graphics\2D\hello_world>

186:名前は開発中のものです。
08/06/13 00:32:45 hTZLLvJH
>>185
検証サンクス。
どうやらインストールに失敗していただけのようだ。
環境変数を弄くって再インストールしたらできた。

187:名前は開発中のものです。
08/06/13 01:25:41 I9zeYfhZ
devkitproのサンプルを見ると、glBeginとglEndの間はglTexCoord2t16やglVertex3v16で
チマチマ描いてるみたいですが、これが最速なんですかね。
それとも6144頂点で頭打ちするから描画速度を心配する必要はないのかな?

188:名前は開発中のものです。
08/06/13 23:43:19 edkaQlWT
ディスプレイリストのサンプルみたいにコマンドパックをDMAで送った方が早いと思う。

189:名前は開発中のものです。
08/06/14 09:45:26 bjLZXeDG
まぁなんのためのGFXFIFOなのかと

190:名前は開発中のものです。
08/06/14 19:47:28 b5JMntJj
ちょ、Moonlightさん何やってんのwww さくらはwww


191:名前は開発中のものです。
08/06/16 00:09:18 h5aN3++z
>188-189
わかた、ども

192:名前は開発中のものです。
08/06/16 20:07:21 Fi+4mDrr
ndsで自分のソフトに組み込めるファイラってある?

193:名前は開発中のものです。
08/06/17 22:49:31 QaaOCC1U
libndsのGL_FOGの使い方、さっぱりワカンネ
教えて、エロイヒト!

194:名前は開発中のものです。
08/06/19 11:12:46 aMY2EDOc
OpenGLでフォグの知識があればわかると思う
というかとりあえずそっちから理解するべき

195:名前は開発中のものです。
08/06/20 08:22:45 YtCEI6xK
みなさん、DLDI(FAT)を使ったプログラムを作った時のテストってどうしています?
私は実機で毎回テストしているんですが、microSDカードの付け替えが面倒で、
出来ることならばエミュレータ上でテストしたいんですが、
エミュレータはアダプタに対応していないので困っています。
何かいい方法を実践されている方がいらっしゃれば、ぜひ教えてください。

196:名前は開発中のものです。
08/06/20 20:53:20 IKyKkzlU
R4互換で動くエミュがあったはず。
かなり前の記憶なので、よく覚えてない。

エミュ使わずに実機で試すってのなら、DSFTPとかでDS側にプログラム持ってくるとか。
金かけてもいいってのなら、DS-RAMアダプターも選択肢の一つかもね。

197:名前は開発中のものです。
08/06/20 22:22:14 X2WfPJnz
desmume 0.8はlibfat経由でファイルI/Oできてる

198:名前は開発中のものです。
08/06/21 02:38:49 7hV1kaOb
Scale&Rotateのスプライトを使ってプログラムしているんだけれど、
スプライトの数が32個を超えると画像の一部が欠けてしまう。
特に32個に制限はなかったと思うけれど、何が原因かわかる人いますか?

199:名前は開発中のものです。
08/06/21 02:50:47 1eIWMQ3q
正確なピクセル数は忘れましたが、横一直線にオブジェクトが並ぶとスキャンラインの仕様でオブジェクトの一部が処理されなくなります。
SCALEしても規定範囲を超えないオブジェクトや、ROTATEではみ出た部分が重要でない場合は、DOUBLEフラグを外すのがお手軽な対応です。
ここらへんは(NDSはGBAとほぼ同じなので)正直日記さんを読むと詳しく書いてあるのでお勧めです。
HBLANK/VBLANK期間内のみVRAMにアクセスする設定にするのも道が開けるかもしれません。
BGを4枚使い切ることがないのであれば、巨大オブジェクトの一部をBG3/BG4に展開してしまうのも手だと思います。


200:名前は開発中のものです。
08/06/21 03:16:03 7hV1kaOb
>>199
あ、なるほど。32個ではなくて並びすぎだったのか。
情報ありがとうございます、ROTATEを外して対応してみます。

201:名前は開発中のものです。
08/06/21 13:56:37 TKydpBdA
DSのスプライトが横一直線に表示できるのは透過色も含めて1018ドット
REG_DISPCNTのBIT23を0にしたときは1414ドット・・・のはず

DOUBLEフラグを付けると32ドットのスプライトならscaleに関わらず64ドット相当になり
64ドット*32個で2048ドットなのでオーバーした分が欠ける

202:名前は開発中のものです。
08/06/21 14:12:05 TKydpBdA
遅レスだが>>119
REG_DISPCNTにスプライトVRAMを256Kまで使えるようにするフラグがある
インデックス自体は増やせないが、インデックスのポインタサイズを2~8倍に出来るので
画像のビット深度を上げても低いときと同じ量のキャラクタ数が格納できる

203:名前は開発中のものです。
08/06/21 18:49:10 LaL2WHZA
>>195
desmumeの他にはideasもイケる

ideasの方はイメージファイルにr4tf.dldiをパッチして
PropertyからR4エミュレーションを有効にする必要が
あるけどな

204:名前は開発中のものです。
08/06/21 21:54:17 EDSbWPdd
>>202
DISPLAY_CRの別名だよね?
DISPLAY_SPR_1D_SIZE_~?

205:名前は開発中のものです。
08/06/22 04:06:31 cwyntve3
>>198
ATTR0_ROTSCALEを使っているんじゃないか?
ATTR0_ROTSCALEで一度に回転できるのは32個まで。なので、そのせいだと妄想。
すべて回転するには、ATTR1_ROTDATA(n)で回転するスプライトを入れ替えると
できるはず。

使っていればの話・・。

206:195
08/06/22 05:41:28 hOUiSeY7
皆さんありがとうございました。desmume 0.8で問題なく動かすことができました。

207:名前は開発中のものです。
08/06/22 08:47:16 BkmplJLn
>>202
そうそれ
DISPLAY_SPR_1D_SIZE_64だと256色スプライトを16色と同様のインデックスで扱えるようになる

レスとは関係ないがgbatekはでかすぎて使いづらいのでNDSの部分に絞って分割しといた
適当にお前らで活用してくれ
URLリンク(gamdev3.hp.infoseek.co.jp)

208:名前は開発中のものです。
08/06/22 08:48:37 BkmplJLn
>>207>>204宛て

209:名前は開発中のものです。
08/06/22 08:59:08 ip+XhLaB
NDScripterはどこにありますか?

ここにあったっぽいけど、荒れちゃってます。
URLリンク(hylom.sakura.ne.jp)

210:名前は開発中のものです。
08/06/22 09:41:37 F9/jxuyE
>>209
> NDScripterはどこにありますか?

URLリンク(www7.axfc.net)
上げてみた。
ただ、DLDIとか無い頃のツールだから、
SLOT2系マジコンでないと動かなかったはず。


211:名前は開発中のものです。
08/06/22 09:48:41 nTuD9rb+
>>207
ども
119じゃないけどやってみる

212:名前は開発中のものです。
08/06/23 06:13:35 Rn5bq30C
>>207
gbatekサンクス

213:名前は開発中のものです。
08/06/23 18:41:54 YoriIvPJ
俺Wiiで趣味の開発してるんだけど、いいなこのスレ
Wii版立てたら需要あるかしら

214:名前は開発中のものです。
08/06/23 21:14:25 lRqgu29v
>>213
もう、あるから、建てなくていい。

★  任天堂 Wii  ★
スレリンク(gamedev板)


215:名前は開発中のものです。
08/06/24 07:37:04 FHhjKSvv
>>213
もっとWiiの開発資料が集まらないと皆やる気でないんじゃないか?

216:名前は開発中のものです。
08/06/24 11:29:21 +aLrM5an
DeSmuMEを使ってみたけど、dldiに対応しているのは嬉しいね。
でもprintfで表示しているfontが欠けるんだけど、
どの設定を変更すれば直るだろう?

217:名前は開発中のものです。
08/06/24 14:31:14 EsOI+g4Y
本家DeSmuMEはウインドウのサイズ調整に問題があって多分本来より縦横が縮小されてた記憶があるので
ちょっと広げてやると見えないかな

218:名前は開発中のものです。
08/06/24 16:49:05 +aLrM5an
>>217
なるほど、うちの環境では
上のWindowメニューが2段になってしまっているから
それできちんと表示できなかったわけですね。

原因分かってすっきりしました、ありがとう

219:名前は開発中のものです。
08/06/24 18:47:47 /aiv48RP
そうなんだー

220:名前は開発中のものです。
08/06/24 22:59:50 +aLrM5an
DeSmuMEの、ウィンドウが縮小されてしまう問題の解決策を
一応ここにも書いておきます。

ソースが公開されているので、自分でソースを修正するのが一番ですが
・ソースのコンパイルにはPerlのXML::Parserが必要;msys上でのインストールは面倒
・ソース中にWinAPIでAdjustWindowRectExを使っているので、メニューバーの高さの計算が面倒
というわけでソースをいじるよりはリソースをいじった方が早そうに感じました。

Resource Hackerというフリーのツールで、Menu/MENU_PRINCIPAL/1033のメニューから
&Emulatorの部分を&Emuに書き換えました。
(なお、配布版のDeSmuMEはUPXで圧縮されているので、UPXで解凍してからResource Hackerで処理します)

これでメニューが折れることなく、フォントが潰れることなく表示出来ます。
ご参考までに。

221:名前は開発中のものです。
08/06/25 00:35:05 bsamtd8K
>>194
Fogは他でよく使っているだけにハマってしまった

libndsではglFogみたいなAPIが充実してないから
Fogに必要な値は直接流し込まないとダメなんだw

222:名前は開発中のものです。
08/06/25 19:42:05 wZrlLkCy
よろしくお願いします。

223:名前は開発中のものです。
08/06/27 17:22:31 +C7TXW3x
質問よろしいでしょうか。

最新のdevkitProを入れたんですが、devkitARM\includeにファイルがありません。
これが通常ですか?

VC++2008Expressで開発したいんですが、一部IntelliSenseが効かないです。
C:\devkitPro\libnds\includeとC:\devkitPro\devkitARM\includeはインクルードディレクトリに指定済みです。
他に指定しなければならないものがあるのでしょうか?
(irq~は補完してくれますが、video~や、vram~,iprintf等は無理です。)

224:名前は開発中のものです。
08/06/27 17:39:19 5tSU1H4B
>>223
devkitARM\includeは俺のも空だよ
インテリセンスはサブフォルダも全部指定しないとだめなんじゃないかな

225:223
08/06/27 17:44:04 ih9Lx+ZJ
>>224
devkitARM\includeはなくてもOKなんですね。

C:\devkitPro\libnds\include以下のディレクトリ全部指定しても補完してくれませんでした・・・

226:名前は開発中のものです。
08/06/27 18:28:31 5tSU1H4B
>>225
VC++2005でやってみたけど同じだね
#include <nds/arm9/video.h>
のように直接インクルードすれば反映されるようだ

227:223
08/06/27 18:46:18 wtcjxR28
>>226 #include <nds/arm9/video.h>
試してみましたが、だめでした。
nds.hが、関連するものはすべてインクルードしてるはずですよね?

BuildLogに以下のようにかかれているのが気になりますが、ビルドはできています。何なんでしょうか。

コマンド ライン 一時ファイル "D:\forXP\TMP\BAT00000118883252.bat" を作成しています。内容 :
[
@echo off

make -r 2>&1 | sed -e 's/\(.[a-zA-Z]\+\):\([0-9]\+\):/\1(\2):/'

if errorlevel 1 goto VCReportError

goto VCEnd

:VCReportError

echo Project : error PRJ0019: ツールはエラー コードを返しました : "メイクファイル プロジェクト動作を実行しています。"

exit 1

:VCEnd
]
コマンド ライン "D:\forXP\TMP\BAT00000118883252.bat" を作成しています。



228:名前は開発中のものです。
08/06/27 21:31:43 +HE8SgZ1
>>227
つ arm-eabi-objdump

229:名前は開発中のものです。
08/06/28 07:28:16 maYXHA8v
>>223
IntelliSenseが効かないだけなら、ここより専門のがあるんじゃない?

230:223
08/06/28 15:05:16 egOCuvJR
>>229
nds.hファイル内の”#ifdef ARM9”と”#ifdef ARM7”及び対応するendifをコメントアウトしさえすれば
IntelliSenseは効くようです。コメントアウトせずに済み方法があればいいんですが、スレ違いですね。

インクルード内でifdefで囲まれているインクルード対象をIntelliSenseに対応させる方法探します。

>>228
使ってみたんですが、エラーコードの原因はどうやって特定するんでしょうか?

231:名前は開発中のものです。
08/06/28 17:09:03 6d5xjZP+
GBAのノウハウってDSに引き継げんの?

232:名前は開発中のものです。
08/06/28 20:22:45 um/2IwtR
>>230
おいおい、objdumpでVCのエラーなんてわからないだろ、常考
objdumpはできあがったバイナリを調べるのに使うんだよw

Makefileの中身のどの箇所でエラーとなっているかは
自分で突き止めるんだ

コマンドラインからなら通るのか、そのmake?

233:名前は開発中のものです。
08/06/28 21:36:51 oliOclzy
つかエラーじゃないよそれ

234:223
08/06/29 00:28:40 EnkXWu9V
>>232
.nds(正常に動作する)は出力されてるのでmakeはできてると思います。

>>233
では、VCのバグですか?

235:名前は開発中のものです。
08/06/29 00:48:27 Y7gCl5u+
IntelliSenseの方は分からないけど、>>227のBuildLogなら
単にmakeを実行する一時バッチファイルの中身が表示されてるだけ

236:名前は開発中のものです。
08/06/29 05:42:04 mp2w3Eah
とにかく少なくともここで話す内容じゃない
簡単に言うとスレ違い
プリプロセッサならdefineすれば良いんじゃないのと適当に返してみる

237:名前は開発中のものです。
08/06/29 07:31:09 nVyn2ztW
>>234
VCのバグとか・・・すれ違いにもほどがある。
C言語をVCで始めからやり直してから来た方がいいような気がする。

238:名前は開発中のものです。
08/06/29 17:20:32 FGehACnw
basicでも大丈夫ですか?

239:名前は開発中のものです。
08/06/29 18:58:21 rJdZl+FK
やれるもんならやってみ

240:名前は開発中のものです。
08/07/01 23:01:39 Y/1PAekQ
moonshellの中の人、どうしちゃったんだろう・・・。

241:名前は開発中のものです。
08/07/02 00:59:30 9geo0vjV
>>240
間違いなくM3さくらのせいだろうな
プライド高そうな人だったし気が触れちゃったんじゃねーの?
まさかあの騒動がここまで影響出るとはね
動画エンコーダアップロードとMDXOnlineだけでも復活してくれねーかな・・・


242:名前は開発中のものです。
08/07/02 05:11:02 IY721JqU
moonlight氏かえってこないかな~

243:名前は開発中のものです。
08/07/02 09:42:37 TA2gbyqL
あの人縁を切ると決めたら頑なっぽいからなあ…

244:名前は開発中のものです。
08/07/02 13:05:46 mglFmLQ7
精神的にちょっとおかしい人だからね
才能があれば&リアルで自分と関わりがなければ全然問題ないけど

245:名前は開発中のものです。
08/07/02 15:37:34 AkFpiYfA
死亡説が出ないのが不思議だ

246:名前は開発中のものです。
08/07/02 20:29:11 cOfiZCm9
>>244
お前のが確実におかしいよ
精神的にちょっとおかしいと思っても、普通なら口に出して言わない

247:名前は開発中のものです。
08/07/02 20:33:51 lnzc/nfa
天才と○○○は紙一重

248:名前は開発中のものです。
08/07/02 22:43:46 Rnn1diOX
>>241
御免、kwsk。

249:名前は開発中のものです。
08/07/03 00:57:33 qh4VOJeP
>>246
それフォローになってないw

250:名前は開発中のものです。
08/07/05 10:22:06 C83wURmz
ちょっと質問なんですが、
BG面で256色モードと16色モードの混在って出来るのでしょうか?
出来るのであれば、パレットはどういった扱いになるのでしょうか?

251:名前は開発中のものです。
08/07/06 08:57:48 scmPwqAZ
>>250
モードはなに?
使っているのはどのBG?
詳しく書かないとわからないよ。

252:名前は開発中のものです。
08/07/06 12:16:40 8XSWHn8K
言わんとすることはわかる気がするけどな
回答はしりませんすんまそん

253:名前は開発中のものです。
08/07/06 13:49:17 SZCj44wu
iモード

254:名前は開発中のものです。
08/07/06 13:50:46 P5Ag2mIb
>>250
モード0, 1なら、BGxCNTレジスタのbit7を設定すれば一応可能。
ただし、パレットデータは共用される(256個分の領域しかないのだから当たり前)。

つまり、うまくやらないと混在させるのは難しい。
素直に256色モードに統一したほうが楽だと思う。

255:名前は開発中のものです。
08/07/11 22:00:42 JfXmTNvX
DSluaってスレチ?

256:名前は開発中のものです。
08/07/13 18:05:12 2eCljy4E
>>255
DSLuaでの開発についてはスレ違いだが、
DSLuaの内部の実装とかならOKだと思う。

257:名前は開発中のものです。
08/07/14 20:49:17 5pmKiOkd
MDXONLINEって、どーなっちゃうのかな・・・。
このままフェードアウトは、余りに寂しい。
とつぶやきつつ、devkitのサンプルソースを読む俺。
なんか、ndsのnscriptをテスト動作させている動画とか出てきた・・。
昔、中の人がアップした奴かな

258:名前は開発中のものです。
08/07/15 20:30:36 rG/YXUJG
>257
アングラサイトの終り方なんてだいたいそんなもん

259:名前は開発中のものです。
08/07/16 14:56:35 VC6XQ46u
アングラて

260:名前は開発中のものです。
08/07/16 20:11:10 XIZgDcrA
258さんはアングラと言う言葉を最近知り、使いたくてたまらなかったんですよ

261:名前は開発中のものです。
08/07/16 21:19:46 hShHFIpY
HelloWorldとかのタッチしている位置が表示されるサンプルプログラム
を実機で動かして、画面をタッチペンでぐりぐりしてると、
時々タッチ位置が一瞬意図しない位置にズレる事があるのですが、皆さんのDSでは
タッチ位置がズレることはありますか?

調べてみたところ、以下のような結果が出ました。
タッチ位置のずれ
 HelloWorld あり 
 既製ゲームのおまけのお絵かき機能 あり
 ピクトチャット なし

タッチ位置の瞬間的なズレはDSの仕様で、ピクトチャットのみがそれを補正しているように感じるのですが、
実際のところどうなのかわかる方教えていただきたいです。

262:名前は開発中のものです。
08/07/16 22:58:26 atVrTywb
moonlightの人のblogでそういう話出てた
今見られないので詳細はかけないが、要約すると諦めて自分で
補正考えろって結論だったと思う

263:名前は開発中のものです。
08/07/17 00:00:48 1pFczrD2
>>262
ありがとうございます。
自分のDSがおかしい訳ではないようですね。

264:名前は開発中のものです。
08/07/17 01:38:28 tCrgQo92
libfatを使ってfopen()する際にLFNを指定して開こうとしたんだが、
Linux版のdesmume 0.8ではダメだった。
これって他の環境では問題なく動作するもの?
それともshort file nameを逆引きする(やり方知らないけど)とかして
fopen()しないとダメ?

265:名前は開発中のものです。
08/07/17 07:07:42 xMrlCQt5
>>264
emu用のdldiとかあったっけ


266:名前は開発中のものです。
08/07/17 14:44:25 59hHhVsQ
どれもFATが不完全
なによりWrite出来ないし
ああイメージは例外だけど

267:名前は開発中のものです。
08/07/17 15:42:32 M+WZ9yK/
セキュリティ考えるとWriteがダメってのは助かるけどな

268:名前は開発中のものです。
08/07/17 16:17:54 zIUQ/uil
>>261
保護シール貼ってる?

269:名前は開発中のものです。
08/07/17 19:26:39 1pFczrD2
>>268
保護シールは貼ってない状態での話です。

270:名前は開発中のものです。
08/07/18 02:13:21 gnbDMtym
>>269
静電気で飛ぶんだったけか?
昔パーム系の開発サイトで補正のノウハウを見たような気が
するが忘れてしまったなw
HELD中の履歴をとっておいて単位時間内に大きく履歴から
外れた座標が来たら無視するとかはどうよ?

271:名前は開発中のものです。
08/07/18 18:02:35 Xik3Vsvn
>>270
一応そんな感じで無視するようにしてありますが、
どれくらい飛んだら処理するか細かい調整が必要がみたいです。。

272:名前は開発中のものです。
08/07/19 00:32:54 9qnQsuIX
チャタリングか。市販ソフトの場合任天ライブラリでやってくれるからな。
URLリンク(www.softech.co.jp)

273:名前は開発中のものです。
08/07/19 11:12:15 NXgdmyxi
若干のタイムラグ(数フレーム)があってもいいのなら…
自分の場合、ARM7側で6フレーム分のタッチ位置情報を随時バッファに入れていって更新させる。
ARM9側でタッチ位置情報が必要になったら、バッファの一番古い情報から取り出す。
ただし、KEY_TOUCHがOFFからONに変わった時に、先頭4フレーム分は無効データとする。
取得したX・Y座標とも0でない場合に、それをタッチ位置として使ってる。
4フレーム以上連続してタッチしていないと、タッチしたことにならないって方法。
リアルタイムで処理させるのには向かないかもしれないけどね。



274:名前は開発中のものです。
08/07/19 22:30:43 txGfZrBe
セックスフレンドDSおねがいします

275:名前は開発中のものです。
08/07/24 02:32:29 TUCz/kf5
glPolyFmtでPOLY_FORMAT_LIGHT0~3設定したら、
以降のglColorは無効となるので、色指定にはglMaterialfを
使わなければならないでFA?

276:名前は開発中のものです。
08/07/24 09:54:52 SX2LVino
OK
ただし頂点ごとにglColor指定していればそちら優先

277:名前は開発中のものです。
08/07/24 10:22:01 lNE7+lYR
あかん寝起きでそっけなく書いた
DSの3Dはいろいろ特殊で
ライトを設定しても法線がないと意味がないのと
法線があってもglColorを全ての頂点に設定しているとカラーの色が優先されたりするんだったきがする
曖昧ですまん

278:名前は開発中のものです。
08/07/24 13:42:55 i8vESAto
DSで同人エロゲ発売!?
URLリンク(hatimaki.blog110.fc2.com)
任天動くかな・・

279:名前は開発中のものです。
08/07/24 16:31:44 T/TcEZ8r
>>278
自作ソフトで金取ったら捕まるんじゃね?

280:名前は開発中のものです。
08/07/24 17:24:15 G6oyO9Ec
なんで捕まるのかね?

281:名前は開発中のものです。
08/07/24 18:26:03 Bi0s/vle
>>278
> マジコンにこういう使い方があるとは・・・

って書いてあるけど、Homebrewを動かすのって、
建前上は一番基本的な使い方のはずなんだが。

282:名前は開発中のものです。
08/07/24 18:31:13 mj2WadFu
Moonlightがさくらで数百万稼いで、悠々自適に暮らしてるのに、たかが同人ゲーで捕まるわけないだろ

283:名前は開発中のものです。
08/07/25 03:43:22 kwMaafB0
>>276-277


逆にNormalが指定してあるのにLightを指定してないと実機では真っ黒になるとか、
libndsのglRotatefの回転方向が普通のOpenGLと逆とか、いろいろ謎杉

あと、NDSならではっぽいPolygon IDもイマイチ理解できないYO!
誰かNDSでのShadow Volumeのサンプルソース、プリーズ。

284:名前は開発中のものです。
08/07/26 15:11:59 h/jClE6o
実機のデバックに詰まって、no$gbaのデバッカー付きを買おうと思ったら
paypal中止しててお金送れず・・・
ううむ

285:名前は開発中のものです。
08/07/26 16:39:13 Auh5eJ2y
残念でしたー^^

286:名前は開発中のものです。
08/07/26 17:17:36 9fSQH7CP
あげないよ

287:名前は開発中のものです。
08/07/26 18:12:23 h/jClE6o
夏休みと言う事をすっかり忘れてた。

288:名前は開発中のものです。
08/07/26 21:27:39 2TBdmr2b
そういや結局NDScripterってどうなったの?
見ている限り2年前のはにはに+夏kanon動作確認動画からバージョンうpしてないようなのだが・・・
ONSをDSで動かすにはかなり大変なようだし・・・なんだかなぁ

289:名前は開発中のものです。
08/07/26 23:48:03 YbbPRemH
>>284
俺も同じ経験がある。
3か月くらい前の話だが、既にダメだった。

290:名前は開発中のものです。
08/07/28 16:31:18 2D9ctRkY
スプライト関連の質問です。

スプライトの ATTR0_ROTSCALE_DOUBLE 使用時は、
ATTR1_FLIP_X の併用はできないのでしょうか?

ATTR1_FLIP_X を使わない場合は通常通り表示されているグラフィックが
ATTR1_FLIP_X を使った時に限り単色塗りつぶし矩形として表示されてしまいます。

同じような現象に遭った方、いらっしゃいませんでしょうか?

291:名前は開発中のものです。
08/07/28 22:46:35 y5/QDNNB
無理。拡大回転時のそこは拡大回転用パラメータになるので反転は出来ない

292:名前は開発中のものです。
08/07/28 23:31:53 RsoqNuWb
そうなんですか・・・そこを何とか上手く出来ませんか?

293:名前は開発中のものです。
08/07/28 23:34:02 SZNX3m/m
変換行列でフリップしたらいかんの?

294:名前は開発中のものです。
08/07/29 01:16:35 3E6q8T5V
devkitproのサンプル"rotscale_text"でこれはテキストだけど
SUB_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;
ってやったら反転できた。スプライトも似たようなもんだから
こんな感じで出来るかも

295:名前は開発中のものです。
08/07/29 01:20:51 3E6q8T5V
×これはテキストだけど
○これはBGだけど

296:290
08/07/29 16:45:46 ka3ZdjYg
ご意見、情報ありがとうございます
ご指摘の方法を試してみた所、望んでいた処理結果となりました。

当方、行列や微分積分を習わない学科に籍を置いていたため、
「変換行列でフリップをしてみては?」という意見が出ていても
なかなか理解できなくて困っていたのでとても助かりました。

ありがとうございました。

297:名前は開発中のものです。
08/07/30 12:24:49 Yc2cQFuo
wifilibでwepなしのルーターに接続ってできますか?

298:名前は開発中のものです。
08/08/02 03:07:01 3KgJL95d
グラフィックス機能をラップしたライブラリありませんか?

299:名前は開発中のものです。
08/08/02 09:16:04 RY65IW34
palibやglib

300:名前は開発中のものです。
08/08/02 18:57:36 pOzuVdtQ
補足。glibはMoonlight氏のフリーウェアには必ずといってもいいほどの高頻度で使われているグラフィックライブラリ。C++専用でクラスを多用している。
毎回微妙に違うから最新版は目覚まし時計のソースから引っ張ってきたらいいが、単体でアップされていたglibに付属ツール群が同梱されていたので、Windows用ツールは単体glibから使うのがお勧めだ。
一発画面初期化関数と、CglCanvasは便利すぎる。


301:名前は開発中のものです。
08/08/02 21:28:31 3KgJL95d
>>300
ありがとうございます!
さっそく使わせてもらいます。

302:名前は開発中のものです。
08/08/05 06:08:08 pz5K41tp
Moonlight氏のページが落ちているのですが、どうされたのでしょう

303:名前は開発中のものです。
08/08/05 08:46:48 ENW5ls37
任天堂から訴えられたんじゃねーの

304:名前は開発中のものです。
08/08/05 17:10:30 iQ6V5DCV
昔自殺未遂してるしページと一緒に消えたか

305:名前は開発中のものです。
08/08/05 18:27:23 AC7UDN7L
あーあれな。忍者でウェブキャッシュしてるからどっかに画像あるけど、一瞬グロ踏んだかと思ったもんな。
俺が読んだ話だと、M3さくらで大金貰ったからバカバカしくてやめたらしい。(ソースはさくらスレ)
けど最後の日記を見るとそうは思えないんだよな---
でかサクラ関係なのは間違いないんだろう。良い人を亡くしたよ。


306:名前は開発中のものです。
08/08/06 15:39:02 iupa6le2
Programmer's Notepad でrunでエミュレータを起動させるため
関連付けするにはどうすればいいでしょうか?

307:名前は開発中のものです。
08/08/06 19:58:07 +ObwHsP9
       ____
     /⌒  ⌒\ ホジホジ
   /( ●)  (●)\    >>305
  /::::::⌒(__人__)⌒::::: \  <で?
  |    mj |ー'´      |
  \  〈__ノ       /
    ノ  ノ

308:名前は開発中のものです。
08/08/07 04:59:45 3S2Xa5LT
DirectX等の使いやすいライブラリに慣れてるとDSはわけがわからりませんね(^^)
バンクとかビデオモードって何?ってかんじです(^^)

309:名前は開発中のものです。
08/08/07 12:05:39 Y8nTPA6r
PCと比べると激しくリソースが制限されてるし
GBからの歴史的経緯で妙な事になってたりするからな
単に携帯機でプログラム書きたいならPSPもありだと思う

310:名前は開発中のものです。
08/08/07 12:19:37 KK0q6wSe
まぁ携帯機器ってどれも対して変わらんと思うが

311:名前は開発中のものです。
08/08/09 16:27:29 vqJFqWae
iPhone/touchは携帯物の割に開発ラクらしいな
マック必須とか俺的には無いが

312:名前は開発中のものです。
08/08/10 10:12:54 G9d4jf9R
Mac必須よりも、Objective-Cとかいう言語を習得する方が面倒だ

313:名前は開発中のものです。
08/08/10 12:19:08 bnNN4Ddf
>>288
URLリンク(digital-haze.net)

日本語対応よろしくw

314:名前は開発中のものです。
08/08/13 01:54:52 mCa7yggb
マジコン検出ってどうやってんのかな
バカな俺がちょっと疑問に思ってみた。

315:名前は開発中のものです。
08/08/13 12:13:38 qx2eQaCK
>>314 あくまで俺の予想、ウソ度80%。手っ取り早いのは「DeSmuME うぃずぱっち」がやってるようなことじゃん?
ネットに流れてるROMは実際のものとヘッダが違うのでそこを調べる。
つかネットに流れてる奴って暗号化がすでに解かれてるんだろ?調べれば一発じゃん。
もっと詳しく調べたいならマジコンが置かれる領域をあらかじめ調べ
現物があるか調べる、但しこれは本来禁止されている行為(DSの意図しない領域へのアクセス)
なのでやる可能性は低い。それ以外だと昔ながらの方法で直にROM領域に書き込んでみるとか。
しかしROM領域に書き込む方法は無かったはず・・。

316:名前は開発中のものです。
08/08/13 22:50:38 uSr/SbZ8
ちなみにその理論で行くと、どーやっても任天堂の許可なしのプログラム、
というのは常に非合法、となってしまうわけか?
やり口うまいなぁ。

ちなみにNScriptなんかも危険なのかね?(エロゲ移植楽勝的な意味で

317:名前は開発中のものです。
08/08/14 11:59:48 AGQkLAj7
その辺はスレチなので別所で。非公式だが非合法ではないぞ。

318:名前は開発中のものです。
08/08/14 20:57:13 0ZgQNLEr
確かカートリッジの形が特許だか意匠登録だかがされているから
マジコンの販売は全部非合法のはず

ソフトの開発を完全に制限すると独禁法に引っかかるから制限していない
(1社につき何本、などはあり)

319:名前は開発中のものです。
08/08/15 16:48:44 Na0PYdPb
任店893の脅しで販売中止に追い込まれたエロゲは合法なんだよね・・・

320:名前は開発中のものです。
08/08/15 19:24:44 6cB068BM
983は573だぜ

321:名前は開発中のものです。
08/08/16 01:16:13 tqgEmnbZ
あー何言ってるか判らなかったが↓の見て判った
■DSの同人エロゲが発売中止に→制作者、任天堂に逆ギレ
URLリンク(blog.livedoor.jp)
これの事か。

322:名前は開発中のものです。
08/08/16 01:53:38 ZFcyT52e
それって業者と一体化してる(と取れる宣伝をした)ことが見つかって資格取消されただけでそ?
ブースでマジコン自体を売ろうとしてたという話もあるし
そりゃさすがにマズいだろという

323:名前は開発中のものです。
08/08/18 20:55:59 at+m9WaD
>>319
そりゃただのねつ造 ニンテンは圧力かけてないだろ

324:名前は開発中のものです。
08/08/18 21:36:11 HS9yFwFt
devkitで作ったromなら売ってもダイジョーブだよん

325:名前は開発中のものです。
08/08/19 03:14:07 cmsJU7X5
'ROMイメージ'ならな

326:名前は開発中のものです。
08/08/24 15:14:53 lq+jPbXw
>>325
devkitって書いてあるだろ

327:名前は開発中のものです。
08/08/24 18:39:27 xXzDezRG
焼いて売ればカートリッジによっては意匠権の侵害になる
devkitだろうとなんだろうとな

328:名前は開発中のものです。
08/08/24 20:02:54 8VfoSDG9
そこがソフトウェアのややこしいところでね、
CD-ROMに焼いたとか、量産できる媒体に対して著作権などが発生する

逆にソフトウェアそのものにはほぼそれらが発生しない。

>>325はそういうことが言いたかったんじゃないかな?

329:名前は開発中のものです。
08/08/24 23:51:10 xXzDezRG
325=327でな
もちろん、DSに刺してそのまま動くような媒体で配布するのでなければ
なんら問題ないとは思っているよ

330:名前は開発中のものです。
08/08/26 21:05:40 UH3fc3I7
PALIBの関数について日本語で解説とかしてるサイトってないですか?

331:名前は開発中のものです。
08/08/27 07:53:51 +r6/O9dO
>>330
お前が作れ

332:名前は開発中のものです。
08/08/27 19:59:55 0IBhzRAf
>>330
期待してるぞ

333:330
08/08/27 20:21:54 NY8U1MXK
作ってもいいんだけど、使い方を先に教えてくれ

334:名前は開発中のものです。
08/08/28 14:35:31 himZTe+5
教えたらそれをコピペしただけで作ったと言い出しそうだな

335:名前は開発中のものです。
08/08/28 14:45:58 itYkETsy
もうちょっと触ってから質問しようぜ

336:名前は開発中のものです。
08/08/30 18:10:45 OueHFlIw
PAlibの使い方が知りたいならサンプルを読めばいい。
ところで、PAlibの最新版が出てたんだ。
未だにr21のみの対応か、絶望した!

337:sage
08/08/31 12:53:15 NgWtUu+W
誰かデータ用にバイナリ作ってそれをdataフォルダに突っ込んで使っている人いない?
ビットマップを追加するごとに毎回インクルードするのめんどくさいから、
ファイルをアーカイブするツール作って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


338:名前は開発中のものです。
08/08/31 12:54:42 NgWtUu+W
名前をsageしてしまったorz

339:名前は開発中のものです。
08/08/31 13:05:48 RBkQ5Qjd
>>337
何が問題?どういう動作を求めてる?
memcpyの動作は正しいよな。pltはアライメントかな?

340:名前は開発中のものです。
08/08/31 16:54:02 NgWtUu+W
全てのデータをまとめてarchive.binというものを作成して、
管理するクラスが#include "archive_bin.h"しつつ、
archive_binのそれぞれのファイルの先頭ポインタを保存する仕組みを作成していたんです。
とりあえず手始めにビットマップのコンバートからやってたのですが、
indexとpalleteのポインタをそのままSPRITE_PALETTEとSPRITE_GFXにdmcCopyしても、
なぜか絵がうまく出ないんです。(色が変だったり所々が欠けたような絵になります)
AGBGFXConverterで吐き出したソースと同じ様に配置したつもりなんですけど…

ちなみにAGBGFXConverterで同じ絵をコンバートして、
インデックスを両方1タイル分ずつprintfして見ているんですけど、
インデックスの並びは全く一緒でした。
なので色はバグってても同じ絵は出ると思ったのですが…

で今度はパレットの中身を見たらあれ?みたいな感じになったわけです。

341:名前は開発中のものです。
08/09/01 23:08:04 /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 ];
}
// ----------------------------------------------

342:名前は開発中のものです。
08/09/01 23:09:40 /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 ];
見たいな書き方してるんですけど、間違えて書いたら普通にビルドが通るので使ってました。

343:名前は開発中のものです。
08/09/01 23:19:54 JD3+KZZh
最近ndsのプログラムを始めたのだが
メインメモリ4MBってつまり
libfat使わない限りはndsファイルのサイズつかプログラム+データを
4MBに収めないといけないってこと?
プログラムとメモリの関係が良くわからんです・・・

344:名前は開発中のものです。
08/09/01 23:25:31 v+MMQ4cs
>>340
つ swiCopy()

345:名前は開発中のものです。
08/09/01 23:29:46 wvhb43Po
バス幅間違ってない?8bitでコピーすると正しくて16bit/32bitでコピーすると化けるのは大抵アライメントが原因です。
iprintf("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として使えたから便利だったんだけどね。


346:名前は開発中のものです。
08/09/01 23:35:25 XJAdcBTd
つかアライメントだろ

347:名前は開発中のものです。
08/09/01 23:49:45 /cE8NRcO
ああああ直りました!ありがとうございます!
こっちでもアーカイブした中でもファイルによって正常に出るものがあったので、
アライメントをファイル内でそろえようとしていた所でした。

ちなみにアドレスをprintfした結果はこれです。
bmp 202c6900
200f7db
200f3bd, 400

348:名前は開発中のものです。
08/09/02 00:44:46 xhnSuTcg
>>343
RAMとして扱えるのが4M
っ gbfs ndstool

349:名前は開発中のものです。
08/09/02 02:08:35 bvei474e
>>348
>>343じゃないけど、R4とかだとできないよね?

350:348
08/09/02 08:38:04 xhnSuTcg
>>349
まじで?
DSTTしかもってないしfat使ってるから実際に試したことは無かった
仕事終わったらちょっとやってみる

351:名前は開発中のものです。
08/09/02 10:42:55 PcRBassS
メモリ4M内のgbfsは大丈夫だろ?
4M以降に配置されるヤツはスロ1のマジコンではだめだったとおもうけど。

352:名前は開発中のものです。
08/09/02 15:30:28 bvei474e
いやまぁ4M内なら可能だろうけど
4M内ならgbfs使うメリットあんまないよね

353:名前は開発中のものです。
08/09/02 16:53:09 bEchRn3L
なるほど、がんばってみますね。

354:343
08/09/02 21:04:24 9aalbRTR
ありがとうございます。
参考になりました。
音楽はメモリ食い虫なのでバッサリ切る事にしました。

ところで大量(数百~)のオブジェクト扱うとなるとスプライト使えないんですね・・・
フレームバッファで直描きで良いんでしょうか?
2Dエンジンのグラフィックモードの意味がさっぱり理解出来ないので
ごり押しでソースかいてるんですがみなさんお勧めのモードとかありますか?

DirectXみたいに2Dゲーだけど描画自体は3Dでテクスチャーを平面で動かすとか
そういうのが主流だったりするんでしょうかね。

355:名前は開発中のものです。
08/09/02 22:42:52 WCYfR70y
>>354
天然?真性?釣り?

356:343
08/09/02 23:27:25 9aalbRTR
え~、真性ですね。
日本語のサイトは当たったのですが素で良くわかってません。
リアルタイムなプログラムは初めてな割りに変な知識だけ持ってしまったので。
やっぱとんちんかんなこと言ってますか。

って実機で試したら全画面αブレンド(自前計算)するだけで処理落ちしてる!
ndsの2Dのスペック最大30Mピクセル/秒て
VRAMに毎フレーム0.5Mピクセルぶんアクセス出来るって意味じゃないんですか?!
奥が深い・・・


357:名前は開発中のものです。
08/09/02 23:46:53 bvei474e
まぁDSで3D触ったことないしちゃんと調べたことも無いからそっちは知らんが
大量のスプライト出したかったらスプライトダブラでぐぐればいいよ
多分GBA用の解説がすぐ見つかるだろ

358:343
08/09/03 00:12:57 Bl/fBETL
目からうろこが・・・と思ったらコンタクトレンズだった。
水平割り込みか~その発想は無かったわ。

安直に必要な数だけドット打ってもなんとかなるだろうと高をくくっていたが甘かったようです。


359:名前は開発中のものです。
08/09/03 00:16:04 sLvGkNcJ
>>356
2Dは基本的にGBAと同じで、スプライトとタイルベースのBG。
BGをフレームバッファで使う場合は静止画のみが一般的。

3Dはlibnds経由でしか使ったことがないが、これはOpenGL
に似ている(というより制限は昔のMESAに近い)が、別物。
値域制限とAPIコール順の制限と帯域制限とに泣かされるw

まあ、とりあえずガンガレwww

360:名前は開発中のものです。
08/09/05 23:17:45 FS1IdIEW
セックスフレンドのコンバーター作ってくださいね♥

361:名前は開発中のものです。
08/09/06 14:45:49 cOB7URl0
くらっしゅ☆みぃー

362:名前は開発中のものです。
08/09/09 23:29:29 DL/yAEJj
fjuL"GgPVplU|Q/tKIA8Qw1O}W#DrVjXZc{>^B@r1ciN*y|z8vy2[d~$D)^Dse]=ou^M6B,K#L

363:名前は開発中のものです。
08/09/19 23:25:16 eFBo0juo
たった1人で作ったDSゲームがネットで話題、関心を寄せる企業も
URLリンク(www.gpara.com)

364:名前は開発中のものです。
08/09/20 20:28:56 yq1ZRhT4
>>363
DSでムジュラか時オカやりたいぜ

365:名前は開発中のものです。
08/10/05 16:18:34 E308TimE
そろそろ、スレ再開しようよ。


366:名前は開発中のものです。
08/10/05 16:19:13 E308TimE
なんか、俺のIDかこいい...


367:名前は開発中のものです。
08/10/05 16:44:07 Ll2+pPcY
もうすぐDSiが出るよ

368:名前は開発中のものです。
08/10/05 17:15:56 E308TimE
>>367
カメラ使うためのAPI(?)は公開されるのかねぇ?


369:348
08/10/05 18:04:25 Vc0IrAL9
その前にhomebrew対策はいるんじゃないか?

370:名前は開発中のものです。
08/10/05 18:04:59 Vc0IrAL9
なんか残ってた

371:名前は開発中のものです。
08/10/06 03:15:32 taaAzVwL
スレチだが、DSi、カメラで取り込んだもの弄ったりって、
RAMとかグラフィックエンジンまわりとか結構強化されてそうな気がするんだが、
どうなんだろ。両面タッチだし、AACもハードサポートだったら...
わりと順当に次世代機(gc→wii的な)なんじゃね、と妄想

372:名前は開発中のものです。
08/10/06 10:41:50 Sfe+Bc3c
市販のが動かなくて自作のは動く・・・だとありがたいんだけど
それは無いよねぇ

373:名前は開発中のものです。
08/10/06 16:49:35 +fanK/9E
今まで拡張メモリが必要だったoperaが、ダウンロードするだけで動くってことは、
少なくとも内蔵メモリは増えてるだろう。白黒GBとGBcolorくらいの差かねえ。

homeblewでどれくらいhackされるかだなぁ。

374:名前は開発中のものです。
08/10/07 21:12:40 w8Xd+xBj
ぶったぎりお悩み相談。

必要に迫られてC++初めて三日くらいなんですが、
ゲームオブジェクトの管理は線形リスト使ってクラスでタスク管理するのが一般的らしいですが、
DSでもそれがセオリーなんでしょうか。
狭いメモリ空間でnewとかdeleteとか繰り返してたら面倒なことになりそうで怖いんですが。
全部構造体配列にしちゃって固定領域にして管理の方が安心できると思うのは素人考えですか?



375:名前は開発中のものです。
08/10/07 21:48:18 IVP3DQmn
組み込みだしそれもアリ。

C++の恩恵も受けたいなら専用メモリマネージャーを書くのも手だよ。
固定サイズのクラスを大量に作成・削除する場合はかなり違う。
Efficient C++オススメ。

376:名前は開発中のものです。
08/10/07 23:03:26 omqMgnyg
>>374
業務でやってる場合→素直に周りに合わしとけ
学業でやってる場合→指導している香具師に相談すれ
趣味でやってる場合→好きにしろ

newとかdeleteしないという手もあるけどなw


377:名前は開発中のものです。
08/10/08 00:13:31 NagLnHXN
そこを敢えて部分適用テンプレートで書くのが漢
Modern C++ Designオススメ


378:名前は開発中のものです。
08/10/08 00:19:32 1UMri7Pr
自分の安心出来る設計で作るのは悪いことじゃないよ。
断片化が怖けりゃplacement newという手もある。

・・・>>375と言ってること同じだな。

379:名前は開発中のものです。
08/10/08 19:29:19 K+Yf7Fpf
勉強になります。
とりあえずメモリ管理が怖いというか良くわかってないので
構造体+関数ポインタで乗り切ることにしました。

380:名前は開発中のものです。
08/10/09 03:27:36 tdzcvyWh
PC系のプログラマが「コンシューマの奴はメモリ管理なんかで悩んでんのか
レベル低いなー」とか煽ってんの見たことあるけど実際悩むよな

381:名前は開発中のものです。
08/10/09 07:44:25 zU0f5kHo
どうかんがえても抽象度レベル低いだろ
技術レベルは高い低いじゃなくてベクトルが違う

382:名前は開発中のものです。
08/10/09 23:01:32 XZEfPKbk
ndsybookのフォントってds文学全集なフォントにできないのか?

383:名前は開発中のものです。
08/10/09 23:12:03 MqpwjMOD
まずds文学全集なフォントを用意しろ
話はそれからだ

384:名前は開発中のものです。
08/10/09 23:34:05 zxSbmjXP
>>382
スレリンク(gameurawaza板)

385:名前は開発中のものです。
08/10/10 16:28:00 5gz8zgTn
>>382
4 :名無しさん@お腹いっぱい。[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のことだけど、セーブデータ内にも同様に、大抵のセクションの先頭に付加されている。
やっぱり整合性を確認する物なのかも・・
私はそういうのは分からないのでとりあえず諦めました。

386:名前は開発中のものです。
08/10/10 16:47:56 67fEVH35
>>383
honz_font_min18.NFTR
用意しました



次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch