mirror of
https://github.com/rvtr/TwlIPL.git
synced 2025-10-31 06:01:12 -04:00
CSUに含むロム一覧を出力するように変更
git-svn-id: file:///Users/lillianskinner/Downloads/platinum/twl/TwlIPL/trunk@2358 b08762b0-b915-fc4b-9d8c-17b2551a87ff
This commit is contained in:
parent
f07d989e2f
commit
c899fe82c8
@ -70,9 +70,9 @@ SRCDIR = src \
|
|||||||
|
|
||||||
DATA_ROOT = ../data
|
DATA_ROOT = ../data
|
||||||
ROMSET_FILE = ../romset
|
ROMSET_FILE = ../romset
|
||||||
ROM_CHECKER = ruby ../romchecker.rb
|
ROM_CHECKER = ../romchecker.rb
|
||||||
|
|
||||||
SUMAKER = ruby ../sumaker.rb custom
|
SUMAKER = ../sumaker.rb custom
|
||||||
#----------------------------------------------------------------------------
|
#----------------------------------------------------------------------------
|
||||||
|
|
||||||
include $(TWL_IPL_RED_ROOT)/build/buildtools/commondefs
|
include $(TWL_IPL_RED_ROOT)/build/buildtools/commondefs
|
||||||
@ -129,7 +129,8 @@ INSTALL_DIR = ../bin
|
|||||||
|
|
||||||
check_rom:
|
check_rom:
|
||||||
ifeq ($(DISABLE_ROMCHECK),)
|
ifeq ($(DISABLE_ROMCHECK),)
|
||||||
$(ROM_CHECKER) $(ROMSET)
|
$(ROM_CHECKER) $(ROMSET) $(SYSM_REGION)
|
||||||
|
$(ROM_CHECKER) $(ROMSET) VERUP
|
||||||
endif
|
endif
|
||||||
#ifeq ($(DISABLE_ROMCHECK),)
|
#ifeq ($(DISABLE_ROMCHECK),)
|
||||||
# $(ROM_CHECKER) $(DATA_ROOT)/$(ROMSET)
|
# $(ROM_CHECKER) $(DATA_ROOT)/$(ROMSET)
|
||||||
|
|||||||
@ -58,7 +58,6 @@ do-something:
|
|||||||
-$(REMAKE) TWLSDK_PLATFORM=TWL REGION=USA ROMSET=$(ROMSET) DISABLE_ROMCHECK=$(DISABLE_ROMCHECK) SKIP_SUBDIR=FALSE $(MY_GOAL)
|
-$(REMAKE) TWLSDK_PLATFORM=TWL REGION=USA ROMSET=$(ROMSET) DISABLE_ROMCHECK=$(DISABLE_ROMCHECK) SKIP_SUBDIR=FALSE $(MY_GOAL)
|
||||||
-rm `find . -name "*autogen*"`
|
-rm `find . -name "*autogen*"`
|
||||||
-$(REMAKE) TWLSDK_PLATFORM=TWL REGION=EUR ROMSET=$(ROMSET) DISABLE_ROMCHECK=$(DISABLE_ROMCHECK) SKIP_SUBDIR=FALSE $(MY_GOAL)
|
-$(REMAKE) TWLSDK_PLATFORM=TWL REGION=EUR ROMSET=$(ROMSET) DISABLE_ROMCHECK=$(DISABLE_ROMCHECK) SKIP_SUBDIR=FALSE $(MY_GOAL)
|
||||||
|
|
||||||
include $(TWLSDK_ROOT)/build/buildtools/modulerules
|
include $(TWLSDK_ROOT)/build/buildtools/modulerules
|
||||||
|
|
||||||
else
|
else
|
||||||
|
|||||||
@ -1,3 +1,4 @@
|
|||||||
|
#!/bin/ruby
|
||||||
#----------------------------------------------------------------------------
|
#----------------------------------------------------------------------------
|
||||||
# Project: TwlSDK
|
# Project: TwlSDK
|
||||||
# File: romchecker.rb
|
# File: romchecker.rb
|
||||||
@ -25,15 +26,30 @@ FIX_REGION = [
|
|||||||
|
|
||||||
HEADER = "HN"
|
HEADER = "HN"
|
||||||
|
|
||||||
|
ROM_DATA = {
|
||||||
|
"#{HEADER}A" => ["Launcher", "00030017"],
|
||||||
|
"#{HEADER}B" => ["本体設定", "00030015"],
|
||||||
|
"#{HEADER}C" => ["無線ファーム", "0003000f"],
|
||||||
|
"#{HEADER}D" => ["DSダウンロードプレイ", "00030005"],
|
||||||
|
"#{HEADER}E" => ["ピクトチャット", "00030005"],
|
||||||
|
"#{HEADER}F" => ["ショップ", "00030015"],
|
||||||
|
"#{HEADER}G" => ["フルブラウザ", "00030004"],
|
||||||
|
"#{HEADER}H" => ["DSハッシュリスト", "0003000f"],
|
||||||
|
"#{HEADER}I" => ["写真帳", "00030005"],
|
||||||
|
"#{HEADER}J" => ["ホットスポット", "00030005"],
|
||||||
|
"#{HEADER}K" => ["DSサウンド", "00030005"],
|
||||||
|
"#{HEADER}L" => ["バージョンデータ", "0003000f"],
|
||||||
|
}
|
||||||
|
|
||||||
REGION_DIRS = {
|
REGION_DIRS = {
|
||||||
"aus" => "U",
|
"AUS" => ["aus", "U"],
|
||||||
"euro" => "P",
|
"EUR" => ["euro", "P"],
|
||||||
"jp" => "J",
|
"JPN" => ["jp", "J"],
|
||||||
"usa" => "E",
|
"USA" => ["usa", "E"],
|
||||||
|
"VERUP" => ["verup", "UPJE"],
|
||||||
}
|
}
|
||||||
|
|
||||||
REG_PATH = /[a-zA-Z0-9\.\-_]+\/[a-zA-Z0-9\.\-_*]+\z/
|
REG_PATH = /[a-zA-Z0-9\.\-_]+\/[a-zA-Z0-9\.\-_*]+\z/
|
||||||
|
|
||||||
NAND_FIRM = "*.nand"
|
NAND_FIRM = "*.nand"
|
||||||
FONT_DATA = "*.dat"
|
FONT_DATA = "*.dat"
|
||||||
|
|
||||||
@ -64,20 +80,85 @@ def check_pickuped(path, print_success)
|
|||||||
ret
|
ret
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def add_rom_list(rom_list, code, region, version)
|
||||||
|
rom_list << [code, region, version]
|
||||||
|
end
|
||||||
|
|
||||||
def check(target_dir)
|
def make_rom_list(target_dir, region)
|
||||||
|
region_dir = REGION_DIRS[region][0]
|
||||||
|
region_codes = (REGION_DIRS[region][1] + "A").unpack("A" * (REGION_DIRS[region][1].size + 1))
|
||||||
|
p region_codes
|
||||||
|
# 出力用リスト
|
||||||
|
rom_list = []
|
||||||
|
|
||||||
|
(ALL_REGION + FIX_REGION).each{|app_code|
|
||||||
|
region_codes.each{|region_code|
|
||||||
|
search_path = File.join(target_dir, region_dir, "#{HEADER}#{app_code}#{region_code}*.tad")
|
||||||
|
files = Dir.glob(search_path)
|
||||||
|
files.each{|tad|
|
||||||
|
add_rom_list(rom_list, "#{HEADER}#{app_code}", region_code, get_rom_version(tad))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
write_rom_list(rom_list, "rom_list_#{region}.txt")
|
||||||
|
end
|
||||||
|
|
||||||
|
def write_rom_list(rom_list, file_name)
|
||||||
|
region_name = {
|
||||||
|
"A" => "ALL", "E" => "USA", "U" => "AUS", "J" => "JPN", "P" => "EUR"
|
||||||
|
}
|
||||||
|
out = ""
|
||||||
|
sp = [8, 20, 10, 17, 10]
|
||||||
|
line = ""
|
||||||
|
sp.each{|s|
|
||||||
|
line += "+#{"-" * s}"
|
||||||
|
}
|
||||||
|
line += "+\n"
|
||||||
|
out += line
|
||||||
|
out += sprintf("|%#{sp[0]}s|%-#{sp[1]}s|%#{sp[2]}s|%-#{sp[3]}s|%#{sp[4]}s|\n",
|
||||||
|
"コード", "名前", "リージョン", "タイトルID", "バージョン")
|
||||||
|
out += line
|
||||||
|
rom_list.each{|rom|
|
||||||
|
rom_data = ROM_DATA[rom[0]]
|
||||||
|
out += sprintf("|%#{sp[0]}s|%-#{sp[1]}s|%-#{sp[2]}s|%8s %8x|%#{sp[4]}s|\n",
|
||||||
|
rom[0] + rom[1], rom_data[0],region_name[rom[1]], rom_data[1], (rom[0] + rom[1]).unpack("N")[0], rom[2]);
|
||||||
|
}
|
||||||
|
out += line
|
||||||
|
File.open(file_name, "w") {|file|
|
||||||
|
file.puts out
|
||||||
|
}
|
||||||
|
end
|
||||||
|
|
||||||
|
def get_rom_version(path)
|
||||||
|
files = Dir.glob(path)
|
||||||
|
files[0].slice(/v[0-9]+/).delete("v")
|
||||||
|
end
|
||||||
|
|
||||||
|
def check(target_dir, region)
|
||||||
ret = true
|
ret = true
|
||||||
REGION_DIRS.each{|region_dir, region_code|
|
if REGION_DIRS[region] == nil
|
||||||
|
puts "Invalid region, [JPN, USA, EUR, AUS, VERUP]"
|
||||||
|
return false
|
||||||
|
end
|
||||||
|
region_dir = REGION_DIRS[region][0]
|
||||||
|
region_code = REGION_DIRS[region][1]
|
||||||
|
|
||||||
|
# 出力用リスト
|
||||||
|
rom_list = []
|
||||||
|
|
||||||
ALL_REGION.each{|app_code|
|
ALL_REGION.each{|app_code|
|
||||||
# オールリージョンのロムが含まれているかのチェック
|
# オールリージョンのロムが含まれているかのチェック
|
||||||
search_path = File.join(target_dir, region_dir, "#{HEADER}#{app_code}A*.tad")
|
search_path = File.join(target_dir, region_dir, "#{HEADER}#{app_code}A*.tad")
|
||||||
#p search_path
|
if ret &= check_pickuped(search_path, false)
|
||||||
ret &= check_pickuped(search_path, false)
|
add_rom_list(rom_list, "#{HEADER}#{app_code}", "A", get_rom_version(search_path))
|
||||||
|
end
|
||||||
}
|
}
|
||||||
FIX_REGION.each{|app_code|
|
FIX_REGION.each{|app_code|
|
||||||
# 各リージョン固有のロムが含まれているかのチェック
|
# 各リージョン固有のロムが含まれているかのチェック
|
||||||
search_path = File.join(target_dir, region_dir, "#{HEADER}#{app_code}#{region_code}*.tad")
|
search_path = File.join(target_dir, region_dir, "#{HEADER}#{app_code}#{region_code}*.tad")
|
||||||
ret &= check_pickuped(search_path, false)
|
if ret &= check_pickuped(search_path, false)
|
||||||
|
add_rom_list(rom_list, "#{HEADER}#{app_code}", region_code, get_rom_version(search_path))
|
||||||
|
end
|
||||||
}
|
}
|
||||||
(ALL_REGION + FIX_REGION).each{|app_code|
|
(ALL_REGION + FIX_REGION).each{|app_code|
|
||||||
# HNxy が 各リージョンごと1つだけ存在するかのチェック
|
# HNxy が 各リージョンごと1つだけ存在するかのチェック
|
||||||
@ -91,16 +172,20 @@ def check(target_dir)
|
|||||||
ret &= check_pickuped(search_path, false)
|
ret &= check_pickuped(search_path, false)
|
||||||
search_path = File.join(target_dir, region_dir, FONT_DATA)
|
search_path = File.join(target_dir, region_dir, FONT_DATA)
|
||||||
ret &= check_pickuped(search_path, false)
|
ret &= check_pickuped(search_path, false)
|
||||||
|
|
||||||
$stdout.printf("\n")
|
$stdout.printf("\n")
|
||||||
}
|
|
||||||
|
# CSUに含まれているロムの一覧を書き出す
|
||||||
|
# write_rom_list(rom_list, "rom_list_#{region}.txt")
|
||||||
|
|
||||||
|
# make_rom_list(target_dir, region)
|
||||||
|
|
||||||
ret
|
ret
|
||||||
end
|
end
|
||||||
|
|
||||||
# こっからメイン
|
# こっからメイン
|
||||||
|
|
||||||
if ARGV.size < 1
|
if ARGV.size < 2
|
||||||
p "Usage: #{__FILE__} targetdir"
|
p "Usage: #{__FILE__} targetdir region"
|
||||||
exit -1
|
exit -1
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -109,6 +194,11 @@ Dir.chdir(File.dirname(File.expand_path(__FILE__)))
|
|||||||
|
|
||||||
|
|
||||||
target = ARGV[0]
|
target = ARGV[0]
|
||||||
|
region = ARGV[1]
|
||||||
exit (check target) ? 0 : -1
|
make_rom_list(target, region)
|
||||||
|
if region == "VERUP"
|
||||||
|
exit 0
|
||||||
|
else
|
||||||
|
exit check(target,region) ? 0 : -1
|
||||||
|
end
|
||||||
|
|
||||||
|
|||||||
@ -1,3 +1,4 @@
|
|||||||
|
#!/bin/ruby
|
||||||
#----------------------------------------------------------------------------
|
#----------------------------------------------------------------------------
|
||||||
# Project: TwlSDK
|
# Project: TwlSDK
|
||||||
# File: sumaker.rb
|
# File: sumaker.rb
|
||||||
|
|||||||
@ -26,4 +26,4 @@ then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
./tocsu.sh $1
|
./tocsu.sh $1
|
||||||
ruby toaqua.rb $1
|
./toaqua.rb $1
|
||||||
|
|||||||
@ -1,3 +1,4 @@
|
|||||||
|
#!/bin/ruby
|
||||||
#----------------------------------------------------------------------------
|
#----------------------------------------------------------------------------
|
||||||
# Project: TwlSDK - tools
|
# Project: TwlSDK - tools
|
||||||
# File: toaqua.sh
|
# File: toaqua.sh
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user