From 73705283bfaadc841c135edebc33a92ef12b2d9c Mon Sep 17 00:00:00 2001 From: nishikawa_takeshi Date: Tue, 24 Feb 2009 02:47:24 +0000 Subject: [PATCH] =?UTF-8?q?=E5=87=BA=E5=8A=9B=E3=83=95=E3=82=A1=E3=82=A4?= =?UTF-8?q?=E3=83=AB=E3=83=81=E3=82=A7=E3=83=83=E3=82=AB:SRL=E3=81=AE?= =?UTF-8?q?=E3=83=81=E3=82=A7=E3=83=83=E3=82=AF=E3=81=A7=E3=80=8C=E3=83=AC?= =?UTF-8?q?=E3=83=BC=E3=83=86=E3=82=A3=E3=83=B3=E3=82=B0=E8=A1=A8=E7=A4=BA?= =?UTF-8?q?=E4=B8=8D=E8=A6=81=E3=80=8D=E3=81=AE=E3=81=A8=E3=81=8D=E3=81=AE?= =?UTF-8?q?=E5=87=A6=E7=90=86=E3=82=92=E8=BF=BD=E5=8A=A0=E3=80=82=E8=A1=A8?= =?UTF-8?q?=E7=A4=BA=E5=BD=A2=E5=BC=8F=E3=82=92=E7=B5=B1=E4=B8=80=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: file:///Users/lillianskinner/Downloads/platinum/twl/TwlToolsRED@170 7061adef-622a-194b-ae81-725974e89856 --- .../MasterEditorTWLChecker.ncb | Bin 7023616 -> 7023616 bytes .../MasterEditorTWLChecker.suo | Bin 31232 -> 30208 bytes .../MasterEditorTWLChecker/Debug/BuildLog.htm | Bin 14778 -> 11010 bytes .../MasterEditorTWLChecker.cpp | 2 + .../MasterEditorTWLChecker/check_rom.cpp | 100 +++++++++++++----- .../MasterEditorTWLChecker/check_sheet.cpp | 15 ++- 6 files changed, 87 insertions(+), 30 deletions(-) diff --git a/build/tools/MasterEditor/MasterEditorTWLChecker/MasterEditorTWLChecker.ncb b/build/tools/MasterEditor/MasterEditorTWLChecker/MasterEditorTWLChecker.ncb index ceec0704a7c9ef812b20ce8fbabcdb4234177497..5277036948fe46ac3dcf46d3b8b9127bbdef84fd 100644 GIT binary patch delta 6245 zcmaLbd0Z9c8o=>qIP4tY7%&GpfC?%mi;(-Sh?NT*Qc*A z%G{95#o;xJhNr)KEcmikSrnGJEKGaH86K`h&xweyh=|t^1P6i4AZ91(~_6r6}g z3}WFzGhBr@sP+>45%GG)gH^$|+~A+JKu?bMKT}&$+Nt8)5gl$MqPhRvk)-#pPue6R zWOfpP21)h_vkK5{=W&Sl5QI z7bEY>dfC90i-JTrMf%80nQ0z4p(l)7DXS&yg;?w7*5cNZwSN6w!g=D_yiWCXvV5AnQIoWP+ zYe#lWc6GOJp-ZByoF8l5;#w(`yJfLd$;wssEq2OD`Cb+z+gCj-t9#gE5ltX_rIw>- zq>KQZ+@nGsx3+mQU!G!H?4_wCG}htySgSV~(q0Y(n(|6sirwg=vX(|wkm_bX%2_$k z*Zw|GZj#9~RG)9(bOhf=N;$vXDH{TT>>@n1sq2y$b~UuW64V))-j5!-_}W2oB~Lm_ z7ins6u{ct&fpN0j7X-uBTRUB&}ZKb>X zFZiawRoKCr9qbIsO%+wTsNz#))bXG8jr$Ph0XZVaq|I>|u-1<8GlnH@i(L}C8QZh+ zT_BG>^Zt{1rgs&iS8EM>DaEPEF@`N!UXs@sD$!=Gw;Sp#UFAzU8^IX^WssFnl}@UK zQrS!AV>zPEYC2kKrF%xx8Qf)Tpj`UMP?;$6WJ(WLj+H<)Aj4!!pfZ}eah$4}LS?85 ztCd4SU(CF(N$=}YQXlfS+3`YBEKv)iI)XA&G3}JyjK>Gmx;-YxWiRKbTw{g64_)c^1J0d22ovcNR|fDTr1ygj`dnUo|M-aSGBxwV=bIbCF2cB zS6vb(74$~!707Ray^|6{!K&mnGOeAO&Nd~mUL?rNQo+9J>nf|9H^?~l)%T`qJ((g_ zH4auY|2O)e4tBD}ypKHF-kuApt_H~(Rz5W|qBOVGN{b}IKUXeU7ASy6{EZnNE!?{! zP}m2gk}FiXN3nQ)$kbQYq!8Ha@&r|*7sGXOo z&Q*V|oIwnYTT2UcHByVxN~7&N(G&ChH+nO#YFwr6Te_u2t&hw-VV9%MrD|nOrXy{% zxh?E&+hZQ5-Tjsw*lsGjEdi)0Hk0Z0w>6bzt@_X4UZXp!=|AEE|cE1JNLNE%di&~wc<{u z#M`P=?v;Jkwmp!%Xsgfm5Qkf1P_Zu0gJh&26)n&bt^Diq(uP0c5B@ndQPYl@DG8pb z&6YE)O^>a6Ws__&Urg|{2&rZ{++%J}@LX-}zGa?H@OV61WUFi=k2{z?D)sYc)5)p-{qpq^R4F9S}W4tbT_09Z1EiTe1kHpQNzxN9h9cW zjGc%F8&cD?&E|^@sh$A|Tvkl+m-E27&w6C35>`d*6@%#KS#7;ZE26*`e0_b6bm~n$9W|ugtXqQHfnnUsXxu#khw!R7pJ?<92IX&80E!o*}zrg4|;s zIHh+qo&L0QRpFjZ&2OZU=L54#y@{#Vg>`nSd89%A&0E5BuVe92F?V7~R`sg(i)EDb z=oxBF%6LhV9O)^&xa^aw>_iQr7P=?d*Oilqh(O{yGbQVI?@+5qrl_T_skPZz4y&Xy zC6`CAdi&xWFA?W+y2^31G?P|xtM%@sYG2*9P}Y5Cub%d0Wozu0x_FML5X_JrnGd3`ggJp;{w^d;39jvR=27)Nz(KN+;^{gJ3QYh~ci)t}N+KBe0{a9Ab zkRNkxlqb%6icpl;W`S&>DK%entT(?-+;bdBQs-|@u;xhr_{_;S9jo@u{Xc=v!-Lb+1Kew$W*n{moX}|(xwupQm3Y* zYF>Sh%d*F8h%Pl=X9TD`ZlLs3|q#f zRb!T$zAb4zB2UGr=T&3lsTlvREotL4^WzJ8l$m=$f8P9fTUwQW+(q3NTc8v8S9_P0xH9#o%iezLh;k|RGe)I9CX(<|~ur1TI~W7_P2{tDE8KZn%0FuAYXgm*MJdxcV5bzJ{xx z;p%U=@(tI3YF9y4^_L^&SMMosn%c5KS?2Jnf+x(fR|>+-t#9(1YbATR)dgV{MHlTkO) zsJq#yD>UkgjJjf@Zd7&M=xs(rq0vxeG!z>RqiPyPPkYlpZAjU|pr|0;o*R#ZN$96x z{+4?to_9oFIeq1{D!@}zzEt+tbNoFo+_641_@N2+O!c35bZo?GGkwG8c58>PaVU$1 zKTvUb$?lA}d!t$TkJg)hI;Aso_2XDfmqMss`-FarS_?*tuL9Gv?q~=Ha^0~*o#^mcKfRq=zUz?Bed`-KEqKQ!{_({U*b4U;49SO zB)-Ns_!i&c-}oN&_yIrSC;W_4_ywoYfM0P2XK~KWLVBK^|KK-Vz(rib@3@RVa0QLv z`7aIxBLtxcLpUN3i6}S`jTpqjg=V-4afn9(^h6eNH#>=FjwE=Hj1;7z1zMsN(vXhU zXoI%MKs#KG_Q*sQvXO%h$VDEmK}U2#XLRxM(G}g$9X-$!z0ezd&=>vCANd%70u00; z492w>g6nWSZop97h+!Cx5x5B>aWe|xE#jjXqc9pJxCNycgRv;Xtr&;#xDB^s0`9;> zOhP#(<4)X#yD_BS8DW++N=o|S&MhE4)37`e!P#3*yOK$RnJH; zXRR+uRR5dh-L8x5z)tMKZhU}$VGlmUNB9_fQHxKo5BqTd2XP38aRi^@GaSV+e2y>h zC640+zCxYO$em>8YkY%m@g4q+?@^B*@FRZ0&p3r&a2gHx6=!f3=WrhX!Ed;Li@1c} zaT$N$3K}79W{$>`41xo}2tg>q5RM2$A_`7KBL=Z>p&8T)7KeBwK!+QNXpSU!kccO{6TQ$Ieb5)) zeth&tJ_euw12G7LaV>`6I$Vz%Fcddp7=~j6Zo)|1j6xKl7^5&6CAbBp7=y7WQ!D4K z?2N;B+=kmR0e4^`CZQaYaVPG=-I#)@n1<=N2Q%;w+>85gKOVq?cnC8w3lHNFcvb#= z?99fan1i`^3OfT!>@7Ge<=qY_K76jd!3w_M#S_U?2A501jfaf6+#Lq8|Ddi_P2N{woLc9S(gJUsmHC ztj7i%a+{wX(NoQS-xhiNv0aLP)yz7-euFt8cd%~mZ(kf@`mQN sYkbGzcIrU0ip$-KG0K0r+vwnQW5onx#T~|qiN=aa#)|Ul6_e-w7inG}a{vGU delta 1280 zcmYMyUu;u#6bJC$w!8fc+|6=t+qGD(e@0}Eja`s+I@qkN8{O8;(Yq27a5yRBk6=s? z9n!?*G!SOG6?Y_2{+QWRH;j|mpT4lo+y`J_M&`66GcE+00!{H(>wTXW(mE>2a;(P)AF(n2rMr>c0Ir}>nN5bOZh@KdTk>nAcn24EJ zh?Urgoh%_s$uc64d{RIjA&dK#GmAqkI@166-Vp2R5j_s}{_mZ!^^g-GCqd2$IafC4 z9;#zQKZ>nIEBbz;B+ww=DAiE3J`6NU^>pmk zw7iOTp^cX|Q?&3>AH~lPpNdUV71m#smtjMpME}7)`$=BI<-N=4bXV|}S$bJN$YanV z`M9;X$08k|H{)KZ2HjTa4Aoy-rD$)MPK>)7vFe7~is#1N$*f)4#^E>R9+929?oR6S zXq&DAdyj8%u(}ENFNUl`a^&INHzk3!-gHm%;FG}T1fMJIbI-!elQ2`1omu5{C7jJ( z=4@Uu+n?|xpCYSCF?pJKk|p>2cyOY`o-ksF8L?qLh)p9=$8h*_!=m2s$%MyKO3KJu z=JAy0z_97sbS{J@OS?R^m>y=h)?1|VGdou1kTYD}&P`)oc-7J8hfUpjP z^&mV0!Uhm3K=6Z53Bt1=JO@G*2pd7z1VS|kH6T2n76Qe1=!f#hFm6_itSA(?`BpmC zBBU<|>{vDy@Z!O*0vg+OZntr4^)(88cKgVqAti=efFwiUDpXewxJX)QW!IaN}|6IJ|UlyK{7-xh^((iY!6yH0_}c((>@9u8x0m> z{M!hRGm>g&t5>K~w4p}~;j#6qghxj=7vS~1wGMo>O0{BqHe$vDzeOx~)L2V{m1+Ub z`&1VuPpB5W)1>l=IiE_}*qkqVAj1CYihiIN=z_4m;pn>452~y6+s-!{=ZbYYJl~)$ z$M~>N9sj)voAsMqi(T87Yt$QtB@1^J?&xXHWR0NHrK-geRvF$g zz_a_29p(#cesH(vI}A?5g#Rx{GU1HJm@~d-!)p&d+t$*~-#Y_6=+)1%*? jWLq}wHgVmNZne8@Ai5ng9gukiGP@xYgUp_ErnCD$UBJh+ diff --git a/build/tools/MasterEditor/MasterEditorTWLChecker/MasterEditorTWLChecker.suo b/build/tools/MasterEditor/MasterEditorTWLChecker/MasterEditorTWLChecker.suo index c5363e69ab9e3b0aee1c5e0c1be89f28da487648..5baa37cf6f9d3dae9d4b836fdb5342a04668b54c 100644 GIT binary patch delta 1533 zcmY+Ee@t6d6vy9veSNf0N(%*AhuD@nev>h`%tRT5bqtKqVoJ9tTNi~D6WsutOc#H= zIW>;>&p65c7>QdnSxmM+CRYXgL&Vd6iF?2j&4Faf`(eJ$}cpWJiK zJ@?*o?>VnVRv350rHiVqO;MC~K%b~>!bPW|M@}8QG^@R!-`)39UCU`Xt<_kxD;)4% z$&=bIP~>vS->NQjsCF8Tw^Ft=E=qD*x-3qyc$>_YMJ(j6(5#mc)IvQKje%F8odJX3 zhYQ;(SJwVn7eY~bVUGfZPF5_?lGaISSIoK&DbH{2ia8vZW)BMu+d`Cf8=_U-a}TMy zV#Q<`hsw0)#}aAuGzklGlimGpK}Nknz4ak79(3AO1lmCj9q+j|>+cude9r!x`C|i7 z9&HB@Qi)ia40$Y?Pp5$9k&VIqYSEYrwHJ(Pd3*DD%WQa6Sm=233Uw!47DaK=%Jwdq zX^V*M0qn+CW_cRm#tJ7g1~!93fPEa70xVNB+)+!h4zIl$Rv47asgAkAnI75D=}_tC z$v`oq)FVEvi??|T@V4&&wv(U=uq*=hv2b1bKnAc+$i*GI^cE*nmP){G-m0+t0n_(5 z#!U*XjRk4jxR(x&OWHazftybtCEtAbBUO7_TYR5xr#v##dqU`fS3bmVt@EveDjkaq z!Sr=Z=TS9V{}Zr-np%BH@A#nJHn>jvDpY~;+q=N4Vm!1U!yHyE?l z!m7(z*+IYd8!Yk;Wx@+kJ_BoLnQIuo0AB)r1it)NAOm>*Ym7_as%f*2ywU#hTX6gi z{s7DPG&ae1qsxN+O1bRZlKeuADEo=|r|xTNLZ#KjkPT~dlJC>KF>4S}4|9T!v(O$j zD?s7yEyeQf8SN59V{U)GxH@_dy&`WU4{TI^*RzX)x|`hOKAiYp2b?`TQjDUqse7|y z;qLGFWN;niii~juG=jUPZ!5+tfMpe!=_&u>9o@d&6l)FA#dZ%Z9QuZ~3`8j0wqBxAuqX$w*zbHej}t%PZ3p4l7-@mD0@4y1wYfqTHqV0&&yFf49#AzTAtZ zZwTWEVBxnlPwA|xrZ;P^Q*zQlzfPYlGzlGjX@<`EI^>akuWfYB($Ox}Ir=I8t13#q Xd+0`TS{i8~NcHwp#^9@eyR_S6oflYS$u!C?*hKM? zlz>JE80aq~%1n45A?kP#jt^>rRtJ)J3Fw2qVDQDL331VEiSA+Z`}_Cbg=h8Gd~$x5 zbAIRif9H3ax+_yl^8HI%{+c25ffjVO2_aVDcnG5tT#h?s+Wf3Fb}%yh>RENj>@t}- zPABvFbVc3H`$eM#bBLA-MkqECq@;a>q6I;x(Gyh=G z;_B~fQVMYa_HUqrj&J(dD)XS)C_WOPq%&r*z}lc&OU{_X4r~3y@q9le3sbUIEf)@G zR%u1BfTyZt@vXc(jq?bhI-(s?O4?PnOsVn|9opSw;h8R)-FiLkjmq-uUf!G3SrDS6 zZ_p||h;L(e{yu0;I3vyYi?z0M0+lz9_Wf^&w=zE43F$N;tC9ihty|UDW9x)^2V$(7Ut&a|O&zqZWd|RZd z_v|$}8ehm?fLq^Eo#_3@WEERrmg?)1{V@w?E6Zl<_huiJdmyvnGfesr@GDzA6W><+ zISkHp4O|D`19A^W=~t~oD`b8YWXaZ+}q$4#)uMGWV)^ATV>issiSH1%>X!u%L=73Oc?`zbSg+^kyxOEt*NtI<6|G-Ax2 zj~-4m{g1t6n{56sEl`hcYv7LbMDIB@e=T>U-leoQ8p^$`oe@ zx%i#O`q$rO=f0~lJrQaB*9}Us`UaW_7DZAog<5eMqky^6_CVo-#xb&Q8Vno38N&yc zn3c3MTpB>{&tqIfqCmr;| w)bZTQdw%)^4YfqcHrA|CN&b@_>&(UG{MD57lvBpDQQbfD%6k15X4|!Y0P=o~%K!iX diff --git a/build/tools/MasterEditor/MasterEditorTWLChecker/MasterEditorTWLChecker/Debug/BuildLog.htm b/build/tools/MasterEditor/MasterEditorTWLChecker/MasterEditorTWLChecker/Debug/BuildLog.htm index cf42c035e54403e5684024b268a38c7711d9831b..1dd190e233d10c27ad8673ffe97a5f0f931c4b26 100644 GIT binary patch delta 238 zcmdm0+!VGUflbha!Ii<7!H~g}!3ap3Gnj8KWZTU)xrR?~a}2*9BNqAH0{tLiH&ktt z3)##!%gENTPOg(+o9xDVY4QXCp3Qa2Z&)zZZm!k<8ez&{fMJB`<^Zh{CM;6B1!OmW h((wZ6GDOw2*;kJpqyt?z)xeTzavh)C<`*WHSO8=JF+KnQ delta 1139 zcmah|O;1xn6g`yM#)j8WB@%0pN1K2|e2icvEJ<lSGWXnb=iK|w+?#vmKfM`C30%Y| z1V(U)dk*7jEA~7lzxG7i9XK*|yieYb+uaMOVjHVic;rZ%uiM*Pl}r4Hob=h#G8S2Jw^hXuRW_1E`8eHG^Ed>DqIS7#46}rd z42rmpDGJPE8k4xfNPx9MbQ>9FuCTQ#%B-`fN6X3{W4_^Mcv@(RyNqVkuVg`YHhQ=- zxfL5zk2?2{)la;YGs#Z*AlXqr>nOYXW%Ova`f|pMM}Pe$7qCc9z3JJGkP(7Z!7l4- zbB7t~RbO0Zhr=JU*izniK~}NxW(zYv|f>OY_gYO1n3_FndpB^W^$DHDc*^?=&g1xU6=~AeiAQ;G>Dj< zYX5BNDqoOmB>9w8qVsH=!z>25&lB6AjW%(IA3liB8Y66SAlh=;YJ7#A6($@N*fb= bjBDJ3T3R-Jn>4T0!wyv~!%@TiAELhjj&0%b diff --git a/build/tools/MasterEditor/MasterEditorTWLChecker/MasterEditorTWLChecker/MasterEditorTWLChecker.cpp b/build/tools/MasterEditor/MasterEditorTWLChecker/MasterEditorTWLChecker/MasterEditorTWLChecker.cpp index 72c840a..90e574c 100644 --- a/build/tools/MasterEditor/MasterEditorTWLChecker/MasterEditorTWLChecker/MasterEditorTWLChecker.cpp +++ b/build/tools/MasterEditor/MasterEditorTWLChecker/MasterEditorTWLChecker/MasterEditorTWLChecker.cpp @@ -47,6 +47,7 @@ int main(array ^args) System::String ^sheet = args[1]; DebugPrint( "Sheet file : " + sheet ); Console::Write( System::IO::Path::GetFileName( sheet ) + "\t" ); + DebugPrint( "\n" ); FilenameItem ^fItem = gcnew FilenameItem; fItem->parseFilename( sheet ); @@ -61,6 +62,7 @@ int main(array ^args) DebugPrint( "Original file : " + original ); DebugPrint( "Target file : " + target ); Console::Write( System::IO::Path::GetFileName( target ) + "\t" ); + DebugPrint( "\n" ); FilenameItem ^fItem = gcnew FilenameItem; fItem->parseFilename( target ); diff --git a/build/tools/MasterEditor/MasterEditorTWLChecker/MasterEditorTWLChecker/check_rom.cpp b/build/tools/MasterEditor/MasterEditorTWLChecker/MasterEditorTWLChecker/check_rom.cpp index 560b513..e3efef7 100644 --- a/build/tools/MasterEditor/MasterEditorTWLChecker/MasterEditorTWLChecker/check_rom.cpp +++ b/build/tools/MasterEditor/MasterEditorTWLChecker/MasterEditorTWLChecker/check_rom.cpp @@ -46,37 +46,78 @@ System::Void checkRom( FilenameItem ^fItem, System::String ^orgSrl, System::Stri checkRomHeaderSign( &rh ); DebugPrint( "--------------------------------------------------------" ); - DebugPrint( "{0,-10} {1,-20}", nullptr, "RomHeader" ); + DebugPrint( "{0,-10} {1,-20} {2,-20}", nullptr, "TrueValue", "RomHeader" ); DebugPrint( "--" ); // リージョンのチェック u32 region = fItem->getRegionBitmap(); // ファイル名に対応する真値を取得 - DebugPrint( "{0,-10} {1,-20:X04}", "Region", rh.s.card_region_bitmap ); + DebugPrint( "{0,-10} {1,-20:X04} {2,-20:X04}", "Region", region, rh.s.card_region_bitmap ); DebugPrint( "--" ); if( rh.s.card_region_bitmap != region ) { - throw (gcnew System::Exception("Illegal Region in the ROM Header.")); + throw (gcnew System::Exception("In Rom Header, illegal region in the ROM Header.")); return; } - // リージョンに含まれる団体のレーティングenableフラグが立っているかチェック - System::Collections::Generic::List ^ognlist = MasterEditorTWL::getOgnListInRegion( region ); - for each ( int ogn in ognlist ) - { - if( (rh.s.parental_control_rating_info[ogn] & OS_TWL_PCTL_OGNINFO_ENABLE_MASK) == 0 ) - { - throw (gcnew System::Exception("Rating Ogn " + ogn.ToString() + " is not enabled.")); - return; - } - } - // 設定したレーティングが正しいかどうかをチェック - int ogn = fItem->getOgnNumber(); // ファイル名に対応する真値を取得 - u8 rating = fItem->getRatingValue(); - if( rh.s.parental_control_rating_info[ ogn ] != rating ) + System::Collections::Generic::List ^ognlist = MasterEditorTWL::getOgnListInRegion( region ); + if( fItem->getOgnNumber() >= 0 ) { - throw (gcnew System::Exception("mismatch Rating Ogn " + ogn.ToString() + ".")); - return; + // 「レーティング表示不要」でないとき + + int ogn = fItem->getOgnNumber(); // ファイル名に対応する真値を取得 + u8 rating = fItem->getRatingValue(); + DebugPrint( "{0,-10} {1,-20:X02} {2,-20:X02}", fItem->getOgnString(ogn), rating, rh.s.parental_control_rating_info[ogn] ); + if( rh.s.parental_control_rating_info[ ogn ] != rating ) + { + throw (gcnew System::Exception("In Rom Header, mismatch Rating Ogn " + ogn.ToString() + ".")); + return; + } + + // リージョンに含まれるその他の団体が「全年齢」になっているかチェック + for each ( int ogn in ognlist ) + { + if( ogn != fItem->getOgnNumber() ) + { + u8 zero = OS_TWL_PCTL_OGNINFO_ENABLE_MASK | 0; + DebugPrint( "{0,-10} {1,-20:X02} {2,-20:X02}", fItem->getOgnString(ogn), zero, rh.s.parental_control_rating_info[ogn] ); + if( rh.s.parental_control_rating_info[ogn] != zero ) + { + throw (gcnew System::Exception("In Rom Header, Rating Ogn " + ogn.ToString() + " is not enabled.")); + return; + } + } + } + + // 「レーティング不要」フラグが立っていてはいけない + if( rh.s.unnecessary_rating_display != 0 ) + { + throw (gcnew System::Exception("In Rom Header, \"Unnecessary\" flag is asserted.")); + return; + } + } + else + { + // 「レーティング表示不要」のとき + + // リージョンに含まれるすべての団体が「全年齢」になっているかチェック + for each ( int ogn in ognlist ) + { + u8 zero = OS_TWL_PCTL_OGNINFO_ENABLE_MASK | 0; + DebugPrint( "{0,-10} {1,-20:X02} {2,-20:X02}", fItem->getOgnString(ogn), zero, rh.s.parental_control_rating_info[ogn] ); + if( rh.s.parental_control_rating_info[ogn] != zero ) + { + throw (gcnew System::Exception("In Rom Header, Rating Ogn " + ogn.ToString() + " is not enabled.")); + return; + } + } + + // フラグチェック + if( rh.s.unnecessary_rating_display == 0 ) + { + throw (gcnew System::Exception("In Rom Header, \"Unnecessary\" flag is negated.")); + return; + } } // 表示 @@ -90,19 +131,26 @@ System::Void checkRom( FilenameItem ^fItem, System::String ^orgSrl, System::Stri alllist->Add( OS_TWL_PCTL_OGN_PEGI_BBFC ); alllist->Add( OS_TWL_PCTL_OGN_OFLC ); //alllist->Add( OS_TWL_PCTL_OGN_GRB ); - for each ( int ogn in alllist ) - { - DebugPrint( "{0,-10} {1,-20:X02}", fItem->getOgnString(ogn), rh.s.parental_control_rating_info[ogn] ); - } // リージョンに含まれない団体のレーティングがクリアされているかチェック int i; for( i=0; i < PARENTAL_CONTROL_INFO_SIZE; i++ ) { - if( (ognlist->IndexOf(i) < 0) && (rh.s.parental_control_rating_info[i] != 0) ) + if( ognlist->IndexOf(i) < 0 ) { - throw (gcnew System::Exception("Rating Ogn " + i.ToString() + " is not cleared in ROM Header.")); - return; + if( alllist->IndexOf(i) >= 0 ) + { + DebugPrint( "{0,-10} {1,-20:X02} {2,-20:X02}", fItem->getOgnString(i), (u8)0, rh.s.parental_control_rating_info[i] ); + } + else + { + DebugPrint( "{0,-10} {1,-20:X02} {2,-20:X02}", "Ogn" + i.ToString("D2") + "(rsv)", (u8)0, rh.s.parental_control_rating_info[i] ); + } + if( rh.s.parental_control_rating_info[i] != 0 ) + { + throw (gcnew System::Exception("In Rom Header, Rating Ogn " + i.ToString() + " is not cleared in ROM Header.")); + return; + } } } DebugPrint( "--------------------------------------------------------" ); diff --git a/build/tools/MasterEditor/MasterEditorTWLChecker/MasterEditorTWLChecker/check_sheet.cpp b/build/tools/MasterEditor/MasterEditorTWLChecker/MasterEditorTWLChecker/check_sheet.cpp index 83bdd67..f2e4214 100644 --- a/build/tools/MasterEditor/MasterEditorTWLChecker/MasterEditorTWLChecker/check_sheet.cpp +++ b/build/tools/MasterEditor/MasterEditorTWLChecker/MasterEditorTWLChecker/check_sheet.cpp @@ -96,7 +96,7 @@ System::Void checkSheet( FilenameItem ^fItem, SheetItem ^sItem ) System::Xml::XmlElement ^root = doc->DocumentElement; DebugPrint( "--------------------------------------------------------" ); - DebugPrint( "{0,-10} {1,-20} {2,-20}", nullptr, "Config", "Sheet" ); + DebugPrint( "{0,-10} {1,-20} {2,-20}", nullptr, "TrueValue", "Sheet" ); DebugPrint( "--" ); // 設定ファイル中の真値と提出確認書の記述を比較 @@ -116,7 +116,7 @@ System::Void checkSheet( FilenameItem ^fItem, SheetItem ^sItem ) // レーティングの文字列のチェック System::Collections::Generic::List ^ognlist = MasterEditorTWL::getOgnListInRegion( fItem->getRegionBitmap() ); - if( fItem->ogn != fItem->getOgnString(-1) ) + if( fItem->getOgnNumber() >= 0 ) { // 「レーティング表示不要」でないとき @@ -129,7 +129,7 @@ System::Void checkSheet( FilenameItem ^fItem, SheetItem ^sItem ) return; } - // その他のリージョンに含まれる団体が「全年齢」になっているかチェック + // リージョンに含まれるその他の団体が「全年齢」になっているかチェック for each ( int ogn in ognlist ) { if( ogn != fItem->getOgnNumber() ) @@ -148,6 +148,13 @@ System::Void checkSheet( FilenameItem ^fItem, SheetItem ^sItem ) } } } + + // 「レーティング不要」フラグが立っていてはいけない + if( !sItem->IsUnnecessaryRating ) + { + throw (gcnew System::Exception("In Sheet, \"Unnecessary\" flag is asserted.")); + return; + } } else { @@ -173,7 +180,7 @@ System::Void checkSheet( FilenameItem ^fItem, SheetItem ^sItem ) // フラグをチェック if( !sItem->IsUnnecessaryRating ) { - throw (gcnew System::Exception("In Sheet, \"Unnecessary\" Flag is Negated.")); + throw (gcnew System::Exception("In Sheet, \"Unnecessary\" flag is negated.")); return; } }