From 2306447ed8b3daae693e636fd4fb6b16edfafe6c Mon Sep 17 00:00:00 2001 From: nishikawa_takeshi Date: Wed, 21 Jan 2009 02:03:13 +0000 Subject: [PATCH] =?UTF-8?q?=E3=83=9E=E3=82=B9=E3=82=BF=E3=82=A8=E3=83=87?= =?UTF-8?q?=E3=82=A3=E3=82=BF:MRC=E3=81=ABNAND=E4=BD=BF=E7=94=A8=E9=87=8F?= =?UTF-8?q?=E3=81=AE=E3=83=81=E3=82=A7=E3=83=83=E3=82=AF=E3=82=92=E8=BF=BD?= =?UTF-8?q?=E5=8A=A0=E3=80=82=E3=83=A1=E3=83=83=E3=82=BB=E3=83=BC=E3=82=B8?= =?UTF-8?q?=E3=82=92=E3=81=84=E3=81=8F=E3=81=A4=E3=81=8B=E5=A4=89=E6=9B=B4?= =?UTF-8?q?=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@127 7061adef-622a-194b-ae81-725974e89856 --- .../MasterEditorTWL/MasterEditorTWL.ncb | Bin 11406336 -> 11406336 bytes .../MasterEditorTWL/MasterEditorTWL.suo | Bin 67072 -> 67584 bytes .../MasterEditorTWL/Debug/BuildLog.htm | Bin 12052 -> 20662 bytes .../MasterEditorTWL/MasterEditorTWL/common.h | 3 +- .../MasterEditorTWL/srl_mrc.cpp | 102 +++++++++++++----- .../MasterEditorTWL/utility.cpp | 4 +- 6 files changed, 80 insertions(+), 29 deletions(-) diff --git a/build/tools/MasterEditor/MasterEditorTWL/MasterEditorTWL.ncb b/build/tools/MasterEditor/MasterEditorTWL/MasterEditorTWL.ncb index ce56407610b155774fefab7189e165480ebbb75f..b665be7840b7f1a2aaec96ae470fadcb0c2974b7 100644 GIT binary patch delta 14928 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 delta 12021 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 diff --git a/build/tools/MasterEditor/MasterEditorTWL/MasterEditorTWL.suo b/build/tools/MasterEditor/MasterEditorTWL/MasterEditorTWL.suo index cd998d9e2aca85f3b156f0f11c8ec2c48fa20ea3..9cfb4d05ee5a89c586608e9ad240e8339f17f6ab 100644 GIT binary patch delta 4593 zcmZvf33yc18HVq`T~c*q0(;*aC&1%%E6Np(Xi6 zKnrDSX|)evu2rEG(y&t~peaSr2LYcp2(mS#f{^t4Cjan6&3WdX^PTVh=lglK@ z;AuGRS%?K-5ts=Ug4y6XkOk&|xnLfc53<1o5C?ct5-JZNmcoA?ya1K~KM2S}&zz{} zUaPv!UV6-U;1n!$bDTHrhB?NvQqfKW{XjZ63{Mgw5@LAjQ7}e>F@SBE8nMz@f(Z9k z#E1wv;3P?Q?V-}ANpgO4p=n&xGC0N(1$u##?{@ayEW1%I2kW%V^Y#g&Uqk8?w+o*I z)vmGRc++{B@CIl`8@caI4>#4JYcWW&>#nND=?R^Nr{~dj^001$u(eS2+@zRaS8KrO zUkv(!O2M+fS)*z;yjkcN@7`;+)HZ!&q0et}+`GQow!`7Nk#Sv(IPp#0%$5npxmM`! z?yhY0ypfpVXz?|#DZcn(YPVs+?&`5^(c?2tB1)x9)+U^ab7#q!PEB0rCns!&Gv*dO zvAvdE8YVftm)X<9-21)L?P?|#aX45m<2$yHL?>LbQ-=hnfy*Zf(~!E%u5KhJ?G^XE zOM{IJUJ@=%&JC9x>5Zc{Mr}^s7{yFh_=Rveay}`)|32dcmL_$}i;ppl+;L~>ng>zZFqXtlz9Lc6 zV`yzDW#Q`^gmY+vrw zmVOtbc^~{4d;mD&k5KOcd%<78U%|&1c z{sB&b)8GvF#8_VIQ-~t)PjD7s3U}l$8g0wvxnIfdY2mWGbbnq>pU9_vbkA~5c%orG zT7kjeSaeZ6|Myo1Lmm|*ut;mr6135FZEd5n+N($XINFA`4;TRUR`Sk4cLwLx!=~8O z`aK#f6VNMk!if+#q3icAkCd&^17&WlXg727cC&T9oxiG|G07FnYV|6~e*>%XjN>+3 zS<|?QubnpX<)ThuGjPH>VkX{`(ty|P@~g(Sl&rrlvwM1tBe&Pzl)i{>%7$@Zi9U)lZpKTL^rV%()?*BDvn&Jf?^uVi+s`c>?{jFYsY zLHPv*#yc4U;+Qy}Qz$I)?&#z?g~_%Q{B)-j%yY1bdu#UnW!`EYWrz$tl-Prfs(#rW zHHd-5fLqGf>TxyjCRo8`e{`+aU3qx1@$*81sd)&3b84fe7Y8CBIJf+RqDOM^)ed!@ zdfZTY>LTrrnlVi0p+Fg-9(4vZbBwC+{J~x5bu_|YuF*i=q&)T3Rq{5dw@JNbh}#T} zkF{MrAM|J%C_B}o-UZFX@2S@sIv-amb>{7IcODz=1h+bFbBlG@Z|UX1vfhSf?~Up) zWHY`vf-UNC)PIC#@;|A^TgxX2mYwQR?}84FMm_Aeek)%CZ&V7rse!lEV@N5!s-gZ? zy?M}O&`j*;<#GP+Fc_tgdK_RIXvU?g$7R%n26y&;YOZo(s0+mY=%o@wY&?Qr#mM^<|}~%i8ll>Tz^e zq4BYlaNY=$rPZK<9O9S_ZYzm0lzc<;KQ!AF7=n)2||gde;{@sHdTySvZ5 zf+xxi(PFNQvY+T8J3c zTV;Iri^%bAdQ~~3 z?KCO^$!{R3g2aqds@)(~jIJJC6w@bqhRCOA+r;>3nx>V5d%*(mFwM55B;Fbs8Ci;uyE!~;!DHEEu7{Wtf2}nkn zRymstcE~Hvg-(Y+G!jGcy_3lwTVjuf>uxT|!Pq|weT+su@u@8yZ;Lyh@*^`HPoRF} zHmY|QI7B4kDE2yTL-eIaL+%24+sGpS*llUwgY@oeGu)SNT^bR%tsmtVz}T59qb=+fbex^y1qVm$Z) zPy$K;YYUN=gGGS*mzF#_#p6Rz308sCU^k$)M+<3*-{X7^g@Di~$@eM6{J=wbS%w^1 zR_G#Q#Wgzg__&rSetPq`f@R5^!2KX%}#Pr*J?x9T1$l(u{+^6NZdKK;~Blhzhp`)uGt2D0iFjhfIVO@ zcoFOa?cfzaPx%wGUPbU4_%-+qH~>097dQyarGWep_$_#yO8wKDYrYI_d`Opr!$Q#6 z;a|1Xo6}$V>rdKbpf62$*J{(WN~~*M*;q1|h%V&1TQ)Q_x+vI&E;?mM@AfFn!4-XU z`7^KmaTwxd(vA;AaNB$#?lDK$|J*h@9mtV6EfaKEzI%d@WxI4iWxM+5Tzia@+ZcG0 zIkOkZW36#~v1|14i{s?!Hn*VE9es4)?nt`yl1mQkbBs27@1wX_P2(l0i%M;lR-xt7 z!8>Nsi5j<@`}|hjJ_}X%j!v&V<>p%X?_l`%KIJUeQIA_@tvF66Ydpe5qU=am`i)s8@Zn1$HuZLvlP@cV*8@^#_ctkZkX3^eJ z+8>oR9=Qu}`V-)u*0jvd%xnsLku3vnHVW$S`FM|U%d5AZwFN^VL4k{T!DEngx_{c| zl-F-y`*BAt-gWh7d>wPN;@-(rbIL87{!l0QYlFnQEq6R8esO-$DIh!;Jnff*4NChq z@^=Bh+XqTRM`&l2c3x=-$fp8MeIR^~&k^%I`uYAWCV~OLDH}rAI2{2SXDaQ7hbrHf21^VH)XYV$^*yCjMkMx^vkR(u_E~X zpe~YqHVD z{OQ%*+Fvs%@b;<(EO)I5@WZVJPXkV^fHh8Spa6sy1)mxA0#4l^>M<*Tyz)+*n6r7gn=LaSEB zI^?4}(;7^~N*wxX@%bq-7b3qklMHwq(^Z+ZZ`e+?j$Yk-N%sDqJ}V6xzANT~hgT3k zOuN#)@w1|Q|NFKdW!?Ably9uL)l>CAJeB$+7x>s@mwEkVI0jrl&~ZucxMtW>aN}7A zOFKn#O(8Y=YQsi{Y#eGBLq~l{wA~v+4dnyWdDCT{OgD9po=ly8FQAwDkEnB|<98<< HB1ilOkyG*r diff --git a/build/tools/MasterEditor/MasterEditorTWL/MasterEditorTWL/Debug/BuildLog.htm b/build/tools/MasterEditor/MasterEditorTWL/MasterEditorTWL/Debug/BuildLog.htm index 6d508a29d8e8a4d3008be0eabe5a1ff8a27b62a2..f591448eab74b19cad43ece870debd3ca92297f9 100644 GIT binary patch delta 2545 zcmcImOKcle6uow0Lu33)|i^XD1ItnY`Xnuj^#Q%2i+=In65~pg9>lO+bV4U?Z#e7D%e5C_Y(3G zzPDVSy-CB#L31!=+Kq9p5H0MBPon>H=i6G>|(c*fJ-RBJa>_k^dqcKQXc zr)2$m>%F}Jk@XUyF4ML(6`buf*bNo<*F6#bda5^H1+f~f;CBNA%e0M4rx7%&hJP18 zt}dyT>0!7uL04!?kgsE8L@Ue0v%cTOnDHOu{#&-mpu5T7Z^bWo4XJ7s`UE00<2}&= zjqx+_L;Jv#U1b4$7U68T<8w@F*Es}hi274#&`zz(RRhQ}x>!e{M!*YarNvFy8+ck!zB}oC!BXT%SuOH@$q+}*LWoq z;txc1>&l@}UkB<_9etj5o8m-|`9!uR-;I7N?0ZlnK6zj$+AOM437!tbxE}PUM62$R zwG2{_`oP{qCZcs~qMiJ*ahCrT?+=VfX%W9m+!LRbp1+F^dvx9yO7$$#nzc6+>!h?B z(yX6D%oCpJ52PCowr%T4|MoO@ zY`r$EDf^-LCdaaaqoS*vaxcL)w_TQ?O!CBFOi9uS)wTpBb}tz_<|OH0odu`R=APt` zQW6K#WeG~IH(Y{JYq9^>=WK_i>XG8{xh#sG-IxE(zG82)>r9nSqFvZnd^mA%++lnp zAK$Yt;QcDo={NQX{(XozJeRp6$Z(olB7WTWhrQPtVh8Co%U)vdzT99Rzt&)v*ptl5 z#Hq3^boz$vNoqUnpXG;u;%tTGC9;`-4j->R_2S$-Wb>@BZ$FBYz-U~J4Qhrwy9?Mo zn^fZW`F?2F4R9~go5w1LFN(H$xHz=$=$pmFuI~=B`00$si-G=zPDklH9Rt64oY4)O z&P}{cYk0Qh=dsOdklHUW9XnrrZB>DN9GEIltI%xVc^pH=aE;*`Y82UvC(&VHS;2Qr z704C51kFAfXi5;^i-CjFP3KjB!~zm;%BIUKa5_z5k*wj~GM7Y~Yg-W55{s9z{9-1R bw3F58efAmq72|Xb)46aiQna=*Z}$EVTj@F? delta 257 zcmdnCka0@f1`9TRM+OrHQwDPeGazZmV7A$v?LFJ%B}M|9pGbQ!qRURUmW|(hK}n2} z-w9RQWOp|6%{nR}tdr%q*d|-B9+@m4%QLw_M`3fB79SV7>dli)N*Vc`(Tor`v)-Iw zZNY>gVJ$1W`I)5x=QRy diff --git a/build/tools/MasterEditor/MasterEditorTWL/MasterEditorTWL/common.h b/build/tools/MasterEditor/MasterEditorTWL/MasterEditorTWL/common.h index 5629400..7ba3a49 100644 --- a/build/tools/MasterEditor/MasterEditorTWL/MasterEditorTWL/common.h +++ b/build/tools/MasterEditor/MasterEditorTWL/MasterEditorTWL/common.h @@ -11,7 +11,8 @@ #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) // Public/Privateセーブデータのサイズを含めたNANDアプリの容量制限(単位Byte) +#define METWL_ALLSIZE_MAX_NAND (32*1024*1024) // システム上のNANDアプリの容量制限(単位Byte) +#define METWL_ALLSIZE_MAX_NAND_LIC (16*1024*1024) // 運用上の(契約上の)NANDアプリの容量制限(単位Byte) #define METWL_MASK_REGION_JAPAN 0x00000001 #define METWL_MASK_REGION_AMERICA 0x00000002 #define METWL_MASK_REGION_EUROPE 0x00000004 diff --git a/build/tools/MasterEditor/MasterEditorTWL/MasterEditorTWL/srl_mrc.cpp b/build/tools/MasterEditor/MasterEditorTWL/MasterEditorTWL/srl_mrc.cpp index 0cf8b7a..829dc38 100644 --- a/build/tools/MasterEditor/MasterEditorTWL/MasterEditorTWL/srl_mrc.cpp +++ b/build/tools/MasterEditor/MasterEditorTWL/MasterEditorTWL/srl_mrc.cpp @@ -271,6 +271,29 @@ ECSrlResult RCSrl::mrcTWL( FILE *fp ) } #endif + // NANDアプリがHYBRIDとなるのはクローンブートのときのみ + if( this->IsMediaNand ) + { + if( !this->HasDSDLPlaySign && (this->pRomHeader->s.platform_code == PLATFORM_CODE_TWL_HYBLID) ) + { + this->hErrorList->Add( gcnew RCMrcError( + "NANDアプリのHYBRID条件", 0x12, 0x12, + "クローンブート対応でないNANDアプリをHYBRID版として作成することは許可されていません。", + "HYBRID NAND application", + "Building HYBRID NAND Application supported Clone Boot is not permitted.", + false, true ) ); + } + if( this->HasDSDLPlaySign && (this->pRomHeader->s.platform_code == PLATFORM_CODE_TWL_LIMITED) ) + { + this->hErrorList->Add( gcnew RCMrcError( + "NANDアプリのLIMITED条件", 0x12, 0x12, + "クローンブート対応のNANDアプリをLIMITED版として作成することは許可されていません。", + "LIMITED NAND application", + "Building LIMITED NAND Application supported Clone Boot is not permitted.", + false, true ) ); + } + } + // 旧開発用暗号フラグとクローンブートの組み合わせはマスタリングで矛盾が生じる if( this->IsOldDevEncrypt && this->HasDSDLPlaySign ) { @@ -322,14 +345,23 @@ ECSrlResult RCSrl::mrcTWL( FILE *fp ) "デバイス容量", 0x14, 0x14, "NANDアプリに対して指定可能な容量ではありません。", "Device Capacity", "Invalid capacity.", false, true ) ); } - u32 allsize = filesize + this->pRomHeader->s.public_save_data_size + this->pRomHeader->s.private_save_data_size; + //u32 allsize = filesize + this->pRomHeader->s.public_save_data_size + this->pRomHeader->s.private_save_data_size; + u32 allsize = this->hNandUsedSize->NandUsedSize; // TMDやサブバナーのサイズを含める if( allsize > METWL_ALLSIZE_MAX_NAND ) { this->hErrorList->Add( gcnew RCMrcError( - "実ファイルサイズ", METWL_ERRLIST_NORANGE, METWL_ERRLIST_NORANGE, - "ROMデータの実ファイルサイズとPublicセーブデータおよびPrivateセーブデータのサイズの総和が32MByteを超えています。", + "NAND領域の使用サイズ", METWL_ERRLIST_NORANGE, METWL_ERRLIST_NORANGE, + "NANDアプリによるNAND領域の使用サイズ(セーブデータ含む)が32MBを超えています。", "Actual File Size", - "The sum of this size, the public save data size and private save data size exceed 32MByte.", false, true ) ); + "NAND size used by NAND application, including Save Data, exceeds 32MB.", false, true ) ); + } + if( (allsize > METWL_ALLSIZE_MAX_NAND_LIC) && this->IsAppUser ) // ユーザアプリのときのみ + { + this->hWarnList->Add( gcnew RCMrcError( // 運用上問題あるがシステム上では問題ないので警告にしておく + "NAND領域の使用サイズ", METWL_ERRLIST_NORANGE, METWL_ERRLIST_NORANGE, + "NANDアプリによるNAND領域の使用サイズ(セーブデータ含む)が16MBを超えています。", + "Used NAND Size", + "NAND size used by NAND application, including Save Data, exceeds 16MB.", false, true ) ); } } @@ -369,7 +401,7 @@ ECSrlResult RCSrl::mrcTWL( FILE *fp ) // デバッガ動作禁止フラグはユーザアプリでは立っていてはいけない // システムアプリではデバッガで解析されないように通常では立っていなければならない - if( this->IsAppLauncher || this->IsAppSecure || this->IsAppSystem ) + if( !this->IsAppUser ) { if( this->pRomHeader->s.disable_debug == 0 ) { @@ -395,7 +427,6 @@ ECSrlResult RCSrl::mrcTWL( FILE *fp ) } // ノーマルジャンプ - if( !(this->IsAppLauncher || this->IsAppSecure || this->IsAppSystem) ) { u8 okbits = 0x01 | 0x02 | 0x40 | 0x80; u8 *p = (u8*)&(this->pRomHeader->s); @@ -408,16 +439,18 @@ ECSrlResult RCSrl::mrcTWL( FILE *fp ) "Illegal bit is setting. This setting is unavailable.", false, true ) ); } - - if( (this->pRomHeader->s.permit_landing_normal_jump != 0) && - !this->hMrcExternalCheckItems->IsPermitNormalJump ) // 設定ファイルでアクセス許可されていないときにチェック + if( this->IsAppUser ) { - this->hErrorList->Add( gcnew RCMrcError( - "ノーマルアプリジャンプ", 0x1d, 0x1d, - "ノーマルアプリジャンプは許可されていません。", - "Normal App Jump", - "This setting is not permitted.", - false, true ) ); + if( (this->pRomHeader->s.permit_landing_normal_jump != 0) && + !this->hMrcExternalCheckItems->IsPermitNormalJump ) // 設定ファイルでアクセス許可されていないときにチェック + { + this->hErrorList->Add( gcnew RCMrcError( + "ノーマルアプリジャンプ", 0x1d, 0x1d, + "ノーマルアプリジャンプは許可されていません。", + "Normal App Jump", + "This setting is not permitted.", + false, true ) ); + } } } @@ -520,6 +553,19 @@ ECSrlResult RCSrl::mrcTWL( FILE *fp ) "Title ID", "Lower 4 bytes don't match ones of Game Code.", false, true ) ); } + // カードアプリでPublic/Privateセーブデータを設定してはいけない + if( !this->IsMediaNand ) + { + if( (this->PublicSize > 0) || (this->PrivateSize) ) + { + this->hErrorList->Add( gcnew RCMrcError( + "Pubilc/Privateセーブデータ", METWL_ERRLIST_NORANGE, METWL_ERRLIST_NORANGE, + "ゲームカード向けソフトではPublicセーブデータおよびPrivateセーブデータのサイズを指定することはできません。", + "Public/Private Save Data", + "Application for GameCard can not have Public Save Data or Private Save Data.", false, true ) ); + } + } + // バナーの文字コード this->mrcBanner( fp ); @@ -644,7 +690,7 @@ void RCSrl::mrcAppType(FILE *fp) // ------------------------------------------------------------------- void RCSrl::mrcAccessControl(FILE *fp) { - if( this->IsAppLauncher || this->IsAppSecure || this->IsAppSystem ) + if( !this->IsAppUser ) { if( (this->pRomHeader->s.access_control.game_card_on != 0) && (this->pRomHeader->s.access_control.game_card_nitro_mode != 0) ) @@ -654,7 +700,7 @@ void RCSrl::mrcAccessControl(FILE *fp) "Access Control Info.", "Game card access setting is either normal mode or NTR mode.", false, true ) ); } } - else + else // ユーザアプリ { if( this->pRomHeader->s.access_control.sd_card_access != 0 ) { @@ -680,7 +726,7 @@ void RCSrl::mrcAccessControl(FILE *fp) u32 okbits; if( !this->IsMediaNand ) { - okbits = 0x00000008 | 0x00000010 | 0x00000040; + okbits = 0x00000008 | 0x00000010 | 0x00000040; // NAND | SD | Shared2ファイル (それぞれ個別でチェックするためここではチェックしない) } else { @@ -862,12 +908,12 @@ void RCSrl::mrcShared2(FILE *fp) System::String ^filenoE = "Shared File(No." + i.ToString() + ")"; if( !this->hMrcExternalCheckItems->hIsPermitShared2Array[i] ) { - // 一般公開されていないのにファイルを使用する場合を考慮してシステムアプリ場合のメッセージを変更する - if( this->IsAppSystem || this->IsAppSecure || this->IsAppLauncher ) + // 一般公開されていないのにファイルを使用する場合を考慮してシステムアプリのときのメッセージを変更する + if( !this->IsAppUser ) { this->hWarnList->Add( gcnew RCMrcError( filenoJ, METWL_ERRLIST_NORANGE, METWL_ERRLIST_NORANGE, - "一般公開されていない" + filenoJ + "へのアクセスが設定されています。" + filenoJ + "へのアクセス(非公開)が設定されています。" + "アクセス許可されているかご確認ください。", filenoE, filenoE + " is not revealed to licencies. Please check permission of access to this file.", @@ -885,9 +931,9 @@ void RCSrl::mrcShared2(FILE *fp) } if( this->hShared2SizeArray[i] != this->hMrcExternalCheckItems->hShared2SizeArray[i] ) { - if( this->IsAppSystem || this->IsAppSecure || this->IsAppLauncher ) + if( !this->IsAppUser ) { - this->hWarnList->Add( gcnew RCMrcError( + this->hWarnList->Add( gcnew RCMrcError( // システムのとき警告 filenoJ, METWL_ERRLIST_NORANGE, METWL_ERRLIST_NORANGE, filenoJ + "のファイルサイズが " + MasterEditorTWL::transSizeToString(this->hShared2SizeArray[i]) + " に設定されています。" @@ -899,11 +945,15 @@ void RCSrl::mrcShared2(FILE *fp) false, true ) ); } { - this->hErrorList->Add( gcnew RCMrcError( + this->hErrorList->Add( gcnew RCMrcError( // ユーザのときエラー filenoJ, METWL_ERRLIST_NORANGE, METWL_ERRLIST_NORANGE, - filenoJ + "のファイルサイズに不正な値が設定されています。", + filenoJ + "のファイルサイズが " + + MasterEditorTWL::transSizeToString(this->hShared2SizeArray[i]) + " に設定されています。" + + "正しい値かどうかをご確認ください。", filenoE, - "Illegal file size of " + filenoE + ".", + "File size of " + filenoE + " is " + + MasterEditorTWL::transSizeToString(this->hShared2SizeArray[i]) + "." + + " Please check validation of this size.", false, true ) ); } } diff --git a/build/tools/MasterEditor/MasterEditorTWL/MasterEditorTWL/utility.cpp b/build/tools/MasterEditor/MasterEditorTWL/MasterEditorTWL/utility.cpp index bd0db42..e5755b7 100644 --- a/build/tools/MasterEditor/MasterEditorTWL/MasterEditorTWL/utility.cpp +++ b/build/tools/MasterEditor/MasterEditorTWL/MasterEditorTWL/utility.cpp @@ -145,9 +145,9 @@ System::String^ MasterEditorTWL::transSizeToStringMB( const System::UInt32 size, pow = pow * 10; } - System::UInt32 div = size * pow / MB; // 小数点の位置をずらす + System::UInt32 div = size * pow / MB; // 小数点の位置をずらす System::UInt32 mod = size * pow % MB; - if( mod > 0 ) // ずらした小数点以下を切り上げ + if( mod > 0 ) // ずらした小数点以下を切り上げ(直後の桁が0であってもそれ以降が0でなければ切り上げ) { div++; }