diff --git a/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/DS-MasterROM_Submission_Sheet_2008_00_J.xls b/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/DS-MasterROM_Submission_Sheet_2008_00_J.xls new file mode 100644 index 0000000..d49ca2e Binary files /dev/null and b/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/DS-MasterROM_Submission_Sheet_2008_00_J.xls differ diff --git a/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/DS_fontcodeList_061117_china.csv b/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/DS_fontcodeList_061117_china.csv new file mode 100644 index 0000000..b9dbed0 --- /dev/null +++ b/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/DS_fontcodeList_061117_china.csv @@ -0,0 +1,7180 @@ +# China +0x0020 +0x0021 +0x0022 +0x0023 +0x0024 +0x0025 +0x0026 +0x0027 +0x0028 +0x0029 +0x002a +0x002b +0x002c +0x002d +0x002e +0x002f +0x0030 +0x0031 +0x0032 +0x0033 +0x0034 +0x0035 +0x0036 +0x0037 +0x0038 +0x0039 +0x003a +0x003b +0x003c +0x003d +0x003e +0x003f +0x0040 +0x0041 +0x0042 +0x0043 +0x0044 +0x0045 +0x0046 +0x0047 +0x0048 +0x0049 +0x004a +0x004b +0x004c +0x004d +0x004e +0x004f +0x0050 +0x0051 +0x0052 +0x0053 +0x0054 +0x0055 +0x0056 +0x0057 +0x0058 +0x0059 +0x005a +0x005b +0x005c +0x005d +0x005e +0x005f +0x0060 +0x0061 +0x0062 +0x0063 +0x0064 +0x0065 +0x0066 +0x0067 +0x0068 +0x0069 +0x006a +0x006b +0x006c +0x006d +0x006e +0x006f +0x0070 +0x0071 +0x0072 +0x0073 +0x0074 +0x0075 +0x0076 +0x0077 +0x0078 +0x0079 +0x007a +0x007b +0x007c +0x007d +0x007e +0x007f +0x00a1 +0x00a2 +0x00a3 +0x00a8 +0x00a9 +0x00ae +0x00b0 +0x00b1 +0x00b4 +0x00b7 +0x00bf +0x00c0 +0x00c1 +0x00c2 +0x00c3 +0x00c4 +0x00c5 +0x00c6 +0x00c7 +0x00c8 +0x00c9 +0x00ca +0x00cb +0x00cc +0x00cd +0x00ce +0x00cf +0x00d0 +0x00d1 +0x00d2 +0x00d3 +0x00d4 +0x00d5 +0x00d6 +0x00d7 +0x00d8 +0x00d9 +0x00da +0x00db +0x00dc +0x00dd +0x00df +0x00e0 +0x00e1 +0x00e2 +0x00e3 +0x00e4 +0x00e5 +0x00e6 +0x00e7 +0x00e8 +0x00e9 +0x00ea +0x00eb +0x00ec +0x00ed +0x00ee +0x00ef +0x00f0 +0x00f1 +0x00f2 +0x00f3 +0x00f4 +0x00f5 +0x00f6 +0x00f7 +0x00f8 +0x00f9 +0x00fa +0x00fb +0x00fc +0x00fd +0x0152 +0x0153 +0x02c6 +0x02dc +0x2010 +0x2015 +0x2018 +0x2019 +0x201a +0x201c +0x201d +0x201e +0x2022 +0x2026 +0x2032 +0x2033 +0x203a +0x203b +0x20ac +0x2122 +0x2190 +0x2191 +0x2192 +0x2193 +0x221e +0x2234 +0x25a0 +0x25a1 +0x25b2 +0x25b3 +0x25bc +0x25bd +0x25c6 +0x25c7 +0x25cb +0x25ce +0x25cf +0x2605 +0x2606 +0x266a +0x266d +0x266f +0x3000 +0x3001 +0x3002 +0x3005 +0x3008 +0x3009 +0x300c +0x300d +0x3012 +0x3014 +0x3015 +0x3041 +0x3042 +0x3043 +0x3044 +0x3045 +0x3046 +0x3047 +0x3048 +0x3049 +0x304a +0x304b +0x304c +0x304d +0x304e +0x304f +0x3050 +0x3051 +0x3052 +0x3053 +0x3054 +0x3055 +0x3056 +0x3057 +0x3058 +0x3059 +0x305a +0x305b +0x305c +0x305d +0x305e +0x305f +0x3060 +0x3061 +0x3062 +0x3063 +0x3064 +0x3065 +0x3066 +0x3067 +0x3068 +0x3069 +0x306a +0x306b +0x306c +0x306d +0x306e +0x306f +0x3070 +0x3071 +0x3072 +0x3073 +0x3074 +0x3075 +0x3076 +0x3077 +0x3078 +0x3079 +0x307a +0x307b +0x307c +0x307d +0x307e +0x307f +0x3080 +0x3081 +0x3082 +0x3083 +0x3084 +0x3085 +0x3086 +0x3087 +0x3088 +0x3089 +0x308a +0x308b +0x308c +0x308d +0x308e +0x308f +0x3090 +0x3091 +0x3092 +0x3093 +0x30a1 +0x30a2 +0x30a3 +0x30a4 +0x30a5 +0x30a6 +0x30a7 +0x30a8 +0x30a9 +0x30aa +0x30ab +0x30ac +0x30ad +0x30ae +0x30af +0x30b0 +0x30b1 +0x30b2 +0x30b3 +0x30b4 +0x30b5 +0x30b6 +0x30b7 +0x30b8 +0x30b9 +0x30ba +0x30bb +0x30bc +0x30bd +0x30be +0x30bf +0x30c0 +0x30c1 +0x30c2 +0x30c3 +0x30c4 +0x30c5 +0x30c6 +0x30c7 +0x30c8 +0x30c9 +0x30ca +0x30cb +0x30cc +0x30cd +0x30ce +0x30cf +0x30d0 +0x30d1 +0x30d2 +0x30d3 +0x30d4 +0x30d5 +0x30d6 +0x30d7 +0x30d8 +0x30d9 +0x30da +0x30db +0x30dc +0x30dd +0x30de +0x30df +0x30e0 +0x30e1 +0x30e2 +0x30e3 +0x30e4 +0x30e5 +0x30e6 +0x30e7 +0x30e8 +0x30e9 +0x30ea +0x30eb +0x30ec +0x30ed +0x30ee +0x30ef +0x30f0 +0x30f1 +0x30f2 +0x30f3 +0x30f4 +0x30f5 +0x30f6 +0x30fb +0x30fc +0xff01 +0xff06 +0xff08 +0xff09 +0xff0b +0xff0c +0xff0d +0xff0e +0xff0f +0xff1a +0xff1b +0xff1d +0xff1f +0xff3b +0xff3c +0xff3d +0xff3e +0xff3f +0xff40 +0xff5b +0xff5c +0xff5d +0xff5e +0xffe3 +0x4e00 +0x4e01 +0x4e03 +0x4e07 +0x4e08 +0x4e09 +0x4e0a +0x4e0b +0x4e0c +0x4e0d +0x4e0e +0x4e10 +0x4e11 +0x4e13 +0x4e14 +0x4e15 +0x4e16 +0x4e18 +0x4e19 +0x4e1a +0x4e1b +0x4e1c +0x4e1d +0x4e1e +0x4e22 +0x4e24 +0x4e25 +0x4e27 +0x4e28 +0x4e2a +0x4e2b +0x4e2c +0x4e2d +0x4e30 +0x4e32 +0x4e34 +0x4e36 +0x4e38 +0x4e39 +0x4e3a +0x4e3b +0x4e3d +0x4e3e +0x4e3f +0x4e43 +0x4e45 +0x4e47 +0x4e48 +0x4e49 +0x4e4b +0x4e4c +0x4e4d +0x4e4e +0x4e4f +0x4e50 +0x4e52 +0x4e53 +0x4e54 +0x4e56 +0x4e58 +0x4e59 +0x4e5c +0x4e5d +0x4e5e +0x4e5f +0x4e60 +0x4e61 +0x4e66 +0x4e69 +0x4e70 +0x4e71 +0x4e73 +0x4e7e +0x4e86 +0x4e88 +0x4e89 +0x4e8b +0x4e8c +0x4e8d +0x4e8e +0x4e8f +0x4e91 +0x4e92 +0x4e93 +0x4e94 +0x4e95 +0x4e98 +0x4e9a +0x4e9b +0x4e9f +0x4ea0 +0x4ea1 +0x4ea2 +0x4ea4 +0x4ea5 +0x4ea6 +0x4ea7 +0x4ea8 +0x4ea9 +0x4eab +0x4eac +0x4ead +0x4eae +0x4eb2 +0x4eb3 +0x4eb5 +0x4eba +0x4ebb +0x4ebf +0x4ec0 +0x4ec1 +0x4ec2 +0x4ec3 +0x4ec4 +0x4ec5 +0x4ec6 +0x4ec7 +0x4ec9 +0x4eca +0x4ecb +0x4ecd +0x4ece +0x4ed1 +0x4ed3 +0x4ed4 +0x4ed5 +0x4ed6 +0x4ed7 +0x4ed8 +0x4ed9 +0x4edd +0x4ede +0x4edf +0x4ee1 +0x4ee3 +0x4ee4 +0x4ee5 +0x4ee8 +0x4eea +0x4eeb +0x4eec +0x4ef0 +0x4ef2 +0x4ef3 +0x4ef5 +0x4ef6 +0x4ef7 +0x4efb +0x4efd +0x4eff +0x4f01 +0x4f09 +0x4f0a +0x4f0d +0x4f0e +0x4f0f +0x4f10 +0x4f11 +0x4f17 +0x4f18 +0x4f19 +0x4f1a +0x4f1b +0x4f1e +0x4f1f +0x4f20 +0x4f22 +0x4f24 +0x4f25 +0x4f26 +0x4f27 +0x4f2a +0x4f2b +0x4f2f +0x4f30 +0x4f32 +0x4f34 +0x4f36 +0x4f38 +0x4f3a +0x4f3c +0x4f3d +0x4f43 +0x4f46 +0x4f4d +0x4f4e +0x4f4f +0x4f50 +0x4f51 +0x4f53 +0x4f55 +0x4f57 +0x4f58 +0x4f59 +0x4f5a +0x4f5b +0x4f5c +0x4f5d +0x4f5e +0x4f5f +0x4f60 +0x4f63 +0x4f64 +0x4f65 +0x4f67 +0x4f69 +0x4f6c +0x4f6f +0x4f70 +0x4f73 +0x4f74 +0x4f76 +0x4f7b +0x4f7c +0x4f7e +0x4f7f +0x4f83 +0x4f84 +0x4f88 +0x4f89 +0x4f8b +0x4f8d +0x4f8f +0x4f91 +0x4f94 +0x4f97 +0x4f9b +0x4f9d +0x4fa0 +0x4fa3 +0x4fa5 +0x4fa6 +0x4fa7 +0x4fa8 +0x4fa9 +0x4faa +0x4fac +0x4fae +0x4faf +0x4fb5 +0x4fbf +0x4fc3 +0x4fc4 +0x4fc5 +0x4fca +0x4fce +0x4fcf +0x4fd0 +0x4fd1 +0x4fd7 +0x4fd8 +0x4fda +0x4fdc +0x4fdd +0x4fde +0x4fdf +0x4fe1 +0x4fe3 +0x4fe6 +0x4fe8 +0x4fe9 +0x4fea +0x4fed +0x4fee +0x4fef +0x4ff1 +0x4ff3 +0x4ff8 +0x4ffa +0x4ffe +0x500c +0x500d +0x500f +0x5012 +0x5014 +0x5018 +0x5019 +0x501a +0x501c +0x501f +0x5021 +0x5025 +0x5026 +0x5028 +0x5029 +0x502a +0x502c +0x502d +0x502e +0x503a +0x503c +0x503e +0x5043 +0x5047 +0x5048 +0x504c +0x504e +0x504f +0x5055 +0x505a +0x505c +0x5065 +0x506c +0x5076 +0x5077 +0x507b +0x507e +0x507f +0x5080 +0x5085 +0x5088 +0x508d +0x50a3 +0x50a5 +0x50a7 +0x50a8 +0x50a9 +0x50ac +0x50b2 +0x50ba +0x50bb +0x50cf +0x50d6 +0x50da +0x50e6 +0x50e7 +0x50ec +0x50ed +0x50ee +0x50f3 +0x50f5 +0x50fb +0x5106 +0x5107 +0x510b +0x5112 +0x5121 +0x513f +0x5140 +0x5141 +0x5143 +0x5144 +0x5145 +0x5146 +0x5148 +0x5149 +0x514b +0x514d +0x5151 +0x5154 +0x5155 +0x5156 +0x515a +0x515c +0x5162 +0x5165 +0x5168 +0x516b +0x516c +0x516d +0x516e +0x5170 +0x5171 +0x5173 +0x5174 +0x5175 +0x5176 +0x5177 +0x5178 +0x5179 +0x517b +0x517c +0x517d +0x5180 +0x5181 +0x5182 +0x5185 +0x5188 +0x5189 +0x518c +0x518d +0x5192 +0x5195 +0x5196 +0x5197 +0x5199 +0x519b +0x519c +0x51a0 +0x51a2 +0x51a4 +0x51a5 +0x51ab +0x51ac +0x51af +0x51b0 +0x51b1 +0x51b2 +0x51b3 +0x51b5 +0x51b6 +0x51b7 +0x51bb +0x51bc +0x51bd +0x51c0 +0x51c4 +0x51c6 +0x51c7 +0x51c9 +0x51cb +0x51cc +0x51cf +0x51d1 +0x51db +0x51dd +0x51e0 +0x51e1 +0x51e4 +0x51eb +0x51ed +0x51ef +0x51f0 +0x51f3 +0x51f5 +0x51f6 +0x51f8 +0x51f9 +0x51fa +0x51fb +0x51fc +0x51fd +0x51ff +0x5200 +0x5201 +0x5202 +0x5203 +0x5206 +0x5207 +0x5208 +0x520a +0x520d +0x520e +0x5211 +0x5212 +0x5216 +0x5217 +0x5218 +0x5219 +0x521a +0x521b +0x521d +0x5220 +0x5224 +0x5228 +0x5229 +0x522b +0x522d +0x522e +0x5230 +0x5233 +0x5236 +0x5237 +0x5238 +0x5239 +0x523a +0x523b +0x523d +0x523f +0x5240 +0x5241 +0x5242 +0x5243 +0x524a +0x524c +0x524d +0x5250 +0x5251 +0x5254 +0x5256 +0x525c +0x525e +0x5261 +0x5265 +0x5267 +0x5269 +0x526a +0x526f +0x5272 +0x527d +0x527f +0x5281 +0x5282 +0x5288 +0x5290 +0x5293 +0x529b +0x529d +0x529e +0x529f +0x52a0 +0x52a1 +0x52a2 +0x52a3 +0x52a8 +0x52a9 +0x52aa +0x52ab +0x52ac +0x52ad +0x52b1 +0x52b2 +0x52b3 +0x52be +0x52bf +0x52c3 +0x52c7 +0x52c9 +0x52cb +0x52d0 +0x52d2 +0x52d6 +0x52d8 +0x52df +0x52e4 +0x52f0 +0x52f9 +0x52fa +0x52fe +0x52ff +0x5300 +0x5305 +0x5306 +0x5308 +0x530d +0x530f +0x5310 +0x5315 +0x5316 +0x5317 +0x5319 +0x531a +0x531d +0x5320 +0x5321 +0x5323 +0x5326 +0x532a +0x532e +0x5339 +0x533a +0x533b +0x533e +0x533f +0x5341 +0x5343 +0x5345 +0x5347 +0x5348 +0x5349 +0x534a +0x534e +0x534f +0x5351 +0x5352 +0x5353 +0x5355 +0x5356 +0x5357 +0x535a +0x535c +0x535e +0x535f +0x5360 +0x5361 +0x5362 +0x5363 +0x5364 +0x5366 +0x5367 +0x5369 +0x536b +0x536e +0x536f +0x5370 +0x5371 +0x5373 +0x5374 +0x5375 +0x5377 +0x5378 +0x537a +0x537f +0x5382 +0x5384 +0x5385 +0x5386 +0x5389 +0x538b +0x538c +0x538d +0x5395 +0x5398 +0x539a +0x539d +0x539f +0x53a2 +0x53a3 +0x53a5 +0x53a6 +0x53a8 +0x53a9 +0x53ae +0x53b6 +0x53bb +0x53bf +0x53c1 +0x53c2 +0x53c8 +0x53c9 +0x53ca +0x53cb +0x53cc +0x53cd +0x53d1 +0x53d4 +0x53d6 +0x53d7 +0x53d8 +0x53d9 +0x53db +0x53df +0x53e0 +0x53e3 +0x53e4 +0x53e5 +0x53e6 +0x53e8 +0x53e9 +0x53ea +0x53eb +0x53ec +0x53ed +0x53ee +0x53ef +0x53f0 +0x53f1 +0x53f2 +0x53f3 +0x53f5 +0x53f6 +0x53f7 +0x53f8 +0x53f9 +0x53fb +0x53fc +0x53fd +0x5401 +0x5403 +0x5404 +0x5406 +0x5408 +0x5409 +0x540a +0x540c +0x540d +0x540e +0x540f +0x5410 +0x5411 +0x5412 +0x5413 +0x5415 +0x5416 +0x5417 +0x541b +0x541d +0x541e +0x541f +0x5420 +0x5421 +0x5423 +0x5426 +0x5427 +0x5428 +0x5429 +0x542b +0x542c +0x542d +0x542e +0x542f +0x5431 +0x5432 +0x5434 +0x5435 +0x5438 +0x5439 +0x543b +0x543c +0x543e +0x5440 +0x5443 +0x5446 +0x5448 +0x544a +0x544b +0x5450 +0x5452 +0x5453 +0x5454 +0x5455 +0x5456 +0x5457 +0x5458 +0x5459 +0x545b +0x545c +0x5462 +0x5464 +0x5466 +0x5468 +0x5471 +0x5472 +0x5473 +0x5475 +0x5476 +0x5477 +0x5478 +0x547b +0x547c +0x547d +0x5480 +0x5482 +0x5484 +0x5486 +0x548b +0x548c +0x548e +0x548f +0x5490 +0x5492 +0x5494 +0x5495 +0x5496 +0x5499 +0x549a +0x549b +0x549d +0x54a3 +0x54a4 +0x54a6 +0x54a7 +0x54a8 +0x54a9 +0x54aa +0x54ab +0x54ac +0x54ad +0x54af +0x54b1 +0x54b3 +0x54b4 +0x54b8 +0x54bb +0x54bd +0x54bf +0x54c0 +0x54c1 +0x54c2 +0x54c4 +0x54c6 +0x54c7 +0x54c8 +0x54c9 +0x54cc +0x54cd +0x54ce +0x54cf +0x54d0 +0x54d1 +0x54d2 +0x54d3 +0x54d4 +0x54d5 +0x54d7 +0x54d9 +0x54da +0x54dc +0x54dd +0x54de +0x54df +0x54e5 +0x54e6 +0x54e7 +0x54e8 +0x54e9 +0x54ea +0x54ed +0x54ee +0x54f2 +0x54f3 +0x54fa +0x54fc +0x54fd +0x54ff +0x5501 +0x5506 +0x5507 +0x5509 +0x550f +0x5510 +0x5511 +0x5514 +0x551b +0x5520 +0x5522 +0x5523 +0x5524 +0x5527 +0x552a +0x552c +0x552e +0x552f +0x5530 +0x5531 +0x5533 +0x5537 +0x553c +0x553e +0x553f +0x5541 +0x5543 +0x5544 +0x5546 +0x5549 +0x554a +0x5550 +0x5555 +0x5556 +0x555c +0x5561 +0x5564 +0x5565 +0x5566 +0x5567 +0x556a +0x556c +0x556d +0x556e +0x5575 +0x5576 +0x5577 +0x5578 +0x557b +0x557c +0x557e +0x5580 +0x5581 +0x5582 +0x5583 +0x5584 +0x5587 +0x5588 +0x5589 +0x558a +0x558b +0x558f +0x5591 +0x5594 +0x5598 +0x5599 +0x559c +0x559d +0x559f +0x55a7 +0x55b1 +0x55b3 +0x55b5 +0x55b7 +0x55b9 +0x55bb +0x55bd +0x55be +0x55c4 +0x55c5 +0x55c9 +0x55cc +0x55cd +0x55d1 +0x55d2 +0x55d3 +0x55d4 +0x55d6 +0x55dc +0x55dd +0x55df +0x55e1 +0x55e3 +0x55e4 +0x55e5 +0x55e6 +0x55e8 +0x55ea +0x55eb +0x55ec +0x55ef +0x55f2 +0x55f3 +0x55f5 +0x55f7 +0x55fd +0x55fe +0x5600 +0x5601 +0x5608 +0x5609 +0x560c +0x560e +0x560f +0x5618 +0x561b +0x561e +0x561f +0x5623 +0x5624 +0x5627 +0x562c +0x562d +0x5631 +0x5632 +0x5634 +0x5636 +0x5639 +0x563b +0x563f +0x564c +0x564d +0x564e +0x5654 +0x5657 +0x5658 +0x5659 +0x565c +0x5662 +0x5664 +0x5668 +0x5669 +0x566a +0x566b +0x566c +0x5671 +0x5676 +0x567b +0x567c +0x5685 +0x5686 +0x568e +0x568f +0x5693 +0x56a3 +0x56af +0x56b7 +0x56bc +0x56ca +0x56d4 +0x56d7 +0x56da +0x56db +0x56dd +0x56de +0x56df +0x56e0 +0x56e1 +0x56e2 +0x56e4 +0x56eb +0x56ed +0x56f0 +0x56f1 +0x56f4 +0x56f5 +0x56f9 +0x56fa +0x56fd +0x56fe +0x56ff +0x5703 +0x5704 +0x5706 +0x5708 +0x5709 +0x570a +0x571c +0x571f +0x5723 +0x5728 +0x5729 +0x572a +0x572c +0x572d +0x572e +0x572f +0x5730 +0x5733 +0x5739 +0x573a +0x573b +0x573e +0x5740 +0x5742 +0x5747 +0x574a +0x574c +0x574d +0x574e +0x574f +0x5750 +0x5751 +0x5757 +0x575a +0x575b +0x575c +0x575d +0x575e +0x575f +0x5760 +0x5761 +0x5764 +0x5766 +0x5768 +0x5769 +0x576a +0x576b +0x576d +0x576f +0x5773 +0x5776 +0x5777 +0x577b +0x577c +0x5782 +0x5783 +0x5784 +0x5785 +0x5786 +0x578b +0x578c +0x5792 +0x5793 +0x579b +0x57a0 +0x57a1 +0x57a2 +0x57a3 +0x57a4 +0x57a6 +0x57a7 +0x57a9 +0x57ab +0x57ad +0x57ae +0x57b2 +0x57b4 +0x57b8 +0x57c2 +0x57c3 +0x57cb +0x57ce +0x57cf +0x57d2 +0x57d4 +0x57d5 +0x57d8 +0x57d9 +0x57da +0x57dd +0x57df +0x57e0 +0x57e4 +0x57ed +0x57ef +0x57f4 +0x57f8 +0x57f9 +0x57fa +0x57fd +0x5800 +0x5802 +0x5806 +0x5807 +0x580b +0x580d +0x5811 +0x5815 +0x5819 +0x581e +0x5820 +0x5821 +0x5824 +0x582a +0x5830 +0x5835 +0x5844 +0x584c +0x584d +0x5851 +0x5854 +0x5858 +0x585e +0x5865 +0x586b +0x586c +0x587e +0x5880 +0x5881 +0x5883 +0x5885 +0x5889 +0x5892 +0x5893 +0x5899 +0x589a +0x589e +0x589f +0x58a8 +0x58a9 +0x58bc +0x58c1 +0x58c5 +0x58d1 +0x58d5 +0x58e4 +0x58eb +0x58ec +0x58ee +0x58f0 +0x58f3 +0x58f6 +0x58f9 +0x5902 +0x5904 +0x5907 +0x590d +0x590f +0x5914 +0x5915 +0x5916 +0x5919 +0x591a +0x591c +0x591f +0x5924 +0x5925 +0x5927 +0x5929 +0x592a +0x592b +0x592d +0x592e +0x592f +0x5931 +0x5934 +0x5937 +0x5938 +0x5939 +0x593a +0x593c +0x5941 +0x5942 +0x5944 +0x5947 +0x5948 +0x5949 +0x594b +0x594e +0x594f +0x5951 +0x5954 +0x5955 +0x5956 +0x5957 +0x5958 +0x595a +0x5960 +0x5962 +0x5965 +0x5973 +0x5974 +0x5976 +0x5978 +0x5979 +0x597d +0x5981 +0x5982 +0x5983 +0x5984 +0x5986 +0x5987 +0x5988 +0x598a +0x598d +0x5992 +0x5993 +0x5996 +0x5997 +0x5999 +0x599e +0x59a3 +0x59a4 +0x59a5 +0x59a8 +0x59a9 +0x59aa +0x59ab +0x59ae +0x59af +0x59b2 +0x59b9 +0x59bb +0x59be +0x59c6 +0x59ca +0x59cb +0x59d0 +0x59d1 +0x59d2 +0x59d3 +0x59d4 +0x59d7 +0x59d8 +0x59da +0x59dc +0x59dd +0x59e3 +0x59e5 +0x59e8 +0x59ec +0x59f9 +0x59fb +0x59ff +0x5a01 +0x5a03 +0x5a04 +0x5a05 +0x5a06 +0x5a07 +0x5a08 +0x5a09 +0x5a0c +0x5a11 +0x5a13 +0x5a18 +0x5a1c +0x5a1f +0x5a20 +0x5a23 +0x5a25 +0x5a29 +0x5a31 +0x5a32 +0x5a34 +0x5a36 +0x5a3c +0x5a40 +0x5a46 +0x5a49 +0x5a4a +0x5a55 +0x5a5a +0x5a62 +0x5a67 +0x5a6a +0x5a74 +0x5a75 +0x5a76 +0x5a77 +0x5a7a +0x5a7f +0x5a92 +0x5a9a +0x5a9b +0x5aaa +0x5ab2 +0x5ab3 +0x5ab5 +0x5ab8 +0x5abe +0x5ac1 +0x5ac2 +0x5ac9 +0x5acc +0x5ad2 +0x5ad4 +0x5ad6 +0x5ad8 +0x5adc +0x5ae0 +0x5ae1 +0x5ae3 +0x5ae6 +0x5ae9 +0x5aeb +0x5af1 +0x5b09 +0x5b16 +0x5b17 +0x5b32 +0x5b34 +0x5b37 +0x5b40 +0x5b50 +0x5b51 +0x5b53 +0x5b54 +0x5b55 +0x5b57 +0x5b58 +0x5b59 +0x5b5a +0x5b5b +0x5b5c +0x5b5d +0x5b5f +0x5b62 +0x5b63 +0x5b64 +0x5b65 +0x5b66 +0x5b69 +0x5b6a +0x5b6c +0x5b70 +0x5b71 +0x5b73 +0x5b75 +0x5b7a +0x5b7d +0x5b80 +0x5b81 +0x5b83 +0x5b84 +0x5b85 +0x5b87 +0x5b88 +0x5b89 +0x5b8b +0x5b8c +0x5b8f +0x5b93 +0x5b95 +0x5b97 +0x5b98 +0x5b99 +0x5b9a +0x5b9b +0x5b9c +0x5b9d +0x5b9e +0x5ba0 +0x5ba1 +0x5ba2 +0x5ba3 +0x5ba4 +0x5ba5 +0x5ba6 +0x5baa +0x5bab +0x5bb0 +0x5bb3 +0x5bb4 +0x5bb5 +0x5bb6 +0x5bb8 +0x5bb9 +0x5bbd +0x5bbe +0x5bbf +0x5bc2 +0x5bc4 +0x5bc5 +0x5bc6 +0x5bc7 +0x5bcc +0x5bd0 +0x5bd2 +0x5bd3 +0x5bdd +0x5bde +0x5bdf +0x5be1 +0x5be4 +0x5be5 +0x5be8 +0x5bee +0x5bf0 +0x5bf8 +0x5bf9 +0x5bfa +0x5bfb +0x5bfc +0x5bff +0x5c01 +0x5c04 +0x5c06 +0x5c09 +0x5c0a +0x5c0f +0x5c11 +0x5c14 +0x5c15 +0x5c16 +0x5c18 +0x5c1a +0x5c1c +0x5c1d +0x5c22 +0x5c24 +0x5c25 +0x5c27 +0x5c2c +0x5c31 +0x5c34 +0x5c38 +0x5c39 +0x5c3a +0x5c3b +0x5c3c +0x5c3d +0x5c3e +0x5c3f +0x5c40 +0x5c41 +0x5c42 +0x5c45 +0x5c48 +0x5c49 +0x5c4a +0x5c4b +0x5c4e +0x5c4f +0x5c50 +0x5c51 +0x5c55 +0x5c59 +0x5c5e +0x5c60 +0x5c61 +0x5c63 +0x5c65 +0x5c66 +0x5c6e +0x5c6f +0x5c71 +0x5c79 +0x5c7a +0x5c7f +0x5c81 +0x5c82 +0x5c88 +0x5c8c +0x5c8d +0x5c90 +0x5c91 +0x5c94 +0x5c96 +0x5c97 +0x5c98 +0x5c99 +0x5c9a +0x5c9b +0x5c9c +0x5ca2 +0x5ca3 +0x5ca9 +0x5cab +0x5cac +0x5cad +0x5cb1 +0x5cb3 +0x5cb5 +0x5cb7 +0x5cb8 +0x5cbd +0x5cbf +0x5cc1 +0x5cc4 +0x5ccb +0x5cd2 +0x5cd9 +0x5ce1 +0x5ce4 +0x5ce5 +0x5ce6 +0x5ce8 +0x5cea +0x5ced +0x5cf0 +0x5cfb +0x5d02 +0x5d03 +0x5d06 +0x5d07 +0x5d0e +0x5d14 +0x5d16 +0x5d1b +0x5d1e +0x5d24 +0x5d26 +0x5d27 +0x5d29 +0x5d2d +0x5d2e +0x5d34 +0x5d3d +0x5d3e +0x5d47 +0x5d4a +0x5d4b +0x5d4c +0x5d58 +0x5d5b +0x5d5d +0x5d69 +0x5d6b +0x5d6c +0x5d6f +0x5d74 +0x5d82 +0x5d99 +0x5d9d +0x5db7 +0x5dc5 +0x5dcd +0x5ddb +0x5ddd +0x5dde +0x5de1 +0x5de2 +0x5de5 +0x5de6 +0x5de7 +0x5de8 +0x5de9 +0x5deb +0x5dee +0x5def +0x5df1 +0x5df2 +0x5df3 +0x5df4 +0x5df7 +0x5dfd +0x5dfe +0x5e01 +0x5e02 +0x5e03 +0x5e05 +0x5e06 +0x5e08 +0x5e0c +0x5e0f +0x5e10 +0x5e11 +0x5e14 +0x5e15 +0x5e16 +0x5e18 +0x5e19 +0x5e1a +0x5e1b +0x5e1c +0x5e1d +0x5e26 +0x5e27 +0x5e2d +0x5e2e +0x5e31 +0x5e37 +0x5e38 +0x5e3b +0x5e3c +0x5e3d +0x5e42 +0x5e44 +0x5e45 +0x5e4c +0x5e54 +0x5e55 +0x5e5b +0x5e5e +0x5e61 +0x5e62 +0x5e72 +0x5e73 +0x5e74 +0x5e76 +0x5e78 +0x5e7a +0x5e7b +0x5e7c +0x5e7d +0x5e7f +0x5e80 +0x5e84 +0x5e86 +0x5e87 +0x5e8a +0x5e8b +0x5e8f +0x5e90 +0x5e91 +0x5e93 +0x5e94 +0x5e95 +0x5e96 +0x5e97 +0x5e99 +0x5e9a +0x5e9c +0x5e9e +0x5e9f +0x5ea0 +0x5ea5 +0x5ea6 +0x5ea7 +0x5ead +0x5eb3 +0x5eb5 +0x5eb6 +0x5eb7 +0x5eb8 +0x5eb9 +0x5ebe +0x5ec9 +0x5eca +0x5ed1 +0x5ed2 +0x5ed3 +0x5ed6 +0x5edb +0x5ee8 +0x5eea +0x5ef4 +0x5ef6 +0x5ef7 +0x5efa +0x5efe +0x5eff +0x5f00 +0x5f01 +0x5f02 +0x5f03 +0x5f04 +0x5f08 +0x5f0a +0x5f0b +0x5f0f +0x5f11 +0x5f13 +0x5f15 +0x5f17 +0x5f18 +0x5f1b +0x5f1f +0x5f20 +0x5f25 +0x5f26 +0x5f27 +0x5f29 +0x5f2a +0x5f2d +0x5f2f +0x5f31 +0x5f39 +0x5f3a +0x5f3c +0x5f40 +0x5f50 +0x5f52 +0x5f53 +0x5f55 +0x5f56 +0x5f57 +0x5f58 +0x5f5d +0x5f61 +0x5f62 +0x5f64 +0x5f66 +0x5f69 +0x5f6a +0x5f6c +0x5f6d +0x5f70 +0x5f71 +0x5f73 +0x5f77 +0x5f79 +0x5f7b +0x5f7c +0x5f80 +0x5f81 +0x5f82 +0x5f84 +0x5f85 +0x5f87 +0x5f88 +0x5f89 +0x5f8a +0x5f8b +0x5f8c +0x5f90 +0x5f92 +0x5f95 +0x5f97 +0x5f98 +0x5f99 +0x5f9c +0x5fa1 +0x5fa8 +0x5faa +0x5fad +0x5fae +0x5fb5 +0x5fb7 +0x5fbc +0x5fbd +0x5fc3 +0x5fc4 +0x5fc5 +0x5fc6 +0x5fc9 +0x5fcc +0x5fcd +0x5fcf +0x5fd0 +0x5fd1 +0x5fd2 +0x5fd6 +0x5fd7 +0x5fd8 +0x5fd9 +0x5fdd +0x5fe0 +0x5fe1 +0x5fe4 +0x5fe7 +0x5fea +0x5feb +0x5fed +0x5fee +0x5ff1 +0x5ff5 +0x5ff8 +0x5ffb +0x5ffd +0x5ffe +0x5fff +0x6000 +0x6001 +0x6002 +0x6003 +0x6004 +0x6005 +0x6006 +0x600a +0x600d +0x600e +0x600f +0x6012 +0x6014 +0x6015 +0x6016 +0x6019 +0x601b +0x601c +0x601d +0x6020 +0x6021 +0x6025 +0x6026 +0x6027 +0x6028 +0x6029 +0x602a +0x602b +0x602f +0x6035 +0x603b +0x603c +0x603f +0x6041 +0x6042 +0x6043 +0x604b +0x604d +0x6050 +0x6052 +0x6055 +0x6059 +0x605a +0x605d +0x6062 +0x6063 +0x6064 +0x6067 +0x6068 +0x6069 +0x606a +0x606b +0x606c +0x606d +0x606f +0x6070 +0x6073 +0x6076 +0x6078 +0x6079 +0x607a +0x607b +0x607c +0x607d +0x607f +0x6083 +0x6084 +0x6089 +0x608c +0x608d +0x6092 +0x6094 +0x6096 +0x609a +0x609b +0x609d +0x609f +0x60a0 +0x60a3 +0x60a6 +0x60a8 +0x60ab +0x60ac +0x60ad +0x60af +0x60b1 +0x60b2 +0x60b4 +0x60b8 +0x60bb +0x60bc +0x60c5 +0x60c6 +0x60ca +0x60cb +0x60d1 +0x60d5 +0x60d8 +0x60da +0x60dc +0x60dd +0x60df +0x60e0 +0x60e6 +0x60e7 +0x60e8 +0x60e9 +0x60eb +0x60ec +0x60ed +0x60ee +0x60ef +0x60f0 +0x60f3 +0x60f4 +0x60f6 +0x60f9 +0x60fa +0x6100 +0x6101 +0x6106 +0x6108 +0x6109 +0x610d +0x610e +0x610f +0x6115 +0x611a +0x611f +0x6120 +0x6123 +0x6124 +0x6126 +0x6127 +0x612b +0x613f +0x6148 +0x614a +0x614c +0x614e +0x6151 +0x6155 +0x615d +0x6162 +0x6167 +0x6168 +0x6170 +0x6175 +0x6177 +0x618b +0x618e +0x6194 +0x619d +0x61a7 +0x61a8 +0x61a9 +0x61ac +0x61b7 +0x61be +0x61c2 +0x61c8 +0x61ca +0x61cb +0x61d1 +0x61d2 +0x61d4 +0x61e6 +0x61f5 +0x61ff +0x6206 +0x6208 +0x620a +0x620b +0x620c +0x620d +0x620e +0x620f +0x6210 +0x6211 +0x6212 +0x6215 +0x6216 +0x6217 +0x6218 +0x621a +0x621b +0x621f +0x6221 +0x6222 +0x6224 +0x6225 +0x622a +0x622c +0x622e +0x6233 +0x6234 +0x6237 +0x623d +0x623e +0x623f +0x6240 +0x6241 +0x6243 +0x6247 +0x6248 +0x6249 +0x624b +0x624c +0x624d +0x624e +0x6251 +0x6252 +0x6253 +0x6254 +0x6258 +0x625b +0x6263 +0x6266 +0x6267 +0x6269 +0x626a +0x626b +0x626c +0x626d +0x626e +0x626f +0x6270 +0x6273 +0x6276 +0x6279 +0x627c +0x627e +0x627f +0x6280 +0x6284 +0x6289 +0x628a +0x6291 +0x6292 +0x6293 +0x6295 +0x6296 +0x6297 +0x6298 +0x629a +0x629b +0x629f +0x62a0 +0x62a1 +0x62a2 +0x62a4 +0x62a5 +0x62a8 +0x62ab +0x62ac +0x62b1 +0x62b5 +0x62b9 +0x62bb +0x62bc +0x62bd +0x62bf +0x62c2 +0x62c4 +0x62c5 +0x62c6 +0x62c7 +0x62c8 +0x62c9 +0x62ca +0x62cc +0x62cd +0x62ce +0x62d0 +0x62d2 +0x62d3 +0x62d4 +0x62d6 +0x62d7 +0x62d8 +0x62d9 +0x62da +0x62db +0x62dc +0x62df +0x62e2 +0x62e3 +0x62e5 +0x62e6 +0x62e7 +0x62e8 +0x62e9 +0x62ec +0x62ed +0x62ee +0x62ef +0x62f1 +0x62f3 +0x62f4 +0x62f6 +0x62f7 +0x62fc +0x62fd +0x62fe +0x62ff +0x6301 +0x6302 +0x6307 +0x6308 +0x6309 +0x630e +0x6311 +0x6316 +0x631a +0x631b +0x631d +0x631e +0x631f +0x6320 +0x6321 +0x6322 +0x6323 +0x6324 +0x6325 +0x6328 +0x632a +0x632b +0x632f +0x6332 +0x6339 +0x633a +0x633d +0x6342 +0x6343 +0x6345 +0x6346 +0x6349 +0x634b +0x634c +0x634d +0x634e +0x634f +0x6350 +0x6355 +0x635e +0x635f +0x6361 +0x6362 +0x6363 +0x6367 +0x6369 +0x636d +0x636e +0x6371 +0x6376 +0x6377 +0x637a +0x637b +0x6380 +0x6382 +0x6387 +0x6388 +0x6389 +0x638a +0x638c +0x638e +0x638f +0x6390 +0x6392 +0x6396 +0x6398 +0x63a0 +0x63a2 +0x63a3 +0x63a5 +0x63a7 +0x63a8 +0x63a9 +0x63aa +0x63ac +0x63ad +0x63ae +0x63b0 +0x63b3 +0x63b4 +0x63b7 +0x63b8 +0x63ba +0x63bc +0x63be +0x63c4 +0x63c6 +0x63c9 +0x63cd +0x63ce +0x63cf +0x63d0 +0x63d2 +0x63d6 +0x63de +0x63e0 +0x63e1 +0x63e3 +0x63e9 +0x63ea +0x63ed +0x63f2 +0x63f4 +0x63f6 +0x63f8 +0x63fd +0x63ff +0x6400 +0x6401 +0x6402 +0x6405 +0x640b +0x640c +0x640f +0x6410 +0x6413 +0x6414 +0x641b +0x641c +0x641e +0x6420 +0x6421 +0x6426 +0x642a +0x642c +0x642d +0x6434 +0x643a +0x643d +0x643f +0x6441 +0x6444 +0x6445 +0x6446 +0x6447 +0x6448 +0x644a +0x6452 +0x6454 +0x6458 +0x645e +0x6467 +0x6469 +0x646d +0x6478 +0x6479 +0x647a +0x6482 +0x6484 +0x6485 +0x6487 +0x6491 +0x6492 +0x6495 +0x6496 +0x6499 +0x649e +0x64a4 +0x64a9 +0x64ac +0x64ad +0x64ae +0x64b0 +0x64b5 +0x64b7 +0x64b8 +0x64ba +0x64bc +0x64c0 +0x64c2 +0x64c5 +0x64cd +0x64ce +0x64d0 +0x64d2 +0x64d7 +0x64d8 +0x64de +0x64e2 +0x64e4 +0x64e6 +0x6500 +0x6509 +0x6512 +0x6518 +0x6525 +0x652b +0x652e +0x652f +0x6534 +0x6535 +0x6536 +0x6538 +0x6539 +0x653b +0x653e +0x653f +0x6545 +0x6548 +0x6549 +0x654c +0x654f +0x6551 +0x6555 +0x6556 +0x6559 +0x655b +0x655d +0x655e +0x6562 +0x6563 +0x6566 +0x656b +0x656c +0x6570 +0x6572 +0x6574 +0x6577 +0x6587 +0x658b +0x658c +0x6590 +0x6591 +0x6593 +0x6597 +0x6599 +0x659b +0x659c +0x659f +0x65a1 +0x65a4 +0x65a5 +0x65a7 +0x65a9 +0x65ab +0x65ad +0x65af +0x65b0 +0x65b9 +0x65bc +0x65bd +0x65c1 +0x65c3 +0x65c4 +0x65c5 +0x65c6 +0x65cb +0x65cc +0x65ce +0x65cf +0x65d2 +0x65d6 +0x65d7 +0x65e0 +0x65e2 +0x65e5 +0x65e6 +0x65e7 +0x65e8 +0x65e9 +0x65ec +0x65ed +0x65ee +0x65ef +0x65f0 +0x65f1 +0x65f6 +0x65f7 +0x65fa +0x6600 +0x6602 +0x6603 +0x6606 +0x660a +0x660c +0x660e +0x660f +0x6613 +0x6614 +0x6615 +0x6619 +0x661d +0x661f +0x6620 +0x6625 +0x6627 +0x6628 +0x662d +0x662f +0x6631 +0x6634 +0x6635 +0x6636 +0x663c +0x663e +0x6641 +0x6643 +0x664b +0x664c +0x664f +0x6652 +0x6653 +0x6654 +0x6655 +0x6656 +0x6657 +0x665a +0x665f +0x6661 +0x6664 +0x6666 +0x6668 +0x666e +0x666f +0x6670 +0x6674 +0x6676 +0x6677 +0x667a +0x667e +0x6682 +0x6684 +0x6687 +0x668c +0x6691 +0x6696 +0x6697 +0x669d +0x66a7 +0x66a8 +0x66ae +0x66b4 +0x66b9 +0x66be +0x66d9 +0x66db +0x66dc +0x66dd +0x66e6 +0x66e9 +0x66f0 +0x66f2 +0x66f3 +0x66f4 +0x66f7 +0x66f9 +0x66fc +0x66fe +0x66ff +0x6700 +0x6708 +0x6709 +0x670a +0x670b +0x670d +0x6710 +0x6714 +0x6715 +0x6717 +0x671b +0x671d +0x671f +0x6726 +0x6728 +0x672a +0x672b +0x672c +0x672d +0x672f +0x6731 +0x6734 +0x6735 +0x673a +0x673d +0x6740 +0x6742 +0x6743 +0x6746 +0x6748 +0x6749 +0x674c +0x674e +0x674f +0x6750 +0x6751 +0x6753 +0x6756 +0x675c +0x675e +0x675f +0x6760 +0x6761 +0x6765 +0x6768 +0x6769 +0x676a +0x676d +0x676f +0x6770 +0x6772 +0x6773 +0x6775 +0x6777 +0x677c +0x677e +0x677f +0x6781 +0x6784 +0x6787 +0x6789 +0x678b +0x6790 +0x6795 +0x6797 +0x6798 +0x679a +0x679c +0x679d +0x679e +0x67a2 +0x67a3 +0x67a5 +0x67a7 +0x67a8 +0x67aa +0x67ab +0x67ad +0x67af +0x67b0 +0x67b3 +0x67b5 +0x67b6 +0x67b7 +0x67b8 +0x67c1 +0x67c3 +0x67c4 +0x67cf +0x67d0 +0x67d1 +0x67d2 +0x67d3 +0x67d4 +0x67d8 +0x67d9 +0x67da +0x67dc +0x67dd +0x67de +0x67e0 +0x67e2 +0x67e5 +0x67e9 +0x67ec +0x67ef +0x67f0 +0x67f1 +0x67f3 +0x67f4 +0x67fd +0x67ff +0x6800 +0x6805 +0x6807 +0x6808 +0x6809 +0x680a +0x680b +0x680c +0x680e +0x680f +0x6811 +0x6813 +0x6816 +0x6817 +0x681d +0x6821 +0x6829 +0x682a +0x6832 +0x6833 +0x6837 +0x6838 +0x6839 +0x683c +0x683d +0x683e +0x6840 +0x6841 +0x6842 +0x6843 +0x6844 +0x6845 +0x6846 +0x6848 +0x6849 +0x684a +0x684c +0x684e +0x6850 +0x6851 +0x6853 +0x6854 +0x6855 +0x6860 +0x6861 +0x6862 +0x6863 +0x6864 +0x6865 +0x6866 +0x6867 +0x6868 +0x6869 +0x686b +0x6874 +0x6876 +0x6877 +0x6881 +0x6883 +0x6885 +0x6886 +0x688f +0x6893 +0x6897 +0x68a2 +0x68a6 +0x68a7 +0x68a8 +0x68ad +0x68af +0x68b0 +0x68b3 +0x68b5 +0x68c0 +0x68c2 +0x68c9 +0x68cb +0x68cd +0x68d2 +0x68d5 +0x68d8 +0x68da +0x68e0 +0x68e3 +0x68ee +0x68f0 +0x68f1 +0x68f5 +0x68f9 +0x68fa +0x68fc +0x6901 +0x6905 +0x690b +0x690d +0x690e +0x6910 +0x6912 +0x691f +0x6920 +0x6924 +0x692d +0x6930 +0x6934 +0x6939 +0x693d +0x693f +0x6942 +0x6954 +0x6957 +0x695a +0x695d +0x695e +0x6960 +0x6963 +0x6966 +0x696b +0x696e +0x6971 +0x6977 +0x6978 +0x6979 +0x697c +0x6980 +0x6982 +0x6984 +0x6986 +0x6987 +0x6988 +0x6989 +0x698d +0x6994 +0x6995 +0x6998 +0x699b +0x699c +0x69a7 +0x69a8 +0x69ab +0x69ad +0x69b1 +0x69b4 +0x69b7 +0x69bb +0x69c1 +0x69ca +0x69cc +0x69ce +0x69d0 +0x69d4 +0x69db +0x69df +0x69e0 +0x69ed +0x69f2 +0x69fd +0x69ff +0x6a0a +0x6a17 +0x6a18 +0x6a1f +0x6a21 +0x6a28 +0x6a2a +0x6a2f +0x6a31 +0x6a35 +0x6a3d +0x6a3e +0x6a44 +0x6a47 +0x6a50 +0x6a58 +0x6a59 +0x6a5b +0x6a61 +0x6a65 +0x6a71 +0x6a79 +0x6a7c +0x6a80 +0x6a84 +0x6a8e +0x6a90 +0x6a91 +0x6a97 +0x6aa0 +0x6aa9 +0x6aab +0x6aac +0x6b20 +0x6b21 +0x6b22 +0x6b23 +0x6b24 +0x6b27 +0x6b32 +0x6b37 +0x6b39 +0x6b3a +0x6b3e +0x6b43 +0x6b46 +0x6b47 +0x6b49 +0x6b4c +0x6b59 +0x6b62 +0x6b63 +0x6b64 +0x6b65 +0x6b66 +0x6b67 +0x6b6a +0x6b79 +0x6b7b +0x6b7c +0x6b81 +0x6b82 +0x6b83 +0x6b84 +0x6b86 +0x6b87 +0x6b89 +0x6b8a +0x6b8b +0x6b8d +0x6b92 +0x6b93 +0x6b96 +0x6b9a +0x6b9b +0x6ba1 +0x6baa +0x6bb3 +0x6bb4 +0x6bb5 +0x6bb7 +0x6bbf +0x6bc1 +0x6bc2 +0x6bc5 +0x6bcb +0x6bcd +0x6bcf +0x6bd2 +0x6bd3 +0x6bd4 +0x6bd5 +0x6bd6 +0x6bd7 +0x6bd9 +0x6bdb +0x6be1 +0x6bea +0x6beb +0x6bef +0x6bf3 +0x6bf5 +0x6bf9 +0x6bfd +0x6c05 +0x6c06 +0x6c07 +0x6c0d +0x6c0f +0x6c10 +0x6c11 +0x6c13 +0x6c14 +0x6c15 +0x6c16 +0x6c18 +0x6c19 +0x6c1a +0x6c1b +0x6c1f +0x6c21 +0x6c22 +0x6c24 +0x6c26 +0x6c27 +0x6c28 +0x6c29 +0x6c2a +0x6c2e +0x6c2f +0x6c30 +0x6c32 +0x6c34 +0x6c35 +0x6c38 +0x6c3d +0x6c40 +0x6c41 +0x6c42 +0x6c46 +0x6c47 +0x6c49 +0x6c4a +0x6c50 +0x6c54 +0x6c55 +0x6c57 +0x6c5b +0x6c5c +0x6c5d +0x6c5e +0x6c5f +0x6c60 +0x6c61 +0x6c64 +0x6c68 +0x6c69 +0x6c6a +0x6c70 +0x6c72 +0x6c74 +0x6c76 +0x6c79 +0x6c7d +0x6c7e +0x6c81 +0x6c82 +0x6c83 +0x6c85 +0x6c86 +0x6c88 +0x6c89 +0x6c8c +0x6c8f +0x6c90 +0x6c93 +0x6c94 +0x6c99 +0x6c9b +0x6c9f +0x6ca1 +0x6ca3 +0x6ca4 +0x6ca5 +0x6ca6 +0x6ca7 +0x6ca9 +0x6caa +0x6cab +0x6cad +0x6cae +0x6cb1 +0x6cb2 +0x6cb3 +0x6cb8 +0x6cb9 +0x6cbb +0x6cbc +0x6cbd +0x6cbe +0x6cbf +0x6cc4 +0x6cc5 +0x6cc9 +0x6cca +0x6ccc +0x6cd0 +0x6cd3 +0x6cd4 +0x6cd5 +0x6cd6 +0x6cd7 +0x6cdb +0x6cde +0x6ce0 +0x6ce1 +0x6ce2 +0x6ce3 +0x6ce5 +0x6ce8 +0x6cea +0x6ceb +0x6cee +0x6cef +0x6cf0 +0x6cf1 +0x6cf3 +0x6cf5 +0x6cf6 +0x6cf7 +0x6cf8 +0x6cfa +0x6cfb +0x6cfc +0x6cfd +0x6cfe +0x6d01 +0x6d04 +0x6d07 +0x6d0b +0x6d0c +0x6d0e +0x6d12 +0x6d17 +0x6d19 +0x6d1a +0x6d1b +0x6d1e +0x6d25 +0x6d27 +0x6d2a +0x6d2b +0x6d2e +0x6d31 +0x6d32 +0x6d33 +0x6d35 +0x6d39 +0x6d3b +0x6d3c +0x6d3d +0x6d3e +0x6d41 +0x6d43 +0x6d45 +0x6d46 +0x6d47 +0x6d48 +0x6d4a +0x6d4b +0x6d4d +0x6d4e +0x6d4f +0x6d51 +0x6d52 +0x6d53 +0x6d54 +0x6d59 +0x6d5a +0x6d5c +0x6d5e +0x6d60 +0x6d63 +0x6d66 +0x6d69 +0x6d6a +0x6d6e +0x6d6f +0x6d74 +0x6d77 +0x6d78 +0x6d7c +0x6d82 +0x6d85 +0x6d88 +0x6d89 +0x6d8c +0x6d8e +0x6d91 +0x6d93 +0x6d94 +0x6d95 +0x6d9b +0x6d9d +0x6d9e +0x6d9f +0x6da0 +0x6da1 +0x6da3 +0x6da4 +0x6da6 +0x6da7 +0x6da8 +0x6da9 +0x6daa +0x6dab +0x6dae +0x6daf +0x6db2 +0x6db5 +0x6db8 +0x6dbf +0x6dc0 +0x6dc4 +0x6dc5 +0x6dc6 +0x6dc7 +0x6dcb +0x6dcc +0x6dd1 +0x6dd6 +0x6dd8 +0x6dd9 +0x6ddd +0x6dde +0x6de0 +0x6de1 +0x6de4 +0x6de6 +0x6deb +0x6dec +0x6dee +0x6df1 +0x6df3 +0x6df7 +0x6df9 +0x6dfb +0x6dfc +0x6e05 +0x6e0a +0x6e0c +0x6e0d +0x6e0e +0x6e10 +0x6e11 +0x6e14 +0x6e16 +0x6e17 +0x6e1a +0x6e1d +0x6e20 +0x6e21 +0x6e23 +0x6e24 +0x6e25 +0x6e29 +0x6e2b +0x6e2d +0x6e2f +0x6e32 +0x6e34 +0x6e38 +0x6e3a +0x6e43 +0x6e44 +0x6e4d +0x6e4e +0x6e53 +0x6e54 +0x6e56 +0x6e58 +0x6e5b +0x6e5f +0x6e6b +0x6e6e +0x6e7e +0x6e7f +0x6e83 +0x6e85 +0x6e86 +0x6e89 +0x6e8f +0x6e90 +0x6e98 +0x6e9c +0x6e9f +0x6ea2 +0x6ea5 +0x6ea7 +0x6eaa +0x6eaf +0x6eb1 +0x6eb2 +0x6eb4 +0x6eb6 +0x6eb7 +0x6eba +0x6ebb +0x6ebd +0x6ec1 +0x6ec2 +0x6ec7 +0x6ecb +0x6ecf +0x6ed1 +0x6ed3 +0x6ed4 +0x6ed5 +0x6ed7 +0x6eda +0x6ede +0x6edf +0x6ee0 +0x6ee1 +0x6ee2 +0x6ee4 +0x6ee5 +0x6ee6 +0x6ee8 +0x6ee9 +0x6ef4 +0x6ef9 +0x6f02 +0x6f06 +0x6f09 +0x6f0f +0x6f13 +0x6f14 +0x6f15 +0x6f20 +0x6f24 +0x6f29 +0x6f2a +0x6f2b +0x6f2d +0x6f2f +0x6f31 +0x6f33 +0x6f36 +0x6f3e +0x6f46 +0x6f47 +0x6f4b +0x6f4d +0x6f58 +0x6f5c +0x6f5e +0x6f62 +0x6f66 +0x6f6d +0x6f6e +0x6f72 +0x6f74 +0x6f78 +0x6f7a +0x6f7c +0x6f84 +0x6f88 +0x6f89 +0x6f8c +0x6f8d +0x6f8e +0x6f9c +0x6fa1 +0x6fa7 +0x6fb3 +0x6fb6 +0x6fb9 +0x6fc0 +0x6fc2 +0x6fc9 +0x6fd1 +0x6fd2 +0x6fde +0x6fe0 +0x6fe1 +0x6fee +0x6fef +0x7011 +0x701a +0x701b +0x7023 +0x7035 +0x7039 +0x704c +0x704f +0x705e +0x706b +0x706c +0x706d +0x706f +0x7070 +0x7075 +0x7076 +0x7078 +0x707c +0x707e +0x707f +0x7080 +0x7085 +0x7089 +0x708a +0x708e +0x7092 +0x7094 +0x7095 +0x7096 +0x7099 +0x709c +0x709d +0x70ab +0x70ac +0x70ad +0x70ae +0x70af +0x70b1 +0x70b3 +0x70b7 +0x70b8 +0x70b9 +0x70bb +0x70bc +0x70bd +0x70c0 +0x70c1 +0x70c2 +0x70c3 +0x70c8 +0x70ca +0x70d8 +0x70d9 +0x70db +0x70df +0x70e4 +0x70e6 +0x70e7 +0x70e8 +0x70e9 +0x70eb +0x70ec +0x70ed +0x70ef +0x70f7 +0x70f9 +0x70fd +0x7109 +0x710a +0x7110 +0x7113 +0x7115 +0x7116 +0x7118 +0x7119 +0x711a +0x7126 +0x712f +0x7130 +0x7131 +0x7136 +0x7145 +0x714a +0x714c +0x714e +0x715c +0x715e +0x7164 +0x7166 +0x7167 +0x7168 +0x716e +0x7172 +0x7173 +0x7178 +0x717a +0x717d +0x7184 +0x718a +0x718f +0x7194 +0x7198 +0x7199 +0x719f +0x71a0 +0x71a8 +0x71ac +0x71b3 +0x71b5 +0x71b9 +0x71c3 +0x71ce +0x71d4 +0x71d5 +0x71e0 +0x71e5 +0x71e7 +0x71ee +0x71f9 +0x7206 +0x721d +0x7228 +0x722a +0x722c +0x7230 +0x7231 +0x7235 +0x7236 +0x7237 +0x7238 +0x7239 +0x723b +0x723d +0x723f +0x7247 +0x7248 +0x724c +0x724d +0x7252 +0x7256 +0x7259 +0x725b +0x725d +0x725f +0x7261 +0x7262 +0x7266 +0x7267 +0x7269 +0x726e +0x726f +0x7272 +0x7275 +0x7279 +0x727a +0x727e +0x727f +0x7280 +0x7281 +0x7284 +0x728a +0x728b +0x728d +0x728f +0x7292 +0x729f +0x72ac +0x72ad +0x72af +0x72b0 +0x72b4 +0x72b6 +0x72b7 +0x72b8 +0x72b9 +0x72c1 +0x72c2 +0x72c3 +0x72c4 +0x72c8 +0x72cd +0x72ce +0x72d0 +0x72d2 +0x72d7 +0x72d9 +0x72de +0x72e0 +0x72e1 +0x72e8 +0x72e9 +0x72ec +0x72ed +0x72ee +0x72ef +0x72f0 +0x72f1 +0x72f2 +0x72f3 +0x72f4 +0x72f7 +0x72f8 +0x72fa +0x72fb +0x72fc +0x7301 +0x7303 +0x730a +0x730e +0x7313 +0x7315 +0x7316 +0x7317 +0x731b +0x731c +0x731d +0x731e +0x7321 +0x7322 +0x7325 +0x7329 +0x732a +0x732b +0x732c +0x732e +0x7331 +0x7334 +0x7337 +0x7338 +0x7339 +0x733e +0x733f +0x734d +0x7350 +0x7352 +0x7357 +0x7360 +0x736c +0x736d +0x736f +0x737e +0x7384 +0x7387 +0x7389 +0x738b +0x738e +0x7391 +0x7396 +0x739b +0x739f +0x73a2 +0x73a9 +0x73ab +0x73ae +0x73af +0x73b0 +0x73b2 +0x73b3 +0x73b7 +0x73ba +0x73bb +0x73c0 +0x73c2 +0x73c8 +0x73c9 +0x73ca +0x73cd +0x73cf +0x73d0 +0x73d1 +0x73d9 +0x73de +0x73e0 +0x73e5 +0x73e7 +0x73e9 +0x73ed +0x73f2 +0x7403 +0x7405 +0x7406 +0x7409 +0x740a +0x740f +0x7410 +0x741a +0x741b +0x7422 +0x7425 +0x7426 +0x7428 +0x742a +0x742c +0x742e +0x7430 +0x7433 +0x7434 +0x7435 +0x7436 +0x743c +0x7441 +0x7455 +0x7457 +0x7459 +0x745a +0x745b +0x745c +0x745e +0x745f +0x746d +0x7470 +0x7476 +0x7477 +0x747e +0x7480 +0x7481 +0x7483 +0x7487 +0x748b +0x748e +0x7490 +0x749c +0x749e +0x74a7 +0x74a8 +0x74a9 +0x74ba +0x74d2 +0x74dc +0x74de +0x74e0 +0x74e2 +0x74e3 +0x74e4 +0x74e6 +0x74ee +0x74ef +0x74f4 +0x74f6 +0x74f7 +0x74ff +0x7504 +0x750d +0x750f +0x7511 +0x7513 +0x7518 +0x7519 +0x751a +0x751c +0x751f +0x7525 +0x7528 +0x7529 +0x752b +0x752c +0x752d +0x752f +0x7530 +0x7531 +0x7532 +0x7533 +0x7535 +0x7537 +0x7538 +0x753a +0x753b +0x753e +0x7540 +0x7545 +0x7548 +0x754b +0x754c +0x754e +0x754f +0x7554 +0x7559 +0x755a +0x755b +0x755c +0x7565 +0x7566 +0x756a +0x7572 +0x7574 +0x7578 +0x7579 +0x757f +0x7583 +0x7586 +0x758b +0x758f +0x7591 +0x7592 +0x7594 +0x7596 +0x7597 +0x7599 +0x759a +0x759d +0x759f +0x75a0 +0x75a1 +0x75a3 +0x75a4 +0x75a5 +0x75ab +0x75ac +0x75ae +0x75af +0x75b0 +0x75b1 +0x75b2 +0x75b3 +0x75b4 +0x75b5 +0x75b8 +0x75b9 +0x75bc +0x75bd +0x75be +0x75c2 +0x75c3 +0x75c4 +0x75c5 +0x75c7 +0x75c8 +0x75c9 +0x75ca +0x75cd +0x75d2 +0x75d4 +0x75d5 +0x75d6 +0x75d8 +0x75db +0x75de +0x75e2 +0x75e3 +0x75e4 +0x75e6 +0x75e7 +0x75e8 +0x75ea +0x75eb +0x75f0 +0x75f1 +0x75f4 +0x75f9 +0x75fc +0x75ff +0x7600 +0x7601 +0x7603 +0x7605 +0x760a +0x760c +0x7610 +0x7615 +0x7617 +0x7618 +0x7619 +0x761b +0x761f +0x7620 +0x7622 +0x7624 +0x7625 +0x7626 +0x7629 +0x762a +0x762b +0x762d +0x7630 +0x7633 +0x7634 +0x7635 +0x7638 +0x763c +0x763e +0x763f +0x7640 +0x7643 +0x764c +0x764d +0x7654 +0x7656 +0x765c +0x765e +0x7663 +0x766b +0x766f +0x7678 +0x767b +0x767d +0x767e +0x7682 +0x7684 +0x7686 +0x7687 +0x7688 +0x768b +0x768e +0x7691 +0x7693 +0x7696 +0x7699 +0x76a4 +0x76ae +0x76b1 +0x76b2 +0x76b4 +0x76bf +0x76c2 +0x76c5 +0x76c6 +0x76c8 +0x76ca +0x76cd +0x76ce +0x76cf +0x76d0 +0x76d1 +0x76d2 +0x76d4 +0x76d6 +0x76d7 +0x76d8 +0x76db +0x76df +0x76e5 +0x76ee +0x76ef +0x76f1 +0x76f2 +0x76f4 +0x76f8 +0x76f9 +0x76fc +0x76fe +0x7701 +0x7704 +0x7707 +0x7708 +0x7709 +0x770b +0x770d +0x7719 +0x771a +0x771f +0x7720 +0x7722 +0x7726 +0x7728 +0x7729 +0x772d +0x772f +0x7735 +0x7736 +0x7737 +0x7738 +0x773a +0x773c +0x7740 +0x7741 +0x7743 +0x7747 +0x7750 +0x7751 +0x775a +0x775b +0x7761 +0x7762 +0x7763 +0x7765 +0x7766 +0x7768 +0x776b +0x776c +0x7779 +0x777d +0x777e +0x777f +0x7780 +0x7784 +0x7785 +0x778c +0x778d +0x778e +0x7791 +0x7792 +0x779f +0x77a0 +0x77a2 +0x77a5 +0x77a7 +0x77a9 +0x77aa +0x77ac +0x77b0 +0x77b3 +0x77b5 +0x77bb +0x77bd +0x77bf +0x77cd +0x77d7 +0x77db +0x77dc +0x77e2 +0x77e3 +0x77e5 +0x77e7 +0x77e9 +0x77eb +0x77ec +0x77ed +0x77ee +0x77f3 +0x77f6 +0x77f8 +0x77fd +0x77fe +0x77ff +0x7800 +0x7801 +0x7802 +0x7809 +0x780c +0x780d +0x7811 +0x7812 +0x7814 +0x7816 +0x7817 +0x7818 +0x781a +0x781c +0x781d +0x781f +0x7823 +0x7825 +0x7826 +0x7827 +0x7829 +0x782c +0x782d +0x7830 +0x7834 +0x7837 +0x7838 +0x7839 +0x783a +0x783b +0x783c +0x783e +0x7840 +0x7845 +0x7847 +0x784c +0x784e +0x7850 +0x7852 +0x7855 +0x7856 +0x7857 +0x785d +0x786a +0x786b +0x786c +0x786d +0x786e +0x7877 +0x787c +0x7887 +0x7889 +0x788c +0x788d +0x788e +0x7891 +0x7893 +0x7897 +0x7898 +0x789a +0x789b +0x789c +0x789f +0x78a1 +0x78a3 +0x78a5 +0x78a7 +0x78b0 +0x78b1 +0x78b2 +0x78b3 +0x78b4 +0x78b9 +0x78be +0x78c1 +0x78c5 +0x78c9 +0x78ca +0x78cb +0x78d0 +0x78d4 +0x78d5 +0x78d9 +0x78e8 +0x78ec +0x78f2 +0x78f4 +0x78f7 +0x78fa +0x7901 +0x7905 +0x7913 +0x791e +0x7924 +0x7934 +0x793a +0x793b +0x793c +0x793e +0x7940 +0x7941 +0x7946 +0x7948 +0x7949 +0x7953 +0x7956 +0x7957 +0x795a +0x795b +0x795c +0x795d +0x795e +0x795f +0x7960 +0x7962 +0x7965 +0x7967 +0x7968 +0x796d +0x796f +0x7977 +0x7978 +0x797a +0x7980 +0x7981 +0x7984 +0x7985 +0x798a +0x798f +0x799a +0x79a7 +0x79b3 +0x79b9 +0x79ba +0x79bb +0x79bd +0x79be +0x79c0 +0x79c1 +0x79c3 +0x79c6 +0x79c9 +0x79cb +0x79cd +0x79d1 +0x79d2 +0x79d5 +0x79d8 +0x79df +0x79e3 +0x79e4 +0x79e6 +0x79e7 +0x79e9 +0x79eb +0x79ed +0x79ef +0x79f0 +0x79f8 +0x79fb +0x79fd +0x7a00 +0x7a02 +0x7a03 +0x7a06 +0x7a0b +0x7a0d +0x7a0e +0x7a14 +0x7a17 +0x7a1a +0x7a1e +0x7a20 +0x7a23 +0x7a33 +0x7a37 +0x7a39 +0x7a3b +0x7a3c +0x7a3d +0x7a3f +0x7a46 +0x7a51 +0x7a57 +0x7a70 +0x7a74 +0x7a76 +0x7a77 +0x7a78 +0x7a79 +0x7a7a +0x7a7f +0x7a80 +0x7a81 +0x7a83 +0x7a84 +0x7a86 +0x7a88 +0x7a8d +0x7a91 +0x7a92 +0x7a95 +0x7a96 +0x7a97 +0x7a98 +0x7a9c +0x7a9d +0x7a9f +0x7aa0 +0x7aa5 +0x7aa6 +0x7aa8 +0x7aac +0x7aad +0x7ab3 +0x7abf +0x7acb +0x7ad6 +0x7ad9 +0x7ade +0x7adf +0x7ae0 +0x7ae3 +0x7ae5 +0x7ae6 +0x7aed +0x7aef +0x7af9 +0x7afa +0x7afd +0x7aff +0x7b03 +0x7b04 +0x7b06 +0x7b08 +0x7b0a +0x7b0b +0x7b0f +0x7b11 +0x7b14 +0x7b15 +0x7b19 +0x7b1b +0x7b1e +0x7b20 +0x7b24 +0x7b25 +0x7b26 +0x7b28 +0x7b2a +0x7b2b +0x7b2c +0x7b2e +0x7b31 +0x7b33 +0x7b38 +0x7b3a +0x7b3c +0x7b3e +0x7b45 +0x7b47 +0x7b49 +0x7b4b +0x7b4c +0x7b4f +0x7b50 +0x7b51 +0x7b52 +0x7b54 +0x7b56 +0x7b58 +0x7b5a +0x7b5b +0x7b5d +0x7b60 +0x7b62 +0x7b6e +0x7b71 +0x7b72 +0x7b75 +0x7b77 +0x7b79 +0x7b7b +0x7b7e +0x7b80 +0x7b85 +0x7b8d +0x7b90 +0x7b94 +0x7b95 +0x7b97 +0x7b9c +0x7b9d +0x7ba1 +0x7ba2 +0x7ba6 +0x7ba7 +0x7ba8 +0x7ba9 +0x7baa +0x7bab +0x7bac +0x7bad +0x7bb1 +0x7bb4 +0x7bb8 +0x7bc1 +0x7bc6 +0x7bc7 +0x7bcc +0x7bd1 +0x7bd3 +0x7bd9 +0x7bda +0x7bdd +0x7be1 +0x7be5 +0x7be6 +0x7bea +0x7bee +0x7bf1 +0x7bf7 +0x7bfc +0x7bfe +0x7c07 +0x7c0b +0x7c0c +0x7c0f +0x7c16 +0x7c1f +0x7c26 +0x7c27 +0x7c2a +0x7c38 +0x7c3f +0x7c40 +0x7c41 +0x7c4d +0x7c73 +0x7c74 +0x7c7b +0x7c7c +0x7c7d +0x7c89 +0x7c91 +0x7c92 +0x7c95 +0x7c97 +0x7c98 +0x7c9c +0x7c9d +0x7c9e +0x7c9f +0x7ca2 +0x7ca4 +0x7ca5 +0x7caa +0x7cae +0x7cb1 +0x7cb2 +0x7cb3 +0x7cb9 +0x7cbc +0x7cbd +0x7cbe +0x7cc1 +0x7cc5 +0x7cc7 +0x7cc8 +0x7cca +0x7ccc +0x7ccd +0x7cd5 +0x7cd6 +0x7cd7 +0x7cd9 +0x7cdc +0x7cdf +0x7ce0 +0x7ce8 +0x7cef +0x7cf8 +0x7cfb +0x7d0a +0x7d20 +0x7d22 +0x7d27 +0x7d2b +0x7d2f +0x7d6e +0x7d77 +0x7da6 +0x7dae +0x7e3b +0x7e41 +0x7e47 +0x7e82 +0x7e9b +0x7e9f +0x7ea0 +0x7ea1 +0x7ea2 +0x7ea3 +0x7ea4 +0x7ea5 +0x7ea6 +0x7ea7 +0x7ea8 +0x7ea9 +0x7eaa +0x7eab +0x7eac +0x7ead +0x7eaf +0x7eb0 +0x7eb1 +0x7eb2 +0x7eb3 +0x7eb5 +0x7eb6 +0x7eb7 +0x7eb8 +0x7eb9 +0x7eba +0x7ebd +0x7ebe +0x7ebf +0x7ec0 +0x7ec1 +0x7ec2 +0x7ec3 +0x7ec4 +0x7ec5 +0x7ec6 +0x7ec7 +0x7ec8 +0x7ec9 +0x7eca +0x7ecb +0x7ecc +0x7ecd +0x7ece +0x7ecf +0x7ed0 +0x7ed1 +0x7ed2 +0x7ed3 +0x7ed4 +0x7ed5 +0x7ed7 +0x7ed8 +0x7ed9 +0x7eda +0x7edb +0x7edc +0x7edd +0x7ede +0x7edf +0x7ee0 +0x7ee1 +0x7ee2 +0x7ee3 +0x7ee5 +0x7ee6 +0x7ee7 +0x7ee8 +0x7ee9 +0x7eea +0x7eeb +0x7eed +0x7eee +0x7eef +0x7ef0 +0x7ef1 +0x7ef2 +0x7ef3 +0x7ef4 +0x7ef5 +0x7ef6 +0x7ef7 +0x7ef8 +0x7efa +0x7efb +0x7efc +0x7efd +0x7efe +0x7eff +0x7f00 +0x7f01 +0x7f02 +0x7f03 +0x7f04 +0x7f05 +0x7f06 +0x7f07 +0x7f08 +0x7f09 +0x7f0b +0x7f0c +0x7f0d +0x7f0e +0x7f0f +0x7f11 +0x7f12 +0x7f13 +0x7f14 +0x7f15 +0x7f16 +0x7f17 +0x7f18 +0x7f19 +0x7f1a +0x7f1b +0x7f1c +0x7f1d +0x7f1f +0x7f20 +0x7f21 +0x7f22 +0x7f23 +0x7f24 +0x7f25 +0x7f26 +0x7f27 +0x7f28 +0x7f29 +0x7f2a +0x7f2b +0x7f2c +0x7f2d +0x7f2e +0x7f2f +0x7f30 +0x7f31 +0x7f32 +0x7f33 +0x7f34 +0x7f35 +0x7f36 +0x7f38 +0x7f3a +0x7f42 +0x7f44 +0x7f45 +0x7f50 +0x7f51 +0x7f54 +0x7f55 +0x7f57 +0x7f58 +0x7f5a +0x7f5f +0x7f61 +0x7f62 +0x7f68 +0x7f69 +0x7f6a +0x7f6e +0x7f71 +0x7f72 +0x7f74 +0x7f79 +0x7f7e +0x7f81 +0x7f8a +0x7f8c +0x7f8e +0x7f94 +0x7f9a +0x7f9d +0x7f9e +0x7f9f +0x7fa1 +0x7fa4 +0x7fa7 +0x7faf +0x7fb0 +0x7fb2 +0x7fb8 +0x7fb9 +0x7fbc +0x7fbd +0x7fbf +0x7fc1 +0x7fc5 +0x7fca +0x7fcc +0x7fce +0x7fd4 +0x7fd5 +0x7fd8 +0x7fdf +0x7fe0 +0x7fe1 +0x7fe5 +0x7fe6 +0x7fe9 +0x7fee +0x7ff0 +0x7ff1 +0x7ff3 +0x7ffb +0x7ffc +0x8000 +0x8001 +0x8003 +0x8004 +0x8005 +0x8006 +0x800b +0x800c +0x800d +0x8010 +0x8012 +0x8014 +0x8015 +0x8016 +0x8017 +0x8018 +0x8019 +0x801c +0x8020 +0x8022 +0x8025 +0x8026 +0x8027 +0x8028 +0x8029 +0x802a +0x8031 +0x8033 +0x8035 +0x8036 +0x8037 +0x8038 +0x803b +0x803d +0x803f +0x8042 +0x8043 +0x8046 +0x804a +0x804b +0x804c +0x804d +0x8052 +0x8054 +0x8058 +0x805a +0x8069 +0x806a +0x8071 +0x807f +0x8080 +0x8083 +0x8084 +0x8086 +0x8087 +0x8089 +0x808b +0x808c +0x8093 +0x8096 +0x8098 +0x809a +0x809b +0x809c +0x809d +0x809f +0x80a0 +0x80a1 +0x80a2 +0x80a4 +0x80a5 +0x80a9 +0x80aa +0x80ab +0x80ad +0x80ae +0x80af +0x80b1 +0x80b2 +0x80b4 +0x80b7 +0x80ba +0x80bc +0x80bd +0x80be +0x80bf +0x80c0 +0x80c1 +0x80c2 +0x80c3 +0x80c4 +0x80c6 +0x80cc +0x80cd +0x80ce +0x80d6 +0x80d7 +0x80d9 +0x80da +0x80db +0x80dc +0x80dd +0x80de +0x80e1 +0x80e4 +0x80e5 +0x80e7 +0x80e8 +0x80e9 +0x80ea +0x80eb +0x80ec +0x80ed +0x80ef +0x80f0 +0x80f1 +0x80f2 +0x80f3 +0x80f4 +0x80f6 +0x80f8 +0x80fa +0x80fc +0x80fd +0x8102 +0x8106 +0x8109 +0x810a +0x810d +0x810e +0x810f +0x8110 +0x8111 +0x8112 +0x8113 +0x8114 +0x8116 +0x8118 +0x811a +0x811e +0x812c +0x812f +0x8131 +0x8132 +0x8136 +0x8138 +0x813e +0x8146 +0x8148 +0x814a +0x814b +0x814c +0x8150 +0x8151 +0x8153 +0x8154 +0x8155 +0x8159 +0x815a +0x8160 +0x8165 +0x8167 +0x8169 +0x816d +0x816e +0x8170 +0x8171 +0x8174 +0x8179 +0x817a +0x817b +0x817c +0x817d +0x817e +0x817f +0x8180 +0x8182 +0x8188 +0x818a +0x818f +0x8191 +0x8198 +0x819b +0x819c +0x819d +0x81a3 +0x81a6 +0x81a8 +0x81aa +0x81b3 +0x81ba +0x81bb +0x81c0 +0x81c1 +0x81c2 +0x81c3 +0x81c6 +0x81ca +0x81cc +0x81e3 +0x81e7 +0x81ea +0x81ec +0x81ed +0x81f3 +0x81f4 +0x81fb +0x81fc +0x81fe +0x8200 +0x8201 +0x8202 +0x8204 +0x8205 +0x8206 +0x820c +0x820d +0x8210 +0x8212 +0x8214 +0x821b +0x821c +0x821e +0x821f +0x8221 +0x8222 +0x8223 +0x8228 +0x822a +0x822b +0x822c +0x822d +0x822f +0x8230 +0x8231 +0x8233 +0x8234 +0x8235 +0x8236 +0x8237 +0x8238 +0x8239 +0x823b +0x823e +0x8244 +0x8247 +0x8249 +0x824b +0x824f +0x8258 +0x825a +0x825f +0x8268 +0x826e +0x826f +0x8270 +0x8272 +0x8273 +0x8274 +0x8279 +0x827a +0x827d +0x827e +0x827f +0x8282 +0x8284 +0x8288 +0x828a +0x828b +0x828d +0x828e +0x828f +0x8291 +0x8292 +0x8297 +0x8298 +0x8299 +0x829c +0x829d +0x829f +0x82a1 +0x82a4 +0x82a5 +0x82a6 +0x82a8 +0x82a9 +0x82aa +0x82ab +0x82ac +0x82ad +0x82ae +0x82af +0x82b0 +0x82b1 +0x82b3 +0x82b4 +0x82b7 +0x82b8 +0x82b9 +0x82bd +0x82be +0x82c1 +0x82c4 +0x82c7 +0x82c8 +0x82ca +0x82cb +0x82cc +0x82cd +0x82ce +0x82cf +0x82d1 +0x82d2 +0x82d3 +0x82d4 +0x82d5 +0x82d7 +0x82d8 +0x82db +0x82dc +0x82de +0x82df +0x82e0 +0x82e1 +0x82e3 +0x82e4 +0x82e5 +0x82e6 +0x82eb +0x82ef +0x82f1 +0x82f4 +0x82f7 +0x82f9 +0x82fb +0x8301 +0x8302 +0x8303 +0x8304 +0x8305 +0x8306 +0x8307 +0x8308 +0x8309 +0x830c +0x830e +0x830f +0x8311 +0x8314 +0x8315 +0x8317 +0x831a +0x831b +0x831c +0x8327 +0x8328 +0x832b +0x832c +0x832d +0x832f +0x8331 +0x8333 +0x8334 +0x8335 +0x8336 +0x8338 +0x8339 +0x833a +0x833c +0x8340 +0x8343 +0x8346 +0x8347 +0x8349 +0x834f +0x8350 +0x8351 +0x8352 +0x8354 +0x835a +0x835b +0x835c +0x835e +0x835f +0x8360 +0x8361 +0x8363 +0x8364 +0x8365 +0x8366 +0x8367 +0x8368 +0x8369 +0x836a +0x836b +0x836c +0x836d +0x836e +0x836f +0x8377 +0x8378 +0x837b +0x837c +0x837d +0x8385 +0x8386 +0x8389 +0x838e +0x8392 +0x8393 +0x8398 +0x839b +0x839c +0x839e +0x83a0 +0x83a8 +0x83a9 +0x83aa +0x83ab +0x83b0 +0x83b1 +0x83b2 +0x83b3 +0x83b4 +0x83b6 +0x83b7 +0x83b8 +0x83b9 +0x83ba +0x83bc +0x83bd +0x83c0 +0x83c1 +0x83c5 +0x83c7 +0x83ca +0x83cc +0x83cf +0x83d4 +0x83d6 +0x83d8 +0x83dc +0x83dd +0x83df +0x83e0 +0x83e1 +0x83e5 +0x83e9 +0x83ea +0x83f0 +0x83f1 +0x83f2 +0x83f8 +0x83f9 +0x83fd +0x8401 +0x8403 +0x8404 +0x8406 +0x840b +0x840c +0x840d +0x840e +0x840f +0x8411 +0x8418 +0x841c +0x841d +0x8424 +0x8425 +0x8426 +0x8427 +0x8428 +0x8431 +0x8438 +0x843c +0x843d +0x8446 +0x8451 +0x8457 +0x8459 +0x845a +0x845b +0x845c +0x8461 +0x8463 +0x8469 +0x846b +0x846c +0x846d +0x8471 +0x8473 +0x8475 +0x8476 +0x8478 +0x847a +0x8482 +0x8487 +0x8488 +0x8489 +0x848b +0x848c +0x848e +0x8497 +0x8499 +0x849c +0x84a1 +0x84af +0x84b2 +0x84b4 +0x84b8 +0x84b9 +0x84ba +0x84bd +0x84bf +0x84c1 +0x84c4 +0x84c9 +0x84ca +0x84cd +0x84d0 +0x84d1 +0x84d3 +0x84d6 +0x84dd +0x84df +0x84e0 +0x84e3 +0x84e5 +0x84e6 +0x84ec +0x84f0 +0x84fc +0x84ff +0x850c +0x8511 +0x8513 +0x8517 +0x851a +0x851f +0x8521 +0x852b +0x852c +0x8537 +0x8538 +0x8539 +0x853a +0x853b +0x853c +0x853d +0x8543 +0x8548 +0x8549 +0x854a +0x8556 +0x8559 +0x855e +0x8564 +0x8568 +0x8572 +0x8574 +0x8579 +0x857a +0x857b +0x857e +0x8584 +0x8585 +0x8587 +0x858f +0x859b +0x859c +0x85a4 +0x85a8 +0x85aa +0x85ae +0x85af +0x85b0 +0x85b7 +0x85b9 +0x85c1 +0x85c9 +0x85cf +0x85d0 +0x85d3 +0x85d5 +0x85dc +0x85e4 +0x85e9 +0x85fb +0x85ff +0x8605 +0x8611 +0x8616 +0x8627 +0x8629 +0x8638 +0x863c +0x864d +0x864e +0x864f +0x8650 +0x8651 +0x8654 +0x865a +0x865e +0x8662 +0x866b +0x866c +0x866e +0x8671 +0x8679 +0x867a +0x867b +0x867c +0x867d +0x867e +0x867f +0x8680 +0x8681 +0x8682 +0x868a +0x868b +0x868c +0x868d +0x8693 +0x8695 +0x869c +0x869d +0x86a3 +0x86a4 +0x86a7 +0x86a8 +0x86a9 +0x86aa +0x86ac +0x86af +0x86b0 +0x86b1 +0x86b4 +0x86b5 +0x86b6 +0x86ba +0x86c0 +0x86c4 +0x86c6 +0x86c7 +0x86c9 +0x86ca +0x86cb +0x86ce +0x86cf +0x86d0 +0x86d1 +0x86d4 +0x86d8 +0x86d9 +0x86db +0x86de +0x86df +0x86e4 +0x86e9 +0x86ed +0x86ee +0x86f0 +0x86f1 +0x86f2 +0x86f3 +0x86f4 +0x86f8 +0x86f9 +0x86fe +0x8700 +0x8702 +0x8703 +0x8707 +0x8708 +0x8709 +0x870a +0x870d +0x8712 +0x8713 +0x8715 +0x8717 +0x8718 +0x871a +0x871c +0x871e +0x8721 +0x8722 +0x8723 +0x8725 +0x8729 +0x872e +0x8731 +0x8734 +0x8737 +0x873b +0x873e +0x873f +0x8747 +0x8748 +0x8749 +0x874c +0x874e +0x8753 +0x8757 +0x8759 +0x8760 +0x8763 +0x8764 +0x8765 +0x876e +0x8770 +0x8774 +0x8776 +0x877b +0x877c +0x877d +0x877e +0x8782 +0x8783 +0x8785 +0x8788 +0x878b +0x878d +0x8793 +0x8797 +0x879f +0x87a8 +0x87ab +0x87ac +0x87ad +0x87af +0x87b3 +0x87b5 +0x87ba +0x87bd +0x87c0 +0x87c6 +0x87ca +0x87cb +0x87d1 +0x87d2 +0x87d3 +0x87db +0x87e0 +0x87e5 +0x87ea +0x87ee +0x87f9 +0x87fe +0x8803 +0x880a +0x8813 +0x8815 +0x8816 +0x881b +0x8821 +0x8822 +0x8832 +0x8839 +0x883c +0x8840 +0x8844 +0x8845 +0x884c +0x884d +0x8854 +0x8857 +0x8859 +0x8861 +0x8862 +0x8863 +0x8864 +0x8865 +0x8868 +0x8869 +0x886b +0x886c +0x886e +0x8870 +0x8872 +0x8877 +0x887d +0x887e +0x887f +0x8881 +0x8882 +0x8884 +0x8885 +0x8888 +0x888b +0x888d +0x8892 +0x8896 +0x889c +0x88a2 +0x88a4 +0x88ab +0x88ad +0x88b1 +0x88b7 +0x88bc +0x88c1 +0x88c2 +0x88c5 +0x88c6 +0x88c9 +0x88ce +0x88d2 +0x88d4 +0x88d5 +0x88d8 +0x88d9 +0x88df +0x88e2 +0x88e3 +0x88e4 +0x88e5 +0x88e8 +0x88f0 +0x88f1 +0x88f3 +0x88f4 +0x88f8 +0x88f9 +0x88fc +0x88fe +0x8902 +0x890a +0x8910 +0x8912 +0x8913 +0x8919 +0x891a +0x891b +0x8921 +0x8925 +0x892a +0x892b +0x8930 +0x8934 +0x8936 +0x8941 +0x8944 +0x895e +0x895f +0x8966 +0x897b +0x897f +0x8981 +0x8983 +0x8986 +0x89c1 +0x89c2 +0x89c4 +0x89c5 +0x89c6 +0x89c7 +0x89c8 +0x89c9 +0x89ca +0x89cb +0x89cc +0x89ce +0x89cf +0x89d0 +0x89d1 +0x89d2 +0x89d6 +0x89da +0x89dc +0x89de +0x89e3 +0x89e5 +0x89e6 +0x89eb +0x89ef +0x89f3 +0x8a00 +0x8a07 +0x8a3e +0x8a48 +0x8a79 +0x8a89 +0x8a8a +0x8a93 +0x8b07 +0x8b26 +0x8b66 +0x8b6c +0x8ba0 +0x8ba1 +0x8ba2 +0x8ba3 +0x8ba4 +0x8ba5 +0x8ba6 +0x8ba7 +0x8ba8 +0x8ba9 +0x8baa +0x8bab +0x8bad +0x8bae +0x8baf +0x8bb0 +0x8bb2 +0x8bb3 +0x8bb4 +0x8bb5 +0x8bb6 +0x8bb7 +0x8bb8 +0x8bb9 +0x8bba +0x8bbc +0x8bbd +0x8bbe +0x8bbf +0x8bc0 +0x8bc1 +0x8bc2 +0x8bc3 +0x8bc4 +0x8bc5 +0x8bc6 +0x8bc8 +0x8bc9 +0x8bca +0x8bcb +0x8bcc +0x8bcd +0x8bce +0x8bcf +0x8bd1 +0x8bd2 +0x8bd3 +0x8bd4 +0x8bd5 +0x8bd6 +0x8bd7 +0x8bd8 +0x8bd9 +0x8bda +0x8bdb +0x8bdc +0x8bdd +0x8bde +0x8bdf +0x8be0 +0x8be1 +0x8be2 +0x8be3 +0x8be4 +0x8be5 +0x8be6 +0x8be7 +0x8be8 +0x8be9 +0x8beb +0x8bec +0x8bed +0x8bee +0x8bef +0x8bf0 +0x8bf1 +0x8bf2 +0x8bf3 +0x8bf4 +0x8bf5 +0x8bf6 +0x8bf7 +0x8bf8 +0x8bf9 +0x8bfa +0x8bfb +0x8bfc +0x8bfd +0x8bfe +0x8bff +0x8c00 +0x8c01 +0x8c02 +0x8c03 +0x8c04 +0x8c05 +0x8c06 +0x8c07 +0x8c08 +0x8c0a +0x8c0b +0x8c0c +0x8c0d +0x8c0e +0x8c0f +0x8c10 +0x8c11 +0x8c12 +0x8c13 +0x8c14 +0x8c15 +0x8c16 +0x8c17 +0x8c18 +0x8c19 +0x8c1a +0x8c1b +0x8c1c +0x8c1d +0x8c1f +0x8c20 +0x8c21 +0x8c22 +0x8c23 +0x8c24 +0x8c25 +0x8c26 +0x8c27 +0x8c28 +0x8c29 +0x8c2a +0x8c2b +0x8c2c +0x8c2d +0x8c2e +0x8c2f +0x8c30 +0x8c31 +0x8c32 +0x8c33 +0x8c34 +0x8c35 +0x8c36 +0x8c37 +0x8c41 +0x8c46 +0x8c47 +0x8c49 +0x8c4c +0x8c55 +0x8c5a +0x8c61 +0x8c62 +0x8c6a +0x8c6b +0x8c73 +0x8c78 +0x8c79 +0x8c7a +0x8c82 +0x8c85 +0x8c89 +0x8c8a +0x8c8c +0x8c94 +0x8c98 +0x8d1d +0x8d1e +0x8d1f +0x8d21 +0x8d22 +0x8d23 +0x8d24 +0x8d25 +0x8d26 +0x8d27 +0x8d28 +0x8d29 +0x8d2a +0x8d2b +0x8d2c +0x8d2d +0x8d2e +0x8d2f +0x8d30 +0x8d31 +0x8d32 +0x8d33 +0x8d34 +0x8d35 +0x8d36 +0x8d37 +0x8d38 +0x8d39 +0x8d3a +0x8d3b +0x8d3c +0x8d3d +0x8d3e +0x8d3f +0x8d40 +0x8d41 +0x8d42 +0x8d43 +0x8d44 +0x8d45 +0x8d46 +0x8d47 +0x8d48 +0x8d49 +0x8d4a +0x8d4b +0x8d4c +0x8d4d +0x8d4e +0x8d4f +0x8d50 +0x8d53 +0x8d54 +0x8d55 +0x8d56 +0x8d58 +0x8d59 +0x8d5a +0x8d5b +0x8d5c +0x8d5d +0x8d5e +0x8d60 +0x8d61 +0x8d62 +0x8d63 +0x8d64 +0x8d66 +0x8d67 +0x8d6b +0x8d6d +0x8d70 +0x8d73 +0x8d74 +0x8d75 +0x8d76 +0x8d77 +0x8d81 +0x8d84 +0x8d85 +0x8d8a +0x8d8b +0x8d91 +0x8d94 +0x8d9f +0x8da3 +0x8db1 +0x8db3 +0x8db4 +0x8db5 +0x8db8 +0x8dba +0x8dbc +0x8dbe +0x8dbf +0x8dc3 +0x8dc4 +0x8dc6 +0x8dcb +0x8dcc +0x8dce +0x8dcf +0x8dd1 +0x8dd6 +0x8dd7 +0x8dda +0x8ddb +0x8ddd +0x8dde +0x8ddf +0x8de3 +0x8de4 +0x8de8 +0x8dea +0x8deb +0x8dec +0x8def +0x8df3 +0x8df5 +0x8df7 +0x8df8 +0x8df9 +0x8dfa +0x8dfb +0x8dfd +0x8e05 +0x8e09 +0x8e0a +0x8e0c +0x8e0f +0x8e14 +0x8e1d +0x8e1e +0x8e1f +0x8e22 +0x8e23 +0x8e29 +0x8e2a +0x8e2c +0x8e2e +0x8e2f +0x8e31 +0x8e35 +0x8e39 +0x8e3a +0x8e3d +0x8e40 +0x8e41 +0x8e42 +0x8e44 +0x8e47 +0x8e48 +0x8e49 +0x8e4a +0x8e4b +0x8e51 +0x8e52 +0x8e59 +0x8e66 +0x8e69 +0x8e6c +0x8e6d +0x8e6f +0x8e70 +0x8e72 +0x8e74 +0x8e76 +0x8e7c +0x8e7f +0x8e81 +0x8e85 +0x8e87 +0x8e8f +0x8e90 +0x8e94 +0x8e9c +0x8e9e +0x8eab +0x8eac +0x8eaf +0x8eb2 +0x8eba +0x8ece +0x8f66 +0x8f67 +0x8f68 +0x8f69 +0x8f6b +0x8f6c +0x8f6d +0x8f6e +0x8f6f +0x8f70 +0x8f71 +0x8f72 +0x8f73 +0x8f74 +0x8f75 +0x8f76 +0x8f77 +0x8f78 +0x8f79 +0x8f7a +0x8f7b +0x8f7c +0x8f7d +0x8f7e +0x8f7f +0x8f81 +0x8f82 +0x8f83 +0x8f84 +0x8f85 +0x8f86 +0x8f87 +0x8f88 +0x8f89 +0x8f8a +0x8f8b +0x8f8d +0x8f8e +0x8f8f +0x8f90 +0x8f91 +0x8f93 +0x8f94 +0x8f95 +0x8f96 +0x8f97 +0x8f98 +0x8f99 +0x8f9a +0x8f9b +0x8f9c +0x8f9e +0x8f9f +0x8fa3 +0x8fa8 +0x8fa9 +0x8fab +0x8fb0 +0x8fb1 +0x8fb6 +0x8fb9 +0x8fbd +0x8fbe +0x8fc1 +0x8fc2 +0x8fc4 +0x8fc5 +0x8fc7 +0x8fc8 +0x8fce +0x8fd0 +0x8fd1 +0x8fd3 +0x8fd4 +0x8fd5 +0x8fd8 +0x8fd9 +0x8fdb +0x8fdc +0x8fdd +0x8fde +0x8fdf +0x8fe2 +0x8fe4 +0x8fe5 +0x8fe6 +0x8fe8 +0x8fe9 +0x8fea +0x8feb +0x8fed +0x8fee +0x8ff0 +0x8ff3 +0x8ff7 +0x8ff8 +0x8ff9 +0x8ffd +0x9000 +0x9001 +0x9002 +0x9003 +0x9004 +0x9005 +0x9006 +0x9009 +0x900a +0x900b +0x900d +0x900f +0x9010 +0x9011 +0x9012 +0x9014 +0x9016 +0x9017 +0x901a +0x901b +0x901d +0x901e +0x901f +0x9020 +0x9021 +0x9022 +0x9026 +0x902d +0x902e +0x902f +0x9035 +0x9036 +0x9038 +0x903b +0x903c +0x903e +0x9041 +0x9042 +0x9044 +0x9047 +0x904d +0x904f +0x9050 +0x9051 +0x9052 +0x9053 +0x9057 +0x9058 +0x905b +0x9062 +0x9063 +0x9065 +0x9068 +0x906d +0x906e +0x9074 +0x9075 +0x907d +0x907f +0x9080 +0x9082 +0x9083 +0x9088 +0x908b +0x9091 +0x9093 +0x9095 +0x9097 +0x9099 +0x909b +0x909d +0x90a1 +0x90a2 +0x90a3 +0x90a6 +0x90aa +0x90ac +0x90ae +0x90af +0x90b0 +0x90b1 +0x90b3 +0x90b4 +0x90b5 +0x90b6 +0x90b8 +0x90b9 +0x90ba +0x90bb +0x90be +0x90c1 +0x90c4 +0x90c5 +0x90c7 +0x90ca +0x90ce +0x90cf +0x90d0 +0x90d1 +0x90d3 +0x90d7 +0x90db +0x90dc +0x90dd +0x90e1 +0x90e2 +0x90e6 +0x90e7 +0x90e8 +0x90eb +0x90ed +0x90ef +0x90f4 +0x90f8 +0x90fd +0x90fe +0x9102 +0x9104 +0x9119 +0x911e +0x9122 +0x9123 +0x912f +0x9131 +0x9139 +0x9143 +0x9146 +0x9149 +0x914a +0x914b +0x914c +0x914d +0x914e +0x914f +0x9150 +0x9152 +0x9157 +0x915a +0x915d +0x915e +0x9161 +0x9162 +0x9163 +0x9164 +0x9165 +0x9169 +0x916a +0x916c +0x916e +0x916f +0x9170 +0x9171 +0x9172 +0x9174 +0x9175 +0x9176 +0x9177 +0x9178 +0x9179 +0x917d +0x917e +0x917f +0x9185 +0x9187 +0x9189 +0x918b +0x918c +0x918d +0x9190 +0x9191 +0x9192 +0x919a +0x919b +0x91a2 +0x91a3 +0x91aa +0x91ad +0x91ae +0x91af +0x91b4 +0x91b5 +0x91ba +0x91c7 +0x91c9 +0x91ca +0x91cc +0x91cd +0x91ce +0x91cf +0x91d1 +0x91dc +0x9274 +0x928e +0x92ae +0x92c8 +0x933e +0x936a +0x938f +0x93ca +0x93d6 +0x943e +0x946b +0x9485 +0x9486 +0x9487 +0x9488 +0x9489 +0x948a +0x948b +0x948c +0x948d +0x948e +0x948f +0x9490 +0x9492 +0x9493 +0x9494 +0x9495 +0x9497 +0x9499 +0x949a +0x949b +0x949c +0x949d +0x949e +0x949f +0x94a0 +0x94a1 +0x94a2 +0x94a3 +0x94a4 +0x94a5 +0x94a6 +0x94a7 +0x94a8 +0x94a9 +0x94aa +0x94ab +0x94ac +0x94ad +0x94ae +0x94af +0x94b0 +0x94b1 +0x94b2 +0x94b3 +0x94b4 +0x94b5 +0x94b6 +0x94b7 +0x94b8 +0x94b9 +0x94ba +0x94bb +0x94bc +0x94bd +0x94be +0x94bf +0x94c0 +0x94c1 +0x94c2 +0x94c3 +0x94c4 +0x94c5 +0x94c6 +0x94c8 +0x94c9 +0x94ca +0x94cb +0x94cc +0x94cd +0x94ce +0x94d0 +0x94d1 +0x94d2 +0x94d5 +0x94d6 +0x94d7 +0x94d8 +0x94d9 +0x94db +0x94dc +0x94dd +0x94de +0x94df +0x94e0 +0x94e1 +0x94e2 +0x94e3 +0x94e4 +0x94e5 +0x94e7 +0x94e8 +0x94e9 +0x94ea +0x94eb +0x94ec +0x94ed +0x94ee +0x94ef +0x94f0 +0x94f1 +0x94f2 +0x94f3 +0x94f4 +0x94f5 +0x94f6 +0x94f7 +0x94f8 +0x94f9 +0x94fa +0x94fc +0x94fd +0x94fe +0x94ff +0x9500 +0x9501 +0x9502 +0x9503 +0x9504 +0x9505 +0x9506 +0x9507 +0x9508 +0x9509 +0x950a +0x950b +0x950c +0x950d +0x950e +0x950f +0x9510 +0x9511 +0x9512 +0x9513 +0x9514 +0x9515 +0x9516 +0x9517 +0x9518 +0x9519 +0x951a +0x951b +0x951d +0x951e +0x951f +0x9521 +0x9522 +0x9523 +0x9524 +0x9525 +0x9526 +0x9528 +0x9529 +0x952a +0x952b +0x952c +0x952d +0x952e +0x952f +0x9530 +0x9531 +0x9532 +0x9534 +0x9535 +0x9536 +0x9537 +0x9538 +0x9539 +0x953a +0x953b +0x953c +0x953e +0x953f +0x9540 +0x9541 +0x9542 +0x9544 +0x9545 +0x9546 +0x9547 +0x9549 +0x954a +0x954c +0x954d +0x954e +0x954f +0x9550 +0x9551 +0x9552 +0x9553 +0x9554 +0x9556 +0x9557 +0x9558 +0x9559 +0x955b +0x955c +0x955d +0x955e +0x955f +0x9561 +0x9562 +0x9563 +0x9564 +0x9565 +0x9566 +0x9567 +0x9568 +0x9569 +0x956a +0x956b +0x956c +0x956d +0x956f +0x9570 +0x9571 +0x9572 +0x9573 +0x9576 +0x957f +0x95e8 +0x95e9 +0x95ea +0x95eb +0x95ed +0x95ee +0x95ef +0x95f0 +0x95f1 +0x95f2 +0x95f3 +0x95f4 +0x95f5 +0x95f6 +0x95f7 +0x95f8 +0x95f9 +0x95fa +0x95fb +0x95fc +0x95fd +0x95fe +0x9600 +0x9601 +0x9602 +0x9603 +0x9604 +0x9605 +0x9606 +0x9608 +0x9609 +0x960a +0x960b +0x960c +0x960d +0x960e +0x960f +0x9610 +0x9611 +0x9612 +0x9614 +0x9615 +0x9616 +0x9617 +0x9619 +0x961a +0x961c +0x961d +0x961f +0x9621 +0x9622 +0x962a +0x962e +0x9631 +0x9632 +0x9633 +0x9634 +0x9635 +0x9636 +0x963b +0x963c +0x963d +0x963f +0x9640 +0x9642 +0x9644 +0x9645 +0x9646 +0x9647 +0x9648 +0x9649 +0x964b +0x964c +0x964d +0x9650 +0x9654 +0x9655 +0x965b +0x965f +0x9661 +0x9662 +0x9664 +0x9667 +0x9668 +0x9669 +0x966a +0x966c +0x9672 +0x9674 +0x9675 +0x9676 +0x9677 +0x9685 +0x9686 +0x9688 +0x968b +0x968d +0x968f +0x9690 +0x9694 +0x9697 +0x9698 +0x9699 +0x969c +0x96a7 +0x96b0 +0x96b3 +0x96b6 +0x96b9 +0x96bc +0x96bd +0x96be +0x96c0 +0x96c1 +0x96c4 +0x96c5 +0x96c6 +0x96c7 +0x96c9 +0x96cc +0x96cd +0x96ce +0x96cf +0x96d2 +0x96d5 +0x96e0 +0x96e8 +0x96e9 +0x96ea +0x96ef +0x96f3 +0x96f6 +0x96f7 +0x96f9 +0x96fe +0x9700 +0x9701 +0x9704 +0x9706 +0x9707 +0x9708 +0x9709 +0x970d +0x970e +0x970f +0x9713 +0x9716 +0x971c +0x971e +0x972a +0x972d +0x9730 +0x9732 +0x9738 +0x9739 +0x973e +0x9752 +0x9753 +0x9756 +0x9759 +0x975b +0x975e +0x9760 +0x9761 +0x9762 +0x9765 +0x9769 +0x9773 +0x9774 +0x9776 +0x977c +0x9785 +0x978b +0x978d +0x9791 +0x9792 +0x9794 +0x9798 +0x97a0 +0x97a3 +0x97ab +0x97ad +0x97af +0x97b2 +0x97b4 +0x97e6 +0x97e7 +0x97e9 +0x97ea +0x97eb +0x97ec +0x97ed +0x97f3 +0x97f5 +0x97f6 +0x9875 +0x9876 +0x9877 +0x9878 +0x9879 +0x987a +0x987b +0x987c +0x987d +0x987e +0x987f +0x9880 +0x9881 +0x9882 +0x9883 +0x9884 +0x9885 +0x9886 +0x9887 +0x9888 +0x9889 +0x988a +0x988c +0x988d +0x988f +0x9890 +0x9891 +0x9893 +0x9894 +0x9896 +0x9897 +0x9898 +0x989a +0x989b +0x989c +0x989d +0x989e +0x989f +0x98a0 +0x98a1 +0x98a2 +0x98a4 +0x98a5 +0x98a6 +0x98a7 +0x98ce +0x98d1 +0x98d2 +0x98d3 +0x98d5 +0x98d8 +0x98d9 +0x98da +0x98de +0x98df +0x98e7 +0x98e8 +0x990d +0x9910 +0x992e +0x9954 +0x9955 +0x9963 +0x9965 +0x9967 +0x9968 +0x9969 +0x996a +0x996b +0x996c +0x996d +0x996e +0x996f +0x9970 +0x9971 +0x9972 +0x9974 +0x9975 +0x9976 +0x9977 +0x997a +0x997c +0x997d +0x997f +0x9980 +0x9981 +0x9984 +0x9985 +0x9986 +0x9987 +0x9988 +0x998a +0x998b +0x998d +0x998f +0x9990 +0x9991 +0x9992 +0x9993 +0x9994 +0x9995 +0x9996 +0x9997 +0x9998 +0x9999 +0x99a5 +0x99a8 +0x9a6c +0x9a6d +0x9a6e +0x9a6f +0x9a70 +0x9a71 +0x9a73 +0x9a74 +0x9a75 +0x9a76 +0x9a77 +0x9a78 +0x9a79 +0x9a7a +0x9a7b +0x9a7c +0x9a7d +0x9a7e +0x9a7f +0x9a80 +0x9a81 +0x9a82 +0x9a84 +0x9a85 +0x9a86 +0x9a87 +0x9a88 +0x9a8a +0x9a8b +0x9a8c +0x9a8f +0x9a90 +0x9a91 +0x9a92 +0x9a93 +0x9a96 +0x9a97 +0x9a98 +0x9a9a +0x9a9b +0x9a9c +0x9a9d +0x9a9e +0x9a9f +0x9aa0 +0x9aa1 +0x9aa2 +0x9aa3 +0x9aa4 +0x9aa5 +0x9aa7 +0x9aa8 +0x9ab0 +0x9ab1 +0x9ab6 +0x9ab7 +0x9ab8 +0x9aba +0x9abc +0x9ac0 +0x9ac1 +0x9ac2 +0x9ac5 +0x9acb +0x9acc +0x9ad1 +0x9ad3 +0x9ad8 +0x9adf +0x9ae1 +0x9ae6 +0x9aeb +0x9aed +0x9aef +0x9af9 +0x9afb +0x9b03 +0x9b08 +0x9b0f +0x9b13 +0x9b1f +0x9b23 +0x9b2f +0x9b32 +0x9b3b +0x9b3c +0x9b41 +0x9b42 +0x9b43 +0x9b44 +0x9b45 +0x9b47 +0x9b48 +0x9b49 +0x9b4d +0x9b4f +0x9b51 +0x9b54 +0x9c7c +0x9c7f +0x9c81 +0x9c82 +0x9c85 +0x9c86 +0x9c87 +0x9c88 +0x9c8b +0x9c8d +0x9c8e +0x9c90 +0x9c91 +0x9c92 +0x9c94 +0x9c95 +0x9c9a +0x9c9b +0x9c9c +0x9c9e +0x9c9f +0x9ca0 +0x9ca1 +0x9ca2 +0x9ca3 +0x9ca4 +0x9ca5 +0x9ca6 +0x9ca7 +0x9ca8 +0x9ca9 +0x9cab +0x9cad +0x9cae +0x9cb0 +0x9cb1 +0x9cb2 +0x9cb3 +0x9cb4 +0x9cb5 +0x9cb6 +0x9cb7 +0x9cb8 +0x9cba +0x9cbb +0x9cbc +0x9cbd +0x9cc3 +0x9cc4 +0x9cc5 +0x9cc6 +0x9cc7 +0x9cca +0x9ccb +0x9ccc +0x9ccd +0x9cce +0x9ccf +0x9cd0 +0x9cd3 +0x9cd4 +0x9cd5 +0x9cd6 +0x9cd7 +0x9cd8 +0x9cd9 +0x9cdc +0x9cdd +0x9cde +0x9cdf +0x9ce2 +0x9e1f +0x9e20 +0x9e21 +0x9e22 +0x9e23 +0x9e25 +0x9e26 +0x9e28 +0x9e29 +0x9e2a +0x9e2b +0x9e2c +0x9e2d +0x9e2f +0x9e31 +0x9e32 +0x9e33 +0x9e35 +0x9e36 +0x9e37 +0x9e38 +0x9e39 +0x9e3a +0x9e3d +0x9e3e +0x9e3f +0x9e41 +0x9e42 +0x9e43 +0x9e44 +0x9e45 +0x9e46 +0x9e47 +0x9e48 +0x9e49 +0x9e4a +0x9e4b +0x9e4c +0x9e4e +0x9e4f +0x9e51 +0x9e55 +0x9e57 +0x9e58 +0x9e5a +0x9e5b +0x9e5c +0x9e5e +0x9e63 +0x9e64 +0x9e66 +0x9e67 +0x9e68 +0x9e69 +0x9e6a +0x9e6b +0x9e6c +0x9e6d +0x9e70 +0x9e71 +0x9e73 +0x9e7e +0x9e7f +0x9e82 +0x9e87 +0x9e88 +0x9e8b +0x9e92 +0x9e93 +0x9e9d +0x9e9f +0x9ea6 +0x9eb4 +0x9eb8 +0x9ebb +0x9ebd +0x9ebe +0x9ec4 +0x9ec9 +0x9ecd +0x9ece +0x9ecf +0x9ed1 +0x9ed4 +0x9ed8 +0x9edb +0x9edc +0x9edd +0x9edf +0x9ee0 +0x9ee2 +0x9ee5 +0x9ee7 +0x9ee9 +0x9eea +0x9eef +0x9ef9 +0x9efb +0x9efc +0x9efe +0x9f0b +0x9f0d +0x9f0e +0x9f10 +0x9f13 +0x9f17 +0x9f19 +0x9f20 +0x9f22 +0x9f2c +0x9f2f +0x9f37 +0x9f39 +0x9f3b +0x9f3d +0x9f3e +0x9f44 +0x9f50 +0x9f51 +0x9f7f +0x9f80 +0x9f83 +0x9f84 +0x9f85 +0x9f86 +0x9f87 +0x9f88 +0x9f89 +0x9f8a +0x9f8b +0x9f8c +0x9f99 +0x9f9a +0x9f9b +0x9f9f +0x9fa0 diff --git a/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/DS_fontcodeList_061117_korea.csv b/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/DS_fontcodeList_061117_korea.csv new file mode 100644 index 0000000..e6125d8 --- /dev/null +++ b/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/DS_fontcodeList_061117_korea.csv @@ -0,0 +1,2766 @@ +# Korea +0x0020 +0x0021 +0x0022 +0x0023 +0x0024 +0x0025 +0x0026 +0x0027 +0x0028 +0x0029 +0x002a +0x002b +0x002c +0x002d +0x002e +0x002f +0x0030 +0x0031 +0x0032 +0x0033 +0x0034 +0x0035 +0x0036 +0x0037 +0x0038 +0x0039 +0x003a +0x003b +0x003c +0x003d +0x003e +0x003f +0x0040 +0x0041 +0x0042 +0x0043 +0x0044 +0x0045 +0x0046 +0x0047 +0x0048 +0x0049 +0x004a +0x004b +0x004c +0x004d +0x004e +0x004f +0x0050 +0x0051 +0x0052 +0x0053 +0x0054 +0x0055 +0x0056 +0x0057 +0x0058 +0x0059 +0x005a +0x005b +0x005c +0x005d +0x005e +0x005f +0x0060 +0x0061 +0x0062 +0x0063 +0x0064 +0x0065 +0x0066 +0x0067 +0x0068 +0x0069 +0x006a +0x006b +0x006c +0x006d +0x006e +0x006f +0x0070 +0x0071 +0x0072 +0x0073 +0x0074 +0x0075 +0x0076 +0x0077 +0x0078 +0x0079 +0x007a +0x007b +0x007c +0x007d +0x007e +0x007f +0x00a1 +0x00a2 +0x00a3 +0x00a8 +0x00a9 +0x00ae +0x00b0 +0x00b1 +0x00b4 +0x00b7 +0x00bf +0x00c0 +0x00c1 +0x00c2 +0x00c3 +0x00c4 +0x00c5 +0x00c6 +0x00c7 +0x00c8 +0x00c9 +0x00ca +0x00cb +0x00cc +0x00cd +0x00ce +0x00cf +0x00d0 +0x00d1 +0x00d2 +0x00d3 +0x00d4 +0x00d5 +0x00d6 +0x00d7 +0x00d8 +0x00d9 +0x00da +0x00db +0x00dc +0x00dd +0x00df +0x00e0 +0x00e1 +0x00e2 +0x00e3 +0x00e4 +0x00e5 +0x00e6 +0x00e7 +0x00e8 +0x00e9 +0x00ea +0x00eb +0x00ec +0x00ed +0x00ee +0x00ef +0x00f0 +0x00f1 +0x00f2 +0x00f3 +0x00f4 +0x00f5 +0x00f6 +0x00f7 +0x00f8 +0x00f9 +0x00fa +0x00fb +0x00fc +0x00fd +0x0152 +0x0153 +0x02c6 +0x02dc +0x2010 +0x2015 +0x2018 +0x2019 +0x201a +0x201c +0x201d +0x201e +0x2022 +0x2026 +0x2032 +0x2033 +0x203a +0x203b +0x20ac +0x2122 +0x2190 +0x2191 +0x2192 +0x2193 +0x221e +0x2234 +0x25a0 +0x25a1 +0x25b2 +0x25b3 +0x25bc +0x25bd +0x25c6 +0x25c7 +0x25cb +0x25ce +0x25cf +0x2605 +0x2606 +0x266a +0x266d +0x266f +0x3000 +0x3001 +0x3002 +0x3008 +0x3009 +0x300c +0x300d +0x3012 +0x3014 +0x3015 +0x3041 +0x3042 +0x3043 +0x3044 +0x3045 +0x3046 +0x3047 +0x3048 +0x3049 +0x304a +0x304b +0x304c +0x304d +0x304e +0x304f +0x3050 +0x3051 +0x3052 +0x3053 +0x3054 +0x3055 +0x3056 +0x3057 +0x3058 +0x3059 +0x305a +0x305b +0x305c +0x305d +0x305e +0x305f +0x3060 +0x3061 +0x3062 +0x3063 +0x3064 +0x3065 +0x3066 +0x3067 +0x3068 +0x3069 +0x306a +0x306b +0x306c +0x306d +0x306e +0x306f +0x3070 +0x3071 +0x3072 +0x3073 +0x3074 +0x3075 +0x3076 +0x3077 +0x3078 +0x3079 +0x307a +0x307b +0x307c +0x307d +0x307e +0x307f +0x3080 +0x3081 +0x3082 +0x3083 +0x3084 +0x3085 +0x3086 +0x3087 +0x3088 +0x3089 +0x308a +0x308b +0x308c +0x308d +0x308e +0x308f +0x3090 +0x3091 +0x3092 +0x3093 +0x30a1 +0x30a2 +0x30a3 +0x30a4 +0x30a5 +0x30a6 +0x30a7 +0x30a8 +0x30a9 +0x30aa +0x30ab +0x30ac +0x30ad +0x30ae +0x30af +0x30b0 +0x30b1 +0x30b2 +0x30b3 +0x30b4 +0x30b5 +0x30b6 +0x30b7 +0x30b8 +0x30b9 +0x30ba +0x30bb +0x30bc +0x30bd +0x30be +0x30bf +0x30c0 +0x30c1 +0x30c2 +0x30c3 +0x30c4 +0x30c5 +0x30c6 +0x30c7 +0x30c8 +0x30c9 +0x30ca +0x30cb +0x30cc +0x30cd +0x30ce +0x30cf +0x30d0 +0x30d1 +0x30d2 +0x30d3 +0x30d4 +0x30d5 +0x30d6 +0x30d7 +0x30d8 +0x30d9 +0x30da +0x30db +0x30dc +0x30dd +0x30de +0x30df +0x30e0 +0x30e1 +0x30e2 +0x30e3 +0x30e4 +0x30e5 +0x30e6 +0x30e7 +0x30e8 +0x30e9 +0x30ea +0x30eb +0x30ec +0x30ed +0x30ee +0x30ef +0x30f0 +0x30f1 +0x30f2 +0x30f3 +0x30f4 +0x30f5 +0x30f6 +0x30fb +0x30fc +0xff01 +0xff06 +0xff08 +0xff09 +0xff0b +0xff0c +0xff0d +0xff0e +0xff0f +0xff1a +0xff1b +0xff1d +0xff1f +0xff3b +0xff3c +0xff3d +0xff3e +0xff3f +0xff40 +0xff5b +0xff5c +0xff5d +0xff5e +0xffe3 +0xac00 +0xac01 +0xac04 +0xac07 +0xac08 +0xac09 +0xac0a +0xac10 +0xac11 +0xac12 +0xac13 +0xac14 +0xac15 +0xac16 +0xac17 +0xac19 +0xac1a +0xac1b +0xac1c +0xac1d +0xac20 +0xac24 +0xac2c +0xac2d +0xac2f +0xac30 +0xac31 +0xac38 +0xac39 +0xac3c +0xac40 +0xac4b +0xac4d +0xac54 +0xac58 +0xac5c +0xac70 +0xac71 +0xac74 +0xac77 +0xac78 +0xac7a +0xac80 +0xac81 +0xac83 +0xac84 +0xac85 +0xac86 +0xac89 +0xac8a +0xac8b +0xac8c +0xac90 +0xac94 +0xac9c +0xac9d +0xac9f +0xaca0 +0xaca1 +0xaca8 +0xaca9 +0xacaa +0xacac +0xacaf +0xacb0 +0xacb8 +0xacb9 +0xacbb +0xacbc +0xacbd +0xacc1 +0xacc4 +0xacc8 +0xaccc +0xacd5 +0xacd7 +0xace0 +0xace1 +0xace4 +0xace7 +0xace8 +0xacea +0xacec +0xacef +0xacf0 +0xacf1 +0xacf3 +0xacf5 +0xacf6 +0xacfc +0xacfd +0xad00 +0xad04 +0xad06 +0xad0c +0xad0d +0xad0f +0xad11 +0xad18 +0xad1c +0xad20 +0xad29 +0xad2c +0xad2d +0xad34 +0xad35 +0xad38 +0xad3c +0xad44 +0xad45 +0xad47 +0xad49 +0xad50 +0xad54 +0xad58 +0xad61 +0xad63 +0xad6c +0xad6d +0xad70 +0xad73 +0xad74 +0xad75 +0xad76 +0xad7b +0xad7c +0xad7d +0xad7f +0xad81 +0xad82 +0xad88 +0xad89 +0xad8c +0xad90 +0xad9c +0xad9d +0xada4 +0xadb7 +0xadc0 +0xadc1 +0xadc4 +0xadc8 +0xadd0 +0xadd1 +0xadd3 +0xaddc +0xade0 +0xade4 +0xadf8 +0xadf9 +0xadfc +0xadff +0xae00 +0xae01 +0xae08 +0xae09 +0xae0b +0xae0d +0xae14 +0xae30 +0xae31 +0xae34 +0xae37 +0xae38 +0xae3a +0xae40 +0xae41 +0xae43 +0xae45 +0xae46 +0xae4a +0xae4c +0xae4d +0xae4e +0xae50 +0xae54 +0xae56 +0xae5c +0xae5d +0xae5f +0xae60 +0xae61 +0xae65 +0xae68 +0xae69 +0xae6c +0xae70 +0xae78 +0xae79 +0xae7b +0xae7c +0xae7d +0xae84 +0xae85 +0xae8c +0xaebc +0xaebd +0xaebe +0xaec0 +0xaec4 +0xaecc +0xaecd +0xaecf +0xaed0 +0xaed1 +0xaed8 +0xaed9 +0xaedc +0xaee8 +0xaeeb +0xaeed +0xaef4 +0xaef8 +0xaefc +0xaf07 +0xaf08 +0xaf0d +0xaf10 +0xaf2c +0xaf2d +0xaf30 +0xaf32 +0xaf34 +0xaf3c +0xaf3d +0xaf3f +0xaf41 +0xaf42 +0xaf43 +0xaf48 +0xaf49 +0xaf50 +0xaf5c +0xaf5d +0xaf64 +0xaf65 +0xaf79 +0xaf80 +0xaf84 +0xaf88 +0xaf90 +0xaf91 +0xaf95 +0xaf9c +0xafb8 +0xafb9 +0xafbc +0xafc0 +0xafc7 +0xafc8 +0xafc9 +0xafcb +0xafcd +0xafce +0xafd4 +0xafdc +0xafe8 +0xafe9 +0xaff0 +0xaff1 +0xaff4 +0xaff8 +0xb000 +0xb001 +0xb004 +0xb00c +0xb010 +0xb014 +0xb01c +0xb01d +0xb028 +0xb044 +0xb045 +0xb048 +0xb04a +0xb04c +0xb04e +0xb053 +0xb054 +0xb055 +0xb057 +0xb059 +0xb05d +0xb07c +0xb07d +0xb080 +0xb084 +0xb08c +0xb08d +0xb08f +0xb091 +0xb098 +0xb099 +0xb09a +0xb09c +0xb09f +0xb0a0 +0xb0a1 +0xb0a2 +0xb0a8 +0xb0a9 +0xb0ab +0xb0ac +0xb0ad +0xb0ae +0xb0af +0xb0b1 +0xb0b3 +0xb0b4 +0xb0b5 +0xb0b8 +0xb0bc +0xb0c4 +0xb0c5 +0xb0c7 +0xb0c8 +0xb0c9 +0xb0d0 +0xb0d1 +0xb0d4 +0xb0d8 +0xb0e0 +0xb0e5 +0xb108 +0xb109 +0xb10b +0xb10c +0xb110 +0xb112 +0xb113 +0xb118 +0xb119 +0xb11b +0xb11c +0xb11d +0xb123 +0xb124 +0xb125 +0xb128 +0xb12c +0xb134 +0xb135 +0xb137 +0xb138 +0xb139 +0xb140 +0xb141 +0xb144 +0xb148 +0xb150 +0xb151 +0xb154 +0xb155 +0xb158 +0xb15c +0xb160 +0xb178 +0xb179 +0xb17c +0xb180 +0xb182 +0xb188 +0xb189 +0xb18b +0xb18d +0xb192 +0xb193 +0xb194 +0xb198 +0xb19c +0xb1a8 +0xb1cc +0xb1d0 +0xb1d4 +0xb1dc +0xb1dd +0xb1df +0xb1e8 +0xb1e9 +0xb1ec +0xb1f0 +0xb1f9 +0xb1fb +0xb1fd +0xb204 +0xb205 +0xb208 +0xb20b +0xb20c +0xb214 +0xb215 +0xb217 +0xb219 +0xb220 +0xb234 +0xb23c +0xb258 +0xb25c +0xb260 +0xb268 +0xb269 +0xb274 +0xb275 +0xb27c +0xb284 +0xb285 +0xb289 +0xb290 +0xb291 +0xb294 +0xb298 +0xb299 +0xb29a +0xb2a0 +0xb2a1 +0xb2a3 +0xb2a5 +0xb2a6 +0xb2aa +0xb2ac +0xb2b0 +0xb2b4 +0xb2c8 +0xb2c9 +0xb2cc +0xb2d0 +0xb2d2 +0xb2d8 +0xb2d9 +0xb2db +0xb2dd +0xb2e2 +0xb2e4 +0xb2e5 +0xb2e6 +0xb2e8 +0xb2eb +0xb2ec +0xb2ed +0xb2ee +0xb2ef +0xb2f3 +0xb2f4 +0xb2f5 +0xb2f7 +0xb2f8 +0xb2f9 +0xb2fa +0xb2fb +0xb2ff +0xb300 +0xb301 +0xb304 +0xb308 +0xb310 +0xb311 +0xb313 +0xb314 +0xb315 +0xb31c +0xb354 +0xb355 +0xb356 +0xb358 +0xb35b +0xb35c +0xb35e +0xb35f +0xb364 +0xb365 +0xb367 +0xb369 +0xb36b +0xb36e +0xb370 +0xb371 +0xb374 +0xb378 +0xb380 +0xb381 +0xb383 +0xb384 +0xb385 +0xb38c +0xb390 +0xb394 +0xb3a0 +0xb3a1 +0xb3a8 +0xb3ac +0xb3c4 +0xb3c5 +0xb3c8 +0xb3cb +0xb3cc +0xb3ce +0xb3d0 +0xb3d4 +0xb3d5 +0xb3d7 +0xb3d9 +0xb3db +0xb3dd +0xb3e0 +0xb3e4 +0xb3e8 +0xb3fc +0xb410 +0xb418 +0xb41c +0xb420 +0xb428 +0xb429 +0xb42b +0xb434 +0xb450 +0xb451 +0xb454 +0xb458 +0xb460 +0xb461 +0xb463 +0xb465 +0xb46c +0xb480 +0xb488 +0xb49d +0xb4a4 +0xb4a8 +0xb4ac +0xb4b5 +0xb4b7 +0xb4b9 +0xb4c0 +0xb4c4 +0xb4c8 +0xb4d0 +0xb4d5 +0xb4dc +0xb4dd +0xb4e0 +0xb4e3 +0xb4e4 +0xb4e6 +0xb4ec +0xb4ed +0xb4ef +0xb4f1 +0xb4f8 +0xb514 +0xb515 +0xb518 +0xb51b +0xb51c +0xb524 +0xb525 +0xb527 +0xb528 +0xb529 +0xb52a +0xb530 +0xb531 +0xb534 +0xb538 +0xb540 +0xb541 +0xb543 +0xb544 +0xb545 +0xb54b +0xb54c +0xb54d +0xb550 +0xb554 +0xb55c +0xb55d +0xb55f +0xb560 +0xb561 +0xb5a0 +0xb5a1 +0xb5a4 +0xb5a8 +0xb5aa +0xb5ab +0xb5b0 +0xb5b1 +0xb5b3 +0xb5b4 +0xb5b5 +0xb5bb +0xb5bc +0xb5bd +0xb5c0 +0xb5c4 +0xb5cc +0xb5cd +0xb5cf +0xb5d0 +0xb5d1 +0xb5d8 +0xb5ec +0xb610 +0xb611 +0xb614 +0xb618 +0xb625 +0xb62c +0xb634 +0xb648 +0xb664 +0xb668 +0xb69c +0xb69d +0xb6a0 +0xb6a4 +0xb6ab +0xb6ac +0xb6b1 +0xb6d4 +0xb6f0 +0xb6f4 +0xb6f8 +0xb700 +0xb701 +0xb705 +0xb728 +0xb729 +0xb72c +0xb72f +0xb730 +0xb738 +0xb739 +0xb73b +0xb744 +0xb748 +0xb74c +0xb754 +0xb755 +0xb760 +0xb764 +0xb768 +0xb770 +0xb771 +0xb773 +0xb775 +0xb77c +0xb77d +0xb780 +0xb784 +0xb78c +0xb78d +0xb78f +0xb790 +0xb791 +0xb792 +0xb796 +0xb797 +0xb798 +0xb799 +0xb79c +0xb7a0 +0xb7a8 +0xb7a9 +0xb7ab +0xb7ac +0xb7ad +0xb7b4 +0xb7b5 +0xb7b8 +0xb7c7 +0xb7c9 +0xb7ec +0xb7ed +0xb7f0 +0xb7f4 +0xb7fc +0xb7fd +0xb7ff +0xb800 +0xb801 +0xb807 +0xb808 +0xb809 +0xb80c +0xb810 +0xb818 +0xb819 +0xb81b +0xb81d +0xb824 +0xb825 +0xb828 +0xb82c +0xb834 +0xb835 +0xb837 +0xb838 +0xb839 +0xb840 +0xb844 +0xb851 +0xb853 +0xb85c +0xb85d +0xb860 +0xb864 +0xb86c +0xb86d +0xb86f +0xb871 +0xb878 +0xb87c +0xb88d +0xb8a8 +0xb8b0 +0xb8b4 +0xb8b8 +0xb8c0 +0xb8c1 +0xb8c3 +0xb8c5 +0xb8cc +0xb8d0 +0xb8d4 +0xb8dd +0xb8df +0xb8e1 +0xb8e8 +0xb8e9 +0xb8ec +0xb8f0 +0xb8f8 +0xb8f9 +0xb8fb +0xb8fd +0xb904 +0xb918 +0xb920 +0xb93c +0xb93d +0xb940 +0xb944 +0xb94c +0xb94f +0xb951 +0xb958 +0xb959 +0xb95c +0xb960 +0xb968 +0xb969 +0xb96b +0xb96d +0xb974 +0xb975 +0xb978 +0xb97c +0xb984 +0xb985 +0xb987 +0xb989 +0xb98a +0xb98d +0xb98e +0xb9ac +0xb9ad +0xb9b0 +0xb9b4 +0xb9bc +0xb9bd +0xb9bf +0xb9c1 +0xb9c8 +0xb9c9 +0xb9cc +0xb9ce +0xb9cf +0xb9d0 +0xb9d1 +0xb9d2 +0xb9d8 +0xb9d9 +0xb9db +0xb9dd +0xb9de +0xb9e1 +0xb9e3 +0xb9e4 +0xb9e5 +0xb9e8 +0xb9ec +0xb9f4 +0xb9f5 +0xb9f7 +0xb9f8 +0xb9f9 +0xb9fa +0xba00 +0xba01 +0xba08 +0xba15 +0xba38 +0xba39 +0xba3c +0xba40 +0xba42 +0xba48 +0xba49 +0xba4b +0xba4d +0xba4e +0xba53 +0xba54 +0xba55 +0xba58 +0xba5c +0xba64 +0xba65 +0xba67 +0xba68 +0xba69 +0xba70 +0xba71 +0xba74 +0xba78 +0xba83 +0xba84 +0xba85 +0xba87 +0xba8c +0xbaa8 +0xbaa9 +0xbaab +0xbaac +0xbab0 +0xbab2 +0xbab8 +0xbab9 +0xbabb +0xbabd +0xbac4 +0xbac8 +0xbad8 +0xbad9 +0xbafc +0xbb00 +0xbb04 +0xbb0d +0xbb0f +0xbb11 +0xbb18 +0xbb1c +0xbb20 +0xbb29 +0xbb2b +0xbb34 +0xbb35 +0xbb36 +0xbb38 +0xbb3b +0xbb3c +0xbb3d +0xbb3e +0xbb44 +0xbb45 +0xbb47 +0xbb49 +0xbb4d +0xbb4f +0xbb50 +0xbb54 +0xbb58 +0xbb61 +0xbb63 +0xbb6c +0xbb88 +0xbb8c +0xbb90 +0xbba4 +0xbba8 +0xbbac +0xbbb4 +0xbbb7 +0xbbc0 +0xbbc4 +0xbbc8 +0xbbd0 +0xbbd3 +0xbbf8 +0xbbf9 +0xbbfc +0xbbff +0xbc00 +0xbc02 +0xbc08 +0xbc09 +0xbc0b +0xbc0c +0xbc0d +0xbc0f +0xbc11 +0xbc14 +0xbc15 +0xbc16 +0xbc17 +0xbc18 +0xbc1b +0xbc1c +0xbc1d +0xbc1e +0xbc1f +0xbc24 +0xbc25 +0xbc27 +0xbc29 +0xbc2d +0xbc30 +0xbc31 +0xbc34 +0xbc38 +0xbc40 +0xbc41 +0xbc43 +0xbc44 +0xbc45 +0xbc49 +0xbc4c +0xbc4d +0xbc50 +0xbc5d +0xbc84 +0xbc85 +0xbc88 +0xbc8b +0xbc8c +0xbc8e +0xbc94 +0xbc95 +0xbc97 +0xbc99 +0xbc9a +0xbca0 +0xbca1 +0xbca4 +0xbca7 +0xbca8 +0xbcb0 +0xbcb1 +0xbcb3 +0xbcb4 +0xbcb5 +0xbcbc +0xbcbd +0xbcc0 +0xbcc4 +0xbccd +0xbccf +0xbcd0 +0xbcd1 +0xbcd5 +0xbcd8 +0xbcdc +0xbcf4 +0xbcf5 +0xbcf6 +0xbcf8 +0xbcfc +0xbd04 +0xbd05 +0xbd07 +0xbd09 +0xbd10 +0xbd14 +0xbd24 +0xbd2c +0xbd40 +0xbd48 +0xbd49 +0xbd4c +0xbd50 +0xbd58 +0xbd59 +0xbd64 +0xbd68 +0xbd80 +0xbd81 +0xbd84 +0xbd87 +0xbd88 +0xbd89 +0xbd8a +0xbd90 +0xbd91 +0xbd93 +0xbd95 +0xbd99 +0xbd9a +0xbd9c +0xbda4 +0xbdb0 +0xbdb8 +0xbdd4 +0xbdd5 +0xbdd8 +0xbddc +0xbde9 +0xbdf0 +0xbdf4 +0xbdf8 +0xbe00 +0xbe03 +0xbe05 +0xbe0c +0xbe0d +0xbe10 +0xbe14 +0xbe1c +0xbe1d +0xbe1f +0xbe44 +0xbe45 +0xbe48 +0xbe4c +0xbe4e +0xbe54 +0xbe55 +0xbe57 +0xbe59 +0xbe5a +0xbe5b +0xbe60 +0xbe61 +0xbe64 +0xbe68 +0xbe6a +0xbe70 +0xbe71 +0xbe73 +0xbe74 +0xbe75 +0xbe7b +0xbe7c +0xbe7d +0xbe80 +0xbe84 +0xbe8c +0xbe8d +0xbe8f +0xbe90 +0xbe91 +0xbe98 +0xbe99 +0xbea8 +0xbed0 +0xbed1 +0xbed4 +0xbed7 +0xbed8 +0xbee0 +0xbee3 +0xbee4 +0xbee5 +0xbeec +0xbf01 +0xbf08 +0xbf09 +0xbf18 +0xbf19 +0xbf1b +0xbf1c +0xbf1d +0xbf40 +0xbf41 +0xbf44 +0xbf48 +0xbf50 +0xbf51 +0xbf55 +0xbf94 +0xbfb0 +0xbfc5 +0xbfcc +0xbfcd +0xbfd0 +0xbfd4 +0xbfdc +0xbfdf +0xbfe1 +0xc03c +0xc051 +0xc058 +0xc05c +0xc060 +0xc068 +0xc069 +0xc090 +0xc091 +0xc094 +0xc098 +0xc0a0 +0xc0a1 +0xc0a3 +0xc0a5 +0xc0ac +0xc0ad +0xc0af +0xc0b0 +0xc0b3 +0xc0b4 +0xc0b5 +0xc0b6 +0xc0bc +0xc0bd +0xc0bf +0xc0c0 +0xc0c1 +0xc0c5 +0xc0c8 +0xc0c9 +0xc0cc +0xc0d0 +0xc0d8 +0xc0d9 +0xc0db +0xc0dc +0xc0dd +0xc0e4 +0xc0e5 +0xc0e8 +0xc0ec +0xc0f4 +0xc0f5 +0xc0f7 +0xc0f9 +0xc100 +0xc104 +0xc108 +0xc110 +0xc115 +0xc11c +0xc11d +0xc11e +0xc11f +0xc120 +0xc123 +0xc124 +0xc126 +0xc127 +0xc12c +0xc12d +0xc12f +0xc130 +0xc131 +0xc136 +0xc138 +0xc139 +0xc13c +0xc140 +0xc148 +0xc149 +0xc14b +0xc14c +0xc14d +0xc154 +0xc155 +0xc158 +0xc15c +0xc164 +0xc165 +0xc167 +0xc168 +0xc169 +0xc170 +0xc174 +0xc178 +0xc185 +0xc18c +0xc18d +0xc18e +0xc190 +0xc194 +0xc196 +0xc19c +0xc19d +0xc19f +0xc1a1 +0xc1a5 +0xc1a8 +0xc1a9 +0xc1ac +0xc1b0 +0xc1bd +0xc1c4 +0xc1c8 +0xc1cc +0xc1d4 +0xc1d7 +0xc1d8 +0xc1e0 +0xc1e4 +0xc1e8 +0xc1f0 +0xc1f1 +0xc1f3 +0xc1fc +0xc1fd +0xc200 +0xc204 +0xc20c +0xc20d +0xc20f +0xc211 +0xc218 +0xc219 +0xc21c +0xc21f +0xc220 +0xc228 +0xc229 +0xc22b +0xc22d +0xc22f +0xc231 +0xc232 +0xc234 +0xc248 +0xc250 +0xc251 +0xc254 +0xc258 +0xc260 +0xc265 +0xc26c +0xc26d +0xc270 +0xc274 +0xc27c +0xc27d +0xc27f +0xc281 +0xc288 +0xc289 +0xc290 +0xc298 +0xc29b +0xc29d +0xc2a4 +0xc2a5 +0xc2a8 +0xc2ac +0xc2ad +0xc2b4 +0xc2b5 +0xc2b7 +0xc2b9 +0xc2dc +0xc2dd +0xc2e0 +0xc2e3 +0xc2e4 +0xc2eb +0xc2ec +0xc2ed +0xc2ef +0xc2f1 +0xc2f6 +0xc2f8 +0xc2f9 +0xc2fb +0xc2fc +0xc300 +0xc308 +0xc309 +0xc30c +0xc30d +0xc313 +0xc314 +0xc315 +0xc318 +0xc31c +0xc324 +0xc325 +0xc328 +0xc329 +0xc345 +0xc368 +0xc369 +0xc36c +0xc370 +0xc372 +0xc378 +0xc379 +0xc37c +0xc37d +0xc384 +0xc388 +0xc38c +0xc3c0 +0xc3d8 +0xc3d9 +0xc3dc +0xc3df +0xc3e0 +0xc3e2 +0xc3e8 +0xc3e9 +0xc3ed +0xc3f4 +0xc3f5 +0xc3f8 +0xc408 +0xc410 +0xc424 +0xc42c +0xc430 +0xc434 +0xc43c +0xc43d +0xc448 +0xc464 +0xc465 +0xc468 +0xc46c +0xc474 +0xc475 +0xc479 +0xc480 +0xc494 +0xc49c +0xc4b8 +0xc4bc +0xc4e9 +0xc4f0 +0xc4f1 +0xc4f4 +0xc4f8 +0xc4fa +0xc4ff +0xc500 +0xc501 +0xc50c +0xc510 +0xc514 +0xc51c +0xc528 +0xc529 +0xc52c +0xc530 +0xc538 +0xc539 +0xc53b +0xc53d +0xc544 +0xc545 +0xc548 +0xc549 +0xc54a +0xc54c +0xc54d +0xc54e +0xc553 +0xc554 +0xc555 +0xc557 +0xc558 +0xc559 +0xc55d +0xc55e +0xc560 +0xc561 +0xc564 +0xc568 +0xc570 +0xc571 +0xc573 +0xc574 +0xc575 +0xc57c +0xc57d +0xc580 +0xc584 +0xc587 +0xc58c +0xc58d +0xc58f +0xc591 +0xc595 +0xc597 +0xc598 +0xc59c +0xc5a0 +0xc5a9 +0xc5b4 +0xc5b5 +0xc5b8 +0xc5b9 +0xc5bb +0xc5bc +0xc5bd +0xc5be +0xc5c4 +0xc5c5 +0xc5c6 +0xc5c7 +0xc5c8 +0xc5c9 +0xc5ca +0xc5cc +0xc5ce +0xc5d0 +0xc5d1 +0xc5d4 +0xc5d8 +0xc5e0 +0xc5e1 +0xc5e3 +0xc5e5 +0xc5ec +0xc5ed +0xc5ee +0xc5f0 +0xc5f4 +0xc5f6 +0xc5f7 +0xc5fc +0xc5fd +0xc5fe +0xc5ff +0xc600 +0xc601 +0xc605 +0xc606 +0xc607 +0xc608 +0xc60c +0xc610 +0xc618 +0xc619 +0xc61b +0xc61c +0xc624 +0xc625 +0xc628 +0xc62c +0xc62d +0xc62e +0xc630 +0xc633 +0xc634 +0xc635 +0xc637 +0xc639 +0xc63b +0xc640 +0xc641 +0xc644 +0xc648 +0xc650 +0xc651 +0xc653 +0xc654 +0xc655 +0xc65c +0xc65d +0xc660 +0xc66c +0xc66f +0xc671 +0xc678 +0xc679 +0xc67c +0xc680 +0xc688 +0xc689 +0xc68b +0xc68d +0xc694 +0xc695 +0xc698 +0xc69c +0xc6a4 +0xc6a5 +0xc6a7 +0xc6a9 +0xc6b0 +0xc6b1 +0xc6b4 +0xc6b8 +0xc6b9 +0xc6ba +0xc6c0 +0xc6c1 +0xc6c3 +0xc6c5 +0xc6cc +0xc6cd +0xc6d0 +0xc6d4 +0xc6dc +0xc6dd +0xc6e0 +0xc6e1 +0xc6e8 +0xc6e9 +0xc6ec +0xc6f0 +0xc6f8 +0xc6f9 +0xc6fd +0xc704 +0xc705 +0xc708 +0xc70c +0xc714 +0xc715 +0xc717 +0xc719 +0xc720 +0xc721 +0xc724 +0xc728 +0xc730 +0xc731 +0xc733 +0xc735 +0xc737 +0xc73c +0xc73d +0xc740 +0xc744 +0xc74a +0xc74c +0xc74d +0xc74f +0xc751 +0xc752 +0xc753 +0xc754 +0xc755 +0xc756 +0xc757 +0xc758 +0xc75c +0xc760 +0xc768 +0xc76b +0xc774 +0xc775 +0xc778 +0xc77c +0xc77d +0xc77e +0xc783 +0xc784 +0xc785 +0xc787 +0xc788 +0xc789 +0xc78a +0xc78e +0xc790 +0xc791 +0xc794 +0xc796 +0xc797 +0xc798 +0xc79a +0xc7a0 +0xc7a1 +0xc7a3 +0xc7a4 +0xc7a5 +0xc7a6 +0xc7ac +0xc7ad +0xc7b0 +0xc7b4 +0xc7bc +0xc7bd +0xc7bf +0xc7c0 +0xc7c1 +0xc7c8 +0xc7c9 +0xc7cc +0xc7ce +0xc7d0 +0xc7d8 +0xc7dd +0xc7e4 +0xc7e8 +0xc7ec +0xc800 +0xc801 +0xc804 +0xc808 +0xc80a +0xc810 +0xc811 +0xc813 +0xc815 +0xc816 +0xc81c +0xc81d +0xc820 +0xc824 +0xc82c +0xc82d +0xc82f +0xc831 +0xc838 +0xc83c +0xc840 +0xc848 +0xc849 +0xc84c +0xc84d +0xc854 +0xc870 +0xc871 +0xc874 +0xc878 +0xc87a +0xc880 +0xc881 +0xc883 +0xc885 +0xc886 +0xc887 +0xc88b +0xc88c +0xc88d +0xc894 +0xc89d +0xc89f +0xc8a1 +0xc8a8 +0xc8bc +0xc8bd +0xc8c4 +0xc8c8 +0xc8cc +0xc8d4 +0xc8d5 +0xc8d7 +0xc8d9 +0xc8e0 +0xc8e1 +0xc8e4 +0xc8f5 +0xc8fc +0xc8fd +0xc900 +0xc904 +0xc905 +0xc906 +0xc90c +0xc90d +0xc90f +0xc911 +0xc918 +0xc92c +0xc934 +0xc950 +0xc951 +0xc954 +0xc958 +0xc960 +0xc961 +0xc963 +0xc96c +0xc970 +0xc974 +0xc97c +0xc988 +0xc989 +0xc98c +0xc990 +0xc998 +0xc999 +0xc99b +0xc99d +0xc9c0 +0xc9c1 +0xc9c4 +0xc9c7 +0xc9c8 +0xc9ca +0xc9d0 +0xc9d1 +0xc9d3 +0xc9d5 +0xc9d6 +0xc9d9 +0xc9da +0xc9dc +0xc9dd +0xc9e0 +0xc9e2 +0xc9e4 +0xc9e7 +0xc9ec +0xc9ed +0xc9ef +0xc9f0 +0xc9f1 +0xc9f8 +0xc9f9 +0xc9fc +0xca00 +0xca08 +0xca09 +0xca0b +0xca0c +0xca0d +0xca14 +0xca18 +0xca29 +0xca4c +0xca4d +0xca50 +0xca54 +0xca5c +0xca5d +0xca5f +0xca60 +0xca61 +0xca68 +0xca7d +0xca84 +0xca98 +0xcabc +0xcabd +0xcac0 +0xcac4 +0xcacc +0xcacd +0xcacf +0xcad1 +0xcad3 +0xcad8 +0xcad9 +0xcae0 +0xcaec +0xcaf4 +0xcb08 +0xcb10 +0xcb14 +0xcb18 +0xcb20 +0xcb21 +0xcb41 +0xcb48 +0xcb49 +0xcb4c +0xcb50 +0xcb58 +0xcb59 +0xcb5d +0xcb64 +0xcb78 +0xcb79 +0xcb9c +0xcbb8 +0xcbd4 +0xcbe4 +0xcbe7 +0xcbe9 +0xcc0c +0xcc0d +0xcc10 +0xcc14 +0xcc1c +0xcc1d +0xcc21 +0xcc22 +0xcc27 +0xcc28 +0xcc29 +0xcc2c +0xcc2e +0xcc30 +0xcc38 +0xcc39 +0xcc3b +0xcc3c +0xcc3d +0xcc3e +0xcc44 +0xcc45 +0xcc48 +0xcc4c +0xcc54 +0xcc55 +0xcc57 +0xcc58 +0xcc59 +0xcc60 +0xcc64 +0xcc66 +0xcc68 +0xcc70 +0xcc75 +0xcc98 +0xcc99 +0xcc9c +0xcca0 +0xcca8 +0xcca9 +0xccab +0xccac +0xccad +0xccb4 +0xccb5 +0xccb8 +0xccbc +0xccc4 +0xccc5 +0xccc7 +0xccc9 +0xccd0 +0xccd4 +0xcce4 +0xccec +0xccf0 +0xcd01 +0xcd08 +0xcd09 +0xcd0c +0xcd10 +0xcd18 +0xcd19 +0xcd1b +0xcd1d +0xcd24 +0xcd28 +0xcd2c +0xcd39 +0xcd5c +0xcd60 +0xcd64 +0xcd6c +0xcd6d +0xcd6f +0xcd71 +0xcd78 +0xcd88 +0xcd94 +0xcd95 +0xcd98 +0xcd9c +0xcda4 +0xcda5 +0xcda7 +0xcda9 +0xcdb0 +0xcdc4 +0xcdcc +0xcdd0 +0xcde8 +0xcdec +0xcdf0 +0xcdf8 +0xcdf9 +0xcdfb +0xcdfd +0xce04 +0xce08 +0xce0c +0xce14 +0xce19 +0xce20 +0xce21 +0xce24 +0xce28 +0xce30 +0xce31 +0xce33 +0xce35 +0xce58 +0xce59 +0xce5c +0xce5f +0xce60 +0xce61 +0xce68 +0xce69 +0xce6b +0xce6d +0xce74 +0xce75 +0xce78 +0xce7c +0xce84 +0xce85 +0xce87 +0xce89 +0xce90 +0xce91 +0xce94 +0xce98 +0xcea0 +0xcea1 +0xcea3 +0xcea4 +0xcea5 +0xceac +0xcead +0xcec1 +0xcee4 +0xcee5 +0xcee8 +0xceeb +0xceec +0xcef4 +0xcef5 +0xcef7 +0xcef8 +0xcef9 +0xcf00 +0xcf01 +0xcf04 +0xcf08 +0xcf10 +0xcf11 +0xcf13 +0xcf15 +0xcf1c +0xcf20 +0xcf24 +0xcf2c +0xcf2d +0xcf2f +0xcf30 +0xcf31 +0xcf38 +0xcf54 +0xcf55 +0xcf58 +0xcf5c +0xcf64 +0xcf65 +0xcf67 +0xcf69 +0xcf70 +0xcf71 +0xcf74 +0xcf78 +0xcf80 +0xcf85 +0xcf8c +0xcfa1 +0xcfa8 +0xcfb0 +0xcfc4 +0xcfe0 +0xcfe1 +0xcfe4 +0xcfe8 +0xcff0 +0xcff1 +0xcff3 +0xcff5 +0xcffc +0xd000 +0xd004 +0xd011 +0xd018 +0xd02d +0xd034 +0xd035 +0xd038 +0xd03c +0xd044 +0xd045 +0xd047 +0xd049 +0xd050 +0xd054 +0xd058 +0xd060 +0xd06c +0xd06d +0xd070 +0xd074 +0xd07c +0xd07d +0xd081 +0xd0a4 +0xd0a5 +0xd0a8 +0xd0ac +0xd0b4 +0xd0b5 +0xd0b7 +0xd0b9 +0xd0c0 +0xd0c1 +0xd0c4 +0xd0c8 +0xd0c9 +0xd0d0 +0xd0d1 +0xd0d3 +0xd0d4 +0xd0d5 +0xd0dc +0xd0dd +0xd0e0 +0xd0e4 +0xd0ec +0xd0ed +0xd0ef +0xd0f0 +0xd0f1 +0xd0f8 +0xd10d +0xd130 +0xd131 +0xd134 +0xd138 +0xd13a +0xd140 +0xd141 +0xd143 +0xd144 +0xd145 +0xd14c +0xd14d +0xd150 +0xd154 +0xd15c +0xd15d +0xd15f +0xd161 +0xd168 +0xd16c +0xd17c +0xd184 +0xd188 +0xd1a0 +0xd1a1 +0xd1a4 +0xd1a8 +0xd1b0 +0xd1b1 +0xd1b3 +0xd1b5 +0xd1ba +0xd1bc +0xd1c0 +0xd1d8 +0xd1f4 +0xd1f8 +0xd207 +0xd209 +0xd210 +0xd22c +0xd22d +0xd230 +0xd234 +0xd23c +0xd23d +0xd23f +0xd241 +0xd248 +0xd25c +0xd264 +0xd280 +0xd281 +0xd284 +0xd288 +0xd290 +0xd291 +0xd295 +0xd29c +0xd2a0 +0xd2a4 +0xd2ac +0xd2b1 +0xd2b8 +0xd2b9 +0xd2bc +0xd2bf +0xd2c0 +0xd2c2 +0xd2c8 +0xd2c9 +0xd2cb +0xd2d4 +0xd2d8 +0xd2dc +0xd2e4 +0xd2e5 +0xd2f0 +0xd2f1 +0xd2f4 +0xd2f8 +0xd300 +0xd301 +0xd303 +0xd305 +0xd30c +0xd30d +0xd30e +0xd310 +0xd314 +0xd316 +0xd31c +0xd31d +0xd31f +0xd320 +0xd321 +0xd325 +0xd328 +0xd329 +0xd32c +0xd330 +0xd338 +0xd339 +0xd33b +0xd33c +0xd33d +0xd344 +0xd345 +0xd37c +0xd37d +0xd380 +0xd384 +0xd38c +0xd38d +0xd38f +0xd390 +0xd391 +0xd398 +0xd399 +0xd39c +0xd3a0 +0xd3a8 +0xd3a9 +0xd3ab +0xd3ad +0xd3b4 +0xd3b8 +0xd3bc +0xd3c4 +0xd3c5 +0xd3c8 +0xd3c9 +0xd3d0 +0xd3d8 +0xd3e1 +0xd3e3 +0xd3ec +0xd3ed +0xd3f0 +0xd3f4 +0xd3fc +0xd3fd +0xd3ff +0xd401 +0xd408 +0xd41d +0xd440 +0xd444 +0xd45c +0xd460 +0xd464 +0xd46d +0xd46f +0xd478 +0xd479 +0xd47c +0xd47f +0xd480 +0xd482 +0xd488 +0xd489 +0xd48b +0xd48d +0xd494 +0xd4a9 +0xd4cc +0xd4d0 +0xd4d4 +0xd4dc +0xd4df +0xd4e8 +0xd4ec +0xd4f0 +0xd4f8 +0xd4fb +0xd4fd +0xd504 +0xd508 +0xd50c +0xd514 +0xd515 +0xd517 +0xd53c +0xd53d +0xd540 +0xd544 +0xd54c +0xd54d +0xd54f +0xd551 +0xd558 +0xd559 +0xd55c +0xd560 +0xd565 +0xd568 +0xd569 +0xd56b +0xd56d +0xd574 +0xd575 +0xd578 +0xd57c +0xd584 +0xd585 +0xd587 +0xd588 +0xd589 +0xd590 +0xd5a5 +0xd5c8 +0xd5c9 +0xd5cc +0xd5d0 +0xd5d2 +0xd5d8 +0xd5d9 +0xd5db +0xd5dd +0xd5e4 +0xd5e5 +0xd5e8 +0xd5ec +0xd5f4 +0xd5f5 +0xd5f7 +0xd5f9 +0xd600 +0xd601 +0xd604 +0xd608 +0xd610 +0xd611 +0xd613 +0xd614 +0xd615 +0xd61c +0xd620 +0xd624 +0xd62d +0xd638 +0xd639 +0xd63c +0xd640 +0xd645 +0xd648 +0xd649 +0xd64b +0xd64d +0xd651 +0xd654 +0xd655 +0xd658 +0xd65c +0xd667 +0xd669 +0xd670 +0xd671 +0xd674 +0xd683 +0xd685 +0xd68c +0xd68d +0xd690 +0xd694 +0xd69d +0xd69f +0xd6a1 +0xd6a8 +0xd6ac +0xd6b0 +0xd6b9 +0xd6bb +0xd6c4 +0xd6c5 +0xd6c8 +0xd6cc +0xd6d1 +0xd6d4 +0xd6d7 +0xd6d9 +0xd6e0 +0xd6e4 +0xd6e8 +0xd6f0 +0xd6f5 +0xd6fc +0xd6fd +0xd700 +0xd704 +0xd711 +0xd718 +0xd719 +0xd71c +0xd720 +0xd728 +0xd729 +0xd72b +0xd72d +0xd734 +0xd735 +0xd738 +0xd73c +0xd744 +0xd747 +0xd749 +0xd750 +0xd751 +0xd754 +0xd756 +0xd757 +0xd758 +0xd759 +0xd760 +0xd761 +0xd763 +0xd765 +0xd769 +0xd76c +0xd770 +0xd774 +0xd77c +0xd77d +0xd781 +0xd788 +0xd789 +0xd78c +0xd790 +0xd798 +0xd799 +0xd79b +0xd79d diff --git a/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/DS_fontcodeList_worldwide.bin b/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/DS_fontcodeList_worldwide.bin new file mode 100644 index 0000000..9779797 Binary files /dev/null and b/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/DS_fontcodeList_worldwide.bin differ diff --git a/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/DSミドルウェア一覧_090331.xls b/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/DSミドルウェア一覧_090331.xls new file mode 100644 index 0000000..4af4f21 Binary files /dev/null and b/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/DSミドルウェア一覧_090331.xls differ diff --git a/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/DSミドルウェア一覧_090331_英語版.xls b/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/DSミドルウェア一覧_090331_英語版.xls new file mode 100644 index 0000000..0d56b9b Binary files /dev/null and b/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/DSミドルウェア一覧_090331_英語版.xls differ diff --git a/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/Debug/MasterEditorTWL.ilk b/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/Debug/MasterEditorTWL.ilk new file mode 100644 index 0000000..e69de29 diff --git a/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/MasterEditorTWL.ncb b/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/MasterEditorTWL.ncb new file mode 100644 index 0000000..bd01d55 Binary files /dev/null and b/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/MasterEditorTWL.ncb differ diff --git a/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/MasterEditorTWL.resources.dll b/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/MasterEditorTWL.resources.dll new file mode 100644 index 0000000..e0f27d2 --- /dev/null +++ b/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/MasterEditorTWL.resources.dll @@ -0,0 +1 @@ +Dummy diff --git a/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/MasterEditorTWL.sln b/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/MasterEditorTWL.sln new file mode 100644 index 0000000..86a0a99 --- /dev/null +++ b/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/MasterEditorTWL.sln @@ -0,0 +1,24 @@ + +Microsoft Visual Studio Solution File, Format Version 10.00 +# Visual Studio 2008 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "MasterEditorTWL", "MasterEditorTWL\MasterEditorTWL.vcproj", "{F8A4F8F7-A3BD-4DCA-B054-5FF8A09082F5}" +EndProject +Project("{54435603-DBB4-11D2-8724-00A0C9A8B90C}") = "MasterEditorTWLSetup", "MasterEditorTWLSetup\MasterEditorTWLSetup.vdproj", "{D24711F8-41FF-4E3E-96BD-F4FFA6A2FB34}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Win32 = Debug|Win32 + Release|Win32 = Release|Win32 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {F8A4F8F7-A3BD-4DCA-B054-5FF8A09082F5}.Debug|Win32.ActiveCfg = Debug|Win32 + {F8A4F8F7-A3BD-4DCA-B054-5FF8A09082F5}.Debug|Win32.Build.0 = Debug|Win32 + {F8A4F8F7-A3BD-4DCA-B054-5FF8A09082F5}.Release|Win32.ActiveCfg = Release|Win32 + {F8A4F8F7-A3BD-4DCA-B054-5FF8A09082F5}.Release|Win32.Build.0 = Release|Win32 + {D24711F8-41FF-4E3E-96BD-F4FFA6A2FB34}.Debug|Win32.ActiveCfg = Debug + {D24711F8-41FF-4E3E-96BD-F4FFA6A2FB34}.Release|Win32.ActiveCfg = Release + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/MasterEditorTWL.suo b/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/MasterEditorTWL.suo new file mode 100644 index 0000000..d164099 Binary files /dev/null and b/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/MasterEditorTWL.suo differ diff --git a/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/MasterEditorTWL/AssemblyInfo.cpp b/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/MasterEditorTWL/AssemblyInfo.cpp new file mode 100644 index 0000000..da9c37b --- /dev/null +++ b/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/MasterEditorTWL/AssemblyInfo.cpp @@ -0,0 +1,40 @@ +#include "stdafx.h" + +using namespace System; +using namespace System::Reflection; +using namespace System::Runtime::CompilerServices; +using namespace System::Runtime::InteropServices; +using namespace System::Security::Permissions; + +// +// AZuɊւʏ͈ȉ̑ZbgƂĐ䂳܂B +// AZuɊ֘AtĂύXɂ́A +// ̑lύXĂB +// +[assembly:AssemblyTitleAttribute("MasterEditorTWL")]; +[assembly:AssemblyDescriptionAttribute("")]; +[assembly:AssemblyConfigurationAttribute("")]; +[assembly:AssemblyCompanyAttribute("CV")]; +[assembly:AssemblyProductAttribute("MasterEditorTWL")]; +[assembly:AssemblyCopyrightAttribute("Copyright (c) CV 2008")]; +[assembly:AssemblyTrademarkAttribute("")]; +[assembly:AssemblyCultureAttribute("")]; + +// +// AZũo[ẂAȉ 4 ‚̒lō\Ă܂: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// ׂĂ̒lw肷邩Â悤 '*' gărWуrhԍ +// lɂ邱Ƃł܂: + +[assembly:AssemblyVersionAttribute("1.9.*")]; + +[assembly:ComVisible(false)]; + +[assembly:CLSCompliantAttribute(true)]; + +[assembly:SecurityPermission(SecurityAction::RequestMinimum, UnmanagedCode = true)]; diff --git a/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/MasterEditorTWL/Debug/BuildLog.htm b/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/MasterEditorTWL/Debug/BuildLog.htm new file mode 100644 index 0000000..6278f60 Binary files /dev/null and b/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/MasterEditorTWL/Debug/BuildLog.htm differ diff --git a/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/MasterEditorTWL/Form1.en.resx b/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/MasterEditorTWL/Form1.en.resx new file mode 100644 index 0000000..f6932dd --- /dev/null +++ b/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/MasterEditorTWL/Form1.en.resx @@ -0,0 +1,556 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + 21, 165 + + + 84, 15 + + + ROM Capacity + + + 103, 19 + + + E (Pre-Check) + + + 10, 193 + + + 9, 20 + + + 34, 54 + + + 26, 24 + + + 259, 15 + + + Remarks - Enter any other related information. + + + 2, 235 + + + 149, 15 + + + PEGI (General) and BBFC + + + 67, 206 + + + 61, 177 + + + 90, 15 + + + PEGI (General) + + + 101, 148 + + + 101, 119 + + + Ages 3 and up + + + Ages 4 and up + + + Ages 7 and up + + + Ages 8 and up + + + Ages 12 and up + + + Ages 15 and up + + + Ages 16 and up + + + Ages 18 and up + + + Ages 4 and up + + + Ages 6 and up + + + Ages 12 and up + + + Ages 16 and up + + + Ages 18 and up + + + Ages 3 and up + + + Ages 7 and up + + + Ages 12 and up + + + Ages 16 and up + + + Ages 18 and up + + + Ages 6 and up + + + Ages 12 and up + + + Ages 16 and up + + + Not appropriate for children + + + EC (Ages 3 and up) + + + E (Ages 6 and up) + + + E10+ (Ages 10 and up) + + + T (Ages 13 and up) + + + M (Ages 17 and up) + + + B (Ages 12 and up) + + + C (Ages 15 and up) + + + D (Ages 17 and up) + + + Z (Ages 18 and up) + + + 102, 24 + + + Japan only + + + USA only + + + Europe only + + + Australia only + + + USA and Australia + + + USA, Europe, and Australia + + + 165, 19 + + + Enter Contact 2 (optional) + + + 61, 15 + + + (Optional) + + + 61, 15 + + + (Optional) + + + Contact 2 + + + 61, 15 + + + (Optional) + + + 61, 15 + + + (Optional) + + + Contact 1 + + + 71, 19 + + + By Hand + + + Submission Method + + + 241, 14 + + + * Reset to 0 when a new master ROM is created + + + 13, 177 + + + 122, 15 + + + (When for >1 market) + + + 229, 19 + + + Foreign version is scheduled for sale + + + 9, 48 + + + 9, 83 + + + 138, 19 + + + Use of Shared 2 File + + + Shared 2 File Size + + + 98, 26 + + + 13, 58 + + + 41, 100 + + + 41, 73 + + + 37, 15 + + + Other + + + 37, 56 + + + ROM Submission Information + + + 260, 22 + + + 257, 6 + + + 260, 22 + + + Save submission data to temp file + + + 260, 22 + + + Load saved submission data + + + 304, 22 + + + Create submission data set + + + 301, 6 + + + 304, 22 + + + Create master ROM only + + + 304, 22 + + + Create middleware list only (XML format) + + + 304, 22 + + + Create middleware list only (HTML format) + + + 213, 15 + + + Display Connection Icon on DSi Menu + + + Launch Control on DSi Menu + + + Information on this tab is required to confirm the amount of space a given Nintendo DSiWare title (NAND application) uses in the system memory. <newline>If the media of the application is a Game Card, there is no need to check the amount of system memory used. + + + 174, 23 + + + 119, 15 + + + Original Size in ROM + + + 308, 23 + + + 45, 46 + + + 161, 228 + + + 214, 211 + + + 42, 127 + + + Amount of System NAND Memory Used by DSiWare Application + + + 244, 19 + + + UGC (User Generated Content) Support + + + Other ROM Specifications + + + Restore Initial Settings + + + You must complete all items on this tab to create a submission checklist and Master ROM. <newline>This information is used as ROM registration data when the Master ROM is created (excluding "Other ROM Specifications"). + + + All + + + 12-year+ + + + 15-year+ + + + Teenager restricted + + + 207, 19 + + + Rating Not Required (Tools Only) + + + Market and Rating Information + + + 122, 15 + + + (When for >1 market) + + + Foreign Version + + + You must complete all items on this tab to create a submission checklist. Enter all information. + + + This tab lists problems in the ROM data file and editing mistakes made when using this program. <newline>Items in red cannot be corrected using this program. You must modify the ROM build settings. <newline>Items in blue indicate problems with the ROM data that can be can corrected using this program. <newline>Items in black indicate errors or omissions in the Submission Info and Company Info tabs. + + + Display Information From + + + 175, 15 + + + Error (Modification is required.) + + + Item Name + + + Start + + + Item Name + + + Start + + \ No newline at end of file diff --git a/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/MasterEditorTWL/Form1.h b/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/MasterEditorTWL/Form1.h new file mode 100644 index 0000000..e062df1 --- /dev/null +++ b/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/MasterEditorTWL/Form1.h @@ -0,0 +1,6034 @@ +#pragma once + +#include +#include "common.h" +#include "srl.h" +#include "deliverable.h" +#include "crc_whole.h" +#include "utility.h" +#include "lang.h" +#include "FormError.h" +#include "Form1_const.h" +#include "message_bank.h" +#include "middleware_name_list.h" + +namespace MasterEditorTWL { + + using namespace System; + using namespace System::ComponentModel; + using namespace System::Collections; + using namespace System::Windows::Forms; + using namespace System::Data; + using namespace System::Drawing; + + /// + /// Form1 ̊Tv + /// + /// x: ̃NX̖OύXꍇÃNXˑ邷ׂĂ .resx t@CɊ֘Atꂽ + /// }l[W \[X RpC c[ɑ΂ 'Resource File Name' vpeB + /// ύXKv܂B̕ύXsȂƁA + /// fUCiƁÃtH[Ɋ֘Atꂽ[JCYς݃\[XƂA + /// ݂ɗpłȂȂ܂B + /// + public ref class Form1 : public System::Windows::Forms::Form + { + ///////////////////////////////////////////// + // ƎljtB[h + ///////////////////////////////////////////// + private: + // SRL(ROMwb_܂) + RCSrl ^hSrl; + + // }X^ + RCDeliverable ^hDeliv; + + // TADǂݍ񂾂ǂ(SRLǂݍ񂾏ꍇfalse) + System::Boolean IsLoadTad; + + // ޏo̓[h(m[}XML or XML Spread Sheet) + System::Boolean IsSpreadSheet; + + // [hI[[h + System::Boolean IsReadOnly; + + // \ڂ̗Lő傫ςO[v{bNX̂ƂƂ̑傫 + System::Drawing::Size SizeGboxExFlags; + System::Boolean IsVisibleGboxExFlags; + + // ̓G[ + System::Collections::Generic::List ^hErrorList; + System::Collections::Generic::List ^hWarnList; + + // SRLɓo^ȂROMdlǂݍݎ̏Ԃɖ߂dg + System::Boolean IsCheckedUGC; // ǂݍݎɃ`FbNĂ + System::Boolean IsCheckedPhotoEx; + + // G[bZ[W + RCMessageBank ^hMsg; + + // ~hEFÃXg + RCMiddlewareNameList ^hMiddlewareNameList; + + // ftHg(N)̃P[ + System::String ^hDefaultCultureName; + + ///////////////////////////////////////////// + // VCljtB[h + ///////////////////////////////////////////// + private: System::Windows::Forms::GroupBox^ gboxCRC; + private: System::Windows::Forms::TextBox^ tboxWholeCRC; + + private: System::Windows::Forms::Label^ labTitleName; + private: System::Windows::Forms::Label^ labGameCode; + private: System::Windows::Forms::TextBox^ tboxGameCode; + private: System::Windows::Forms::Label^ labMakerCode; + private: System::Windows::Forms::TextBox^ tboxMakerCode; + private: System::Windows::Forms::Label^ labRomType; + private: System::Windows::Forms::ComboBox^ combBackup; + private: System::Windows::Forms::Label^ labRomSize; + private: System::Windows::Forms::TextBox^ tboxRomLatency; + private: System::Windows::Forms::Label^ labBackup; + private: System::Windows::Forms::Label^ labPlatform; + private: System::Windows::Forms::Label^ labRomCRC; + private: System::Windows::Forms::Label^ labHeaderCRC; + private: System::Windows::Forms::TextBox^ tboxHeaderCRC; + private: System::Windows::Forms::TextBox^ tboxBackupOther; + private: System::Windows::Forms::Label^ labCaption; + private: System::Windows::Forms::TextBox^ tboxCaption; + + + + private: System::Windows::Forms::TextBox^ tboxRomSize; + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + private: System::Windows::Forms::Label^ labOFLC; + private: System::Windows::Forms::Label^ labPEGI_BBFC; + private: System::Windows::Forms::Label^ labPEGI_PRT; + private: System::Windows::Forms::Label^ labPEGI; + private: System::Windows::Forms::Label^ labUSK; + private: System::Windows::Forms::Label^ labESRB; + private: System::Windows::Forms::Label^ labCERO; + + + + + + + + private: System::Windows::Forms::ComboBox^ combOFLC; + private: System::Windows::Forms::ComboBox^ combPEGI_BBFC; + private: System::Windows::Forms::ComboBox^ combPEGI_PRT; + private: System::Windows::Forms::ComboBox^ combPEGI; + private: System::Windows::Forms::ComboBox^ combUSK; + private: System::Windows::Forms::ComboBox^ combESRB; + private: System::Windows::Forms::ComboBox^ combCERO; + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + private: System::Windows::Forms::CheckBox^ cboxIsEULA; + + + + + + + + + + + + + + + + + + + + + + + + + + + + private: System::Windows::Forms::CheckBox^ cboxIsInputPerson2; + private: System::Windows::Forms::GroupBox^ gboxPerson2; + private: System::Windows::Forms::Label^ labNTSC2Sur; + private: System::Windows::Forms::TextBox^ tboxNTSC2; + private: System::Windows::Forms::Label^ labNTSC2Pre; + private: System::Windows::Forms::TextBox^ tboxFax2; + private: System::Windows::Forms::TextBox^ tboxMail2; + private: System::Windows::Forms::TextBox^ tboxTel2; + private: System::Windows::Forms::TextBox^ tboxFurigana2; + private: System::Windows::Forms::TextBox^ tboxPerson2; + private: System::Windows::Forms::TextBox^ tboxDepart2; + private: System::Windows::Forms::Label^ labDepart2; + private: System::Windows::Forms::TextBox^ tboxCompany2; + private: System::Windows::Forms::Label^ labMail2; + private: System::Windows::Forms::Label^ labFax2; + private: System::Windows::Forms::Label^ labTel2; + private: System::Windows::Forms::Label^ labFurigana2; + private: System::Windows::Forms::Label^ labPerson2; + private: System::Windows::Forms::Label^ labCompany2; + private: System::Windows::Forms::GroupBox^ gboxPerson1; + private: System::Windows::Forms::Label^ labNTSC1Sur; + private: System::Windows::Forms::Label^ labNTSC1Pre; + private: System::Windows::Forms::TextBox^ tboxNTSC1; + private: System::Windows::Forms::TextBox^ tboxFax1; + private: System::Windows::Forms::TextBox^ tboxMail1; + private: System::Windows::Forms::TextBox^ tboxTel1; + private: System::Windows::Forms::TextBox^ tboxFurigana1; + private: System::Windows::Forms::TextBox^ tboxPerson1; + private: System::Windows::Forms::TextBox^ tboxDepart1; + private: System::Windows::Forms::Label^ labDepart1; + private: System::Windows::Forms::TextBox^ tboxCompany1; + private: System::Windows::Forms::Label^ labMail1; + private: System::Windows::Forms::Label^ labFax1; + private: System::Windows::Forms::Label^ labTel1; + private: System::Windows::Forms::Label^ labFurigana1; + private: System::Windows::Forms::Label^ labPerson1; + private: System::Windows::Forms::Label^ labCompany1; + + private: System::Windows::Forms::TextBox^ tboxRemasterVer; + private: System::Windows::Forms::TextBox^ tboxProductCode2; + + private: System::Windows::Forms::TextBox^ tboxProductCode1; + private: System::Windows::Forms::TextBox^ tboxProductName; + + + + + + + + + + private: System::Windows::Forms::Label^ labProductCode2; + private: System::Windows::Forms::Label^ labProductCode1; + private: System::Windows::Forms::DateTimePicker^ dateSubmit; + private: System::Windows::Forms::DateTimePicker^ dateRelease; + + private: System::Windows::Forms::CheckBox^ cboxRemasterVerE; + private: System::Windows::Forms::Label^ labCapSubmitVer; + private: System::Windows::Forms::NumericUpDown^ numSubmitVersion; + private: System::Windows::Forms::Label^ labSubmitVer; + private: System::Windows::Forms::Label^ labRemasterVer; + + + + + + + + + + private: System::Windows::Forms::GroupBox^ gboxSubmitWay; + private: System::Windows::Forms::RadioButton^ rSubmitHand; + private: System::Windows::Forms::RadioButton^ rSubmitPost; + + private: System::Windows::Forms::Label^ labSubmiteDate; + private: System::Windows::Forms::Label^ labReleaseDate; + private: System::Windows::Forms::Label^ labProductCode; + private: System::Windows::Forms::Label^ labProductName; +private: System::Windows::Forms::ComboBox^ combRegion; + + + + + + + + + + + + + + + + + + + +private: System::Windows::Forms::Label^ labRegion; + + + + + + + + + +private: System::Windows::Forms::Label^ labProductCode2Foreign; +private: System::Windows::Forms::CheckBox^ cboxReleaseForeign; +private: System::Windows::Forms::Label^ labProductNameForeign; +private: System::Windows::Forms::TextBox^ tboxProductNameForeign; +private: System::Windows::Forms::Label^ labProductCode1Foreign; +private: System::Windows::Forms::TextBox^ tboxProductCode1Foreign; +private: System::Windows::Forms::Label^ labProductCodeForeign; +private: System::Windows::Forms::TextBox^ tboxProductCode2Foreign1; + + + + + + + + + + + + + + +private: System::Windows::Forms::GroupBox^ gboxShared2Size; +private: System::Windows::Forms::Label^ labShared2Size5; +private: System::Windows::Forms::Label^ labShared2Size4; +private: System::Windows::Forms::Label^ labShared2Size3; +private: System::Windows::Forms::Label^ labShared2Size2; +private: System::Windows::Forms::Label^ labShared2Size1; +private: System::Windows::Forms::Label^ labShared2Size0; + + + + + + +private: System::Windows::Forms::TextBox^ tboxShared2Size5; +private: System::Windows::Forms::TextBox^ tboxShared2Size4; +private: System::Windows::Forms::TextBox^ tboxShared2Size3; +private: System::Windows::Forms::TextBox^ tboxShared2Size2; +private: System::Windows::Forms::TextBox^ tboxShared2Size1; +private: System::Windows::Forms::TextBox^ tboxShared2Size0; +private: System::Windows::Forms::CheckBox^ cboxIsShared2; + +private: System::Windows::Forms::Label^ labLib; + +private: System::Windows::Forms::Label^ labSDK; + +private: System::Windows::Forms::GroupBox^ gboxTWLExInfo; + + + +private: System::Windows::Forms::Label^ labByte1; +private: System::Windows::Forms::Label^ labHex4; +private: System::Windows::Forms::Label^ labHex3; +private: System::Windows::Forms::TextBox^ tboxIsCodec; +private: System::Windows::Forms::Label^ labIsCodec; +private: System::Windows::Forms::Label^ labNormalRomOffset; +private: System::Windows::Forms::TextBox^ tboxNormalRomOffset; +private: System::Windows::Forms::CheckBox^ cboxIsSubBanner; +private: System::Windows::Forms::Label^ labKeyTableRomOffset; + +private: System::Windows::Forms::TextBox^ tboxPrivateSize; +private: System::Windows::Forms::Label^ labPrivateSize; +private: System::Windows::Forms::TextBox^ tboxKeyTableRomOffset; +private: System::Windows::Forms::CheckBox^ cboxIsNormalJump; +private: System::Windows::Forms::CheckBox^ cboxIsTmpJump; +private: System::Windows::Forms::Label^ labPublicSize; +private: System::Windows::Forms::TextBox^ tboxPublicSize; + + +private: System::Windows::Forms::GroupBox^ gboxAccess; +private: System::Windows::Forms::Label^ labAccessOther; +private: System::Windows::Forms::TextBox^ tboxAccessOther; +private: System::Windows::Forms::TextBox^ tboxIsGameCardOn; +private: System::Windows::Forms::Label^ labIsGameCardOn; +private: System::Windows::Forms::CheckBox^ cboxIsNAND; +private: System::Windows::Forms::CheckBox^ cboxIsSD; + + + +private: System::Windows::Forms::GroupBox^ gboxTitleID; +private: System::Windows::Forms::Label^ labHex2; + +private: System::Windows::Forms::TextBox^ tboxTitleIDLo; +private: System::Windows::Forms::Label^ labTitleIDLo; +private: System::Windows::Forms::Label^ labTitleIDHi; +private: System::Windows::Forms::TextBox^ tboxTitleIDHi; +private: System::Windows::Forms::TextBox^ tboxAppTypeOther; + +private: System::Windows::Forms::Label^ labAppTypeOther; + +private: System::Windows::Forms::Label^ labCaptionEx; +private: System::Windows::Forms::TextBox^ tboxCaptionEx; + + + +private: System::Windows::Forms::TextBox^ tboxProductCode2Foreign3; + +private: System::Windows::Forms::TextBox^ tboxProductCode2Foreign2; +private: System::Windows::Forms::Label^ labMultiForeign1; + + + +private: System::Windows::Forms::GroupBox^ gboxProd; + + + +private: System::Windows::Forms::MenuStrip^ menuStripAbove; + +private: System::Windows::Forms::ToolStripMenuItem^ stripFile; +private: System::Windows::Forms::ToolStripMenuItem^ stripItemOpenRom; + +private: System::Windows::Forms::ToolStripMenuItem^ stripItemSaveTemp; +private: System::Windows::Forms::ToolStripMenuItem^ stripItemLoadTemp; +private: System::Windows::Forms::ToolStripMenuItem^ stripMaster; +private: System::Windows::Forms::ToolStripMenuItem^ stripItemMasterRom; +private: System::Windows::Forms::ToolStripMenuItem^ stripItemSheet; +private: System::Windows::Forms::ToolStripMenuItem^ stripLang; +private: System::Windows::Forms::ToolStripMenuItem^ stripItemEnglish; +private: System::Windows::Forms::ToolStripMenuItem^ stripItemJapanese; +private: System::Windows::Forms::TabControl^ tabMain; +private: System::Windows::Forms::TabPage^ tabRomInfo; + + +private: System::Windows::Forms::TabPage^ tabTWLInfo; +private: System::Windows::Forms::TabPage^ tabRomEditInfo; +private: System::Windows::Forms::TabPage^ tabSubmitInfo; + + + + + + + +private: System::Windows::Forms::TabPage^ tabCompanyInfo; + +private: System::Windows::Forms::GroupBox^ gboxForeign; +private: System::Windows::Forms::GroupBox^ gboxExFlags; + + + + + +private: System::Windows::Forms::GroupBox^ gboxParental; +private: System::Windows::Forms::TextBox^ tboxGuideRomInfo; +private: System::Windows::Forms::TextBox^ tboxGuideTWLInfo; +private: System::Windows::Forms::TextBox^ tboxGuideRomEditInfo; +private: System::Windows::Forms::TextBox^ tboxGuideSubmitInfo; +private: System::Windows::Forms::TextBox^ tboxGuideCompanyInfo; + + + + + + + + + + +private: System::Windows::Forms::Label^ labFile; + + +public: +private: + +public: + + + + + + +public: +private: + +public: + + + + + + + + + + + + + + + + + + +private: System::Windows::Forms::Label^ labMultiForeign2; +private: System::Windows::Forms::DataGridView^ gridLibrary; + + + + + + + + + + +private: System::Windows::Forms::Label^ labAssemblyVersion; +private: System::Windows::Forms::Label^ labArbit4; +private: System::Windows::Forms::Label^ labArbit3; +private: System::Windows::Forms::Label^ labArbit2; +private: System::Windows::Forms::Label^ labArbit1; +private: System::Windows::Forms::Button^ butSetBack; +private: System::Windows::Forms::Label^ labAppType; + +private: System::Windows::Forms::Label^ labMedia; +private: System::Windows::Forms::TextBox^ tboxAppType; + +private: System::Windows::Forms::TextBox^ tboxMedia; +private: System::Windows::Forms::Label^ labProductNameLimit; +private: System::Windows::Forms::Label^ labProductNameLimitForeign; + + + + + + + + + + + + + + + + + + + + + + + + + +private: System::Windows::Forms::ToolStripMenuItem^ stripItemMiddlewareXml; +private: System::Windows::Forms::ToolStripMenuItem^ stripItemMiddlewareHtml; +private: System::Windows::Forms::ToolStripSeparator^ stripItemSepFile1; +private: System::Windows::Forms::ToolStripSeparator^ stripItemSepMaster1; +private: System::Windows::Forms::GroupBox^ gboxOtherSpec; +private: System::Windows::Forms::CheckBox^ cboxIsUGC; +private: System::Windows::Forms::CheckBox^ cboxIsPhotoEx; + + + + + + + + + + + + +private: System::Windows::Forms::GroupBox^ gboxLaunch; +private: System::Windows::Forms::Label^ labConnectIcon; +private: System::Windows::Forms::TextBox^ tboxConnectIcon; +private: System::Windows::Forms::Label^ labIsGameCardOn2; +private: System::Windows::Forms::CheckBox^ cboxIsUnnecessaryRating; +private: System::Windows::Forms::TabPage^ tabNandSizeInfo; + +private: System::Windows::Forms::Label^ labSumSize2; + + + +private: System::Windows::Forms::Label^ labSrlSize; +private: System::Windows::Forms::Label^ labSubBannerSize; +private: System::Windows::Forms::Label^ labTmdSize; +private: System::Windows::Forms::Label^ labNandSize; + + +private: System::Windows::Forms::Label^ labNandSizeFS; +private: System::Windows::Forms::Label^ labSumSize; + + +private: System::Windows::Forms::GroupBox^ gboxNandSize; + + +private: System::Windows::Forms::TextBox^ tboxSumSize; + +private: System::Windows::Forms::TextBox^ tboxTmdSizeFS; + +private: System::Windows::Forms::TextBox^ tboxSubBannerSizeFS; + +private: System::Windows::Forms::TextBox^ tboxPrivateSizeFS; + +private: System::Windows::Forms::TextBox^ tboxPublicSizeFS; + +private: System::Windows::Forms::TextBox^ tboxSrlSizeFS; + +private: System::Windows::Forms::TextBox^ tboxTmdSize; + +private: System::Windows::Forms::TextBox^ tboxSubBannerSize; + + + + +private: System::Windows::Forms::Label^ labArrow5; + +private: System::Windows::Forms::Label^ labArrow4; + +private: System::Windows::Forms::Label^ labArrow3; + + + +private: System::Windows::Forms::Label^ labArrow2; + +private: System::Windows::Forms::Label^ labArrow1; +private: System::Windows::Forms::TextBox^ tboxGuideNandSizeInfo; + + +private: System::Windows::Forms::TextBox^ tboxSrlSize; +private: System::Windows::Forms::Label^ labBracketR; +private: System::Windows::Forms::Label^ labBracketL; +private: System::Windows::Forms::TextBox^ tboxSumSizeMB; +private: System::Windows::Forms::DataGridView^ gridSDK; + + + + + + +private: System::Windows::Forms::DataGridViewTextBoxColumn^ dataSDKVer; +private: System::Windows::Forms::Label^ labPhotoAccess; +private: System::Windows::Forms::TextBox^ tboxPhotoAccess; + + + +private: System::Windows::Forms::RadioButton^ rSubmitInternet; +private: System::Windows::Forms::Label^ labGRB; +private: System::Windows::Forms::ComboBox^ combGRB; +private: System::Windows::Forms::Label^ labSDAccessRight; +private: System::Windows::Forms::TextBox^ tboxSDAccessRight; +private: System::Windows::Forms::ToolStripMenuItem^ exportToolStripMenuItem; +private: System::Windows::Forms::ToolStripMenuItem^ stripItemRomInfoList; +private: System::Windows::Forms::ToolStripSeparator^ toolStripSeparator2; +private: System::Windows::Forms::ToolStripMenuItem^ stripItemErrorListRead; +private: System::Windows::Forms::ToolStripMenuItem^ stripItemErrorListCurrent; +private: System::Windows::Forms::ToolStripSeparator^ toolStripSeparator1; +private: System::Windows::Forms::ToolStripMenuItem^ stripItemRomInfoAndErrorListRead; +private: System::Windows::Forms::ToolStripMenuItem^ stripItemRomInfoAndErrorListCurrent; +private: System::Windows::Forms::TextBox^ tboxWarningChinaRating; +private: System::Windows::Forms::TextBox^ tboxPurposeOther; +private: System::Windows::Forms::GroupBox^ gboxPurposeNand; + + + + + +private: System::Windows::Forms::GroupBox^ gboxPurposeCard; +private: System::Windows::Forms::RadioButton^ rPurposeCardProduction; +private: System::Windows::Forms::RadioButton^ rPurposeCardDistribution; +private: System::Windows::Forms::RadioButton^ rPurposeOther; + + + + + + + + + + + + +private: System::Windows::Forms::RadioButton^ rPurposeCardKiosk; + + + + +private: System::Windows::Forms::GroupBox^ gboxPurpose; +private: System::Windows::Forms::RadioButton^ rPurposeDSiWare; + + + + + + + + +private: System::Windows::Forms::TabPage^ tabErrorInfo; +private: System::Windows::Forms::TextBox^ tboxGuideErrorInfo; +private: System::Windows::Forms::GroupBox^ gboxErrorTiming; +private: System::Windows::Forms::RadioButton^ rErrorCurrent; +private: System::Windows::Forms::RadioButton^ rErrorReading; +private: System::Windows::Forms::Label^ labWarn; +private: System::Windows::Forms::Label^ labError; +public: System::Windows::Forms::DataGridView^ gridWarn; +private: +private: System::Windows::Forms::DataGridViewTextBoxColumn^ colWarnName; +public: +private: System::Windows::Forms::DataGridViewTextBoxColumn^ colWarnBegin; +private: System::Windows::Forms::DataGridViewTextBoxColumn^ colWarnEnd; +private: System::Windows::Forms::DataGridViewTextBoxColumn^ colWarnCause; +public: System::Windows::Forms::DataGridView^ gridError; +private: +private: System::Windows::Forms::DataGridViewTextBoxColumn^ colErrorName; +public: +private: System::Windows::Forms::DataGridViewTextBoxColumn^ colErrorBegin; +private: System::Windows::Forms::DataGridViewTextBoxColumn^ colErrorEnd; +private: System::Windows::Forms::DataGridViewTextBoxColumn^ colErrorCause; +private: System::Windows::Forms::Label^ labPurposeInError; +private: System::Windows::Forms::TextBox^ tboxPurposeInError; +private: System::Windows::Forms::DataGridViewTextBoxColumn^ colLibPublisher; +private: System::Windows::Forms::DataGridViewTextBoxColumn^ colLibName; +private: System::Windows::Forms::RadioButton^ rPurposeCardTouchTryDS; +private: System::Windows::Forms::Label^ labPrivateSaveDataPurpose; +private: System::Windows::Forms::TextBox^ tboxPrivateSaveDataPurpose; +private: System::Windows::Forms::TextBox^ tboxWarningPrivateSaveDataPurpose; + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + private: System::Windows::Forms::TextBox^ tboxPlatform; + + public: + Form1(void) + { + InitializeComponent(); + // + //TODO: ɃRXgN^ R[hlj܂ + // + this->construct(); + } + + protected: + /// + /// gp̃\[XׂăN[Abv܂B + /// + ~Form1() + { + this->destruct(); + + if (components) + { + delete components; + } + } + private: System::Windows::Forms::TextBox^ tboxFile; + protected: + + + private: System::Windows::Forms::GroupBox^ gboxSrl; + private: System::Windows::Forms::TextBox^ tboxTitleName; + + + + private: + /// + /// KvȃfUCiϐłB + /// + System::ComponentModel::Container ^components; + +#pragma region Windows Form Designer generated code + /// + /// fUCi T|[gɕKvȃ\bhłB̃\bh̓e + /// R[h GfB^ŕύXȂłB + /// + void InitializeComponent(void) + { + System::ComponentModel::ComponentResourceManager^ resources = (gcnew System::ComponentModel::ComponentResourceManager(Form1::typeid)); + System::Windows::Forms::DataGridViewCellStyle^ dataGridViewCellStyle1 = (gcnew System::Windows::Forms::DataGridViewCellStyle()); + System::Windows::Forms::DataGridViewCellStyle^ dataGridViewCellStyle2 = (gcnew System::Windows::Forms::DataGridViewCellStyle()); + System::Windows::Forms::DataGridViewCellStyle^ dataGridViewCellStyle3 = (gcnew System::Windows::Forms::DataGridViewCellStyle()); + System::Windows::Forms::DataGridViewCellStyle^ dataGridViewCellStyle4 = (gcnew System::Windows::Forms::DataGridViewCellStyle()); + System::Windows::Forms::DataGridViewCellStyle^ dataGridViewCellStyle5 = (gcnew System::Windows::Forms::DataGridViewCellStyle()); + this->tboxFile = (gcnew System::Windows::Forms::TextBox()); + this->gboxSrl = (gcnew System::Windows::Forms::GroupBox()); + this->tboxRemasterVer = (gcnew System::Windows::Forms::TextBox()); + this->tboxRomSize = (gcnew System::Windows::Forms::TextBox()); + this->tboxPlatform = (gcnew System::Windows::Forms::TextBox()); + this->labPlatform = (gcnew System::Windows::Forms::Label()); + this->tboxRomLatency = (gcnew System::Windows::Forms::TextBox()); + this->labRomSize = (gcnew System::Windows::Forms::Label()); + this->labRomType = (gcnew System::Windows::Forms::Label()); + this->tboxMakerCode = (gcnew System::Windows::Forms::TextBox()); + this->cboxRemasterVerE = (gcnew System::Windows::Forms::CheckBox()); + this->labMakerCode = (gcnew System::Windows::Forms::Label()); + this->labGameCode = (gcnew System::Windows::Forms::Label()); + this->tboxGameCode = (gcnew System::Windows::Forms::TextBox()); + this->labTitleName = (gcnew System::Windows::Forms::Label()); + this->labRemasterVer = (gcnew System::Windows::Forms::Label()); + this->tboxTitleName = (gcnew System::Windows::Forms::TextBox()); + this->labBackup = (gcnew System::Windows::Forms::Label()); + this->combBackup = (gcnew System::Windows::Forms::ComboBox()); + this->tboxBackupOther = (gcnew System::Windows::Forms::TextBox()); + this->gboxCRC = (gcnew System::Windows::Forms::GroupBox()); + this->labRomCRC = (gcnew System::Windows::Forms::Label()); + this->labHeaderCRC = (gcnew System::Windows::Forms::Label()); + this->tboxHeaderCRC = (gcnew System::Windows::Forms::TextBox()); + this->tboxWholeCRC = (gcnew System::Windows::Forms::TextBox()); + this->labCaption = (gcnew System::Windows::Forms::Label()); + this->tboxCaption = (gcnew System::Windows::Forms::TextBox()); + this->labOFLC = (gcnew System::Windows::Forms::Label()); + this->labPEGI_BBFC = (gcnew System::Windows::Forms::Label()); + this->labPEGI_PRT = (gcnew System::Windows::Forms::Label()); + this->labPEGI = (gcnew System::Windows::Forms::Label()); + this->labUSK = (gcnew System::Windows::Forms::Label()); + this->labESRB = (gcnew System::Windows::Forms::Label()); + this->labCERO = (gcnew System::Windows::Forms::Label()); + this->combOFLC = (gcnew System::Windows::Forms::ComboBox()); + this->combPEGI_BBFC = (gcnew System::Windows::Forms::ComboBox()); + this->combPEGI_PRT = (gcnew System::Windows::Forms::ComboBox()); + this->combPEGI = (gcnew System::Windows::Forms::ComboBox()); + this->combUSK = (gcnew System::Windows::Forms::ComboBox()); + this->combESRB = (gcnew System::Windows::Forms::ComboBox()); + this->combCERO = (gcnew System::Windows::Forms::ComboBox()); + this->labRegion = (gcnew System::Windows::Forms::Label()); + this->cboxIsEULA = (gcnew System::Windows::Forms::CheckBox()); + this->combRegion = (gcnew System::Windows::Forms::ComboBox()); + this->cboxIsInputPerson2 = (gcnew System::Windows::Forms::CheckBox()); + this->gboxPerson2 = (gcnew System::Windows::Forms::GroupBox()); + this->labArbit4 = (gcnew System::Windows::Forms::Label()); + this->labArbit3 = (gcnew System::Windows::Forms::Label()); + this->labNTSC2Sur = (gcnew System::Windows::Forms::Label()); + this->tboxNTSC2 = (gcnew System::Windows::Forms::TextBox()); + this->labFax2 = (gcnew System::Windows::Forms::Label()); + this->labNTSC2Pre = (gcnew System::Windows::Forms::Label()); + this->tboxFax2 = (gcnew System::Windows::Forms::TextBox()); + this->tboxMail2 = (gcnew System::Windows::Forms::TextBox()); + this->tboxTel2 = (gcnew System::Windows::Forms::TextBox()); + this->tboxFurigana2 = (gcnew System::Windows::Forms::TextBox()); + this->tboxPerson2 = (gcnew System::Windows::Forms::TextBox()); + this->tboxDepart2 = (gcnew System::Windows::Forms::TextBox()); + this->labDepart2 = (gcnew System::Windows::Forms::Label()); + this->tboxCompany2 = (gcnew System::Windows::Forms::TextBox()); + this->labMail2 = (gcnew System::Windows::Forms::Label()); + this->labTel2 = (gcnew System::Windows::Forms::Label()); + this->labFurigana2 = (gcnew System::Windows::Forms::Label()); + this->labPerson2 = (gcnew System::Windows::Forms::Label()); + this->labCompany2 = (gcnew System::Windows::Forms::Label()); + this->gboxPerson1 = (gcnew System::Windows::Forms::GroupBox()); + this->labArbit2 = (gcnew System::Windows::Forms::Label()); + this->labArbit1 = (gcnew System::Windows::Forms::Label()); + this->labNTSC1Sur = (gcnew System::Windows::Forms::Label()); + this->labFax1 = (gcnew System::Windows::Forms::Label()); + this->labNTSC1Pre = (gcnew System::Windows::Forms::Label()); + this->tboxNTSC1 = (gcnew System::Windows::Forms::TextBox()); + this->tboxFax1 = (gcnew System::Windows::Forms::TextBox()); + this->tboxMail1 = (gcnew System::Windows::Forms::TextBox()); + this->tboxTel1 = (gcnew System::Windows::Forms::TextBox()); + this->tboxFurigana1 = (gcnew System::Windows::Forms::TextBox()); + this->tboxPerson1 = (gcnew System::Windows::Forms::TextBox()); + this->tboxDepart1 = (gcnew System::Windows::Forms::TextBox()); + this->labDepart1 = (gcnew System::Windows::Forms::Label()); + this->tboxCompany1 = (gcnew System::Windows::Forms::TextBox()); + this->labMail1 = (gcnew System::Windows::Forms::Label()); + this->labTel1 = (gcnew System::Windows::Forms::Label()); + this->labFurigana1 = (gcnew System::Windows::Forms::Label()); + this->labPerson1 = (gcnew System::Windows::Forms::Label()); + this->labCompany1 = (gcnew System::Windows::Forms::Label()); + this->tboxProductCode2 = (gcnew System::Windows::Forms::TextBox()); + this->tboxProductCode1 = (gcnew System::Windows::Forms::TextBox()); + this->tboxProductName = (gcnew System::Windows::Forms::TextBox()); + this->labProductCode2 = (gcnew System::Windows::Forms::Label()); + this->labProductCode1 = (gcnew System::Windows::Forms::Label()); + this->dateSubmit = (gcnew System::Windows::Forms::DateTimePicker()); + this->dateRelease = (gcnew System::Windows::Forms::DateTimePicker()); + this->gboxSubmitWay = (gcnew System::Windows::Forms::GroupBox()); + this->rSubmitInternet = (gcnew System::Windows::Forms::RadioButton()); + this->rSubmitHand = (gcnew System::Windows::Forms::RadioButton()); + this->rSubmitPost = (gcnew System::Windows::Forms::RadioButton()); + this->labSubmiteDate = (gcnew System::Windows::Forms::Label()); + this->labReleaseDate = (gcnew System::Windows::Forms::Label()); + this->labProductCode = (gcnew System::Windows::Forms::Label()); + this->labProductName = (gcnew System::Windows::Forms::Label()); + this->labCapSubmitVer = (gcnew System::Windows::Forms::Label()); + this->numSubmitVersion = (gcnew System::Windows::Forms::NumericUpDown()); + this->labSubmitVer = (gcnew System::Windows::Forms::Label()); + this->labMultiForeign1 = (gcnew System::Windows::Forms::Label()); + this->tboxProductCode2Foreign3 = (gcnew System::Windows::Forms::TextBox()); + this->tboxProductCode2Foreign2 = (gcnew System::Windows::Forms::TextBox()); + this->labProductCode2Foreign = (gcnew System::Windows::Forms::Label()); + this->cboxReleaseForeign = (gcnew System::Windows::Forms::CheckBox()); + this->labProductNameForeign = (gcnew System::Windows::Forms::Label()); + this->tboxProductNameForeign = (gcnew System::Windows::Forms::TextBox()); + this->labProductCode1Foreign = (gcnew System::Windows::Forms::Label()); + this->tboxProductCode1Foreign = (gcnew System::Windows::Forms::TextBox()); + this->labProductCodeForeign = (gcnew System::Windows::Forms::Label()); + this->tboxProductCode2Foreign1 = (gcnew System::Windows::Forms::TextBox()); + this->gboxShared2Size = (gcnew System::Windows::Forms::GroupBox()); + this->labShared2Size5 = (gcnew System::Windows::Forms::Label()); + this->labShared2Size4 = (gcnew System::Windows::Forms::Label()); + this->labShared2Size3 = (gcnew System::Windows::Forms::Label()); + this->labShared2Size2 = (gcnew System::Windows::Forms::Label()); + this->labShared2Size1 = (gcnew System::Windows::Forms::Label()); + this->labShared2Size0 = (gcnew System::Windows::Forms::Label()); + this->tboxShared2Size5 = (gcnew System::Windows::Forms::TextBox()); + this->tboxShared2Size4 = (gcnew System::Windows::Forms::TextBox()); + this->tboxShared2Size3 = (gcnew System::Windows::Forms::TextBox()); + this->tboxShared2Size2 = (gcnew System::Windows::Forms::TextBox()); + this->tboxShared2Size1 = (gcnew System::Windows::Forms::TextBox()); + this->tboxShared2Size0 = (gcnew System::Windows::Forms::TextBox()); + this->cboxIsShared2 = (gcnew System::Windows::Forms::CheckBox()); + this->labLib = (gcnew System::Windows::Forms::Label()); + this->labSDK = (gcnew System::Windows::Forms::Label()); + this->gboxTWLExInfo = (gcnew System::Windows::Forms::GroupBox()); + this->labByte1 = (gcnew System::Windows::Forms::Label()); + this->labHex4 = (gcnew System::Windows::Forms::Label()); + this->tboxIsCodec = (gcnew System::Windows::Forms::TextBox()); + this->labIsCodec = (gcnew System::Windows::Forms::Label()); + this->labKeyTableRomOffset = (gcnew System::Windows::Forms::Label()); + this->tboxKeyTableRomOffset = (gcnew System::Windows::Forms::TextBox()); + this->labHex3 = (gcnew System::Windows::Forms::Label()); + this->labNormalRomOffset = (gcnew System::Windows::Forms::Label()); + this->tboxNormalRomOffset = (gcnew System::Windows::Forms::TextBox()); + this->tboxPrivateSize = (gcnew System::Windows::Forms::TextBox()); + this->labPrivateSize = (gcnew System::Windows::Forms::Label()); + this->labPublicSize = (gcnew System::Windows::Forms::Label()); + this->tboxPublicSize = (gcnew System::Windows::Forms::TextBox()); + this->cboxIsSubBanner = (gcnew System::Windows::Forms::CheckBox()); + this->cboxIsNormalJump = (gcnew System::Windows::Forms::CheckBox()); + this->cboxIsTmpJump = (gcnew System::Windows::Forms::CheckBox()); + this->gboxAccess = (gcnew System::Windows::Forms::GroupBox()); + this->labSDAccessRight = (gcnew System::Windows::Forms::Label()); + this->tboxSDAccessRight = (gcnew System::Windows::Forms::TextBox()); + this->tboxPhotoAccess = (gcnew System::Windows::Forms::TextBox()); + this->labPhotoAccess = (gcnew System::Windows::Forms::Label()); + this->labAccessOther = (gcnew System::Windows::Forms::Label()); + this->tboxAccessOther = (gcnew System::Windows::Forms::TextBox()); + this->cboxIsNAND = (gcnew System::Windows::Forms::CheckBox()); + this->cboxIsSD = (gcnew System::Windows::Forms::CheckBox()); + this->labIsGameCardOn2 = (gcnew System::Windows::Forms::Label()); + this->tboxIsGameCardOn = (gcnew System::Windows::Forms::TextBox()); + this->labIsGameCardOn = (gcnew System::Windows::Forms::Label()); + this->gboxTitleID = (gcnew System::Windows::Forms::GroupBox()); + this->labAppType = (gcnew System::Windows::Forms::Label()); + this->tboxAppType = (gcnew System::Windows::Forms::TextBox()); + this->labHex2 = (gcnew System::Windows::Forms::Label()); + this->tboxTitleIDLo = (gcnew System::Windows::Forms::TextBox()); + this->labTitleIDLo = (gcnew System::Windows::Forms::Label()); + this->labTitleIDHi = (gcnew System::Windows::Forms::Label()); + this->tboxTitleIDHi = (gcnew System::Windows::Forms::TextBox()); + this->tboxAppTypeOther = (gcnew System::Windows::Forms::TextBox()); + this->labAppTypeOther = (gcnew System::Windows::Forms::Label()); + this->labMedia = (gcnew System::Windows::Forms::Label()); + this->tboxMedia = (gcnew System::Windows::Forms::TextBox()); + this->labCaptionEx = (gcnew System::Windows::Forms::Label()); + this->tboxCaptionEx = (gcnew System::Windows::Forms::TextBox()); + this->gboxProd = (gcnew System::Windows::Forms::GroupBox()); + this->menuStripAbove = (gcnew System::Windows::Forms::MenuStrip()); + this->stripFile = (gcnew System::Windows::Forms::ToolStripMenuItem()); + this->stripItemOpenRom = (gcnew System::Windows::Forms::ToolStripMenuItem()); + this->stripItemSepFile1 = (gcnew System::Windows::Forms::ToolStripSeparator()); + this->stripItemSaveTemp = (gcnew System::Windows::Forms::ToolStripMenuItem()); + this->stripItemLoadTemp = (gcnew System::Windows::Forms::ToolStripMenuItem()); + this->stripMaster = (gcnew System::Windows::Forms::ToolStripMenuItem()); + this->stripItemSheet = (gcnew System::Windows::Forms::ToolStripMenuItem()); + this->stripItemSepMaster1 = (gcnew System::Windows::Forms::ToolStripSeparator()); + this->stripItemMasterRom = (gcnew System::Windows::Forms::ToolStripMenuItem()); + this->stripItemMiddlewareXml = (gcnew System::Windows::Forms::ToolStripMenuItem()); + this->stripItemMiddlewareHtml = (gcnew System::Windows::Forms::ToolStripMenuItem()); + this->exportToolStripMenuItem = (gcnew System::Windows::Forms::ToolStripMenuItem()); + this->stripItemRomInfoList = (gcnew System::Windows::Forms::ToolStripMenuItem()); + this->toolStripSeparator2 = (gcnew System::Windows::Forms::ToolStripSeparator()); + this->stripItemErrorListRead = (gcnew System::Windows::Forms::ToolStripMenuItem()); + this->stripItemErrorListCurrent = (gcnew System::Windows::Forms::ToolStripMenuItem()); + this->toolStripSeparator1 = (gcnew System::Windows::Forms::ToolStripSeparator()); + this->stripItemRomInfoAndErrorListRead = (gcnew System::Windows::Forms::ToolStripMenuItem()); + this->stripItemRomInfoAndErrorListCurrent = (gcnew System::Windows::Forms::ToolStripMenuItem()); + this->stripLang = (gcnew System::Windows::Forms::ToolStripMenuItem()); + this->stripItemEnglish = (gcnew System::Windows::Forms::ToolStripMenuItem()); + this->stripItemJapanese = (gcnew System::Windows::Forms::ToolStripMenuItem()); + this->tabMain = (gcnew System::Windows::Forms::TabControl()); + this->tabRomInfo = (gcnew System::Windows::Forms::TabPage()); + this->gridSDK = (gcnew System::Windows::Forms::DataGridView()); + this->dataSDKVer = (gcnew System::Windows::Forms::DataGridViewTextBoxColumn()); + this->gridLibrary = (gcnew System::Windows::Forms::DataGridView()); + this->colLibPublisher = (gcnew System::Windows::Forms::DataGridViewTextBoxColumn()); + this->colLibName = (gcnew System::Windows::Forms::DataGridViewTextBoxColumn()); + this->tboxGuideRomInfo = (gcnew System::Windows::Forms::TextBox()); + this->tabTWLInfo = (gcnew System::Windows::Forms::TabPage()); + this->gboxLaunch = (gcnew System::Windows::Forms::GroupBox()); + this->labConnectIcon = (gcnew System::Windows::Forms::Label()); + this->tboxConnectIcon = (gcnew System::Windows::Forms::TextBox()); + this->tboxGuideTWLInfo = (gcnew System::Windows::Forms::TextBox()); + this->gboxExFlags = (gcnew System::Windows::Forms::GroupBox()); + this->tabNandSizeInfo = (gcnew System::Windows::Forms::TabPage()); + this->tboxGuideNandSizeInfo = (gcnew System::Windows::Forms::TextBox()); + this->gboxNandSize = (gcnew System::Windows::Forms::GroupBox()); + this->tboxWarningPrivateSaveDataPurpose = (gcnew System::Windows::Forms::TextBox()); + this->labPrivateSaveDataPurpose = (gcnew System::Windows::Forms::Label()); + this->tboxPrivateSaveDataPurpose = (gcnew System::Windows::Forms::TextBox()); + this->labBracketR = (gcnew System::Windows::Forms::Label()); + this->labBracketL = (gcnew System::Windows::Forms::Label()); + this->tboxSumSizeMB = (gcnew System::Windows::Forms::TextBox()); + this->tboxSrlSize = (gcnew System::Windows::Forms::TextBox()); + this->labArrow5 = (gcnew System::Windows::Forms::Label()); + this->labArrow4 = (gcnew System::Windows::Forms::Label()); + this->labArrow3 = (gcnew System::Windows::Forms::Label()); + this->labArrow2 = (gcnew System::Windows::Forms::Label()); + this->labArrow1 = (gcnew System::Windows::Forms::Label()); + this->tboxSumSize = (gcnew System::Windows::Forms::TextBox()); + this->tboxTmdSizeFS = (gcnew System::Windows::Forms::TextBox()); + this->tboxSubBannerSizeFS = (gcnew System::Windows::Forms::TextBox()); + this->tboxPrivateSizeFS = (gcnew System::Windows::Forms::TextBox()); + this->tboxPublicSizeFS = (gcnew System::Windows::Forms::TextBox()); + this->tboxSrlSizeFS = (gcnew System::Windows::Forms::TextBox()); + this->tboxTmdSize = (gcnew System::Windows::Forms::TextBox()); + this->tboxSubBannerSize = (gcnew System::Windows::Forms::TextBox()); + this->labNandSize = (gcnew System::Windows::Forms::Label()); + this->labNandSizeFS = (gcnew System::Windows::Forms::Label()); + this->labSrlSize = (gcnew System::Windows::Forms::Label()); + this->labSumSize2 = (gcnew System::Windows::Forms::Label()); + this->labSumSize = (gcnew System::Windows::Forms::Label()); + this->labSubBannerSize = (gcnew System::Windows::Forms::Label()); + this->labTmdSize = (gcnew System::Windows::Forms::Label()); + this->tabRomEditInfo = (gcnew System::Windows::Forms::TabPage()); + this->tboxWarningChinaRating = (gcnew System::Windows::Forms::TextBox()); + this->gboxOtherSpec = (gcnew System::Windows::Forms::GroupBox()); + this->cboxIsUGC = (gcnew System::Windows::Forms::CheckBox()); + this->cboxIsPhotoEx = (gcnew System::Windows::Forms::CheckBox()); + this->butSetBack = (gcnew System::Windows::Forms::Button()); + this->tboxGuideRomEditInfo = (gcnew System::Windows::Forms::TextBox()); + this->gboxParental = (gcnew System::Windows::Forms::GroupBox()); + this->labGRB = (gcnew System::Windows::Forms::Label()); + this->combGRB = (gcnew System::Windows::Forms::ComboBox()); + this->cboxIsUnnecessaryRating = (gcnew System::Windows::Forms::CheckBox()); + this->tabSubmitInfo = (gcnew System::Windows::Forms::TabPage()); + this->gboxPurpose = (gcnew System::Windows::Forms::GroupBox()); + this->gboxPurposeNand = (gcnew System::Windows::Forms::GroupBox()); + this->rPurposeDSiWare = (gcnew System::Windows::Forms::RadioButton()); + this->tboxPurposeOther = (gcnew System::Windows::Forms::TextBox()); + this->rPurposeOther = (gcnew System::Windows::Forms::RadioButton()); + this->gboxPurposeCard = (gcnew System::Windows::Forms::GroupBox()); + this->rPurposeCardProduction = (gcnew System::Windows::Forms::RadioButton()); + this->rPurposeCardTouchTryDS = (gcnew System::Windows::Forms::RadioButton()); + this->rPurposeCardDistribution = (gcnew System::Windows::Forms::RadioButton()); + this->rPurposeCardKiosk = (gcnew System::Windows::Forms::RadioButton()); + this->labProductNameLimit = (gcnew System::Windows::Forms::Label()); + this->tboxGuideSubmitInfo = (gcnew System::Windows::Forms::TextBox()); + this->gboxForeign = (gcnew System::Windows::Forms::GroupBox()); + this->labProductNameLimitForeign = (gcnew System::Windows::Forms::Label()); + this->labMultiForeign2 = (gcnew System::Windows::Forms::Label()); + this->tabCompanyInfo = (gcnew System::Windows::Forms::TabPage()); + this->tboxGuideCompanyInfo = (gcnew System::Windows::Forms::TextBox()); + this->tabErrorInfo = (gcnew System::Windows::Forms::TabPage()); + this->labPurposeInError = (gcnew System::Windows::Forms::Label()); + this->tboxPurposeInError = (gcnew System::Windows::Forms::TextBox()); + this->tboxGuideErrorInfo = (gcnew System::Windows::Forms::TextBox()); + this->gboxErrorTiming = (gcnew System::Windows::Forms::GroupBox()); + this->rErrorCurrent = (gcnew System::Windows::Forms::RadioButton()); + this->rErrorReading = (gcnew System::Windows::Forms::RadioButton()); + this->labWarn = (gcnew System::Windows::Forms::Label()); + this->labError = (gcnew System::Windows::Forms::Label()); + this->gridWarn = (gcnew System::Windows::Forms::DataGridView()); + this->colWarnName = (gcnew System::Windows::Forms::DataGridViewTextBoxColumn()); + this->colWarnBegin = (gcnew System::Windows::Forms::DataGridViewTextBoxColumn()); + this->colWarnEnd = (gcnew System::Windows::Forms::DataGridViewTextBoxColumn()); + this->colWarnCause = (gcnew System::Windows::Forms::DataGridViewTextBoxColumn()); + this->gridError = (gcnew System::Windows::Forms::DataGridView()); + this->colErrorName = (gcnew System::Windows::Forms::DataGridViewTextBoxColumn()); + this->colErrorBegin = (gcnew System::Windows::Forms::DataGridViewTextBoxColumn()); + this->colErrorEnd = (gcnew System::Windows::Forms::DataGridViewTextBoxColumn()); + this->colErrorCause = (gcnew System::Windows::Forms::DataGridViewTextBoxColumn()); + this->labFile = (gcnew System::Windows::Forms::Label()); + this->labAssemblyVersion = (gcnew System::Windows::Forms::Label()); + this->gboxSrl->SuspendLayout(); + this->gboxCRC->SuspendLayout(); + this->gboxPerson2->SuspendLayout(); + this->gboxPerson1->SuspendLayout(); + this->gboxSubmitWay->SuspendLayout(); + (cli::safe_cast(this->numSubmitVersion))->BeginInit(); + this->gboxShared2Size->SuspendLayout(); + this->gboxTWLExInfo->SuspendLayout(); + this->gboxAccess->SuspendLayout(); + this->gboxTitleID->SuspendLayout(); + this->gboxProd->SuspendLayout(); + this->menuStripAbove->SuspendLayout(); + this->tabMain->SuspendLayout(); + this->tabRomInfo->SuspendLayout(); + (cli::safe_cast(this->gridSDK))->BeginInit(); + (cli::safe_cast(this->gridLibrary))->BeginInit(); + this->tabTWLInfo->SuspendLayout(); + this->gboxLaunch->SuspendLayout(); + this->gboxExFlags->SuspendLayout(); + this->tabNandSizeInfo->SuspendLayout(); + this->gboxNandSize->SuspendLayout(); + this->tabRomEditInfo->SuspendLayout(); + this->gboxOtherSpec->SuspendLayout(); + this->gboxParental->SuspendLayout(); + this->tabSubmitInfo->SuspendLayout(); + this->gboxPurpose->SuspendLayout(); + this->gboxPurposeNand->SuspendLayout(); + this->gboxPurposeCard->SuspendLayout(); + this->gboxForeign->SuspendLayout(); + this->tabCompanyInfo->SuspendLayout(); + this->tabErrorInfo->SuspendLayout(); + this->gboxErrorTiming->SuspendLayout(); + (cli::safe_cast(this->gridWarn))->BeginInit(); + (cli::safe_cast(this->gridError))->BeginInit(); + this->SuspendLayout(); + // + // tboxFile + // + this->tboxFile->AccessibleDescription = nullptr; + this->tboxFile->AccessibleName = nullptr; + resources->ApplyResources(this->tboxFile, L"tboxFile"); + this->tboxFile->BackgroundImage = nullptr; + this->tboxFile->Font = nullptr; + this->tboxFile->Name = L"tboxFile"; + this->tboxFile->ReadOnly = true; + // + // gboxSrl + // + this->gboxSrl->AccessibleDescription = nullptr; + this->gboxSrl->AccessibleName = nullptr; + resources->ApplyResources(this->gboxSrl, L"gboxSrl"); + this->gboxSrl->BackgroundImage = nullptr; + this->gboxSrl->Controls->Add(this->tboxRemasterVer); + this->gboxSrl->Controls->Add(this->tboxRomSize); + this->gboxSrl->Controls->Add(this->tboxPlatform); + this->gboxSrl->Controls->Add(this->labPlatform); + this->gboxSrl->Controls->Add(this->tboxRomLatency); + this->gboxSrl->Controls->Add(this->labRomSize); + this->gboxSrl->Controls->Add(this->labRomType); + this->gboxSrl->Controls->Add(this->tboxMakerCode); + this->gboxSrl->Controls->Add(this->cboxRemasterVerE); + this->gboxSrl->Controls->Add(this->labMakerCode); + this->gboxSrl->Controls->Add(this->labGameCode); + this->gboxSrl->Controls->Add(this->tboxGameCode); + this->gboxSrl->Controls->Add(this->labTitleName); + this->gboxSrl->Controls->Add(this->labRemasterVer); + this->gboxSrl->Controls->Add(this->tboxTitleName); + this->gboxSrl->Font = nullptr; + this->gboxSrl->Name = L"gboxSrl"; + this->gboxSrl->TabStop = false; + // + // tboxRemasterVer + // + this->tboxRemasterVer->AccessibleDescription = nullptr; + this->tboxRemasterVer->AccessibleName = nullptr; + resources->ApplyResources(this->tboxRemasterVer, L"tboxRemasterVer"); + this->tboxRemasterVer->BackgroundImage = nullptr; + this->tboxRemasterVer->Font = nullptr; + this->tboxRemasterVer->Name = L"tboxRemasterVer"; + this->tboxRemasterVer->ReadOnly = true; + // + // tboxRomSize + // + this->tboxRomSize->AccessibleDescription = nullptr; + this->tboxRomSize->AccessibleName = nullptr; + resources->ApplyResources(this->tboxRomSize, L"tboxRomSize"); + this->tboxRomSize->BackgroundImage = nullptr; + this->tboxRomSize->Font = nullptr; + this->tboxRomSize->Name = L"tboxRomSize"; + this->tboxRomSize->ReadOnly = true; + // + // tboxPlatform + // + this->tboxPlatform->AccessibleDescription = nullptr; + this->tboxPlatform->AccessibleName = nullptr; + resources->ApplyResources(this->tboxPlatform, L"tboxPlatform"); + this->tboxPlatform->BackgroundImage = nullptr; + this->tboxPlatform->Font = nullptr; + this->tboxPlatform->Name = L"tboxPlatform"; + this->tboxPlatform->ReadOnly = true; + // + // labPlatform + // + this->labPlatform->AccessibleDescription = nullptr; + this->labPlatform->AccessibleName = nullptr; + resources->ApplyResources(this->labPlatform, L"labPlatform"); + this->labPlatform->Font = nullptr; + this->labPlatform->Name = L"labPlatform"; + // + // tboxRomLatency + // + this->tboxRomLatency->AccessibleDescription = nullptr; + this->tboxRomLatency->AccessibleName = nullptr; + resources->ApplyResources(this->tboxRomLatency, L"tboxRomLatency"); + this->tboxRomLatency->BackgroundImage = nullptr; + this->tboxRomLatency->Font = nullptr; + this->tboxRomLatency->Name = L"tboxRomLatency"; + this->tboxRomLatency->ReadOnly = true; + // + // labRomSize + // + this->labRomSize->AccessibleDescription = nullptr; + this->labRomSize->AccessibleName = nullptr; + resources->ApplyResources(this->labRomSize, L"labRomSize"); + this->labRomSize->Font = nullptr; + this->labRomSize->Name = L"labRomSize"; + // + // labRomType + // + this->labRomType->AccessibleDescription = nullptr; + this->labRomType->AccessibleName = nullptr; + resources->ApplyResources(this->labRomType, L"labRomType"); + this->labRomType->Font = nullptr; + this->labRomType->Name = L"labRomType"; + // + // tboxMakerCode + // + this->tboxMakerCode->AccessibleDescription = nullptr; + this->tboxMakerCode->AccessibleName = nullptr; + resources->ApplyResources(this->tboxMakerCode, L"tboxMakerCode"); + this->tboxMakerCode->BackgroundImage = nullptr; + this->tboxMakerCode->Font = nullptr; + this->tboxMakerCode->Name = L"tboxMakerCode"; + this->tboxMakerCode->ReadOnly = true; + // + // cboxRemasterVerE + // + this->cboxRemasterVerE->AccessibleDescription = nullptr; + this->cboxRemasterVerE->AccessibleName = nullptr; + resources->ApplyResources(this->cboxRemasterVerE, L"cboxRemasterVerE"); + this->cboxRemasterVerE->BackgroundImage = nullptr; + this->cboxRemasterVerE->Font = nullptr; + this->cboxRemasterVerE->Name = L"cboxRemasterVerE"; + this->cboxRemasterVerE->UseVisualStyleBackColor = true; + this->cboxRemasterVerE->CheckedChanged += gcnew System::EventHandler(this, &Form1::cboxRemasterVerE_CheckedChanged); + // + // labMakerCode + // + this->labMakerCode->AccessibleDescription = nullptr; + this->labMakerCode->AccessibleName = nullptr; + resources->ApplyResources(this->labMakerCode, L"labMakerCode"); + this->labMakerCode->Font = nullptr; + this->labMakerCode->Name = L"labMakerCode"; + // + // labGameCode + // + this->labGameCode->AccessibleDescription = nullptr; + this->labGameCode->AccessibleName = nullptr; + resources->ApplyResources(this->labGameCode, L"labGameCode"); + this->labGameCode->Font = nullptr; + this->labGameCode->Name = L"labGameCode"; + // + // tboxGameCode + // + this->tboxGameCode->AccessibleDescription = nullptr; + this->tboxGameCode->AccessibleName = nullptr; + resources->ApplyResources(this->tboxGameCode, L"tboxGameCode"); + this->tboxGameCode->BackgroundImage = nullptr; + this->tboxGameCode->Font = nullptr; + this->tboxGameCode->Name = L"tboxGameCode"; + this->tboxGameCode->ReadOnly = true; + // + // labTitleName + // + this->labTitleName->AccessibleDescription = nullptr; + this->labTitleName->AccessibleName = nullptr; + resources->ApplyResources(this->labTitleName, L"labTitleName"); + this->labTitleName->Font = nullptr; + this->labTitleName->Name = L"labTitleName"; + // + // labRemasterVer + // + this->labRemasterVer->AccessibleDescription = nullptr; + this->labRemasterVer->AccessibleName = nullptr; + resources->ApplyResources(this->labRemasterVer, L"labRemasterVer"); + this->labRemasterVer->Font = nullptr; + this->labRemasterVer->Name = L"labRemasterVer"; + // + // tboxTitleName + // + this->tboxTitleName->AccessibleDescription = nullptr; + this->tboxTitleName->AccessibleName = nullptr; + resources->ApplyResources(this->tboxTitleName, L"tboxTitleName"); + this->tboxTitleName->BackgroundImage = nullptr; + this->tboxTitleName->Font = nullptr; + this->tboxTitleName->Name = L"tboxTitleName"; + this->tboxTitleName->ReadOnly = true; + // + // labBackup + // + this->labBackup->AccessibleDescription = nullptr; + this->labBackup->AccessibleName = nullptr; + resources->ApplyResources(this->labBackup, L"labBackup"); + this->labBackup->Font = nullptr; + this->labBackup->Name = L"labBackup"; + // + // combBackup + // + this->combBackup->AccessibleDescription = nullptr; + this->combBackup->AccessibleName = nullptr; + resources->ApplyResources(this->combBackup, L"combBackup"); + this->combBackup->BackgroundImage = nullptr; + this->combBackup->DropDownStyle = System::Windows::Forms::ComboBoxStyle::DropDownList; + this->combBackup->Font = nullptr; + this->combBackup->FormattingEnabled = true; + this->combBackup->Items->AddRange(gcnew cli::array< System::Object^ >(10) {resources->GetString(L"combBackup.Items"), resources->GetString(L"combBackup.Items1"), + resources->GetString(L"combBackup.Items2"), resources->GetString(L"combBackup.Items3"), resources->GetString(L"combBackup.Items4"), + resources->GetString(L"combBackup.Items5"), resources->GetString(L"combBackup.Items6"), resources->GetString(L"combBackup.Items7"), + resources->GetString(L"combBackup.Items8"), resources->GetString(L"combBackup.Items9")}); + this->combBackup->Name = L"combBackup"; + this->combBackup->SelectedIndexChanged += gcnew System::EventHandler(this, &Form1::combBackup_SelectedIndexChanged); + // + // tboxBackupOther + // + this->tboxBackupOther->AccessibleDescription = nullptr; + this->tboxBackupOther->AccessibleName = nullptr; + resources->ApplyResources(this->tboxBackupOther, L"tboxBackupOther"); + this->tboxBackupOther->BackgroundImage = nullptr; + this->tboxBackupOther->Font = nullptr; + this->tboxBackupOther->Name = L"tboxBackupOther"; + // + // gboxCRC + // + this->gboxCRC->AccessibleDescription = nullptr; + this->gboxCRC->AccessibleName = nullptr; + resources->ApplyResources(this->gboxCRC, L"gboxCRC"); + this->gboxCRC->BackgroundImage = nullptr; + this->gboxCRC->Controls->Add(this->labRomCRC); + this->gboxCRC->Controls->Add(this->labHeaderCRC); + this->gboxCRC->Controls->Add(this->tboxHeaderCRC); + this->gboxCRC->Controls->Add(this->tboxWholeCRC); + this->gboxCRC->Font = nullptr; + this->gboxCRC->Name = L"gboxCRC"; + this->gboxCRC->TabStop = false; + // + // labRomCRC + // + this->labRomCRC->AccessibleDescription = nullptr; + this->labRomCRC->AccessibleName = nullptr; + resources->ApplyResources(this->labRomCRC, L"labRomCRC"); + this->labRomCRC->Font = nullptr; + this->labRomCRC->Name = L"labRomCRC"; + // + // labHeaderCRC + // + this->labHeaderCRC->AccessibleDescription = nullptr; + this->labHeaderCRC->AccessibleName = nullptr; + resources->ApplyResources(this->labHeaderCRC, L"labHeaderCRC"); + this->labHeaderCRC->Font = nullptr; + this->labHeaderCRC->Name = L"labHeaderCRC"; + // + // tboxHeaderCRC + // + this->tboxHeaderCRC->AccessibleDescription = nullptr; + this->tboxHeaderCRC->AccessibleName = nullptr; + resources->ApplyResources(this->tboxHeaderCRC, L"tboxHeaderCRC"); + this->tboxHeaderCRC->BackgroundImage = nullptr; + this->tboxHeaderCRC->Font = nullptr; + this->tboxHeaderCRC->Name = L"tboxHeaderCRC"; + this->tboxHeaderCRC->ReadOnly = true; + // + // tboxWholeCRC + // + this->tboxWholeCRC->AccessibleDescription = nullptr; + this->tboxWholeCRC->AccessibleName = nullptr; + resources->ApplyResources(this->tboxWholeCRC, L"tboxWholeCRC"); + this->tboxWholeCRC->BackgroundImage = nullptr; + this->tboxWholeCRC->Font = nullptr; + this->tboxWholeCRC->Name = L"tboxWholeCRC"; + this->tboxWholeCRC->ReadOnly = true; + // + // labCaption + // + this->labCaption->AccessibleDescription = nullptr; + this->labCaption->AccessibleName = nullptr; + resources->ApplyResources(this->labCaption, L"labCaption"); + this->labCaption->Font = nullptr; + this->labCaption->Name = L"labCaption"; + // + // tboxCaption + // + this->tboxCaption->AccessibleDescription = nullptr; + this->tboxCaption->AccessibleName = nullptr; + resources->ApplyResources(this->tboxCaption, L"tboxCaption"); + this->tboxCaption->BackgroundImage = nullptr; + this->tboxCaption->Font = nullptr; + this->tboxCaption->Name = L"tboxCaption"; + // + // labOFLC + // + this->labOFLC->AccessibleDescription = nullptr; + this->labOFLC->AccessibleName = nullptr; + resources->ApplyResources(this->labOFLC, L"labOFLC"); + this->labOFLC->Font = nullptr; + this->labOFLC->Name = L"labOFLC"; + // + // labPEGI_BBFC + // + this->labPEGI_BBFC->AccessibleDescription = nullptr; + this->labPEGI_BBFC->AccessibleName = nullptr; + resources->ApplyResources(this->labPEGI_BBFC, L"labPEGI_BBFC"); + this->labPEGI_BBFC->Font = nullptr; + this->labPEGI_BBFC->Name = L"labPEGI_BBFC"; + // + // labPEGI_PRT + // + this->labPEGI_PRT->AccessibleDescription = nullptr; + this->labPEGI_PRT->AccessibleName = nullptr; + resources->ApplyResources(this->labPEGI_PRT, L"labPEGI_PRT"); + this->labPEGI_PRT->Font = nullptr; + this->labPEGI_PRT->Name = L"labPEGI_PRT"; + // + // labPEGI + // + this->labPEGI->AccessibleDescription = nullptr; + this->labPEGI->AccessibleName = nullptr; + resources->ApplyResources(this->labPEGI, L"labPEGI"); + this->labPEGI->Font = nullptr; + this->labPEGI->Name = L"labPEGI"; + // + // labUSK + // + this->labUSK->AccessibleDescription = nullptr; + this->labUSK->AccessibleName = nullptr; + resources->ApplyResources(this->labUSK, L"labUSK"); + this->labUSK->Font = nullptr; + this->labUSK->Name = L"labUSK"; + // + // labESRB + // + this->labESRB->AccessibleDescription = nullptr; + this->labESRB->AccessibleName = nullptr; + resources->ApplyResources(this->labESRB, L"labESRB"); + this->labESRB->Font = nullptr; + this->labESRB->Name = L"labESRB"; + // + // labCERO + // + this->labCERO->AccessibleDescription = nullptr; + this->labCERO->AccessibleName = nullptr; + resources->ApplyResources(this->labCERO, L"labCERO"); + this->labCERO->Font = nullptr; + this->labCERO->Name = L"labCERO"; + // + // combOFLC + // + this->combOFLC->AccessibleDescription = nullptr; + this->combOFLC->AccessibleName = nullptr; + resources->ApplyResources(this->combOFLC, L"combOFLC"); + this->combOFLC->BackgroundImage = nullptr; + this->combOFLC->DropDownStyle = System::Windows::Forms::ComboBoxStyle::DropDownList; + this->combOFLC->Font = nullptr; + this->combOFLC->FormattingEnabled = true; + this->combOFLC->Items->AddRange(gcnew cli::array< System::Object^ >(5) {resources->GetString(L"combOFLC.Items"), resources->GetString(L"combOFLC.Items1"), + resources->GetString(L"combOFLC.Items2"), resources->GetString(L"combOFLC.Items3"), resources->GetString(L"combOFLC.Items4")}); + this->combOFLC->Name = L"combOFLC"; + // + // combPEGI_BBFC + // + this->combPEGI_BBFC->AccessibleDescription = nullptr; + this->combPEGI_BBFC->AccessibleName = nullptr; + resources->ApplyResources(this->combPEGI_BBFC, L"combPEGI_BBFC"); + this->combPEGI_BBFC->BackgroundImage = nullptr; + this->combPEGI_BBFC->DropDownStyle = System::Windows::Forms::ComboBoxStyle::DropDownList; + this->combPEGI_BBFC->Font = nullptr; + this->combPEGI_BBFC->FormattingEnabled = true; + this->combPEGI_BBFC->Items->AddRange(gcnew cli::array< System::Object^ >(10) {resources->GetString(L"combPEGI_BBFC.Items"), + resources->GetString(L"combPEGI_BBFC.Items1"), resources->GetString(L"combPEGI_BBFC.Items2"), resources->GetString(L"combPEGI_BBFC.Items3"), + resources->GetString(L"combPEGI_BBFC.Items4"), resources->GetString(L"combPEGI_BBFC.Items5"), resources->GetString(L"combPEGI_BBFC.Items6"), + resources->GetString(L"combPEGI_BBFC.Items7"), resources->GetString(L"combPEGI_BBFC.Items8"), resources->GetString(L"combPEGI_BBFC.Items9")}); + this->combPEGI_BBFC->Name = L"combPEGI_BBFC"; + // + // combPEGI_PRT + // + this->combPEGI_PRT->AccessibleDescription = nullptr; + this->combPEGI_PRT->AccessibleName = nullptr; + resources->ApplyResources(this->combPEGI_PRT, L"combPEGI_PRT"); + this->combPEGI_PRT->BackgroundImage = nullptr; + this->combPEGI_PRT->DropDownStyle = System::Windows::Forms::ComboBoxStyle::DropDownList; + this->combPEGI_PRT->Font = nullptr; + this->combPEGI_PRT->FormattingEnabled = true; + this->combPEGI_PRT->Items->AddRange(gcnew cli::array< System::Object^ >(7) {resources->GetString(L"combPEGI_PRT.Items"), + resources->GetString(L"combPEGI_PRT.Items1"), resources->GetString(L"combPEGI_PRT.Items2"), resources->GetString(L"combPEGI_PRT.Items3"), + resources->GetString(L"combPEGI_PRT.Items4"), resources->GetString(L"combPEGI_PRT.Items5"), resources->GetString(L"combPEGI_PRT.Items6")}); + this->combPEGI_PRT->Name = L"combPEGI_PRT"; + // + // combPEGI + // + this->combPEGI->AccessibleDescription = nullptr; + this->combPEGI->AccessibleName = nullptr; + resources->ApplyResources(this->combPEGI, L"combPEGI"); + this->combPEGI->BackgroundImage = nullptr; + this->combPEGI->DropDownStyle = System::Windows::Forms::ComboBoxStyle::DropDownList; + this->combPEGI->Font = nullptr; + this->combPEGI->FormattingEnabled = true; + this->combPEGI->Items->AddRange(gcnew cli::array< System::Object^ >(7) {resources->GetString(L"combPEGI.Items"), resources->GetString(L"combPEGI.Items1"), + resources->GetString(L"combPEGI.Items2"), resources->GetString(L"combPEGI.Items3"), resources->GetString(L"combPEGI.Items4"), + resources->GetString(L"combPEGI.Items5"), resources->GetString(L"combPEGI.Items6")}); + this->combPEGI->Name = L"combPEGI"; + // + // combUSK + // + this->combUSK->AccessibleDescription = nullptr; + this->combUSK->AccessibleName = nullptr; + resources->ApplyResources(this->combUSK, L"combUSK"); + this->combUSK->BackgroundImage = nullptr; + this->combUSK->DropDownStyle = System::Windows::Forms::ComboBoxStyle::DropDownList; + this->combUSK->Font = nullptr; + this->combUSK->FormattingEnabled = true; + this->combUSK->Items->AddRange(gcnew cli::array< System::Object^ >(6) {resources->GetString(L"combUSK.Items"), resources->GetString(L"combUSK.Items1"), + resources->GetString(L"combUSK.Items2"), resources->GetString(L"combUSK.Items3"), resources->GetString(L"combUSK.Items4"), resources->GetString(L"combUSK.Items5")}); + this->combUSK->Name = L"combUSK"; + // + // combESRB + // + this->combESRB->AccessibleDescription = nullptr; + this->combESRB->AccessibleName = nullptr; + resources->ApplyResources(this->combESRB, L"combESRB"); + this->combESRB->BackgroundImage = nullptr; + this->combESRB->DropDownStyle = System::Windows::Forms::ComboBoxStyle::DropDownList; + this->combESRB->Font = nullptr; + this->combESRB->FormattingEnabled = true; + this->combESRB->Items->AddRange(gcnew cli::array< System::Object^ >(7) {resources->GetString(L"combESRB.Items"), resources->GetString(L"combESRB.Items1"), + resources->GetString(L"combESRB.Items2"), resources->GetString(L"combESRB.Items3"), resources->GetString(L"combESRB.Items4"), + resources->GetString(L"combESRB.Items5"), resources->GetString(L"combESRB.Items6")}); + this->combESRB->Name = L"combESRB"; + // + // combCERO + // + this->combCERO->AccessibleDescription = nullptr; + this->combCERO->AccessibleName = nullptr; + resources->ApplyResources(this->combCERO, L"combCERO"); + this->combCERO->BackgroundImage = nullptr; + this->combCERO->DropDownStyle = System::Windows::Forms::ComboBoxStyle::DropDownList; + this->combCERO->Font = nullptr; + this->combCERO->FormattingEnabled = true; + this->combCERO->Items->AddRange(gcnew cli::array< System::Object^ >(6) {resources->GetString(L"combCERO.Items"), resources->GetString(L"combCERO.Items1"), + resources->GetString(L"combCERO.Items2"), resources->GetString(L"combCERO.Items3"), resources->GetString(L"combCERO.Items4"), + resources->GetString(L"combCERO.Items5")}); + this->combCERO->Name = L"combCERO"; + // + // labRegion + // + this->labRegion->AccessibleDescription = nullptr; + this->labRegion->AccessibleName = nullptr; + resources->ApplyResources(this->labRegion, L"labRegion"); + this->labRegion->Font = nullptr; + this->labRegion->Name = L"labRegion"; + // + // cboxIsEULA + // + this->cboxIsEULA->AccessibleDescription = nullptr; + this->cboxIsEULA->AccessibleName = nullptr; + resources->ApplyResources(this->cboxIsEULA, L"cboxIsEULA"); + this->cboxIsEULA->BackgroundImage = nullptr; + this->cboxIsEULA->Font = nullptr; + this->cboxIsEULA->Name = L"cboxIsEULA"; + this->cboxIsEULA->UseVisualStyleBackColor = true; + // + // combRegion + // + this->combRegion->AccessibleDescription = nullptr; + this->combRegion->AccessibleName = nullptr; + resources->ApplyResources(this->combRegion, L"combRegion"); + this->combRegion->BackgroundImage = nullptr; + this->combRegion->DropDownStyle = System::Windows::Forms::ComboBoxStyle::DropDownList; + this->combRegion->Font = nullptr; + this->combRegion->FormattingEnabled = true; + this->combRegion->Items->AddRange(gcnew cli::array< System::Object^ >(8) {resources->GetString(L"combRegion.Items"), resources->GetString(L"combRegion.Items1"), + resources->GetString(L"combRegion.Items2"), resources->GetString(L"combRegion.Items3"), resources->GetString(L"combRegion.Items4"), + resources->GetString(L"combRegion.Items5"), resources->GetString(L"combRegion.Items6"), resources->GetString(L"combRegion.Items7")}); + this->combRegion->Name = L"combRegion"; + this->combRegion->SelectedIndexChanged += gcnew System::EventHandler(this, &Form1::combRegion_SelectedIndexChanged); + // + // cboxIsInputPerson2 + // + this->cboxIsInputPerson2->AccessibleDescription = nullptr; + this->cboxIsInputPerson2->AccessibleName = nullptr; + resources->ApplyResources(this->cboxIsInputPerson2, L"cboxIsInputPerson2"); + this->cboxIsInputPerson2->BackgroundImage = nullptr; + this->cboxIsInputPerson2->Font = nullptr; + this->cboxIsInputPerson2->Name = L"cboxIsInputPerson2"; + this->cboxIsInputPerson2->UseVisualStyleBackColor = true; + this->cboxIsInputPerson2->CheckedChanged += gcnew System::EventHandler(this, &Form1::cboxIsInputPerson2_CheckedChanged); + // + // gboxPerson2 + // + this->gboxPerson2->AccessibleDescription = nullptr; + this->gboxPerson2->AccessibleName = nullptr; + resources->ApplyResources(this->gboxPerson2, L"gboxPerson2"); + this->gboxPerson2->BackgroundImage = nullptr; + this->gboxPerson2->Controls->Add(this->labArbit4); + this->gboxPerson2->Controls->Add(this->labArbit3); + this->gboxPerson2->Controls->Add(this->labNTSC2Sur); + this->gboxPerson2->Controls->Add(this->tboxNTSC2); + this->gboxPerson2->Controls->Add(this->labFax2); + this->gboxPerson2->Controls->Add(this->labNTSC2Pre); + this->gboxPerson2->Controls->Add(this->tboxFax2); + this->gboxPerson2->Controls->Add(this->tboxMail2); + this->gboxPerson2->Controls->Add(this->tboxTel2); + this->gboxPerson2->Controls->Add(this->tboxFurigana2); + this->gboxPerson2->Controls->Add(this->tboxPerson2); + this->gboxPerson2->Controls->Add(this->tboxDepart2); + this->gboxPerson2->Controls->Add(this->labDepart2); + this->gboxPerson2->Controls->Add(this->tboxCompany2); + this->gboxPerson2->Controls->Add(this->labMail2); + this->gboxPerson2->Controls->Add(this->labTel2); + this->gboxPerson2->Controls->Add(this->labFurigana2); + this->gboxPerson2->Controls->Add(this->labPerson2); + this->gboxPerson2->Controls->Add(this->labCompany2); + this->gboxPerson2->Font = nullptr; + this->gboxPerson2->Name = L"gboxPerson2"; + this->gboxPerson2->TabStop = false; + // + // labArbit4 + // + this->labArbit4->AccessibleDescription = nullptr; + this->labArbit4->AccessibleName = nullptr; + resources->ApplyResources(this->labArbit4, L"labArbit4"); + this->labArbit4->Font = nullptr; + this->labArbit4->Name = L"labArbit4"; + // + // labArbit3 + // + this->labArbit3->AccessibleDescription = nullptr; + this->labArbit3->AccessibleName = nullptr; + resources->ApplyResources(this->labArbit3, L"labArbit3"); + this->labArbit3->Font = nullptr; + this->labArbit3->Name = L"labArbit3"; + // + // labNTSC2Sur + // + this->labNTSC2Sur->AccessibleDescription = nullptr; + this->labNTSC2Sur->AccessibleName = nullptr; + resources->ApplyResources(this->labNTSC2Sur, L"labNTSC2Sur"); + this->labNTSC2Sur->Font = nullptr; + this->labNTSC2Sur->Name = L"labNTSC2Sur"; + // + // tboxNTSC2 + // + this->tboxNTSC2->AccessibleDescription = nullptr; + this->tboxNTSC2->AccessibleName = nullptr; + resources->ApplyResources(this->tboxNTSC2, L"tboxNTSC2"); + this->tboxNTSC2->BackgroundImage = nullptr; + this->tboxNTSC2->Font = nullptr; + this->tboxNTSC2->Name = L"tboxNTSC2"; + // + // labFax2 + // + this->labFax2->AccessibleDescription = nullptr; + this->labFax2->AccessibleName = nullptr; + resources->ApplyResources(this->labFax2, L"labFax2"); + this->labFax2->Font = nullptr; + this->labFax2->Name = L"labFax2"; + // + // labNTSC2Pre + // + this->labNTSC2Pre->AccessibleDescription = nullptr; + this->labNTSC2Pre->AccessibleName = nullptr; + resources->ApplyResources(this->labNTSC2Pre, L"labNTSC2Pre"); + this->labNTSC2Pre->Font = nullptr; + this->labNTSC2Pre->Name = L"labNTSC2Pre"; + // + // tboxFax2 + // + this->tboxFax2->AccessibleDescription = nullptr; + this->tboxFax2->AccessibleName = nullptr; + resources->ApplyResources(this->tboxFax2, L"tboxFax2"); + this->tboxFax2->BackgroundImage = nullptr; + this->tboxFax2->Font = nullptr; + this->tboxFax2->Name = L"tboxFax2"; + // + // tboxMail2 + // + this->tboxMail2->AccessibleDescription = nullptr; + this->tboxMail2->AccessibleName = nullptr; + resources->ApplyResources(this->tboxMail2, L"tboxMail2"); + this->tboxMail2->BackgroundImage = nullptr; + this->tboxMail2->Font = nullptr; + this->tboxMail2->Name = L"tboxMail2"; + // + // tboxTel2 + // + this->tboxTel2->AccessibleDescription = nullptr; + this->tboxTel2->AccessibleName = nullptr; + resources->ApplyResources(this->tboxTel2, L"tboxTel2"); + this->tboxTel2->BackgroundImage = nullptr; + this->tboxTel2->Font = nullptr; + this->tboxTel2->Name = L"tboxTel2"; + // + // tboxFurigana2 + // + this->tboxFurigana2->AccessibleDescription = nullptr; + this->tboxFurigana2->AccessibleName = nullptr; + resources->ApplyResources(this->tboxFurigana2, L"tboxFurigana2"); + this->tboxFurigana2->BackgroundImage = nullptr; + this->tboxFurigana2->Font = nullptr; + this->tboxFurigana2->Name = L"tboxFurigana2"; + // + // tboxPerson2 + // + this->tboxPerson2->AccessibleDescription = nullptr; + this->tboxPerson2->AccessibleName = nullptr; + resources->ApplyResources(this->tboxPerson2, L"tboxPerson2"); + this->tboxPerson2->BackgroundImage = nullptr; + this->tboxPerson2->Font = nullptr; + this->tboxPerson2->Name = L"tboxPerson2"; + // + // tboxDepart2 + // + this->tboxDepart2->AccessibleDescription = nullptr; + this->tboxDepart2->AccessibleName = nullptr; + resources->ApplyResources(this->tboxDepart2, L"tboxDepart2"); + this->tboxDepart2->BackgroundImage = nullptr; + this->tboxDepart2->Font = nullptr; + this->tboxDepart2->Name = L"tboxDepart2"; + // + // labDepart2 + // + this->labDepart2->AccessibleDescription = nullptr; + this->labDepart2->AccessibleName = nullptr; + resources->ApplyResources(this->labDepart2, L"labDepart2"); + this->labDepart2->Font = nullptr; + this->labDepart2->Name = L"labDepart2"; + // + // tboxCompany2 + // + this->tboxCompany2->AccessibleDescription = nullptr; + this->tboxCompany2->AccessibleName = nullptr; + resources->ApplyResources(this->tboxCompany2, L"tboxCompany2"); + this->tboxCompany2->BackgroundImage = nullptr; + this->tboxCompany2->Font = nullptr; + this->tboxCompany2->Name = L"tboxCompany2"; + // + // labMail2 + // + this->labMail2->AccessibleDescription = nullptr; + this->labMail2->AccessibleName = nullptr; + resources->ApplyResources(this->labMail2, L"labMail2"); + this->labMail2->Font = nullptr; + this->labMail2->Name = L"labMail2"; + // + // labTel2 + // + this->labTel2->AccessibleDescription = nullptr; + this->labTel2->AccessibleName = nullptr; + resources->ApplyResources(this->labTel2, L"labTel2"); + this->labTel2->Font = nullptr; + this->labTel2->Name = L"labTel2"; + // + // labFurigana2 + // + this->labFurigana2->AccessibleDescription = nullptr; + this->labFurigana2->AccessibleName = nullptr; + resources->ApplyResources(this->labFurigana2, L"labFurigana2"); + this->labFurigana2->Font = nullptr; + this->labFurigana2->Name = L"labFurigana2"; + // + // labPerson2 + // + this->labPerson2->AccessibleDescription = nullptr; + this->labPerson2->AccessibleName = nullptr; + resources->ApplyResources(this->labPerson2, L"labPerson2"); + this->labPerson2->Font = nullptr; + this->labPerson2->Name = L"labPerson2"; + // + // labCompany2 + // + this->labCompany2->AccessibleDescription = nullptr; + this->labCompany2->AccessibleName = nullptr; + resources->ApplyResources(this->labCompany2, L"labCompany2"); + this->labCompany2->Font = nullptr; + this->labCompany2->Name = L"labCompany2"; + // + // gboxPerson1 + // + this->gboxPerson1->AccessibleDescription = nullptr; + this->gboxPerson1->AccessibleName = nullptr; + resources->ApplyResources(this->gboxPerson1, L"gboxPerson1"); + this->gboxPerson1->BackgroundImage = nullptr; + this->gboxPerson1->Controls->Add(this->labArbit2); + this->gboxPerson1->Controls->Add(this->labArbit1); + this->gboxPerson1->Controls->Add(this->labNTSC1Sur); + this->gboxPerson1->Controls->Add(this->labFax1); + this->gboxPerson1->Controls->Add(this->labNTSC1Pre); + this->gboxPerson1->Controls->Add(this->tboxNTSC1); + this->gboxPerson1->Controls->Add(this->tboxFax1); + this->gboxPerson1->Controls->Add(this->tboxMail1); + this->gboxPerson1->Controls->Add(this->tboxTel1); + this->gboxPerson1->Controls->Add(this->tboxFurigana1); + this->gboxPerson1->Controls->Add(this->tboxPerson1); + this->gboxPerson1->Controls->Add(this->tboxDepart1); + this->gboxPerson1->Controls->Add(this->labDepart1); + this->gboxPerson1->Controls->Add(this->tboxCompany1); + this->gboxPerson1->Controls->Add(this->labMail1); + this->gboxPerson1->Controls->Add(this->labTel1); + this->gboxPerson1->Controls->Add(this->labFurigana1); + this->gboxPerson1->Controls->Add(this->labPerson1); + this->gboxPerson1->Controls->Add(this->labCompany1); + this->gboxPerson1->Font = nullptr; + this->gboxPerson1->Name = L"gboxPerson1"; + this->gboxPerson1->TabStop = false; + // + // labArbit2 + // + this->labArbit2->AccessibleDescription = nullptr; + this->labArbit2->AccessibleName = nullptr; + resources->ApplyResources(this->labArbit2, L"labArbit2"); + this->labArbit2->Font = nullptr; + this->labArbit2->Name = L"labArbit2"; + // + // labArbit1 + // + this->labArbit1->AccessibleDescription = nullptr; + this->labArbit1->AccessibleName = nullptr; + resources->ApplyResources(this->labArbit1, L"labArbit1"); + this->labArbit1->Font = nullptr; + this->labArbit1->Name = L"labArbit1"; + // + // labNTSC1Sur + // + this->labNTSC1Sur->AccessibleDescription = nullptr; + this->labNTSC1Sur->AccessibleName = nullptr; + resources->ApplyResources(this->labNTSC1Sur, L"labNTSC1Sur"); + this->labNTSC1Sur->Font = nullptr; + this->labNTSC1Sur->Name = L"labNTSC1Sur"; + // + // labFax1 + // + this->labFax1->AccessibleDescription = nullptr; + this->labFax1->AccessibleName = nullptr; + resources->ApplyResources(this->labFax1, L"labFax1"); + this->labFax1->Font = nullptr; + this->labFax1->Name = L"labFax1"; + // + // labNTSC1Pre + // + this->labNTSC1Pre->AccessibleDescription = nullptr; + this->labNTSC1Pre->AccessibleName = nullptr; + resources->ApplyResources(this->labNTSC1Pre, L"labNTSC1Pre"); + this->labNTSC1Pre->Font = nullptr; + this->labNTSC1Pre->Name = L"labNTSC1Pre"; + // + // tboxNTSC1 + // + this->tboxNTSC1->AccessibleDescription = nullptr; + this->tboxNTSC1->AccessibleName = nullptr; + resources->ApplyResources(this->tboxNTSC1, L"tboxNTSC1"); + this->tboxNTSC1->BackgroundImage = nullptr; + this->tboxNTSC1->Font = nullptr; + this->tboxNTSC1->Name = L"tboxNTSC1"; + // + // tboxFax1 + // + this->tboxFax1->AccessibleDescription = nullptr; + this->tboxFax1->AccessibleName = nullptr; + resources->ApplyResources(this->tboxFax1, L"tboxFax1"); + this->tboxFax1->BackgroundImage = nullptr; + this->tboxFax1->Font = nullptr; + this->tboxFax1->Name = L"tboxFax1"; + // + // tboxMail1 + // + this->tboxMail1->AccessibleDescription = nullptr; + this->tboxMail1->AccessibleName = nullptr; + resources->ApplyResources(this->tboxMail1, L"tboxMail1"); + this->tboxMail1->BackgroundImage = nullptr; + this->tboxMail1->Font = nullptr; + this->tboxMail1->Name = L"tboxMail1"; + // + // tboxTel1 + // + this->tboxTel1->AccessibleDescription = nullptr; + this->tboxTel1->AccessibleName = nullptr; + resources->ApplyResources(this->tboxTel1, L"tboxTel1"); + this->tboxTel1->BackgroundImage = nullptr; + this->tboxTel1->Font = nullptr; + this->tboxTel1->Name = L"tboxTel1"; + // + // tboxFurigana1 + // + this->tboxFurigana1->AccessibleDescription = nullptr; + this->tboxFurigana1->AccessibleName = nullptr; + resources->ApplyResources(this->tboxFurigana1, L"tboxFurigana1"); + this->tboxFurigana1->BackgroundImage = nullptr; + this->tboxFurigana1->Font = nullptr; + this->tboxFurigana1->Name = L"tboxFurigana1"; + // + // tboxPerson1 + // + this->tboxPerson1->AccessibleDescription = nullptr; + this->tboxPerson1->AccessibleName = nullptr; + resources->ApplyResources(this->tboxPerson1, L"tboxPerson1"); + this->tboxPerson1->BackgroundImage = nullptr; + this->tboxPerson1->Font = nullptr; + this->tboxPerson1->Name = L"tboxPerson1"; + // + // tboxDepart1 + // + this->tboxDepart1->AccessibleDescription = nullptr; + this->tboxDepart1->AccessibleName = nullptr; + resources->ApplyResources(this->tboxDepart1, L"tboxDepart1"); + this->tboxDepart1->BackgroundImage = nullptr; + this->tboxDepart1->Font = nullptr; + this->tboxDepart1->Name = L"tboxDepart1"; + // + // labDepart1 + // + this->labDepart1->AccessibleDescription = nullptr; + this->labDepart1->AccessibleName = nullptr; + resources->ApplyResources(this->labDepart1, L"labDepart1"); + this->labDepart1->Font = nullptr; + this->labDepart1->Name = L"labDepart1"; + // + // tboxCompany1 + // + this->tboxCompany1->AccessibleDescription = nullptr; + this->tboxCompany1->AccessibleName = nullptr; + resources->ApplyResources(this->tboxCompany1, L"tboxCompany1"); + this->tboxCompany1->BackgroundImage = nullptr; + this->tboxCompany1->Font = nullptr; + this->tboxCompany1->Name = L"tboxCompany1"; + // + // labMail1 + // + this->labMail1->AccessibleDescription = nullptr; + this->labMail1->AccessibleName = nullptr; + resources->ApplyResources(this->labMail1, L"labMail1"); + this->labMail1->Font = nullptr; + this->labMail1->Name = L"labMail1"; + // + // labTel1 + // + this->labTel1->AccessibleDescription = nullptr; + this->labTel1->AccessibleName = nullptr; + resources->ApplyResources(this->labTel1, L"labTel1"); + this->labTel1->Font = nullptr; + this->labTel1->Name = L"labTel1"; + // + // labFurigana1 + // + this->labFurigana1->AccessibleDescription = nullptr; + this->labFurigana1->AccessibleName = nullptr; + resources->ApplyResources(this->labFurigana1, L"labFurigana1"); + this->labFurigana1->Font = nullptr; + this->labFurigana1->Name = L"labFurigana1"; + // + // labPerson1 + // + this->labPerson1->AccessibleDescription = nullptr; + this->labPerson1->AccessibleName = nullptr; + resources->ApplyResources(this->labPerson1, L"labPerson1"); + this->labPerson1->Font = nullptr; + this->labPerson1->Name = L"labPerson1"; + // + // labCompany1 + // + this->labCompany1->AccessibleDescription = nullptr; + this->labCompany1->AccessibleName = nullptr; + resources->ApplyResources(this->labCompany1, L"labCompany1"); + this->labCompany1->Font = nullptr; + this->labCompany1->Name = L"labCompany1"; + // + // tboxProductCode2 + // + this->tboxProductCode2->AccessibleDescription = nullptr; + this->tboxProductCode2->AccessibleName = nullptr; + resources->ApplyResources(this->tboxProductCode2, L"tboxProductCode2"); + this->tboxProductCode2->BackgroundImage = nullptr; + this->tboxProductCode2->Font = nullptr; + this->tboxProductCode2->Name = L"tboxProductCode2"; + // + // tboxProductCode1 + // + this->tboxProductCode1->AccessibleDescription = nullptr; + this->tboxProductCode1->AccessibleName = nullptr; + resources->ApplyResources(this->tboxProductCode1, L"tboxProductCode1"); + this->tboxProductCode1->BackgroundImage = nullptr; + this->tboxProductCode1->Font = nullptr; + this->tboxProductCode1->Name = L"tboxProductCode1"; + // + // tboxProductName + // + this->tboxProductName->AccessibleDescription = nullptr; + this->tboxProductName->AccessibleName = nullptr; + resources->ApplyResources(this->tboxProductName, L"tboxProductName"); + this->tboxProductName->BackgroundImage = nullptr; + this->tboxProductName->Font = nullptr; + this->tboxProductName->Name = L"tboxProductName"; + // + // labProductCode2 + // + this->labProductCode2->AccessibleDescription = nullptr; + this->labProductCode2->AccessibleName = nullptr; + resources->ApplyResources(this->labProductCode2, L"labProductCode2"); + this->labProductCode2->Font = nullptr; + this->labProductCode2->Name = L"labProductCode2"; + // + // labProductCode1 + // + this->labProductCode1->AccessibleDescription = nullptr; + this->labProductCode1->AccessibleName = nullptr; + resources->ApplyResources(this->labProductCode1, L"labProductCode1"); + this->labProductCode1->Font = nullptr; + this->labProductCode1->Name = L"labProductCode1"; + // + // dateSubmit + // + this->dateSubmit->AccessibleDescription = nullptr; + this->dateSubmit->AccessibleName = nullptr; + resources->ApplyResources(this->dateSubmit, L"dateSubmit"); + this->dateSubmit->BackgroundImage = nullptr; + this->dateSubmit->CalendarFont = nullptr; + this->dateSubmit->CustomFormat = nullptr; + this->dateSubmit->Font = nullptr; + this->dateSubmit->Format = System::Windows::Forms::DateTimePickerFormat::Short; + this->dateSubmit->MaxDate = System::DateTime(2099, 12, 31, 0, 0, 0, 0); + this->dateSubmit->MinDate = System::DateTime(2008, 1, 1, 0, 0, 0, 0); + this->dateSubmit->Name = L"dateSubmit"; + this->dateSubmit->Value = System::DateTime(2008, 7, 30, 17, 43, 18, 405); + // + // dateRelease + // + this->dateRelease->AccessibleDescription = nullptr; + this->dateRelease->AccessibleName = nullptr; + resources->ApplyResources(this->dateRelease, L"dateRelease"); + this->dateRelease->BackgroundImage = nullptr; + this->dateRelease->CalendarFont = nullptr; + this->dateRelease->CustomFormat = nullptr; + this->dateRelease->Font = nullptr; + this->dateRelease->Format = System::Windows::Forms::DateTimePickerFormat::Short; + this->dateRelease->MaxDate = System::DateTime(2099, 12, 31, 0, 0, 0, 0); + this->dateRelease->MinDate = System::DateTime(2008, 1, 1, 0, 0, 0, 0); + this->dateRelease->Name = L"dateRelease"; + this->dateRelease->Value = System::DateTime(2008, 7, 30, 17, 43, 18, 420); + // + // gboxSubmitWay + // + this->gboxSubmitWay->AccessibleDescription = nullptr; + this->gboxSubmitWay->AccessibleName = nullptr; + resources->ApplyResources(this->gboxSubmitWay, L"gboxSubmitWay"); + this->gboxSubmitWay->BackgroundImage = nullptr; + this->gboxSubmitWay->Controls->Add(this->rSubmitInternet); + this->gboxSubmitWay->Controls->Add(this->rSubmitHand); + this->gboxSubmitWay->Controls->Add(this->rSubmitPost); + this->gboxSubmitWay->Font = nullptr; + this->gboxSubmitWay->Name = L"gboxSubmitWay"; + this->gboxSubmitWay->TabStop = false; + // + // rSubmitInternet + // + this->rSubmitInternet->AccessibleDescription = nullptr; + this->rSubmitInternet->AccessibleName = nullptr; + resources->ApplyResources(this->rSubmitInternet, L"rSubmitInternet"); + this->rSubmitInternet->BackgroundImage = nullptr; + this->rSubmitInternet->Font = nullptr; + this->rSubmitInternet->Name = L"rSubmitInternet"; + this->rSubmitInternet->TabStop = true; + this->rSubmitInternet->UseVisualStyleBackColor = true; + // + // rSubmitHand + // + this->rSubmitHand->AccessibleDescription = nullptr; + this->rSubmitHand->AccessibleName = nullptr; + resources->ApplyResources(this->rSubmitHand, L"rSubmitHand"); + this->rSubmitHand->BackgroundImage = nullptr; + this->rSubmitHand->Font = nullptr; + this->rSubmitHand->Name = L"rSubmitHand"; + this->rSubmitHand->UseVisualStyleBackColor = true; + // + // rSubmitPost + // + this->rSubmitPost->AccessibleDescription = nullptr; + this->rSubmitPost->AccessibleName = nullptr; + resources->ApplyResources(this->rSubmitPost, L"rSubmitPost"); + this->rSubmitPost->BackgroundImage = nullptr; + this->rSubmitPost->Checked = true; + this->rSubmitPost->Font = nullptr; + this->rSubmitPost->Name = L"rSubmitPost"; + this->rSubmitPost->TabStop = true; + this->rSubmitPost->UseVisualStyleBackColor = true; + // + // labSubmiteDate + // + this->labSubmiteDate->AccessibleDescription = nullptr; + this->labSubmiteDate->AccessibleName = nullptr; + resources->ApplyResources(this->labSubmiteDate, L"labSubmiteDate"); + this->labSubmiteDate->Font = nullptr; + this->labSubmiteDate->Name = L"labSubmiteDate"; + // + // labReleaseDate + // + this->labReleaseDate->AccessibleDescription = nullptr; + this->labReleaseDate->AccessibleName = nullptr; + resources->ApplyResources(this->labReleaseDate, L"labReleaseDate"); + this->labReleaseDate->Font = nullptr; + this->labReleaseDate->Name = L"labReleaseDate"; + // + // labProductCode + // + this->labProductCode->AccessibleDescription = nullptr; + this->labProductCode->AccessibleName = nullptr; + resources->ApplyResources(this->labProductCode, L"labProductCode"); + this->labProductCode->Font = nullptr; + this->labProductCode->Name = L"labProductCode"; + // + // labProductName + // + this->labProductName->AccessibleDescription = nullptr; + this->labProductName->AccessibleName = nullptr; + resources->ApplyResources(this->labProductName, L"labProductName"); + this->labProductName->Font = nullptr; + this->labProductName->Name = L"labProductName"; + // + // labCapSubmitVer + // + this->labCapSubmitVer->AccessibleDescription = nullptr; + this->labCapSubmitVer->AccessibleName = nullptr; + resources->ApplyResources(this->labCapSubmitVer, L"labCapSubmitVer"); + this->labCapSubmitVer->Name = L"labCapSubmitVer"; + // + // numSubmitVersion + // + this->numSubmitVersion->AccessibleDescription = nullptr; + this->numSubmitVersion->AccessibleName = nullptr; + resources->ApplyResources(this->numSubmitVersion, L"numSubmitVersion"); + this->numSubmitVersion->Font = nullptr; + this->numSubmitVersion->Maximum = System::Decimal(gcnew cli::array< System::Int32 >(4) {15, 0, 0, 0}); + this->numSubmitVersion->Name = L"numSubmitVersion"; + // + // labSubmitVer + // + this->labSubmitVer->AccessibleDescription = nullptr; + this->labSubmitVer->AccessibleName = nullptr; + resources->ApplyResources(this->labSubmitVer, L"labSubmitVer"); + this->labSubmitVer->Font = nullptr; + this->labSubmitVer->Name = L"labSubmitVer"; + // + // labMultiForeign1 + // + this->labMultiForeign1->AccessibleDescription = nullptr; + this->labMultiForeign1->AccessibleName = nullptr; + resources->ApplyResources(this->labMultiForeign1, L"labMultiForeign1"); + this->labMultiForeign1->Font = nullptr; + this->labMultiForeign1->Name = L"labMultiForeign1"; + // + // tboxProductCode2Foreign3 + // + this->tboxProductCode2Foreign3->AccessibleDescription = nullptr; + this->tboxProductCode2Foreign3->AccessibleName = nullptr; + resources->ApplyResources(this->tboxProductCode2Foreign3, L"tboxProductCode2Foreign3"); + this->tboxProductCode2Foreign3->BackgroundImage = nullptr; + this->tboxProductCode2Foreign3->Font = nullptr; + this->tboxProductCode2Foreign3->Name = L"tboxProductCode2Foreign3"; + // + // tboxProductCode2Foreign2 + // + this->tboxProductCode2Foreign2->AccessibleDescription = nullptr; + this->tboxProductCode2Foreign2->AccessibleName = nullptr; + resources->ApplyResources(this->tboxProductCode2Foreign2, L"tboxProductCode2Foreign2"); + this->tboxProductCode2Foreign2->BackgroundImage = nullptr; + this->tboxProductCode2Foreign2->Font = nullptr; + this->tboxProductCode2Foreign2->Name = L"tboxProductCode2Foreign2"; + // + // labProductCode2Foreign + // + this->labProductCode2Foreign->AccessibleDescription = nullptr; + this->labProductCode2Foreign->AccessibleName = nullptr; + resources->ApplyResources(this->labProductCode2Foreign, L"labProductCode2Foreign"); + this->labProductCode2Foreign->Font = nullptr; + this->labProductCode2Foreign->Name = L"labProductCode2Foreign"; + // + // cboxReleaseForeign + // + this->cboxReleaseForeign->AccessibleDescription = nullptr; + this->cboxReleaseForeign->AccessibleName = nullptr; + resources->ApplyResources(this->cboxReleaseForeign, L"cboxReleaseForeign"); + this->cboxReleaseForeign->BackgroundImage = nullptr; + this->cboxReleaseForeign->Font = nullptr; + this->cboxReleaseForeign->Name = L"cboxReleaseForeign"; + this->cboxReleaseForeign->UseVisualStyleBackColor = true; + this->cboxReleaseForeign->CheckedChanged += gcnew System::EventHandler(this, &Form1::cboxReleaseForeign_CheckedChanged); + // + // labProductNameForeign + // + this->labProductNameForeign->AccessibleDescription = nullptr; + this->labProductNameForeign->AccessibleName = nullptr; + resources->ApplyResources(this->labProductNameForeign, L"labProductNameForeign"); + this->labProductNameForeign->Font = nullptr; + this->labProductNameForeign->Name = L"labProductNameForeign"; + // + // tboxProductNameForeign + // + this->tboxProductNameForeign->AccessibleDescription = nullptr; + this->tboxProductNameForeign->AccessibleName = nullptr; + resources->ApplyResources(this->tboxProductNameForeign, L"tboxProductNameForeign"); + this->tboxProductNameForeign->BackgroundImage = nullptr; + this->tboxProductNameForeign->Font = nullptr; + this->tboxProductNameForeign->Name = L"tboxProductNameForeign"; + // + // labProductCode1Foreign + // + this->labProductCode1Foreign->AccessibleDescription = nullptr; + this->labProductCode1Foreign->AccessibleName = nullptr; + resources->ApplyResources(this->labProductCode1Foreign, L"labProductCode1Foreign"); + this->labProductCode1Foreign->Font = nullptr; + this->labProductCode1Foreign->Name = L"labProductCode1Foreign"; + // + // tboxProductCode1Foreign + // + this->tboxProductCode1Foreign->AccessibleDescription = nullptr; + this->tboxProductCode1Foreign->AccessibleName = nullptr; + resources->ApplyResources(this->tboxProductCode1Foreign, L"tboxProductCode1Foreign"); + this->tboxProductCode1Foreign->BackgroundImage = nullptr; + this->tboxProductCode1Foreign->Font = nullptr; + this->tboxProductCode1Foreign->Name = L"tboxProductCode1Foreign"; + // + // labProductCodeForeign + // + this->labProductCodeForeign->AccessibleDescription = nullptr; + this->labProductCodeForeign->AccessibleName = nullptr; + resources->ApplyResources(this->labProductCodeForeign, L"labProductCodeForeign"); + this->labProductCodeForeign->Font = nullptr; + this->labProductCodeForeign->Name = L"labProductCodeForeign"; + // + // tboxProductCode2Foreign1 + // + this->tboxProductCode2Foreign1->AccessibleDescription = nullptr; + this->tboxProductCode2Foreign1->AccessibleName = nullptr; + resources->ApplyResources(this->tboxProductCode2Foreign1, L"tboxProductCode2Foreign1"); + this->tboxProductCode2Foreign1->BackgroundImage = nullptr; + this->tboxProductCode2Foreign1->Font = nullptr; + this->tboxProductCode2Foreign1->Name = L"tboxProductCode2Foreign1"; + // + // gboxShared2Size + // + this->gboxShared2Size->AccessibleDescription = nullptr; + this->gboxShared2Size->AccessibleName = nullptr; + resources->ApplyResources(this->gboxShared2Size, L"gboxShared2Size"); + this->gboxShared2Size->BackgroundImage = nullptr; + this->gboxShared2Size->Controls->Add(this->labShared2Size5); + this->gboxShared2Size->Controls->Add(this->labShared2Size4); + this->gboxShared2Size->Controls->Add(this->labShared2Size3); + this->gboxShared2Size->Controls->Add(this->labShared2Size2); + this->gboxShared2Size->Controls->Add(this->labShared2Size1); + this->gboxShared2Size->Controls->Add(this->labShared2Size0); + this->gboxShared2Size->Controls->Add(this->tboxShared2Size5); + this->gboxShared2Size->Controls->Add(this->tboxShared2Size4); + this->gboxShared2Size->Controls->Add(this->tboxShared2Size3); + this->gboxShared2Size->Controls->Add(this->tboxShared2Size2); + this->gboxShared2Size->Controls->Add(this->tboxShared2Size1); + this->gboxShared2Size->Controls->Add(this->tboxShared2Size0); + this->gboxShared2Size->Controls->Add(this->cboxIsShared2); + this->gboxShared2Size->Font = nullptr; + this->gboxShared2Size->Name = L"gboxShared2Size"; + this->gboxShared2Size->TabStop = false; + // + // labShared2Size5 + // + this->labShared2Size5->AccessibleDescription = nullptr; + this->labShared2Size5->AccessibleName = nullptr; + resources->ApplyResources(this->labShared2Size5, L"labShared2Size5"); + this->labShared2Size5->Font = nullptr; + this->labShared2Size5->Name = L"labShared2Size5"; + // + // labShared2Size4 + // + this->labShared2Size4->AccessibleDescription = nullptr; + this->labShared2Size4->AccessibleName = nullptr; + resources->ApplyResources(this->labShared2Size4, L"labShared2Size4"); + this->labShared2Size4->Font = nullptr; + this->labShared2Size4->Name = L"labShared2Size4"; + // + // labShared2Size3 + // + this->labShared2Size3->AccessibleDescription = nullptr; + this->labShared2Size3->AccessibleName = nullptr; + resources->ApplyResources(this->labShared2Size3, L"labShared2Size3"); + this->labShared2Size3->Font = nullptr; + this->labShared2Size3->Name = L"labShared2Size3"; + // + // labShared2Size2 + // + this->labShared2Size2->AccessibleDescription = nullptr; + this->labShared2Size2->AccessibleName = nullptr; + resources->ApplyResources(this->labShared2Size2, L"labShared2Size2"); + this->labShared2Size2->Font = nullptr; + this->labShared2Size2->Name = L"labShared2Size2"; + // + // labShared2Size1 + // + this->labShared2Size1->AccessibleDescription = nullptr; + this->labShared2Size1->AccessibleName = nullptr; + resources->ApplyResources(this->labShared2Size1, L"labShared2Size1"); + this->labShared2Size1->Font = nullptr; + this->labShared2Size1->Name = L"labShared2Size1"; + // + // labShared2Size0 + // + this->labShared2Size0->AccessibleDescription = nullptr; + this->labShared2Size0->AccessibleName = nullptr; + resources->ApplyResources(this->labShared2Size0, L"labShared2Size0"); + this->labShared2Size0->Font = nullptr; + this->labShared2Size0->Name = L"labShared2Size0"; + // + // tboxShared2Size5 + // + this->tboxShared2Size5->AccessibleDescription = nullptr; + this->tboxShared2Size5->AccessibleName = nullptr; + resources->ApplyResources(this->tboxShared2Size5, L"tboxShared2Size5"); + this->tboxShared2Size5->BackgroundImage = nullptr; + this->tboxShared2Size5->Font = nullptr; + this->tboxShared2Size5->Name = L"tboxShared2Size5"; + this->tboxShared2Size5->ReadOnly = true; + // + // tboxShared2Size4 + // + this->tboxShared2Size4->AccessibleDescription = nullptr; + this->tboxShared2Size4->AccessibleName = nullptr; + resources->ApplyResources(this->tboxShared2Size4, L"tboxShared2Size4"); + this->tboxShared2Size4->BackgroundImage = nullptr; + this->tboxShared2Size4->Font = nullptr; + this->tboxShared2Size4->Name = L"tboxShared2Size4"; + this->tboxShared2Size4->ReadOnly = true; + // + // tboxShared2Size3 + // + this->tboxShared2Size3->AccessibleDescription = nullptr; + this->tboxShared2Size3->AccessibleName = nullptr; + resources->ApplyResources(this->tboxShared2Size3, L"tboxShared2Size3"); + this->tboxShared2Size3->BackgroundImage = nullptr; + this->tboxShared2Size3->Font = nullptr; + this->tboxShared2Size3->Name = L"tboxShared2Size3"; + this->tboxShared2Size3->ReadOnly = true; + // + // tboxShared2Size2 + // + this->tboxShared2Size2->AccessibleDescription = nullptr; + this->tboxShared2Size2->AccessibleName = nullptr; + resources->ApplyResources(this->tboxShared2Size2, L"tboxShared2Size2"); + this->tboxShared2Size2->BackgroundImage = nullptr; + this->tboxShared2Size2->Font = nullptr; + this->tboxShared2Size2->Name = L"tboxShared2Size2"; + this->tboxShared2Size2->ReadOnly = true; + // + // tboxShared2Size1 + // + this->tboxShared2Size1->AccessibleDescription = nullptr; + this->tboxShared2Size1->AccessibleName = nullptr; + resources->ApplyResources(this->tboxShared2Size1, L"tboxShared2Size1"); + this->tboxShared2Size1->BackgroundImage = nullptr; + this->tboxShared2Size1->Font = nullptr; + this->tboxShared2Size1->Name = L"tboxShared2Size1"; + this->tboxShared2Size1->ReadOnly = true; + // + // tboxShared2Size0 + // + this->tboxShared2Size0->AccessibleDescription = nullptr; + this->tboxShared2Size0->AccessibleName = nullptr; + resources->ApplyResources(this->tboxShared2Size0, L"tboxShared2Size0"); + this->tboxShared2Size0->BackgroundImage = nullptr; + this->tboxShared2Size0->Font = nullptr; + this->tboxShared2Size0->Name = L"tboxShared2Size0"; + this->tboxShared2Size0->ReadOnly = true; + // + // cboxIsShared2 + // + this->cboxIsShared2->AccessibleDescription = nullptr; + this->cboxIsShared2->AccessibleName = nullptr; + resources->ApplyResources(this->cboxIsShared2, L"cboxIsShared2"); + this->cboxIsShared2->BackgroundImage = nullptr; + this->cboxIsShared2->Font = nullptr; + this->cboxIsShared2->Name = L"cboxIsShared2"; + this->cboxIsShared2->UseVisualStyleBackColor = true; + // + // labLib + // + this->labLib->AccessibleDescription = nullptr; + this->labLib->AccessibleName = nullptr; + resources->ApplyResources(this->labLib, L"labLib"); + this->labLib->Font = nullptr; + this->labLib->Name = L"labLib"; + // + // labSDK + // + this->labSDK->AccessibleDescription = nullptr; + this->labSDK->AccessibleName = nullptr; + resources->ApplyResources(this->labSDK, L"labSDK"); + this->labSDK->Font = nullptr; + this->labSDK->Name = L"labSDK"; + // + // gboxTWLExInfo + // + this->gboxTWLExInfo->AccessibleDescription = nullptr; + this->gboxTWLExInfo->AccessibleName = nullptr; + resources->ApplyResources(this->gboxTWLExInfo, L"gboxTWLExInfo"); + this->gboxTWLExInfo->BackgroundImage = nullptr; + this->gboxTWLExInfo->Controls->Add(this->labByte1); + this->gboxTWLExInfo->Controls->Add(this->labHex4); + this->gboxTWLExInfo->Controls->Add(this->tboxIsCodec); + this->gboxTWLExInfo->Controls->Add(this->labIsCodec); + this->gboxTWLExInfo->Controls->Add(this->labKeyTableRomOffset); + this->gboxTWLExInfo->Controls->Add(this->tboxKeyTableRomOffset); + this->gboxTWLExInfo->Font = nullptr; + this->gboxTWLExInfo->Name = L"gboxTWLExInfo"; + this->gboxTWLExInfo->TabStop = false; + // + // labByte1 + // + this->labByte1->AccessibleDescription = nullptr; + this->labByte1->AccessibleName = nullptr; + resources->ApplyResources(this->labByte1, L"labByte1"); + this->labByte1->Font = nullptr; + this->labByte1->Name = L"labByte1"; + // + // labHex4 + // + this->labHex4->AccessibleDescription = nullptr; + this->labHex4->AccessibleName = nullptr; + resources->ApplyResources(this->labHex4, L"labHex4"); + this->labHex4->Font = nullptr; + this->labHex4->Name = L"labHex4"; + // + // tboxIsCodec + // + this->tboxIsCodec->AccessibleDescription = nullptr; + this->tboxIsCodec->AccessibleName = nullptr; + resources->ApplyResources(this->tboxIsCodec, L"tboxIsCodec"); + this->tboxIsCodec->BackgroundImage = nullptr; + this->tboxIsCodec->Font = nullptr; + this->tboxIsCodec->Name = L"tboxIsCodec"; + this->tboxIsCodec->ReadOnly = true; + // + // labIsCodec + // + this->labIsCodec->AccessibleDescription = nullptr; + this->labIsCodec->AccessibleName = nullptr; + resources->ApplyResources(this->labIsCodec, L"labIsCodec"); + this->labIsCodec->Font = nullptr; + this->labIsCodec->Name = L"labIsCodec"; + // + // labKeyTableRomOffset + // + this->labKeyTableRomOffset->AccessibleDescription = nullptr; + this->labKeyTableRomOffset->AccessibleName = nullptr; + resources->ApplyResources(this->labKeyTableRomOffset, L"labKeyTableRomOffset"); + this->labKeyTableRomOffset->Font = nullptr; + this->labKeyTableRomOffset->Name = L"labKeyTableRomOffset"; + // + // tboxKeyTableRomOffset + // + this->tboxKeyTableRomOffset->AccessibleDescription = nullptr; + this->tboxKeyTableRomOffset->AccessibleName = nullptr; + resources->ApplyResources(this->tboxKeyTableRomOffset, L"tboxKeyTableRomOffset"); + this->tboxKeyTableRomOffset->BackgroundImage = nullptr; + this->tboxKeyTableRomOffset->Font = nullptr; + this->tboxKeyTableRomOffset->Name = L"tboxKeyTableRomOffset"; + this->tboxKeyTableRomOffset->ReadOnly = true; + // + // labHex3 + // + this->labHex3->AccessibleDescription = nullptr; + this->labHex3->AccessibleName = nullptr; + resources->ApplyResources(this->labHex3, L"labHex3"); + this->labHex3->Font = nullptr; + this->labHex3->Name = L"labHex3"; + // + // labNormalRomOffset + // + this->labNormalRomOffset->AccessibleDescription = nullptr; + this->labNormalRomOffset->AccessibleName = nullptr; + resources->ApplyResources(this->labNormalRomOffset, L"labNormalRomOffset"); + this->labNormalRomOffset->Font = nullptr; + this->labNormalRomOffset->Name = L"labNormalRomOffset"; + // + // tboxNormalRomOffset + // + this->tboxNormalRomOffset->AccessibleDescription = nullptr; + this->tboxNormalRomOffset->AccessibleName = nullptr; + resources->ApplyResources(this->tboxNormalRomOffset, L"tboxNormalRomOffset"); + this->tboxNormalRomOffset->BackgroundImage = nullptr; + this->tboxNormalRomOffset->Font = nullptr; + this->tboxNormalRomOffset->Name = L"tboxNormalRomOffset"; + this->tboxNormalRomOffset->ReadOnly = true; + // + // tboxPrivateSize + // + this->tboxPrivateSize->AccessibleDescription = nullptr; + this->tboxPrivateSize->AccessibleName = nullptr; + resources->ApplyResources(this->tboxPrivateSize, L"tboxPrivateSize"); + this->tboxPrivateSize->BackgroundImage = nullptr; + this->tboxPrivateSize->Font = nullptr; + this->tboxPrivateSize->Name = L"tboxPrivateSize"; + this->tboxPrivateSize->ReadOnly = true; + // + // labPrivateSize + // + this->labPrivateSize->AccessibleDescription = nullptr; + this->labPrivateSize->AccessibleName = nullptr; + resources->ApplyResources(this->labPrivateSize, L"labPrivateSize"); + this->labPrivateSize->Font = nullptr; + this->labPrivateSize->Name = L"labPrivateSize"; + // + // labPublicSize + // + this->labPublicSize->AccessibleDescription = nullptr; + this->labPublicSize->AccessibleName = nullptr; + resources->ApplyResources(this->labPublicSize, L"labPublicSize"); + this->labPublicSize->Font = nullptr; + this->labPublicSize->Name = L"labPublicSize"; + // + // tboxPublicSize + // + this->tboxPublicSize->AccessibleDescription = nullptr; + this->tboxPublicSize->AccessibleName = nullptr; + resources->ApplyResources(this->tboxPublicSize, L"tboxPublicSize"); + this->tboxPublicSize->BackgroundImage = nullptr; + this->tboxPublicSize->Font = nullptr; + this->tboxPublicSize->Name = L"tboxPublicSize"; + this->tboxPublicSize->ReadOnly = true; + // + // cboxIsSubBanner + // + this->cboxIsSubBanner->AccessibleDescription = nullptr; + this->cboxIsSubBanner->AccessibleName = nullptr; + resources->ApplyResources(this->cboxIsSubBanner, L"cboxIsSubBanner"); + this->cboxIsSubBanner->BackgroundImage = nullptr; + this->cboxIsSubBanner->Font = nullptr; + this->cboxIsSubBanner->Name = L"cboxIsSubBanner"; + this->cboxIsSubBanner->UseVisualStyleBackColor = true; + // + // cboxIsNormalJump + // + this->cboxIsNormalJump->AccessibleDescription = nullptr; + this->cboxIsNormalJump->AccessibleName = nullptr; + resources->ApplyResources(this->cboxIsNormalJump, L"cboxIsNormalJump"); + this->cboxIsNormalJump->BackgroundImage = nullptr; + this->cboxIsNormalJump->Font = nullptr; + this->cboxIsNormalJump->Name = L"cboxIsNormalJump"; + this->cboxIsNormalJump->UseVisualStyleBackColor = true; + // + // cboxIsTmpJump + // + this->cboxIsTmpJump->AccessibleDescription = nullptr; + this->cboxIsTmpJump->AccessibleName = nullptr; + resources->ApplyResources(this->cboxIsTmpJump, L"cboxIsTmpJump"); + this->cboxIsTmpJump->BackgroundImage = nullptr; + this->cboxIsTmpJump->Font = nullptr; + this->cboxIsTmpJump->Name = L"cboxIsTmpJump"; + this->cboxIsTmpJump->UseVisualStyleBackColor = true; + // + // gboxAccess + // + this->gboxAccess->AccessibleDescription = nullptr; + this->gboxAccess->AccessibleName = nullptr; + resources->ApplyResources(this->gboxAccess, L"gboxAccess"); + this->gboxAccess->BackgroundImage = nullptr; + this->gboxAccess->Controls->Add(this->labSDAccessRight); + this->gboxAccess->Controls->Add(this->tboxSDAccessRight); + this->gboxAccess->Controls->Add(this->tboxPhotoAccess); + this->gboxAccess->Controls->Add(this->labPhotoAccess); + this->gboxAccess->Controls->Add(this->labAccessOther); + this->gboxAccess->Controls->Add(this->tboxAccessOther); + this->gboxAccess->Controls->Add(this->cboxIsNAND); + this->gboxAccess->Controls->Add(this->cboxIsSD); + this->gboxAccess->Font = nullptr; + this->gboxAccess->Name = L"gboxAccess"; + this->gboxAccess->TabStop = false; + // + // labSDAccessRight + // + this->labSDAccessRight->AccessibleDescription = nullptr; + this->labSDAccessRight->AccessibleName = nullptr; + resources->ApplyResources(this->labSDAccessRight, L"labSDAccessRight"); + this->labSDAccessRight->Font = nullptr; + this->labSDAccessRight->Name = L"labSDAccessRight"; + // + // tboxSDAccessRight + // + this->tboxSDAccessRight->AccessibleDescription = nullptr; + this->tboxSDAccessRight->AccessibleName = nullptr; + resources->ApplyResources(this->tboxSDAccessRight, L"tboxSDAccessRight"); + this->tboxSDAccessRight->BackgroundImage = nullptr; + this->tboxSDAccessRight->Font = nullptr; + this->tboxSDAccessRight->Name = L"tboxSDAccessRight"; + this->tboxSDAccessRight->ReadOnly = true; + // + // tboxPhotoAccess + // + this->tboxPhotoAccess->AccessibleDescription = nullptr; + this->tboxPhotoAccess->AccessibleName = nullptr; + resources->ApplyResources(this->tboxPhotoAccess, L"tboxPhotoAccess"); + this->tboxPhotoAccess->BackgroundImage = nullptr; + this->tboxPhotoAccess->Font = nullptr; + this->tboxPhotoAccess->Name = L"tboxPhotoAccess"; + this->tboxPhotoAccess->ReadOnly = true; + // + // labPhotoAccess + // + this->labPhotoAccess->AccessibleDescription = nullptr; + this->labPhotoAccess->AccessibleName = nullptr; + resources->ApplyResources(this->labPhotoAccess, L"labPhotoAccess"); + this->labPhotoAccess->Font = nullptr; + this->labPhotoAccess->Name = L"labPhotoAccess"; + // + // labAccessOther + // + this->labAccessOther->AccessibleDescription = nullptr; + this->labAccessOther->AccessibleName = nullptr; + resources->ApplyResources(this->labAccessOther, L"labAccessOther"); + this->labAccessOther->Font = nullptr; + this->labAccessOther->Name = L"labAccessOther"; + // + // tboxAccessOther + // + this->tboxAccessOther->AccessibleDescription = nullptr; + this->tboxAccessOther->AccessibleName = nullptr; + resources->ApplyResources(this->tboxAccessOther, L"tboxAccessOther"); + this->tboxAccessOther->BackgroundImage = nullptr; + this->tboxAccessOther->Font = nullptr; + this->tboxAccessOther->Name = L"tboxAccessOther"; + this->tboxAccessOther->ReadOnly = true; + // + // cboxIsNAND + // + this->cboxIsNAND->AccessibleDescription = nullptr; + this->cboxIsNAND->AccessibleName = nullptr; + resources->ApplyResources(this->cboxIsNAND, L"cboxIsNAND"); + this->cboxIsNAND->BackgroundImage = nullptr; + this->cboxIsNAND->Font = nullptr; + this->cboxIsNAND->Name = L"cboxIsNAND"; + this->cboxIsNAND->UseVisualStyleBackColor = true; + // + // cboxIsSD + // + this->cboxIsSD->AccessibleDescription = nullptr; + this->cboxIsSD->AccessibleName = nullptr; + resources->ApplyResources(this->cboxIsSD, L"cboxIsSD"); + this->cboxIsSD->BackgroundImage = nullptr; + this->cboxIsSD->Font = nullptr; + this->cboxIsSD->Name = L"cboxIsSD"; + this->cboxIsSD->UseVisualStyleBackColor = true; + // + // labIsGameCardOn2 + // + this->labIsGameCardOn2->AccessibleDescription = nullptr; + this->labIsGameCardOn2->AccessibleName = nullptr; + resources->ApplyResources(this->labIsGameCardOn2, L"labIsGameCardOn2"); + this->labIsGameCardOn2->Name = L"labIsGameCardOn2"; + // + // tboxIsGameCardOn + // + this->tboxIsGameCardOn->AccessibleDescription = nullptr; + this->tboxIsGameCardOn->AccessibleName = nullptr; + resources->ApplyResources(this->tboxIsGameCardOn, L"tboxIsGameCardOn"); + this->tboxIsGameCardOn->BackgroundImage = nullptr; + this->tboxIsGameCardOn->Font = nullptr; + this->tboxIsGameCardOn->Name = L"tboxIsGameCardOn"; + this->tboxIsGameCardOn->ReadOnly = true; + // + // labIsGameCardOn + // + this->labIsGameCardOn->AccessibleDescription = nullptr; + this->labIsGameCardOn->AccessibleName = nullptr; + resources->ApplyResources(this->labIsGameCardOn, L"labIsGameCardOn"); + this->labIsGameCardOn->Font = nullptr; + this->labIsGameCardOn->Name = L"labIsGameCardOn"; + // + // gboxTitleID + // + this->gboxTitleID->AccessibleDescription = nullptr; + this->gboxTitleID->AccessibleName = nullptr; + resources->ApplyResources(this->gboxTitleID, L"gboxTitleID"); + this->gboxTitleID->BackgroundImage = nullptr; + this->gboxTitleID->Controls->Add(this->labAppType); + this->gboxTitleID->Controls->Add(this->tboxAppType); + this->gboxTitleID->Controls->Add(this->labHex2); + this->gboxTitleID->Controls->Add(this->tboxTitleIDLo); + this->gboxTitleID->Controls->Add(this->labTitleIDLo); + this->gboxTitleID->Controls->Add(this->labTitleIDHi); + this->gboxTitleID->Controls->Add(this->tboxTitleIDHi); + this->gboxTitleID->Controls->Add(this->tboxAppTypeOther); + this->gboxTitleID->Controls->Add(this->labAppTypeOther); + this->gboxTitleID->Font = nullptr; + this->gboxTitleID->Name = L"gboxTitleID"; + this->gboxTitleID->TabStop = false; + // + // labAppType + // + this->labAppType->AccessibleDescription = nullptr; + this->labAppType->AccessibleName = nullptr; + resources->ApplyResources(this->labAppType, L"labAppType"); + this->labAppType->Font = nullptr; + this->labAppType->Name = L"labAppType"; + // + // tboxAppType + // + this->tboxAppType->AccessibleDescription = nullptr; + this->tboxAppType->AccessibleName = nullptr; + resources->ApplyResources(this->tboxAppType, L"tboxAppType"); + this->tboxAppType->BackgroundImage = nullptr; + this->tboxAppType->Font = nullptr; + this->tboxAppType->Name = L"tboxAppType"; + this->tboxAppType->ReadOnly = true; + // + // labHex2 + // + this->labHex2->AccessibleDescription = nullptr; + this->labHex2->AccessibleName = nullptr; + resources->ApplyResources(this->labHex2, L"labHex2"); + this->labHex2->Font = nullptr; + this->labHex2->Name = L"labHex2"; + // + // tboxTitleIDLo + // + this->tboxTitleIDLo->AccessibleDescription = nullptr; + this->tboxTitleIDLo->AccessibleName = nullptr; + resources->ApplyResources(this->tboxTitleIDLo, L"tboxTitleIDLo"); + this->tboxTitleIDLo->BackgroundImage = nullptr; + this->tboxTitleIDLo->Font = nullptr; + this->tboxTitleIDLo->Name = L"tboxTitleIDLo"; + this->tboxTitleIDLo->ReadOnly = true; + // + // labTitleIDLo + // + this->labTitleIDLo->AccessibleDescription = nullptr; + this->labTitleIDLo->AccessibleName = nullptr; + resources->ApplyResources(this->labTitleIDLo, L"labTitleIDLo"); + this->labTitleIDLo->Font = nullptr; + this->labTitleIDLo->Name = L"labTitleIDLo"; + // + // labTitleIDHi + // + this->labTitleIDHi->AccessibleDescription = nullptr; + this->labTitleIDHi->AccessibleName = nullptr; + resources->ApplyResources(this->labTitleIDHi, L"labTitleIDHi"); + this->labTitleIDHi->Font = nullptr; + this->labTitleIDHi->Name = L"labTitleIDHi"; + // + // tboxTitleIDHi + // + this->tboxTitleIDHi->AccessibleDescription = nullptr; + this->tboxTitleIDHi->AccessibleName = nullptr; + resources->ApplyResources(this->tboxTitleIDHi, L"tboxTitleIDHi"); + this->tboxTitleIDHi->BackgroundImage = nullptr; + this->tboxTitleIDHi->Font = nullptr; + this->tboxTitleIDHi->Name = L"tboxTitleIDHi"; + this->tboxTitleIDHi->ReadOnly = true; + // + // tboxAppTypeOther + // + this->tboxAppTypeOther->AccessibleDescription = nullptr; + this->tboxAppTypeOther->AccessibleName = nullptr; + resources->ApplyResources(this->tboxAppTypeOther, L"tboxAppTypeOther"); + this->tboxAppTypeOther->BackgroundImage = nullptr; + this->tboxAppTypeOther->Font = nullptr; + this->tboxAppTypeOther->Name = L"tboxAppTypeOther"; + this->tboxAppTypeOther->ReadOnly = true; + // + // labAppTypeOther + // + this->labAppTypeOther->AccessibleDescription = nullptr; + this->labAppTypeOther->AccessibleName = nullptr; + resources->ApplyResources(this->labAppTypeOther, L"labAppTypeOther"); + this->labAppTypeOther->Font = nullptr; + this->labAppTypeOther->Name = L"labAppTypeOther"; + // + // labMedia + // + this->labMedia->AccessibleDescription = nullptr; + this->labMedia->AccessibleName = nullptr; + resources->ApplyResources(this->labMedia, L"labMedia"); + this->labMedia->Font = nullptr; + this->labMedia->Name = L"labMedia"; + // + // tboxMedia + // + this->tboxMedia->AccessibleDescription = nullptr; + this->tboxMedia->AccessibleName = nullptr; + resources->ApplyResources(this->tboxMedia, L"tboxMedia"); + this->tboxMedia->BackgroundImage = nullptr; + this->tboxMedia->Font = nullptr; + this->tboxMedia->Name = L"tboxMedia"; + this->tboxMedia->ReadOnly = true; + // + // labCaptionEx + // + this->labCaptionEx->AccessibleDescription = nullptr; + this->labCaptionEx->AccessibleName = nullptr; + resources->ApplyResources(this->labCaptionEx, L"labCaptionEx"); + this->labCaptionEx->Font = nullptr; + this->labCaptionEx->Name = L"labCaptionEx"; + // + // tboxCaptionEx + // + this->tboxCaptionEx->AccessibleDescription = nullptr; + this->tboxCaptionEx->AccessibleName = nullptr; + resources->ApplyResources(this->tboxCaptionEx, L"tboxCaptionEx"); + this->tboxCaptionEx->BackgroundImage = nullptr; + this->tboxCaptionEx->Font = nullptr; + this->tboxCaptionEx->Name = L"tboxCaptionEx"; + this->tboxCaptionEx->ReadOnly = true; + // + // gboxProd + // + this->gboxProd->AccessibleDescription = nullptr; + this->gboxProd->AccessibleName = nullptr; + resources->ApplyResources(this->gboxProd, L"gboxProd"); + this->gboxProd->BackgroundImage = nullptr; + this->gboxProd->Controls->Add(this->combBackup); + this->gboxProd->Controls->Add(this->labBackup); + this->gboxProd->Controls->Add(this->tboxBackupOther); + this->gboxProd->Font = nullptr; + this->gboxProd->Name = L"gboxProd"; + this->gboxProd->TabStop = false; + // + // menuStripAbove + // + this->menuStripAbove->AccessibleDescription = nullptr; + this->menuStripAbove->AccessibleName = nullptr; + resources->ApplyResources(this->menuStripAbove, L"menuStripAbove"); + this->menuStripAbove->BackgroundImage = nullptr; + this->menuStripAbove->Items->AddRange(gcnew cli::array< System::Windows::Forms::ToolStripItem^ >(4) {this->stripFile, this->stripMaster, + this->exportToolStripMenuItem, this->stripLang}); + this->menuStripAbove->Name = L"menuStripAbove"; + // + // stripFile + // + this->stripFile->AccessibleDescription = nullptr; + this->stripFile->AccessibleName = nullptr; + resources->ApplyResources(this->stripFile, L"stripFile"); + this->stripFile->BackgroundImage = nullptr; + this->stripFile->DropDownItems->AddRange(gcnew cli::array< System::Windows::Forms::ToolStripItem^ >(4) {this->stripItemOpenRom, + this->stripItemSepFile1, this->stripItemSaveTemp, this->stripItemLoadTemp}); + this->stripFile->Name = L"stripFile"; + this->stripFile->ShortcutKeyDisplayString = nullptr; + // + // stripItemOpenRom + // + this->stripItemOpenRom->AccessibleDescription = nullptr; + this->stripItemOpenRom->AccessibleName = nullptr; + resources->ApplyResources(this->stripItemOpenRom, L"stripItemOpenRom"); + this->stripItemOpenRom->BackgroundImage = nullptr; + this->stripItemOpenRom->Name = L"stripItemOpenRom"; + this->stripItemOpenRom->ShortcutKeyDisplayString = nullptr; + this->stripItemOpenRom->Click += gcnew System::EventHandler(this, &Form1::stripItemOpenRom_Click); + // + // stripItemSepFile1 + // + this->stripItemSepFile1->AccessibleDescription = nullptr; + this->stripItemSepFile1->AccessibleName = nullptr; + resources->ApplyResources(this->stripItemSepFile1, L"stripItemSepFile1"); + this->stripItemSepFile1->Name = L"stripItemSepFile1"; + // + // stripItemSaveTemp + // + this->stripItemSaveTemp->AccessibleDescription = nullptr; + this->stripItemSaveTemp->AccessibleName = nullptr; + resources->ApplyResources(this->stripItemSaveTemp, L"stripItemSaveTemp"); + this->stripItemSaveTemp->BackgroundImage = nullptr; + this->stripItemSaveTemp->Name = L"stripItemSaveTemp"; + this->stripItemSaveTemp->ShortcutKeyDisplayString = nullptr; + this->stripItemSaveTemp->Click += gcnew System::EventHandler(this, &Form1::stripItemSaveTemp_Click); + // + // stripItemLoadTemp + // + this->stripItemLoadTemp->AccessibleDescription = nullptr; + this->stripItemLoadTemp->AccessibleName = nullptr; + resources->ApplyResources(this->stripItemLoadTemp, L"stripItemLoadTemp"); + this->stripItemLoadTemp->BackgroundImage = nullptr; + this->stripItemLoadTemp->Name = L"stripItemLoadTemp"; + this->stripItemLoadTemp->ShortcutKeyDisplayString = nullptr; + this->stripItemLoadTemp->Click += gcnew System::EventHandler(this, &Form1::stripItemLoadTemp_Click); + // + // stripMaster + // + this->stripMaster->AccessibleDescription = nullptr; + this->stripMaster->AccessibleName = nullptr; + resources->ApplyResources(this->stripMaster, L"stripMaster"); + this->stripMaster->BackgroundImage = nullptr; + this->stripMaster->DropDownItems->AddRange(gcnew cli::array< System::Windows::Forms::ToolStripItem^ >(5) {this->stripItemSheet, + this->stripItemSepMaster1, this->stripItemMasterRom, this->stripItemMiddlewareXml, this->stripItemMiddlewareHtml}); + this->stripMaster->Name = L"stripMaster"; + this->stripMaster->ShortcutKeyDisplayString = nullptr; + // + // stripItemSheet + // + this->stripItemSheet->AccessibleDescription = nullptr; + this->stripItemSheet->AccessibleName = nullptr; + resources->ApplyResources(this->stripItemSheet, L"stripItemSheet"); + this->stripItemSheet->BackgroundImage = nullptr; + this->stripItemSheet->Name = L"stripItemSheet"; + this->stripItemSheet->ShortcutKeyDisplayString = nullptr; + this->stripItemSheet->Click += gcnew System::EventHandler(this, &Form1::stripItemSheet_Click); + // + // stripItemSepMaster1 + // + this->stripItemSepMaster1->AccessibleDescription = nullptr; + this->stripItemSepMaster1->AccessibleName = nullptr; + resources->ApplyResources(this->stripItemSepMaster1, L"stripItemSepMaster1"); + this->stripItemSepMaster1->Name = L"stripItemSepMaster1"; + // + // stripItemMasterRom + // + this->stripItemMasterRom->AccessibleDescription = nullptr; + this->stripItemMasterRom->AccessibleName = nullptr; + resources->ApplyResources(this->stripItemMasterRom, L"stripItemMasterRom"); + this->stripItemMasterRom->BackgroundImage = nullptr; + this->stripItemMasterRom->Name = L"stripItemMasterRom"; + this->stripItemMasterRom->ShortcutKeyDisplayString = nullptr; + this->stripItemMasterRom->Click += gcnew System::EventHandler(this, &Form1::stripItemMasterRom_Click); + // + // stripItemMiddlewareXml + // + this->stripItemMiddlewareXml->AccessibleDescription = nullptr; + this->stripItemMiddlewareXml->AccessibleName = nullptr; + resources->ApplyResources(this->stripItemMiddlewareXml, L"stripItemMiddlewareXml"); + this->stripItemMiddlewareXml->BackgroundImage = nullptr; + this->stripItemMiddlewareXml->Name = L"stripItemMiddlewareXml"; + this->stripItemMiddlewareXml->ShortcutKeyDisplayString = nullptr; + this->stripItemMiddlewareXml->Click += gcnew System::EventHandler(this, &Form1::stripItemMiddlewareXml_Click); + // + // stripItemMiddlewareHtml + // + this->stripItemMiddlewareHtml->AccessibleDescription = nullptr; + this->stripItemMiddlewareHtml->AccessibleName = nullptr; + resources->ApplyResources(this->stripItemMiddlewareHtml, L"stripItemMiddlewareHtml"); + this->stripItemMiddlewareHtml->BackgroundImage = nullptr; + this->stripItemMiddlewareHtml->Name = L"stripItemMiddlewareHtml"; + this->stripItemMiddlewareHtml->ShortcutKeyDisplayString = nullptr; + this->stripItemMiddlewareHtml->Click += gcnew System::EventHandler(this, &Form1::stripItemMiddlewareHtml_Click); + // + // exportToolStripMenuItem + // + this->exportToolStripMenuItem->AccessibleDescription = nullptr; + this->exportToolStripMenuItem->AccessibleName = nullptr; + resources->ApplyResources(this->exportToolStripMenuItem, L"exportToolStripMenuItem"); + this->exportToolStripMenuItem->BackgroundImage = nullptr; + this->exportToolStripMenuItem->DropDownItems->AddRange(gcnew cli::array< System::Windows::Forms::ToolStripItem^ >(7) {this->stripItemRomInfoList, + this->toolStripSeparator2, this->stripItemErrorListRead, this->stripItemErrorListCurrent, this->toolStripSeparator1, this->stripItemRomInfoAndErrorListRead, + this->stripItemRomInfoAndErrorListCurrent}); + this->exportToolStripMenuItem->Name = L"exportToolStripMenuItem"; + this->exportToolStripMenuItem->ShortcutKeyDisplayString = nullptr; + // + // stripItemRomInfoList + // + this->stripItemRomInfoList->AccessibleDescription = nullptr; + this->stripItemRomInfoList->AccessibleName = nullptr; + resources->ApplyResources(this->stripItemRomInfoList, L"stripItemRomInfoList"); + this->stripItemRomInfoList->BackgroundImage = nullptr; + this->stripItemRomInfoList->Name = L"stripItemRomInfoList"; + this->stripItemRomInfoList->ShortcutKeyDisplayString = nullptr; + this->stripItemRomInfoList->Click += gcnew System::EventHandler(this, &Form1::stripItemRomInfoList_Click); + // + // toolStripSeparator2 + // + this->toolStripSeparator2->AccessibleDescription = nullptr; + this->toolStripSeparator2->AccessibleName = nullptr; + resources->ApplyResources(this->toolStripSeparator2, L"toolStripSeparator2"); + this->toolStripSeparator2->Name = L"toolStripSeparator2"; + // + // stripItemErrorListRead + // + this->stripItemErrorListRead->AccessibleDescription = nullptr; + this->stripItemErrorListRead->AccessibleName = nullptr; + resources->ApplyResources(this->stripItemErrorListRead, L"stripItemErrorListRead"); + this->stripItemErrorListRead->BackgroundImage = nullptr; + this->stripItemErrorListRead->Name = L"stripItemErrorListRead"; + this->stripItemErrorListRead->ShortcutKeyDisplayString = nullptr; + this->stripItemErrorListRead->Click += gcnew System::EventHandler(this, &Form1::stripItemErrorListRead_Click); + // + // stripItemErrorListCurrent + // + this->stripItemErrorListCurrent->AccessibleDescription = nullptr; + this->stripItemErrorListCurrent->AccessibleName = nullptr; + resources->ApplyResources(this->stripItemErrorListCurrent, L"stripItemErrorListCurrent"); + this->stripItemErrorListCurrent->BackgroundImage = nullptr; + this->stripItemErrorListCurrent->Name = L"stripItemErrorListCurrent"; + this->stripItemErrorListCurrent->ShortcutKeyDisplayString = nullptr; + this->stripItemErrorListCurrent->Click += gcnew System::EventHandler(this, &Form1::stripItemErrorListCurrent_Click); + // + // toolStripSeparator1 + // + this->toolStripSeparator1->AccessibleDescription = nullptr; + this->toolStripSeparator1->AccessibleName = nullptr; + resources->ApplyResources(this->toolStripSeparator1, L"toolStripSeparator1"); + this->toolStripSeparator1->Name = L"toolStripSeparator1"; + // + // stripItemRomInfoAndErrorListRead + // + this->stripItemRomInfoAndErrorListRead->AccessibleDescription = nullptr; + this->stripItemRomInfoAndErrorListRead->AccessibleName = nullptr; + resources->ApplyResources(this->stripItemRomInfoAndErrorListRead, L"stripItemRomInfoAndErrorListRead"); + this->stripItemRomInfoAndErrorListRead->BackgroundImage = nullptr; + this->stripItemRomInfoAndErrorListRead->Name = L"stripItemRomInfoAndErrorListRead"; + this->stripItemRomInfoAndErrorListRead->ShortcutKeyDisplayString = nullptr; + this->stripItemRomInfoAndErrorListRead->Click += gcnew System::EventHandler(this, &Form1::stripItemRomInfoAndErrorListRead_Click); + // + // stripItemRomInfoAndErrorListCurrent + // + this->stripItemRomInfoAndErrorListCurrent->AccessibleDescription = nullptr; + this->stripItemRomInfoAndErrorListCurrent->AccessibleName = nullptr; + resources->ApplyResources(this->stripItemRomInfoAndErrorListCurrent, L"stripItemRomInfoAndErrorListCurrent"); + this->stripItemRomInfoAndErrorListCurrent->BackgroundImage = nullptr; + this->stripItemRomInfoAndErrorListCurrent->Name = L"stripItemRomInfoAndErrorListCurrent"; + this->stripItemRomInfoAndErrorListCurrent->ShortcutKeyDisplayString = nullptr; + this->stripItemRomInfoAndErrorListCurrent->Click += gcnew System::EventHandler(this, &Form1::stripItemRomInfoAndErrorListCurrent_Click); + // + // stripLang + // + this->stripLang->AccessibleDescription = nullptr; + this->stripLang->AccessibleName = nullptr; + resources->ApplyResources(this->stripLang, L"stripLang"); + this->stripLang->BackgroundImage = nullptr; + this->stripLang->DropDownItems->AddRange(gcnew cli::array< System::Windows::Forms::ToolStripItem^ >(2) {this->stripItemEnglish, + this->stripItemJapanese}); + this->stripLang->Name = L"stripLang"; + this->stripLang->ShortcutKeyDisplayString = nullptr; + // + // stripItemEnglish + // + this->stripItemEnglish->AccessibleDescription = nullptr; + this->stripItemEnglish->AccessibleName = nullptr; + resources->ApplyResources(this->stripItemEnglish, L"stripItemEnglish"); + this->stripItemEnglish->BackgroundImage = nullptr; + this->stripItemEnglish->Name = L"stripItemEnglish"; + this->stripItemEnglish->ShortcutKeyDisplayString = nullptr; + this->stripItemEnglish->Click += gcnew System::EventHandler(this, &Form1::stripItemEnglish_Click); + // + // stripItemJapanese + // + this->stripItemJapanese->AccessibleDescription = nullptr; + this->stripItemJapanese->AccessibleName = nullptr; + resources->ApplyResources(this->stripItemJapanese, L"stripItemJapanese"); + this->stripItemJapanese->BackgroundImage = nullptr; + this->stripItemJapanese->Checked = true; + this->stripItemJapanese->CheckState = System::Windows::Forms::CheckState::Checked; + this->stripItemJapanese->Name = L"stripItemJapanese"; + this->stripItemJapanese->ShortcutKeyDisplayString = nullptr; + this->stripItemJapanese->Click += gcnew System::EventHandler(this, &Form1::stripItemJapanese_Click); + // + // tabMain + // + this->tabMain->AccessibleDescription = nullptr; + this->tabMain->AccessibleName = nullptr; + resources->ApplyResources(this->tabMain, L"tabMain"); + this->tabMain->BackgroundImage = nullptr; + this->tabMain->Controls->Add(this->tabRomInfo); + this->tabMain->Controls->Add(this->tabTWLInfo); + this->tabMain->Controls->Add(this->tabNandSizeInfo); + this->tabMain->Controls->Add(this->tabRomEditInfo); + this->tabMain->Controls->Add(this->tabSubmitInfo); + this->tabMain->Controls->Add(this->tabCompanyInfo); + this->tabMain->Controls->Add(this->tabErrorInfo); + this->tabMain->Font = nullptr; + this->tabMain->Name = L"tabMain"; + this->tabMain->SelectedIndex = 0; + this->tabMain->SelectedIndexChanged += gcnew System::EventHandler(this, &Form1::tabMain_SelectedIndexChanged); + // + // tabRomInfo + // + this->tabRomInfo->AccessibleDescription = nullptr; + this->tabRomInfo->AccessibleName = nullptr; + resources->ApplyResources(this->tabRomInfo, L"tabRomInfo"); + this->tabRomInfo->BackgroundImage = nullptr; + this->tabRomInfo->Controls->Add(this->gridSDK); + this->tabRomInfo->Controls->Add(this->gridLibrary); + this->tabRomInfo->Controls->Add(this->tboxGuideRomInfo); + this->tabRomInfo->Controls->Add(this->gboxSrl); + this->tabRomInfo->Controls->Add(this->labLib); + this->tabRomInfo->Controls->Add(this->labCaptionEx); + this->tabRomInfo->Controls->Add(this->tboxCaptionEx); + this->tabRomInfo->Controls->Add(this->gboxCRC); + this->tabRomInfo->Controls->Add(this->labSDK); + this->tabRomInfo->Font = nullptr; + this->tabRomInfo->Name = L"tabRomInfo"; + this->tabRomInfo->UseVisualStyleBackColor = true; + // + // gridSDK + // + this->gridSDK->AccessibleDescription = nullptr; + this->gridSDK->AccessibleName = nullptr; + resources->ApplyResources(this->gridSDK, L"gridSDK"); + this->gridSDK->AutoSizeRowsMode = System::Windows::Forms::DataGridViewAutoSizeRowsMode::AllCellsExceptHeaders; + this->gridSDK->BackgroundColor = System::Drawing::SystemColors::Control; + this->gridSDK->BackgroundImage = nullptr; + this->gridSDK->ColumnHeadersHeightSizeMode = System::Windows::Forms::DataGridViewColumnHeadersHeightSizeMode::AutoSize; + this->gridSDK->ColumnHeadersVisible = false; + this->gridSDK->Columns->AddRange(gcnew cli::array< System::Windows::Forms::DataGridViewColumn^ >(1) {this->dataSDKVer}); + dataGridViewCellStyle1->Alignment = System::Windows::Forms::DataGridViewContentAlignment::MiddleLeft; + dataGridViewCellStyle1->BackColor = System::Drawing::SystemColors::Window; + dataGridViewCellStyle1->Font = (gcnew System::Drawing::Font(L"Arial", 9)); + dataGridViewCellStyle1->ForeColor = System::Drawing::SystemColors::ControlText; + dataGridViewCellStyle1->SelectionBackColor = System::Drawing::SystemColors::Highlight; + dataGridViewCellStyle1->SelectionForeColor = System::Drawing::SystemColors::HighlightText; + dataGridViewCellStyle1->WrapMode = System::Windows::Forms::DataGridViewTriState::True; + this->gridSDK->DefaultCellStyle = dataGridViewCellStyle1; + this->gridSDK->Font = nullptr; + this->gridSDK->Name = L"gridSDK"; + this->gridSDK->ReadOnly = true; + this->gridSDK->RowHeadersVisible = false; + this->gridSDK->RowTemplate->DefaultCellStyle->ForeColor = System::Drawing::Color::Black; + this->gridSDK->RowTemplate->Height = 21; + // + // dataSDKVer + // + this->dataSDKVer->AutoSizeMode = System::Windows::Forms::DataGridViewAutoSizeColumnMode::Fill; + resources->ApplyResources(this->dataSDKVer, L"dataSDKVer"); + this->dataSDKVer->Name = L"dataSDKVer"; + this->dataSDKVer->ReadOnly = true; + // + // gridLibrary + // + this->gridLibrary->AccessibleDescription = nullptr; + this->gridLibrary->AccessibleName = nullptr; + resources->ApplyResources(this->gridLibrary, L"gridLibrary"); + this->gridLibrary->AutoSizeRowsMode = System::Windows::Forms::DataGridViewAutoSizeRowsMode::AllCellsExceptHeaders; + this->gridLibrary->BackgroundColor = System::Drawing::SystemColors::Control; + this->gridLibrary->BackgroundImage = nullptr; + this->gridLibrary->ColumnHeadersHeightSizeMode = System::Windows::Forms::DataGridViewColumnHeadersHeightSizeMode::AutoSize; + this->gridLibrary->Columns->AddRange(gcnew cli::array< System::Windows::Forms::DataGridViewColumn^ >(2) {this->colLibPublisher, + this->colLibName}); + dataGridViewCellStyle2->Alignment = System::Windows::Forms::DataGridViewContentAlignment::MiddleLeft; + dataGridViewCellStyle2->BackColor = System::Drawing::SystemColors::Window; + dataGridViewCellStyle2->Font = (gcnew System::Drawing::Font(L"Arial", 9)); + dataGridViewCellStyle2->ForeColor = System::Drawing::SystemColors::ControlText; + dataGridViewCellStyle2->SelectionBackColor = System::Drawing::SystemColors::Highlight; + dataGridViewCellStyle2->SelectionForeColor = System::Drawing::SystemColors::HighlightText; + dataGridViewCellStyle2->WrapMode = System::Windows::Forms::DataGridViewTriState::True; + this->gridLibrary->DefaultCellStyle = dataGridViewCellStyle2; + this->gridLibrary->Font = nullptr; + this->gridLibrary->Name = L"gridLibrary"; + this->gridLibrary->ReadOnly = true; + this->gridLibrary->RowHeadersVisible = false; + this->gridLibrary->RowTemplate->Height = 21; + // + // colLibPublisher + // + resources->ApplyResources(this->colLibPublisher, L"colLibPublisher"); + this->colLibPublisher->Name = L"colLibPublisher"; + this->colLibPublisher->ReadOnly = true; + // + // colLibName + // + this->colLibName->AutoSizeMode = System::Windows::Forms::DataGridViewAutoSizeColumnMode::AllCells; + resources->ApplyResources(this->colLibName, L"colLibName"); + this->colLibName->Name = L"colLibName"; + this->colLibName->ReadOnly = true; + // + // tboxGuideRomInfo + // + this->tboxGuideRomInfo->AccessibleDescription = nullptr; + this->tboxGuideRomInfo->AccessibleName = nullptr; + resources->ApplyResources(this->tboxGuideRomInfo, L"tboxGuideRomInfo"); + this->tboxGuideRomInfo->BackColor = System::Drawing::SystemColors::Info; + this->tboxGuideRomInfo->BackgroundImage = nullptr; + this->tboxGuideRomInfo->Font = nullptr; + this->tboxGuideRomInfo->Name = L"tboxGuideRomInfo"; + this->tboxGuideRomInfo->ReadOnly = true; + // + // tabTWLInfo + // + this->tabTWLInfo->AccessibleDescription = nullptr; + this->tabTWLInfo->AccessibleName = nullptr; + resources->ApplyResources(this->tabTWLInfo, L"tabTWLInfo"); + this->tabTWLInfo->BackgroundImage = nullptr; + this->tabTWLInfo->Controls->Add(this->gboxLaunch); + this->tabTWLInfo->Controls->Add(this->tboxGuideTWLInfo); + this->tabTWLInfo->Controls->Add(this->labIsGameCardOn2); + this->tabTWLInfo->Controls->Add(this->labHex3); + this->tabTWLInfo->Controls->Add(this->tboxIsGameCardOn); + this->tabTWLInfo->Controls->Add(this->gboxExFlags); + this->tabTWLInfo->Controls->Add(this->gboxShared2Size); + this->tabTWLInfo->Controls->Add(this->labIsGameCardOn); + this->tabTWLInfo->Controls->Add(this->gboxTWLExInfo); + this->tabTWLInfo->Controls->Add(this->gboxAccess); + this->tabTWLInfo->Controls->Add(this->gboxTitleID); + this->tabTWLInfo->Controls->Add(this->tboxNormalRomOffset); + this->tabTWLInfo->Controls->Add(this->labNormalRomOffset); + this->tabTWLInfo->Font = nullptr; + this->tabTWLInfo->Name = L"tabTWLInfo"; + this->tabTWLInfo->UseVisualStyleBackColor = true; + // + // gboxLaunch + // + this->gboxLaunch->AccessibleDescription = nullptr; + this->gboxLaunch->AccessibleName = nullptr; + resources->ApplyResources(this->gboxLaunch, L"gboxLaunch"); + this->gboxLaunch->BackgroundImage = nullptr; + this->gboxLaunch->Controls->Add(this->labConnectIcon); + this->gboxLaunch->Controls->Add(this->tboxConnectIcon); + this->gboxLaunch->Controls->Add(this->cboxIsEULA); + this->gboxLaunch->Font = nullptr; + this->gboxLaunch->Name = L"gboxLaunch"; + this->gboxLaunch->TabStop = false; + // + // labConnectIcon + // + this->labConnectIcon->AccessibleDescription = nullptr; + this->labConnectIcon->AccessibleName = nullptr; + resources->ApplyResources(this->labConnectIcon, L"labConnectIcon"); + this->labConnectIcon->Font = nullptr; + this->labConnectIcon->Name = L"labConnectIcon"; + // + // tboxConnectIcon + // + this->tboxConnectIcon->AccessibleDescription = nullptr; + this->tboxConnectIcon->AccessibleName = nullptr; + resources->ApplyResources(this->tboxConnectIcon, L"tboxConnectIcon"); + this->tboxConnectIcon->BackgroundImage = nullptr; + this->tboxConnectIcon->Font = nullptr; + this->tboxConnectIcon->Name = L"tboxConnectIcon"; + this->tboxConnectIcon->ReadOnly = true; + // + // tboxGuideTWLInfo + // + this->tboxGuideTWLInfo->AccessibleDescription = nullptr; + this->tboxGuideTWLInfo->AccessibleName = nullptr; + resources->ApplyResources(this->tboxGuideTWLInfo, L"tboxGuideTWLInfo"); + this->tboxGuideTWLInfo->BackColor = System::Drawing::SystemColors::Info; + this->tboxGuideTWLInfo->BackgroundImage = nullptr; + this->tboxGuideTWLInfo->Font = nullptr; + this->tboxGuideTWLInfo->Name = L"tboxGuideTWLInfo"; + this->tboxGuideTWLInfo->ReadOnly = true; + // + // gboxExFlags + // + this->gboxExFlags->AccessibleDescription = nullptr; + this->gboxExFlags->AccessibleName = nullptr; + resources->ApplyResources(this->gboxExFlags, L"gboxExFlags"); + this->gboxExFlags->BackgroundImage = nullptr; + this->gboxExFlags->Controls->Add(this->cboxIsNormalJump); + this->gboxExFlags->Controls->Add(this->cboxIsTmpJump); + this->gboxExFlags->Controls->Add(this->cboxIsSubBanner); + this->gboxExFlags->Font = nullptr; + this->gboxExFlags->Name = L"gboxExFlags"; + this->gboxExFlags->TabStop = false; + // + // tabNandSizeInfo + // + this->tabNandSizeInfo->AccessibleDescription = nullptr; + this->tabNandSizeInfo->AccessibleName = nullptr; + resources->ApplyResources(this->tabNandSizeInfo, L"tabNandSizeInfo"); + this->tabNandSizeInfo->BackgroundImage = nullptr; + this->tabNandSizeInfo->Controls->Add(this->tboxGuideNandSizeInfo); + this->tabNandSizeInfo->Controls->Add(this->labMedia); + this->tabNandSizeInfo->Controls->Add(this->tboxMedia); + this->tabNandSizeInfo->Controls->Add(this->gboxNandSize); + this->tabNandSizeInfo->Font = nullptr; + this->tabNandSizeInfo->Name = L"tabNandSizeInfo"; + this->tabNandSizeInfo->UseVisualStyleBackColor = true; + // + // tboxGuideNandSizeInfo + // + this->tboxGuideNandSizeInfo->AccessibleDescription = nullptr; + this->tboxGuideNandSizeInfo->AccessibleName = nullptr; + resources->ApplyResources(this->tboxGuideNandSizeInfo, L"tboxGuideNandSizeInfo"); + this->tboxGuideNandSizeInfo->BackColor = System::Drawing::SystemColors::Info; + this->tboxGuideNandSizeInfo->BackgroundImage = nullptr; + this->tboxGuideNandSizeInfo->Font = nullptr; + this->tboxGuideNandSizeInfo->Name = L"tboxGuideNandSizeInfo"; + this->tboxGuideNandSizeInfo->ReadOnly = true; + // + // gboxNandSize + // + this->gboxNandSize->AccessibleDescription = nullptr; + this->gboxNandSize->AccessibleName = nullptr; + resources->ApplyResources(this->gboxNandSize, L"gboxNandSize"); + this->gboxNandSize->BackgroundImage = nullptr; + this->gboxNandSize->Controls->Add(this->tboxWarningPrivateSaveDataPurpose); + this->gboxNandSize->Controls->Add(this->labPrivateSaveDataPurpose); + this->gboxNandSize->Controls->Add(this->tboxPrivateSaveDataPurpose); + this->gboxNandSize->Controls->Add(this->labBracketR); + this->gboxNandSize->Controls->Add(this->labBracketL); + this->gboxNandSize->Controls->Add(this->tboxSumSizeMB); + this->gboxNandSize->Controls->Add(this->tboxSrlSize); + this->gboxNandSize->Controls->Add(this->labArrow5); + this->gboxNandSize->Controls->Add(this->labArrow4); + this->gboxNandSize->Controls->Add(this->labArrow3); + this->gboxNandSize->Controls->Add(this->labArrow2); + this->gboxNandSize->Controls->Add(this->labArrow1); + this->gboxNandSize->Controls->Add(this->tboxSumSize); + this->gboxNandSize->Controls->Add(this->tboxTmdSizeFS); + this->gboxNandSize->Controls->Add(this->tboxSubBannerSizeFS); + this->gboxNandSize->Controls->Add(this->tboxPrivateSizeFS); + this->gboxNandSize->Controls->Add(this->tboxPublicSizeFS); + this->gboxNandSize->Controls->Add(this->tboxSrlSizeFS); + this->gboxNandSize->Controls->Add(this->tboxTmdSize); + this->gboxNandSize->Controls->Add(this->tboxSubBannerSize); + this->gboxNandSize->Controls->Add(this->labNandSize); + this->gboxNandSize->Controls->Add(this->labNandSizeFS); + this->gboxNandSize->Controls->Add(this->tboxPrivateSize); + this->gboxNandSize->Controls->Add(this->labSrlSize); + this->gboxNandSize->Controls->Add(this->labPrivateSize); + this->gboxNandSize->Controls->Add(this->labSumSize2); + this->gboxNandSize->Controls->Add(this->tboxPublicSize); + this->gboxNandSize->Controls->Add(this->labPublicSize); + this->gboxNandSize->Controls->Add(this->labSumSize); + this->gboxNandSize->Controls->Add(this->labSubBannerSize); + this->gboxNandSize->Controls->Add(this->labTmdSize); + this->gboxNandSize->Font = nullptr; + this->gboxNandSize->Name = L"gboxNandSize"; + this->gboxNandSize->TabStop = false; + // + // tboxWarningPrivateSaveDataPurpose + // + this->tboxWarningPrivateSaveDataPurpose->AccessibleDescription = nullptr; + this->tboxWarningPrivateSaveDataPurpose->AccessibleName = nullptr; + resources->ApplyResources(this->tboxWarningPrivateSaveDataPurpose, L"tboxWarningPrivateSaveDataPurpose"); + this->tboxWarningPrivateSaveDataPurpose->BackColor = System::Drawing::SystemColors::InactiveCaptionText; + this->tboxWarningPrivateSaveDataPurpose->BackgroundImage = nullptr; + this->tboxWarningPrivateSaveDataPurpose->Font = nullptr; + this->tboxWarningPrivateSaveDataPurpose->Name = L"tboxWarningPrivateSaveDataPurpose"; + this->tboxWarningPrivateSaveDataPurpose->ReadOnly = true; + // + // labPrivateSaveDataPurpose + // + this->labPrivateSaveDataPurpose->AccessibleDescription = nullptr; + this->labPrivateSaveDataPurpose->AccessibleName = nullptr; + resources->ApplyResources(this->labPrivateSaveDataPurpose, L"labPrivateSaveDataPurpose"); + this->labPrivateSaveDataPurpose->Font = nullptr; + this->labPrivateSaveDataPurpose->Name = L"labPrivateSaveDataPurpose"; + // + // tboxPrivateSaveDataPurpose + // + this->tboxPrivateSaveDataPurpose->AccessibleDescription = nullptr; + this->tboxPrivateSaveDataPurpose->AccessibleName = nullptr; + resources->ApplyResources(this->tboxPrivateSaveDataPurpose, L"tboxPrivateSaveDataPurpose"); + this->tboxPrivateSaveDataPurpose->BackgroundImage = nullptr; + this->tboxPrivateSaveDataPurpose->Font = nullptr; + this->tboxPrivateSaveDataPurpose->Name = L"tboxPrivateSaveDataPurpose"; + // + // labBracketR + // + this->labBracketR->AccessibleDescription = nullptr; + this->labBracketR->AccessibleName = nullptr; + resources->ApplyResources(this->labBracketR, L"labBracketR"); + this->labBracketR->Name = L"labBracketR"; + // + // labBracketL + // + this->labBracketL->AccessibleDescription = nullptr; + this->labBracketL->AccessibleName = nullptr; + resources->ApplyResources(this->labBracketL, L"labBracketL"); + this->labBracketL->Name = L"labBracketL"; + // + // tboxSumSizeMB + // + this->tboxSumSizeMB->AccessibleDescription = nullptr; + this->tboxSumSizeMB->AccessibleName = nullptr; + resources->ApplyResources(this->tboxSumSizeMB, L"tboxSumSizeMB"); + this->tboxSumSizeMB->BackgroundImage = nullptr; + this->tboxSumSizeMB->Font = nullptr; + this->tboxSumSizeMB->Name = L"tboxSumSizeMB"; + this->tboxSumSizeMB->ReadOnly = true; + // + // tboxSrlSize + // + this->tboxSrlSize->AccessibleDescription = nullptr; + this->tboxSrlSize->AccessibleName = nullptr; + resources->ApplyResources(this->tboxSrlSize, L"tboxSrlSize"); + this->tboxSrlSize->BackgroundImage = nullptr; + this->tboxSrlSize->Font = nullptr; + this->tboxSrlSize->Name = L"tboxSrlSize"; + this->tboxSrlSize->ReadOnly = true; + // + // labArrow5 + // + this->labArrow5->AccessibleDescription = nullptr; + this->labArrow5->AccessibleName = nullptr; + resources->ApplyResources(this->labArrow5, L"labArrow5"); + this->labArrow5->Font = nullptr; + this->labArrow5->Name = L"labArrow5"; + // + // labArrow4 + // + this->labArrow4->AccessibleDescription = nullptr; + this->labArrow4->AccessibleName = nullptr; + resources->ApplyResources(this->labArrow4, L"labArrow4"); + this->labArrow4->Font = nullptr; + this->labArrow4->Name = L"labArrow4"; + // + // labArrow3 + // + this->labArrow3->AccessibleDescription = nullptr; + this->labArrow3->AccessibleName = nullptr; + resources->ApplyResources(this->labArrow3, L"labArrow3"); + this->labArrow3->Font = nullptr; + this->labArrow3->Name = L"labArrow3"; + // + // labArrow2 + // + this->labArrow2->AccessibleDescription = nullptr; + this->labArrow2->AccessibleName = nullptr; + resources->ApplyResources(this->labArrow2, L"labArrow2"); + this->labArrow2->Font = nullptr; + this->labArrow2->Name = L"labArrow2"; + // + // labArrow1 + // + this->labArrow1->AccessibleDescription = nullptr; + this->labArrow1->AccessibleName = nullptr; + resources->ApplyResources(this->labArrow1, L"labArrow1"); + this->labArrow1->Font = nullptr; + this->labArrow1->Name = L"labArrow1"; + // + // tboxSumSize + // + this->tboxSumSize->AccessibleDescription = nullptr; + this->tboxSumSize->AccessibleName = nullptr; + resources->ApplyResources(this->tboxSumSize, L"tboxSumSize"); + this->tboxSumSize->BackgroundImage = nullptr; + this->tboxSumSize->Font = nullptr; + this->tboxSumSize->Name = L"tboxSumSize"; + this->tboxSumSize->ReadOnly = true; + // + // tboxTmdSizeFS + // + this->tboxTmdSizeFS->AccessibleDescription = nullptr; + this->tboxTmdSizeFS->AccessibleName = nullptr; + resources->ApplyResources(this->tboxTmdSizeFS, L"tboxTmdSizeFS"); + this->tboxTmdSizeFS->BackgroundImage = nullptr; + this->tboxTmdSizeFS->Font = nullptr; + this->tboxTmdSizeFS->Name = L"tboxTmdSizeFS"; + this->tboxTmdSizeFS->ReadOnly = true; + // + // tboxSubBannerSizeFS + // + this->tboxSubBannerSizeFS->AccessibleDescription = nullptr; + this->tboxSubBannerSizeFS->AccessibleName = nullptr; + resources->ApplyResources(this->tboxSubBannerSizeFS, L"tboxSubBannerSizeFS"); + this->tboxSubBannerSizeFS->BackgroundImage = nullptr; + this->tboxSubBannerSizeFS->Font = nullptr; + this->tboxSubBannerSizeFS->Name = L"tboxSubBannerSizeFS"; + this->tboxSubBannerSizeFS->ReadOnly = true; + // + // tboxPrivateSizeFS + // + this->tboxPrivateSizeFS->AccessibleDescription = nullptr; + this->tboxPrivateSizeFS->AccessibleName = nullptr; + resources->ApplyResources(this->tboxPrivateSizeFS, L"tboxPrivateSizeFS"); + this->tboxPrivateSizeFS->BackgroundImage = nullptr; + this->tboxPrivateSizeFS->Font = nullptr; + this->tboxPrivateSizeFS->Name = L"tboxPrivateSizeFS"; + this->tboxPrivateSizeFS->ReadOnly = true; + // + // tboxPublicSizeFS + // + this->tboxPublicSizeFS->AccessibleDescription = nullptr; + this->tboxPublicSizeFS->AccessibleName = nullptr; + resources->ApplyResources(this->tboxPublicSizeFS, L"tboxPublicSizeFS"); + this->tboxPublicSizeFS->BackgroundImage = nullptr; + this->tboxPublicSizeFS->Font = nullptr; + this->tboxPublicSizeFS->Name = L"tboxPublicSizeFS"; + this->tboxPublicSizeFS->ReadOnly = true; + // + // tboxSrlSizeFS + // + this->tboxSrlSizeFS->AccessibleDescription = nullptr; + this->tboxSrlSizeFS->AccessibleName = nullptr; + resources->ApplyResources(this->tboxSrlSizeFS, L"tboxSrlSizeFS"); + this->tboxSrlSizeFS->BackgroundImage = nullptr; + this->tboxSrlSizeFS->Font = nullptr; + this->tboxSrlSizeFS->Name = L"tboxSrlSizeFS"; + this->tboxSrlSizeFS->ReadOnly = true; + // + // tboxTmdSize + // + this->tboxTmdSize->AccessibleDescription = nullptr; + this->tboxTmdSize->AccessibleName = nullptr; + resources->ApplyResources(this->tboxTmdSize, L"tboxTmdSize"); + this->tboxTmdSize->BackgroundImage = nullptr; + this->tboxTmdSize->Font = nullptr; + this->tboxTmdSize->Name = L"tboxTmdSize"; + this->tboxTmdSize->ReadOnly = true; + // + // tboxSubBannerSize + // + this->tboxSubBannerSize->AccessibleDescription = nullptr; + this->tboxSubBannerSize->AccessibleName = nullptr; + resources->ApplyResources(this->tboxSubBannerSize, L"tboxSubBannerSize"); + this->tboxSubBannerSize->BackgroundImage = nullptr; + this->tboxSubBannerSize->Font = nullptr; + this->tboxSubBannerSize->Name = L"tboxSubBannerSize"; + this->tboxSubBannerSize->ReadOnly = true; + // + // labNandSize + // + this->labNandSize->AccessibleDescription = nullptr; + this->labNandSize->AccessibleName = nullptr; + resources->ApplyResources(this->labNandSize, L"labNandSize"); + this->labNandSize->Font = nullptr; + this->labNandSize->Name = L"labNandSize"; + // + // labNandSizeFS + // + this->labNandSizeFS->AccessibleDescription = nullptr; + this->labNandSizeFS->AccessibleName = nullptr; + resources->ApplyResources(this->labNandSizeFS, L"labNandSizeFS"); + this->labNandSizeFS->Font = nullptr; + this->labNandSizeFS->Name = L"labNandSizeFS"; + // + // labSrlSize + // + this->labSrlSize->AccessibleDescription = nullptr; + this->labSrlSize->AccessibleName = nullptr; + resources->ApplyResources(this->labSrlSize, L"labSrlSize"); + this->labSrlSize->Font = nullptr; + this->labSrlSize->Name = L"labSrlSize"; + // + // labSumSize2 + // + this->labSumSize2->AccessibleDescription = nullptr; + this->labSumSize2->AccessibleName = nullptr; + resources->ApplyResources(this->labSumSize2, L"labSumSize2"); + this->labSumSize2->Font = nullptr; + this->labSumSize2->Name = L"labSumSize2"; + // + // labSumSize + // + this->labSumSize->AccessibleDescription = nullptr; + this->labSumSize->AccessibleName = nullptr; + resources->ApplyResources(this->labSumSize, L"labSumSize"); + this->labSumSize->Font = nullptr; + this->labSumSize->Name = L"labSumSize"; + // + // labSubBannerSize + // + this->labSubBannerSize->AccessibleDescription = nullptr; + this->labSubBannerSize->AccessibleName = nullptr; + resources->ApplyResources(this->labSubBannerSize, L"labSubBannerSize"); + this->labSubBannerSize->Font = nullptr; + this->labSubBannerSize->Name = L"labSubBannerSize"; + // + // labTmdSize + // + this->labTmdSize->AccessibleDescription = nullptr; + this->labTmdSize->AccessibleName = nullptr; + resources->ApplyResources(this->labTmdSize, L"labTmdSize"); + this->labTmdSize->Font = nullptr; + this->labTmdSize->Name = L"labTmdSize"; + // + // tabRomEditInfo + // + this->tabRomEditInfo->AccessibleDescription = nullptr; + this->tabRomEditInfo->AccessibleName = nullptr; + resources->ApplyResources(this->tabRomEditInfo, L"tabRomEditInfo"); + this->tabRomEditInfo->BackgroundImage = nullptr; + this->tabRomEditInfo->Controls->Add(this->tboxWarningChinaRating); + this->tabRomEditInfo->Controls->Add(this->gboxOtherSpec); + this->tabRomEditInfo->Controls->Add(this->butSetBack); + this->tabRomEditInfo->Controls->Add(this->tboxGuideRomEditInfo); + this->tabRomEditInfo->Controls->Add(this->gboxParental); + this->tabRomEditInfo->Font = nullptr; + this->tabRomEditInfo->Name = L"tabRomEditInfo"; + this->tabRomEditInfo->UseVisualStyleBackColor = true; + // + // tboxWarningChinaRating + // + this->tboxWarningChinaRating->AccessibleDescription = nullptr; + this->tboxWarningChinaRating->AccessibleName = nullptr; + resources->ApplyResources(this->tboxWarningChinaRating, L"tboxWarningChinaRating"); + this->tboxWarningChinaRating->BackColor = System::Drawing::SystemColors::InactiveCaptionText; + this->tboxWarningChinaRating->BackgroundImage = nullptr; + this->tboxWarningChinaRating->Font = nullptr; + this->tboxWarningChinaRating->Name = L"tboxWarningChinaRating"; + // + // gboxOtherSpec + // + this->gboxOtherSpec->AccessibleDescription = nullptr; + this->gboxOtherSpec->AccessibleName = nullptr; + resources->ApplyResources(this->gboxOtherSpec, L"gboxOtherSpec"); + this->gboxOtherSpec->BackgroundImage = nullptr; + this->gboxOtherSpec->Controls->Add(this->cboxIsUGC); + this->gboxOtherSpec->Controls->Add(this->cboxIsPhotoEx); + this->gboxOtherSpec->Font = nullptr; + this->gboxOtherSpec->Name = L"gboxOtherSpec"; + this->gboxOtherSpec->TabStop = false; + // + // cboxIsUGC + // + this->cboxIsUGC->AccessibleDescription = nullptr; + this->cboxIsUGC->AccessibleName = nullptr; + resources->ApplyResources(this->cboxIsUGC, L"cboxIsUGC"); + this->cboxIsUGC->BackgroundImage = nullptr; + this->cboxIsUGC->Font = nullptr; + this->cboxIsUGC->Name = L"cboxIsUGC"; + this->cboxIsUGC->UseVisualStyleBackColor = true; + // + // cboxIsPhotoEx + // + this->cboxIsPhotoEx->AccessibleDescription = nullptr; + this->cboxIsPhotoEx->AccessibleName = nullptr; + resources->ApplyResources(this->cboxIsPhotoEx, L"cboxIsPhotoEx"); + this->cboxIsPhotoEx->BackgroundImage = nullptr; + this->cboxIsPhotoEx->Font = nullptr; + this->cboxIsPhotoEx->Name = L"cboxIsPhotoEx"; + this->cboxIsPhotoEx->UseVisualStyleBackColor = true; + // + // butSetBack + // + this->butSetBack->AccessibleDescription = nullptr; + this->butSetBack->AccessibleName = nullptr; + resources->ApplyResources(this->butSetBack, L"butSetBack"); + this->butSetBack->BackgroundImage = nullptr; + this->butSetBack->Font = nullptr; + this->butSetBack->Name = L"butSetBack"; + this->butSetBack->UseVisualStyleBackColor = true; + this->butSetBack->Click += gcnew System::EventHandler(this, &Form1::butSetBack_Click); + // + // tboxGuideRomEditInfo + // + this->tboxGuideRomEditInfo->AccessibleDescription = nullptr; + this->tboxGuideRomEditInfo->AccessibleName = nullptr; + resources->ApplyResources(this->tboxGuideRomEditInfo, L"tboxGuideRomEditInfo"); + this->tboxGuideRomEditInfo->BackColor = System::Drawing::SystemColors::Info; + this->tboxGuideRomEditInfo->BackgroundImage = nullptr; + this->tboxGuideRomEditInfo->Font = nullptr; + this->tboxGuideRomEditInfo->Name = L"tboxGuideRomEditInfo"; + this->tboxGuideRomEditInfo->ReadOnly = true; + // + // gboxParental + // + this->gboxParental->AccessibleDescription = nullptr; + this->gboxParental->AccessibleName = nullptr; + resources->ApplyResources(this->gboxParental, L"gboxParental"); + this->gboxParental->BackgroundImage = nullptr; + this->gboxParental->Controls->Add(this->labGRB); + this->gboxParental->Controls->Add(this->combGRB); + this->gboxParental->Controls->Add(this->cboxIsUnnecessaryRating); + this->gboxParental->Controls->Add(this->labRegion); + this->gboxParental->Controls->Add(this->combRegion); + this->gboxParental->Controls->Add(this->labOFLC); + this->gboxParental->Controls->Add(this->labPEGI_BBFC); + this->gboxParental->Controls->Add(this->combPEGI_BBFC); + this->gboxParental->Controls->Add(this->combCERO); + this->gboxParental->Controls->Add(this->labCERO); + this->gboxParental->Controls->Add(this->combOFLC); + this->gboxParental->Controls->Add(this->labPEGI_PRT); + this->gboxParental->Controls->Add(this->combPEGI_PRT); + this->gboxParental->Controls->Add(this->combESRB); + this->gboxParental->Controls->Add(this->labESRB); + this->gboxParental->Controls->Add(this->labPEGI); + this->gboxParental->Controls->Add(this->combPEGI); + this->gboxParental->Controls->Add(this->combUSK); + this->gboxParental->Controls->Add(this->labUSK); + this->gboxParental->Font = nullptr; + this->gboxParental->Name = L"gboxParental"; + this->gboxParental->TabStop = false; + // + // labGRB + // + this->labGRB->AccessibleDescription = nullptr; + this->labGRB->AccessibleName = nullptr; + resources->ApplyResources(this->labGRB, L"labGRB"); + this->labGRB->Font = nullptr; + this->labGRB->Name = L"labGRB"; + // + // combGRB + // + this->combGRB->AccessibleDescription = nullptr; + this->combGRB->AccessibleName = nullptr; + resources->ApplyResources(this->combGRB, L"combGRB"); + this->combGRB->BackgroundImage = nullptr; + this->combGRB->DropDownStyle = System::Windows::Forms::ComboBoxStyle::DropDownList; + this->combGRB->Font = nullptr; + this->combGRB->FormattingEnabled = true; + this->combGRB->Items->AddRange(gcnew cli::array< System::Object^ >(5) {resources->GetString(L"combGRB.Items"), resources->GetString(L"combGRB.Items1"), + resources->GetString(L"combGRB.Items2"), resources->GetString(L"combGRB.Items3"), resources->GetString(L"combGRB.Items4")}); + this->combGRB->Name = L"combGRB"; + // + // cboxIsUnnecessaryRating + // + this->cboxIsUnnecessaryRating->AccessibleDescription = nullptr; + this->cboxIsUnnecessaryRating->AccessibleName = nullptr; + resources->ApplyResources(this->cboxIsUnnecessaryRating, L"cboxIsUnnecessaryRating"); + this->cboxIsUnnecessaryRating->BackgroundImage = nullptr; + this->cboxIsUnnecessaryRating->Font = nullptr; + this->cboxIsUnnecessaryRating->Name = L"cboxIsUnnecessaryRating"; + this->cboxIsUnnecessaryRating->UseVisualStyleBackColor = true; + this->cboxIsUnnecessaryRating->CheckedChanged += gcnew System::EventHandler(this, &Form1::cboxIsUnnecessaryRating_CheckedChanged); + // + // tabSubmitInfo + // + this->tabSubmitInfo->AccessibleDescription = nullptr; + this->tabSubmitInfo->AccessibleName = nullptr; + resources->ApplyResources(this->tabSubmitInfo, L"tabSubmitInfo"); + this->tabSubmitInfo->BackgroundImage = nullptr; + this->tabSubmitInfo->Controls->Add(this->gboxPurpose); + this->tabSubmitInfo->Controls->Add(this->labCaption); + this->tabSubmitInfo->Controls->Add(this->tboxCaption); + this->tabSubmitInfo->Controls->Add(this->labProductNameLimit); + this->tabSubmitInfo->Controls->Add(this->tboxGuideSubmitInfo); + this->tabSubmitInfo->Controls->Add(this->gboxForeign); + this->tabSubmitInfo->Controls->Add(this->labSubmitVer); + this->tabSubmitInfo->Controls->Add(this->tboxProductCode2); + this->tabSubmitInfo->Controls->Add(this->labCapSubmitVer); + this->tabSubmitInfo->Controls->Add(this->numSubmitVersion); + this->tabSubmitInfo->Controls->Add(this->gboxProd); + this->tabSubmitInfo->Controls->Add(this->gboxSubmitWay); + this->tabSubmitInfo->Controls->Add(this->tboxProductCode1); + this->tabSubmitInfo->Controls->Add(this->labSubmiteDate); + this->tabSubmitInfo->Controls->Add(this->dateRelease); + this->tabSubmitInfo->Controls->Add(this->tboxProductName); + this->tabSubmitInfo->Controls->Add(this->labReleaseDate); + this->tabSubmitInfo->Controls->Add(this->dateSubmit); + this->tabSubmitInfo->Controls->Add(this->labProductCode2); + this->tabSubmitInfo->Controls->Add(this->labProductCode); + this->tabSubmitInfo->Controls->Add(this->labProductName); + this->tabSubmitInfo->Controls->Add(this->labProductCode1); + this->tabSubmitInfo->Font = nullptr; + this->tabSubmitInfo->Name = L"tabSubmitInfo"; + this->tabSubmitInfo->UseVisualStyleBackColor = true; + // + // gboxPurpose + // + this->gboxPurpose->AccessibleDescription = nullptr; + this->gboxPurpose->AccessibleName = nullptr; + resources->ApplyResources(this->gboxPurpose, L"gboxPurpose"); + this->gboxPurpose->BackgroundImage = nullptr; + this->gboxPurpose->Controls->Add(this->gboxPurposeNand); + this->gboxPurpose->Controls->Add(this->tboxPurposeOther); + this->gboxPurpose->Controls->Add(this->rPurposeOther); + this->gboxPurpose->Controls->Add(this->gboxPurposeCard); + this->gboxPurpose->Font = nullptr; + this->gboxPurpose->Name = L"gboxPurpose"; + this->gboxPurpose->TabStop = false; + // + // gboxPurposeNand + // + this->gboxPurposeNand->AccessibleDescription = nullptr; + this->gboxPurposeNand->AccessibleName = nullptr; + resources->ApplyResources(this->gboxPurposeNand, L"gboxPurposeNand"); + this->gboxPurposeNand->BackgroundImage = nullptr; + this->gboxPurposeNand->Controls->Add(this->rPurposeDSiWare); + this->gboxPurposeNand->Font = nullptr; + this->gboxPurposeNand->Name = L"gboxPurposeNand"; + this->gboxPurposeNand->TabStop = false; + // + // rPurposeDSiWare + // + this->rPurposeDSiWare->AccessibleDescription = nullptr; + this->rPurposeDSiWare->AccessibleName = nullptr; + resources->ApplyResources(this->rPurposeDSiWare, L"rPurposeDSiWare"); + this->rPurposeDSiWare->BackgroundImage = nullptr; + this->rPurposeDSiWare->Font = nullptr; + this->rPurposeDSiWare->Name = L"rPurposeDSiWare"; + this->rPurposeDSiWare->TabStop = true; + this->rPurposeDSiWare->UseVisualStyleBackColor = true; + this->rPurposeDSiWare->CheckedChanged += gcnew System::EventHandler(this, &Form1::rPurposeDSiWare_CheckedChanged); + // + // tboxPurposeOther + // + this->tboxPurposeOther->AccessibleDescription = nullptr; + this->tboxPurposeOther->AccessibleName = nullptr; + resources->ApplyResources(this->tboxPurposeOther, L"tboxPurposeOther"); + this->tboxPurposeOther->BackgroundImage = nullptr; + this->tboxPurposeOther->Font = nullptr; + this->tboxPurposeOther->Name = L"tboxPurposeOther"; + // + // rPurposeOther + // + this->rPurposeOther->AccessibleDescription = nullptr; + this->rPurposeOther->AccessibleName = nullptr; + resources->ApplyResources(this->rPurposeOther, L"rPurposeOther"); + this->rPurposeOther->BackgroundImage = nullptr; + this->rPurposeOther->Font = nullptr; + this->rPurposeOther->Name = L"rPurposeOther"; + this->rPurposeOther->UseVisualStyleBackColor = true; + this->rPurposeOther->CheckedChanged += gcnew System::EventHandler(this, &Form1::rPurposeOther_CheckedChanged); + // + // gboxPurposeCard + // + this->gboxPurposeCard->AccessibleDescription = nullptr; + this->gboxPurposeCard->AccessibleName = nullptr; + resources->ApplyResources(this->gboxPurposeCard, L"gboxPurposeCard"); + this->gboxPurposeCard->BackgroundImage = nullptr; + this->gboxPurposeCard->Controls->Add(this->rPurposeCardProduction); + this->gboxPurposeCard->Controls->Add(this->rPurposeCardTouchTryDS); + this->gboxPurposeCard->Controls->Add(this->rPurposeCardDistribution); + this->gboxPurposeCard->Controls->Add(this->rPurposeCardKiosk); + this->gboxPurposeCard->Font = nullptr; + this->gboxPurposeCard->Name = L"gboxPurposeCard"; + this->gboxPurposeCard->TabStop = false; + // + // rPurposeCardProduction + // + this->rPurposeCardProduction->AccessibleDescription = nullptr; + this->rPurposeCardProduction->AccessibleName = nullptr; + resources->ApplyResources(this->rPurposeCardProduction, L"rPurposeCardProduction"); + this->rPurposeCardProduction->BackgroundImage = nullptr; + this->rPurposeCardProduction->Checked = true; + this->rPurposeCardProduction->Font = nullptr; + this->rPurposeCardProduction->Name = L"rPurposeCardProduction"; + this->rPurposeCardProduction->TabStop = true; + this->rPurposeCardProduction->UseVisualStyleBackColor = true; + this->rPurposeCardProduction->CheckedChanged += gcnew System::EventHandler(this, &Form1::rPurposeCardProduction_CheckedChanged); + // + // rPurposeCardTouchTryDS + // + this->rPurposeCardTouchTryDS->AccessibleDescription = nullptr; + this->rPurposeCardTouchTryDS->AccessibleName = nullptr; + resources->ApplyResources(this->rPurposeCardTouchTryDS, L"rPurposeCardTouchTryDS"); + this->rPurposeCardTouchTryDS->BackgroundImage = nullptr; + this->rPurposeCardTouchTryDS->Font = nullptr; + this->rPurposeCardTouchTryDS->Name = L"rPurposeCardTouchTryDS"; + this->rPurposeCardTouchTryDS->TabStop = true; + this->rPurposeCardTouchTryDS->UseVisualStyleBackColor = true; + this->rPurposeCardTouchTryDS->CheckedChanged += gcnew System::EventHandler(this, &Form1::rPurposeCardTouchTryDS_CheckedChanged); + // + // rPurposeCardDistribution + // + this->rPurposeCardDistribution->AccessibleDescription = nullptr; + this->rPurposeCardDistribution->AccessibleName = nullptr; + resources->ApplyResources(this->rPurposeCardDistribution, L"rPurposeCardDistribution"); + this->rPurposeCardDistribution->BackgroundImage = nullptr; + this->rPurposeCardDistribution->Font = nullptr; + this->rPurposeCardDistribution->Name = L"rPurposeCardDistribution"; + this->rPurposeCardDistribution->UseVisualStyleBackColor = true; + this->rPurposeCardDistribution->CheckedChanged += gcnew System::EventHandler(this, &Form1::rPurposeCardDistribution_CheckedChanged); + // + // rPurposeCardKiosk + // + this->rPurposeCardKiosk->AccessibleDescription = nullptr; + this->rPurposeCardKiosk->AccessibleName = nullptr; + resources->ApplyResources(this->rPurposeCardKiosk, L"rPurposeCardKiosk"); + this->rPurposeCardKiosk->BackgroundImage = nullptr; + this->rPurposeCardKiosk->Font = nullptr; + this->rPurposeCardKiosk->Name = L"rPurposeCardKiosk"; + this->rPurposeCardKiosk->UseVisualStyleBackColor = true; + this->rPurposeCardKiosk->CheckedChanged += gcnew System::EventHandler(this, &Form1::rPurposeCardKiosk_CheckedChanged); + // + // labProductNameLimit + // + this->labProductNameLimit->AccessibleDescription = nullptr; + this->labProductNameLimit->AccessibleName = nullptr; + resources->ApplyResources(this->labProductNameLimit, L"labProductNameLimit"); + this->labProductNameLimit->Font = nullptr; + this->labProductNameLimit->Name = L"labProductNameLimit"; + // + // tboxGuideSubmitInfo + // + this->tboxGuideSubmitInfo->AccessibleDescription = nullptr; + this->tboxGuideSubmitInfo->AccessibleName = nullptr; + resources->ApplyResources(this->tboxGuideSubmitInfo, L"tboxGuideSubmitInfo"); + this->tboxGuideSubmitInfo->BackColor = System::Drawing::SystemColors::Info; + this->tboxGuideSubmitInfo->BackgroundImage = nullptr; + this->tboxGuideSubmitInfo->Font = nullptr; + this->tboxGuideSubmitInfo->Name = L"tboxGuideSubmitInfo"; + this->tboxGuideSubmitInfo->ReadOnly = true; + // + // gboxForeign + // + this->gboxForeign->AccessibleDescription = nullptr; + this->gboxForeign->AccessibleName = nullptr; + resources->ApplyResources(this->gboxForeign, L"gboxForeign"); + this->gboxForeign->BackgroundImage = nullptr; + this->gboxForeign->Controls->Add(this->labProductNameLimitForeign); + this->gboxForeign->Controls->Add(this->labMultiForeign2); + this->gboxForeign->Controls->Add(this->cboxReleaseForeign); + this->gboxForeign->Controls->Add(this->labMultiForeign1); + this->gboxForeign->Controls->Add(this->tboxProductCode2Foreign1); + this->gboxForeign->Controls->Add(this->tboxProductCode2Foreign3); + this->gboxForeign->Controls->Add(this->labProductCodeForeign); + this->gboxForeign->Controls->Add(this->tboxProductCode2Foreign2); + this->gboxForeign->Controls->Add(this->tboxProductCode1Foreign); + this->gboxForeign->Controls->Add(this->labProductCode2Foreign); + this->gboxForeign->Controls->Add(this->labProductCode1Foreign); + this->gboxForeign->Controls->Add(this->tboxProductNameForeign); + this->gboxForeign->Controls->Add(this->labProductNameForeign); + this->gboxForeign->Font = nullptr; + this->gboxForeign->Name = L"gboxForeign"; + this->gboxForeign->TabStop = false; + // + // labProductNameLimitForeign + // + this->labProductNameLimitForeign->AccessibleDescription = nullptr; + this->labProductNameLimitForeign->AccessibleName = nullptr; + resources->ApplyResources(this->labProductNameLimitForeign, L"labProductNameLimitForeign"); + this->labProductNameLimitForeign->Font = nullptr; + this->labProductNameLimitForeign->Name = L"labProductNameLimitForeign"; + // + // labMultiForeign2 + // + this->labMultiForeign2->AccessibleDescription = nullptr; + this->labMultiForeign2->AccessibleName = nullptr; + resources->ApplyResources(this->labMultiForeign2, L"labMultiForeign2"); + this->labMultiForeign2->Font = nullptr; + this->labMultiForeign2->Name = L"labMultiForeign2"; + // + // tabCompanyInfo + // + this->tabCompanyInfo->AccessibleDescription = nullptr; + this->tabCompanyInfo->AccessibleName = nullptr; + resources->ApplyResources(this->tabCompanyInfo, L"tabCompanyInfo"); + this->tabCompanyInfo->BackgroundImage = nullptr; + this->tabCompanyInfo->Controls->Add(this->tboxGuideCompanyInfo); + this->tabCompanyInfo->Controls->Add(this->cboxIsInputPerson2); + this->tabCompanyInfo->Controls->Add(this->gboxPerson1); + this->tabCompanyInfo->Controls->Add(this->gboxPerson2); + this->tabCompanyInfo->Font = nullptr; + this->tabCompanyInfo->Name = L"tabCompanyInfo"; + this->tabCompanyInfo->UseVisualStyleBackColor = true; + // + // tboxGuideCompanyInfo + // + this->tboxGuideCompanyInfo->AccessibleDescription = nullptr; + this->tboxGuideCompanyInfo->AccessibleName = nullptr; + resources->ApplyResources(this->tboxGuideCompanyInfo, L"tboxGuideCompanyInfo"); + this->tboxGuideCompanyInfo->BackColor = System::Drawing::SystemColors::Info; + this->tboxGuideCompanyInfo->BackgroundImage = nullptr; + this->tboxGuideCompanyInfo->Font = nullptr; + this->tboxGuideCompanyInfo->Name = L"tboxGuideCompanyInfo"; + this->tboxGuideCompanyInfo->ReadOnly = true; + // + // tabErrorInfo + // + this->tabErrorInfo->AccessibleDescription = nullptr; + this->tabErrorInfo->AccessibleName = nullptr; + resources->ApplyResources(this->tabErrorInfo, L"tabErrorInfo"); + this->tabErrorInfo->BackgroundImage = nullptr; + this->tabErrorInfo->Controls->Add(this->labPurposeInError); + this->tabErrorInfo->Controls->Add(this->tboxPurposeInError); + this->tabErrorInfo->Controls->Add(this->tboxGuideErrorInfo); + this->tabErrorInfo->Controls->Add(this->gboxErrorTiming); + this->tabErrorInfo->Controls->Add(this->labWarn); + this->tabErrorInfo->Controls->Add(this->labError); + this->tabErrorInfo->Controls->Add(this->gridWarn); + this->tabErrorInfo->Controls->Add(this->gridError); + this->tabErrorInfo->Font = nullptr; + this->tabErrorInfo->Name = L"tabErrorInfo"; + this->tabErrorInfo->UseVisualStyleBackColor = true; + // + // labPurposeInError + // + this->labPurposeInError->AccessibleDescription = nullptr; + this->labPurposeInError->AccessibleName = nullptr; + resources->ApplyResources(this->labPurposeInError, L"labPurposeInError"); + this->labPurposeInError->Font = nullptr; + this->labPurposeInError->Name = L"labPurposeInError"; + // + // tboxPurposeInError + // + this->tboxPurposeInError->AccessibleDescription = nullptr; + this->tboxPurposeInError->AccessibleName = nullptr; + resources->ApplyResources(this->tboxPurposeInError, L"tboxPurposeInError"); + this->tboxPurposeInError->BackgroundImage = nullptr; + this->tboxPurposeInError->Font = nullptr; + this->tboxPurposeInError->Name = L"tboxPurposeInError"; + this->tboxPurposeInError->ReadOnly = true; + // + // tboxGuideErrorInfo + // + this->tboxGuideErrorInfo->AccessibleDescription = nullptr; + this->tboxGuideErrorInfo->AccessibleName = nullptr; + resources->ApplyResources(this->tboxGuideErrorInfo, L"tboxGuideErrorInfo"); + this->tboxGuideErrorInfo->BackColor = System::Drawing::SystemColors::Info; + this->tboxGuideErrorInfo->BackgroundImage = nullptr; + this->tboxGuideErrorInfo->Font = nullptr; + this->tboxGuideErrorInfo->Name = L"tboxGuideErrorInfo"; + this->tboxGuideErrorInfo->ReadOnly = true; + // + // gboxErrorTiming + // + this->gboxErrorTiming->AccessibleDescription = nullptr; + this->gboxErrorTiming->AccessibleName = nullptr; + resources->ApplyResources(this->gboxErrorTiming, L"gboxErrorTiming"); + this->gboxErrorTiming->BackgroundImage = nullptr; + this->gboxErrorTiming->Controls->Add(this->rErrorCurrent); + this->gboxErrorTiming->Controls->Add(this->rErrorReading); + this->gboxErrorTiming->Font = nullptr; + this->gboxErrorTiming->Name = L"gboxErrorTiming"; + this->gboxErrorTiming->TabStop = false; + // + // rErrorCurrent + // + this->rErrorCurrent->AccessibleDescription = nullptr; + this->rErrorCurrent->AccessibleName = nullptr; + resources->ApplyResources(this->rErrorCurrent, L"rErrorCurrent"); + this->rErrorCurrent->BackgroundImage = nullptr; + this->rErrorCurrent->Font = nullptr; + this->rErrorCurrent->Name = L"rErrorCurrent"; + this->rErrorCurrent->TabStop = true; + this->rErrorCurrent->UseVisualStyleBackColor = true; + this->rErrorCurrent->CheckedChanged += gcnew System::EventHandler(this, &Form1::rErrorCurrent_CheckedChanged); + // + // rErrorReading + // + this->rErrorReading->AccessibleDescription = nullptr; + this->rErrorReading->AccessibleName = nullptr; + resources->ApplyResources(this->rErrorReading, L"rErrorReading"); + this->rErrorReading->BackgroundImage = nullptr; + this->rErrorReading->Checked = true; + this->rErrorReading->Font = nullptr; + this->rErrorReading->Name = L"rErrorReading"; + this->rErrorReading->TabStop = true; + this->rErrorReading->UseVisualStyleBackColor = true; + this->rErrorReading->CheckedChanged += gcnew System::EventHandler(this, &Form1::rErrorReading_CheckedChanged); + // + // labWarn + // + this->labWarn->AccessibleDescription = nullptr; + this->labWarn->AccessibleName = nullptr; + resources->ApplyResources(this->labWarn, L"labWarn"); + this->labWarn->Font = nullptr; + this->labWarn->ForeColor = System::Drawing::SystemColors::ActiveCaption; + this->labWarn->Name = L"labWarn"; + // + // labError + // + this->labError->AccessibleDescription = nullptr; + this->labError->AccessibleName = nullptr; + resources->ApplyResources(this->labError, L"labError"); + this->labError->Font = nullptr; + this->labError->ForeColor = System::Drawing::SystemColors::ActiveCaption; + this->labError->Name = L"labError"; + // + // gridWarn + // + this->gridWarn->AccessibleDescription = nullptr; + this->gridWarn->AccessibleName = nullptr; + resources->ApplyResources(this->gridWarn, L"gridWarn"); + this->gridWarn->AutoSizeRowsMode = System::Windows::Forms::DataGridViewAutoSizeRowsMode::AllCellsExceptHeaders; + this->gridWarn->BackgroundColor = System::Drawing::SystemColors::Control; + this->gridWarn->BackgroundImage = nullptr; + this->gridWarn->ColumnHeadersHeightSizeMode = System::Windows::Forms::DataGridViewColumnHeadersHeightSizeMode::AutoSize; + this->gridWarn->Columns->AddRange(gcnew cli::array< System::Windows::Forms::DataGridViewColumn^ >(4) {this->colWarnName, + this->colWarnBegin, this->colWarnEnd, this->colWarnCause}); + dataGridViewCellStyle3->Alignment = System::Windows::Forms::DataGridViewContentAlignment::MiddleLeft; + dataGridViewCellStyle3->BackColor = System::Drawing::SystemColors::Window; + dataGridViewCellStyle3->Font = (gcnew System::Drawing::Font(L"Arial", 9)); + dataGridViewCellStyle3->ForeColor = System::Drawing::SystemColors::ControlText; + dataGridViewCellStyle3->SelectionBackColor = System::Drawing::SystemColors::Highlight; + dataGridViewCellStyle3->SelectionForeColor = System::Drawing::SystemColors::HighlightText; + dataGridViewCellStyle3->WrapMode = System::Windows::Forms::DataGridViewTriState::True; + this->gridWarn->DefaultCellStyle = dataGridViewCellStyle3; + this->gridWarn->Font = nullptr; + this->gridWarn->GridColor = System::Drawing::SystemColors::Control; + this->gridWarn->Name = L"gridWarn"; + this->gridWarn->ReadOnly = true; + this->gridWarn->RowHeadersVisible = false; + this->gridWarn->RowTemplate->Height = 21; + // + // colWarnName + // + resources->ApplyResources(this->colWarnName, L"colWarnName"); + this->colWarnName->Name = L"colWarnName"; + this->colWarnName->ReadOnly = true; + // + // colWarnBegin + // + resources->ApplyResources(this->colWarnBegin, L"colWarnBegin"); + this->colWarnBegin->Name = L"colWarnBegin"; + this->colWarnBegin->ReadOnly = true; + // + // colWarnEnd + // + resources->ApplyResources(this->colWarnEnd, L"colWarnEnd"); + this->colWarnEnd->Name = L"colWarnEnd"; + this->colWarnEnd->ReadOnly = true; + // + // colWarnCause + // + this->colWarnCause->AutoSizeMode = System::Windows::Forms::DataGridViewAutoSizeColumnMode::Fill; + resources->ApplyResources(this->colWarnCause, L"colWarnCause"); + this->colWarnCause->Name = L"colWarnCause"; + this->colWarnCause->ReadOnly = true; + // + // gridError + // + this->gridError->AccessibleDescription = nullptr; + this->gridError->AccessibleName = nullptr; + dataGridViewCellStyle4->BackColor = System::Drawing::Color::White; + this->gridError->AlternatingRowsDefaultCellStyle = dataGridViewCellStyle4; + resources->ApplyResources(this->gridError, L"gridError"); + this->gridError->AutoSizeRowsMode = System::Windows::Forms::DataGridViewAutoSizeRowsMode::AllCellsExceptHeaders; + this->gridError->BackgroundColor = System::Drawing::SystemColors::Control; + this->gridError->BackgroundImage = nullptr; + this->gridError->ColumnHeadersHeightSizeMode = System::Windows::Forms::DataGridViewColumnHeadersHeightSizeMode::AutoSize; + this->gridError->Columns->AddRange(gcnew cli::array< System::Windows::Forms::DataGridViewColumn^ >(4) {this->colErrorName, + this->colErrorBegin, this->colErrorEnd, this->colErrorCause}); + dataGridViewCellStyle5->Alignment = System::Windows::Forms::DataGridViewContentAlignment::MiddleLeft; + dataGridViewCellStyle5->BackColor = System::Drawing::SystemColors::Window; + dataGridViewCellStyle5->Font = (gcnew System::Drawing::Font(L"Arial", 9)); + dataGridViewCellStyle5->ForeColor = System::Drawing::SystemColors::ControlText; + dataGridViewCellStyle5->SelectionBackColor = System::Drawing::SystemColors::Highlight; + dataGridViewCellStyle5->SelectionForeColor = System::Drawing::SystemColors::HighlightText; + dataGridViewCellStyle5->WrapMode = System::Windows::Forms::DataGridViewTriState::True; + this->gridError->DefaultCellStyle = dataGridViewCellStyle5; + this->gridError->Font = nullptr; + this->gridError->GridColor = System::Drawing::SystemColors::Control; + this->gridError->Name = L"gridError"; + this->gridError->ReadOnly = true; + this->gridError->RowHeadersVisible = false; + this->gridError->RowTemplate->Height = 21; + // + // colErrorName + // + resources->ApplyResources(this->colErrorName, L"colErrorName"); + this->colErrorName->Name = L"colErrorName"; + this->colErrorName->ReadOnly = true; + // + // colErrorBegin + // + resources->ApplyResources(this->colErrorBegin, L"colErrorBegin"); + this->colErrorBegin->Name = L"colErrorBegin"; + this->colErrorBegin->ReadOnly = true; + // + // colErrorEnd + // + resources->ApplyResources(this->colErrorEnd, L"colErrorEnd"); + this->colErrorEnd->Name = L"colErrorEnd"; + this->colErrorEnd->ReadOnly = true; + // + // colErrorCause + // + this->colErrorCause->AutoSizeMode = System::Windows::Forms::DataGridViewAutoSizeColumnMode::Fill; + resources->ApplyResources(this->colErrorCause, L"colErrorCause"); + this->colErrorCause->Name = L"colErrorCause"; + this->colErrorCause->ReadOnly = true; + // + // labFile + // + this->labFile->AccessibleDescription = nullptr; + this->labFile->AccessibleName = nullptr; + resources->ApplyResources(this->labFile, L"labFile"); + this->labFile->Font = nullptr; + this->labFile->Name = L"labFile"; + // + // labAssemblyVersion + // + this->labAssemblyVersion->AccessibleDescription = nullptr; + this->labAssemblyVersion->AccessibleName = nullptr; + resources->ApplyResources(this->labAssemblyVersion, L"labAssemblyVersion"); + this->labAssemblyVersion->Font = nullptr; + this->labAssemblyVersion->ForeColor = System::Drawing::SystemColors::ControlText; + this->labAssemblyVersion->Name = L"labAssemblyVersion"; + // + // Form1 + // + this->AccessibleDescription = nullptr; + this->AccessibleName = nullptr; + this->AllowDrop = true; + this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::None; + resources->ApplyResources(this, L"$this"); + this->BackgroundImage = nullptr; + this->Controls->Add(this->labAssemblyVersion); + this->Controls->Add(this->labFile); + this->Controls->Add(this->tabMain); + this->Controls->Add(this->tboxFile); + this->Controls->Add(this->menuStripAbove); + this->Icon = nullptr; + this->MainMenuStrip = this->menuStripAbove; + this->Name = L"Form1"; + this->DragDrop += gcnew System::Windows::Forms::DragEventHandler(this, &Form1::Form1_DragDrop); + this->DragEnter += gcnew System::Windows::Forms::DragEventHandler(this, &Form1::Form1_DragEnter); + this->gboxSrl->ResumeLayout(false); + this->gboxSrl->PerformLayout(); + this->gboxCRC->ResumeLayout(false); + this->gboxCRC->PerformLayout(); + this->gboxPerson2->ResumeLayout(false); + this->gboxPerson2->PerformLayout(); + this->gboxPerson1->ResumeLayout(false); + this->gboxPerson1->PerformLayout(); + this->gboxSubmitWay->ResumeLayout(false); + this->gboxSubmitWay->PerformLayout(); + (cli::safe_cast(this->numSubmitVersion))->EndInit(); + this->gboxShared2Size->ResumeLayout(false); + this->gboxShared2Size->PerformLayout(); + this->gboxTWLExInfo->ResumeLayout(false); + this->gboxTWLExInfo->PerformLayout(); + this->gboxAccess->ResumeLayout(false); + this->gboxAccess->PerformLayout(); + this->gboxTitleID->ResumeLayout(false); + this->gboxTitleID->PerformLayout(); + this->gboxProd->ResumeLayout(false); + this->gboxProd->PerformLayout(); + this->menuStripAbove->ResumeLayout(false); + this->menuStripAbove->PerformLayout(); + this->tabMain->ResumeLayout(false); + this->tabRomInfo->ResumeLayout(false); + this->tabRomInfo->PerformLayout(); + (cli::safe_cast(this->gridSDK))->EndInit(); + (cli::safe_cast(this->gridLibrary))->EndInit(); + this->tabTWLInfo->ResumeLayout(false); + this->tabTWLInfo->PerformLayout(); + this->gboxLaunch->ResumeLayout(false); + this->gboxLaunch->PerformLayout(); + this->gboxExFlags->ResumeLayout(false); + this->gboxExFlags->PerformLayout(); + this->tabNandSizeInfo->ResumeLayout(false); + this->tabNandSizeInfo->PerformLayout(); + this->gboxNandSize->ResumeLayout(false); + this->gboxNandSize->PerformLayout(); + this->tabRomEditInfo->ResumeLayout(false); + this->tabRomEditInfo->PerformLayout(); + this->gboxOtherSpec->ResumeLayout(false); + this->gboxOtherSpec->PerformLayout(); + this->gboxParental->ResumeLayout(false); + this->gboxParental->PerformLayout(); + this->tabSubmitInfo->ResumeLayout(false); + this->tabSubmitInfo->PerformLayout(); + this->gboxPurpose->ResumeLayout(false); + this->gboxPurpose->PerformLayout(); + this->gboxPurposeNand->ResumeLayout(false); + this->gboxPurposeNand->PerformLayout(); + this->gboxPurposeCard->ResumeLayout(false); + this->gboxPurposeCard->PerformLayout(); + this->gboxForeign->ResumeLayout(false); + this->gboxForeign->PerformLayout(); + this->tabCompanyInfo->ResumeLayout(false); + this->tabCompanyInfo->PerformLayout(); + this->tabErrorInfo->ResumeLayout(false); + this->tabErrorInfo->PerformLayout(); + this->gboxErrorTiming->ResumeLayout(false); + this->gboxErrorTiming->PerformLayout(); + (cli::safe_cast(this->gridWarn))->EndInit(); + (cli::safe_cast(this->gridError))->EndInit(); + this->ResumeLayout(false); + this->PerformLayout(); + + } +#pragma endregion + + ///////////////////////////////////////////// + // \bh + ///////////////////////////////////////////// + private: + // ---------------------------------------------- + // / I + // ---------------------------------------------- + + void construct(void); + void destruct(void); + void handleArgs(void); // R}hC + + private: + // ---------------------------------------------- + // ݒt@C̓ǂݍ + // ---------------------------------------------- + + void loadInit(void); // ݒt@C + void loadAppendInit(void); // ljݒt@C() + + private: + // ---------------------------------------------- + // ROMt@CR/W + // ---------------------------------------------- + + // ROMt@C̓ǂݍ (TAD/SRLǂݍ݂bv) + System::Boolean loadRom( System::String ^infile ); + + // ROMt@C̏o (SRLobv) + ECFormResult saveRom( System::String ^outname ); + + // SRL̓ǂݍ + System::Boolean loadSrl( System::String ^srlfile ); + + // SRL̏oƍēǂݍ + ECFormResult saveSrl( System::String ^infile, System::String ^outfile ); + + // SRL̏ô @ret + ECFormResult saveSrlCore( System::String ^infile, System::String ^outfile ); + + // tad̓ǂݍ + System::Boolean loadTad( System::String ^tadfile ); + + // t@C̃Rs[ + ECFormResult copyFile( System::String ^infile, System::String ^outfile ); + + // ot@CQ[R[hȂǂ猈 + System::String^ getSubmitFilePrefix(void) + { + System::Byte romver = this->hSrl->RomVersion & 0x0F; // 1 + System::Byte subver = System::Decimal::ToByte(this->numSubmitVersion->Value) & 0x0F; + + System::String ^prefix = "T" + this->hSrl->hGameCode + romver.ToString("X") + subver.ToString("X"); + if( this->isPreliminary() == true ) + { + prefix += "E"; + } + return prefix; + } + + private: + // ---------------------------------------------- + // ~hEFAXg̏o + // ---------------------------------------------- + + // XML`̃Xgɕt^Cg̍쐬 + System::Xml::XmlElement^ makeGameInfoXmlElement(System::Xml::XmlDocument^ doc); + + // XML`̃Xg̖{̂ƂȂ~hEFAXg̍쐬(łĝœƗ) + System::Xml::XmlElement^ makeMiddlewareListXmlElement(System::Xml::XmlDocument^ doc, bool isCount); + + // XML`̃Xg쐬 + System::Void makeMiddlewareListXml(System::Xml::XmlDocument^ doc); + + // XML`ŏo + System::Boolean saveMiddlewareListXml( System::String ^filename ); + + // HTML`ŏo(XML->HTMLϊ) + System::Boolean saveMiddlewareListHtml( System::String ^filename ); + + // XSLߍXML`ŏo + System::Boolean saveMiddlewareListXmlEmbeddedXsl( System::String ^filename ); + + private: + // ---------------------------------------------- + // G[Xg̏o + // ---------------------------------------------- + + // XML`̃Xg̖{̂ƂȂG[Xg̍쐬(łĝœƗ) + System::Xml::XmlElement^ makeErrorListXmlElement(System::Xml::XmlDocument ^doc, System::Boolean isCurrent); + System::Xml::XmlElement^ makeWarningListXmlElement(System::Xml::XmlDocument ^doc, System::Boolean isCurrent); + System::Xml::XmlElement^ makeErrorListCaptionXmlElement(System::Xml::XmlDocument ^doc); + + // XML`̃G[Xg̗vf̃JEg + int countErrorListXmlElement( System::Boolean isCurrent ); + int countWarningListXmlElement( System::Boolean isCurrent ); + + // XML`̃Xg쐬 + System::Void makeErrorListXml(System::Xml::XmlDocument^ doc, System::Boolean isCurrent); + + // HTML`ŕۑ + System::Void makeErrorListHtml(System::String ^filepath, System::Boolean isCurrent ); + + private: + // ---------------------------------------------- + // ROM񃊃Xg̏o + // ---------------------------------------------- + + // XML`̃Xg쐬 + System::Void makeRomInfoListXml(System::Xml::XmlDocument^ doc, System::Boolean withError, System::Boolean isCurrent); + + // HTML`ŕۑ + System::Void makeRomInfoListHtml(System::String ^filepath, System::Boolean withError, System::Boolean isCurrent); + + private: + // ---------------------------------------------- + // ꎞt@C̎舵 + // ---------------------------------------------- + + // ꎞۑ + System::Void saveTmp( System::String ^filename ); + + // ꎞt@Cǂݏo + void loadTmp( System::String ^filename ); + + // ꎞۑtH[ɕϊ + System::Boolean parseTmp( System::Xml::XmlElement ^root, System::String ^xpath, System::Windows::Forms::ComboBox ^comb ); + System::Boolean parseTmp( System::Xml::XmlElement ^root, System::String ^xpath, System::Windows::Forms::NumericUpDown ^num ); + System::Boolean parseTmp( System::Xml::XmlElement ^root, System::String ^xpath, + cli::array^rbuts, cli::array^textCands ); + System::Boolean parseTmp( System::Xml::XmlElement ^root, System::String ^xpath, System::Windows::Forms::CheckBox ^cbox ); + System::Boolean parseTmp( System::Xml::XmlElement ^root, System::String ^xpath, System::Windows::Forms::TextBox ^tbox ); + System::Boolean parseTmp( System::Xml::XmlElement ^root, System::String ^xpath, System::Windows::Forms::DateTimePicker ^date ); + + // Џ̕ۑƓǂݏo + System::Void saveCompany( System::String ^filename ); + System::Void loadCompany( System::String ^filename ); + + private: + // ---------------------------------------------- + // tH[̐ݒύX + // ---------------------------------------------- + + // \ڂ̕\ؑ + void changeVisibleForms( System::Boolean visible ) + { + this->gboxShared2Size->Visible = visible; + this->cboxIsShared2->Visible = visible; + this->tboxShared2Size0->Visible = visible; + this->labShared2Size0->Visible = visible; + this->tboxShared2Size1->Visible = visible; + this->labShared2Size1->Visible = visible; + this->tboxShared2Size2->Visible = visible; + this->labShared2Size2->Visible = visible; + this->tboxShared2Size3->Visible = visible; + this->labShared2Size3->Visible = visible; + this->tboxShared2Size4->Visible = visible; + this->labShared2Size4->Visible = visible; + this->tboxShared2Size5->Visible = visible; + this->labShared2Size5->Visible = visible; + + this->tboxIsGameCardOn->Visible = visible; + this->labIsGameCardOn->Visible = visible; + this->labIsGameCardOn2->Visible = visible; + this->labNormalRomOffset->Visible = visible; + this->tboxNormalRomOffset->Visible = visible; + this->labHex3->Visible = visible; + } + // \ڂ̗LŃTCYςO[v{bNX + void changeVisibleGboxExFlags( System::Boolean visible ) + { + // ݒt@C visible w肳ꂽljݒt@Cǂł낤 visible + if( !this->IsVisibleGboxExFlags ) + { + this->IsVisibleGboxExFlags = visible; + this->cboxIsNormalJump->Visible = visible; + if( visible ) + { + this->gboxExFlags->Size = this->SizeGboxExFlags; + } + else + { + System::Drawing::Size size = this->SizeGboxExFlags; + size.Height -= 15; + this->gboxExFlags->Size = size; + } + } + } + + // ݒ/I”\ȃtH[ׂ disable ɂ + void readOnly( void ) + { + this->cboxIsUGC->Enabled = false; + this->cboxIsPhotoEx->Enabled = false; + + this->butSetBack->Enabled = false; + this->combRegion->Enabled = false; + this->combCERO->Enabled = false; + this->combESRB->Enabled = false; + this->combUSK->Enabled = false; + this->combPEGI->Enabled = false; + this->combPEGI_PRT->Enabled = false; + this->combPEGI_BBFC->Enabled = false; + this->combOFLC->Enabled = false; + this->combGRB->Enabled = false; + } + + // o[W擾 + System::String^ getVersion( void ) + { + System::Reflection::Assembly ^ass = System::Reflection::Assembly::GetEntryAssembly(); + System::Version ^ver = ass->GetName()->Version; + return ( ver->Major.ToString() + "." + ver->Minor.ToString() + "a" ); + } + + // SRLɓo^ȂROMdl̃tH[͂ + // VKǂݍ݂̂Ƃɂ̓NA + // ēǂݍ݂̂Ƃɂ͑ȌԂɖ߂ + void clearOtherForms(void) + { + this->cboxIsUGC->Checked = false; + this->cboxIsPhotoEx->Checked = false; + this->IsCheckedUGC = false; + this->IsCheckedPhotoEx = false; + } + void saveOtherForms(void) + { + this->IsCheckedUGC = this->cboxIsUGC->Checked; + this->IsCheckedPhotoEx = this->cboxIsPhotoEx->Checked; + } + void loadOtherForms(void) + { + this->cboxIsUGC->Checked = this->IsCheckedUGC; + this->cboxIsPhotoEx->Checked = this->IsCheckedPhotoEx; + } + + // obNAbv̕\NANDAv̂ƂɁuȂvɂ + void maskBackupMemoryForms(void) + { + if( this->hSrl->IsMediaNand ) + { + this->combBackup->SelectedIndex = this->combBackup->Items->Count - 2; + this->combBackup->Enabled = false; + } + else + { + this->combBackup->Enabled = true; + } + } + + //// DL̔JeS̕\J[hAv̂ƂuȂvɂB + //void maskDLCategoryForms(void) + //{ + // // ftHg IsMediaNand false Ȃ̂ŃfBANANDȂ̂ROMǂݍ܂ĂȂ̂falseȂ̂fłȂ̂ + // // ROMǂݍ܂ĂȂƂ(TMP̓ǂݏo)Ă΂ƃR{{bNXҏWs‚ɂȂĂ܂ + // // => ǂݍ܂ꂽƂɂ̂ݔ肷 + + // System::Boolean bRead = this->hSrl->IsAppUser || this->hSrl->IsAppSystem || // xłǂݍ܂ĂƂǂꂩtrueɂȂĂ + // this->hSrl->IsAppSecure || this->hSrl->IsAppLauncher; + + // if( !this->hSrl->IsMediaNand && bRead ) // ǂݍ܂ĂƂ̂ + // { + // this->combDLCategory->SelectedIndex = this->combDLCategory->Items->Count - 2; + // this->combDLCategory->Enabled = false; + // } + // else + // { + // this->combDLCategory->Enabled = true; + // } + //} + + // {tHg邩ǂׂ + bool hasJapaneseFont(void) + { + System::Drawing::Text::InstalledFontCollection ^ifc = gcnew System::Drawing::Text::InstalledFontCollection(); + + bool ret = false; + for each( System::Drawing::FontFamily ^ff in ifc->Families ) + { + //System::Diagnostics::Debug::WriteLine(ff->Name); + if( ff->Name && (ff->Name->ToUpper()->Equals("MS PGOTHIC") || ff->Name->Equals("lr oSVbN")) ) + { + ret = true; + } + } + return ret; + } + + // "pr"̍ڂ1‚̃WI{^Ȃ悤ɂ + // ({̓O[v{bNXIɏĂ邪, O[v{bNX邽߃O[v{bNX܂rKv) + void changePurposeForms(System::Windows::Forms::RadioButton ^rbut) + { + // CxgȂ悤ɃCxg𖳌ɂ + this->rPurposeCardProduction->CheckedChanged -= gcnew System::EventHandler(this, &Form1::rPurposeCardProduction_CheckedChanged); + this->rPurposeCardTouchTryDS->CheckedChanged -= gcnew System::EventHandler(this, &Form1::rPurposeCardTouchTryDS_CheckedChanged); + this->rPurposeCardDistribution->CheckedChanged -= gcnew System::EventHandler(this, &Form1::rPurposeCardDistribution_CheckedChanged); + this->rPurposeCardKiosk->CheckedChanged -= gcnew System::EventHandler(this, &Form1::rPurposeCardKiosk_CheckedChanged); + this->rPurposeDSiWare->CheckedChanged -= gcnew System::EventHandler(this, &Form1::rPurposeDSiWare_CheckedChanged); + this->rPurposeOther->CheckedChanged -= gcnew System::EventHandler(this, &Form1::rPurposeOther_CheckedChanged); + + // 񂷂ׂă`FbNO + this->rPurposeCardProduction->Checked = false; + this->rPurposeCardTouchTryDS->Checked = false; + this->rPurposeCardDistribution->Checked = false; + this->rPurposeCardKiosk->Checked = false; + this->rPurposeDSiWare->Checked = false; + this->rPurposeOther->Checked = false; + + // Iꂽ̂̂݃`FbN + rbut->Checked = true; + + // "̑"̃eLXg{bNXLɂ + if( rbut->Equals(this->rPurposeOther) ) + { + this->tboxPurposeOther->Enabled = true; + } + else + { + this->tboxPurposeOther->Clear(); + this->tboxPurposeOther->Enabled = false; + } + + // CxgLɂ + this->rPurposeCardProduction->CheckedChanged += gcnew System::EventHandler(this, &Form1::rPurposeCardProduction_CheckedChanged); + this->rPurposeCardTouchTryDS->CheckedChanged += gcnew System::EventHandler(this, &Form1::rPurposeCardTouchTryDS_CheckedChanged); + this->rPurposeCardDistribution->CheckedChanged += gcnew System::EventHandler(this, &Form1::rPurposeCardDistribution_CheckedChanged); + this->rPurposeCardKiosk->CheckedChanged += gcnew System::EventHandler(this, &Form1::rPurposeCardKiosk_CheckedChanged); + this->rPurposeDSiWare->CheckedChanged += gcnew System::EventHandler(this, &Form1::rPurposeDSiWare_CheckedChanged); + this->rPurposeOther->CheckedChanged += gcnew System::EventHandler(this, &Form1::rPurposeOther_CheckedChanged); + + } //changePurposeForms() + + // ROMfBAɂ킹"pr"̑I”\ȃWI{^i + void maskPurposeForms(void) + { + // ܂ǂݍ܂ĂȂƂɂ͑Sݒ”\ + if( !this->hSrl->IsAlreadyReadOnce ) + { + return; + } + + // J[hAvőI”\ȍ + cli::array ^rbutsCard = gcnew cli::array + { + this->rPurposeCardProduction, + this->rPurposeCardTouchTryDS, + this->rPurposeCardDistribution, + this->rPurposeCardKiosk, + }; + // NANDAvőI”\ȍ + cli::array ^rbutsNand = gcnew cli::array + { + this->rPurposeDSiWare, + }; + + if( this->hSrl->IsMediaNand ) // SRLǂݍ܂ĂȂƂɂfalseł邱Ƃۏ؂Ă + { + for each( System::Windows::Forms::RadioButton ^r in rbutsCard ) + { + r->Enabled = false; + if( r->Checked ) // J[hAv̑I”\ڂɃ`FbN‚Ă`FbN‚ + { + this->changePurposeForms(this->rPurposeDSiWare); + } + } + for each( System::Windows::Forms::RadioButton ^r in rbutsNand ) + { + r->Enabled = true; + } + } + else + { + for each( System::Windows::Forms::RadioButton ^r in rbutsNand ) + { + r->Enabled = false; + if( r->Checked ) + { + this->changePurposeForms(this->rPurposeCardProduction); + } + } + for each( System::Windows::Forms::RadioButton ^r in rbutsCard ) + { + r->Enabled = true; + } + } + + // SRL̃[WɂđI”\ȍڂ}XN + + // k/B/؍[Wł"Touch!Try!DS"Ȃ + if( this->hSrl->IsRegionAmerica || this->hSrl->IsRegionEurope || this->hSrl->IsRegionAustralia || + this->hSrl->IsRegionChina || this->hSrl->IsRegionKorea ) + { + this->rPurposeCardTouchTryDS->Enabled = false; + if( this->rPurposeCardTouchTryDS->Checked ) + { + this->changePurposeForms(this->rPurposeOther); + } + } + // ؃[Wł"f[^zMROM"/"XV(Pƌ^)"Ȃ + if( this->hSrl->IsRegionChina || this->hSrl->IsRegionKorea ) + { + this->rPurposeCardDistribution->Enabled = false; + this->rPurposeCardKiosk->Enabled = false; + if( this->rPurposeCardDistribution->Checked || this->rPurposeCardKiosk->Checked ) + { + this->changePurposeForms(this->rPurposeOther); + } + } + + // [WR{{bNXŕύXĂꍇ̂łD悷 + + // k/B/B/؃[Wł"Touch!Try!DS"Ȃ + if( (this->combRegion->SelectedIndex == 1) || + (this->combRegion->SelectedIndex == 2) || + (this->combRegion->SelectedIndex == 3) || + (this->combRegion->SelectedIndex == 4) || + (this->combRegion->SelectedIndex == 5) || + (this->combRegion->SelectedIndex == 6) || + (this->combRegion->DropDownStyle == System::Windows::Forms::ComboBoxStyle::DropDown)) // ؂̂Ƃ̓hbv_Eł͂Ȃ + { + this->rPurposeCardTouchTryDS->Enabled = false; + if( this->rPurposeCardTouchTryDS->Checked ) + { + this->changePurposeForms(this->rPurposeOther); + } + } + else + { + if( this->hSrl->IsAlreadyReadOnce && this->hSrl->IsMediaNand ) + { + this->rPurposeCardTouchTryDS->Enabled = false; + } + else + { + this->rPurposeCardTouchTryDS->Enabled = true; + } + } + // ؃[Wł"f[^zMROM"/"XV(Pƌ^)"Ȃ + if( this->combRegion->DropDownStyle == System::Windows::Forms::ComboBoxStyle::DropDown ) + { + this->rPurposeCardDistribution->Enabled = false; + this->rPurposeCardKiosk->Enabled = false; + if( this->rPurposeCardDistribution->Checked || this->rPurposeCardKiosk->Checked ) + { + this->changePurposeForms(this->rPurposeOther); + } + } + else + { + if( this->hSrl->IsAlreadyReadOnce && this->hSrl->IsMediaNand ) + { + this->rPurposeCardDistribution->Enabled = false; + this->rPurposeCardKiosk->Enabled = false; + } + else + { + this->rPurposeCardDistribution->Enabled = true; + this->rPurposeCardKiosk->Enabled = true; + } + } + } //maskPurposeForms() + + private: + // ---------------------------------------------- + // Œt@C̎擾 + // ---------------------------------------------- + + // oCifBNg + System::String^ getBinDir(void) + { + System::String ^dir = System::IO::Path::GetDirectoryName( System::Reflection::Assembly::GetEntryAssembly()->Location ); + if( !dir->EndsWith("\\") ) + { + dir = dir + "\\"; + } + return dir; + } + // \[Xt@CfBNg + System::String^ getResDir(void) + { + System::String ^dir = System::IO::Directory::GetParent( this->getBinDir() )->Parent->FullName; + if( !dir->EndsWith("\\") ) + { + dir = dir + "\\"; + } + dir = dir + "resource\\"; + return dir; + } + // ݒt@C + System::String^ getIniFile(void) + { + return (this->getResDir() + "ini.xml"); + } + System::String^ getAppendIniFile(void) + { + return (this->getResDir() + "append_ini.xml"); + } + // omFev[g + System::String^ getSheetTemplateFile(void) + { + System::String ^sheet; + if( this->isJapanese() ) + { + sheet = this->getResDir() + "sheet_template_jp.xml"; + } + else + { + sheet = this->getResDir() + "sheet_template_en.xml"; + } + return sheet; + } + // ~hEFAXg쐬pXSL + System::String^ getMiddlewareListStyleFile(void) + { + return (this->getResDir() + "middleware.xsl"); + } + System::String^ getMiddlewareListStyleFileEmbedded(void) + { + return (this->getResDir() + "middleware_e.xsl"); + } + // ~hEFAXg쐬̈ꎞt@C + System::String^ getMiddlewareListTmpFile(void) + { + return (this->getBinDir() + "middleware-tmp.xml"); + } + // tad̓ǂݍ݂ŐꎞSRLt@C + System::String^ getSplitTadTmpFile(void) + { + return (this->getBinDir() + "tmp.srl"); + } + // GUIbZ[Wt@C + System::String^ getGuiMessageFileJ(void) + { + return (this->getResDir() + "gui_msg_j.xml"); + } + System::String^ getGuiMessageFileE(void) + { + return (this->getResDir() + "gui_msg_e.xml"); + } + // MRCbZ[Wt@C + System::String^ getMrcMessageFileJ(void) + { + return (this->getResDir() + "mrc_msg_j.xml"); + } + System::String^ getMrcMessageFileE(void) + { + return (this->getResDir() + "mrc_msg_e.xml"); + } + // ~hEFÃXgt@C + System::String^ getMiddlewareNameListFile(void) + { + return (this->getResDir() + "middleware_name_list.xml"); + } + // G[Xg/ROMt@CXgȂǂXML->HTMLϊ̈ꎞt@C + System::String^ getXmlToHtmlTmpFile(void) + { + return (this->getBinDir() + "xml_to_html_tmp.xml"); + } + // G[Xg쐬pXSL + System::String^ getErrorListXsl(void) + { + return (this->getResDir() + "errorlist.xsl"); + } + // ROM񃊃Xg쐬pXSL + System::String^ getRomInfoListXsl(void) + { + return (this->getResDir() + "rominfolist.xsl"); + } + // ЏXML + System::String^ getCompanyInfoFile(void) + { + return (this->getBinDir() + "company.xml"); + } + + private: + // ---------------------------------------------- + // tH[SRL𖵏Ȃv + // ---------------------------------------------- + + // ROMtH[擾SRLNX̃vpeBɔf + // (ROMwb_ւ̔fCRCƏ̍ČvZȂ) + void setSrlProperties(void); + + // SRLROMtH[ɔf(t@Cǂݍ܂Ă邱ƂO) + void setSrlForms(void); + + // ROM̂eLXg{bNXXV(؂ւŕ\ς̂œƗ) + void setSrlFormsTextBox(); + + // tH[̓͂`FbN + System::Boolean checkSrlForms(void); + + // OłǂmF + bool isPreliminary() + { + return this->cboxRemasterVerE->Checked; + } + + private: + // --------------------------------------------------------------------- + // [Wݒ͕GȂ̂ŕʂɐ؂o + // --------------------------------------------------------------------- + + // GUĨR{{bNXROMwb_̃[WR[h肷 + void setRegionSrlPropaties(void); + + // ROMwb_̃[WR[hGUĨR{{bNX̒l肷 + void setRegionForms(void); + + // [W̃tH[ɖ肪Ȃ`FbN + void checkRegionForms(void); + + private: + // --------------------------------------------------------------------- + // [eBOݒ͕GȂ̂ŕʂɐ؂o + // --------------------------------------------------------------------- + + // ROMwb_̃[eBO񂩂GUĨR{{bNXݒ肷 + void setRatingSrlProperties(void); + + // GUĨR{{bNX̑IROMwb_ɔf + void setRatingForms(void); + + // GUIŕ\郌[eBOĉ[Wɂĕς + void maskRatingForms(void); + + // GUĨ[eBOݒɖ肪Ȃ`FbN + void checkRatingForms( System::Boolean inRegion, + System::Windows::Forms::ComboBox ^comb, System::String ^ogn ); + + // [eBÕR{{bNXNA + void clearRating( System::Windows::Forms::ComboBox ^comb ); + + // [eBÕR{{bNXҏW”\ȏԂɂ + void enableRating( System::Windows::Forms::ComboBox ^comb, + System::Windows::Forms::Label ^lab1, + System::Windows::Forms::Label ^lab2 ); + + // [eBÕR{{bNXҏWsԂɂ + void disableRating( System::Windows::Forms::ComboBox ^comb, + System::Windows::Forms::Label ^lab1, + System::Windows::Forms::Label ^lab2 ); + + // u[eBO\svvIꂽǂŃR{{bNX̓eς + // ROMǂݍݎсu[eBO\svv`FbN{bNXɕωƂɌĂяo + void changeUnnecessaryRatingForms( System::Boolean bInitial ); + + // [eBÕR{{bNXɁu[eBO\svvƕ\ҏWsԂɂ + void unnecessaryRating( System::Windows::Forms::ComboBox ^comb ); + + // [eBÕR{{bNX́u[eBO\svv̕\NAҏW”\Ԃɂ + void necessaryRating( System::Windows::Forms::ComboBox ^comb, System::Boolean bInitial ); + + // ---------------------------------------------- + // tH[̃`FbN + // ---------------------------------------------- + + // eLXg͂Ă邩`FbN + System::Boolean checkTextForm( System::String ^formtext, System::String ^tag ); // ʃbZ[W + System::Boolean checkTextForm( System::String ^formtext, System::String ^title_tag, System::String ^msg_tag ); // ʃbZ[W + + // l͂킩ǂ`FbN + System::Boolean checkNumRange( System::Int32 val, System::Int32 min, System::Int32 max, System::String ^tag ); + System::Boolean checkNumRange( System::String ^strval, System::Int32 min, System::Int32 max, System::String ^tag ); + + // R{{bNX`FbN + System::Boolean checkComboBoxIndex( System::Windows::Forms::ComboBox ^box, System::String ^tag, System::Boolean isAffectRom ); + + // WI{^`FbN + System::Boolean checkRadioButton( cli::array ^rbuts, System::String ^tag ); + + // ----------------------------------------------------------------- + // o(SRLɉeȂӏ̂)ƃtH[Ԃ̃f[^̂Ƃ + // ----------------------------------------------------------------- + + // omFɃtH[𔽉f + void setDeliverableProperties(void); + + // omFɔf郌[eBO(1c)̃tH[Ԃ + System::String^ setDeliverableRatingOgnProperties( System::Windows::Forms::ComboBox ^box ); + + // õtH[`FbN + System::Boolean checkDeliverableForms(void); + + // ---------------------------------------------- + // bZ[W_CAO + // ---------------------------------------------- + + // @arg[in] ObZ[Wt@C̃^O(RCMessageBankɈn) + // @arg[in] ꍇ͎w (•ϒ) + void sucMsg( System::String ^tag, ... cli::array ^args ) + { + this->sucMsgCore( this->makeMsg(tag, args) ); + } + void errMsg( System::String ^tag, ... cli::array ^args ) + { + this->errMsgCore( this->makeMsg(tag, args) ); + } + System::String^ makeMsg( System::String ^tag, ... cli::array ^args ) + { + System::String ^lang; + //if( this->isJapanese() ) + if( this->hDefaultCultureName && this->hDefaultCultureName->StartsWith("ja") ) // {Windowŝݓ{ꃁbZ[Wɂ + { + lang = "J"; + } + else + { + lang = "E"; + } + System::String ^fmt = this->hMsg->getMessage( tag, lang ); // bZ[Wt@C珑擾 + System::String ^msg = System::String::Format( fmt, args ); // StringɓWJ + return msg; + } + // 𒼂Ɏw肷 + void errMsgCore( System::String ^msg ) + { + MessageBox::Show( msg, "Error", MessageBoxButtons::OK, MessageBoxIcon::Error ); + } + void sucMsgCore( System::String ^msg ) + { + MessageBox::Show( msg, "Information", MessageBoxButtons::OK, MessageBoxIcon::None ); + } + + private: + // ---------------------------------------------- + // pΉ + // ---------------------------------------------- + + // {łƉpłŃeLXg{bNX̕񐧌ς + void changeMaxLength( System::Windows::Forms::TextBox ^tbox, System::Int32 maxlen ); + + // tH[͉̓”ۂƕ\/\؂ւ + void changeFormInput( System::String ^langname ); + + // {łւ̐؂ւ + void changeJapanese(void); + + // płւ̐؂ւ + void changeEnglish(void); + + // ꃊ\[X؂ւ + void changeLanguage( System::String ^langname ); + + // {łǂmF + bool isJapanese() + { + return (this->stripItemJapanese->Checked); + } + bool isEnglish() + { + return (!this->isJapanese()); + } + + // -------------------------------------------------------- + // G[̓o^ + // -------------------------------------------------------- + + // G[̍쐬 + RCMrcError^ makeErrorMsg( + System::Boolean isAffectRom, System::String ^labeltag, System::String ^msgtag, ... cli::array ^args ); + + // pr̃WI{^̏Ԃɂĕ\邩ǂU蕪 + bool isDisplayOneGridErrorForPurpose( RCMrcError ^err ); + + // ǂݍݎG[̓o^ + void setGridError( void ); + void setGridWarn( void ); + + // ǂݍݎɌoC”\G[Ɍ݂̓͂𔽉f + void overloadGridError( void ); + void overloadGridWarn( void ); + + // Z̐Fς + void colorGridError( RCMrcError ^err ); + void colorGridWarn( RCMrcError ^err ); + + // ܂Ƃ߂čXV + void updateGrid(void); + + // ---------------------------------------------- + // G[ + // ---------------------------------------------- + + // SRLɂ͊֌WȂޏ̃G[`FbN + System::Boolean isValidOnlyDeliverable(void); + + // SRL̃oCiɉe鍀ڂɃG[邩`FbN + System::Boolean isValidAffectRom(void); + + // SRL̃oCiɉe鍀ڂ̒ŏC”\ȃG[`FbN + System::Boolean isValidAffectRomModified(void); + + private: + // ---------------------------------------------- + // t@C샆[eBeB + // ---------------------------------------------- + + // OɃANZXfBNgLĎ̃ftHgɂ + System::String ^prevDir; // lnullptr + + // t@C_CAOŎ擾 + // @arg [in] gqtB^ + // @ret 擾t@C G[̂Ƃ nullptr + System::String^ openFileDlg( System::String ^filter ); + + // Z[ut@C_CAOŎ擾 + // @arg [in] gqtB^ + // @arg [in] t@C̊gqsȂƂɒljƂ̐gq + // @ret 擾t@C G[̂Ƃ nullptr + System::String^ saveFileDlg( System::String ^filter, System::String ^extension ); + + // Z[ufBNg_CAOŎ擾 + // @ret 擾fBNg(\\ŏI悤ɒ) G[̂Ƃnullptr + System::String^ saveDirDlg( System::String ^msg ); + + // t@C݂邩𒲂ׂď㏑mF + bool isOverwriteFile( System::String ^path ); + + ///////////////////////////////////////////// + // ^Cgo[상\bh + ///////////////////////////////////////////// + + private: + // -------------------------------------------------------- + // ؂ւ + // -------------------------------------------------------- + System::Void stripItemEnglish_Click(System::Object^ sender, System::EventArgs^ e) + { + this->stripItemEnglish->Checked = true; + this->stripItemJapanese->Checked = false; + this->changeEnglish(); + this->updateGrid(); + } + System::Void stripItemJapanese_Click(System::Object^ sender, System::EventArgs^ e) + { + if( !this->hasJapaneseFont() ) + { + this->errMsg( "E_JapaneseFont" ); + return; + } + + this->stripItemEnglish->Checked = false; + this->stripItemJapanese->Checked = true; + this->changeJapanese(); + this->updateGrid(); + } + + private: + // -------------------------------------------------------- + // uROMt@CJv + // -------------------------------------------------------- + System::Void stripItemOpenRom_Click(System::Object^ sender, System::EventArgs^ e) + { + System::String^ filename; + + // hbOAhhbvȊOł̓_CAO͂ + filename = this->openFileDlg( "rom format (*.srl;*.tad)|*.srl;*.tad|All files (*.*)|*.*" ); + if( filename == nullptr ) + { + return; + } + + // gq tad ǂݍ݂ɂ邩𔻒 + if( !this->loadRom( filename ) ) + { + return; + } + this->tboxFile->Text = filename; + this->clearOtherForms(); // ROMwb_ɂ͔fȂҏWXV + } //stripItemOpenRom_Click() + + private: + // -------------------------------------------------------- + // uSRL̂ݍ쐬v + // -------------------------------------------------------- + System::Void stripItemMasterRom_Click(System::Object^ sender, System::EventArgs^ e) + { + // SRLǂݍ܂ĂȂƂɂ̓[hȂ + if( System::String::IsNullOrEmpty( this->tboxFile->Text ) ) + { + this->errMsg( "E_SaveRom_Empty" ); + return; + } + + // SRL֘AtH[͂`FbN + this->hErrorList->Clear(); + this->hWarnList->Clear(); + if( this->checkSrlForms() == false ) + { + this->errMsg( "E_SaveRom_Setting" ); + return; + } + + // o̓t@CQ[R[hȂǂ狭IɌ߂ + System::String ^prefix = this->getSubmitFilePrefix(); + System::String ^srlfile = prefix + ".SRL"; + + if( this->rPurposeCardTouchTryDS->Checked ) + { + srlfile = prefix + "_Trial.SRL"; + } + //else if( this->rPurposeZone->Checked || this->rPurposeDSDownload->Checked ) + //{ + // srlfile = prefix + "_Download.SRL"; + //} + + // ӏ + this->sucMsg( "SaveRom_Name", srlfile ); + + // _CAOSRLۑfBNg擾 + System::String ^dir = this->saveDirDlg( this->makeMsg( "SaveRom_Folder" ) ); + if( !dir ) + { + this->errMsg( "E_SaveRom_FolderCancel" ); + return; + } + srlfile = dir + srlfile; + + // t@C݂邩𒲂ׂď㏑mF + if( !this->isOverwriteFile(srlfile) ) + { + this->errMsg( "E_SaveRom_OWCancel" ); + return; + } + + try + { + ECFormResult result = this->saveRom( srlfile ); + if( result != ECFormResult::NOERROR ) + { + System::String ^msg = this->makeMsg( "E_SaveRom_FileDefault" ); + switch( result ) + { + case ECFormResult::ERROR_FILE_OPEN: + msg += this->makeMsg( "E_SaveSet_FileOpen" ); + break; + + case ECFormResult::ERROR_FILE_READ: + msg += this->makeMsg( "E_SaveSet_FileRead" ); + break; + + case ECFormResult::ERROR_FILE_WRITE: + msg += this->makeMsg( "E_SaveSet_FileWrite" ); + break; + + case ECFormResult::ERROR_FILE_COPY: + msg += this->makeMsg( "E_SaveSet_FileCopy" ); + break; + + case ECFormResult::ERROR_FILE_EXIST: + msg += this->makeMsg( "E_SaveSet_FileExist" ); + break; + + case ECFormResult::ERROR_FILE_SIGN: + msg += this->makeMsg( "E_SaveSet_FileSign" ); + break; + + default: + break; + } + this->errMsgCore( msg ); + return; + } + this->sucMsg( "SaveRom_Success" ); + this->tboxFile->Text = srlfile; + } + catch( System::Exception ^ex ) + { + this->errMsg( "E_SaveRom_Exception", ex->ToString(), ex->Message ); + return; + } + u16 crc; // oSRLēǂݍ݂̂CRCČvZ + if( !getWholeCRCInFile( srlfile, &crc ) ) + { + this->errMsg( "E_SaveRom_CRC" ); + return; + } + this->tboxWholeCRC->Clear(); + this->tboxWholeCRC->AppendText( "0x" ); + this->tboxWholeCRC->AppendText( crc.ToString("X4") ); + + } //stripItemMasterRom_Click() + + private: + // -------------------------------------------------------- + // uof[^ꎮ쐬v + // -------------------------------------------------------- + System::Void stripItemSheet_Click(System::Object^ sender, System::EventArgs^ e) + { + ECDeliverableResult result; + + // SRLǂݍ܂ĂȂƂɂ̓[hȂ + if( System::String::IsNullOrEmpty( this->tboxFile->Text ) ) + { + this->errMsg( "E_SaveSet_Empty" ); + return; + } + + // SRLƏނ̗̃tH[͂`FbN + this->hErrorList->Clear(); + this->hWarnList->Clear(); + if( this->checkSrlForms() == false ) + { + this->errMsg( "E_SaveSet_Setting" ); + return; + } + if( this->checkDeliverableForms() == false ) + { + this->errMsg( "E_SaveSet_Input" ); + return; + } + + // o̓t@CQ[R[hȂǂ狭IɌ߂ + System::String ^prefix = this->getSubmitFilePrefix(); + System::String ^srlfile = prefix + ".SRL"; + System::String ^delivfile = prefix + "_SHEET.XML"; + System::String ^middlefile = prefix + "_MIDDLEWARE.XML"; + System::String ^middlefilePrint = prefix + "_MIDDLEWARE.HTML"; + + if( this->rPurposeCardTouchTryDS->Checked ) + { + srlfile = prefix + "_Trial.SRL"; + delivfile = prefix + "_Trial_SHEET.XML"; + middlefile = prefix + "_Trial_MIDDLEWARE.XML"; + middlefilePrint = prefix + "_Trial_MIDDLEWARE.HTML"; + } + //else if( this->rPurposeZone->Checked || this->rPurposeDSDownload->Checked ) + //{ + // srlfile = prefix + "_Download.SRL"; + // delivfile = prefix + "_Download_SHEET.XML"; + // middlefile = prefix + "_Download_MIDDLEWARE.XML"; + // middlefilePrint = prefix + "_Download_MIDDLEWARE.HTML"; + //} + + // ӏ + this->sucMsg( "SaveSet_Name", srlfile, delivfile, middlefile, middlefilePrint ); + + // _CAOSRLۑfBNg擾 + System::String ^dir = this->saveDirDlg( this->makeMsg("SaveSet_Folder") ); + if( !dir ) + { + this->errMsg( "E_SaveSet_FolderCancel" ); + return; + } + srlfile = dir + srlfile; + delivfile = dir + delivfile; + middlefile = dir + middlefile; + middlefilePrint = dir + middlefilePrint; + + // t@C݂邩𒲂ׂď㏑mF + if( !this->isOverwriteFile(srlfile) || !this->isOverwriteFile(delivfile) || + !this->isOverwriteFile(middlefile) || !this->isOverwriteFile(middlefilePrint) ) + { + this->errMsg( "E_SaveSet_OWCancel" ); + return; + } + + // }X^omFɕKvȏtH[擾čXV + this->setSrlProperties(); // SrlXVĂ + this->setDeliverableProperties(); + + // XVSRLʃt@Cɍ쐬 + try + { + ECFormResult result = this->saveRom( srlfile ); + if( result != ECFormResult::NOERROR ) + { + System::String ^msg = this->makeMsg( "E_SaveSet_FileDefault" ); + switch( result ) + { + case ECFormResult::ERROR_FILE_OPEN: + msg += this->makeMsg( "E_SaveSet_FileOpen" ); + break; + + case ECFormResult::ERROR_FILE_READ: + msg += this->makeMsg( "E_SaveSet_FileRead" ); + break; + + case ECFormResult::ERROR_FILE_WRITE: + msg += this->makeMsg( "E_SaveSet_FileWrite" ); + break; + + case ECFormResult::ERROR_FILE_COPY: + msg += this->makeMsg( "E_SaveSet_FileCopy" ); + break; + + case ECFormResult::ERROR_FILE_EXIST: + msg += this->makeMsg( "E_SaveSet_FileExist" ); + break; + + case ECFormResult::ERROR_FILE_SIGN: + msg += this->makeMsg( "E_SaveSet_FileSign" ); + break; + + default: + break; + } + this->errMsgCore( msg ); + return; + } + this->tboxFile->Text = srlfile; // ĂeLXg{bNXɔf + } + catch( System::Exception ^ex ) + { + this->errMsg( "E_SaveSet_Exception", ex->ToString(), ex->Message ); + return; + } + u16 crc; // SRLŜCRCvZ(ނɋLq邽) + if( !getWholeCRCInFile( srlfile, &crc ) ) + { + this->errMsg( "E_SaveSet_CRC" ); + return; + } + this->tboxWholeCRC->Clear(); + this->tboxWholeCRC->AppendText( "0x" ); + this->tboxWholeCRC->AppendText( crc.ToString("X4") ); // oSRLēǂݍ݂̂CRCČvZ + + // ~hEFÃXg쐬 + if( !this->saveMiddlewareListXmlEmbeddedXsl( middlefile ) || !this->saveMiddlewareListHtml( middlefilePrint ) ) + { + this->errMsg( "E_SaveSet_MWList" ); + return; + } + + // ލ쐬 + srlfile = System::IO::Path::GetFileName( srlfile ); + //result = this->hDeliv->write( delivfile, this->hSrl, hcrc, srlfile, !this->isJapanese() ); + result = this->hDeliv->writeSpreadsheet( delivfile, this->getSheetTemplateFile(), this->hSrl, crc, srlfile, !this->isJapanese() ); + if( result != ECDeliverableResult::NOERROR ) + { + switch( result ) + { + case ECDeliverableResult::ERROR_FILE_OPEN: + this->errMsg( "E_SaveSet_SheetTemplate" ); + break; + + case ECDeliverableResult::ERROR_FILE_WRITE: + this->errMsg( "E_SaveSet_SheetOpen" ); + break; + + default: + this->errMsg( "E_SaveSet_SheetDefault" ); + break; + } + return; + } + this->sucMsg( "SaveSet_Success" ); + + } //stripItemSheet_Click() + + private: + // -------------------------------------------------------- + // uoꎞۑv + // -------------------------------------------------------- + System::Void stripItemSaveTemp_Click(System::Object^ sender, System::EventArgs^ e) + { + System::String ^filename = this->saveFileDlg( "xml format (*.xml)|*.xml", ".xml" ); + if( !filename ) + { + return; + } + this->saveTmp( filename ); + } //stripItemSaveTemp_Click() + + private: + // -------------------------------------------------------- + // uꎞۑoJv + // -------------------------------------------------------- + System::Void stripItemLoadTemp_Click(System::Object^ sender, System::EventArgs^ e) + { + System::String ^filename = this->openFileDlg( "xml format (*.xml)|*.xml" ); + if( filename == nullptr ) + { + return; + } + this->loadTmp( filename ); + } //stripItemLoadTemp_Click() + + private: + // -------------------------------------------------------- + // u~hEFAXĝ݂쐬(XML`)v + // -------------------------------------------------------- + System::Void stripItemMiddlewareXml_Click(System::Object^ sender, System::EventArgs^ e) + { + if( System::String::IsNullOrEmpty(this->tboxFile->Text) ) + { + this->errMsg( "E_MWList_Empty" ); + return; + } + + System::String ^filename = this->saveFileDlg( "xml format (*.xml)|*.xml", ".xml" ); + + if( !filename || !this->saveMiddlewareListXmlEmbeddedXsl(filename) ) + { + this->errMsg( "E_MWList_Default" ); + return; + } + this->sucMsg( "MWList_Success" ); + } //stripItemMiddlewareXml_Click() + + private: + // -------------------------------------------------------- + // u~hEFAXĝ݂쐬(HTML`)v + // -------------------------------------------------------- + System::Void stripItemMiddlewareHtml_Click(System::Object^ sender, System::EventArgs^ e) + { + if( System::String::IsNullOrEmpty(this->tboxFile->Text) ) + { + this->errMsg( "E_MWList_Empty" ); + return; + } + + System::String ^filename = this->saveFileDlg( "html format (*.html)|*.html", ".html" ); + + if( !filename || !this->saveMiddlewareListHtml(filename) ) + { + this->errMsg( "E_MWList_Default" ); + return; + } + this->sucMsg( "MWList_Success" ); + } //stripItemMiddlewareHtml_Click + + // -------------------------------------------------------- + // uG[HTMLt@Cɏo͂(ROMf[^ǂݍݎ)v + // -------------------------------------------------------- + private: + System::Void stripItemErrorListRead_Click(System::Object^ sender, System::EventArgs^ e) + { + if( System::String::IsNullOrEmpty(this->tboxFile->Text) ) + { + this->errMsg( "E_ErrList_Empty" ); + return; + } + + System::String ^filename = this->saveFileDlg( "html format (*.html)|*.html", ".html" ); + if( !filename ) + { + return; + } + try + { + this->makeErrorListHtml(filename, false); + } + catch( System::Exception ^ex ) + { + (void)ex; + this->errMsg( "E_ErrList_Default" ); + return; + } + this->sucMsg( "ErrList_Success" ); + } + + // -------------------------------------------------------- + // uG[HTMLt@Cɏo͂(݂̓͂𔽉f)v + // -------------------------------------------------------- + private: + System::Void stripItemErrorListCurrent_Click(System::Object^ sender, System::EventArgs^ e) + { + if( System::String::IsNullOrEmpty(this->tboxFile->Text) ) + { + this->errMsg( "E_ErrList_Empty" ); + return; + } + + System::String ^filename = this->saveFileDlg( "html format (*.html)|*.html", ".html" ); + if( !filename ) + { + return; + } + try + { + this->makeErrorListHtml(filename, true); // ݂̃[eBOݒ𔽉f + } + catch( System::Exception ^ex ) + { + (void)ex; + this->errMsg( "E_ErrList_Default" ); + return; + } + this->sucMsg( "ErrList_Success" ); + } + + // -------------------------------------------------------- + // uROMHTMLt@Cɏo͂v + // -------------------------------------------------------- + private: + System::Void stripItemRomInfoList_Click(System::Object^ sender, System::EventArgs^ e) + { + if( System::String::IsNullOrEmpty(this->tboxFile->Text) ) + { + this->errMsg( "E_RomInfoList_Empty" ); + return; + } + + System::String ^filename = this->saveFileDlg( "html format (*.html)|*.html", ".html" ); + if( !filename ) + { + return; + } + try + { + this->makeRomInfoListHtml(filename, false, false); + } + catch( System::Exception ^ex ) + { + (void)ex; + //System::Diagnostics::Debug::WriteLine(ex->Source + " " + ex->Message); + this->errMsg( "E_RomInfoList_Default" ); + return; + } + this->sucMsg( "RomInfoList_Success" ); + } + + // -------------------------------------------------------- + // uROMƃG[킹ĂHTMLt@Cɏo͂(ROMf[^ǂݍݎ)v + // -------------------------------------------------------- + private: + System::Void stripItemRomInfoAndErrorListRead_Click(System::Object^ sender, System::EventArgs^ e) + { + if( System::String::IsNullOrEmpty(this->tboxFile->Text) ) + { + this->errMsg( "E_RomInfoList_Empty" ); + return; + } + + System::String ^filename = this->saveFileDlg( "html format (*.html)|*.html", ".html" ); + if( !filename ) + { + return; + } + try + { + this->makeRomInfoListHtml(filename, true, false); + } + catch( System::Exception ^ex ) + { + (void)ex; + //System::Diagnostics::Debug::WriteLine(ex->Source + " " + ex->Message); + this->errMsg( "E_RomInfoList_Default" ); + return; + } + this->sucMsg( "RomInfoList_Success" ); + } + + // -------------------------------------------------------- + // uROMƃG[킹ĂHTMLt@Cɏo͂(݂̓͂𔽉f)v + // -------------------------------------------------------- + private: + System::Void stripItemRomInfoAndErrorListCurrent_Click(System::Object^ sender, System::EventArgs^ e) + { + if( System::String::IsNullOrEmpty(this->tboxFile->Text) ) + { + this->errMsg( "E_RomInfoList_Empty" ); + return; + } + + System::String ^filename = this->saveFileDlg( "html format (*.html)|*.html", ".html" ); + if( !filename ) + { + return; + } + try + { + this->makeRomInfoListHtml(filename, true, true); + } + catch( System::Exception ^ex ) + { + (void)ex; + //System::Diagnostics::Debug::WriteLine(ex->Source + " " + ex->Message); + this->errMsg( "E_RomInfoList_Default" ); + return; + } + this->sucMsg( "RomInfoList_Success" ); + } + + ///////////////////////////////////////////// + // tH[상\bh + ///////////////////////////////////////////// + + // hbOAhhbvSRLǂݍ + private: + // hbOĂ܂}EX̃{^ĂȂƂ + System::Void Form1_DragEnter(System::Object^ sender, System::Windows::Forms::DragEventArgs^ e) + { + if( e->Data->GetDataPresent( DataFormats::FileDrop ) ) + { + e->Effect = DragDropEffects::All; + } + } + // hbOꂽƃ}EX̃{^ꂽƂ + System::Void Form1_DragDrop(System::Object^ sender, System::Windows::Forms::DragEventArgs^ e) + { + array ^files = dynamic_cast< array ^>(e->Data->GetData( DataFormats::FileDrop ) ); + String ^filename = files[0]; + + if( System::IO::File::Exists(filename) == false ) + { + this->errMsg( "E_LoadRom_Exist" ); + return; + } + if( System::IO::Path::GetExtension(filename)->ToLower() == ".xml" ) + { + this->loadTmp(filename); + } + else + { + if( !this->loadRom( filename ) ) + { + return; + } + this->tboxFile->Text = filename; + this->clearOtherForms(); + } + } + + // tH[̏ԂɘAđ̃tH[L/ɂ + private: + // S2͂邱ƂIꂽƂɓ͗p̃eLXg{bNXLɂ + System::Void cboxIsInputPerson2_CheckedChanged(System::Object^ sender, System::EventArgs^ e) + { + this->gboxPerson2->Enabled = this->cboxIsInputPerson2->Checked; + if( this->cboxIsInputPerson2->Checked == true ) + { + if( (this->tboxCompany1->Text != nullptr) && !(this->tboxCompany1->Text->Equals("")) ) + { + this->tboxCompany2->Text = gcnew System::String( this->tboxCompany1->Text ); // Ђƕ͒S1Ɠɂ + } + if( (this->tboxDepart1->Text != nullptr) && !(this->tboxDepart1->Text->Equals("")) ) + { + this->tboxDepart2->Text = gcnew System::String( this->tboxDepart1->Text ); + } + } + else + { + this->tboxCompany2->Clear(); + this->tboxDepart2->Clear(); + this->tboxPerson2->Clear(); + this->tboxFurigana2->Clear(); + this->tboxTel2->Clear(); + this->tboxFax2->Clear(); + this->tboxMail2->Clear(); + this->tboxNTSC2->Clear(); + } + } + //private: + // // prɁȗvIꂽƂɓ͗p̃eLXg{bNXLɂ + // System::Void rUsageOther_CheckedChanged(System::Object^ sender, System::EventArgs^ e) + // { + // this->tboxUsageOther->Enabled = this->rUsageOther->Checked; + // if( this->rUsageOther->Checked == false ) + // { + // this->tboxUsageOther->Clear(); + // } + // } + private: + System::Void cboxRemasterVerE_CheckedChanged(System::Object^ sender, System::EventArgs^ e) + { + // ݒs‚ɂȂߕKvȂ + //this->numRemasterVer->Enabled = !(this->isEngilsh()); + //if( this->isEngilsh() == false ) + //{ + // this->numRemasterVer->Value = 0; + //} + } + private: + // obNAbvɁȗvIꂽƂɓ͗p̃eLXg{bNXLɂ + System::Void combBackup_SelectedIndexChanged(System::Object^ sender, System::EventArgs^ e) + { + if( this->combBackup->SelectedIndex == (this->combBackup->Items->Count - 1) ) + { + this->tboxBackupOther->Enabled = true; + } + else + { + this->tboxBackupOther->Enabled = false; + this->tboxBackupOther->Clear(); // OɃeLXg{bNXɏĂe + } + } + private: + //System::Void cboxDLCategory_SelectedIndexChanged(System::Object^ sender, System::EventArgs^ e) + //{ + // if( this->combDLCategory->SelectedIndex == (this->combDLCategory->Items->Count - 1) ) + // { + // this->tboxDLCategoryOther->Enabled = true; + // } + // else + // { + // this->tboxDLCategoryOther->Enabled = false; + // this->tboxDLCategoryOther->Clear(); + // } + //} + + private: + // [WύXɘAĕ\郌[eBOĉύX + System::Void combRegion_SelectedIndexChanged(System::Object^ sender, System::EventArgs^ e) + { + this->maskRatingForms(); + this->changeUnnecessaryRatingForms(false); // xR{{bNXenableɂȂ̂ōĐݒ + + // [WύXɂĕ\uprvύX + this->maskPurposeForms(); + } + private: + // [eBO\svIꂽƂɃ[eBOIs‚ɂ + System::Void cboxIsUnnecessaryRating_CheckedChanged(System::Object^ sender, System::EventArgs^ e) + { + this->changeUnnecessaryRatingForms(false); + } + private: + // [eBOSRLǂݍ񂾎_̏ɖ߂ + System::Void butSetBack_Click(System::Object^ sender, System::EventArgs^ e) + { + if( System::String::IsNullOrEmpty( this->tboxFile->Text ) ) + return; + + this->setRegionForms(); // tH[XVĂSRLNX͍̏XVȂ̂ōēxǂݏo + this->setRatingForms(); + this->loadOtherForms(); // SRLɓo^ĂȂROMdl̃tH[߂ + } + private: + // COł𔭔\łƑIꂽƂɊCOł̐iR[hetc.͉”\ɂ + System::Void cboxReleaseForeign_CheckedChanged(System::Object^ sender, System::EventArgs^ e) + { + this->tboxProductNameForeign->Enabled = this->cboxReleaseForeign->Checked; + this->tboxProductCode1Foreign->Enabled = this->cboxReleaseForeign->Checked; + this->tboxProductCode2Foreign1->Enabled = this->cboxReleaseForeign->Checked; + this->tboxProductCode2Foreign2->Enabled = this->cboxReleaseForeign->Checked; + this->tboxProductCode2Foreign3->Enabled = this->cboxReleaseForeign->Checked; + if( this->cboxReleaseForeign->Checked == false ) + { + this->tboxProductNameForeign->Clear(); + this->tboxProductCode1Foreign->Clear(); + this->tboxProductCode2Foreign1->Clear(); + this->tboxProductCode2Foreign2->Clear(); + this->tboxProductCode2Foreign3->Clear(); + } + } + // G[̍XV + private: + System::Void rErrorReading_CheckedChanged(System::Object^ sender, System::EventArgs^ e) + { + this->updateGrid(); + } + private: + System::Void rErrorCurrent_CheckedChanged(System::Object^ sender, System::EventArgs^ e) + { + this->updateGrid(); + } + // G[^uI邽тɃG[XV + // (G[^uIꂽ^C~Oł̂ݍXV邱ƂłȂ̂Ń^u؂ւ邽тɍXV) + private: + System::Void tabMain_SelectedIndexChanged(System::Object^ sender, System::EventArgs^ e) + { + if( tabMain->SelectedIndex == 6 ) + { + this->updateGrid(); + + // o̗prƂđIĂ郉WI{^\ + cli::array ^rbuts = gcnew cli::array + { + this->rPurposeCardProduction, + this->rPurposeCardTouchTryDS, + this->rPurposeCardDistribution, + this->rPurposeCardKiosk, + this->rPurposeDSiWare, + this->rPurposeOther + }; + this->tboxPurposeInError->Text = ""; + for each( System::Windows::Forms::RadioButton ^r in rbuts ) + { + if( r->Checked ) + { + this->tboxPurposeInError->Text = System::String::Copy( r->Text ); + } + } + } + } + // pr̍ڂ̃WI{^ + private: + System::Void rPurposeCardProduction_CheckedChanged(System::Object^ sender, System::EventArgs^ e) + { + this->changePurposeForms(this->rPurposeCardProduction); + } + private: + System::Void rPurposeCardTouchTryDS_CheckedChanged(System::Object^ sender, System::EventArgs^ e) + { + this->changePurposeForms(this->rPurposeCardTouchTryDS); + } + private: + System::Void rPurposeCardDistribution_CheckedChanged(System::Object^ sender, System::EventArgs^ e) + { + this->changePurposeForms(this->rPurposeCardDistribution); + } + private: + System::Void rPurposeCardKiosk_CheckedChanged(System::Object^ sender, System::EventArgs^ e) + { + this->changePurposeForms(this->rPurposeCardKiosk); + } + private: + System::Void rPurposeDSiWare_CheckedChanged(System::Object^ sender, System::EventArgs^ e) + { + this->changePurposeForms(this->rPurposeDSiWare); + } + private: + System::Void rPurposeOther_CheckedChanged(System::Object^ sender, System::EventArgs^ e) + { + this->changePurposeForms(this->rPurposeOther); + } + + +}; // enf of ref class Form1 + +} // end of namespace MasterEditorTWL + diff --git a/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/MasterEditorTWL/Form1.ja.resx b/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/MasterEditorTWL/Form1.ja.resx new file mode 100644 index 0000000..86847e2 --- /dev/null +++ b/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/MasterEditorTWL/Form1.ja.resx @@ -0,0 +1,1642 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + 607, 19 + + + ROMデータ情報 + + + 42, 19 + + + 100, 19 + + + 100, 19 + + + 26, 106 + + + 87, 12 + + + プラットフォーム + + + 100, 19 + + + 26, 162 + + + 54, 12 + + + ROM容量 + + + 26, 134 + + + 84, 12 + + + ROMタイプ設定 + + + 100, 19 + + + 75, 16 + + + E(事前版) + + + 26, 78 + + + 66, 12 + + + メーカコード + + + 26, 50 + + + 89, 12 + + + イニシャルコード + + + 100, 19 + + + 26, 23 + + + 72, 12 + + + ソフトタイトル + + + 8, 190 + + + 110, 12 + + + リマスターバージョン + + + 145, 19 + + + 6, 20 + + + 96, 12 + + + バックアップメモリ + + + なし + + + その他 + + + 113, 20 + + + 125, 19 + + + 43, 54 + + + 65, 12 + + + 全体のCRC + + + 43, 24 + + + 60, 12 + + + ヘッダCRC + + + 55, 19 + + + 55, 19 + + + 258, 12 + + + 備考欄 - その他連絡事項があればご記入ください + + + 29, 12 + + + 134, 12 + + + 76, 12 + + + 77, 12 + + + 27, 12 + + + 35, 12 + + + 36, 12 + + + 審査中 + + + 204, 20 + + + 年齢制限なし(全年齢) + + + 3歳以上 + + + 4歳以上推奨 + + + 7歳以上 + + + 8歳以上推奨 + + + 12歳以上 + + + 15歳以上 + + + 16歳以上 + + + 18歳以上 + + + 審査中 + + + 204, 20 + + + 年齢制限なし(全年齢) + + + 4歳以上 + + + 6歳以上 + + + 12歳以上 + + + 16歳以上 + + + 18歳以上 + + + 審査中 + + + 204, 20 + + + 年齢制限なし(全年齢) + + + 3歳以上 + + + 7歳以上 + + + 12歳以上 + + + 16歳以上 + + + 18歳以上 + + + 審査中 + + + 204, 20 + + + 年齢制限なし + + + 6歳以上 + + + 12歳以上 + + + 16歳以上 + + + 青少年には不適切 + + + 審査中 + + + 204, 20 + + + 年齢制限なし(全年齢) + + + EC (3歳以上) + + + E (6歳以上) + + + E10+ (10歳以上) + + + T (13歳以上) + + + M (17歳以上) + + + 審査中 + + + 204, 20 + + + A (全年齢) + + + B (12歳以上) + + + C (15歳以上) + + + D (17歳以上) + + + Z (18歳以上) + + + 審査中 + + + 204, 20 + + + 91, 24 + + + 55, 12 + + + リージョン + + + 6, 34 + + + 222, 16 + + + EULA(利用規約)への同意を必要とする + + + 日本のみ + + + 北米のみ + + + 欧州のみ + + + 豪州のみ + + + 欧州および豪州 + + + 北米および豪州 + + + 北米,欧州および豪州 + + + 中国を除く全リージョン + + + 204, 20 + + + 154, 16 + + + 担当者2を入力する(任意) + + + 担当者2 + + + 37, 12 + + + (任意) + + + 37, 12 + + + (任意) + + + 44, 12 + + + 158, 19 + + + 28, 163 + + + 27, 12 + + + 23, 214 + + + 35, 12 + + + 158, 19 + + + 268, 19 + + + 158, 19 + + + 268, 19 + + + 268, 19 + + + 268, 19 + + + 41, 12 + + + 部署名 + + + 268, 19 + + + 23, 190 + + + 39, 12 + + + 28, 136 + + + 25, 12 + + + 10, 109 + + + 57, 12 + + + (ふりがな) + + + 18, 82 + + + 40, 12 + + + ご氏名 + + + 18, 28 + + + 41, 12 + + + 貴社名 + + + 担当者1 + + + 37, 12 + + + (任意) + + + 37, 12 + + + (任意) + + + 24, 228 + + + 44, 12 + + + 32, 163 + + + 27, 12 + + + 27, 214 + + + 35, 12 + + + 147, 19 + + + 147, 19 + + + 261, 19 + + + 147, 19 + + + 261, 19 + + + 261, 19 + + + 261, 19 + + + 41, 12 + + + 部署名 + + + 261, 19 + + + 24, 190 + + + 39, 12 + + + 32, 136 + + + 25, 12 + + + 15, 109 + + + 57, 12 + + + (ふりがな) + + + 22, 82 + + + 40, 12 + + + ご氏名 + + + 22, 28 + + + 41, 12 + + + 貴社名 + + + 45, 19 + + + 18, 19 + + + 256, 19 + + + 11, 12 + + + 37, 12 + + + 103, 19 + + + 103, 19 + + + 提出方法 + + + 62, 16 + + + 56, 16 + + + 手渡し + + + 47, 16 + + + 郵送 + + + 42, 143 + + + 65, 12 + + + 書類提出日 + + + 42, 113 + + + 65, 12 + + + 発売予定日 + + + 42, 83 + + + 59, 12 + + + 製品コード + + + 54, 55 + + + 41, 12 + + + 製品名 + + + MS Pゴシック, 8.25pt + + + 245, 11 + + + * リマスターバージョンが上がると再び0からカウント + + + 38, 19 + + + 32, 174 + + + 82, 12 + + + 提出バージョン + + + 106, 12 + + + (複数ある場合のみ) + + + 46, 19 + + + 46, 19 + + + 11, 12 + + + 148, 16 + + + 海外版を発売する(予定) + + + 31, 48 + + + 41, 12 + + + 製品名 + + + 257, 19 + + + 37, 12 + + + 18, 19 + + + 22, 83 + + + 59, 12 + + + 製品コード + + + 46, 19 + + + Shared2ファイルサイズ + + + 34, 12 + + + 34, 12 + + + 34, 12 + + + 34, 12 + + + 34, 12 + + + 34, 12 + + + 90, 19 + + + 89, 19 + + + 89, 19 + + + 89, 19 + + + 89, 19 + + + 89, 19 + + + 130, 16 + + + Shared2ファイル使用 + + + 79, 12 + + + 使用ライブラリ + + + 80, 12 + + + SDKバージョン + + + TWL拡張情報 + + + 29, 12 + + + 11, 12 + + + 75, 19 + + + 102, 26 + + + 75, 12 + + + CODECモード + + + 28, 58 + + + 149, 12 + + + TWL専用領域ROMオフセット + + + 75, 19 + + + 11, 12 + + + 268, 167 + + + 168, 12 + + + TWLノーマル領域ROMオフセット + + + 75, 19 + + + 96, 19 + + + 35, 100 + + + 142, 12 + + + Privateセーブデータサイズ + + + 35, 73 + + + 137, 12 + + + Publicセーブデータサイズ + + + 96, 19 + + + 147, 16 + + + サブバナーファイル有効 + + + 133, 16 + + + ノーマルジャンプ許可 + + + 109, 16 + + + tmpジャンプ許可 + + + アクセスコントロール情報 + + + 6, 88 + + + 105, 12 + + + SDカードアクセス権 + + + 123, 19 + + + 123, 19 + + + 6, 141 + + + 96, 12 + + + 写真データベース + + + 40, 12 + + + その他 + + + 135, 16 + + + NANDフラッシュメモリ + + + 69, 16 + + + SDカード + + + 287, 395 + + + 97, 14 + + + (NANDアプリからの) + + + 124, 19 + + + 282, 410 + + + 114, 12 + + + ゲームカードアクセス + + + 40, 83 + + + 60, 12 + + + アプリ種別 + + + 71, 19 + + + 11, 12 + + + 71, 19 + + + 63, 12 + + + 37, 56 + + + 66, 12 + + + 71, 19 + + + 95, 12 + + + その他アプリ情報 + + + 252, 82 + + + 88, 12 + + + アプリのメディア + + + 96, 19 + + + 53, 12 + + + 特記事項 + + + ROM提出情報 + + + MS Pゴシック, 9pt + + + 58, 20 + + + ファイル + + + 215, 22 + + + ROMデータを開く + + + 212, 6 + + + 215, 22 + + + 提出情報を一時保存する + + + 215, 22 + + + 一時保存した提出情報を開く + + + 84, 20 + + + マスター作成 + + + 提出データ一式を作成する + + + マスターROMのみを作成する + + + ミドルウェアリストのみを作成する (XML形式) + + + ミドルウェアリストのみを作成する (HTML形式) + + + 80, 20 + + + エクスポート + + + 536, 22 + + + ROM情報をHTMLファイルに出力する + + + 533, 6 + + + 536, 22 + + + エラー情報をHTMLファイルに出力する (ROMデータ読み込み時の情報) + + + 536, 22 + + + エラー情報をHTMLファイルに出力する (現在の入力を反映した情報) + + + 533, 6 + + + 536, 22 + + + ROM情報とエラー情報を合わせてHTMLファイルに出力する (ROMデータ読み込み時の情報) + + + 536, 22 + + + ROM情報とエラー情報を合わせてHTMLファイルに出力する (現在の入力を反映した情報) + + + 65, 20 + + + 119, 22 + + + 119, 22 + + + 4, 21 + + + 766, 436 + + + ROM基本情報 + + + 730, 19 + + + このタブの情報は編集不可です。データに誤りがある場合にはROMデータ作成時の設定を見直してください。 + + + 4, 21 + + + 766, 436 + + + TWL拡張情報 + + + DSiメニュー上での起動制限 + + + 6, 70 + + + 189, 12 + + + DSiメニュー上での通信アイコン表示 + + + 192, 19 + + + 730, 19 + + + このタブの情報は編集不可です。データに誤りがある場合にはROMデータ作成時の設定を見直してください。 + + + TWL拡張諸フラグ + + + 4, 21 + + + 766, 436 + + + DSiウェア情報 + + + このタブの情報はDSiウェア(NANDアプリ)による本体NANDメモリ領域の使用量を確認する場合に必要です。<newline>アプリがゲームカード向けの場合にはNANDメモリ使用量の確認は必要ありません。 + + + DSiウェアによる本体NANDメモリの使用量 + + + Private セーブデータ領域は原則使用禁止です。Private セーブデータを使用する場合には用途欄に理由、用途を明記してください。 + + + 432, 82 + + + 144, 12 + + + Privateセーブデータの用途 + + + 250, 19 + + + 94, 19 + + + 96, 19 + + + 17, 12 + + + 17, 12 + + + 17, 12 + + + 17, 12 + + + 17, 12 + + + 94, 19 + + + 94, 19 + + + 94, 19 + + + 94, 19 + + + 94, 19 + + + 94, 19 + + + 96, 19 + + + 96, 19 + + + 186, 23 + + + 90, 12 + + + ROM内登録情報 + + + 318, 23 + + + 102, 12 + + + NANDメモリ使用量 + + + 43, 46 + + + 129, 12 + + + ROMの実ファイルサイズ + + + 126, 225 + + + 190, 12 + + + (DSiウェアによるNANDメモリ使用量) + + + 181, 211 + + + 99, 12 + + + 上記サイズの合計 + + + 34, 127 + + + 138, 12 + + + サブバナーファイルサイズ + + + 49, 154 + + + 115, 12 + + + その他ファイルサイズ + + + 4, 21 + + + 766, 436 + + + リージョンとレーティング(編集可) + + + 中国にはレーティング審査団体が存在しませんが、将来的に団体が設立された場合においてもレーティング表示が不要なタイトルであるときに限り、「レーティング表示不要 (ツール類のみ選択可)」を選択してください。 + + + その他ROM仕様 + + + 210, 16 + + + UGC(User Generated Contents)対応 + + + 96, 16 + + + 写真交換対応 + + + 読み込み時の設定に戻す + + + このタブの各項目への入力は提出確認書およびマスターROMの作成のために必要です。<newline>これらの情報はマスターROMの作成時にROM内登録データとして登録されます(「その他ROM仕様」を除く)。 + + + リージョンとレーティング情報 + + + 29, 12 + + + 全体利用可 + + + 12歳利用可 + + + 15歳利用可 + + + 青少年利用不可 + + + 審査中 + + + 204, 20 + + + 252, 16 + + + レーティング表示不要 (ツール類のみ選択可) + + + 4, 21 + + + 766, 436 + + + 提出情報(要入力) + + + 用途 + + + DSiWare (NANDアプリ) + + + 71, 16 + + + 一般販売 + + + 209, 19 + + + 58, 16 + + + その他 + + + TWLカードアプリ + + + 71, 16 + + + 一般販売 + + + 128, 16 + + + Touch!Try!DS体験版 + + + 105, 16 + + + データ配信ROM + + + 127, 16 + + + 店頭試遊台(単独型) + + + (100文字以内) + + + 730, 19 + + + このタブの情報は提出確認書の作成に必要です。入力してください。 + + + 海外版 + + + (100文字以内) + + + 106, 12 + + + (複数ある場合のみ) + + + 4, 21 + + + 766, 436 + + + 会社情報(要入力) + + + 730, 19 + + + このタブの情報は提出確認書の作成に必要です。入力してください。 + + + 4, 21 + + + 766, 436 + + + エラー情報 + + + 512, 91 + + + 66, 12 + + + ROMの用途 + + + 174, 19 + + + このタブには読み込んだROMデータの問題点と本プログラムでの入力ミスが列挙されます。<newline>赤文字の項目は、本プログラムで修正不可です。ROMデータ作成時の設定をご確認ください。<newline>青文字の項目は、ROMデータの問題点のうち、本プログラムで修正できるものです。<newline>黒文字の項目は、提出情報と会社情報の入力ミスおよび入力漏れです。 + + + いつの情報を表示するか + + + 117, 16 + + + 現在の入力を反映 + + + 141, 16 + + + ROMデータ読み込み時 + + + 370, 12 + + + 警告(修正は必須ではありませんが情報に誤りがないかご確認ください。) + + + 152, 12 + + + エラー(必ず修正してください) + + + 項目名 + + + 開始 + + + 終了 + + + 要因 + + + 項目名 + + + 開始 + + + 終了 + + + 要因 + + + 20, 45 + + + 104, 12 + + + ROMデータファイル + + + 37, 12 + + + MS Pゴシック, 9pt + + \ No newline at end of file diff --git a/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/MasterEditorTWL/Form1.resX b/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/MasterEditorTWL/Form1.resX new file mode 100644 index 0000000..cec8cdc --- /dev/null +++ b/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/MasterEditorTWL/Form1.resX @@ -0,0 +1,7431 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + gboxSrl + + + System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Windows.Forms.TextBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + True + + + h + + + tabSubmitInfo + + + + 339, 203 + + + 38, 45 + + + rPurposeOther + + + System.Windows.Forms.TextBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + labAppType + + + 17 + + + 68, 15 + + + 140, 19 + + + 22 + + + 2 + + + 10 + + + 1 + + + System.Windows.Forms.MenuStrip, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 46, 21 + + + 45 + + + 4, 24 + + + labShared2Size1 + + + gboxTWLExInfo + + + 209, 21 + + + 10 + + + System.Windows.Forms.TextBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + gboxNandSize + + + 1 + + + 75, 20 + + + Game Card for Data Distribution + + + 178, 83 + + + labProductCode2Foreign + + + All Except China + + + 3 + + + United States and Australia + + + Europe and Australia + + + Australia Only + + + Europe Only + + + 24, 115 + + + labShared2Size0 + + + ROM Submission Purpose + + + 34 + + + 33 + + + gboxPurposeCard + + + Display Connection Icon On DSi Menu + + + 33 + + + 94, 21 + + + 139, 15 + + + 18 + + + 171, 105 + + + 8 + + + 248, 19 + + + 6, 85 + + + gboxParental + + + 22 + + + False + + + Arial, 9pt + + + gboxAccess + + + (100 characters or less) + + + 6, 48 + + + 31, 24 + + + 223, 108 + + + True + + + labAccessOther + + + FAX + + + TWL - + + + tboxCaption + + + 78, 133 + + + tboxTmdSize + + + stripMaster + + + gboxNandSize + + + 0 + + + labShared2Size2 + + + System.Windows.Forms.ComboBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 29 + + + 7 + + + 129, 15 + + + labRomType + + + Submission Info *** + + + 357, 261 + + + labShared2Size4 + + + tabSubmitInfo + + + 15 + + + 96, 21 + + + + 3, 3, 3, 3 + + + Contact + + + 103, 21 + + + 293, 46 + + + 41 + + + 228, 109 + + + Export both ROM info and error info to HTML file (Info when ROM data was read) + + + 21, 15 + + + Rating Pending + + + gboxForeign + + + 10 + + + 8 + + + Other + + + You must complete all items on this tab to create a submission checklist and Master ROM.<newline>This information is used as ROM registration data when the Master ROM is created (excluding "Other ROM Spec"). + + + System.Windows.Forms.TextBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Permit Tmp Jump Landing + + + 417, 177 + + + aged 6 or older + + + 10, 83 + + + 147, 21 + + + 10 + + + gboxTitleID + + + labRomCRC + + + System.Windows.Forms.TabPage, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 4 + + + 155, 203 + + + tabTWLInfo + + + 7 + + + 75, 21 + + + 41 + + + True + + + 25 + + + 17 + + + 24, 11 + + + 96, 21 + + + tabRomInfo + + + 158, 21 + + + gboxExFlags + + + 9 + + + 114, 80 + + + 7 + + + gboxSrl + + + 11 + + + 10 + + + Header CRC + + + System.Windows.Forms.DataGridViewTextBoxColumn, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 12 + + + System.Windows.Forms.TextBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 9 + + + 20 + + + gboxTWLExInfo + + + 8 + + + gboxTitleID + + + System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + TWL Extended Flags + + + Right + + + 124, 107 + + + System.Windows.Forms.DataGridViewTextBoxColumn, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 5 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 14 + + + System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 1 + + + 6 + + + combRegion + + + 118, 83 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 43 + + + 0 + + + gboxPerson2 + + + 1 + + + True + + + System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 1 + + + 346, 79 + + + 100 + + + 400, 398 + + + True + + + tabTWLInfo + + + System.Windows.Forms.TextBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 96, 21 + + + 155, 34 + + + 15 + + + 8 + + + 100 + + + 7, 85 + + + Purpose + + + ages 15 or older + + + tabSubmitInfo + + + 2 + + + 550, 54 + + + True + + + h + + + 12 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tabTWLInfo + + + 1 + + + gboxTitleID + + + System.Windows.Forms.TextBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + labGameCode + + + NAND Flash Memory + + + SDK Ver + + + System.Windows.Forms.DataGridViewTextBoxColumn, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 40 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 285, 71 + + + System.Windows.Forms.GroupBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Contact2 + + + 1 + + + 37, 15 + + + labSrlSize + + + 0 + + + 337, 67 + + + tboxProductCode2Foreign1 + + + labPlatform + + + (Furigana) + + + 189, 80 + + + Product Code + + + False + + + gboxNandSize + + + 78, 19 + + + stripItemSaveTemp + + + 4 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + gboxSrl + + + 5 + + + 78, 79 + + + 4 + + + Right + + + labProductCode1Foreign + + + 730, 43 + + + combESRB + + + 107, 15 + + + aged 6 or older + + + tboxWarningChinaRating + + + tboxFurigana1 + + + 248, 167 + + + 624, 21 + + + labArbit3 + + + 31 + + + labSubmitVer + + + System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + gboxLaunch + + + True + + + True + + + 126, 15 + + + 1 + + + rPurposeCardProduction + + + 71, 21 + + + 215, 15 + + + tboxPrivateSize + + + 15 + + + gboxParental + + + gboxNandSize + + + 28 + + + 0 + + + True + + + gboxShared2Size + + + Private Save Data Usage + + + 6 + + + 129, 19 + + + tboxGuideCompanyInfo + + + gboxForeign + + + gboxErrorTiming + + + 27 + + + 11 + + + gboxForeign + + + stripItemErrorListCurrent + + + labPerson2 + + + 13 + + + True + + + dateRelease + + + tboxPublicSize + + + $this + + + 0 + + + TEL + + + 139, 16 + + + tabMain + + + 279, 90 + + + gboxTWLExInfo + + + System.Windows.Forms.RadioButton, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Right + + + NoControl + + + 67, 19 + + + 96, 15 + + + aged 12 or older + + + 11 + + + System.Windows.Forms.TextBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 53, 127 + + + System.Windows.Forms.ComboBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + gboxExFlags + + + gboxForeign + + + 7 + + + Timing of Error + + + tboxAppTypeOther + + + 9, 25 + + + 37, 29 + + + cboxIsUnnecessaryRating + + + 303, 22 + + + 45 + + + 506, 22 + + + Apply current input + + + NoControl + + + 4 + + + gboxShared2Size + + + File 1 + + + gboxForeign + + + 7 + + + 0 + + + 289, 101 + + + labSubBannerSize + + + System.Windows.Forms.GroupBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + stripItemMiddlewareXml + + + 12 + + + gboxParental + + + 24, 116 + + + tboxShared2Size1 + + + 89, 21 + + + tabSubmitInfo + + + System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 18, 21 + + + 4, 24 + + + 4 + + + 8 + + + 207, 121 + + + 53, 52 + + + gboxAccess + + + 204, 23 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 59, 15 + + + 290, 22 + + + Reason + + + gboxProd + + + System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + gboxParental + + + gboxParental + + + 29 + + + gboxPerson2 + + + True + + + labNandSizeFS + + + combCERO + + + 146, 21 + + + CERO + + + gboxTitleID + + + 293, 154 + + + System.Windows.Forms.TextBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + aged 3 or older + + + 59, 15 + + + tabCompanyInfo + + + labSumSize2 + + + 2 + + + NoControl + + + 200 + + + 21, 55 + + + tabMain + + + 46 + + + NoControl + + + True + + + True + + + 23 + + + stripItemJapanese + + + 59, 15 + + + 17 + + + gboxSrl + + + TWL MasterEditor + + + 8 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 12 + + + Backup Memory + + + labIsCodec + + + 9 + + + gridError + + + gboxTWLExInfo + + + System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + gboxShared2Size + + + menuStrip1 + + + 13 + + + 59, 15 + + + 37 + + + Total Size + + + gboxSrl + + + 268, 21 + + + 184, 15 + + + 5 + + + aged 7 or older + + + 0 + + + (From NAND Application) + + + gboxPerson2 + + + 435, 124 + + + 8 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + NoControl + + + 285, 83 + + + gboxNandSize + + + 24 + + + labReleaseDate + + + aged 7 or older + + + 13 + + + aged 4 or older + + + Special Instructions + + + 105, 19 + + + 3 + + + 3 + + + 0 + + + 66, 19 + + + tboxProductCode1 + + + 2 + + + Orignal Size in ROM + + + 5 + + + colWarnName + + + (100 characters or less) + + + 3 + + + System.Windows.Forms.TextBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 1 + + + 40 + + + butSetBack + + + System.Windows.Forms.CheckBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 27 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Windows.Forms.TextBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Windows.Forms.DataGridViewTextBoxColumn, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tabNandSizeInfo + + + 8 + + + 12 + + + System.Windows.Forms.TextBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 3 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 46, 21 + + + 8 + + + tabRomEditInfo + + + 117, 18 + + + TWL Normal Region ROM Offset + + + True + + + 4 + + + 124, 21 + + + Make a middleware list only(HTML format) + + + 14, 70 + + + True + + + gboxOtherSpec + + + 204, 23 + + + Contact + + + 6 + + + 13 + + + 4 + + + 15 + + + True + + + 125, 21 + + + gboxSubmitWay + + + 4Kbit EEPROM + + + 158, 21 + + + 203, 212 + + + 193, 121 + + + 13, 105 + + + Export both ROM info and error info to HTML file (Info applied current input) + + + gboxTitleID + + + 2 + + + 11 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Windows.Forms.TextBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + T (aged 13 or older) + + + 12, 28 + + + 2 + + + System.Windows.Forms.TextBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 8 + + + 71, 21 + + + 307, 22 + + + tabTWLInfo + + + gboxPurpose + + + File 5 + + + tabTWLInfo + + + tabTWLInfo + + + gboxPerson1 + + + 6 + + + combPEGI + + + System.Windows.Forms.CheckBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Windows.Forms.TextBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 224, 17 + + + 6 + + + cboxIsEULA + + + gboxTWLExInfo + + + System.Windows.Forms.TextBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 24, 11 + + + 23, 136 + + + gboxParental + + + 2 + + + ver.0.0 + + + tabTWLInfo + + + 7 + + + aged 18 or older + + + 228, 218 + + + 167, 19 + + + 251, 54 + + + Photo Database Access + + + 2 + + + True + + + 289, 190 + + + (Arbitrary) + + + tboxFax1 + + + 3 + + + gboxNandSize + + + 47, 19 + + + SDK Version + + + Company + + + 40, 15 + + + 157, 19 + + + 15, 207 + + + Arial, 8.25pt + + + 102, 148 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tboxShared2Size2 + + + 388, 35 + + + True + + + tabSubmitInfo + + + gboxForeign + + + gboxExFlags + + + 42 + + + 73, 15 + + + NoControl + + + tboxTel1 + + + 322, 124 + + + 5 + + + 155, 145 + + + 78, 52 + + + 119, 15 + + + stripItemEnglish + + + 7 + + + True + + + True + + + 28 + + + 6 + + + True + + + 4 + + + TitleID + + + 49, 15 + + + 150 + + + gboxSrl + + + True + + + 18, 21 + + + 1 + + + 766, 433 + + + gboxTWLExInfo + + + 0 + + + 0 + + + 98, 45 + + + 204, 23 + + + numSubmitVersion + + + NoControl + + + 12, 54 + + + M (aged 17 or older) + + + Begin + + + System.Windows.Forms.DataGridView, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + False + + + System.Windows.Forms.TextBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + combGRB + + + 0, 0 + + + 1 + + + 10 + + + 3 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 36 + + + tboxIsGameCardOn + + + 171, 80 + + + labCompany2 + + + System.Windows.Forms.CheckBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + gboxNandSize + + + 38 + + + gboxPerson1 + + + labProductCode2 + + + labRemasterVer + + + Information on this tab is required to confirm the amount of space a given Nintendo DSiWare title (NAND application) uses in the system memory. If the media of the application is a Game Card, there is no need to check the amount of system memory used. + + + gboxNandSize + + + 0 + + + 10 + + + System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 303, 22 + + + 14 + + + 1 + + + 0 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Right + + + 124, 21 + + + True + + + 5 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Windows.Forms.TextBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + aged 16 or older + + + System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 13 + + + TWL-Only Region ROM Offset + + + True + + + 303, 22 + + + gboxPerson2 + + + 86, 15 + + + 0 + + + 82, 15 + + + 35 + + + 285, 21 + + + System.Windows.Forms.TextBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + False + + + tboxGuideRomEditInfo + + + gboxParental + + + 14 + + + gboxNandSize + + + System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 730, 43 + + + 9, 54 + + + 13 + + + Other ROM Spec. + + + Name + + + You must complete all items on this tab to create a submission checklist. + + + All ages + + + 15, 25 + + + 1 + + + 228, 20 + + + 9 + + + colWarnBegin + + + System.Windows.Forms.TextBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Right + + + System.Windows.Forms.TextBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 6 + + + stripItemMiddlewareHtml + + + Export ROM info to HTML file + + + 126, 126 + + + 204, 23 + + + 64, 15 + + + exportToolStripMenuItem + + + 31 + + + gboxSrl + + + 1 + + + 10 + + + 23 + + + gboxParental + + + 12 + + + labNTSC1Pre + + + tabSubmitInfo + + + System.Windows.Forms.GroupBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 2 + + + System.Windows.Forms.CheckBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tboxNTSC1 + + + 2 + + + System.Windows.Forms.TextBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 20 + + + aged 16 or older + + + 261, 21 + + + 223, 133 + + + labCompany1 + + + E (aged 6 or older) + + + 322, 208 + + + Right + + + True + + + 4 + + + 4 + + + labCaption + + + 129, 22 + + + labOFLC + + + 4 + + + 473, 269 + + + 268, 21 + + + 19 + + + System.Windows.Forms.TextBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 38 + + + 60, 15 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 4 + + + Load a temporary info. saved previously + + + 53, 102 + + + 29, 15 + + + tabCompanyInfo + + + 0 + + + True + + + rSubmitPost + + + 62, 206 + + + gboxPerson1 + + + 4 + + + 4 + + + 26, 52 + + + System.Windows.Forms.TextBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Windows.Forms.CheckBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + NoControl + + + 43, 15 + + + True + + + 261, 21 + + + gboxShared2Size + + + 37, 15 + + + 100 + + + labFurigana2 + + + tboxProductCode2Foreign2 + + + NoControl + + + 1 + + + NoControl + + + 5 + + + gboxPerson1 + + + 63, 15 + + + 2 + + + 38 + + + 6 + + + gboxErrorTiming + + + 142, 18 + + + 766, 433 + + + False + + + gboxTitleID + + + 56, 20 + + + Contact1 + + + System.Windows.Forms.ComboBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 147, 21 + + + tabSubmitInfo + + + 2 + + + 100, 21 + + + labArrow4 + + + NoControl + + + gboxSrl + + + 12, 82 + + + NoControl + + + 174, 21 + + + System.Windows.Forms.TextBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + gboxNandSize + + + 4 + + + 78, 187 + + + 119, 56 + + + True + + + 14 + + + 24 + + + gboxParental + + + System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + True + + + gboxPurposeNand + + + CODEC Mode + + + labBracketR + + + tabRomInfo + + + System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 3 + + + System.Windows.Forms.DataGridView, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + gboxTitleID + + + cboxIsSubBanner + + + Right + + + System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + All ages + + + 24, 11 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + SD Card Access Right + + + gboxSrl + + + 0 + + + gboxCRC + + + tboxPlatform + + + Private Save Data Size + + + System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Windows.Forms.TabPage, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + When ROM data was read + + + labMultiForeign1 + + + 3 + + + 36, 15 + + + 37 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 16 + + + 6, 235 + + + Z (aged 18 or older) + + + Company Info *** + + + * Reset to 0 when a new master ROM is created. + + + 13 + + + tabErrorInfo + + + labArbit1 + + + labAppTypeOther + + + rErrorReading + + + System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + gboxAccess + + + gboxParental + + + 1 + + + 12 + + + System.Windows.Forms.DateTimePicker, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 2 + + + 4 + + + tboxSrlSize + + + 7 + + + 5, 66 + + + tabSubmitInfo + + + 209, 53 + + + - + + + True + + + System.Windows.Forms.RadioButton, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 728, 21 + + + 303, 22 + + + 158, 83 + + + 4 + + + 6, 70 + + + 5 + + + System.Windows.Forms.TabControl, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 84, 15 + + + True + + + 19 + + + True + + + True + + + gboxParental + + + System.Windows.Forms.TextBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 6, 95 + + + Make a set of submission data + + + 3 + + + 150 + + + 257, 21 + + + 17 + + + 15, 56 + + + aged 8 or older + + + 26 + + + labPhotoAccess + + + System.Windows.Forms.RadioButton, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 100, 21 + + + 100 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 123, 21 + + + 495, 203 + + + True + + + 3 + + + 124, 24 + + + 114, 53 + + + System.Windows.Forms.TextBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + True + + + True + + + 24, 279 + + + tboxPublicSizeFS + + + 12, 83 + + + 78, 79 + + + labFile + + + 18 + + + aged 16 or older + + + Enable Sub-Banner File + + + True + + + 7 + + + Internet + + + 78, 133 + + + 1 + + + 11 + + + 6, 71 + + + gboxNandSize + + + 7 + + + 290, 22 + + + gboxForeign + + + DSiWare (NAND Application) + + + tboxPrivateSaveDataPurpose + + + 18, 214 + + + 1 + + + 392, 88 + + + 239, 164 + + + False + + + rSubmitInternet + + + 8 + + + 366, 161 + + + 12, 155 + + + System.Windows.Forms.TextBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 183, 70 + + + 20 + + + labDepart2 + + + tabSubmitInfo + + + 366, 50 + + + h + + + tboxProductNameForeign + + + 9 + + + System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Size in NAND Memory + + + True + + + 98, 29 + + + cboxRemasterVerE + + + 37, 15 + + + 71, 21 + + + 44 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 10 + + + System.Windows.Forms.RadioButton, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 23, 136 + + + 60 + + + 1 + + + gboxNandSize + + + 16 + + + gboxPerson2 + + + 40, 15 + + + 1 + + + 300 + + + 0 + + + aged 18 or older + + + 278, 131 + + + True + + + 11, 15 + + + 204, 101 + + + 71, 15 + + + gboxForeign + + + Right + + + Error Info + + + tabMain + + + gboxForeign + + + 14, 20 + + + tboxTitleIDHi + + + gboxPurpose + + + 5 + + + 388, 91 + + + System.Windows.Forms.GroupBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 2 + + + Begin + + + labFurigana1 + + + Publisher + + + System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Rating Pending + + + tabTWLInfo + + + tboxMedia + + + 9 + + + 149, 52 + + + 766, 433 + + + Region and Rating Infomation + + + 115, 15 + + + 6 + + + gboxSrl + + + True + + + 171, 15 + + + gboxSubmitWay + + + gboxPerson2 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 157, 80 + + + labPEGI + + + True + + + False + + + 435, 208 + + + 78, 25 + + + gboxParental + + + 432, 80 + + + rPurposeCardDistribution + + + gboxShared2Size + + + MS UI Gothic, 12pt + + + False + + + 2 + + + 100 + + + tabTWLInfo + + + tabNandSizeInfo + + + 123, 21 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 12, 143 + + + True + + + 18 + + + True + + + Game Code + + + gboxPerson2 + + + 14 + + + 100 + + + 5 + + + Information on this tab cannot be edited. If data errors exist, review the ROM's build settings. + + + Right + + + 90, 21 + + + colErrorName + + + True + + + 4 + + + 20 + + + 14, 45 + + + tboxNTSC2 + + + 6, 20 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tboxKeyTableRomOffset + + + System.Windows.Forms.RadioButton, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 5 + + + Right + + + System.Windows.Forms.DataGridView, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + True + + + DSiWare Info + + + 4 + + + labMakerCode + + + System.Windows.Forms.TabPage, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Windows.Forms.Form, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + File 0 + + + gboxNandSize + + + 261, 21 + + + True + + + System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Right + + + 49, 15 + + + labMultiForeign2 + + + False + + + System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + combBackup + + + 84, 15 + + + tabErrorInfo + + + gboxProd + + + 60 + + + System.Windows.Forms.DataGridViewTextBoxColumn, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + True + + + Actual ROM File Size + + + Right + + + 100 + + + labESRB + + + Right + + + cboxIsNAND + + + True + + + GRB + + + 118, 192 + + + labHex4 + + + True + + + Japan Only + + + 53, 152 + + + 78, 52 + + + 21, 15 + + + CRC + + + System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Windows.Forms.TextBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + ROM Info. + + + 45, 21 + + + 11 + + + tboxGuideRomInfo + + + All ages + + + 6 + + + 38, 21 + + + 62, 177 + + + System.Windows.Forms.TextBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 21, 15 + + + gboxNandSize + + + 730, 21 + + + 22, 55 + + + labPrivateSaveDataPurpose + + + 0 + + + 10 + + + True + + + System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Windows.Forms.TextBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 1 + + + 160, 19 + + + System.Windows.Forms.TextBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 293, 100 + + + 21, 15 + + + gboxPerson2 + + + dataSDKVer + + + System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 39 + + + gboxPurposeCard + + + UGC(User Generated Contents) Support + + + tboxGameCode + + + 2 + + + 21, 15 + + + 8 + + + System.Windows.Forms.GroupBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + NoControl + + + tabSubmitInfo + + + TWL Extended Info + + + True + + + tabRomInfo + + + System.Windows.Forms.TextBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 580, 88 + + + ROM Production Info. + + + System.Windows.Forms.CheckBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + labCERO + + + 5 + + + 78, 187 + + + System.Windows.Forms.ToolStripSeparator, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + labSDK + + + 235, 19 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + gboxShared2Size + + + 1 + + + 125, 19 + + + 95, 83 + + + 192, 21 + + + tabTWLInfo + + + 39, 46 + + + gridLibrary + + + System.Windows.Forms.TabPage, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + gboxPurposeCard + + + 4 + + + True + + + tabRomInfo + + + System.Windows.Forms.TextBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 26 + + + System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Application Type + + + 16 + + + gboxPerson1 + + + 8 + + + True + + + True + + + 78, 160 + + + 158, 21 + + + tboxIsCodec + + + 13 + + + tabNandSizeInfo + + + labConnectIcon + + + cboxIsShared2 + + + 188, 23 + + + tboxCompany1 + + + True + + + labRegion + + + System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + gboxPerson2 + + + 2 + + + 136, 15 + + + G + + + False + + + tboxPrivateSizeFS + + + tabRomInfo + + + 60 + + + 36, 15 + + + End + + + System.Windows.Forms.DataGridView, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 129, 15 + + + 5 + + + 551, 200 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tabTWLInfo + + + 100, 21 + + + 31, 138 + + + 15 + + + labProductCode1 + + + 86, 15 + + + labMedia + + + 102, 264 + + + 15, 258 + + + tabSubmitInfo + + + gboxTitleID + + + True + + + 2 + + + => + + + 256, 15 + + + 168, 15 + + + 8 + + + aged 18 or older + + + 12 + + + 4 + + + 10 + + + labByte1 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 94, 15 + + + 3 + + + gboxTitleID + + + 96, 21 + + + E10+ (aged 10 or older) + + + 37, 15 + + + PEGI(General) + + + True + + + 41 + + + 22, 97 + + + COB + + + System.Windows.Forms.TabPage, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + labHex2 + + + 32 + + + 94, 21 + + + 30 + + + System.Windows.Forms.RadioButton, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 227, 134 + + + 3 + + + System.Windows.Forms.TextBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + File 3 + + + tboxGuideErrorInfo + + + System.Windows.Forms.ComboBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 124, 79 + + + 2 + + + 8 + + + tboxHeaderCRC + + + (Only release multi ver.) + + + 43, 15 + + + 15 + + + System.Windows.Forms.Button, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + True + + + 261, 21 + + + 2 + + + stripItemRomInfoList + + + Platform + + + System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + labHex3 + + + gboxPerson2 + + + labTitleIDLo + + + System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Rating Pending + + + 94, 21 + + + labArrow3 + + + 3 + + + Inadequent for young + + + gboxPerson1 + + + gboxNandSize + + + Arial, 9pt + + + 0 + + + System.Windows.Forms.TextBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 124, 218 + + + 404, 63 + + + System.Windows.Forms.ComboBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + True + + + NoControl + + + gboxNandSize + + + 0 + + + 0 + + + 3 + + + 1 + + + Foreign ver is scheduled to go on sale + + + 266, 57 + + + System.Windows.Forms.GroupBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 89, 21 + + + gboxSrl + + + 4 + + + 0 + + + tboxSubBannerSize + + + 6 + + + System.Windows.Forms.TextBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 503, 6 + + + 360, 261 + + + 75, 21 + + + 37 + + + gboxPerson1 + + + 53, 77 + + + True + + + 204, 23 + + + 158, 227 + + + 36 + + + 128, 19 + + + Use Shared2 Files + + + True + + + gboxPerson2 + + + 94, 21 + + + Basic ROM Info + + + Export error info to HTML file (Info when ROM data was read) + + + => + + + gboxPerson1 + + + labArrow5 + + + 13, 130 + + + Right + + + 6 + + + tabTWLInfo + + + gboxPerson2 + + + True + + + 6 + + + 1 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Windows.Forms.TabPage, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + $this + + + 100 + + + 4 + + + 435, 97 + + + labSDAccessRight + + + True + + + => + + + 18 + + + gboxShared2Size + + + gboxPerson2 + + + True + + + 18, 228 + + + 3 + + + 100, 19 + + + tabMain + + + 24, 11 + + + System.Windows.Forms.TextBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 3 + + + tabCompanyInfo + + + 774, 461 + + + 730, 131 + + + gboxPerson2 + + + Byte + + + 124, 135 + + + 201, 19 + + + gboxNandSize + + + Right + + + gboxShared2Size + + + stripItemRomInfoAndErrorListRead + + + True + + + 730, 131 + + + 11 + + + 204, 23 + + + Rating Pending + + + tabSubmitInfo + + + 3 + + + 155, 116 + + + 37 + + + 146, 15 + + + Rating Pending + + + gboxShared2Size + + + 268, 21 + + + 14 + + + System.Windows.Forms.TextBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + True + + + 12, 256 + + + True + + + True + + + System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Product + + + True + + + gboxNandSize + + + 17 + + + System.Windows.Forms.CheckBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 11 + + + gboxShared2Size + + + tboxDepart1 + + + 4 + + + 7 + + + Both + + + gboxNandSize + + + End + + + 337, 221 + + + gboxSrl + + + 183, 97 + + + 0 + + + 204, 23 + + + tboxRomSize + + + True + + + True + + + tboxDepart2 + + + 78, 160 + + + 0 + + + gboxShared2Size + + + 261, 21 + + + 2 + + + gboxParental + + + Mail + + + 33 + + + 10 + + + labError + + + True + + + System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 7 + + + 8 + + + gboxProd + + + Unnecessary Rating (Available Only Tool App) + + + 53, 20 + + + tabSubmitInfo + + + True + + + (Furigana) + + + tabMain + + + True + + + 23, 163 + + + labGRB + + + System.Windows.Forms.TextBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + labArrow1 + + + labTmdSize + + + 2 + + + 100 + + + NoControl + + + 14 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 12 + + + 6 + + + tabErrorInfo + + + 506, 22 + + + 2 + + + gboxLaunch + + + tboxProductCode1Foreign + + + System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 24, 11 + + + tabSubmitInfo + + + ages 18 or older + + + 123, 15 + + + EC (aged 3 or older) + + + System.Windows.Forms.RadioButton, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 1 + + + TWL Extended Info + + + 5 + + + 339, 50 + + + You must complete all items on this tab to create a submission checklist. + + + C (aged 15 or older) + + + 103, 15 + + + gboxSubmitWay + + + 11 + + + tabRomInfo + + + System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + English + + + System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 5 + + + Right + + + System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 1 + + + 14 + + + 85, 154 + + + 786, 541 + + + System.Windows.Forms.TextBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 447, 160 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + gboxSrl + + + rPurposeCardKiosk + + + 0 + + + labPrivateSize + + + 116, 15 + + + 5 + + + 2 + + + gboxPerson2 + + + Market and Rating *** + + + 457, 78 + + + tboxSumSize + + + tabErrorInfo + + + System.Windows.Forms.TextBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Open a ROM data file + + + Remaster Version + + + 1 + + + Input Contact2 + + + 60, 15 + + + tboxPerson1 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 13 + + + 100, 21 + + + True + + + 19 + + + 28, 15 + + + tabRomEditInfo + + + 532, 210 + + + labNTSC2Pre + + + gboxShared2Size + + + 89, 21 + + + $this + + + 322, 151 + + + 40 + + + True + + + gboxSrl + + + 6 + + + 11 + + + 5 + + + 517, 167 + + + 6 + + + gboxNandSize + + + gboxNandSize + + + System.Windows.Forms.TextBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + ages 12 or older + + + System.Windows.Forms.GroupBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 11 + + + labUSK + + + 6 + + + 60 + + + 4 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Product Name + + + System.Windows.Forms.TabPage, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + ROM Size + + + stripItemRomInfoAndErrorListCurrent + + + aged 12 or older + + + System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 730, 21 + + + tboxPhotoAccess + + + 4 + + + tabRomInfo + + + 4, 24 + + + System.Windows.Forms.GroupBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + D (aged 17 or older) + + + 14, 15 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tabRomEditInfo + + + labTel1 + + + Product Code + + + aged 16 or older + + + True + + + 155, 290 + + + gboxOtherSpec + + + 124, 51 + + + 2 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 239, 218 + + + 18, 190 + + + System.Windows.Forms.GroupBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 8 + + + gboxPerson2 + + + 32, 15 + + + 1 + + + 39 + + + 172, 19 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 39, 127 + + + 183, 124 + + + 27 + + + 5 + + + tabSubmitInfo + + + tboxPerson2 + + + 17, 88 + + + 155, 261 + + + True + + + labAssemblyVersion + + + 15, 131 + + + 191, 57 + + + (Arbitrary) + + + False + + + All ages + + + System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 7 + + + 22 + + + 227, 188 + + + 307 + + + Reason + + + System.Windows.Forms.TextBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tboxGuideNandSizeInfo + + + (Arbitrary) + + + 9 + + + 766, 433 + + + ) + + + 100 + + + 17 + + + 9, 103 + + + True + + + 17 + + + combUSK + + + 120, 170 + + + 30 + + + labNTSC1Sur + + + 7 + + + 15 + + + 0 + + + (Arbitrary) + + + 3 + + + 168, 19 + + + Handover + + + gboxPerson1 + + + System.Windows.Forms.TextBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 9 + + + None + + + 64Mbit FLASH + + + 8Mbit FLASH + + + 4Mbit FLASH + + + 2Mbit FLASH + + + 1Mbit EEPROM + + + 512Kbit EEPROM + + + 64Kbit EEPROM + + + gboxPerson1 + + + tabSubmitInfo + + + True + + + 3 + + + labDepart1 + + + gboxPerson1 + + + 0 + + + labHeaderCRC + + + NoControl + + + gboxParental + + + 18, 190 + + + 14, 15 + + + gboxSrl + + + 0 + + + 4, 24 + + + 3 + + + System.Windows.Forms.TextBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 9, 109 + + + 2 + + + 175, 15 + + + 28 + + + Permit Normal Jump Landing + + + 18 + + + tabRomEditInfo + + + 439, 164 + + + 13, 25 + + + 300, 82 + + + System.Windows.Forms.TextBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 101, 90 + + + 580, 11 + + + gboxNandSize + + + tabSubmitInfo + + + 78, 25 + + + 2 + + + System.Windows.Forms.TextBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 37 + + + tboxPurposeInError + + + System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Remarks - Enter any other related information + + + 5 + + + 42 + + + 4, 24 + + + 1 + + + 39, 15 + + + False + + + 8, 32 + + + labFax1 + + + 563, 50 + + + 3 + + + 64, 15 + + + gboxAccess + + + 15 + + + labProductNameForeign + + + cboxIsSD + + + Product Name + + + True + + + Public Save Data Size + + + labProductCodeForeign + + + True + + + 98, 15 + + + 7 + + + 421, 210 + + + Game Card Access + + + 4 + + + 6 + + + 77, 15 + + + System.Windows.Forms.TextBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 138, 81 + + + labKeyTableRomOffset + + + System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 6 + + + tabSubmitInfo + + + System.Windows.Forms.GroupBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 6, 45 + + + 322, 97 + + + 0 + + + False + + + tboxCaptionEx + + + 42 + + + 4 + + + 0 + + + 1 + + + gboxCRC + + + toolStripSeparator2 + + + 9 + + + System.Windows.Forms.GroupBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 14 + + + 102, 293 + + + tboxGuideSubmitInfo + + + 40 + + + 77, 15 + + + 10 + + + 2 + + + gboxParental + + + 3 + + + $this + + + 29 + + + 5 + + + 13, 55 + + + Require EULA Agreement + + + 290, 22 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Windows.Forms.TextBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + gboxOtherSpec + + + labProductCode + + + 9 + + + labIsGameCardOn + + + 14, 15 + + + Right + + + 86, 15 + + + labIsGameCardOn2 + + + 38 + + + 120, 110 + + + System.Windows.Forms.TextBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 36 + + + 497, 15 + + + 10 + + + Right + + + 786, 24 + + + 129, 22 + + + labMail1 + + + gboxNandSize + + + 37, 15 + + + System.Windows.Forms.NumericUpDown, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 0 + + + labFax2 + + + System.Windows.Forms.ComboBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + True + + + System.Windows.Forms.DataGridViewTextBoxColumn, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tboxBackupOther + + + 154, 15 + + + Name + + + 1 + + + 4 + + + 130, 42 + + + tboxMail2 + + + Submission Ver. + + + stripItemOpenRom + + + 120, 140 + + + Right + + + 60, 15 + + + 67, 15 + + + 3 + + + System.Windows.Forms.TextBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tabSubmitInfo + + + System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + SD Card + + + Dept. + + + 31, 82 + + + Company + + + 105, 17 + + + 406, 331 + + + 1 + + + labTitleName + + + 52, 177 + + + tabErrorInfo + + + 40 + + + 27 + + + Right + + + 7 + + + tboxShared2Size0 + + + 15 + + + 89, 21 + + + Right + + + System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 9 + + + 55, 21 + + + 78, 15 + + + gboxPerson1 + + + 186, 34 + + + True + + + labPerson1 + + + System.Windows.Forms.TextBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + toolStripSeparator1 + + + 183, 43 + + + System.Windows.Forms.ComboBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 12 + + + labNormalRomOffset + + + stripLang + + + 126, 15 + + + 15 + + + 42, 21 + + + 16, 18 + + + labPurposeInError + + + tboxRemasterVer + + + System.Windows.Forms.CheckBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + gboxProd + + + System.Windows.Forms.TextBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Windows.Forms.TextBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Windows.Forms.RadioButton, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + gboxAccess + + + tboxSDAccessRight + + + 4 + + + gboxParental + + + 10 + + + 6, 20 + + + System.Windows.Forms.TextBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + True + + + 32 + + + 4, 24 + + + combOFLC + + + 39, 20 + + + 100 + + + 279, 86 + + + 39 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Windows.Forms.TextBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + True + + + 103, 21 + + + 49, 15 + + + 94, 21 + + + NoControl + + + System.Windows.Forms.DateTimePicker, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 0 + + + Others + + + How To Submit + + + gboxAccess + + + System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + TWL Card Application + + + True + + + True + + + System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 49, 15 + + + System.Windows.Forms.DataGridViewTextBoxColumn, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 0 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Make a master ROM data file only + + + Libraries Used by the Program + + + 94, 21 + + + 39, 100 + + + 18, 20 + + + NoControl + + + 18 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 1 + + + 3 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 12, 28 + + + 234, 18 + + + 16, 172 + + + 3 + + + gboxPerson1 + + + 5 + + + 155, 174 + + + 188, 19 + + + 1 + + + 143, 15 + + + 16 + + + tboxFurigana2 + + + System.Windows.Forms.RadioButton, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 78, 106 + + + 16 + + + System.Windows.Forms.ToolStripSeparator, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tboxPurposeOther + + + 287, 6 + + + E-mail + + + 0 + + + System.Windows.Forms.GroupBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 503, 6 + + + 205, 212 + + + gboxPerson1 + + + 19 + + + tboxAccessOther + + + gboxTWLExInfo + + + NoControl + + + True + + + 0 + + + ROM Type + + + 96, 21 + + + System.Windows.Forms.CheckBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + gboxForeign + + + 124, 163 + + + tboxConnectIcon + + + System.Windows.Forms.TextBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + gboxNandSize + + + 25 + + + stripItemSepMaster1 + + + gboxPerson1 + + + 37, 15 + + + Error (Midification is required.) + + + 11 + + + 13 + + + United States, Europe and Australia + + + 31, 54 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + United States Only + + + 2 + + + True + + + gboxForeign + + + Dept. + + + aged 12 or older + + + MS UI Gothic, 12pt + + + 11 + + + 31, 166 + + + System.Windows.Forms.RadioButton, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + True + + + 44 + + + gboxPerson1 + + + 114, 26 + + + 293, 73 + + + Access Control Information + + + System.Windows.Forms.TextBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tboxFile + + + 276, 19 + + + 37 + + + labPEGI_PRT + + + 53, 15 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Windows.Forms.TextBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + cboxIsNormalJump + + + Library Name + + + labPublicSize + + + True + + + gboxNandSize + + + 21, 113 + + + A (All ages) + + + 268, 21 + + + 60, 15 + + + 21 + + + 38 + + + 18, 214 + + + TWL - + + + 0 + + + tabMain + + + 18 + + + 13 + + + False + + + 13 + + + => + + + gboxNandSize + + + tabCompanyInfo + + + True + + + True + + + gboxPerson1 + + + 22, 261 + + + True + + + 9 + + + NoControl + + + gboxPerson1 + + + True + + + 39, 15 + + + 9 + + + 8 + + + 8 + + + 24, 11 + + + gboxParental + + + System.Windows.Forms.ToolStripSeparator, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + rSubmitHand + + + 55, 21 + + + 100 + + + tabTWLInfo + + + 3 + + + 6, 194 + + + 94, 21 + + + 102, 119 + + + 2 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 4 + + + E(Pre-Check) + + + Submission Date + + + 731, 24 + + + Form1 + + + tboxGuideTWLInfo + + + 5 + + + gridWarn + + + gboxPerson2 + + + 174, 71 + + + System.Windows.Forms.ToolStripSeparator, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + => + + + 43 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 2 + + + labCapSubmitVer + + + 155, 232 + + + 10 + + + Maker Code + + + System.Windows.Forms.ComboBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 12, 82 + + + stripItemSheet + + + PEGI(General) and BBFC + + + 39 + + + True + + + tabErrorInfo + + + stripFile + + + 26, 315 + + + True + + + This tab discribes errors in the ROM data file and mistakes in editing.<newline>Red items discribe errors which can't be midified by this program. Please modify build settings.<newline>Blue items discribe errors in a part of ROM data, but these errors can be midified by this program.<newline>Black items discribe input mistakes or omission. + + + 8 + + + Arial, 8.25pt + + + System.Windows.Forms.CheckBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 21 + + + 7, 137 + + + TopRight + + + 33 + + + 18 + + + tboxShared2Size3 + + + 155, 21 + + + labShared2Size3 + + + System.Windows.Forms.GroupBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 2 + + + combPEGI_BBFC + + + 1 + + + 234, 90 + + + 0 + + + 3 + + + System.Windows.Forms.ComboBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 322, 70 + + + System.Windows.Forms.TextBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + ROM CRC + + + 240, 76 + + + tabRomInfo + + + 16 + + + cboxIsPhotoEx + + + System.Windows.Forms.TextBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Other + + + 1 + + + 0 + + + True + + + colLibName + + + 9 + + + 87, 15 + + + 0 + + + labNandSize + + + System.Windows.Forms.GroupBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 16 + + + 9 + + + 6 + + + 7 + + + tboxSubBannerSizeFS + + + gboxPerson1 + + + 7 + + + Other Application Info + + + gboxShared2Size + + + tabErrorInfo + + + 3, 3, 3, 3 + + + gboxPerson2 + + + menuStripAbove + + + All ages + + + 16 + + + tboxTmdSizeFS + + + 561, 67 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 12 + + + gboxAccess + + + 40 + + + labPEGI_BBFC + + + tboxNormalRomOffset + + + gboxAccess + + + gboxPerson2 + + + True + + + 6, 21 + + + TEL + + + gboxLaunch + + + 5 + + + 15 + + + 3 + + + gboxNandSize + + + tboxProductCode2Foreign3 + + + True + + + 360, 45 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 31, 27 + + + System.Windows.Forms.TextBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Launch Control On DSi Menu + + + 2 + + + Right + + + tboxSumSizeMB + + + rErrorCurrent + + + gboxPurpose + + + gboxErrorTiming + + + 64, 15 + + + labProductName + + + tboxProductCode2 + + + 12, 113 + + + tboxWholeCRC + + + gboxNandSize + + + gboxForeign + + + labLib + + + System.Windows.Forms.TextBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 39, 73 + + + Master + + + System.Windows.Forms.TextBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 11 + + + cboxIsUGC + + + gboxPurpose + + + 12 + + + 285, 246 + + + colLibPublisher + + + Save a temporary info. + + + 6 + + + System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + $this + + + 40, 15 + + + gboxShared2Size + + + ROM Data File + + + gboxSrl + + + True + + + System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tabErrorInfo + + + 13, 80 + + + Right + + + System.Windows.Forms.GroupBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + gboxPurpose + + + 2 + + + 256, 21 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + True + + + 96, 21 + + + Launch Date + + + B (aged 12 or older) + + + 10 + + + tboxSrlSizeFS + + + 476, 287 + + + (Total NAND memory used) + + + tabNandSizeInfo + + + tboxTel2 + + + 75, 21 + + + 136, 15 + + + System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tboxProductName + + + 6, 18 + + + System.Windows.Forms.CheckBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + colErrorEnd + + + Sub-Banner File Size + + + 7 + + + 7 + + + 26 + + + 293, 127 + + + System.Windows.Forms.TextBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 37, 15 + + + 307 + + + 2 + + + True + + + 766, 433 + + + tabNandSizeInfo + + + True + + + System.Windows.Forms.TextBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 457, 255 + + + 2 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + True + + + 161, 19 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 35 + + + 2 + + + labShared2Size5 + + + System.Windows.Forms.TextBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Make a middleware list only(XML format) + + + cboxReleaseForeign + + + 5 + + + 0 + + + NTSC + + + System.Windows.Forms.TextBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Windows.Forms.TextBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 78, 214 + + + True + + + System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 42, 15 + + + Right + + + labArrow2 + + + labSubmiteDate + + + aged 15 or older + + + True + + + System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tabTWLInfo + + + 268, 21 + + + In general, use of the private save data memory region is prohibited, but if you must use it, enter your intended use and reasons for use in the appropriate entry fields. + + + System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tabErrorInfo + + + System.Windows.Forms.DataGridViewTextBoxColumn, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + gboxParental + + + NoControl + + + 44, 15 + + + 158, 15 + + + 33, 15 + + + 209, 124 + + + tabRomEditInfo + + + 30 + + + 40, 15 + + + 12 + + + tboxMakerCode + + + System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Windows.Forms.TextBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 7 + + + 155, 87 + + + TopRight + + + 3 + + + stripItemSepFile1 + + + 8 + + + aged 3 or older + + + 4 + + + In China, any rating organizations have not been established yet. In case such organization is established, select a "Rating Not Required (Tool Only)" if rating doesn't have to be displayed. + + + False + + + tboxAppType + + + 28, 15 + + + True + + + 26 + + + gboxTitleID + + + rPurposeCardTouchTryDS + + + TitleID Low + + + 0 + + + Media + + + tabCompanyInfo + + + tboxTitleName + + + 30, 15 + + + True + + + System.Windows.Forms.TextBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 13, 180 + + + 244, 14 + + + NTSC + + + 98, 24 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 265, 393 + + + 1 + + + True + + + 114, 15 + + + NAND Area Size Used by the DSi Ware + + + True + + + True + + + System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + aged 12 or older + + + 37 + + + 200 + + + 1 + + + 14, 58 + + + 506, 22 + + + True + + + File + + + 21, 83 + + + 113, 23 + + + 24, 78 + + + 300, 6 + + + System.Windows.Forms.GroupBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 43 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 9 + + + 1 + + + 37, 57 + + + 9 + + + 0 + + + colErrorBegin + + + labMail2 + + + 223, 68 + + + System.Windows.Forms.GroupBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 766, 433 + + + combPEGI_PRT + + + True + + + 9, 156 + + + Rating Pending + + + 1 + + + System.Windows.Forms.TextBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Windows.Forms.GroupBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 1 + + + labTel2 + + + 12 + + + colWarnEnd + + + 200 + + + 8 + + + 0 + + + 171, 130 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Windows.Forms.GroupBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + labArbit4 + + + 1 + + + - + + + dateSubmit + + + 14 + + + 1 + + + 39 + + + 251, 200 + + + 30 + + + 18, 55 + + + gboxParental + + + 506, 22 + + + 0 + + + 4, 24 + + + 122, 15 + + + True + + + Warning (Although modification is not required, check this information for possible errors.) + + + True + + + 5 + + + True + + + System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Windows.Forms.TextBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tabMain + + + True + + + 55, 19 + + + tboxMail1 + + + PG + + + 82, 15 + + + 506, 22 + + + 24 + + + Size of Shared2 Files + + + 35 + + + gboxLaunch + + + 5 + + + tboxWarningPrivateSaveDataPurpose + + + True + + + tabMain + + + 6 + + + 2 + + + 10 + + + Demo for "Touch!Try!DS" + + + 4 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 43, 15 + + + NoControl + + + tboxShared2Size5 + + + 46, 21 + + + System.Windows.Forms.TextBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 33, 15 + + + gboxForeign + + + 3 + + + File 2 + + + 124, 51 + + + tabRomEditInfo + + + tabRomInfo + + + 3 + + + True + + + 11 + + + Photo Exchange Support + + + True + + + 322, 43 + + + 13, 16 + + + labProductNameLimit + + + gboxCRC + + + Market + + + System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + (Only release multi ver.) + + + 1 + + + 43, 15 + + + System.Windows.Forms.DataGridViewTextBoxColumn, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17 + + + 11 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Windows.Forms.DataGridViewTextBoxColumn, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + gboxPurposeCard + + + Other + + + System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + True + + + 6, 45 + + + 188, 55 + + + PEGI Portugal + + + tabSubmitInfo + + + 23 + + + 73, 19 + + + 20 + + + 204, 23 + + + Information on this tab cannot be edited. If data errors exist, review the ROM's build settings. + + + 127, 14 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + labProductNameLimitForeign + + + Retail Kiosk Demo + + + 2 + + + 40, 54 + + + 9, 109 + + + 6 + + + 78, 106 + + + 7 + + + 124, 191 + + + System.Windows.Forms.CheckBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + gboxPerson1 + + + MiddleRight + + + 730, 251 + + + 167, 22 + + + True + + + 13, 16 + + + gboxNandSize + + + tabSubmitInfo + + + 9, 20 + + + 15 + + + 185, 23 + + + 0 + + + 11 + + + gboxPerson2 + + + 31 + + + 1 + + + True + + + 89, 21 + + + 4 + + + 11 + + + 16 + + + colErrorCause + + + labNTSC2Sur + + + Rating Pending + + + 7 + + + Language + + + 78, 214 + + + System.Windows.Forms.GroupBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 28 + + + gboxNandSize + + + tboxRomLatency + + + True + + + stripItemMasterRom + + + Product + + + System.Windows.Forms.TextBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + M + + + False + + + 31, 110 + + + 100 + + + 273, 407 + + + 228, 164 + + + 585, 29 + + + System.Windows.Forms.TextBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + User ID + + + True + + + 30 + + + 550, 71 + + + gboxExFlags + + + System.Windows.Forms.RadioButton, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 424, 91 + + + 3 + + + 204, 23 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Export + + + 1 + + + System.Windows.Forms.TextBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + gboxCRC + + + 3 + + + NoControl + + + 766, 433 + + + stripItemErrorListRead + + + TitleID High + + + 21 + + + System.Windows.Forms.TextBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + True + + + E-mail + + + Game Title + + + labArbit2 + + + Set Back to Initial Settings + + + gboxSubmitWay + + + System.Windows.Forms.DataGridViewTextBoxColumn, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 74, 15 + + + gboxNandSize + + + True + + + labBackup + + + 5 + + + labTitleIDHi + + + 5 + + + gboxPurposeCard + + + 24, 11 + + + labSumSize + + + tabSubmitInfo + + + ( + + + 730, 21 + + + 100, 21 + + + aged 4 or older + + + 200 + + + gridSDK + + + System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Windows.Forms.TextBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + File 4 + + + Rating Pending + + + 3 + + + 12 + + + True + + + 183, 151 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tboxTitleIDLo + + + tboxCompany2 + + + 2 + + + 5 + + + Right + + + User ID + + + All ages + + + True + + + cboxIsTmpJump + + + labWarn + + + 11, 15 + + + gboxForeign + + + 67, 19 + + + labCaptionEx + + + System.Windows.Forms.ComboBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + gboxAccess + + + System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + True + + + gboxPurposeNand + + + colWarnCause + + + 29, 15 + + + USK + + + System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Japanese + + + True + + + 9 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 12 + + + True + + + gboxNandSize + + + Foreign Ver. + + + 2 + + + gboxParental + + + Right + + + 23, 163 + + + 12 + + + ESRB + + + True + + + rPurposeDSiWare + + + 3 + + + False + + + 18, 228 + + + MA15+ + + + stripItemLoadTemp + + + 147, 21 + + + 14 + + + gboxCRC + + + True + + + System.Windows.Forms.CheckBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + True + + + 8 + + + True + + + tabRomInfo + + + tboxShared2Size4 + + + tabSubmitInfo + + + 100 + + + 120, 52 + + + labRomSize + + + tboxFax2 + + + Export error info to HTML file (Info applied current input) + + + 0 + + + 0 + + + cboxIsInputPerson2 + + + labBracketL + + + 36 + + + FAX + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + 0, 0 + + + True + + + True + + + True + + + True + + \ No newline at end of file diff --git a/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/MasterEditorTWL/Form1_const.h b/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/MasterEditorTWL/Form1_const.h new file mode 100644 index 0000000..963061e --- /dev/null +++ b/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/MasterEditorTWL/Form1_const.h @@ -0,0 +1,26 @@ +#pragma once + +namespace MasterEditorTWL { + +// ------------------------------------------------------------------- +// Type : enum class +// Name : ECFormResult +// +// Description : tH[̃G[錾 +// ------------------------------------------------------------------- +enum class ECFormResult +{ + NOERROR = 0, + // ̕KvȂGȃG[ + ERROR, + // t@C + ERROR_FILE_OPEN, + ERROR_FILE_READ, + ERROR_FILE_WRITE, + ERROR_FILE_COPY, + ERROR_FILE_EXIST, + ERROR_FILE_SIGN, // t@Cɏ‚Ȃ + +}; //enum class ECFormResult + +} // end of namespace MasterEditorTWL diff --git a/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/MasterEditorTWL/FormError.cpp b/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/MasterEditorTWL/FormError.cpp new file mode 100644 index 0000000..8f167ba --- /dev/null +++ b/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/MasterEditorTWL/FormError.cpp @@ -0,0 +1,3 @@ +#include "StdAfx.h" +#include "FormError.h" + diff --git a/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/MasterEditorTWL/FormError.h b/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/MasterEditorTWL/FormError.h new file mode 100644 index 0000000..cfe668a --- /dev/null +++ b/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/MasterEditorTWL/FormError.h @@ -0,0 +1,377 @@ +#pragma once + +#include +#include "common.h" +#include "srl.h" + +using namespace System; +using namespace System::ComponentModel; +using namespace System::Collections; +using namespace System::Windows::Forms; +using namespace System::Data; +using namespace System::Drawing; + + +namespace MasterEditorTWL { + + /// + /// FormError ̊Tv + /// + /// x: ̃NX̖OύXꍇÃNXˑ邷ׂĂ .resx t@CɊ֘Atꂽ + /// }l[W \[X RpC c[ɑ΂ 'Resource File Name' vpeB + /// ύXKv܂B̕ύXsȂƁA + /// fUCiƁÃtH[Ɋ֘Atꂽ[JCYς݃\[XƂA + /// ݂ɗpłȂȂ܂B + /// + public ref class FormError : public System::Windows::Forms::Form + { + public: + FormError(void) + { + InitializeComponent(); + // + //TODO: ɃRXgN^ R[hlj܂ + // + } + + protected: + /// + /// gp̃\[XׂăN[Abv܂B + /// + ~FormError() + { + if (components) + { + delete components; + } + } + public: System::Windows::Forms::DataGridView^ gridError; + protected: + + protected: + + + + + + private: System::Windows::Forms::Label^ labError; + public: System::Windows::Forms::DataGridView^ gridWarn; + private: + + + public: + + + + private: System::Windows::Forms::DataGridViewTextBoxColumn^ colWarnName; + private: System::Windows::Forms::DataGridViewTextBoxColumn^ colWarnBegin; + private: System::Windows::Forms::DataGridViewTextBoxColumn^ colWarnEnd; + private: System::Windows::Forms::DataGridViewTextBoxColumn^ colWarnCause; + private: System::Windows::Forms::Label^ labWarn; + private: System::Windows::Forms::DataGridViewTextBoxColumn^ colErrorName; + private: System::Windows::Forms::DataGridViewTextBoxColumn^ colErrorBegin; + private: System::Windows::Forms::DataGridViewTextBoxColumn^ colErrorEnd; + private: System::Windows::Forms::DataGridViewTextBoxColumn^ colErrorCause; + private: System::Windows::Forms::Button^ butClose; + + private: + + public: + + + + + + + + protected: + + private: + /// + /// KvȃfUCiϐłB + /// + System::ComponentModel::Container ^components; + +#pragma region Windows Form Designer generated code + /// + /// fUCi T|[gɕKvȃ\bhłB̃\bh̓e + /// R[h GfB^ŕύXȂłB + /// + void InitializeComponent(void) + { + this->gridError = (gcnew System::Windows::Forms::DataGridView()); + this->colErrorName = (gcnew System::Windows::Forms::DataGridViewTextBoxColumn()); + this->colErrorBegin = (gcnew System::Windows::Forms::DataGridViewTextBoxColumn()); + this->colErrorEnd = (gcnew System::Windows::Forms::DataGridViewTextBoxColumn()); + this->colErrorCause = (gcnew System::Windows::Forms::DataGridViewTextBoxColumn()); + this->labError = (gcnew System::Windows::Forms::Label()); + this->gridWarn = (gcnew System::Windows::Forms::DataGridView()); + this->colWarnName = (gcnew System::Windows::Forms::DataGridViewTextBoxColumn()); + this->colWarnBegin = (gcnew System::Windows::Forms::DataGridViewTextBoxColumn()); + this->colWarnEnd = (gcnew System::Windows::Forms::DataGridViewTextBoxColumn()); + this->colWarnCause = (gcnew System::Windows::Forms::DataGridViewTextBoxColumn()); + this->labWarn = (gcnew System::Windows::Forms::Label()); + this->butClose = (gcnew System::Windows::Forms::Button()); + (cli::safe_cast(this->gridError))->BeginInit(); + (cli::safe_cast(this->gridWarn))->BeginInit(); + this->SuspendLayout(); + // + // gridError + // + this->gridError->BackgroundColor = System::Drawing::SystemColors::Control; + this->gridError->ColumnHeadersHeightSizeMode = System::Windows::Forms::DataGridViewColumnHeadersHeightSizeMode::AutoSize; + this->gridError->Columns->AddRange(gcnew cli::array< System::Windows::Forms::DataGridViewColumn^ >(4) {this->colErrorName, + this->colErrorBegin, this->colErrorEnd, this->colErrorCause}); + this->gridError->GridColor = System::Drawing::SystemColors::Control; + this->gridError->Location = System::Drawing::Point(28, 36); + this->gridError->Name = L"gridError"; + this->gridError->ReadOnly = true; + this->gridError->RowHeadersVisible = false; + this->gridError->RowTemplate->Height = 21; + this->gridError->Size = System::Drawing::Size(661, 172); + this->gridError->TabIndex = 0; + // + // colErrorName + // + this->colErrorName->HeaderText = L"ږ"; + this->colErrorName->Name = L"colErrorName"; + this->colErrorName->ReadOnly = true; + this->colErrorName->Width = 150; + // + // colErrorBegin + // + this->colErrorBegin->HeaderText = L"Jn"; + this->colErrorBegin->Name = L"colErrorBegin"; + this->colErrorBegin->ReadOnly = true; + this->colErrorBegin->Width = 60; + // + // colErrorEnd + // + this->colErrorEnd->HeaderText = L"I"; + this->colErrorEnd->Name = L"colErrorEnd"; + this->colErrorEnd->ReadOnly = true; + this->colErrorEnd->Width = 60; + // + // colErrorCause + // + this->colErrorCause->AutoSizeMode = System::Windows::Forms::DataGridViewAutoSizeColumnMode::Fill; + this->colErrorCause->HeaderText = L"v"; + this->colErrorCause->Name = L"colErrorCause"; + this->colErrorCause->ReadOnly = true; + // + // labError + // + this->labError->AutoSize = true; + this->labError->ForeColor = System::Drawing::SystemColors::ActiveCaption; + this->labError->Location = System::Drawing::Point(26, 21); + this->labError->Name = L"labError"; + this->labError->Size = System::Drawing::Size(137, 12); + this->labError->TabIndex = 1; + this->labError->Text = L"G[(KCĂ)"; + // + // gridWarn + // + this->gridWarn->BackgroundColor = System::Drawing::SystemColors::Control; + this->gridWarn->ColumnHeadersHeightSizeMode = System::Windows::Forms::DataGridViewColumnHeadersHeightSizeMode::AutoSize; + this->gridWarn->Columns->AddRange(gcnew cli::array< System::Windows::Forms::DataGridViewColumn^ >(4) {this->colWarnName, + this->colWarnBegin, this->colWarnEnd, this->colWarnCause}); + this->gridWarn->GridColor = System::Drawing::SystemColors::Control; + this->gridWarn->Location = System::Drawing::Point(28, 245); + this->gridWarn->Name = L"gridWarn"; + this->gridWarn->ReadOnly = true; + this->gridWarn->RowHeadersVisible = false; + this->gridWarn->RowTemplate->Height = 21; + this->gridWarn->Size = System::Drawing::Size(661, 172); + this->gridWarn->TabIndex = 2; + // + // colWarnName + // + this->colWarnName->HeaderText = L"ږ"; + this->colWarnName->Name = L"colWarnName"; + this->colWarnName->ReadOnly = true; + this->colWarnName->Width = 150; + // + // colWarnBegin + // + this->colWarnBegin->HeaderText = L"Jn"; + this->colWarnBegin->Name = L"colWarnBegin"; + this->colWarnBegin->ReadOnly = true; + this->colWarnBegin->Width = 60; + // + // colWarnEnd + // + this->colWarnEnd->HeaderText = L"I"; + this->colWarnEnd->Name = L"colWarnEnd"; + this->colWarnEnd->ReadOnly = true; + this->colWarnEnd->Width = 60; + // + // colWarnCause + // + this->colWarnCause->AutoSizeMode = System::Windows::Forms::DataGridViewAutoSizeColumnMode::Fill; + this->colWarnCause->HeaderText = L"v"; + this->colWarnCause->Name = L"colWarnCause"; + this->colWarnCause->ReadOnly = true; + // + // labWarn + // + this->labWarn->AutoSize = true; + this->labWarn->ForeColor = System::Drawing::SystemColors::ActiveCaption; + this->labWarn->Location = System::Drawing::Point(26, 230); + this->labWarn->Name = L"labWarn"; + this->labWarn->Size = System::Drawing::Size(331, 12); + this->labWarn->TabIndex = 3; + this->labWarn->Text = L"x(C͕K{ł͂܂񂪏Ɍ肪ȂmF)"; + // + // butClose + // + this->butClose->Location = System::Drawing::Point(557, 429); + this->butClose->Name = L"butClose"; + this->butClose->Size = System::Drawing::Size(132, 23); + this->butClose->TabIndex = 4; + this->butClose->Text = L"‚"; + this->butClose->UseVisualStyleBackColor = true; + this->butClose->Click += gcnew System::EventHandler(this, &FormError::butClose_Click); + // + // FormError + // + this->AutoScaleDimensions = System::Drawing::SizeF(6, 12); + this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font; + this->ClientSize = System::Drawing::Size(722, 464); + this->Controls->Add(this->butClose); + this->Controls->Add(this->labWarn); + this->Controls->Add(this->gridWarn); + this->Controls->Add(this->labError); + this->Controls->Add(this->gridError); + this->Name = L"FormError"; + this->Text = L"Error Information"; + (cli::safe_cast(this->gridError))->EndInit(); + (cli::safe_cast(this->gridWarn))->EndInit(); + this->ResumeLayout(false); + this->PerformLayout(); + + } +#pragma endregion + + // -------------------------------------------------------- + // G[̓o^ + // -------------------------------------------------------- + public: + void setGridError( System::Collections::Generic::List ^list, System::Boolean isJapanese ) + { + this->gridError->Rows->Clear(); + if( list != nullptr ) + { + for each( RCMrcError ^err in list ) + { + this->gridError->Rows->Add( err->getAll( isJapanese ) ); + } + } + } + + void setGridWarn( System::Collections::Generic::List ^list, System::Boolean isJapanese ) + { + this->gridWarn->Rows->Clear(); + if( list != nullptr ) + { + for each( RCMrcError ^err in list ) + { + this->gridWarn->Rows->Add( err->getAll( isJapanese ) ); + } + } + } + + // -------------------------------------------------------- + // G[̏dˍ킹 + // -------------------------------------------------------- + public: + void overloadGridError( + System::Collections::Generic::List ^listLo, + System::Collections::Generic::List ^listHi, System::Boolean isJapanese ) + { + // listLȍC”\ȏlistHiŏ㏑(listHi͏C”\ȏ݂̂ł邱ƂO) + this->gridError->Rows->Clear(); + if( listLo != nullptr ) + { + for each( RCMrcError ^err in listLo ) + { + if( !err->IsEnableModify ) // C”\ȏ͕\Ȃ + this->gridError->Rows->Add( err->getAll( isJapanese ) ); + } + } + if( listHi != nullptr ) + { + for each( RCMrcError ^err in listHi ) + { + this->gridError->Rows->Add( err->getAll( isJapanese ) ); + } + } + } + void overloadGridWarn( + System::Collections::Generic::List ^listLo, + System::Collections::Generic::List ^listHi, System::Boolean isJapanese ) + { + // listLȍC”\ȏlistHiŏ㏑(listHi͏C”\ȏ݂̂ł邱ƂO) + this->gridWarn->Rows->Clear(); + if( listLo != nullptr ) + { + for each( RCMrcError ^err in listLo ) + { + if( !err->IsEnableModify ) // C”\ȏ͕\Ȃ + this->gridWarn->Rows->Add( err->getAll( isJapanese ) ); + } + } + if( listHi != nullptr ) + { + for each( RCMrcError ^err in listHi ) + { + this->gridWarn->Rows->Add( err->getAll( isJapanese ) ); + } + } + } + + // -------------------------------------------------------- + // Ή + // -------------------------------------------------------- + public: + void changeJapanese(void) + { + this->labError->Text = gcnew System::String( "G[(KCĂB)" ); + this->colErrorName->HeaderText = gcnew System::String( "ږ" ); + this->colErrorBegin->HeaderText = gcnew System::String( "Jn" ); + this->colErrorEnd->HeaderText = gcnew System::String( "I" ); + this->colErrorCause->HeaderText = gcnew System::String( "v" ); + + this->labWarn->Text = gcnew System::String( "x(C͕K{ł͂܂񂪏Ɍ肪ȂmFB)" ); + this->colWarnName->HeaderText = gcnew System::String( "ږ" ); + this->colWarnBegin->HeaderText = gcnew System::String( "Jn" ); + this->colWarnEnd->HeaderText = gcnew System::String( "I" ); + this->colWarnCause->HeaderText = gcnew System::String( "v" ); + + this->butClose->Text = gcnew System::String( "‚" ); + } + + public: + void changeEnglish(void) + { + this->labError->Text = gcnew System::String( "Error Information(Modification is necessary.)" ); + this->colErrorName->HeaderText = gcnew System::String( "Name" ); + this->colErrorBegin->HeaderText = gcnew System::String( "Begin" ); + this->colErrorEnd->HeaderText = gcnew System::String( "End" ); + this->colErrorCause->HeaderText = gcnew System::String( "Reason" ); + + this->labWarn->Text = gcnew System::String( "Warning(Modification is not necessary. Please check validity of these information.)" ); + this->colWarnName->HeaderText = gcnew System::String( "Name" ); + this->colWarnBegin->HeaderText = gcnew System::String( "Begin" ); + this->colWarnEnd->HeaderText = gcnew System::String( "End" ); + this->colWarnCause->HeaderText = gcnew System::String( "Reason" ); + + this->butClose->Text = gcnew System::String( "Close window" ); + } + + private: + System::Void butClose_Click(System::Object^ sender, System::EventArgs^ e) + { + this->Close(); + } +}; +} diff --git a/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/MasterEditorTWL/FormError.resx b/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/MasterEditorTWL/FormError.resx new file mode 100644 index 0000000..6e04fc9 --- /dev/null +++ b/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/MasterEditorTWL/FormError.resx @@ -0,0 +1,144 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + \ No newline at end of file diff --git a/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/MasterEditorTWL/Form_constructor.cpp b/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/MasterEditorTWL/Form_constructor.cpp new file mode 100644 index 0000000..47a771f --- /dev/null +++ b/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/MasterEditorTWL/Form_constructor.cpp @@ -0,0 +1,180 @@ +// ---------------------------------------------- +// / I +// ---------------------------------------------- + +#include "stdafx.h" +#include +#include "common.h" +#include "srl.h" +#include "deliverable.h" +#include "crc_whole.h" +#include "utility.h" +#include "lang.h" +#include "FormError.h" +#include "Form1.h" + +using namespace System; +using namespace System::ComponentModel; +using namespace System::Collections; +using namespace System::Windows::Forms; +using namespace System::Data; +using namespace System::Drawing; +using namespace MasterEditorTWL; + + +// ---------------------------------------------- +// RXgN^Ă΂鏉 +// ---------------------------------------------- +void Form1::construct(void) +{ + // ؂ւňꎞIɃJ`ύX̂ŃftHg̃J`擾Ė߂悤ɂĂ + // 擾ĂȂƃG[bZ[WoȂ̂ňԍŏɎ擾Ă + this->hDefaultCultureName = System::Threading::Thread::CurrentThread->CurrentUICulture->Name; + + // tB[h + this->hSrl = gcnew RCSrl( this->getMrcMessageFileJ(), this->getMrcMessageFileE() ); + this->hDeliv = gcnew RCDeliverable; + this->IsLoadTad = false; + this->hErrorList = gcnew System::Collections::Generic::List(); + this->hErrorList->Clear(); + this->hWarnList = gcnew System::Collections::Generic::List(); + this->hWarnList->Clear(); + this->IsCheckedUGC = false; + this->IsCheckedPhotoEx = false; + this->IsSpreadSheet = true; + this->IsReadOnly = false; + this->SizeGboxExFlags = this->gboxExFlags->Size; + this->hMsg = gcnew RCMessageBank( this->getGuiMessageFileJ(), this->getGuiMessageFileE() ); + this->hMiddlewareNameList = gcnew RCMiddlewareNameList( this->getMiddlewareNameListFile() ); + + // o[W\ + //this->labAssemblyVersion->Text = System::Windows::Forms::Application::ProductVersion; + System::Reflection::Assembly ^ass = System::Reflection::Assembly::GetEntryAssembly(); + this->labAssemblyVersion->Text = "ver." + this->getVersion(); + + // TADǂݍ݂̍ۂɍ쐬ꎞt@CƓt@Cꍇɂ͍폜Ă悢mF + //System::Diagnostics::Debug::WriteLine( this->getSplitTadTmpFile() ); + if( System::IO::File::Exists( this->getSplitTadTmpFile() ) ) + { + this->sucMsg( "E_Start_TmpExist" ); + System::IO::File::Delete( this->getSplitTadTmpFile() ); + } + + // ttH[̏ݒ݂̎ɂ + this->dateRelease->Value = System::DateTime::Now; + this->dateSubmit->Value = System::DateTime::Now; + + // VXeł̂Ƃɂ̓[WɑS[W̍ڂlj +#if defined(METWL_VER_APPTYPE_SYSTEM) || defined(METWL_VER_APPTYPE_SECURE) || defined(METWL_VER_APPTYPE_LAUNCHER) + this->combRegion->Items->Add( gcnew System::String( L"S[W" ) ); +#endif + + // Avʂ‚ + System::String ^appstr = nullptr; +#ifdef METWL_VER_APPTYPE_LAUNCHER + appstr += "Launcher/"; +#endif +#ifdef METWL_VER_APPTYPE_SECURE + appstr += "Secure/"; +#endif +#ifdef METWL_VER_APPTYPE_SYSTEM + appstr += "System/"; +#endif + if( appstr != nullptr) + { + this->Text += " [ Supported App: " + appstr + "User ]"; + } + + // s\̉s} + this->tboxGuideRomEditInfo->Text = this->tboxGuideRomEditInfo->Text->Replace( "", "\r\n" ); + this->tboxGuideNandSizeInfo->Text = this->tboxGuideNandSizeInfo->Text->Replace( "", "\r\n" ); + this->tboxGuideErrorInfo->Text = this->tboxGuideErrorInfo->Text->Replace( "", "\r\n" ); + + // VXěo[Wɂ킹Č؂ւ + if( this->hDefaultCultureName->StartsWith( "ja" ) ) + { + this->stripItemJapanese->Checked = true; + this->stripItemEnglish->Checked = false; + this->changeFormInput("ja"); + + // pr"Internet"Is‚ɂ + this->rSubmitInternet->Enabled = false; + this->rSubmitInternet->Visible = false; + } + else + { + this->stripItemJapanese->Checked = false; + //this->stripItemJapanese->Enabled = false; // {IłȂ + this->stripItemEnglish->Checked = true; + this->changeEnglish(); + } + + // J\ɂ + this->changeVisibleForms( false ); + + // ݒt@C̓ǂݍ + this->loadInit(); + this->loadAppendInit(); // ljݒt@C + + // + this->handleArgs(); + //System::Diagnostics::Debug::WriteLine( "constructed" ); + + // Џ̎ǂݏo + this->loadCompany( this->getCompanyInfoFile() ); +} + + +// ---------------------------------------------- +// fXgN^Ă΂I +// ---------------------------------------------- +void Form1::destruct(void) +{ + // Џ̎ۑ + this->saveCompany( this->getCompanyInfoFile() ); + + // TADǂݏo̍ۂɍ쐬ꎞSRLt@C폜(oɏIƂɋN肤) + System::String ^srlfile = this->getSplitTadTmpFile(); + if( System::IO::File::Exists( srlfile ) ) + { + System::IO::File::Delete( srlfile ); // łɑ݂ꍇ͍폜 + } +} + + +// ---------------------------------------------- +// R}hC +// ---------------------------------------------- +void Form1::handleArgs(void) +{ + cli::array ^args = System::Environment::GetCommandLineArgs(); + if( args->Length < 2 ) + { + return; + } + + // srlw肳ĂƂ͓ǂݍ + System::String ^romfile = args[1]; + if( !this->loadRom( romfile ) ) + { + return; + } + System::String ^rompath; + if( System::IO::Path::IsPathRooted( romfile ) ) // ΃pX̂Ƃ͂̂܂ܕ\ + { + rompath = romfile; + } + else + { + // \̂߂ɐ΃pXɕϊ + System::String ^currdir = System::Environment::CurrentDirectory; + if( !currdir->EndsWith( "\\" ) ) + { + currdir = currdir + "\\"; + } + rompath = romfile->Replace( '/', '\\' ); + rompath = currdir + rompath; + } + this->tboxFile->Text = rompath; + this->clearOtherForms(); +} diff --git a/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/MasterEditorTWL/Form_deliv.cpp b/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/MasterEditorTWL/Form_deliv.cpp new file mode 100644 index 0000000..72f547d --- /dev/null +++ b/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/MasterEditorTWL/Form_deliv.cpp @@ -0,0 +1,404 @@ +// ---------------------------------------------- +// }X^ޏ(SRLeȂ)tH[擾 +// ---------------------------------------------- + +#include "stdafx.h" +#include +#include "common.h" +#include "srl.h" +#include "deliverable.h" +#include "crc_whole.h" +#include "utility.h" +#include "lang.h" +#include "FormError.h" +#include "Form1.h" + +using namespace System; +using namespace System::ComponentModel; +using namespace System::Collections; +using namespace System::Windows::Forms; +using namespace System::Data; +using namespace System::Drawing; +using namespace MasterEditorTWL; + + +// ---------------------------------------------- +// [sheet <= Form] +// omFɃtH[𔽉f +// ---------------------------------------------- +void Form1::setDeliverableProperties(void) +{ + // vÕo[W + this->hDeliv->hMasterEditorVersion = this->getVersion(); + + // o + this->hDeliv->hProductName = this->tboxProductName->Text; + this->hDeliv->hProductCode1 = this->tboxProductCode1->Text; + this->hDeliv->hProductCode2 = this->tboxProductCode2->Text; + this->hDeliv->IsReleaseForeign = this->cboxReleaseForeign->Checked; + if( this->cboxReleaseForeign->Checked == true ) + { + this->hDeliv->hProductNameForeign = this->tboxProductNameForeign->Text; + this->hDeliv->hProductCode1Foreign = this->tboxProductCode1Foreign->Text; + this->hDeliv->hProductCode2Foreign = gcnew System::String(""); + this->hDeliv->hProductCode2Foreign = this->tboxProductCode2Foreign1->Text; + if( !System::String::IsNullOrEmpty( this->tboxProductCode2Foreign2->Text ) ) + { + this->hDeliv->hProductCode2Foreign += ("/" + this->tboxProductCode2Foreign2->Text); + } + if( !System::String::IsNullOrEmpty( this->tboxProductCode2Foreign3->Text ) ) + { + this->hDeliv->hProductCode2Foreign += ("/" + this->tboxProductCode2Foreign3->Text); + } + } + else + { + this->hDeliv->hProductNameForeign = nullptr; + this->hDeliv->hProductCode1Foreign = nullptr; + this->hDeliv->hProductCode2Foreign = nullptr; + } + this->hDeliv->ReleaseYear = this->dateRelease->Value.Year; + this->hDeliv->ReleaseMonth = this->dateRelease->Value.Month; + this->hDeliv->ReleaseDay = this->dateRelease->Value.Day; + this->hDeliv->SubmitYear = this->dateSubmit->Value.Year; + this->hDeliv->SubmitMonth = this->dateSubmit->Value.Month; + this->hDeliv->SubmitDay = this->dateSubmit->Value.Day; + this->hDeliv->SubmitVersion = System::Decimal::ToInt32( this->numSubmitVersion->Value ); + // SDK + this->hDeliv->hSDK = nullptr; + if( this->hSrl->hSDKList ) + { + for each( RCSDKVersion ^sdk in this->hSrl->hSDKList ) // ނɂ ARM9 static ̃o[WL + { + if( sdk->IsStatic ) + this->hDeliv->hSDK = sdk->Version; + } + } + if( this->hDeliv->hSDK == nullptr ) + { + this->hDeliv->hSDK = gcnew System::String( "" ); + } + // o@ + if( this->rSubmitInternet->Checked == true ) + { + this->hDeliv->hSubmitWay = this->rSubmitInternet->Text; + } + else if( this->rSubmitPost->Checked == true ) + { + this->hDeliv->hSubmitWay = this->rSubmitPost->Text; + } + else + { + this->hDeliv->hSubmitWay = this->rSubmitHand->Text; + } + + // pr + cli::array ^rbuts = gcnew cli::array + { + this->rPurposeCardProduction, + this->rPurposeCardTouchTryDS, + this->rPurposeCardDistribution, + this->rPurposeCardKiosk, + this->rPurposeDSiWare, + this->rPurposeOther, + }; + for each( System::Windows::Forms::RadioButton ^r in rbuts ) + { + if( r->Checked ) + { + this->hDeliv->hUsage = r->Text; + } + } + if( this->rPurposeOther->Checked ) + { + this->hDeliv->hUsageDetail = this->tboxPurposeOther->Text; + } + else + { + this->hDeliv->hUsageDetail = ""; + } + + // Џ + this->hDeliv->hCompany1 = this->tboxCompany1->Text + " " + this->tboxDepart1->Text; + this->hDeliv->hPerson1 = this->tboxPerson1->Text; + if( this->isJapanese() == true ) + { + this->hDeliv->hFurigana1 = this->tboxFurigana1->Text; + } + else + { + this->hDeliv->hFurigana1 = nullptr; + } + this->hDeliv->hTel1 = this->tboxTel1->Text; + this->hDeliv->hFax1 = this->tboxFax1->Text; + this->hDeliv->hMail1 = this->tboxMail1->Text; + if( this->isJapanese() == true ) + { + this->hDeliv->hNTSC1 = this->tboxNTSC1->Text; + } + else + { + this->hDeliv->hNTSC1 = nullptr; + } + if( this->cboxIsInputPerson2->Checked == true ) + { + this->hDeliv->hCompany2 = this->tboxCompany2->Text + " " + this->tboxDepart2->Text; + this->hDeliv->hPerson2 = this->tboxPerson2->Text; + if( this->isJapanese() == true ) + { + this->hDeliv->hFurigana2 = this->tboxFurigana2->Text; + } + else + { + this->hDeliv->hFurigana2 = nullptr; + } + this->hDeliv->hTel2 = this->tboxTel2->Text; + this->hDeliv->hFax2 = this->tboxFax2->Text; + this->hDeliv->hMail2 = this->tboxMail2->Text; + if( this->isJapanese() == true ) + { + this->hDeliv->hNTSC2 = this->tboxNTSC2->Text; + } + else + { + this->hDeliv->hNTSC2 = nullptr; + } + } + else + { + this->hDeliv->hCompany2 = nullptr; + this->hDeliv->hPerson2 = nullptr; + this->hDeliv->hFurigana2 = nullptr; + this->hDeliv->hTel2 = nullptr; + this->hDeliv->hFax2 = nullptr; + this->hDeliv->hMail2 = nullptr; + this->hDeliv->hNTSC2 = nullptr; + } + + // l + System::String ^tmp = this->tboxCaption->Text->Replace( " ", "" ); + if( this->tboxCaption->Text->Equals("") || tmp->Equals("") ) // Xy[X݂̂͊̕܂߂Ȃ + { + this->hDeliv->hCaption = nullptr; + } + else + { + this->hDeliv->hCaption = this->tboxCaption->Text; + } + + // ȃAv + this->hDeliv->hAppTypeOther = this->tboxAppTypeOther->Text; + if( this->hDeliv->hAppTypeOther != nullptr ) + { + this->hDeliv->hAppTypeOther->Replace("\r\n",""); + } + + // obNAbvROMwb_ɂ͋LqȂ̂ŒomFɂ̂݋L + if( this->combBackup->SelectedIndex != (this->combBackup->Items->Count - 1) ) + { + this->hDeliv->hBackupMemory = this->combBackup->SelectedItem->ToString(); + } + else + { + this->hDeliv->hBackupMemory = this->tboxBackupOther->Text; + } + + //// DSi Ware̔̔JeS + //if( this->combDLCategory->SelectedIndex != (this->combDLCategory->Items->Count - 1) ) + //{ + // if( this->combDLCategory->SelectedIndex > 0 ) + // { + // this->hDeliv->hDLCategory = this->combDLCategory->SelectedItem->ToString(); + // } + // else + // { + // this->hDeliv->hDLCategory = gcnew System::String(""); + // } + //} + //else + //{ + // this->hDeliv->hDLCategory = this->tboxDLCategoryOther->Text; + //} + + // SRL𕶎œo^ + + // [W + if( this->combRegion->DropDownStyle == System::Windows::Forms::ComboBoxStyle::DropDown ) + { + // ؂̂Ƃ̓XgőIs‚̃eLXgR{{bNXɏĂ̂ło^ + this->hDeliv->hRegion = this->combRegion->Text; + } + else + { + // WorldWide ̂Ƃ̓XgőI”\ȕo^ + if( this->combRegion->SelectedIndex < 0 ) + { + this->hDeliv->hRegion = this->isJapanese()?METWL_STRING_UNDEFINED_REGION_J:METWL_STRING_UNDEFINED_REGION_E; // N蓾Ȃ + } + else + { + // XgőIĂeLXgo^ + this->hDeliv->hRegion = dynamic_cast(this->combRegion->SelectedItem); + } + } + this->hDeliv->hCERO = this->setDeliverableRatingOgnProperties( this->combCERO ); + this->hDeliv->hESRB = this->setDeliverableRatingOgnProperties( this->combESRB ); + this->hDeliv->hUSK = this->setDeliverableRatingOgnProperties( this->combUSK ); + this->hDeliv->hPEGI = this->setDeliverableRatingOgnProperties( this->combPEGI ); + this->hDeliv->hPEGI_PRT = this->setDeliverableRatingOgnProperties( this->combPEGI_PRT ); + this->hDeliv->hPEGI_BBFC = this->setDeliverableRatingOgnProperties( this->combPEGI_BBFC ); + this->hDeliv->hOFLC = this->setDeliverableRatingOgnProperties( this->combOFLC ); + this->hDeliv->hGRB = this->setDeliverableRatingOgnProperties( this->combGRB ); + + // SRLɂ͓o^ȂROMdl + this->hDeliv->IsUGC = this->cboxIsUGC->Checked; + this->hDeliv->IsPhotoEx = this->cboxIsPhotoEx->Checked; + + if( !this->tboxPrivateSaveDataPurpose->Enabled ) + { + if( this->isJapanese() ) + { + this->hDeliv->hPrivateSaveDataPurpose = "Ȃ"; + } + else + { + this->hDeliv->hPrivateSaveDataPurpose = "None"; + } + } + else + { + this->hDeliv->hPrivateSaveDataPurpose = this->tboxPrivateSaveDataPurpose->Text; + } +} + +// ---------------------------------------------- +// omFɃ[eBO(1c)̃tH[𔽉f +// ---------------------------------------------- +System::String^ Form1::setDeliverableRatingOgnProperties( System::Windows::Forms::ComboBox ^box ) +{ + System::String ^str; + + // [WʑΉ + if( (this->combRegion->DropDownStyle == System::Windows::Forms::ComboBoxStyle::DropDown) // R{{bNX؃[WpɂȂĂƂ + && this->hSrl->IsRegionChina ) // SRLǂݍ܂Ă邱Ƃ͕ۏ؂ + { + if( this->cboxIsUnnecessaryRating->Checked ) + { + // [eBO\svIĂƂɂ͒ĉ[WɊ܂܂ĂȂĂu[eBO\svvƂȂ + str = this->isJapanese()?METWL_STRING_UNNECESSARY_RATING_J:METWL_STRING_UNNECESSARY_RATING_E; + } + else + { + // [WɊ܂܂ĂȂĂuSNv + str = this->isJapanese()?METWL_STRING_CHINA_RATING_FREE_J:METWL_STRING_CHINA_RATING_FREE_E; + } + return str; + } + + // [WɊ܂܂ĉ̂݃[eBOݒ肳 ȊÓusvƂȂ + if( this->cboxIsUnnecessaryRating->Checked ) // [eBO\svIĂƂ + { + if( box->FlatStyle == System::Windows::Forms::FlatStyle::Standard ) // [WɊ܂܂ĂƂ̔ + { + // [WɊ܂܂Ăĉ̂݁u[eBO\svvƂ + str = this->isJapanese()?METWL_STRING_UNNECESSARY_RATING_J:METWL_STRING_UNNECESSARY_RATING_E; + } + else + { + // [WɊ܂܂ĂȂ(R{{bNX\ĂȂ)Ƃɂ́usvƂ + str = this->isJapanese()?METWL_STRING_UNDEFINED_RATING_J:METWL_STRING_UNDEFINED_RATING_E; + } + } + else + { + if( box->SelectedIndex < 0 ) + { + // [WɊ܂܂ĂȂ(R{{bNX\ĂȂ)Ƃɂ́usvƂ + str = this->isJapanese()?METWL_STRING_UNDEFINED_RATING_J:METWL_STRING_UNDEFINED_RATING_E; + } + else + { + // [WɊ܂܂Ăĉɂ̓XgőIĂeLXg + str = dynamic_cast(box->SelectedItem); + } + } + return str; +} + +// ---------------------------------------------- +// }X^ޏ(SRLeȂ)̃tH[`FbN +// ---------------------------------------------- +System::Boolean Form1::checkDeliverableForms(void) +{ + // sȏꍇ̓_CAOŒӂreturn + + // o + this->checkTextForm( this->tboxProductName->Text, "LabelProductName" ); // SRL쐬ɂ͖̂ȂG[ + this->checkTextForm( this->tboxProductCode1->Text, "LabelProductCode" ); + this->checkTextForm( this->tboxProductCode2->Text, "LabelProductCode" ); + if( this->cboxReleaseForeign->Checked == true ) + { + this->checkTextForm( this->tboxProductNameForeign->Text, "LabelProductNameForeign" ); + this->checkTextForm( this->tboxProductCode1Foreign->Text, "LabelProductCodeForeign" ); + this->checkTextForm( this->tboxProductCode2Foreign1->Text,"LabelProductCodeForeign" ); + } + if( this->rPurposeOther->Checked ) + { + this->checkTextForm( this->tboxPurposeOther->Text, "LabelUsage" ); + } + + //uprv̍ڂ̓O[v{bNX̋@\gĂ炸 + // `FbNRꂪ邩Ȃ̂Ń`FbNĂ邩𒲂ׂĂ + cli::array ^rbuts = gcnew cli::array + { + this->rPurposeCardProduction, + this->rPurposeCardTouchTryDS, + this->rPurposeCardDistribution, + this->rPurposeCardKiosk, + this->rPurposeDSiWare, + this->rPurposeOther, + }; + this->checkRadioButton( rbuts, "LabelUsage" ); + + // Џ + this->checkTextForm( this->tboxPerson1->Text, "LabelPerson1" ); + this->checkTextForm( this->tboxCompany1->Text, "LabelCompany1" ); + this->checkTextForm( this->tboxDepart1->Text, "LabelDepart2" ); + if( this->isJapanese() == true ) + { + this->checkTextForm( this->tboxFurigana1->Text, "LabelFurigana1" ); + } + this->checkTextForm( this->tboxTel1->Text, "LabelTel1" ); + this->checkTextForm( this->tboxMail1->Text, "LabelMail1" ); + + if( this->cboxIsInputPerson2->Checked == true ) + { + this->checkTextForm( this->tboxPerson2->Text, "LabelPerson2" ); + this->checkTextForm( this->tboxCompany2->Text, "LabelCompany2" ); + this->checkTextForm( this->tboxDepart2->Text, "LabelDepart2" ); + if( this->isJapanese() == true ) + { + this->checkTextForm( this->tboxFurigana2->Text, "LabelFurigana2" ); + } + this->checkTextForm( this->tboxTel2->Text, "LabelTel2" ); + this->checkTextForm( this->tboxMail2->Text, "LabelMail2" ); + } + + // ꕔROM(SRLoCiɔfȂ)Ń`FbN + this->checkComboBoxIndex( this->combBackup, "LabelBackup", false ); + if( this->combBackup->SelectedIndex == (this->combBackup->Items->Count - 1) ) + { + this->checkTextForm( this->tboxBackupOther->Text, "LabelBackup" ); + } + + if( this->tboxPrivateSaveDataPurpose->Enabled ) + { + this->checkTextForm( this->tboxPrivateSaveDataPurpose->Text, "PrivateSaveDataPurposeTitle", "PrivateSaveDataPurposeMsg" ); + } + + // ЂƂƂG[o^ + // ޏ̃G[(SRLoCiɂ͉eȂ)݂邩`FbN + return this->isValidOnlyDeliverable(); +} + +// end of file \ No newline at end of file diff --git a/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/MasterEditorTWL/Form_errorlist.cpp b/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/MasterEditorTWL/Form_errorlist.cpp new file mode 100644 index 0000000..b7c1583 --- /dev/null +++ b/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/MasterEditorTWL/Form_errorlist.cpp @@ -0,0 +1,369 @@ +// ---------------------------------------------- +// G[Xg̏o +// ---------------------------------------------- + +#include "stdafx.h" +#include "Form1.h" + +using namespace System; +using namespace System::ComponentModel; +using namespace System::Collections; +using namespace System::Windows::Forms; +using namespace System::Data; +using namespace System::Drawing; +using namespace MasterEditorTWL; + +static int s_NodeCount = 0; + +// ====================================================== +// XML̈vf쐬 +// ====================================================== +static System::Xml::XmlElement^ CreateErrorListElement(System::Xml::XmlDocument ^doc, RCMrcError ^err, int errtype, + System::String ^tagname, System::Boolean isJapanese) +{ + System::Xml::XmlElement ^tag = doc->CreateElement(tagname); + tag->SetAttribute( "num", ( s_NodeCount++ ).ToString() ); + MasterEditorTWL::appendXmlTag( doc, tag, "errname", (isJapanese)?err->Name:err->NameE ); + MasterEditorTWL::appendXmlTag( doc, tag, "errtype", errtype.ToString() ); + MasterEditorTWL::appendXmlTag( doc, tag, "errbegin", err->Begin.ToString("X04")+"h" ); + MasterEditorTWL::appendXmlTag( doc, tag, "errend", err->End.ToString("X04")+"h" ); + MasterEditorTWL::appendXmlTag( doc, tag, "errmsg", (isJapanese)?err->Msg:err->MsgE ); + return tag; +} + +// ====================================================== +// XML`̃Xg̖{̂ƂȂG[Xg̍쐬(łĝœƗ) +// ====================================================== +System::Xml::XmlElement^ Form1::makeErrorListXmlElement(System::Xml::XmlDocument ^doc, System::Boolean isCurrent) +{ + s_NodeCount = 0; + + // G[Xg + System::Xml::XmlElement ^list = doc->CreateElement( "error-list" ); + if( isCurrent ) // ݂̓͂𔽉f + { + if( this->hSrl->hErrorList != nullptr ) // ROMǂݍݎɔꂽG[ + { + for each( RCMrcError ^err in this->hSrl->hErrorList ) + { + if( !err->IsEnableModify && this->isDisplayOneGridErrorForPurpose( err ) ) // C”\ȏ͏o͂Ȃ + { + list->AppendChild( CreateErrorListElement(doc, err, 0, "error", this->isJapanese()) ); + } + } + } + if( this->hErrorList != nullptr ) // ݂̃tH[͂甭ꂽG[ + { + for each( RCMrcError ^err in this->hErrorList ) + { + if( err->IsAffectRom && this->isDisplayOneGridErrorForPurpose( err ) ) // ޏ̃G[͏o͂Ȃ + { + list->AppendChild( CreateErrorListElement(doc, err, 1, "error", this->isJapanese()) ); + } + } + } + } + else // ROMǂݍݎ̏ + { + if( this->hSrl->hErrorList ) + { + for each( RCMrcError ^err in this->hSrl->hErrorList ) + { + int errtype = 0; // C”\ȏƕs”\ȏƂŃ^Cv𕪂 + if( err->IsEnableModify ) + { + errtype = 1; + } + if( this->isDisplayOneGridErrorForPurpose( err ) ) + { + list->AppendChild( CreateErrorListElement(doc, err, errtype, "error", this->isJapanese()) ); + } + } + } + } + return list; +}//System::Xml::XmlElement^ Form1::makeErrorListXmlElement + +System::Xml::XmlElement^ Form1::makeWarningListXmlElement(System::Xml::XmlDocument ^doc, System::Boolean isCurrent) +{ + s_NodeCount = 0; + + // xXg + System::Xml::XmlElement ^list = doc->CreateElement( "warning-list" ); + if( isCurrent ) // ݂̓͂𔽉f + { + if( this->hSrl->hWarnList != nullptr ) // ROMǂݍݎɔꂽG[ + { + for each( RCMrcError ^err in this->hSrl->hWarnList ) + { + if( !err->IsEnableModify && this->isDisplayOneGridErrorForPurpose( err ) ) // C”\ȏ͏o͂Ȃ + { + list->AppendChild( CreateErrorListElement(doc, err, 0, "warning", this->isJapanese()) ); + } + } + } + if( this->hWarnList != nullptr ) // ݂̃tH[͂甭ꂽG[ + { + for each( RCMrcError ^err in this->hWarnList ) + { + if( err->IsAffectRom && this->isDisplayOneGridErrorForPurpose( err ) ) // ޏ̃G[͏o͂Ȃ + { + list->AppendChild( CreateErrorListElement(doc, err, 1, "warning", this->isJapanese()) ); + } + } + } + } + else // ROMǂݍݎ̏ + { + if( this->hSrl->hWarnList ) + { + for each( RCMrcError ^err in this->hSrl->hWarnList ) + { + int errtype = 0; // C”\ȏƕs”\ȏƂŃ^Cv𕪂 + if( err->IsEnableModify ) + { + errtype = 1; + } + if( this->isDisplayOneGridErrorForPurpose( err ) ) + { + list->AppendChild( CreateErrorListElement(doc, err, errtype, "warning", this->isJapanese()) ); + } + } + } + } + return list; +} //System::Xml::XmlElement^ Form1::makeWarningListXmlElement + +System::Xml::XmlElement^ Form1::makeErrorListCaptionXmlElement(System::Xml::XmlDocument ^doc) +{ + // xXg + System::Xml::XmlElement ^list = doc->CreateElement( "error-caption-list" ); + { + System::Xml::XmlElement ^tag = doc->CreateElement( "error-caption" ); + System::String ^msg = "* Type 0 indicates problems with the ROM data that cannot be corrected using MasterEditorTWL."; + if(this->isJapanese()) + { + msg = "* Type 0 ̍ڂ̓}X^[GfB^ŏCł܂B"; + } + MasterEditorTWL::appendXmlTag( doc, tag, "text", msg ); + list->AppendChild(tag); + } + { + System::Xml::XmlElement ^tag = doc->CreateElement( "error-caption" ); + System::String ^msg = "* Type 1 indicates problems with the ROM data that can be corrected using MasterEditorTWL."; + if(this->isJapanese()) + { + msg = "* Type 1 ̍ڂ̓}X^[GfB^ŏC”\łB"; + } + MasterEditorTWL::appendXmlTag( doc, tag, "text", msg ); + list->AppendChild(tag); + } + return list; +} //System::Xml::XmlElement^ Form1::makeErrorListCaptionXmlElement + + +// ====================================================== +// XML`̃XgɍڂG[̃JEg +// ====================================================== +int Form1::countErrorListXmlElement(System::Boolean isCurrent) +{ + s_NodeCount = 0; + + int count = 0; + + // G[Xg + if( isCurrent ) // ݂̓͂𔽉f + { + if( this->hSrl->hErrorList != nullptr ) // ROMǂݍݎɔꂽG[ + { + for each( RCMrcError ^err in this->hSrl->hErrorList ) + { + if( !err->IsEnableModify && this->isDisplayOneGridErrorForPurpose( err ) ) // C”\ȏ͏o͂Ȃ + { + count++; + } + } + } + if( this->hErrorList != nullptr ) // ݂̃tH[͂甭ꂽG[ + { + for each( RCMrcError ^err in this->hErrorList ) + { + if( err->IsAffectRom && this->isDisplayOneGridErrorForPurpose( err ) ) // ޏ̃G[͏o͂Ȃ + { + count++; + } + } + } + } + else // ROMǂݍݎ̏ + { + if( this->hSrl->hErrorList ) + { + for each( RCMrcError ^err in this->hSrl->hErrorList ) + { + int errtype = 0; // C”\ȏƕs”\ȏƂŃ^Cv𕪂 + if( err->IsEnableModify ) + { + errtype = 1; + } + if( this->isDisplayOneGridErrorForPurpose( err ) ) + { + count++; + } + } + } + } + return count; +}//int Form1::countErrorListXmlElement + +int Form1::countWarningListXmlElement(System::Boolean isCurrent) +{ + s_NodeCount = 0; + + int count = 0; + + // xXg + if( isCurrent ) // ݂̓͂𔽉f + { + if( this->hSrl->hWarnList != nullptr ) // ROMǂݍݎɔꂽG[ + { + for each( RCMrcError ^err in this->hSrl->hWarnList ) + { + if( !err->IsEnableModify && this->isDisplayOneGridErrorForPurpose( err ) ) // C”\ȏ͏o͂Ȃ + { + count++; + } + } + } + if( this->hWarnList != nullptr ) // ݂̃tH[͂甭ꂽG[ + { + for each( RCMrcError ^err in this->hWarnList ) + { + if( err->IsAffectRom && this->isDisplayOneGridErrorForPurpose( err ) ) // ޏ̃G[͏o͂Ȃ + { + count++; + } + } + } + } + else // ROMǂݍݎ̏ + { + if( this->hSrl->hWarnList ) + { + for each( RCMrcError ^err in this->hSrl->hWarnList ) + { + int errtype = 0; // C”\ȏƕs”\ȏƂŃ^Cv𕪂 + if( err->IsEnableModify ) + { + errtype = 1; + } + if( this->isDisplayOneGridErrorForPurpose( err ) ) + { + count++; + } + } + } + } + return count; +} //int Form1::countWarningListXmlElement + + +// ====================================================== +// XML`ŃXg쐬 +// ====================================================== +System::Void Form1::makeErrorListXml(System::Xml::XmlDocument ^doc, System::Boolean isCurrent) +{ + // ŐVɍXV + this->hErrorList->Clear(); + this->hWarnList->Clear(); + this->checkSrlForms(); + this->checkDeliverableForms(); + + System::Xml::XmlElement ^root = doc->CreateElement( "twl-master-editor" ); + System::Reflection::Assembly ^ass = System::Reflection::Assembly::GetEntryAssembly(); + root->SetAttribute( "version", this->getVersion() ); + doc->AppendChild( root ); + + // Q[ + root->AppendChild( this->makeGameInfoXmlElement(doc) ); + + // t@CpX + MasterEditorTWL::appendXmlTag( doc, root, "path", this->tboxFile->Text ); + + // 쐬 + System::Xml::XmlElement ^time = doc->CreateElement( "time-info" ); + System::DateTime ^ datetime = System::DateTime::Now; + time->SetAttribute( "year", datetime->Year.ToString() ); + switch( datetime->Month ) + { + case 1: time->SetAttribute( "month", "January" ); break; + case 2: time->SetAttribute( "month", "February" ); break; + case 3: time->SetAttribute( "month", "March" ); break; + case 4: time->SetAttribute( "month", "April" ); break; + case 5: time->SetAttribute( "month", "May" ); break; + case 6: time->SetAttribute( "month", "June" ); break; + case 7: time->SetAttribute( "month", "July" ); break; + case 8: time->SetAttribute( "month", "August" ); break; + case 9: time->SetAttribute( "month", "September" ); break; + case 10: time->SetAttribute( "month", "October" ); break; + case 11: time->SetAttribute( "month", "November" ); break; + case 12: time->SetAttribute( "month", "December" ); break; + default: time->SetAttribute( "month", datetime->Month.ToString() ); break; + } + time->SetAttribute( "day", datetime->Day.ToString() ); + time->SetAttribute( "time", datetime->Hour.ToString("D2") + ":" + datetime->Minute.ToString("D2") ); + root->AppendChild( time ); + + System::Xml::XmlElement ^section; + + // G[ + section = doc->CreateElement("error-info"); + MasterEditorTWL::appendXmlTag( doc, section, "index", this->isJapanese()?"G[":"Error" ); + section->AppendChild( this->makeErrorListXmlElement(doc, isCurrent) ); + root->AppendChild(section); + + // x + section = doc->CreateElement("warning-info"); + MasterEditorTWL::appendXmlTag( doc, section, "index", this->isJapanese()?"x":"Warning" ); + section->AppendChild( this->makeWarningListXmlElement(doc, isCurrent) ); + root->AppendChild(section); + + // G[ + section = doc->CreateElement("error-num-info"); + section->SetAttribute( "error-title", this->isJapanese()?"G[":"Error" ); + section->SetAttribute( "error-num", this->countErrorListXmlElement( isCurrent ).ToString() ); + section->SetAttribute( "warning-title", this->isJapanese()?"x":"Warning" ); + section->SetAttribute( "warning-num", this->countWarningListXmlElement( isCurrent ).ToString() ); + root->AppendChild(section); + + // NjL + root->AppendChild( this->makeErrorListCaptionXmlElement(doc) ); + +} //System::Void Form1::makeErrorListXml + +// ====================================================== +// HTML`Ńt@Co +// ====================================================== +System::Void Form1::makeErrorListHtml(System::String ^filepath, System::Boolean isCurrent) +{ + System::String ^tmpxml = gcnew System::String( this->getXmlToHtmlTmpFile() ); + try + { + // TMPt@CXMLō쐬 + System::Xml::XmlDocument ^doc = gcnew System::Xml::XmlDocument(); + doc->AppendChild( doc->CreateXmlDeclaration("1.0","UTF-8",nullptr) ); + this->makeErrorListXml( doc, isCurrent ); + doc->Save( tmpxml ); + // XML=>HTMLϊ + System::Xml::Xsl::XslCompiledTransform ^xslt = gcnew System::Xml::Xsl::XslCompiledTransform; + xslt->Load( this->getErrorListXsl() ); + xslt->Transform( tmpxml, filepath ); + } + catch (System::Exception ^s) + { + System::IO::File::Delete( tmpxml ); // ̂߂TMPt@C폜Ă + throw s; // ĂяoɗOthrow + return; + } + System::IO::File::Delete( tmpxml ); +} //System::Void Form1::makeErrorListHtml \ No newline at end of file diff --git a/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/MasterEditorTWL/Form_file.cpp b/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/MasterEditorTWL/Form_file.cpp new file mode 100644 index 0000000..fd0a185 --- /dev/null +++ b/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/MasterEditorTWL/Form_file.cpp @@ -0,0 +1,298 @@ +// ---------------------------------------------- +// ROMt@CR/W +// ---------------------------------------------- + +#include "stdafx.h" +#include +#include "common.h" +#include "srl.h" +#include "deliverable.h" +#include "crc_whole.h" +#include "utility.h" +#include "lang.h" +#include "split_tad.h" +#include "FormError.h" +#include "Form1.h" + +using namespace System; +using namespace System::ComponentModel; +using namespace System::Collections; +using namespace System::Windows::Forms; +using namespace System::Data; +using namespace System::Drawing; +using namespace MasterEditorTWL; + + +// ---------------------------------------------- +// t@C̓ǂݍ (TAD/SRLǂݍ݂bv) +// ---------------------------------------------- +System::Boolean Form1::loadRom( System::String ^infile ) +{ + System::Boolean result = false; + if( System::IO::Path::GetExtension( infile )->ToUpper()->Equals( ".TAD" ) ) // gqŔ + { + result = this->loadTad( infile ); + if( result ) + { + this->IsLoadTad = true; // Ƃ݂̂łȂƎTAD̓ǂݍ݂ɎsƂ + // [htȌ񂪏ĎĂ܂ + } + } + else + { + result = this->loadSrl( infile ); + if( result ) + { + this->IsLoadTad = false; + System::String ^tmpsrl = this->getSplitTadTmpFile(); + if( System::IO::File::Exists( tmpsrl ) ) + { + System::IO::File::Delete( tmpsrl ); // SRL̓ǂݍ݂ȑOTADǂݍ݂Ŏgpꎞt@C͕sv + } + } + } + return result; +} + +// ---------------------------------------------- +// t@C̏o (TAD/SRLobv) +// ---------------------------------------------- +ECFormResult Form1::saveRom( System::String ^outfile ) +{ + ECFormResult result = ECFormResult::NOERROR; + if( this->IsLoadTad ) + { + // ꎞt@CSRLoĂ̂ł̈ꎞt@Co̓t@C쐬 + System::String ^tmpsrl = this->getSplitTadTmpFile(); + result = this->saveSrl( tmpsrl, outfile ); + if( result != ECFormResult::NOERROR ) + { + System::IO::File::Delete( tmpsrl ); + this->IsLoadTad = false; // o͂SRL̃\[XƂȂ + } + } + else + { + result = this->saveSrl( this->tboxFile->Text, outfile ); + } + return result; +} + +// ---------------------------------------------- +// tad̓ǂݍ +// ---------------------------------------------- +System::Boolean Form1::loadTad( System::String ^tadfile ) +{ + // tadt@CϊSRLꎞt@Cɕۑ + System::String ^srlfile = this->getSplitTadTmpFile(); + if( splitTad( tadfile, srlfile ) != 0 ) // ㏑ŕۑ + { + this->errMsg( "E_LoadRom_Tad" ); + return false; + } + System::Boolean result = this->loadSrl( srlfile ); // ꎞۑSRLǂݍ + return result; +} + +// ---------------------------------------------- +// SRL̓ǂݍ +// ---------------------------------------------- +System::Boolean Form1::loadSrl( System::String ^srlfile ) +{ + ECSrlResult result = this->hSrl->readFromFile( srlfile ); + if( result != ECSrlResult::NOERROR ) + { + switch( result ) + { + case ECSrlResult::ERROR_PLATFORM: + this->errMsg( "E_LoadRom_Platform" ); + break; + + case ECSrlResult::ERROR_SIGN_DECRYPT: + case ECSrlResult::ERROR_SIGN_VERIFY: + this->errMsg( "E_LoadRom_Sign" ); + break; + + default: + this->errMsg( "E_LoadRom_Default" ); + break; + } + return false; + } + + // GUIROMi[ + this->setSrlForms(); + if( this->IsReadOnly ) + { + this->readOnly(); // [hI[[ĥƂtH[Enableɂ + } + + // SRLɓo^ȂROMdl̃tH[߂{^œǂݍݎ̏Ԃɖ߂ + // ǂݍݎ̏ԂSRLɕۑĂȂ̂őޔĂ + this->saveOtherForms(); + + // ŜCRCZo + u16 crc; + if( !getWholeCRCInFile( srlfile, &crc ) ) + { + this->errMsg( "E_LoadRom_CRC" ); + return false; + } + System::UInt16 ^hcrc = gcnew System::UInt16( crc ); + this->tboxWholeCRC->Clear(); + this->tboxWholeCRC->AppendText( "0x" ); + this->tboxWholeCRC->AppendText( hcrc->ToString("X") ); + + // ǂݍݎG[o^ + this->rErrorReading->Checked = true; + this->setGridError(); + this->setGridWarn(); + + // o̗prXV + cli::array ^rbuts = gcnew cli::array + { + this->rPurposeCardProduction, + this->rPurposeCardTouchTryDS, + this->rPurposeCardDistribution, + this->rPurposeCardKiosk, + this->rPurposeDSiWare, + this->rPurposeOther + }; + this->tboxPurposeInError->Text = ""; + for each( System::Windows::Forms::RadioButton ^r in rbuts ) + { + if( r->Checked ) + { + this->tboxPurposeInError->Text = System::String::Copy( r->Text ); + } + } + return true; +} // loadSrl() + +// ---------------------------------------------- +// SRL̕ۑ +// ---------------------------------------------- +ECFormResult Form1::saveSrl( System::String ^infile, System::String ^outfile ) +{ + if( !System::IO::File::Exists( infile ) ) + { + return ECFormResult::ERROR_FILE_EXIST; + } + + // Rs[t@CROMwb_㏑ + ECFormResult result = this->saveSrlCore( infile, outfile ); + if( result != ECFormResult::NOERROR ) + { + return result; + } + + // ă[h + this->loadSrl( outfile ); + return ECFormResult::NOERROR; +} // saveSrl() + +ECFormResult Form1::saveSrlCore( System::String ^infile, System::String ^outfile ) +{ + // ROMtH[擾SRLoCiɔf + this->setSrlProperties(); + + // t@CRs[ + if( !(outfile->Equals( infile )) ) + { + //try + //{ + // System::IO::File::Copy( infile, outfile, true ); + //} + //catch( System::Exception ^ex ) + //{ + // (void)ex; + // return ECFormResult::ERROR_FILE_COPY; + //} + ECFormResult formRes = this->copyFile( infile, outfile ); + if( formRes != ECFormResult::NOERROR ) + { + return ECFormResult::ERROR_FILE_COPY; + } + } + + // Rs[t@CROMwb_㏑ + ECSrlResult srlRes = this->hSrl->writeToFile( outfile ); + if( srlRes != ECSrlResult::NOERROR ) + { + ECFormResult formRes = ECFormResult::NOERROR; + switch( srlRes ) + { + case ECSrlResult::ERROR_FILE_OPEN: formRes = ECFormResult::ERROR_FILE_OPEN; break; + case ECSrlResult::ERROR_FILE_WRITE: formRes = ECFormResult::ERROR_FILE_WRITE; break; + case ECSrlResult::ERROR_FILE_READ: formRes = ECFormResult::ERROR_FILE_READ; break; + case ECSrlResult::ERROR_SIGN_ENCRYPT: + case ECSrlResult::ERROR_SIGN_DECRYPT: + case ECSrlResult::ERROR_SIGN_VERIFY: + formRes = ECFormResult::ERROR_FILE_SIGN; + break; + default: + formRes = ECFormResult::ERROR; + break; + } + return formRes; + } + return ECFormResult::NOERROR; +} + +// ---------------------------------------------- +// t@C̃Rs[ +// ---------------------------------------------- +#define METWL_COPY_FILE_BUFSIZE (10*1024*1024) +ECFormResult Form1::copyFile( System::String ^infile, System::String ^outfile ) +{ + const char *pchInfile = + (const char*)System::Runtime::InteropServices::Marshal::StringToHGlobalAnsi( infile ).ToPointer(); + const char *pchOutfile = + (const char*)System::Runtime::InteropServices::Marshal::StringToHGlobalAnsi( outfile ).ToPointer(); + + FILE *ifp = NULL; + if( fopen_s( &ifp, pchInfile, "rb" ) != NULL ) + { + //this->errMsgCore( "t@CRs[ɂē̓t@C̃I[vɎs܂B" ); + return (ECFormResult::ERROR_FILE_OPEN); + } + FILE *ofp = NULL; + if( fopen_s( &ofp, pchOutfile, "wb" ) != NULL ) // t@C폜ĐVKɃCgEoCi + { + //this->errMsg( "t@CRs[ɂďo̓t@C̃I[vɎs܂B" ); + fclose(ifp); + return (ECFormResult::ERROR_FILE_OPEN); + } + + // ̓t@C̃TCY擾 + fseek( ifp, 0, SEEK_END ); + System::Int32 size = ftell(ifp); + + cli::array ^mbuf = gcnew cli::array(METWL_COPY_FILE_BUFSIZE); // ̕KvȂ + pin_ptr buf = &mbuf[0]; + fseek( ifp, 0, SEEK_SET ); + fseek( ofp, 0, SEEK_SET ); + while( size > 0 ) + { + System::Int32 datasize = (METWL_COPY_FILE_BUFSIZE < size)?METWL_COPY_FILE_BUFSIZE:size; + + if( datasize != fread(buf, 1, datasize, ifp) ) + { + //this->errMsg( "t@CRs[ɂē̓t@C̃f[^[hɎs܂B" ); + fclose(ofp); + fclose(ifp); + return ECFormResult::ERROR_FILE_READ; + } + if( datasize != fwrite(buf, 1, datasize, ofp) ) + { + //this->errMsg( "t@CRs[ɂďo̓t@C̃f[^CgɎs܂B" ); + fclose(ofp); + fclose(ifp); + return ECFormResult::ERROR_FILE_READ; + } + size -= datasize; + } + fclose(ofp); + fclose(ifp); + return ECFormResult::NOERROR; +} diff --git a/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/MasterEditorTWL/Form_init.cpp b/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/MasterEditorTWL/Form_init.cpp new file mode 100644 index 0000000..9439948 --- /dev/null +++ b/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/MasterEditorTWL/Form_init.cpp @@ -0,0 +1,239 @@ +// ---------------------------------------------- +// ݒt@C̓ǂݍ +// ---------------------------------------------- + +#include "stdafx.h" +#include +#include "common.h" +#include "srl.h" +#include "deliverable.h" +#include "crc_whole.h" +#include "utility.h" +#include "lang.h" +#include "split_tad.h" +#include "FormError.h" +#include "Form1.h" + +using namespace System; +using namespace System::ComponentModel; +using namespace System::Collections; +using namespace System::Windows::Forms; +using namespace System::Data; +using namespace System::Drawing; +using namespace MasterEditorTWL; + + +// ---------------------------------------------- +// ʏݒt@C̓ǂݍ +// ---------------------------------------------- + +void Form1::loadInit(void) +{ + System::Xml::XmlDocument ^doc = gcnew System::Xml::XmlDocument(); + + // xmlt@C̓ǂݍ + try + { + doc->Load( this->getIniFile() ); + } + catch( System::IO::FileNotFoundException ^s ) + { + (void)s; + this->errMsg( "E_Start_InitExist" ); + return; + } + catch( System::Exception ^s ) + { + (void)s; + this->errMsg( "E_Start_InitOpen" ); + return; + } + + // ^O : [g + System::Xml::XmlElement ^root = doc->DocumentElement; + + // ^O + System::Boolean bReadOnly = MasterEditorTWL::isXmlEqual( root, "rw", "r" ); + this->IsReadOnly = bReadOnly; + if( bReadOnly ) + { + this->readOnly(); + } + + // ^O + { + // Shared2t@C̃ANZX(t@CƂɎw) + System::String ^shared2 = MasterEditorTWL::getXPathText( root, "/init/access/shared2" ); + if( shared2 != nullptr ) + { + // R}؂ŃANZXƒt@CNo.w肳Ă + cli::array ^list = shared2->Split( ',' ); + if( list ) + { + for each( System::String ^item in list ) + { + //System::Diagnostics::Debug::WriteLine( "access permit shared2 file: " + item ); + System::Int32 number = System::Int32::Parse( item ); + this->hSrl->hMrcExternalCheckItems->hIsPermitShared2Array[ number ] = true; // ݒt@CŎw肳Ăԍ̂݋ + } + } + } + + // m[}WṽANZX + System::String ^isNJ = MasterEditorTWL::getXPathText( root, "/init/access/normalJump" ); + if( isNJ && isNJ->Equals( "Permit" ) ) + { + this->hSrl->hMrcExternalCheckItems->IsPermitNormalJump = true; + } + } + // ^OɕtĔ\ڂ\邩ǂ߂ + { + // Shared2t@C + System::Boolean bVisible = false; + for each( System::Boolean permit in this->hSrl->hMrcExternalCheckItems->hIsPermitShared2Array ) + { + if( permit && !this->gboxShared2Size->Visible ) + { + bVisible = true; // ǂꂩЂƂ‚łtrueȂO[v{bNX\ + } + } + this->gboxShared2Size->Visible = bVisible; + this->cboxIsShared2->Visible = bVisible; + if( bVisible ) + { + int i; + for( i=0; i < METWL_NUMOF_SHARED2FILES; i++ ) + { + // ANZX‚Ăt@Ĉݕ\ɂ + if( this->hSrl->hMrcExternalCheckItems->hIsPermitShared2Array[i] ) + { + switch(i) + { + case 0: this->tboxShared2Size0->Visible = true; this->labShared2Size0->Visible = true; break; + case 1: this->tboxShared2Size1->Visible = true; this->labShared2Size1->Visible = true; break; + case 2: this->tboxShared2Size2->Visible = true; this->labShared2Size2->Visible = true; break; + case 3: this->tboxShared2Size3->Visible = true; this->labShared2Size3->Visible = true; break; + case 4: this->tboxShared2Size4->Visible = true; this->labShared2Size4->Visible = true; break; + case 5: this->tboxShared2Size5->Visible = true; this->labShared2Size5->Visible = true; break; + default: break; + } + } + } + } + + // m[}Wv + this->changeVisibleGboxExFlags( this->hSrl->hMrcExternalCheckItems->IsPermitNormalJump ); + } + + // ^O : Shared2t@CTCY̐^l(ANZX‚Ăt@Ĉ݋L) + System::Int32 i; + for( i=0; i < METWL_NUMOF_SHARED2FILES; i++ ) + { + System::String ^str = MasterEditorTWL::getXPathText( root, "/init/shared2/size" + i.ToString() ); + if( str ) + { + this->hSrl->hMrcExternalCheckItems->hShared2SizeArray[i] = System::UInt32::Parse( str ); + } + else // ANZX‚ĂȂt@C͔JȂ̂ŃTCYݒt@CɋLڂȂ + { + this->hSrl->hMrcExternalCheckItems->hShared2SizeArray[i] = 0; + } + } + + // ^O : \͈̈̔͂L + System::Xml::XmlNodeList ^list = root->SelectNodes( "/init/reserved-list/reserved" ); + System::Collections::IEnumerator^ iter = list->GetEnumerator(); + while( iter->MoveNext() ) + { + System::Xml::XmlNode ^area = safe_cast(iter->Current); + System::Xml::XmlNode ^begin = area->SelectSingleNode( "begin" ); // ΃pX + System::Xml::XmlNode ^end = area->SelectSingleNode( "end" ); + if( begin && begin->FirstChild && begin->FirstChild->Value && + end && end->FirstChild && end->FirstChild->Value ) + { + System::UInt32 ibeg = System::UInt32::Parse( begin->FirstChild->Value, System::Globalization::NumberStyles::AllowHexSpecifier ); + System::UInt32 iend = System::UInt32::Parse( end->FirstChild->Value, System::Globalization::NumberStyles::AllowHexSpecifier ); + MasterEditorTWL::VCReservedArea iarea(ibeg, iend); + this->hSrl->hMrcExternalCheckItems->hReservedAreaList->Add( iarea ); + } + } +} // loadInit() + + +// ---------------------------------------------- +// ljݒt@C̓ǂݍ +// ---------------------------------------------- + +void Form1::loadAppendInit(void) +{ + System::String ^initfile = this->getAppendIniFile(); + + // ʏ݂͑Ȃ + if( !System::IO::File::Exists( initfile ) ) + { + return; + } + + System::Xml::XmlDocument ^doc = gcnew System::Xml::XmlDocument(); + try + { + doc->Load( initfile ); + } + catch( System::IO::FileNotFoundException ^s ) + { + (void)s; + this->errMsg( "E_Start_AppendExist" ); + return; + } + catch( System::Exception ^s ) + { + (void)s; + this->errMsg( "E_Start_AppendOpen" ); + return; + } + System::Xml::XmlElement ^root = doc->DocumentElement; + + // ^O + System::Boolean bVisible = MasterEditorTWL::isXmlEqual( root, "visible", "ON" ); + this->changeVisibleForms( bVisible ); + this->changeVisibleGboxExFlags( bVisible ); + + // ^O + System::Boolean bCheck = MasterEditorTWL::isXmlEqual( root, "spcheck", "ON" ); + + if( bCheck ) // `FbNƂ̂ݒlj`FbNڂݒ + { + // `FbN邩ǂ + this->hSrl->hMrcExternalCheckItems->IsAppendCheck = true; + + // SDK + try + { + u32 major = System::UInt32::Parse( MasterEditorTWL::getXPathText( root, "/init/sdk/major" ) ); + u32 minor = System::UInt32::Parse( MasterEditorTWL::getXPathText( root, "/init/sdk/minor" ) ); + u32 relstep = System::UInt32::Parse( MasterEditorTWL::getXPathText( root, "/init/sdk/relstep" ) ); + u32 sdkver = (major << 24) | (minor << 16) | (relstep & 0xFFFF); + this->hSrl->hMrcExternalCheckItems->SDKVer = sdkver; + + major = System::UInt32::Parse( MasterEditorTWL::getXPathText( root, "/init/sdkNotStaticTWL/major" ) ); + minor = System::UInt32::Parse( MasterEditorTWL::getXPathText( root, "/init/sdkNotStaticTWL/minor" ) ); + relstep = System::UInt32::Parse( MasterEditorTWL::getXPathText( root, "/init/sdkNotStaticTWL/relstep" ) ); + sdkver = (major << 24) | (minor << 16) | (relstep & 0xFFFF); + this->hSrl->hMrcExternalCheckItems->SDKVerNotStaticTWL = sdkver; + + major = System::UInt32::Parse( MasterEditorTWL::getXPathText( root, "/init/sdkNotStaticNTR/major" ) ); + minor = System::UInt32::Parse( MasterEditorTWL::getXPathText( root, "/init/sdkNotStaticNTR/minor" ) ); + relstep = System::UInt32::Parse( MasterEditorTWL::getXPathText( root, "/init/sdkNotStaticNTR/relstep" ) ); + sdkver = (major << 24) | (minor << 16) | (relstep & 0xFFFF); + this->hSrl->hMrcExternalCheckItems->SDKVerNotStaticNTR = sdkver; + } + catch ( System::Exception ^ex ) + { + (void)ex; + this->errMsg( "E_Start_SDK" ); + this->hSrl->hMrcExternalCheckItems->SDKVer = 0; + } + + } //if( bCheck ) + +} // loadAppendInit() \ No newline at end of file diff --git a/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/MasterEditorTWL/Form_lang.cpp b/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/MasterEditorTWL/Form_lang.cpp new file mode 100644 index 0000000..5a31c78 --- /dev/null +++ b/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/MasterEditorTWL/Form_lang.cpp @@ -0,0 +1,578 @@ +// ---------------------------------------------- +// pΉ +// ---------------------------------------------- + +#include "stdafx.h" +#include +#include "common.h" +#include "srl.h" +#include "deliverable.h" +#include "crc_whole.h" +#include "utility.h" +#include "lang.h" +#include "FormError.h" +#include "Form1.h" + +using namespace System; +using namespace System::ComponentModel; +using namespace System::Collections; +using namespace System::Windows::Forms; +using namespace System::Data; +using namespace System::Drawing; +using namespace MasterEditorTWL; + +// ---------------------------------------------- +// eLXg{bNX̕񐧌ς +// ({łƉpłŕ񐧌ς) +// ---------------------------------------------- +void Form1::changeMaxLength( System::Windows::Forms::TextBox ^tbox, System::Int32 maxlen ) +{ + if( tbox->Text->Length > maxlen ) + tbox->Text = ""; + + tbox->MaxLength = maxlen; +} + +// ---------------------------------------------- +// tH[EnableVisibleς +// ---------------------------------------------- +void Form1::changeFormInput( System::String ^langname ) +{ + // {݂͍̂̓ + if( langname->StartsWith("ja") ) + { + // ӂ肪Ȃ͓{̂ + this->tboxFurigana1->Enabled = true; + this->tboxNTSC1->Enabled = true; + this->tboxFurigana2->Enabled = true; + this->tboxNTSC2->Enabled = true; + this->tboxFurigana1->Visible = true; + this->tboxNTSC1->Visible = true; + this->tboxFurigana2->Visible = true; + this->tboxNTSC2->Visible = true; + + this->labFurigana1->Visible = true; + this->labNTSC1Pre->Visible = true; + this->labNTSC1Sur->Visible = true; + this->labFurigana2->Visible = true; + this->labNTSC2Pre->Visible = true; + this->labNTSC2Sur->Visible = true; + this->labArbit2->Visible = true; + this->labArbit4->Visible = true; + + // {łInternetoF߂Ȃ̂ŕ\ + //if( this->rSubmitInternet->Checked ) + //{ + // this->rSubmitInternet->Checked = false; // InternetIĂƂɕ\ƂǂIĂȂ󋵂ɂȂ̂ + // this->rSubmitPost->Checked = true; // Kǂꂩ1‚IĂ悤ɂĂ + //} + //this->rSubmitInternet->Enabled = false; + //this->rSubmitInternet->Visible = false; + } + else + { + this->tboxFurigana1->Enabled = false; + this->tboxNTSC1->Enabled = false; + this->tboxFurigana2->Enabled = false; + this->tboxNTSC2->Enabled = false; + this->tboxFurigana1->Visible = false; + this->tboxNTSC1->Visible = false; + this->tboxFurigana2->Visible = false; + this->tboxNTSC2->Visible = false; + this->tboxFurigana1->Clear(); + this->tboxNTSC1->Clear(); + this->tboxFurigana2->Clear(); + this->tboxNTSC2->Clear(); + + this->labFurigana1->Visible = false; + this->labNTSC1Pre->Visible = false; + this->labNTSC1Sur->Visible = false; + this->labFurigana2->Visible = false; + this->labNTSC2Pre->Visible = false; + this->labNTSC2Sur->Visible = false; + this->labArbit2->Visible = false; + this->labArbit4->Visible = false; + + //this->rSubmitInternet->Enabled = true; + //this->rSubmitInternet->Visible = true; + } +} + +// ---------------------------------------------- +// {łւ̐؂ւ +// ---------------------------------------------- +void Form1::changeJapanese(void) +{ + this->changeLanguage( "ja" ); + +} + +// ---------------------------------------------- +// płւ̐؂ւ +// ---------------------------------------------- +void Form1::changeEnglish(void) +{ + this->changeLanguage( "en" ); +} + +// ---------------------------------------------- +// ꃊ\[X؂ւ +// ---------------------------------------------- +void MasterEditorTWL::Form1::changeLanguage( System::String ^langname ) +{ + //int index; + + // \[X؂ւ̂߂ɈꎞIɃJ`؂ւ + System::Threading::Thread::CurrentThread->CurrentUICulture = gcnew System::Globalization::CultureInfo(langname,true); + System::ComponentModel::ComponentResourceManager^ resources = (gcnew System::ComponentModel::ComponentResourceManager(Form1::typeid)); + + resources->ApplyResources(this->tboxFile, L"tboxFile"); + resources->ApplyResources(this->gboxSrl, L"gboxSrl"); + resources->ApplyResources(this->tboxRemasterVer, L"tboxRemasterVer"); + resources->ApplyResources(this->tboxRomSize, L"tboxRomSize"); + resources->ApplyResources(this->tboxPlatform, L"tboxPlatform"); + resources->ApplyResources(this->labPlatform, L"labPlatform"); + resources->ApplyResources(this->tboxRomLatency, L"tboxRomLatency"); + resources->ApplyResources(this->labRomSize, L"labRomSize"); + resources->ApplyResources(this->labRomType, L"labRomType"); + resources->ApplyResources(this->tboxMakerCode, L"tboxMakerCode"); + resources->ApplyResources(this->cboxRemasterVerE, L"cboxRemasterVerE"); + resources->ApplyResources(this->labMakerCode, L"labMakerCode"); + resources->ApplyResources(this->labGameCode, L"labGameCode"); + resources->ApplyResources(this->tboxGameCode, L"tboxGameCode"); + resources->ApplyResources(this->labTitleName, L"labTitleName"); + resources->ApplyResources(this->labRemasterVer, L"labRemasterVer"); + resources->ApplyResources(this->tboxTitleName, L"tboxTitleName"); + resources->ApplyResources(this->labBackup, L"labBackup"); + + int indexBackup = this->combBackup->SelectedIndex; + this->combBackup->Items->Clear(); + this->combBackup->Items->AddRange(gcnew cli::array< System::Object^ >(10) {resources->GetString(L"combBackup.Items"), resources->GetString(L"combBackup.Items1"), + resources->GetString(L"combBackup.Items2"), resources->GetString(L"combBackup.Items3"), resources->GetString(L"combBackup.Items4"), + resources->GetString(L"combBackup.Items5"), resources->GetString(L"combBackup.Items6"), resources->GetString(L"combBackup.Items7"), + resources->GetString(L"combBackup.Items8"), resources->GetString(L"combBackup.Items9")}); + resources->ApplyResources(this->combBackup, L"combBackup"); + this->combBackup->SelectedIndex = indexBackup; + + resources->ApplyResources(this->tboxBackupOther, L"tboxBackupOther"); + resources->ApplyResources(this->gboxCRC, L"gboxCRC"); + resources->ApplyResources(this->labRomCRC, L"labRomCRC"); + resources->ApplyResources(this->labHeaderCRC, L"labHeaderCRC"); + resources->ApplyResources(this->tboxHeaderCRC, L"tboxHeaderCRC"); + resources->ApplyResources(this->tboxWholeCRC, L"tboxWholeCRC"); + resources->ApplyResources(this->labCaption, L"labCaption"); + resources->ApplyResources(this->tboxCaption, L"tboxCaption"); + resources->ApplyResources(this->labGRB, L"labGRB"); + resources->ApplyResources(this->labOFLC, L"labOFLC"); + resources->ApplyResources(this->labPEGI_BBFC, L"labPEGI_BBFC"); + resources->ApplyResources(this->labPEGI_PRT, L"labPEGI_PRT"); + resources->ApplyResources(this->labPEGI, L"labPEGI"); + resources->ApplyResources(this->labUSK, L"labUSK"); + resources->ApplyResources(this->labESRB, L"labESRB"); + resources->ApplyResources(this->labCERO, L"labCERO"); + + int indexGRB = this->combGRB->SelectedIndex; + this->combGRB->Items->Clear(); + this->combGRB->Items->AddRange(gcnew cli::array< System::Object^ >(5) {resources->GetString(L"combGRB.Items"), resources->GetString(L"combGRB.Items1"), + resources->GetString(L"combGRB.Items2"), resources->GetString(L"combGRB.Items3"), resources->GetString(L"combGRB.Items4")}); + + resources->ApplyResources(this->combOFLC, L"combOFLC"); + int indexOFLC = this->combOFLC->SelectedIndex; + this->combOFLC->Items->Clear(); + this->combOFLC->Items->AddRange(gcnew cli::array< System::Object^ >(5) {resources->GetString(L"combOFLC.Items"), resources->GetString(L"combOFLC.Items1"), + resources->GetString(L"combOFLC.Items2"), resources->GetString(L"combOFLC.Items3"), resources->GetString(L"combOFLC.Items4")}); + + resources->ApplyResources(this->combPEGI_BBFC, L"combPEGI_BBFC"); + int indexPEGI_BBFC = this->combPEGI_BBFC->SelectedIndex; + this->combPEGI_BBFC->Items->Clear(); + this->combPEGI_BBFC->Items->AddRange(gcnew cli::array< System::Object^ >(10) {resources->GetString(L"combPEGI_BBFC.Items"), + resources->GetString(L"combPEGI_BBFC.Items1"), resources->GetString(L"combPEGI_BBFC.Items2"), resources->GetString(L"combPEGI_BBFC.Items3"), + resources->GetString(L"combPEGI_BBFC.Items4"), resources->GetString(L"combPEGI_BBFC.Items5"), resources->GetString(L"combPEGI_BBFC.Items6"), + resources->GetString(L"combPEGI_BBFC.Items7"), resources->GetString(L"combPEGI_BBFC.Items8"), resources->GetString(L"combPEGI_BBFC.Items9")}); + + resources->ApplyResources(this->combPEGI_PRT, L"combPEGI_PRT"); + int indexPEGI_PRT = this->combPEGI_PRT->SelectedIndex; + this->combPEGI_PRT->Items->Clear(); + this->combPEGI_PRT->Items->AddRange(gcnew cli::array< System::Object^ >(7) {resources->GetString(L"combPEGI_PRT.Items"), + resources->GetString(L"combPEGI_PRT.Items1"), resources->GetString(L"combPEGI_PRT.Items2"), resources->GetString(L"combPEGI_PRT.Items3"), + resources->GetString(L"combPEGI_PRT.Items4"), resources->GetString(L"combPEGI_PRT.Items5"), resources->GetString(L"combPEGI_PRT.Items6")}); + + resources->ApplyResources(this->combPEGI, L"combPEGI"); + int indexPEGI = this->combPEGI->SelectedIndex; + this->combPEGI->Items->Clear(); + this->combPEGI->Items->AddRange(gcnew cli::array< System::Object^ >(7) {resources->GetString(L"combPEGI.Items"), resources->GetString(L"combPEGI.Items1"), + resources->GetString(L"combPEGI.Items2"), resources->GetString(L"combPEGI.Items3"), resources->GetString(L"combPEGI.Items4"), + resources->GetString(L"combPEGI.Items5"), resources->GetString(L"combPEGI.Items6")}); + + resources->ApplyResources(this->combUSK, L"combUSK"); + int indexUSK = this->combUSK->SelectedIndex; + this->combUSK->Items->Clear(); + this->combUSK->Items->AddRange(gcnew cli::array< System::Object^ >(6) {resources->GetString(L"combUSK.Items"), resources->GetString(L"combUSK.Items1"), + resources->GetString(L"combUSK.Items2"), resources->GetString(L"combUSK.Items3"), resources->GetString(L"combUSK.Items4"), resources->GetString(L"combUSK.Items5")}); + + resources->ApplyResources(this->combESRB, L"combESRB"); + int indexESRB = this->combESRB->SelectedIndex; + this->combESRB->Items->Clear(); + this->combESRB->Items->AddRange(gcnew cli::array< System::Object^ >(7) {resources->GetString(L"combESRB.Items"), resources->GetString(L"combESRB.Items1"), + resources->GetString(L"combESRB.Items2"), resources->GetString(L"combESRB.Items3"), resources->GetString(L"combESRB.Items4"), + resources->GetString(L"combESRB.Items5"), resources->GetString(L"combESRB.Items6")}); + + resources->ApplyResources(this->combCERO, L"combCERO"); + int indexCERO = this->combCERO->SelectedIndex; + this->combCERO->Items->Clear(); + this->combCERO->Items->AddRange(gcnew cli::array< System::Object^ >(6) {resources->GetString(L"combCERO.Items"), resources->GetString(L"combCERO.Items1"), + resources->GetString(L"combCERO.Items2"), resources->GetString(L"combCERO.Items3"), resources->GetString(L"combCERO.Items4"), + resources->GetString(L"combCERO.Items5")}); + + resources->ApplyResources(this->labRegion, L"labRegion"); + resources->ApplyResources(this->cboxIsEULA, L"cboxIsEULA"); + + resources->ApplyResources(this->combRegion, L"combRegion"); + int indexRegion = this->combRegion->SelectedIndex; + this->combRegion->Items->Clear(); + this->combRegion->Items->AddRange(gcnew cli::array< System::Object^ >(8) {resources->GetString(L"combRegion.Items"), resources->GetString(L"combRegion.Items1"), + resources->GetString(L"combRegion.Items2"), resources->GetString(L"combRegion.Items3"), resources->GetString(L"combRegion.Items4"), + resources->GetString(L"combRegion.Items5"), resources->GetString(L"combRegion.Items6"), resources->GetString(L"combRegion.Items7")}); +#if defined(METWL_VER_APPTYPE_SYSTEM) || defined(METWL_VER_APPTYPE_SECURE) || defined(METWL_VER_APPTYPE_LAUNCHER) + if( langname->Equals( "ja" ) ) + { + this->combRegion->Items->Add( gcnew System::String( L"S[W" ) ); + } + else + { + this->combRegion->Items->Add( gcnew System::String( L"All Region" ) ); + } +#endif + this->combRegion->SelectedIndex = indexRegion; + // ؂̂Ƃ̓ʑΉ + if( this->combRegion->DropDownStyle == System::Windows::Forms::ComboBoxStyle::DropDown ) + { + if( this->hSrl->IsRegionChina ) // ̃pXɂȂƂKSRL͓ǂݍ܂Ă + { + this->combRegion->Text = (langname == "ja")?"̂":"China only"; + } + else + { + this->combRegion->Text = (langname == "ja")?"؍̂":"Korea only"; + } + } + + // Region ςƂ̃CxgɌĂ΂ index -1 ɂ̂ Region ύX index ݒ + this->combCERO->SelectedIndex = indexCERO; + this->combESRB->SelectedIndex = indexESRB; + this->combUSK->SelectedIndex = indexUSK; + this->combPEGI->SelectedIndex = indexPEGI; + this->combPEGI_PRT->SelectedIndex = indexPEGI_PRT; + this->combPEGI_BBFC->SelectedIndex = indexPEGI_BBFC; + this->combOFLC->SelectedIndex = indexOFLC; + this->combGRB->SelectedIndex = indexGRB; + + //resources->ApplyResources(this->combDLCategory, L"combDLCategory"); + //index = this->combDLCategory->SelectedIndex; + //this->combDLCategory->Items->Clear(); + //this->combDLCategory->Items->AddRange(gcnew cli::array< System::Object^ >(6) {resources->GetString(L"combDLCategory.Items"), + // resources->GetString(L"combDLCategory.Items1"), resources->GetString(L"combDLCategory.Items2"), resources->GetString(L"combDLCategory.Items3"), + // resources->GetString(L"combDLCategory.Items4"), resources->GetString(L"combDLCategory.Items5")}); + //this->combDLCategory->SelectedIndex = index; + + resources->ApplyResources(this->cboxIsInputPerson2, L"cboxIsInputPerson2"); + resources->ApplyResources(this->gboxPerson2, L"gboxPerson2"); + resources->ApplyResources(this->labArbit4, L"labArbit4"); + resources->ApplyResources(this->labArbit3, L"labArbit3"); + resources->ApplyResources(this->labNTSC2Sur, L"labNTSC2Sur"); + resources->ApplyResources(this->tboxNTSC2, L"tboxNTSC2"); + resources->ApplyResources(this->labFax2, L"labFax2"); + resources->ApplyResources(this->labNTSC2Pre, L"labNTSC2Pre"); + resources->ApplyResources(this->tboxFax2, L"tboxFax2"); + resources->ApplyResources(this->tboxMail2, L"tboxMail2"); + resources->ApplyResources(this->tboxTel2, L"tboxTel2"); + resources->ApplyResources(this->tboxFurigana2, L"tboxFurigana2"); + resources->ApplyResources(this->tboxPerson2, L"tboxPerson2"); + resources->ApplyResources(this->tboxDepart2, L"tboxDepart2"); + resources->ApplyResources(this->labDepart2, L"labDepart2"); + resources->ApplyResources(this->tboxCompany2, L"tboxCompany2"); + resources->ApplyResources(this->labMail2, L"labMail2"); + resources->ApplyResources(this->labTel2, L"labTel2"); + resources->ApplyResources(this->labFurigana2, L"labFurigana2"); + resources->ApplyResources(this->labPerson2, L"labPerson2"); + resources->ApplyResources(this->labCompany2, L"labCompany2"); + resources->ApplyResources(this->gboxPerson1, L"gboxPerson1"); + resources->ApplyResources(this->labArbit2, L"labArbit2"); + resources->ApplyResources(this->labArbit1, L"labArbit1"); + resources->ApplyResources(this->labNTSC1Sur, L"labNTSC1Sur"); + resources->ApplyResources(this->labFax1, L"labFax1"); + resources->ApplyResources(this->labNTSC1Pre, L"labNTSC1Pre"); + resources->ApplyResources(this->tboxNTSC1, L"tboxNTSC1"); + resources->ApplyResources(this->tboxFax1, L"tboxFax1"); + resources->ApplyResources(this->tboxMail1, L"tboxMail1"); + resources->ApplyResources(this->tboxTel1, L"tboxTel1"); + resources->ApplyResources(this->tboxFurigana1, L"tboxFurigana1"); + resources->ApplyResources(this->tboxPerson1, L"tboxPerson1"); + resources->ApplyResources(this->tboxDepart1, L"tboxDepart1"); + resources->ApplyResources(this->labDepart1, L"labDepart1"); + resources->ApplyResources(this->tboxCompany1, L"tboxCompany1"); + resources->ApplyResources(this->labMail1, L"labMail1"); + resources->ApplyResources(this->labTel1, L"labTel1"); + resources->ApplyResources(this->labFurigana1, L"labFurigana1"); + resources->ApplyResources(this->labPerson1, L"labPerson1"); + resources->ApplyResources(this->labCompany1, L"labCompany1"); + resources->ApplyResources(this->tboxProductCode2, L"tboxProductCode2"); + resources->ApplyResources(this->tboxProductCode1, L"tboxProductCode1"); + resources->ApplyResources(this->tboxProductName, L"tboxProductName"); + resources->ApplyResources(this->labProductCode2, L"labProductCode2"); + resources->ApplyResources(this->labProductCode1, L"labProductCode1"); + resources->ApplyResources(this->dateSubmit, L"dateSubmit"); + resources->ApplyResources(this->dateRelease, L"dateRelease"); + resources->ApplyResources(this->gboxSubmitWay, L"gboxSubmitWay"); + resources->ApplyResources(this->rSubmitHand, L"rSubmitHand"); + resources->ApplyResources(this->rSubmitPost, L"rSubmitPost"); + resources->ApplyResources(this->labSubmiteDate, L"labSubmiteDate"); + resources->ApplyResources(this->labReleaseDate, L"labReleaseDate"); + resources->ApplyResources(this->labProductCode, L"labProductCode"); + resources->ApplyResources(this->labProductName, L"labProductName"); + resources->ApplyResources(this->labCapSubmitVer, L"labCapSubmitVer"); + resources->ApplyResources(this->numSubmitVersion, L"numSubmitVersion"); + resources->ApplyResources(this->labSubmitVer, L"labSubmitVer"); + resources->ApplyResources(this->labMultiForeign1, L"labMultiForeign1"); + resources->ApplyResources(this->tboxProductCode2Foreign3, L"tboxProductCode2Foreign3"); + resources->ApplyResources(this->tboxProductCode2Foreign2, L"tboxProductCode2Foreign2"); + resources->ApplyResources(this->labProductCode2Foreign, L"labProductCode2Foreign"); + resources->ApplyResources(this->cboxReleaseForeign, L"cboxReleaseForeign"); + resources->ApplyResources(this->labProductNameForeign, L"labProductNameForeign"); + resources->ApplyResources(this->tboxProductNameForeign, L"tboxProductNameForeign"); + resources->ApplyResources(this->labProductCode1Foreign, L"labProductCode1Foreign"); + resources->ApplyResources(this->tboxProductCode1Foreign, L"tboxProductCode1Foreign"); + resources->ApplyResources(this->labProductCodeForeign, L"labProductCodeForeign"); + resources->ApplyResources(this->tboxProductCode2Foreign1, L"tboxProductCode2Foreign1"); + resources->ApplyResources(this->gboxShared2Size, L"gboxShared2Size"); + resources->ApplyResources(this->labShared2Size5, L"labShared2Size5"); + resources->ApplyResources(this->labShared2Size4, L"labShared2Size4"); + resources->ApplyResources(this->labShared2Size3, L"labShared2Size3"); + resources->ApplyResources(this->labShared2Size2, L"labShared2Size2"); + resources->ApplyResources(this->labShared2Size1, L"labShared2Size1"); + resources->ApplyResources(this->labShared2Size0, L"labShared2Size0"); + resources->ApplyResources(this->tboxShared2Size5, L"tboxShared2Size5"); + resources->ApplyResources(this->tboxShared2Size4, L"tboxShared2Size4"); + resources->ApplyResources(this->tboxShared2Size3, L"tboxShared2Size3"); + resources->ApplyResources(this->tboxShared2Size2, L"tboxShared2Size2"); + resources->ApplyResources(this->tboxShared2Size1, L"tboxShared2Size1"); + resources->ApplyResources(this->tboxShared2Size0, L"tboxShared2Size0"); + resources->ApplyResources(this->cboxIsShared2, L"cboxIsShared2"); + resources->ApplyResources(this->labLib, L"labLib"); + resources->ApplyResources(this->gridSDK, L"gridSDK"); + resources->ApplyResources(this->labSDK, L"labSDK"); + resources->ApplyResources(this->gboxTWLExInfo, L"gboxTWLExInfo"); + resources->ApplyResources(this->labByte1, L"labByte1"); + resources->ApplyResources(this->labHex4, L"labHex4"); + resources->ApplyResources(this->labHex3, L"labHex3"); + resources->ApplyResources(this->tboxIsCodec, L"tboxIsCodec"); + resources->ApplyResources(this->labIsCodec, L"labIsCodec"); + resources->ApplyResources(this->labNormalRomOffset, L"labNormalRomOffset"); + resources->ApplyResources(this->tboxNormalRomOffset, L"tboxNormalRomOffset"); + resources->ApplyResources(this->labKeyTableRomOffset, L"labKeyTableRomOffset"); + resources->ApplyResources(this->tboxPrivateSize, L"tboxPrivateSize"); + resources->ApplyResources(this->labPrivateSize, L"labPrivateSize"); + resources->ApplyResources(this->tboxKeyTableRomOffset, L"tboxKeyTableRomOffset"); + resources->ApplyResources(this->labPublicSize, L"labPublicSize"); + resources->ApplyResources(this->tboxPublicSize, L"tboxPublicSize"); + resources->ApplyResources(this->cboxIsSubBanner, L"cboxIsSubBanner"); + resources->ApplyResources(this->cboxIsNormalJump, L"cboxIsNormalJump"); + resources->ApplyResources(this->cboxIsTmpJump, L"cboxIsTmpJump"); + resources->ApplyResources(this->gboxAccess, L"gboxAccess"); + resources->ApplyResources(this->labSDAccessRight, L"labSDAccessRight"); + resources->ApplyResources(this->labPhotoAccess, L"labPhotoAccess"); + resources->ApplyResources(this->labAccessOther, L"labAccessOther"); + resources->ApplyResources(this->tboxAccessOther, L"tboxAccessOther"); + resources->ApplyResources(this->tboxIsGameCardOn, L"tboxIsGameCardOn"); + resources->ApplyResources(this->labIsGameCardOn, L"labIsGameCardOn"); + resources->ApplyResources(this->labIsGameCardOn2, L"labIsGameCardOn2"); + resources->ApplyResources(this->cboxIsNAND, L"cboxIsNAND"); + resources->ApplyResources(this->cboxIsSD, L"cboxIsSD"); + resources->ApplyResources(this->gboxTitleID, L"gboxTitleID"); + resources->ApplyResources(this->labAppType, L"labAppType"); + resources->ApplyResources(this->labMedia, L"labMedia"); + resources->ApplyResources(this->tboxAppType, L"tboxAppType"); + resources->ApplyResources(this->tboxMedia, L"tboxMedia"); + resources->ApplyResources(this->labHex2, L"labHex2"); + resources->ApplyResources(this->tboxTitleIDLo, L"tboxTitleIDLo"); + resources->ApplyResources(this->labTitleIDLo, L"labTitleIDLo"); + resources->ApplyResources(this->labTitleIDHi, L"labTitleIDHi"); + resources->ApplyResources(this->tboxTitleIDHi, L"tboxTitleIDHi"); + resources->ApplyResources(this->tboxAppTypeOther, L"tboxAppTypeOther"); + resources->ApplyResources(this->labAppTypeOther, L"labAppTypeOther"); + resources->ApplyResources(this->labCaptionEx, L"labCaptionEx"); + resources->ApplyResources(this->tboxCaptionEx, L"tboxCaptionEx"); + resources->ApplyResources(this->gboxProd, L"gboxProd"); + resources->ApplyResources(this->menuStripAbove, L"menuStripAbove"); + resources->ApplyResources(this->stripFile, L"stripFile"); + resources->ApplyResources(this->stripItemOpenRom, L"stripItemOpenRom"); + resources->ApplyResources(this->stripItemSepFile1, L"stripItemSepFile1"); + resources->ApplyResources(this->stripItemSaveTemp, L"stripItemSaveTemp"); + resources->ApplyResources(this->stripItemLoadTemp, L"stripItemLoadTemp"); + resources->ApplyResources(this->exportToolStripMenuItem, L"exportToolStripMenuItem"); + resources->ApplyResources(this->stripItemRomInfoList, L"stripItemRomInfoList"); + resources->ApplyResources(this->stripItemErrorListRead, L"stripItemErrorListRead"); + resources->ApplyResources(this->stripItemErrorListCurrent, L"stripItemErrorListCurrent"); + resources->ApplyResources(this->stripItemRomInfoAndErrorListRead, L"stripItemRomInfoAndErrorListRead"); + resources->ApplyResources(this->stripItemRomInfoAndErrorListCurrent, L"stripItemRomInfoAndErrorListCurrent"); + resources->ApplyResources(this->stripMaster, L"stripMaster"); + resources->ApplyResources(this->stripItemSheet, L"stripItemSheet"); + resources->ApplyResources(this->stripItemSepMaster1, L"stripItemSepMaster1"); + resources->ApplyResources(this->stripItemMasterRom, L"stripItemMasterRom"); + resources->ApplyResources(this->stripItemMiddlewareXml, L"stripItemMiddlewareXml"); + resources->ApplyResources(this->stripItemMiddlewareHtml, L"stripItemMiddlewareHtml"); + resources->ApplyResources(this->stripLang, L"stripLang"); + resources->ApplyResources(this->stripItemEnglish, L"stripItemEnglish"); + resources->ApplyResources(this->stripItemJapanese, L"stripItemJapanese"); + resources->ApplyResources(this->tabMain, L"tabMain"); + resources->ApplyResources(this->tabRomInfo, L"tabRomInfo"); + resources->ApplyResources(this->gridLibrary, L"gridLibrary"); + resources->ApplyResources(this->colLibPublisher, L"colLibPublisher"); + resources->ApplyResources(this->colLibName, L"colLibName"); + resources->ApplyResources(this->tboxGuideRomInfo, L"tboxGuideRomInfo"); + resources->ApplyResources(this->tabTWLInfo, L"tabTWLInfo"); + resources->ApplyResources(this->gboxLaunch, L"gboxLaunch"); + resources->ApplyResources(this->labConnectIcon, L"labConnectIcon"); + resources->ApplyResources(this->tboxGuideTWLInfo, L"tboxGuideTWLInfo"); + resources->ApplyResources(this->gboxExFlags, L"gboxExFlags"); + resources->ApplyResources(this->tabNandSizeInfo, L"tabNandSizeInfo"); + //resources->ApplyResources(this->tboxGuideDLCategory, L"tboxGuideDLCategory"); + //resources->ApplyResources(this->gboxDLCategory, L"gboxDLCategory"); + resources->ApplyResources(this->tboxGuideNandSizeInfo, L"tboxGuideNandSizeInfo"); + resources->ApplyResources(this->gboxNandSize, L"gboxNandSize"); + resources->ApplyResources(this->labNandSize, L"labNandSize"); + resources->ApplyResources(this->labNandSizeFS, L"labNandSizeFS"); + resources->ApplyResources(this->labSrlSize, L"labSrlSize"); + resources->ApplyResources(this->labSumSize2, L"labSumSize2"); + resources->ApplyResources(this->labSumSize, L"labSumSize"); + resources->ApplyResources(this->labSubBannerSize, L"labSubBannerSize"); + resources->ApplyResources(this->labTmdSize, L"labTmdSize"); + resources->ApplyResources(this->tabRomEditInfo, L"tabRomEditInfo"); + resources->ApplyResources(this->gboxOtherSpec, L"gboxOtherSpec"); + resources->ApplyResources(this->cboxIsUGC, L"cboxIsUGC"); + resources->ApplyResources(this->cboxIsPhotoEx, L"cboxIsPhotoEx"); + resources->ApplyResources(this->butSetBack, L"butSetBack"); + resources->ApplyResources(this->tboxGuideRomEditInfo, L"tboxGuideRomEditInfo"); + resources->ApplyResources(this->gboxParental, L"gboxParental"); + resources->ApplyResources(this->cboxIsUnnecessaryRating, L"cboxIsUnnecessaryRating"); + resources->ApplyResources(this->tabSubmitInfo, L"tabSubmitInfo"); + resources->ApplyResources(this->labProductNameLimit, L"labProductNameLimit"); + resources->ApplyResources(this->tboxGuideSubmitInfo, L"tboxGuideSubmitInfo"); + resources->ApplyResources(this->gboxForeign, L"gboxForeign"); + resources->ApplyResources(this->labProductNameLimitForeign, L"labProductNameLimitForeign"); + resources->ApplyResources(this->labMultiForeign2, L"labMultiForeign2"); + resources->ApplyResources(this->tabCompanyInfo, L"tabCompanyInfo"); + resources->ApplyResources(this->tboxGuideCompanyInfo, L"tboxGuideCompanyInfo"); + resources->ApplyResources(this->tabErrorInfo, L"tabErrorInfo"); + resources->ApplyResources(this->tboxGuideErrorInfo, L"tboxGuideErrorInfo"); + resources->ApplyResources(this->gboxErrorTiming, L"gboxErrorTiming"); + resources->ApplyResources(this->rErrorCurrent, L"rErrorCurrent"); + resources->ApplyResources(this->rErrorReading, L"rErrorReading"); + resources->ApplyResources(this->labWarn, L"labWarn"); + resources->ApplyResources(this->labError, L"labError"); + resources->ApplyResources(this->gridWarn, L"gridWarn"); + resources->ApplyResources(this->gridError, L"gridError"); + resources->ApplyResources(this->labFile, L"labFile"); + resources->ApplyResources(this->labAssemblyVersion, L"labAssemblyVersion"); + resources->ApplyResources(this->colErrorName, L"colErrorName"); + resources->ApplyResources(this->colErrorBegin, L"colErrorBegin"); + resources->ApplyResources(this->colErrorEnd, L"colErrorEnd"); + resources->ApplyResources(this->colErrorCause, L"colErrorCause"); + resources->ApplyResources(this->colWarnName, L"colWarnName"); + resources->ApplyResources(this->colWarnBegin, L"colWarnBegin"); + resources->ApplyResources(this->colWarnEnd, L"colWarnEnd"); + resources->ApplyResources(this->colWarnCause, L"colWarnCause"); + resources->ApplyResources(this->rPurposeCardProduction, L"rPurposeCardProduction"); + resources->ApplyResources(this->rPurposeCardTouchTryDS, L"rPurposeCardTouchTryDS"); + resources->ApplyResources(this->rPurposeCardDistribution, L"rPurposeCardDistribution"); + resources->ApplyResources(this->rPurposeCardKiosk, L"rPurposeCardKiosk"); + resources->ApplyResources(this->rPurposeDSiWare, L"rPurposeDSiWare"); + resources->ApplyResources(this->rPurposeOther, L"rPurposeOther"); + resources->ApplyResources(this->gboxPurposeCard, L"gboxPurposeCard"); + resources->ApplyResources(this->gboxPurposeNand, L"gboxPurposeNand"); + resources->ApplyResources(this->gboxPurpose, L"gboxPurpose"); + resources->ApplyResources(this->labPurposeInError, L"labPurposeInError"); + resources->ApplyResources(this->labPrivateSaveDataPurpose, L"labPrivateSaveDataPurpose"); + resources->ApplyResources(this->tboxWarningPrivateSaveDataPurpose, L"tboxWarningPrivateSaveDataPurpose"); + resources->ApplyResources(this, L"$this"); + + // eLXg{bNX̕\LύX + if( !System::String::IsNullOrEmpty( this->tboxFile->Text ) ) + { + this->setSrlFormsTextBox(); + } + + // pʃbZ[W + // ftHgVisible=falseȂ̂Ń\[Xǂݍ݂Ȃƕ\ĂĂVisible=falseɏĂ܂ + // ޔĂKv + bool visible = this->tboxWarningChinaRating->Visible; + resources->ApplyResources(this->tboxWarningChinaRating, L"tboxWarningChinaRating"); + this->tboxWarningChinaRating->Visible = visible; + + // R{{bNXeLXg{bNX̒g̕\XV + this->combBackup_SelectedIndexChanged( nullptr, nullptr ); + this->cboxReleaseForeign_CheckedChanged( nullptr, nullptr ); + this->cboxIsInputPerson2_CheckedChanged( nullptr, nullptr ); + //this->rUsageOther_CheckedChanged( nullptr, nullptr ); + this->tabMain_SelectedIndexChanged( nullptr, nullptr ); + + // u[eBO\svvɃ`FbNĂƂ̂݃[eBÕR{{bNX̃eLXgύX + // (ȊÔƂɂApplyResourcesŎIɐ؂ւ) + if( this->cboxIsUnnecessaryRating->Checked ) + { + this->unnecessaryRating( this->combCERO ); + this->unnecessaryRating( this->combESRB ); + this->unnecessaryRating( this->combUSK ); + this->unnecessaryRating( this->combPEGI ); + this->unnecessaryRating( this->combPEGI_PRT ); + this->unnecessaryRating( this->combPEGI_BBFC ); + this->unnecessaryRating( this->combOFLC ); + this->unnecessaryRating( this->combGRB ); + } + + // uPrivateZ[uf[^̗prv̕\؂ւ + if( !this->tboxPrivateSaveDataPurpose->Enabled ) + { + if( this->isJapanese() ) + { + this->tboxPrivateSaveDataPurpose->Text = "Ȃ"; + } + else + { + this->tboxPrivateSaveDataPurpose->Text = "None"; + } + } + + // tH[EnableVisible؂ւ + this->changeFormInput( langname ); + + // s\̉s} + this->tboxGuideRomEditInfo->Text = this->tboxGuideRomEditInfo->Text->Replace( "", "\r\n" ); + this->tboxGuideNandSizeInfo->Text = this->tboxGuideNandSizeInfo->Text->Replace( "", "\r\n" ); + this->tboxGuideErrorInfo->Text = this->tboxGuideErrorInfo->Text->Replace( "", "\r\n" ); + + // o[WȂȂ̂ōĐݒ + System::Reflection::Assembly ^ass = System::Reflection::Assembly::GetEntryAssembly(); + this->labAssemblyVersion->Text = "ver." + this->getVersion(); + + // Avʂ‚ + System::String ^appstr = nullptr; +#ifdef METWL_VER_APPTYPE_LAUNCHER + appstr += "Launcher/"; +#endif +#ifdef METWL_VER_APPTYPE_SECURE + appstr += "Secure/"; +#endif +#ifdef METWL_VER_APPTYPE_SYSTEM + appstr += "System/"; +#endif + if( appstr != nullptr) + { + this->Text += " [ Supported App: " + appstr + "User ]"; + } + + // J`߂ + System::Threading::Thread::CurrentThread->CurrentUICulture = gcnew System::Globalization::CultureInfo(this->hDefaultCultureName,true); +} + +// end of file \ No newline at end of file diff --git a/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/MasterEditorTWL/Form_mwlist.cpp b/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/MasterEditorTWL/Form_mwlist.cpp new file mode 100644 index 0000000..618b1c2 --- /dev/null +++ b/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/MasterEditorTWL/Form_mwlist.cpp @@ -0,0 +1,192 @@ +// ---------------------------------------------- +// ~hEFAXg̏o +// ---------------------------------------------- + +#include "stdafx.h" +#include +#include "common.h" +#include "srl.h" +#include "deliverable.h" +#include "crc_whole.h" +#include "utility.h" +#include "lang.h" +#include "split_tad.h" +#include "FormError.h" +#include "Form1.h" + +using namespace System; +using namespace System::ComponentModel; +using namespace System::Collections; +using namespace System::Windows::Forms; +using namespace System::Data; +using namespace System::Drawing; +using namespace MasterEditorTWL; + +// ---------------------------------------------- +// XML`̃Xgɕt^Cg̍쐬 +// ---------------------------------------------- +System::Xml::XmlElement^ Form1::makeGameInfoXmlElement(System::Xml::XmlDocument ^doc) +{ + System::Xml::XmlElement ^game = doc->CreateElement( "game" ); + if( System::String::IsNullOrEmpty( this->tboxProductName->Text ) ) + { + MasterEditorTWL::appendXmlTag( doc, game, "product-name", this->tboxTitleName->Text ); // i͂̂Ƃ̓\tg^Cgőp + } + else + { + MasterEditorTWL::appendXmlTag( doc, game, "product-name", this->tboxProductName->Text ); + } + MasterEditorTWL::appendXmlTag( doc, game, "title-name", this->tboxTitleName->Text ); + MasterEditorTWL::appendXmlTag( doc, game, "game-code", this->tboxGameCode->Text ); + MasterEditorTWL::appendXmlTag( doc, game, "rom-version", this->tboxRemasterVer->Text ); + MasterEditorTWL::appendXmlTag( doc, game, "submit-version", System::Decimal::ToByte(this->numSubmitVersion->Value).ToString("X") ); + return game; +} + +// ---------------------------------------------- +// XML`̃Xg̖{̂ƂȂ~hEFAXg̍쐬(łĝœƗ) +// ---------------------------------------------- +System::Xml::XmlElement^ Form1::makeMiddlewareListXmlElement(System::Xml::XmlDocument ^doc, bool isCount) +{ + int NodeCount = 0; + + System::Xml::XmlElement ^midlist = doc->CreateElement( "middleware-list" ); + if( this->hSrl->hLicenseList != nullptr ) + { + for each( RCLicense ^lic in this->hSrl->hLicenseList ) + { + System::Xml::XmlElement ^mid = doc->CreateElement( "middleware" ); + if( isCount ) + { + mid->SetAttribute( "num", ( NodeCount++ ).ToString() ); + } + MasterEditorTWL::appendXmlTag( doc, mid, "publisher", lic->Publisher ); + MasterEditorTWL::appendXmlTag( doc, mid, "name", lic->Name ); + System::String ^note = ""; + if( this->isJapanese() ) + { + note = this->hMiddlewareNameList->search(lic->Publisher, lic->Name, true ); + } + else + { + note = this->hMiddlewareNameList->search(lic->Publisher, lic->Name, false ); + } + if( note == nullptr ) + { + note = ""; + } + MasterEditorTWL::appendXmlTag( doc, mid, "note", note ); + midlist->AppendChild( mid ); + } + } + return midlist; +} + +// ---------------------------------------------- +// XML`̃Xg쐬 +// ---------------------------------------------- +System::Void Form1::makeMiddlewareListXml(System::Xml::XmlDocument^ doc) +{ + System::Xml::XmlElement ^root = doc->CreateElement( "twl-master-editor" ); + System::Reflection::Assembly ^ass = System::Reflection::Assembly::GetEntryAssembly(); + root->SetAttribute( "version", this->getVersion() ); + doc->AppendChild( root ); + + // Q[ + root->AppendChild( this->makeGameInfoXmlElement(doc) ); + + // ~hEFAXg + root->AppendChild( this->makeMiddlewareListXmlElement(doc, false) ); +} + +// ---------------------------------------------- +// XML`ŏo +// ---------------------------------------------- +System::Boolean Form1::saveMiddlewareListXml( System::String ^filename ) +{ + System::Xml::XmlDocument ^doc = gcnew System::Xml::XmlDocument(); + doc->AppendChild( doc->CreateXmlDeclaration("1.0","UTF-8",nullptr) ); + + this->makeMiddlewareListXml( doc ); + + try + { + doc->Save( filename ); + } + catch ( System::Exception ^ex ) + { + (void)ex; + return false; + } + return true; +} + +// ---------------------------------------------- +// XSLߍXML`ŏo +// ---------------------------------------------- +System::Boolean Form1::saveMiddlewareListXmlEmbeddedXsl( System::String ^filename ) +{ + System::Xml::XmlDocument ^doc = gcnew System::Xml::XmlDocument(); + doc->AppendChild( doc->CreateXmlDeclaration("1.0","UTF-8",nullptr) ); + + // XSL𖄂ߍނ߂̐錾 + System::Xml::XmlProcessingInstruction ^proc = doc->CreateProcessingInstruction( "xml-stylesheet", "type='text/xml' href='#stylesheet'" ); + doc->AppendChild( proc ); + System::Xml::XmlDocumentType ^doctype = doc->CreateDocumentType( "twl-master-editor", nullptr, nullptr, "" ); + doc->AppendChild( doctype ); + + this->makeMiddlewareListXml( doc ); + + // ߍ݃X^CV[g + System::Xml::XmlDocument ^xsl = gcnew System::Xml::XmlDocument(); + System::Xml::XmlElement ^root = doc->DocumentElement; + try + { + xsl->Load( this->getMiddlewareListStyleFileEmbedded() ); + root->AppendChild( doc->ImportNode(xsl->DocumentElement, true) ); + } + catch ( System::Exception ^ex ) + { + (void)ex; + return false; + } + + try + { + doc->Save( filename ); + } + catch ( System::Exception ^ex ) + { + (void)ex; + return false; + } + return true; +} + +// ---------------------------------------------- +// HTML`ŏo(XML->HTMLϊ) +// ---------------------------------------------- +System::Boolean Form1::saveMiddlewareListHtml( System::String ^filename ) +{ + System::Xml::Xsl::XslCompiledTransform ^xslt = gcnew System::Xml::Xsl::XslCompiledTransform; + System::String ^tmpxml = gcnew System::String( this->getMiddlewareListTmpFile() ); + + if( !saveMiddlewareListXml(tmpxml) ) + { + return false; + } + + try + { + xslt->Load( this->getMiddlewareListStyleFile() ); + xslt->Transform( tmpxml, filename ); + } + catch (System::Exception ^s) + { + (void)s; + System::IO::File::Delete( tmpxml ); + return false; + } + System::IO::File::Delete( tmpxml ); + return true; +} diff --git a/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/MasterEditorTWL/Form_pctl.cpp b/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/MasterEditorTWL/Form_pctl.cpp new file mode 100644 index 0000000..caa61b7 --- /dev/null +++ b/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/MasterEditorTWL/Form_pctl.cpp @@ -0,0 +1,506 @@ +// --------------------------------------------------------------------- +// [Wƃ[eBOݒ +// --------------------------------------------------------------------- + +#include "stdafx.h" +#include +#include "common.h" +#include "srl.h" +#include "deliverable.h" +#include "crc_whole.h" +#include "utility.h" +#include "lang.h" +#include "FormError.h" +#include "Form1.h" + +using namespace System; +using namespace System::ComponentModel; +using namespace System::Collections; +using namespace System::Windows::Forms; +using namespace System::Data; +using namespace System::Drawing; +using namespace MasterEditorTWL; + +// ===================================================================== +// [W +// ===================================================================== + +// --------------------------------------------------------------------- +// GUĨR{{bNXROMwb_̃[WR[h肷 +// --------------------------------------------------------------------- + +void Form1::setRegionSrlPropaties(void) +{ + this->hSrl->IsRegionJapan = false; + this->hSrl->IsRegionAmerica = false; + this->hSrl->IsRegionEurope = false; + this->hSrl->IsRegionAustralia = false; + + // łƊ؍ł̓[WύXȂ + if( this->combRegion->DropDownStyle == System::Windows::Forms::ComboBoxStyle::DropDown ) // R{{bNXؐݒpɂȂĂƂ + { + return; + } + + // ALL[ŴƂ؃rbgĂ̂Œ؃rbg𗎂ƂĂKv + this->hSrl->IsRegionChina = false; + this->hSrl->IsRegionKorea = false; + + switch( this->combRegion->SelectedIndex ) + { + case 0: + this->hSrl->IsRegionJapan = true; + break; + + case 1: + this->hSrl->IsRegionAmerica = true; + break; + + case 2: + this->hSrl->IsRegionEurope = true; + break; + + case 3: + this->hSrl->IsRegionAustralia = true; + break; + + case 4: + this->hSrl->IsRegionEurope = true; + this->hSrl->IsRegionAustralia = true; + break; + + case 5: + this->hSrl->IsRegionAmerica = true; + this->hSrl->IsRegionAustralia = true; + break; + + case 6: + this->hSrl->IsRegionAmerica = true; + this->hSrl->IsRegionEurope = true; + this->hSrl->IsRegionAustralia = true; + break; + + case 7: + this->hSrl->IsRegionJapan = true; + this->hSrl->IsRegionAmerica = true; + this->hSrl->IsRegionEurope = true; + this->hSrl->IsRegionAustralia = true; + this->hSrl->IsRegionKorea = true; + break; + + // ؂͐ݒs + +#if defined(METWL_VER_APPTYPE_SYSTEM) || defined(METWL_VER_APPTYPE_SECURE) || defined(METWL_VER_APPTYPE_LAUNCHER) + case 8: + this->hSrl->IsRegionJapan = true; + this->hSrl->IsRegionAmerica = true; + this->hSrl->IsRegionEurope = true; + this->hSrl->IsRegionAustralia = true; + this->hSrl->IsRegionKorea = true; + this->hSrl->IsRegionChina = true; + break; +#endif //defined(METWL_VER_APPTYPE_SYSTEM) || defined(METWL_VER_APPTYPE_SECURE) || defined(METWL_VER_APPTYPE_LAUNCHER) + default: + break; + } +} + +// --------------------------------------------------------------------- +// ROMwb_̃[WR[hGUĨR{{bNX̒l肷 +// --------------------------------------------------------------------- + +void Form1::setRegionForms(void) +{ + System::Boolean isJapan = this->hSrl->IsRegionJapan; // [W + System::Boolean isAmerica = this->hSrl->IsRegionAmerica; + System::Boolean isEurope = this->hSrl->IsRegionEurope; + System::Boolean isAustralia = this->hSrl->IsRegionAustralia; + System::Boolean isKorea = this->hSrl->IsRegionKorea; + System::Boolean isChina = this->hSrl->IsRegionChina; + + // ؂̂ƂR{{bNXҏWs‚ɂ + if( !isJapan && !isAmerica && !isEurope && !isAustralia && !isKorea && isChina ) // + { + this->combRegion->DropDownStyle = System::Windows::Forms::ComboBoxStyle::DropDown; // RɃeLXg͂ł + this->combRegion->SelectedIndex = -1; // ݒ̏ɒ: eLXg̐ݒOɓĂȂƃeLXg͂fȂƂ + this->combRegion->Text = this->isJapanese()?METWL_STRING_CHINA_REGION_J:METWL_STRING_CHINA_REGION_E; + this->combRegion->Enabled = false; // ҏWs + } + else if( !isJapan && !isAmerica && !isEurope && !isAustralia && isKorea && !isChina ) // ؍ + { + this->combRegion->DropDownStyle = System::Windows::Forms::ComboBoxStyle::DropDown; + this->combRegion->SelectedIndex = -1; + this->combRegion->Text = this->isJapanese()?METWL_STRING_KOREA_REGION_J:METWL_STRING_KOREA_REGION_E; + this->combRegion->Enabled = false; + } + else // WorldWide + { + // I”\ɂ + this->combRegion->Enabled = true; + this->combRegion->DropDownStyle = System::Windows::Forms::ComboBoxStyle::DropDownList; // Xg̒IłȂ + + // R{{bNX̃ftHg̑Il + System::Int32 index = -1; + if( isJapan && !isAmerica && !isEurope && !isAustralia && !isKorea && !isChina ) + index = 0; + else if( !isJapan && isAmerica && !isEurope && !isAustralia && !isKorea && !isChina ) + index = 1; + else if( !isJapan && !isAmerica && isEurope && !isAustralia && !isKorea && !isChina ) + index = 2; + else if( !isJapan && !isAmerica && !isEurope && isAustralia && !isKorea && !isChina ) + index = 3; + else if( !isJapan && !isAmerica && isEurope && isAustralia && !isKorea && !isChina ) + index = 4; + else if( !isJapan && isAmerica && !isEurope && isAustralia && !isKorea && !isChina ) + index = 5; + else if( !isJapan && isAmerica && isEurope && isAustralia && !isKorea && !isChina ) + index = 6; + else if( isJapan && isAmerica && isEurope && isAustralia && isKorea && !isChina ) + index = 7; +#if defined(METWL_VER_APPTYPE_SYSTEM) || defined(METWL_VER_APPTYPE_SECURE) || defined(METWL_VER_APPTYPE_LAUNCHER) + if( isJapan && isAmerica && isEurope && isAustralia && isKorea && isChina ) + index = 8; +#endif + this->combRegion->SelectedIndex = index; + } + this->maskRatingForms(); // yA^Rg[ptH[̕\/\؂ւ +} + +// --------------------------------------------------------------------- +// [W̃tH[ɖ肪Ȃ`FbN +// --------------------------------------------------------------------- + +void Form1::checkRegionForms(void) +{ + // ؂̂Ƃɂ̓[WIłȂ̂ŃR{{bNXIĂ邩̃`FbN͕KvȂ + if( this->combRegion->DropDownStyle == System::Windows::Forms::ComboBoxStyle::DropDownList ) + { + this->checkComboBoxIndex( this->combRegion, "LabelRegion", true ); + } +} + + +// ===================================================================== +// [eBO +// ===================================================================== + +// --------------------------------------------------------------------- +// ROMwb_̃[eBO񂩂GUĨR{{bNXݒ肷 +// --------------------------------------------------------------------- + +void Form1::setRatingSrlProperties(void) +{ + // eĉ̃tH[͂𔽉f + this->hSrl->hArrayParentalIndex[ OS_TWL_PCTL_OGN_CERO ] = this->combCERO->SelectedIndex; + this->hSrl->hArrayParentalIndex[ OS_TWL_PCTL_OGN_ESRB ] = this->combESRB->SelectedIndex; + this->hSrl->hArrayParentalIndex[ OS_TWL_PCTL_OGN_USK ] = this->combUSK->SelectedIndex; + this->hSrl->hArrayParentalIndex[ OS_TWL_PCTL_OGN_PEGI_GEN ] = this->combPEGI->SelectedIndex; + this->hSrl->hArrayParentalIndex[ OS_TWL_PCTL_OGN_PEGI_PRT ] = this->combPEGI_PRT->SelectedIndex; + this->hSrl->hArrayParentalIndex[ OS_TWL_PCTL_OGN_PEGI_BBFC ] = this->combPEGI_BBFC->SelectedIndex; + this->hSrl->hArrayParentalIndex[ OS_TWL_PCTL_OGN_AGCB ] = this->combOFLC->SelectedIndex; + this->hSrl->hArrayParentalIndex[ OS_TWL_PCTL_OGN_GRB] = this->combGRB->SelectedIndex; + + // [eBO\svǂݒ + this->hSrl->IsUnnecessaryRating = this->cboxIsUnnecessaryRating->Checked; +} //setRatingSrlProperties() + +// --------------------------------------------------------------------- +// GUĨR{{bNX̑IROMwb_ɔf +// --------------------------------------------------------------------- + +void Form1::setRatingForms(void) +{ + // [eBO\svǂ𔻒f + this->cboxIsUnnecessaryRating->Checked = this->hSrl->IsUnnecessaryRating; + this->changeUnnecessaryRatingForms( true ); // svǂɉătH[ݒ + + // eĉ̃R{{bNX̃CfbNXݒ + this->combCERO->SelectedIndex = this->hSrl->hArrayParentalIndex[ OS_TWL_PCTL_OGN_CERO ]; + this->combESRB->SelectedIndex = this->hSrl->hArrayParentalIndex[ OS_TWL_PCTL_OGN_ESRB ]; + this->combUSK->SelectedIndex = this->hSrl->hArrayParentalIndex[ OS_TWL_PCTL_OGN_USK ]; + this->combPEGI->SelectedIndex = this->hSrl->hArrayParentalIndex[ OS_TWL_PCTL_OGN_PEGI_GEN ]; + this->combPEGI_PRT->SelectedIndex = this->hSrl->hArrayParentalIndex[ OS_TWL_PCTL_OGN_PEGI_PRT ]; + this->combPEGI_BBFC->SelectedIndex = this->hSrl->hArrayParentalIndex[ OS_TWL_PCTL_OGN_PEGI_BBFC ]; + this->combOFLC->SelectedIndex = this->hSrl->hArrayParentalIndex[ OS_TWL_PCTL_OGN_AGCB ]; + this->combGRB->SelectedIndex = this->hSrl->hArrayParentalIndex[ OS_TWL_PCTL_OGN_GRB ]; +} //setRatingForms() + +// --------------------------------------------------------------------- +// GUIŕ\郌[eBOĉ[Wɂĕς +// --------------------------------------------------------------------- + +void Form1::maskRatingForms(void) +{ + this->enableRating( this->combCERO, this->labCERO, nullptr ); + this->enableRating( this->combESRB, this->labESRB, nullptr ); + this->enableRating( this->combUSK, this->labUSK, nullptr ); + this->enableRating( this->combPEGI, this->labPEGI, nullptr ); + this->enableRating( this->combPEGI_PRT, this->labPEGI_PRT, nullptr ); + this->enableRating( this->combPEGI_BBFC, this->labPEGI_BBFC, nullptr ); + this->enableRating( this->combOFLC, this->labOFLC, nullptr ); + this->enableRating( this->combGRB, this->labGRB, nullptr ); + + // ؃[W͐ݒs‚Ȃ̂œʏ + this->tboxWarningChinaRating->Visible = false; + if( (this->combRegion->DropDownStyle == System::Windows::Forms::ComboBoxStyle::DropDown) // R{{bNX؃[WpɂȂĂƂ + && this->hSrl->IsRegionChina ) // SRLǂݍ܂Ă邱Ƃ͕ۏ؂ + { + this->tboxWarningChinaRating->Visible = true; // p̓ʃbZ[W\ + + // Ƀ[eBOĉȂ + this->disableRating( this->combCERO, this->labCERO, nullptr ); + this->disableRating( this->combESRB, this->labESRB, nullptr ); + this->disableRating( this->combUSK, this->labUSK, nullptr ); + this->disableRating( this->combPEGI, this->labPEGI, nullptr ); + this->disableRating( this->combPEGI_PRT, this->labPEGI_PRT, nullptr ); + this->disableRating( this->combPEGI_BBFC, this->labPEGI_BBFC, nullptr ); + this->disableRating( this->combOFLC, this->labOFLC, nullptr ); + this->disableRating( this->combGRB, this->labGRB, nullptr ); + } + else if( (this->combRegion->DropDownStyle == System::Windows::Forms::ComboBoxStyle::DropDown) + && this->hSrl->IsRegionKorea ) + { + // ؍GRB̂ + this->disableRating( this->combCERO, this->labCERO, nullptr ); + this->disableRating( this->combESRB, this->labESRB, nullptr ); + this->disableRating( this->combUSK, this->labUSK, nullptr ); + this->disableRating( this->combPEGI, this->labPEGI, nullptr ); + this->disableRating( this->combPEGI_PRT, this->labPEGI_PRT, nullptr ); + this->disableRating( this->combPEGI_BBFC, this->labPEGI_BBFC, nullptr ); + this->disableRating( this->combOFLC, this->labOFLC, nullptr ); + this->enableRating( this->combGRB, this->labGRB, nullptr ); + } + else + { + switch( this->combRegion->SelectedIndex ) + { + case 0: + // { + this->enableRating( this->combCERO, this->labCERO, nullptr ); + this->disableRating( this->combESRB, this->labESRB, nullptr ); + this->disableRating( this->combUSK, this->labUSK, nullptr ); + this->disableRating( this->combPEGI, this->labPEGI, nullptr ); + this->disableRating( this->combPEGI_PRT, this->labPEGI_PRT, nullptr ); + this->disableRating( this->combPEGI_BBFC, this->labPEGI_BBFC, nullptr ); + this->disableRating( this->combOFLC, this->labOFLC, nullptr ); + this->disableRating( this->combGRB, this->labGRB, nullptr ); + break; + + case 1: + // k + this->disableRating( this->combCERO, this->labCERO, nullptr ); + this->enableRating( this->combESRB, this->labESRB, nullptr ); + this->disableRating( this->combUSK, this->labUSK, nullptr ); + this->disableRating( this->combPEGI, this->labPEGI, nullptr ); + this->disableRating( this->combPEGI_PRT, this->labPEGI_PRT, nullptr ); + this->disableRating( this->combPEGI_BBFC, this->labPEGI_BBFC, nullptr ); + this->disableRating( this->combOFLC, this->labOFLC, nullptr ); + this->disableRating( this->combGRB, this->labGRB, nullptr ); + break; + + case 2: + // B + this->disableRating( this->combCERO, this->labCERO, nullptr ); + this->disableRating( this->combESRB, this->labESRB, nullptr ); + this->enableRating( this->combUSK, this->labUSK, nullptr ); + this->enableRating( this->combPEGI, this->labPEGI, nullptr ); + this->enableRating( this->combPEGI_PRT, this->labPEGI_PRT, nullptr ); + this->enableRating( this->combPEGI_BBFC, this->labPEGI_BBFC, nullptr ); + this->disableRating( this->combOFLC, this->labOFLC, nullptr ); + this->disableRating( this->combGRB, this->labGRB, nullptr ); + break; + + case 3: + // B + this->disableRating( this->combCERO, this->labCERO, nullptr ); + this->disableRating( this->combESRB, this->labESRB, nullptr ); + this->disableRating( this->combUSK, this->labUSK, nullptr ); + this->disableRating( this->combPEGI, this->labPEGI, nullptr ); + this->disableRating( this->combPEGI_PRT, this->labPEGI_PRT, nullptr ); + this->disableRating( this->combPEGI_BBFC, this->labPEGI_BBFC, nullptr ); + this->enableRating( this->combOFLC, this->labOFLC, nullptr ); + this->disableRating( this->combGRB, this->labGRB, nullptr ); + break; + + case 4: + // BƍB + this->disableRating( this->combCERO, this->labCERO, nullptr ); + this->disableRating( this->combESRB, this->labESRB, nullptr ); + this->enableRating( this->combUSK, this->labUSK, nullptr ); + this->enableRating( this->combPEGI, this->labPEGI, nullptr ); + this->enableRating( this->combPEGI_PRT, this->labPEGI_PRT, nullptr ); + this->enableRating( this->combPEGI_BBFC, this->labPEGI_BBFC, nullptr ); + this->enableRating( this->combOFLC, this->labOFLC, nullptr ); + this->disableRating( this->combGRB, this->labGRB, nullptr ); + break; + + case 5: + // kĂƍB + this->disableRating( this->combCERO, this->labCERO, nullptr ); + this->enableRating( this->combESRB, this->labESRB, nullptr ); + this->disableRating( this->combUSK, this->labUSK, nullptr ); + this->disableRating( this->combPEGI, this->labPEGI, nullptr ); + this->disableRating( this->combPEGI_PRT, this->labPEGI_PRT, nullptr ); + this->disableRating( this->combPEGI_BBFC, this->labPEGI_BBFC, nullptr ); + this->enableRating( this->combOFLC, this->labOFLC, nullptr ); + this->disableRating( this->combGRB, this->labGRB, nullptr ); + break; + + case 6: + // kĂƉBƍB + this->disableRating( this->combCERO, this->labCERO, nullptr ); + this->enableRating( this->combESRB, this->labESRB, nullptr ); + this->enableRating( this->combUSK, this->labUSK, nullptr ); + this->enableRating( this->combPEGI, this->labPEGI, nullptr ); + this->enableRating( this->combPEGI_PRT, this->labPEGI_PRT, nullptr ); + this->enableRating( this->combPEGI_BBFC, this->labPEGI_BBFC, nullptr ); + this->enableRating( this->combOFLC, this->labOFLC, nullptr ); + this->disableRating( this->combGRB, this->labGRB, nullptr ); + break; + + // S[ŴƂ͉disableɂȂ + default: + break; + }// switch + } +} //maskRatingForms() + +// --------------------------------------------------------------------- +// GUĨ[eBOݒɖ肪Ȃ`FbN +// --------------------------------------------------------------------- + +void Form1::checkRatingForms( System::Boolean inRegion, System::Windows::Forms::ComboBox ^comb, System::String ^ogn ) +{ + // [WɊ܂܂ĂȂƂ: 0NAۏ؂̂Ń`FbNKvȂ + if( !inRegion ) + return; + + // ݒ肳ĂȂƂG[ + if( (comb->SelectedIndex < 0) || (comb->SelectedIndex >= comb->Items->Count) ) + { + this->hErrorList->Add( this->makeErrorMsg(true, "LabelRating", "RatingInput", ogn) ); + } + + // R̂Ƃx + if( comb->SelectedIndex == (comb->Items->Count - 1) ) + { + this->hWarnList->Add( this->makeErrorMsg(true, "LabelRating", "RatingPendingSelect", ogn) ); + } +} //checkRatingForms() + +// --------------------------------------------------------------------- +// u[eBO\svvIꂽǂŃR{{bNX̓eς +// ROMǂݍݎсu[eBO\svv`FbN{bNXɕωƂɌĂяo +// --------------------------------------------------------------------- + +void Form1::changeUnnecessaryRatingForms( System::Boolean bInitial ) +{ + if( this->cboxIsUnnecessaryRating->Checked ) + { + this->unnecessaryRating( this->combCERO ); // \/\̑I͕ʂ̂Ƃł̂łł͑SĉsvɂĂ܂Ȃ + this->unnecessaryRating( this->combESRB ); + this->unnecessaryRating( this->combUSK ); + this->unnecessaryRating( this->combPEGI ); + this->unnecessaryRating( this->combPEGI_PRT ); + this->unnecessaryRating( this->combPEGI_BBFC ); + this->unnecessaryRating( this->combOFLC ); + this->unnecessaryRating( this->combGRB ); + } + else + { + this->necessaryRating( this->combCERO, bInitial ); + this->necessaryRating( this->combESRB, bInitial ); + this->necessaryRating( this->combUSK, bInitial ); + this->necessaryRating( this->combPEGI, bInitial ); + this->necessaryRating( this->combPEGI_PRT, bInitial ); + this->necessaryRating( this->combPEGI_BBFC, bInitial ); + this->necessaryRating( this->combOFLC, bInitial ); + this->necessaryRating( this->combGRB, bInitial ); + } +} + +// --------------------------------------------------------------------- +// [eBÕR{{bNXNA +// --------------------------------------------------------------------- + +void Form1::clearRating( System::Windows::Forms::ComboBox ^comb ) +{ + comb->SelectedIndex = -1; // 󔒂ɂ +} + +// --------------------------------------------------------------------- +// [eBÕR{{bNXҏW”\ȏԂɂ +// --------------------------------------------------------------------- + +void Form1::enableRating( System::Windows::Forms::ComboBox ^comb, + System::Windows::Forms::Label ^lab1, + System::Windows::Forms::Label ^lab2 ) +{ + comb->Enabled = true; + comb->Visible = true; + lab1->Visible = true; + if( lab2 != nullptr ) + { + lab2->Visible = true; + } + // omFɃ[eBOLqۂɁuĉ[WɊ܂܂Ă邩ǂv̏񂪕KvƂȂ + // comb->Enable͕ҏW”\ǂ\̂ + // [WɊ܂܂Ă邩ǂ̏ƂĎg悤Ɏv邪 + //u[eBO\svvcomb->EnabledfalseɂȂ΂ȂȂ̂ + // [WɊ܂܂Ă̂comb->EnabledgĔłȂ + // (comb->VisiblegcOȂʂ̃^uɈړƏfalseɂȂĂ܂) + // ̂ߖ֌WȐݒς邱ƂŃ[WɊ܂܂Ă邱Ƃ\ + comb->FlatStyle = System::Windows::Forms::FlatStyle::Standard; +} + +// --------------------------------------------------------------------- +// [eBÕR{{bNXҏWsԂɂ +// --------------------------------------------------------------------- + +void Form1::disableRating( System::Windows::Forms::ComboBox ^comb, + System::Windows::Forms::Label ^lab1, + System::Windows::Forms::Label ^lab2 ) +{ + this->clearRating( comb ); + comb->Enabled = false; + comb->Visible = false; + lab1->Visible = false; + if( lab2 != nullptr ) + { + lab2->Visible = false; + } + // [WɊ܂܂ȂƂ\ (\̂ł̒lςĂȂ) + comb->FlatStyle = System::Windows::Forms::FlatStyle::Popup; +} + +// --------------------------------------------------------------------- +// [eBÕR{{bNXɁu[eBO\svvƕ\ +// ҏWsԂɂ +// --------------------------------------------------------------------- + +void Form1::unnecessaryRating( System::Windows::Forms::ComboBox ^comb ) +{ + comb->DropDownStyle = System::Windows::Forms::ComboBoxStyle::DropDown; // RȃeLXg\”\ɂ + comb->SelectedIndex = -1; // IĂȂƂ݂Ȃ + System::String ^msg = this->isJapanese()?METWL_STRING_UNNECESSARY_RATING_J:METWL_STRING_UNNECESSARY_RATING_E; + comb->Text = msg; + comb->Enabled = false; // ҏWs”\ɂ +} + +// --------------------------------------------------------------------- +// [eBÕR{{bNX́u[eBO\svv̕\NA +// ҏW”\Ԃɂ +// --------------------------------------------------------------------- + +void Form1::necessaryRating( System::Windows::Forms::ComboBox ^comb, System::Boolean bInitial ) +{ + comb->DropDownStyle = System::Windows::Forms::ComboBoxStyle::DropDownList; // Xg̒炵IłȂ悤ɂ + if( !bInitial ) + { + comb->SelectedIndex = -1; // ROMǂݍݎ̏ꍇɂ̓R{{bNXȂ(ǂݍ񂾏Ă܂) + // GUIŕύXƂɂ͋󔒂ɏ(ēxݒ肳) + } + comb->Enabled = true; // ҏW”\ɂ +} + +// end of file \ No newline at end of file diff --git a/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/MasterEditorTWL/Form_rominfolist.cpp b/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/MasterEditorTWL/Form_rominfolist.cpp new file mode 100644 index 0000000..98742eb --- /dev/null +++ b/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/MasterEditorTWL/Form_rominfolist.cpp @@ -0,0 +1,338 @@ +// ---------------------------------------------- +// ROM񃊃Xg̏o +// ---------------------------------------------- + +#include "stdafx.h" +#include "Form1.h" + +using namespace System; +using namespace System::ComponentModel; +using namespace System::Collections; +using namespace System::Windows::Forms; +using namespace System::Data; +using namespace System::Drawing; +using namespace MasterEditorTWL; + +static int s_NodeCount = 0; + +// ====================================================== +// XML̈vf쐬 +// ====================================================== +static System::Xml::XmlElement^ CreateRomInfoListElement(System::Xml::XmlDocument ^doc, + System::String ^label, System::String ^val, System::String ^type) +{ + System::Xml::XmlElement ^tag = doc->CreateElement("info"); + tag->SetAttribute( "num", ( s_NodeCount++ ).ToString() ); + MasterEditorTWL::appendXmlTag( doc, tag, "label", label ); + MasterEditorTWL::appendXmlTag( doc, tag, "value", val ); + if( type ) + { + MasterEditorTWL::appendXmlTag( doc, tag, "type", type ); + } + return tag; +} + +static System::Xml::XmlElement^ CreateRomInfoListElement(System::Xml::XmlDocument ^doc, + System::String ^label, System::Boolean isCheck, System::String ^type) +{ + System::Xml::XmlElement ^tag = doc->CreateElement("info"); + tag->SetAttribute( "num", ( s_NodeCount++ ).ToString() ); + MasterEditorTWL::appendXmlTag( doc, tag, "label", label ); + MasterEditorTWL::appendXmlTag( doc, tag, "value", (isCheck)?"Yes":"No" ); + if( type ) + { + MasterEditorTWL::appendXmlTag( doc, tag, "type", type ); + } + return tag; +} + +static System::Xml::XmlElement^ CreateSpecialRomInfoListElement(System::Xml::XmlDocument ^doc, + System::String ^label, System::String ^val, System::String ^type) +{ + System::Xml::XmlElement ^tag = doc->CreateElement("sp-info"); // ʂȒl + tag->SetAttribute( "num", ( s_NodeCount++ ).ToString() ); + MasterEditorTWL::appendXmlTag( doc, tag, "label", label ); + MasterEditorTWL::appendXmlTag( doc, tag, "value", val ); + if( type ) + { + MasterEditorTWL::appendXmlTag( doc, tag, "type", type ); + } + return tag; +} + +static System::Xml::XmlElement^ CreateSDKVersionListElement(System::Xml::XmlDocument ^doc, + System::String ^version, System::Boolean isStatic) +{ + System::Xml::XmlElement ^tag = doc->CreateElement("sdk-version"); + tag->SetAttribute( "num", ( s_NodeCount++ ).ToString() ); + MasterEditorTWL::appendXmlTag( doc, tag, "version", version ); + MasterEditorTWL::appendXmlTag( doc, tag, "is-static", (isStatic)?"Main SDK":"" ); + return tag; +} + +// ====================================================== +// XML`ŃXg쐬 +// ====================================================== +void Form1::makeRomInfoListXml(System::Xml::XmlDocument ^doc, System::Boolean withError, System::Boolean isCurrent) +{ + if( withError ) + { + // G[ŐVɍXV + this->hErrorList->Clear(); + this->hWarnList->Clear(); + this->checkSrlForms(); + this->checkDeliverableForms(); + } + + System::Xml::XmlElement ^root = doc->CreateElement( "twl-master-editor" ); + System::Reflection::Assembly ^ass = System::Reflection::Assembly::GetEntryAssembly(); + root->SetAttribute( "version", this->getVersion() ); + doc->AppendChild( root ); + + // Q[ + root->AppendChild( this->makeGameInfoXmlElement(doc) ); + + // t@CpX + MasterEditorTWL::appendXmlTag( doc, root, "path", this->tboxFile->Text ); + + // 쐬 + System::Xml::XmlElement ^time = doc->CreateElement( "time-info" ); + System::DateTime ^ datetime = System::DateTime::Now; + time->SetAttribute( "year", datetime->Year.ToString() ); + switch( datetime->Month ) + { + case 1: time->SetAttribute( "month", "January" ); break; + case 2: time->SetAttribute( "month", "February" ); break; + case 3: time->SetAttribute( "month", "March" ); break; + case 4: time->SetAttribute( "month", "April" ); break; + case 5: time->SetAttribute( "month", "May" ); break; + case 6: time->SetAttribute( "month", "June" ); break; + case 7: time->SetAttribute( "month", "July" ); break; + case 8: time->SetAttribute( "month", "August" ); break; + case 9: time->SetAttribute( "month", "September" ); break; + case 10: time->SetAttribute( "month", "October" ); break; + case 11: time->SetAttribute( "month", "November" ); break; + case 12: time->SetAttribute( "month", "December" ); break; + default: time->SetAttribute( "month", datetime->Month.ToString() ); break; + } + time->SetAttribute( "day", datetime->Day.ToString() ); + time->SetAttribute( "time", datetime->Hour.ToString("D2") + ":" + datetime->Minute.ToString("D2") ); + root->AppendChild( time ); + + // + // e^uƂɏ܂Ƃ߂ + // + System::Xml::XmlElement ^section; + + // ROM{ + section = doc->CreateElement("basic-rom-info"); + MasterEditorTWL::appendXmlTag( doc, section, "index", this->isJapanese()?"ROM{":"Basic ROM Info" ); + { + s_NodeCount = 0; + System::Xml::XmlElement ^tag = doc->CreateElement("info-list"); + tag->AppendChild( CreateRomInfoListElement(doc, this->labTitleName->Text, this->tboxTitleName->Text, nullptr) ); + tag->AppendChild( CreateRomInfoListElement(doc, this->labGameCode->Text, this->tboxGameCode->Text, nullptr) ); + tag->AppendChild( CreateRomInfoListElement(doc, this->labMakerCode->Text, this->tboxMakerCode->Text, nullptr) ); + tag->AppendChild( CreateRomInfoListElement(doc, this->labPlatform->Text, this->tboxPlatform->Text, nullptr) ); + tag->AppendChild( CreateRomInfoListElement(doc, this->labRomType->Text, this->tboxRomLatency->Text, nullptr) ); + tag->AppendChild( CreateRomInfoListElement(doc, this->labRomSize->Text, this->tboxRomSize->Text, nullptr) ); + tag->AppendChild( CreateRomInfoListElement(doc, this->labRemasterVer->Text, this->tboxRemasterVer->Text, nullptr) ); + if( withError && !isCurrent ) // ver.1.8A őΉ (ROMǂݍݎ̂ƂCRCo) + { + tag->AppendChild( CreateRomInfoListElement(doc, this->labHeaderCRC->Text, this->tboxHeaderCRC->Text, nullptr) ); + tag->AppendChild( CreateRomInfoListElement(doc, this->labRomCRC->Text, this->tboxWholeCRC->Text, nullptr) ); + } + tag->AppendChild( CreateSpecialRomInfoListElement(doc, this->labCaptionEx->Text, this->tboxCaptionEx->Text, nullptr) ); + section->AppendChild(tag); + } + root->AppendChild(section); + + // TWLg^u + section = doc->CreateElement("twl-extended-info"); + MasterEditorTWL::appendXmlTag( doc, section, "index", this->isJapanese()?"TWLg":"TWL Extended Info" ); + { + s_NodeCount = 0; + System::Xml::XmlElement ^tag = doc->CreateElement("info-list"); + tag->AppendChild( CreateRomInfoListElement(doc, this->labTitleIDLo->Text, this->tboxTitleIDLo->Text, nullptr) ); + tag->AppendChild( CreateRomInfoListElement(doc, this->labTitleIDHi->Text, this->tboxTitleIDHi->Text, nullptr) ); + tag->AppendChild( CreateRomInfoListElement(doc, this->labAppType->Text, this->tboxAppType->Text, nullptr) ); + tag->AppendChild( CreateRomInfoListElement(doc, this->labAppTypeOther->Text, this->tboxAppTypeOther->Text, nullptr) ); + tag->AppendChild( CreateRomInfoListElement(doc, this->labIsCodec->Text, this->tboxIsCodec->Text, nullptr) ); + tag->AppendChild( CreateRomInfoListElement(doc, this->labKeyTableRomOffset->Text, this->tboxKeyTableRomOffset->Text, nullptr) ); + //tag->AppendChild( CreateRomInfoListElement(doc, this->labNormalRomOffset->Text, this->tboxNormalRomOffset->Text, nullptr) ); + tag->AppendChild( CreateRomInfoListElement(doc, this->cboxIsSubBanner->Text, this->cboxIsSubBanner->Checked, nullptr) ); + tag->AppendChild( CreateRomInfoListElement(doc, this->cboxIsTmpJump->Text, this->cboxIsTmpJump->Checked, nullptr) ); + tag->AppendChild( CreateRomInfoListElement(doc, this->cboxIsNormalJump->Text, this->cboxIsNormalJump->Checked, nullptr) ); + tag->AppendChild( CreateRomInfoListElement(doc, this->cboxIsEULA->Text, this->cboxIsEULA->Checked, nullptr) ); + tag->AppendChild( CreateRomInfoListElement(doc, this->labConnectIcon->Text, this->tboxConnectIcon->Text, nullptr) ); + section->AppendChild(tag); + } + root->AppendChild(section); + + // ANZX + section = doc->CreateElement("access-control-info"); + MasterEditorTWL::appendXmlTag( doc, section, "index", this->isJapanese()?"ANZXRg[":"Access Control" ); + { + s_NodeCount = 0; + System::Xml::XmlElement ^tag = doc->CreateElement("info-list"); + tag->AppendChild( CreateRomInfoListElement(doc, this->cboxIsSD->Text, this->cboxIsSD->Checked, nullptr) ); + tag->AppendChild( CreateRomInfoListElement(doc, this->cboxIsNAND->Text, this->cboxIsNAND->Checked, nullptr) ); + tag->AppendChild( CreateRomInfoListElement(doc, this->labSDAccessRight->Text, this->tboxSDAccessRight->Text, nullptr) ); + tag->AppendChild( CreateRomInfoListElement(doc, this->labPhotoAccess->Text, this->tboxPhotoAccess->Text, nullptr) ); + tag->AppendChild( CreateRomInfoListElement(doc, this->labAccessOther->Text, this->tboxAccessOther->Text, nullptr) ); + section->AppendChild(tag); + } + root->AppendChild(section); + + // DSiEFA + section = doc->CreateElement("dsi-ware-info"); + MasterEditorTWL::appendXmlTag( doc, section, "index", this->isJapanese()?"DSiEFA":"DSiWare Info" ); + { + s_NodeCount = 0; + System::Xml::XmlElement ^tag = doc->CreateElement("info-list"); + tag->AppendChild( CreateRomInfoListElement(doc, this->labMedia->Text, this->tboxMedia->Text, nullptr) ); + if( this->hSrl->IsNAND ) // J[hAvł͕svȏ + { + tag->AppendChild( CreateRomInfoListElement(doc, this->labSrlSize->Text, this->tboxSrlSizeFS->Text, nullptr) ); + tag->AppendChild( CreateRomInfoListElement(doc, this->labPublicSize->Text, this->tboxPublicSizeFS->Text, nullptr) ); + tag->AppendChild( CreateRomInfoListElement(doc, this->labPrivateSize->Text, this->tboxPrivateSizeFS->Text, nullptr) ); + tag->AppendChild( CreateRomInfoListElement(doc, this->labSubBannerSize->Text, this->tboxSubBannerSizeFS->Text, nullptr) ); + tag->AppendChild( CreateRomInfoListElement(doc, this->labTmdSize->Text, this->tboxTmdSizeFS->Text, nullptr) ); + tag->AppendChild( CreateRomInfoListElement(doc, this->labSumSize->Text + " " + this->labSumSize2->Text, + this->tboxSumSize->Text + " (" + this->tboxSumSizeMB->Text->Replace( ',', '.' ) + ")", nullptr) ); + } + section->AppendChild(tag); + } + root->AppendChild(section); + + // [Wƃ[eBO + section = doc->CreateElement("market-and-rating-info"); + MasterEditorTWL::appendXmlTag( doc, section, "index", this->isJapanese()?"[Wƃ[eBO":"Market and Rating" ); + { + System::Xml::XmlElement ^tag = doc->CreateElement("info-list"); + + s_NodeCount = 0; + + // [W + System::String ^region = ""; + if( this->combRegion->DropDownStyle == System::Windows::Forms::ComboBoxStyle::DropDown ) + { + // ؂̂Ƃ̓XgőIs‚̃eLXgR{{bNXɏĂ̂ło^ + region = this->combRegion->Text; + } + else + { + // WorldWide ̂Ƃ̓XgőI”\ȕo^ + if( this->combRegion->SelectedIndex < 0 ) + { + region = this->isJapanese()?METWL_STRING_UNDEFINED_REGION_J:METWL_STRING_UNDEFINED_REGION_E; // N蓾Ȃ + } + else + { + // XgőIĂeLXgo^ + region = dynamic_cast(this->combRegion->SelectedItem); + } + } + tag->AppendChild( CreateRomInfoListElement(doc, this->labRegion->Text, region, nullptr) ); + section->AppendChild(tag); + + // [eBO + tag->AppendChild( CreateRomInfoListElement(doc, this->labCERO->Text, + this->setDeliverableRatingOgnProperties(this->combCERO), nullptr) ); + tag->AppendChild( CreateRomInfoListElement(doc, this->labESRB->Text, + this->setDeliverableRatingOgnProperties(this->combESRB), nullptr) ); + tag->AppendChild( CreateRomInfoListElement(doc, this->labUSK->Text, + this->setDeliverableRatingOgnProperties(this->combUSK), nullptr) ); + tag->AppendChild( CreateRomInfoListElement(doc, this->labPEGI->Text, + this->setDeliverableRatingOgnProperties(this->combPEGI), nullptr) ); + tag->AppendChild( CreateRomInfoListElement(doc, this->labPEGI_PRT->Text, + this->setDeliverableRatingOgnProperties(this->combPEGI_PRT), nullptr) ); + tag->AppendChild( CreateRomInfoListElement(doc, this->labPEGI_BBFC->Text, + this->setDeliverableRatingOgnProperties(this->combPEGI_BBFC), nullptr) ); + tag->AppendChild( CreateRomInfoListElement(doc, this->labOFLC->Text, + this->setDeliverableRatingOgnProperties(this->combOFLC), nullptr) ); + tag->AppendChild( CreateRomInfoListElement(doc, this->labGRB->Text, + this->setDeliverableRatingOgnProperties(this->combGRB), nullptr) ); + section->AppendChild(tag); + } + root->AppendChild(section); + + // + // SDKo[W͓Ɨ\ + // + section = doc->CreateElement("sdk-version-info"); + MasterEditorTWL::appendXmlTag( doc, section, "index", this->isJapanese()?"SDKo[W":"SDK Version" ); + { + s_NodeCount = 0; + System::Xml::XmlElement ^tag = doc->CreateElement("sdk-version-list"); + for each( RCSDKVersion ^sdk in this->hSrl->hSDKList ) + { + tag->AppendChild( CreateSDKVersionListElement(doc, sdk->Version, sdk->IsStatic) ); + } + section->AppendChild(tag); + } + root->AppendChild(section); + + // + // ~hEFAXgƗ\ + // + section = doc->CreateElement("middleware-info"); + MasterEditorTWL::appendXmlTag( doc, section, "index", this->isJapanese()?"gpCu":"Libraries" ); + section->AppendChild( this->makeMiddlewareListXmlElement(doc, true) ); + root->AppendChild(section); + + // + // G[Ɨ\ + // + if( withError ) + { + section = doc->CreateElement("error-info"); + MasterEditorTWL::appendXmlTag( doc, section, "index", this->isJapanese()?"G[":"Error" ); + section->AppendChild( this->makeErrorListXmlElement(doc, isCurrent) ); + section->AppendChild( this->makeErrorListCaptionXmlElement(doc) ); + root->AppendChild(section); + + section = doc->CreateElement("warning-info"); + MasterEditorTWL::appendXmlTag( doc, section, "index", this->isJapanese()?"x":"Warning" ); + section->AppendChild( this->makeWarningListXmlElement(doc, isCurrent) ); + section->AppendChild( this->makeErrorListCaptionXmlElement(doc) ); + root->AppendChild(section); + + section = doc->CreateElement("error-num-info"); + section->SetAttribute( "error-title", this->isJapanese()?"G[":"Error" ); + section->SetAttribute( "error-num", this->countErrorListXmlElement( isCurrent ).ToString() ); + section->SetAttribute( "warning-title", this->isJapanese()?"x":"Warning" ); + section->SetAttribute( "warning-num", this->countWarningListXmlElement( isCurrent ).ToString() ); + root->AppendChild(section); + } + +} //Form1::makeRomInfoListXml + +// ====================================================== +// HTML`Ńt@Co +// ====================================================== +void Form1::makeRomInfoListHtml(System::String ^filepath, System::Boolean withError, System::Boolean isCurrent) +{ + System::String ^tmpxml = gcnew System::String( this->getXmlToHtmlTmpFile() ); + try + { + // TMPt@CXMLō쐬 + System::Xml::XmlDocument ^doc = gcnew System::Xml::XmlDocument(); + doc->AppendChild( doc->CreateXmlDeclaration("1.0","UTF-8",nullptr) ); + this->makeRomInfoListXml( doc, withError, isCurrent ); + doc->Save( tmpxml ); + // XML=>HTMLϊ + System::Xml::Xsl::XslCompiledTransform ^xslt = gcnew System::Xml::Xsl::XslCompiledTransform; + xslt->Load( this->getRomInfoListXsl() ); + xslt->Transform( tmpxml, filepath ); + } + catch (System::Exception ^s) + { + System::IO::File::Delete( tmpxml ); // ̂߂TMPt@C폜Ă + throw s; // ĂяoɗOthrow + return; + } + System::IO::File::Delete( tmpxml ); + +} //Form1::makeRomInfoListHtml(System::String ^filepath) + diff --git a/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/MasterEditorTWL/Form_srl.cpp b/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/MasterEditorTWL/Form_srl.cpp new file mode 100644 index 0000000..84626c6 --- /dev/null +++ b/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/MasterEditorTWL/Form_srl.cpp @@ -0,0 +1,471 @@ +// ---------------------------------------------- +// tH[SRLƂ̃f[^̂Ƃ +// ---------------------------------------------- + +#include "stdafx.h" +#include +#include "common.h" +#include "srl.h" +#include "deliverable.h" +#include "crc_whole.h" +#include "utility.h" +#include "lang.h" +#include "FormError.h" +#include "Form1.h" + +using namespace System; +using namespace System::ComponentModel; +using namespace System::Collections; +using namespace System::Windows::Forms; +using namespace System::Data; +using namespace System::Drawing; +using namespace MasterEditorTWL; + +// ---------------------------------------------- +// [SRL <= Form] +// ROMtH[擾 +// SRLNX̃vpeBɔf +// (ROMwb_ւ̔fCRCƏ̍ČvZȂ) +// ---------------------------------------------- +void Form1::setSrlProperties(void) +{ + // ROMwb_[0,0x160)̗̈Read OnlyŕύXȂ + + // [W + this->setRegionSrlPropaties(); + + // yA^Rg[ + this->setRatingSrlProperties(); +} //setSrlProperties() + +// ---------------------------------------------- +// [SRL => Form] +// SRLROMtH[ɔf +// (t@Cǂݍ܂Ă邱ƂO) +// ---------------------------------------------- +void Form1::setSrlForms(void) +{ + // NTR݊ + this->tboxTitleName->Text = this->hSrl->hTitleName; + this->tboxGameCode->Text = this->hSrl->hGameCode; + this->tboxMakerCode->Text = this->hSrl->hMakerCode; + this->tboxPlatform->Text = this->hSrl->hPlatform; + this->tboxRomSize->Text = this->hSrl->hRomSize; + this->tboxRomLatency->Text = this->hSrl->hLatency; + this->tboxRemasterVer->Text = this->hSrl->RomVersion.ToString("X2"); + if( this->hSrl->RomVersion == 0xE0 ) + { + this->cboxRemasterVerE->Checked = true; + } + else + { + this->cboxRemasterVerE->Checked = false; + } + + this->tboxHeaderCRC->Clear(); + this->tboxHeaderCRC->AppendText( "0x" ); + this->tboxHeaderCRC->AppendText( this->hSrl->HeaderCRC.ToString("X4") ); + + // TWLg + this->tboxTitleIDLo->Text = this->hSrl->hTitleIDLo; + this->tboxTitleIDHi->Text = this->hSrl->TitleIDHi.ToString("X8"); + this->tboxNormalRomOffset->Text = this->hSrl->NormalRomOffset.ToString("X8"); + this->tboxKeyTableRomOffset->Text = this->hSrl->KeyTableRomOffset.ToString("X8"); + this->cboxIsNormalJump->Checked = this->hSrl->IsNormalJump; + this->cboxIsTmpJump->Checked = this->hSrl->IsTmpJump; + this->cboxIsSubBanner->Checked = this->hSrl->IsSubBanner; + if( this->hSrl->IsCodecTWL == true ) + { + this->tboxIsCodec->Text = gcnew System::String( "TWL" ); + } + else + { + this->tboxIsCodec->Text = gcnew System::String( "DS" ); + } + this->cboxIsSD->Checked = this->hSrl->IsSD; + this->tboxSDAccessRight->Text = ""; // 2AROMǂݍނƂ̂߂ɏĂ + if( this->hSrl->IsSD && !this->hSrl->IsOldSDK52Release ) // SDANZXȂꍇɂ͋ + { + System::String ^sdright = ""; + if( this->hSrl->IsSDRead && this->hSrl->IsSDWrite ) + { + sdright = "Read/Write"; + } + else if( this->hSrl->IsSDRead ) + { + sdright = "Read"; + } + else if( this->hSrl->IsSDWrite ) + { + sdright = "Write"; + } + else + { + sdright = "None"; + } + this->tboxSDAccessRight->Text = sdright; + } + + this->cboxIsNAND->Checked = this->hSrl->IsNAND; + if( this->hSrl->IsGameCardNitro ) + { + this->tboxIsGameCardOn->Text = gcnew System::String( "ON(NTR)" ); + } + else if( this->hSrl->IsGameCardOn == true ) + { + this->tboxIsGameCardOn->Text = gcnew System::String( "ON(normal)" ); + } + else + { + this->tboxIsGameCardOn->Text = gcnew System::String( "OFF" ); + } + this->cboxIsShared2->Checked = this->hSrl->IsShared2; + this->tboxShared2Size0->Text = MasterEditorTWL::transSizeToString( this->hSrl->hShared2SizeArray[0] ); + this->tboxShared2Size1->Text = MasterEditorTWL::transSizeToString( this->hSrl->hShared2SizeArray[1] ); + this->tboxShared2Size2->Text = MasterEditorTWL::transSizeToString( this->hSrl->hShared2SizeArray[2] ); + this->tboxShared2Size3->Text = MasterEditorTWL::transSizeToString( this->hSrl->hShared2SizeArray[3] ); + this->tboxShared2Size4->Text = MasterEditorTWL::transSizeToString( this->hSrl->hShared2SizeArray[4] ); + this->tboxShared2Size5->Text = MasterEditorTWL::transSizeToString( this->hSrl->hShared2SizeArray[5] ); + if( this->hSrl->IsPhotoRead && this->hSrl->IsPhotoWrite ) + { + this->tboxPhotoAccess->Text = gcnew System::String("Read/Write"); + } + else if( this->hSrl->IsPhotoRead ) + { + this->tboxPhotoAccess->Text = gcnew System::String("Read Only"); + } + else if( this->hSrl->IsPhotoWrite ) + { + this->tboxPhotoAccess->Text = gcnew System::String("Write Only"); + } + else + { + this->tboxPhotoAccess->Text = gcnew System::String("None"); + } + + // NANDTCY + //this->tboxPublicSize->Text = MasterEditorTWL::transSizeToString( this->hSrl->PublicSize ); + //this->tboxPrivateSize->Text = MasterEditorTWL::transSizeToString( this->hSrl->PrivateSize ); + this->tboxSrlSize->Text = MasterEditorTWL::transSizeToString( this->hSrl->hNandUsedSize->SrlSize ); + this->tboxPublicSize->Text = MasterEditorTWL::transSizeToString( this->hSrl->hNandUsedSize->PublicSaveSize ); + this->tboxPrivateSize->Text = MasterEditorTWL::transSizeToString( this->hSrl->hNandUsedSize->PrivateSaveSize ); + this->tboxSubBannerSize->Text = MasterEditorTWL::transSizeToString( this->hSrl->hNandUsedSize->SubBannerSize ); + this->tboxTmdSize->Text = MasterEditorTWL::transSizeToString( this->hSrl->hNandUsedSize->TmdSize ); + // NAND̃NX^TCYɐ؂グl + this->tboxSrlSizeFS->Text = MasterEditorTWL::transSizeToStringKB( this->hSrl->hNandUsedSize->SrlSizeRoundUp ); + this->tboxPublicSizeFS->Text = MasterEditorTWL::transSizeToStringKB( this->hSrl->hNandUsedSize->PublicSaveSizeRoundUp ); + this->tboxPrivateSizeFS->Text = MasterEditorTWL::transSizeToStringKB( this->hSrl->hNandUsedSize->PrivateSaveSizeRoundUp ); + this->tboxSubBannerSizeFS->Text = MasterEditorTWL::transSizeToStringKB( this->hSrl->hNandUsedSize->SubBannerSizeRoundUp ); + this->tboxTmdSizeFS->Text = MasterEditorTWL::transSizeToStringKB( this->hSrl->hNandUsedSize->TmdSizeRoundUp ); + // a + this->tboxSumSize->Text = MasterEditorTWL::transSizeToStringKB( this->hSrl->hNandUsedSize->NandUsedSize ); + //this->tboxSumSizeMB->Text = MasterEditorTWL::transSizeToStringMB( this->hSrl->hNandUsedSize->NandUsedSize, 2 ); + this->tboxSumSizeMB->Text = MasterEditorTWL::transSizeToStringMB( this->hSrl->hNandUsedSize->NandUsedSize ); + + // PrivateZ[uf[^̗pr + if( this->hSrl->IsMediaNand && (this->hSrl->hNandUsedSize->PrivateSaveSize != 0) ) + { + this->tboxPrivateSaveDataPurpose->Enabled = true; + } + else + { + this->tboxPrivateSaveDataPurpose->Enabled = false; + if( this->isJapanese() ) + { + this->tboxPrivateSaveDataPurpose->Text = "Ȃ"; + } + else + { + this->tboxPrivateSaveDataPurpose->Text = "None"; + } + } + + // Av + if( this->hSrl->IsMediaNand ) + { + this->tboxMedia->Text = gcnew System::String( "NAND" ); + } + else + { + this->tboxMedia->Text = gcnew System::String( "Game Card" ); + } + + + if( this->hSrl->IsAppLauncher == true ) + { + this->tboxAppType->Text = gcnew System::String( "Launcher" ); + } + else if( this->hSrl->IsAppSecure == true ) + { + this->tboxAppType->Text = gcnew System::String( "Secure" ); + } + else if( this->hSrl->IsAppSystem == true ) + { + this->tboxAppType->Text = gcnew System::String( "System" ); + } + else if( this->hSrl->IsAppUser == true ) + { + this->tboxAppType->Text = gcnew System::String( "User" ); + } + else + { + this->tboxAppType->Text = gcnew System::String( "UNKNOWN" ); + } + + // ANZXRg[ ̑ + System::String ^acc = gcnew System::String(""); + if( this->hSrl->IsCommonClientKey == true ) + { + acc += "CommonClientKey.\r\n"; + } + if( this->hSrl->IsAesSlotBForES == true ) + { + acc += "AES-SlotB(ES).\r\n"; + } + if( this->hSrl->IsAesSlotCForNAM == true ) + { + acc += "AES-SlotC(NAM).\r\n"; + } + if( this->hSrl->IsAesSlotBForJpegEnc == true ) + { + acc += "Jpeg Signature for the Launcher.\r\n"; + } + if( this->hSrl->IsAesSlotBForJpegEncUser == true ) + { + acc += "Jpeg Signature.\r\n"; + } + if( this->hSrl->IsAesSlotAForSSL == true ) + { + acc += "AES-SlotA(SSL Client Cert).\r\n"; + } + if( this->hSrl->IsCommonClientKeyForDebugger == true ) + { + acc += "CommonClientKey(Debugger System Menu).\r\n"; + } + this->tboxAccessOther->Text = acc; + + // N + this->cboxIsEULA->Checked = this->hSrl->IsEULA; + + // ȐݒeLXg{bNXɔf + this->setSrlFormsTextBox(); + + // SDKo[WƃCu + this->gridSDK->Rows->Clear(); + if( this->hSrl->hSDKList != nullptr ) + { + for each( RCSDKVersion ^ver in this->hSrl->hSDKList ) + { + this->gridSDK->Rows->Add( gcnew cli::array{ ver->Version } ); + if( ver->IsStatic ) + { + System::Int32 last = this->gridSDK->Rows->Count - 2; // lj̍s + this->gridSDK->Rows[ last ]->DefaultCellStyle->ForeColor = System::Drawing::Color::Blue; + } + } + } + this->gridSDK->CurrentCell = nullptr; // ZI(nCCg)ĂȂԂɂ + + this->gridLibrary->Rows->Clear(); + if( this->hSrl->hLicenseList != nullptr ) + { + for each( RCLicense ^lic in this->hSrl->hLicenseList ) + { + this->gridLibrary->Rows->Add( gcnew cli::array{lic->Publisher, lic->Name} ); + if( lic->Publisher->Equals( "NINTENDO" ) && lic->Name->Equals( "DEBUG" ) ) + { + System::Int32 last = this->gridLibrary->Rows->Count - 2; + this->gridLibrary->Rows[ last ]->DefaultCellStyle->ForeColor = System::Drawing::Color::Red; + } + if( lic->Publisher->Equals( "NINTENDO" ) && lic->Name->StartsWith( "DEBUG DWC" ) ) + { + System::Int32 last = this->gridLibrary->Rows->Count - 2; + this->gridLibrary->Rows[ last ]->DefaultCellStyle->ForeColor = System::Drawing::Color::Red; + } + } + } + this->gridLibrary->CurrentCell = nullptr; + + // ҏW”\ + this->setRegionForms(); + this->setRatingForms(); // yA^Rg[֘A + + // ROMwb_ɂ͊֌WȂ + // NANDAv̂ƂɃobNAbvIɁuȂvɂĂ + this->maskBackupMemoryForms(); + //// J[hAv̂ƂDSi Ware̔̔JeSIɁuȂvɂĂ + //this->maskDLCategoryForms(); + // "pr"i + this->maskPurposeForms(); +} // setSrlForms() + +// ---------------------------------------------- +// [SRL => Form] +// SRL̓ȐݒtH[ɃZbg +// (؂ւŕ\ς̂œƗ) +// ---------------------------------------------- +void Form1::setSrlFormsTextBox() +{ + if( !this->hSrl->IsWiFiIcon && !this->hSrl->IsWirelessIcon ) + { + if( this->isJapanese() ) + this->tboxConnectIcon->Text = "ACR\Ȃ"; + else + this->tboxConnectIcon->Text = "No Icon"; + } + else if( this->hSrl->IsWiFiIcon && !this->hSrl->IsWirelessIcon ) + { + if( this->isJapanese() ) + this->tboxConnectIcon->Text = "Wi-FiRlNVACR"; + else + this->tboxConnectIcon->Text = "Wi-Fi Connection Icon"; + } + else if( !this->hSrl->IsWiFiIcon && this->hSrl->IsWirelessIcon ) + { + if( this->isJapanese() ) + this->tboxConnectIcon->Text = "CXʐMACR"; + else + this->tboxConnectIcon->Text = "Wireless Icon"; + } + else + { + if( this->isJapanese() ) + this->tboxConnectIcon->Text = "sȐݒ"; + else + this->tboxConnectIcon->Text = "Illegal Setting"; + } + + System::String ^appother = gcnew System::String(""); + if( !this->hSrl->IsLaunch ) + { + if( this->isJapanese() == true ) + appother += "`[\.\r\n"; + else + appother += "Not Display On the Launcher.\r\n"; + } + if( this->hSrl->IsDataOnly ) + { + if( this->isJapanese() == true ) + appother += "f[^p.\r\n"; + else + appother += "Data Only.\r\n"; + } + this->tboxAppTypeOther->Text = appother; + + this->tboxCaptionEx->Clear(); + if( this->hSrl->HasDSDLPlaySign ) + { + if( this->isJapanese() == true ) + this->tboxCaptionEx->Text += gcnew System::String( "DSN[u[gΉ.\r\n" ); + else + this->tboxCaptionEx->Text += gcnew System::String( "DS Clone Boot.\r\n" ); + } + if( this->hSrl->IsSCFGAccess ) + { + if( this->isJapanese() == true ) + this->tboxCaptionEx->Text += gcnew System::String( "SCFGWX^ANZX”\.\r\n" ); + else + this->tboxCaptionEx->Text += gcnew System::String( "SDFC Register Accessible.\r\n" ); + } +} // setSrlFormsTextBox() + +// ---------------------------------------------- +// tH[̓͂`FbN +// ---------------------------------------------- +System::Boolean Form1::checkSrlForms(void) +{ + // [W + this->checkRegionForms(); + + // [eBÕ`FbN邽߂Ƀ[W߂ + System::Boolean bJapan = false; + System::Boolean bAmerica = false; + System::Boolean bEurope = false; + System::Boolean bAustralia = false; + System::Boolean bKorea = false; + switch( this->combRegion->SelectedIndex ) + { + case 0: + bJapan = true; + break; + case 1: + bAmerica = true; + break; + case 2: + bEurope = true; + break; + case 3: + bAustralia = true; + break; + case 4: + bEurope = true; + bAustralia = true; + break; + case 5: + bAmerica = true; + bAustralia = true; + break; + case 6: + bAmerica = true; + bEurope = true; + bAustralia = true; + break; + case 7: + bJapan = true; + bAmerica = true; + bEurope = true; + bAustralia = true; + bKorea = true; + break; + +#if defined(METWL_VER_APPTYPE_SYSTEM) || defined(METWL_VER_APPTYPE_SECURE) || defined(METWL_VER_APPTYPE_LAUNCHER) + case 8: + bJapan = true; + bAmerica = true; + bEurope = true; + bAustralia = true; + bKorea = true; + this->hWarnList->Add( gcnew RCMrcError( + "[W", 0x1b0, 0x1b3, "S[Wݒ肳Ă܂Bdnʂɐݒ肷KvȂmFB", + "Region", "All Region is set. Please check necessity for setting each region individually.", true, true, + RCMrcError::PurposeType::Common ) ); + break; +#endif + default: + break; + } + + // ؍͑IłȂ̂œȏƂȂ + if( (this->combRegion->DropDownStyle == System::Windows::Forms::ComboBoxStyle::DropDown) + && this->hSrl->IsRegionKorea ) + { + bKorea = true; + } + + // yA^Rg[ + if( this->cboxIsUnnecessaryRating->Checked ) + { + this->hWarnList->Add( this->makeErrorMsg(true, "LabelRating", "RatingUnnecessarySelect") ); + } + else + { + this->checkRatingForms( bJapan, this->combCERO, this->labCERO->Text ); + this->checkRatingForms( bAmerica, this->combESRB, this->labESRB->Text ); + this->checkRatingForms( bEurope, this->combUSK, this->labUSK->Text ); + this->checkRatingForms( bEurope, this->combPEGI, this->labPEGI->Text ); + this->checkRatingForms( bEurope, this->combPEGI_PRT, this->labPEGI_PRT->Text ); + this->checkRatingForms( bEurope, this->combPEGI_BBFC, this->labPEGI_BBFC->Text ); + this->checkRatingForms( bAustralia, this->combOFLC, this->labOFLC->Text ); + this->checkRatingForms( bKorea, this->combGRB, this->labGRB->Text ); + } + + // ЂƂƂG[o^ + // SRLoCiɉe^G[݂邩`FbN +#ifdef METWL_LIGHT_CHECK + return this->isValidAffectRomModified(); +#else + return this->isValidAffectRom(); +#endif +} // checkSrlForms() + +// end of file \ No newline at end of file diff --git a/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/MasterEditorTWL/Form_tmp.cpp b/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/MasterEditorTWL/Form_tmp.cpp new file mode 100644 index 0000000..940c711 --- /dev/null +++ b/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/MasterEditorTWL/Form_tmp.cpp @@ -0,0 +1,579 @@ +// ---------------------------------------------- +// ꎞt@C̎舵 +// ---------------------------------------------- + +#include "stdafx.h" +#include +#include "common.h" +#include "srl.h" +#include "deliverable.h" +#include "crc_whole.h" +#include "utility.h" +#include "lang.h" +#include "FormError.h" +#include "Form1.h" + +using namespace System; +using namespace System::ComponentModel; +using namespace System::Collections; +using namespace System::Windows::Forms; +using namespace System::Data; +using namespace System::Drawing; +using namespace MasterEditorTWL; + + +// ---------------------------------------------- +// ꎞۑ +// ---------------------------------------------- +System::Void Form1::saveTmp( System::String ^filename ) +{ + System::Xml::XmlDocument ^doc = gcnew System::Xml::XmlDocument(); + + doc->AppendChild( doc->CreateXmlDeclaration("1.0","UTF-8",nullptr) ); + System::Xml::XmlElement ^root = doc->CreateElement( "MasterEditorTWL" ); + doc->AppendChild( root ); + + // SRL̃pX + MasterEditorTWL::appendXmlTag( doc, root, "Srl", this->tboxFile->Text ); + + // + MasterEditorTWL::appendXmlTag( doc, root, "Lang", (this->isJapanese())?"J":"E" ); + + // tH[ + System::Xml::XmlElement ^form = doc->CreateElement( "Form" ); + root->AppendChild( form ); + + MasterEditorTWL::appendXmlTag( doc, form, "MasterEditorVersion", this->getVersion() ); + MasterEditorTWL::appendXmlTag( doc, form, "ProductName", this->tboxProductName->Text ); + MasterEditorTWL::appendXmlTag( doc, form, "ProductCode1", this->tboxProductCode1->Text ); + MasterEditorTWL::appendXmlTag( doc, form, "ProductCode2", this->tboxProductCode2->Text ); + MasterEditorTWL::appendXmlTag( doc, form, "ProductNameForeign", this->tboxProductNameForeign->Text ); + MasterEditorTWL::appendXmlTag( doc, form, "ProductCode1Foreign", this->tboxProductCode1Foreign->Text ); + MasterEditorTWL::appendXmlTag( doc, form, "ProductCode2Foreign1", this->tboxProductCode2Foreign1->Text ); + MasterEditorTWL::appendXmlTag( doc, form, "ProductCode2Foreign2", this->tboxProductCode2Foreign2->Text ); + MasterEditorTWL::appendXmlTag( doc, form, "ProductCode2Foreign3", this->tboxProductCode2Foreign3->Text ); + MasterEditorTWL::appendXmlTag( doc, form, "SubmitVersion", this->numSubmitVersion->Value.ToString() ); + MasterEditorTWL::appendXmlTag( doc, form, "Backup", this->combBackup->SelectedIndex.ToString() ); + MasterEditorTWL::appendXmlTag( doc, form, "BackupOther", this->tboxBackupOther->Text ); + MasterEditorTWL::appendXmlTag( doc, form, "ReleaseForeign", (this->cboxReleaseForeign->Checked)?"Y":"N" ); + MasterEditorTWL::appendXmlTag( doc, form, "Remarks", this->tboxCaption->Text ); + if( this->rSubmitInternet->Checked ) + { + MasterEditorTWL::appendXmlTag( doc, form, "SubmitWay", "Internet" ); + } + else if( this->rSubmitHand->Checked ) + { + MasterEditorTWL::appendXmlTag( doc, form, "SubmitWay", "Hand" ); + } + else + { + MasterEditorTWL::appendXmlTag( doc, form, "SubmitWay", "Mail" ); + } + + // pr + cli::array ^rbuts = gcnew cli::array + { + this->rPurposeCardProduction, + this->rPurposeCardTouchTryDS, + this->rPurposeCardDistribution, + this->rPurposeCardKiosk, + this->rPurposeDSiWare, + this->rPurposeOther + }; + cli::array ^strs = gcnew cli::array + { + "CardProduction", + "CardTouchTryDS", + "CardDistribution", + "CardKiosk", + "DSiWare", + "Other" + }; + int i; + for(i=0; i < rbuts->Length; i++ ) + { + if( rbuts[i]->Checked ) + { + MasterEditorTWL::appendXmlTag( doc, form, "Purpose", strs[i] ); + } + } + MasterEditorTWL::appendXmlTag( doc, form, "PurposeOther", this->tboxPurposeOther->Text ); + MasterEditorTWL::appendXmlTag( doc, form, "ReleaseDate", this->dateRelease->Value.ToString() ); + MasterEditorTWL::appendXmlTag( doc, form, "SubmitDate", this->dateSubmit->Value.ToString() ); + + //MasterEditorTWL::appendXmlTag( doc, form, "DLCategory", this->combDLCategory->SelectedIndex.ToString() ); + //MasterEditorTWL::appendXmlTag( doc, form, "DLCategoryOther", this->tboxDLCategoryOther->Text ); + + MasterEditorTWL::appendXmlTag( doc, form, "Company1", this->tboxCompany1->Text ); + MasterEditorTWL::appendXmlTag( doc, form, "Depart1", this->tboxDepart1->Text ); + MasterEditorTWL::appendXmlTag( doc, form, "Name1", this->tboxPerson1->Text ); + MasterEditorTWL::appendXmlTag( doc, form, "Furigana1", this->tboxFurigana1->Text ); + MasterEditorTWL::appendXmlTag( doc, form, "Tel1", this->tboxTel1->Text ); + MasterEditorTWL::appendXmlTag( doc, form, "Fax1", this->tboxFax1->Text ); + MasterEditorTWL::appendXmlTag( doc, form, "Mail1", this->tboxMail1->Text ); + MasterEditorTWL::appendXmlTag( doc, form, "NTSC1", this->tboxNTSC1->Text ); + MasterEditorTWL::appendXmlTag( doc, form, "InputPerson2", (this->cboxIsInputPerson2->Checked)?"Y":"N" ); + MasterEditorTWL::appendXmlTag( doc, form, "Company2", this->tboxCompany2->Text ); + MasterEditorTWL::appendXmlTag( doc, form, "Depart2", this->tboxDepart2->Text ); + MasterEditorTWL::appendXmlTag( doc, form, "Name2", this->tboxPerson2->Text ); + MasterEditorTWL::appendXmlTag( doc, form, "Furigana2", this->tboxFurigana2->Text ); + MasterEditorTWL::appendXmlTag( doc, form, "Tel2", this->tboxTel2->Text ); + MasterEditorTWL::appendXmlTag( doc, form, "Fax2", this->tboxFax2->Text ); + MasterEditorTWL::appendXmlTag( doc, form, "Mail2", this->tboxMail2->Text ); + MasterEditorTWL::appendXmlTag( doc, form, "NTSC2", this->tboxNTSC2->Text ); + + MasterEditorTWL::appendXmlTag( doc, form, "Region", this->combRegion->SelectedIndex.ToString() ); + MasterEditorTWL::appendXmlTag( doc, form, "IsUnnecessaryRating", (this->cboxIsUnnecessaryRating->Checked)?"Y":"N" ); + MasterEditorTWL::appendXmlTag( doc, form, "RatingCERO", this->combCERO->SelectedIndex.ToString() ); + MasterEditorTWL::appendXmlTag( doc, form, "RatingESRB", this->combESRB->SelectedIndex.ToString() ); + MasterEditorTWL::appendXmlTag( doc, form, "RatingUSK", this->combUSK->SelectedIndex.ToString() ); + MasterEditorTWL::appendXmlTag( doc, form, "RatingPEGI", this->combPEGI->SelectedIndex.ToString() ); + MasterEditorTWL::appendXmlTag( doc, form, "RatingPEGI_PRT", this->combPEGI_PRT->SelectedIndex.ToString() ); + MasterEditorTWL::appendXmlTag( doc, form, "RatingPEGI_BBFC", this->combPEGI_BBFC->SelectedIndex.ToString() ); + MasterEditorTWL::appendXmlTag( doc, form, "RatingOFLC", this->combOFLC->SelectedIndex.ToString() ); + MasterEditorTWL::appendXmlTag( doc, form, "RatingGRB", this->combGRB->SelectedIndex.ToString() ); + + MasterEditorTWL::appendXmlTag( doc, form, "IsUGC", (this->cboxIsUGC->Checked)?"Y":"N" ); + MasterEditorTWL::appendXmlTag( doc, form, "IsPhotoEx", (this->cboxIsPhotoEx->Checked)?"Y":"N" ); + + MasterEditorTWL::appendXmlTag( doc, form, "PrivateSaveDataPurpose", this->tboxPrivateSaveDataPurpose->Text ); + + try + { + doc->Save( filename ); + } + catch( System::Exception ^ex ) + { + (void)ex; + this->errMsg( "E_SaveTemp" ); + } +} //saveTmp() + +// ---------------------------------------------- +// ꎞt@C̓ǂݍ +// ---------------------------------------------- +void Form1::loadTmp( System::String ^filename ) +{ + System::Xml::XmlDocument ^doc = gcnew System::Xml::XmlDocument; + try + { + doc->Load( filename ); + } + catch( System::Exception ^ex ) + { + (void)ex; + this->errMsg( "E_LoadTemp" ); + return; + } + System::Xml::XmlElement ^root = doc->DocumentElement; + System::String ^text; + + // SRL + text = MasterEditorTWL::getXPathText( root, "/MasterEditorTWL/Srl" ); + if( !System::String::IsNullOrEmpty(text) ) // SRLt@CȂƂ̓X[ + { + if( this->loadRom(text) ) + { + this->tboxFile->Text = text; + this->clearOtherForms(); + } + } + + // tH[ + this->parseTmp( root, "/MasterEditorTWL/Form/ProductName", this->tboxProductName ); + this->parseTmp( root, "/MasterEditorTWL/Form/ProductCode1", this->tboxProductCode1 ); + this->parseTmp( root, "/MasterEditorTWL/Form/ProductCode2", this->tboxProductCode2 ); + this->parseTmp( root, "/MasterEditorTWL/Form/SubmitVersion", this->numSubmitVersion ); + this->parseTmp( root, "/MasterEditorTWL/Form/ReleaseDate", this->dateRelease ); + this->parseTmp( root, "/MasterEditorTWL/Form/SubmitDate", this->dateSubmit ); + this->parseTmp( root, "/MasterEditorTWL/Form/Backup", this->combBackup ); + this->combBackup->Enabled = true; // ƂŃ}XN + + this->tboxBackupOther->Enabled = false; + this->tboxBackupOther->Clear(); + if( this->combBackup->SelectedIndex == (this->combBackup->Items->Count - 1) ) + { + this->parseTmp( root, "/MasterEditorTWL/Form/BackupOther", this->tboxBackupOther ); + this->tboxBackupOther->Enabled = true; + } + + //// DSi Ware + //this->parseTmp( root, "/MasterEditorTWL/Form/DLCategory", this->combDLCategory ); + //this->combDLCategory->Enabled = true; // ƂŃ}XN + + //this->tboxDLCategoryOther->Enabled = false; + //this->tboxDLCategoryOther->Clear(); + //if( this->combDLCategory->SelectedIndex == (this->combDLCategory->Items->Count - 1) ) + //{ + // this->parseTmp( root, "/MasterEditorTWL/Form/DLCategoryOther", this->tboxDLCategoryOther ); + // this->tboxDLCategoryOther->Enabled = true; + //} + + cli::array ^rbuts; + cli::array ^strs; + + rbuts = gcnew cli::array{this->rSubmitHand, this->rSubmitPost, this->rSubmitInternet}; + strs = gcnew cli::array{"Hand","Mail","Internet"}; + this->parseTmp( root, "/MasterEditorTWL/Form/SubmitWay", rbuts, strs ); + + // pr + rbuts = gcnew cli::array + { + this->rPurposeCardProduction, + this->rPurposeCardTouchTryDS, + this->rPurposeCardDistribution, + this->rPurposeCardKiosk, + this->rPurposeDSiWare, + this->rPurposeOther + }; + strs = gcnew cli::array + { + "CardProduction", + "CardTouchTryDS", + "CardDistribution", + "CardKiosk", + "DSiWare", + "Other" + }; + this->parseTmp( root, "/MasterEditorTWL/Form/Purpose", rbuts, strs ); + if( this->rPurposeOther->Checked ) + { + this->tboxPurposeOther->Enabled = true; + this->parseTmp( root, "/MasterEditorTWL/Form/PurposeOther", this->tboxPurposeOther ); + } + + this->parseTmp( root, "/MasterEditorTWL/Form/ReleaseForeign", this->cboxReleaseForeign ); + this->tboxProductNameForeign->Enabled = false; + this->tboxProductCode1Foreign->Enabled = false; + this->tboxProductCode2Foreign1->Enabled = false; + this->tboxProductCode2Foreign2->Enabled = false; + this->tboxProductCode2Foreign3->Enabled = false; + this->tboxProductNameForeign->Clear(); + this->tboxProductCode1Foreign->Clear(); + this->tboxProductCode2Foreign1->Clear(); + this->tboxProductCode2Foreign2->Clear(); + this->tboxProductCode2Foreign3->Clear(); + if( this->cboxReleaseForeign->Checked ) + { + this->tboxProductNameForeign->Enabled = true; + this->tboxProductCode1Foreign->Enabled = true; + this->tboxProductCode2Foreign1->Enabled = true; + this->tboxProductCode2Foreign2->Enabled = true; + this->tboxProductCode2Foreign3->Enabled = true; + this->parseTmp( root, "/MasterEditorTWL/Form/ProductNameForeign", this->tboxProductNameForeign ); + this->parseTmp( root, "/MasterEditorTWL/Form/ProductCode1Foreign", this->tboxProductCode1Foreign ); + this->parseTmp( root, "/MasterEditorTWL/Form/ProductCode2Foreign1", this->tboxProductCode2Foreign1 ); + this->parseTmp( root, "/MasterEditorTWL/Form/ProductCode2Foreign2", this->tboxProductCode2Foreign2 ); + this->parseTmp( root, "/MasterEditorTWL/Form/ProductCode2Foreign3", this->tboxProductCode2Foreign3 ); + } + this->parseTmp( root, "/MasterEditorTWL/Form/Remarks", this->tboxCaption ); + + this->parseTmp( root, "/MasterEditorTWL/Form/Company1", this->tboxCompany1 ); + this->parseTmp( root, "/MasterEditorTWL/Form/Depart1", this->tboxDepart1 ); + this->parseTmp( root, "/MasterEditorTWL/Form/Name1", this->tboxPerson1 ); + this->parseTmp( root, "/MasterEditorTWL/Form/Furigana1", this->tboxFurigana1 ); + this->parseTmp( root, "/MasterEditorTWL/Form/Tel1", this->tboxTel1 ); + this->parseTmp( root, "/MasterEditorTWL/Form/Fax1", this->tboxFax1 ); + this->parseTmp( root, "/MasterEditorTWL/Form/Mail1", this->tboxMail1 ); + this->parseTmp( root, "/MasterEditorTWL/Form/NTSC1", this->tboxNTSC1 ); + this->parseTmp( root, "/MasterEditorTWL/Form/InputPerson2", this->cboxIsInputPerson2 ); + + this->gboxPerson2->Enabled = false; + this->tboxCompany2->Clear(); + this->tboxDepart2->Clear(); + this->tboxPerson2->Clear(); + this->tboxFurigana2->Clear(); + this->tboxTel2->Clear(); + this->tboxFax2->Clear(); + this->tboxMail2->Clear(); + this->tboxNTSC2->Clear(); + if( this->cboxIsInputPerson2->Checked ) + { + this->gboxPerson2->Enabled = true; + this->parseTmp( root, "/MasterEditorTWL/Form/Company2", this->tboxCompany2 ); + this->parseTmp( root, "/MasterEditorTWL/Form/Depart2", this->tboxDepart2 ); + this->parseTmp( root, "/MasterEditorTWL/Form/Name2", this->tboxPerson2 ); + this->parseTmp( root, "/MasterEditorTWL/Form/Furigana2", this->tboxFurigana2 ); + this->parseTmp( root, "/MasterEditorTWL/Form/Tel2", this->tboxTel2 ); + this->parseTmp( root, "/MasterEditorTWL/Form/Fax2", this->tboxFax2 ); + this->parseTmp( root, "/MasterEditorTWL/Form/Mail2", this->tboxMail2 ); + this->parseTmp( root, "/MasterEditorTWL/Form/NTSC2", this->tboxNTSC2 ); + } + + this->parseTmp( root, "/MasterEditorTWL/Form/Region", this->combRegion ); + this->parseTmp( root, "/MasterEditorTWL/Form/IsUnnecessaryRating", this->cboxIsUnnecessaryRating ); + this->parseTmp( root, "/MasterEditorTWL/Form/RatingCERO", this->combCERO ); + this->parseTmp( root, "/MasterEditorTWL/Form/RatingESRB", this->combESRB ); + this->parseTmp( root, "/MasterEditorTWL/Form/RatingUSK", this->combUSK ); + this->parseTmp( root, "/MasterEditorTWL/Form/RatingPEGI", this->combPEGI ); + this->parseTmp( root, "/MasterEditorTWL/Form/RatingPEGI_PRT", this->combPEGI_PRT ); + this->parseTmp( root, "/MasterEditorTWL/Form/RatingPEGI_BBFC", this->combPEGI_BBFC ); + this->parseTmp( root, "/MasterEditorTWL/Form/RatingOFLC", this->combOFLC ); + this->parseTmp( root, "/MasterEditorTWL/Form/RatingGRB", this->combGRB ); + + this->parseTmp( root, "/MasterEditorTWL/Form/IsUGC", this->cboxIsUGC ); + this->parseTmp( root, "/MasterEditorTWL/Form/IsPhotoEx", this->cboxIsPhotoEx ); + + this->parseTmp( root, "/MasterEditorTWL/Form/PrivateSaveDataPurpose", this->tboxPrivateSaveDataPurpose ); + + // + text = MasterEditorTWL::getXPathText( root, "/MasterEditorTWL/Lang" ); + if( !System::String::IsNullOrEmpty(text) && text->Equals("J") && this->stripItemJapanese->Enabled ) // {ꂪI”\ȂƂ̂ + { + this->stripItemEnglish->Checked = false; + this->stripItemJapanese->Checked = true; + this->changeJapanese(); + } + else + { + this->stripItemEnglish->Checked = true; + this->stripItemJapanese->Checked = false; + this->changeEnglish(); + } + + this->maskRatingForms(); // yA^Rg[[Wɍ킹 + this->changeUnnecessaryRatingForms(true); // xR{{bNXenableɂȂ̂ōĐݒ + this->maskBackupMemoryForms(); // NANDAv̂Ƃ̃obNAbv̎ݒ + this->maskPurposeForms(); + //this->maskDLCategoryForms(); +} //loadTmp() + +// ---------------------------------------------- +// Џ̕ۑ +// ---------------------------------------------- +System::Void Form1::saveCompany( System::String ^filename ) +{ + System::Xml::XmlDocument ^doc = gcnew System::Xml::XmlDocument(); + + doc->AppendChild( doc->CreateXmlDeclaration("1.0","UTF-8",nullptr) ); + System::Xml::XmlElement ^root = doc->CreateElement( "MasterEditorTWL" ); + doc->AppendChild( root ); + + // tH[ + System::Xml::XmlElement ^form = doc->CreateElement( "CompanyInfo" ); + root->AppendChild( form ); + + MasterEditorTWL::appendXmlTag( doc, form, "Company1", this->tboxCompany1->Text ); + MasterEditorTWL::appendXmlTag( doc, form, "Depart1", this->tboxDepart1->Text ); + MasterEditorTWL::appendXmlTag( doc, form, "Name1", this->tboxPerson1->Text ); + MasterEditorTWL::appendXmlTag( doc, form, "Furigana1", this->tboxFurigana1->Text ); + MasterEditorTWL::appendXmlTag( doc, form, "Tel1", this->tboxTel1->Text ); + MasterEditorTWL::appendXmlTag( doc, form, "Fax1", this->tboxFax1->Text ); + MasterEditorTWL::appendXmlTag( doc, form, "Mail1", this->tboxMail1->Text ); + MasterEditorTWL::appendXmlTag( doc, form, "NTSC1", this->tboxNTSC1->Text ); + MasterEditorTWL::appendXmlTag( doc, form, "InputPerson2", (this->cboxIsInputPerson2->Checked)?"Y":"N" ); + MasterEditorTWL::appendXmlTag( doc, form, "Company2", this->tboxCompany2->Text ); + MasterEditorTWL::appendXmlTag( doc, form, "Depart2", this->tboxDepart2->Text ); + MasterEditorTWL::appendXmlTag( doc, form, "Name2", this->tboxPerson2->Text ); + MasterEditorTWL::appendXmlTag( doc, form, "Furigana2", this->tboxFurigana2->Text ); + MasterEditorTWL::appendXmlTag( doc, form, "Tel2", this->tboxTel2->Text ); + MasterEditorTWL::appendXmlTag( doc, form, "Fax2", this->tboxFax2->Text ); + MasterEditorTWL::appendXmlTag( doc, form, "Mail2", this->tboxMail2->Text ); + MasterEditorTWL::appendXmlTag( doc, form, "NTSC2", this->tboxNTSC2->Text ); + + // o[W + MasterEditorTWL::appendXmlTag( doc, root, "MasterEditorVersion", this->getVersion() ); + + try + { + doc->Save( filename ); + } + catch( System::Exception ^ex ) + { + (void)ex; + return; // t@CȂƂȂ + } +} //saveTmp() + +// ---------------------------------------------- +// Џ̓ǂݍ +// ---------------------------------------------- +void Form1::loadCompany( System::String ^filename ) +{ + System::Xml::XmlDocument ^doc = gcnew System::Xml::XmlDocument; + try + { + doc->Load( filename ); + } + catch( System::Exception ^ex ) + { + (void)ex; + return; // t@CȂƂȂ + } + + System::Xml::XmlElement ^root = doc->DocumentElement; + + this->parseTmp( root, "/MasterEditorTWL/CompanyInfo/Company1", this->tboxCompany1 ); + this->parseTmp( root, "/MasterEditorTWL/CompanyInfo/Depart1", this->tboxDepart1 ); + this->parseTmp( root, "/MasterEditorTWL/CompanyInfo/Name1", this->tboxPerson1 ); + this->parseTmp( root, "/MasterEditorTWL/CompanyInfo/Tel1", this->tboxTel1 ); + this->parseTmp( root, "/MasterEditorTWL/CompanyInfo/Fax1", this->tboxFax1 ); + this->parseTmp( root, "/MasterEditorTWL/CompanyInfo/Mail1", this->tboxMail1 ); + this->parseTmp( root, "/MasterEditorTWL/CompanyInfo/InputPerson2", this->cboxIsInputPerson2 ); + if( this->isJapanese() ) + { + this->parseTmp( root, "/MasterEditorTWL/CompanyInfo/Furigana1", this->tboxFurigana1 ); + this->parseTmp( root, "/MasterEditorTWL/CompanyInfo/NTSC1", this->tboxNTSC1 ); + } + + this->gboxPerson2->Enabled = false; + this->tboxCompany2->Clear(); + this->tboxDepart2->Clear(); + this->tboxPerson2->Clear(); + this->tboxFurigana2->Clear(); + this->tboxTel2->Clear(); + this->tboxFax2->Clear(); + this->tboxMail2->Clear(); + this->tboxNTSC2->Clear(); + if( this->cboxIsInputPerson2->Checked ) + { + this->gboxPerson2->Enabled = true; + this->parseTmp( root, "/MasterEditorTWL/CompanyInfo/Company2", this->tboxCompany2 ); + this->parseTmp( root, "/MasterEditorTWL/CompanyInfo/Depart2", this->tboxDepart2 ); + this->parseTmp( root, "/MasterEditorTWL/CompanyInfo/Name2", this->tboxPerson2 ); + this->parseTmp( root, "/MasterEditorTWL/CompanyInfo/Tel2", this->tboxTel2 ); + this->parseTmp( root, "/MasterEditorTWL/CompanyInfo/Fax2", this->tboxFax2 ); + this->parseTmp( root, "/MasterEditorTWL/CompanyInfo/Mail2", this->tboxMail2 ); + if( this->isJapanese() ) + { + this->parseTmp( root, "/MasterEditorTWL/CompanyInfo/Furigana2", this->tboxFurigana2 ); + this->parseTmp( root, "/MasterEditorTWL/CompanyInfo/NTSC2", this->tboxNTSC2 ); + } + } +} //loadCompany() + + +// ---------------------------------------------- +// ꎞۑtH[ɕϊ +// ---------------------------------------------- +System::Boolean Form1::parseTmp( System::Xml::XmlElement ^root, System::String ^xpath, System::Windows::Forms::ComboBox ^comb ) +{ + // R{{bNX̕ۑ - CfbNX͈̔͂Ɋ܂܂邩ׂ(܂܂Ȃꍇ-1) + System::String ^text = MasterEditorTWL::getXPathText( root, xpath ); + if( System::String::IsNullOrEmpty( text ) ) + return false; + + try + { + System::Int32 index = System::Int32::Parse( text ); // eLXgɂ̓CfbNXۑĂ + if( (0 <= index) && (index < comb->Items->Count) ) + { + comb->SelectedIndex = index; + return true; + } + else + { + comb->SelectedIndex = -1; + return false; + } + } + catch ( System::Exception ^ex ) // 񂳂ĂƂ + { + (void)ex; + comb->SelectedIndex = -1; + return false; + } + return false; +} +System::Boolean Form1::parseTmp( System::Xml::XmlElement ^root, System::String ^xpath, System::Windows::Forms::NumericUpDown ^num ) +{ + // eLXg{bNX̕ۑ - ̂܂ܑ(ő𒴂ꍇ0ɂ) + System::String ^text = MasterEditorTWL::getXPathText( root, xpath ); + if( System::String::IsNullOrEmpty( text ) ) + return false; + + try + { + System::Int32 val = System::Int32::Parse( text ); // eLXgɂ͒lۑĂ + if( (0 <= val) && (val <= num->Maximum) ) + { + num->Value = val; + return true; + } + else + { + num->Value = 0; + return false; + } + } + catch ( System::Exception ^ex ) // 񂳂ĂƂ + { + (void)ex; + num->Value = 0; + return false; + } + return false; +} +System::Boolean Form1::parseTmp( System::Xml::XmlElement ^root, System::String ^xpath, + cli::array^rbuts, cli::array^textCands ) +{ + // WI{^̕ۑ - eLXgɍv邩ׂ(vȂꍇ͐擪̃WI{^`FbN) + System::String ^text = MasterEditorTWL::getXPathText( root, xpath ); + if( System::String::IsNullOrEmpty( text ) ) + return false; + + System::Int32 i; + System::Boolean bSearch = false; + for( i=0; i < rbuts->Length; i++ ) // XML̃eLXgǂ̃WI{^̃eLXgɍv邩`FbN + { + rbuts[i]->Checked = false; + if( textCands[i]->Equals( text ) ) + { + rbuts[i]->Checked = true; + bSearch = true; + } + } + if( !bSearch ) // vȂꍇ͍ŏ̃WI{^`FbN + { + rbuts[0]->Checked = true; + } + return bSearch; +} +System::Boolean Form1::parseTmp( System::Xml::XmlElement ^root, System::String ^xpath, System::Windows::Forms::CheckBox ^cbox ) +{ + // `FbN{^̕ۑ - Y/N𒲂ׂ(ȊȌꍇɂ̓`FbNȂ) + System::String ^text = MasterEditorTWL::getXPathText( root, xpath ); + if( System::String::IsNullOrEmpty( text ) ) + return false; + + if( text->Equals("Y") ) + cbox->Checked = true; + else + cbox->Checked = false; // sȒl܂ + return cbox->Checked; +} +System::Boolean Form1::parseTmp( System::Xml::XmlElement ^root, System::String ^xpath, System::Windows::Forms::TextBox ^tbox ) +{ + // eLXg{bNX̕ۑ - ̂܂ܑ(Ȃꍇ͋󔒂ɂ) + System::String ^text = MasterEditorTWL::getXPathText( root, xpath ); + if( System::String::IsNullOrEmpty( text ) ) + return false; + + if( text->Length > tbox->MaxLength ) + { + tbox->Text = gcnew System::String(""); + return false; + } + tbox->Text = text; + return true; +} +System::Boolean Form1::parseTmp( System::Xml::XmlElement ^root, System::String ^xpath, System::Windows::Forms::DateTimePicker ^date ) +{ + System::String ^text = MasterEditorTWL::getXPathText( root, xpath ); + if( System::String::IsNullOrEmpty( text ) ) + return false; + + System::Diagnostics::Debug::WriteLine( text ); + + try + { + date->Value = System::DateTime::Parse( text ); + } + catch( System::Exception ^ex ) + { + (void)ex; + date->Value = System::DateTime::Now; + return false; + } + return true; +} diff --git a/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/MasterEditorTWL/Form_util.cpp b/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/MasterEditorTWL/Form_util.cpp new file mode 100644 index 0000000..765a9c8 --- /dev/null +++ b/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/MasterEditorTWL/Form_util.cpp @@ -0,0 +1,486 @@ +#include "stdafx.h" +#include +#include "common.h" +#include "srl.h" +#include "deliverable.h" +#include "crc_whole.h" +#include "utility.h" +#include "lang.h" +#include "FormError.h" +#include "Form1.h" + +using namespace System; +using namespace System::ComponentModel; +using namespace System::Collections; +using namespace System::Windows::Forms; +using namespace System::Data; +using namespace System::Drawing; +using namespace MasterEditorTWL; + +// ---------------------------------------------- +// tH[̃`FbN +// ---------------------------------------------- + +// eLXg͂Ă邩`FbN +System::Boolean Form1::checkTextForm( System::String ^formtext, System::String ^tag ) +{ + System::String ^tmp = formtext->Replace( " ", "" ); // Xy[X݂̂̕G[ + if( (formtext == nullptr) || formtext->Equals("") || tmp->Equals("") ) + { + System::String ^labelJ = this->hMsg->getMessage(tag,"J"); + System::String ^labelE = this->hMsg->getMessage(tag,"E"); + System::String ^msgJ = this->hMsg->getMessage("TextBoxInput", "J"); + System::String ^msgE = this->hMsg->getMessage("TextBoxInput", "E"); + this->hErrorList->Add( gcnew RCMrcError( labelJ, 0, 0, msgJ, labelE, msgE, true, false, RCMrcError::PurposeType::Common ) ); + return false; + } + return true; +} +System::Boolean Form1::checkTextForm( System::String ^formtext, System::String ^title_tag, System::String ^msg_tag ) +{ + System::String ^tmp = formtext->Replace( " ", "" ); // Xy[X݂̂̕G[ + if( (formtext == nullptr) || formtext->Equals("") || tmp->Equals("") ) + { + System::String ^labelJ = this->hMsg->getMessage(title_tag,"J"); + System::String ^labelE = this->hMsg->getMessage(title_tag,"E"); + System::String ^msgJ = this->hMsg->getMessage(msg_tag, "J"); + System::String ^msgE = this->hMsg->getMessage(msg_tag, "E"); + this->hErrorList->Add( gcnew RCMrcError( labelJ, 0, 0, msgJ, labelE, msgE, true, false, RCMrcError::PurposeType::Common ) ); + return false; + } + return true; +} + +// l͂킩ǂ`FbN +System::Boolean Form1::checkNumRange( System::Int32 val, System::Int32 min, System::Int32 max, System::String ^tag ) +{ + if( (val < min) || (max < val) ) + { + System::String ^labelJ = this->hMsg->getMessage(tag,"J"); + System::String ^labelE = this->hMsg->getMessage(tag,"E"); + System::String ^msgJ = this->hMsg->getMessage("NumRangeInput", "J"); + System::String ^msgE = this->hMsg->getMessage("NumRangeInput", "E"); + this->hErrorList->Add( gcnew RCMrcError( labelJ, 0, 0, msgJ, labelE, msgE, true, false, RCMrcError::PurposeType::Common ) ); + return false; + } + return true; +} +System::Boolean Form1::checkNumRange( System::String ^strval, System::Int32 min, System::Int32 max, System::String ^tag ) +{ + try + { + System::Int32 i = System::Int32::Parse(strval); + return (this->checkNumRange( i, min, max, tag )); + } + catch ( System::FormatException ^ex ) + { + (void)ex; + return (this->checkNumRange( max+1, min, max, tag )); // Ks悤 max+1 + } +} +// R{{bNX`FbN +System::Boolean Form1::checkComboBoxIndex( System::Windows::Forms::ComboBox ^box, System::String ^tag, System::Boolean isAffectRom ) +{ + if( box->SelectedIndex < 0 ) + { + System::String ^labelJ = this->hMsg->getMessage(tag,"J"); + System::String ^labelE = this->hMsg->getMessage(tag,"E"); + System::String ^msgJ = this->hMsg->getMessage("ComboBoxInput", "J"); + System::String ^msgE = this->hMsg->getMessage("ComboBoxInput", "E"); + this->hErrorList->Add( gcnew RCMrcError( + labelJ, 0, 0, msgJ, labelE, msgE, true, isAffectRom, RCMrcError::PurposeType::Common ) ); + return false; + } + return true; +} + +// WI{^`FbN +System::Boolean Form1::checkRadioButton( cli::array ^rbuts, System::String ^tag ) +{ + bool checked = false; + for each( System::Windows::Forms::RadioButton ^r in rbuts ) + { + if( r->Checked ) + { + checked = true; + } + } + if( !checked ) + { + System::String ^labelJ = this->hMsg->getMessage(tag,"J"); + System::String ^labelE = this->hMsg->getMessage(tag,"E"); + System::String ^msgJ = this->hMsg->getMessage("RadioButtonInput", "J"); + System::String ^msgE = this->hMsg->getMessage("RadioButtonInput", "E"); + this->hErrorList->Add( gcnew RCMrcError( labelJ, 0, 0, msgJ, labelE, msgE, true, false, RCMrcError::PurposeType::Common ) ); + return false; + } + return true; +} + +// -------------------------------------------------------- +// G[̓o^ +// -------------------------------------------------------- + +// G[̍쐬 +RCMrcError^ Form1::makeErrorMsg( System::Boolean isAffectRom, System::String ^labeltag, System::String ^msgtag, ... cli::array ^args ) +{ + // Ot@C獀ږ擾 + System::String ^nameJ = this->hMsg->getMessage( labeltag, "J" ); + System::String ^nameE = this->hMsg->getMessage( labeltag, "E" ); + // bZ[W擾 + System::String ^fmtJ = this->hMsg->getMessage( msgtag, "J" ); // bZ[Wt@C珑擾 + System::String ^msgJ = System::String::Format( fmtJ, args ); // StringɓWJ + System::String ^fmtE = this->hMsg->getMessage( msgtag, "E" ); + System::String ^msgE = System::String::Format( fmtE, args ); + + return (gcnew RCMrcError( nameJ, 0, 0, msgJ, nameE, msgE, true, isAffectRom, RCMrcError::PurposeType::Common )); // C”\ȃG[Ƃč쐬 +} + +// pr̃WI{^̏Ԃɂĕ\邩ǂU蕪 +bool Form1::isDisplayOneGridErrorForPurpose( RCMrcError ^err ) +{ + bool is_display = false; + + if( ((err->Purpose & RCMrcError::PurposeType::Production) != (RCMrcError::PurposeType)0) && + (this->rPurposeCardProduction->Checked || + this->rPurposeDSiWare->Checked || + this->rPurposeOther->Checked) ) + { + is_display = true; + } + if( ((err->Purpose & RCMrcError::PurposeType::CardDistribution) != (RCMrcError::PurposeType)0) && + this->rPurposeCardDistribution->Checked ) + { + is_display = true; + } + if( ((err->Purpose & RCMrcError::PurposeType::CardKiosk) != (RCMrcError::PurposeType)0) && + this->rPurposeCardKiosk->Checked ) + { + is_display = true; + } + if( ((err->Purpose & RCMrcError::PurposeType::TouchTryDS) != (RCMrcError::PurposeType)0) && + this->rPurposeCardTouchTryDS->Checked) + { + is_display = true; + } + /* + Zone DSDownload Service ͗pr̃WI{^ljĂȂ̂Œlj܂ʼnȂ + */ + return is_display; +} //isDisplayOneGridErrorForPurpose() + +// ǂݍݎG[̓o^ +void Form1::setGridError( void ) +{ + this->gridError->Rows->Clear(); + if( this->hSrl->hErrorList != nullptr ) // ROMǂݍݎɔꂽG[ + { + for each( RCMrcError ^err in this->hSrl->hErrorList ) + { + if( this->isDisplayOneGridErrorForPurpose( err ) ) + { + this->gridError->Rows->Add( err->getAll(this->isJapanese()) ); + this->colorGridError( err ); + } + } + } +} + +void Form1::setGridWarn( void ) +{ + this->gridWarn->Rows->Clear(); + if( this->hSrl->hWarnList != nullptr ) + { + for each( RCMrcError ^err in this->hSrl->hWarnList ) + { + if( this->isDisplayOneGridErrorForPurpose( err ) ) + { + this->gridWarn->Rows->Add( err->getAll(this->isJapanese()) ); + this->colorGridWarn( err ); + } + } + } +} + +// ǂݍݎɌoC”\G[Ɍ݂̓͂𔽉f +void Form1::overloadGridError( void ) +{ + this->gridError->Rows->Clear(); + if( this->hSrl->hErrorList != nullptr ) // ROMǂݍݎɔꂽG[ + { + for each( RCMrcError ^err in this->hSrl->hErrorList ) + { + if( !err->IsEnableModify ) // C”\ȏ͕\Ȃ + { + if( this->isDisplayOneGridErrorForPurpose( err ) ) + { + this->gridError->Rows->Add( err->getAll(this->isJapanese()) ); + this->colorGridError( err ); + } + } + } + } + if( this->hErrorList != nullptr ) // ݂̃tH[͂甭ꂽG[ + { + for each( RCMrcError ^err in this->hErrorList ) + { + if( this->isDisplayOneGridErrorForPurpose( err ) ) + { + this->gridError->Rows->Add( err->getAll(this->isJapanese()) ); + this->colorGridError( err ); + } + } + } +} +void Form1::overloadGridWarn( void ) +{ + this->gridWarn->Rows->Clear(); + if( this->hSrl->hWarnList != nullptr ) + { + for each( RCMrcError ^err in this->hSrl->hWarnList ) + { + if( !err->IsEnableModify ) + { + if( this->isDisplayOneGridErrorForPurpose( err ) ) + { + this->gridWarn->Rows->Add( err->getAll(this->isJapanese()) ); + this->colorGridWarn( err ); + } + } + } + } + if( this->hWarnList != nullptr ) + { + for each( RCMrcError ^err in this->hWarnList ) + { + if( this->isDisplayOneGridErrorForPurpose( err ) ) + { + this->gridWarn->Rows->Add( err->getAll(this->isJapanese()) ); + this->colorGridWarn( err ); + } + } + } +} + +// Z̐Fς +void Form1::colorGridError( RCMrcError ^err ) +{ + if( err->IsAffectRom && !err->IsEnableModify ) // SRLɊ֌WŏCs + { + System::Int32 last = this->gridError->Rows->Count - 2; // lj̍s + this->gridError->Rows[ last ]->DefaultCellStyle->ForeColor = System::Drawing::Color::Red; + } + else if( err->IsAffectRom && err->IsEnableModify ) // SRLɊ֌WŏC + { + System::Int32 last = this->gridError->Rows->Count - 2; + this->gridError->Rows[ last ]->DefaultCellStyle->ForeColor = System::Drawing::Color::Blue; + } +} +void Form1::colorGridWarn( RCMrcError ^err ) +{ + if( err->IsAffectRom && !err->IsEnableModify ) + { + System::Int32 last = this->gridWarn->Rows->Count - 2; + this->gridWarn->Rows[ last ]->DefaultCellStyle->ForeColor = System::Drawing::Color::Red; + } + else if( err->IsAffectRom && err->IsEnableModify ) + { + System::Int32 last = this->gridWarn->Rows->Count - 2; + this->gridWarn->Rows[ last ]->DefaultCellStyle->ForeColor = System::Drawing::Color::Blue; + } +} + +// ܂Ƃ߂čXV +void Form1::updateGrid(void) +{ + if( this->rErrorReading->Checked == true ) + { + this->setGridError(); + this->setGridWarn(); + } + else + { + if( !System::String::IsNullOrEmpty(this->tboxFile->Text) ) + { + this->hErrorList->Clear(); + this->hWarnList->Clear(); + this->checkSrlForms(); + this->checkDeliverableForms(); + this->overloadGridError(); + this->overloadGridWarn(); + } + } +} + +// ---------------------------------------------- +// G[JEg +// ---------------------------------------------- + +// SRLɂ͊֌WȂޏ̃G[`FbN +System::Boolean Form1::isValidOnlyDeliverable(void) +{ + System::Int32 count = 0; + + // SRLNX̃G[Xgׂ͂SRLɊ֌ŴŃ`FbNȂ + // -> ̓G[݂̂̃`FbNł悢 + for each( RCMrcError ^err in this->hErrorList ) + { + if( !err->IsAffectRom ) + count++; + } + return (count == 0); +} + +// SRL̃oCiɉe鍀ڂɃG[邩`FbN +System::Boolean Form1::isValidAffectRom(void) +{ + System::Int32 count = 0; + + // SRLNX̏CsƒG[JEg + // (CƒG[͓͂ɂďCĂ邩Ȃ̂Ń`FbNȂ) + for each( RCMrcError ^err in this->hSrl->hErrorList ) + { + if( !err->IsEnableModify ) // ׂSRLoCiɉe + count++; + } + + // SRLoCiɉeG[̒ + // CƒG[tH[͂ɂďCĂ邩JEg + // (G[XgXVĂ邱ƂO) + for each( RCMrcError ^err in this->hErrorList ) + { + if( err->IsAffectRom ) // CsƒG[݂͑Ȃ + count++; + } + return (count == 0); +} + +// SRL̃oCiɉe鍀ڂ̒ŏC”\ȃG[`FbN +System::Boolean Form1::isValidAffectRomModified(void) +{ + System::Int32 count = 0; + for each( RCMrcError ^err in this->hErrorList ) + { + if( err->IsAffectRom ) // CsƒG[݂͑Ȃ + count++; + } + return (count == 0); +} + +// ---------------------------------------------- +// t@C샆[eBeB +// ---------------------------------------------- + +// t@C_CAOŎ擾 +// @arg [in] gqtB^ +// @ret 擾t@C G[̂Ƃ nullptr +System::String^ Form1::openFileDlg( System::String ^filter ) +{ + System::Windows::Forms::OpenFileDialog ^dlg = gcnew (OpenFileDialog); + if( System::String::IsNullOrEmpty( this->prevDir ) || !System::IO::Directory::Exists( this->prevDir ) ) + { + dlg->InitialDirectory = System::Environment::GetFolderPath( System::Environment::SpecialFolder::Desktop ); + } + else + { + dlg->InitialDirectory = this->prevDir; // OɑI񂾃fBNgftHgɂ + } + dlg->Filter = filter; + dlg->FilterIndex = 1; + dlg->RestoreDirectory = true; + + if( dlg->ShowDialog() != System::Windows::Forms::DialogResult::OK ) + { + return nullptr; + } + this->prevDir = System::IO::Path::GetDirectoryName( dlg->FileName ); // ftHgfBNg̍XV + return System::String::Copy(dlg->FileName); +} + +// Z[ut@C_CAOŎ擾 +// @arg [in] gqtB^ +// @arg [in] t@C̊gqsȂƂɒljƂ̐gq +// @ret 擾t@C G[̂Ƃ nullptr +System::String^ Form1::saveFileDlg( System::String ^filter, System::String ^extension ) +{ + System::String ^retfile; + System::Windows::Forms::SaveFileDialog ^dlg = gcnew (SaveFileDialog); + + if( System::String::IsNullOrEmpty( this->prevDir ) || !System::IO::Directory::Exists( this->prevDir ) ) + { + dlg->InitialDirectory = System::Environment::GetFolderPath( System::Environment::SpecialFolder::Desktop ); + } + else + { + dlg->InitialDirectory = this->prevDir; + } + dlg->Filter = filter; + dlg->FilterIndex = 1; + dlg->RestoreDirectory = true; + + if( dlg->ShowDialog() != System::Windows::Forms::DialogResult::OK ) + { + return nullptr; + } + this->prevDir = System::IO::Path::GetDirectoryName( dlg->FileName ); + retfile = dlg->FileName; + if( !System::String::IsNullOrEmpty(extension) && !(dlg->FileName->ToLower()->EndsWith( extension->ToLower() )) ) + { + retfile += extension; + } + return retfile; +} + +// Z[ufBNg_CAOŎ擾 +// @ret 擾fBNg(\\ŏI悤ɒ) G[̂Ƃnullptr +System::String^ Form1::saveDirDlg( System::String ^msg ) +{ + System::String ^dir; + System::Windows::Forms::FolderBrowserDialog ^dlg = gcnew (System::Windows::Forms::FolderBrowserDialog); + + // ftHg̃tH_OɑItH_ɂ + dlg->RootFolder = System::Environment::SpecialFolder::Desktop; + if( System::String::IsNullOrEmpty( this->prevDir ) || !System::IO::Directory::Exists( this->prevDir ) ) + { + dlg->SelectedPath = System::Environment::GetFolderPath( System::Environment::SpecialFolder::Desktop ); + } + else + { + dlg->SelectedPath = this->prevDir; + } + dlg->ShowNewFolderButton = true; + dlg->Description = msg; // _CAȌ㕔ɏo郁bZ[W + + if( dlg->ShowDialog() != System::Windows::Forms::DialogResult::OK ) + { + return nullptr; + } + + if( !dlg->SelectedPath->EndsWith("\\") ) + { + dir = dlg->SelectedPath + "\\"; + } + else + { + dir = System::String::Copy(dlg->SelectedPath); + } + this->prevDir = dir; // ItH_̃tH_ɂ + return dir; +} + +// t@C݂邩𒲂ׂď㏑mF +bool Form1::isOverwriteFile( System::String ^path ) +{ + if( System::IO::File::Exists( path ) ) + { + if( MessageBox::Show( this->makeMsg( "OverWrite", path ), "Information", MessageBoxButtons::YesNo, MessageBoxIcon::None ) + == System::Windows::Forms::DialogResult::No ) + { + return false; + } + } + return true; // t@C݂Ȃꍇ || ㏑OK̏ꍇ t@C쐬Ă悢 +} + + +// end of file \ No newline at end of file diff --git a/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/MasterEditorTWL/MasterEditorTWL.cpp b/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/MasterEditorTWL/MasterEditorTWL.cpp new file mode 100644 index 0000000..dac10af --- /dev/null +++ b/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/MasterEditorTWL/MasterEditorTWL.cpp @@ -0,0 +1,18 @@ +// MasterEditorTWL.cpp : C vWFNg t@CłB + +#include "stdafx.h" +#include "Form1.h" + +using namespace MasterEditorTWL; + +[STAThreadAttribute] +int main(array ^args) +{ + // Rg[쐬OɁAWindows XP rWAʂLɂ܂ + Application::EnableVisualStyles(); + Application::SetCompatibleTextRenderingDefault(false); + + // C EBhE쐬āAs܂ + Application::Run(gcnew Form1()); + return 0; +} diff --git a/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/MasterEditorTWL/MasterEditorTWL.vcproj b/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/MasterEditorTWL/MasterEditorTWL.vcproj new file mode 100644 index 0000000..9b27968 --- /dev/null +++ b/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/MasterEditorTWL/MasterEditorTWL.vcproj @@ -0,0 +1,456 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/MasterEditorTWL/MasterEditorTWL.vcproj.RED.nishikawa_takeshi.user b/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/MasterEditorTWL/MasterEditorTWL.vcproj.RED.nishikawa_takeshi.user new file mode 100644 index 0000000..7963a7f --- /dev/null +++ b/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/MasterEditorTWL/MasterEditorTWL.vcproj.RED.nishikawa_takeshi.user @@ -0,0 +1,65 @@ + + + + + + + + + + + diff --git a/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/MasterEditorTWL/ReadMe.txt b/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/MasterEditorTWL/ReadMe.txt new file mode 100644 index 0000000..a21e212 --- /dev/null +++ b/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/MasterEditorTWL/ReadMe.txt @@ -0,0 +1,34 @@ +=============================================================================== + AvP[V : MasterEditorTWL vWFNg̊Tv +=============================================================================== + + MasterEditorTWL AvP[V́AAppWizard ɂč쐬܂B + +̃t@Cɂ́AMasterEditorTWL AvP[V\et@C +e̊TLqĂ܂B + +MasterEditorTWL.vcproj + ́AAvP[V EBU[hŐ VC++ vWFNg̃C + vWFNg t@CłB + t@C𐶐 Visual C++ ̃o[WƁAAvP[V EBU[ + hőIvbgtH[A\AуvWFNg̋@\Ɋւ + LqĂ܂B + +MasterEditorTWL.cpp + ́AC̃AvP[V \[X t@CłB + tH[\R[h܂܂Ă܂B + +Form1.h + [U[̃tH[ NX̎ƁAInitializeComponent() ֐܂܂Ă܂B + +AssemblyInfo.cpp + AZu ^f[^ύX邽߂̃JX^܂܂Ă܂B + +/////////////////////////////////////////////////////////////////////////////// +̑̕Wt@C : + +StdAfx.h, StdAfx.cpp + ̃t@ĆARpCς݃wb_[ (PCH) t@C MasterEditorTWL.pch + ƃvRpCς݌^t@C StdAfx.obj rh邽߂Ɏgp܂B + +/////////////////////////////////////////////////////////////////////////////// diff --git a/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/MasterEditorTWL/Release/BuildLog.htm b/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/MasterEditorTWL/Release/BuildLog.htm new file mode 100644 index 0000000..73f5796 Binary files /dev/null and b/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/MasterEditorTWL/Release/BuildLog.htm differ diff --git a/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/MasterEditorTWL/app.ico b/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/MasterEditorTWL/app.ico new file mode 100644 index 0000000..3a5525f Binary files /dev/null and b/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/MasterEditorTWL/app.ico differ diff --git a/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/MasterEditorTWL/app.rc b/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/MasterEditorTWL/app.rc new file mode 100644 index 0000000..2ad8e34 --- /dev/null +++ b/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/MasterEditorTWL/app.rc @@ -0,0 +1,63 @@ +// Microsoft Visual C++ Őꂽ\[X XNvgłB +// +#include "resource.h" + +#define APSTUDIO_READONLY_SYMBOLS + +///////////////////////////////////////////////////////////////////////////// +#undef APSTUDIO_READONLY_SYMBOLS + +///////////////////////////////////////////////////////////////////////////// +// p (č) \[X + + +///////////////////////////////////////////////////////////////////////////// +// +// ACR +// + +// ŏɔzuꂽACRA܂ ID lłႢACRAAvP[V ACRɂȂ܂B + +LANGUAGE 17, 1 +#pragma code_page(932) +1 ICON "app.ico" + +#ifdef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// TEXTINCLUDE +// + +1 TEXTINCLUDE +BEGIN + "resource.h\0" + "\0" +END + +2 TEXTINCLUDE +BEGIN + "#include ""afxres.h""\r\n" + "\0" +END + +3 TEXTINCLUDE +BEGIN + "\0" +END + +#endif // APSTUDIO_INVOKED + +///////////////////////////////////////////////////////////////////////////// + + + +#ifndef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// TEXTINCLUDE 3 \[X琶܂B +// + + +///////////////////////////////////////////////////////////////////////////// +#endif // APSTUDIO_INVOKED łȂꍇ + diff --git a/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/MasterEditorTWL/banner_char.h b/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/MasterEditorTWL/banner_char.h new file mode 100644 index 0000000..862a27b --- /dev/null +++ b/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/MasterEditorTWL/banner_char.h @@ -0,0 +1,15 @@ +#pragma once + +#include + +namespace MasterEditorTWL +{ + extern const int NumOf_BannerCharCodes_China; + extern const u16 BannerCharCodes_China[]; + + extern const int NumOf_BannerCharCodes_Korea; + extern const u16 BannerCharCodes_Korea[]; + + extern const int NumOf_BannerCharCodes_Worldwide; + extern const u16 BannerCharCodes_Worldwide[]; +}; \ No newline at end of file diff --git a/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/MasterEditorTWL/banner_char_china.cpp b/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/MasterEditorTWL/banner_char_china.cpp new file mode 100644 index 0000000..7bd3fa1 --- /dev/null +++ b/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/MasterEditorTWL/banner_char_china.cpp @@ -0,0 +1,460 @@ +#include "stdafx.h" +#include +#include +#include +#include "banner_char.h" + +const int MasterEditorTWL::NumOf_BannerCharCodes_China = 7179; +const u16 MasterEditorTWL::BannerCharCodes_China[7179] = +{ +0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, +0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, +0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, +0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, +0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, +0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, +0x00a1, 0x00a2, 0x00a3, 0x00a8, 0x00a9, 0x00ae, 0x00b0, 0x00b1, 0x00b4, 0x00b7, 0x00bf, 0x00c0, 0x00c1, 0x00c2, 0x00c3, 0x00c4, +0x00c5, 0x00c6, 0x00c7, 0x00c8, 0x00c9, 0x00ca, 0x00cb, 0x00cc, 0x00cd, 0x00ce, 0x00cf, 0x00d0, 0x00d1, 0x00d2, 0x00d3, 0x00d4, +0x00d5, 0x00d6, 0x00d7, 0x00d8, 0x00d9, 0x00da, 0x00db, 0x00dc, 0x00dd, 0x00df, 0x00e0, 0x00e1, 0x00e2, 0x00e3, 0x00e4, 0x00e5, +0x00e6, 0x00e7, 0x00e8, 0x00e9, 0x00ea, 0x00eb, 0x00ec, 0x00ed, 0x00ee, 0x00ef, 0x00f0, 0x00f1, 0x00f2, 0x00f3, 0x00f4, 0x00f5, +0x00f6, 0x00f7, 0x00f8, 0x00f9, 0x00fa, 0x00fb, 0x00fc, 0x00fd, 0x0152, 0x0153, 0x02c6, 0x02dc, 0x2010, 0x2015, 0x2018, 0x2019, +0x201a, 0x201c, 0x201d, 0x201e, 0x2022, 0x2026, 0x2032, 0x2033, 0x203a, 0x203b, 0x20ac, 0x2122, 0x2190, 0x2191, 0x2192, 0x2193, +0x221e, 0x2234, 0x25a0, 0x25a1, 0x25b2, 0x25b3, 0x25bc, 0x25bd, 0x25c6, 0x25c7, 0x25cb, 0x25ce, 0x25cf, 0x2605, 0x2606, 0x266a, +0x266d, 0x266f, 0x3000, 0x3001, 0x3002, 0x3005, 0x3008, 0x3009, 0x300c, 0x300d, 0x3012, 0x3014, 0x3015, 0x3041, 0x3042, 0x3043, +0x3044, 0x3045, 0x3046, 0x3047, 0x3048, 0x3049, 0x304a, 0x304b, 0x304c, 0x304d, 0x304e, 0x304f, 0x3050, 0x3051, 0x3052, 0x3053, +0x3054, 0x3055, 0x3056, 0x3057, 0x3058, 0x3059, 0x305a, 0x305b, 0x305c, 0x305d, 0x305e, 0x305f, 0x3060, 0x3061, 0x3062, 0x3063, +0x3064, 0x3065, 0x3066, 0x3067, 0x3068, 0x3069, 0x306a, 0x306b, 0x306c, 0x306d, 0x306e, 0x306f, 0x3070, 0x3071, 0x3072, 0x3073, +0x3074, 0x3075, 0x3076, 0x3077, 0x3078, 0x3079, 0x307a, 0x307b, 0x307c, 0x307d, 0x307e, 0x307f, 0x3080, 0x3081, 0x3082, 0x3083, +0x3084, 0x3085, 0x3086, 0x3087, 0x3088, 0x3089, 0x308a, 0x308b, 0x308c, 0x308d, 0x308e, 0x308f, 0x3090, 0x3091, 0x3092, 0x3093, +0x30a1, 0x30a2, 0x30a3, 0x30a4, 0x30a5, 0x30a6, 0x30a7, 0x30a8, 0x30a9, 0x30aa, 0x30ab, 0x30ac, 0x30ad, 0x30ae, 0x30af, 0x30b0, +0x30b1, 0x30b2, 0x30b3, 0x30b4, 0x30b5, 0x30b6, 0x30b7, 0x30b8, 0x30b9, 0x30ba, 0x30bb, 0x30bc, 0x30bd, 0x30be, 0x30bf, 0x30c0, +0x30c1, 0x30c2, 0x30c3, 0x30c4, 0x30c5, 0x30c6, 0x30c7, 0x30c8, 0x30c9, 0x30ca, 0x30cb, 0x30cc, 0x30cd, 0x30ce, 0x30cf, 0x30d0, +0x30d1, 0x30d2, 0x30d3, 0x30d4, 0x30d5, 0x30d6, 0x30d7, 0x30d8, 0x30d9, 0x30da, 0x30db, 0x30dc, 0x30dd, 0x30de, 0x30df, 0x30e0, +0x30e1, 0x30e2, 0x30e3, 0x30e4, 0x30e5, 0x30e6, 0x30e7, 0x30e8, 0x30e9, 0x30ea, 0x30eb, 0x30ec, 0x30ed, 0x30ee, 0x30ef, 0x30f0, +0x30f1, 0x30f2, 0x30f3, 0x30f4, 0x30f5, 0x30f6, 0x30fb, 0x30fc, 0xff01, 0xff06, 0xff08, 0xff09, 0xff0b, 0xff0c, 0xff0d, 0xff0e, +0xff0f, 0xff1a, 0xff1b, 0xff1d, 0xff1f, 0xff3b, 0xff3c, 0xff3d, 0xff3e, 0xff3f, 0xff40, 0xff5b, 0xff5c, 0xff5d, 0xff5e, 0xffe3, +0x4e00, 0x4e01, 0x4e03, 0x4e07, 0x4e08, 0x4e09, 0x4e0a, 0x4e0b, 0x4e0c, 0x4e0d, 0x4e0e, 0x4e10, 0x4e11, 0x4e13, 0x4e14, 0x4e15, +0x4e16, 0x4e18, 0x4e19, 0x4e1a, 0x4e1b, 0x4e1c, 0x4e1d, 0x4e1e, 0x4e22, 0x4e24, 0x4e25, 0x4e27, 0x4e28, 0x4e2a, 0x4e2b, 0x4e2c, +0x4e2d, 0x4e30, 0x4e32, 0x4e34, 0x4e36, 0x4e38, 0x4e39, 0x4e3a, 0x4e3b, 0x4e3d, 0x4e3e, 0x4e3f, 0x4e43, 0x4e45, 0x4e47, 0x4e48, +0x4e49, 0x4e4b, 0x4e4c, 0x4e4d, 0x4e4e, 0x4e4f, 0x4e50, 0x4e52, 0x4e53, 0x4e54, 0x4e56, 0x4e58, 0x4e59, 0x4e5c, 0x4e5d, 0x4e5e, +0x4e5f, 0x4e60, 0x4e61, 0x4e66, 0x4e69, 0x4e70, 0x4e71, 0x4e73, 0x4e7e, 0x4e86, 0x4e88, 0x4e89, 0x4e8b, 0x4e8c, 0x4e8d, 0x4e8e, +0x4e8f, 0x4e91, 0x4e92, 0x4e93, 0x4e94, 0x4e95, 0x4e98, 0x4e9a, 0x4e9b, 0x4e9f, 0x4ea0, 0x4ea1, 0x4ea2, 0x4ea4, 0x4ea5, 0x4ea6, +0x4ea7, 0x4ea8, 0x4ea9, 0x4eab, 0x4eac, 0x4ead, 0x4eae, 0x4eb2, 0x4eb3, 0x4eb5, 0x4eba, 0x4ebb, 0x4ebf, 0x4ec0, 0x4ec1, 0x4ec2, +0x4ec3, 0x4ec4, 0x4ec5, 0x4ec6, 0x4ec7, 0x4ec9, 0x4eca, 0x4ecb, 0x4ecd, 0x4ece, 0x4ed1, 0x4ed3, 0x4ed4, 0x4ed5, 0x4ed6, 0x4ed7, +0x4ed8, 0x4ed9, 0x4edd, 0x4ede, 0x4edf, 0x4ee1, 0x4ee3, 0x4ee4, 0x4ee5, 0x4ee8, 0x4eea, 0x4eeb, 0x4eec, 0x4ef0, 0x4ef2, 0x4ef3, +0x4ef5, 0x4ef6, 0x4ef7, 0x4efb, 0x4efd, 0x4eff, 0x4f01, 0x4f09, 0x4f0a, 0x4f0d, 0x4f0e, 0x4f0f, 0x4f10, 0x4f11, 0x4f17, 0x4f18, +0x4f19, 0x4f1a, 0x4f1b, 0x4f1e, 0x4f1f, 0x4f20, 0x4f22, 0x4f24, 0x4f25, 0x4f26, 0x4f27, 0x4f2a, 0x4f2b, 0x4f2f, 0x4f30, 0x4f32, +0x4f34, 0x4f36, 0x4f38, 0x4f3a, 0x4f3c, 0x4f3d, 0x4f43, 0x4f46, 0x4f4d, 0x4f4e, 0x4f4f, 0x4f50, 0x4f51, 0x4f53, 0x4f55, 0x4f57, +0x4f58, 0x4f59, 0x4f5a, 0x4f5b, 0x4f5c, 0x4f5d, 0x4f5e, 0x4f5f, 0x4f60, 0x4f63, 0x4f64, 0x4f65, 0x4f67, 0x4f69, 0x4f6c, 0x4f6f, +0x4f70, 0x4f73, 0x4f74, 0x4f76, 0x4f7b, 0x4f7c, 0x4f7e, 0x4f7f, 0x4f83, 0x4f84, 0x4f88, 0x4f89, 0x4f8b, 0x4f8d, 0x4f8f, 0x4f91, +0x4f94, 0x4f97, 0x4f9b, 0x4f9d, 0x4fa0, 0x4fa3, 0x4fa5, 0x4fa6, 0x4fa7, 0x4fa8, 0x4fa9, 0x4faa, 0x4fac, 0x4fae, 0x4faf, 0x4fb5, +0x4fbf, 0x4fc3, 0x4fc4, 0x4fc5, 0x4fca, 0x4fce, 0x4fcf, 0x4fd0, 0x4fd1, 0x4fd7, 0x4fd8, 0x4fda, 0x4fdc, 0x4fdd, 0x4fde, 0x4fdf, +0x4fe1, 0x4fe3, 0x4fe6, 0x4fe8, 0x4fe9, 0x4fea, 0x4fed, 0x4fee, 0x4fef, 0x4ff1, 0x4ff3, 0x4ff8, 0x4ffa, 0x4ffe, 0x500c, 0x500d, +0x500f, 0x5012, 0x5014, 0x5018, 0x5019, 0x501a, 0x501c, 0x501f, 0x5021, 0x5025, 0x5026, 0x5028, 0x5029, 0x502a, 0x502c, 0x502d, +0x502e, 0x503a, 0x503c, 0x503e, 0x5043, 0x5047, 0x5048, 0x504c, 0x504e, 0x504f, 0x5055, 0x505a, 0x505c, 0x5065, 0x506c, 0x5076, +0x5077, 0x507b, 0x507e, 0x507f, 0x5080, 0x5085, 0x5088, 0x508d, 0x50a3, 0x50a5, 0x50a7, 0x50a8, 0x50a9, 0x50ac, 0x50b2, 0x50ba, +0x50bb, 0x50cf, 0x50d6, 0x50da, 0x50e6, 0x50e7, 0x50ec, 0x50ed, 0x50ee, 0x50f3, 0x50f5, 0x50fb, 0x5106, 0x5107, 0x510b, 0x5112, +0x5121, 0x513f, 0x5140, 0x5141, 0x5143, 0x5144, 0x5145, 0x5146, 0x5148, 0x5149, 0x514b, 0x514d, 0x5151, 0x5154, 0x5155, 0x5156, +0x515a, 0x515c, 0x5162, 0x5165, 0x5168, 0x516b, 0x516c, 0x516d, 0x516e, 0x5170, 0x5171, 0x5173, 0x5174, 0x5175, 0x5176, 0x5177, +0x5178, 0x5179, 0x517b, 0x517c, 0x517d, 0x5180, 0x5181, 0x5182, 0x5185, 0x5188, 0x5189, 0x518c, 0x518d, 0x5192, 0x5195, 0x5196, +0x5197, 0x5199, 0x519b, 0x519c, 0x51a0, 0x51a2, 0x51a4, 0x51a5, 0x51ab, 0x51ac, 0x51af, 0x51b0, 0x51b1, 0x51b2, 0x51b3, 0x51b5, +0x51b6, 0x51b7, 0x51bb, 0x51bc, 0x51bd, 0x51c0, 0x51c4, 0x51c6, 0x51c7, 0x51c9, 0x51cb, 0x51cc, 0x51cf, 0x51d1, 0x51db, 0x51dd, +0x51e0, 0x51e1, 0x51e4, 0x51eb, 0x51ed, 0x51ef, 0x51f0, 0x51f3, 0x51f5, 0x51f6, 0x51f8, 0x51f9, 0x51fa, 0x51fb, 0x51fc, 0x51fd, +0x51ff, 0x5200, 0x5201, 0x5202, 0x5203, 0x5206, 0x5207, 0x5208, 0x520a, 0x520d, 0x520e, 0x5211, 0x5212, 0x5216, 0x5217, 0x5218, +0x5219, 0x521a, 0x521b, 0x521d, 0x5220, 0x5224, 0x5228, 0x5229, 0x522b, 0x522d, 0x522e, 0x5230, 0x5233, 0x5236, 0x5237, 0x5238, +0x5239, 0x523a, 0x523b, 0x523d, 0x523f, 0x5240, 0x5241, 0x5242, 0x5243, 0x524a, 0x524c, 0x524d, 0x5250, 0x5251, 0x5254, 0x5256, +0x525c, 0x525e, 0x5261, 0x5265, 0x5267, 0x5269, 0x526a, 0x526f, 0x5272, 0x527d, 0x527f, 0x5281, 0x5282, 0x5288, 0x5290, 0x5293, +0x529b, 0x529d, 0x529e, 0x529f, 0x52a0, 0x52a1, 0x52a2, 0x52a3, 0x52a8, 0x52a9, 0x52aa, 0x52ab, 0x52ac, 0x52ad, 0x52b1, 0x52b2, +0x52b3, 0x52be, 0x52bf, 0x52c3, 0x52c7, 0x52c9, 0x52cb, 0x52d0, 0x52d2, 0x52d6, 0x52d8, 0x52df, 0x52e4, 0x52f0, 0x52f9, 0x52fa, +0x52fe, 0x52ff, 0x5300, 0x5305, 0x5306, 0x5308, 0x530d, 0x530f, 0x5310, 0x5315, 0x5316, 0x5317, 0x5319, 0x531a, 0x531d, 0x5320, +0x5321, 0x5323, 0x5326, 0x532a, 0x532e, 0x5339, 0x533a, 0x533b, 0x533e, 0x533f, 0x5341, 0x5343, 0x5345, 0x5347, 0x5348, 0x5349, +0x534a, 0x534e, 0x534f, 0x5351, 0x5352, 0x5353, 0x5355, 0x5356, 0x5357, 0x535a, 0x535c, 0x535e, 0x535f, 0x5360, 0x5361, 0x5362, +0x5363, 0x5364, 0x5366, 0x5367, 0x5369, 0x536b, 0x536e, 0x536f, 0x5370, 0x5371, 0x5373, 0x5374, 0x5375, 0x5377, 0x5378, 0x537a, +0x537f, 0x5382, 0x5384, 0x5385, 0x5386, 0x5389, 0x538b, 0x538c, 0x538d, 0x5395, 0x5398, 0x539a, 0x539d, 0x539f, 0x53a2, 0x53a3, +0x53a5, 0x53a6, 0x53a8, 0x53a9, 0x53ae, 0x53b6, 0x53bb, 0x53bf, 0x53c1, 0x53c2, 0x53c8, 0x53c9, 0x53ca, 0x53cb, 0x53cc, 0x53cd, +0x53d1, 0x53d4, 0x53d6, 0x53d7, 0x53d8, 0x53d9, 0x53db, 0x53df, 0x53e0, 0x53e3, 0x53e4, 0x53e5, 0x53e6, 0x53e8, 0x53e9, 0x53ea, +0x53eb, 0x53ec, 0x53ed, 0x53ee, 0x53ef, 0x53f0, 0x53f1, 0x53f2, 0x53f3, 0x53f5, 0x53f6, 0x53f7, 0x53f8, 0x53f9, 0x53fb, 0x53fc, +0x53fd, 0x5401, 0x5403, 0x5404, 0x5406, 0x5408, 0x5409, 0x540a, 0x540c, 0x540d, 0x540e, 0x540f, 0x5410, 0x5411, 0x5412, 0x5413, +0x5415, 0x5416, 0x5417, 0x541b, 0x541d, 0x541e, 0x541f, 0x5420, 0x5421, 0x5423, 0x5426, 0x5427, 0x5428, 0x5429, 0x542b, 0x542c, +0x542d, 0x542e, 0x542f, 0x5431, 0x5432, 0x5434, 0x5435, 0x5438, 0x5439, 0x543b, 0x543c, 0x543e, 0x5440, 0x5443, 0x5446, 0x5448, +0x544a, 0x544b, 0x5450, 0x5452, 0x5453, 0x5454, 0x5455, 0x5456, 0x5457, 0x5458, 0x5459, 0x545b, 0x545c, 0x5462, 0x5464, 0x5466, +0x5468, 0x5471, 0x5472, 0x5473, 0x5475, 0x5476, 0x5477, 0x5478, 0x547b, 0x547c, 0x547d, 0x5480, 0x5482, 0x5484, 0x5486, 0x548b, +0x548c, 0x548e, 0x548f, 0x5490, 0x5492, 0x5494, 0x5495, 0x5496, 0x5499, 0x549a, 0x549b, 0x549d, 0x54a3, 0x54a4, 0x54a6, 0x54a7, +0x54a8, 0x54a9, 0x54aa, 0x54ab, 0x54ac, 0x54ad, 0x54af, 0x54b1, 0x54b3, 0x54b4, 0x54b8, 0x54bb, 0x54bd, 0x54bf, 0x54c0, 0x54c1, +0x54c2, 0x54c4, 0x54c6, 0x54c7, 0x54c8, 0x54c9, 0x54cc, 0x54cd, 0x54ce, 0x54cf, 0x54d0, 0x54d1, 0x54d2, 0x54d3, 0x54d4, 0x54d5, +0x54d7, 0x54d9, 0x54da, 0x54dc, 0x54dd, 0x54de, 0x54df, 0x54e5, 0x54e6, 0x54e7, 0x54e8, 0x54e9, 0x54ea, 0x54ed, 0x54ee, 0x54f2, +0x54f3, 0x54fa, 0x54fc, 0x54fd, 0x54ff, 0x5501, 0x5506, 0x5507, 0x5509, 0x550f, 0x5510, 0x5511, 0x5514, 0x551b, 0x5520, 0x5522, +0x5523, 0x5524, 0x5527, 0x552a, 0x552c, 0x552e, 0x552f, 0x5530, 0x5531, 0x5533, 0x5537, 0x553c, 0x553e, 0x553f, 0x5541, 0x5543, +0x5544, 0x5546, 0x5549, 0x554a, 0x5550, 0x5555, 0x5556, 0x555c, 0x5561, 0x5564, 0x5565, 0x5566, 0x5567, 0x556a, 0x556c, 0x556d, +0x556e, 0x5575, 0x5576, 0x5577, 0x5578, 0x557b, 0x557c, 0x557e, 0x5580, 0x5581, 0x5582, 0x5583, 0x5584, 0x5587, 0x5588, 0x5589, +0x558a, 0x558b, 0x558f, 0x5591, 0x5594, 0x5598, 0x5599, 0x559c, 0x559d, 0x559f, 0x55a7, 0x55b1, 0x55b3, 0x55b5, 0x55b7, 0x55b9, +0x55bb, 0x55bd, 0x55be, 0x55c4, 0x55c5, 0x55c9, 0x55cc, 0x55cd, 0x55d1, 0x55d2, 0x55d3, 0x55d4, 0x55d6, 0x55dc, 0x55dd, 0x55df, +0x55e1, 0x55e3, 0x55e4, 0x55e5, 0x55e6, 0x55e8, 0x55ea, 0x55eb, 0x55ec, 0x55ef, 0x55f2, 0x55f3, 0x55f5, 0x55f7, 0x55fd, 0x55fe, +0x5600, 0x5601, 0x5608, 0x5609, 0x560c, 0x560e, 0x560f, 0x5618, 0x561b, 0x561e, 0x561f, 0x5623, 0x5624, 0x5627, 0x562c, 0x562d, +0x5631, 0x5632, 0x5634, 0x5636, 0x5639, 0x563b, 0x563f, 0x564c, 0x564d, 0x564e, 0x5654, 0x5657, 0x5658, 0x5659, 0x565c, 0x5662, +0x5664, 0x5668, 0x5669, 0x566a, 0x566b, 0x566c, 0x5671, 0x5676, 0x567b, 0x567c, 0x5685, 0x5686, 0x568e, 0x568f, 0x5693, 0x56a3, +0x56af, 0x56b7, 0x56bc, 0x56ca, 0x56d4, 0x56d7, 0x56da, 0x56db, 0x56dd, 0x56de, 0x56df, 0x56e0, 0x56e1, 0x56e2, 0x56e4, 0x56eb, +0x56ed, 0x56f0, 0x56f1, 0x56f4, 0x56f5, 0x56f9, 0x56fa, 0x56fd, 0x56fe, 0x56ff, 0x5703, 0x5704, 0x5706, 0x5708, 0x5709, 0x570a, +0x571c, 0x571f, 0x5723, 0x5728, 0x5729, 0x572a, 0x572c, 0x572d, 0x572e, 0x572f, 0x5730, 0x5733, 0x5739, 0x573a, 0x573b, 0x573e, +0x5740, 0x5742, 0x5747, 0x574a, 0x574c, 0x574d, 0x574e, 0x574f, 0x5750, 0x5751, 0x5757, 0x575a, 0x575b, 0x575c, 0x575d, 0x575e, +0x575f, 0x5760, 0x5761, 0x5764, 0x5766, 0x5768, 0x5769, 0x576a, 0x576b, 0x576d, 0x576f, 0x5773, 0x5776, 0x5777, 0x577b, 0x577c, +0x5782, 0x5783, 0x5784, 0x5785, 0x5786, 0x578b, 0x578c, 0x5792, 0x5793, 0x579b, 0x57a0, 0x57a1, 0x57a2, 0x57a3, 0x57a4, 0x57a6, +0x57a7, 0x57a9, 0x57ab, 0x57ad, 0x57ae, 0x57b2, 0x57b4, 0x57b8, 0x57c2, 0x57c3, 0x57cb, 0x57ce, 0x57cf, 0x57d2, 0x57d4, 0x57d5, +0x57d8, 0x57d9, 0x57da, 0x57dd, 0x57df, 0x57e0, 0x57e4, 0x57ed, 0x57ef, 0x57f4, 0x57f8, 0x57f9, 0x57fa, 0x57fd, 0x5800, 0x5802, +0x5806, 0x5807, 0x580b, 0x580d, 0x5811, 0x5815, 0x5819, 0x581e, 0x5820, 0x5821, 0x5824, 0x582a, 0x5830, 0x5835, 0x5844, 0x584c, +0x584d, 0x5851, 0x5854, 0x5858, 0x585e, 0x5865, 0x586b, 0x586c, 0x587e, 0x5880, 0x5881, 0x5883, 0x5885, 0x5889, 0x5892, 0x5893, +0x5899, 0x589a, 0x589e, 0x589f, 0x58a8, 0x58a9, 0x58bc, 0x58c1, 0x58c5, 0x58d1, 0x58d5, 0x58e4, 0x58eb, 0x58ec, 0x58ee, 0x58f0, +0x58f3, 0x58f6, 0x58f9, 0x5902, 0x5904, 0x5907, 0x590d, 0x590f, 0x5914, 0x5915, 0x5916, 0x5919, 0x591a, 0x591c, 0x591f, 0x5924, +0x5925, 0x5927, 0x5929, 0x592a, 0x592b, 0x592d, 0x592e, 0x592f, 0x5931, 0x5934, 0x5937, 0x5938, 0x5939, 0x593a, 0x593c, 0x5941, +0x5942, 0x5944, 0x5947, 0x5948, 0x5949, 0x594b, 0x594e, 0x594f, 0x5951, 0x5954, 0x5955, 0x5956, 0x5957, 0x5958, 0x595a, 0x5960, +0x5962, 0x5965, 0x5973, 0x5974, 0x5976, 0x5978, 0x5979, 0x597d, 0x5981, 0x5982, 0x5983, 0x5984, 0x5986, 0x5987, 0x5988, 0x598a, +0x598d, 0x5992, 0x5993, 0x5996, 0x5997, 0x5999, 0x599e, 0x59a3, 0x59a4, 0x59a5, 0x59a8, 0x59a9, 0x59aa, 0x59ab, 0x59ae, 0x59af, +0x59b2, 0x59b9, 0x59bb, 0x59be, 0x59c6, 0x59ca, 0x59cb, 0x59d0, 0x59d1, 0x59d2, 0x59d3, 0x59d4, 0x59d7, 0x59d8, 0x59da, 0x59dc, +0x59dd, 0x59e3, 0x59e5, 0x59e8, 0x59ec, 0x59f9, 0x59fb, 0x59ff, 0x5a01, 0x5a03, 0x5a04, 0x5a05, 0x5a06, 0x5a07, 0x5a08, 0x5a09, +0x5a0c, 0x5a11, 0x5a13, 0x5a18, 0x5a1c, 0x5a1f, 0x5a20, 0x5a23, 0x5a25, 0x5a29, 0x5a31, 0x5a32, 0x5a34, 0x5a36, 0x5a3c, 0x5a40, +0x5a46, 0x5a49, 0x5a4a, 0x5a55, 0x5a5a, 0x5a62, 0x5a67, 0x5a6a, 0x5a74, 0x5a75, 0x5a76, 0x5a77, 0x5a7a, 0x5a7f, 0x5a92, 0x5a9a, +0x5a9b, 0x5aaa, 0x5ab2, 0x5ab3, 0x5ab5, 0x5ab8, 0x5abe, 0x5ac1, 0x5ac2, 0x5ac9, 0x5acc, 0x5ad2, 0x5ad4, 0x5ad6, 0x5ad8, 0x5adc, +0x5ae0, 0x5ae1, 0x5ae3, 0x5ae6, 0x5ae9, 0x5aeb, 0x5af1, 0x5b09, 0x5b16, 0x5b17, 0x5b32, 0x5b34, 0x5b37, 0x5b40, 0x5b50, 0x5b51, +0x5b53, 0x5b54, 0x5b55, 0x5b57, 0x5b58, 0x5b59, 0x5b5a, 0x5b5b, 0x5b5c, 0x5b5d, 0x5b5f, 0x5b62, 0x5b63, 0x5b64, 0x5b65, 0x5b66, +0x5b69, 0x5b6a, 0x5b6c, 0x5b70, 0x5b71, 0x5b73, 0x5b75, 0x5b7a, 0x5b7d, 0x5b80, 0x5b81, 0x5b83, 0x5b84, 0x5b85, 0x5b87, 0x5b88, +0x5b89, 0x5b8b, 0x5b8c, 0x5b8f, 0x5b93, 0x5b95, 0x5b97, 0x5b98, 0x5b99, 0x5b9a, 0x5b9b, 0x5b9c, 0x5b9d, 0x5b9e, 0x5ba0, 0x5ba1, +0x5ba2, 0x5ba3, 0x5ba4, 0x5ba5, 0x5ba6, 0x5baa, 0x5bab, 0x5bb0, 0x5bb3, 0x5bb4, 0x5bb5, 0x5bb6, 0x5bb8, 0x5bb9, 0x5bbd, 0x5bbe, +0x5bbf, 0x5bc2, 0x5bc4, 0x5bc5, 0x5bc6, 0x5bc7, 0x5bcc, 0x5bd0, 0x5bd2, 0x5bd3, 0x5bdd, 0x5bde, 0x5bdf, 0x5be1, 0x5be4, 0x5be5, +0x5be8, 0x5bee, 0x5bf0, 0x5bf8, 0x5bf9, 0x5bfa, 0x5bfb, 0x5bfc, 0x5bff, 0x5c01, 0x5c04, 0x5c06, 0x5c09, 0x5c0a, 0x5c0f, 0x5c11, +0x5c14, 0x5c15, 0x5c16, 0x5c18, 0x5c1a, 0x5c1c, 0x5c1d, 0x5c22, 0x5c24, 0x5c25, 0x5c27, 0x5c2c, 0x5c31, 0x5c34, 0x5c38, 0x5c39, +0x5c3a, 0x5c3b, 0x5c3c, 0x5c3d, 0x5c3e, 0x5c3f, 0x5c40, 0x5c41, 0x5c42, 0x5c45, 0x5c48, 0x5c49, 0x5c4a, 0x5c4b, 0x5c4e, 0x5c4f, +0x5c50, 0x5c51, 0x5c55, 0x5c59, 0x5c5e, 0x5c60, 0x5c61, 0x5c63, 0x5c65, 0x5c66, 0x5c6e, 0x5c6f, 0x5c71, 0x5c79, 0x5c7a, 0x5c7f, +0x5c81, 0x5c82, 0x5c88, 0x5c8c, 0x5c8d, 0x5c90, 0x5c91, 0x5c94, 0x5c96, 0x5c97, 0x5c98, 0x5c99, 0x5c9a, 0x5c9b, 0x5c9c, 0x5ca2, +0x5ca3, 0x5ca9, 0x5cab, 0x5cac, 0x5cad, 0x5cb1, 0x5cb3, 0x5cb5, 0x5cb7, 0x5cb8, 0x5cbd, 0x5cbf, 0x5cc1, 0x5cc4, 0x5ccb, 0x5cd2, +0x5cd9, 0x5ce1, 0x5ce4, 0x5ce5, 0x5ce6, 0x5ce8, 0x5cea, 0x5ced, 0x5cf0, 0x5cfb, 0x5d02, 0x5d03, 0x5d06, 0x5d07, 0x5d0e, 0x5d14, +0x5d16, 0x5d1b, 0x5d1e, 0x5d24, 0x5d26, 0x5d27, 0x5d29, 0x5d2d, 0x5d2e, 0x5d34, 0x5d3d, 0x5d3e, 0x5d47, 0x5d4a, 0x5d4b, 0x5d4c, +0x5d58, 0x5d5b, 0x5d5d, 0x5d69, 0x5d6b, 0x5d6c, 0x5d6f, 0x5d74, 0x5d82, 0x5d99, 0x5d9d, 0x5db7, 0x5dc5, 0x5dcd, 0x5ddb, 0x5ddd, +0x5dde, 0x5de1, 0x5de2, 0x5de5, 0x5de6, 0x5de7, 0x5de8, 0x5de9, 0x5deb, 0x5dee, 0x5def, 0x5df1, 0x5df2, 0x5df3, 0x5df4, 0x5df7, +0x5dfd, 0x5dfe, 0x5e01, 0x5e02, 0x5e03, 0x5e05, 0x5e06, 0x5e08, 0x5e0c, 0x5e0f, 0x5e10, 0x5e11, 0x5e14, 0x5e15, 0x5e16, 0x5e18, +0x5e19, 0x5e1a, 0x5e1b, 0x5e1c, 0x5e1d, 0x5e26, 0x5e27, 0x5e2d, 0x5e2e, 0x5e31, 0x5e37, 0x5e38, 0x5e3b, 0x5e3c, 0x5e3d, 0x5e42, +0x5e44, 0x5e45, 0x5e4c, 0x5e54, 0x5e55, 0x5e5b, 0x5e5e, 0x5e61, 0x5e62, 0x5e72, 0x5e73, 0x5e74, 0x5e76, 0x5e78, 0x5e7a, 0x5e7b, +0x5e7c, 0x5e7d, 0x5e7f, 0x5e80, 0x5e84, 0x5e86, 0x5e87, 0x5e8a, 0x5e8b, 0x5e8f, 0x5e90, 0x5e91, 0x5e93, 0x5e94, 0x5e95, 0x5e96, +0x5e97, 0x5e99, 0x5e9a, 0x5e9c, 0x5e9e, 0x5e9f, 0x5ea0, 0x5ea5, 0x5ea6, 0x5ea7, 0x5ead, 0x5eb3, 0x5eb5, 0x5eb6, 0x5eb7, 0x5eb8, +0x5eb9, 0x5ebe, 0x5ec9, 0x5eca, 0x5ed1, 0x5ed2, 0x5ed3, 0x5ed6, 0x5edb, 0x5ee8, 0x5eea, 0x5ef4, 0x5ef6, 0x5ef7, 0x5efa, 0x5efe, +0x5eff, 0x5f00, 0x5f01, 0x5f02, 0x5f03, 0x5f04, 0x5f08, 0x5f0a, 0x5f0b, 0x5f0f, 0x5f11, 0x5f13, 0x5f15, 0x5f17, 0x5f18, 0x5f1b, +0x5f1f, 0x5f20, 0x5f25, 0x5f26, 0x5f27, 0x5f29, 0x5f2a, 0x5f2d, 0x5f2f, 0x5f31, 0x5f39, 0x5f3a, 0x5f3c, 0x5f40, 0x5f50, 0x5f52, +0x5f53, 0x5f55, 0x5f56, 0x5f57, 0x5f58, 0x5f5d, 0x5f61, 0x5f62, 0x5f64, 0x5f66, 0x5f69, 0x5f6a, 0x5f6c, 0x5f6d, 0x5f70, 0x5f71, +0x5f73, 0x5f77, 0x5f79, 0x5f7b, 0x5f7c, 0x5f80, 0x5f81, 0x5f82, 0x5f84, 0x5f85, 0x5f87, 0x5f88, 0x5f89, 0x5f8a, 0x5f8b, 0x5f8c, +0x5f90, 0x5f92, 0x5f95, 0x5f97, 0x5f98, 0x5f99, 0x5f9c, 0x5fa1, 0x5fa8, 0x5faa, 0x5fad, 0x5fae, 0x5fb5, 0x5fb7, 0x5fbc, 0x5fbd, +0x5fc3, 0x5fc4, 0x5fc5, 0x5fc6, 0x5fc9, 0x5fcc, 0x5fcd, 0x5fcf, 0x5fd0, 0x5fd1, 0x5fd2, 0x5fd6, 0x5fd7, 0x5fd8, 0x5fd9, 0x5fdd, +0x5fe0, 0x5fe1, 0x5fe4, 0x5fe7, 0x5fea, 0x5feb, 0x5fed, 0x5fee, 0x5ff1, 0x5ff5, 0x5ff8, 0x5ffb, 0x5ffd, 0x5ffe, 0x5fff, 0x6000, +0x6001, 0x6002, 0x6003, 0x6004, 0x6005, 0x6006, 0x600a, 0x600d, 0x600e, 0x600f, 0x6012, 0x6014, 0x6015, 0x6016, 0x6019, 0x601b, +0x601c, 0x601d, 0x6020, 0x6021, 0x6025, 0x6026, 0x6027, 0x6028, 0x6029, 0x602a, 0x602b, 0x602f, 0x6035, 0x603b, 0x603c, 0x603f, +0x6041, 0x6042, 0x6043, 0x604b, 0x604d, 0x6050, 0x6052, 0x6055, 0x6059, 0x605a, 0x605d, 0x6062, 0x6063, 0x6064, 0x6067, 0x6068, +0x6069, 0x606a, 0x606b, 0x606c, 0x606d, 0x606f, 0x6070, 0x6073, 0x6076, 0x6078, 0x6079, 0x607a, 0x607b, 0x607c, 0x607d, 0x607f, +0x6083, 0x6084, 0x6089, 0x608c, 0x608d, 0x6092, 0x6094, 0x6096, 0x609a, 0x609b, 0x609d, 0x609f, 0x60a0, 0x60a3, 0x60a6, 0x60a8, +0x60ab, 0x60ac, 0x60ad, 0x60af, 0x60b1, 0x60b2, 0x60b4, 0x60b8, 0x60bb, 0x60bc, 0x60c5, 0x60c6, 0x60ca, 0x60cb, 0x60d1, 0x60d5, +0x60d8, 0x60da, 0x60dc, 0x60dd, 0x60df, 0x60e0, 0x60e6, 0x60e7, 0x60e8, 0x60e9, 0x60eb, 0x60ec, 0x60ed, 0x60ee, 0x60ef, 0x60f0, +0x60f3, 0x60f4, 0x60f6, 0x60f9, 0x60fa, 0x6100, 0x6101, 0x6106, 0x6108, 0x6109, 0x610d, 0x610e, 0x610f, 0x6115, 0x611a, 0x611f, +0x6120, 0x6123, 0x6124, 0x6126, 0x6127, 0x612b, 0x613f, 0x6148, 0x614a, 0x614c, 0x614e, 0x6151, 0x6155, 0x615d, 0x6162, 0x6167, +0x6168, 0x6170, 0x6175, 0x6177, 0x618b, 0x618e, 0x6194, 0x619d, 0x61a7, 0x61a8, 0x61a9, 0x61ac, 0x61b7, 0x61be, 0x61c2, 0x61c8, +0x61ca, 0x61cb, 0x61d1, 0x61d2, 0x61d4, 0x61e6, 0x61f5, 0x61ff, 0x6206, 0x6208, 0x620a, 0x620b, 0x620c, 0x620d, 0x620e, 0x620f, +0x6210, 0x6211, 0x6212, 0x6215, 0x6216, 0x6217, 0x6218, 0x621a, 0x621b, 0x621f, 0x6221, 0x6222, 0x6224, 0x6225, 0x622a, 0x622c, +0x622e, 0x6233, 0x6234, 0x6237, 0x623d, 0x623e, 0x623f, 0x6240, 0x6241, 0x6243, 0x6247, 0x6248, 0x6249, 0x624b, 0x624c, 0x624d, +0x624e, 0x6251, 0x6252, 0x6253, 0x6254, 0x6258, 0x625b, 0x6263, 0x6266, 0x6267, 0x6269, 0x626a, 0x626b, 0x626c, 0x626d, 0x626e, +0x626f, 0x6270, 0x6273, 0x6276, 0x6279, 0x627c, 0x627e, 0x627f, 0x6280, 0x6284, 0x6289, 0x628a, 0x6291, 0x6292, 0x6293, 0x6295, +0x6296, 0x6297, 0x6298, 0x629a, 0x629b, 0x629f, 0x62a0, 0x62a1, 0x62a2, 0x62a4, 0x62a5, 0x62a8, 0x62ab, 0x62ac, 0x62b1, 0x62b5, +0x62b9, 0x62bb, 0x62bc, 0x62bd, 0x62bf, 0x62c2, 0x62c4, 0x62c5, 0x62c6, 0x62c7, 0x62c8, 0x62c9, 0x62ca, 0x62cc, 0x62cd, 0x62ce, +0x62d0, 0x62d2, 0x62d3, 0x62d4, 0x62d6, 0x62d7, 0x62d8, 0x62d9, 0x62da, 0x62db, 0x62dc, 0x62df, 0x62e2, 0x62e3, 0x62e5, 0x62e6, +0x62e7, 0x62e8, 0x62e9, 0x62ec, 0x62ed, 0x62ee, 0x62ef, 0x62f1, 0x62f3, 0x62f4, 0x62f6, 0x62f7, 0x62fc, 0x62fd, 0x62fe, 0x62ff, +0x6301, 0x6302, 0x6307, 0x6308, 0x6309, 0x630e, 0x6311, 0x6316, 0x631a, 0x631b, 0x631d, 0x631e, 0x631f, 0x6320, 0x6321, 0x6322, +0x6323, 0x6324, 0x6325, 0x6328, 0x632a, 0x632b, 0x632f, 0x6332, 0x6339, 0x633a, 0x633d, 0x6342, 0x6343, 0x6345, 0x6346, 0x6349, +0x634b, 0x634c, 0x634d, 0x634e, 0x634f, 0x6350, 0x6355, 0x635e, 0x635f, 0x6361, 0x6362, 0x6363, 0x6367, 0x6369, 0x636d, 0x636e, +0x6371, 0x6376, 0x6377, 0x637a, 0x637b, 0x6380, 0x6382, 0x6387, 0x6388, 0x6389, 0x638a, 0x638c, 0x638e, 0x638f, 0x6390, 0x6392, +0x6396, 0x6398, 0x63a0, 0x63a2, 0x63a3, 0x63a5, 0x63a7, 0x63a8, 0x63a9, 0x63aa, 0x63ac, 0x63ad, 0x63ae, 0x63b0, 0x63b3, 0x63b4, +0x63b7, 0x63b8, 0x63ba, 0x63bc, 0x63be, 0x63c4, 0x63c6, 0x63c9, 0x63cd, 0x63ce, 0x63cf, 0x63d0, 0x63d2, 0x63d6, 0x63de, 0x63e0, +0x63e1, 0x63e3, 0x63e9, 0x63ea, 0x63ed, 0x63f2, 0x63f4, 0x63f6, 0x63f8, 0x63fd, 0x63ff, 0x6400, 0x6401, 0x6402, 0x6405, 0x640b, +0x640c, 0x640f, 0x6410, 0x6413, 0x6414, 0x641b, 0x641c, 0x641e, 0x6420, 0x6421, 0x6426, 0x642a, 0x642c, 0x642d, 0x6434, 0x643a, +0x643d, 0x643f, 0x6441, 0x6444, 0x6445, 0x6446, 0x6447, 0x6448, 0x644a, 0x6452, 0x6454, 0x6458, 0x645e, 0x6467, 0x6469, 0x646d, +0x6478, 0x6479, 0x647a, 0x6482, 0x6484, 0x6485, 0x6487, 0x6491, 0x6492, 0x6495, 0x6496, 0x6499, 0x649e, 0x64a4, 0x64a9, 0x64ac, +0x64ad, 0x64ae, 0x64b0, 0x64b5, 0x64b7, 0x64b8, 0x64ba, 0x64bc, 0x64c0, 0x64c2, 0x64c5, 0x64cd, 0x64ce, 0x64d0, 0x64d2, 0x64d7, +0x64d8, 0x64de, 0x64e2, 0x64e4, 0x64e6, 0x6500, 0x6509, 0x6512, 0x6518, 0x6525, 0x652b, 0x652e, 0x652f, 0x6534, 0x6535, 0x6536, +0x6538, 0x6539, 0x653b, 0x653e, 0x653f, 0x6545, 0x6548, 0x6549, 0x654c, 0x654f, 0x6551, 0x6555, 0x6556, 0x6559, 0x655b, 0x655d, +0x655e, 0x6562, 0x6563, 0x6566, 0x656b, 0x656c, 0x6570, 0x6572, 0x6574, 0x6577, 0x6587, 0x658b, 0x658c, 0x6590, 0x6591, 0x6593, +0x6597, 0x6599, 0x659b, 0x659c, 0x659f, 0x65a1, 0x65a4, 0x65a5, 0x65a7, 0x65a9, 0x65ab, 0x65ad, 0x65af, 0x65b0, 0x65b9, 0x65bc, +0x65bd, 0x65c1, 0x65c3, 0x65c4, 0x65c5, 0x65c6, 0x65cb, 0x65cc, 0x65ce, 0x65cf, 0x65d2, 0x65d6, 0x65d7, 0x65e0, 0x65e2, 0x65e5, +0x65e6, 0x65e7, 0x65e8, 0x65e9, 0x65ec, 0x65ed, 0x65ee, 0x65ef, 0x65f0, 0x65f1, 0x65f6, 0x65f7, 0x65fa, 0x6600, 0x6602, 0x6603, +0x6606, 0x660a, 0x660c, 0x660e, 0x660f, 0x6613, 0x6614, 0x6615, 0x6619, 0x661d, 0x661f, 0x6620, 0x6625, 0x6627, 0x6628, 0x662d, +0x662f, 0x6631, 0x6634, 0x6635, 0x6636, 0x663c, 0x663e, 0x6641, 0x6643, 0x664b, 0x664c, 0x664f, 0x6652, 0x6653, 0x6654, 0x6655, +0x6656, 0x6657, 0x665a, 0x665f, 0x6661, 0x6664, 0x6666, 0x6668, 0x666e, 0x666f, 0x6670, 0x6674, 0x6676, 0x6677, 0x667a, 0x667e, +0x6682, 0x6684, 0x6687, 0x668c, 0x6691, 0x6696, 0x6697, 0x669d, 0x66a7, 0x66a8, 0x66ae, 0x66b4, 0x66b9, 0x66be, 0x66d9, 0x66db, +0x66dc, 0x66dd, 0x66e6, 0x66e9, 0x66f0, 0x66f2, 0x66f3, 0x66f4, 0x66f7, 0x66f9, 0x66fc, 0x66fe, 0x66ff, 0x6700, 0x6708, 0x6709, +0x670a, 0x670b, 0x670d, 0x6710, 0x6714, 0x6715, 0x6717, 0x671b, 0x671d, 0x671f, 0x6726, 0x6728, 0x672a, 0x672b, 0x672c, 0x672d, +0x672f, 0x6731, 0x6734, 0x6735, 0x673a, 0x673d, 0x6740, 0x6742, 0x6743, 0x6746, 0x6748, 0x6749, 0x674c, 0x674e, 0x674f, 0x6750, +0x6751, 0x6753, 0x6756, 0x675c, 0x675e, 0x675f, 0x6760, 0x6761, 0x6765, 0x6768, 0x6769, 0x676a, 0x676d, 0x676f, 0x6770, 0x6772, +0x6773, 0x6775, 0x6777, 0x677c, 0x677e, 0x677f, 0x6781, 0x6784, 0x6787, 0x6789, 0x678b, 0x6790, 0x6795, 0x6797, 0x6798, 0x679a, +0x679c, 0x679d, 0x679e, 0x67a2, 0x67a3, 0x67a5, 0x67a7, 0x67a8, 0x67aa, 0x67ab, 0x67ad, 0x67af, 0x67b0, 0x67b3, 0x67b5, 0x67b6, +0x67b7, 0x67b8, 0x67c1, 0x67c3, 0x67c4, 0x67cf, 0x67d0, 0x67d1, 0x67d2, 0x67d3, 0x67d4, 0x67d8, 0x67d9, 0x67da, 0x67dc, 0x67dd, +0x67de, 0x67e0, 0x67e2, 0x67e5, 0x67e9, 0x67ec, 0x67ef, 0x67f0, 0x67f1, 0x67f3, 0x67f4, 0x67fd, 0x67ff, 0x6800, 0x6805, 0x6807, +0x6808, 0x6809, 0x680a, 0x680b, 0x680c, 0x680e, 0x680f, 0x6811, 0x6813, 0x6816, 0x6817, 0x681d, 0x6821, 0x6829, 0x682a, 0x6832, +0x6833, 0x6837, 0x6838, 0x6839, 0x683c, 0x683d, 0x683e, 0x6840, 0x6841, 0x6842, 0x6843, 0x6844, 0x6845, 0x6846, 0x6848, 0x6849, +0x684a, 0x684c, 0x684e, 0x6850, 0x6851, 0x6853, 0x6854, 0x6855, 0x6860, 0x6861, 0x6862, 0x6863, 0x6864, 0x6865, 0x6866, 0x6867, +0x6868, 0x6869, 0x686b, 0x6874, 0x6876, 0x6877, 0x6881, 0x6883, 0x6885, 0x6886, 0x688f, 0x6893, 0x6897, 0x68a2, 0x68a6, 0x68a7, +0x68a8, 0x68ad, 0x68af, 0x68b0, 0x68b3, 0x68b5, 0x68c0, 0x68c2, 0x68c9, 0x68cb, 0x68cd, 0x68d2, 0x68d5, 0x68d8, 0x68da, 0x68e0, +0x68e3, 0x68ee, 0x68f0, 0x68f1, 0x68f5, 0x68f9, 0x68fa, 0x68fc, 0x6901, 0x6905, 0x690b, 0x690d, 0x690e, 0x6910, 0x6912, 0x691f, +0x6920, 0x6924, 0x692d, 0x6930, 0x6934, 0x6939, 0x693d, 0x693f, 0x6942, 0x6954, 0x6957, 0x695a, 0x695d, 0x695e, 0x6960, 0x6963, +0x6966, 0x696b, 0x696e, 0x6971, 0x6977, 0x6978, 0x6979, 0x697c, 0x6980, 0x6982, 0x6984, 0x6986, 0x6987, 0x6988, 0x6989, 0x698d, +0x6994, 0x6995, 0x6998, 0x699b, 0x699c, 0x69a7, 0x69a8, 0x69ab, 0x69ad, 0x69b1, 0x69b4, 0x69b7, 0x69bb, 0x69c1, 0x69ca, 0x69cc, +0x69ce, 0x69d0, 0x69d4, 0x69db, 0x69df, 0x69e0, 0x69ed, 0x69f2, 0x69fd, 0x69ff, 0x6a0a, 0x6a17, 0x6a18, 0x6a1f, 0x6a21, 0x6a28, +0x6a2a, 0x6a2f, 0x6a31, 0x6a35, 0x6a3d, 0x6a3e, 0x6a44, 0x6a47, 0x6a50, 0x6a58, 0x6a59, 0x6a5b, 0x6a61, 0x6a65, 0x6a71, 0x6a79, +0x6a7c, 0x6a80, 0x6a84, 0x6a8e, 0x6a90, 0x6a91, 0x6a97, 0x6aa0, 0x6aa9, 0x6aab, 0x6aac, 0x6b20, 0x6b21, 0x6b22, 0x6b23, 0x6b24, +0x6b27, 0x6b32, 0x6b37, 0x6b39, 0x6b3a, 0x6b3e, 0x6b43, 0x6b46, 0x6b47, 0x6b49, 0x6b4c, 0x6b59, 0x6b62, 0x6b63, 0x6b64, 0x6b65, +0x6b66, 0x6b67, 0x6b6a, 0x6b79, 0x6b7b, 0x6b7c, 0x6b81, 0x6b82, 0x6b83, 0x6b84, 0x6b86, 0x6b87, 0x6b89, 0x6b8a, 0x6b8b, 0x6b8d, +0x6b92, 0x6b93, 0x6b96, 0x6b9a, 0x6b9b, 0x6ba1, 0x6baa, 0x6bb3, 0x6bb4, 0x6bb5, 0x6bb7, 0x6bbf, 0x6bc1, 0x6bc2, 0x6bc5, 0x6bcb, +0x6bcd, 0x6bcf, 0x6bd2, 0x6bd3, 0x6bd4, 0x6bd5, 0x6bd6, 0x6bd7, 0x6bd9, 0x6bdb, 0x6be1, 0x6bea, 0x6beb, 0x6bef, 0x6bf3, 0x6bf5, +0x6bf9, 0x6bfd, 0x6c05, 0x6c06, 0x6c07, 0x6c0d, 0x6c0f, 0x6c10, 0x6c11, 0x6c13, 0x6c14, 0x6c15, 0x6c16, 0x6c18, 0x6c19, 0x6c1a, +0x6c1b, 0x6c1f, 0x6c21, 0x6c22, 0x6c24, 0x6c26, 0x6c27, 0x6c28, 0x6c29, 0x6c2a, 0x6c2e, 0x6c2f, 0x6c30, 0x6c32, 0x6c34, 0x6c35, +0x6c38, 0x6c3d, 0x6c40, 0x6c41, 0x6c42, 0x6c46, 0x6c47, 0x6c49, 0x6c4a, 0x6c50, 0x6c54, 0x6c55, 0x6c57, 0x6c5b, 0x6c5c, 0x6c5d, +0x6c5e, 0x6c5f, 0x6c60, 0x6c61, 0x6c64, 0x6c68, 0x6c69, 0x6c6a, 0x6c70, 0x6c72, 0x6c74, 0x6c76, 0x6c79, 0x6c7d, 0x6c7e, 0x6c81, +0x6c82, 0x6c83, 0x6c85, 0x6c86, 0x6c88, 0x6c89, 0x6c8c, 0x6c8f, 0x6c90, 0x6c93, 0x6c94, 0x6c99, 0x6c9b, 0x6c9f, 0x6ca1, 0x6ca3, +0x6ca4, 0x6ca5, 0x6ca6, 0x6ca7, 0x6ca9, 0x6caa, 0x6cab, 0x6cad, 0x6cae, 0x6cb1, 0x6cb2, 0x6cb3, 0x6cb8, 0x6cb9, 0x6cbb, 0x6cbc, +0x6cbd, 0x6cbe, 0x6cbf, 0x6cc4, 0x6cc5, 0x6cc9, 0x6cca, 0x6ccc, 0x6cd0, 0x6cd3, 0x6cd4, 0x6cd5, 0x6cd6, 0x6cd7, 0x6cdb, 0x6cde, +0x6ce0, 0x6ce1, 0x6ce2, 0x6ce3, 0x6ce5, 0x6ce8, 0x6cea, 0x6ceb, 0x6cee, 0x6cef, 0x6cf0, 0x6cf1, 0x6cf3, 0x6cf5, 0x6cf6, 0x6cf7, +0x6cf8, 0x6cfa, 0x6cfb, 0x6cfc, 0x6cfd, 0x6cfe, 0x6d01, 0x6d04, 0x6d07, 0x6d0b, 0x6d0c, 0x6d0e, 0x6d12, 0x6d17, 0x6d19, 0x6d1a, +0x6d1b, 0x6d1e, 0x6d25, 0x6d27, 0x6d2a, 0x6d2b, 0x6d2e, 0x6d31, 0x6d32, 0x6d33, 0x6d35, 0x6d39, 0x6d3b, 0x6d3c, 0x6d3d, 0x6d3e, +0x6d41, 0x6d43, 0x6d45, 0x6d46, 0x6d47, 0x6d48, 0x6d4a, 0x6d4b, 0x6d4d, 0x6d4e, 0x6d4f, 0x6d51, 0x6d52, 0x6d53, 0x6d54, 0x6d59, +0x6d5a, 0x6d5c, 0x6d5e, 0x6d60, 0x6d63, 0x6d66, 0x6d69, 0x6d6a, 0x6d6e, 0x6d6f, 0x6d74, 0x6d77, 0x6d78, 0x6d7c, 0x6d82, 0x6d85, +0x6d88, 0x6d89, 0x6d8c, 0x6d8e, 0x6d91, 0x6d93, 0x6d94, 0x6d95, 0x6d9b, 0x6d9d, 0x6d9e, 0x6d9f, 0x6da0, 0x6da1, 0x6da3, 0x6da4, +0x6da6, 0x6da7, 0x6da8, 0x6da9, 0x6daa, 0x6dab, 0x6dae, 0x6daf, 0x6db2, 0x6db5, 0x6db8, 0x6dbf, 0x6dc0, 0x6dc4, 0x6dc5, 0x6dc6, +0x6dc7, 0x6dcb, 0x6dcc, 0x6dd1, 0x6dd6, 0x6dd8, 0x6dd9, 0x6ddd, 0x6dde, 0x6de0, 0x6de1, 0x6de4, 0x6de6, 0x6deb, 0x6dec, 0x6dee, +0x6df1, 0x6df3, 0x6df7, 0x6df9, 0x6dfb, 0x6dfc, 0x6e05, 0x6e0a, 0x6e0c, 0x6e0d, 0x6e0e, 0x6e10, 0x6e11, 0x6e14, 0x6e16, 0x6e17, +0x6e1a, 0x6e1d, 0x6e20, 0x6e21, 0x6e23, 0x6e24, 0x6e25, 0x6e29, 0x6e2b, 0x6e2d, 0x6e2f, 0x6e32, 0x6e34, 0x6e38, 0x6e3a, 0x6e43, +0x6e44, 0x6e4d, 0x6e4e, 0x6e53, 0x6e54, 0x6e56, 0x6e58, 0x6e5b, 0x6e5f, 0x6e6b, 0x6e6e, 0x6e7e, 0x6e7f, 0x6e83, 0x6e85, 0x6e86, +0x6e89, 0x6e8f, 0x6e90, 0x6e98, 0x6e9c, 0x6e9f, 0x6ea2, 0x6ea5, 0x6ea7, 0x6eaa, 0x6eaf, 0x6eb1, 0x6eb2, 0x6eb4, 0x6eb6, 0x6eb7, +0x6eba, 0x6ebb, 0x6ebd, 0x6ec1, 0x6ec2, 0x6ec7, 0x6ecb, 0x6ecf, 0x6ed1, 0x6ed3, 0x6ed4, 0x6ed5, 0x6ed7, 0x6eda, 0x6ede, 0x6edf, +0x6ee0, 0x6ee1, 0x6ee2, 0x6ee4, 0x6ee5, 0x6ee6, 0x6ee8, 0x6ee9, 0x6ef4, 0x6ef9, 0x6f02, 0x6f06, 0x6f09, 0x6f0f, 0x6f13, 0x6f14, +0x6f15, 0x6f20, 0x6f24, 0x6f29, 0x6f2a, 0x6f2b, 0x6f2d, 0x6f2f, 0x6f31, 0x6f33, 0x6f36, 0x6f3e, 0x6f46, 0x6f47, 0x6f4b, 0x6f4d, +0x6f58, 0x6f5c, 0x6f5e, 0x6f62, 0x6f66, 0x6f6d, 0x6f6e, 0x6f72, 0x6f74, 0x6f78, 0x6f7a, 0x6f7c, 0x6f84, 0x6f88, 0x6f89, 0x6f8c, +0x6f8d, 0x6f8e, 0x6f9c, 0x6fa1, 0x6fa7, 0x6fb3, 0x6fb6, 0x6fb9, 0x6fc0, 0x6fc2, 0x6fc9, 0x6fd1, 0x6fd2, 0x6fde, 0x6fe0, 0x6fe1, +0x6fee, 0x6fef, 0x7011, 0x701a, 0x701b, 0x7023, 0x7035, 0x7039, 0x704c, 0x704f, 0x705e, 0x706b, 0x706c, 0x706d, 0x706f, 0x7070, +0x7075, 0x7076, 0x7078, 0x707c, 0x707e, 0x707f, 0x7080, 0x7085, 0x7089, 0x708a, 0x708e, 0x7092, 0x7094, 0x7095, 0x7096, 0x7099, +0x709c, 0x709d, 0x70ab, 0x70ac, 0x70ad, 0x70ae, 0x70af, 0x70b1, 0x70b3, 0x70b7, 0x70b8, 0x70b9, 0x70bb, 0x70bc, 0x70bd, 0x70c0, +0x70c1, 0x70c2, 0x70c3, 0x70c8, 0x70ca, 0x70d8, 0x70d9, 0x70db, 0x70df, 0x70e4, 0x70e6, 0x70e7, 0x70e8, 0x70e9, 0x70eb, 0x70ec, +0x70ed, 0x70ef, 0x70f7, 0x70f9, 0x70fd, 0x7109, 0x710a, 0x7110, 0x7113, 0x7115, 0x7116, 0x7118, 0x7119, 0x711a, 0x7126, 0x712f, +0x7130, 0x7131, 0x7136, 0x7145, 0x714a, 0x714c, 0x714e, 0x715c, 0x715e, 0x7164, 0x7166, 0x7167, 0x7168, 0x716e, 0x7172, 0x7173, +0x7178, 0x717a, 0x717d, 0x7184, 0x718a, 0x718f, 0x7194, 0x7198, 0x7199, 0x719f, 0x71a0, 0x71a8, 0x71ac, 0x71b3, 0x71b5, 0x71b9, +0x71c3, 0x71ce, 0x71d4, 0x71d5, 0x71e0, 0x71e5, 0x71e7, 0x71ee, 0x71f9, 0x7206, 0x721d, 0x7228, 0x722a, 0x722c, 0x7230, 0x7231, +0x7235, 0x7236, 0x7237, 0x7238, 0x7239, 0x723b, 0x723d, 0x723f, 0x7247, 0x7248, 0x724c, 0x724d, 0x7252, 0x7256, 0x7259, 0x725b, +0x725d, 0x725f, 0x7261, 0x7262, 0x7266, 0x7267, 0x7269, 0x726e, 0x726f, 0x7272, 0x7275, 0x7279, 0x727a, 0x727e, 0x727f, 0x7280, +0x7281, 0x7284, 0x728a, 0x728b, 0x728d, 0x728f, 0x7292, 0x729f, 0x72ac, 0x72ad, 0x72af, 0x72b0, 0x72b4, 0x72b6, 0x72b7, 0x72b8, +0x72b9, 0x72c1, 0x72c2, 0x72c3, 0x72c4, 0x72c8, 0x72cd, 0x72ce, 0x72d0, 0x72d2, 0x72d7, 0x72d9, 0x72de, 0x72e0, 0x72e1, 0x72e8, +0x72e9, 0x72ec, 0x72ed, 0x72ee, 0x72ef, 0x72f0, 0x72f1, 0x72f2, 0x72f3, 0x72f4, 0x72f7, 0x72f8, 0x72fa, 0x72fb, 0x72fc, 0x7301, +0x7303, 0x730a, 0x730e, 0x7313, 0x7315, 0x7316, 0x7317, 0x731b, 0x731c, 0x731d, 0x731e, 0x7321, 0x7322, 0x7325, 0x7329, 0x732a, +0x732b, 0x732c, 0x732e, 0x7331, 0x7334, 0x7337, 0x7338, 0x7339, 0x733e, 0x733f, 0x734d, 0x7350, 0x7352, 0x7357, 0x7360, 0x736c, +0x736d, 0x736f, 0x737e, 0x7384, 0x7387, 0x7389, 0x738b, 0x738e, 0x7391, 0x7396, 0x739b, 0x739f, 0x73a2, 0x73a9, 0x73ab, 0x73ae, +0x73af, 0x73b0, 0x73b2, 0x73b3, 0x73b7, 0x73ba, 0x73bb, 0x73c0, 0x73c2, 0x73c8, 0x73c9, 0x73ca, 0x73cd, 0x73cf, 0x73d0, 0x73d1, +0x73d9, 0x73de, 0x73e0, 0x73e5, 0x73e7, 0x73e9, 0x73ed, 0x73f2, 0x7403, 0x7405, 0x7406, 0x7409, 0x740a, 0x740f, 0x7410, 0x741a, +0x741b, 0x7422, 0x7425, 0x7426, 0x7428, 0x742a, 0x742c, 0x742e, 0x7430, 0x7433, 0x7434, 0x7435, 0x7436, 0x743c, 0x7441, 0x7455, +0x7457, 0x7459, 0x745a, 0x745b, 0x745c, 0x745e, 0x745f, 0x746d, 0x7470, 0x7476, 0x7477, 0x747e, 0x7480, 0x7481, 0x7483, 0x7487, +0x748b, 0x748e, 0x7490, 0x749c, 0x749e, 0x74a7, 0x74a8, 0x74a9, 0x74ba, 0x74d2, 0x74dc, 0x74de, 0x74e0, 0x74e2, 0x74e3, 0x74e4, +0x74e6, 0x74ee, 0x74ef, 0x74f4, 0x74f6, 0x74f7, 0x74ff, 0x7504, 0x750d, 0x750f, 0x7511, 0x7513, 0x7518, 0x7519, 0x751a, 0x751c, +0x751f, 0x7525, 0x7528, 0x7529, 0x752b, 0x752c, 0x752d, 0x752f, 0x7530, 0x7531, 0x7532, 0x7533, 0x7535, 0x7537, 0x7538, 0x753a, +0x753b, 0x753e, 0x7540, 0x7545, 0x7548, 0x754b, 0x754c, 0x754e, 0x754f, 0x7554, 0x7559, 0x755a, 0x755b, 0x755c, 0x7565, 0x7566, +0x756a, 0x7572, 0x7574, 0x7578, 0x7579, 0x757f, 0x7583, 0x7586, 0x758b, 0x758f, 0x7591, 0x7592, 0x7594, 0x7596, 0x7597, 0x7599, +0x759a, 0x759d, 0x759f, 0x75a0, 0x75a1, 0x75a3, 0x75a4, 0x75a5, 0x75ab, 0x75ac, 0x75ae, 0x75af, 0x75b0, 0x75b1, 0x75b2, 0x75b3, +0x75b4, 0x75b5, 0x75b8, 0x75b9, 0x75bc, 0x75bd, 0x75be, 0x75c2, 0x75c3, 0x75c4, 0x75c5, 0x75c7, 0x75c8, 0x75c9, 0x75ca, 0x75cd, +0x75d2, 0x75d4, 0x75d5, 0x75d6, 0x75d8, 0x75db, 0x75de, 0x75e2, 0x75e3, 0x75e4, 0x75e6, 0x75e7, 0x75e8, 0x75ea, 0x75eb, 0x75f0, +0x75f1, 0x75f4, 0x75f9, 0x75fc, 0x75ff, 0x7600, 0x7601, 0x7603, 0x7605, 0x760a, 0x760c, 0x7610, 0x7615, 0x7617, 0x7618, 0x7619, +0x761b, 0x761f, 0x7620, 0x7622, 0x7624, 0x7625, 0x7626, 0x7629, 0x762a, 0x762b, 0x762d, 0x7630, 0x7633, 0x7634, 0x7635, 0x7638, +0x763c, 0x763e, 0x763f, 0x7640, 0x7643, 0x764c, 0x764d, 0x7654, 0x7656, 0x765c, 0x765e, 0x7663, 0x766b, 0x766f, 0x7678, 0x767b, +0x767d, 0x767e, 0x7682, 0x7684, 0x7686, 0x7687, 0x7688, 0x768b, 0x768e, 0x7691, 0x7693, 0x7696, 0x7699, 0x76a4, 0x76ae, 0x76b1, +0x76b2, 0x76b4, 0x76bf, 0x76c2, 0x76c5, 0x76c6, 0x76c8, 0x76ca, 0x76cd, 0x76ce, 0x76cf, 0x76d0, 0x76d1, 0x76d2, 0x76d4, 0x76d6, +0x76d7, 0x76d8, 0x76db, 0x76df, 0x76e5, 0x76ee, 0x76ef, 0x76f1, 0x76f2, 0x76f4, 0x76f8, 0x76f9, 0x76fc, 0x76fe, 0x7701, 0x7704, +0x7707, 0x7708, 0x7709, 0x770b, 0x770d, 0x7719, 0x771a, 0x771f, 0x7720, 0x7722, 0x7726, 0x7728, 0x7729, 0x772d, 0x772f, 0x7735, +0x7736, 0x7737, 0x7738, 0x773a, 0x773c, 0x7740, 0x7741, 0x7743, 0x7747, 0x7750, 0x7751, 0x775a, 0x775b, 0x7761, 0x7762, 0x7763, +0x7765, 0x7766, 0x7768, 0x776b, 0x776c, 0x7779, 0x777d, 0x777e, 0x777f, 0x7780, 0x7784, 0x7785, 0x778c, 0x778d, 0x778e, 0x7791, +0x7792, 0x779f, 0x77a0, 0x77a2, 0x77a5, 0x77a7, 0x77a9, 0x77aa, 0x77ac, 0x77b0, 0x77b3, 0x77b5, 0x77bb, 0x77bd, 0x77bf, 0x77cd, +0x77d7, 0x77db, 0x77dc, 0x77e2, 0x77e3, 0x77e5, 0x77e7, 0x77e9, 0x77eb, 0x77ec, 0x77ed, 0x77ee, 0x77f3, 0x77f6, 0x77f8, 0x77fd, +0x77fe, 0x77ff, 0x7800, 0x7801, 0x7802, 0x7809, 0x780c, 0x780d, 0x7811, 0x7812, 0x7814, 0x7816, 0x7817, 0x7818, 0x781a, 0x781c, +0x781d, 0x781f, 0x7823, 0x7825, 0x7826, 0x7827, 0x7829, 0x782c, 0x782d, 0x7830, 0x7834, 0x7837, 0x7838, 0x7839, 0x783a, 0x783b, +0x783c, 0x783e, 0x7840, 0x7845, 0x7847, 0x784c, 0x784e, 0x7850, 0x7852, 0x7855, 0x7856, 0x7857, 0x785d, 0x786a, 0x786b, 0x786c, +0x786d, 0x786e, 0x7877, 0x787c, 0x7887, 0x7889, 0x788c, 0x788d, 0x788e, 0x7891, 0x7893, 0x7897, 0x7898, 0x789a, 0x789b, 0x789c, +0x789f, 0x78a1, 0x78a3, 0x78a5, 0x78a7, 0x78b0, 0x78b1, 0x78b2, 0x78b3, 0x78b4, 0x78b9, 0x78be, 0x78c1, 0x78c5, 0x78c9, 0x78ca, +0x78cb, 0x78d0, 0x78d4, 0x78d5, 0x78d9, 0x78e8, 0x78ec, 0x78f2, 0x78f4, 0x78f7, 0x78fa, 0x7901, 0x7905, 0x7913, 0x791e, 0x7924, +0x7934, 0x793a, 0x793b, 0x793c, 0x793e, 0x7940, 0x7941, 0x7946, 0x7948, 0x7949, 0x7953, 0x7956, 0x7957, 0x795a, 0x795b, 0x795c, +0x795d, 0x795e, 0x795f, 0x7960, 0x7962, 0x7965, 0x7967, 0x7968, 0x796d, 0x796f, 0x7977, 0x7978, 0x797a, 0x7980, 0x7981, 0x7984, +0x7985, 0x798a, 0x798f, 0x799a, 0x79a7, 0x79b3, 0x79b9, 0x79ba, 0x79bb, 0x79bd, 0x79be, 0x79c0, 0x79c1, 0x79c3, 0x79c6, 0x79c9, +0x79cb, 0x79cd, 0x79d1, 0x79d2, 0x79d5, 0x79d8, 0x79df, 0x79e3, 0x79e4, 0x79e6, 0x79e7, 0x79e9, 0x79eb, 0x79ed, 0x79ef, 0x79f0, +0x79f8, 0x79fb, 0x79fd, 0x7a00, 0x7a02, 0x7a03, 0x7a06, 0x7a0b, 0x7a0d, 0x7a0e, 0x7a14, 0x7a17, 0x7a1a, 0x7a1e, 0x7a20, 0x7a23, +0x7a33, 0x7a37, 0x7a39, 0x7a3b, 0x7a3c, 0x7a3d, 0x7a3f, 0x7a46, 0x7a51, 0x7a57, 0x7a70, 0x7a74, 0x7a76, 0x7a77, 0x7a78, 0x7a79, +0x7a7a, 0x7a7f, 0x7a80, 0x7a81, 0x7a83, 0x7a84, 0x7a86, 0x7a88, 0x7a8d, 0x7a91, 0x7a92, 0x7a95, 0x7a96, 0x7a97, 0x7a98, 0x7a9c, +0x7a9d, 0x7a9f, 0x7aa0, 0x7aa5, 0x7aa6, 0x7aa8, 0x7aac, 0x7aad, 0x7ab3, 0x7abf, 0x7acb, 0x7ad6, 0x7ad9, 0x7ade, 0x7adf, 0x7ae0, +0x7ae3, 0x7ae5, 0x7ae6, 0x7aed, 0x7aef, 0x7af9, 0x7afa, 0x7afd, 0x7aff, 0x7b03, 0x7b04, 0x7b06, 0x7b08, 0x7b0a, 0x7b0b, 0x7b0f, +0x7b11, 0x7b14, 0x7b15, 0x7b19, 0x7b1b, 0x7b1e, 0x7b20, 0x7b24, 0x7b25, 0x7b26, 0x7b28, 0x7b2a, 0x7b2b, 0x7b2c, 0x7b2e, 0x7b31, +0x7b33, 0x7b38, 0x7b3a, 0x7b3c, 0x7b3e, 0x7b45, 0x7b47, 0x7b49, 0x7b4b, 0x7b4c, 0x7b4f, 0x7b50, 0x7b51, 0x7b52, 0x7b54, 0x7b56, +0x7b58, 0x7b5a, 0x7b5b, 0x7b5d, 0x7b60, 0x7b62, 0x7b6e, 0x7b71, 0x7b72, 0x7b75, 0x7b77, 0x7b79, 0x7b7b, 0x7b7e, 0x7b80, 0x7b85, +0x7b8d, 0x7b90, 0x7b94, 0x7b95, 0x7b97, 0x7b9c, 0x7b9d, 0x7ba1, 0x7ba2, 0x7ba6, 0x7ba7, 0x7ba8, 0x7ba9, 0x7baa, 0x7bab, 0x7bac, +0x7bad, 0x7bb1, 0x7bb4, 0x7bb8, 0x7bc1, 0x7bc6, 0x7bc7, 0x7bcc, 0x7bd1, 0x7bd3, 0x7bd9, 0x7bda, 0x7bdd, 0x7be1, 0x7be5, 0x7be6, +0x7bea, 0x7bee, 0x7bf1, 0x7bf7, 0x7bfc, 0x7bfe, 0x7c07, 0x7c0b, 0x7c0c, 0x7c0f, 0x7c16, 0x7c1f, 0x7c26, 0x7c27, 0x7c2a, 0x7c38, +0x7c3f, 0x7c40, 0x7c41, 0x7c4d, 0x7c73, 0x7c74, 0x7c7b, 0x7c7c, 0x7c7d, 0x7c89, 0x7c91, 0x7c92, 0x7c95, 0x7c97, 0x7c98, 0x7c9c, +0x7c9d, 0x7c9e, 0x7c9f, 0x7ca2, 0x7ca4, 0x7ca5, 0x7caa, 0x7cae, 0x7cb1, 0x7cb2, 0x7cb3, 0x7cb9, 0x7cbc, 0x7cbd, 0x7cbe, 0x7cc1, +0x7cc5, 0x7cc7, 0x7cc8, 0x7cca, 0x7ccc, 0x7ccd, 0x7cd5, 0x7cd6, 0x7cd7, 0x7cd9, 0x7cdc, 0x7cdf, 0x7ce0, 0x7ce8, 0x7cef, 0x7cf8, +0x7cfb, 0x7d0a, 0x7d20, 0x7d22, 0x7d27, 0x7d2b, 0x7d2f, 0x7d6e, 0x7d77, 0x7da6, 0x7dae, 0x7e3b, 0x7e41, 0x7e47, 0x7e82, 0x7e9b, +0x7e9f, 0x7ea0, 0x7ea1, 0x7ea2, 0x7ea3, 0x7ea4, 0x7ea5, 0x7ea6, 0x7ea7, 0x7ea8, 0x7ea9, 0x7eaa, 0x7eab, 0x7eac, 0x7ead, 0x7eaf, +0x7eb0, 0x7eb1, 0x7eb2, 0x7eb3, 0x7eb5, 0x7eb6, 0x7eb7, 0x7eb8, 0x7eb9, 0x7eba, 0x7ebd, 0x7ebe, 0x7ebf, 0x7ec0, 0x7ec1, 0x7ec2, +0x7ec3, 0x7ec4, 0x7ec5, 0x7ec6, 0x7ec7, 0x7ec8, 0x7ec9, 0x7eca, 0x7ecb, 0x7ecc, 0x7ecd, 0x7ece, 0x7ecf, 0x7ed0, 0x7ed1, 0x7ed2, +0x7ed3, 0x7ed4, 0x7ed5, 0x7ed7, 0x7ed8, 0x7ed9, 0x7eda, 0x7edb, 0x7edc, 0x7edd, 0x7ede, 0x7edf, 0x7ee0, 0x7ee1, 0x7ee2, 0x7ee3, +0x7ee5, 0x7ee6, 0x7ee7, 0x7ee8, 0x7ee9, 0x7eea, 0x7eeb, 0x7eed, 0x7eee, 0x7eef, 0x7ef0, 0x7ef1, 0x7ef2, 0x7ef3, 0x7ef4, 0x7ef5, +0x7ef6, 0x7ef7, 0x7ef8, 0x7efa, 0x7efb, 0x7efc, 0x7efd, 0x7efe, 0x7eff, 0x7f00, 0x7f01, 0x7f02, 0x7f03, 0x7f04, 0x7f05, 0x7f06, +0x7f07, 0x7f08, 0x7f09, 0x7f0b, 0x7f0c, 0x7f0d, 0x7f0e, 0x7f0f, 0x7f11, 0x7f12, 0x7f13, 0x7f14, 0x7f15, 0x7f16, 0x7f17, 0x7f18, +0x7f19, 0x7f1a, 0x7f1b, 0x7f1c, 0x7f1d, 0x7f1f, 0x7f20, 0x7f21, 0x7f22, 0x7f23, 0x7f24, 0x7f25, 0x7f26, 0x7f27, 0x7f28, 0x7f29, +0x7f2a, 0x7f2b, 0x7f2c, 0x7f2d, 0x7f2e, 0x7f2f, 0x7f30, 0x7f31, 0x7f32, 0x7f33, 0x7f34, 0x7f35, 0x7f36, 0x7f38, 0x7f3a, 0x7f42, +0x7f44, 0x7f45, 0x7f50, 0x7f51, 0x7f54, 0x7f55, 0x7f57, 0x7f58, 0x7f5a, 0x7f5f, 0x7f61, 0x7f62, 0x7f68, 0x7f69, 0x7f6a, 0x7f6e, +0x7f71, 0x7f72, 0x7f74, 0x7f79, 0x7f7e, 0x7f81, 0x7f8a, 0x7f8c, 0x7f8e, 0x7f94, 0x7f9a, 0x7f9d, 0x7f9e, 0x7f9f, 0x7fa1, 0x7fa4, +0x7fa7, 0x7faf, 0x7fb0, 0x7fb2, 0x7fb8, 0x7fb9, 0x7fbc, 0x7fbd, 0x7fbf, 0x7fc1, 0x7fc5, 0x7fca, 0x7fcc, 0x7fce, 0x7fd4, 0x7fd5, +0x7fd8, 0x7fdf, 0x7fe0, 0x7fe1, 0x7fe5, 0x7fe6, 0x7fe9, 0x7fee, 0x7ff0, 0x7ff1, 0x7ff3, 0x7ffb, 0x7ffc, 0x8000, 0x8001, 0x8003, +0x8004, 0x8005, 0x8006, 0x800b, 0x800c, 0x800d, 0x8010, 0x8012, 0x8014, 0x8015, 0x8016, 0x8017, 0x8018, 0x8019, 0x801c, 0x8020, +0x8022, 0x8025, 0x8026, 0x8027, 0x8028, 0x8029, 0x802a, 0x8031, 0x8033, 0x8035, 0x8036, 0x8037, 0x8038, 0x803b, 0x803d, 0x803f, +0x8042, 0x8043, 0x8046, 0x804a, 0x804b, 0x804c, 0x804d, 0x8052, 0x8054, 0x8058, 0x805a, 0x8069, 0x806a, 0x8071, 0x807f, 0x8080, +0x8083, 0x8084, 0x8086, 0x8087, 0x8089, 0x808b, 0x808c, 0x8093, 0x8096, 0x8098, 0x809a, 0x809b, 0x809c, 0x809d, 0x809f, 0x80a0, +0x80a1, 0x80a2, 0x80a4, 0x80a5, 0x80a9, 0x80aa, 0x80ab, 0x80ad, 0x80ae, 0x80af, 0x80b1, 0x80b2, 0x80b4, 0x80b7, 0x80ba, 0x80bc, +0x80bd, 0x80be, 0x80bf, 0x80c0, 0x80c1, 0x80c2, 0x80c3, 0x80c4, 0x80c6, 0x80cc, 0x80cd, 0x80ce, 0x80d6, 0x80d7, 0x80d9, 0x80da, +0x80db, 0x80dc, 0x80dd, 0x80de, 0x80e1, 0x80e4, 0x80e5, 0x80e7, 0x80e8, 0x80e9, 0x80ea, 0x80eb, 0x80ec, 0x80ed, 0x80ef, 0x80f0, +0x80f1, 0x80f2, 0x80f3, 0x80f4, 0x80f6, 0x80f8, 0x80fa, 0x80fc, 0x80fd, 0x8102, 0x8106, 0x8109, 0x810a, 0x810d, 0x810e, 0x810f, +0x8110, 0x8111, 0x8112, 0x8113, 0x8114, 0x8116, 0x8118, 0x811a, 0x811e, 0x812c, 0x812f, 0x8131, 0x8132, 0x8136, 0x8138, 0x813e, +0x8146, 0x8148, 0x814a, 0x814b, 0x814c, 0x8150, 0x8151, 0x8153, 0x8154, 0x8155, 0x8159, 0x815a, 0x8160, 0x8165, 0x8167, 0x8169, +0x816d, 0x816e, 0x8170, 0x8171, 0x8174, 0x8179, 0x817a, 0x817b, 0x817c, 0x817d, 0x817e, 0x817f, 0x8180, 0x8182, 0x8188, 0x818a, +0x818f, 0x8191, 0x8198, 0x819b, 0x819c, 0x819d, 0x81a3, 0x81a6, 0x81a8, 0x81aa, 0x81b3, 0x81ba, 0x81bb, 0x81c0, 0x81c1, 0x81c2, +0x81c3, 0x81c6, 0x81ca, 0x81cc, 0x81e3, 0x81e7, 0x81ea, 0x81ec, 0x81ed, 0x81f3, 0x81f4, 0x81fb, 0x81fc, 0x81fe, 0x8200, 0x8201, +0x8202, 0x8204, 0x8205, 0x8206, 0x820c, 0x820d, 0x8210, 0x8212, 0x8214, 0x821b, 0x821c, 0x821e, 0x821f, 0x8221, 0x8222, 0x8223, +0x8228, 0x822a, 0x822b, 0x822c, 0x822d, 0x822f, 0x8230, 0x8231, 0x8233, 0x8234, 0x8235, 0x8236, 0x8237, 0x8238, 0x8239, 0x823b, +0x823e, 0x8244, 0x8247, 0x8249, 0x824b, 0x824f, 0x8258, 0x825a, 0x825f, 0x8268, 0x826e, 0x826f, 0x8270, 0x8272, 0x8273, 0x8274, +0x8279, 0x827a, 0x827d, 0x827e, 0x827f, 0x8282, 0x8284, 0x8288, 0x828a, 0x828b, 0x828d, 0x828e, 0x828f, 0x8291, 0x8292, 0x8297, +0x8298, 0x8299, 0x829c, 0x829d, 0x829f, 0x82a1, 0x82a4, 0x82a5, 0x82a6, 0x82a8, 0x82a9, 0x82aa, 0x82ab, 0x82ac, 0x82ad, 0x82ae, +0x82af, 0x82b0, 0x82b1, 0x82b3, 0x82b4, 0x82b7, 0x82b8, 0x82b9, 0x82bd, 0x82be, 0x82c1, 0x82c4, 0x82c7, 0x82c8, 0x82ca, 0x82cb, +0x82cc, 0x82cd, 0x82ce, 0x82cf, 0x82d1, 0x82d2, 0x82d3, 0x82d4, 0x82d5, 0x82d7, 0x82d8, 0x82db, 0x82dc, 0x82de, 0x82df, 0x82e0, +0x82e1, 0x82e3, 0x82e4, 0x82e5, 0x82e6, 0x82eb, 0x82ef, 0x82f1, 0x82f4, 0x82f7, 0x82f9, 0x82fb, 0x8301, 0x8302, 0x8303, 0x8304, +0x8305, 0x8306, 0x8307, 0x8308, 0x8309, 0x830c, 0x830e, 0x830f, 0x8311, 0x8314, 0x8315, 0x8317, 0x831a, 0x831b, 0x831c, 0x8327, +0x8328, 0x832b, 0x832c, 0x832d, 0x832f, 0x8331, 0x8333, 0x8334, 0x8335, 0x8336, 0x8338, 0x8339, 0x833a, 0x833c, 0x8340, 0x8343, +0x8346, 0x8347, 0x8349, 0x834f, 0x8350, 0x8351, 0x8352, 0x8354, 0x835a, 0x835b, 0x835c, 0x835e, 0x835f, 0x8360, 0x8361, 0x8363, +0x8364, 0x8365, 0x8366, 0x8367, 0x8368, 0x8369, 0x836a, 0x836b, 0x836c, 0x836d, 0x836e, 0x836f, 0x8377, 0x8378, 0x837b, 0x837c, +0x837d, 0x8385, 0x8386, 0x8389, 0x838e, 0x8392, 0x8393, 0x8398, 0x839b, 0x839c, 0x839e, 0x83a0, 0x83a8, 0x83a9, 0x83aa, 0x83ab, +0x83b0, 0x83b1, 0x83b2, 0x83b3, 0x83b4, 0x83b6, 0x83b7, 0x83b8, 0x83b9, 0x83ba, 0x83bc, 0x83bd, 0x83c0, 0x83c1, 0x83c5, 0x83c7, +0x83ca, 0x83cc, 0x83cf, 0x83d4, 0x83d6, 0x83d8, 0x83dc, 0x83dd, 0x83df, 0x83e0, 0x83e1, 0x83e5, 0x83e9, 0x83ea, 0x83f0, 0x83f1, +0x83f2, 0x83f8, 0x83f9, 0x83fd, 0x8401, 0x8403, 0x8404, 0x8406, 0x840b, 0x840c, 0x840d, 0x840e, 0x840f, 0x8411, 0x8418, 0x841c, +0x841d, 0x8424, 0x8425, 0x8426, 0x8427, 0x8428, 0x8431, 0x8438, 0x843c, 0x843d, 0x8446, 0x8451, 0x8457, 0x8459, 0x845a, 0x845b, +0x845c, 0x8461, 0x8463, 0x8469, 0x846b, 0x846c, 0x846d, 0x8471, 0x8473, 0x8475, 0x8476, 0x8478, 0x847a, 0x8482, 0x8487, 0x8488, +0x8489, 0x848b, 0x848c, 0x848e, 0x8497, 0x8499, 0x849c, 0x84a1, 0x84af, 0x84b2, 0x84b4, 0x84b8, 0x84b9, 0x84ba, 0x84bd, 0x84bf, +0x84c1, 0x84c4, 0x84c9, 0x84ca, 0x84cd, 0x84d0, 0x84d1, 0x84d3, 0x84d6, 0x84dd, 0x84df, 0x84e0, 0x84e3, 0x84e5, 0x84e6, 0x84ec, +0x84f0, 0x84fc, 0x84ff, 0x850c, 0x8511, 0x8513, 0x8517, 0x851a, 0x851f, 0x8521, 0x852b, 0x852c, 0x8537, 0x8538, 0x8539, 0x853a, +0x853b, 0x853c, 0x853d, 0x8543, 0x8548, 0x8549, 0x854a, 0x8556, 0x8559, 0x855e, 0x8564, 0x8568, 0x8572, 0x8574, 0x8579, 0x857a, +0x857b, 0x857e, 0x8584, 0x8585, 0x8587, 0x858f, 0x859b, 0x859c, 0x85a4, 0x85a8, 0x85aa, 0x85ae, 0x85af, 0x85b0, 0x85b7, 0x85b9, +0x85c1, 0x85c9, 0x85cf, 0x85d0, 0x85d3, 0x85d5, 0x85dc, 0x85e4, 0x85e9, 0x85fb, 0x85ff, 0x8605, 0x8611, 0x8616, 0x8627, 0x8629, +0x8638, 0x863c, 0x864d, 0x864e, 0x864f, 0x8650, 0x8651, 0x8654, 0x865a, 0x865e, 0x8662, 0x866b, 0x866c, 0x866e, 0x8671, 0x8679, +0x867a, 0x867b, 0x867c, 0x867d, 0x867e, 0x867f, 0x8680, 0x8681, 0x8682, 0x868a, 0x868b, 0x868c, 0x868d, 0x8693, 0x8695, 0x869c, +0x869d, 0x86a3, 0x86a4, 0x86a7, 0x86a8, 0x86a9, 0x86aa, 0x86ac, 0x86af, 0x86b0, 0x86b1, 0x86b4, 0x86b5, 0x86b6, 0x86ba, 0x86c0, +0x86c4, 0x86c6, 0x86c7, 0x86c9, 0x86ca, 0x86cb, 0x86ce, 0x86cf, 0x86d0, 0x86d1, 0x86d4, 0x86d8, 0x86d9, 0x86db, 0x86de, 0x86df, +0x86e4, 0x86e9, 0x86ed, 0x86ee, 0x86f0, 0x86f1, 0x86f2, 0x86f3, 0x86f4, 0x86f8, 0x86f9, 0x86fe, 0x8700, 0x8702, 0x8703, 0x8707, +0x8708, 0x8709, 0x870a, 0x870d, 0x8712, 0x8713, 0x8715, 0x8717, 0x8718, 0x871a, 0x871c, 0x871e, 0x8721, 0x8722, 0x8723, 0x8725, +0x8729, 0x872e, 0x8731, 0x8734, 0x8737, 0x873b, 0x873e, 0x873f, 0x8747, 0x8748, 0x8749, 0x874c, 0x874e, 0x8753, 0x8757, 0x8759, +0x8760, 0x8763, 0x8764, 0x8765, 0x876e, 0x8770, 0x8774, 0x8776, 0x877b, 0x877c, 0x877d, 0x877e, 0x8782, 0x8783, 0x8785, 0x8788, +0x878b, 0x878d, 0x8793, 0x8797, 0x879f, 0x87a8, 0x87ab, 0x87ac, 0x87ad, 0x87af, 0x87b3, 0x87b5, 0x87ba, 0x87bd, 0x87c0, 0x87c6, +0x87ca, 0x87cb, 0x87d1, 0x87d2, 0x87d3, 0x87db, 0x87e0, 0x87e5, 0x87ea, 0x87ee, 0x87f9, 0x87fe, 0x8803, 0x880a, 0x8813, 0x8815, +0x8816, 0x881b, 0x8821, 0x8822, 0x8832, 0x8839, 0x883c, 0x8840, 0x8844, 0x8845, 0x884c, 0x884d, 0x8854, 0x8857, 0x8859, 0x8861, +0x8862, 0x8863, 0x8864, 0x8865, 0x8868, 0x8869, 0x886b, 0x886c, 0x886e, 0x8870, 0x8872, 0x8877, 0x887d, 0x887e, 0x887f, 0x8881, +0x8882, 0x8884, 0x8885, 0x8888, 0x888b, 0x888d, 0x8892, 0x8896, 0x889c, 0x88a2, 0x88a4, 0x88ab, 0x88ad, 0x88b1, 0x88b7, 0x88bc, +0x88c1, 0x88c2, 0x88c5, 0x88c6, 0x88c9, 0x88ce, 0x88d2, 0x88d4, 0x88d5, 0x88d8, 0x88d9, 0x88df, 0x88e2, 0x88e3, 0x88e4, 0x88e5, +0x88e8, 0x88f0, 0x88f1, 0x88f3, 0x88f4, 0x88f8, 0x88f9, 0x88fc, 0x88fe, 0x8902, 0x890a, 0x8910, 0x8912, 0x8913, 0x8919, 0x891a, +0x891b, 0x8921, 0x8925, 0x892a, 0x892b, 0x8930, 0x8934, 0x8936, 0x8941, 0x8944, 0x895e, 0x895f, 0x8966, 0x897b, 0x897f, 0x8981, +0x8983, 0x8986, 0x89c1, 0x89c2, 0x89c4, 0x89c5, 0x89c6, 0x89c7, 0x89c8, 0x89c9, 0x89ca, 0x89cb, 0x89cc, 0x89ce, 0x89cf, 0x89d0, +0x89d1, 0x89d2, 0x89d6, 0x89da, 0x89dc, 0x89de, 0x89e3, 0x89e5, 0x89e6, 0x89eb, 0x89ef, 0x89f3, 0x8a00, 0x8a07, 0x8a3e, 0x8a48, +0x8a79, 0x8a89, 0x8a8a, 0x8a93, 0x8b07, 0x8b26, 0x8b66, 0x8b6c, 0x8ba0, 0x8ba1, 0x8ba2, 0x8ba3, 0x8ba4, 0x8ba5, 0x8ba6, 0x8ba7, +0x8ba8, 0x8ba9, 0x8baa, 0x8bab, 0x8bad, 0x8bae, 0x8baf, 0x8bb0, 0x8bb2, 0x8bb3, 0x8bb4, 0x8bb5, 0x8bb6, 0x8bb7, 0x8bb8, 0x8bb9, +0x8bba, 0x8bbc, 0x8bbd, 0x8bbe, 0x8bbf, 0x8bc0, 0x8bc1, 0x8bc2, 0x8bc3, 0x8bc4, 0x8bc5, 0x8bc6, 0x8bc8, 0x8bc9, 0x8bca, 0x8bcb, +0x8bcc, 0x8bcd, 0x8bce, 0x8bcf, 0x8bd1, 0x8bd2, 0x8bd3, 0x8bd4, 0x8bd5, 0x8bd6, 0x8bd7, 0x8bd8, 0x8bd9, 0x8bda, 0x8bdb, 0x8bdc, +0x8bdd, 0x8bde, 0x8bdf, 0x8be0, 0x8be1, 0x8be2, 0x8be3, 0x8be4, 0x8be5, 0x8be6, 0x8be7, 0x8be8, 0x8be9, 0x8beb, 0x8bec, 0x8bed, +0x8bee, 0x8bef, 0x8bf0, 0x8bf1, 0x8bf2, 0x8bf3, 0x8bf4, 0x8bf5, 0x8bf6, 0x8bf7, 0x8bf8, 0x8bf9, 0x8bfa, 0x8bfb, 0x8bfc, 0x8bfd, +0x8bfe, 0x8bff, 0x8c00, 0x8c01, 0x8c02, 0x8c03, 0x8c04, 0x8c05, 0x8c06, 0x8c07, 0x8c08, 0x8c0a, 0x8c0b, 0x8c0c, 0x8c0d, 0x8c0e, +0x8c0f, 0x8c10, 0x8c11, 0x8c12, 0x8c13, 0x8c14, 0x8c15, 0x8c16, 0x8c17, 0x8c18, 0x8c19, 0x8c1a, 0x8c1b, 0x8c1c, 0x8c1d, 0x8c1f, +0x8c20, 0x8c21, 0x8c22, 0x8c23, 0x8c24, 0x8c25, 0x8c26, 0x8c27, 0x8c28, 0x8c29, 0x8c2a, 0x8c2b, 0x8c2c, 0x8c2d, 0x8c2e, 0x8c2f, +0x8c30, 0x8c31, 0x8c32, 0x8c33, 0x8c34, 0x8c35, 0x8c36, 0x8c37, 0x8c41, 0x8c46, 0x8c47, 0x8c49, 0x8c4c, 0x8c55, 0x8c5a, 0x8c61, +0x8c62, 0x8c6a, 0x8c6b, 0x8c73, 0x8c78, 0x8c79, 0x8c7a, 0x8c82, 0x8c85, 0x8c89, 0x8c8a, 0x8c8c, 0x8c94, 0x8c98, 0x8d1d, 0x8d1e, +0x8d1f, 0x8d21, 0x8d22, 0x8d23, 0x8d24, 0x8d25, 0x8d26, 0x8d27, 0x8d28, 0x8d29, 0x8d2a, 0x8d2b, 0x8d2c, 0x8d2d, 0x8d2e, 0x8d2f, +0x8d30, 0x8d31, 0x8d32, 0x8d33, 0x8d34, 0x8d35, 0x8d36, 0x8d37, 0x8d38, 0x8d39, 0x8d3a, 0x8d3b, 0x8d3c, 0x8d3d, 0x8d3e, 0x8d3f, +0x8d40, 0x8d41, 0x8d42, 0x8d43, 0x8d44, 0x8d45, 0x8d46, 0x8d47, 0x8d48, 0x8d49, 0x8d4a, 0x8d4b, 0x8d4c, 0x8d4d, 0x8d4e, 0x8d4f, +0x8d50, 0x8d53, 0x8d54, 0x8d55, 0x8d56, 0x8d58, 0x8d59, 0x8d5a, 0x8d5b, 0x8d5c, 0x8d5d, 0x8d5e, 0x8d60, 0x8d61, 0x8d62, 0x8d63, +0x8d64, 0x8d66, 0x8d67, 0x8d6b, 0x8d6d, 0x8d70, 0x8d73, 0x8d74, 0x8d75, 0x8d76, 0x8d77, 0x8d81, 0x8d84, 0x8d85, 0x8d8a, 0x8d8b, +0x8d91, 0x8d94, 0x8d9f, 0x8da3, 0x8db1, 0x8db3, 0x8db4, 0x8db5, 0x8db8, 0x8dba, 0x8dbc, 0x8dbe, 0x8dbf, 0x8dc3, 0x8dc4, 0x8dc6, +0x8dcb, 0x8dcc, 0x8dce, 0x8dcf, 0x8dd1, 0x8dd6, 0x8dd7, 0x8dda, 0x8ddb, 0x8ddd, 0x8dde, 0x8ddf, 0x8de3, 0x8de4, 0x8de8, 0x8dea, +0x8deb, 0x8dec, 0x8def, 0x8df3, 0x8df5, 0x8df7, 0x8df8, 0x8df9, 0x8dfa, 0x8dfb, 0x8dfd, 0x8e05, 0x8e09, 0x8e0a, 0x8e0c, 0x8e0f, +0x8e14, 0x8e1d, 0x8e1e, 0x8e1f, 0x8e22, 0x8e23, 0x8e29, 0x8e2a, 0x8e2c, 0x8e2e, 0x8e2f, 0x8e31, 0x8e35, 0x8e39, 0x8e3a, 0x8e3d, +0x8e40, 0x8e41, 0x8e42, 0x8e44, 0x8e47, 0x8e48, 0x8e49, 0x8e4a, 0x8e4b, 0x8e51, 0x8e52, 0x8e59, 0x8e66, 0x8e69, 0x8e6c, 0x8e6d, +0x8e6f, 0x8e70, 0x8e72, 0x8e74, 0x8e76, 0x8e7c, 0x8e7f, 0x8e81, 0x8e85, 0x8e87, 0x8e8f, 0x8e90, 0x8e94, 0x8e9c, 0x8e9e, 0x8eab, +0x8eac, 0x8eaf, 0x8eb2, 0x8eba, 0x8ece, 0x8f66, 0x8f67, 0x8f68, 0x8f69, 0x8f6b, 0x8f6c, 0x8f6d, 0x8f6e, 0x8f6f, 0x8f70, 0x8f71, +0x8f72, 0x8f73, 0x8f74, 0x8f75, 0x8f76, 0x8f77, 0x8f78, 0x8f79, 0x8f7a, 0x8f7b, 0x8f7c, 0x8f7d, 0x8f7e, 0x8f7f, 0x8f81, 0x8f82, +0x8f83, 0x8f84, 0x8f85, 0x8f86, 0x8f87, 0x8f88, 0x8f89, 0x8f8a, 0x8f8b, 0x8f8d, 0x8f8e, 0x8f8f, 0x8f90, 0x8f91, 0x8f93, 0x8f94, +0x8f95, 0x8f96, 0x8f97, 0x8f98, 0x8f99, 0x8f9a, 0x8f9b, 0x8f9c, 0x8f9e, 0x8f9f, 0x8fa3, 0x8fa8, 0x8fa9, 0x8fab, 0x8fb0, 0x8fb1, +0x8fb6, 0x8fb9, 0x8fbd, 0x8fbe, 0x8fc1, 0x8fc2, 0x8fc4, 0x8fc5, 0x8fc7, 0x8fc8, 0x8fce, 0x8fd0, 0x8fd1, 0x8fd3, 0x8fd4, 0x8fd5, +0x8fd8, 0x8fd9, 0x8fdb, 0x8fdc, 0x8fdd, 0x8fde, 0x8fdf, 0x8fe2, 0x8fe4, 0x8fe5, 0x8fe6, 0x8fe8, 0x8fe9, 0x8fea, 0x8feb, 0x8fed, +0x8fee, 0x8ff0, 0x8ff3, 0x8ff7, 0x8ff8, 0x8ff9, 0x8ffd, 0x9000, 0x9001, 0x9002, 0x9003, 0x9004, 0x9005, 0x9006, 0x9009, 0x900a, +0x900b, 0x900d, 0x900f, 0x9010, 0x9011, 0x9012, 0x9014, 0x9016, 0x9017, 0x901a, 0x901b, 0x901d, 0x901e, 0x901f, 0x9020, 0x9021, +0x9022, 0x9026, 0x902d, 0x902e, 0x902f, 0x9035, 0x9036, 0x9038, 0x903b, 0x903c, 0x903e, 0x9041, 0x9042, 0x9044, 0x9047, 0x904d, +0x904f, 0x9050, 0x9051, 0x9052, 0x9053, 0x9057, 0x9058, 0x905b, 0x9062, 0x9063, 0x9065, 0x9068, 0x906d, 0x906e, 0x9074, 0x9075, +0x907d, 0x907f, 0x9080, 0x9082, 0x9083, 0x9088, 0x908b, 0x9091, 0x9093, 0x9095, 0x9097, 0x9099, 0x909b, 0x909d, 0x90a1, 0x90a2, +0x90a3, 0x90a6, 0x90aa, 0x90ac, 0x90ae, 0x90af, 0x90b0, 0x90b1, 0x90b3, 0x90b4, 0x90b5, 0x90b6, 0x90b8, 0x90b9, 0x90ba, 0x90bb, +0x90be, 0x90c1, 0x90c4, 0x90c5, 0x90c7, 0x90ca, 0x90ce, 0x90cf, 0x90d0, 0x90d1, 0x90d3, 0x90d7, 0x90db, 0x90dc, 0x90dd, 0x90e1, +0x90e2, 0x90e6, 0x90e7, 0x90e8, 0x90eb, 0x90ed, 0x90ef, 0x90f4, 0x90f8, 0x90fd, 0x90fe, 0x9102, 0x9104, 0x9119, 0x911e, 0x9122, +0x9123, 0x912f, 0x9131, 0x9139, 0x9143, 0x9146, 0x9149, 0x914a, 0x914b, 0x914c, 0x914d, 0x914e, 0x914f, 0x9150, 0x9152, 0x9157, +0x915a, 0x915d, 0x915e, 0x9161, 0x9162, 0x9163, 0x9164, 0x9165, 0x9169, 0x916a, 0x916c, 0x916e, 0x916f, 0x9170, 0x9171, 0x9172, +0x9174, 0x9175, 0x9176, 0x9177, 0x9178, 0x9179, 0x917d, 0x917e, 0x917f, 0x9185, 0x9187, 0x9189, 0x918b, 0x918c, 0x918d, 0x9190, +0x9191, 0x9192, 0x919a, 0x919b, 0x91a2, 0x91a3, 0x91aa, 0x91ad, 0x91ae, 0x91af, 0x91b4, 0x91b5, 0x91ba, 0x91c7, 0x91c9, 0x91ca, +0x91cc, 0x91cd, 0x91ce, 0x91cf, 0x91d1, 0x91dc, 0x9274, 0x928e, 0x92ae, 0x92c8, 0x933e, 0x936a, 0x938f, 0x93ca, 0x93d6, 0x943e, +0x946b, 0x9485, 0x9486, 0x9487, 0x9488, 0x9489, 0x948a, 0x948b, 0x948c, 0x948d, 0x948e, 0x948f, 0x9490, 0x9492, 0x9493, 0x9494, +0x9495, 0x9497, 0x9499, 0x949a, 0x949b, 0x949c, 0x949d, 0x949e, 0x949f, 0x94a0, 0x94a1, 0x94a2, 0x94a3, 0x94a4, 0x94a5, 0x94a6, +0x94a7, 0x94a8, 0x94a9, 0x94aa, 0x94ab, 0x94ac, 0x94ad, 0x94ae, 0x94af, 0x94b0, 0x94b1, 0x94b2, 0x94b3, 0x94b4, 0x94b5, 0x94b6, +0x94b7, 0x94b8, 0x94b9, 0x94ba, 0x94bb, 0x94bc, 0x94bd, 0x94be, 0x94bf, 0x94c0, 0x94c1, 0x94c2, 0x94c3, 0x94c4, 0x94c5, 0x94c6, +0x94c8, 0x94c9, 0x94ca, 0x94cb, 0x94cc, 0x94cd, 0x94ce, 0x94d0, 0x94d1, 0x94d2, 0x94d5, 0x94d6, 0x94d7, 0x94d8, 0x94d9, 0x94db, +0x94dc, 0x94dd, 0x94de, 0x94df, 0x94e0, 0x94e1, 0x94e2, 0x94e3, 0x94e4, 0x94e5, 0x94e7, 0x94e8, 0x94e9, 0x94ea, 0x94eb, 0x94ec, +0x94ed, 0x94ee, 0x94ef, 0x94f0, 0x94f1, 0x94f2, 0x94f3, 0x94f4, 0x94f5, 0x94f6, 0x94f7, 0x94f8, 0x94f9, 0x94fa, 0x94fc, 0x94fd, +0x94fe, 0x94ff, 0x9500, 0x9501, 0x9502, 0x9503, 0x9504, 0x9505, 0x9506, 0x9507, 0x9508, 0x9509, 0x950a, 0x950b, 0x950c, 0x950d, +0x950e, 0x950f, 0x9510, 0x9511, 0x9512, 0x9513, 0x9514, 0x9515, 0x9516, 0x9517, 0x9518, 0x9519, 0x951a, 0x951b, 0x951d, 0x951e, +0x951f, 0x9521, 0x9522, 0x9523, 0x9524, 0x9525, 0x9526, 0x9528, 0x9529, 0x952a, 0x952b, 0x952c, 0x952d, 0x952e, 0x952f, 0x9530, +0x9531, 0x9532, 0x9534, 0x9535, 0x9536, 0x9537, 0x9538, 0x9539, 0x953a, 0x953b, 0x953c, 0x953e, 0x953f, 0x9540, 0x9541, 0x9542, +0x9544, 0x9545, 0x9546, 0x9547, 0x9549, 0x954a, 0x954c, 0x954d, 0x954e, 0x954f, 0x9550, 0x9551, 0x9552, 0x9553, 0x9554, 0x9556, +0x9557, 0x9558, 0x9559, 0x955b, 0x955c, 0x955d, 0x955e, 0x955f, 0x9561, 0x9562, 0x9563, 0x9564, 0x9565, 0x9566, 0x9567, 0x9568, +0x9569, 0x956a, 0x956b, 0x956c, 0x956d, 0x956f, 0x9570, 0x9571, 0x9572, 0x9573, 0x9576, 0x957f, 0x95e8, 0x95e9, 0x95ea, 0x95eb, +0x95ed, 0x95ee, 0x95ef, 0x95f0, 0x95f1, 0x95f2, 0x95f3, 0x95f4, 0x95f5, 0x95f6, 0x95f7, 0x95f8, 0x95f9, 0x95fa, 0x95fb, 0x95fc, +0x95fd, 0x95fe, 0x9600, 0x9601, 0x9602, 0x9603, 0x9604, 0x9605, 0x9606, 0x9608, 0x9609, 0x960a, 0x960b, 0x960c, 0x960d, 0x960e, +0x960f, 0x9610, 0x9611, 0x9612, 0x9614, 0x9615, 0x9616, 0x9617, 0x9619, 0x961a, 0x961c, 0x961d, 0x961f, 0x9621, 0x9622, 0x962a, +0x962e, 0x9631, 0x9632, 0x9633, 0x9634, 0x9635, 0x9636, 0x963b, 0x963c, 0x963d, 0x963f, 0x9640, 0x9642, 0x9644, 0x9645, 0x9646, +0x9647, 0x9648, 0x9649, 0x964b, 0x964c, 0x964d, 0x9650, 0x9654, 0x9655, 0x965b, 0x965f, 0x9661, 0x9662, 0x9664, 0x9667, 0x9668, +0x9669, 0x966a, 0x966c, 0x9672, 0x9674, 0x9675, 0x9676, 0x9677, 0x9685, 0x9686, 0x9688, 0x968b, 0x968d, 0x968f, 0x9690, 0x9694, +0x9697, 0x9698, 0x9699, 0x969c, 0x96a7, 0x96b0, 0x96b3, 0x96b6, 0x96b9, 0x96bc, 0x96bd, 0x96be, 0x96c0, 0x96c1, 0x96c4, 0x96c5, +0x96c6, 0x96c7, 0x96c9, 0x96cc, 0x96cd, 0x96ce, 0x96cf, 0x96d2, 0x96d5, 0x96e0, 0x96e8, 0x96e9, 0x96ea, 0x96ef, 0x96f3, 0x96f6, +0x96f7, 0x96f9, 0x96fe, 0x9700, 0x9701, 0x9704, 0x9706, 0x9707, 0x9708, 0x9709, 0x970d, 0x970e, 0x970f, 0x9713, 0x9716, 0x971c, +0x971e, 0x972a, 0x972d, 0x9730, 0x9732, 0x9738, 0x9739, 0x973e, 0x9752, 0x9753, 0x9756, 0x9759, 0x975b, 0x975e, 0x9760, 0x9761, +0x9762, 0x9765, 0x9769, 0x9773, 0x9774, 0x9776, 0x977c, 0x9785, 0x978b, 0x978d, 0x9791, 0x9792, 0x9794, 0x9798, 0x97a0, 0x97a3, +0x97ab, 0x97ad, 0x97af, 0x97b2, 0x97b4, 0x97e6, 0x97e7, 0x97e9, 0x97ea, 0x97eb, 0x97ec, 0x97ed, 0x97f3, 0x97f5, 0x97f6, 0x9875, +0x9876, 0x9877, 0x9878, 0x9879, 0x987a, 0x987b, 0x987c, 0x987d, 0x987e, 0x987f, 0x9880, 0x9881, 0x9882, 0x9883, 0x9884, 0x9885, +0x9886, 0x9887, 0x9888, 0x9889, 0x988a, 0x988c, 0x988d, 0x988f, 0x9890, 0x9891, 0x9893, 0x9894, 0x9896, 0x9897, 0x9898, 0x989a, +0x989b, 0x989c, 0x989d, 0x989e, 0x989f, 0x98a0, 0x98a1, 0x98a2, 0x98a4, 0x98a5, 0x98a6, 0x98a7, 0x98ce, 0x98d1, 0x98d2, 0x98d3, +0x98d5, 0x98d8, 0x98d9, 0x98da, 0x98de, 0x98df, 0x98e7, 0x98e8, 0x990d, 0x9910, 0x992e, 0x9954, 0x9955, 0x9963, 0x9965, 0x9967, +0x9968, 0x9969, 0x996a, 0x996b, 0x996c, 0x996d, 0x996e, 0x996f, 0x9970, 0x9971, 0x9972, 0x9974, 0x9975, 0x9976, 0x9977, 0x997a, +0x997c, 0x997d, 0x997f, 0x9980, 0x9981, 0x9984, 0x9985, 0x9986, 0x9987, 0x9988, 0x998a, 0x998b, 0x998d, 0x998f, 0x9990, 0x9991, +0x9992, 0x9993, 0x9994, 0x9995, 0x9996, 0x9997, 0x9998, 0x9999, 0x99a5, 0x99a8, 0x9a6c, 0x9a6d, 0x9a6e, 0x9a6f, 0x9a70, 0x9a71, +0x9a73, 0x9a74, 0x9a75, 0x9a76, 0x9a77, 0x9a78, 0x9a79, 0x9a7a, 0x9a7b, 0x9a7c, 0x9a7d, 0x9a7e, 0x9a7f, 0x9a80, 0x9a81, 0x9a82, +0x9a84, 0x9a85, 0x9a86, 0x9a87, 0x9a88, 0x9a8a, 0x9a8b, 0x9a8c, 0x9a8f, 0x9a90, 0x9a91, 0x9a92, 0x9a93, 0x9a96, 0x9a97, 0x9a98, +0x9a9a, 0x9a9b, 0x9a9c, 0x9a9d, 0x9a9e, 0x9a9f, 0x9aa0, 0x9aa1, 0x9aa2, 0x9aa3, 0x9aa4, 0x9aa5, 0x9aa7, 0x9aa8, 0x9ab0, 0x9ab1, +0x9ab6, 0x9ab7, 0x9ab8, 0x9aba, 0x9abc, 0x9ac0, 0x9ac1, 0x9ac2, 0x9ac5, 0x9acb, 0x9acc, 0x9ad1, 0x9ad3, 0x9ad8, 0x9adf, 0x9ae1, +0x9ae6, 0x9aeb, 0x9aed, 0x9aef, 0x9af9, 0x9afb, 0x9b03, 0x9b08, 0x9b0f, 0x9b13, 0x9b1f, 0x9b23, 0x9b2f, 0x9b32, 0x9b3b, 0x9b3c, +0x9b41, 0x9b42, 0x9b43, 0x9b44, 0x9b45, 0x9b47, 0x9b48, 0x9b49, 0x9b4d, 0x9b4f, 0x9b51, 0x9b54, 0x9c7c, 0x9c7f, 0x9c81, 0x9c82, +0x9c85, 0x9c86, 0x9c87, 0x9c88, 0x9c8b, 0x9c8d, 0x9c8e, 0x9c90, 0x9c91, 0x9c92, 0x9c94, 0x9c95, 0x9c9a, 0x9c9b, 0x9c9c, 0x9c9e, +0x9c9f, 0x9ca0, 0x9ca1, 0x9ca2, 0x9ca3, 0x9ca4, 0x9ca5, 0x9ca6, 0x9ca7, 0x9ca8, 0x9ca9, 0x9cab, 0x9cad, 0x9cae, 0x9cb0, 0x9cb1, +0x9cb2, 0x9cb3, 0x9cb4, 0x9cb5, 0x9cb6, 0x9cb7, 0x9cb8, 0x9cba, 0x9cbb, 0x9cbc, 0x9cbd, 0x9cc3, 0x9cc4, 0x9cc5, 0x9cc6, 0x9cc7, +0x9cca, 0x9ccb, 0x9ccc, 0x9ccd, 0x9cce, 0x9ccf, 0x9cd0, 0x9cd3, 0x9cd4, 0x9cd5, 0x9cd6, 0x9cd7, 0x9cd8, 0x9cd9, 0x9cdc, 0x9cdd, +0x9cde, 0x9cdf, 0x9ce2, 0x9e1f, 0x9e20, 0x9e21, 0x9e22, 0x9e23, 0x9e25, 0x9e26, 0x9e28, 0x9e29, 0x9e2a, 0x9e2b, 0x9e2c, 0x9e2d, +0x9e2f, 0x9e31, 0x9e32, 0x9e33, 0x9e35, 0x9e36, 0x9e37, 0x9e38, 0x9e39, 0x9e3a, 0x9e3d, 0x9e3e, 0x9e3f, 0x9e41, 0x9e42, 0x9e43, +0x9e44, 0x9e45, 0x9e46, 0x9e47, 0x9e48, 0x9e49, 0x9e4a, 0x9e4b, 0x9e4c, 0x9e4e, 0x9e4f, 0x9e51, 0x9e55, 0x9e57, 0x9e58, 0x9e5a, +0x9e5b, 0x9e5c, 0x9e5e, 0x9e63, 0x9e64, 0x9e66, 0x9e67, 0x9e68, 0x9e69, 0x9e6a, 0x9e6b, 0x9e6c, 0x9e6d, 0x9e70, 0x9e71, 0x9e73, +0x9e7e, 0x9e7f, 0x9e82, 0x9e87, 0x9e88, 0x9e8b, 0x9e92, 0x9e93, 0x9e9d, 0x9e9f, 0x9ea6, 0x9eb4, 0x9eb8, 0x9ebb, 0x9ebd, 0x9ebe, +0x9ec4, 0x9ec9, 0x9ecd, 0x9ece, 0x9ecf, 0x9ed1, 0x9ed4, 0x9ed8, 0x9edb, 0x9edc, 0x9edd, 0x9edf, 0x9ee0, 0x9ee2, 0x9ee5, 0x9ee7, +0x9ee9, 0x9eea, 0x9eef, 0x9ef9, 0x9efb, 0x9efc, 0x9efe, 0x9f0b, 0x9f0d, 0x9f0e, 0x9f10, 0x9f13, 0x9f17, 0x9f19, 0x9f20, 0x9f22, +0x9f2c, 0x9f2f, 0x9f37, 0x9f39, 0x9f3b, 0x9f3d, 0x9f3e, 0x9f44, 0x9f50, 0x9f51, 0x9f7f, 0x9f80, 0x9f83, 0x9f84, 0x9f85, 0x9f86, +0x9f87, 0x9f88, 0x9f89, 0x9f8a, 0x9f8b, 0x9f8c, 0x9f99, 0x9f9a, 0x9f9b, 0x9f9f, 0x9fa0, +}; +// end of file diff --git a/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/MasterEditorTWL/banner_char_korea.cpp b/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/MasterEditorTWL/banner_char_korea.cpp new file mode 100644 index 0000000..61362ea --- /dev/null +++ b/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/MasterEditorTWL/banner_char_korea.cpp @@ -0,0 +1,184 @@ +#include "stdafx.h" +#include +#include +#include +#include "banner_char.h" + +const int MasterEditorTWL::NumOf_BannerCharCodes_Korea = 2765; +const u16 MasterEditorTWL::BannerCharCodes_Korea[2765] = +{ +0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, +0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, +0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, +0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, +0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, +0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, +0x00a1, 0x00a2, 0x00a3, 0x00a8, 0x00a9, 0x00ae, 0x00b0, 0x00b1, 0x00b4, 0x00b7, 0x00bf, 0x00c0, 0x00c1, 0x00c2, 0x00c3, 0x00c4, +0x00c5, 0x00c6, 0x00c7, 0x00c8, 0x00c9, 0x00ca, 0x00cb, 0x00cc, 0x00cd, 0x00ce, 0x00cf, 0x00d0, 0x00d1, 0x00d2, 0x00d3, 0x00d4, +0x00d5, 0x00d6, 0x00d7, 0x00d8, 0x00d9, 0x00da, 0x00db, 0x00dc, 0x00dd, 0x00df, 0x00e0, 0x00e1, 0x00e2, 0x00e3, 0x00e4, 0x00e5, +0x00e6, 0x00e7, 0x00e8, 0x00e9, 0x00ea, 0x00eb, 0x00ec, 0x00ed, 0x00ee, 0x00ef, 0x00f0, 0x00f1, 0x00f2, 0x00f3, 0x00f4, 0x00f5, +0x00f6, 0x00f7, 0x00f8, 0x00f9, 0x00fa, 0x00fb, 0x00fc, 0x00fd, 0x0152, 0x0153, 0x02c6, 0x02dc, 0x2010, 0x2015, 0x2018, 0x2019, +0x201a, 0x201c, 0x201d, 0x201e, 0x2022, 0x2026, 0x2032, 0x2033, 0x203a, 0x203b, 0x20ac, 0x2122, 0x2190, 0x2191, 0x2192, 0x2193, +0x221e, 0x2234, 0x25a0, 0x25a1, 0x25b2, 0x25b3, 0x25bc, 0x25bd, 0x25c6, 0x25c7, 0x25cb, 0x25ce, 0x25cf, 0x2605, 0x2606, 0x266a, +0x266d, 0x266f, 0x3000, 0x3001, 0x3002, 0x3008, 0x3009, 0x300c, 0x300d, 0x3012, 0x3014, 0x3015, 0x3041, 0x3042, 0x3043, 0x3044, +0x3045, 0x3046, 0x3047, 0x3048, 0x3049, 0x304a, 0x304b, 0x304c, 0x304d, 0x304e, 0x304f, 0x3050, 0x3051, 0x3052, 0x3053, 0x3054, +0x3055, 0x3056, 0x3057, 0x3058, 0x3059, 0x305a, 0x305b, 0x305c, 0x305d, 0x305e, 0x305f, 0x3060, 0x3061, 0x3062, 0x3063, 0x3064, +0x3065, 0x3066, 0x3067, 0x3068, 0x3069, 0x306a, 0x306b, 0x306c, 0x306d, 0x306e, 0x306f, 0x3070, 0x3071, 0x3072, 0x3073, 0x3074, +0x3075, 0x3076, 0x3077, 0x3078, 0x3079, 0x307a, 0x307b, 0x307c, 0x307d, 0x307e, 0x307f, 0x3080, 0x3081, 0x3082, 0x3083, 0x3084, +0x3085, 0x3086, 0x3087, 0x3088, 0x3089, 0x308a, 0x308b, 0x308c, 0x308d, 0x308e, 0x308f, 0x3090, 0x3091, 0x3092, 0x3093, 0x30a1, +0x30a2, 0x30a3, 0x30a4, 0x30a5, 0x30a6, 0x30a7, 0x30a8, 0x30a9, 0x30aa, 0x30ab, 0x30ac, 0x30ad, 0x30ae, 0x30af, 0x30b0, 0x30b1, +0x30b2, 0x30b3, 0x30b4, 0x30b5, 0x30b6, 0x30b7, 0x30b8, 0x30b9, 0x30ba, 0x30bb, 0x30bc, 0x30bd, 0x30be, 0x30bf, 0x30c0, 0x30c1, +0x30c2, 0x30c3, 0x30c4, 0x30c5, 0x30c6, 0x30c7, 0x30c8, 0x30c9, 0x30ca, 0x30cb, 0x30cc, 0x30cd, 0x30ce, 0x30cf, 0x30d0, 0x30d1, +0x30d2, 0x30d3, 0x30d4, 0x30d5, 0x30d6, 0x30d7, 0x30d8, 0x30d9, 0x30da, 0x30db, 0x30dc, 0x30dd, 0x30de, 0x30df, 0x30e0, 0x30e1, +0x30e2, 0x30e3, 0x30e4, 0x30e5, 0x30e6, 0x30e7, 0x30e8, 0x30e9, 0x30ea, 0x30eb, 0x30ec, 0x30ed, 0x30ee, 0x30ef, 0x30f0, 0x30f1, +0x30f2, 0x30f3, 0x30f4, 0x30f5, 0x30f6, 0x30fb, 0x30fc, 0xff01, 0xff06, 0xff08, 0xff09, 0xff0b, 0xff0c, 0xff0d, 0xff0e, 0xff0f, +0xff1a, 0xff1b, 0xff1d, 0xff1f, 0xff3b, 0xff3c, 0xff3d, 0xff3e, 0xff3f, 0xff40, 0xff5b, 0xff5c, 0xff5d, 0xff5e, 0xffe3, 0xac00, +0xac01, 0xac04, 0xac07, 0xac08, 0xac09, 0xac0a, 0xac10, 0xac11, 0xac12, 0xac13, 0xac14, 0xac15, 0xac16, 0xac17, 0xac19, 0xac1a, +0xac1b, 0xac1c, 0xac1d, 0xac20, 0xac24, 0xac2c, 0xac2d, 0xac2f, 0xac30, 0xac31, 0xac38, 0xac39, 0xac3c, 0xac40, 0xac4b, 0xac4d, +0xac54, 0xac58, 0xac5c, 0xac70, 0xac71, 0xac74, 0xac77, 0xac78, 0xac7a, 0xac80, 0xac81, 0xac83, 0xac84, 0xac85, 0xac86, 0xac89, +0xac8a, 0xac8b, 0xac8c, 0xac90, 0xac94, 0xac9c, 0xac9d, 0xac9f, 0xaca0, 0xaca1, 0xaca8, 0xaca9, 0xacaa, 0xacac, 0xacaf, 0xacb0, +0xacb8, 0xacb9, 0xacbb, 0xacbc, 0xacbd, 0xacc1, 0xacc4, 0xacc8, 0xaccc, 0xacd5, 0xacd7, 0xace0, 0xace1, 0xace4, 0xace7, 0xace8, +0xacea, 0xacec, 0xacef, 0xacf0, 0xacf1, 0xacf3, 0xacf5, 0xacf6, 0xacfc, 0xacfd, 0xad00, 0xad04, 0xad06, 0xad0c, 0xad0d, 0xad0f, +0xad11, 0xad18, 0xad1c, 0xad20, 0xad29, 0xad2c, 0xad2d, 0xad34, 0xad35, 0xad38, 0xad3c, 0xad44, 0xad45, 0xad47, 0xad49, 0xad50, +0xad54, 0xad58, 0xad61, 0xad63, 0xad6c, 0xad6d, 0xad70, 0xad73, 0xad74, 0xad75, 0xad76, 0xad7b, 0xad7c, 0xad7d, 0xad7f, 0xad81, +0xad82, 0xad88, 0xad89, 0xad8c, 0xad90, 0xad9c, 0xad9d, 0xada4, 0xadb7, 0xadc0, 0xadc1, 0xadc4, 0xadc8, 0xadd0, 0xadd1, 0xadd3, +0xaddc, 0xade0, 0xade4, 0xadf8, 0xadf9, 0xadfc, 0xadff, 0xae00, 0xae01, 0xae08, 0xae09, 0xae0b, 0xae0d, 0xae14, 0xae30, 0xae31, +0xae34, 0xae37, 0xae38, 0xae3a, 0xae40, 0xae41, 0xae43, 0xae45, 0xae46, 0xae4a, 0xae4c, 0xae4d, 0xae4e, 0xae50, 0xae54, 0xae56, +0xae5c, 0xae5d, 0xae5f, 0xae60, 0xae61, 0xae65, 0xae68, 0xae69, 0xae6c, 0xae70, 0xae78, 0xae79, 0xae7b, 0xae7c, 0xae7d, 0xae84, +0xae85, 0xae8c, 0xaebc, 0xaebd, 0xaebe, 0xaec0, 0xaec4, 0xaecc, 0xaecd, 0xaecf, 0xaed0, 0xaed1, 0xaed8, 0xaed9, 0xaedc, 0xaee8, +0xaeeb, 0xaeed, 0xaef4, 0xaef8, 0xaefc, 0xaf07, 0xaf08, 0xaf0d, 0xaf10, 0xaf2c, 0xaf2d, 0xaf30, 0xaf32, 0xaf34, 0xaf3c, 0xaf3d, +0xaf3f, 0xaf41, 0xaf42, 0xaf43, 0xaf48, 0xaf49, 0xaf50, 0xaf5c, 0xaf5d, 0xaf64, 0xaf65, 0xaf79, 0xaf80, 0xaf84, 0xaf88, 0xaf90, +0xaf91, 0xaf95, 0xaf9c, 0xafb8, 0xafb9, 0xafbc, 0xafc0, 0xafc7, 0xafc8, 0xafc9, 0xafcb, 0xafcd, 0xafce, 0xafd4, 0xafdc, 0xafe8, +0xafe9, 0xaff0, 0xaff1, 0xaff4, 0xaff8, 0xb000, 0xb001, 0xb004, 0xb00c, 0xb010, 0xb014, 0xb01c, 0xb01d, 0xb028, 0xb044, 0xb045, +0xb048, 0xb04a, 0xb04c, 0xb04e, 0xb053, 0xb054, 0xb055, 0xb057, 0xb059, 0xb05d, 0xb07c, 0xb07d, 0xb080, 0xb084, 0xb08c, 0xb08d, +0xb08f, 0xb091, 0xb098, 0xb099, 0xb09a, 0xb09c, 0xb09f, 0xb0a0, 0xb0a1, 0xb0a2, 0xb0a8, 0xb0a9, 0xb0ab, 0xb0ac, 0xb0ad, 0xb0ae, +0xb0af, 0xb0b1, 0xb0b3, 0xb0b4, 0xb0b5, 0xb0b8, 0xb0bc, 0xb0c4, 0xb0c5, 0xb0c7, 0xb0c8, 0xb0c9, 0xb0d0, 0xb0d1, 0xb0d4, 0xb0d8, +0xb0e0, 0xb0e5, 0xb108, 0xb109, 0xb10b, 0xb10c, 0xb110, 0xb112, 0xb113, 0xb118, 0xb119, 0xb11b, 0xb11c, 0xb11d, 0xb123, 0xb124, +0xb125, 0xb128, 0xb12c, 0xb134, 0xb135, 0xb137, 0xb138, 0xb139, 0xb140, 0xb141, 0xb144, 0xb148, 0xb150, 0xb151, 0xb154, 0xb155, +0xb158, 0xb15c, 0xb160, 0xb178, 0xb179, 0xb17c, 0xb180, 0xb182, 0xb188, 0xb189, 0xb18b, 0xb18d, 0xb192, 0xb193, 0xb194, 0xb198, +0xb19c, 0xb1a8, 0xb1cc, 0xb1d0, 0xb1d4, 0xb1dc, 0xb1dd, 0xb1df, 0xb1e8, 0xb1e9, 0xb1ec, 0xb1f0, 0xb1f9, 0xb1fb, 0xb1fd, 0xb204, +0xb205, 0xb208, 0xb20b, 0xb20c, 0xb214, 0xb215, 0xb217, 0xb219, 0xb220, 0xb234, 0xb23c, 0xb258, 0xb25c, 0xb260, 0xb268, 0xb269, +0xb274, 0xb275, 0xb27c, 0xb284, 0xb285, 0xb289, 0xb290, 0xb291, 0xb294, 0xb298, 0xb299, 0xb29a, 0xb2a0, 0xb2a1, 0xb2a3, 0xb2a5, +0xb2a6, 0xb2aa, 0xb2ac, 0xb2b0, 0xb2b4, 0xb2c8, 0xb2c9, 0xb2cc, 0xb2d0, 0xb2d2, 0xb2d8, 0xb2d9, 0xb2db, 0xb2dd, 0xb2e2, 0xb2e4, +0xb2e5, 0xb2e6, 0xb2e8, 0xb2eb, 0xb2ec, 0xb2ed, 0xb2ee, 0xb2ef, 0xb2f3, 0xb2f4, 0xb2f5, 0xb2f7, 0xb2f8, 0xb2f9, 0xb2fa, 0xb2fb, +0xb2ff, 0xb300, 0xb301, 0xb304, 0xb308, 0xb310, 0xb311, 0xb313, 0xb314, 0xb315, 0xb31c, 0xb354, 0xb355, 0xb356, 0xb358, 0xb35b, +0xb35c, 0xb35e, 0xb35f, 0xb364, 0xb365, 0xb367, 0xb369, 0xb36b, 0xb36e, 0xb370, 0xb371, 0xb374, 0xb378, 0xb380, 0xb381, 0xb383, +0xb384, 0xb385, 0xb38c, 0xb390, 0xb394, 0xb3a0, 0xb3a1, 0xb3a8, 0xb3ac, 0xb3c4, 0xb3c5, 0xb3c8, 0xb3cb, 0xb3cc, 0xb3ce, 0xb3d0, +0xb3d4, 0xb3d5, 0xb3d7, 0xb3d9, 0xb3db, 0xb3dd, 0xb3e0, 0xb3e4, 0xb3e8, 0xb3fc, 0xb410, 0xb418, 0xb41c, 0xb420, 0xb428, 0xb429, +0xb42b, 0xb434, 0xb450, 0xb451, 0xb454, 0xb458, 0xb460, 0xb461, 0xb463, 0xb465, 0xb46c, 0xb480, 0xb488, 0xb49d, 0xb4a4, 0xb4a8, +0xb4ac, 0xb4b5, 0xb4b7, 0xb4b9, 0xb4c0, 0xb4c4, 0xb4c8, 0xb4d0, 0xb4d5, 0xb4dc, 0xb4dd, 0xb4e0, 0xb4e3, 0xb4e4, 0xb4e6, 0xb4ec, +0xb4ed, 0xb4ef, 0xb4f1, 0xb4f8, 0xb514, 0xb515, 0xb518, 0xb51b, 0xb51c, 0xb524, 0xb525, 0xb527, 0xb528, 0xb529, 0xb52a, 0xb530, +0xb531, 0xb534, 0xb538, 0xb540, 0xb541, 0xb543, 0xb544, 0xb545, 0xb54b, 0xb54c, 0xb54d, 0xb550, 0xb554, 0xb55c, 0xb55d, 0xb55f, +0xb560, 0xb561, 0xb5a0, 0xb5a1, 0xb5a4, 0xb5a8, 0xb5aa, 0xb5ab, 0xb5b0, 0xb5b1, 0xb5b3, 0xb5b4, 0xb5b5, 0xb5bb, 0xb5bc, 0xb5bd, +0xb5c0, 0xb5c4, 0xb5cc, 0xb5cd, 0xb5cf, 0xb5d0, 0xb5d1, 0xb5d8, 0xb5ec, 0xb610, 0xb611, 0xb614, 0xb618, 0xb625, 0xb62c, 0xb634, +0xb648, 0xb664, 0xb668, 0xb69c, 0xb69d, 0xb6a0, 0xb6a4, 0xb6ab, 0xb6ac, 0xb6b1, 0xb6d4, 0xb6f0, 0xb6f4, 0xb6f8, 0xb700, 0xb701, +0xb705, 0xb728, 0xb729, 0xb72c, 0xb72f, 0xb730, 0xb738, 0xb739, 0xb73b, 0xb744, 0xb748, 0xb74c, 0xb754, 0xb755, 0xb760, 0xb764, +0xb768, 0xb770, 0xb771, 0xb773, 0xb775, 0xb77c, 0xb77d, 0xb780, 0xb784, 0xb78c, 0xb78d, 0xb78f, 0xb790, 0xb791, 0xb792, 0xb796, +0xb797, 0xb798, 0xb799, 0xb79c, 0xb7a0, 0xb7a8, 0xb7a9, 0xb7ab, 0xb7ac, 0xb7ad, 0xb7b4, 0xb7b5, 0xb7b8, 0xb7c7, 0xb7c9, 0xb7ec, +0xb7ed, 0xb7f0, 0xb7f4, 0xb7fc, 0xb7fd, 0xb7ff, 0xb800, 0xb801, 0xb807, 0xb808, 0xb809, 0xb80c, 0xb810, 0xb818, 0xb819, 0xb81b, +0xb81d, 0xb824, 0xb825, 0xb828, 0xb82c, 0xb834, 0xb835, 0xb837, 0xb838, 0xb839, 0xb840, 0xb844, 0xb851, 0xb853, 0xb85c, 0xb85d, +0xb860, 0xb864, 0xb86c, 0xb86d, 0xb86f, 0xb871, 0xb878, 0xb87c, 0xb88d, 0xb8a8, 0xb8b0, 0xb8b4, 0xb8b8, 0xb8c0, 0xb8c1, 0xb8c3, +0xb8c5, 0xb8cc, 0xb8d0, 0xb8d4, 0xb8dd, 0xb8df, 0xb8e1, 0xb8e8, 0xb8e9, 0xb8ec, 0xb8f0, 0xb8f8, 0xb8f9, 0xb8fb, 0xb8fd, 0xb904, +0xb918, 0xb920, 0xb93c, 0xb93d, 0xb940, 0xb944, 0xb94c, 0xb94f, 0xb951, 0xb958, 0xb959, 0xb95c, 0xb960, 0xb968, 0xb969, 0xb96b, +0xb96d, 0xb974, 0xb975, 0xb978, 0xb97c, 0xb984, 0xb985, 0xb987, 0xb989, 0xb98a, 0xb98d, 0xb98e, 0xb9ac, 0xb9ad, 0xb9b0, 0xb9b4, +0xb9bc, 0xb9bd, 0xb9bf, 0xb9c1, 0xb9c8, 0xb9c9, 0xb9cc, 0xb9ce, 0xb9cf, 0xb9d0, 0xb9d1, 0xb9d2, 0xb9d8, 0xb9d9, 0xb9db, 0xb9dd, +0xb9de, 0xb9e1, 0xb9e3, 0xb9e4, 0xb9e5, 0xb9e8, 0xb9ec, 0xb9f4, 0xb9f5, 0xb9f7, 0xb9f8, 0xb9f9, 0xb9fa, 0xba00, 0xba01, 0xba08, +0xba15, 0xba38, 0xba39, 0xba3c, 0xba40, 0xba42, 0xba48, 0xba49, 0xba4b, 0xba4d, 0xba4e, 0xba53, 0xba54, 0xba55, 0xba58, 0xba5c, +0xba64, 0xba65, 0xba67, 0xba68, 0xba69, 0xba70, 0xba71, 0xba74, 0xba78, 0xba83, 0xba84, 0xba85, 0xba87, 0xba8c, 0xbaa8, 0xbaa9, +0xbaab, 0xbaac, 0xbab0, 0xbab2, 0xbab8, 0xbab9, 0xbabb, 0xbabd, 0xbac4, 0xbac8, 0xbad8, 0xbad9, 0xbafc, 0xbb00, 0xbb04, 0xbb0d, +0xbb0f, 0xbb11, 0xbb18, 0xbb1c, 0xbb20, 0xbb29, 0xbb2b, 0xbb34, 0xbb35, 0xbb36, 0xbb38, 0xbb3b, 0xbb3c, 0xbb3d, 0xbb3e, 0xbb44, +0xbb45, 0xbb47, 0xbb49, 0xbb4d, 0xbb4f, 0xbb50, 0xbb54, 0xbb58, 0xbb61, 0xbb63, 0xbb6c, 0xbb88, 0xbb8c, 0xbb90, 0xbba4, 0xbba8, +0xbbac, 0xbbb4, 0xbbb7, 0xbbc0, 0xbbc4, 0xbbc8, 0xbbd0, 0xbbd3, 0xbbf8, 0xbbf9, 0xbbfc, 0xbbff, 0xbc00, 0xbc02, 0xbc08, 0xbc09, +0xbc0b, 0xbc0c, 0xbc0d, 0xbc0f, 0xbc11, 0xbc14, 0xbc15, 0xbc16, 0xbc17, 0xbc18, 0xbc1b, 0xbc1c, 0xbc1d, 0xbc1e, 0xbc1f, 0xbc24, +0xbc25, 0xbc27, 0xbc29, 0xbc2d, 0xbc30, 0xbc31, 0xbc34, 0xbc38, 0xbc40, 0xbc41, 0xbc43, 0xbc44, 0xbc45, 0xbc49, 0xbc4c, 0xbc4d, +0xbc50, 0xbc5d, 0xbc84, 0xbc85, 0xbc88, 0xbc8b, 0xbc8c, 0xbc8e, 0xbc94, 0xbc95, 0xbc97, 0xbc99, 0xbc9a, 0xbca0, 0xbca1, 0xbca4, +0xbca7, 0xbca8, 0xbcb0, 0xbcb1, 0xbcb3, 0xbcb4, 0xbcb5, 0xbcbc, 0xbcbd, 0xbcc0, 0xbcc4, 0xbccd, 0xbccf, 0xbcd0, 0xbcd1, 0xbcd5, +0xbcd8, 0xbcdc, 0xbcf4, 0xbcf5, 0xbcf6, 0xbcf8, 0xbcfc, 0xbd04, 0xbd05, 0xbd07, 0xbd09, 0xbd10, 0xbd14, 0xbd24, 0xbd2c, 0xbd40, +0xbd48, 0xbd49, 0xbd4c, 0xbd50, 0xbd58, 0xbd59, 0xbd64, 0xbd68, 0xbd80, 0xbd81, 0xbd84, 0xbd87, 0xbd88, 0xbd89, 0xbd8a, 0xbd90, +0xbd91, 0xbd93, 0xbd95, 0xbd99, 0xbd9a, 0xbd9c, 0xbda4, 0xbdb0, 0xbdb8, 0xbdd4, 0xbdd5, 0xbdd8, 0xbddc, 0xbde9, 0xbdf0, 0xbdf4, +0xbdf8, 0xbe00, 0xbe03, 0xbe05, 0xbe0c, 0xbe0d, 0xbe10, 0xbe14, 0xbe1c, 0xbe1d, 0xbe1f, 0xbe44, 0xbe45, 0xbe48, 0xbe4c, 0xbe4e, +0xbe54, 0xbe55, 0xbe57, 0xbe59, 0xbe5a, 0xbe5b, 0xbe60, 0xbe61, 0xbe64, 0xbe68, 0xbe6a, 0xbe70, 0xbe71, 0xbe73, 0xbe74, 0xbe75, +0xbe7b, 0xbe7c, 0xbe7d, 0xbe80, 0xbe84, 0xbe8c, 0xbe8d, 0xbe8f, 0xbe90, 0xbe91, 0xbe98, 0xbe99, 0xbea8, 0xbed0, 0xbed1, 0xbed4, +0xbed7, 0xbed8, 0xbee0, 0xbee3, 0xbee4, 0xbee5, 0xbeec, 0xbf01, 0xbf08, 0xbf09, 0xbf18, 0xbf19, 0xbf1b, 0xbf1c, 0xbf1d, 0xbf40, +0xbf41, 0xbf44, 0xbf48, 0xbf50, 0xbf51, 0xbf55, 0xbf94, 0xbfb0, 0xbfc5, 0xbfcc, 0xbfcd, 0xbfd0, 0xbfd4, 0xbfdc, 0xbfdf, 0xbfe1, +0xc03c, 0xc051, 0xc058, 0xc05c, 0xc060, 0xc068, 0xc069, 0xc090, 0xc091, 0xc094, 0xc098, 0xc0a0, 0xc0a1, 0xc0a3, 0xc0a5, 0xc0ac, +0xc0ad, 0xc0af, 0xc0b0, 0xc0b3, 0xc0b4, 0xc0b5, 0xc0b6, 0xc0bc, 0xc0bd, 0xc0bf, 0xc0c0, 0xc0c1, 0xc0c5, 0xc0c8, 0xc0c9, 0xc0cc, +0xc0d0, 0xc0d8, 0xc0d9, 0xc0db, 0xc0dc, 0xc0dd, 0xc0e4, 0xc0e5, 0xc0e8, 0xc0ec, 0xc0f4, 0xc0f5, 0xc0f7, 0xc0f9, 0xc100, 0xc104, +0xc108, 0xc110, 0xc115, 0xc11c, 0xc11d, 0xc11e, 0xc11f, 0xc120, 0xc123, 0xc124, 0xc126, 0xc127, 0xc12c, 0xc12d, 0xc12f, 0xc130, +0xc131, 0xc136, 0xc138, 0xc139, 0xc13c, 0xc140, 0xc148, 0xc149, 0xc14b, 0xc14c, 0xc14d, 0xc154, 0xc155, 0xc158, 0xc15c, 0xc164, +0xc165, 0xc167, 0xc168, 0xc169, 0xc170, 0xc174, 0xc178, 0xc185, 0xc18c, 0xc18d, 0xc18e, 0xc190, 0xc194, 0xc196, 0xc19c, 0xc19d, +0xc19f, 0xc1a1, 0xc1a5, 0xc1a8, 0xc1a9, 0xc1ac, 0xc1b0, 0xc1bd, 0xc1c4, 0xc1c8, 0xc1cc, 0xc1d4, 0xc1d7, 0xc1d8, 0xc1e0, 0xc1e4, +0xc1e8, 0xc1f0, 0xc1f1, 0xc1f3, 0xc1fc, 0xc1fd, 0xc200, 0xc204, 0xc20c, 0xc20d, 0xc20f, 0xc211, 0xc218, 0xc219, 0xc21c, 0xc21f, +0xc220, 0xc228, 0xc229, 0xc22b, 0xc22d, 0xc22f, 0xc231, 0xc232, 0xc234, 0xc248, 0xc250, 0xc251, 0xc254, 0xc258, 0xc260, 0xc265, +0xc26c, 0xc26d, 0xc270, 0xc274, 0xc27c, 0xc27d, 0xc27f, 0xc281, 0xc288, 0xc289, 0xc290, 0xc298, 0xc29b, 0xc29d, 0xc2a4, 0xc2a5, +0xc2a8, 0xc2ac, 0xc2ad, 0xc2b4, 0xc2b5, 0xc2b7, 0xc2b9, 0xc2dc, 0xc2dd, 0xc2e0, 0xc2e3, 0xc2e4, 0xc2eb, 0xc2ec, 0xc2ed, 0xc2ef, +0xc2f1, 0xc2f6, 0xc2f8, 0xc2f9, 0xc2fb, 0xc2fc, 0xc300, 0xc308, 0xc309, 0xc30c, 0xc30d, 0xc313, 0xc314, 0xc315, 0xc318, 0xc31c, +0xc324, 0xc325, 0xc328, 0xc329, 0xc345, 0xc368, 0xc369, 0xc36c, 0xc370, 0xc372, 0xc378, 0xc379, 0xc37c, 0xc37d, 0xc384, 0xc388, +0xc38c, 0xc3c0, 0xc3d8, 0xc3d9, 0xc3dc, 0xc3df, 0xc3e0, 0xc3e2, 0xc3e8, 0xc3e9, 0xc3ed, 0xc3f4, 0xc3f5, 0xc3f8, 0xc408, 0xc410, +0xc424, 0xc42c, 0xc430, 0xc434, 0xc43c, 0xc43d, 0xc448, 0xc464, 0xc465, 0xc468, 0xc46c, 0xc474, 0xc475, 0xc479, 0xc480, 0xc494, +0xc49c, 0xc4b8, 0xc4bc, 0xc4e9, 0xc4f0, 0xc4f1, 0xc4f4, 0xc4f8, 0xc4fa, 0xc4ff, 0xc500, 0xc501, 0xc50c, 0xc510, 0xc514, 0xc51c, +0xc528, 0xc529, 0xc52c, 0xc530, 0xc538, 0xc539, 0xc53b, 0xc53d, 0xc544, 0xc545, 0xc548, 0xc549, 0xc54a, 0xc54c, 0xc54d, 0xc54e, +0xc553, 0xc554, 0xc555, 0xc557, 0xc558, 0xc559, 0xc55d, 0xc55e, 0xc560, 0xc561, 0xc564, 0xc568, 0xc570, 0xc571, 0xc573, 0xc574, +0xc575, 0xc57c, 0xc57d, 0xc580, 0xc584, 0xc587, 0xc58c, 0xc58d, 0xc58f, 0xc591, 0xc595, 0xc597, 0xc598, 0xc59c, 0xc5a0, 0xc5a9, +0xc5b4, 0xc5b5, 0xc5b8, 0xc5b9, 0xc5bb, 0xc5bc, 0xc5bd, 0xc5be, 0xc5c4, 0xc5c5, 0xc5c6, 0xc5c7, 0xc5c8, 0xc5c9, 0xc5ca, 0xc5cc, +0xc5ce, 0xc5d0, 0xc5d1, 0xc5d4, 0xc5d8, 0xc5e0, 0xc5e1, 0xc5e3, 0xc5e5, 0xc5ec, 0xc5ed, 0xc5ee, 0xc5f0, 0xc5f4, 0xc5f6, 0xc5f7, +0xc5fc, 0xc5fd, 0xc5fe, 0xc5ff, 0xc600, 0xc601, 0xc605, 0xc606, 0xc607, 0xc608, 0xc60c, 0xc610, 0xc618, 0xc619, 0xc61b, 0xc61c, +0xc624, 0xc625, 0xc628, 0xc62c, 0xc62d, 0xc62e, 0xc630, 0xc633, 0xc634, 0xc635, 0xc637, 0xc639, 0xc63b, 0xc640, 0xc641, 0xc644, +0xc648, 0xc650, 0xc651, 0xc653, 0xc654, 0xc655, 0xc65c, 0xc65d, 0xc660, 0xc66c, 0xc66f, 0xc671, 0xc678, 0xc679, 0xc67c, 0xc680, +0xc688, 0xc689, 0xc68b, 0xc68d, 0xc694, 0xc695, 0xc698, 0xc69c, 0xc6a4, 0xc6a5, 0xc6a7, 0xc6a9, 0xc6b0, 0xc6b1, 0xc6b4, 0xc6b8, +0xc6b9, 0xc6ba, 0xc6c0, 0xc6c1, 0xc6c3, 0xc6c5, 0xc6cc, 0xc6cd, 0xc6d0, 0xc6d4, 0xc6dc, 0xc6dd, 0xc6e0, 0xc6e1, 0xc6e8, 0xc6e9, +0xc6ec, 0xc6f0, 0xc6f8, 0xc6f9, 0xc6fd, 0xc704, 0xc705, 0xc708, 0xc70c, 0xc714, 0xc715, 0xc717, 0xc719, 0xc720, 0xc721, 0xc724, +0xc728, 0xc730, 0xc731, 0xc733, 0xc735, 0xc737, 0xc73c, 0xc73d, 0xc740, 0xc744, 0xc74a, 0xc74c, 0xc74d, 0xc74f, 0xc751, 0xc752, +0xc753, 0xc754, 0xc755, 0xc756, 0xc757, 0xc758, 0xc75c, 0xc760, 0xc768, 0xc76b, 0xc774, 0xc775, 0xc778, 0xc77c, 0xc77d, 0xc77e, +0xc783, 0xc784, 0xc785, 0xc787, 0xc788, 0xc789, 0xc78a, 0xc78e, 0xc790, 0xc791, 0xc794, 0xc796, 0xc797, 0xc798, 0xc79a, 0xc7a0, +0xc7a1, 0xc7a3, 0xc7a4, 0xc7a5, 0xc7a6, 0xc7ac, 0xc7ad, 0xc7b0, 0xc7b4, 0xc7bc, 0xc7bd, 0xc7bf, 0xc7c0, 0xc7c1, 0xc7c8, 0xc7c9, +0xc7cc, 0xc7ce, 0xc7d0, 0xc7d8, 0xc7dd, 0xc7e4, 0xc7e8, 0xc7ec, 0xc800, 0xc801, 0xc804, 0xc808, 0xc80a, 0xc810, 0xc811, 0xc813, +0xc815, 0xc816, 0xc81c, 0xc81d, 0xc820, 0xc824, 0xc82c, 0xc82d, 0xc82f, 0xc831, 0xc838, 0xc83c, 0xc840, 0xc848, 0xc849, 0xc84c, +0xc84d, 0xc854, 0xc870, 0xc871, 0xc874, 0xc878, 0xc87a, 0xc880, 0xc881, 0xc883, 0xc885, 0xc886, 0xc887, 0xc88b, 0xc88c, 0xc88d, +0xc894, 0xc89d, 0xc89f, 0xc8a1, 0xc8a8, 0xc8bc, 0xc8bd, 0xc8c4, 0xc8c8, 0xc8cc, 0xc8d4, 0xc8d5, 0xc8d7, 0xc8d9, 0xc8e0, 0xc8e1, +0xc8e4, 0xc8f5, 0xc8fc, 0xc8fd, 0xc900, 0xc904, 0xc905, 0xc906, 0xc90c, 0xc90d, 0xc90f, 0xc911, 0xc918, 0xc92c, 0xc934, 0xc950, +0xc951, 0xc954, 0xc958, 0xc960, 0xc961, 0xc963, 0xc96c, 0xc970, 0xc974, 0xc97c, 0xc988, 0xc989, 0xc98c, 0xc990, 0xc998, 0xc999, +0xc99b, 0xc99d, 0xc9c0, 0xc9c1, 0xc9c4, 0xc9c7, 0xc9c8, 0xc9ca, 0xc9d0, 0xc9d1, 0xc9d3, 0xc9d5, 0xc9d6, 0xc9d9, 0xc9da, 0xc9dc, +0xc9dd, 0xc9e0, 0xc9e2, 0xc9e4, 0xc9e7, 0xc9ec, 0xc9ed, 0xc9ef, 0xc9f0, 0xc9f1, 0xc9f8, 0xc9f9, 0xc9fc, 0xca00, 0xca08, 0xca09, +0xca0b, 0xca0c, 0xca0d, 0xca14, 0xca18, 0xca29, 0xca4c, 0xca4d, 0xca50, 0xca54, 0xca5c, 0xca5d, 0xca5f, 0xca60, 0xca61, 0xca68, +0xca7d, 0xca84, 0xca98, 0xcabc, 0xcabd, 0xcac0, 0xcac4, 0xcacc, 0xcacd, 0xcacf, 0xcad1, 0xcad3, 0xcad8, 0xcad9, 0xcae0, 0xcaec, +0xcaf4, 0xcb08, 0xcb10, 0xcb14, 0xcb18, 0xcb20, 0xcb21, 0xcb41, 0xcb48, 0xcb49, 0xcb4c, 0xcb50, 0xcb58, 0xcb59, 0xcb5d, 0xcb64, +0xcb78, 0xcb79, 0xcb9c, 0xcbb8, 0xcbd4, 0xcbe4, 0xcbe7, 0xcbe9, 0xcc0c, 0xcc0d, 0xcc10, 0xcc14, 0xcc1c, 0xcc1d, 0xcc21, 0xcc22, +0xcc27, 0xcc28, 0xcc29, 0xcc2c, 0xcc2e, 0xcc30, 0xcc38, 0xcc39, 0xcc3b, 0xcc3c, 0xcc3d, 0xcc3e, 0xcc44, 0xcc45, 0xcc48, 0xcc4c, +0xcc54, 0xcc55, 0xcc57, 0xcc58, 0xcc59, 0xcc60, 0xcc64, 0xcc66, 0xcc68, 0xcc70, 0xcc75, 0xcc98, 0xcc99, 0xcc9c, 0xcca0, 0xcca8, +0xcca9, 0xccab, 0xccac, 0xccad, 0xccb4, 0xccb5, 0xccb8, 0xccbc, 0xccc4, 0xccc5, 0xccc7, 0xccc9, 0xccd0, 0xccd4, 0xcce4, 0xccec, +0xccf0, 0xcd01, 0xcd08, 0xcd09, 0xcd0c, 0xcd10, 0xcd18, 0xcd19, 0xcd1b, 0xcd1d, 0xcd24, 0xcd28, 0xcd2c, 0xcd39, 0xcd5c, 0xcd60, +0xcd64, 0xcd6c, 0xcd6d, 0xcd6f, 0xcd71, 0xcd78, 0xcd88, 0xcd94, 0xcd95, 0xcd98, 0xcd9c, 0xcda4, 0xcda5, 0xcda7, 0xcda9, 0xcdb0, +0xcdc4, 0xcdcc, 0xcdd0, 0xcde8, 0xcdec, 0xcdf0, 0xcdf8, 0xcdf9, 0xcdfb, 0xcdfd, 0xce04, 0xce08, 0xce0c, 0xce14, 0xce19, 0xce20, +0xce21, 0xce24, 0xce28, 0xce30, 0xce31, 0xce33, 0xce35, 0xce58, 0xce59, 0xce5c, 0xce5f, 0xce60, 0xce61, 0xce68, 0xce69, 0xce6b, +0xce6d, 0xce74, 0xce75, 0xce78, 0xce7c, 0xce84, 0xce85, 0xce87, 0xce89, 0xce90, 0xce91, 0xce94, 0xce98, 0xcea0, 0xcea1, 0xcea3, +0xcea4, 0xcea5, 0xceac, 0xcead, 0xcec1, 0xcee4, 0xcee5, 0xcee8, 0xceeb, 0xceec, 0xcef4, 0xcef5, 0xcef7, 0xcef8, 0xcef9, 0xcf00, +0xcf01, 0xcf04, 0xcf08, 0xcf10, 0xcf11, 0xcf13, 0xcf15, 0xcf1c, 0xcf20, 0xcf24, 0xcf2c, 0xcf2d, 0xcf2f, 0xcf30, 0xcf31, 0xcf38, +0xcf54, 0xcf55, 0xcf58, 0xcf5c, 0xcf64, 0xcf65, 0xcf67, 0xcf69, 0xcf70, 0xcf71, 0xcf74, 0xcf78, 0xcf80, 0xcf85, 0xcf8c, 0xcfa1, +0xcfa8, 0xcfb0, 0xcfc4, 0xcfe0, 0xcfe1, 0xcfe4, 0xcfe8, 0xcff0, 0xcff1, 0xcff3, 0xcff5, 0xcffc, 0xd000, 0xd004, 0xd011, 0xd018, +0xd02d, 0xd034, 0xd035, 0xd038, 0xd03c, 0xd044, 0xd045, 0xd047, 0xd049, 0xd050, 0xd054, 0xd058, 0xd060, 0xd06c, 0xd06d, 0xd070, +0xd074, 0xd07c, 0xd07d, 0xd081, 0xd0a4, 0xd0a5, 0xd0a8, 0xd0ac, 0xd0b4, 0xd0b5, 0xd0b7, 0xd0b9, 0xd0c0, 0xd0c1, 0xd0c4, 0xd0c8, +0xd0c9, 0xd0d0, 0xd0d1, 0xd0d3, 0xd0d4, 0xd0d5, 0xd0dc, 0xd0dd, 0xd0e0, 0xd0e4, 0xd0ec, 0xd0ed, 0xd0ef, 0xd0f0, 0xd0f1, 0xd0f8, +0xd10d, 0xd130, 0xd131, 0xd134, 0xd138, 0xd13a, 0xd140, 0xd141, 0xd143, 0xd144, 0xd145, 0xd14c, 0xd14d, 0xd150, 0xd154, 0xd15c, +0xd15d, 0xd15f, 0xd161, 0xd168, 0xd16c, 0xd17c, 0xd184, 0xd188, 0xd1a0, 0xd1a1, 0xd1a4, 0xd1a8, 0xd1b0, 0xd1b1, 0xd1b3, 0xd1b5, +0xd1ba, 0xd1bc, 0xd1c0, 0xd1d8, 0xd1f4, 0xd1f8, 0xd207, 0xd209, 0xd210, 0xd22c, 0xd22d, 0xd230, 0xd234, 0xd23c, 0xd23d, 0xd23f, +0xd241, 0xd248, 0xd25c, 0xd264, 0xd280, 0xd281, 0xd284, 0xd288, 0xd290, 0xd291, 0xd295, 0xd29c, 0xd2a0, 0xd2a4, 0xd2ac, 0xd2b1, +0xd2b8, 0xd2b9, 0xd2bc, 0xd2bf, 0xd2c0, 0xd2c2, 0xd2c8, 0xd2c9, 0xd2cb, 0xd2d4, 0xd2d8, 0xd2dc, 0xd2e4, 0xd2e5, 0xd2f0, 0xd2f1, +0xd2f4, 0xd2f8, 0xd300, 0xd301, 0xd303, 0xd305, 0xd30c, 0xd30d, 0xd30e, 0xd310, 0xd314, 0xd316, 0xd31c, 0xd31d, 0xd31f, 0xd320, +0xd321, 0xd325, 0xd328, 0xd329, 0xd32c, 0xd330, 0xd338, 0xd339, 0xd33b, 0xd33c, 0xd33d, 0xd344, 0xd345, 0xd37c, 0xd37d, 0xd380, +0xd384, 0xd38c, 0xd38d, 0xd38f, 0xd390, 0xd391, 0xd398, 0xd399, 0xd39c, 0xd3a0, 0xd3a8, 0xd3a9, 0xd3ab, 0xd3ad, 0xd3b4, 0xd3b8, +0xd3bc, 0xd3c4, 0xd3c5, 0xd3c8, 0xd3c9, 0xd3d0, 0xd3d8, 0xd3e1, 0xd3e3, 0xd3ec, 0xd3ed, 0xd3f0, 0xd3f4, 0xd3fc, 0xd3fd, 0xd3ff, +0xd401, 0xd408, 0xd41d, 0xd440, 0xd444, 0xd45c, 0xd460, 0xd464, 0xd46d, 0xd46f, 0xd478, 0xd479, 0xd47c, 0xd47f, 0xd480, 0xd482, +0xd488, 0xd489, 0xd48b, 0xd48d, 0xd494, 0xd4a9, 0xd4cc, 0xd4d0, 0xd4d4, 0xd4dc, 0xd4df, 0xd4e8, 0xd4ec, 0xd4f0, 0xd4f8, 0xd4fb, +0xd4fd, 0xd504, 0xd508, 0xd50c, 0xd514, 0xd515, 0xd517, 0xd53c, 0xd53d, 0xd540, 0xd544, 0xd54c, 0xd54d, 0xd54f, 0xd551, 0xd558, +0xd559, 0xd55c, 0xd560, 0xd565, 0xd568, 0xd569, 0xd56b, 0xd56d, 0xd574, 0xd575, 0xd578, 0xd57c, 0xd584, 0xd585, 0xd587, 0xd588, +0xd589, 0xd590, 0xd5a5, 0xd5c8, 0xd5c9, 0xd5cc, 0xd5d0, 0xd5d2, 0xd5d8, 0xd5d9, 0xd5db, 0xd5dd, 0xd5e4, 0xd5e5, 0xd5e8, 0xd5ec, +0xd5f4, 0xd5f5, 0xd5f7, 0xd5f9, 0xd600, 0xd601, 0xd604, 0xd608, 0xd610, 0xd611, 0xd613, 0xd614, 0xd615, 0xd61c, 0xd620, 0xd624, +0xd62d, 0xd638, 0xd639, 0xd63c, 0xd640, 0xd645, 0xd648, 0xd649, 0xd64b, 0xd64d, 0xd651, 0xd654, 0xd655, 0xd658, 0xd65c, 0xd667, +0xd669, 0xd670, 0xd671, 0xd674, 0xd683, 0xd685, 0xd68c, 0xd68d, 0xd690, 0xd694, 0xd69d, 0xd69f, 0xd6a1, 0xd6a8, 0xd6ac, 0xd6b0, +0xd6b9, 0xd6bb, 0xd6c4, 0xd6c5, 0xd6c8, 0xd6cc, 0xd6d1, 0xd6d4, 0xd6d7, 0xd6d9, 0xd6e0, 0xd6e4, 0xd6e8, 0xd6f0, 0xd6f5, 0xd6fc, +0xd6fd, 0xd700, 0xd704, 0xd711, 0xd718, 0xd719, 0xd71c, 0xd720, 0xd728, 0xd729, 0xd72b, 0xd72d, 0xd734, 0xd735, 0xd738, 0xd73c, +0xd744, 0xd747, 0xd749, 0xd750, 0xd751, 0xd754, 0xd756, 0xd757, 0xd758, 0xd759, 0xd760, 0xd761, 0xd763, 0xd765, 0xd769, 0xd76c, +0xd770, 0xd774, 0xd77c, 0xd77d, 0xd781, 0xd788, 0xd789, 0xd78c, 0xd790, 0xd798, 0xd799, 0xd79b, 0xd79d, +}; +// end of file diff --git a/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/MasterEditorTWL/banner_char_worldwide.cpp b/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/MasterEditorTWL/banner_char_worldwide.cpp new file mode 100644 index 0000000..62beb20 --- /dev/null +++ b/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/MasterEditorTWL/banner_char_worldwide.cpp @@ -0,0 +1,39 @@ +#include "stdafx.h" +#include +#include +#include +#include "banner_char.h" + +const int MasterEditorTWL::NumOf_BannerCharCodes_Worldwide = 439; +const u16 MasterEditorTWL::BannerCharCodes_Worldwide[439] = +{ +0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, +0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, +0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, +0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, +0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, +0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, +0x20ac, 0x201a, 0x201e, 0x2026, 0x02c6, 0x0152, 0x2018, 0x2019, 0x201c, 0x201d, 0x2022, 0x02dc, 0x2122, 0x203a, 0x0153, 0x00a1, +0x00a2, 0x00a3, 0x00a8, 0x00a9, 0x00ae, 0x00b7, 0x00bf, 0x00c0, 0x00c1, 0x00c2, 0x00c3, 0x00c4, 0x00c5, 0x00c6, 0x00c7, 0x00c8, +0x00c9, 0x00ca, 0x00cb, 0x00cc, 0x00cd, 0x00ce, 0x00cf, 0x00d0, 0x00d1, 0x00d2, 0x00d3, 0x00d4, 0x00d5, 0x00d6, 0x00d8, 0x00d9, +0x00da, 0x00db, 0x00dc, 0x00dd, 0x00df, 0x00e0, 0x00e1, 0x00e2, 0x00e3, 0x00e4, 0x00e5, 0x00e6, 0x00e7, 0x00e8, 0x00e9, 0x00ea, +0x00eb, 0x00ec, 0x00ed, 0x00ee, 0x00ef, 0x00f0, 0x00f1, 0x00f2, 0x00f3, 0x00f4, 0x00f5, 0x00f6, 0x00f7, 0x00f8, 0x00f9, 0x00fa, +0x00fb, 0x00fc, 0x00fd, 0x3000, 0x3001, 0x3002, 0xff0c, 0xff0e, 0x30fb, 0x003a, 0x003b, 0xff1f, 0xff01, 0x30fc, 0x3041, 0x3042, +0x3043, 0x3044, 0x3045, 0x3046, 0x3047, 0x3048, 0x3049, 0x304a, 0x304b, 0x304c, 0x304d, 0x304e, 0x304f, 0x3050, 0x3051, 0x3052, +0x3053, 0x3054, 0x3055, 0x3056, 0x3057, 0x3058, 0x3059, 0x305a, 0x305b, 0x305c, 0x305d, 0x305e, 0x305f, 0x3060, 0x3061, 0x3062, +0x3063, 0x3064, 0x3065, 0x3066, 0x3067, 0x3068, 0x3069, 0x306a, 0x306b, 0x306c, 0x306d, 0x306e, 0x306f, 0x3070, 0x3071, 0x3072, +0x3073, 0x3074, 0x3075, 0x3076, 0x3077, 0x3078, 0x3079, 0x307a, 0x307b, 0x307c, 0x307d, 0x307e, 0x307f, 0x3080, 0x3081, 0x3082, +0x3083, 0x3084, 0x3085, 0x3086, 0x3087, 0x3088, 0x3089, 0x308a, 0x308b, 0x308c, 0x308d, 0x308e, 0x308f, 0x3090, 0x3091, 0x3092, +0x3093, 0x309b, 0x309c, 0x309d, 0x309e, 0x30a1, 0x30a2, 0x30a3, 0x30a4, 0x30a5, 0x30a6, 0x30a7, 0x30a8, 0x30a9, 0x30aa, 0x30ab, +0x30ac, 0x30ad, 0x30ae, 0x30af, 0x30b0, 0x30b1, 0x30b2, 0x30b3, 0x30b4, 0x30b5, 0x30b6, 0x30b7, 0x30b8, 0x30b9, 0x30ba, 0x30bb, +0x30bc, 0x30bd, 0x30be, 0x30bf, 0x30c0, 0x30c1, 0x30c2, 0x30c3, 0x30c4, 0x30c5, 0x30c6, 0x30c7, 0x30c8, 0x30c9, 0x30ca, 0x30cb, +0x30cc, 0x30cd, 0x30ce, 0x30cf, 0x30d0, 0x30d1, 0x30d2, 0x30d3, 0x30d4, 0x30d5, 0x30d6, 0x30d7, 0x30d8, 0x30d9, 0x30da, 0x30db, +0x30dc, 0x30dd, 0x30de, 0x30df, 0x30e0, 0x30e1, 0x30e2, 0x30e3, 0x30e4, 0x30e5, 0x30e6, 0x30e7, 0x30e8, 0x30e9, 0x30ea, 0x30eb, +0x30ec, 0x30ed, 0x30ee, 0x30ef, 0x30f0, 0x30f1, 0x30f2, 0x30f3, 0x30f4, 0x30f5, 0x30f6, 0x3001, 0x3002, 0xff0c, 0xff0e, 0x30fb, +0xff1a, 0xff1b, 0xff1f, 0xff01, 0x309b, 0x309c, 0x00b4, 0xff40, 0xff3e, 0xffe3, 0xff3f, 0x3005, 0x30fc, 0x2015, 0x2010, 0xff0f, +0xff3c, 0xff5e, 0xff5c, 0x2026, 0x2018, 0x2019, 0x201c, 0x201d, 0xff08, 0xff09, 0x3014, 0x3015, 0xff3b, 0xff3d, 0xff5b, 0xff5d, +0x3008, 0x3009, 0x300c, 0x300d, 0xff0b, 0xff0d, 0x00b1, 0x00d7, 0x00f7, 0xff1d, 0x221e, 0x2234, 0x00b0, 0x2032, 0x2033, 0xff06, +0x2606, 0x2605, 0x25cb, 0x25cf, 0x25ce, 0x25c7, 0x25c6, 0x25a1, 0x25a0, 0x25b3, 0x25b2, 0x25bd, 0x25bc, 0x203b, 0x3012, 0x2192, +0x2190, 0x2191, 0x2193, 0x266f, 0x266d, 0x266a, 0x000a, +}; +// end of file diff --git a/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/MasterEditorTWL/common.h b/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/MasterEditorTWL/common.h new file mode 100644 index 0000000..c647c83 --- /dev/null +++ b/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/MasterEditorTWL/common.h @@ -0,0 +1,40 @@ +#pragma once + +#define METWL_WHETHER_PLATFORM_CHECK // vbgtH[TWLΉȊOǂ`FbN +#define METWL_WHETHER_SIGN_DECRYPT // Oă_CWFXgxt@C +#define METWL_WHETHER_MRC // MRC@\܂߂邩 +#define METWL_LIGHT_CHECK // oɂ邩 + +// 萔 +#define METWL_ROMSIZE_MIN 256 // ŏ̃foCXe 256Mbit +#define METWL_ROMSIZE_MAX 4096 // ő.. 4Gbit +#define METWL_ROMSIZE_MIN_NAND 1 +#define METWL_ROMSIZE_MAX_NAND 256 +#define METWL_ALLSIZE_MAX_NAND (32*1024*1024) // VXeNANDAv̗eʐ(PByte) +#define METWL_ALLSIZE_MAX_NAND_LIC (16*1024*1024) // ^p(_)NANDAv̗eʐ(PByte) +#define METWL_MASK_REGION_JAPAN 0x00000001 +#define METWL_MASK_REGION_AMERICA 0x00000002 +#define METWL_MASK_REGION_EUROPE 0x00000004 +#define METWL_MASK_REGION_AUSTRALIA 0x00000008 +#define METWL_MASK_REGION_CHINA 0x00000010 +#define METWL_MASK_REGION_KOREA 0x00000020 +#define METWL_MASK_REGION_ALL 0xffffffff +#define METWL_NUMOF_SHARED2FILES 6 +#define METWL_SEG3_CRC 0x0254 +#define METWL_TAD_TMP_FILENAME "tmp.srl" // TADǂݍ݂̍ۂ split_tad ňꎞIɍ쐬t@C +#define METWL_SDK52_RELEASE ((5 << 24)|(2 << 16)|30000) // SDANZX̔肪KvSDKo[W (5.2 RELEASE) +#define METWL_SDK51_PR ((5 << 24)|(1 << 16)|10000) // N[u[gΉSDKo[W (5.1 PR) + +// ʂGUI\/omFɋLq镶 +#define METWL_STRING_UNNECESSARY_RATING_J ("[eBO\sv(SN)") +#define METWL_STRING_UNNECESSARY_RATING_E ("Rating Not Required (All ages)") +#define METWL_STRING_UNDEFINED_RATING_J ("s") +#define METWL_STRING_UNDEFINED_RATING_E ("Undefined") +#define METWL_STRING_UNDEFINED_REGION_J ("s") // N蓾Ȃ +#define METWL_STRING_UNDEFINED_REGION_E ("Undefined") +#define METWL_STRING_CHINA_RATING_FREE_J ("SN(őΉ)") +#define METWL_STRING_CHINA_RATING_FREE_E ("All ages (China version support)") +#define METWL_STRING_CHINA_REGION_J ("̂") +#define METWL_STRING_CHINA_REGION_E ("China only") +#define METWL_STRING_KOREA_REGION_J ("؍̂") +#define METWL_STRING_KOREA_REGION_E ("Korea only") diff --git a/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/MasterEditorTWL/crc_whole.cpp b/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/MasterEditorTWL/crc_whole.cpp new file mode 100644 index 0000000..a984cf5 --- /dev/null +++ b/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/MasterEditorTWL/crc_whole.cpp @@ -0,0 +1,185 @@ +// crc_whole.h ̎ + +#include "stdafx.h" +#include +#include "common.h" +#include "crc_whole.h" +#include +#include + +#define CRCPOLY 0x1021 +#define BUFLEN 0x1000 + +namespace MasterEditorTWL +{ + u16 crc_table[0x100]; + + /*---------------------------------------------------------------------------- + ֐ + inittable - initialize table + + ` + static void inittable(unsigned short *table); + + + CRCZo邽߂̎Qƃe[u쐬B + ----------------------------------------------------------------------------*/ + static void inittable(unsigned short *table) + { + unsigned short i, j, r; + + for(i = 0; i < 0x100; i++) { + r = i << 8; + for(j = 0; j < 8; j++) { + if(r & 0x8000U) + r = (r << 1) ^ CRCPOLY; + else + r <<= 1; + } + *table++ = r; + } + } + + /*============================================================================* + CRCvZ + iZpCRCe[ugCRCvZ֐ + + oCgƊoCgւĂvZB + *============================================================================*/ + static u16 newGetCRC + ( + u16 start, // CRCliݐϒlj + u16 *datap, // f[^̐擪w|C^ÂƈႢAu8 + u32 size // oCgPʂł̃f[^TCY + ) + { + u32 i; + u16 crc; + u8* byte; + + crc = start; + byte = (u8 *)datap; + + for (i=0; i> 8) ^ byte1]; + crc = (crc << 8) ^ crc_table[(crc >> 8) ^ byte0]; + } + + return crc; + } + + /*---------------------------------------------------------------------------* + + Name: getSeg3CRCInFp + + Description: Segment3(0x3000-0x3fff)CRCZo + + Arguments: [in] srlt@C̃t@C|C^ + [out] CRCi[ + + Return: ȂTRUE. + + *---------------------------------------------------------------------------*/ + BOOL getSeg3CRCInFp( FILE *fp, u16 *pCRC ) + { + u16 crc; + u16 data[ 0x1000 / 2 ]; // 64KoCg(512Krbg) + + if( !fp ) + { + return FALSE; + } + + // CRCe[uiiZp̃R[hj + inittable(crc_table); + + // 0x3000 0x3fff ܂ł CRC Ƃ + fseek( fp, 0x3000, SEEK_SET ); + fread( (void*)data, sizeof(data), 1, fp ); + crc = newGetCRC( 0, data, sizeof(data) ); + *pCRC = crc; + + return TRUE; + } + + /*---------------------------------------------------------------------------* + + Name: getWholeCRCInFp + + Description: srlt@CŜCRCZo + + Arguments: [in] srlt@C̃t@C|C^ + [out] CRCi[ + + Return: ȂTRUE. + + *---------------------------------------------------------------------------*/ + BOOL getWholeCRCInFp( FILE *fp, u16 *pCRC ) + { + u32 file_size; + u16 crc; + u32 i; + u16 data[ 0x1000 / 2 ]; // 64KoCg(512Krbg) + + if( !fp ) + { + return FALSE; + } + + // t@CTCY`FbN + fseek( fp, 0, SEEK_END ); + file_size = ftell( fp ); + + // CRCe[uiiZp̃R[hj + inittable(crc_table); + + // t@CŜCRC Ƃ + fseek( fp, 0, SEEK_SET ); + crc = 0; + for ( i=0; i +#include + +namespace MasterEditorTWL +{ + /*---------------------------------------------------------------------------* + + Name: getSeg3CRCInFp + + Description: Segment3(0x3000-0x3fff)CRCZo + + Arguments: [in] srlt@C̃t@C|C^ + [out] CRCi[ + + Return: ȂTRUE. + + *---------------------------------------------------------------------------*/ + BOOL getSeg3CRCInFp( FILE *fp, u16 *pCRC ); + + /*---------------------------------------------------------------------------* + + Name: getWholeCRCInFp + + Description: srlt@CŜCRCZo + + Arguments: [in] srlt@C̃t@C|C^ + [out] CRCi[ + + Return: ȂTRUE. + + *---------------------------------------------------------------------------*/ + BOOL getWholeCRCInFp( FILE *fp, u16 *pCRC ); + + /*---------------------------------------------------------------------------* + + Name: getWholeCRCInFile + + Description: srlt@CŜCRCZo + + Arguments: [in] srlt@C(ĂяoOɕ‚Ă) + [out] CRCi[ + + Return: None. + + *---------------------------------------------------------------------------*/ + BOOL getWholeCRCInFile( System::String ^filename, u16 *pCRC ); + +} // end of namespace MasterEditorTWL \ No newline at end of file diff --git a/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/MasterEditorTWL/deliverable.cpp b/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/MasterEditorTWL/deliverable.cpp new file mode 100644 index 0000000..86c848a --- /dev/null +++ b/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/MasterEditorTWL/deliverable.cpp @@ -0,0 +1,678 @@ +// deliverable.h ̃NX + +#include "stdafx.h" +#include +#include "common.h" +#include "srl.h" +#include "deliverable.h" +#include "utility.h" +#include +#include + +#define METWL_SHEET_YES ("Yes") +#define METWL_SHEET_NO ("No") + +using namespace MasterEditorTWL; + +// +// RCDeliverable NX +// + +// +// ޏo +// +// @arg [out] o̓t@C +// @arg [in] ROMoCi(SRL)ŗL +// @arg [in] t@CŜCRC +// @arg [in] SRL̃t@C(ނɋLq邽߂Ɏgp) +// @arg [in] ptO +// +ECDeliverableResult RCDeliverable::writeSpreadsheet( + System::String ^hFilename, System::String ^hSheetTemplateFilename, + MasterEditorTWL::RCSrl ^hSrl, System::UInt16 CRC, System::String ^hSrlFilename, System::Boolean english ) +{ + // ev[gǂݍ + System::Xml::XmlDocument ^doc = gcnew System::Xml::XmlDocument(); + try + { + doc->Load( hSheetTemplateFilename ); + } + catch ( System::Exception ^ex ) + { + (void)ex; + return ECDeliverableResult::ERROR_FILE_OPEN; + } + System::Xml::XmlElement ^root = doc->DocumentElement; + + // \tg^Cgetc.1“ + char title_name[ TITLE_NAME_MAX ]; + char game_code[ GAME_CODE_MAX ]; + char maker_code[ MAKER_CODE_MAX ]; + MasterEditorTWL::setStringToChars( title_name, hSrl->hTitleName, TITLE_NAME_MAX, 0 ); + MasterEditorTWL::setStringToChars( game_code, hSrl->hGameCode, GAME_CODE_MAX, 0 ); + MasterEditorTWL::setStringToChars( maker_code, hSrl->hMakerCode, MAKER_CODE_MAX, 0 ); + //System::String ^str = gcnew System::String( hSrl->hTitleName[0], 1 ); + //System::Diagnostics::Debug::WriteLine( str ); + //System::Diagnostics::Debug::WriteLine( "hex 0x: " + title_name[0].ToString("X") ); + + // Av + System::String ^apptype = gcnew System::String(""); + if( hSrl->IsAppLauncher ) + { + apptype = gcnew System::String( "Launcher" ); + } + else if( hSrl->IsAppSecure ) + { + apptype = gcnew System::String( "Secure" ); + } + else if( hSrl->IsAppSystem ) + { + apptype = gcnew System::String( "System" ); + } + else if( hSrl->IsAppUser ) + { + apptype = gcnew System::String( "User" ); + } + System::String ^media = gcnew System::String(""); + if( hSrl->IsMediaNand ) + { + media = gcnew System::String( "NAND" ); + } + else + { + media = gcnew System::String( "Game Card" ); + } + System::String ^appother = gcnew System::String(""); + if( !hSrl->IsLaunch ) + { + appother += "`[\."; + } + if( hSrl->IsDataOnly ) + { + apptype += "f[^p."; + } + + // ANZXRg[ ̑ + System::String ^access = gcnew System::String(""); + if( hSrl->IsCommonClientKey ) + { + access += "CommonClientKey. "; + } + if( hSrl->IsAesSlotBForES ) + { + access += "AES-SlotB(ES). "; + } + if( hSrl->IsAesSlotCForNAM ) + { + access += "AES-SlotC(NAM). "; + } + if( hSrl->IsAesSlotBForJpegEnc ) + { + access += "Jpeg Signature for the Launcher."; + } + if( hSrl->IsAesSlotBForJpegEncUser ) + { + access += "Jpeg Signature."; + } + if( hSrl->IsAesSlotAForSSL ) + { + access += "AES-SlotA(SSL Client Cert). "; + } + if( hSrl->IsCommonClientKeyForDebugger ) + { + access += "CommonClientKey(Debugger System Menu). "; + } + + // gpCZX + System::String ^lib = gcnew System::String(""); + if( hSrl->hLicenseList != nullptr ) + { + for each( RCLicense ^lic in hSrl->hLicenseList ) + { + lib += "[" + lic->Publisher + " / " + lic->Name + "]. "; + } + } + + // lɓȐݒNjL + System::String ^capEx = ""; + if( hSrl->HasDSDLPlaySign ) + { + if( english ) + capEx += " [DS clone-boot is supported.]"; + else + capEx += " [DSN[u[gΉł.]"; + } + if( hSrl->IsSCFGAccess ) + { + if( english ) + capEx += " [The SCFC register can be accessed.]"; + else + capEx += " [SCFGWX^ANZX”\ɂȂĂ܂.]"; + } + if( hSrl->IsSD ) + { + if( english ) + capEx += " [The SD Card can be accessed.]"; + else + capEx += " [SDJ[hփANZX”\ɂȂĂ܂.]"; + } + if( hSrl->IsNormalJump ) + { + if( english ) + capEx += " [The normal jump is comfigured.]"; + else + capEx += " [m[}Wvݒ肳Ă܂.]"; + } + + // ރev[g̊e^O͏ɒu + System::Xml::XmlNodeList ^list; + list = root->GetElementsByTagName( "Data" ); + System::Int32 i; + for( i=0; i < list->Count; i++ ) + { + System::Xml::XmlNode ^node = list->Item(i); + if( (node->FirstChild != nullptr) && (node->FirstChild->Value != nullptr) ) + { + // vÕo[W + if( node->FirstChild->Value->Equals( "TagMasterEditorVersion" ) ) + { + node->FirstChild->Value = this->hMasterEditorVersion; + } + // o + if( node->FirstChild->Value->Equals( "TagProductName" ) ) + { + node->FirstChild->Value = this->hProductName; + } + if( node->FirstChild->Value->Equals( "TagProductCode1" ) ) + { + node->FirstChild->Value = this->hProductCode1; + } + if( node->FirstChild->Value->Equals( "TagProductCode2" ) ) + { + node->FirstChild->Value = this->hProductCode2; + } + if( node->FirstChild->Value->Equals( "TagReleaseForeign" ) ) + { + if( this->IsReleaseForeign ) + node->FirstChild->Value = gcnew System::String(METWL_SHEET_YES); + else + node->FirstChild->Value = gcnew System::String(METWL_SHEET_NO); + } + if( node->FirstChild->Value->Equals( "TagProductNameForeign" ) ) + { + node->FirstChild->Value = this->hProductNameForeign; + } + if( node->FirstChild->Value->Equals( "TagProductCode1Foreign" ) ) + { + node->FirstChild->Value = this->hProductCode1Foreign; + } + if( node->FirstChild->Value->Equals( "TagProductCode2Foreign" ) ) + { + node->FirstChild->Value = this->hProductCode2Foreign; + } + if( node->FirstChild->Value->Equals( "TagSubmitYear" ) ) + { + node->FirstChild->Value = this->SubmitYear.ToString(); + } + if( node->FirstChild->Value->Equals( "TagSubmitMonth" ) ) + { + node->FirstChild->Value = this->SubmitMonth.ToString(); + } + if( node->FirstChild->Value->Equals( "TagSubmitDay" ) ) + { + node->FirstChild->Value = this->SubmitDay.ToString(); + } + if( node->FirstChild->Value->Equals( "TagReleaseYear" ) ) + { + node->FirstChild->Value = this->ReleaseYear.ToString(); + } + if( node->FirstChild->Value->Equals( "TagReleaseMonth" ) ) + { + node->FirstChild->Value = this->ReleaseMonth.ToString(); + } + if( node->FirstChild->Value->Equals( "TagReleaseDay" ) ) + { + node->FirstChild->Value = this->ReleaseDay.ToString(); + } + if( node->FirstChild->Value->Equals( "TagSubmitWay" ) ) + { + node->FirstChild->Value = this->hSubmitWay; + } + if( node->FirstChild->Value->Equals( "TagUsage" ) ) + { + node->FirstChild->Value = this->hUsage; + } + if( node->FirstChild->Value->Equals( "TagUsageDetail" ) ) + { + node->FirstChild->Value = this->hUsageDetail; + } + if( node->FirstChild->Value->Equals( "TagRomVersion" ) ) + { + node->FirstChild->Value = hSrl->RomVersion.ToString("X2"); + if( hSrl->RomVersion == 0xE0 ) + { + if( english ) + node->FirstChild->Value += "(Preliminary ver.)"; + else + node->FirstChild->Value += "(O)"; + } + } + if( node->FirstChild->Value->Equals( "TagSubmitVersion" ) ) + { + node->FirstChild->Value = this->SubmitVersion.ToString("X"); + } + if( node->FirstChild->Value->Equals( "TagSrlFilename" ) ) + { + node->FirstChild->Value = hSrlFilename; + } + if( node->FirstChild->Value->Equals( "TagCRC" ) ) + { + node->FirstChild->Value = "0x" + CRC.ToString("X4"); + } + // ROM + if( node->FirstChild->Value->Equals( "TagLatency" ) ) + { + node->FirstChild->Value = hSrl->hLatency; + } + if( node->FirstChild->Value->Equals( "TagPlatform" ) ) + { + node->FirstChild->Value = hSrl->hPlatform; + } + if( node->FirstChild->Value->Equals( "TagRomSize" ) ) + { + node->FirstChild->Value = hSrl->hRomSize; + } + if( node->FirstChild->Value->Equals( "TagBackupMemory" ) ) + { + node->FirstChild->Value = this->hBackupMemory; + } + if( node->FirstChild->Value->Equals( "TagSDK" ) ) + { + node->FirstChild->Value = this->hSDK; + } + if( node->FirstChild->Value->Equals( "TagLibrary" ) ) + { + node->FirstChild->Value = lib; + } + // ROM (TWLg) + if( node->FirstChild->Value->Equals( "TagTitleIDLo" ) ) + { + node->FirstChild->Value = hSrl->hTitleIDLo; + } + if( node->FirstChild->Value->Equals( "TagTitleIDHi" ) ) + { + node->FirstChild->Value = "0x" + hSrl->TitleIDHi.ToString("X8"); + } + if( node->FirstChild->Value->Equals( "TagAppType" ) ) + { + node->FirstChild->Value = apptype; + } + if( node->FirstChild->Value->Equals( "TagMedia" ) ) + { + node->FirstChild->Value = media; + } + if( node->FirstChild->Value->Equals( "TagAppTypeOther" ) ) + { + node->FirstChild->Value = appother; + } + if( node->FirstChild->Value->Equals( "TagIsNormalJump" ) ) + { + if( hSrl->IsNormalJump ) + node->FirstChild->Value = gcnew System::String(METWL_SHEET_YES); + else + node->FirstChild->Value = gcnew System::String(METWL_SHEET_NO); + } + if( node->FirstChild->Value->Equals( "TagIsTmpJump" ) ) + { + if( hSrl->IsTmpJump ) + node->FirstChild->Value = gcnew System::String(METWL_SHEET_YES); + else + node->FirstChild->Value = gcnew System::String(METWL_SHEET_NO); + } + if( node->FirstChild->Value->Equals( "TagNormalRomOffset" ) ) + { + node->FirstChild->Value = "0x" + hSrl->NormalRomOffset.ToString("X8"); + } + if( node->FirstChild->Value->Equals( "TagKeyTableRomOffset" ) ) + { + node->FirstChild->Value = "0x" + hSrl->KeyTableRomOffset.ToString("X8"); + } + if( node->FirstChild->Value->Equals( "TagPublicSize" ) ) + { + node->FirstChild->Value = MasterEditorTWL::transSizeToString( hSrl->PublicSize ); + } + if( node->FirstChild->Value->Equals( "TagPrivateSize" ) ) + { + node->FirstChild->Value = MasterEditorTWL::transSizeToString( hSrl->PrivateSize ); + } + if( node->FirstChild->Value->Equals( "TagPrivateSaveDataPurpose" ) ) + { + if( this->hPrivateSaveDataPurpose != nullptr ) + { + node->FirstChild->Value = System::String::Copy( this->hPrivateSaveDataPurpose ); + } + else + { + node->FirstChild->Value = ""; + } + } + if( node->FirstChild->Value->Equals( "TagIsCodec" ) ) + { + if( hSrl->IsCodecTWL ) + node->FirstChild->Value = gcnew System::String("TWL"); + else + node->FirstChild->Value = gcnew System::String("DS"); + } + if( node->FirstChild->Value->Equals( "TagIsEULA" ) ) + { + if( hSrl->IsEULA ) + node->FirstChild->Value = gcnew System::String(METWL_SHEET_YES); + else + node->FirstChild->Value = gcnew System::String(METWL_SHEET_NO); + } + if( node->FirstChild->Value->Equals( "TagIsSubBanner" ) ) + { + if( hSrl->IsSubBanner ) + node->FirstChild->Value = gcnew System::String(METWL_SHEET_YES); + else + node->FirstChild->Value = gcnew System::String(METWL_SHEET_NO); + } + if( node->FirstChild->Value->Equals( "TagIsWiFiIcon" ) ) + { + if( hSrl->IsWiFiIcon ) + node->FirstChild->Value = gcnew System::String(METWL_SHEET_YES); + else + node->FirstChild->Value = gcnew System::String(METWL_SHEET_NO); + } + if( node->FirstChild->Value->Equals( "TagIsWirelessIcon" ) ) + { + if( hSrl->IsWirelessIcon ) + node->FirstChild->Value = gcnew System::String(METWL_SHEET_YES); + else + node->FirstChild->Value = gcnew System::String(METWL_SHEET_NO); + } + if( node->FirstChild->Value->Equals( "TagIsSD" ) ) + { + if( hSrl->IsSD ) + node->FirstChild->Value = gcnew System::String(METWL_SHEET_YES); + else + node->FirstChild->Value = gcnew System::String(METWL_SHEET_NO); + } + if( node->FirstChild->Value->Equals( "TagIsNAND" ) ) + { + if( hSrl->IsNAND ) + node->FirstChild->Value = gcnew System::String(METWL_SHEET_YES); + else + node->FirstChild->Value = gcnew System::String(METWL_SHEET_NO); + } + if( node->FirstChild->Value->Equals( "TagIsShared2" ) ) + { + if( hSrl->IsShared2 ) + node->FirstChild->Value = gcnew System::String(METWL_SHEET_YES); + else + node->FirstChild->Value = gcnew System::String(METWL_SHEET_NO); + } + if( node->FirstChild->Value->Equals( "TagIsGameCardOn" ) ) + { + if( hSrl->IsGameCardNitro ) + node->FirstChild->Value = gcnew System::String("ON(NTR)"); + else if( hSrl->IsGameCardOn ) + node->FirstChild->Value = gcnew System::String("ON(normal)"); + else + node->FirstChild->Value = gcnew System::String("OFF");; + } + if( node->FirstChild->Value->Equals( "TagAccessOther" ) ) + { + node->FirstChild->Value = access; + } + if( node->FirstChild->Value->Equals( "TagShared2Size0" ) ) + { + node->FirstChild->Value = MasterEditorTWL::transSizeToString( hSrl->hShared2SizeArray[0] ); + } + if( node->FirstChild->Value->Equals( "TagShared2Size1" ) ) + { + node->FirstChild->Value = MasterEditorTWL::transSizeToString( hSrl->hShared2SizeArray[1] ); + } + if( node->FirstChild->Value->Equals( "TagShared2Size2" ) ) + { + node->FirstChild->Value = MasterEditorTWL::transSizeToString( hSrl->hShared2SizeArray[2] ); + } + if( node->FirstChild->Value->Equals( "TagShared2Size3" ) ) + { + node->FirstChild->Value = MasterEditorTWL::transSizeToString( hSrl->hShared2SizeArray[3] ); + } + if( node->FirstChild->Value->Equals( "TagShared2Size4" ) ) + { + node->FirstChild->Value = MasterEditorTWL::transSizeToString( hSrl->hShared2SizeArray[4] ); + } + if( node->FirstChild->Value->Equals( "TagShared2Size5" ) ) + { + node->FirstChild->Value = MasterEditorTWL::transSizeToString( hSrl->hShared2SizeArray[5] ); + } + if( node->FirstChild->Value->Equals( "TagPhotoAccess" ) ) + { + if( hSrl->IsPhotoRead && hSrl->IsPhotoWrite ) + node->FirstChild->Value = gcnew System::String("Read/Write"); + else if( hSrl->IsPhotoRead ) + node->FirstChild->Value = gcnew System::String("Read Only"); + else if( hSrl->IsPhotoWrite ) + node->FirstChild->Value = gcnew System::String("Write Only"); + else + node->FirstChild->Value = gcnew System::String("None"); + } + if( node->FirstChild->Value->Equals( "TagSDAccessRight" ) ) + { + if( hSrl->IsSD && !hSrl->IsOldSDK52Release ) // SDANZXȂꍇɂ͋ + { + if( hSrl->IsSDRead && hSrl->IsSDWrite ) + node->FirstChild->Value = gcnew System::String("Read/Write"); + else if( hSrl->IsSDRead ) + node->FirstChild->Value = gcnew System::String("Read"); + else if( hSrl->IsSDWrite ) + node->FirstChild->Value = gcnew System::String("Write"); + else + node->FirstChild->Value = gcnew System::String("None"); + } + else // ANZX`܂ł̃o[Wł͋󔒂ɂĂ + { + node->FirstChild->Value = gcnew System::String(""); + } + } + + // Џ + if( node->FirstChild->Value->Equals( "TagCompany1" ) ) + { + node->FirstChild->Value = this->hCompany1; + } + if( node->FirstChild->Value->Equals( "TagPerson1" ) ) + { + node->FirstChild->Value = this->hPerson1; + } + if( node->FirstChild->Value->Equals( "TagFurigana1" ) ) + { + node->FirstChild->Value = this->hFurigana1; + } + if( node->FirstChild->Value->Equals( "TagTel1" ) ) + { + node->FirstChild->Value = this->hTel1; + } + if( node->FirstChild->Value->Equals( "TagFax1" ) ) + { + node->FirstChild->Value = this->hFax1; + } + if( node->FirstChild->Value->Equals( "TagMail1" ) ) + { + node->FirstChild->Value = this->hMail1; + } + if( node->FirstChild->Value->Equals( "TagNTSC1" ) ) + { + node->FirstChild->Value = this->hNTSC1; + } + if( node->FirstChild->Value->Equals( "TagCompany2" ) ) + { + node->FirstChild->Value = this->hCompany2; + } + if( node->FirstChild->Value->Equals( "TagPerson2" ) ) + { + node->FirstChild->Value = this->hPerson2; + } + if( node->FirstChild->Value->Equals( "TagFurigana2" ) ) + { + node->FirstChild->Value = this->hFurigana2; + } + if( node->FirstChild->Value->Equals( "TagTel2" ) ) + { + node->FirstChild->Value = this->hTel2; + } + if( node->FirstChild->Value->Equals( "TagFax2" ) ) + { + node->FirstChild->Value = this->hFax2; + } + if( node->FirstChild->Value->Equals( "TagMail2" ) ) + { + node->FirstChild->Value = this->hMail2; + } + if( node->FirstChild->Value->Equals( "TagNTSC2" ) ) + { + node->FirstChild->Value = this->hNTSC2; + } + + // l + if( node->FirstChild->Value->Equals( "TagCaption" ) ) + { + node->FirstChild->Value = this->hCaption + capEx; + } + + // [W + if( node->FirstChild->Value->Equals( "TagRegion" ) ) + { + node->FirstChild->Value = this->hRegion; + } + + // yA^Rg[ + if( node->FirstChild->Value->Equals( "TagRatingCERO" ) ) + { + node->FirstChild->Value = this->hCERO; + } + if( node->FirstChild->Value->Equals( "TagRatingESRB" ) ) + { + node->FirstChild->Value = this->hESRB; + } + if( node->FirstChild->Value->Equals( "TagRatingUSK" ) ) + { + node->FirstChild->Value = this->hUSK; + } + if( node->FirstChild->Value->Equals( "TagRatingPEGI" ) ) + { + node->FirstChild->Value = this->hPEGI; + } + if( node->FirstChild->Value->Equals( "TagRatingPEGI_PRT" ) ) + { + node->FirstChild->Value = this->hPEGI_PRT; + } + if( node->FirstChild->Value->Equals( "TagRatingPEGI_BBFC" ) ) + { + node->FirstChild->Value = this->hPEGI_BBFC; + } + if( node->FirstChild->Value->Equals( "TagRatingOFLC" ) ) + { + node->FirstChild->Value = this->hOFLC; + } + if( node->FirstChild->Value->Equals( "TagRatingGRB" ) ) + { + node->FirstChild->Value = this->hGRB; + } + if( node->FirstChild->Value->Equals( "TagIsUnnecessaryRating" ) ) + { + if( hSrl->IsUnnecessaryRating ) + { + node->FirstChild->Value = gcnew System::String(METWL_SHEET_YES); + } + else + { + node->FirstChild->Value = gcnew System::String(METWL_SHEET_NO); + } + } + + // NANDgpTCY + if( node->FirstChild->Value->Equals( "TagDLCategory" ) ) + { + node->FirstChild->Value = this->hDLCategory; + } + if( node->FirstChild->Value->Equals( "TagUsedNandSizeKB" ) ) + { + node->FirstChild->Value = MasterEditorTWL::transSizeToStringKB( hSrl->hNandUsedSize->NandUsedSize ); + } + if( node->FirstChild->Value->Equals( "TagUsedNandSizeMB" ) ) + { + //node->FirstChild->Value = MasterEditorTWL::transSizeToStringMB( hSrl->hNandUsedSize->NandUsedSize, 2 ); + node->FirstChild->Value = MasterEditorTWL::transSizeToStringMB( hSrl->hNandUsedSize->NandUsedSize ); + } + + // SRLɓo^ȂROMdl + if( node->FirstChild->Value->Equals( "TagIsUGC" ) ) + { + if( this->IsUGC ) + node->FirstChild->Value = gcnew System::String(METWL_SHEET_YES); + else + node->FirstChild->Value = gcnew System::String(METWL_SHEET_NO); + } + if( node->FirstChild->Value->Equals( "TagIsPhotoEx" ) ) + { + if( this->IsPhotoEx ) + node->FirstChild->Value = gcnew System::String(METWL_SHEET_YES); + else + node->FirstChild->Value = gcnew System::String(METWL_SHEET_NO); + } + + // ROMo^f[^1oCg•\ɏ + if( node->FirstChild->Value->Equals( "TagRomVersionHex" ) ) + { + node->FirstChild->Value = hSrl->RomVersion.ToString("X2"); + } + System::Int32 byte; + for( byte=0; byte < TITLE_NAME_MAX; byte++ ) + { + if( node->FirstChild->Value->Equals( "TagTitleName" + byte.ToString() ) ) + { + System::String ^bstr = hSrl->hTitleName[byte].ToString(); + if( bstr == nullptr ) + node->FirstChild->Value = gcnew System::String( "null" ); + else if( bstr->Equals( "\0" ) ) + node->FirstChild->Value = gcnew System::String( "\\0" ); + else if( bstr->Equals( " " ) ) + node->FirstChild->Value = gcnew System::String( "\\s" ); + else + node->FirstChild->Value = gcnew System::String( bstr ); + //node->FirstChild->Value = gcnew System::String( hSrl->hTitleName[byte].ToString() ); + } + else if( node->FirstChild->Value->Equals( "TagTitleNameHex" + byte.ToString() ) ) + { + node->FirstChild->Value = title_name[byte].ToString("X2"); + } + } + if( node->FirstChild->Value->Equals( "TagGameCode" ) ) + { + node->FirstChild->Value = hSrl->hGameCode; + } + if( node->FirstChild->Value->Equals( "TagMakerCode" ) ) + { + node->FirstChild->Value = hSrl->hMakerCode; + } + + } // if( (node->FirstChild != nullptr) && (node->FirstChild->Value != nullptr) ) + } // for( i=0; i < list->Count; i++ ) + + try + { + doc->Save( hFilename ); + } + catch ( System::Exception ^ex ) + { + (void)ex; + return ECDeliverableResult::ERROR_FILE_WRITE; + } + + return ECDeliverableResult::NOERROR; +} // ECDeliverableResult RCDeliverable::writeSpreadsheet(System::String ^hFilename, MasterEditorTWL::RCSrl ^hSrl) + diff --git a/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/MasterEditorTWL/deliverable.h b/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/MasterEditorTWL/deliverable.h new file mode 100644 index 0000000..67e839d --- /dev/null +++ b/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/MasterEditorTWL/deliverable.h @@ -0,0 +1,136 @@ +#pragma once + +// ރNX̐錾 + +#include +#include +#include +#include +#include "common.h" +#include "srl.h" + +namespace MasterEditorTWL +{ + // ------------------------------------------------------------------- + // Type : enum class + // Name : ECDeliverableResult + // + // Description : RCDeliverable NX̑ł̃G[錾 + // ------------------------------------------------------------------- + enum class ECDeliverableResult + { + NOERROR = 0, + // G[肵ȂĂ킩Ƃ̕Ԃl + // (G[”\̂ӏ1 etc.) + ERROR, + // t@Cł̃G[ + ERROR_FILE_OPEN, + ERROR_FILE_READ, + ERROR_FILE_WRITE, + }; + + // ------------------------------------------------------------------- + // Type : ref class + // Name : RCDeliverable + // + // Description : oރNX + // + // Role : o̓o + // ------------------------------------------------------------------- + ref class RCDeliverable + { + // field + public: + // o + property System::String ^hProductName; // i + property System::String ^hProductCode1; // iR[h + property System::String ^hProductCode2; // iR[h + property System::Int32 ReleaseYear; // \ + property System::Int32 ReleaseMonth; + property System::Int32 ReleaseDay; + property System::Int32 SubmitYear; // o + property System::Int32 SubmitMonth; + property System::Int32 SubmitDay; + property System::String ^hSubmitWay; // o@ + property System::String ^hUsage; // pr + property System::String ^hUsageDetail; + property System::Int32 SubmitVersion; // oo[W + property System::String ^hSDK; // SDKo[W + property System::Boolean IsReleaseForeign; // COł̗\ + property System::String ^hProductNameForeign; + property System::String ^hProductCode1Foreign; + property System::String ^hProductCode2Foreign; + + // Џ + + // S(1l) + property System::String ^hCompany1; // Ж + property System::String ^hPerson1; // O + property System::String ^hFurigana1; // ӂ肪 + property System::String ^hTel1; // dbԍ + property System::String ^hFax1; // FAXԍ + property System::String ^hMail1; // Ah + property System::String ^hNTSC1; // NTSC User ID + // S(2l) + property System::String ^hCompany2; + property System::String ^hPerson2; + property System::String ^hFurigana2; + property System::String ^hTel2; + property System::String ^hFax2; + property System::String ^hMail2; + property System::String ^hNTSC2; + + // l + property System::String ^hCaption; + + // ROMwb_sLڂROMoCi(SRL)ŗL + property System::String ^hBackupMemory; // obNAbv̎ + + // DSi Ware̔̔JeS + property System::String ^hDLCategory; + + // SRL̈ꕔ𕶎ŎĂ + property System::String ^hRegion; + property System::String ^hCERO; + property System::String ^hESRB; + property System::String ^hUSK; + property System::String ^hPEGI; + property System::String ^hPEGI_PRT; + property System::String ^hPEGI_BBFC; + property System::String ^hOFLC; + property System::String ^hGRB; + property System::String ^hAppTypeOther; // L + + // SRLɂ͓o^ȂROMdl + property System::Boolean IsUGC; + property System::Boolean IsPhotoEx; + + // PrivateZ[uf[^̗pr + property System::String ^hPrivateSaveDataPurpose; + + // vÕo[W + property System::String ^hMasterEditorVersion; + + // constructor and destructor + public: + + // method + public: + + // + // omFo + // + // @arg [out] o̓t@C + // @arg [in] omF̃ev[g + // @arg [in] ROMoCi(SRL)ŗL + // @arg [in] t@CŜCRC + // @arg [in] SRL̃t@C(ނɋLq邽߂Ɏgp) + // @arg [in] ptO + // + ECDeliverableResult writeSpreadsheet( + System::String ^hFilename, System::String ^hSheetTemplateFilename, + RCSrl ^hSrl, System::UInt16 CRC, System::String ^hSrlFilename, System::Boolean english ); + + }; // end of ref class RCDeliverable + +} // end of namespace MasterEditorTWL diff --git a/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/MasterEditorTWL/keys.cpp b/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/MasterEditorTWL/keys.cpp new file mode 100644 index 0000000..4e60b25 --- /dev/null +++ b/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/MasterEditorTWL/keys.cpp @@ -0,0 +1,251 @@ +// p̌f[^ from makerom.TWL + +#include "stdafx.h" +#include +#include +#include "common.h" +#include "keys.h" + +namespace MasterEditorTWL +{ + +#ifdef METWL_VER_APPTYPE_USER + // J@pROMwb_J + const u8 g_devPubKey_DER[ 0xa2 ] = { + 0x30, 0x81, 0x9F, 0x30, 0x0D, 0x06, 0x09, 0x2A, 0x86, 0x48, 0x86, 0xF7, 0x0D, 0x01, 0x01, 0x01, + 0x05, 0x00, 0x03, 0x81, 0x8D, 0x00, 0x30, 0x81, 0x89, 0x02, 0x81, 0x81, 0x00, 0xAC, 0x93, 0xBB, + 0x3C, 0x15, 0x5C, 0x5F, 0x25, 0xB0, 0x4C, 0x37, 0xA4, 0x2D, 0x85, 0x29, 0x1D, 0x7A, 0x9D, 0x2D, + 0xD5, 0x79, 0xB5, 0x5D, 0xB1, 0x08, 0x20, 0x9C, 0xF0, 0x4C, 0x56, 0x27, 0x97, 0xF8, 0x7E, 0x3E, + 0xCB, 0x94, 0x06, 0x05, 0x94, 0x00, 0x92, 0x9B, 0xB0, 0x5B, 0x06, 0xF6, 0xAF, 0xAA, 0x9C, 0xA5, + 0xF0, 0x11, 0xA7, 0x8A, 0xCB, 0x0C, 0x11, 0xD6, 0x0C, 0x3D, 0x30, 0xAC, 0x51, 0x79, 0x5A, 0xB5, + 0x7F, 0x11, 0x92, 0x74, 0x48, 0x82, 0x81, 0xBF, 0x3B, 0xFA, 0x93, 0xBF, 0x6B, 0x5B, 0x3F, 0x86, + 0x96, 0x4F, 0xCC, 0x90, 0x12, 0xB2, 0x39, 0x8D, 0x68, 0x16, 0x7B, 0xC6, 0x87, 0xF1, 0xF5, 0x60, + 0x62, 0x39, 0xFB, 0x10, 0x7E, 0x48, 0x7F, 0xDD, 0x82, 0x38, 0x38, 0x76, 0xB5, 0xCE, 0x21, 0x4B, + 0xC9, 0x6F, 0x31, 0x8D, 0x23, 0x57, 0x3D, 0xB6, 0x6C, 0xEE, 0xC2, 0x0D, 0x11, 0x02, 0x03, 0x01, + 0x00, 0x01, + }; + // J@pAvROMwb_閧 + const u8 g_devPrivKey_DER[ 0x263 ] = { + 0x30, 0x82, 0x02, 0x5F, 0x02, 0x01, 0x00, 0x02, 0x81, 0x81, 0x00, 0xAC, 0x93, 0xBB, 0x3C, 0x15, + 0x5C, 0x5F, 0x25, 0xB0, 0x4C, 0x37, 0xA4, 0x2D, 0x85, 0x29, 0x1D, 0x7A, 0x9D, 0x2D, 0xD5, 0x79, + 0xB5, 0x5D, 0xB1, 0x08, 0x20, 0x9C, 0xF0, 0x4C, 0x56, 0x27, 0x97, 0xF8, 0x7E, 0x3E, 0xCB, 0x94, + 0x06, 0x05, 0x94, 0x00, 0x92, 0x9B, 0xB0, 0x5B, 0x06, 0xF6, 0xAF, 0xAA, 0x9C, 0xA5, 0xF0, 0x11, + 0xA7, 0x8A, 0xCB, 0x0C, 0x11, 0xD6, 0x0C, 0x3D, 0x30, 0xAC, 0x51, 0x79, 0x5A, 0xB5, 0x7F, 0x11, + 0x92, 0x74, 0x48, 0x82, 0x81, 0xBF, 0x3B, 0xFA, 0x93, 0xBF, 0x6B, 0x5B, 0x3F, 0x86, 0x96, 0x4F, + 0xCC, 0x90, 0x12, 0xB2, 0x39, 0x8D, 0x68, 0x16, 0x7B, 0xC6, 0x87, 0xF1, 0xF5, 0x60, 0x62, 0x39, + 0xFB, 0x10, 0x7E, 0x48, 0x7F, 0xDD, 0x82, 0x38, 0x38, 0x76, 0xB5, 0xCE, 0x21, 0x4B, 0xC9, 0x6F, + 0x31, 0x8D, 0x23, 0x57, 0x3D, 0xB6, 0x6C, 0xEE, 0xC2, 0x0D, 0x11, 0x02, 0x03, 0x01, 0x00, 0x01, + 0x02, 0x81, 0x81, 0x00, 0x95, 0xDC, 0xC8, 0x18, 0x19, 0xF8, 0x98, 0x0B, 0x73, 0x78, 0x0C, 0x4D, + 0x7E, 0xD6, 0x06, 0xE9, 0x39, 0x83, 0xEA, 0xBC, 0x59, 0xAF, 0x7C, 0x87, 0xF2, 0x25, 0xD8, 0x02, + 0xF8, 0x57, 0x4C, 0x94, 0xB4, 0xCE, 0x74, 0x9B, 0x76, 0x94, 0x70, 0x1D, 0xA1, 0x0D, 0xAF, 0x33, + 0x4B, 0x28, 0xD5, 0xE9, 0xA0, 0x3F, 0xDD, 0xFD, 0x86, 0x67, 0x36, 0xA8, 0xB2, 0x77, 0x7E, 0xA8, + 0x2C, 0x2E, 0xEB, 0x43, 0x7B, 0xE4, 0xA3, 0x66, 0x7C, 0x3A, 0x00, 0x90, 0xC5, 0xF5, 0xF8, 0x59, + 0xF9, 0x95, 0x88, 0x2A, 0xA8, 0xF4, 0x94, 0x41, 0x05, 0x02, 0xA0, 0x47, 0xC0, 0xC1, 0xB9, 0x80, + 0x1F, 0x49, 0xBB, 0x09, 0xBF, 0x42, 0xBA, 0xE6, 0xEE, 0x8D, 0x21, 0x1D, 0xFB, 0x8F, 0xC7, 0xB7, + 0x71, 0x00, 0xFB, 0x35, 0x13, 0xD8, 0xBC, 0xA3, 0x3F, 0x3A, 0xCF, 0x96, 0xB0, 0x0B, 0x8A, 0x61, + 0x9C, 0x70, 0xF8, 0x91, 0x02, 0x41, 0x00, 0xD8, 0xAA, 0x14, 0x21, 0x49, 0x7A, 0x2C, 0xC3, 0xAA, + 0xDA, 0xFB, 0x17, 0xB0, 0xD7, 0xF5, 0x5A, 0x77, 0xEE, 0xF0, 0xA9, 0x09, 0x18, 0x85, 0x21, 0xD4, + 0x12, 0x4F, 0x85, 0x35, 0x05, 0x20, 0x36, 0x22, 0x65, 0x2C, 0xDD, 0xFA, 0xF5, 0x8E, 0xA5, 0x2E, + 0xC4, 0xFD, 0xD1, 0xFA, 0xC6, 0x8A, 0x0F, 0x98, 0x69, 0xD9, 0x82, 0x50, 0xDF, 0xFA, 0x80, 0xC3, + 0xFE, 0x5E, 0x15, 0x59, 0xA8, 0xD4, 0x05, 0x02, 0x41, 0x00, 0xCB, 0xE8, 0x9A, 0xF2, 0x5F, 0xC1, + 0x75, 0xA5, 0x1E, 0x95, 0xE4, 0x4F, 0x1A, 0x48, 0xA1, 0x75, 0x9A, 0x6E, 0xDB, 0xA2, 0x31, 0xD6, + 0x66, 0x29, 0xEA, 0x19, 0x37, 0x0C, 0xB2, 0x89, 0xD3, 0x03, 0x15, 0xE6, 0x7A, 0x1A, 0xCB, 0xCE, + 0xB9, 0x79, 0x11, 0x9B, 0x71, 0x78, 0xA5, 0xBB, 0x07, 0x6F, 0xA3, 0x05, 0x3B, 0x84, 0x23, 0x47, + 0xAB, 0x20, 0x34, 0x39, 0xB0, 0x59, 0x87, 0xEC, 0xCE, 0x9D, 0x02, 0x41, 0x00, 0xB8, 0xE0, 0x98, + 0x00, 0xB7, 0x64, 0x0B, 0x22, 0x83, 0x7E, 0x0B, 0xD7, 0xF1, 0x4C, 0xB5, 0xCD, 0x96, 0x9D, 0x4A, + 0xB9, 0xD2, 0x4B, 0x1B, 0xFE, 0xFB, 0xA9, 0x0C, 0x35, 0xCC, 0x42, 0x2D, 0x74, 0x43, 0xF1, 0x35, + 0x51, 0xCD, 0x3D, 0x0F, 0x95, 0x1F, 0xCD, 0x74, 0x10, 0x62, 0xFE, 0x5A, 0xFC, 0x67, 0xBF, 0x9A, + 0x9C, 0x3A, 0x4A, 0x84, 0xC4, 0xAF, 0x79, 0x33, 0xEA, 0xDF, 0xF0, 0xD1, 0xC9, 0x02, 0x41, 0x00, + 0xAA, 0x5B, 0x16, 0x00, 0xC2, 0xB1, 0x5D, 0x39, 0x6B, 0x59, 0x2D, 0x5A, 0x4D, 0x0A, 0x3B, 0x22, + 0x86, 0xB8, 0x71, 0x74, 0x8B, 0x90, 0xA4, 0xE0, 0x05, 0xBD, 0xB5, 0x39, 0x3D, 0x7C, 0x5A, 0x37, + 0xAC, 0xB7, 0x56, 0x72, 0x46, 0xAD, 0xDA, 0x54, 0xE4, 0xB9, 0xEA, 0x4E, 0x32, 0xA0, 0x13, 0xF1, + 0x57, 0xD0, 0x4A, 0x4D, 0xF6, 0x2F, 0xAD, 0x2F, 0x85, 0x92, 0x60, 0xDC, 0x1B, 0xEC, 0x63, 0x1D, + 0x02, 0x41, 0x00, 0xAC, 0x40, 0x43, 0xF2, 0x74, 0x2C, 0x56, 0xF4, 0xB9, 0x52, 0xB0, 0xCC, 0x89, + 0xC7, 0x70, 0x33, 0xA9, 0xC0, 0xD3, 0x4E, 0x35, 0xFC, 0x49, 0x69, 0xCB, 0x22, 0x9C, 0x0D, 0xD0, + 0xE1, 0x8F, 0xCC, 0xF4, 0xAD, 0x25, 0xC2, 0xE1, 0x84, 0xD6, 0x34, 0x35, 0x89, 0xFA, 0xC4, 0xBA, + 0x43, 0x34, 0xF4, 0xD2, 0xB2, 0x36, 0x56, 0xB9, 0x96, 0x78, 0x4D, 0x7A, 0xE3, 0x4D, 0xA9, 0x5E, + 0xF5, 0x3E, 0x88, + }; +#endif //#ifdef METWL_VER_APPTYPE_USER + +#ifdef METWL_VER_APPTYPE_SYSTEM + // JpVXeAv ROMwb_pJ + const u8 g_devPubKey_DER_system[ 0xa2 ] = { + 0x30, 0x81, 0x9F, 0x30, 0x0D, 0x06, 0x09, 0x2A, 0x86, 0x48, 0x86, 0xF7, 0x0D, 0x01, 0x01, 0x01, + 0x05, 0x00, 0x03, 0x81, 0x8D, 0x00, 0x30, 0x81, 0x89, 0x02, 0x81, 0x81, 0x00, 0xE9, 0x9E, 0xA7, + 0x9F, 0x59, 0x4D, 0xF4, 0xA7, 0x60, 0x04, 0xBD, 0x47, 0xF2, 0xB3, 0x64, 0xCD, 0x16, 0x79, 0xC1, + 0x47, 0x39, 0xF6, 0xA9, 0xF8, 0xEE, 0x1A, 0xD0, 0x72, 0xCF, 0x43, 0x97, 0x0C, 0x93, 0xA1, 0x38, + 0x4E, 0x13, 0x40, 0x6C, 0x10, 0x59, 0x43, 0xE2, 0x71, 0x29, 0x54, 0x14, 0x2C, 0xC5, 0xDA, 0x59, + 0x4D, 0xB4, 0x6A, 0xEF, 0x85, 0x61, 0x6F, 0x7F, 0x1C, 0x59, 0x34, 0x2C, 0xC6, 0x24, 0xF3, 0x7B, + 0xC3, 0xB7, 0x40, 0xD1, 0x46, 0xF8, 0x90, 0xB7, 0xC2, 0x98, 0x50, 0xAF, 0x95, 0x52, 0x42, 0xDB, + 0xAC, 0xD6, 0x7E, 0xA9, 0xC3, 0x3D, 0x1B, 0x51, 0x56, 0x07, 0x06, 0xD0, 0x0B, 0x01, 0xBB, 0x58, + 0x93, 0xEA, 0xA0, 0x2C, 0xC7, 0x7D, 0x6A, 0x31, 0x7E, 0xC9, 0xE2, 0xDA, 0xFE, 0x1F, 0x2E, 0x9D, + 0xA7, 0x54, 0x84, 0xDC, 0x28, 0xB9, 0x18, 0xEA, 0x16, 0xF2, 0x95, 0x55, 0x6D, 0x02, 0x03, 0x01, + 0x00, 0x01, + }; + + // JpVXeAv ROMwb_p閧 + const u8 g_devPrivKey_DER_system[ 0x263 ] = { + 0x30, 0x82, 0x02, 0x5E, 0x02, 0x01, 0x00, 0x02, 0x81, 0x81, 0x00, 0xE9, 0x9E, 0xA7, 0x9F, 0x59, + 0x4D, 0xF4, 0xA7, 0x60, 0x04, 0xBD, 0x47, 0xF2, 0xB3, 0x64, 0xCD, 0x16, 0x79, 0xC1, 0x47, 0x39, + 0xF6, 0xA9, 0xF8, 0xEE, 0x1A, 0xD0, 0x72, 0xCF, 0x43, 0x97, 0x0C, 0x93, 0xA1, 0x38, 0x4E, 0x13, + 0x40, 0x6C, 0x10, 0x59, 0x43, 0xE2, 0x71, 0x29, 0x54, 0x14, 0x2C, 0xC5, 0xDA, 0x59, 0x4D, 0xB4, + 0x6A, 0xEF, 0x85, 0x61, 0x6F, 0x7F, 0x1C, 0x59, 0x34, 0x2C, 0xC6, 0x24, 0xF3, 0x7B, 0xC3, 0xB7, + 0x40, 0xD1, 0x46, 0xF8, 0x90, 0xB7, 0xC2, 0x98, 0x50, 0xAF, 0x95, 0x52, 0x42, 0xDB, 0xAC, 0xD6, + 0x7E, 0xA9, 0xC3, 0x3D, 0x1B, 0x51, 0x56, 0x07, 0x06, 0xD0, 0x0B, 0x01, 0xBB, 0x58, 0x93, 0xEA, + 0xA0, 0x2C, 0xC7, 0x7D, 0x6A, 0x31, 0x7E, 0xC9, 0xE2, 0xDA, 0xFE, 0x1F, 0x2E, 0x9D, 0xA7, 0x54, + 0x84, 0xDC, 0x28, 0xB9, 0x18, 0xEA, 0x16, 0xF2, 0x95, 0x55, 0x6D, 0x02, 0x03, 0x01, 0x00, 0x01, + 0x02, 0x81, 0x81, 0x00, 0xCF, 0x67, 0xAA, 0x3B, 0x1F, 0x26, 0xC5, 0x68, 0x7F, 0x27, 0x55, 0xFF, + 0xF5, 0x29, 0x6C, 0xF9, 0x62, 0xD5, 0xCF, 0x50, 0xF3, 0xD5, 0xD8, 0x4B, 0x06, 0xE0, 0xC9, 0x64, + 0xD4, 0x3B, 0x96, 0x73, 0x74, 0xF1, 0x71, 0xB2, 0x67, 0x07, 0x0F, 0xA9, 0x68, 0x06, 0x8B, 0x97, + 0x99, 0x70, 0x6A, 0xC4, 0xE1, 0x16, 0x9B, 0xA8, 0x0F, 0xDF, 0xCC, 0x2B, 0xE7, 0x37, 0xFC, 0x6A, + 0x67, 0x8B, 0x99, 0x9E, 0xD1, 0xDA, 0xCC, 0x68, 0xFC, 0xEB, 0x8D, 0xFE, 0x42, 0x84, 0x72, 0x88, + 0x05, 0xAF, 0x23, 0x32, 0x30, 0x1F, 0xFA, 0xCC, 0x67, 0x52, 0x93, 0x6C, 0xC1, 0x0A, 0xCF, 0xD6, + 0xD3, 0x5F, 0x75, 0xE9, 0x4D, 0x32, 0xC0, 0x31, 0x1B, 0xD4, 0xB5, 0x4B, 0xB4, 0x4E, 0xB0, 0x3E, + 0xD5, 0x6C, 0x3C, 0xDC, 0x57, 0xBB, 0x32, 0x24, 0x41, 0x9C, 0x79, 0xBE, 0xFC, 0xC0, 0x3B, 0x63, + 0x0C, 0x5D, 0xC6, 0xE5, 0x02, 0x41, 0x00, 0xF6, 0x77, 0x12, 0x72, 0x63, 0xD0, 0x9B, 0x22, 0xC6, + 0x4F, 0x19, 0x1E, 0x2A, 0xE1, 0x97, 0xCF, 0x28, 0xD3, 0xC3, 0x5E, 0xFB, 0x22, 0x57, 0xE5, 0x4F, + 0x90, 0x83, 0x53, 0xB0, 0x80, 0xD3, 0x2D, 0xFB, 0x77, 0x55, 0x52, 0x5E, 0x00, 0xD8, 0x72, 0x39, + 0x93, 0xF0, 0x89, 0x83, 0x97, 0xFB, 0x78, 0xD2, 0xB0, 0xCD, 0xED, 0x1C, 0x9B, 0x8F, 0x5D, 0xBD, + 0x00, 0x26, 0x37, 0xA1, 0xE5, 0x38, 0xE7, 0x02, 0x41, 0x00, 0xF2, 0xA8, 0x5D, 0x86, 0xE0, 0x33, + 0xC8, 0x93, 0x5C, 0xB9, 0xBD, 0xCF, 0x27, 0x70, 0x81, 0x79, 0xE1, 0x12, 0x82, 0x09, 0x64, 0xCB, + 0xDB, 0xCF, 0xBB, 0x52, 0xD3, 0x3F, 0x22, 0x90, 0x47, 0x23, 0xAA, 0x20, 0x7D, 0x92, 0xFD, 0xD6, + 0x58, 0x68, 0xF3, 0xB1, 0xFA, 0x7B, 0x81, 0x0D, 0x8F, 0x22, 0xDC, 0x84, 0x08, 0x91, 0x60, 0x07, + 0xE8, 0x98, 0x9A, 0x84, 0xDA, 0x4C, 0x24, 0xC7, 0x10, 0x8B, 0x02, 0x41, 0x00, 0xB3, 0xB0, 0xAA, + 0x75, 0x55, 0xCA, 0x90, 0x60, 0xB1, 0x1E, 0x98, 0x1C, 0x83, 0x7D, 0x08, 0x36, 0x53, 0xF8, 0xD8, + 0x77, 0x16, 0x37, 0xBA, 0xC7, 0x87, 0xD3, 0xBF, 0xBB, 0xB3, 0x72, 0xA9, 0x04, 0xDC, 0x52, 0xEB, + 0x94, 0xEA, 0xCE, 0x49, 0x00, 0x36, 0x74, 0x62, 0xA9, 0x8F, 0x94, 0xAE, 0x16, 0x2F, 0xDE, 0x11, + 0xB4, 0xEE, 0xE7, 0x87, 0x85, 0xFB, 0x36, 0xF1, 0xA6, 0x1B, 0xD5, 0xC8, 0x3F, 0x02, 0x40, 0x73, + 0x18, 0x72, 0xCC, 0x1F, 0x99, 0xD0, 0x40, 0x3D, 0x52, 0x08, 0x7A, 0xB2, 0x5D, 0x45, 0xBC, 0x76, + 0x8A, 0x1D, 0xCD, 0xB0, 0xD6, 0x94, 0xDB, 0x32, 0x21, 0xB5, 0xFB, 0x13, 0x3C, 0xD5, 0xD1, 0x4F, + 0xC7, 0x7B, 0x68, 0x76, 0x27, 0xED, 0xE5, 0x51, 0xF9, 0x90, 0x32, 0x76, 0x62, 0xE5, 0x0A, 0x87, + 0x07, 0xC5, 0x3C, 0x97, 0x0D, 0x09, 0x41, 0x20, 0xC1, 0x74, 0xFD, 0x7A, 0xD0, 0x44, 0xC3, 0x02, + 0x41, 0x00, 0xAF, 0xA3, 0x2C, 0x53, 0x8E, 0x8E, 0xA8, 0xE7, 0x36, 0xC0, 0x5C, 0x9E, 0x95, 0xEE, + 0xC1, 0x97, 0x02, 0x63, 0x7F, 0x3B, 0x4E, 0xB2, 0x0F, 0xF2, 0x7A, 0xBD, 0x57, 0x9C, 0x8B, 0x85, + 0xA8, 0x5D, 0x14, 0x3B, 0x7B, 0xF0, 0xBE, 0xFE, 0x0F, 0x8E, 0x4F, 0xD5, 0xB8, 0x49, 0xE8, 0x90, + 0xF5, 0x12, 0xBF, 0xB2, 0xD6, 0xE2, 0x78, 0x20, 0x26, 0x6C, 0x3F, 0x5C, 0xE4, 0x57, 0x6D, 0xE9, + 0xB4, 0x63, + }; +#endif // #ifdef METWL_VER_APPTYPE_SYSTEM + +#ifdef METWL_VER_APPTYPE_SECURE + // JpVbvAv ROMwb_pJ + const u8 g_devPubKey_DER_secure[ 0xa2 ] = { + 0x30, 0x81, 0x9F, 0x30, 0x0D, 0x06, 0x09, 0x2A, 0x86, 0x48, 0x86, 0xF7, 0x0D, 0x01, 0x01, 0x01, + 0x05, 0x00, 0x03, 0x81, 0x8D, 0x00, 0x30, 0x81, 0x89, 0x02, 0x81, 0x81, 0x00, 0xA7, 0x9F, 0x54, + 0xA0, 0xC7, 0x45, 0xAE, 0xF6, 0x63, 0xA7, 0x53, 0xB7, 0x0A, 0xCC, 0x0B, 0xCB, 0x65, 0xE1, 0x11, + 0xC6, 0x05, 0x15, 0xB5, 0x6E, 0xBD, 0xAC, 0x0C, 0xCA, 0xF4, 0x7C, 0x68, 0x7A, 0xF9, 0x0E, 0x5D, + 0x98, 0x5B, 0xC8, 0x4D, 0x22, 0x3B, 0xA3, 0xBE, 0x8B, 0x5B, 0x7F, 0x26, 0x44, 0x9F, 0xC4, 0x48, + 0x44, 0xB1, 0x32, 0xB7, 0xBE, 0x63, 0xBA, 0xD6, 0xC1, 0x10, 0xCE, 0xF6, 0xED, 0x47, 0x8F, 0xE1, + 0xFF, 0x7F, 0x5A, 0xD5, 0x5D, 0x94, 0x38, 0x2F, 0xA1, 0xD4, 0xEF, 0x82, 0xB1, 0x0D, 0xC4, 0x43, + 0xEC, 0xBE, 0x77, 0xB6, 0x82, 0x9C, 0xFA, 0x17, 0x87, 0x84, 0x82, 0x25, 0x46, 0xFB, 0xD6, 0x05, + 0xC8, 0x9A, 0x7E, 0xAD, 0x44, 0x40, 0x0D, 0x35, 0x9C, 0x45, 0x44, 0x64, 0x36, 0x61, 0x4B, 0xF7, + 0xE6, 0x31, 0x5C, 0x7D, 0x96, 0x73, 0xE8, 0xAC, 0xB4, 0xE3, 0x5E, 0xD1, 0x9D, 0x02, 0x03, 0x01, + 0x00, 0x01, + }; + + // JpVbvAv ROMwb_p閧 + const u8 g_devPrivKey_DER_secure[ 0x263 ] = { + 0x30, 0x82, 0x02, 0x5D, 0x02, 0x01, 0x00, 0x02, 0x81, 0x81, 0x00, 0xA7, 0x9F, 0x54, 0xA0, 0xC7, + 0x45, 0xAE, 0xF6, 0x63, 0xA7, 0x53, 0xB7, 0x0A, 0xCC, 0x0B, 0xCB, 0x65, 0xE1, 0x11, 0xC6, 0x05, + 0x15, 0xB5, 0x6E, 0xBD, 0xAC, 0x0C, 0xCA, 0xF4, 0x7C, 0x68, 0x7A, 0xF9, 0x0E, 0x5D, 0x98, 0x5B, + 0xC8, 0x4D, 0x22, 0x3B, 0xA3, 0xBE, 0x8B, 0x5B, 0x7F, 0x26, 0x44, 0x9F, 0xC4, 0x48, 0x44, 0xB1, + 0x32, 0xB7, 0xBE, 0x63, 0xBA, 0xD6, 0xC1, 0x10, 0xCE, 0xF6, 0xED, 0x47, 0x8F, 0xE1, 0xFF, 0x7F, + 0x5A, 0xD5, 0x5D, 0x94, 0x38, 0x2F, 0xA1, 0xD4, 0xEF, 0x82, 0xB1, 0x0D, 0xC4, 0x43, 0xEC, 0xBE, + 0x77, 0xB6, 0x82, 0x9C, 0xFA, 0x17, 0x87, 0x84, 0x82, 0x25, 0x46, 0xFB, 0xD6, 0x05, 0xC8, 0x9A, + 0x7E, 0xAD, 0x44, 0x40, 0x0D, 0x35, 0x9C, 0x45, 0x44, 0x64, 0x36, 0x61, 0x4B, 0xF7, 0xE6, 0x31, + 0x5C, 0x7D, 0x96, 0x73, 0xE8, 0xAC, 0xB4, 0xE3, 0x5E, 0xD1, 0x9D, 0x02, 0x03, 0x01, 0x00, 0x01, + 0x02, 0x81, 0x80, 0x48, 0xCA, 0x9C, 0x49, 0xA5, 0xBF, 0xD1, 0x17, 0x16, 0x77, 0x97, 0x97, 0x29, + 0x8D, 0x2A, 0xA2, 0x0D, 0x80, 0x0B, 0xE3, 0xDE, 0x59, 0x6B, 0x0C, 0xC8, 0x39, 0x6A, 0xE4, 0xC7, + 0xFF, 0x2E, 0xB0, 0x18, 0x6F, 0xF0, 0x9D, 0x35, 0x5E, 0x6A, 0x80, 0xAF, 0x3D, 0x90, 0x85, 0x9C, + 0x1A, 0x3F, 0x58, 0x15, 0xB9, 0x7B, 0x58, 0xB9, 0x4A, 0xB9, 0x18, 0x68, 0xDE, 0xBE, 0x5B, 0xE1, + 0x1C, 0xBF, 0x85, 0xDF, 0x5F, 0x30, 0xFD, 0xD2, 0xEC, 0xC0, 0x77, 0x33, 0x62, 0x58, 0xEC, 0xC1, + 0x47, 0xF7, 0x41, 0xE8, 0x2B, 0x21, 0x83, 0xE0, 0x8E, 0xE0, 0xF4, 0x03, 0x5D, 0x07, 0x84, 0x91, + 0xFA, 0x5B, 0xD8, 0xD3, 0x47, 0x90, 0x6E, 0x7D, 0x81, 0x9C, 0x1A, 0xB3, 0x03, 0x2F, 0xBC, 0x1A, + 0x28, 0x01, 0xBB, 0x78, 0x33, 0x60, 0xD2, 0x32, 0x34, 0x09, 0xEE, 0x08, 0x35, 0x50, 0x7A, 0x02, + 0x77, 0xB9, 0x01, 0x02, 0x41, 0x00, 0xCF, 0x39, 0xB3, 0x95, 0xDB, 0x1A, 0x2C, 0xD5, 0x6B, 0x0E, + 0xD8, 0x7B, 0xEC, 0x36, 0x14, 0xC5, 0x6C, 0x6C, 0x03, 0x34, 0xCB, 0x8A, 0x03, 0xF0, 0x94, 0x9C, + 0x2E, 0xBB, 0xA4, 0x24, 0x85, 0x6F, 0x3C, 0x8B, 0xAD, 0x44, 0x88, 0xA1, 0xDC, 0x88, 0xFE, 0xE7, + 0x02, 0x24, 0xB3, 0x73, 0xEA, 0xD1, 0xF6, 0x61, 0x6A, 0x73, 0x00, 0x86, 0x0B, 0x67, 0xAB, 0x00, + 0xFB, 0xF7, 0xFD, 0x0D, 0x92, 0x91, 0x02, 0x41, 0x00, 0xCF, 0x13, 0x5C, 0xD1, 0x72, 0x12, 0xA5, + 0x1D, 0x3A, 0x86, 0xAB, 0xAC, 0x87, 0x11, 0x37, 0x6D, 0xEB, 0x90, 0x14, 0x41, 0x7B, 0xAA, 0x38, + 0x88, 0xFF, 0xAF, 0xAA, 0xAE, 0x12, 0x3E, 0x7C, 0x28, 0x59, 0xDB, 0xBE, 0xAE, 0x79, 0x20, 0x0C, + 0x4F, 0xE5, 0xAB, 0x97, 0x64, 0x0D, 0x1E, 0x31, 0x54, 0x10, 0xB0, 0x1C, 0x7E, 0x5A, 0x7B, 0x98, + 0x32, 0x00, 0xF7, 0xE0, 0x18, 0x15, 0x53, 0xFC, 0x4D, 0x02, 0x41, 0x00, 0x90, 0x5F, 0x38, 0x01, + 0xD0, 0x9B, 0x44, 0xDF, 0x0F, 0x6E, 0x51, 0x5E, 0xCC, 0xEB, 0xC4, 0xBE, 0xE2, 0xD1, 0xC1, 0xCE, + 0x17, 0x7C, 0x39, 0x50, 0x74, 0x88, 0xF7, 0x7A, 0x1D, 0x5A, 0xA0, 0x68, 0x26, 0x3B, 0x7D, 0xE4, + 0xC0, 0x78, 0x5C, 0x68, 0x49, 0x86, 0xF2, 0x14, 0x55, 0xBE, 0x0D, 0xBC, 0x68, 0x35, 0xE8, 0x6E, + 0xE4, 0xCF, 0x7E, 0xC4, 0xA3, 0xFB, 0xD4, 0x90, 0x2A, 0x8A, 0x39, 0x31, 0x02, 0x41, 0x00, 0x93, + 0x88, 0xE3, 0x17, 0xA2, 0xA3, 0xA0, 0x1A, 0x4C, 0x09, 0x89, 0x24, 0xD9, 0xF2, 0xAD, 0x40, 0x56, + 0x96, 0x07, 0xA8, 0x84, 0x18, 0x4A, 0x41, 0x69, 0x92, 0x5A, 0x13, 0xBD, 0x91, 0xE1, 0x59, 0xCA, + 0x73, 0xE2, 0xCE, 0x62, 0x24, 0x30, 0x41, 0x78, 0x8C, 0x21, 0xC7, 0xBA, 0x04, 0xE9, 0xF6, 0x50, + 0x11, 0x79, 0xAB, 0x98, 0x81, 0xF8, 0x74, 0x9F, 0xF5, 0xFB, 0x26, 0x8D, 0x83, 0x91, 0xFD, 0x02, + 0x40, 0x4D, 0xA4, 0x03, 0x7E, 0x00, 0xB6, 0xA2, 0xEE, 0x85, 0x19, 0x5C, 0xB3, 0xBE, 0x06, 0x48, + 0xF7, 0xA8, 0x27, 0xB3, 0xC9, 0xED, 0x60, 0xE1, 0x56, 0x0A, 0x3F, 0x8D, 0x64, 0x56, 0xBA, 0x2E, + 0xC3, 0xF6, 0x2D, 0x95, 0x38, 0x87, 0x58, 0xD6, 0x95, 0xF7, 0xA6, 0xD6, 0xEE, 0x85, 0x7D, 0xD7, + 0x93, 0x80, 0xF5, 0x1D, 0xBF, 0x5F, 0x3E, 0x3A, 0x22, 0x29, 0x18, 0xE5, 0x95, 0x73, 0x0D, 0xEA, + 0x42, + }; +#endif // #ifdef METWL_VER_APPTYPE_SECURE + +#ifdef METWL_VER_APPTYPE_LAUNCHER + // JpVXeAv ROMwb_pJ + const u8 g_devPubKey_DER_launcher[ 0xa2 ] = { + 0x30, 0x81, 0x9F, 0x30, 0x0D, 0x06, 0x09, 0x2A, 0x86, 0x48, 0x86, 0xF7, 0x0D, 0x01, 0x01, 0x01, + 0x05, 0x00, 0x03, 0x81, 0x8D, 0x00, 0x30, 0x81, 0x89, 0x02, 0x81, 0x81, 0x00, 0xBC, 0xFD, 0xA1, + 0xFF, 0x1F, 0x66, 0xDF, 0xEC, 0xB4, 0x69, 0xF8, 0xF7, 0x43, 0x0C, 0x5D, 0x0F, 0x00, 0xD7, 0x20, + 0x49, 0x42, 0x06, 0x03, 0x29, 0x85, 0x0B, 0x99, 0x59, 0x61, 0x98, 0x70, 0x6E, 0xFF, 0xF6, 0xB4, + 0x70, 0x66, 0xF0, 0xDD, 0x8F, 0xDC, 0xE9, 0xF2, 0x0D, 0xD0, 0x21, 0x1D, 0x77, 0xB8, 0x9C, 0x51, + 0x87, 0xC0, 0xB1, 0x33, 0xAB, 0x13, 0x96, 0x0B, 0x47, 0xB8, 0x42, 0x4A, 0x0D, 0xC3, 0x77, 0xE1, + 0x87, 0xB1, 0x6B, 0x24, 0x31, 0x10, 0x8A, 0x47, 0xF2, 0x32, 0xF4, 0xC9, 0x78, 0x25, 0x13, 0xD4, + 0x80, 0x10, 0x05, 0x52, 0xC3, 0xE7, 0x50, 0x7B, 0x29, 0x49, 0xCE, 0x93, 0xD9, 0x8F, 0x2A, 0xB5, + 0x4D, 0xD1, 0xC1, 0x91, 0xD8, 0x07, 0x16, 0x10, 0x15, 0xFF, 0xD6, 0x84, 0x8F, 0x54, 0x3D, 0x91, + 0x5B, 0x37, 0x45, 0x48, 0xE4, 0x6B, 0x62, 0xD2, 0x11, 0x9B, 0x0D, 0x71, 0x69, 0x02, 0x03, 0x01, + 0x00, 0x01, + }; + + // JpVXeAv ROMwb_p閧 + const u8 g_devPrivKey_DER_launcher[ 0x263 ] = { + 0x30, 0x82, 0x02, 0x5D, 0x02, 0x01, 0x00, 0x02, 0x81, 0x81, 0x00, 0xBC, 0xFD, 0xA1, 0xFF, 0x1F, + 0x66, 0xDF, 0xEC, 0xB4, 0x69, 0xF8, 0xF7, 0x43, 0x0C, 0x5D, 0x0F, 0x00, 0xD7, 0x20, 0x49, 0x42, + 0x06, 0x03, 0x29, 0x85, 0x0B, 0x99, 0x59, 0x61, 0x98, 0x70, 0x6E, 0xFF, 0xF6, 0xB4, 0x70, 0x66, + 0xF0, 0xDD, 0x8F, 0xDC, 0xE9, 0xF2, 0x0D, 0xD0, 0x21, 0x1D, 0x77, 0xB8, 0x9C, 0x51, 0x87, 0xC0, + 0xB1, 0x33, 0xAB, 0x13, 0x96, 0x0B, 0x47, 0xB8, 0x42, 0x4A, 0x0D, 0xC3, 0x77, 0xE1, 0x87, 0xB1, + 0x6B, 0x24, 0x31, 0x10, 0x8A, 0x47, 0xF2, 0x32, 0xF4, 0xC9, 0x78, 0x25, 0x13, 0xD4, 0x80, 0x10, + 0x05, 0x52, 0xC3, 0xE7, 0x50, 0x7B, 0x29, 0x49, 0xCE, 0x93, 0xD9, 0x8F, 0x2A, 0xB5, 0x4D, 0xD1, + 0xC1, 0x91, 0xD8, 0x07, 0x16, 0x10, 0x15, 0xFF, 0xD6, 0x84, 0x8F, 0x54, 0x3D, 0x91, 0x5B, 0x37, + 0x45, 0x48, 0xE4, 0x6B, 0x62, 0xD2, 0x11, 0x9B, 0x0D, 0x71, 0x69, 0x02, 0x03, 0x01, 0x00, 0x01, + 0x02, 0x81, 0x80, 0x16, 0x65, 0xDC, 0xC8, 0x16, 0x99, 0xA3, 0x9A, 0x32, 0xFB, 0x88, 0x35, 0x0D, + 0xAE, 0x2E, 0x6D, 0x33, 0xC5, 0x4B, 0x1F, 0x43, 0x82, 0xE0, 0xE7, 0x0F, 0xCC, 0x83, 0x1D, 0x13, + 0xB2, 0xF4, 0x48, 0x43, 0x6F, 0xA2, 0x8C, 0xDB, 0xB6, 0x5A, 0x1B, 0xCD, 0xAB, 0xB0, 0x33, 0x30, + 0xE2, 0x6B, 0xD2, 0x9F, 0x7F, 0x6F, 0x2E, 0x2E, 0x89, 0x11, 0xBD, 0x89, 0xB1, 0xB3, 0x9E, 0x89, + 0x58, 0xD9, 0xDB, 0xB9, 0x91, 0x00, 0xDA, 0x17, 0xA9, 0x14, 0xC3, 0x83, 0xFF, 0xFF, 0x46, 0x0F, + 0x5F, 0x81, 0x1B, 0x5B, 0x02, 0xD2, 0x29, 0xEF, 0x48, 0xB7, 0xDF, 0x8C, 0x34, 0xED, 0xA2, 0xEC, + 0xC0, 0x79, 0x50, 0xC6, 0xAD, 0x0B, 0x98, 0x28, 0xC2, 0x17, 0x80, 0x96, 0x67, 0x3A, 0x22, 0xD7, + 0x60, 0x61, 0x98, 0xF6, 0xAB, 0x10, 0x1E, 0xE6, 0x23, 0x06, 0x4B, 0x61, 0xAF, 0xFE, 0xD5, 0xAF, + 0xB8, 0x3D, 0x81, 0x02, 0x41, 0x00, 0xE2, 0x82, 0xC3, 0x83, 0x2A, 0xEF, 0xA0, 0x86, 0x15, 0xFD, + 0x80, 0x23, 0x2B, 0x1C, 0x80, 0x0C, 0xF7, 0xA0, 0xA3, 0x53, 0x2B, 0xAD, 0xF9, 0xF6, 0xF7, 0xA3, + 0x7E, 0x1A, 0x5E, 0xE7, 0x18, 0x6D, 0xF3, 0xD6, 0xDE, 0x68, 0xBB, 0x4A, 0x54, 0xAF, 0xDF, 0xA5, + 0xEC, 0xA7, 0x62, 0xBB, 0xCB, 0x7A, 0xDE, 0x3F, 0xFB, 0x9A, 0x99, 0x2A, 0xF7, 0x2D, 0x23, 0x98, + 0x9A, 0x9F, 0xCE, 0xFB, 0x67, 0xB1, 0x02, 0x41, 0x00, 0xD5, 0x98, 0x63, 0x19, 0x3D, 0x80, 0xDF, + 0x71, 0x13, 0x6A, 0xF4, 0x5E, 0x62, 0x99, 0x16, 0x34, 0x18, 0xF9, 0xDC, 0x58, 0x2F, 0xC3, 0xD8, + 0x8B, 0x68, 0xC1, 0x43, 0x98, 0xF0, 0xEC, 0x39, 0xE3, 0x40, 0x6E, 0x08, 0x9F, 0xED, 0x17, 0xBE, + 0xCC, 0x87, 0x4A, 0xAD, 0x99, 0x15, 0x09, 0xD0, 0xBB, 0xDB, 0x13, 0xF0, 0x53, 0xDF, 0xCB, 0x66, + 0x1A, 0xD1, 0xF2, 0x14, 0xB7, 0x17, 0xFA, 0xCB, 0x39, 0x02, 0x41, 0x00, 0xD8, 0xA2, 0x05, 0x89, + 0x32, 0x8C, 0x41, 0xB3, 0x5B, 0xDE, 0xBA, 0x29, 0x68, 0x76, 0xF6, 0x84, 0xF0, 0x64, 0x23, 0x30, + 0x4D, 0x4B, 0x34, 0x11, 0x1E, 0x60, 0xB0, 0x1F, 0x5A, 0x7A, 0x9C, 0xE3, 0xB3, 0xDC, 0xE1, 0x93, + 0xBA, 0xE4, 0x69, 0x40, 0x57, 0x9E, 0xA2, 0x4A, 0xA8, 0x64, 0x41, 0x44, 0xBE, 0xC0, 0xE4, 0xCA, + 0xC4, 0x08, 0xD2, 0xA3, 0xCA, 0x32, 0x8E, 0x57, 0x9F, 0x26, 0xD4, 0xD1, 0x02, 0x41, 0x00, 0x9B, + 0xD5, 0x50, 0x07, 0xAC, 0x2D, 0x87, 0xD7, 0x71, 0xB9, 0x48, 0x8C, 0x4C, 0x17, 0x30, 0x71, 0xD5, + 0xFF, 0x05, 0x59, 0x79, 0x8F, 0xC3, 0x3F, 0x02, 0xB0, 0x6D, 0xE6, 0xF9, 0x6E, 0xFF, 0x54, 0xE3, + 0x3E, 0xE4, 0x1F, 0xF9, 0xD4, 0xA7, 0x29, 0x85, 0x53, 0x60, 0x90, 0x1D, 0x1F, 0x4A, 0x20, 0xA4, + 0x57, 0x49, 0xB1, 0x87, 0xC7, 0x57, 0xB9, 0x1D, 0x8F, 0x26, 0xB9, 0xE6, 0x4E, 0xDD, 0x51, 0x02, + 0x40, 0x4F, 0xE6, 0xC8, 0x11, 0x14, 0xA2, 0xF9, 0xC3, 0xD1, 0x7B, 0x74, 0x48, 0x8F, 0x33, 0xB4, + 0xF6, 0xFF, 0xEE, 0xDC, 0x4E, 0x34, 0xF9, 0x66, 0xB8, 0x25, 0x3A, 0x05, 0xF5, 0x29, 0x1B, 0x12, + 0x61, 0x6C, 0xCD, 0xF1, 0x0D, 0xE6, 0x68, 0xED, 0x81, 0x44, 0x96, 0x07, 0x5A, 0x43, 0x72, 0x93, + 0xDC, 0xEE, 0xD7, 0x81, 0x82, 0x22, 0x5E, 0x07, 0x15, 0x02, 0xA5, 0xE9, 0x54, 0x59, 0x86, 0x03, + 0x02, + }; +#endif // #ifdef METWL_VER_APPTYPE_LAUNCHER + +} // end of namespace MasterEditorTWL \ No newline at end of file diff --git a/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/MasterEditorTWL/keys.h b/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/MasterEditorTWL/keys.h new file mode 100644 index 0000000..d33aef3 --- /dev/null +++ b/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/MasterEditorTWL/keys.h @@ -0,0 +1,29 @@ +#pragma once + +// p̌f[^̐錾 + +#include +#include + +namespace MasterEditorTWL +{ + // J@pROMwb_ + +#ifdef METWL_VER_APPTYPE_USER + extern const u8 g_devPubKey_DER[ 0xa2 ]; + extern const u8 g_devPrivKey_DER[ 0x263 ]; +#endif +#ifdef METWL_VER_APPTYPE_SYSTEM + extern const u8 g_devPubKey_DER_system[ 0xa2 ]; + extern const u8 g_devPrivKey_DER_system[ 0x263 ]; +#endif +#ifdef METWL_VER_APPTYPE_SECURE + extern const u8 g_devPubKey_DER_secure[ 0xa2 ]; + extern const u8 g_devPrivKey_DER_secure[ 0x263 ]; +#endif +#ifdef METWL_VER_APPTYPE_LAUNCHER + extern const u8 g_devPubKey_DER_launcher[ 0xa2 ]; + extern const u8 g_devPrivKey_DER_launcher[ 0x263 ]; +#endif + +} // end of namespace MasterEditorTWL diff --git a/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/MasterEditorTWL/lang.h b/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/MasterEditorTWL/lang.h new file mode 100644 index 0000000..d55b296 --- /dev/null +++ b/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/MasterEditorTWL/lang.h @@ -0,0 +1,106 @@ +#pragma once + +// ʂ̂łЂƂ܂͂̍ڂ̂ + +#define LANG_PRODUCT_NAME_J ("i") +#define LANG_PRODUCT_LIMIT_J ("(30ȓ)") +#define LANG_PRODUCT_CODE_J ("iR[h") +#define LANG_RELEASE_DATE_J ("\") +#define LANG_SUBMIT_DATE_J ("ޒo") +#define LANG_SUBMIT_WAY_J ("o@") +#define LANG_SUBMIT_POST_J ("X") +#define LANG_SUBMIT_HAND_J ("n") +#define LANG_USAGE_J ("pr") +#define LANG_USAGE_SALE_J ("ʔ̔p") +#define LANG_USAGE_SAMPLE_J ("Vp") +#define LANG_USAGE_DST_J ("f[^zMp") +#define LANG_USAGE_OTHER_J ("̑") +#define LANG_BACKUP_J ("obNAbv") +#define LANG_SUBMIT_VER_J ("oo[W") +#define LANG_SUBMIT_VER_CAP_J ("* }X^[o[WオƍĂ0JEg") +#define LANG_F_J ("CO") +#define LANG_PRODUCT_NAME_F_J ("i") +#define LANG_PRODUCT_CODE_F_J ("iR[h") +#define LANG_RELEASE_F_J ("COł𔭔(\)") +#define LANG_MULTI_F_J ("(ꍇ̂)") +#define LANG_CAPTION_J ("l - ̑A΂L") +#define LANG_PERSON_1_J ("S1") +#define LANG_PERSON_2_J ("S2") +#define LANG_INPUT_PERSON_2_J ("S2͂") +#define LANG_COMPANY_J ("MЖ") +#define LANG_DEPART_J ("") +#define LANG_PERSON_J ("") +#define LANG_FURIGANA_J ("ӂ肪") +#define LANG_TEL_J ("Tel") +#define LANG_FAX_J ("Fax") +#define LANG_MAIL_J ("e-mail") +#define LANG_NTSC_1_J ("NTSC") +#define LANG_NTSC_2_J ("User ID") + +#define LANG_BOX_EULA_J ("EULA(pK)") +#define LANG_EULA_J ("EULAւ̓ӂKvƂ") +#define LANG_EULA_VER_J ("EULAӃo[W") +#define LANG_ICON_J ("j[ł̃ACR\") +#define LANG_WIRELESS_ICON_J ("DSCXʐMACR\") +#define LANG_WIFI_ICON_J ("Wi-FiʐMACR\") +#define LANG_NO_ICON_J ("ACR\Ȃ") +#define LANG_REGION_PCTL_J ("[Wƃ[W") +#define LANG_REGION_J ("[W") +#define LANG_PCTL_RATING_J ("[eBON") +#define LANG_PCTL_ENABLE_J ("L") +#define LANG_PCTL_ALWAYS_J ("R") +#define LANG_OTHER_SPEC_J ("̑ROMdl") +#define LANG_UGC_J ("UGC(User Generated Contents)Ή") +#define LANG_PHOTO_EX_J ("ʐ^Ή") + + +#define LANG_PRODUCT_NAME_E ("Product Name") +#define LANG_PRODUCT_LIMIT_E ("(Shorter than 30 chars)") +#define LANG_PRODUCT_CODE_E ("Product Code") +#define LANG_RELEASE_DATE_E ("Launch Date") +#define LANG_SUBMIT_DATE_E ("Submission Date") +#define LANG_SUBMIT_WAY_E ("How to submit") +#define LANG_SUBMIT_POST_E ("Mail") +#define LANG_SUBMIT_HAND_E ("Handover") +#define LANG_USAGE_E ("Purpose") +#define LANG_USAGE_SALE_E ("For Sale") +#define LANG_USAGE_SAMPLE_E ("For Trial") +#define LANG_USAGE_DST_E ("For Network Distribution") +#define LANG_USAGE_OTHER_E ("Other") +#define LANG_SUBMIT_VER_E ("Submission Ver.") +#define LANG_BACKUP_E ("Backup Memory") +#define LANG_SUBMIT_VER_CAP_E ("* return to 0 when release ver. is updated.") +#define LANG_F_E ("Foreign Ver.") +#define LANG_PRODUCT_NAME_F_E ("Product Name") +#define LANG_PRODUCT_CODE_F_E ("Product Code") +#define LANG_RELEASE_F_E ("Foreign Ver. is scheduled to go on sale") +#define LANG_MULTI_F_E ("(Only Release Multi Ver.)") +#define LANG_CAPTION_E ("Remarks Item - Please write further information.") +#define LANG_PERSON_1_E ("Account1") +#define LANG_PERSON_2_E ("Account2") +#define LANG_INPUT_PERSON_2_E ("Input Account2") +#define LANG_COMPANY_E ("Company") +#define LANG_DEPART_E ("Dept.") +#define LANG_PERSON_E ("Contact") +#define LANG_FURIGANA_E ("") +#define LANG_TEL_E ("Tel") +#define LANG_FAX_E ("Fax") +#define LANG_MAIL_E ("e-mail") +#define LANG_NTSC_1_E ("") +#define LANG_NTSC_2_E ("") + +#define LANG_BOX_EULA_E ("EULA") +#define LANG_EULA_E ("Require EULA Agreement") +#define LANG_EULA_VER_E ("EULA agreement ver.") +#define LANG_ICON_E ("Icons on the Menu") +#define LANG_WIRELESS_ICON_E ("Display an Icon of DS Wireless") +#define LANG_WIFI_ICON_E ("Display an Icon of Wi-Fi connection") +#define LANG_NO_ICON_E ("Display No Icon") +#define LANG_REGION_PCTL_E ("Region and Rating Information") +#define LANG_REGION_E ("Region") +#define LANG_PCTL_RATING_E ("Rating Information") +#define LANG_PCTL_ENABLE_E ("Enable Control") +#define LANG_PCTL_ALWAYS_E ("Rating Pending") +#define LANG_OTHER_SPEC_E ("Other ROM Spec.") +#define LANG_UGC_E ("UGC(User Generated Contents) Support") +#define LANG_PHOTO_EX_E ("Photo Exchange Support") diff --git a/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/MasterEditorTWL/message_bank.cpp b/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/MasterEditorTWL/message_bank.cpp new file mode 100644 index 0000000..e869158 --- /dev/null +++ b/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/MasterEditorTWL/message_bank.cpp @@ -0,0 +1,63 @@ +#include "stdafx.h" + +// RCMessageBankNX̎ + +#include +#include +#include "message_bank.h" +#include "utility.h" + +using namespace MasterEditorTWL; + +// **************************************************************** +// RCMessageBank NX +// **************************************************************** + +// ------------------------------------------------------------------- +// constructor +// ------------------------------------------------------------------- +RCMessageBank::RCMessageBank( System::String ^fileJ, System::String ^fileE ) +{ + this->loadMessage( fileJ, "J" ); + this->loadMessage( fileE, "E" ); +} + +// ------------------------------------------------------------------- +// Ot@C烁bZ[Wǂݏo +// ------------------------------------------------------------------- +void RCMessageBank::loadMessage( System::String ^filepath, System::String ^lang ) +{ + System::Xml::XmlDocument ^doc = gcnew System::Xml::XmlDocument(); + doc->Load( filepath ); + System::Xml::XmlElement ^root = doc->DocumentElement; + + // ɂXML[g̊i[ύX + if( lang->ToUpper() == "J" ) + { + this->rootJ = root; + } + else + { + this->rootE = root; + } +} + +// ------------------------------------------------------------------- +// ̃bZ[WԂ +// ------------------------------------------------------------------- +System::String^ RCMessageBank::getMessage( System::String ^tag, System::String ^lang ) +{ + System::Xml::XmlElement ^root; + if( lang->ToUpper() == "J" ) + { + root = this->rootJ; + } + else + { + root = this->rootE; + } + + // ǂ̃t@C^O‚Ă邱ƂO + System::String ^msg = MasterEditorTWL::getXPathText( root, "/message/" + tag ); + return msg; +} \ No newline at end of file diff --git a/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/MasterEditorTWL/message_bank.h b/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/MasterEditorTWL/message_bank.h new file mode 100644 index 0000000..336354d --- /dev/null +++ b/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/MasterEditorTWL/message_bank.h @@ -0,0 +1,35 @@ +#pragma once + +// ꃁbZ[W̊ǗNX + +namespace MasterEditorTWL +{ + + // ------------------------------------------------------------------- + // Type : ref class + // Name : RCMessageBank + // + // Description : bZ[WɎvΕԂ + // + // Role : ꃁbZ[W̊Ǘ + // ------------------------------------------------------------------- + ref class RCMessageBank + { + private: + System::Xml::XmlElement ^rootJ; + System::Xml::XmlElement ^rootE; + private: + RCMessageBank(){}; + public: + // Caution: throwing Exception + RCMessageBank( System::String ^fileJ, System::String ^fileE ); + private: + // Ot@C烁bZ[Wǂݏo + // Caution: throwing Exception + void loadMessage( System::String ^filepath, System::String ^lang ); + public: + // ̃bZ[WԂ + System::String^ getMessage( System::String ^tag, System::String ^lang ); + }; //RCMessageBank + +} //namespace MasterEditorTWL diff --git a/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/MasterEditorTWL/middleware_name_list.h b/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/MasterEditorTWL/middleware_name_list.h new file mode 100644 index 0000000..3e391cd --- /dev/null +++ b/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/MasterEditorTWL/middleware_name_list.h @@ -0,0 +1,149 @@ +#pragma once + +// ROMf[^(SRL)NX̊֘ANX̐錾ƒ` + +#include +#include + +namespace MasterEditorTWL +{ + // ------------------------------------------------------------------- + // Type : ref class + // Name : RCMiddlewareName + // + // Description : 1‚̃~hEFA̖O + // + // Role : oCiɖߍ܂Ă~hEFA(CZX) + // ̈ʖ̂Ԃ + // ------------------------------------------------------------------- + ref class RCMiddlewareName + { + private: + System::String ^publisher; // oCiɖߍ܂Ă͂̒񋟌 + System::String ^code; // oCiɖߍ܂Ă͂̎ʃR[h + System::String ^noteJ; // ʖ + System::String ^noteE; + private: + RCMiddlewareName(){} // + public: + RCMiddlewareName( System::String ^pub, System::String ^c, System::String ^nJ, System::String ^nE ) + { + this->publisher = pub; + this->code = c; + this->noteJ = nJ; + this->noteE = nE; + } + public: + // 񋟌ƎʃR[hvꍇɈʖ̂Ԃ + // vȂꍇɂ nullptr Ԃ + System::String^ check(System::String ^pub, System::String ^code, System::Boolean isJapanese) + { + if( pub->Equals(this->publisher) && code->StartsWith(this->code) ) + { + if( isJapanese ) + { + return System::String::Copy(this->noteJ); + } + else + { + return System::String::Copy(this->noteE); + } + } + return nullptr; + } + }; //ref class RCMiddlewareName + + // ------------------------------------------------------------------- + // Type : ref class + // Name : RCMiddlewareName + // + // Description : ~hEFA̖ÕXg + // + // Role : ݒt@C̃~hEFÃXg + // e~hEFÂ̖擾 + // ̂ + // ------------------------------------------------------------------- + ref class RCMiddlewareNameList + { + private: + System::Collections::Generic::List ^list; + private: + RCMiddlewareNameList(){} + public: + RCMiddlewareNameList( System::String^ filepath ) + { + this->makelist(filepath); + } + private: + // t@Ce~hEFÂ̖擾Xg쐬 + void makelist( System::String^ filepath ) + { + this->list = gcnew System::Collections::Generic::List; + this->list->Clear(); + + // xmlt@C̓ǂݍ + System::Xml::XmlDocument ^doc = gcnew System::Xml::XmlDocument(); + try + { + doc->Load( filepath ); + } + catch( System::Exception ^s ) + { + (void)s; + return; + } + System::Xml::XmlElement ^root = doc->DocumentElement; + + // ~hEFȀ̖̃Xgt@C擾ăXgɓo^ + System::Xml::XmlNodeList ^nodelist = root->SelectNodes( "/middleware-name-list/middleware" ); // ^O—vfׂĎ擾 + System::Collections::IEnumerator^ iter = nodelist->GetEnumerator(); + while( iter->MoveNext() ) + { + System::Xml::XmlNode ^node = safe_cast(iter->Current); + System::Xml::XmlNode ^n_pub = node->SelectSingleNode( "publisher" ); // ΃pX + System::Xml::XmlNode ^n_c = node->SelectSingleNode( "code" ); + System::Xml::XmlNode ^n_nJ = node->SelectSingleNode( "note-j" ); + System::Xml::XmlNode ^n_nE = node->SelectSingleNode( "note-e" ); + + // XMLm[hf[^𔲂oăXgɏo^Ă + System::String ^pub = ""; // rɎĝnullptrȂ + if( n_pub && n_pub->FirstChild && n_pub->FirstChild->Value ) + { + pub = n_pub->FirstChild->Value; + } + System::String ^c = ""; + if( n_c && n_c->FirstChild && n_c->FirstChild->Value ) + { + c = n_c->FirstChild->Value; + } + System::String ^nJ = nullptr; // rɎgpȂ̂nullptr(o^ĂȂƂ\) + if( n_nJ && n_nJ->FirstChild && n_nJ->FirstChild->Value ) + { + nJ = n_nJ->FirstChild->Value; + } + System::String ^nE = nullptr; + if( n_nE && n_nE->FirstChild && n_nE->FirstChild->Value ) + { + nE = n_nE->FirstChild->Value; + } + this->list->Add( gcnew RCMiddlewareName(pub, c, nJ, nE ) ); // Xgɓo^ + } //while + } //void makelist() + public: + // Xgă~hEFÂ̖Ԃ + // o^ĂȂꍇ nullptr Ԃ + System::String^ search( System::String ^pub, System::String ^code, System::Boolean isJapanese ) + { + for each (RCMiddlewareName ^mid in this->list ) + { + System::String ^note = mid->check(pub, code, isJapanese); + if( note != nullptr ) + { + return note; + } + } + return nullptr; + } //System::String^ search() + }; //ref class RCMiddlewareNameList + +}; // namespace MasterEditorTWL \ No newline at end of file diff --git a/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/MasterEditorTWL/resource.h b/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/MasterEditorTWL/resource.h new file mode 100644 index 0000000..1f2251c --- /dev/null +++ b/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/MasterEditorTWL/resource.h @@ -0,0 +1,3 @@ +//{{NO_DEPENDENCIES}} +// Microsoft Visual C++ generated include file. +// Used by app.rc diff --git a/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/MasterEditorTWL/split_tad.cpp b/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/MasterEditorTWL/split_tad.cpp new file mode 100644 index 0000000..9f00e7a --- /dev/null +++ b/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/MasterEditorTWL/split_tad.cpp @@ -0,0 +1,275 @@ +#include "stdafx.h" +#include "twl/types.h" +#include +#include +#include "split_tad.h" +#include "split_tad_util.h" + + +// ------------------------------------------------------ +// 錾ƒ萔 +// ------------------------------------------------------ + +// internal functions +cli::array^ readTitleKey( cli::array ^ticket ); +cli::array^ decCBC( cli::array ^ Key, cli::array ^ IV, cli::array ^cipherText ); +cli::array ^readContentsInfo( cli::array ^tmd ); + +// tadOp̌ +const u8 commonKey[] = +{ + 0xA1,0x60,0x4A,0x6A,0x71,0x23,0xB5,0x29,0xAE,0x8B,0xEC,0x32,0xC8,0x16,0xFC,0xAA +}; + + +// ------------------------------------------------------ +// tadO{ +// ------------------------------------------------------ + +// +// tad t@C srl(0Ԗڂ̃Rec)𔲂o +// (split_tad_dev.pl ̈ڐA) +// +// @arg [in] tad t@C +// @arg [out] o srl t@C +// +// @ret Ƃ0 s畉̒l +// +int splitTad( System::String ^tadpath, System::String ^srlpath ) +{ + FILE *fp = NULL; + const char *pchFilename = + (const char*)System::Runtime::InteropServices::Marshal::StringToHGlobalAnsi( tadpath ).ToPointer(); + + if( fopen_s( &fp, pchFilename, "rb" ) != NULL ) + { + return -1; + } + + cli::array ^mbuf = subStr( fp, 0, 32 ); + + u32 hdrSize = reverseEndian( unpack32(mbuf, 0) ); // {IɃrbOGfBA + u16 tadType = reverseEndian( unpack16(mbuf, 4) ); + u16 tadVersion = reverseEndian( unpack16(mbuf, 6) ); + u32 certSize = reverseEndian( unpack32(mbuf, 8) ); + u32 crlSize = reverseEndian( unpack32(mbuf, 12) ); + u32 ticketSize = reverseEndian( unpack32(mbuf, 16) ); + u32 tmdSize = reverseEndian( unpack32(mbuf, 20) ); + u32 contentSize = reverseEndian( unpack32(mbuf, 24) ); + u32 metaSize = reverseEndian( unpack32(mbuf, 28) ); + + printf( "hdrSize %d\n", hdrSize ); + printf( "tadType %c%c\n", tadType>>8, tadType&0xFF ); + printf( "tadVersion %d\n", tadVersion ); + printf( "certSize %d\n", certSize ); + printf( "crlSize %d\n", crlSize ); + printf( "ticketSize %d\n", ticketSize ); + printf( "tmdSize %d\n", tmdSize ); + printf( "contentSize %d\n", contentSize ); + printf( "metaSize %d\n", metaSize ); + + u32 certOffset = roundUp( hdrSize, 64); + u32 crlOffset = roundUp( certOffset + certSize, 64); + u32 ticketOffset = roundUp( crlOffset + crlSize, 64); + u32 tmdOffset = roundUp( ticketOffset + ticketSize, 64); + u32 contentOffset = roundUp( tmdOffset + tmdSize, 64); + u32 metaOffset = roundUp( contentOffset + contentSize, 64); + u32 fileSize = roundUp( metaOffset + metaSize, 64); + + fseek( fp, 0, SEEK_END ); + u32 orgFileSize = ftell( fp ); + if( fileSize != orgFileSize ) + { + printf( "file size is not expected size(=%d)", fileSize ); + fclose( fp ); + return -1; + } + cli::array ^ticket = subStr( fp, ticketOffset, ticketSize ); + cli::array ^tmd = subStr( fp, tmdOffset, tmdSize ); + cli::array ^content = subStr( fp, contentOffset, contentSize ); + + //saveFile( "cert.bin", subStr( fp, certOffset, certSize ) ); + //saveFile( "crl.bin", subStr( fp, crlOffset, crlSize ) ); + //saveFile( "ticket.bin", ticket ); + //saveFile( "tmd.bin", tmd ); + //saveFile( "meta.bin", subStr( fp, metaOffset, metaSize ) ); + + cli::array ^title_key = readTitleKey( ticket ); + cli::array ^rci = readContentsInfo( tmd ); + dumpBytes( title_key ); + + // ʏ tad srl (Rec No.0) ܂܂Ȃ + // }`Rec ܂ޏꍇ̂߂ No.1 ȍ~ʃt@CƂĕۑ + // srl out.srl ̂Ƃ out_1.bin out_2.bin ... Ƃďo͂ + System::String ^srl_dir = System::IO::Path::GetDirectoryName( srlpath ); // i[fBNg + System::String ^srl_prefix = System::IO::Path::GetFileNameWithoutExtension( srlpath ); // gqÕt@C + System::String ^srl_ext = System::IO::Path::GetExtension( srlpath ); // gq + + int result = 0; + u32 offset = 0; + for each( rcContentsInfo ^ci in rci ) + { + u32 size = roundUp( (u32)ci->size, 16 ); + cli::array ^enc_content_x = subStr( content, offset, size ); + cli::array ^content_x_iv = resizeBytes( pack16( reverseEndian(ci->idx) ), 14 ); // rbOGfBAɂĂ + cli::array ^dec_content_x = decCBC( title_key, content_x_iv, enc_content_x ); + cli::array ^dec_content = subStr( dec_content_x, 0, ci->size ); + System::Security::Cryptography::SHA1 ^sha1 = gcnew System::Security::Cryptography::SHA1Managed(); + cli::array ^hash = sha1->ComputeHash( dec_content ); + + dumpBytes( hash ); + pin_ptr calc = &hash[0]; // vZŋ߂nbV + pin_ptr extr = &ci->hash[0]; // onbV + if( memcmp( calc, extr, 20 ) == 0 ) + { + printf( "hash OK\n" ); + } + else + { + printf( "hash mismatch\n" ); + result = -1; // G[Ƃ f͂Ō܂ō쐬 + } + + //saveFile( "content_" + ci->idx.ToString() + ".encrypted.bin", enc_content_x ); + //saveFile( "content_" + ci->idx.ToString() + ".bin", dec_content ); + if( ci->idx == 0 ) + { + saveFile( srlpath, dec_content ); // Rec No.0 srl ɂ + } + else + { + System::String ^tmppath = srl_dir + "\\" + srl_prefix + "_" + ci->idx.ToString() + ".bin"; + saveFile( tmppath, dec_content ); + } + offset += roundUp( size, 64 ); + } + fclose( fp ); + return result; +} + +// ------------------------------------------------------ +// internal functions +// ------------------------------------------------------ + +// +// title_key ̕ +// +// @ret title_key ̃oCg +// +cli::array^ readTitleKey( cli::array ^ticket ) +{ + cli::array ^encTitleKey = subStr( ticket, 0x1BF, 16 ); + cli::array ^IV = resizeBytes( subStr( ticket, 0x1DC, 8 ), 8 ); // 16oCgɊgăPc8oCg0Ŗ߂ + + cli::array ^comKey = gcnew cli::array(16); + pin_ptr pComKey = &comKey[0]; + memcpy( pComKey, commonKey, 16 ); + + cli::array ^plain; + try + { + plain = decCBC( comKey, IV, encTitleKey ); + } + catch (System::Exception ^ e) + { + System::Console::WriteLine("Exception in readTitleKey(): {0}", e->Message); + } + return plain; +} + +// +// tmd eRect@C̏𔲂o +// +// @ret eRect@C̏܂Ƃ߂ Array +// +cli::array ^readContentsInfo( cli::array ^tmd ) +{ + u16 nContent = reverseEndian( unpack16(tmd, 0x1DE) ); + cli::array ^ci = gcnew cli::array( nContent ); + + u16 i; + for( i=0; i < nContent; i++ ) + { + u32 offset = 0x1E4 + 36*i; + ci[i] = gcnew rcContentsInfo; + ci[i]->cid = reverseEndian( unpack32(tmd, offset) ); + ci[i]->idx = reverseEndian( unpack16(tmd, offset + 4) ); + ci[i]->type = reverseEndian( unpack16(tmd, offset + 6) ); + ci[i]->size = reverseEndian( unpack32(tmd, offset + 12) ); + ci[i]->hash = subStr( tmd, offset + 16, 20 ); + } + return ci; +} + +// +// AES : System::Security::Cryptography::RijndaelManaged ̃wṽTvRsy +// +// @ret ̃f[^ +// +cli::array^ decCBC( cli::array ^ Key, cli::array ^ IV, cli::array ^cipherText ) +{ + // Check arguments. + if (!cipherText || cipherText->Length <= 0) + throw gcnew System::ArgumentNullException("cipherText"); + if (!Key || Key->Length <= 0) + throw gcnew System::ArgumentNullException("Key"); + if (!IV || IV->Length <= 0) + throw gcnew System::ArgumentNullException("Key"); + + // TDeclare the streams used + // to decrypt to an in memory + // array of bytes. + System::IO::MemoryStream ^msDecrypt; + System::Security::Cryptography::CryptoStream ^csDecrypt; + + // Declare the RijndaelManaged object + // used to decrypt the data. + System::Security::Cryptography::RijndaelManaged ^aesAlg; + + // Declare the string used to hold + // the decrypted text. + cli::array ^plain = gcnew cli::array(cipherText->Length); + + try + { + // Create a RijndaelManaged object + // with the specified key and IV. + aesAlg = gcnew System::Security::Cryptography::RijndaelManaged(); + aesAlg->Mode = System::Security::Cryptography::CipherMode::CBC; // CBC[h + aesAlg->Key = Key; + aesAlg->IV = IV; + aesAlg->Padding = System::Security::Cryptography::PaddingMode::Zeros; + + // Create a decrytor to perform the stream transform. + System::Security::Cryptography::ICryptoTransform ^ decryptor + = aesAlg->CreateDecryptor(aesAlg->Key, aesAlg->IV); + + // Create the streams used for decryption. + msDecrypt = gcnew System::IO::MemoryStream(cipherText); + csDecrypt = gcnew System::Security::Cryptography::CryptoStream + (msDecrypt, decryptor, System::Security::Cryptography::CryptoStreamMode::Read); + csDecrypt->Read( plain, 0, cipherText->Length ); + //srDecrypt = gcnew System::IO::StreamReader(csDecrypt); + + //// Read the decrypted bytes from the decrypting stream + //// and place them in a string. + //plaintext = srDecrypt->ReadToEnd(); + } + finally + { + // Clean things up. + + // Close the streams. + if (csDecrypt) + csDecrypt->Close(); + if (msDecrypt) + msDecrypt->Close(); + + // Clear the RijndaelManaged object. + if (aesAlg) + aesAlg->Clear(); + } + return plain; +} + +// end of file diff --git a/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/MasterEditorTWL/split_tad.h b/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/MasterEditorTWL/split_tad.h new file mode 100644 index 0000000..b08bdb0 --- /dev/null +++ b/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/MasterEditorTWL/split_tad.h @@ -0,0 +1,80 @@ +#pragma once + +#include "twl/types.h" +#include +#include + + +// ------------------------------------------------------ +// APIs +// ------------------------------------------------------ + +// +// tad t@C srl(0Ԗڂ̃Rec)𔲂o +// (split_tad_dev.pl ̈ڐA) +// +// @arg [in] tad t@C̃pX +// @arg [out] o srl t@C̃pX +// +// @ret Ƃ0 s畉̒l +// +int splitTad( System::String ^tadpath, System::String ^srlpath ); + + +// ------------------------------------------------------ +// p̍\(vg^Cv錾łȂ̂Ńwb_ɒu) +// ------------------------------------------------------ + +// Rec̍\ +ref class rcContentsInfo +{ +private: + System::UInt32 ^h_cid; + System::UInt16 ^h_idx; + System::UInt16 ^h_type; + System::UInt32 ^h_size; + cli::array ^h_hash; +public: + rcContentsInfo() + { + this->h_cid = gcnew System::UInt32; // ̕KvȂ + this->h_idx = gcnew System::UInt16; + this->h_type = gcnew System::UInt16; + this->h_size = gcnew System::UInt32; + this->h_hash = gcnew cli::array(20); // Œ蒷 + } +public: + property System::UInt32 cid + { + void set( System::UInt32 v ){ *this->h_cid = v; }; + System::UInt32 get(void){ return *this->h_cid; } + } + property System::UInt16 idx + { + void set( System::UInt16 v ){ *this->h_idx = v; }; + System::UInt16 get(void){ return *this->h_idx; } + } + property System::UInt16 type + { + void set( System::UInt16 v ){ *this->h_type = v; }; + System::UInt16 get(void){ return *this->h_type; } + } + property System::UInt32 size + { + void set( System::UInt32 v ){ *this->h_size = v; }; + System::UInt32 get(void){ return *this->h_size; } + } + property cli::array ^hash + { + void set( cli::array ^h ) + { + cli::array::Copy( h, this->h_hash, 20 ); + } + cli::array ^get(void) + { + cli::array ^cp = gcnew cli::array(20); // Rs[Ԃ + cli::array::Copy( this->h_hash, cp, 20 ); + return cp; + } + } +}; diff --git a/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/MasterEditorTWL/split_tad_util.cpp b/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/MasterEditorTWL/split_tad_util.cpp new file mode 100644 index 0000000..7af50c7 --- /dev/null +++ b/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/MasterEditorTWL/split_tad_util.cpp @@ -0,0 +1,186 @@ +#include "stdafx.h" +#include "twl/types.h" +#include +#include +#include "split_tad_util.h" + + +// ------------------------------------------------------------------------ +// oCg𔲂o +// ------------------------------------------------------------------------ + +// @ret ooCg +cli::array^ subStr( FILE *fp, const int offset, const int size ) +{ + if( size <= 0 ) + { + return nullptr; + } + cli::array ^mbuf = gcnew cli::array(size); // ̕KvȂ + pin_ptr buf = &mbuf[0]; // fread unmanaged zɂ̂ŕϊ + + (void)fseek( fp, offset, SEEK_SET ); + if( fread( buf, 1, size, fp ) != size ) + { + return nullptr; + } + return mbuf; // managed ̂قԂ +} + +// @ret ooCg +cli::array^ subStr( cli::array ^bytes, const int offset, const int size ) +{ + cli::array ^sub = gcnew cli::array(size); + + cli::array::Copy( bytes, offset, sub, 0, size ); + return sub; +} + +// ------------------------------------------------------------------------ +// t@C쐬ăoCgi[ +// ------------------------------------------------------------------------ + +// @ret 0 s畉̒l +int saveFp( FILE *fp, cli::array ^bytes ) +{ + if( bytes == nullptr ) + { + return 0; // ̃t@C‚肽ƂƂȂ̂ŐIƂ݂Ȃ + } + pin_ptr tmp = &bytes[0]; // array^͂ӂ‚̔zł͂Ȃ̂ŃoCgzɕϊ + int size = bytes->Length; + + if( fwrite( tmp, 1, size, fp ) != size ) + { + return -1; + } + return 0; +} + +// @ret 0 s畉̒l +int saveFile( System::String ^filename, cli::array ^bytes ) +{ + FILE *fp = NULL; + const char *pchFilename = + (const char*)System::Runtime::InteropServices::Marshal::StringToHGlobalAnsi( filename ).ToPointer(); + + // t@CROMwb_Cg + if( fopen_s( &fp, pchFilename, "wb" ) != NULL ) // t@C폜ĐVKɃCgEoCi + { + return -1; + } + fseek( fp, 0, SEEK_SET ); + int r = saveFp( fp, bytes ); + fclose( fp ); + + return r; +} + +// ------------------------------------------------------------------------ +// GfBAt](tad̓rbOGfBAȂ̂łق֗) +// ------------------------------------------------------------------------ + +// @ret GfBAt]̒l +u32 reverseEndian( const u32 v ) +{ + u32 ret = (v<<24) | ((v<<8) & 0x00FF0000) | ((v>>8) & 0x0000FF00) | (v>>24); + return ret; +} + +u16 reverseEndian( const u16 v ) +{ + u16 ret = (v<<8) | (v>>8); + return ret; +} + +// ------------------------------------------------------------------------ +// oCgloCgɕϊ(gGfBA) +// *** perlpackӎ *** +// ------------------------------------------------------------------------ + +// @ret ϊ̃oCg +cli::array ^pack32( u32 v ) +{ + cli::array ^bytes = gcnew cli::array(4); + bytes[0] = v & 0xFF; + bytes[1] = (v >> 8) & 0xFF; + bytes[2] = (v >> 16) & 0xFF; + bytes[3] = (v >> 24) & 0xFF; + return bytes; +} + +cli::array ^pack16( u16 v ) +{ + cli::array ^bytes = gcnew cli::array(2); + bytes[0] = v & 0xFF; + bytes[1] = v >>8; + return bytes; +} + +// ------------------------------------------------------------------------ +// oCg̕oCg񂩂瑽oCglƂĉ(gGfBA) +// *** perlunpackӎ *** +// ------------------------------------------------------------------------ + +// @arg [in] oCg +// @arg [in] oCgڂ𑽃oCglƂ݂Ȃ +// @ret ߂̑oCgl +u32 unpack32( cli::array ^bytes, const int index ) +{ + pin_ptr tmp = &bytes[0]; + u32 v = (u32)*((u32*)(tmp+index)); + return v; +} + +u16 unpack16( cli::array ^bytes, const int index ) +{ + pin_ptr tmp = &bytes[0]; + u16 v = (u16)*((u16*)(tmp+index)); + return v; +} + +// ------------------------------------------------------------------------ +// ۂ߂ +// ------------------------------------------------------------------------ + +u32 roundUp( const u32 v, const u32 align ) +{ + u32 r = ((v + align - 1) / align) * align; + return r; +} + +u16 roundUp( const u16 v, const u16 align ) +{ + u16 r = ((v + align - 1) / align) * align; + return r; +} + +// ------------------------------------------------------------------------ +// oCg̒gĖ0Ŗ߂ +// (0x12345678 => 0x1234567800000000) +// ------------------------------------------------------------------------ + +// @arg [in] gÕoCg +// @arg [in] oCgg邩(gw Ⴆ4oCg5oCgɂꍇɂ1w) +// @ret g̃oCg(VȃoCgŐ) +cli::array ^resizeBytes( cli::array ^org, const int difSize ) +{ + cli::array ^r = gcnew cli::array( org->Length + difSize ); + cli::array::Copy( org, 0, r, 0, org->Length ); + return r; +} + +// ------------------------------------------------------------------------ +// oCg16iŕ\ +// ------------------------------------------------------------------------ + +void dumpBytes( cli::array ^bytes ) +{ + for each( System::Byte b in bytes ) + { + printf( "%02x", b ); + } + printf( "\n" ); +} + +// end of file diff --git a/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/MasterEditorTWL/split_tad_util.h b/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/MasterEditorTWL/split_tad_util.h new file mode 100644 index 0000000..354eeac --- /dev/null +++ b/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/MasterEditorTWL/split_tad_util.h @@ -0,0 +1,73 @@ +#pragma once + +#include "twl/types.h" +#include +#include + + +// ------------------------------------------------------------------------ +// oCg𔲂o +// ------------------------------------------------------------------------ + +// @ret ooCg +cli::array^ subStr( FILE *fp, const int offset, const int size ); +cli::array^ subStr( cli::array ^bytes, const int offset, const int size ); + +// ------------------------------------------------------------------------ +// t@C쐬ăoCgi[ +// ------------------------------------------------------------------------ + +// @ret 0 s畉̒l +int saveFp( FILE *fp, cli::array ^bytes ); +int saveFile( System::String ^filename, cli::array ^bytes ); + +// ------------------------------------------------------------------------ +// GfBAt](tad̓rbOGfBAȂ̂łق֗) +// ------------------------------------------------------------------------ + +// @ret GfBAt]̒l +u32 reverseEndian( const u32 v ); +u16 reverseEndian( const u16 v ); + +// ------------------------------------------------------------------------ +// oCgloCgɕϊ(gGfBA) +// *** perlpackӎ *** +// ------------------------------------------------------------------------ + +// @ret ϊ̃oCg +cli::array ^pack32( u32 v ); +cli::array ^pack16( u16 v ); + +// ------------------------------------------------------------------------ +// oCg̕oCg񂩂瑽oCglƂĉ(gGfBA) +// *** perlunpackӎ *** +// ------------------------------------------------------------------------ + +// @arg [in] oCg +// @arg [in] oCgڂ𑽃oCglƂ݂Ȃ +// @ret ߂̑oCgl +u32 unpack32( cli::array ^bytes, const int index ); +u16 unpack16( cli::array ^bytes, const int index ); + +// ------------------------------------------------------------------------ +// ۂ߂ +// ------------------------------------------------------------------------ + +u32 roundUp( const u32 v, const u32 align ); +u16 roundUp( const u16 v, const u16 align ); + +// ------------------------------------------------------------------------ +// oCg̒gĖ0Ŗ߂ +// (0x12345678 => 0x1234567800000000) +// ------------------------------------------------------------------------ + +// @arg [in] gÕoCg +// @arg [in] oCgg邩(gw Ⴆ4oCg5oCgɂꍇɂ1w) +// @ret g̃oCg(VȃoCgŐ) +cli::array ^resizeBytes( cli::array ^org, const int difSize ); + +// ------------------------------------------------------------------------ +// oCg16iŕ\ +// ------------------------------------------------------------------------ +void dumpBytes( cli::array ^bytes ); + diff --git a/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/MasterEditorTWL/srl.cpp b/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/MasterEditorTWL/srl.cpp new file mode 100644 index 0000000..db8af1f --- /dev/null +++ b/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/MasterEditorTWL/srl.cpp @@ -0,0 +1,1083 @@ +// srl.h ̃NX + +#include "stdafx.h" +#include +#include "common.h" +#include "srl.h" +#include "utility.h" +#include "keys.h" +#include "crc_whole.h" +#include +#include +#include +#include + +using namespace MasterEditorTWL; + +// **************************************************************** +// RCSrl NX +// **************************************************************** + +// constructor +RCSrl::RCSrl( System::String ^msgfileJ, System::String ^msgfileE ) +{ + this->pRomHeader = new (ROM_Header); + std::memset( pRomHeader, 0, sizeof(ROM_Header) ); + this->hMrcExternalCheckItems = gcnew RCMrcExternalCheckItems(); + this->hMrcMsg = gcnew RCMessageBank( msgfileJ, msgfileE ); +} + +// destructor +RCSrl::~RCSrl() +{ + this->!RCSrl(); +} + +// finalizer +RCSrl::!RCSrl() +{ + // destructor͖IdeleteȂƌĂ΂Ȃ(GC͌Ă΂Ȃ)悤Ȃ̂ + // GCɉĂƂɎɂ finalizer Kv + + // |C^(Ԃ) unmanaged Ȃ̂ŎIɉ + delete (this->pRomHeader); +} + +// ------------------------------------------------------------------- +// ROMwb_t@C烊[h +// +// @arg [in] ̓t@C +// ------------------------------------------------------------------- +ECSrlResult RCSrl::readFromFile( System::String ^srlfile ) +{ + FILE *fp = NULL; + const char *pchFilename = + (const char*)System::Runtime::InteropServices::Marshal::StringToHGlobalAnsi( srlfile ).ToPointer(); + ECSrlResult r; + + // t@CJROMwb_̂ݓǂݏo + if( fopen_s( &fp, pchFilename, "rb" ) != NULL ) + { + return (ECSrlResult::ERROR_FILE_OPEN); + } + (void)fseek( fp, 0, SEEK_SET ); // ROMwb_srl̐擪 + + // 1oCgsizeof(~)[h (tƕԂlsizeof(~)ɂȂȂ̂Œ) + ROM_Header tmprh; + if( fread( (void*)&tmprh, 1, sizeof(ROM_Header), fp ) != sizeof(ROM_Header) ) + { + return (ECSrlResult::ERROR_FILE_READ); + } + +#ifdef METWL_WHETHER_SIGN_DECRYPT + // ܂`FbN + r = this->decryptRomHeader( &tmprh ); + if( r != ECSrlResult::NOERROR ) + { + (void)fclose(fp); + return r; + } +#endif //#ifdef METWL_WHETHER_SIGN_DECRYPT + +#ifdef METWL_WHETHER_PLATFORM_CHECK + // vbgtH[̃`FbN + if( ((tmprh.s.platform_code == PLATFORM_CODE_NTR) && (tmprh.s.enable_signature != 0)) || // PictoChat/DS-download-play ݂̂ɊY + (tmprh.s.platform_code == PLATFORM_CODE_TWL_HYBLID) || + (tmprh.s.platform_code == PLATFORM_CODE_TWL_LIMITED) ) + { + // OK + } + else + { + return ECSrlResult::ERROR_PLATFORM; + } +#endif + + // `FbNʂĂtB[hROMwb_ɃRs[ + // (ȂƕsSRLǂݍ񂾂ƂROMwb_㏑Ă܂) + memcpy( this->pRomHeader, &tmprh, sizeof(ROM_Header) ); + + { + // t@C‚OROMwb_ȊÖ̗悩ݒo + (void)this->hasDSDLPlaySign( fp ); + r = this->searchSDKVersion( fp ); + if( r != ECSrlResult::NOERROR ) + { + (void)fclose(fp); + return r; + } + r = this->searchLicenses( fp ); + if( r != ECSrlResult::NOERROR ) + { + (void)fclose(fp); + return r; + } + } + + // G[XgNA + this->hErrorList = gcnew System::Collections::Generic::List; + this->hWarnList = gcnew System::Collections::Generic::List; + this->hParentalErrorList = gcnew System::Collections::Generic::List; + this->hParentalWarnList = gcnew System::Collections::Generic::List; + this->hErrorList->Clear(); + this->hWarnList->Clear(); + this->hParentalErrorList->Clear(); + this->hParentalWarnList->Clear(); + + // ROMwb_̒lROMŗLtB[hɔf + (void)this->setRomInfo(); + (void)this->calcNandUsedSize( fp ); // NANDTCY + + // ׂĐݒ肵ƂMRC + { + ECSrlResult r; + r = this->mrc( fp ); + if( r != ECSrlResult::NOERROR ) + { + (void)fclose(fp); + return r; + } + } + (void)fclose( fp ); + + // xłǂݍ܂ꂽ true + this->IsAlreadyReadOnce = true; + + return (ECSrlResult::NOERROR); +} + +// ------------------------------------------------------------------- +// ROMwb_t@CɃCg +// +// @arg [in] o̓t@C +// ------------------------------------------------------------------- +ECSrlResult RCSrl::writeToFile( System::String ^srlfile ) +{ + FILE *fp = NULL; + const char *pchFilename = + (const char*)System::Runtime::InteropServices::Marshal::StringToHGlobalAnsi( srlfile ).ToPointer(); + ECSrlResult result; + + // ROMwb_ROMŗL𔽉f + result = this->setRomHeader(); + if( result != ECSrlResult::NOERROR ) + { + return result; + } + + // t@CROMwb_Cg + if( fopen_s( &fp, pchFilename, "r+b" ) != NULL ) // ㏑EoCi + { + return (ECSrlResult::ERROR_FILE_OPEN); + } + (void)fseek( fp, 0, SEEK_SET ); + + if( fwrite( (const void*)(this->pRomHeader), 1, sizeof(ROM_Header), fp ) != sizeof(ROM_Header) ) + { + return (ECSrlResult::ERROR_FILE_WRITE); + } + (void)fclose( fp ); + + return (ECSrlResult::NOERROR); +} + +// ------------------------------------------------------------------- +// ROMwb_擾ROMŗLtB[hɔf +// ------------------------------------------------------------------- +ECSrlResult RCSrl::setRomInfo(void) +{ + System::Int32 i; + System::Text::UTF8Encoding^ utf8 = gcnew System::Text::UTF8Encoding( true ); // char->StringϊɕKv + + // NTR݊ + this->hTitleName = gcnew System::String( this->pRomHeader->s.title_name, 0, TITLE_NAME_MAX, utf8 ); + this->hGameCode = gcnew System::String( this->pRomHeader->s.game_code, 0, GAME_CODE_MAX, utf8 ); + this->hMakerCode = gcnew System::String( this->pRomHeader->s.maker_code, 0, MAKER_CODE_MAX, utf8 ); + switch( this->pRomHeader->s.platform_code ) + { + case PLATFORM_CODE_NTR: this->hPlatform = gcnew System::String( "NTR Limited" ); break; + case PLATFORM_CODE_TWL_HYBLID: this->hPlatform = gcnew System::String( "NTR/TWL Hybrid" ); break; + case PLATFORM_CODE_TWL_LIMITED: this->hPlatform = gcnew System::String( "TWL Limited" ); break; + default: + this->hPlatform = nullptr; + break; + } + this->hRomSize = MasterEditorTWL::transRomSizeToString( this->pRomHeader->s.rom_size ); + //this->hForKorea = gcnew System::Byte( this->pRomHeader->s.for_korea ); + //this->hForChina = gcnew System::Byte( this->pRomHeader->s.for_china ); + this->RomVersion = this->pRomHeader->s.rom_version; + this->HeaderCRC = this->pRomHeader->s.header_crc16; + this->IsOldDevEncrypt = (this->pRomHeader->s.developer_encrypt_old != 0)?true:false; + + switch( this->pRomHeader->s.game_cmd_param & CARD_LATENCY_MASK ) + { + case CARD_MROM_GAME_LATENCY: + this->hLatency = "MROM"; + break; + + case CARD_1TROM_GAME_LATENCY: + this->hLatency = "1TROM"; + break; + + default: + this->hLatency = "Illegal"; + break; + } + + // TWLp + this->IsNormalJump = (this->pRomHeader->s.permit_landing_normal_jump != 0)?true:false; + this->IsTmpJump = (this->pRomHeader->s.permit_landing_tmp_jump != 0)?true:false; + this->NormalRomOffset = (u32)(this->pRomHeader->s.twl_card_normal_area_rom_offset) * 0x80000; + this->KeyTableRomOffset = (u32)(this->pRomHeader->s.twl_card_keytable_area_rom_offset) * 0x80000; + this->PublicSize = this->pRomHeader->s.public_save_data_size; + this->PrivateSize = this->pRomHeader->s.private_save_data_size; + + u8 *idL = this->pRomHeader->s.titleID_Lo; + u32 idH = this->pRomHeader->s.titleID_Hi; + //u32 val; + //val = ((u32)(idL[0]) << 24) | ((u32)(idL[1]) << 16) | ((u32)(idL[2]) << 8) | ((u32)(idL[3])); // rbOGfBA + //this->hTitleIDLo = gcnew System::UInt32( val ); + this->hTitleIDLo = gcnew System::String( (char*)idL, 0, 4, utf8 ); + this->TitleIDHi = idH; + + // TitleID킩 + this->IsAppLauncher = false; + this->IsAppUser = false; + this->IsAppSystem = false; + this->IsAppSecure = false; + this->IsLaunch = false; + this->IsMediaNand = false; + this->IsDataOnly = false; + if( (idL[3]=='H') && (idL[2]=='N') && (idL[1]=='A') ) // `AvǂTitleID_Lo̒lŌ + { + this->IsAppLauncher = true; + } + else if( idH & TITLE_ID_HI_SECURE_FLAG_MASK ) // erbg͔rIƂ͌Ȃ̂else ifɂ͂ȂȂ + { + this->IsAppSecure = true; + } + else if( (idH & TITLE_ID_HI_APP_TYPE_MASK) == 1 ) + { + this->IsAppSystem = true; + } + else if( (idH & TITLE_ID_HI_APP_TYPE_MASK) == 0 ) + { + this->IsAppUser = true; + } + if( idH & TITLE_ID_HI_DATA_ONLY_FLAG_MASK ) + { + this->IsDataOnly = true; + } + if( idH & TITLE_ID_HI_MEDIA_MASK ) + { + this->IsMediaNand = true; + } + if( (idH & TITLE_ID_HI_NOT_LAUNCH_FLAG_MASK) == 0 ) // rbg0̂ƂLaunch + { + this->IsLaunch = true; + } + u16 pub = (u16)((idH & TITLE_ID_HI_PUBLISHER_CODE_MASK) >> TITLE_ID_HI_PUBLISHER_CODE_SHIFT); + this->PublisherCode = pub; + + // TWLgtO + this->IsCodecTWL = (this->pRomHeader->s.exFlags.codec_mode != 0)?true:false; + this->IsEULA = (this->pRomHeader->s.exFlags.agree_EULA != 0)?true:false; + this->IsSubBanner = (this->pRomHeader->s.exFlags.availableSubBannerFile != 0)?true:false; + this->IsWiFiIcon = (this->pRomHeader->s.exFlags.WiFiConnectionIcon != 0)?true:false; + this->IsWirelessIcon = (this->pRomHeader->s.exFlags.DSWirelessIcon != 0)?true:false; + this->IsWL = (this->pRomHeader->s.exFlags.enable_nitro_whitelist_signature != 0)?true:false; + + // TWLANZXRg[ + this->IsCommonClientKey = (this->pRomHeader->s.access_control.common_client_key != 0)?true:false; + this->IsAesSlotBForES = (this->pRomHeader->s.access_control.hw_aes_slot_B != 0)?true:false; + this->IsAesSlotCForNAM = (this->pRomHeader->s.access_control.hw_aes_slot_C != 0)?true:false; + this->IsSD = (this->pRomHeader->s.access_control.sd_card_access != 0)?true:false; + this->IsNAND = (this->pRomHeader->s.access_control.nand_access != 0)?true:false; + this->IsGameCardOn = (this->pRomHeader->s.access_control.game_card_on != 0)?true:false; + this->IsShared2 = (this->pRomHeader->s.access_control.shared2_file != 0)?true:false; + this->IsAesSlotBForJpegEnc = (this->pRomHeader->s.access_control.hw_aes_slot_B_SignJPEGForLauncher != 0)?true:false; + this->IsAesSlotBForJpegEncUser = (this->pRomHeader->s.access_control.hw_aes_slot_B_SignJPEGForUser != 0)?true:false; + this->IsGameCardNitro = (this->pRomHeader->s.access_control.game_card_nitro_mode != 0)?true:false; + this->IsAesSlotAForSSL = (this->pRomHeader->s.access_control.hw_aes_slot_A_SSLClientCert != 0)?true:false; + this->IsCommonClientKeyForDebugger + = (this->pRomHeader->s.access_control.common_client_key_for_debugger_sysmenu != 0)?true:false; + this->IsPhotoWrite = (this->pRomHeader->s.access_control.photo_access_write != 0)?true:false; + this->IsPhotoRead = (this->pRomHeader->s.access_control.photo_access_read != 0)?true:false; + this->IsSDWrite = (this->pRomHeader->s.access_control.sdmc_access_write != 0)?true:false; + this->IsSDRead = (this->pRomHeader->s.access_control.sdmc_access_read != 0)?true:false; + + // ؐݒtO + this->IsForChina = (this->pRomHeader->s.for_china != 0)?true:false; + this->IsForKorea = (this->pRomHeader->s.for_korea != 0)?true:false; + + // 5.2 RELEASEȍ~̂ƂSDANZX𒲂ׂKv + u32 sdkver = 0; + for each ( RCSDKVersion ^sdk in this->hSDKList ) + { + if( sdk->IsStatic ) + { + sdkver = sdk->Code; + } + } + this->IsOldSDK52Release = MasterEditorTWL::IsOldSDKVersion(sdkver, METWL_SDK52_RELEASE, true); // PR/RCłłG[o + this->IsOldSDK51PR = MasterEditorTWL::IsOldSDKVersion(sdkver, METWL_SDK51_PR, true); + + // SCFG bN邩 + if( (this->pRomHeader->s.arm7_scfg_ext >> 31) != 0 ) + { + this->IsSCFGAccess = true; + } + else + { + this->IsSCFGAccess = false; + } + + // Shared2t@CTCY + this->hShared2SizeArray = gcnew cli::array(METWL_NUMOF_SHARED2FILES); + for( i=0; i < METWL_NUMOF_SHARED2FILES; i++ ) + { + this->hShared2SizeArray[i] = 0; + } + u32 unit = 16 * 1024; // 16KB̏搔i[Ă + if( this->pRomHeader->s.shared2_file0_size != 0 ) + { + this->hShared2SizeArray[0] = (this->pRomHeader->s.shared2_file0_size * unit) + unit; + } + if( this->pRomHeader->s.shared2_file1_size != 0 ) + { + this->hShared2SizeArray[1] = (this->pRomHeader->s.shared2_file1_size * unit) + unit; + } + if( this->pRomHeader->s.shared2_file2_size != 0 ) + { + this->hShared2SizeArray[2] = (this->pRomHeader->s.shared2_file2_size * unit) + unit; + } + if( this->pRomHeader->s.shared2_file3_size != 0 ) + { + this->hShared2SizeArray[3] = (this->pRomHeader->s.shared2_file3_size * unit) + unit; + } + if( this->pRomHeader->s.shared2_file4_size != 0 ) + { + this->hShared2SizeArray[4] = (this->pRomHeader->s.shared2_file4_size * unit) + unit; + } + if( this->pRomHeader->s.shared2_file5_size != 0 ) + { + this->hShared2SizeArray[5] = (this->pRomHeader->s.shared2_file5_size * unit) + unit; + } + + // yA^Rg[̎擾 + + const u32 region = this->pRomHeader->s.card_region_bitmap; + + // ׂĂ̒ĉusvɏ + this->hArrayParentalIndex = gcnew cli::array(PARENTAL_CONTROL_INFO_SIZE); + for( i=0; i < PARENTAL_CONTROL_INFO_SIZE; i++ ) + { + this->hArrayParentalIndex[i] = -1; + } + this->IsUnnecessaryRating = false; // [WŝƂɐݒ肳Ȃ̂ŏĂ + + // [Wƃ[eBO擾 + if( this->setRegionInfo( region ) ) + { + this->setUnnecessaryRatingInfo( region ); // [eBO\svǂ𒲂ׂ(ꂪȂƑSNƋʂłȂ) + if( !this->IsUnnecessaryRating ) + { + this->setRatingInfo( region ); // [WɊ܂܂ĉ̃[eBO擾 + } + + // łɌSĉ̃[eBOSNłȂ΂ȂȂ + if( region == METWL_MASK_REGION_CHINA ) + { + bool all_free = true; + for( i=0; i < PARENTAL_CONTROL_INFO_SIZE; i++ ) + { + if( this->pRomHeader->s.parental_control_rating_info[i] != (OS_TWL_PCTL_OGNINFO_ENABLE_MASK | 0) ) + { + all_free = false; + } + } + if( !all_free ) + { + this->hParentalWarnList->Add( this->makeMrcError("ChinaAllRatingFree") ); + } + } + } + + return ECSrlResult::NOERROR; +} // ECSrlResult RCSrl::setRomInfo(void) + +// ------------------------------------------------------------------- +// ROMwb_̃[WtB[hɔf +// ------------------------------------------------------------------- +bool RCSrl::setRegionInfo( u32 region ) +{ + this->IsRegionJapan = ((region & METWL_MASK_REGION_JAPAN) != 0)?true:false; + this->IsRegionAmerica = ((region & METWL_MASK_REGION_AMERICA) != 0)?true:false; + this->IsRegionEurope = ((region & METWL_MASK_REGION_EUROPE) != 0)?true:false; + this->IsRegionAustralia = ((region & METWL_MASK_REGION_AUSTRALIA) != 0)?true:false; + this->IsRegionKorea = ((region & METWL_MASK_REGION_KOREA) != 0)?true:false; + this->IsRegionChina = ((region & METWL_MASK_REGION_CHINA) != 0)?true:false; + + // [WɊ܂܂ĉȂ烊[W͕s + if( (MasterEditorTWL::getOgnListInRegion( region ) == nullptr) && (region != METWL_MASK_REGION_CHINA) ) // ͗O + { + this->hParentalErrorList->Add( this->makeMrcError("IllegalRegion") ); + return false; + } + if( !this->IsAppUser && (region == METWL_MASK_REGION_ALL) ) + { + this->hParentalWarnList->Add( this->makeMrcError("AllRegion") ); + } + return true; +} + +// ---------------------------------------------------------------------- +// ROMwb_̃[eBO\svtO𒲂ׂătB[hɔf +// ---------------------------------------------------------------------- +void RCSrl::setUnnecessaryRatingInfo( u32 region ) +{ + // ROMwb_̃tO𒲂ׂ + this->IsUnnecessaryRating = (this->pRomHeader->s.unnecessary_rating_display != 0)?true:false; + if( !this->IsUnnecessaryRating ) + { + return; // svłȂȂ炱ȍ~̃`FbN͕KvȂ([eBO̎擾Ɉڂ) + } + + // [WɊ܂܂郌[eBOĉ擾 + System::Collections::Generic::List ^ognlist = MasterEditorTWL::getOgnListInRegion( region ); + if( ognlist == nullptr ) + { + // ̂Ƃ[eBOĉ݂͑Ȃ[eBO\sv̑I͉”\Ȃ̂ŌxĂ + if( this->IsUnnecessaryRating ) + { + this->hParentalWarnList->Add( this->makeMrcError("UnnecessaryRatingSetting") ); + } + return; + } + + // [WɊ܂܂ĉ̃[eBOɗ]vȃf[^o^ĂȂ`FbN + bool noerror = false; + for each( int ogn in ognlist ) + { + bool b = false; + if( this->pRomHeader->s.parental_control_rating_info[ ogn ] == (OS_TWL_PCTL_OGNINFO_ENABLE_MASK | 0) ) // SNȂ + { + b = true; + } + noerror = noerror | b; // ׂđSNƂȂĂȂƂ̓G[Ƃ݂Ȃ + } + if( !noerror ) + { + this->IsUnnecessaryRating = false; // G[̂ƂROMwb_ɕsvƓo^ĂĂ + this->hParentalErrorList->Add( this->makeMrcError("UnnecessaryRatingIllegal") ); + } + else + { + this->hParentalWarnList->Add( this->makeMrcError("UnnecessaryRatingSetting") ); + } +} + +// ------------------------------------------------------------------- +// ROMwb_̃yA^Rg[tB[hɔf +// ------------------------------------------------------------------- +void RCSrl::setRatingInfo( u32 region ) +{ + // [WɊ܂܂ĂĉXgAbv + // (܂܂ĂȂĉ̃[eBOǂݍ܂Ȃ) + System::Collections::Generic::List ^ognlist = MasterEditorTWL::getOgnListInRegion( region ); + if( ognlist == nullptr ) // XgnullptrȂs + { + return; + } + + // [WɊ܂܂ĉ̃[eBO𒲂ׂ + for each( int ogn in ognlist ) + { + this->setOneRatingOrgInfo( ogn ); + } +} + +// ------------------------------------------------------------------- +// ĉ̃[eBO񂩂R{{bNX̃CfbNX肷 +// ------------------------------------------------------------------- +void RCSrl::setOneRatingOrgInfo( int ogn ) +{ + System::Boolean enable = ((this->pRomHeader->s.parental_control_rating_info[ ogn ] & OS_TWL_PCTL_OGNINFO_ENABLE_MASK) != 0)?true:false; + System::Boolean rp = ((this->pRomHeader->s.parental_control_rating_info[ ogn ] & OS_TWL_PCTL_OGNINFO_ALWAYS_MASK) != 0)?true:false; + System::Byte age = this->pRomHeader->s.parental_control_rating_info[ ogn ] & OS_TWL_PCTL_OGNINFO_AGE_MASK; + + cli::array ^ages = MasterEditorTWL::getOgnRatingAges( ogn ); + System::String ^name = MasterEditorTWL::getOgnName( ogn ); + + int index = -1; + if( !enable ) // ` + { + index = -1; + this->hParentalErrorList->Add( this->makeMrcError("RatingUndefine", name) ); + } + else + { + if( rp ) // R + { + if( age == 0 ) // N0̂Ƃ͐RƂ݂Ȃ + { + index = ages->Length; // z̍Ō̗vf̎uRv + this->hParentalWarnList->Add( this->makeMrcError("RatingPendingSetting", name) ); + } + else + { + index = -1; // ȊO̓G[ + this->hParentalErrorList->Add( this->makeMrcError("RatingPendingConcurrent", name) ); + } + } + else + { + index = -1; // ĉF߂ĂȂNi[ĂƂG[ + int i; + for( i=0; i < ages->Length; i++ ) + { + if( age == ages[i] ) + { + index = i; + } + } + if( index < 0 ) + { + this->hParentalErrorList->Add( this->makeMrcError("IllegalRating", name) ); + } + } + } + this->hArrayParentalIndex[ ogn ] = index; +} + +// ------------------------------------------------------------------- +// ROMwb_ROMŗLtB[h̒l𔽉f +// ------------------------------------------------------------------- +ECSrlResult RCSrl::setRomHeader(void) +{ + ECSrlResult result; + + // ROMwb_[0,0x160)̗̈Read OnlyŕύXȂ + + // [W + u32 map = 0; + if( this->IsRegionJapan == true ) { map |= METWL_MASK_REGION_JAPAN; } + if( this->IsRegionAmerica == true ) { map |= METWL_MASK_REGION_AMERICA; } + if( this->IsRegionEurope == true ) { map |= METWL_MASK_REGION_EUROPE; } + if( this->IsRegionAustralia == true ){ map |= METWL_MASK_REGION_AUSTRALIA; } + if( this->IsRegionKorea == true ){ map |= METWL_MASK_REGION_KOREA; } + if( this->IsRegionChina == true ){ map |= METWL_MASK_REGION_CHINA; } + if( (this->IsRegionJapan == true ) && (this->IsRegionAmerica == true) + && (this->IsRegionEurope == true ) && (this->IsRegionAustralia == true) + && (this->IsRegionKorea == true) && (this->IsRegionChina == false) + ) + { + map = METWL_MASK_REGION_ALL & ~METWL_MASK_REGION_CHINA; // ȊO̓}`[W + } +#if defined(METWL_VER_APPTYPE_SYSTEM) || defined(METWL_VER_APPTYPE_SECURE) || defined(METWL_VER_APPTYPE_LAUNCHER) + if( (this->IsRegionJapan == true ) && (this->IsRegionAmerica == true) + && (this->IsRegionEurope == true ) && (this->IsRegionAustralia == true) + && (this->IsRegionKorea == true) && (this->IsRegionChina == true) + ) + { + map |= METWL_MASK_REGION_ALL; // I[[W + } +#endif + this->pRomHeader->s.card_region_bitmap = map; + + // [eBO + this->setRatingRomHeader( map ); + + // ROMwb_CRCƏXV + result = this->calcRomHeaderCRC(); + if( result != ECSrlResult::NOERROR ) + { + return result; + } + result = this->signRomHeader(); + if( result != ECSrlResult::NOERROR ) + { + return result; + } + + return ECSrlResult::NOERROR; +} // ECSrlResult RCSrl::setRomHeader(void) + +// yA^Rg[̃vpeBROMwb_ɔf +void RCSrl::setRatingRomHeader( u32 region ) +{ + int j; + + // [WɊ܂܂Ȃĉׂ͂āusv(`) + if( region != ( METWL_MASK_REGION_ALL & ~METWL_MASK_REGION_CHINA ) ) + { + for( j=0; j < PARENTAL_CONTROL_INFO_SIZE; j++ ) + { + this->pRomHeader->s.parental_control_rating_info[j] = 0x00; + } + } + + // u[eBO\svvtO𗧂Ă + this->pRomHeader->s.unnecessary_rating_display = (this->IsUnnecessaryRating == true)?1:0; + + // [WуI[[ŴƂ\ׂ̈āuSNv(0x80)Ŗ߂Ă + // u[eBO\svvǂɂ炸߂ + if( this->IsRegionChina ) // I[[ŴƂrbg͗ + { + for( j=0; j < PARENTAL_CONTROL_INFO_SIZE; j++ ) + { + this->pRomHeader->s.parental_control_rating_info[j] = OS_TWL_PCTL_OGNINFO_ENABLE_MASK; + } + } + + // [WɊ܂܂ĉ݂̂ݒ + System::Collections::Generic::List ^ognlist = MasterEditorTWL::getOgnListInRegion( region ); + if( !ognlist ) + { + return; // ̂ƂXg͋ɂȂ + } + for each( int ogn in ognlist ) + { + u8 rating = 0; + if( this->IsUnnecessaryRating ) + { + rating = OS_TWL_PCTL_OGNINFO_ENABLE_MASK | 0; // [eBO\sv̂Ƃ́uSNvƓlɂ + } + else + { + cli::array ^ages = MasterEditorTWL::getOgnRatingAges( ogn ); // ݒ”\NXg擾 + + if( this->hArrayParentalIndex[ ogn ] < 0 ) // ` + { + rating = 0x00; + } + else + { + int index = this->hArrayParentalIndex[ ogn ]; + if( index == ages->Length ) // R + { + rating = OS_TWL_PCTL_OGNINFO_ENABLE_MASK | OS_TWL_PCTL_OGNINFO_ALWAYS_MASK; + } + else // [eBONݒ + { + rating = OS_TWL_PCTL_OGNINFO_ENABLE_MASK | ages[ index ]; + } + } + } + this->pRomHeader->s.parental_control_rating_info[ ogn ] = rating; + } +} + +// ------------------------------------------------------------------- +// wb_CRCZo +// ------------------------------------------------------------------- +u16 calcCRC( const u16 start, const u8 *data, const int allsize ) +{ + u16 r1; + u16 total = start; + int size = allsize; + + // CRCe[u͌Œ + const u16 CRC16Table[16] = + { + 0x0000, 0xCC01, 0xD801, 0x1400, + 0xF001, 0x3C00, 0x2800, 0xE401, + 0xA001, 0x6C00, 0x7800, 0xB401, + 0x5000, 0x9C01, 0x8801, 0x4400 + }; + + // CRCvZ + while (size-- > 0) + { + // 4bit + r1 = CRC16Table[total & 0xf]; + total = (total >> 4) & 0x0fff; + total = total ^ r1 ^ CRC16Table[*data & 0xf]; + + // 4bit + r1 = CRC16Table[total & 0xf]; + total = (total >> 4) & 0x0fff; + total = total ^ r1 ^ CRC16Table[(*data >> 4) & 0xf]; + + data++; + } + return total; +} // calcRomHeaderCRCCore() + +ECSrlResult RCSrl::calcRomHeaderCRC(void) +{ + // ROMwb_CRC̈㏑ + this->pRomHeader->s.header_crc16 = calcCRC( CRC16_INIT_VALUE, (u8*)this->pRomHeader, CALC_CRC16_SIZE ); + + return (ECSrlResult::NOERROR); +} // ECSrlResult RCSrl::calcRomHeaderCRC(void) + +// ------------------------------------------------------------------- +// ROMwb_ď +// ------------------------------------------------------------------- +ECSrlResult RCSrl::signRomHeader(void) +{ + SignatureData signSrc; // ̂ƂƂȂ_CWFXgl + u8 signDst[ RSA_KEY_LENGTH ]; // ̊i[Tmpobt@ + u8 decryptBlock[ RSA_KEY_LENGTH ]; // ubNobt@ + BOOL result = false; + ROM_Header rh; + int pos; + u8 *privateKey = (u8*)g_devPrivKey_DER; + u8 *publicKey = (u8*)g_devPubKey_DER; + + // ROMwb_̃_CWFXgZo(擪ؖ̈̒O܂łΏ) + ACSign_DigestUnit( + signSrc.digest, + this->pRomHeader, + (u32)&(rh.certificate) - (u32)&(rh) // this->pRomHeader ̓}l[Wq[vɂ̂ŎAhX擾łȂ + ); + + // I +#ifdef METWL_VER_APPTYPE_LAUNCHER + if( this->IsAppLauncher ) + { + privateKey = (u8*)g_devPrivKey_DER_launcher; + publicKey = (u8*)g_devPubKey_DER_launcher; + } + else +#endif //METWL_VER_APPTYPE_LAUNCHER +#ifdef METWL_VER_APPTYPE_SECURE + if( this->IsAppSecure ) + { + privateKey = (u8*)g_devPrivKey_DER_secure; + publicKey = (u8*)g_devPubKey_DER_secure; + } + else +#endif //METWL_VER_APPTYPE_SECURE +#ifdef METWL_VER_APPTYPE_SYSTEM + if( this->IsAppSystem ) + { + privateKey = (u8*)g_devPrivKey_DER_system; + publicKey = (u8*)g_devPubKey_DER_system; + } + else +#endif //METWL_VER_APPTYPE_SYSTEM +#ifdef METWL_VER_APPTYPE_USER + { + privateKey = (u8*)g_devPrivKey_DER; + publicKey = (u8*)g_devPubKey_DER; + } +#endif //METWL_VER_APPTYPE_USER + + // _CWFXgɏ + result = ACSign_Encrypto( signDst, privateKey, &signSrc, sizeof(SignatureData) ); + if( !result ) + { + return (ECSrlResult::ERROR_SIGN_ENCRYPT); + } + + // ă_CWFXgƈv邩xt@C + result = ACSign_Decrypto( decryptBlock, publicKey, signDst, RSA_KEY_LENGTH ); + for( pos=0; pos < RSA_KEY_LENGTH; pos++ ) + { + if( decryptBlock[pos] == 0x0 ) // ubNf[^T[` + break; + } + if( !result || (memcmp( &signSrc, &(decryptBlock[pos+1]), sizeof(SignatureData) ) != 0) ) + { + return (ECSrlResult::ERROR_SIGN_DECRYPT); + } + + // ROMwb_ɏ㏑ + memcpy( this->pRomHeader->signature, signDst, RSA_KEY_LENGTH ); + + return (ECSrlResult::NOERROR); +} // ECSrlResult RCSrl::signRomHeader(void) + +// ------------------------------------------------------------------- +// ROMwb_̏O +// ------------------------------------------------------------------- +ECSrlResult RCSrl::decryptRomHeader( ROM_Header *prh ) +{ + u8 original[ RSA_KEY_LENGTH ]; // Õf[^i[ + s32 pos = 0; // ubN̐擪AhX + u8 digest[ DIGEST_SIZE_SHA1 ]; // ROMwb_̃_CWFXg + u8 *publicKey = (u8*)g_devPubKey_DER; + + // + // (1) Jŕ(ubN)[Jϐ(original)Ɋi[ + // (2) ubN]ȕ菜Ĉ(pDst)ɃRs[ + + ECAppType type = this->selectAppType( prh ); + + // I +#ifdef METWL_VER_APPTYPE_LAUNCHER + if( type == ECAppType::LAUNCHER ) + { + publicKey = (u8*)g_devPubKey_DER_launcher; + } + else +#endif //METWL_VER_APPTYPE_LAUNCHER +#ifdef METWL_VER_APPTYPE_SECURE + if( type == ECAppType::SECURE ) + { + publicKey = (u8*)g_devPubKey_DER_secure; + } + else +#endif //METWL_VER_APPTYPE_SECURE +#ifdef METWL_VER_APPTYPE_SYSTEM + if( type == ECAppType::SYSTEM ) + { + publicKey = (u8*)g_devPubKey_DER_system; + } + else +#endif //METWL_VER_APPTYPE_SYSTEM +#ifdef METWL_VER_APPTYPE_USER + { + publicKey = (u8*)g_devPubKey_DER; + } +#endif //METWL_VER_APPTYPE_USER + + // ̉ = Jŕ + if( !ACSign_Decrypto( original, publicKey, prh->signature, RSA_KEY_LENGTH ) ) + { + return ECSrlResult::ERROR_SIGN_DECRYPT; + } + // Of[^𕜍ubNQbg + for( pos=0; pos < (RSA_KEY_LENGTH-2); pos++ ) // {ubN̐擪0x00̓ɂďdl + { + // ÍubN` = 0x00, BlockType, Padding, 0x00, f[^ + if( original[pos] == 0x00 ) // f[^̒O0x00T[` + { + break; + } + } + // xt@C + // ROMwb_̃_CWFXgZo(擪ؖ̈̒O܂łΏ) + ROM_Header tmprh; // }l[Wq[vɂꍇAhX擾łȂ̂ŃTCYvZpROMwb_p + ACSign_DigestUnit( digest, prh, (u32)&(tmprh.certificate) - (u32)&(tmprh) ); + if( memcmp( &(original[pos+1]), digest, DIGEST_SIZE_SHA1 ) != 0 ) + { + return ECSrlResult::ERROR_SIGN_VERIFY; + } + return (ECSrlResult::NOERROR); +} + +// ------------------------------------------------------------------- +// Avʂ̔ +// ------------------------------------------------------------------- +ECAppType RCSrl::selectAppType( ROM_Header *prh ) +{ + ECAppType type = ECAppType::ILLEGAL; + + u8 *idL = prh->s.titleID_Lo; + u32 idH = prh->s.titleID_Hi; + + if( (idL[3]=='H') && (idL[2]=='N') && (idL[1]=='A') ) // `AvǂTitleID_Lo̒lŌ + { + type = ECAppType::LAUNCHER; + } + else if( idH & TITLE_ID_HI_SECURE_FLAG_MASK ) // erbg͔rIƂ͌Ȃ̂else ifɂ͂ȂȂ + { + type = ECAppType::SECURE; + } + else if( (idH & TITLE_ID_HI_APP_TYPE_MASK) == 1 ) + { + type = ECAppType::SYSTEM; + } + else if( (idH & TITLE_ID_HI_APP_TYPE_MASK) == 0 ) + { + type = ECAppType::USER; + } + return type; +} + +// ------------------------------------------------------------------- +// DS_E[hSRLɊi[Ă邩ׂ +// ------------------------------------------------------------------- +ECSrlResult RCSrl::hasDSDLPlaySign( FILE *fp ) +{ + const s32 DSDLPLAY_SIZE = 0x88; + u8 buf[ DSDLPLAY_SIZE ]; + u32 offset; + + // ̈SRLǂݍ + offset = this->pRomHeader->s.rom_valid_size; + if( fseek( fp, offset, SEEK_SET ) != 0 ) + { + this->HasDSDLPlaySign = false; // NTRROM̈̍Ōɓ̂ + return ECSrlResult::ERROR_FILE_READ; // NTRSRLɏi[ĂȂꍇ̓V[N[hłȂ + } + if( DSDLPLAY_SIZE != fread( buf, 1, DSDLPLAY_SIZE, fp ) ) + { + this->HasDSDLPlaySign = false; + return ECSrlResult::ERROR_FILE_READ; + } + + // ŏ2oCgŒ̒lƂȂ邱Ƃۏ؂Ă̂ł̒lǂŔ + if( (buf[0] == 'a') && (buf[1] == 'c') ) + { + this->HasDSDLPlaySign = true; + } + else + { + this->HasDSDLPlaySign = false; + } + return (ECSrlResult::NOERROR); +} + +// ------------------------------------------------------------------- +// SDKo[W擾 +// ------------------------------------------------------------------- +ECSrlResult RCSrl::searchSDKVersion( FILE *fp ) +{ + // SDKo[WSRLoCiɈȉ̃}WbNioƂƂɖ߂Ă + const u8 pattern[8] = {0x21, 0x06, 0xc0, 0xde, 0xde, 0xc0, 0x06, 0x21}; + System::Collections::Generic::List ^list; + + this->hSDKList = gcnew System::Collections::Generic::List; + this->hSDKList->Clear(); + + list = MasterEditorTWL::patternMatch( fp, pattern , 8 ); + if( list == nullptr ) + { + //System::Diagnostics::Debug::WriteLine( "no list" ); + return ECSrlResult::ERROR_SDK; + } + for each( u32 item in list ) + { + // }WbNR[h̃ItZbg̎O4oCgSDKo[W + if( item >= 4 ) + { + u32 offset; + u32 sdkcode; + + offset = item - 4; + fseek( fp, offset, SEEK_SET ); + if( 4 != fread( (void*)&sdkcode, 1, 4, fp ) ) + { + return ECSrlResult::ERROR_SDK; + } + + // ARM9 static ɂ邩 + u32 statbegin = this->pRomHeader->s.main_rom_offset; + u32 statend = this->pRomHeader->s.main_rom_offset + this->pRomHeader->s.main_size - 1; + System::Boolean isstat = ((statbegin <= offset) && (offset <= statend))?true:false; + this->hSDKList->Add( gcnew RCSDKVersion(sdkcode, isstat) ); + //System::Diagnostics::Debug::WriteLine( "SDK " + str ); + } + } + return ECSrlResult::NOERROR; +} + +// ------------------------------------------------------------------- +// gpCZX擾 +// ------------------------------------------------------------------- +#define LICENSE_LEN_MAX 1024 // CZX̕񂪒Ƃ擾łȂ +ECSrlResult RCSrl::searchLicenses(FILE *fp) +{ + // CZXSRLoCi[SDK+(zz):(Cu)]̃tH[}bgŖ߂Ă + const u8 pattern[5] = { '[', 'S', 'D', 'K', '+' }; + System::Collections::Generic::List ^list; + + this->hLicenseList = gcnew System::Collections::Generic::List; + this->hLicenseList->Clear(); + + fseek( fp, 0, SEEK_END ); + const u32 filesize = ftell( fp ); + + list = MasterEditorTWL::patternMatch( fp, pattern, 5 ); + if( list == nullptr ) + { + return ECSrlResult::NOERROR; // CZXȂꍇ݂̂OKƂ + } + for each( u32 item in list ) + { + char buf[ LICENSE_LEN_MAX + 1 ]; // '\0'̕߂ɂƂĂ + u32 offset = item + 5; // "[SDK+"̌ォ烊[h + u32 len = ((filesize - offset) < LICENSE_LEN_MAX)?(filesize - offset):LICENSE_LEN_MAX; + + // "(zz):(Cu)]"]ȕ܂߂ĂЂƂ܂obt@Ɋi[ + fseek( fp, offset, SEEK_SET ); + if( len != fread( buf, 1, len, fp ) ) + { + return ECSrlResult::ERROR; + } + buf[ len ] = '\0'; // strlen̐ۏ؂邽 + + // "(zz):(Cu)]"oĂ(zz)(Cu)ɕ + System::Text::UTF8Encoding^ utf8 = gcnew System::Text::UTF8Encoding( true ); // char->StringϊɕKv + System::String ^str = gcnew System::String( buf, 0, strlen(buf), utf8 ); // T╪String\bhɗpӂĂ + str = (str->Split( ']' ))[0]; // ']'Oo + cli::array ^spl = str->Split( ':' ); // (zz):(Cu)𕪊 + + if( spl->Length >= 2 ) // Ô + { + if( !spl[1]->StartsWith("BACKUP") && !spl[1]->StartsWith("SSL") && !spl[1]->StartsWith("CPS") ) + { + this->hLicenseList->Add( gcnew RCLicense( spl[0], spl[1] ) ); + } + //System::Diagnostics::Debug::WriteLine( "license " + spl[0] + " " + spl[1] ); + } + } + return ECSrlResult::NOERROR; +} //RCSrl::searchLicenses + +// ------------------------------------------------------------------- +// NANDTCYvZ +// ------------------------------------------------------------------- +void RCSrl::calcNandUsedSize(FILE *fp) +{ + this->hNandUsedSize = gcnew MasterEditorTWL::RCNandUsedSize; + + this->hNandUsedSize->IsMediaNand = this->IsMediaNand; + this->hNandUsedSize->IsUseSubBanner = this->IsSubBanner; + + // SRL̏o^ + this->hNandUsedSize->PublicSaveSize = this->PublicSize; + this->hNandUsedSize->PrivateSaveSize = this->PrivateSize; + fseek( fp, 0, SEEK_END ); + this->hNandUsedSize->SrlSize = ftell(fp); + + //System::Diagnostics::Debug::WriteLine( "SRL " + MasterEditorTWL::transSizeToString(this->hNandUsedSize->SrlSizeRoundUp) ); + //System::Diagnostics::Debug::WriteLine( "PUB " + MasterEditorTWL::transSizeToString(this->hNandUsedSize->PublicSaveSizeRoundUp) ); + //System::Diagnostics::Debug::WriteLine( "PRI " + MasterEditorTWL::transSizeToString(this->hNandUsedSize->PrivateSaveSizeRoundUp) ); + //System::Diagnostics::Debug::WriteLine( "TMD " + MasterEditorTWL::transSizeToString(this->hNandUsedSize->TmdSizeRoundUp) ); + //System::Diagnostics::Debug::WriteLine( "SUB " + MasterEditorTWL::transSizeToString(this->hNandUsedSize->SubBannerSizeRoundUp) ); + //System::Diagnostics::Debug::WriteLine( "ALL " + MasterEditorTWL::transSizeToString(this->hNandUsedSize->NandUsedSize) ); +}//RCSrl::calcNandUsedSize() + +// ------------------------------------------------------------------- +// MRCbZ[W擾 +// ------------------------------------------------------------------- + +// JnƏIAhXROMɂĈقȂ/݂ȂG[ +RCMrcError^ RCSrl::makeMrcError( System::UInt32 beg, System::UInt32 end, System::Boolean isEnableModify, System::Boolean isAffectRom, + RCMrcError::PurposeType purpose, + System::String ^tag, ... cli::array ^args ) +{ + // Ot@C獀ږ擾 + System::String ^nameJ = this->hMrcMsg->getMessage( tag+"/name", "J" ); + System::String ^nameE = this->hMrcMsg->getMessage( tag+"/name", "E" ); + // bZ[W擾 + System::String ^fmtJ = this->hMrcMsg->getMessage( tag+"/sentence", "J" ); // bZ[Wt@C珑擾 + System::String ^msgJ = System::String::Format( fmtJ, args ); // StringɓWJ + System::String ^fmtE = this->hMrcMsg->getMessage( tag+"/sentence", "E" ); + System::String ^msgE = System::String::Format( fmtE, args ); + + return (gcnew RCMrcError( nameJ, beg, end, msgJ, nameE, msgE, isEnableModify, isAffectRom, purpose )); +} + +// JnƏIAhXɐݒt@CɏĂ̗̂pG[ (pr肳Ƃp) +RCMrcError^ RCSrl::makeMrcError( RCMrcError::PurposeType purpose, System::String ^tag, ... cli::array ^args ) +{ + // p[^擾(p[^͉płɂ{łɂo^Ăǂł悢{ł̂̂ɂĂ) + System::UInt32 beg = System::UInt32::Parse( this->hMrcMsg->getMessage( tag+"/begin", "J" ), System::Globalization::NumberStyles::HexNumber ); + System::UInt32 end = System::UInt32::Parse( this->hMrcMsg->getMessage( tag+"/end", "J" ), System::Globalization::NumberStyles::HexNumber ); + System::Boolean isEnableModify = System::Boolean::Parse( this->hMrcMsg->getMessage( tag+"/modify", "J" ) ); + System::Boolean isAffectRom = System::Boolean::Parse( this->hMrcMsg->getMessage( tag+"/affect", "J" ) ); + + return (this->makeMrcError( beg, end, isEnableModify, isAffectRom, purpose, tag, args )); +} + +// prɂ炸ʂ̃G[ +RCMrcError^ RCSrl::makeMrcError( System::String ^tag, ... cli::array ^args ) +{ + return (this->makeMrcError( RCMrcError::PurposeType::Common, tag, args )); // ʃG[ +} diff --git a/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/MasterEditorTWL/srl.h b/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/MasterEditorTWL/srl.h new file mode 100644 index 0000000..74c3843 --- /dev/null +++ b/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/MasterEditorTWL/srl.h @@ -0,0 +1,204 @@ +#pragma once + +// ROMf[^(SRL)NX̐錾 + +#include +#include "common.h" +#include +#include +#include +#include "srl_const.h" +#include "srl_element.h" +#include "utility.h" +#include "message_bank.h" + +namespace MasterEditorTWL +{ + // ------------------------------------------------------------------- + // Type : ref class + // Name : RCSrl + // + // Description : ROMf[^(SRL)̐ݒNX + // + // Role : ROMf[^̃t@CóE̍XV + // ------------------------------------------------------------------- + ref class RCSrl + { + // field + private: + // ROMwb_ + ROM_Header *pRomHeader; + + public: + // xłǂݍ܂ꂽǂ + property System::Boolean IsAlreadyReadOnce; + + // (GUIɕ\)ROMwb_ŗL + + // NTR݊ ReadOnly + property System::String ^hTitleName; + property System::String ^hGameCode; + property System::String ^hMakerCode; + property System::String ^hPlatform; + property System::String ^hRomSize; + property System::Byte RomVersion; + property System::UInt16 HeaderCRC; + property System::String ^hLatency; // MROM/1TROM/Illegal + + // yA^Rg[ + property cli::array ^hArrayParentalIndex; // \p̃R{{bNX̃CfbNX + property System::Boolean IsUnnecessaryRating; // [eBO\svtO + + // TWLp Read Only + property System::UInt32 NormalRomOffset; + property System::UInt32 KeyTableRomOffset; + property System::String ^hTitleIDLo; + property System::UInt32 TitleIDHi; + property System::Boolean IsAppLauncher; // TitleIDLo킩Av + property System::Boolean IsAppUser; // TitleIDHi킩Av + property System::Boolean IsAppSystem; // + property System::Boolean IsAppSecure; // + property System::Boolean IsLaunch; // + property System::Boolean IsMediaNand; // + property System::Boolean IsDataOnly; // + property System::UInt16 PublisherCode; // + property System::Boolean IsNormalJump; + property System::Boolean IsTmpJump; + property System::Boolean HasDSDLPlaySign; // ROMwb_OSRL킩鏐̗L + property System::Boolean IsOldDevEncrypt; // JpÍtOĂ + property System::Boolean IsSCFGAccess; // SCFGWX^bNĂ + property System::UInt32 PublicSize; // Z[uf[^TCY + property System::UInt32 PrivateSize; + + // NANDTCY + RCNandUsedSize ^hNandUsedSize; + + // TWLgtO Read Only + property System::Boolean IsCodecTWL; + property System::Boolean IsEULA; + property System::Boolean IsSubBanner; + property System::Boolean IsWiFiIcon; + property System::Boolean IsWirelessIcon; + property System::Boolean IsWL; + + // TWLANZXRg[ Read Only + property System::Boolean IsCommonClientKey; + property System::Boolean IsAesSlotBForES; + property System::Boolean IsAesSlotCForNAM; + property System::Boolean IsSD; + property System::Boolean IsNAND; + property System::Boolean IsGameCardOn; + property System::Boolean IsShared2; + property System::Boolean IsAesSlotBForJpegEnc; + property System::Boolean IsAesSlotBForJpegEncUser; + property System::Boolean IsGameCardNitro; + property System::Boolean IsAesSlotAForSSL; + property System::Boolean IsCommonClientKeyForDebugger; + property System::Boolean IsPhotoWrite; + property System::Boolean IsPhotoRead; + property System::Boolean IsSDWrite; // SDJ[hANZX : tOƂ͕ʂɗpӂꂽ(5.2 RELEASE) + property System::Boolean IsSDRead; + property System::Boolean IsOldSDK52Release; // SDANZX𒲂ׂKv邩 : 5.2 RELEASE ȍ~̂ƂׂKv + property System::Boolean IsOldSDK51PR; // HYBRID-NANDAv֎~Kv邩 : 5.1 PR ȑÔƂׂKv + + // Shared2t@CTCY Read Only + property cli::array ^hShared2SizeArray; + + // J[h[W Read Only + property System::Boolean IsRegionJapan; + property System::Boolean IsRegionAmerica; + property System::Boolean IsRegionEurope; + property System::Boolean IsRegionAustralia; + property System::Boolean IsRegionKorea; + property System::Boolean IsRegionChina; + + // ؐݒtO Read Only + property System::Boolean IsForChina; + property System::Boolean IsForKorea; + + // SDKo[WƎgpCũXg + property System::Collections::Generic::List ^hSDKList; + property System::Collections::Generic::List ^hLicenseList; + + // MRC@\Ń`FbNꂽG[̃Xg + property System::Collections::Generic::List ^hErrorList; + property System::Collections::Generic::List ^hWarnList; + property System::Collections::Generic::List ^hParentalErrorList; // ǂݍݎɔyA^Rg[̃G[ + property System::Collections::Generic::List ^hParentalWarnList; + + // MRClj + property RCMrcExternalCheckItems ^hMrcExternalCheckItems; + + // MRCbZ[W + property RCMessageBank ^hMrcMsg; + + // constructor / destructor / finalizer + private: + RCSrl(){}; + public: + RCSrl( System::String ^msgfileJ, System::String ^msgfileE ); // MRCbZ[W̃t@Cw肷 + ~RCSrl(); + !RCSrl(); + + // method + public: + + // + // ROMwb_̃t@Co + // + // @arg [in/out] o̓t@C + // + ECSrlResult readFromFile( System::String ^srlfile ); + ECSrlResult writeToFile( System::String ^srlfile ); + + // internal method + private: + // ROMŗLROMwb_̐ݒ + ECSrlResult setRomInfo(void); // ROMwb_擾ROMŗLtB[hɔf + ECSrlResult setRomHeader(void); // ROMwb_ROMŗLtB[h̒l𔽉f + + // yA^Rg[̐ݒ + bool setRegionInfo( u32 region ); // [W擾(G[o^) @ret [Wǂ + void setUnnecessaryRatingInfo( u32 region ); // [eBO񂪕svǂ擾(G[o^) + void setRatingInfo( u32 region ); // [WɊ܂܂ĉ̃[eBO擾 + void setOneRatingOrgInfo( int ogn ); // 1‚̒ĉ̃[eBO擾(G[o^) + void setRatingRomHeader( u32 region ); // ROMwb_ɃtB[h̒l𔽉f + + // ROMwb_̍XV + ECSrlResult calcRomHeaderCRC(void); // ROMwb_CRCČvZ + ECSrlResult signRomHeader(void); // ROMwb_XV̍ď + ECSrlResult decryptRomHeader( ROM_Header *prh ); // ROMwb_̏O + + // SRLoCiȐݒ𒲂ׂ + ECSrlResult hasDSDLPlaySign( FILE *fp ); + // DS_E[hSRLɊi[Ă邩ׂ + // @arg [in] ̓t@CFP (->SRLǂݍݎɎsׂ)] + ECSrlResult searchSDKVersion( FILE *fp ); // SDKo[W擾 + ECSrlResult searchLicenses( FILE *fp ); // gpCZX擾 + ECAppType selectAppType( ROM_Header *prh ); // TitleIDAvʂ肷 + void calcNandUsedSize( FILE *fp ); // NANDTCYvZ + + // MRC(Master ROM Checker)@\ + ECSrlResult mrc( FILE *fp ); + ECSrlResult mrcNTR( FILE *fp ); + ECSrlResult mrcTWL( FILE *fp ); + void mrcAppType( FILE *fp ); + void mrcAccessControl( FILE *fp ); + void mrcPadding( FILE *fp ); + void mrcBanner( FILE *fp ); + void mrcReservedArea( FILE *fp ); + void mrcShared2( FILE *fp ); + void mrcSDKVersion( FILE *fp ); + void mrcChinaKorea(void); + void mrcTrialApp( FILE *fp ); // ̌ŃAvp̒lj`FbN + + // MRCbZ[Wlj + RCMrcError^ makeMrcError( System::UInt32 beg, System::UInt32 end, System::Boolean isEnableModify, System::Boolean isAffectRom, + RCMrcError::PurposeType purpose, + System::String ^tag, ... cli::array ^args ); + RCMrcError^ makeMrcError( RCMrcError::PurposeType purpose, System::String ^tag, ... cli::array ^args ); + RCMrcError^ makeMrcError( System::String ^tag, ... cli::array ^args ); + + }; // end of ref class RCSrl + +} // end of namespace MasterEditorTWL diff --git a/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/MasterEditorTWL/srl_const.h b/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/MasterEditorTWL/srl_const.h new file mode 100644 index 0000000..280aed7 --- /dev/null +++ b/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/MasterEditorTWL/srl_const.h @@ -0,0 +1,57 @@ +#pragma once + +// ROMf[^(SRL)NX֘A̒萔錾 + +#include +#include "common.h" +#include +#include +#include +#include "utility.h" + +namespace MasterEditorTWL +{ + // ------------------------------------------------------------------- + // Type : enum class + // Name : ECSrlResult + // + // Description : RCSrlNX̑ł̃G[錾 + // ------------------------------------------------------------------- + enum class ECSrlResult + { + NOERROR = 0, + // G[肵ȂĂ킩Ƃ̕Ԃl + // (G[”\̂ӏ1 etc.) + ERROR, + // t@Cł̃G[ + ERROR_FILE_OPEN, + ERROR_FILE_READ, + ERROR_FILE_WRITE, + // ł̃G[ + ERROR_SIGN_ENCRYPT, // łȂ + ERROR_SIGN_DECRYPT, // łȂ + ERROR_SIGN_VERIFY, // ̃_CWFXgȂ + // CRCZoł̃G[ + ERROR_SIGN_CRC, + // SDKo[W擾ł̃G[ + ERROR_SDK, + // vbgtH[NTRp or soCi + ERROR_PLATFORM, + }; + + // ------------------------------------------------------------------- + // Type : enum class + // Name : ECAppType + // + // Description : RCSrlNX̃Avʂ錾 + // ------------------------------------------------------------------- + enum class ECAppType + { + USER = 0, + SYSTEM, + SECURE, + LAUNCHER, + ILLEGAL, // s + }; //ECAppType + +} // end of namespace MasterEditorTWL \ No newline at end of file diff --git a/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/MasterEditorTWL/srl_element.h b/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/MasterEditorTWL/srl_element.h new file mode 100644 index 0000000..df29cf1 --- /dev/null +++ b/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/MasterEditorTWL/srl_element.h @@ -0,0 +1,423 @@ +#pragma once + +// ROMf[^(SRL)NX̊֘ANX̐錾ƒ` + +#include +#include "common.h" +#include +#include +#include +#include "srl_const.h" +#include "utility.h" + +namespace MasterEditorTWL +{ + // ------------------------------------------------------------------- + // Type : ref class + // Name : RCSDKVersion + // + // Description : RCSrlNXɎSDKo[WNX + // + // Role : \̂Ƃăf[^܂Ƃ߂Ă + // ------------------------------------------------------------------- + ref class RCSDKVersion + { + private: + System::String ^hVersion; + System::UInt32 code; + System::Boolean isStatic; + private: + RCSDKVersion(){} // + public: + RCSDKVersion( System::UInt32 code, System::Boolean isStatic ) // ɂ̂݃tB[hݒ”\ + { + this->code = code; + this->isStatic = isStatic; + this->hVersion = MasterEditorTWL::analyzeSDKVersion( this->code ); + } + public: + property System::String ^Version // ɂ̓tB[h Read Only + { + System::String^ get(){ return System::String::Copy(this->hVersion); } + } + public: + property System::Boolean IsStatic + { + System::Boolean get(){ return (this->isStatic); } + } + public: + property System::UInt32 Code + { + System::UInt32 get(){ return (this->code); } + } + //public: + // property System::Byte MajorVersion + // { + // System::Byte get(){ return ((System::Byte)(0xff & (this->code >> 24))); } + // } + // property System::Byte MinorVersion + // { + // System::Byte get(){ return ((System::Byte)(0xff & (this->code >> 16))); } + // } + // property System::UInt16 Relstep + // { + // System::UInt16 get(){ return ((System::UInt16)(0xffff & this->code)); } + // } + }; //RCSDKVersion + + // ------------------------------------------------------------------- + // Type : ref class + // Name : RCLicense + // + // Description : RCSrlNXɎ郉CZXNX + // + // Role : \̂Ƃăf[^܂Ƃ߂Ă + // ------------------------------------------------------------------- + ref class RCLicense + { + private: + System::String ^hPublisher; + System::String ^hName; + private: + RCLicense(){} // + public: + RCLicense( System::String ^pub, System::String ^name ) // ɂ̂݃tB[hݒ”\ + { + if( pub == nullptr ) + this->hPublisher = gcnew System::String(""); + else + this->hPublisher = pub; + + if( name == nullptr ) + this->hName = gcnew System::String(""); + else + this->hName = name; + } + public: + property System::String ^Name // ɂ̓tB[hRead Only + { + System::String^ get(){ return System::String::Copy(this->hName); } + } + public: + property System::String ^Publisher + { + System::String^ get(){ return System::String::Copy(this->hPublisher); } + } + }; //RCLicense + + // ------------------------------------------------------------------- + // Type : value class + // Name : VCReservedArea + // + // Description : \͈̈̔̓NX + // + // Role : \̂Ƃăf[^܂Ƃ߂Ă + // ------------------------------------------------------------------- + value class VCReservedArea + { + private: + System::UInt32 begin; + System::UInt32 end; + // value class ł̓ftHgRXgN^ private ɂĕ邱Ƃ͂łȂ + public: + VCReservedArea( System::UInt32 begin, System::UInt32 end ) + { + this->begin = begin; + this->end = end; + } + public: + property System::UInt32 Begin // read only + { + System::UInt32 get(){ return this->begin; } + } + property System::UInt32 End + { + System::UInt32 get(){ return this->end; } + } + }; //VCReservedArea + + // ------------------------------------------------------------------- + // Type : ref class + // Name : RCNandUsedSize + // + // Description : AṽC|[gNANDTCYNX + // + // Role : \̂Ƃăf[^܂Ƃ߂Ă + // ------------------------------------------------------------------- + ref class RCNandUsedSize + { + // lւ̃ANZX@ + // - ̃f[^TCY : publicoϐ + // - ؂グTCY : property (ReadOnlyȃoϐ̂悤Ɍ) + public: + property System::UInt32 SrlSize; + property System::UInt32 PublicSaveSize; + property System::UInt32 PrivateSaveSize; + property System::Boolean IsMediaNand; // NANDAvǂ + property System::Boolean IsUseSubBanner; // Tuoi[gp邩ǂ + private: + static const System::UInt32 cTmdSize = 16 * 1024; + static const System::UInt32 cSubBannerSize = 16 * 1024; + static const System::UInt32 NandClusterSize = 16 * 1024; + static const System::UInt32 ShopBlockSize = 128 * 1024; + public: + property System::UInt32 SrlSizeRoundUp // ؂グl̓oϐƂĂ͎vZl property Œ + { + System::UInt32 get() + { + if( !this->IsMediaNand ) + { + return 0; + } + return (MasterEditorTWL::roundUp( this->SrlSize, NandClusterSize )); + } + } + property System::UInt32 PublicSaveSizeRoundUp + { + System::UInt32 get(){ return (MasterEditorTWL::roundUp( this->PublicSaveSize, NandClusterSize )); } + } + property System::UInt32 PrivateSaveSizeRoundUp + { + System::UInt32 get(){ return (MasterEditorTWL::roundUp( this->PrivateSaveSize, NandClusterSize )); } + } + property System::UInt32 SubBannerSize // Tuoi[̃TCY͎gp邩ȂňقȂ̂ŌvZl property Œ + { + System::UInt32 get() + { + if( !this->IsUseSubBanner ) + { + return 0; + } + return this->cSubBannerSize; + } + } + property System::UInt32 SubBannerSizeRoundUp + { + System::UInt32 get() + { + if( !this->IsUseSubBanner ) + { + return 0; + } + return (MasterEditorTWL::roundUp( this->SubBannerSize, NandClusterSize )); + } + } + property System::UInt32 TmdSize + { + System::UInt32 get() + { + if( !this->IsMediaNand ) + { + return 0; + } + return this->cTmdSize; + } + } + property System::UInt32 TmdSizeRoundUp + { + System::UInt32 get() + { + if( !this->IsMediaNand ) + { + return 0; + } + return (MasterEditorTWL::roundUp( this->TmdSize, NandClusterSize )); + } + } + property System::UInt32 NandUsedSize // ŜNANDTCY͕ϐŎ property Œ + { + System::UInt32 get() + { + // NANDʂ̌vZ + // ȉ̃t@CNANDNX^P(=16KB)ɐ؂グčv + // + // SRL̎t@CTCY + // PublicZ[uf[^TCY + // PrivateZ[uf[^TCY + // TMDTCY(=16KBŒ) + // Tuoi[TCY(gpɂ16KBŒ sgpɂ0KB) + if( !this->IsMediaNand ) + { + return 0; // J[hAv̂Ƃ0 + } + System::UInt32 size = this->SrlSizeRoundUp + this->PublicSaveSizeRoundUp + this->PrivateSaveSizeRoundUp + + this->TmdSizeRoundUp + this->SubBannerSizeRoundUp; + return size; + } + } + property System::UInt32 NandUsedSizeBlock // Vbvł̃ubN + { + System::UInt32 get() + { + System::UInt32 blocks = MasterEditorTWL::roundUp( this->NandUsedSize, this->ShopBlockSize) + / this->ShopBlockSize; + return blocks; + } + } + }; //RCNandUsedSize + + // ------------------------------------------------------------------- + // Type : ref class + // Name : RCMrcError + // + // Description : RCSrlNXɎMRCG[NX + // + // Role : \̂Ƃăf[^܂Ƃ߂Ă + // ------------------------------------------------------------------- + public ref class RCMrcError + { + public: + enum class PurposeType : System::UInt32 // ^w + { + Production = 1 << 0, // ʔ̔p(J[h/NAND) + TouchTryDS = 1 << 1, // TouchTryDS/DS CENTRE + CardDistribution = 1 << 2, // f[^zMpJ[h + CardKiosk = 1 << 3, // XV(Pƌ^) + DSiShop = 1 << 4, // DSiVbvzMp̌ + DSDownload = 1 << 5, // DS_E[hT[rX(& jeh[`l) + Zone = 1 << 6, // Nintendo Zone + + Common = 0xFFFFFFFF, // ׂĂ̗prŋʂ̃G[ + }; + private: + System::String ^hName; // ږ + System::UInt32 begin; // JnAhX + System::UInt32 end; // IAhX + System::String ^hMsg; // G[bZ[W + System::String ^hNameE; // p + System::String ^hMsgE; + System::Boolean isEnableModify; // }X^GfB^ŏC”\ǂ + System::Boolean isAffectRom; // ύXSRL(ROMoCi)ύX邩 + PurposeType purpose; + private: + RCMrcError(){} // + public: + RCMrcError( // ̌`łCX^X쐬łȂ + System::String ^name, System::UInt32 beg, System::UInt32 end, System::String ^msg, + System::String ^nameE, System::String ^msgE, System::Boolean isEnableModify, System::Boolean isAffectRom, PurposeType purpose ) + { + if( name == nullptr ) + this->hName = gcnew System::String(""); + else + this->hName = name; + + if( nameE == nullptr ) + this->hNameE = gcnew System::String(""); + else + this->hNameE = nameE; + + this->begin = beg; + this->end = end; + + if( msg == nullptr ) + this->hMsg = gcnew System::String(""); + else + this->hMsg = msg; + + if( msgE == nullptr ) + this->hMsgE = gcnew System::String(""); + else + this->hMsgE = msgE; + + this->isEnableModify = isEnableModify; + this->isAffectRom = isAffectRom; + + this->purpose = purpose; + } + public: + property System::Boolean IsEnableModify + { + System::Boolean get(){ return this->isEnableModify; } // Read Only + } + property System::Boolean IsAffectRom + { + System::Boolean get(){ return this->isAffectRom; } + } + property System::String ^Name + { + System::String^ get(){ return System::String::Copy(this->hName); } + } + property System::String ^NameE + { + System::String^ get(){ return System::String::Copy(this->hNameE); } + } + property System::String ^Msg + { + System::String^ get(){ return System::String::Copy(this->hMsg); } + } + property System::String ^MsgE + { + System::String^ get(){ return System::String::Copy(this->hMsgE); } + } + property System::UInt32 Begin + { + System::UInt32 get(){ return this->begin; } + } + property System::UInt32 End + { + System::UInt32 get(){ return this->end; } + } + property PurposeType Purpose + { + PurposeType get(){ return this->purpose; } + } + public: + // gridView̕\`ɂ킹 + cli::array^ getAll( System::Boolean isJapanese ) + { + if( (this->begin == 0) && (this->end == 0) ) + { + if( isJapanese ) + return (gcnew array{this->hName, "-", "-", this->hMsg}); + else + return (gcnew array{this->hNameE, "-", "-", this->hMsgE}); + } + + if( isJapanese ) + return (gcnew array{this->hName, this->begin.ToString("X04")+"h", this->end.ToString("X04")+"h", this->hMsg}); + else + return (gcnew array{this->hNameE, this->begin.ToString("X04")+"h", this->end.ToString("X04")+"h", this->hMsgE}); + } + }; //RCMrcError + + // ------------------------------------------------------------------- + // Type : ref class + // Name : RCMrcExternalCheckItems + // + // Description : MRC`FbNڂ̊Op[^NX + // + // Role : \̂Ƃăf[^܂Ƃ߂Ă + // ------------------------------------------------------------------- + ref class RCMrcExternalCheckItems + { + public: + property System::Boolean IsAppendCheck; // lj`FbN邩ǂ(ׂĂ̍ڂlj`FbNƂ͌Ȃ) + property System::UInt32 SDKVer; // SDK̃o[W + property System::UInt32 SDKVerNotStaticTWL; // SDK̃o[W(TWL풓W[ȊO) + property System::UInt32 SDKVerNotStaticNTR; // SDK̃o[W(NTR풓W[ȊO) + property System::Boolean IsPermitNormalJump; // m[}WvANZX‚Ă邩 + property cli::array ^hIsPermitShared2Array; // Shared2t@CANZX‚Ă邩 + property cli::array ^hShared2SizeArray; // Shared2t@CTCY + property System::Collections::Generic::List ^hReservedAreaList; // \͈̈̔ + public: + RCMrcExternalCheckItems() + { + this->IsAppendCheck = false; + this->SDKVer = 0; + this->SDKVerNotStaticTWL = 0; + this->SDKVerNotStaticNTR = 0; + this->IsPermitNormalJump = false; + this->hIsPermitShared2Array = gcnew cli::array(METWL_NUMOF_SHARED2FILES); + this->hShared2SizeArray = gcnew cli::array(METWL_NUMOF_SHARED2FILES); + System::Int32 i; + for( i=0; i < METWL_NUMOF_SHARED2FILES; i++ ) + { + this->hIsPermitShared2Array[i] = false; + this->hShared2SizeArray[i] = 0; + } + this->hReservedAreaList = gcnew System::Collections::Generic::List; + this->hReservedAreaList->Clear(); + } + }; //RCMrcExternalCheckItems + +} // end of namespace MasterEditorTWL diff --git a/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/MasterEditorTWL/srl_mrc.cpp b/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/MasterEditorTWL/srl_mrc.cpp new file mode 100644 index 0000000..17b712a --- /dev/null +++ b/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/MasterEditorTWL/srl_mrc.cpp @@ -0,0 +1,1457 @@ +// srl.h ̃NX + +#include "stdafx.h" +#include +#include "common.h" +#include "srl.h" +#include "utility.h" +#include "keys.h" +#include "crc_whole.h" +#include "banner_char.h" +#include +#include +#include +#include + +using namespace MasterEditorTWL; + +extern u16 calcCRC( const u16 start, const u8 *data, const int allsize ); + +// **************************************************************** +// RCSrl NX MRC @\ʃt@CɓƗ +// **************************************************************** + +// ------------------------------------------------------------------- +// MRC{ +// ------------------------------------------------------------------- +ECSrlResult RCSrl::mrc( FILE *fp ) +{ +#ifdef METWL_WHETHER_MRC + ECSrlResult result; + result = this->mrcNTR( fp ); + if( result != ECSrlResult::NOERROR ) + { + return result; + } + result = this->mrcTWL( fp ); + if( result != ECSrlResult::NOERROR ) + { + return result; + } + this->hErrorList->AddRange( this->hParentalErrorList ); // yA^Rg[̃Xg͕ʂɂ‚Ă̂Œlj + this->hWarnList->AddRange( this->hParentalWarnList ); +#endif + return ECSrlResult::NOERROR; +} + +// ------------------------------------------------------------------- +// NTR݊MRC +// ------------------------------------------------------------------- +ECSrlResult RCSrl::mrcNTR( FILE *fp ) +{ + System::Int32 i; + System::Boolean result; + + // ^Cg̕R[h`FbN + result = true; + for( i=0; i < TITLE_NAME_MAX; i++ ) + { + char c = this->pRomHeader->s.title_name[i]; + if( ((c < 0x20) || (0x5f < c)) && (c != 0x00) ) + { + result = false; + } + } + if( !result ) + { + this->hErrorList->Add( this->makeMrcError("TitleNameAscii") ); + } + + result = true; + for( i=0; i < TITLE_NAME_MAX; i++ ) + { + char c = this->pRomHeader->s.title_name[TITLE_NAME_MAX - i - 1]; // T + if( ((0x21 <= c ) && (c <= 0x5f)) || (c == 0x00) ) // 00h20hȊO̎gp”\ȕoĂ܂łɃXy[X݂_ + { + break; + } + else if( c == 0x20 ) + { + result = false; + } + } + if( !result ) + { + this->hErrorList->Add( this->makeMrcError("TitleNameSuffix") ); + } + + result = true; + for( i=1; i < TITLE_NAME_MAX; i++ ) + { + char prev = this->pRomHeader->s.title_name[i-1]; + char curr = this->pRomHeader->s.title_name[i]; + if( (prev == 0x00) && (0x21 <= curr) && (curr <= 0x5f) ) // r00hƃ_ + { + result = false; + break; + } + } + if( !result ) + { + this->hErrorList->Add( this->makeMrcError("TitleNameSpace") ); + } + + // Q[R[h̕R[h`FbN + result = true; + for( i=0; i < GAME_CODE_MAX; i++ ) + { + char c = this->pRomHeader->s.game_code[i]; + if( (c < 0x20) || (0x5f < c) ) // 00hȂ + { + result = false; + } + } + if( !result ) + { + this->hErrorList->Add( this->makeMrcError("InitialCodeAscii") ); + } + if( memcmp( this->pRomHeader->s.game_code, "NTRJ", GAME_CODE_MAX ) == 0 ) + { + this->hErrorList->Add( this->makeMrcError("InitialCodeSDKDefault") ); + } + + // [JR[h̕R[h`FbN + result = true; + for( i=0; i < MAKER_CODE_MAX; i++ ) + { + char c = this->pRomHeader->s.maker_code[i]; + if( (c < 0x20) || (0x5f < c) ) + { + result = false; + } + } + if( !result ) + { + this->hErrorList->Add( this->makeMrcError("MakerCodeAscii") ); + } + + // foCX^Cv͕sgpȂ̂00hŒ + if( this->pRomHeader->s.rom_type != 0x00 ) + { + this->hErrorList->Add( this->makeMrcError("DeviceType") ); + } + + // }X^[o[W16i2̂ƂG[ + u8 romver = this->pRomHeader->s.rom_version; + if( ((romver < 0x00) || (0x0f < romver)) && (romver != 0xE0) ) + { + this->hErrorList->Add( this->makeMrcError("RemasterVersion") ); + } + + // Kݒ肳ĂȂ΂ȂȂp[^ + if( this->pRomHeader->s.banner_offset == 0 ) + { + this->hErrorList->Add( this->makeMrcError("BannerOffset") ); + } + if( this->pRomHeader->s.rom_valid_size == 0 ) + { + this->hErrorList->Add( this->makeMrcError("RomValidSize") ); + } + + // CRC + u16 crc; + // ZLÄ + if( !this->IsMediaNand ) // J[hAv̂Ƃ̂ + { + // ZLÄROMwb_OȂ̂Ńt@Cʓrǂݏoă`FbN + u8 *secures; + s32 secure_size = SECURE_AREA_END - this->pRomHeader->s.main_rom_offset; + if (secure_size > SECURE_AREA_SIZE) + { + secure_size = SECURE_AREA_SIZE; + } + if (secure_size <= 0) + { + this->hErrorList->Add( this->makeMrcError("SecureCRCAddress") ); + } + secures = new u8[secure_size]; // never return if not allocated + fseek( fp, (u32)this->pRomHeader->s.main_rom_offset, SEEK_SET ); + if( secure_size != fread( secures, 1, secure_size, fp ) ) + { + delete []secures; + return ECSrlResult::ERROR_FILE_READ; + } + crc = calcCRC(CRC16_INIT_VALUE, (u8 *)secures, secure_size); + delete []secures; + if( crc != this->pRomHeader->s.secure_area_crc16 ) + { + this->hErrorList->Add( this->makeMrcError("SecureCRCVerify") ); + } + } + + // S̈ + crc = 0xcf56; + if( crc != this->pRomHeader->s.nintendo_logo_crc16 ) + { + this->hErrorList->Add( this->makeMrcError("LogoCRC") ); + } + + // wb_CRC + crc = calcCRC( CRC16_INIT_VALUE, (u8*)this->pRomHeader, CALC_CRC16_SIZE ); + if( crc != this->pRomHeader->s.header_crc16 ) + { + this->hErrorList->Add( this->makeMrcError("HeaderCRC") ); + } + + // ROMwb_ȊÖ̗̃`FbN (t@CKX[h) + + // VXeR[Cu + u8 syscall[32]; + u32 offset = this->pRomHeader->s.main_rom_offset; + fseek( fp, offset, SEEK_SET ); + if( 32 != fread( syscall, 1, 32, fp ) ) + { + return ECSrlResult::ERROR_FILE_READ; + } + for( i=0; i < 32; i++ ) + { + if( syscall[i] != 0x00 ) + break; + } + if( i == 32 ) // S0 + { + this->hErrorList->Add( this->makeMrcError( + RCMrcError::PurposeType::Production | RCMrcError::PurposeType::CardKiosk | RCMrcError::PurposeType::CardDistribution | + RCMrcError::PurposeType::DSiShop, + "Syscall") ); + } + return ECSrlResult::NOERROR; +} // mrcNTR() + +// ------------------------------------------------------------------- +// TWLpMRC +// ------------------------------------------------------------------- +ECSrlResult RCSrl::mrcTWL( FILE *fp ) +{ + // ROMwb_̃`FbN (NTR݊̈) + + // JnAhX0x02004000ÔƂɂ̓G[ + if( (u32)(this->pRomHeader->s.main_ram_address) < 0x02004000 ) + { + this->hErrorList->Add( this->makeMrcError("RomStartAddress") ); + } + + // _CWFXg͈͂t@CTCYƂG[ + fseek( fp, 0, SEEK_END ); + u32 fileend = ftell(fp); + if( (fileend < (this->pRomHeader->s.twl_digest_area_rom_offset + this->pRomHeader->s.twl_digest_area_size)) || + (fileend < (this->pRomHeader->s.twl_digest_area_rom_offset + this->pRomHeader->s.twl_digest_area_size)) ) + { + this->hErrorList->Add( this->makeMrcError("DigestArea") ); + } + + // SDK̃o[WɂĂLIMITED̃J[hAv֎~ + if( !this->IsMediaNand && (this->pRomHeader->s.platform_code == PLATFORM_CODE_TWL_LIMITED) ) + { + for each( RCSDKVersion ^sdk in this->hSDKList ) + { + if( sdk->IsStatic ) + { + System::Byte major = (System::Byte)(0xff & (sdk->Code >> 24)); + System::Byte minor = (System::Byte)(0xff & (sdk->Code >> 16)); + System::UInt16 relstep = (System::UInt16)(0xffff & sdk->Code); + if( (major == 5) && (minor == 3) && (30000 <= relstep) && (relstep < 30001) ) + { + this->hErrorList->Add( this->makeMrcError("LimitedCard53") ); + } + else if( (major == 5) && (minor == 2) && (30000 <= relstep) && (relstep < 30003) ) + { + this->hErrorList->Add( this->makeMrcError("LimitedCard52") ); + } + } + } + } + + // NANDAvHYBRIDƂȂ̂̓N[u[ĝƂ̂ + if( this->IsMediaNand ) + { + if( !this->HasDSDLPlaySign && (this->pRomHeader->s.platform_code == PLATFORM_CODE_TWL_HYBLID) ) + { + this->hErrorList->Add( this->makeMrcError("NandHybrid") ); + } + if( this->HasDSDLPlaySign && (this->pRomHeader->s.platform_code == PLATFORM_CODE_TWL_LIMITED) ) + { + this->hErrorList->Add( this->makeMrcError("NandLimited") ); + } + } + + // SDK5.1PRÕo[Wł̓N[u[gΉȂ̂NAND-HYBRID֎~ + if( this->IsMediaNand ) + { + if( this->IsOldSDK51PR && (this->pRomHeader->s.platform_code == PLATFORM_CODE_TWL_HYBLID) ) + { + this->hWarnList->Add( this->makeMrcError("NandHybridBefore51PR") ); + } + } + + // JpÍtOƃN[u[g̑gݍ킹̓}X^OŖ + if( this->IsOldDevEncrypt && this->HasDSDLPlaySign ) + { + this->hErrorList->Add( this->makeMrcError("OldDevFlag") ); + } + + // foCXeʂƎt@CTCY + fseek( fp, 0, SEEK_END ); + u32 filesize = ftell(fp); // t@CTCY + u32 romsize = 1 << (this->pRomHeader->s.rom_size); // ROMe(PMbit) + if( !this->IsMediaNand ) // J[hAv̂Ƃ݂̂̃`FbN + { + u32 filesizeMb = (filesize / (1024*1024)) * 8; // PʂMbitɒ + if( romsize < filesizeMb ) + { + // Touch!Try!DSpROM + this->hErrorList->Add( this->makeMrcError( + RCMrcError::PurposeType::Production | RCMrcError::PurposeType::CardKiosk | RCMrcError::PurposeType::CardDistribution, + "CapacityCardLess") ); + } + else if( filesizeMb < romsize ) + { + this->hWarnList->Add( this->makeMrcError( + RCMrcError::PurposeType::Production | RCMrcError::PurposeType::CardKiosk | RCMrcError::PurposeType::CardDistribution, + "CapacityCardWaste") ); + } + if( (romsize < METWL_ROMSIZE_MIN) || (METWL_ROMSIZE_MAX < romsize) ) + { + this->hErrorList->Add( this->makeMrcError( + RCMrcError::PurposeType::Production | RCMrcError::PurposeType::CardKiosk | RCMrcError::PurposeType::CardDistribution, + "CapacityCardRange") ); + } + if( (filesizeMb < 1) || (MasterEditorTWL::countBits(filesizeMb) != 1) ) // Ărbg1‚ǂłׂ悩ǂ𒲂ׂ + { + this->hWarnList->Add( this->makeMrcError( + RCMrcError::PurposeType::Production | RCMrcError::PurposeType::CardKiosk | RCMrcError::PurposeType::CardDistribution, + "FilesizeFraction") ); + } + } //if( *(this->hIsNAND) == false ) + else // NANDAv̂Ƃ݂̂̃`FbN + { + if( (romsize < METWL_ROMSIZE_MIN_NAND) || (METWL_ROMSIZE_MAX_NAND < romsize) ) + { + this->hErrorList->Add( this->makeMrcError( + RCMrcError::PurposeType::Production | RCMrcError::PurposeType::DSiShop, + "CapacityNandRange") ); + } + //u32 allsize = filesize + this->pRomHeader->s.public_save_data_size + this->pRomHeader->s.private_save_data_size; + u32 allsize = this->hNandUsedSize->NandUsedSize; // TMDTuoi[̃TCY܂߂ + if( allsize > METWL_ALLSIZE_MAX_NAND ) + { + this->hErrorList->Add( this->makeMrcError("UsedNandSizeLimit") ); + } + if( (allsize > METWL_ALLSIZE_MAX_NAND_LIC) && this->IsAppUser ) // [UAv̂Ƃ̂ + { + this->hErrorList->Add( this->makeMrcError( + RCMrcError::PurposeType::Production | RCMrcError::PurposeType::DSiShop, + "UsedNandSizeExceed") ); + } + } + + // pfBO + if( !this->IsMediaNand ) + { + // 1Gbitȏ̂Ƃ̍ŏÏ悪Œlǂ + this->mrcPadding( fp ); + + // ZOg3CRC + u16 crcseg3; + BOOL crcret = getSeg3CRCInFp( fp, &crcseg3 ); + if( !crcret || (crcseg3 != METWL_SEG3_CRC) ) + { + this->hErrorList->Add( this->makeMrcError( + RCMrcError::PurposeType::Production | RCMrcError::PurposeType::CardKiosk | RCMrcError::PurposeType::CardDistribution, + "Seg3CRC") ); + } + } + + // ROMItZbg + if( !this->IsMediaNand ) + { + u16 NA = this->pRomHeader->s.twl_card_normal_area_rom_offset & 0x7fffUL; + u16 KA = this->pRomHeader->s.twl_card_keytable_area_rom_offset; + if( (NA == 0) || (KA == 0) || (NA > KA) ) + { + this->hErrorList->Add( this->makeMrcError("TwlRomOffset") ); + } + } + + // fobK֎~tO̓[UAvł͗ĂĂ͂Ȃ + // VXeAvł̓fobKʼn͂Ȃ悤ɒʏł͗ĂȂ΂ȂȂ + if( !this->IsAppUser ) + { + if( this->pRomHeader->s.disable_debug == 0 ) + { + this->hWarnList->Add( this->makeMrcError("DisableDebugSystem") ); + } + } + else + { + if( this->pRomHeader->s.disable_debug != 0 ) + { + this->hErrorList->Add( this->makeMrcError("DisableDebugUser") ); + } + } + + // AvWv + { + u8 okbits = 0x01 | 0x02 | 0x40 | 0x80; + u8 *p = (u8*)&(this->pRomHeader->s); + if( p[0x1d] & ~okbits ) + { + this->hErrorList->Add( this->makeMrcError("ExtraRegion") ); + } + if( !this->IsMediaNand && this->IsNormalJump ) + { + this->hErrorList->Add( this->makeMrcError( + RCMrcError::PurposeType::Production | RCMrcError::PurposeType::CardKiosk | RCMrcError::PurposeType::CardDistribution, + "NormalJumpCard") ); + } + if( !this->IsMediaNand && this->IsTmpJump ) + { + this->hErrorList->Add( this->makeMrcError( + RCMrcError::PurposeType::Production | RCMrcError::PurposeType::CardKiosk | RCMrcError::PurposeType::CardDistribution, + "TmpJumpCard") ); + } + if( this->IsNormalJump && this->IsTmpJump ) + { + this->hErrorList->Add( this->makeMrcError("NormalJumpAndTmpJump") ); + } + } + + // NANDAv̂ƂɂROM̎(MROM/1TROM)ݒ肳ĂȂĂ悢 + if( (this->pRomHeader->s.warning_no_spec_rom_speed != 0) && !this->IsMediaNand ) + { + this->hErrorList->Add( this->makeMrcError("RomSpeedType") ); + } + // 1TROM̂݋(ROM̎ނݒ肳ȂƂftHg1TROMƂȂ) + if( (this->pRomHeader->s.game_cmd_param & CARD_LATENCY_MASK) != CARD_1TROM_GAME_LATENCY ) + { + this->hErrorList->Add( this->makeMrcError("RomControl") ); + } + + // AESĂȂƃG[ + if( !this->IsMediaNand ) + { + if( (this->pRomHeader->s.enable_aes == 0) || (this->pRomHeader->s.aes_target_size == 0) ) + { + this->hErrorList->Add( this->makeMrcError("AES") ); + } + } + else // NANDAv + { + if( (this->pRomHeader->s.enable_aes == 0) || (this->pRomHeader->s.aes_target_size == 0) || (this->pRomHeader->s.aes_target2_size == 0) ) + { + this->hErrorList->Add( this->makeMrcError("AES") ); + } + } + + // Avʂ̃`FbN + this->mrcAppType(fp); + + // efoCXւ̃ANZXtÕ`FbN + this->mrcAccessControl(fp); + this->mrcShared2(fp); + + // NTRzCgXg + if( this->IsWL ) + { + this->hErrorList->Add( this->makeMrcError("WhiteList") ); + } + + // ʐMACR\ + if( this->IsWiFiIcon && this->IsWirelessIcon ) + { + this->hErrorList->Add( this->makeMrcError("ConnectIcon") ); + } + + // TWL Limited static ̈ʒu KeyTable ̈OɂĂ͂Ȃ + if( !this->IsMediaNand ) + { + u32 ideal = (this->pRomHeader->s.twl_card_keytable_area_rom_offset * 0x80000) + 0x3000; // TWL KeyTablë̊Jn + KeyTableTCY + u32 actual = this->pRomHeader->s.main_ltd_rom_offset; + if( ideal > actual ) + { + this->hErrorList->Add( this->makeMrcError("LimitedStatic") ); + } + } + + // `[ȊOSCFGɃANZXĂ͂ȂȂ + if( !this->IsAppLauncher && this->IsSCFGAccess ) + { + this->hWarnList->Add( this->makeMrcError("SCFGAccess") ); + } + + // TitleID Lo ̓Q[R[h̋t + if( (this->pRomHeader->s.titleID_Lo[0] != this->pRomHeader->s.game_code[3]) || + (this->pRomHeader->s.titleID_Lo[1] != this->pRomHeader->s.game_code[2]) || + (this->pRomHeader->s.titleID_Lo[2] != this->pRomHeader->s.game_code[1]) || + (this->pRomHeader->s.titleID_Lo[3] != this->pRomHeader->s.game_code[0]) ) + { + this->hWarnList->Add( this->makeMrcError("TitleID") ); + } + + // J[hAvPublic/PrivateZ[uf[^ݒ肵Ă͂Ȃ + if( !this->IsMediaNand ) + { + if( (this->PublicSize > 0) || (this->PrivateSize) ) + { + this->hErrorList->Add( this->makeMrcError("SaveData") ); + } + } + + // oi[̕R[h + this->mrcBanner( fp ); + + // \̈ɗ]vȃf[^ĂȂ + this->mrcReservedArea(fp); + + // FINALROMrhłȂƂSDɃANZXłĂ܂̂ŃG[ + for each( RCLicense ^lic in this->hLicenseList ) + { + if( lic->Publisher->Equals( "NINTENDO" ) && lic->Name->Equals( "DEBUG" ) ) + { + this->hErrorList->Add( this->makeMrcError("DebugBuild") ); + } + if( lic->Publisher->Equals( "NINTENDO" ) && lic->Name->StartsWith( "DEBUG DWC" ) ) + { + this->hErrorList->Add( this->makeMrcError("DwcDebug") ); + } + } + + // ؔŃ`FbN + this->mrcChinaKorea(); + + // lj`FbN + this->mrcSDKVersion(fp); + + // ̌ŗplj`FbN + this->mrcTrialApp(fp); + + return ECSrlResult::NOERROR; +} // mrcTWL() + +// ------------------------------------------------------------------- +// Avʂ̃`FbN +// ------------------------------------------------------------------- +void RCSrl::mrcAppType(FILE *fp) +{ + u32 idH; + u8 idL[4]; + int apptype; + const int appUser = 0; + const int appSystem = 1; + const int appSecure = 2; + const int appLauncher = 3; + System::String ^appstr = gcnew System::String(""); + + idH = this->pRomHeader->s.titleID_Hi; + memcpy( idL, &(this->pRomHeader->s.titleID_Lo[0]), 4 ); + + if( (idL[3]=='H') && (idL[2]=='N') && (idL[1]=='A') ) // `AvǂTitleID_Lo̒lŌ + { + apptype = appLauncher; + appstr = "Launcher"; + } + else if( idH & TITLE_ID_HI_SECURE_FLAG_MASK ) // ĂZLAAv + { + apptype = appSecure; + appstr = "Secure"; + } + else if( (idH & TITLE_ID_HI_APP_TYPE_MASK) == 1 ) // ĂVXeAv + { + apptype = appSystem; + appstr = "System"; + } + else if( (idH & TITLE_ID_HI_APP_TYPE_MASK) == 0 ) // c̓[UAv + { + apptype = appUser; + appstr = "User"; + } + else + { + apptype = -1; + } + + if( apptype < 0 ) + { + this->hWarnList->Add( this->makeMrcError("IllegalAppType") ); + } + + System::Boolean bApp = false; +#ifdef METWL_VER_APPTYPE_LAUNCHER + if( apptype == appLauncher ) + { + bApp = true; + } + else +#endif //#ifdef METWL_VER_APPTYPE_LAUNCHER +#ifdef METWL_VER_APPTYPE_SECURE + if( apptype == appSecure ) + { + bApp = true; + } + else +#endif //#ifdef METWL_VER_APPTYPE_SECURE +#ifdef METWL_VER_APPTYPE_SYSTEM + if( apptype == appSystem ) + { + bApp = true; + } + else +#endif //#ifdef METWL_VER_APPTYPE_SYSTEM +#ifdef METWL_VER_APPTYPE_USER + if( apptype == appUser ) + { + bApp = true; + } +#endif //#ifdef METWL_VER_APPTYPE_USER + + if( !bApp ) + { + this->hWarnList->Add( this->makeMrcError("DifferentAppType", appstr) ); + } +} //RCSrl::mrcAppType() + +// ------------------------------------------------------------------- +// ANZXRg[̃`FbN +// ------------------------------------------------------------------- +void RCSrl::mrcAccessControl(FILE *fp) +{ + if( (this->pRomHeader->s.access_control.game_card_on != 0) && + (this->pRomHeader->s.access_control.game_card_nitro_mode != 0) ) + { + this->hErrorList->Add( this->makeMrcError("CardAccess") ); + } + + // TCLCugpĂ邩ǂ𒲂ׂ + System::Boolean useTcl = false; + for each( RCLicense ^lic in this->hLicenseList ) + { + if( lic->Publisher->StartsWith("NINTENDO") && lic->Name->StartsWith("TCL") ) + { + useTcl = true; + } + } + + // TCL_DeletePicture() gpĂ͂ȂSDK𒲂ׂ(DEA-SUPQ) + bool prohibid = false; + if( useTcl && (this->pRomHeader->s.access_control.photo_access_write != 0) ) + { + for each( RCSDKVersion ^sdk in this->hSDKList ) + { + if( sdk->IsStatic ) + { + System::Byte major = (System::Byte)(0xff & (sdk->Code >> 24)); + System::Byte minor = (System::Byte)(0xff & (sdk->Code >> 16)); + System::UInt16 relstep = (System::UInt16)(0xffff & sdk->Code); + if( (major == 5) && (minor == 3) && (30000 <= relstep) && (relstep < 30003) ) + { + this->hWarnList->Add( this->makeMrcError("TclDeletePicture53") ); + } + else if( (major == 5) && (minor == 2) && (30000 <= relstep) && (relstep < 30004) ) + { + this->hWarnList->Add( this->makeMrcError("TclDeletePicture52") ); + } + } + } + } + + if( !this->IsAppUser ) // VXeAv + { + if( this->pRomHeader->s.access_control.common_client_key != 0 ) + { + this->hWarnList->Add( this->makeMrcError("IllegalAccessSystem", "Common Client Key") ); + } + if( this->pRomHeader->s.access_control.hw_aes_slot_B != 0 ) + { + this->hWarnList->Add( this->makeMrcError("IllegalAccessSystem", "HW AES Slot B for ES") ); + } + if( this->pRomHeader->s.access_control.hw_aes_slot_C != 0 ) + { + this->hWarnList->Add( this->makeMrcError("IllegalAccessSystem", "HW AES Slot C for NAM") ); + } + if( this->pRomHeader->s.access_control.sd_card_access != 0 ) + { + this->hWarnList->Add( this->makeMrcError("SDAccessSystem") ); + } + if( this->pRomHeader->s.access_control.game_card_on != 0 ) + { + this->hWarnList->Add( this->makeMrcError("GameCardNormalAccessSystem") ); + } + if( this->pRomHeader->s.access_control.hw_aes_slot_B_SignJPEGForLauncher != 0 ) + { + this->hWarnList->Add( this->makeMrcError("IllegalAccessSystem", "HW AES Slot B (JPEG signature) for the launcher") ); + } + if( this->pRomHeader->s.access_control.game_card_nitro_mode != 0 ) + { + this->hWarnList->Add( this->makeMrcError("GameCardNTRAccessSystem") ); + } + if( this->pRomHeader->s.access_control.hw_aes_slot_A_SSLClientCert != 0 ) + { + this->hWarnList->Add( this->makeMrcError("IllegalAccessSystem", "HW AES Slot A for the SSL client certification") ); + } + if( (this->pRomHeader->s.access_control.hw_aes_slot_B_SignJPEGForUser != 0) ) + { + this->hWarnList->Add( this->makeMrcError("JpegSignAccessSystem") ); + } + if( this->pRomHeader->s.access_control.common_client_key_for_debugger_sysmenu != 0 ) + { + this->hWarnList->Add( this->makeMrcError("IllegalAccessSystem", "Common Client Key for the debugger system menu") ); + } + if( this->pRomHeader->s.access_control.photo_access_read != 0 ) + { + this->hWarnList->Add( this->makeMrcError("IllegalAccessSystem", "Photo Database (Read)") ); + } + if( this->pRomHeader->s.access_control.photo_access_write != 0 ) + { + this->hWarnList->Add( this->makeMrcError("IllegalAccessSystem", "Photo Database (Write)") ); + } + if( this->pRomHeader->s.access_control.sdmc_access_read != 0 ) + { + this->hWarnList->Add( this->makeMrcError("IllegalAccessSystem", "SD Card (Read)") ); + } + if( this->pRomHeader->s.access_control.sdmc_access_write != 0 ) + { + this->hWarnList->Add( this->makeMrcError("IllegalAccessSystem", "SD Card (Write)") ); + } + if( this->pRomHeader->s.access_control.backup_access_read != 0 ) + { + this->hWarnList->Add( this->makeMrcError("IllegalAccessSystem", "Game Card (Read)") ); + } + if( this->pRomHeader->s.access_control.backup_access_write != 0 ) + { + this->hWarnList->Add( this->makeMrcError("IllegalAccessSystem", "Game Card (Write)") ); + } + + // ̑̃rbg + u32 okbits = 0x8001FFFF; + u32 *p = (u32*)&(this->pRomHeader->s); + if( p[ 0x1b4 / 4 ] & ~okbits ) + { + this->hErrorList->Add( this->makeMrcError("AccessDefault") ); + } + } + else // [UAv + { + if( this->pRomHeader->s.access_control.common_client_key != 0 ) + { + this->hErrorList->Add( this->makeMrcError("IllegalAccessUser", "Common Client Key") ); + } + if( this->pRomHeader->s.access_control.hw_aes_slot_B != 0 ) + { + this->hErrorList->Add( this->makeMrcError("IllegalAccessUser", "HW AES Slot B for ES") ); + } + if( this->pRomHeader->s.access_control.hw_aes_slot_C != 0 ) + { + this->hErrorList->Add( this->makeMrcError("IllegalAccessUser", "HW AES Slot C for NAM") ); + } + if( !this->IsMediaNand && (this->pRomHeader->s.access_control.nand_access != 0) ) // J[hAv̂Ƃ̂ + { + this->hErrorList->Add( this->makeMrcError("NandAccessUser") ); + } + if( this->pRomHeader->s.access_control.game_card_on != 0 ) + { + this->hErrorList->Add( this->makeMrcError( + RCMrcError::PurposeType::Production | RCMrcError::PurposeType::CardKiosk | RCMrcError::PurposeType::CardDistribution | + RCMrcError::PurposeType::DSiShop, + "GameCardNormalAccessUser") ); + } + if( this->pRomHeader->s.access_control.hw_aes_slot_B_SignJPEGForLauncher != 0 ) + { + this->hErrorList->Add( this->makeMrcError("IllegalAccessUser", "HW AES Slot B (JPEG signature) for the launcher") ); + } + if( this->pRomHeader->s.access_control.game_card_nitro_mode != 0 ) + { + this->hErrorList->Add( this->makeMrcError( + RCMrcError::PurposeType::Production | RCMrcError::PurposeType::CardKiosk | RCMrcError::PurposeType::CardDistribution | + RCMrcError::PurposeType::DSiShop, + "GameCardNTRAccessUser") ); + } + if( this->pRomHeader->s.access_control.hw_aes_slot_A_SSLClientCert != 0 ) + { + this->hErrorList->Add( this->makeMrcError("IllegalAccessUser", "HW AES Slot A for the SSL client certification") ); + } + if( this->pRomHeader->s.access_control.backup_access_read != 0 ) + { + this->hErrorList->Add( this->makeMrcError( + RCMrcError::PurposeType::Production | RCMrcError::PurposeType::CardKiosk | RCMrcError::PurposeType::CardDistribution | + RCMrcError::PurposeType::DSiShop, + "GameCardReadAccessUser") ); + } + if( this->pRomHeader->s.access_control.backup_access_write != 0 ) + { + this->hErrorList->Add( this->makeMrcError( + RCMrcError::PurposeType::Production | RCMrcError::PurposeType::CardKiosk | RCMrcError::PurposeType::CardDistribution | + RCMrcError::PurposeType::DSiShop, + "GameCardWriteAccessUser") ); + } + + // SDANZX 5.2RELEASE œ̃Avɂ͋‚ + if( !this->IsMediaNand ) + { + // J[hAvSDANZX֎~ + if( this->pRomHeader->s.access_control.sd_card_access != 0 ) + { + this->hErrorList->Add( this->makeMrcError( + RCMrcError::PurposeType::Production | RCMrcError::PurposeType::CardKiosk | RCMrcError::PurposeType::CardDistribution, + "SDAccessUser") ); + } + if( this->pRomHeader->s.access_control.sdmc_access_read != 0 ) + { + this->hErrorList->Add( this->makeMrcError( + RCMrcError::PurposeType::Production | RCMrcError::PurposeType::CardKiosk | RCMrcError::PurposeType::CardDistribution, + "SDReadAccessUser") ); + } + if( this->pRomHeader->s.access_control.sdmc_access_write != 0 ) + { + this->hErrorList->Add( this->makeMrcError( + RCMrcError::PurposeType::Production | RCMrcError::PurposeType::CardKiosk | RCMrcError::PurposeType::CardDistribution, + "SDWriteAccessUser") ); + } + } + else + { + // 5.2 RELEASEǂŔ肪 + if( this->IsOldSDK52Release ) + { + // 5.2 RELEASEȑO͌SDANZX֎~ + if( this->pRomHeader->s.access_control.sd_card_access != 0 ) + { + this->hErrorList->Add( this->makeMrcError( + RCMrcError::PurposeType::Production | RCMrcError::PurposeType::DSiShop, + "SDAccessUser") ); + } + if( this->pRomHeader->s.access_control.sdmc_access_read != 0 ) + { + this->hErrorList->Add( this->makeMrcError( + RCMrcError::PurposeType::Production | RCMrcError::PurposeType::DSiShop, + "SDReadAccessUser") ); + } + if( this->pRomHeader->s.access_control.sdmc_access_write != 0 ) + { + this->hErrorList->Add( this->makeMrcError( + RCMrcError::PurposeType::Production | RCMrcError::PurposeType::DSiShop, + "SDWriteAccessUser") ); + } + } + else + { + // 5.2 RELEASEȍ~̓ANZXݒ肳Ă΃G[oȂ + if( (this->pRomHeader->s.access_control.sd_card_access != 0) && // SDJ[hANZXLɂȂĂ̂ + (this->pRomHeader->s.access_control.sdmc_access_write == 0) && // ANZX̃tOĂ + (this->pRomHeader->s.access_control.sdmc_access_read == 0 ) ) + { + this->hErrorList->Add( this->makeMrcError( + RCMrcError::PurposeType::Production | RCMrcError::PurposeType::DSiShop, + "SDAccessPriv") ); + } + } + } //else + + if( !this->IsMediaNand ) + { + // J[hƎʐ^̈ւ̃ANZX͋֎~ + if( this->pRomHeader->s.access_control.photo_access_read != 0 ) + { + this->hErrorList->Add( this->makeMrcError("PhotoReadAccessUser") ); + } + if( this->pRomHeader->s.access_control.photo_access_write != 0 ) + { + this->hErrorList->Add( this->makeMrcError("PhotoWriteAccessUser") ); + } + // Jpeg֎~ + if( this->pRomHeader->s.access_control.hw_aes_slot_B_SignJPEGForUser != 0 ) + { + this->hErrorList->Add( this->makeMrcError("JpegSignAccessUserCard") ); + } + } + else + { + // photoւ̃CgANZX̂JpegȂƂ + if( (this->pRomHeader->s.access_control.photo_access_write != 0) && + (this->pRomHeader->s.access_control.hw_aes_slot_B_SignJPEGForUser == 0) ) + { + this->hErrorList->Add( this->makeMrcError("PhotoJpegSignAccessUser") ); + } + // photoփCgȂJpegLȂƂ + if( (this->pRomHeader->s.access_control.photo_access_write == 0) && + (this->pRomHeader->s.access_control.hw_aes_slot_B_SignJPEGForUser != 0) ) + { + this->hErrorList->Add( this->makeMrcError("JpegSignAccessUserNand") ); + } + } + + // photoANZX̂TCLCugpĂȂƂ + if( (this->pRomHeader->s.access_control.photo_access_read != 0) || + (this->pRomHeader->s.access_control.photo_access_write != 0) ) + { + if( !useTcl ) + { + this->hErrorList->Add( this->makeMrcError("PhotoTclAccessUser") ); + } + } + + if( this->pRomHeader->s.access_control.common_client_key_for_debugger_sysmenu != 0 ) + { + this->hErrorList->Add( this->makeMrcError("IllegalAccessUser", "Common Client Key for the debugger system menu") ); + } + + u32 okbits = 0x8001FFFF; + u32 *p = (u32*)&(this->pRomHeader->s); + if( p[ 0x1b4 / 4 ] & ~okbits ) + { + this->hErrorList->Add( this->makeMrcError("AccessDefault") ); + } + } //else +} //RCSrl::mrcAccessControl() + +// ------------------------------------------------------------------- +// pfBÕ`FbN +// ------------------------------------------------------------------- +void RCSrl::mrcPadding(FILE *fp) +{ + u32 romsize = 1 << (this->pRomHeader->s.rom_size); // ROMe + u32 padsize = 0; // PʂByte + System::String ^padstr = gcnew System::String(""); + System::String ^romstr = gcnew System::String(""); + + switch( romsize ) + { + case 1024: + padsize = 0x00280000; // 20Mbit = 2.5MB + padstr = "20Mbit"; + romstr = "1Gbit"; + break; + case 2048: + padsize = 0x00500000; // 40Mbit = 5MB + padstr = "40Mbit"; + romstr = "2Gbit"; + break; + case 4096: + padsize = 0x00A60000; // 83Mbit = 10.375MB + padstr = "83Mbit"; + romstr = "4Gbit"; + break; + default: + padsize = 0; + break; + } + if( padsize == 0 ) + { + return; + } + + fseek( fp, 0, SEEK_END ); + u32 filesize = ftell(fp); // t@CTCY(PMbit) + u32 offset = ((romsize / 8) * 1024 * 1024) - padsize; + if( (offset + padsize) > filesize ) + { + this->hErrorList->Add( this->makeMrcError( + RCMrcError::PurposeType::Production | RCMrcError::PurposeType::CardKiosk | RCMrcError::PurposeType::CardDistribution, + "PaddingRead", padstr) ); + return; + } + + u8 *buf = new u8[ padsize ]; + fseek( fp, offset, SEEK_SET ); + if( padsize != fread( buf, 1, padsize, fp ) ) + { + this->hErrorList->Add( this->makeMrcError( + RCMrcError::PurposeType::Production | RCMrcError::PurposeType::CardKiosk | RCMrcError::PurposeType::CardDistribution, + "PaddingRead", padstr) ); + delete []buf; + return; + } + + System::Boolean bResult = true; + u32 i; + for( i=0; i < padsize; i++ ) + { + if( buf[i] != 0xff ) + { + bResult = false; + } + } + if( !bResult ) + { + this->hErrorList->Add( this->makeMrcError( + RCMrcError::PurposeType::Production | RCMrcError::PurposeType::CardKiosk | RCMrcError::PurposeType::CardDistribution, + "PaddingValue", padstr, romstr) ); + } + delete []buf; +} //RCSrl::mrcPadding + +// ------------------------------------------------------------------- +// \̈ +// ------------------------------------------------------------------- +void RCSrl::mrcReservedArea(FILE *fp) +{ + // \̈̏̓XgɊi[Ă + for each( MasterEditorTWL::VCReservedArea area in this->hMrcExternalCheckItems->hReservedAreaList ) + { + System::UInt32 begin = area.Begin; + System::UInt32 end = area.End; + System::UInt32 size = end - begin + 1; + System::UInt32 i; + System::Boolean bReserved = true; + for( i=0; i < size; i++ ) + { + u8 *p = (u8*)this->pRomHeader; + if( p[ begin + i ] != 0 ) + { + bReserved = false; + break; + } + } + if( !bReserved ) + { + // begin end mrc_msg.xml ɂ͋LڂĂȂ̂ŌĂяoƂ͈قȂ + this->hErrorList->Add( this->makeMrcError(begin, end, false, true, RCMrcError::PurposeType::Common, "ReservedArea") ); + } + } //for each +} + +// ------------------------------------------------------------------- +// Shared2t@C +// ------------------------------------------------------------------- +void RCSrl::mrcShared2(FILE *fp) +{ + // ROMwb_̃ANZXƒrbgĂȂƂ + // Shared2t@CTCY`ĂȂƂmF + if( !this->IsShared2 ) + { + if( (this->hShared2SizeArray[0] != 0) || (this->hShared2SizeArray[1] != 0) || (this->hShared2SizeArray[2] != 0) || + (this->hShared2SizeArray[3] != 0) || (this->hShared2SizeArray[4] != 0) || (this->hShared2SizeArray[5] != 0) ) + { + this->hErrorList->Add( this->makeMrcError("Shared2Disable") ); + } + return; + } + + // ANZXƒrbgĂƂ + // t@CTCŶꂩݒ肳Ă邩܂mF + if( (this->hShared2SizeArray[0] == 0) && (this->hShared2SizeArray[1] == 0) && (this->hShared2SizeArray[2] == 0) && + (this->hShared2SizeArray[3] == 0) && (this->hShared2SizeArray[4] == 0) && (this->hShared2SizeArray[5] == 0) ) + { + this->hErrorList->Add( this->makeMrcError("Shared2Enable") ); + return; + } + + // ANZXƒrbgĂƂ + // t@CƂɃANZX‚Ă邩ǂƃt@CTCY̒lmF + int i; + for( i=0; i < METWL_NUMOF_SHARED2FILES; i++ ) + { + if( this->hShared2SizeArray[i] > 0 ) // 0ȊO̒lݒ肳Ă = ̃t@Cgp Ӗ + { + if( !this->hMrcExternalCheckItems->hIsPermitShared2Array[i] ) + { + // ʌJĂȂ̂Ƀt@CgpꍇlăVXeAv̂Ƃ̃bZ[WύX + if( !this->IsAppUser ) + { + this->hWarnList->Add( this->makeMrcError("Shared2AccessSystem", i.ToString()) ); + } + else + { + this->hErrorList->Add( this->makeMrcError("Shared2AccessUser", i.ToString()) ); + } + } + if( this->hShared2SizeArray[i] != this->hMrcExternalCheckItems->hShared2SizeArray[i] ) + { + if( !this->IsAppUser ) + { + this->hWarnList->Add( this->makeMrcError("Shared2SizeSystem", + i.ToString(), MasterEditorTWL::transSizeToString(this->hShared2SizeArray[i])) ); + } + else + { + this->hWarnList->Add( this->makeMrcError("Shared2SizeUser", + i.ToString(), MasterEditorTWL::transSizeToString(this->hShared2SizeArray[i])) ); + } + } + } //if( this->hShared2SizeArray[i] > 0 ) + } //for +} //RCSrl::mrcShared2() + +// ------------------------------------------------------------------- +// SDKo[W̃`FbN +// ------------------------------------------------------------------- +void RCSrl::mrcSDKVersion(FILE *fp) +{ + // SDKo[W + System::Boolean isOld = false; + System::Boolean isOldExTWL = false; + System::Boolean isOldExNTR = false; + System::Boolean isPR = false; + System::Boolean isRC = false; + System::Boolean isPRExTWL = false; + System::Boolean isRCExTWL = false; + System::Boolean isPRExNTR = false; + System::Boolean isRCExNTR = false; + for each( RCSDKVersion ^sdk in this->hSDKList ) + { + if( sdk->IsStatic ) + { + isPR = MasterEditorTWL::IsSDKVersionPR( sdk->Code ); + isRC = MasterEditorTWL::IsSDKVersionRC( sdk->Code ); + if( this->hMrcExternalCheckItems->IsAppendCheck ) + { + isOld = MasterEditorTWL::IsOldSDKVersion( sdk->Code, this->hMrcExternalCheckItems->SDKVer, false ); + } + } + else // 풓W[ȊO + { + if( this->hMrcExternalCheckItems->IsAppendCheck ) + { + u32 major = sdk->Code >> 24; + if( major >= 5 ) // TWLSDK + { + isPRExTWL = MasterEditorTWL::IsSDKVersionPR( sdk->Code ); + isRCExTWL = MasterEditorTWL::IsSDKVersionRC( sdk->Code ); + isOldExTWL = MasterEditorTWL::IsOldSDKVersion( sdk->Code, this->hMrcExternalCheckItems->SDKVerNotStaticTWL, false ); + } + else // NTRSDK + { + isPRExNTR = MasterEditorTWL::IsSDKVersionPR( sdk->Code ); + isRCExNTR = MasterEditorTWL::IsSDKVersionRC( sdk->Code ); + isOldExNTR = MasterEditorTWL::IsOldSDKVersion( sdk->Code, this->hMrcExternalCheckItems->SDKVerNotStaticNTR, false ); + } + } + } + } + if( isOld ) + { + this->hWarnList->Add( this->makeMrcError("SDKVersionOld") ); + } + if( isPR ) + { + this->hWarnList->Add( this->makeMrcError("SDKVersionPR") ); + } + if( isRC ) + { + this->hWarnList->Add( this->makeMrcError("SDKVersionRC") ); + } + if( isOldExTWL ) + { + this->hWarnList->Add( this->makeMrcError("SDKVersionExModuleTwlOld") ); + } + if( isPRExTWL ) + { + this->hWarnList->Add( this->makeMrcError("SDKVersionExModuleTwlPR") ); + } + if( isRCExTWL ) + { + this->hWarnList->Add( this->makeMrcError("SDKVersionExModuleTwlRC") ); + } + if( isOldExNTR ) + { + this->hWarnList->Add( this->makeMrcError("SDKVersionExModuleNtrOld") ); + } + if( isPRExNTR ) + { + this->hWarnList->Add( this->makeMrcError("SDKVersionExModuleNtrPR") ); + } + if( isRCExNTR ) + { + this->hWarnList->Add( this->makeMrcError("SDKVersionExModuleNtrRC") ); + } +} //RCSrl::mrcSDKVersion + +// ------------------------------------------------------------------- +// oi[̃`FbN +// ------------------------------------------------------------------- +void RCSrl::mrcBanner(FILE *fp) +{ + u8 mapWorldwide[ 0x10000 ]; + u8 mapChina[ 0x10000 ]; + u8 mapKorea[ 0x10000 ]; + int i; + + // oi[ItZbgɃG[Ƃɂׂ͒Ȃ + if( this->pRomHeader->s.banner_offset == 0 ) + { + return; + } + + // gp”\ȕ̃}bv‚ + // R[hCfbNXƂĎgp”\Ȃ 1 + // łȂȂ 0 + for( i=0; i < 0x10000; i++ ) + { + mapWorldwide[i] = 0; + mapChina[i] = 0; + mapKorea[i] = 0; + } + for( i=0; i < MasterEditorTWL::NumOf_BannerCharCodes_Worldwide; i++ ) + { + mapWorldwide[ MasterEditorTWL::BannerCharCodes_Worldwide[i] ] = 1; + } + for( i=0; i < MasterEditorTWL::NumOf_BannerCharCodes_China; i++ ) + { + mapChina[ MasterEditorTWL::BannerCharCodes_China[i] ] = 1; + } + for( i=0; i < MasterEditorTWL::NumOf_BannerCharCodes_Korea; i++ ) + { + mapKorea[ MasterEditorTWL::BannerCharCodes_Korea[i] ] = 1; + } + mapWorldwide[ 0x0000 ] = 1; // 0x0000͋ + mapChina[ 0x0000 ] = 1; + mapKorea[ 0x0000 ] = 1; + + // oi[ǂݍ + u32 size = this->pRomHeader->s.banner_size; + u8 *banner = new u8[size]; + fseek( fp, this->pRomHeader->s.banner_offset, SEEK_SET ); + if( size != fread( banner, 1, size, fp ) ) + { + this->hErrorList->Add( this->makeMrcError("BannerRead") ); + } + + // oi[o[W + u8 banner_version = banner[0]; + + // oi[̊e}bvɓo^Ă邩`FbN + System::Boolean bResultWorldwide = true; + System::Boolean bResultChina = true; + System::Boolean bResultKorea = true; + int start = 0x240; + int end = (size < 0x1240)?(size):(0x1240); // NTR݊̈܂ł̂ƂTWLg̈T[`Ȃ + for( i=0x240; i < end; i+=2 ) + { + u16 code = banner[i+1]; + code = (code << 8) + banner[i]; + + // ̃tHgӏ + if( (0x840 <= i) && (i < 0x940) && (banner_version >= 2) ) // oi[o[W1̂Ƃ͒Ńoi[͓ǂݍ܂Ȃ + { + if( (mapWorldwide[ code ] == 0) && (mapChina[ code ] == 0) ) // [hChłgĂĂOK + { + bResultChina = false; + } + } + // ؍̃tHgӏ + else if( (0x940 <= i) && (i < 0xA40) && (banner_version >= 3) ) + { + if( (mapWorldwide[ code ] == 0) && (mapKorea[ code ] == 0) ) + { + bResultKorea = false; + } + } + // [hCh + else + { + if( mapWorldwide[ code ] == 0 ) + { + bResultWorldwide = false; + } + } + } + if( !bResultWorldwide ) + { + //if( memcmp( this->pRomHeader->s.game_code, "HNB", 3 ) != 0 ) // {̐ݒ͓ʂɋ + //{ + this->hErrorList->Add( this->makeMrcError("BannerChar") ); + //} + } + if( !bResultChina ) + { + this->hErrorList->Add( this->makeMrcError("ChinaBannerCharSet") ); + } + if( !bResultKorea ) + { + this->hErrorList->Add( this->makeMrcError("KoreaBannerCharSet") ); + } + delete []banner; +} //RCSrl::mrcBanner() + +// ------------------------------------------------------------------- +// ؔł̃`FbN +// ------------------------------------------------------------------- +void RCSrl::mrcChinaKorea(void) +{ + // I[[W̓`FbNsv + if( this->IsRegionJapan && this->IsRegionAmerica && this->IsRegionEurope && this->IsRegionAustralia && + this->IsRegionChina && this->IsRegionKorea ) + { + return; + } + + // [UAv̂Ƃ̒ł̃`FbN + if( this->IsAppUser ) + { + // OS_InitChina gpĂ邩𒲂ׂ + bool use = false; + for each(RCLicense ^lic in this->hLicenseList) + { + if( (lic->Publisher == "NINTENDO") && (lic->Name == "FORCHINA") ) + { + use = true; + } + } + + // u[Wv&&ufor_chinaTRUEvƁuOS_InitChinagpvׂ̂Ă藧ĂƂ̂ݒłƂĔF߂ + if( this->IsRegionChina && !this->IsForChina ) + { + this->hErrorList->Add( this->makeMrcError("ChinaFlagNegated") ); + } + if( !this->IsRegionChina && this->IsForChina ) + { + this->hErrorList->Add( this->makeMrcError("ChinaFlagAsserted") ); + } + if( this->IsRegionChina && !use ) + { + this->hErrorList->Add( this->makeMrcError("OSInitChinaUnused") ); + } + if( !this->IsRegionChina && use ) + { + this->hErrorList->Add( this->makeMrcError("OSInitChinaUsed") ); + } + } + else // VXeAv̂Ƃ + { + // u[Wvufor_chinaTRUEv藧ĂƂ̂ݒłƂĔF߂ + // OS_InitChina ̎gp͕K{ł͂Ȃ + if( this->IsRegionChina && !this->IsForChina ) + { + this->hErrorList->Add( this->makeMrcError("ChinaFlagNegated") ); + } + if( !this->IsRegionChina && this->IsForChina ) + { + this->hErrorList->Add( this->makeMrcError("ChinaFlagAsserted") ); + } + } + + // ؍ł̃`FbN + { + // u؍[Wvufor_koreaTRUEv藧ĂƂ̂݊؍łƂĔF߂ + if( this->IsRegionKorea && !this->IsForKorea ) + { + this->hErrorList->Add( this->makeMrcError("KoreaFlagNegated") ); + } + if( !this->IsRegionKorea && this->IsForKorea ) + { + this->hErrorList->Add( this->makeMrcError("KoreaFlagAsserted") ); + } + } +} + +// ------------------------------------------------------------------- +// ̌ŗp̒lj`FbN +// ------------------------------------------------------------------- +void RCSrl::mrcTrialApp(FILE *fp) +{ + // ROMǂݏoɂ͗pr͂킩Ȃ̂łׂẴ`FbNĂ + // \ƂɐU蕪 + + // Touch!Try!DS + bool use_tis = false; + bool use_nis = false; + for each( RCLicense ^lic in this->hLicenseList ) + { + if( lic->Publisher->Equals( "NINTENDO" ) && lic->Name->StartsWith( "TIS_FOR_TWLSDK" ) ) + { + use_tis = true; + } + if( lic->Publisher->Equals( "NINTENDO" ) && lic->Name->StartsWith( "NIS_FOR_TWLSDK" ) ) + { + use_nis = true; + } + } + if( !use_tis ) + { + this->hErrorList->Add( this->makeMrcError(RCMrcError::PurposeType::TouchTryDS, "TouchTryDSLibTis") ); + } + if( use_nis ) + { + this->hErrorList->Add( this->makeMrcError(RCMrcError::PurposeType::TouchTryDS, "TouchTryDSLibNis") ); + } + if( this->IsMediaNand ) + { + this->hErrorList->Add( this->makeMrcError(RCMrcError::PurposeType::TouchTryDS, "TouchTryDSMedia") ); + } + if( this->IsNormalJump ) + { + this->hErrorList->Add( this->makeMrcError(RCMrcError::PurposeType::TouchTryDS, "TouchTryDSNormalJump") ); + } + if( this->IsTmpJump ) + { + this->hErrorList->Add( this->makeMrcError(RCMrcError::PurposeType::TouchTryDS, "TouchTryDSTmpJump") ); + } + if( this->IsSD ) + { + this->hErrorList->Add( this->makeMrcError(RCMrcError::PurposeType::TouchTryDS, "TouchTryDSSDCard") ); + } + fseek( fp, 0, SEEK_END ); + u32 filesize = ftell(fp); // t@CTCY + if( filesize > (96 * 1024 * 1024) ) + { + this->hWarnList->Add( this->makeMrcError(RCMrcError::PurposeType::TouchTryDS, "TouchTryDSRomSize") ); + } + + // VXeR[ + u8 syscall[32]; + u32 offset = this->pRomHeader->s.main_rom_offset; + fseek( fp, offset, SEEK_SET ); + if( 32 != fread( syscall, 1, 32, fp ) ) + { + return; + } + int i; + for( i=0; i < 32; i++ ) + { + if( syscall[i] != 0x00 ) + break; + } + if( i == 32 ) // S0 + { + this->hErrorList->Add( this->makeMrcError(RCMrcError::PurposeType::TouchTryDS, "TouchTryDSSyscall") ); // SDKt̂Ƃ_ + } + else + { + this->hErrorList->Add( this->makeMrcError(RCMrcError::PurposeType::DSDownload, "DSDownloadSyscall") ); // SDKtłȂƃ_ + this->hErrorList->Add( this->makeMrcError(RCMrcError::PurposeType::Zone, "ZoneSyscall") ); + } + + // Zone or DS Download Service + if( this->pRomHeader->s.platform_code == PLATFORM_CODE_TWL_HYBLID ) + { + this->hErrorList->Add( this->makeMrcError(RCMrcError::PurposeType::Zone, "ZoneHybrid") ); + } + if( this->pRomHeader->s.platform_code == PLATFORM_CODE_TWL_LIMITED ) + { + this->hWarnList->Add( this->makeMrcError(RCMrcError::PurposeType::Zone, "ZoneLimited") ); + this->hErrorList->Add( this->makeMrcError(RCMrcError::PurposeType::DSDownload, "DSDownloadLimited") ); + } + if( filesize > (5 * 1024 * 1024 / 2) ) + { + this->hWarnList->Add( this->makeMrcError(RCMrcError::PurposeType::Zone, "ZoneRomSize") ); + this->hWarnList->Add( this->makeMrcError(RCMrcError::PurposeType::DSDownload, "DSDownloadRomSize") ); + } + if( !this->HasDSDLPlaySign ) + { + this->hErrorList->Add( this->makeMrcError(RCMrcError::PurposeType::DSDownload, "DSDownloadCloneBoot") ); + } + if( this->IsGameCardOn || this->IsGameCardNitro ) + { + this->hErrorList->Add( this->makeMrcError(RCMrcError::PurposeType::Zone, "ZoneCardAccess") ); + this->hErrorList->Add( this->makeMrcError(RCMrcError::PurposeType::DSDownload, "DSDownloadCardAccess") ); + } + if( !this->IsMediaNand ) + { + this->hErrorList->Add( this->makeMrcError(RCMrcError::PurposeType::Zone, "ZoneMedia") ); + this->hErrorList->Add( this->makeMrcError(RCMrcError::PurposeType::DSDownload, "DSDownloadMedia") ); + } + if( !this->IsTmpJump ) + { + this->hErrorList->Add( this->makeMrcError(RCMrcError::PurposeType::Zone, "ZoneTmpJump") ); + this->hErrorList->Add( this->makeMrcError(RCMrcError::PurposeType::DSDownload, "DSDownloadTmpJump") ); + } +} //mrcTrialApp() \ No newline at end of file diff --git a/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/MasterEditorTWL/stdafx.cpp b/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/MasterEditorTWL/stdafx.cpp new file mode 100644 index 0000000..5fa2061 --- /dev/null +++ b/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/MasterEditorTWL/stdafx.cpp @@ -0,0 +1,7 @@ +// stdafx.cpp : WCN[h MasterEditorTWL.pch ݂̂ +// ܂ރ\[X t@ĆAvRpCς݃wb_[ɂȂ܂B +// stdafx.obj ɂ̓vRpCς݌^񂪊܂܂܂B + +#include "stdafx.h" + + diff --git a/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/MasterEditorTWL/stdafx.h b/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/MasterEditorTWL/stdafx.h new file mode 100644 index 0000000..6c1fb4b --- /dev/null +++ b/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/MasterEditorTWL/stdafx.h @@ -0,0 +1,6 @@ +// stdafx.h : W̃VXe CN[h t@C̃CN[h t@CA܂ +// QƉ񐔂A‚܂ύXȂAvWFNgp̃CN[h t@C +// Lq܂B +#pragma once + +// TODO: vOɕKvȒljwb_[ŎQƂĂB diff --git a/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/MasterEditorTWL/utility.cpp b/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/MasterEditorTWL/utility.cpp new file mode 100644 index 0000000..3ad79d1 --- /dev/null +++ b/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/MasterEditorTWL/utility.cpp @@ -0,0 +1,753 @@ +// utility.h ̎ + +#include "stdafx.h" +#include +#include "common.h" +#include "utility.h" +#include +#include +#include +#include +#include + +// ---------------------------------------------------------------------- +// String char zɊi[ +// +// @arg [out] i[ +// @arg [in] i[ +// @arg [in] +// @arg [in] ]𖄂߂ padding +// ---------------------------------------------------------------------- +void MasterEditorTWL::setStringToChars( char *pDst, System::String ^hSrc, + const System::Int32 nMax, const System::SByte pad ) +{ + System::Int32 i; + + memset( pDst, pad, nMax ); + for( i=0; (i < hSrc->Length) && (i < nMax); i++ ) + { + pDst[i] = (char)hSrc[i]; + } +} + +// ---------------------------------------------------------------------- +// ROMwb_ROMeʐݒoCgROMeʂ\擾 +// +// @arg [in] ROMeʐݒoCg +// +// @ret (Pʂ‚) +// ---------------------------------------------------------------------- +System::String^ MasterEditorTWL::transRomSizeToString( System::Byte ^byte ) +{ + System::UInt32 size; + System::String ^unit; + + // RomSize = 2^(byte) [Mbit] + size = 1 << *(byte); + + if(size >= 1024) + { + unit = gcnew System::String("Gbit"); + size = size / 1024; + } + else + { + unit = gcnew System::String("Mbit"); + } + return (size.ToString() + unit); +} + +// ---------------------------------------------------------------------- +// TCYPʂ‚̕擾 +// +// @arg [in] oCg +// +// @ret (Pʂ‚) +// ---------------------------------------------------------------------- +System::String^ MasterEditorTWL::transSizeToString( const System::UInt32 size ) +{ + System::UInt32 val = size; + + // ByteP + if( val == 0 ) + { + return val.ToString(); + } + if( val < 1024 ) + { + return (val.ToString() + " Byte"); + } + + // KBPʂɕϊ + if( (val % 1024) != 0 ) + { + return (val.ToString() + " Byte"); // [̂Ƃ͒PʕϊȂ + } + val = val / 1024; + if( val < 1024 ) + { + return (val.ToString() + " KB"); + } + + // MBPʂɕϊ + if( (val % 1024) != 0 ) + { + return (val.ToString() + " KB"); + } + val = val / 1024; + if( val < 1024) + { + return (val.ToString() + " MB"); + } + + // GBPʂɕϊ + if( (val % 1024) != 0 ) + { + return (val.ToString() + " MB"); + } + val = val / 1024; + return (val.ToString() + " GB"); +} + +// KB܂ +System::String^ MasterEditorTWL::transSizeToStringKB( const System::UInt32 size ) +{ + System::UInt32 val = size; + + // ByteP + if( val == 0 ) + { + return val.ToString(); + } + if( val < 1024 ) + { + return (val.ToString() + " Byte"); + } + + // KBPʂɕϊ + if( (val % 1024) != 0 ) + { + return (val.ToString() + " Byte"); // [̂Ƃ͒PʕϊȂ + } + val = val / 1024; + return (val.ToString() + " KB"); +} + +// MB +System::String^ MasterEditorTWL::transSizeToStringMB( const System::UInt32 size ) +{ + if( size == 0 ) + { + return size.ToString(); + } + System::Double MB = 1024.0 * 1024.0; + System::Double result = ((System::Double)size) / MB; // + + return (result.ToString() + " MB"); +} +// 2ŏ_̌w(ȉ̌͐؂グ) +System::String^ MasterEditorTWL::transSizeToStringMB( const System::UInt32 size, const System::UInt32 decimals ) +{ + if( size == 0 ) + { + return size.ToString(); + } + + System::UInt32 MB = 1024*1024; + System::UInt32 pow = 1; + System::UInt32 i; + for( i=0; i < decimals; i++ ) + { + pow = pow * 10; + } + + System::UInt32 div = size * pow / MB; // _̈ʒu炷 + System::UInt32 mod = size * pow % MB; + if( mod > 0 ) // 炵_ȉ؂グ(̌0łĂȍ~0łȂΐ؂グ) + { + div++; + } + + System::String ^str = ((System::Double)div / (System::Double)pow).ToString("F" + decimals.ToString()); + return (str + " MB"); +} + +// ---------------------------------------------------------------------- +// e[eBOĉ̐ݒ”\N擾 +// +// @arg [in] cNo. +// ---------------------------------------------------------------------- +cli::array^ MasterEditorTWL::getOgnRatingAges( int ogn ) +{ + cli::array ^ages = gcnew cli::array{0}; + + if( ogn == OS_TWL_PCTL_OGN_CERO ) + { + ages = gcnew cli::array{0,12,15,17,18}; + } + else if( ogn == OS_TWL_PCTL_OGN_ESRB ) + { + ages = gcnew cli::array{0,3,6,10,13,17}; + } + else if( ogn == OS_TWL_PCTL_OGN_USK ) + { + ages = gcnew cli::array{0,6,12,16,18}; + } + else if( ogn == OS_TWL_PCTL_OGN_PEGI_GEN ) + { + ages = gcnew cli::array{0,3,7,12,16,18}; + } + else if( ogn == OS_TWL_PCTL_OGN_PEGI_PRT ) + { + ages = gcnew cli::array{0,4,6,12,16,18}; + } + else if( ogn == OS_TWL_PCTL_OGN_PEGI_BBFC ) + { + ages = gcnew cli::array{0,3,4,7,8,12,15,16,18}; + } + else if( ogn == OS_TWL_PCTL_OGN_AGCB ) + { + ages = gcnew cli::array{0,7,14,15}; + } + else if( ogn == OS_TWL_PCTL_OGN_GRB ) + { + ages = gcnew cli::array{0,12,15,18}; + } + return ages; +} + +// ---------------------------------------------------------------------- +// e[eBOĉ̒c̖擾 +// +// @arg [in] cNo. +// ---------------------------------------------------------------------- +System::String^ MasterEditorTWL::getOgnName( int ogn ) +{ + System::String ^name = gcnew System::String(""); + + if( ogn == OS_TWL_PCTL_OGN_CERO ) + { + name = gcnew System::String("CERO"); + } + else if( ogn == OS_TWL_PCTL_OGN_ESRB ) + { + name = gcnew System::String("ESRB"); + } + else if( ogn == OS_TWL_PCTL_OGN_USK ) + { + name = gcnew System::String("USK"); + } + else if( ogn == OS_TWL_PCTL_OGN_PEGI_GEN ) + { + name = gcnew System::String("PEGI(General)"); + } + else if( ogn == OS_TWL_PCTL_OGN_PEGI_PRT ) + { + name = gcnew System::String("PEGI(Portugal)"); + } + else if( ogn == OS_TWL_PCTL_OGN_PEGI_BBFC ) + { + name = gcnew System::String("PEGI and BBFC"); + } + else if( ogn == OS_TWL_PCTL_OGN_AGCB ) + { + name = gcnew System::String("COB"); + } + else if( ogn == OS_TWL_PCTL_OGN_GRB ) + { + name = gcnew System::String("GRB"); + } + return name; +} + +// ---------------------------------------------------------------------- +// [WɊ܂܂郌[eBOĉ̃XgԂ +// (sȃ[ŴƂnullptr) +// +// @arg [in] [W +// ---------------------------------------------------------------------- +System::Collections::Generic::List^ MasterEditorTWL::getOgnListInRegion( u32 region ) +{ + System::Collections::Generic::List ^list = gcnew System::Collections::Generic::List; + + switch( region ) + { + case METWL_MASK_REGION_JAPAN: + list->Add( OS_TWL_PCTL_OGN_CERO ); // [WɊ܂܂Ȃĉ͓̏ǂݍ܂Ȃ + break; + + case METWL_MASK_REGION_AMERICA: + list->Add( OS_TWL_PCTL_OGN_ESRB ); + break; + + case METWL_MASK_REGION_EUROPE: + list->Add( OS_TWL_PCTL_OGN_USK ); + list->Add( OS_TWL_PCTL_OGN_PEGI_GEN ); + list->Add( OS_TWL_PCTL_OGN_PEGI_PRT ); + list->Add( OS_TWL_PCTL_OGN_PEGI_BBFC ); + break; + + case METWL_MASK_REGION_AUSTRALIA: + list->Add( OS_TWL_PCTL_OGN_AGCB ); + break; + + case (METWL_MASK_REGION_EUROPE|METWL_MASK_REGION_AUSTRALIA): + list->Add( OS_TWL_PCTL_OGN_USK ); + list->Add( OS_TWL_PCTL_OGN_PEGI_GEN ); + list->Add( OS_TWL_PCTL_OGN_PEGI_PRT ); + list->Add( OS_TWL_PCTL_OGN_PEGI_BBFC ); + list->Add( OS_TWL_PCTL_OGN_AGCB ); + break; + + case (METWL_MASK_REGION_AMERICA|METWL_MASK_REGION_AUSTRALIA): + list->Add( OS_TWL_PCTL_OGN_ESRB ); + list->Add( OS_TWL_PCTL_OGN_AGCB ); + break; + + case (METWL_MASK_REGION_AMERICA|METWL_MASK_REGION_EUROPE|METWL_MASK_REGION_AUSTRALIA): + list->Add( OS_TWL_PCTL_OGN_ESRB ); + list->Add( OS_TWL_PCTL_OGN_USK ); + list->Add( OS_TWL_PCTL_OGN_PEGI_GEN ); + list->Add( OS_TWL_PCTL_OGN_PEGI_PRT ); + list->Add( OS_TWL_PCTL_OGN_PEGI_BBFC ); + list->Add( OS_TWL_PCTL_OGN_AGCB ); + break; + + case METWL_MASK_REGION_KOREA: + list->Add( OS_TWL_PCTL_OGN_GRB ); + break; + + case METWL_MASK_REGION_ALL & ~METWL_MASK_REGION_CHINA: + list->Add( OS_TWL_PCTL_OGN_CERO ); + list->Add( OS_TWL_PCTL_OGN_ESRB ); + list->Add( OS_TWL_PCTL_OGN_USK ); + list->Add( OS_TWL_PCTL_OGN_PEGI_GEN ); + list->Add( OS_TWL_PCTL_OGN_PEGI_PRT ); + list->Add( OS_TWL_PCTL_OGN_PEGI_BBFC ); + list->Add( OS_TWL_PCTL_OGN_AGCB ); + list->Add( OS_TWL_PCTL_OGN_GRB ); + break; + +#if defined(METWL_VER_APPTYPE_SYSTEM) || defined(METWL_VER_APPTYPE_SECURE) || defined(METWL_VER_APPTYPE_LAUNCHER) + case METWL_MASK_REGION_ALL: + list->Add( OS_TWL_PCTL_OGN_CERO ); + list->Add( OS_TWL_PCTL_OGN_ESRB ); + list->Add( OS_TWL_PCTL_OGN_USK ); + list->Add( OS_TWL_PCTL_OGN_PEGI_GEN ); + list->Add( OS_TWL_PCTL_OGN_PEGI_PRT ); + list->Add( OS_TWL_PCTL_OGN_PEGI_BBFC ); + list->Add( OS_TWL_PCTL_OGN_AGCB ); + list->Add( OS_TWL_PCTL_OGN_GRB ); + break; +#endif //#if defined(METWL_VER_APPTYPE_SYSTEM) || defined(METWL_VER_APPTYPE_SECURE) || defined(METWL_VER_APPTYPE_LAUNCHER) + + default: + list = nullptr; + break; + } + return list; +} + +// ---------------------------------------------------------------------- +// oCgɓ̃p^[܂܂邩ǂ}b`O +// +// @arg [in] eLXg +// [in] eLXg̒ +// [in] p^[ +// [in] p^[̒ +// [in] eLXg̏I[܂Œׂ_ŃeLXgr܂Ń}b`Ăꍇ𐬌Ƃ݂Ȃ +// +// @ret }b`eLXg̃ItZbgXgŕԂB +// ---------------------------------------------------------------------- +System::Collections::Generic::List^ MasterEditorTWL::patternMatch( + const u8 *text, const u32 textLen, const u8 *pattern, const u32 patternLen, const System::Boolean enableLast ) +{ + // ЂƂ܂Vvȕ@Ŏ + u32 first; + u32 len; + System::Collections::Generic::List ^list = gcnew System::Collections::Generic::List(); + list->Clear(); + + // p^[1‚炵Ȃ}b`O + for( first=0; first < textLen; first++ ) + { + len = (patternLen < (textLen-first))?patternLen:(textLen-first); // Ō̂ق͓r܂ł}b`OȂ + if( *(text+first) == pattern[0] ) // ̂ߍŏ̕vƂ̂ݑS}b`O + { + if( memcmp( text+first, pattern, len ) == 0 ) + { + if( (enableLast == true) ) + { + list->Add( first ); + } + else if( len == patternLen ) // SvȂƃ_ + { + list->Add( first ); + } + } + } + } + return list; +} // MasterEditorTWL::patternMatch + +//// ---------------------------------------------------------------------- +//// oCgɓ̃p^[܂܂邩ǂ}b`O (Boyer-Moore@) +//// +//// @arg [in] eLXg +//// [in] eLXg̒ +//// [in] p^[ +//// [in] p^[̒ +//// [in] skip}bv(炩ߐĂ) +//// +//// @ret }b`eLXg̃CfbNXXgŕԂB +//// ---------------------------------------------------------------------- +//System::Collections::Generic::List^ MasterEditorTWL::patternMatchBM( +// const u8 *text, const int textLen, const u8 *pattern, const int patternLen, const int skip[] ) +//{ +// System::Collections::Generic::List ^list = gcnew System::Collections::Generic::List(); +// list->Clear(); +// +// if( textLen < patternLen ) +// { +// return list; +// } +// +// int pos = patternLen-1; +// while( pos < textLen ) // C[WƂĂ̓p^[Œ肵ăeLXg̕炵Ă +// { +// int first = pos - (patternLen-1); +// if( memcmp( text+first, pattern, patternLen ) == 0 ) // {͖T邪߂ǂȂ̂Ő擪memcmp +// { +// list->Add( first ); +// } +// pos = pos + skip[ (int)text[pos] ]; // p^[̖ƏƍeLXgʒu炷 +// } +// return list; +//} +// +//// ---------------------------------------------------------------------- +//// Boyer-Moore@skip}bv̐ +//// +//// @arg [in] p^[ +//// [in] p^[̒ +//// [out] skip}bv̊i[ +//// +//// @ret Ȃ +//// ---------------------------------------------------------------------- +//void MasterEditorTWL::makeSkipBM( const u8 *pattern, const int patternLen, int skip[] ) +//{ +// int i; +// for( i=0; i < 256; i++ ) // ׂĂ̕(of[^)ɂ‚ă}bv +// { +// skip[i] = patternLen; // p^[ɂȂȂ̂Ńp^[ۂƃXLbvł +// } +// for( i=0; i < (patternLen-1); i++ ) // ׂẴp^[oɂ‚(Ō)oʒuo^ +// { +// skip[ (int)pattern[i] ] = patternLen - 1 - i; +// } +//} + +// ---------------------------------------------------------------------- +// t@CɃoCg̃p^[܂܂邩ǂ}b`O +// +// @arg [in] }b`ΏۂƂȂt@C|C^ +// @arg [in] p^[ +// @arg [in] p^[̒(PATTERN_MATCH_LEN_MAXȉłȂ΂ȂȂ) +// +// @ret }b`eLXg̃ItZbgXgŕԂB +// Ō܂Ń}b`ꍇ̂ݐƂ݂ȂB +// ---------------------------------------------------------------------- +#define PATTERN_MATCH_LEN_MAX (10*1024) +System::Collections::Generic::List^ MasterEditorTWL::patternMatch( FILE *fp, const u8 *pattern, const u32 patternLen ) +{ + u8 text[ 2 * PATTERN_MATCH_LEN_MAX ]; // obt@̐؂ڂT邽ߑ߂ɓǂݍނ̂ōőŃp^[2{obt@KvɂȂ + u32 cur; + u32 filesize; + u32 len; + u32 extra; + System::Collections::Generic::List ^tmplist; + System::Collections::Generic::List ^list = gcnew System::Collections::Generic::List; + list->Clear(); + + if( patternLen > PATTERN_MATCH_LEN_MAX ) + return nullptr; + + fseek( fp, 0, SEEK_END ); + filesize = ftell( fp ); + + cur = 0; + while( cur < filesize ) + { + // obt@̐؂ڂ𒲂ׂߎۂɂ(p^[̒-1)߂Ƀ[h + len = ((filesize - cur) < PATTERN_MATCH_LEN_MAX)?(filesize - cur):PATTERN_MATCH_LEN_MAX; + extra = (len <= PATTERN_MATCH_LEN_MAX)?0:(patternLen-1); // Ō܂łƂɂ͗]Ƀ[hĂ͂Ȃ + fseek( fp, cur, SEEK_SET ); + u32 readlen = fread( text, 1, len + extra, fp ); + if( (len + extra) != readlen ) + { + //System::Diagnostics::Debug::WriteLine( "actual len = " + readlen.ToString() ); + //System::Diagnostics::Debug::WriteLine( "expect len = " + (len + extra).ToString() ); + return nullptr; + } + + // eLXgI[ɓr܂Ń}b`OƂ͎sƂ݂Ȃ + tmplist = MasterEditorTWL::patternMatch( text, len+extra, pattern, patternLen, false ); + if( tmplist != nullptr ) + { + for each( u32 tmpval in tmplist ) + { + list->Add( tmpval + cur ); // ۂ̃ItZbg̓t@CItZbgl + } + } + + // SEEKʒu:߂Ƀ[h͂炷 + cur += len; + } + return list; +} + +// ---------------------------------------------------------------------- +// XML̃[gm[hw肵Õ^OĕԂ +// +// @arg [in] XML̃[gm[h +// @arg [in] ^O +// +// @ret Ń}b`Ƃm[hԂBȂƂ nullptrB +// AŏɃ}b`̂̂ݕԂ +// ---------------------------------------------------------------------- +System::Xml::XmlNode^ MasterEditorTWL::searchXmlNode( System::Xml::XmlElement ^root, System::String ^tag ) +{ + System::Xml::XmlNodeList ^list = root->GetElementsByTagName( tag ); + System::Xml::XmlNode ^item = nullptr; + if( list != nullptr ) + { + item = list->Item(0); + } + return item; +} + +// ---------------------------------------------------------------------- +// ^OẴeLXgw肵eLXgƈv邩ׂ +// +// @arg [in] XML̃[gm[h +// @arg [in] ^O +// @arg [in] l +// +// @ret vƂtrueBvȂƂA^O݂ȂƂfalseB +// ---------------------------------------------------------------------- +System::Boolean MasterEditorTWL::isXmlEqual( System::Xml::XmlElement ^root, System::String ^tag, System::String ^val ) +{ + System::Xml::XmlNode ^item = MasterEditorTWL::searchXmlNode( root, tag ); + if( (item != nullptr) && (item->FirstChild != nullptr) && (item->FirstChild->Value->Equals( val )) ) + { + return true; + } + return false; +} + +// ---------------------------------------------------------------------- +// ^OẴeLXgԂ +// +// @arg [in] XML̃[gm[h +// @arg [in] ^OXPath +// +// @ret eLXg݂Ƃ̃eLXgԂB݂ȂƂnullptrB +// ---------------------------------------------------------------------- +System::String^ MasterEditorTWL::getXPathText( System::Xml::XmlElement ^root, System::String ^xpath ) +{ + System::Xml::XmlNode ^tmp = root->SelectSingleNode( xpath ); + if( tmp && tmp->FirstChild && tmp->FirstChild->Value ) + { + return tmp->FirstChild->Value; + } + return nullptr; +} + +// ---------------------------------------------------------------------- +// XMLɃ^Olj +// +// @arg [in] XMLhLg +// @arg [in] em[h +// @arg [in] ^O +// @arg [in] eLXg +// ---------------------------------------------------------------------- +void MasterEditorTWL::appendXmlTag( System::Xml::XmlDocument ^doc, System::Xml::XmlElement ^parent, + System::String ^tag, System::String ^text ) +{ + if( System::String::IsNullOrEmpty( text ) ) + return; + + System::Xml::XmlElement ^node = doc->CreateElement( tag ); + node->AppendChild( doc->CreateTextNode( text ) ); + parent->AppendChild( node ); +} + +// ---------------------------------------------------------------------- +// rbgJEg +// +// @arg [in] l +// +// @ret rbg +// ---------------------------------------------------------------------- +u32 MasterEditorTWL::countBits( const u32 val ) +{ + // @:ׂ荇܂育ƂɃrbgJEgĂ + u32 n = val; + + n = ((n>>1) & 0x55555555) + (n & 0x55555555); + n = ((n>>2) & 0x33333333) + (n & 0x33333333); + n = ((n>>4) & 0x0f0f0f0f) + (n & 0x0f0f0f0f); + n = ((n>>8) & 0x00ff00ff) + (n & 0x00ff00ff); + n = (n>>16) + (n & 0x0000ffff); + return n; +} + +// ---------------------------------------------------------------------- +// SDKo[Wǂ( 10203 -> "PR2 plus3") +// +// @arg [in] SRLɖ܂ĂSDK̃o[W(4oCgoCi) +// +// @ret ǂSDKo[W +// +// ---------------------------------------------------------------------- +System::String^ MasterEditorTWL::analyzeSDKVersion( System::UInt32 code ) +{ + System::Byte major = (System::Byte)(0xff & (code >> 24)); + System::Byte minor = (System::Byte)(0xff & (code >> 16)); + System::UInt16 relstep = (System::UInt16)(0xffff & code); + System::String ^str = nullptr; + str += (major.ToString() + "." + minor.ToString() + " "); + //System::Diagnostics::Debug::WriteLine( "relstep = " + relstep.ToString() ); + + // RELSTEP̉ + // PR1=10100 PR2=10200 ... + // RC1=20100 RC2=20200 ... + // RELEASE=30000 + System::UInt16 middle = relstep; + while( middle >= 10000 ) + { + middle -= 10000; + } + System::UInt16 plus = middle; + System::String ^plusstr = gcnew System::String( "" ); + while( plus >= 100 ) + { + plus -= 100; + } + if( plus > 0 ) + { + plusstr = " plus" + plus.ToString(); + } + middle = middle / 100; + switch( relstep / 10000 ) + { + case 1: str += ("PR " + middle.ToString() + plusstr); break; + case 2: str += ("RC " + middle.ToString() + plusstr); break; + //case 3: str += ("RELEASE " + middle.ToString() + plusstr); break; + case 3: + if( middle > 0 ) + { + str += ("RELEASE " + middle.ToString() + plusstr); + } + else + { + str += ("RELEASE" + plusstr); + } + break; + default: break; + } + return System::String::Copy(str); +} + +// ---------------------------------------------------------------------- +// SDKo[W̑召 +// +// @arg [in] ΏۂSDKo[W(SRLɊ܂܂) +// @arg [in] SDKo[W(ݒt@CɋLq) +// @arg [in] Relstep̔PR/RĈƂ肷邩(falsêƂReleaseł̂) +// +// @ret Ώۂo[ŴƂ(F߂ȂƂ) true +// ---------------------------------------------------------------------- +System::Boolean MasterEditorTWL::IsOldSDKVersion( u32 target, u32 criterion, System::Boolean isRelstepPrRc ) +{ + // SDKo[W烁W[o[W/}Ci[o[W/relstep𒊏o + System::Byte majorTar = (System::Byte)(0xff & (target >> 24)); + System::Byte minorTar = (System::Byte)(0xff & (target >> 16)); + System::UInt16 relstepTar = (System::UInt16)(0xffff & target); + + System::Byte majorCri = (System::Byte)(0xff & (criterion >> 24)); + System::Byte minorCri = (System::Byte)(0xff & (criterion >> 16)); + System::UInt16 relstepCri = (System::UInt16)(0xffff & criterion); + + if( majorTar < majorCri ) + { + return true; + } + + // W[vƂ}Ci[𔻒 + if( (majorTar == majorCri) && (minorTar < minorCri) ) + { + return true; + } + + // W[}Ci[vƂrelstep𔻒 + if( (majorTar == majorCri) && (minorTar == minorCri) && (relstepTar < relstepCri) ) + { + if( isRelstepPrRc ) + { + return true; // PR/RC/ReleasêƂ + } + else if( !MasterEditorTWL::IsSDKVersionPR(relstepTar) && !MasterEditorTWL::IsSDKVersionRC(relstepTar) ) + { + return true; // Releaseł̂Ƃ̂ + } + } + return false; +} + +// ---------------------------------------------------------------------- +// SDKo[WPRłǂׂ +// +// @arg [in] ΏۂSDKo[W(SRLɊ܂܂) +// +// @ret PRł̂Ƃ true +// ---------------------------------------------------------------------- +System::Boolean MasterEditorTWL::IsSDKVersionPR( u32 target ) +{ + System::UInt16 relstep = (System::UInt16)(0xffff & target); + if( (10000 <= relstep) && (relstep < 20000) ) + { + return true; + } + return false; +} + +// ---------------------------------------------------------------------- +// SDKo[WRCłǂׂ +// +// @arg [in] ΏۂSDKo[W(SRLɊ܂܂) +// +// @ret PRł̂Ƃ true +// ---------------------------------------------------------------------- +System::Boolean MasterEditorTWL::IsSDKVersionRC( u32 target ) +{ + System::UInt16 relstep = (System::UInt16)(0xffff & target); + if( (20000 <= relstep) && (relstep < 30000) ) + { + return true; + } + return false; +} + +// ---------------------------------------------------------------------- +// src base Pʂɐ؂グ +// ---------------------------------------------------------------------- +System::UInt32 MasterEditorTWL::roundUp( const System::UInt32 src, const System::UInt32 base ) +{ + System::UInt32 div = src / base; + if( src % base ) + { + div++; + } + return (div*base); +} diff --git a/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/MasterEditorTWL/utility.h b/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/MasterEditorTWL/utility.h new file mode 100644 index 0000000..8631878 --- /dev/null +++ b/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/MasterEditorTWL/utility.h @@ -0,0 +1,210 @@ +#pragma once + +// pCuENX̐錾 + +#include +#include +#include + +namespace MasterEditorTWL +{ + + // ------------------------------------------------------------------- + // functions + // ------------------------------------------------------------------- + + // + // String char zɊi[ + // + // @arg [out] i[ + // @arg [in] i[ + // @arg [in] + // @arg [in] ]𖄂߂ padding + // + void setStringToChars( char *pDst, System::String ^hSrc, const System::Int32 nMax, const System::SByte pad ); + + // + // ROMwb_ROMeʐݒoCgROMeʂ\擾 + // + // @arg [in] ROMeʐݒoCg + // + // @ret (Pʂ‚) + // + System::String^ transRomSizeToString( System::Byte ^byte ); + + // + // TCYPʂ‚̕擾 + // + // @arg [in] oCg + // + // @ret (Pʂ‚) + // + System::String^ transSizeToString( const System::UInt32 size ); + System::String^ transSizeToStringKB( const System::UInt32 size ); + System::String^ transSizeToStringMB( const System::UInt32 size ); // _\ + System::String^ transSizeToStringMB( const System::UInt32 size, const System::UInt32 decimals ); // 2ŏ_w(ȉ̌͐؂グ) + + // + // e[eBOĉ̐ݒ”\N擾 + // + // @arg [in] c + // + cli::array^ getOgnRatingAges( int ogn ); + + // + // e[eBOĉ̒c̖擾 + // + // @arg [in] c + // + System::String^ getOgnName( int ogn ); + + // + // [WɊ܂܂ĉ̃XgԂ(sȃ[ŴƂnullptr) + // + // @arg [in] [W + // + System::Collections::Generic::List^ getOgnListInRegion( u32 region ); + + // + // oCgɓ̃p^[܂܂邩ǂ}b`O + // + // @arg [in] eLXg + // [in] eLXg̒ + // [in] p^[ + // [in] p^[̒ + // [in] eLXg̏I[܂Œׂ_ŃeLXgr܂Ń}b`Ăꍇ𐬌Ƃ݂Ȃ + // + // @ret }b`eLXg̃CfbNXXgŕԂB + // + System::Collections::Generic::List^ patternMatch( + const u8 *text, const u32 textLen, const u8 *pattern, const u32 patternLen, const System::Boolean enableLast ); + + // + // t@CɃoCg̃p^[܂܂邩ǂ}b`O + // + // @arg [in] }b`ΏۂƂȂt@C|C^ + // @arg [in] p^[ + // @arg [in] p^[̒ + // + // @ret }b`eLXg̃CfbNXXgŕԂB + // Ō܂Ń}b`ꍇ̂ݐƂ݂ȂB + // + System::Collections::Generic::List^ patternMatch( FILE *fp, const u8 *pattern, const u32 patternLen ); + + //// + //// oCgɓ̃p^[܂܂邩ǂ}b`O (Boyer-Moore@) + //// + //// @arg [in] eLXg + //// [in] eLXg̒ + //// [in] p^[ + //// [in] p^[̒ + //// [in] skip}bv(炩ߐĂ) + //// + //// @ret }b`eLXg̃CfbNXXgŕԂB + //// + //System::Collections::Generic::List^ patternMatchBM( + // const u8 *text, const int textLen, const u8 *pattern, const int patternLen, const int skip[] ); + + //// + //// Boyer-Moore@skip}bv̐ + //// + //// @arg [in] p^[ + //// [in] p^[̒ + //// [out] skip}bv̊i[ + //// + //// @ret Ȃ + //// + //void makeSkipBM( const u8 *pattern, const int patternLen, int skip[] ); + + // + // XML̃[gm[hw肵Õ^OĕԂ + // + // @arg [in] XML̃[gm[h + // @arg [in] ^O + // + // @ret Ń}b`Ƃm[hԂBȂƂ nullptrB + // AŏɃ}b`̂̂ݕԂ + // + System::Xml::XmlNode^ searchXmlNode( System::Xml::XmlElement ^root, System::String ^tag ); + + // + // ^OẴeLXgw肵eLXgƈv邩ׂ + // + // @arg [in] XML̃[gm[h + // @arg [in] ^O + // @arg [in] l + // + // @ret vƂtrueBvȂƂA^O݂ȂƂfalseB + // + System::Boolean isXmlEqual( System::Xml::XmlElement ^root, System::String ^tag, System::String ^val ); + + // + // ^OẴeLXgԂ + // + // @arg [in] XML̃[gm[h + // @arg [in] ^OXPath + // + // @ret eLXg݂Ƃ̃eLXgԂB݂ȂƂnullptrB + // + System::String^ getXPathText( System::Xml::XmlElement ^root, System::String ^xpath ); + + // + // XMLɃ^Olj + // + // @arg [in] XMLhLg + // @arg [in] em[h + // @arg [in] ^O + // @arg [in] eLXg + // + void appendXmlTag( System::Xml::XmlDocument ^doc, System::Xml::XmlElement ^parent, + System::String ^tag, System::String ^text ); + + // + // rbgJEg + // + // @arg [in] l + // + // @ret rbg + // + u32 countBits( const u32 val ); + + // + // SDKo[Wǂ( 10203 -> "PR2 plus3") + // + System::String^ analyzeSDKVersion( System::UInt32 code ); + + // + // SDKo[W̑召 + // + // @arg [in] ΏۂSDKo[W(SRLɊ܂܂) + // @arg [in] SDKo[W(ݒt@CɋLq) + // @arg [in] Relstep̔PR/RĈƂ肷邩(falsêƂReleaseł̂) + // + // @ret Ώۂo[ŴƂ(F߂ȂƂ) true + // + System::Boolean IsOldSDKVersion( u32 target, u32 criterion, System::Boolean isRelstepPrRc ); + + // + // SDKo[WPRłǂׂ + // + // @arg [in] ΏۂSDKo[W(SRLɊ܂܂) + // + // @ret PRł̂Ƃ true + // + System::Boolean IsSDKVersionPR( u32 target ); + + // + // SDKo[WRCłǂׂ + // + // @arg [in] ΏۂSDKo[W(SRLɊ܂܂) + // + // @ret PRł̂Ƃ true + // + System::Boolean IsSDKVersionRC( u32 target ); + + // + // src base Pʂɐ؂グ + // + System::UInt32 roundUp( const System::UInt32 src, const System::UInt32 base ); + +} // end of namespace MasterEditorTWL diff --git a/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/MasterEditorTWLSetup/MasterEditorTWLSetup.vdproj b/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/MasterEditorTWLSetup/MasterEditorTWLSetup.vdproj new file mode 100644 index 0000000..7a683b2 --- /dev/null +++ b/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/MasterEditorTWLSetup/MasterEditorTWLSetup.vdproj @@ -0,0 +1,1250 @@ +"DeployProject" +{ +"VSVersion" = "3:800" +"ProjectType" = "8:{978C614F-708E-4E1A-B201-565925725DBA}" +"IsWebType" = "8:FALSE" +"ProjectName" = "8:MasterEditorTWLSetup" +"LanguageId" = "3:0" +"CodePage" = "3:1252" +"UILanguageId" = "3:0" +"SccProjectName" = "8:" +"SccLocalPath" = "8:" +"SccAuxPath" = "8:" +"SccProvider" = "8:" + "Hierarchy" + { + "Entry" + { + "MsmKey" = "8:_0D0C05C8F5C64A36ABB4BFA2AA2727E4" + "OwnerKey" = "8:_UNDEFINED" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_0E470F1B3CF44F35ABF4FB16E91A115D" + "OwnerKey" = "8:_UNDEFINED" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_351447BE85794AA58330AD369D8A545D" + "OwnerKey" = "8:_UNDEFINED" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_450932A0FF6842D68977626BA6866783" + "OwnerKey" = "8:_UNDEFINED" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_49104D7177B54D00B4FB0261387DAD61" + "OwnerKey" = "8:_UNDEFINED" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_491C89DAB2F34A939F356C47975E7BD0" + "OwnerKey" = "8:_UNDEFINED" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_4A789B616E314FB4B5958DC9AAFA6335" + "OwnerKey" = "8:_UNDEFINED" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_4E53291669A94A01BEB1B14679DF85E0" + "OwnerKey" = "8:_7746D2D347F0423FB46FA2300F6158A4" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_6EC739CA561443E48045379A268C1657" + "OwnerKey" = "8:_UNDEFINED" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_7746D2D347F0423FB46FA2300F6158A4" + "OwnerKey" = "8:_UNDEFINED" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_7DAFD42678FC4D69A3A6BC6E6726AB10" + "OwnerKey" = "8:_UNDEFINED" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_8455999AD79146CD868F19064410E073" + "OwnerKey" = "8:_UNDEFINED" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_899760908357496CB0912065D65DDBDA" + "OwnerKey" = "8:_4E53291669A94A01BEB1B14679DF85E0" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_9081D70FB535474FA8789DC9AFE4637C" + "OwnerKey" = "8:_UNDEFINED" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_A3417E9C9F294832AE49B5BDAF95E373" + "OwnerKey" = "8:_UNDEFINED" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_BFEA9BAA0DBF4332913A71EDE89FC3CD" + "OwnerKey" = "8:_UNDEFINED" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_DAC0F3BBAB014046906FA4ACE74604B7" + "OwnerKey" = "8:_UNDEFINED" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_FE56DE664C36410FB05BBF909ADE9DBE" + "OwnerKey" = "8:_UNDEFINED" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_UNDEFINED" + "OwnerKey" = "8:_7746D2D347F0423FB46FA2300F6158A4" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_UNDEFINED" + "OwnerKey" = "8:_BFEA9BAA0DBF4332913A71EDE89FC3CD" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_UNDEFINED" + "OwnerKey" = "8:_7DAFD42678FC4D69A3A6BC6E6726AB10" + "MsmSig" = "8:_UNDEFINED" + } + } + "Configurations" + { + "Debug" + { + "DisplayName" = "8:Debug" + "IsDebugOnly" = "11:TRUE" + "IsReleaseOnly" = "11:FALSE" + "OutputFilename" = "8:..\\..\\..\\bin\\MasterEditorTWLSetup.msi" + "PackageFilesAs" = "3:2" + "PackageFileSize" = "3:-2147483648" + "CabType" = "3:1" + "Compression" = "3:2" + "SignOutput" = "11:FALSE" + "CertificateFile" = "8:" + "PrivateKeyFile" = "8:" + "TimeStampServer" = "8:" + "InstallerBootstrapper" = "3:2" + "BootstrapperCfg:{63ACBE69-63AA-4F98-B2B6-99F9E24495F2}" + { + "Enabled" = "11:TRUE" + "PromptEnabled" = "11:TRUE" + "PrerequisitesLocation" = "2:1" + "Url" = "8:" + "ComponentsUrl" = "8:" + "Items" + { + "{EDC2488A-8267-493A-A98E-7D9C3B36CDF3}:Microsoft.Net.Framework.2.0" + { + "Name" = "8:.NET Framework 2.0 (x86)" + "ProductCode" = "8:Microsoft.Net.Framework.2.0" + } + "{EDC2488A-8267-493A-A98E-7D9C3B36CDF3}:Microsoft.Windows.Installer.3.1" + { + "Name" = "8:Windows インストーラ 3.1" + "ProductCode" = "8:Microsoft.Windows.Installer.3.1" + } + } + } + } + "Release" + { + "DisplayName" = "8:Release" + "IsDebugOnly" = "11:FALSE" + "IsReleaseOnly" = "11:TRUE" + "OutputFilename" = "8:..\\..\\..\\bin\\MasterEditorTWLSetup.msi" + "PackageFilesAs" = "3:2" + "PackageFileSize" = "3:-2147483648" + "CabType" = "3:1" + "Compression" = "3:2" + "SignOutput" = "11:FALSE" + "CertificateFile" = "8:" + "PrivateKeyFile" = "8:" + "TimeStampServer" = "8:" + "InstallerBootstrapper" = "3:2" + "BootstrapperCfg:{63ACBE69-63AA-4F98-B2B6-99F9E24495F2}" + { + "Enabled" = "11:TRUE" + "PromptEnabled" = "11:TRUE" + "PrerequisitesLocation" = "2:1" + "Url" = "8:" + "ComponentsUrl" = "8:" + "Items" + { + "{EDC2488A-8267-493A-A98E-7D9C3B36CDF3}:Microsoft.Net.Framework.2.0" + { + "Name" = "8:.NET Framework 2.0 (x86)" + "ProductCode" = "8:Microsoft.Net.Framework.2.0" + } + "{EDC2488A-8267-493A-A98E-7D9C3B36CDF3}:Microsoft.Windows.Installer.3.1" + { + "Name" = "8:Windows インストーラ 3.1" + "ProductCode" = "8:Microsoft.Windows.Installer.3.1" + } + } + } + } + } + "Deployable" + { + "CustomAction" + { + } + "DefaultFeature" + { + "Name" = "8:DefaultFeature" + "Title" = "8:" + "Description" = "8:" + } + "ExternalPersistence" + { + "LaunchCondition" + { + "{A06ECF26-33A3-4562-8140-9B0E340D4F24}:_6924DDEBAA3847838D980F2E7456B5FF" + { + "Name" = "8:.NET Framework" + "Message" = "8:[VSDNETMSG]" + "Version" = "8:2.0.50727" + "AllowLaterVersions" = "11:FALSE" + "InstallUrl" = "8:http://go.microsoft.com/fwlink/?LinkId=76617" + } + } + } + "File" + { + "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_0D0C05C8F5C64A36ABB4BFA2AA2727E4" + { + "SourcePath" = "8:..\\resource\\mrc_msg_e.xml" + "TargetName" = "8:mrc_msg_e.xml" + "Tag" = "8:" + "Folder" = "8:_99EFE6B595C5432FB4712560C9D29AE5" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Vital" = "11:TRUE" + "ReadOnly" = "11:FALSE" + "Hidden" = "11:FALSE" + "System" = "11:FALSE" + "Permanent" = "11:FALSE" + "SharedLegacy" = "11:FALSE" + "PackageAs" = "3:1" + "Register" = "3:1" + "Exclude" = "11:FALSE" + "IsDependency" = "11:FALSE" + "IsolateTo" = "8:" + } + "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_0E470F1B3CF44F35ABF4FB16E91A115D" + { + "SourcePath" = "8:..\\resource\\rominfolist.xsl" + "TargetName" = "8:rominfolist.xsl" + "Tag" = "8:" + "Folder" = "8:_99EFE6B595C5432FB4712560C9D29AE5" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Vital" = "11:TRUE" + "ReadOnly" = "11:FALSE" + "Hidden" = "11:FALSE" + "System" = "11:FALSE" + "Permanent" = "11:FALSE" + "SharedLegacy" = "11:FALSE" + "PackageAs" = "3:1" + "Register" = "3:1" + "Exclude" = "11:FALSE" + "IsDependency" = "11:FALSE" + "IsolateTo" = "8:" + } + "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_351447BE85794AA58330AD369D8A545D" + { + "SourcePath" = "8:..\\resource\\gui_msg_j.xml" + "TargetName" = "8:gui_msg_j.xml" + "Tag" = "8:" + "Folder" = "8:_99EFE6B595C5432FB4712560C9D29AE5" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Vital" = "11:TRUE" + "ReadOnly" = "11:FALSE" + "Hidden" = "11:FALSE" + "System" = "11:FALSE" + "Permanent" = "11:FALSE" + "SharedLegacy" = "11:FALSE" + "PackageAs" = "3:1" + "Register" = "3:1" + "Exclude" = "11:FALSE" + "IsDependency" = "11:FALSE" + "IsolateTo" = "8:" + } + "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_450932A0FF6842D68977626BA6866783" + { + "SourcePath" = "8:..\\resource\\gui_msg_e.xml" + "TargetName" = "8:gui_msg_e.xml" + "Tag" = "8:" + "Folder" = "8:_99EFE6B595C5432FB4712560C9D29AE5" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Vital" = "11:TRUE" + "ReadOnly" = "11:FALSE" + "Hidden" = "11:FALSE" + "System" = "11:FALSE" + "Permanent" = "11:FALSE" + "SharedLegacy" = "11:FALSE" + "PackageAs" = "3:1" + "Register" = "3:1" + "Exclude" = "11:FALSE" + "IsDependency" = "11:FALSE" + "IsolateTo" = "8:" + } + "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_49104D7177B54D00B4FB0261387DAD61" + { + "SourcePath" = "8:..\\resource\\middleware_name_list.xml" + "TargetName" = "8:middleware_name_list.xml" + "Tag" = "8:" + "Folder" = "8:_99EFE6B595C5432FB4712560C9D29AE5" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Vital" = "11:TRUE" + "ReadOnly" = "11:FALSE" + "Hidden" = "11:FALSE" + "System" = "11:FALSE" + "Permanent" = "11:FALSE" + "SharedLegacy" = "11:FALSE" + "PackageAs" = "3:1" + "Register" = "3:1" + "Exclude" = "11:FALSE" + "IsDependency" = "11:FALSE" + "IsolateTo" = "8:" + } + "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_491C89DAB2F34A939F356C47975E7BD0" + { + "SourcePath" = "8:..\\resource\\middleware.xsl" + "TargetName" = "8:middleware.xsl" + "Tag" = "8:" + "Folder" = "8:_99EFE6B595C5432FB4712560C9D29AE5" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Vital" = "11:TRUE" + "ReadOnly" = "11:FALSE" + "Hidden" = "11:FALSE" + "System" = "11:FALSE" + "Permanent" = "11:FALSE" + "SharedLegacy" = "11:FALSE" + "PackageAs" = "3:1" + "Register" = "3:1" + "Exclude" = "11:FALSE" + "IsDependency" = "11:FALSE" + "IsolateTo" = "8:" + } + "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_4A789B616E314FB4B5958DC9AAFA6335" + { + "SourcePath" = "8:..\\resource\\mrc_msg_j.xml" + "TargetName" = "8:mrc_msg_j.xml" + "Tag" = "8:" + "Folder" = "8:_99EFE6B595C5432FB4712560C9D29AE5" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Vital" = "11:TRUE" + "ReadOnly" = "11:FALSE" + "Hidden" = "11:FALSE" + "System" = "11:FALSE" + "Permanent" = "11:FALSE" + "SharedLegacy" = "11:FALSE" + "PackageAs" = "3:1" + "Register" = "3:1" + "Exclude" = "11:FALSE" + "IsDependency" = "11:FALSE" + "IsolateTo" = "8:" + } + "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_6EC739CA561443E48045379A268C1657" + { + "SourcePath" = "8:..\\resource\\middleware_e.xsl" + "TargetName" = "8:middleware_e.xsl" + "Tag" = "8:" + "Folder" = "8:_99EFE6B595C5432FB4712560C9D29AE5" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Vital" = "11:TRUE" + "ReadOnly" = "11:FALSE" + "Hidden" = "11:FALSE" + "System" = "11:FALSE" + "Permanent" = "11:FALSE" + "SharedLegacy" = "11:FALSE" + "PackageAs" = "3:1" + "Register" = "3:1" + "Exclude" = "11:FALSE" + "IsDependency" = "11:FALSE" + "IsolateTo" = "8:" + } + "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_7DAFD42678FC4D69A3A6BC6E6726AB10" + { + "AssemblyRegister" = "3:1" + "AssemblyIsInGAC" = "11:FALSE" + "AssemblyAsmDisplayName" = "8:MasterEditorTWL.resources, Version=1.8.3664.28542, Culture=en, processorArchitecture=MSIL" + "ScatterAssemblies" + { + } + "SourcePath" = "8:..\\Release\\en\\MasterEditorTWL.resources.dll" + "TargetName" = "8:" + "Tag" = "8:" + "Folder" = "8:_2C8B0A3A9244431B89022826791456F1" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Vital" = "11:TRUE" + "ReadOnly" = "11:FALSE" + "Hidden" = "11:FALSE" + "System" = "11:FALSE" + "Permanent" = "11:FALSE" + "SharedLegacy" = "11:FALSE" + "PackageAs" = "3:1" + "Register" = "3:1" + "Exclude" = "11:FALSE" + "IsDependency" = "11:FALSE" + "IsolateTo" = "8:" + } + "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_8455999AD79146CD868F19064410E073" + { + "SourcePath" = "8:..\\resource\\sheet_template_jp.xml" + "TargetName" = "8:sheet_template_jp.xml" + "Tag" = "8:" + "Folder" = "8:_99EFE6B595C5432FB4712560C9D29AE5" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Vital" = "11:TRUE" + "ReadOnly" = "11:FALSE" + "Hidden" = "11:FALSE" + "System" = "11:FALSE" + "Permanent" = "11:FALSE" + "SharedLegacy" = "11:FALSE" + "PackageAs" = "3:1" + "Register" = "3:1" + "Exclude" = "11:FALSE" + "IsDependency" = "11:FALSE" + "IsolateTo" = "8:" + } + "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_9081D70FB535474FA8789DC9AFE4637C" + { + "SourcePath" = "8:..\\company.xml" + "TargetName" = "8:company.xml" + "Tag" = "8:" + "Folder" = "8:_1494B8B199184797B9C812877A4DFB7F" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Vital" = "11:TRUE" + "ReadOnly" = "11:FALSE" + "Hidden" = "11:FALSE" + "System" = "11:FALSE" + "Permanent" = "11:FALSE" + "SharedLegacy" = "11:FALSE" + "PackageAs" = "3:1" + "Register" = "3:1" + "Exclude" = "11:FALSE" + "IsDependency" = "11:FALSE" + "IsolateTo" = "8:" + } + "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_A3417E9C9F294832AE49B5BDAF95E373" + { + "SourcePath" = "8:..\\resource\\ini.xml" + "TargetName" = "8:ini.xml" + "Tag" = "8:" + "Folder" = "8:_99EFE6B595C5432FB4712560C9D29AE5" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Vital" = "11:TRUE" + "ReadOnly" = "11:FALSE" + "Hidden" = "11:FALSE" + "System" = "11:FALSE" + "Permanent" = "11:FALSE" + "SharedLegacy" = "11:FALSE" + "PackageAs" = "3:1" + "Register" = "3:1" + "Exclude" = "11:FALSE" + "IsDependency" = "11:FALSE" + "IsolateTo" = "8:" + } + "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_BFEA9BAA0DBF4332913A71EDE89FC3CD" + { + "AssemblyRegister" = "3:1" + "AssemblyIsInGAC" = "11:FALSE" + "AssemblyAsmDisplayName" = "8:MasterEditorTWL.resources, Version=1.8.3664.28542, Culture=ja, processorArchitecture=MSIL" + "ScatterAssemblies" + { + } + "SourcePath" = "8:..\\Release\\ja\\MasterEditorTWL.resources.dll" + "TargetName" = "8:" + "Tag" = "8:" + "Folder" = "8:_AB6CC39E2A774B2AB387F6F4C81BE36E" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Vital" = "11:TRUE" + "ReadOnly" = "11:FALSE" + "Hidden" = "11:FALSE" + "System" = "11:FALSE" + "Permanent" = "11:FALSE" + "SharedLegacy" = "11:FALSE" + "PackageAs" = "3:1" + "Register" = "3:1" + "Exclude" = "11:FALSE" + "IsDependency" = "11:FALSE" + "IsolateTo" = "8:" + } + "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_DAC0F3BBAB014046906FA4ACE74604B7" + { + "SourcePath" = "8:..\\resource\\errorlist.xsl" + "TargetName" = "8:errorlist.xsl" + "Tag" = "8:" + "Folder" = "8:_99EFE6B595C5432FB4712560C9D29AE5" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Vital" = "11:TRUE" + "ReadOnly" = "11:FALSE" + "Hidden" = "11:FALSE" + "System" = "11:FALSE" + "Permanent" = "11:FALSE" + "SharedLegacy" = "11:FALSE" + "PackageAs" = "3:1" + "Register" = "3:1" + "Exclude" = "11:FALSE" + "IsDependency" = "11:FALSE" + "IsolateTo" = "8:" + } + "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_FE56DE664C36410FB05BBF909ADE9DBE" + { + "SourcePath" = "8:..\\resource\\sheet_template_en.xml" + "TargetName" = "8:sheet_template_en.xml" + "Tag" = "8:" + "Folder" = "8:_99EFE6B595C5432FB4712560C9D29AE5" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Vital" = "11:TRUE" + "ReadOnly" = "11:FALSE" + "Hidden" = "11:FALSE" + "System" = "11:FALSE" + "Permanent" = "11:FALSE" + "SharedLegacy" = "11:FALSE" + "PackageAs" = "3:1" + "Register" = "3:1" + "Exclude" = "11:FALSE" + "IsDependency" = "11:FALSE" + "IsolateTo" = "8:" + } + } + "FileType" + { + } + "Folder" + { + "{1525181F-901A-416C-8A58-119130FE478E}:_511CA14EE892474E9A4F78537CA4FD5F" + { + "Name" = "8:#1916" + "AlwaysCreate" = "11:TRUE" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Property" = "8:DesktopFolder" + "Folders" + { + } + } + "{3C67513D-01DD-4637-8A68-80971EB9504F}:_DB36135A1FB84606BA18105F8B898FB2" + { + "DefaultLocation" = "8:[ProgramFilesFolder][Manufacturer]\\[ProductName]" + "Name" = "8:#1925" + "AlwaysCreate" = "11:FALSE" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Property" = "8:TARGETDIR" + "Folders" + { + "{9EF0B969-E518-4E46-987F-47570745A589}:_1494B8B199184797B9C812877A4DFB7F" + { + "Name" = "8:bin" + "AlwaysCreate" = "11:FALSE" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Property" = "8:_B23854B2049F4A97BCD9477AFCDBE7EB" + "Folders" + { + "{9EF0B969-E518-4E46-987F-47570745A589}:_2C8B0A3A9244431B89022826791456F1" + { + "Name" = "8:en" + "AlwaysCreate" = "11:FALSE" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Property" = "8:_2ACBDCAFB26447ECAEC8CEC338E108D7" + "Folders" + { + } + } + "{9EF0B969-E518-4E46-987F-47570745A589}:_AB6CC39E2A774B2AB387F6F4C81BE36E" + { + "Name" = "8:ja" + "AlwaysCreate" = "11:FALSE" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Property" = "8:_0CDFCC11878746AE8F009DBFCAD3F129" + "Folders" + { + } + } + } + } + "{9EF0B969-E518-4E46-987F-47570745A589}:_99EFE6B595C5432FB4712560C9D29AE5" + { + "Name" = "8:resource" + "AlwaysCreate" = "11:FALSE" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Property" = "8:_640331DE98B247AD89E624136F7BF429" + "Folders" + { + } + } + } + } + "{1525181F-901A-416C-8A58-119130FE478E}:_F871EA43D66E4C2C868D277F17AE8F52" + { + "Name" = "8:#1919" + "AlwaysCreate" = "11:FALSE" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Property" = "8:ProgramMenuFolder" + "Folders" + { + } + } + } + "LaunchCondition" + { + } + "Locator" + { + } + "MsiBootstrapper" + { + "LangId" = "3:0" + "RequiresElevation" = "11:FALSE" + } + "Product" + { + "Name" = "8:Microsoft Visual Studio" + "ProductName" = "8:MasterEditorTWL" + "ProductCode" = "8:{B12B5AFF-26D1-47B5-85B6-1E2A7B5106F5}" + "PackageCode" = "8:{1047076B-0F2A-4B45-8FB6-12E43381C4B5}" + "UpgradeCode" = "8:{CE22C209-7AE1-4F58-8F6B-6D044BA2A118}" + "RestartWWWService" = "11:FALSE" + "RemovePreviousVersions" = "11:FALSE" + "DetectNewerInstalledVersion" = "11:TRUE" + "InstallAllUsers" = "11:FALSE" + "ProductVersion" = "8:1.0.0" + "Manufacturer" = "8:nintendo" + "ARPHELPTELEPHONE" = "8:" + "ARPHELPLINK" = "8:" + "Title" = "8:MasterEditorTWLSetup" + "Subject" = "8:" + "ARPCONTACT" = "8:nintendo" + "Keywords" = "8:" + "ARPCOMMENTS" = "8:" + "ARPURLINFOABOUT" = "8:" + "ARPPRODUCTICON" = "8:" + "ARPIconIndex" = "3:0" + "SearchPath" = "8:" + "UseSystemSearchPath" = "11:TRUE" + "TargetPlatform" = "3:0" + "PreBuildEvent" = "8:" + "PostBuildEvent" = "8:" + "RunPostBuildEvent" = "3:0" + } + "Registry" + { + "HKLM" + { + "Keys" + { + "{60EA8692-D2D5-43EB-80DC-7906BF13D6EF}:_DE3525327D5741C8B8F00223FB033E80" + { + "Name" = "8:Software" + "Condition" = "8:" + "AlwaysCreate" = "11:FALSE" + "DeleteAtUninstall" = "11:FALSE" + "Transitive" = "11:FALSE" + "Keys" + { + "{60EA8692-D2D5-43EB-80DC-7906BF13D6EF}:_064E90E490674DEEA974094B5467A386" + { + "Name" = "8:[Manufacturer]" + "Condition" = "8:" + "AlwaysCreate" = "11:FALSE" + "DeleteAtUninstall" = "11:FALSE" + "Transitive" = "11:FALSE" + "Keys" + { + } + "Values" + { + } + } + } + "Values" + { + } + } + } + } + "HKCU" + { + "Keys" + { + "{60EA8692-D2D5-43EB-80DC-7906BF13D6EF}:_E41443B9DF754797AA265044ED843A52" + { + "Name" = "8:Software" + "Condition" = "8:" + "AlwaysCreate" = "11:FALSE" + "DeleteAtUninstall" = "11:FALSE" + "Transitive" = "11:FALSE" + "Keys" + { + "{60EA8692-D2D5-43EB-80DC-7906BF13D6EF}:_2BC1D936E6DC45A7A1BD166F48CE31C3" + { + "Name" = "8:[Manufacturer]" + "Condition" = "8:" + "AlwaysCreate" = "11:FALSE" + "DeleteAtUninstall" = "11:FALSE" + "Transitive" = "11:FALSE" + "Keys" + { + } + "Values" + { + } + } + } + "Values" + { + } + } + } + } + "HKCR" + { + "Keys" + { + } + } + "HKU" + { + "Keys" + { + } + } + "HKPU" + { + "Keys" + { + } + } + } + "Sequences" + { + } + "Shortcut" + { + "{970C0BB2-C7D0-45D7-ABFA-7EC378858BC0}:_1E9C816FBE5C44DC8A2649DF40760892" + { + "Name" = "8:MasterEditorTWL" + "Arguments" = "8:" + "Description" = "8:" + "ShowCmd" = "3:1" + "IconIndex" = "3:0" + "Transitive" = "11:FALSE" + "Target" = "8:_7746D2D347F0423FB46FA2300F6158A4" + "Folder" = "8:_511CA14EE892474E9A4F78537CA4FD5F" + "WorkingFolder" = "8:_1494B8B199184797B9C812877A4DFB7F" + "Icon" = "8:" + "Feature" = "8:" + } + } + "UserInterface" + { + "{2479F3F5-0309-486D-8047-8187E2CE5BA0}:_4CCE54AD98074A3BBD623BDEC20B9752" + { + "UseDynamicProperties" = "11:FALSE" + "IsDependency" = "11:FALSE" + "SourcePath" = "8:\\VsdUserInterface.wim" + } + "{DF760B10-853B-4699-99F2-AFF7185B4A62}:_75F92E28CF004D259861A9FED348A478" + { + "Name" = "8:#1900" + "Sequence" = "3:1" + "Attributes" = "3:1" + "Dialogs" + { + "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_03D0563E96ED4290A1F39B1089754E46" + { + "Sequence" = "3:200" + "DisplayName" = "8:インストール フォルダ" + "UseDynamicProperties" = "11:TRUE" + "IsDependency" = "11:FALSE" + "SourcePath" = "8:\\VsdFolderDlg.wid" + "Properties" + { + "BannerBitmap" + { + "Name" = "8:BannerBitmap" + "DisplayName" = "8:#1001" + "Description" = "8:#1101" + "Type" = "3:8" + "ContextData" = "8:Bitmap" + "Attributes" = "3:4" + "Setting" = "3:1" + "UsePlugInResources" = "11:TRUE" + } + "InstallAllUsersVisible" + { + "Name" = "8:InstallAllUsersVisible" + "DisplayName" = "8:#1059" + "Description" = "8:#1159" + "Type" = "3:5" + "ContextData" = "8:1;True=1;False=0" + "Attributes" = "3:0" + "Setting" = "3:0" + "Value" = "3:1" + "DefaultValue" = "3:1" + "UsePlugInResources" = "11:TRUE" + } + } + } + "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_15934606B52D491287A665833C86963C" + { + "Sequence" = "3:100" + "DisplayName" = "8:ようこそ" + "UseDynamicProperties" = "11:TRUE" + "IsDependency" = "11:FALSE" + "SourcePath" = "8:\\VsdWelcomeDlg.wid" + "Properties" + { + "BannerBitmap" + { + "Name" = "8:BannerBitmap" + "DisplayName" = "8:#1001" + "Description" = "8:#1101" + "Type" = "3:8" + "ContextData" = "8:Bitmap" + "Attributes" = "3:4" + "Setting" = "3:1" + "UsePlugInResources" = "11:TRUE" + } + "CopyrightWarning" + { + "Name" = "8:CopyrightWarning" + "DisplayName" = "8:#1002" + "Description" = "8:#1102" + "Type" = "3:3" + "ContextData" = "8:" + "Attributes" = "3:0" + "Setting" = "3:1" + "Value" = "8:#1202" + "DefaultValue" = "8:#1202" + "UsePlugInResources" = "11:TRUE" + } + "Welcome" + { + "Name" = "8:Welcome" + "DisplayName" = "8:#1003" + "Description" = "8:#1103" + "Type" = "3:3" + "ContextData" = "8:" + "Attributes" = "3:0" + "Setting" = "3:1" + "Value" = "8:#1203" + "DefaultValue" = "8:#1203" + "UsePlugInResources" = "11:TRUE" + } + } + } + "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_C16356A19FD541E68225C5E34F2ACBD1" + { + "Sequence" = "3:300" + "DisplayName" = "8:インストールの確認" + "UseDynamicProperties" = "11:TRUE" + "IsDependency" = "11:FALSE" + "SourcePath" = "8:\\VsdConfirmDlg.wid" + "Properties" + { + "BannerBitmap" + { + "Name" = "8:BannerBitmap" + "DisplayName" = "8:#1001" + "Description" = "8:#1101" + "Type" = "3:8" + "ContextData" = "8:Bitmap" + "Attributes" = "3:4" + "Setting" = "3:1" + "UsePlugInResources" = "11:TRUE" + } + } + } + } + } + "{DF760B10-853B-4699-99F2-AFF7185B4A62}:_84553AE7657346C0BEFFACC6DEE8BA3E" + { + "Name" = "8:#1901" + "Sequence" = "3:2" + "Attributes" = "3:2" + "Dialogs" + { + "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_46AE50DF1B9A458FA932AB9BDEB8C097" + { + "Sequence" = "3:100" + "DisplayName" = "8:進行状況" + "UseDynamicProperties" = "11:TRUE" + "IsDependency" = "11:FALSE" + "SourcePath" = "8:\\VsdAdminProgressDlg.wid" + "Properties" + { + "BannerBitmap" + { + "Name" = "8:BannerBitmap" + "DisplayName" = "8:#1001" + "Description" = "8:#1101" + "Type" = "3:8" + "ContextData" = "8:Bitmap" + "Attributes" = "3:4" + "Setting" = "3:1" + "UsePlugInResources" = "11:TRUE" + } + "ShowProgress" + { + "Name" = "8:ShowProgress" + "DisplayName" = "8:#1009" + "Description" = "8:#1109" + "Type" = "3:5" + "ContextData" = "8:1;True=1;False=0" + "Attributes" = "3:0" + "Setting" = "3:0" + "Value" = "3:1" + "DefaultValue" = "3:1" + "UsePlugInResources" = "11:TRUE" + } + } + } + } + } + "{DF760B10-853B-4699-99F2-AFF7185B4A62}:_856D1D3282D44811B9EEF57A521CB8A0" + { + "Name" = "8:#1900" + "Sequence" = "3:2" + "Attributes" = "3:1" + "Dialogs" + { + "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_0E61C8F6C89747558C33BD69BACE7158" + { + "Sequence" = "3:300" + "DisplayName" = "8:インストールの確認" + "UseDynamicProperties" = "11:TRUE" + "IsDependency" = "11:FALSE" + "SourcePath" = "8:\\VsdAdminConfirmDlg.wid" + "Properties" + { + "BannerBitmap" + { + "Name" = "8:BannerBitmap" + "DisplayName" = "8:#1001" + "Description" = "8:#1101" + "Type" = "3:8" + "ContextData" = "8:Bitmap" + "Attributes" = "3:4" + "Setting" = "3:1" + "UsePlugInResources" = "11:TRUE" + } + } + } + "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_43EBFD558AA44619A26A25D5AE33C315" + { + "Sequence" = "3:100" + "DisplayName" = "8:ようこそ" + "UseDynamicProperties" = "11:TRUE" + "IsDependency" = "11:FALSE" + "SourcePath" = "8:\\VsdAdminWelcomeDlg.wid" + "Properties" + { + "BannerBitmap" + { + "Name" = "8:BannerBitmap" + "DisplayName" = "8:#1001" + "Description" = "8:#1101" + "Type" = "3:8" + "ContextData" = "8:Bitmap" + "Attributes" = "3:4" + "Setting" = "3:1" + "UsePlugInResources" = "11:TRUE" + } + "CopyrightWarning" + { + "Name" = "8:CopyrightWarning" + "DisplayName" = "8:#1002" + "Description" = "8:#1102" + "Type" = "3:3" + "ContextData" = "8:" + "Attributes" = "3:0" + "Setting" = "3:1" + "Value" = "8:#1202" + "DefaultValue" = "8:#1202" + "UsePlugInResources" = "11:TRUE" + } + "Welcome" + { + "Name" = "8:Welcome" + "DisplayName" = "8:#1003" + "Description" = "8:#1103" + "Type" = "3:3" + "ContextData" = "8:" + "Attributes" = "3:0" + "Setting" = "3:1" + "Value" = "8:#1203" + "DefaultValue" = "8:#1203" + "UsePlugInResources" = "11:TRUE" + } + } + } + "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_D4B799BD07FD4AE5890E6319153B8CCF" + { + "Sequence" = "3:200" + "DisplayName" = "8:インストール フォルダ" + "UseDynamicProperties" = "11:TRUE" + "IsDependency" = "11:FALSE" + "SourcePath" = "8:\\VsdAdminFolderDlg.wid" + "Properties" + { + "BannerBitmap" + { + "Name" = "8:BannerBitmap" + "DisplayName" = "8:#1001" + "Description" = "8:#1101" + "Type" = "3:8" + "ContextData" = "8:Bitmap" + "Attributes" = "3:4" + "Setting" = "3:1" + "UsePlugInResources" = "11:TRUE" + } + } + } + } + } + "{DF760B10-853B-4699-99F2-AFF7185B4A62}:_95CC2394B4924E52BEF9CC6A51AA8BBF" + { + "Name" = "8:#1902" + "Sequence" = "3:1" + "Attributes" = "3:3" + "Dialogs" + { + "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_F7EC3CF49FA04B88A1CBE0B6963F0875" + { + "Sequence" = "3:100" + "DisplayName" = "8:完了" + "UseDynamicProperties" = "11:TRUE" + "IsDependency" = "11:FALSE" + "SourcePath" = "8:\\VsdFinishedDlg.wid" + "Properties" + { + "BannerBitmap" + { + "Name" = "8:BannerBitmap" + "DisplayName" = "8:#1001" + "Description" = "8:#1101" + "Type" = "3:8" + "ContextData" = "8:Bitmap" + "Attributes" = "3:4" + "Setting" = "3:1" + "UsePlugInResources" = "11:TRUE" + } + "UpdateText" + { + "Name" = "8:UpdateText" + "DisplayName" = "8:#1058" + "Description" = "8:#1158" + "Type" = "3:15" + "ContextData" = "8:" + "Attributes" = "3:0" + "Setting" = "3:1" + "Value" = "8:#1258" + "DefaultValue" = "8:#1258" + "UsePlugInResources" = "11:TRUE" + } + } + } + } + } + "{DF760B10-853B-4699-99F2-AFF7185B4A62}:_A8FC0955E1E54111A186CB9467EF1132" + { + "Name" = "8:#1902" + "Sequence" = "3:2" + "Attributes" = "3:3" + "Dialogs" + { + "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_28866486C3004ECAAF88E207A435EF0D" + { + "Sequence" = "3:100" + "DisplayName" = "8:完了" + "UseDynamicProperties" = "11:TRUE" + "IsDependency" = "11:FALSE" + "SourcePath" = "8:\\VsdAdminFinishedDlg.wid" + "Properties" + { + "BannerBitmap" + { + "Name" = "8:BannerBitmap" + "DisplayName" = "8:#1001" + "Description" = "8:#1101" + "Type" = "3:8" + "ContextData" = "8:Bitmap" + "Attributes" = "3:4" + "Setting" = "3:1" + "UsePlugInResources" = "11:TRUE" + } + } + } + } + } + "{DF760B10-853B-4699-99F2-AFF7185B4A62}:_DAB148986A654428A42E413FD4B68E8F" + { + "Name" = "8:#1901" + "Sequence" = "3:1" + "Attributes" = "3:2" + "Dialogs" + { + "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_61716D98ACBB4CBCB78E425A1C6A4E53" + { + "Sequence" = "3:100" + "DisplayName" = "8:進行状況" + "UseDynamicProperties" = "11:TRUE" + "IsDependency" = "11:FALSE" + "SourcePath" = "8:\\VsdProgressDlg.wid" + "Properties" + { + "BannerBitmap" + { + "Name" = "8:BannerBitmap" + "DisplayName" = "8:#1001" + "Description" = "8:#1101" + "Type" = "3:8" + "ContextData" = "8:Bitmap" + "Attributes" = "3:4" + "Setting" = "3:1" + "UsePlugInResources" = "11:TRUE" + } + "ShowProgress" + { + "Name" = "8:ShowProgress" + "DisplayName" = "8:#1009" + "Description" = "8:#1109" + "Type" = "3:5" + "ContextData" = "8:1;True=1;False=0" + "Attributes" = "3:0" + "Setting" = "3:0" + "Value" = "3:1" + "DefaultValue" = "3:1" + "UsePlugInResources" = "11:TRUE" + } + } + } + } + } + "{2479F3F5-0309-486D-8047-8187E2CE5BA0}:_E0E8980863E24B64A2A4D12136B5027B" + { + "UseDynamicProperties" = "11:FALSE" + "IsDependency" = "11:FALSE" + "SourcePath" = "8:\\VsdBasicDialogs.wim" + } + } + "MergeModule" + { + "{CEE29DC0-9FBA-4B99-8D47-5BC643D9B626}:_4E53291669A94A01BEB1B14679DF85E0" + { + "UseDynamicProperties" = "11:TRUE" + "IsDependency" = "11:TRUE" + "SourcePath" = "8:policy_9_0_Microsoft_VC90_CRT_x86.msm" + "Properties" + { + } + "LanguageId" = "3:0" + "Exclude" = "11:FALSE" + "Folder" = "8:" + "Feature" = "8:" + "IsolateTo" = "8:" + } + "{CEE29DC0-9FBA-4B99-8D47-5BC643D9B626}:_899760908357496CB0912065D65DDBDA" + { + "UseDynamicProperties" = "11:TRUE" + "IsDependency" = "11:TRUE" + "SourcePath" = "8:microsoft_vc90_crt_x86.msm" + "Properties" + { + } + "LanguageId" = "3:0" + "Exclude" = "11:FALSE" + "Folder" = "8:" + "Feature" = "8:" + "IsolateTo" = "8:" + } + } + "ProjectOutput" + { + "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_7746D2D347F0423FB46FA2300F6158A4" + { + "SourcePath" = "8:..\\Debug\\MasterEditorTWL.exe" + "TargetName" = "8:" + "Tag" = "8:" + "Folder" = "8:_1494B8B199184797B9C812877A4DFB7F" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Vital" = "11:TRUE" + "ReadOnly" = "11:FALSE" + "Hidden" = "11:FALSE" + "System" = "11:FALSE" + "Permanent" = "11:FALSE" + "SharedLegacy" = "11:FALSE" + "PackageAs" = "3:1" + "Register" = "3:1" + "Exclude" = "11:FALSE" + "IsDependency" = "11:FALSE" + "IsolateTo" = "8:" + "ProjectOutputGroupRegister" = "3:1" + "OutputConfiguration" = "8:" + "OutputGroupCanonicalName" = "8:Built" + "OutputProjectGuid" = "8:{F8A4F8F7-A3BD-4DCA-B054-5FF8A09082F5}" + "ShowKeyOutput" = "11:TRUE" + "ExcludeFilters" + { + } + } + } + } +} diff --git a/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/ResourceTransition/Release/ResourceTransition.exe b/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/ResourceTransition/Release/ResourceTransition.exe new file mode 100644 index 0000000..3aef75a Binary files /dev/null and b/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/ResourceTransition/Release/ResourceTransition.exe differ diff --git a/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/ResourceTransition/ResourceTransition.ncb b/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/ResourceTransition/ResourceTransition.ncb new file mode 100644 index 0000000..9937dd7 Binary files /dev/null and b/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/ResourceTransition/ResourceTransition.ncb differ diff --git a/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/ResourceTransition/ResourceTransition.sln b/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/ResourceTransition/ResourceTransition.sln new file mode 100644 index 0000000..8854dc7 --- /dev/null +++ b/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/ResourceTransition/ResourceTransition.sln @@ -0,0 +1,20 @@ + +Microsoft Visual Studio Solution File, Format Version 10.00 +# Visual Studio 2008 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ResourceTransition", "ResourceTransition\ResourceTransition.vcproj", "{A8AE9F94-E10F-4962-B5F7-059FEA220583}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Win32 = Debug|Win32 + Release|Win32 = Release|Win32 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {A8AE9F94-E10F-4962-B5F7-059FEA220583}.Debug|Win32.ActiveCfg = Debug|Win32 + {A8AE9F94-E10F-4962-B5F7-059FEA220583}.Debug|Win32.Build.0 = Debug|Win32 + {A8AE9F94-E10F-4962-B5F7-059FEA220583}.Release|Win32.ActiveCfg = Release|Win32 + {A8AE9F94-E10F-4962-B5F7-059FEA220583}.Release|Win32.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/ResourceTransition/ResourceTransition.suo b/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/ResourceTransition/ResourceTransition.suo new file mode 100644 index 0000000..5765f0d Binary files /dev/null and b/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/ResourceTransition/ResourceTransition.suo differ diff --git a/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/ResourceTransition/ResourceTransition/AssemblyInfo.cpp b/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/ResourceTransition/ResourceTransition/AssemblyInfo.cpp new file mode 100644 index 0000000..f032724 --- /dev/null +++ b/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/ResourceTransition/ResourceTransition/AssemblyInfo.cpp @@ -0,0 +1,40 @@ +#include "stdafx.h" + +using namespace System; +using namespace System::Reflection; +using namespace System::Runtime::CompilerServices; +using namespace System::Runtime::InteropServices; +using namespace System::Security::Permissions; + +// +// AZuɊւʏ͈ȉ̑ZbgƂĐ䂳܂B +// AZuɊ֘AtĂύXɂ́A +// ̑lύXĂB +// +[assembly:AssemblyTitleAttribute("ResourceTransition")]; +[assembly:AssemblyDescriptionAttribute("")]; +[assembly:AssemblyConfigurationAttribute("")]; +[assembly:AssemblyCompanyAttribute("CV")]; +[assembly:AssemblyProductAttribute("ResourceTransition")]; +[assembly:AssemblyCopyrightAttribute("Copyright (c) CV 2008")]; +[assembly:AssemblyTrademarkAttribute("")]; +[assembly:AssemblyCultureAttribute("")]; + +// +// AZũo[ẂAȉ 4 ‚̒lō\Ă܂: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// ׂĂ̒lw肷邩Â悤 '*' gărWуrhԍ +// lɂ邱Ƃł܂: + +[assembly:AssemblyVersionAttribute("1.0.*")]; + +[assembly:ComVisible(false)]; + +[assembly:CLSCompliantAttribute(true)]; + +[assembly:SecurityPermission(SecurityAction::RequestMinimum, UnmanagedCode = true)]; diff --git a/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/ResourceTransition/ResourceTransition/ReadMe.txt b/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/ResourceTransition/ResourceTransition/ReadMe.txt new file mode 100644 index 0000000..a80eed9 --- /dev/null +++ b/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/ResourceTransition/ResourceTransition/ReadMe.txt @@ -0,0 +1,29 @@ +=============================================================================== + AvP[V : ResourceTransition vWFNg̊Tv +=============================================================================== + + ResourceTransition AvP[V́AAppWizard ɂč쐬܂B + +̃t@Cɂ́AResourceTransition AvP[V\et@C +e̊TLqĂ܂B + +ResourceTransition.vcproj + ́AAvP[V EBU[hŐ VC++ vWFNg̃C + vWFNg t@CłB + t@C𐶐 Visual C++ ̃o[WƁAAvP[V EBU[ + hőIvbgtH[A\AуvWFNg̋@\Ɋւ + LqĂ܂B + +ResourceTransition.cpp + ́AC̃AvP[V \[X t@CłB + +AssemblyInfo.cpp + AZu ^f[^ύX邽߂̃JX^܂܂Ă܂B + +/////////////////////////////////////////////////////////////////////////////// +̑̃ : + +AppWizard ł́A"TODO:" gpāA[U[lj܂̓JX^}CY\[X +܂B + +/////////////////////////////////////////////////////////////////////////////// diff --git a/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/ResourceTransition/ResourceTransition/Release/BuildLog.htm b/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/ResourceTransition/ResourceTransition/Release/BuildLog.htm new file mode 100644 index 0000000..e46c11f Binary files /dev/null and b/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/ResourceTransition/ResourceTransition/Release/BuildLog.htm differ diff --git a/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/ResourceTransition/ResourceTransition/ResourceTransition.cpp b/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/ResourceTransition/ResourceTransition/ResourceTransition.cpp new file mode 100644 index 0000000..799c59e --- /dev/null +++ b/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/ResourceTransition/ResourceTransition/ResourceTransition.cpp @@ -0,0 +1,55 @@ +// ResourceTransition.cpp : C vWFNg t@CłB + +#include "stdafx.h" + +using namespace System; + +#define ROOT_PATH "..\\" + +int main(array ^args) +{ + // ƃ[gQbg + System::String ^root; + if( (args->Length <= 0) || (System::String::IsNullOrEmpty( args[0] )) ) + { + root = gcnew System::String(ROOT_PATH); // Ȃꍇ̓ftHg + } + else + { + root = args[0]; + if( !root->EndsWith( "\\" ) ) + { + root += "\\"; + } + } + Console::WriteLine( "Root path: " + root ); + + // VtH_/jp/ꃊ\[X.dll jp/ Ɉڂ(Rs[) + try + { + if( System::IO::File::Exists( root + "VtH_\\ja\\MasterEditorTWL.resources.dll" ) ) + { + Console::WriteLine( "File Exists." ); + if( !System::IO::Directory::Exists( root + "ja" ) ) + { + System::IO::Directory::CreateDirectory( root + "ja" ); + Console::WriteLine( "Create New Directory." ); + } + System::IO::File::Copy( root + "VtH_\\ja\\MasterEditorTWL.resources.dll", + root + "ja\\MasterEditorTWL.resources.dll", true ); // ㏑ + Console::WriteLine( "Copy Resource DLL." ); + } + else + { + Console::WriteLine( "No File Exists." ); + } + } + catch( System::Exception ^ex ) + { + Console::WriteLine( "error: " + ex->Message ); + } + + //Console::ReadKey(); + + return 0; +} diff --git a/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/ResourceTransition/ResourceTransition/ResourceTransition.vcproj b/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/ResourceTransition/ResourceTransition/ResourceTransition.vcproj new file mode 100644 index 0000000..5c76944 --- /dev/null +++ b/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/ResourceTransition/ResourceTransition/ResourceTransition.vcproj @@ -0,0 +1,248 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/ResourceTransition/ResourceTransition/ResourceTransition.vcproj.RED.nishikawa_takeshi.user b/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/ResourceTransition/ResourceTransition/ResourceTransition.vcproj.RED.nishikawa_takeshi.user new file mode 100644 index 0000000..7963a7f --- /dev/null +++ b/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/ResourceTransition/ResourceTransition/ResourceTransition.vcproj.RED.nishikawa_takeshi.user @@ -0,0 +1,65 @@ + + + + + + + + + + + diff --git a/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/ResourceTransition/ResourceTransition/app.ico b/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/ResourceTransition/ResourceTransition/app.ico new file mode 100644 index 0000000..3a5525f Binary files /dev/null and b/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/ResourceTransition/ResourceTransition/app.ico differ diff --git a/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/ResourceTransition/ResourceTransition/app.rc b/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/ResourceTransition/ResourceTransition/app.rc new file mode 100644 index 0000000..2ad8e34 --- /dev/null +++ b/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/ResourceTransition/ResourceTransition/app.rc @@ -0,0 +1,63 @@ +// Microsoft Visual C++ Őꂽ\[X XNvgłB +// +#include "resource.h" + +#define APSTUDIO_READONLY_SYMBOLS + +///////////////////////////////////////////////////////////////////////////// +#undef APSTUDIO_READONLY_SYMBOLS + +///////////////////////////////////////////////////////////////////////////// +// p (č) \[X + + +///////////////////////////////////////////////////////////////////////////// +// +// ACR +// + +// ŏɔzuꂽACRA܂ ID lłႢACRAAvP[V ACRɂȂ܂B + +LANGUAGE 17, 1 +#pragma code_page(932) +1 ICON "app.ico" + +#ifdef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// TEXTINCLUDE +// + +1 TEXTINCLUDE +BEGIN + "resource.h\0" + "\0" +END + +2 TEXTINCLUDE +BEGIN + "#include ""afxres.h""\r\n" + "\0" +END + +3 TEXTINCLUDE +BEGIN + "\0" +END + +#endif // APSTUDIO_INVOKED + +///////////////////////////////////////////////////////////////////////////// + + + +#ifndef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// TEXTINCLUDE 3 \[X琶܂B +// + + +///////////////////////////////////////////////////////////////////////////// +#endif // APSTUDIO_INVOKED łȂꍇ + diff --git a/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/ResourceTransition/ResourceTransition/resource.h b/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/ResourceTransition/ResourceTransition/resource.h new file mode 100644 index 0000000..1f2251c --- /dev/null +++ b/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/ResourceTransition/ResourceTransition/resource.h @@ -0,0 +1,3 @@ +//{{NO_DEPENDENCIES}} +// Microsoft Visual C++ generated include file. +// Used by app.rc diff --git a/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/ResourceTransition/ResourceTransition/stdafx.cpp b/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/ResourceTransition/ResourceTransition/stdafx.cpp new file mode 100644 index 0000000..f0478ef --- /dev/null +++ b/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/ResourceTransition/ResourceTransition/stdafx.cpp @@ -0,0 +1,7 @@ +// stdafx.cpp : WCN[h ResourceTransition.pch ݂̂ +// ܂ރ\[X t@ĆAvRpCς݃wb_[ɂȂ܂B +// stdafx.obj ɂ̓vRpCς݌^񂪊܂܂܂B + +#include "stdafx.h" + + diff --git a/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/ResourceTransition/ResourceTransition/stdafx.h b/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/ResourceTransition/ResourceTransition/stdafx.h new file mode 100644 index 0000000..d0e2c99 --- /dev/null +++ b/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/ResourceTransition/ResourceTransition/stdafx.h @@ -0,0 +1,8 @@ +// stdafx.h : W̃VXe CN[h t@C̃CN[h t@CA܂ +// QƉ񐔂A‚܂ύXȂAvWFNgp̃CN[h t@C +// Lq܂B +// + +#pragma once + +// TODO: vOɕKvȒljwb_[ŎQƂĂB diff --git a/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/TWL-MasterROM_Submission_Sheet_080729A.xls b/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/TWL-MasterROM_Submission_Sheet_080729A.xls new file mode 100644 index 0000000..2ec5966 Binary files /dev/null and b/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/TWL-MasterROM_Submission_Sheet_080729A.xls differ diff --git a/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/banner_bin_to_carray.pl b/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/banner_bin_to_carray.pl new file mode 100755 index 0000000..0dce40e --- /dev/null +++ b/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/banner_bin_to_carray.pl @@ -0,0 +1,70 @@ +#!/usr/bin/perl + +#================================================================= +# oi[񋓂csvC̔z𐶐XNvg +#================================================================= + +use strict; + +# oCi̒g1‚̕ϐƂăQbg +my $bin_size = -s $ARGV[0]; +my $buf; +open(F, $ARGV[0]) or die "can not open file.\n"; +binmode(F); +read(F, $buf, $bin_size); +close(F); + +# z񖼂ƂȂ郊[Ww +my $region = $ARGV[1] or die "argv[1] is region name."; + +# z̒g𐶐 +my @codes; +my $num_of_codes=0; +my $offset = 0; +while ($offset < $bin_size) { + + # 2oCgo + my $b = substr($buf, $offset, 2); + $offset += 2; + + # s + my $suffix = ", "; + if ( (${num_of_codes}%16) == 15 ) { + $suffix = ",\n"; + } + + # oCi𐔒lɕϊĂɕɕϊ + $codes[$num_of_codes++] = sprintf( "0x%04x", unpack("v*",$b) ) . $suffix; +} + +# wb_ +my $header_format =<<'EOF'; +#include "stdafx.h" +#include +#include +#include +#include "banner_char.h" + +const int MasterEditorTWL::NumOf_BannerCharCodes_%1$s = %2$d; +const u16 MasterEditorTWL::BannerCharCodes_%1$s[%2$d] = +{ +EOF + +# tb^ +my $footer =<<'EOF'; +}; +// end of file +EOF + +# o +my $header = sprintf ($header_format, $region, $num_of_codes); +printf STDOUT $header; +foreach my $code (@codes) { + printf STDOUT $code; +} +if( ($num_of_codes%16) != 0 ) { + printf STDOUT "\n"; +} +printf STDOUT $footer; + +# end of file diff --git a/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/banner_csv_to_carray.pl b/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/banner_csv_to_carray.pl new file mode 100755 index 0000000..c71427c --- /dev/null +++ b/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/banner_csv_to_carray.pl @@ -0,0 +1,68 @@ +#!/usr/bin/perl + +#================================================================= +# oi[񋓂csvC̔z𐶐XNvg +#================================================================= + +use strict; + +# z̒g𐶐 +my $region = "Undefined"; +my @codes; +my $num_of_codes=0; +while () { + + chomp; + + # Rgn܂s̓[W + if ( /^\#/ ) { + s/^\#[\s]*//; + $region = $_; + } else { + + # C̔zɂȂ悤"0x"‚ + my $prefix = ""; + if ( !/^0x/ ) { + $prefix .= "0x"; + } + my $suffix = ", "; + # s + if ( (${num_of_codes}%16) == 15 ) { + $suffix = ",\n"; + } + $codes[$num_of_codes] = $prefix . $_ . $suffix; + $num_of_codes++; + } +} + +# wb_ +my $header_format =<<'EOF'; +#include "stdafx.h" +#include +#include +#include +#include "banner_char.h" + +const int MasterEditorTWL::NumOf_BannerCharCodes_%1$s = %2$d; +const u16 MasterEditorTWL::BannerCharCodes_%1$s[%2$d] = +{ +EOF + +# tb^ +my $footer =<<'EOF'; +}; +// end of file +EOF + +# o +my $header = sprintf ($header_format, $region, $num_of_codes); +printf STDOUT $header; +foreach my $code (@codes) { + printf STDOUT $code; +} +if( ($num_of_codes%16) != 0 ) { + printf STDOUT "\n"; +} +printf STDOUT $footer; + +# end of file diff --git a/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/company.xml b/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/company.xml new file mode 100644 index 0000000..220a021 --- /dev/null +++ b/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/company.xml @@ -0,0 +1,7 @@ + + + + N + + 1.8 + \ No newline at end of file diff --git a/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/resource/append_ini.xml b/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/resource/append_ini.xml new file mode 100644 index 0000000..24247c0 --- /dev/null +++ b/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/resource/append_ini.xml @@ -0,0 +1,23 @@ + + + + ON + + ON + + + 5 + 0 + 30000 + + + 5 + 0 + 30000 + + + 4 + 0 + 30000 + + diff --git a/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/resource/errorlist.xsl b/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/resource/errorlist.xsl new file mode 100644 index 0000000..86392c0 --- /dev/null +++ b/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/resource/errorlist.xsl @@ -0,0 +1,313 @@ + + + + + + TWL Error List + + + + + + + + + + + + + + +
+ +
+
+ + + +
+ +
+ + + + +
+ () +
+
+ version: +
+
+ + + + + +
+ + +
+
+ + + +
+ + +
+
+ + + + + + : + + + + + : + + + + , + + + + : + + + + + : + + + + + + +  ,   + + + + + + + + + + + + + + +
Item NameTypeReason
+
+ + + + +
+
+
+ +
+ + +
+
+
+ +
+
+ + + + + + + + + + + +
Item NameTypeReason
+
+ + + + +
+
+
+ +
+ + +
+
+
+ +
+
+ + + + + + +
+
+ +
diff --git a/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/resource/gui_msg_e.xml b/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/resource/gui_msg_e.xml new file mode 100644 index 0000000..d933c28 --- /dev/null +++ b/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/resource/gui_msg_e.xml @@ -0,0 +1,135 @@ + + + + +Japanese text display is only supported on PCs that have the MS PGothic Japanese font installed. + + + +{0} already exists. Overwrite data? + + +Cannot find the configuration file. +Cannot open the configuration file. +Temporary file already exists. Delete this data. +Cannot find the extended configuration file. +Cannot open the extended configuration file +Cannot read the SDK version in the configuration file. + + +Illegal ROM data. Either this is not TWL-compatible or TWL-exclusive ROM data, or the ROM data may have been modified. +This tool is for TWL-compatible ROMs only. Cannot read a ROM that does not support TWL, such as a NTR-only ROM. +Failed to read ROM data file. Read ROM data again. +ROM data CRC calculation failed. ROM data read canceled. +Cannot read because the ROM data file does not exist. +The reading of the TAD file has failed. + + +ROM data file has not been read. +Submission data cannot be created due to illegal settings. +Submission data cannot be created due to insufficient input information. +The following submission files are all created at one time. + +{0} (Master ROM) +{1} (Master ROM submission checklist) +{2} (List of middleware) +{3} (Print version of list of middleware) + +Select a save-to folder. +Submission data is not created because folder selection has been canceled. +Submission data is not created because file overwrite has been canceled. +Failed to create Master ROM. Halted during creation, so some files were not created. + + +Master ROM file not created due to failure to open the output file. +Master ROM file not created due to failure to read the file. +Master ROM file not created due to failure to write to the output file. +Master ROM file not created due to failure to copy the input ROM data file. +Master ROM file not created because the output file cannot be created if the input ROM data file does not exist in the source folder. +Master ROM file not created due to failure to calculate the digital signature of the output file. +Failed to calculate CRC. Halted during creation, so some files were not created. +Could not create middleware list. Halted during creation, so some files were not created. +Failed to create Master ROM. Halted during creation, so some files were not created. + +Exception:{0} +{1} +Failed to create submission checklist because submission checklist template could not be opened. +Could not write data to submission checklist. Check that a file of the same name is not already open. +Failed to create submission checklist. +Succeeded in creating submission data. + + +Could not create Master ROM because the ROM data file has not been read. +Could not create Master ROM due to illegal settings. +This procedure creates the following files. + +{0} (Master ROM) +Select a save-to folder. +The Master ROM was not created because folder selection has been canceled. +Creation of Master ROM was canceled. +Failed to create Master ROM. + + +Failed to create Master ROM. + +Exception:{0} +{1} +Succeeded in creating Master ROM. +Failed to calculate CRC. + + +ROM data file has not been read. +Failed to create the middleware list. +Succeeded in creating middleware list. + + +ROM data file has not been read. +Failed to create the error list. +Succeeded in creating error list. + + +ROM data file has not been read. +Failed to create the ROM info list. +Succeeded in creating ROM info list. + + +Failed to save temporary information. + + +Failed to read temporary information. + + +Insufficient input: Input data. +Insufficient input: Illegal value. +Insufficient input: Select data. +Insufficient input: Select data. +Product Name +Product Code +Product Code(Region Code) +Product Name(Foreign Version) +Product Code(Foreign Version) +Purpose +Backup Memory +Contact1 +Furigana +Company(Contact1) +Dept.(Contact1) +TEL(Contact1) +e-mail(Contact1) +Contact2 +Furigana +Company(Contact2) +Dept.(Contact2) +TEL(Contact2) +e-mail(Contact2) + +Market +Rating +{0}: Select data. +{0}: A "Rating Pending" has been specified. Re-submit when examination is finished. +Selected if rating does not need to be shown. This choice can only be selected when the software is a kind of tool and not a game. Contact support@noa.com to determine if the rating does not need to be displayed. + +Private Save Data Usage +If you must use the private save data memory region, enter your intended use and reasons for use in the appropriate entry fields. + + diff --git a/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/resource/gui_msg_j.xml b/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/resource/gui_msg_j.xml new file mode 100644 index 0000000..e78fd76 --- /dev/null +++ b/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/resource/gui_msg_j.xml @@ -0,0 +1,135 @@ + + + + +MS Pゴシック (MS PGothic) フォントがインストールされていないPCでの日本語表示には対応していません。 + + + +{0} はすでに存在します。上書きしますか? + + +設定ファイルが見つかりません。 +設定ファイルを開くことができませんでした。 +本プログラムで作成する一時ファイルと同名のファイルが存在します。このファイルを削除します。 +追加設定ファイルが見つかりません。 +追加設定ファイルを開くことができませんでした。 +設定ファイル中のSDKバージョンが読み込めませんでした。バージョンは0とみなされます。 + + +不正なROMデータです。TWL対応/専用ROMでないかROMデータが改ざんされている可能性があります。 +本ツールはTWL用です。NTR専用ROMなどのTWL非対応ROMを読み込むことはできません。 +ROMデータファイルの読み込みに失敗しました。再度ROMデータを読み込ませてください。 +ROMデータのCRC計算に失敗しました。ROMデータの読み込みはキャンセルされました。 +ファイルが存在しないので読み込むことができません。 +TADファイルの読み込みに失敗しました。 + + +ROMデータファイルが読み込まれていません。 +不正な設定があるため提出データを作成できません。 +入力情報に不足があるため提出データを作成できません。 +以下の提出ファイルが一度に作成されます。 + +{0} (マスターROM) +{1} (マスターROM提出確認書) +{2} (ミドルウェア一覧) +{3} (ミドルウェア一覧 印刷用) + +保存先フォルダを選択してください。 +フォルダの選択がキャンセルされましたので提出データ一式は作成されません。 +ファイルの上書きがキャンセルされましたので提出データ一式は作成されません。 +マスターROMの作成に失敗しました。作成を中止するため一部のファイルは作成されません。 + + +原因:出力ファイルのオープンに失敗しました。 +原因:ファイルの読み込みに失敗しました。 +原因:出力ファイルへの書き出しに失敗しました。 +原因:入力ROMデータファイルのコピーに失敗しました。 +原因:入力ROMデータファイルが元のフォルダに存在しないとき出力ファイルを作成できません。 +原因:出力ファイルのディジタル署名の計算に失敗しました。 +CRCの計算に失敗しました。作成を中止するため一部のファイルは作成されません。 +ミドルウェアのリストが作成できませんでした。作成を中止するため一部のファイルは作成されません。 +マスターROMの作成に失敗しました。作成を中止するため一部のファイルは作成されません。 + +例外:{0} +{1} +提出確認書のテンプレートが開けなかったため、提出確認書の作成に失敗しました。 +提出確認書にデータを書き込みできませんでした。同名ファイルがすでに開かれていないかご確認ください。 +提出確認書の作成に失敗しました。 +提出データ一式の作成に成功しました。 + + +ROMデータファイルが読み込まれていませんので、マスターROMの作成ができません。 +不正な設定があるためマスターROMの作成ができません。 +以下のファイルが作成されます。 + +{0} (マスターROM) +保存先フォルダを選択してください。 +フォルダの選択がキャンセルされましたのでマスターROMは作成されません。 +ファイルの上書きがキャンセルされましたのでマスターROMは作成されません。 +マスターROMの作成に失敗しました。 + + +マスターROMの作成に失敗しました。 + +例外:{0} +{1} +マスターROMの作成に成功しました。 +CRCの計算に失敗しました。 + + +ROMデータファイルが読み込まれていません。 +ミドルウェアリストの作成に失敗しました。 +ミドルウェアリストの作成に成功しました。 + + +ROMデータファイルが読み込まれていません。 +エラーリストの作成に失敗しました。 +エラーリストの作成に成功しました。 + + +ROMデータファイルが読み込まれていません。 +ROM情報リストの作成に失敗しました。 +ROM情報リストの作成に成功しました。 + + +一時情報の保存に失敗しました。 + + +一時情報の読み込みに失敗しました。 + + +入力漏れ: 入力してください。 +入力漏れ: 値が不正です。 +入力漏れ: 選択してください。 +入力漏れ: 選択してください。 +製品名 +製品コード +製品コード(仕向地仕様コード) +製品名(海外版) +製品コード(海外版) +用途 +バックアップメモリ +ご氏名(担当者1) +ふりがな(担当者1) +貴社名(担当者1) +部署名(担当者1) +TEL(担当者1) +e-mail(担当者1) +ご氏名(担当者2) +ふりがな(担当者2) +貴社名(担当者2) +部署名(担当者2) +TEL(担当者2) +e-mail(担当者2) + +リージョン +レーティング +{0}: 選択してください。 +{0}: 審査中であると指定されています。審査が決まりしだい、再提出してください。 +レーティング表示が不要であると設定されています。この指定は、ソフトがゲームでないツール類のときのみ選択可能です。レーティング表示が不要であるかどうかは弊社窓口にご相談ください。 + +Privateセーブデータの用途 +Privateセーブデータを使用する場合には、用途欄に理由、用途を明記してください。 + + diff --git a/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/resource/ini.xml b/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/resource/ini.xml new file mode 100644 index 0000000..57ca6aa --- /dev/null +++ b/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/resource/ini.xml @@ -0,0 +1,20 @@ + + + w + + Permit + + + 2097152 + + + 787f + 16017f + 151b + 99bf + 1bc1be + 2402ef + 37839f + 3b4f7f + + diff --git a/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/resource/ini_memo.xml b/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/resource/ini_memo.xml new file mode 100644 index 0000000..82f613a --- /dev/null +++ b/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/resource/ini_memo.xml @@ -0,0 +1,22 @@ + + + + w + + + + + + 2097152 + + + 787f + 16017f + 151b + 99bf + 1bc1be + 2402ef + 37839f + 3b4f7f + + diff --git a/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/resource/middleware.xsl b/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/resource/middleware.xsl new file mode 100644 index 0000000..58466a4 --- /dev/null +++ b/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/resource/middleware.xsl @@ -0,0 +1,106 @@ + + + + + + TWL Middleware List + + + + + + + + + + + + + +
+ +
+ +
+ + +
+ () +
+
+ version: - +
+
+ + + + + + + + + + + +
PublisherMiddleware NameNote
+
+ + + + + + + + + +
diff --git a/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/resource/middleware_e.xsl b/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/resource/middleware_e.xsl new file mode 100644 index 0000000..64221a3 --- /dev/null +++ b/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/resource/middleware_e.xsl @@ -0,0 +1,106 @@ + + + + + + TWL Middleware List + + + + + + + + + + + + + +
+ +
+ +
+ + +
+ () +
+
+ version: - +
+
+ + + + + + + + + + + +
PublisherMiddleware NameNote
+
+ + + + + + + + + +
diff --git a/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/resource/middleware_name_list.xml b/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/resource/middleware_name_list.xml new file mode 100644 index 0000000..9c57796 --- /dev/null +++ b/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/resource/middleware_name_list.xml @@ -0,0 +1,165 @@ + + + 1.6 + + + MEI + libASR + 音声認識エンジン for NINTENDO DS + Voice Recognition Library + + + + MEI + ASR + 音声認識エンジン for NINTENDO DS + Voice Recognition Library + + + + Panasonic + ASR + 音声認識エンジン for NINTENDO DS + Voice Recognition Library + + + + Panasonic + libASR + 音声認識エンジン for NINTENDO DS + Voice Recognition Library + + + + Actimagine + VX + VX MiddleWare for NINTENDO DS + VX MiddleWare + + + + NINTENDO + DWC + TWL-DWC + TWL-DWC + + + + NINTENDO + WiFi + TWL-WiFi + TWL Wi-Fi Library + + + + MEI + libHWR_FULL + 手書き認識ライブラリ + HandWrite Recognition + + + + Panasonic + libHWR_FULL + 手書き認識ライブラリ + HandWrite Recognition + + + + Zi Corporation + DLTLIB + Decuma手書文字認識ライブラリ日本語版 for NINTENDO DS + Handwriting Recognition Library Japanese + + + + Zi Corporation + SCRLIB + Decuma手書文字認識ライブラリ英語版 for NINTENDO DS + Handwriting Recognition Library + + + + Zi Corporation + MCRLIB + Decuma手書文字認識ライブラリ英語版 for NINTENDO DS + Handwriting Recognition Library + + + + JUSTSYSTEM + ATOK + DS用ATOKライブラリ + ATOK Library + + + + Abiosso + VoiceChat + VoiceChatライブラリ for NINTENDO DS + VoiceChat Library + + + + SHARP + SHTTS + SHARP音声合成ライブラリ + Voice Synthesis Library + + + + ACCESS + NFC + NetFront ブラウザコンポーネント HTTP/HTTPSプロトコル + NetFront Browser for DS HTTP/HTTPS + + + + ACCESS + NFB + NetFront ブラウザコンポーネント + NetFront Browser for DS + + + + TMC + MP3Decoder_ + MP3コーデックライブラリ + MP3 Decoder + + + + Actimagine + Mobiclip + Mobiclip Middleware for NINTENDO DS + Mobiclip Middleware + + + + OKI + FSE + TWL用 顔認識ライブラリ + Face Recognition + + + + TOSHIBA + SPConv + スピーチコンバータ for DS + Sound Playback Speed Conversion + + + + NINTENDO + M4A + MPEG4Systems Demux ライブラリ + MPEG 4 Demux + + + + NINTENDO + AAC-LC + AAC-LC Decoder ライブラリ + AAC Decoder + + diff --git a/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/resource/mrc_msg_e.xml b/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/resource/mrc_msg_e.xml new file mode 100644 index 0000000..a510eee Binary files /dev/null and b/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/resource/mrc_msg_e.xml differ diff --git a/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/resource/mrc_msg_j.xml b/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/resource/mrc_msg_j.xml new file mode 100644 index 0000000..ede8a72 --- /dev/null +++ b/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/resource/mrc_msg_j.xml @@ -0,0 +1,777 @@ + + + + + + + + カードアプリのLIMITED条件 + カードアプリをLIMITED版として作成する場合には、TwlSDK 5.3 patch 1 以降を使用してください。 + 00FalseTrue + + + + カードアプリのLIMITED条件 + カードアプリをLIMITED版として作成する場合には、TwlSDK 5.2 patch 3 以降を使用してください。 + 00FalseTrue + + + + + 写真データベースアクセス + TwlSDK 5.3 patch 3 以前のSDKを使用して作成されたソフトでは、TCL_DeletePicture()関数の使用は禁止されています。ソフト内でTCL_DeletePicture()関数を使用していないかを確認してください。もし上記の関数を使用していない場合、本警告を無視していただいて結構です。 + 00FalseTrue + + + + 写真データベースアクセス + TwlSDK 5.2 patch 4 以前のSDKを使用して作成されたソフトでは、TCL_DeletePicture()関数の使用は禁止されています。ソフト内でTCL_DeletePicture()関数を使用していないかを確認してください。もし上記の関数を使用していない場合、本警告を無視していただいて結構です。 + 00FalseTrue + + + + + DWCライブラリ + 開発用サーバにアクセスするためのライブラリが使用されています。製品用サーバへアクセスするためのライブラリを使用してください。 + 00FalseTrue + + + + + + + + + ロード先アドレス + プログラムのロード先アドレスは、0x02004000以降でなければなりません。LSFファイルの "ADDRESS_STATIC" の値、もしくは CodeWarrior for DSi の設定を確認してください。 + 282bFalseTrue + + + + ダイジェスト + ファイルサイズがダイジェストの対象範囲よりも小さくなっています。ROM末尾のパディングやROMの一部が削除されている可能性があります。 + 1e01efFalseTrue + + + + + レーティング(中国版対応) + 中国にはレーティング審査団体が存在しませんので、中国向けソフトに対しては、各審査団体のレーティング値を設定する必要はありません。(自動的にマスターエディタが値をセットしますので、本警告を無視していただいてかまいません。) + 2f02ffTrueTrue + + + + + Touch!Try!DS体験版対応 + Touch!Try!DS体験版ではTISライブラリを使用する必要があります。 + 00FalseTrue + + + + Touch!Try!DS体験版対応 + Touch!Try!DS体験版ではNISライブラリを使用してはいけません。TISライブラリを使用してください。 + 00FalseTrue + + + + Touch!Try!DS体験版対応 + NANDアプリとして作成されています。Touch!Try!DS体験版を作成する際には、カードアプリとして作成する必要があります。 + 234237FalseTrue + + + + Touch!Try!DS体験版対応 + Touch!Try!DS体験版でのアプリケーションジャンプは禁止されています。 + 1d1dFalseTrue + + + + Touch!Try!DS体験版対応 + Touch!Try!DS体験版でのtmpジャンプは禁止されています。 + 1d1dFalseTrue + + + + Touch!Try!DS体験版対応 + Touch!Try!DS体験版でのSDカード使用は禁止されています。 + 1b41b7FalseTrue + + + + Touch!Try!DS体験版対応 + Touch!Try!DS体験版では、SDK付属のシステムコールライブラリを使用せず、弊社より体験版専用に提供されたライブラリを使用してください。 + 00FalseTrue + + + + Touch!Try!DS体験版対応 + Touch!Try!DS体験版のファイルサイズは96MByte以下である必要があります。サイズオーバーしたROMを提出する場合、弊社窓口にご連絡ください。 + 00FalseTrue + + + + + Nintendo Zone対応 + Nintendo ZoneソフトをHYBRID版として作成することは許可されていません。 + 1212FalseTrue + + + + Nintendo Zone対応 + このソフトはNintendo Zoneでのみ配信可能です。みんなのニンテンドーチャンネルやDSダウンロードプレイのしくみを使用して配信することはできませんのでご注意ください。(ROMに問題があるわけではありませんので、本警告を無視していただいて結構です。) + 1212FalseTrue + + + + Nintendo Zone対応 + Nintendo Zoneソフトのファイルサイズは2.5MByte以下である必要があります。サイズオーバーしたROMを提出する場合、弊社窓口にご連絡ください。 + 00FalseTrue + + + + Nintendo Zone対応 + Nintendo ZoneソフトからDSカードへのアクセスは許可されていません。 + 00FalseTrue + + + + Nintendo Zone対応 + Nintendo ZoneソフトではSDK付属のシステムコールライブラリを使用する必要があります。 + 00FalseTrue + + + + Nintendo Zone対応 + カードアプリとして作成されています。Nintendo Zoneソフトを作成する際には、NANDアプリとして作成する必要があります。 + 234237FalseTrue + + + + Nintendo Zone対応 + Nintendo Zoneソフトではtmpジャンプを指定する必要があります。RSFファイルのPermitLandingTmpJumpプロパティをTRUEに設定してください。 + 00FalseTrue + + + + + DSダウンロードサービス/ニンテンドーチャンネル対応 + DSダウンロードサービスもしくはみんなのニンテンドーチャンネル向けソフトをLIMITED版として作成することはできません。HYBRID版として作成してください。 + 1212FalseTrue + + + + DSダウンロードサービス/ニンテンドーチャンネル対応 + DSダウンロードサービスもしくはみんなのニンテンドーチャンネル向けソフトのファイルサイズは2.5MByte以下である必要があります。サイズオーバーしたROMを提出する場合、弊社窓口にご連絡ください。 + 00FalseTrue + + + + DSダウンロードサービス/ニンテンドーチャンネル対応 + 認証コードが付加されていません。DSダウンロードサービスもしくはみんなのニンテンドーチャンネル向けソフトを配信するためには、認証コードを付加する必要があります。 + 00FalseTrue + + + + DSダウンロードサービス/ニンテンドーチャンネル対応 + DSダウンロードサービスもしくはみんなのニンテンドーチャンネル向けソフトからDSカードへのアクセスは許可されていません。 + 00FalseTrue + + + + DSダウンロードサービス/ニンテンドーチャンネル対応 + DSダウンロードサービスもしくはみんなのニンテンドーチャンネル向けソフトではSDK付属のシステムコールライブラリを使用する必要があります。 + 00FalseTrue + + + + DSダウンロードサービス/ニンテンドーチャンネル対応 + カードアプリとして作成されています。DSダウンロードサービスもしくはみんなのニンテンドーチャンネル向けソフトを作成する際には、NANDアプリとして作成する必要があります。 + 234237FalseTrue + + + + DSダウンロードサービス/ニンテンドーチャンネル対応 + DSダウンロードサービスもしくはみんなのニンテンドーチャンネル向けソフトではtmpジャンプを指定する必要があります。RSFファイルのPermitLandingTmpJumpプロパティをTRUEに設定してください。 + 00FalseTrue + + + + + + + + + NANDアプリのHYBRID条件 + TwlSDK5.1PRよりも前のバージョンをご使用の場合、HYBRID版NANDアプリを作成するためには、弊社窓口への確認が必要です。 + 1212FalseTrue + + + + + 写真データベースアクセス + 写真データベースへアクセスする場合にはTCLライブラリを使用してください。 + 1b41b7FalseTrue + + + SDカードアクセス + SDカードへのアクセス権の設定が不十分です。RSFファイルのSDCardAccessプロパティに"None"、"Read"、"Write"、"ReadWrite"のいずれかを指定する必要があります。 + 1b41b7FalseTrue + + + + + 韓国版対応 + 仕向地が韓国であるにもかかわらず、RSFファイルでForKoreaプロパティが設定されていません。 + 1d1dFalseTrue + + + 韓国版対応 + 仕向地が韓国でないにもかかわらず、RSFファイルでForKoreaプロパティが設定されています。 + 1d1dFalseTrue + + + 韓国版バナー + 韓国版のバナー文字として不正な文字セットが使用されています。 + 00FalseTrue + + + + + 中国版対応 + 仕向地が中国であるにもかかわらず、RSFファイルでForChinaプロパティが設定されていません。 + 1d1dFalseTrue + + + 中国版対応 + 仕向地が中国でないにもかかわらず、RSFファイルでForChinaプロパティが設定されています。 + 1d1dFalseTrue + + + 中国版対応 + 仕向地が中国であるにもかかわらず、OS_InitChina関数が使用されていません。 + 1d1dFalseTrue + + + 中国版対応 + 仕向地が中国でないにもかかわらず、OS_InitChina関数が使用されています。 + 1d1dFalseTrue + + + 中国版バナー + 中国版のバナー文字として不正な文字セットが使用されています。 + 00FalseTrue + + + + + SDKバージョン(TWL非常駐モジュール) + 設定ファイルに登録されているバージョンよりも古いモジュールがあります。 + 00FalseTrue + + + SDKバージョン(TWL非常駐モジュール) + PR版が使用されています。 + 00FalseTrue + + + SDKバージョン(TWL非常駐モジュール) + RC版が使用されています。 + 00FalseTrue + + + SDKバージョン(NTR非常駐モジュール) + 設定ファイルに登録されているバージョンよりも古いモジュールがあります。 + 00FalseTrue + + + SDKバージョン(NTR非常駐モジュール) + PR版が使用されています。 + 00FalseTrue + + + SDKバージョン(NTR非常駐モジュール) + RC版が使用されています。 + 00FalseTrue + + + + + アプリジャンプ + ゲームカード向けのソフトではノーマルアプリジャンプは許可されていません。 + 1d1dFalseTrue + + + アプリジャンプ + ゲームカード向けのソフトではtmpアプリジャンプは許可されていません。 + 1d1dFalseTrue + + + アプリジャンプ + ノーマルアプリジャンプとtmpジャンプを同時に設定することはできません。 + 1d1dFalseTrue + + + + + + + ソフトタイトル + 使用不可のASCIIコードが使用されています。 + 0bFalseTrue + + + ソフトタイトル + 末尾の未使用部分には00hを登録してください。 + 0bFalseTrue + + + ソフトタイトル + スペース部分には20hを登録してください。 + 0bFalseTrue + + + イニシャルコード + 使用不可のASCIIコードが使用されています。 + cfFalseTrue + + + イニシャルコード + SDKデフォルトのコード(NTRJ)が使用されています。 + cfFalseTrue + + + メーカーコード + 使用不可のASCIIコードが使用されています。 + 1011FalseTrue + + + デバイスタイプ + 不正な値です。00hを設定してください。 + 1313FalseTrue + + + リマスターバージョン + 不正な値です。正式版では01h-0Fhのいずれかの値、事前版ではE0hを設定してください。 + 1e1eFalseTrue + + + バナーオフセット + バナーデータが設定されていません。 + 686bFalseTrue + + + ROM実効サイズ + 値が設定されていません。 + 8083FalseTrue + + + セキュア領域CRC + セキュア領域のアドレス指定が不正です。 + 7c7dFalseTrue + + + セキュア領域CRC + 計算結果と一致しません。セキュア領域が改ざんされた可能性があります。 + 7c7dFalseTrue + + + キャラクターデータCRC + 計算結果と一致しません。キャラクターデータが改ざんされた可能性があります。 + 15c15dFalseTrue + + + ROMヘッダCRC + 計算結果と一致しません。ROMヘッダが改ざんされた可能性があります。 + 15e15fFalseTrue + + + システムコールライブラリ + SDKデフォルトです。 + 00FalseTrue + + + + + NANDアプリのHYBRID条件 + クローンブート対応でないNANDアプリをHYBRID版として作成することは許可されていません。 + 1212FalseTrue + + + NANDアプリのLIMITED条件 + クローンブート対応のNANDアプリをLIMITED版として作成することは許可されていません。 + 1212FalseTrue + + + 旧開発用暗号フラグ + このROMはクローンブート対応アプリですが、製品用本体ではクローンブートができなくなります。 + 1c1cFalseTrue + + + デバイス容量 + 実ファイルサイズよりも小さい値が指定されています。 + 1414FalseTrue + + + デバイス容量 + 実ファイルサイズに比べて無駄のある値が設定されています。 + 1414FalseTrue + + + デバイス容量 + 指定可能な容量ではありません。 + 1414FalseTrue + + + デバイス容量 + NANDアプリに対して指定可能な容量ではありません。 + 1414FalseTrue + + + 実ファイルサイズ + 中途半端な値です。通常では2のべき乗[Mbit]の値です。 + 1414FalseTrue + + + NAND使用サイズ + NANDアプリによるNAND領域の使用サイズ(セーブデータ含む)が32MBを超えています。 + 00FalseTrue + + + NAND使用サイズ + NANDアプリによるNAND領域の使用サイズ(セーブデータ含む)が16MBを超えています。 + 00FalseTrue + + + セグメント3 CRC + セグメント3領域に誤りがあります。 + 00FalseTrue + + + TWL ROMオフセット + TWLノーマル領域ROMオフセット(NA)およびTWL専用領域ROMオフセット(KA)はともに1以上で、かつNAはKAを超えてはいけません。 + 9093FalseTrue + + + デバッガ動作禁止フラグ + デバッガ上で解析可能な設定になっています。デバッガ向けソフトとしてROMをリリースする場合にはセキュリティ上の問題がないかご確認ください。 + 1f1fFalseTrue + + + デバッガ動作禁止フラグ + デバッガ上で解析不可な設定になっています。この設定は許可されていません。 + 1f1fFalseTrue + + + 特定仕向地 + 不正なビットが立っています。この設定は許可されていません。 + 1d1dFalseTrue + + + ノーマルアプリジャンプ + ノーマルアプリジャンプは許可されていません。 + 1d1dFalseTrue + + + 諸フラグ + RSFファイルでRomSpeedTypeが設定されていません。 + 1f1fFalseTrue + + + ROMコントロール情報 + TWLではマスクROMは用意されていません。ワンタイムPROM設定にしてください。 + 6067FalseTrue + + + AES暗号 + AES暗号が無効になっています。セキュリティ上の問題があります。 + 22022fFalseTrue + + + TWL拡張諸フラグ + 本来、立つはずのないフラグが立てられています。ビルド時の設定をご確認ください。 + 1bf1bfFalseTrue + + + アイコン表示フラグ + ワイヤレス通信アイコンとWi-Fi通信アイコンは同時に表示できません。 + 1bf1bfFalseTrue + + + 拡張常駐モジュール + TWL拡張常駐モジュールの配置に問題があります。弊社窓口にご連絡ください。 + 1c01c3FalseTrue + + + SCFG設定 + SCFGレジスタへアクセス可能になっています。 + 1b81bbFalseTrue + + + タイトルID + 下位4バイトがイニシャルコードと一致しません。 + 230233FalseTrue + + + Pubilc/Privateセーブデータ + ゲームカード向けソフトではPublicセーブデータおよびPrivateセーブデータのサイズを指定することはできません。 + 23823fFalseTrue + + + Debug/Releaseビルド + FINALROMビルドのROMではありません。必ずFINALROMビルドのROMを作成してご提出ください。 + 00FalseTrue + + + + + アプリ種別 + 不正な値です。 + 230237FalseTrue + + + アプリ種別 + アプリ種別は「{0}」です。本プログラムでは非対応です。 + 230237FalseTrue + + + + + アクセスコントロール情報 + ゲームカードアクセス設定にノーマルモードとNTRモードの両方を設定することはできません。 + 1b41b7FalseTrue + + + アクセスコントロール情報 + ゲームカード用ソフトはNANDフラッシュメモリへのアクセスを許可されていません。 + 1b41b7FalseTrue + + + SDカードアクセス + SDカードへのアクセスは許可されていません。 + 1b41b7FalseTrue + + + SDカードアクセス + SDカードへのリードアクセスは許可されていません。 + 1b41b7FalseTrue + + + SDカードアクセス + SDカードへのライトアクセスは許可されていません。 + 1b41b7FalseTrue + + + アクセスコントロール情報 + SDカードへアクセス可能になっています。 + 1b41b7FalseTrue + + + アクセスコントロール情報 + ゲームカードへのアクセスは許可されていません。 + 1b41b7FalseTrue + + + アクセスコントロール情報 + ゲームカードへアクセス可能になっています。 + 1b41b7FalseTrue + + + アクセスコントロール情報 + ゲームカードNTR互換領域へのアクセスは許可されていません。 + 1b41b7FalseTrue + + + アクセスコントロール情報 + ゲームカードNTR互換領域へアクセス可能になっています。 + 1b41b7FalseTrue + + + アクセスコントロール情報 + ゲームカードへのリードアクセスは許可されていません。 + 1b41b7FalseTrue + + + アクセスコントロール情報 + ゲームカードへのライトアクセスは許可されていません。 + 1b41b7FalseTrue + + + 写真データベースアクセス + 写真データベースへのリードアクセスは許可されていません。 + 1b41b7FalseTrue + + + 写真データベースアクセス + 写真データベースへのライトアクセスは許可されていません。 + 1b41b7FalseTrue + + + 写真データベースアクセス + 写真データベースへのライトアクセスが指定されているにもかかわらずJPEG署名(JpegSign)が有効になっていません。 + 1b41b7FalseTrue + + + アクセスコントロール情報 + JPEG署名(JpegSign)が有効になっています。 + 1b41b7FalseTrue + + + 写真データベースアクセス + 写真データベースへのライトアクセスが指定されていないにもかかわらずJPEG署名(JpegSign)が有効になっています。 + 1b41b7FalseTrue + + + アクセスコントロール情報 + JPEG署名(JpegSign)が有効になっています。 + 1b41b7FalseTrue + + + アクセスコントロール情報 + JPEG画像をSDカードに読み書きする場合にはJPEG署名(JpegSign)の付与と検証が必要になりますのでご注意ください。(JPEG画像をSDカードに読み書きしない場合、この警告を無視していただいて構いません。) + 1b41b7FalseTrue + + + アクセスコントロール情報 + {0} へのアクセスは許可されていません。 + 1b41b7FalseTrue + + + アクセスコントロール情報 + {0} へアクセス可能になっています。 + 1b41b7FalseTrue + + + アクセスコントロール情報 + {0} へアクセス可能になっています。 + 1b41b7FalseTrue + + + アクセスコントロール情報 + 未定義のアクセスビットが設定されています。この設定は許可されていません。 + 1b41b7FalseTrue + + + + + パディング + 最終{0}を読み出すことができませんでした。 + 00FalseTrue + + + パディング + 最終{0}にFFh以外の値が格納されています。{1} ROMの制限が守られていません。 + 00FalseTrue + + + + + 予約領域 + 不正な値が含まれています。この領域をすべて0で埋めてください。 + 00FalseTrue + + + + + Shared2ファイル + Shared2ファイルへのアクセスが指定されていないにもかかわらずファイルサイズが設定されています。 + 00FalseTrue + + + Shared2ファイル + Shared2ファイルへのアクセスが指定されているにもかかわらずファイルサイズが設定されていません。 + 00FalseTrue + + + Shared2ファイル + Shared2ファイル(No.{0})へのアクセス(非公開)が設定されています。アクセス許可されているかご確認ください。 + 00FalseTrue + + + Shared2ファイル + Shared2ファイル(No.{0})へのアクセスは許可されていません。 + 00FalseTrue + + + Shared2ファイル + Shared2ファイル(No.{0})のファイルサイズが {1} に設定されています。正しい値かどうかをご確認ください。 + 00FalseTrue + + + Shared2ファイル + Shared2ファイル(No.{0})のファイルサイズが {1} に設定されています。正しい値かどうかをご確認ください。 + 00FalseTrue + + + + + SDKバージョン + 設定ファイルに登録されているバージョンよりも古いバージョンです。 + 00FalseTrue + + + SDKバージョン + ご使用のSDKバージョンはPR版です。 + 00FalseTrue + + + SDKバージョン + ご使用のSDKバージョンはRC版です。 + 00FalseTrue + + + + + バナーファイル + 読み出すことができませんでした。 + 00FalseTrue + + + バナーファイル + 使用不可能な文字セットが使用されています。 + 00FalseTrue + + + + + リージョン + 仕向地の組み合わせが不正です。ペアレンタルコントロール情報は無視して読み込まれました。 + 1b01b4TrueTrue + + + リージョン + 読み込み時のROMでは全リージョンが設定されています。仕向地別に設定する必要がないかご確認ください。 + 1b01b4TrueTrue + + + + + レーティング + レーティング表示が不要かどうかを判断できません。再設定してください。 + 2f02ffTrueTrue + + + レーティング + 読み込み時のROMにはレーティング表示が不要であると設定されています。この指定は、ソフトがゲームでないツール類のときのみ選択可能です。レーティング表示が不要であるかどうかは弊社窓口にご相談ください。 + 2f02ffTrueTrue + + + レーティング + {0}: 未定義です。 + 2f02ffTrueTrue + + + レーティング + {0}: 読み込み時のROMには審査中であると指定されています。審査が決まりしだい、再提出してください。 + 2f02ffTrueTrue + + + レーティング + {0}: 審査中指定とレーティング年齢が同時に設定されています。 + 2f02ffTrueTrue + + + レーティング + {0}: レーティング年齢が団体によって指定された値ではありません。 + 2f02ffTrueTrue + + diff --git a/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/resource/rominfolist.xsl b/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/resource/rominfolist.xsl new file mode 100644 index 0000000..d8f9fc8 --- /dev/null +++ b/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/resource/rominfolist.xsl @@ -0,0 +1,498 @@ + + + + + + TWL Rom Information List + + + + + + + + + + + + + + + + +
+ +
+
+ + + + + + + + + + +
+ + + + +
+ () +
+
+ version: +
+
+ + + + + +
+ + +
+
+ + + +
+ + +
+
+ + + +
+ + +
+
+ + + +
+ + +
+
+ + + +
+ + +
+
+ + + +
+ + +
+
+ + + +
+ + +
+
+ + + +
+ + +
+ +
+
+ + + +
+ + +
+ +
+
+ + + + + + : + + + + + : + + + + , + + + + : + + + + + : + + + + + + +  ,   + + + + + + + + + + + + + + +
Item NameValueNote
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
VersionTypeNote
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
PublisherNameNote
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Item NameTypeReason
+
+ + + + +
+
+
+ +
+ + +
+
+
+ +
+
+ + + + + + + + + + + +
Item NameTypeReason
+
+ + + + +
+
+
+ +
+ + +
+
+
+ +
+
+ + + + + + +
+
+ +
diff --git a/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/resource/sheet_template_en.xml b/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/resource/sheet_template_en.xml new file mode 100644 index 0000000..61fb69c --- /dev/null +++ b/build/tools/MasterEditor/MasterEditorTWL-1_9-AllExceptChina/resource/sheet_template_en.xml @@ -0,0 +1,11943 @@ + + + + + 2009-03-06T02:24:19Z + 2004-08-25T05:17:34Z + 2009-02-21T00:08:36Z + 11.9999 + + + + + + + 12120 + 19320 + 855 + 165 + + + False + False + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Nintendo DSi Master ROM Submission Checklist + Form number 2010-05 + + + + + + - Product Information + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Product Name + TagProductName + + + + + + Product Code + TWL - + TagProductCode1 + - + TagProductCode2 + + + + + + + Foreign Version Yes/No + TagReleaseForeign + Product Name + TagProductNameForeign + + + + + + (Including planned foreign versions) + Product Code + TWL - + TagProductCode1Foreign + - + TagProductCode2Foreign + + + + + + - Company Information 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Company/Department + TagCompany1 + + + + + + + + + TEL + TagTel1 + + + + + + Your Name + TagPerson1 + FAX + TagFax1 + + + + + + E-mail + TagMail1 + + + + + + + - Company Information 2 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Company/Department + TagCompany2 + + + + + + + + + TEL + TagTel2 + + + + + + Your name + TagPerson2 + FAX + TagFax2 + + + + + + E-mail + TagMail2 + + + + + + + - Submission Information + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Submission Date + TagSubmitMonth + / + TagSubmitDay + / + TagSubmitYear + + (MM/DD/YYYY) + Method + TagSubmitWay + + + + + + Scheduled Sales Date + TagReleaseMonth + / + TagReleaseDay + / + TagReleaseYear + + (MM/DD/YYYY) + Purpose + TagUsage + TagUsageDetail + + + + + + - Master Data Information + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Master Filename + TagSrlFilename + CRC + TagCRC + Game Code + TagGameCode + + + + + + Manufacturer Code + TagMakerCode + Game Name + TagTitleName0 + TagTitleName1 + TagTitleName2 + TagTitleName3 + TagTitleName4 + TagTitleName5 + TagTitleName6 + TagTitleName7 + TagTitleName8 + TagTitleName9 + TagTitleName10 + TagTitleName11 + + + + + + Remaster Version + TagRomVersion + Submission Version + TagSubmitVersion + Platform + TagPlatform + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ROM Type Setting + TagLatency + ROM Capacity + TagRomSize + Backup Memory + TagBackupMemory + + + + + + Title ID High + TagTitleIDHi + TitleID Low + TagTitleIDLo + Media + TagMedia + + + + + + Application Types + TagAppType + Other Application Info. + TagAppTypeOther + + + + + + TWL-Only Region ROM Offset + TagKeyTableRomOffset + Public Save Data Size + TagPublicSize + + + + + + Private Save Data Size + TagPrivateSize + Usage: + TagPrivateSaveDataPurpose + + + + + + Wi-Fi Communication Icon Display + TagIsWiFiIcon + DS Wireless Communication Icon Display + TagIsWirelessIcon + EULA Consent + TagIsEULA + + + + + + Codec NTR/TWL Mode + TagIsCodec + SubBanner File Enabled + TagIsSubBanner + Permit Tmp Jump Landing + TagIsTmpJump + + + + + + User Generated Content Support + TagIsUGC + Photo Exchange Support + TagIsPhotoEx + Permit Normal Jump Landing + TagIsNormalJump + + + + + + Card Region + TagRegion + + + + + + - Access Control Information + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + SD Card + TagIsSD + TagSDAccessRight + NAND Flash + TagIsNAND + Photo Database + TagPhotoAccess + + + + + + Other + TagAccessOther + + + + + + - Parental Controls + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Organization + Ratings + Organization + Ratings + + + + + + CERO + TagRatingCERO + ESRB + TagRatingESRB + + + + + + USK + TagRatingUSK + PEGI (Gen.) + TagRatingPEGI + + + + + + PEGI (Prt.) + TagRatingPEGI_PRT + PEGI+BBFC + TagRatingPEGI_BBFC + + + + + + COB + TagRatingOFLC + GRB + TagRatingGRB + + + + + + - DSiWare Information + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Size of NAND used + TagUsedNandSizeKB + ( + TagUsedNandSizeMB + ) + + + + + + + - SDK/Libraries Used + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + SDK + TagSDK + + + + + + Libraries + TagLibrary + + + + + + + + + + + + + + + + - Remarks + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + TagCaption + + + Rec'd by Nintendo + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+