We have upgraded to the latest version of MediaWiki and now support TLS1.2 and transcoding!
Please contact us via Discord or Twitter if you experience any problems.

The Legend of Zelda: Phantom Hourglass/Developer Scripts

From The Cutting Room Floor
Jump to navigation Jump to search
Cacti speak Japanese.
...But what does it mean?
This game has text or audio that needs to be translated. If you are fluent with this language, please read our translation guidelines and then submit a translation!
Notes: All of the comments are in Japanese

This is a sub-page of The Legend of Zelda: Phantom Hourglass.

All of these scripts are found in an archive called BgMap.narc in a directory called Test in the European version only.

NpcCvtr.pl

Original

#!perl -w
#######################################################
#	Npcコンバータ
#	2005/7/20	海老澤靖
#	
#	・コンバータスクリプトはどのフォルダに置いても動作する
#	・todo: ツール指定は他の設定ファイルを見るようにしたほうがいい
#	・タイムスタンプ比較はしてるけど、ファイルをリネームしてもアーカイブは作り直さない
#		アーカイブを作った時間より古いファイルを追加してもアーカイブを作らない
#	・anmフォルダにアニメを置かないと無視する、anmフォルダが空なら無視する
#	・tmpフォルダを消せばclean
#
#-------------dataディレクトリの置き方ルール-----------
#	・NPCディレクトリ名は大文字で始まる
#	・NPCディレクトリ名がそのままアーカイブファイル名になる
#	・NPCディレクトリのなかに置くモデル、アニメファイル名は小文字。
#	・アニメ名は npc名をつけずに、wait.ica のようにする。
#######################################################

use strict;	#変数宣言を強制

#---------------------------
#	ツール指定
#---------------------------
my $Tool_g3dcvtr = "$ENV{ZELDA_DS_ROOT}\\Tool\\NitroSystem\\g3dcvtr.exe";
my $Tool_nnsarc = "$ENV{ZELDA_DS_ROOT}\\Tool\\NitroSystem\\nnsarc.exe";


#---------------------------
#	ディレクトリ指定
#---------------------------
my $Dir_src = "$ENV{ZELDA_DS_ROOT}\\data\\Npc";#中間ファイル置き場
my $Dir_dst = "$ENV{ZELDA_DS_ROOT}\\Resource\\Npc";#コピー先


#---------------------------
#	関数宣言
#---------------------------
sub systemPrint{
	my($str) = @_;	#引数に名前をつける
	print($str);
	print("\n");
	system($str);
}


#------------------------------
#	checkTimeStamp関数
#	・Dstファイルがないとき、もしくは、DstがSrcより古いとき1を返す
#	・Srcはファイル名、もしくは一階層までのフォルダ
#------------------------------
sub checkTimeStamp{
	my($srcFileOrDirName, $dstFileName) = @_;	#引数に名前をつける

#----↓TimeStamp比較はしないようにした!---
return 1;
#----↑TimeStamp比較はしないようにした!---

	if(!(-e $dstFileName)){
		return 1;
	}
	elsif( -d $dstFileName ){
		print("[エラー] checkTimeStampの引数dstFileNameはファイル名でないといけない\n");
		exit 1;
	}

	my $dstTime = -M $dstFileName;
	if(-f $srcFileOrDirName)
	{
		my $srcFileName = $srcFileOrDirName;
		my $srcTime = -M $srcFileName;	#経過日数を得る(※日付ではない)
		if( $srcTime < $dstTime ){
			return 1;
		}
		return 0;
	}
	elsif(-d $srcFileOrDirName)
	{
		#	※ while(my $nextFileName = glob("*"))とかくと、
		#	ループを途中で抜けたとき前のglobのリストが出て挙動が変だった
		#	ので、リストに一度いれてからforeachで処理する
		my $srcDirName = $srcFileOrDirName;
		my @files = glob("$srcDirName/*");
		foreach my $nextFileName (@files) {	
			my $srcTime = -M $nextFileName;
			if( $srcTime < $dstTime ){
				return 1;
			}
		}
		return 0;
	}
}


#-------------------------------------------------
# メインルーチン
#-------------------------------------------------
print("NPCをコンバートします\n");
print("データ元:$Dir_src \n");
print("出力先:$Dir_dst \n\n");


if( !(-e $Dir_src) || !(-d $Dir_src)){
	print("[エラー]  データ元:$Dir_src がありません\n");
	system("pause");
	exit 1;
}
if( !(-e $Dir_dst) || !(-d $Dir_dst)){
	print("[エラー]  出力先:$Dir_dst がありません\n");
	system("pause");
	exit 1;
}

# カレントディレクトリ移動(ファイルを一つ一つ巡回するから)
chdir ($Dir_src);

#!!!!!!前の作業ディレクトリを削除!!!!!!
#todo ディレクトリごとサクっと消すコマンドないの?
unlink <$Dir_src\\tmp\\*>;
unlink <$Dir_src\\tmp\\*\\*>;


#作業ディレクトリ作成
mkdir("$Dir_src/tmp", 777);	#作業フォルダ作成

#---------バイナリにコンバートして配置----------
{
	# フォルダを一つずつ探る
	my @targetFolders = glob("*");#フォルダ名をそのままアーカイブにするので絶対パスにしない
	foreach my $nextDirName (@targetFolders) {

		#見つけたディレクトリの中に入る(見つかったのがファイルの場合,ここで弾かれる)
		if(chdir $nextDirName) {
			if($nextDirName ne "tmp") {
				#同じ名前の作業用ディレクトリ作成
				mkdir("$Dir_src/tmp/$nextDirName", 777);	#作業フォルダ作成

				# 更にそのディレクトリ内のファイルを一つずつ探る
				my @files = glob("*");
				foreach my $nextFileName (@files) {
					
					if($nextFileName =~ /.imd/) {
						#モデル作成(モデルとテクスチャを分ける)
						my $dstNameMdl = $nextFileName;
						my $dstNameTex = $nextFileName;
						$dstNameMdl =~ s/.imd/.nsbmd/;#置換演算子で拡張子を変更
						$dstNameTex =~ s/.imd/.nsbtx/;
						$dstNameMdl = "$Dir_src/tmp/$nextDirName/$dstNameMdl";
						$dstNameTex = "$Dir_src/tmp/$dstNameTex";
						if( checkTimeStamp($nextFileName, $dstNameMdl) == 1
							|| checkTimeStamp($nextFileName, $dstNameTex) == 1)
						{
							system("$Tool_g3dcvtr $nextFileName -emdl -o $dstNameMdl\n");
							system("$Tool_g3dcvtr $nextFileName -etex -o $dstNameTex\n");
						}
						#テクスチャの出力先は直接tmpに(アーカイブに含めないので)
					}elsif((-d $nextFileName) && ($nextFileName eq "anm") ) {
						#アニメ作成
						my $dstName = "$Dir_src/tmp/$nextDirName/$nextDirName.nsbca";
						if( checkTimeStamp("$Dir_src/$nextDirName/anm", $dstName) == 1){
							my @ica = glob("$Dir_src/$nextDirName/anm/*.ica");
							if(@ica != 0)
							{
								system("$Tool_g3dcvtr @ica -o $dstName\n");
							}
						}
					}
				}
			}
			#	上に戻る
			chdir "../";
		}
	}
}



#--------アーカイブを作る---------
{
	# カレントをtmpに
	chdir "$Dir_src/tmp";
	
	# フォルダを一つずつ探る
	my @folders = glob("*");
	foreach my $nextDirName (@folders) {
		# それがディレクトリであるか調べる
		if(-d $nextDirName) {
			my $arcName = "$nextDirName.narc";
			if( checkTimeStamp($nextDirName, $arcName) == 1){
				system("$Tool_nnsarc -c -a $arcName $nextDirName");
			}
		}
	}
	
# --------アーカイブとテクスチャをDir_dstにコピー----------
	# アーカイブをコピー
	my @files = glob("*.narc");
	foreach my $nextFileName(@files) {
		my $dstFileName = "$Dir_dst/$nextFileName";
		if( checkTimeStamp($nextFileName, $dstFileName) == 1 ) {
			system("copy $nextFileName $Dir_dst");
			print("make archive: ",$nextFileName,"\n");
		}
	}
	# テクスチャをコピー
	@files = glob("*.nsbtx");
	foreach my $nextFileName(@files) {
		my $dstFileName = "$Dir_dst/$nextFileName";
		if( checkTimeStamp($nextFileName, $dstFileName) == 1 ) {
			system("copy $nextFileName $Dir_dst");
			print("make texture: ",$nextFileName,"\n");
		}
	}
	#	上に戻る
	chdir "../";	#ここまでtmpフォルダでの作業
}



print("#############変換終了############\n");
system("pause");

Translation

#!perl -w
#######################################################
#	Npc Converter
#	2005/7/20	海老澤靖
#	
#	• Converter scripts will run regardless of which folder they're placed in.
#	• To Do: Tool designation は他の設定ファイルを見るようにしたほうがいい
#	• タイムスタンプ比較はしてるけど、ファイルをリネームしてもアーカイブは作り直さない
#		アーカイブを作った時間より古いファイルを追加してもアーカイブを作らない
#	• Animations will be ignored if not placed in the anm folder, the anm folder will be ignored if empty.
#	• tmp folder を消せばclean
#
#-------------Data Directory Placement Rules-----------
#	• The NPC directory name should start with uppercase letters
#	• The NPC directory name will become the archive file name
#	• The names of the model and animation files in the NPC directory should be in lowercase
#	• Don't add NPC names to the animation names, do something like the following: wait.ica
#######################################################

use strict;	#変数宣言を強制

#---------------------------
#	tool  Designation 
#---------------------------
my $Tool_g3dcvtr = "$ENV{ZELDA_DS_ROOT}\\Tool\\NitroSystem\\g3dcvtr.exe";
my $Tool_nnsarc = "$ENV{ZELDA_DS_ROOT}\\Tool\\NitroSystem\\nnsarc.exe";


#---------------------------
#	 directory  Designation 
#---------------------------
my $Dir_src = "$ENV{ZELDA_DS_ROOT}\\data\\Npc";#中間ファイル置き場
my $Dir_dst = "$ENV{ZELDA_DS_ROOT}\\Resource\\Npc";#Copy to Here


#---------------------------
#	関数宣言
#---------------------------
sub systemPrint{
	my($str) = @_;	#引数に名前をつける
	print($str);
	print("\n");
	system($str);
}


#------------------------------
#	checkTimeStamp関数
#	• Dstファイルがないとき、もしくは、DstがSrcより古いとき1を返す
#	• Srcはファイル名、もしくは一階層までの folder 
#------------------------------
sub checkTimeStamp{
	my($srcFileOrDirName, $dstFileName) = @_;	#引数に名前をつける

#----↓TimeStamp比較はしないようにした!---
return 1;
#----↑TimeStamp比較はしないようにした!---

	if(!(-e $dstFileName)){
		return 1;
	}
	elsif( -d $dstFileName ){
		print("[エラー] checkTimeStampの引数dstFileNameはファイル名でないといけない\n");
		exit 1;
	}

	my $dstTime = -M $dstFileName;
	if(-f $srcFileOrDirName)
	{
		my $srcFileName = $srcFileOrDirName;
		my $srcTime = -M $srcFileName;	#経過日数を得る(※日付ではない)
		if( $srcTime < $dstTime ){
			return 1;
		}
		return 0;
	}
	elsif(-d $srcFileOrDirName)
	{
		#	※ while(my $nextFileName = glob("*"))とかくと、
		#	ループを途中で抜けたとき前のglobのリストが出て挙動が変だった
		#	ので、リストに一度いれてからforeachで処理する
		my $srcDirName = $srcFileOrDirName;
		my @files = glob("$srcDirName/*");
		foreach my $nextFileName (@files) {	
			my $srcTime = -M $nextFileName;
			if( $srcTime < $dstTime ){
				return 1;
			}
		}
		return 0;
	}
}


#-------------------------------------------------
# Main Routine
#-------------------------------------------------
print("NPC will be converted.\n");
print("Data Origin:$Dir_src \n");
print("Data Output Destination:$Dir_dst \n\n");


if( !(-e $Dir_src) || !(-d $Dir_src)){
	print("[Error]  Data Origin:$Dir_src doesn't exist.\n");
	system("pause");
	exit 1;
}
if( !(-e $Dir_dst) || !(-d $Dir_dst)){
	print("[Error]  Data Output Destination:$Dir_dst doesn't exist\n");
	system("pause");
	exit 1;
}

# Current directory 移動(ファイルを一つ一つ巡回するから)
chdir ($Dir_src);

#!!!!!!前の作業 directory を削除!!!!!!
#todo  directory ごとサクっと消すコマンドないの?
unlink <$Dir_src\\tmp\\*>;
unlink <$Dir_src\\tmp\\*\\*>;


#作業 Directory 作成
mkdir("$Dir_src/tmp", 777);	#作業 folder 作成

#---------バイナリにコンバートして配置----------
{
	#  Searching folder by folder.
	my @targetFolders = glob("*");# folder 名をそのままアーカイブにするので絶対パスにしない
	foreach my $nextDirName (@targetFolders) {

		#見つけた directory の中に入る(見つかったのがファイルの場合,ここで弾かれる)
		if(chdir $nextDirName) {
			if($nextDirName ne "tmp") {
				#同じ名前の作業用 directory 作成
				mkdir("$Dir_src/tmp/$nextDirName", 777);	#作業 folder 作成

				# 更にその directory 内のファイルを一つずつ探る
				my @files = glob("*");
				foreach my $nextFileName (@files) {
					
					if($nextFileName =~ /.imd/) {
						#モデル作成(モデルとテクスチャを分ける)
						my $dstNameMdl = $nextFileName;
						my $dstNameTex = $nextFileName;
						$dstNameMdl =~ s/.imd/.nsbmd/;#置換演算子で拡張子を変更
						$dstNameTex =~ s/.imd/.nsbtx/;
						$dstNameMdl = "$Dir_src/tmp/$nextDirName/$dstNameMdl";
						$dstNameTex = "$Dir_src/tmp/$dstNameTex";
						if( checkTimeStamp($nextFileName, $dstNameMdl) == 1
							|| checkTimeStamp($nextFileName, $dstNameTex) == 1)
						{
							system("$Tool_g3dcvtr $nextFileName -emdl -o $dstNameMdl\n");
							system("$Tool_g3dcvtr $nextFileName -etex -o $dstNameTex\n");
						}
						#テクスチャの出力先は直接tmpに(アーカイブに含めないので)
					}elsif((-d $nextFileName) && ($nextFileName eq "anm") ) {
						#アニメ作成
						my $dstName = "$Dir_src/tmp/$nextDirName/$nextDirName.nsbca";
						if( checkTimeStamp("$Dir_src/$nextDirName/anm", $dstName) == 1){
							my @ica = glob("$Dir_src/$nextDirName/anm/*.ica");
							if(@ica != 0)
							{
								system("$Tool_g3dcvtr @ica -o $dstName\n");
							}
						}
					}
				}
			}
			#	Return to Top
			chdir "../";
		}
	}
}



#--------Create Archives---------
{
	# カレントをtmpに
	chdir "$Dir_src/tmp";
	
	#  folder を一つずつ探る
	my @folders = glob("*");
	foreach my $nextDirName (@folders) {
		# それが directory であるか調べる
		if(-d $nextDirName) {
			my $arcName = "$nextDirName.narc";
			if( checkTimeStamp($nextDirName, $arcName) == 1){
				system("$Tool_nnsarc -c -a $arcName $nextDirName");
			}
		}
	}
	
# --------Copy archives and textures to Dir_dst.----------
	# Copy Archive
	my @files = glob("*.narc");
	foreach my $nextFileName(@files) {
		my $dstFileName = "$Dir_dst/$nextFileName";
		if( checkTimeStamp($nextFileName, $dstFileName) == 1 ) {
			system("copy $nextFileName $Dir_dst");
			print("make archive: ",$nextFileName,"\n");
		}
	}
	# Copy Texture
	@files = glob("*.nsbtx");
	foreach my $nextFileName(@files) {
		my $dstFileName = "$Dir_dst/$nextFileName";
		if( checkTimeStamp($nextFileName, $dstFileName) == 1 ) {
			system("copy $nextFileName $Dir_dst");
			print("make texture: ",$nextFileName,"\n");
		}
	}
	#	Return to Top
	chdir "../";	#ここまでtmp folder での作業
}



print("#############変換終了############\n");
system("pause");

player.js

/**==============================================**
	JavaScript用のユーティリティ関数たち

  作者:新田昌弘。
 **==============================================**/

/**-----------------------------------------------*
	コマンドを実行する。

 system32フォルダ内の .exe は直接実行できる。
 直接実行できないコマンドは "cmd /C "にコマンド引数を渡す

 使える : xcopy, net, cmd
 *------------------------------------------------*/
function command(cmd, through)
{
	var wsh = new ActiveXObject("WScript.shell");
	if(through)
	{
	// アクティブで起動して、終了を待たない。
		return wsh.run(cmd, 5, false);
	}
	else
	{
	// アクティブウィンドウを切り替えずに起動して、終了を待つ。
		return wsh.run(cmd, 8, true);
	}
}


/**-----------------------------------------------*
	ファイルやフォルダを更新する。

 コピー元(src)がコピー先(dst)より新しい場合のみ実行される。

xcopy
 /i: 受け側ディレクトリがない時、ディレクトリとしてコピー
 /e: サブディレクトリが空であってもコピー
 /d: 新しいファイルだけをコピー
 /y: 上書きする前に確認のメッセージを非表示
 *------------------------------------------------*/
function update(src, dst, subFolder)
{
	if(subFolder)
	{
		command("xcopy /i /e /d /y /s " + src + " " + dst);
	}
	else
	{
		command("xcopy /i /d /y " + src + " " + dst);
	}
}


/**-----------------------------------------------*
	「はい・いいえ」尋ねる警告を表示
 *------------------------------------------------*/
function warningYesNo(str)
{
	var wsh = new ActiveXObject("WScript.shell");

	wsh.Popup(str, 0, "警告", 4 + 48);
}


/**-----------------------------------------------*
	警告を表示
 *------------------------------------------------*/
function warning(str)
{
	var wsh = new ActiveXObject("WScript.shell");

	wsh.Popup(str, 0, "警告", 48);
}


/**-----------------------------------------------*
	情報を表示
 *------------------------------------------------*/
function information(str)
{
	var wsh = new ActiveXObject("WScript.shell");

	wsh.Popup(str, 0, "お知らせ", 64);
}


/**-----------------------------------------------*
	環境変数の値を取得する。

name : 環境変数名
 *------------------------------------------------*/
function getEnv(name)
{
	var wsh = new ActiveXObject("WScript.shell");
	var wshUserEnv = wsh.Environment("USER");

	var val = wshUserEnv(name);
	if( val )
	{
		return val;
	}

	var wshSysEnv = wsh.Environment("SYSTEM");
	return wshSysEnv(name);
}


/**-----------------------------------------------*
	g3dcvtrを使ってリソースファイルに変換する。
	(*.nsbmd と *.nsbtx)または(*.nsbca)を出力する。

path : ファイルパス
out  : 出力先
 *------------------------------------------------*/
function g3dcvtr(path, out)
{
	var wsh = new ActiveXObject("WScript.shell");
	var wshEnv = wsh.Environment("USER");
	var fso = new ActiveXObject("Scripting.FileSystemObject");

	var cvtr = wshEnv("ZELDA_DS_ROOT") + "\\Tool\\NitroSystem\\g3dcvtr ";

	if(fso.FileExists(path))
	{
	// ファイルの場合
		var fileName = fso.GetBaseName(path);

		if(fso.GetExtensionName(path) == "imd")
		{
		// モデルファイルの場合
			wsh.run(cvtr + path + " -etex -o " + fileName, 8, true);
			wsh.run(cvtr + path + " -emdl -o " + fileName, 8, true);

			fso.CopyFile(fileName + ".nsbmd", out);
			fso.CopyFile(fileName + ".nsbtx", out);
			fso.DeleteFile(fileName + ".nsbmd");
			fso.DeleteFile(fileName + ".nsbtx");
		}
		else if(fso.GetExtensionName(path) == "ica")
		{
		// キャラクタアニメファイルの場合
			wsh.run(cvtr + path + " -o " + fileName, 8, true);

			fso.CopyFile(fileName + ".nsbca", out);
			fso.DeleteFile(fileName + ".nsbca");
		}
		else if(fso.GetExtensionName(path) == "ima")
		{
		// マテリアルアニメファイルの場合
			wsh.run(cvtr + path + " -o " + fileName, 8, true);

			fso.CopyFile(fileName + ".nsbma", out);
			fso.DeleteFile(fileName + ".nsbma");
		}
		else
		{
			warning("*.imd, *.ica, *.ima ファイルにしか対応していません。" + path);
		}
	}
	else if(fso.FolderExists(path))
	{
	// フォルダの場合
		var folder = fso.GetFolder(path);
		var fc = new Enumerator(folder.files);
		wsh.CurrentDirectory = folder;

		var imdFiles = "";
		var icaFiles = "";
		var imaFiles = "";
		for (; !fc.atEnd(); fc.moveNext())
		{
			if(fso.GetExtensionName(fc.item()) == "imd")
			{
			// モデルファイルの場合
				imdFiles += fso.GetFileName(fc.item()) + " ";
			}
			else if(fso.GetExtensionName(fc.item()) == "ica")
			{
			// アニメファイルの場合
				icaFiles += fso.GetFileName(fc.item()) + " ";
			}
			else if(fso.GetExtensionName(fc.item()) == "ima")
			{
			// アニメファイルの場合
				imaFiles += fso.GetFileName(fc.item()) + " ";
			}
		}

		var fileName = fso.GetBaseName(path);
		if(imdFiles.length > 0)
		{
		// *.imdファイルをまとめて変換
			wsh.run(cvtr + imdFiles + " -etex -o " + fileName, 8, true);
			wsh.run(cvtr + imdFiles + " -emdl -o " + fileName, 8, true);

			fso.CopyFile(fileName + ".nsbmd", out);
			fso.CopyFile(fileName + ".nsbtx", out);
			fso.DeleteFile(fileName + ".nsbmd");
			fso.DeleteFile(fileName + ".nsbtx");
		}
		if(icaFiles.length > 0)
		{
		// *.icaファイルをまとめて変換
			wsh.run(cvtr + icaFiles + " -o " + fileName, 8, true);

			fso.CopyFile(fileName + ".nsbca", out);
			fso.DeleteFile(fileName + ".nsbca");
		}
		if(imaFiles.length > 0)
		{
		// *.imaファイルをまとめて変換
			wsh.run(cvtr + imaFiles + " -o " + fileName, 8, true);

			fso.CopyFile(fileName + ".nsbma", out);
			fso.DeleteFile(fileName + ".nsbma");
		}
	}
	else
	{
		warning(path + " がありません");
	}
}


{
	var zeldaDS = getEnv("ZELDA_DS_ROOT");

// リンクの変換
	g3dcvtr( zeldaDS + "\\data\\player\\link", zeldaDS + "\\Resource\\Player\\" );

// 船の変換
	g3dcvtr( zeldaDS + "\\data\\player\\steamer.imd", zeldaDS + "\\Resource\\Player\\" );

// アイテムの変換
	g3dcvtr( zeldaDS + "\\data\\player\\item", zeldaDS + "\\Resource\\Player\\" );

// モーションデータの移動
	update( zeldaDS + "\\data\\player\\motion.bhio", zeldaDS + "\\Resource\\Player\\" );
}

effect_tex.bat

Original

@rem ---------------------------------------------------------------------------
@rem  Project : zeldaDS
@rem  File    : effect_tex.bat
@rem
@rem  Copyright 2005 Nintendo. All rights reserved.
@rem
@rem  NitroSDKのntexconvを使ってエフェクトのテクスチャを作成する
@rem
@rem  作者:新田昌弘。
@rem ---------------------------------------------------------------------------


cd /d %ZELDA_DS_ROOT%\data\effect\tex


rem ---- テクスチャを変換 ---- 

%ZELDA_DS_ROOT%\Tool\NitroSDK\ntexconv AK_smoke01.tga -b -f tex4x4 -a3 -ta
%ZELDA_DS_ROOT%\Tool\NitroSDK\ntexconv AK_smoke02.tga -b -f tex4x4 -a3 -ta
%ZELDA_DS_ROOT%\Tool\NitroSDK\ntexconv AK_smoke03.tga -b -f tex4x4 -a3 -ta
%ZELDA_DS_ROOT%\Tool\NitroSDK\ntexconv smoke01.tga -b -f tex4x4 -a3 -ta
%ZELDA_DS_ROOT%\Tool\NitroSDK\ntexconv smoke02.tga -b -f tex4x4 -a3 -ta
%ZELDA_DS_ROOT%\Tool\NitroSDK\ntexconv smoke03.tga -b -f tex4x4 -a3 -ta
%ZELDA_DS_ROOT%\Tool\NitroSDK\ntexconv zds_airflow.tga -b -f palette4 -ta


mkdir ..\temp
move *.ntft ..\temp\
move *.ntfp ..\temp\
move *.ntfi ..\temp\


rem ---- アーカイブ作成 ---- 

cd..

%ZELDA_DS_ROOT%\Tool\NitroSystem\nnsarc -r -a -b -e -s -l -E CVS effecttex.narc temp
move effecttex.narc %ZELDA_DS_ROOT%\Resource\Effect

@pause

Translation

@rem ---------------------------------------------------------------------------
@rem  Project : zeldaDS
@rem  File    : effect_tex.bat
@rem
@rem  Copyright 2005 Nintendo. All rights reserved.
@rem
@rem  Use the NitroSDK ntexconv to create effect textures.
@rem
@rem  Creator: Masahiro Nitta.
@rem ---------------------------------------------------------------------------


cd /d %ZELDA_DS_ROOT%\data\effect\tex


rem ---- Convert Texture ---- 

%ZELDA_DS_ROOT%\Tool\NitroSDK\ntexconv AK_smoke01.tga -b -f tex4x4 -a3 -ta
%ZELDA_DS_ROOT%\Tool\NitroSDK\ntexconv AK_smoke02.tga -b -f tex4x4 -a3 -ta
%ZELDA_DS_ROOT%\Tool\NitroSDK\ntexconv AK_smoke03.tga -b -f tex4x4 -a3 -ta
%ZELDA_DS_ROOT%\Tool\NitroSDK\ntexconv smoke01.tga -b -f tex4x4 -a3 -ta
%ZELDA_DS_ROOT%\Tool\NitroSDK\ntexconv smoke02.tga -b -f tex4x4 -a3 -ta
%ZELDA_DS_ROOT%\Tool\NitroSDK\ntexconv smoke03.tga -b -f tex4x4 -a3 -ta
%ZELDA_DS_ROOT%\Tool\NitroSDK\ntexconv zds_airflow.tga -b -f palette4 -ta


mkdir ..\temp
move *.ntft ..\temp\
move *.ntfp ..\temp\
move *.ntfi ..\temp\


rem ---- Create Archive ---- 

cd..

%ZELDA_DS_ROOT%\Tool\NitroSystem\nnsarc -r -a -b -e -s -l -E CVS effecttex.narc temp
move effecttex.narc %ZELDA_DS_ROOT%\Resource\Effect

@pause

fontcvtrc.bat

Original

@rem ---------------------------------------------------------------------------
@rem  Project : zeldaDS
@rem  File    : fontcvtr.bat
@rem
@rem  Copyright 2005 Nintendo. All rights reserved.
@rem
@rem  NitroSystemのフォントコンバーターを使ってフォントリソースを作成する
@rem
@rem  作者:新田昌弘。
@rem
@rem 引数1:にビットマップフォントのファイル名
@rem 引数2:色数
@rem ---------------------------------------------------------------------------


cd /d %~dp1


rem ---- NitroSystemのフォントコンバータをローカルにコピー ----
xcopy /i /d /y \\filer\nitro-zelda$\DevEnv\NitroSystem\tools\win\fontcvtr %ZELDA_DS_ROOT%\Tool\NitroSystem


rem ---- フォントを変換 ----
%ZELDA_DS_ROOT%\Tool\NitroSystem\fontcvtrc -i bmp -if %~nx1 -io ds_ipl.xlor -ib %2 -o nitro -of %~n1.nftr -f zeldaDS.xllt

@if errorlevel 1 (@echo 失敗しました。) else (@echo [ %~nx1 ] を [ %~n1.nftr ] に変換しました。)


@rem ---- 変換したファイルを Resource へ移動 ----
move %~n1.nftr %ZELDA_DS_ROOT%\Resource\Font\


@pause

Translation

@rem ---------------------------------------------------------------------------
@rem  Project : zeldaDS
@rem  File    : fontcvtr.bat
@rem
@rem  Copyright 2005 Nintendo. All rights reserved.
@rem
@rem  Use the NitroSystem font converter to create font resources.
@rem
@rem  Creator: Masahiro Nitta.
@rem
@rem Bitmap font file names to Argument 1:
@rem Argument 2: Color Count
@rem ---------------------------------------------------------------------------


cd /d %~dp1


rem ---- Copy NitroSystem font converter to Local. ----
xcopy /i /d /y \\filer\nitro-zelda$\DevEnv\NitroSystem\tools\win\fontcvtr %ZELDA_DS_ROOT%\Tool\NitroSystem


rem ---- Convert Fonts ----
%ZELDA_DS_ROOT%\Tool\NitroSystem\fontcvtrc -i bmp -if %~nx1 -io ds_ipl.xlor -ib %2 -o nitro -of %~n1.nftr -f zeldaDS.xllt

@if errorlevel 1 (@echo failed.) else (@echo [ %~nx1 ] converted to [ %~n1.nftr ].)


@rem ---- Move converted files to Resource. ----
move %~n1.nftr %ZELDA_DS_ROOT%\Resource\Font\


@pause

g2dcvtr.bat

@rem ---------------------------------------------------------------------------
@rem  Project : zeldaDS
@rem  File    : g2dcvtr.bat
@rem
@rem  Copyright 2005 Nintendo. All rights reserved.
@rem
@rem  NitroSystemのG2Dコンバーターを使ってバイナリリソースを作成する
@rem
@rem  作者:新田昌弘。管理者:大西直徳。
@rem ---------------------------------------------------------------------------


cd /d %~dp1


@rem rem ---- 以前のファイルを消去する ---- 

@rem del %ZELDA_DS_ROOT%\data\NitroCharacter\UI_main\bin\*.n*
@rem del %ZELDA_DS_ROOT%\data\NitroCharacter\UI_main\bin\*.b*

@rem del %ZELDA_DS_ROOT%\data\NitroCharacter\UI_sub\bin\*.n*
@rem del %ZELDA_DS_ROOT%\data\NitroCharacter\UI_sub\bin\*.b*



@rem del %ZELDA_DS_ROOT%\Resource\Menu\UI_main\*.n*
@rem del %ZELDA_DS_ROOT%\Resource\Menu\UI_main\*.b*

@rem del %ZELDA_DS_ROOT%\Resource\Menu\UI_sub\*.n*
@rem del %ZELDA_DS_ROOT%\Resource\Menu\UI_sub\*.b*

rem ---- G2Dランタイムバイナリフォーマットへ変換 ---- 

%ZELDA_DS_ROOT%\Tool\NitroSystem\g2dcvtr Bg\ColorPalette\Color0.ncl -o/Bg/bin
@if errorlevel 1 goto :END


%ZELDA_DS_ROOT%\Tool\NitroSystem\g2dcvtr UI_main\Cell\UI_main.nce -o/UI_main/bin -lbl
@if errorlevel 1 goto :END


%ZELDA_DS_ROOT%\Tool\NitroSystem\g2dcvtr UI_main\Cell\DebugFont_main.nce -o/UI_main/bin -lbl
@if errorlevel 1 goto :END


%ZELDA_DS_ROOT%\Tool\NitroSystem\g2dcvtr UI_sub\Cell\map_obj.nce -o/UI_sub/bin -lbl
@if errorlevel 1 goto :END


%ZELDA_DS_ROOT%\Tool\NitroSystem\g2dcvtr UI_sub\Cell\DebugFont_sub.nce -o/UI_sub/bin -lbl
@if errorlevel 1 goto :END


%ZELDA_DS_ROOT%\Tool\NitroSystem\g2dcvtr common_main\Cell\common_main.nce -o/common_main/bin -lbl
@if errorlevel 1 goto :END


%ZELDA_DS_ROOT%\Tool\NitroSystem\g2dcvtr common_sub\Cell\common_sub.nce -o/common_sub/bin -lbl
@if errorlevel 1 goto :END


%ZELDA_DS_ROOT%\Tool\NitroSystem\g2dcvtr n_logo\Character\n_logo.ncg -o/RunTimeData/NintendoLogo/bin -bg
@if errorlevel 1 goto :END


%ZELDA_DS_ROOT%\Tool\NitroSystem\g2dcvtr n_logo\ColorPalette\n_logo.ncl -o/RunTimeData/NintendoLogo/bin
@if errorlevel 1 goto :END


%ZELDA_DS_ROOT%\Tool\NitroSystem\g2dcvtr n_logo\Screen\n_logo.nsc -o/RunTimeData/NintendoLogo/bin
@if errorlevel 1 goto :END


%ZELDA_DS_ROOT%\Tool\NitroSystem\g2dcvtr right_txt\Character\right_txt.ncg -o/RunTimeData/NintendoLogo/bin -bg
@if errorlevel 1 goto :END


%ZELDA_DS_ROOT%\Tool\NitroSystem\g2dcvtr right_txt\ColorPalette\right_txt.ncl -o/RunTimeData/NintendoLogo/bin
@if errorlevel 1 goto :END


%ZELDA_DS_ROOT%\Tool\NitroSystem\g2dcvtr right_txt\Screen\right_txt.nsc -o/RunTimeData/NintendoLogo/bin
@if errorlevel 1 goto :END


rem ---- uiStudioデータをバイナリフォーマットへ変換 ---- 

%ZELDA_DS_ROOT%\Tool\jnlib\uiStudio.exe -o %ZELDA_DS_ROOT%\data\NitroCharacter\UI_main\UIProj\UI_main.uiproj %ZELDA_DS_ROOT%\data\NitroCharacter\UI_main\bin
@if errorlevel 1 goto :END

%ZELDA_DS_ROOT%\Tool\jnlib\uiStudio.exe -o %ZELDA_DS_ROOT%\data\NitroCharacter\UI_sub\UIProj\UI_sub.uiproj %ZELDA_DS_ROOT%\data\NitroCharacter\UI_sub\bin
@if errorlevel 1 goto :END


rem ---- アーカイブを作成 ---- 

chdir RunTimeData\NintendoLogo\bin
%ZELDA_DS_ROOT%\Tool\NitroSystem\nnsarc -r -b -e -s -E CVS -E NintendoLogo.narc NintendoLogo.narc .
move NintendoLogo.narc ../arc/
chdir ..\..\..


rem ---- 変換したファイルをResourceフォルダにコピー ---- 

copy Bg\bin\*.n* %ZELDA_DS_ROOT%\Resource\Menu\Bg
copy UI_main\bin\*.n* %ZELDA_DS_ROOT%\Resource\Menu\UI_main
copy UI_sub\bin\*.n* %ZELDA_DS_ROOT%\Resource\Menu\UI_sub

copy common_main\bin\*.n* %ZELDA_DS_ROOT%\Resource\Menu\UI_main
copy common_sub\bin\*.n* %ZELDA_DS_ROOT%\Resource\Menu\UI_sub

copy RunTimeData\NintendoLogo\arc\NintendoLogo.narc %ZELDA_DS_ROOT%\Resource\Menu\Bg

@if errorlevel 1 (@echo 失敗しました。) else (@echo [ %~pnx1 ] を変換しました。)



rem ---- uiStudioのファイルをResourceフォルダ、およびProgramにコピー ---- 

rem NitroCharacterのファイルを移動
copy %ZELDA_DS_ROOT%\data\NitroCharacter\UI_main\bin\*.n* %ZELDA_DS_ROOT%\Resource\Menu\UI_main
copy %ZELDA_DS_ROOT%\data\NitroCharacter\UI_sub\bin\*.n* %ZELDA_DS_ROOT%\Resource\Menu\UI_sub


rem ヘッダーファイルを移動
copy %ZELDA_DS_ROOT%\data\NitroCharacter\UI_main\bin\cellid* %ZELDA_DS_ROOT%\Program\Menu\include
copy %ZELDA_DS_ROOT%\data\NitroCharacter\UI_sub\bin\cellid* %ZELDA_DS_ROOT%\Program\Menu\include
copy %ZELDA_DS_ROOT%\data\NitroCharacter\UI_main\bin\baseid* %ZELDA_DS_ROOT%\Program\Menu\include
copy %ZELDA_DS_ROOT%\data\NitroCharacter\UI_sub\bin\baseid* %ZELDA_DS_ROOT%\Program\Menu\include


rem bnbl,bncl,キャラ、セルファイルを移動
copy %ZELDA_DS_ROOT%\data\NitroCharacter\UI_main\bin\UI* %ZELDA_DS_ROOT%\Resource\Menu\UI_main
copy %ZELDA_DS_ROOT%\data\NitroCharacter\UI_sub\bin\UI* %ZELDA_DS_ROOT%\Resource\Menu\UI_sub
copy %ZELDA_DS_ROOT%\data\NitroCharacter\UI_main\bin\*.n* %ZELDA_DS_ROOT%\Resource\Menu\UI_main
copy %ZELDA_DS_ROOT%\data\NitroCharacter\UI_sub\bin\*.n* %ZELDA_DS_ROOT%\Resource\Menu\UI_sub

rem カラーパレットを移動する
copy %ZELDA_DS_ROOT%\data\NitroCharacter\Bg\bin\*.n* %ZELDA_DS_ROOT%\Resource\Menu\Bg


:END
@pause

mapobj.bat

Original

@rem ---------------------------------------------------------------------------
@rem  Project : zeldaDS
@rem  File    : mapobj.bat
@rem
@rem  Copyright 2005 Nintendo. All rights reserved.
@rem
@rem  NitroSystemのG3Dコンバーターを使ってマップオブジェのモデルを作成する
@rem	まだ未作成です。
@rem バッチファイルだけで書くの面倒
@rem  作者:藤野洋平。
@rem ---------------------------------------------------------------------------

cd /d %~dp1

perl %ZELDA_DS_ROOT%\data\mapobj\makeMo.pl

@pause

Translation

@rem ---------------------------------------------------------------------------
@rem  Project : zeldaDS
@rem  File    : mapobj.bat
@rem
@rem  Copyright 2005 Nintendo. All rights reserved.
@rem
@rem  Use the NitroSystem G3D converter to create map object models.
@rem	Not yet complete.
@rem Trouble writing with only batch files.
@rem  Creator: Yohei Fujino.
@rem ---------------------------------------------------------------------------

cd /d %~dp1

perl %ZELDA_DS_ROOT%\data\mapobj\makeMo.pl

@pause

other.bat

@rem ---------------------------------------------------------------------------
@rem  Project : zeldaDS
@rem  File    : other.bat
@rem
@rem  Copyright 2006 Nintendo. All rights reserved.
@rem ---------------------------------------------------------------------------



chdir /d %ZELDA_DS_ROOT%\data\other



chdir before
%ZELDA_DS_ROOT%\Tool\NitroSDK\ntexconv fallmaster1.tga -b -f tex4x4 -a3 -tc=0,0,0
%ZELDA_DS_ROOT%\Tool\NitroSDK\ntexconv fallmaster2.tga -b -f tex4x4 -a3 -tc=0,0,0
move fallmaster1.ntft ..\after
move fallmaster1.ntfp ..\after
move fallmaster1.ntfi ..\after
move fallmaster2.ntft ..\after
move fallmaster2.ntfp ..\after
move fallmaster2.ntfi ..\after
%ZELDA_DS_ROOT%\Tool\NitroSDK\ntexconv fire1.bmp -b -f tex4x4 -a3 -tc=0,0,0
%ZELDA_DS_ROOT%\Tool\NitroSDK\ntexconv fire2.bmp -b -f tex4x4 -a3 -tc=0,0,0
move fire1.ntft ..\after
move fire1.ntfp ..\after
move fire1.ntfi ..\after
move fire2.ntft ..\after
move fire2.ntfp ..\after
move fire2.ntfi ..\after
%ZELDA_DS_ROOT%\Tool\NitroSDK\ntexconv icon_key.tga -b -f palette16
move icon_key.ntft ..\after
move icon_key.ntfp ..\after
%ZELDA_DS_ROOT%\Tool\NitroSDK\ntexconv heart.bmp -b -f palette4
move heart.ntft ..\after
move heart.ntfp ..\after
%ZELDA_DS_ROOT%\Tool\NitroSDK\ntexconv note.tga -b -f palette4
move note.ntft ..\after
move note.ntfp ..\after
%ZELDA_DS_ROOT%\Tool\NitroSDK\ntexconv rupee_R.tga -b -f palette16
move rupee_R.ntft ..\after
move rupee_R.ntfp ..\after
%ZELDA_DS_ROOT%\Tool\NitroSDK\ntexconv rupee_G.tga -b -f palette16
move rupee_G.ntft ..\after
move rupee_G.ntfp ..\after
%ZELDA_DS_ROOT%\Tool\NitroSDK\ntexconv rupee_B.tga -b -f palette16
move rupee_B.ntft ..\after
move rupee_B.ntfp ..\after
%ZELDA_DS_ROOT%\Tool\NitroSDK\ntexconv bigrupee.bmp -b -f palette16
move bigrupee.ntft ..\after
move bigrupee.ntfp ..\after


chdir ..\after
%ZELDA_DS_ROOT%\Tool\NitroSystem\nnsarc -r -b -e -s -E CVS -E other.narc other.narc .
move other.narc ..
chdir ..
copy other.narc %ZELDA_DS_ROOT%\Resource\Other



@pause

SPRArchiver.bat

Original

@rem ---------------------------------------------------------------------------
@rem  Project : zeldaDS
@rem  File    : SPRArchiver.bat
@rem
@rem  Copyright 2005 Nintendo. All rights reserved.
@rem
@rem  jnlibのSPRアーカイバーを使ってパーティクルリソースを作成する
@rem
@rem  作者:新田昌弘。
@rem
@rem 引数1:にビットマップフォントのファイル名
@rem ---------------------------------------------------------------------------



cd /d %~dp1


rem ---- エフェクトアーカイブを作成 ----
%ZELDA_DS_ROOT%\Tool\jnlib\SPRArchiver -o %ZELDA_DS_ROOT%/Program/Effect/include/effect_%~n1.h %~n1 %~n1 %ZELDA_DS_ROOT%/Resource/Effect/%~n1.spa


@if errorlevel 1 (@echo 失敗しました。) else (@echo [ %~nx1 ] を [ %~n1.spa ] に変換しました。)

@pause

Translation

@rem ---------------------------------------------------------------------------
@rem  Project : zeldaDS
@rem  File    : SPRArchiver.bat
@rem
@rem  Copyright 2005 Nintendo. All rights reserved.
@rem
@rem  Use the jnlib SPR archiver to create particle resources.
@rem
@rem  Creator: Masahiro Nitta.
@rem
@rem Bitmap font file name to Argument 1:
@rem ---------------------------------------------------------------------------



cd /d %~dp1


rem ---- Create effect archive. ----
%ZELDA_DS_ROOT%\Tool\jnlib\SPRArchiver -o %ZELDA_DS_ROOT%/Program/Effect/include/effect_%~n1.h %~n1 %~n1 %ZELDA_DS_ROOT%/Resource/Effect/%~n1.spa


@if errorlevel 1 (@echo failed.) else (@echo [ %~nx1 ] converted to [ %~n1.spa ].)

@pause

test.bat

@rem ---------------------------------------------------------------------------
@rem  Project : zeldaDS
@rem  File    : test.bat
@rem
@rem  Copyright 2006 Nintendo. All rights reserved.
@rem ---------------------------------------------------------------------------



chdir /d %ZELDA_DS_ROOT%\data\test



chdir before
%ZELDA_DS_ROOT%\Tool\NitroSDK\ntexconv BgMap.tga -bgnv -bgnh -bgnc -no -f palette256 -bg -bgb -tc=0,0,0
move BgMap.nbfc ..\after
move BgMap.nbfp ..\after
move BgMap.nbfs ..\after


chdir ..\after
%ZELDA_DS_ROOT%\Tool\NitroSystem\nnsarc -r -b -e -s -E CVS -E BgMap.narc BgMap.narc .
move BgMap.narc ..
chdir ..
copy BgMap.narc %ZELDA_DS_ROOT%\Resource\Test
copy picture.narc %ZELDA_DS_ROOT%\Resource\Test



@pause

tool_jnlib.bat

Original

@rem ---------------------------------------------------------------------------
@rem  Project : zeldaDS
@rem  File    : tool_jnlib.bat
@rem
@rem  Copyright 2005 Nintendo. All rights reserved.
@rem
@rem  jnlibのツールをローカルにコピーする
@rem
@rem  作者:新田昌弘。
@rem ---------------------------------------------------------------------------


rem ---- jnlibのツールをローカルにコピー ----
xcopy /i /d /y \\filer\nitro-zelda$\DevEnv\jnlib\tools %ZELDA_DS_ROOT%\Tool\jnlib

Translation

@rem ---------------------------------------------------------------------------
@rem  Project : zeldaDS
@rem  File    : tool_jnlib.bat
@rem
@rem  Copyright 2005 Nintendo. All rights reserved.
@rem
@rem  Copy jnlib tool to Local.
@rem
@rem  Creator: Masahiro Nitta.
@rem ---------------------------------------------------------------------------


rem ---- Copy jnlib tool to Local. ----
xcopy /i /d /y \\filer\nitro-zelda$\DevEnv\jnlib\tools %ZELDA_DS_ROOT%\Tool\jnlib

tool_NitroSDK.bat

Original

@rem ---------------------------------------------------------------------------
@rem  Project : zeldaDS
@rem  File    : tool_NitroSDK.bat
@rem
@rem  Copyright 2005 Nintendo. All rights reserved.
@rem
@rem  NitroSDKのツールをローカルにコピーする
@rem
@rem  作者:新田昌弘。
@rem ---------------------------------------------------------------------------


rem ---- NitroSDKのツールをローカルにコピー ----
xcopy /i /d /y \\filer\nitro-zelda$\DevEnv\NitroSDK\tools\bin %ZELDA_DS_ROOT%\Tool\NitroSDK

Translation

@rem ---------------------------------------------------------------------------
@rem  Project : zeldaDS
@rem  File    : tool_NitroSDK.bat
@rem
@rem  Copyright 2005 Nintendo. All rights reserved.
@rem
@rem  Copy NitroSDK tool to Local.
@rem
@rem  Creator: Masahiro Nitta.
@rem ---------------------------------------------------------------------------


rem ---- Copy NitroSDK tool to Local. ----
xcopy /i /d /y \\filer\nitro-zelda$\DevEnv\NitroSDK\tools\bin %ZELDA_DS_ROOT%\Tool\NitroSDK

tool_NitroSystem.bat

Original

@rem ---------------------------------------------------------------------------
@rem  Project : zeldaDS
@rem  File    : tool_NitroSystem.bat
@rem
@rem  Copyright 2005 Nintendo. All rights reserved.
@rem
@rem  NitroSystemのツールをローカルにコピーする
@rem
@rem  作者:新田昌弘。
@rem ---------------------------------------------------------------------------


rem ---- NitroSystemのツールをローカルにコピー ----
xcopy /i /d /y \\filer\nitro-zelda$\DevEnv\NitroSystem\tools\win\bin %ZELDA_DS_ROOT%\Tool\NitroSystem

Translation

@rem ---------------------------------------------------------------------------
@rem  Project : zeldaDS
@rem  File    : tool_NitroSystem.bat
@rem
@rem  Copyright 2005 Nintendo. All rights reserved.
@rem
@rem  Copy NitroSystem tool to Local.
@rem
@rem  Creator: Masahiro Nitta
@rem ---------------------------------------------------------------------------


rem ---- Copy NitroSystem tool to Local. ----
xcopy /i /d /y \\filer\nitro-zelda$\DevEnv\NitroSystem\tools\win\bin %ZELDA_DS_ROOT%\Tool\NitroSystem

update.bat

@rem ---------------------------------------------------------------------------
@rem  Project : zeldaDS
@rem  File    : update.bat
@rem
@rem  Copyright 2006 Nintendo. All rights reserved.
@rem ---------------------------------------------------------------------------



chdir /d %ZELDA_DS_ROOT%\data\test



chdir before
%ZELDA_DS_ROOT%\Tool\NitroSDK\ntexconv BgMap.tga -bgnv -bgnh -bgnc -no -f palette256 -bg -bgb -tc=0,0,0
move BgMap.nbfc ..\after
move BgMap.nbfp ..\after
move BgMap.nbfs ..\after


chdir ..\after
%ZELDA_DS_ROOT%\Tool\NitroSystem\nnsarc -r -b -e -s -E CVS -E BgMap.narc BgMap.narc .
move BgMap.narc ..
chdir ..
copy BgMap.narc %ZELDA_DS_ROOT%\Resource\Test
copy picture.narc %ZELDA_DS_ROOT%\Resource\Test



@pause