■
■ポケットモンスター ダイヤモンドパール組み込み用PBR通信ブートモジュール
■

ポケットモンスターダイヤモンドパールに組み込まれる、PBR通信ブートプログラムです。

make NITRO_FINALROM=1 で作成された bin/ARM9-TS/Rom/main.srl の実行バイナリを、
ダイヤモンドパールのROMファイルシステム上へ /data/eoo.dat と名前を変えてコピーして
組み込んで下さい。



◆ビルド環境

プログラムは、NitroSDK-3_1-plus-spec-060706を使用してビルドする必要があります。
NitroSDK-3_1-plus-spec-060706 は NitroSDK-3.1 をベースに、マルチブート時に
MBフラグを無視する等の変更が加えられた特別なバージョンです。

ただしNitroSDK-3.1には電波強度の計算に問題があるという報告を受けております。

そのため、US版では、NitroSDK-3.2(もしくはそれ以降のバージョン)に同等の変更を
行ったものを使う必要がありますのでご注意下さい。

以下はNitroSDK-3_1-plus-spec-060706について中野様より頂きました報告です。

   |
   |ポケモンバトルシミュレーションの機能で、ＤＳポケモンＤＰへ送る
   |子プログラムを作る環境につきまして、お願いがございます。
   |この子プログラムは、以前お渡ししておりましたNitroSDK
   |（NitroSDK-3_1-plus-spec-060706.zip）で作られていると思いますが、
   |Ｗｉｉとの通信において１点、電波強度の計算に問題があることがわか
   |りました。これはＷｉｉの電波がＤＳより強いことに起因しています。
   |この問題は、NitroSDK3.2以降で修正されておりまして、恐れ入りますが、
   |現在リリースされておりますNitroSDK3.2かそれ以降をご使用下さいます
   |ようお願い出来ますでしょうか。
   |このとき、お渡ししております子機プログラムで、card_rom_header_addr
   |という変数を使用している箇所があるのですが、この変数名を
   |cardi_rom_header_addrに変更して下さい（extern宣言と、NitroMain関数
   |の先頭の２箇所になります）。
   |お手数をおかけしますが、ご対応のほど宜しくお願い致します。
   |




◆メッセージ

現状、メッセージリソースをプログラムソースから分離できておりません。
そのため、メッセージを変更するにはプログラムソースを直接編集する必要があります。

使用されているメッセージとその個所は以下の通りです。
(文字コードは ARM9/src/strcode.h に定義されています)

ARM9/src/gui.c	228行目		// はい

ARM9/src/gui.c	229行目		// いいえ

ARM9/src/main.c	414行目		// Wiiを さがしています...

ARM9/src/main.c	439行目		// Wiiが みつかりました

ARM9/src/main.c	446行目		// Wiiと つうしん しています...

ARM9/src/main.c	465行目		// Wiiが みつかりません でした

ARM9/src/main.c	491行目		// つうしん じょうたいを かくにん して
				// せつぞく しなおして ください

ARM9/src/main.c	518行目		// Wiiと せつぞく できません でした

ARM9/src/main.c	544行目		// つうしん じょうたいを かくにんして
				// せつぞく しなおして ください

ARM9/src/main.c	571行目		// Wiiとの つうしんちゅうに
				// エラーが はっせいしました

ARM9/src/main.c	598行目		// つうしん じょうたいを かくにんして
				// せつぞく しなおして ください

ARM9/src/main.c	625行目		// もういちど
				// Wiiと せつぞく しますか？

ARM9/src/main.c	678行目		// でんげんを きって
				// しゅうりょう します

ARM9/src/main.c	740行目		// DSカードが ぬかれました
				// でんげんを きって
				// DSカードを さしなおして
				// ください




◆GGID

ARM9/Makefile の以下の行にて定義されています。適宜変更してご使用下さい。
MACRO_FLAGS += -DGGID=0x00000346   # DP-PBR通信用(multibootモドキ用)GGID




◆ポケモンダイヤモンドパール(日本語版)からの変更点

以下の点について変更しました。

・カードが抜かれた場合の通信切断完了待ち時間を最大10フレームから最大60フレームにした。
  (マルチブートエントリ中にカードが抜かれた場合に、通信切断に失敗することがあったため)

・通信中に蓋が閉じられた場合に通信切断する処理を、#ifdef COMPAT_PBRJP_LIDCOMCLOSE 〜
  #endif で囲った
  (DPに組み込んだブートプログラムではフタが閉じられた時には通信を切断していましたが
   PBRから送られるバトルプログラムはフタを閉じても通信を切断しない仕様であり、
   これら2つのプログラムでフタを閉じた時の動作が統一されていなかったため)

・起動したROMのイニシャルコードがポケモンDP(ADAJ,APAJ)かどうかを
  チェックするコードを #ifdef COMPAT_PBRJP_STRICTCHECK 〜 #endif で囲った。
  (US版ではイニシャルコードが変更されるため。そもそもこのチェックは厳密すぎるので
   省略しても問題ないと思われます)


COMPAT_PBRJP_LIDCOMCLOSE および COMPAT_PBRJP_STRICTCHECK のマクロ定義は、
ARM9/Makefile中に記述されている以下の行を、必要に応じてコメントアウト、
コメントインして下さい

#MACRO_FLAGS += -DCOMPAT_PBRJP_LIDCOMCLOSE=1	# フタを閉じられた時に通信を切断する
#MACRO_FLAGS += -DCOMPAT_PBRJP_STRICTCHECK=1	# ROMコードがポケモンDP(ADAJ,APAJ)かどうかをチェックする (hack.hで行われている)

