diff --git a/CMakeLists.txt b/CMakeLists.txt index e71b3905..137d8f3e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -24,7 +24,7 @@ if(APPLE) endif() set(_3DSTOOL_MAJOR 1) set(_3DSTOOL_MINOR 0) -set(_3DSTOOL_PATCHLEVEL 26) +set(_3DSTOOL_PATCHLEVEL 27) if(NOT MSVC_IDE AND NOT XCODE_VERSION AND NOT CMAKE_BUILD_TYPE) set(CMAKE_BUILD_TYPE "Release" CACHE STRING "Choose the type of build, options are: None(CMAKE_CXX_FLAGS or CMAKE_C_FLAGS used) Debug Release RelWithDebInfo MinSizeRel." FORCE) endif() diff --git a/README.md b/README.md index b392c16a..55b743e8 100644 --- a/README.md +++ b/README.md @@ -31,6 +31,7 @@ An all-in-one tool for extracting/creating 3ds roms. - v1.0.24 @ 2017.05.21 - Support auto encryption - v1.0.25 @ 2017.06.18 - Fix auto encryption bug and add download - v1.0.26 @ 2017.06.20 - Fix auto encryption bug +- v1.0.27 @ 2017.10.10 - Fix encoding on macOS ## Platforms diff --git a/bin/ext_key.txt b/bin/ext_key.txt index c98f8e21..e6818573 100644 --- a/bin/ext_key.txt +++ b/bin/ext_key.txt @@ -141,6 +141,7 @@ 0004000000163F00 D42012C7206A5A73C05699E36813F3AB 0004000000164700 5FC30AF646AA42B45CBBEFFD61EFCCD2 0004000000164800 7B8A796D3FB45E826D2AEF4636124536 +0004000000164A00 0102072BBF1DA3BD7EE48B9C1556D2B0 0004000000164D00 BEBB64ACC1C6FE553BD03BEB3891A784 0004000000164E00 0FF181B6981481436414D09325F6E336 0004000000164F00 8AAE22A7D7D1F9024DEF85FBC7595450 @@ -312,6 +313,20 @@ 0004000000171F00 7046D7B89A502BAA43CFC6C1A8E3D235 0004000000172000 4BF7D99DD0942FEE7334D34FD4BE1D85 0004000000172200 15670CFDA0ADD5AD546BD2833408ED35 +0004000000172300 DA4E557CCA48624A47A2D6483A93D647 +0004000000172400 8C7516A5B61B9B03FB2DD6052E51DC76 +0004000000172600 731523C78F32373508720FEAA74E3487 +0004000000172700 66F4F2CD473FE0B9336A090FE1A2B945 +0004000000172900 F06644F00E5E1BAE46EA54177C8E73BB +0004000000172A00 5AE87C08915B13AF9E489D46305858BA +0004000000172C00 D5A987245CF8EE8AAFE41DE0447873E3 +0004000000172D00 BF718D4B2B062297AF6C00432E5CE348 +0004000000172F00 340D3E491280F67755218CEF5B906E7C +0004000000173000 E04FFEA75C5470E784A755B86D753238 +0004000000173200 CC2D67748163A8E4FFB003DBA7281374 +0004000000173300 7A71D10C1DDFB9586CCF4CB6E48EFA8E +0004000000173500 A38288F3E7804FDE5469EEBD31AEDFCB +0004000000173600 6C6E759AA637D97C11F60A5B2F2C79AB 0004000000173700 3573CEDA93A923E411132B61C71500A8 0004000000173B00 113373B455E01923D9F29891C0925AD0 0004000000173C00 7F9F7D76A6CD505D149D8E87FB1B3B80 @@ -454,6 +469,7 @@ 000400000017F800 318C6872A667D63E7B7EEC9AB8B34710 000400000017F900 79F150ADE3038404DF2F4D6A6CC5CFC3 000400000017FA00 C09CAB80472BC01EEF75742D610ED151 +000400000017FD00 2D319B441E9A88B7C61012C7FE98BC6F 000400000017FE00 445C1254A6DF852C1A03C17306FDAEEA 000400000017FF00 FF1F72390955A84E25F2008BF56516FE 0004000000180000 E8E578F4A98DC4248737B116F65D7CF3 @@ -696,6 +712,7 @@ 0004000000194800 BCA1E2DEDFDAFE37DD712773B1048665 0004000000194900 696E0293917FB798C89E586EC04FA139 0004000000194A00 56734D7204B8ED921DEC8820E4B82B81 +0004000000194B00 686DCA12375582F54CF9DB8CB416E97D 0004000000194C00 B89CF820D395B7A5E6FA48820DF5415A 0004000000194E00 BD2D2753825F70BCB726F00D0BADBCA9 0004000000194F00 17F6077F9443FC9A3867BAACFDBA9E87 @@ -717,6 +734,8 @@ 0004000000196A00 1359EFC41E1F9F6A361D6219500835BE 0004000000196D00 51A1D0C880A5DBD5F76EF96CE4C853C4 0004000000196E00 D9A0B8D8C4BC370BAF71B9104BD82AEC +0004000000196F00 288B74E06497CEE450E95F42C13AA1A0 +0004000000197000 EDD36E7479235F3E42F09DA1A2CEBC70 0004000000197100 840719FA61AB521E75EE3B984AAD4809 0004000000197200 029EDC45414F51BEBFC123D6DED85268 0004000000197300 274857FD93FEC3C6B75799E22CA72B8B @@ -742,6 +761,7 @@ 0004000000198900 747DB0F366FADBFE4F0603721EC8B11A 0004000000198A00 F8CD2419A715D098D661898ECEC1AACB 0004000000198B00 92D65F7034526AD1CD810AEBF5AAB094 +0004000000199200 623C79E8D1EDDF4D0E36217FB6AA2DDD 0004000000199300 4968A81A8F1C37DA809BDC52800CA02E 0004000000199700 7D5A083E06B6D90BAA75B86F104EF589 0004000000199800 00944C54BC2A9C0BA23ED5355E110B3F @@ -815,6 +835,7 @@ 00040000001A0500 4A3B1A299CE59BEECB8B52E1342C173F 00040000001A0800 B6B2A27974BA8BCADF907C18090A283E 00040000001A0900 6CA404F2BC367916D6908A33BF4138DA +00040000001A0C00 F465AB43C8F6E316A1CF6FE462D71A31 00040000001A0D00 751388E8DAAD864B1B35ED8787E46BCB 00040000001A0E00 C532515B792A49F75F6DCD6EBC05CA2E 00040000001A0F00 530FA5F537B39536A110A757BB106722 @@ -829,6 +850,7 @@ 00040000001A1900 3F2C9C2BB2B98E0E906CBAAC46DC58DC 00040000001A1A00 B4109265CDAE6842E0C5142623160847 00040000001A1B00 4A9C05EEBD7076F0A6B96516C9C14DD6 +00040000001A1C00 9953AF28BA541B6CEBF47E11917C4B8E 00040000001A1D00 5E68E4E5D6BF1FD9AC57E30C89D9D073 00040000001A1E00 FA5AD7264525B57614A424002F35B3DB 00040000001A1F00 042382605E514F8791D115511F8AE0B5 @@ -866,6 +888,7 @@ 00040000001A4400 FCE7A2E713DDAE9339A361BFACF07417 00040000001A4500 CF8B802E66C5181B5925BD57085A4265 00040000001A4600 D807C404148D3DC6A710CC3CD92C0CFA +00040000001A4800 4EE3C4B35D9EBDCEC8125357C56B818A 00040000001A4900 56219294E1CB6F3C1FB701A5EEDC8096 00040000001A4A00 600E0C2417B97830238FD353CA6D6849 00040000001A4B00 97672643126AAA0F5CF2E5D13D13D126 @@ -908,6 +931,7 @@ 00040000001A7900 255BC33D0F5863A88C5A4FD663E370AF 00040000001A7A00 0E9AB2CFBEFDCFBBE13FF9E00AE1C574 00040000001A7B00 0CE2A36FADCFF446B7C93B9BC392921A +00040000001A7F00 7BE1EFED53F802CB22568BC64034F5A0 00040000001A8100 F95BDAF2858515A80751B10D82CDA2A3 00040000001A8200 96C35058EA7F1F1FD47D072848CCCFDF 00040000001A8300 DF2DE5A16F8B9DEEDA8F72330C083691 @@ -922,6 +946,7 @@ 00040000001A8E00 5DD7AFB75B693F244C6594F83493D858 00040000001A8F00 6B2ECABBA0D063C4C9D65E01C417A6F7 00040000001A9000 774D53112124FFD4F6503AB6FF9C2FCA +00040000001A9200 A8B593F93D20CCAD4960F27D41C74FA3 00040000001A9500 B0C699D653733A8A7E0A3887E46E50D4 00040000001A9700 57816EA34523514CB79440F08B21698C 00040000001A9800 CFDBA988D008D1CFD64A24A394F86237 @@ -974,6 +999,7 @@ 00040000001AD200 C474A5B67299E8AFAE09F77D91545C75 00040000001AD300 F0633D70F726463842728D4F781A7843 00040000001AD600 9B9488B79C677765475CB93C27E6F8DE +00040000001AD700 BB3BDC1A6E6FCFF6F854CFF5813AADAF 00040000001AD800 5837333920624AE3454449FD90FA0509 00040000001AD900 58B62A5DC919035E1DFF209F3670A388 00040000001ADB00 CEA6F289ACE875298F79A994010F8642 @@ -983,9 +1009,11 @@ 00040000001ADF00 5FF552EFEA3C26223C2423DB4B21631B 00040000001AE000 8648751A10C067EB6B4E117D9BF1CBB8 00040000001AE100 AD2173FEDCB540970694B764E1014C2E +00040000001AE200 B7F59D2237AD915998A426DCDD9F5562 00040000001AE300 4855F7EA66DC1DC7F5A6A6E729A1ECB2 00040000001AE400 79E613162A987E23442F7CA066D89278 00040000001AE500 E2515E59E541221BD3D878A9D0EA76E2 +00040000001AE600 73A2AD0B22F33607916E50B432055A20 00040000001AE700 5BA660A9EAA4028759FA5F6EE4FD239A 00040000001AE800 E6B074B28CCE38568FDD2DA72F083731 00040000001AE900 D2AF1F79F350380C0C6CAE562EE3E3BB @@ -1001,7 +1029,9 @@ 00040000001AF500 99DFA837F9AE1C21866BD0B13B98AD28 00040000001AF600 68779EAD8442EEDC95922B9A5640F55A 00040000001AF700 0EBB4499C6B6284509507CE9254B56DA +00040000001AF800 3A88447DED4D3BE3BBA238518B20B489 00040000001AF900 5D4CE89B68FC1CDE3F1514A2DD4C4544 +00040000001AFA00 761503F8B5774D2D80B507AE3B3DA648 00040000001AFB00 FA377CA2A961A54B908A2A634579F832 00040000001AFC00 6BEECB065D3ED94608593244AD82CC3E 00040000001AFE00 E215D9D378FF9276EA5D6BF43C84A6AA @@ -1030,6 +1060,7 @@ 00040000001B1600 A3F4B24E5F37BAC1A61AB32EA075EF0B 00040000001B1700 90D5EF79C99371956F02B91E8D17BAF6 00040000001B1800 5B0ED24B543F3152DD335D464A9882F1 +00040000001B1900 CAFD60CFA0BEE3B831857E7D5707F10D 00040000001B1A00 3927B62666EF234B5762EC2BB54F55B8 00040000001B1C00 1C47CF42BB107EB33983A59A12C6A7A6 00040000001B1E00 E6C657BA2E646A690A3CD70CC2753946 @@ -1037,7 +1068,11 @@ 00040000001B2000 ADF1E002564877FB89881EF79123DD86 00040000001B2200 648ABF2C94BCBADC9DD51A36A71F2299 00040000001B2300 F14EF3CD5AEA1150C8F75D212D407A69 +00040000001B2500 88D480E12DC8F8564496DC7AFCA71509 00040000001B2600 EA83034DD9AF304EBFB5353FBAD9C554 +00040000001B2700 571BAD51EDF0BC8E51F8F5C2BAE1A0EA +00040000001B2800 1D665D86B6F6C787CEC6C743F0B21E4A +00040000001B2900 E103A4F7441792EA5E5480AD42708FD1 00040000001B2B00 D0A58D4E1941B87F54526223C62F24F6 00040000001B3200 9874BC13DF0FEE3850428C9C982398C2 00040000001B3300 EAB53133066B741A6EACA991C625EA06 @@ -1046,6 +1081,7 @@ 00040000001B3600 28613E569D9AF29A358A4E917F9E72B8 00040000001B3700 32F94503464AC969B58A9A22028018D3 00040000001B3800 A2055963E8F7220206540013AB218D7B +00040000001B3900 21FCDCAD34FA7E1F62B2C252D4BF5D99 00040000001B3B00 0364F1DFC91FB212EAA3AA0EEF6153EB 00040000001B3C00 42FCD7FAD65767D0E8AAD47B8126B1D3 00040000001B3D00 D72620BA0EC3A78207704ABD397AF71B @@ -1055,14 +1091,18 @@ 00040000001B4100 5CC8CC6387FC8B0E8229FD378E080D98 00040000001B4300 B0F9D6DC8B3A0886E613F875062A7155 00040000001B4400 5E2EA76F1C8D2E2BA3446B3AA3C8E8B6 +00040000001B4500 3D2CB41DBF18ADD217EF9E6F048F74D7 00040000001B4800 7D78F48BD96531AC792BFAC5814770FB 00040000001B4900 3D83CC882EE27766B1640F1DD3CD92F3 00040000001B4A00 D9DA80BA618269AC1808CBF0B2C198B9 00040000001B4B00 74E6E4DEF1ACB1E233ECBED39DEA49F6 00040000001B4C00 12F888C8EFD74C8CED8861A917D6931A 00040000001B4D00 200A343C67C4F2BDAA7DA87FFF631BDB +00040000001B4E00 9C07CC685CE6470DE6C9862D68A4338E +00040000001B4F00 E596476C644A1CEF6A36672BB7F71861 00040000001B5300 9866DBA69AE7BC584EC633D934E8432A 00040000001B5400 47C083301482CE67C462AED6495FA44B +00040000001B5500 EF78AADC44F951FDD0F75CE45AA9FFD6 00040000001B5600 E18E763C78B506335BFEBA8D1E1BE3A2 00040000001B5700 81FE4F3974E3FCC2E41D89A89100F530 00040000001B5800 B5D3BE43FE03061CA9FC2BA3A79702C7 @@ -1076,6 +1116,7 @@ 00040000001B6200 4F0CFEC436D9CAC727130F02A4B63C10 00040000001B6300 EA20BFBB7C463394A8C2A5FB57F9CA44 00040000001B6400 FDEE02531450432E6713493A44D9C915 +00040000001B6500 D43EB55494A787E12CDCE89A7B406623 00040000001B6700 4645394ED16726AED239419A3D6F1D3F 00040000001B6B00 37DEB35257A326CD0D2F0100F58F8775 00040000001B6E00 D6C19A5012111C5C263A6CAF4D7F6EB2 @@ -1087,14 +1128,22 @@ 00040000001B7600 0C3E9EB575B3EF7E668F94EBACB95FAE 00040000001B7800 616495D32C1CD16A66A129A4A5B5EBBD 00040000001B7900 DF9A5E33BE6A61091E045BB44DE6AE60 +00040000001B7A00 77707B7E4667C3B255C5D0622C9B6BAA 00040000001B7B00 C57A543C57171C53FF8A45535F489877 00040000001B7C00 3F608C87A7C464E9F633C02D696CE799 +00040000001B8000 AE4685C2E971AF23A9B78D482DC05E1C 00040000001B8100 6698A2E2932FF0A80BEAAFAF285A254C 00040000001B8200 31EAB11FBB308282ACF522A8120621EF 00040000001B8300 06820591168AE59CFB76699EDB124B2C 00040000001B8600 2C2AC69D04BB08888FE830F14424B852 +00040000001B8700 26A22CD09E64BD4719D7E9FC5A46BD99 00040000001B8800 283544D3AFCAC3980D3623EC3891CBAF +00040000001B8900 3F38481A59327B2EABFB441CB01FF732 +00040000001B8C00 6A3B030F80AC7F54FE4EA094C56DF9EA 00040000001B8D00 C19F11C6D1EC541291809E19A2616D94 +00040000001B8F00 EEC2D13AA0F1854B2A90EC68E0BE38C5 +00040000001B9000 D797BF8D11818B8FBCDE69AF744A0959 +00040000001B9200 4A316FF1B8AB593E48A57D0FFCB6B0FA 00040000001B9400 93B8E540A4DC821ED2B774324310B7F5 00040000001B9500 9F9A1F8333CDAD2114B0B638AF6E4E9E 00040000001B9600 21FFBAC65208BBCE5B69628FA10BC0A7 @@ -1104,6 +1153,7 @@ 00040000001B9A00 DD356504E33784938BC15F68A3333E57 00040000001B9B00 CFF8A6288B683F59102A40F86989E07B 00040000001B9C00 8FE5B94F613527E68BB7800A2F77058A +00040000001B9D00 9E93AB878AA45C46044E9BC4EB157D9D 00040000001B9F00 F2C2D4BF9CFE9B011DDFB9968038BE27 00040000001BA000 081D6B80CCED6A676E8EEA00E4A9F495 00040000001BA100 F95B9056609E705C8D91119DCE0E1BC9 @@ -1119,8 +1169,10 @@ 00040000001BAB00 698CB9CE766A03E56A91B4DD7A098DB7 00040000001BAC00 87A91561D0E17361DC92E79596353B7C 00040000001BAD00 4D989FC290BED8AC4E25616B433AFDD9 +00040000001BAE00 D620C43D13DBD86A0C7A2D2A98CB62A3 00040000001BAF00 C3DA191804575B110D5D99F6584EFF0F 00040000001BB000 775B7575FEFAEE055246B8E38A20C781 +00040000001BB200 EEC78159FF000EB2E73409A78D369092 00040000001BB500 79FC937BBC6369D130659A05611C7342 00040000001BB700 7DD5FA1567C16404FB1748A5E6DDFA78 00040000001BB900 A13B9AD3D6DFE5271E087670791D567D @@ -1128,32 +1180,48 @@ 00040000001BBB00 BAAA1A16ED82FB5640DB9743588F6C1B 00040000001BBC00 5D75A882911C992BCC0642D4FB7888E6 00040000001BC300 6BE783862DE044CCEDB97A4D19CF2E56 +00040000001BC500 E893CAE412B6CA4D52DD222712F62A47 +00040000001BC600 B766D7A3F1F26A024A5E35A3AB1B5CE3 00040000001BC900 14C05B349B05DBEC7244D56F00802A2C +00040000001BCA00 9EFD139CCBD4063F6816C9CD88C2D3CA 00040000001BCB00 C86C077E226375490F01C19F66EB5F67 00040000001BCF00 7B2BA41A027B35691C3453B8CA7C6E00 00040000001BD000 47D2D7F09A0E51E1AAC9745354AE4361 00040000001BD100 677AB1AF282C4A3FC86017D64682AD7D +00040000001BD300 26EB5D243E7F70B8F76D1CF2C1AD664A 00040000001BD400 EE6709A1A5A81B589D4577A8973C5876 00040000001BD500 323111F6E5EE9AAD8B9EDFF37611445C 00040000001BDC00 A74006499AF6E0D9D33BCFBBD4CAC915 +00040000001BDE00 3A87C1B9537318C72E0206305011031B 00040000001BDF00 4A74072E3E30928537EFE930E1D630C7 00040000001BE000 D2AA8C945D147E20A946532AACD4C513 +00040000001BE100 ED3F7C4D4052921BA0AFD3009DD0C08F 00040000001BE200 86DE6793768DEE3D39390549C326F0FD 00040000001BE300 F58F2EC189C17A5220108BC0CC64E3AF 00040000001BE400 4B506C1F6F1C267409F852110BB9C80E 00040000001BE500 D77BDBC3DF1B7E37B880410C9ECF74FB +00040000001BE700 01D2C6EB5CF7EB07688008995D369F59 00040000001BE800 B705E111ADFFDD4F8FBAB635BC8951F0 00040000001BE900 FCC9D527130E5C59F5944612E573BD52 00040000001BEA00 B320916DFB03E303E325A3CADB96CA54 +00040000001BEB00 538461E1B7E11FE52783FC8211E5DB92 +00040000001BEC00 DA00A23816A93953DE2B0720318E784B 00040000001BED00 154E552C7D317AAC64A56989328430E9 00040000001BEF00 DF79FDD4650EFF666D68C485C742C6AC +00040000001BF000 081AE7763D4DF3A708CCC953C5BBE060 +00040000001BF100 E22A40FAB4CFEEE775DBAF41D4B73ABE 00040000001BF300 6918C9E48CC3B7A382854B0C6EF80CAA +00040000001BF400 B540AB667EB5401C6658B10DC1AA8ABA 00040000001BF500 0044A7A320DDA93BD358522954988BDA 00040000001BF600 6050D86A7D14275EE52E638AF29A568F 00040000001BF700 CE7C362DE48260D5771F999CB67DB420 00040000001BF800 278F7B6FCB593F1476018D08ABFDC72E 00040000001BFA00 E7C273822467D40A0FF588CE2DF4696B +00040000001BFB00 E2BD75FB062545821A24106F0F1433E5 +00040000001BFC00 4C083614BE1A6FA5689B9D8D08EA91A5 +00040000001BFD00 20C157E1BFE759BB56C07A856BC2571D 00040000001BFE00 530E99EEAE3376EFD59CB49312BB6C82 +00040000001BFF00 C2B507F5B6269A644B82370070B44F72 00040000001C0000 4CB331CD6598E68C7C3F7AE97C355FD8 00040000001C0100 FEAECBF90DE9B9A23A6F705BF29F94A7 00040000001C0300 391EF6E5094E2B543544C72FA786D933 @@ -1161,18 +1229,66 @@ 00040000001C0800 11B5116D0D352DA9273CC1F5285581AF 00040000001C0900 68983CB2C595FCA3437E21A450EC7961 00040000001C0D00 10D3EC899520A290B36CB2C03D2F6F96 +00040000001C0E00 3965CADA8B34D1DCB93733EF7604B0A0 00040000001C0F00 008BB1FDEF704045434C9933B0DB69B9 00040000001C1000 FB31AC5B4AD4E57873DB11D3C9468DFD +00040000001C1100 CEA5D2420231AFE01D263C8238AD59BD +00040000001C1300 240641612B7EB427CCD63A9C4F91D928 +00040000001C1400 2DDE22858B79645F74CC283E8DC1353C +00040000001C1600 457DAB50DFA15A5A594A159F31B0F5A5 00040000001C1700 4BCE02ADE612E53C07664A55FCB107D3 +00040000001C1800 3D6FD0FCCF1503A5B023D5ACACE0B310 +00040000001C1900 19B9AEE5B914F9ECAE44B3509CA3C822 00040000001C1A00 841B2AC0890599A9960FAA3049BDF461 +00040000001C1F00 0680EBFB1C9F18F25C25BBAC2B2E3C50 00040000001C2800 971B955E2E9E4841FA704B89CB0ED100 00040000001C2900 2C48D6B198F71B5EB9BBBD0EBFE88B7C 00040000001C3200 8C036358790BCE23CD38876209CD82B9 +00040000001C3400 D9D4506719C5A95BB69B1F278BC72C74 +00040000001C3500 86C7A5C182BE6DE98F6CECBA0D7B42AD +00040000001C3700 D9AACA858E44538A0138F24D3ADE8430 +00040000001C3800 E9DFD1BE24260468B2B8074461EF765E +00040000001C3900 D068A0E7FF8D635794B12B3B01F85258 +00040000001C3A00 35F8ECD875D0E1BDC2B67C40A6BEEEE7 00040000001C3D00 1FEFF923DA01C8A3757C063DB6CB787F 00040000001C3E00 093CC66F79293DF4FC7A3B6D4BBED409 00040000001C3F00 77CBE7BA8B0AADA3C2AC6EADF8708FB8 +00040000001C4000 BE70FEB7A777178C95EF8F60ECC2AB78 +00040000001C4700 02439B9CB58887B32740552525CB6BCE +00040000001C4800 A659B95593D7FE4ECE43B1A6A728B476 +00040000001C4A00 22D333CE4418BE51D90834BA42CF572D +00040000001C5000 B908F1D55D62718C3093900CCD8294A5 +00040000001C5100 92DCBD85F1F83B52BA1BF281992B3278 +00040000001C5200 6E7E08FF45671BB67418D31FD8A8EF29 +00040000001C5300 CBEEFD99454240A4460273C9CB95EBD9 +00040000001C6100 A3950BE92FC669E9A7FDD81BD4FDCA16 +00040000001C6400 B67EC87DAAFA48AC4BD6B790A19E212F +00040000001C6500 6D8F75B39F62D5FCECB0DE9B2BA189F6 +00040000001C6700 5B837E1426E4AEE140B6EC61B37BD8CF +00040000001C6800 362EE9F31B887DB8BB886DFA3B932F55 +00040000001C6900 B8B95C723E8E97543F8806C4FB861EFC +00040000001C6B00 0D3F984D2462E853ECCCCAFAFC285F80 +00040000001C6C00 B85ABA102A48D559F7E63C36B33EB397 +00040000001C6E00 A01E3EEA1908BFB83585722804875CB0 +00040000001C7200 7AA960471D21D481D54B72E9BC616731 +00040000001C7300 02E06CCCF83F612704B4BE34096F6CA6 00040000001C7400 9C2C38F9963BA6F305AECB873FCDB7A6 00040000001C7600 6A35B80BAE18A1491AB80F1C0BF60E01 +00040000001C7700 CE6C6CE24204B35534FA8AB1603BCEAA +00040000001C7900 3D90AE2A84F17E1FFC91F702E1DC7B78 +00040000001C7B00 31F02A1261AC885FCE3386F26EAB6E93 +00040000001C7D00 6BCA8B2BFB00445E560E2858C5F9478F +00040000001C7E00 9C63AD66731B3ACD47804025AEF5D57F +00040000001C8200 E093B5B390DC2A7A3840A622CEDB6DE6 +00040000001C8300 A8BE57F742FE3C0B1BAAAA686AB8F6CF +00040000001C9200 52C38F38E4559DF9F6B51A64F64FFD2A +00040000001C9900 9FA6D7538F0FBFBB66D978E16A7799D1 +00040000001C9B00 12A2E231BD0A3EEE1DBCA7EFD4837F6D +00040000001C9F00 DAF122F1D3B976E26C023A5CDCDBFEE0 +00040000001CA800 BC766C1AAA7AD881F3705B894240D727 +00040000001CB400 F967EB6E57FAAAB9B0CEC33F76F8AD6E +00040000001CB800 1FBBF2D59FBC81943A624DA34FEEC162 +00040000001CB900 6F0311322FAB582D51993568DED3D7E8 000400000F700400 0D65CBD40F2728586CA4DAE3B8681313 000400000F700700 C6EE84F157E15E8B7E716090D2ED5DE4 000400000F700800 9A83F7FEB62E8D9AACB5AA7761A00590 @@ -1231,6 +1347,7 @@ 000400000F704300 FEE9D496D06EC1176CFB37113AEA187F 000400000F704400 7BEAE59C0332F4DCC6A54C7BF901688F 000400000F704500 388A761129E2B3A64D8AB8104B6DA7B5 +000400000F704600 ADC4AA53FCD6CBBC919858885CB4FC02 000400000F704700 6C9C765A20D0DA49F264B9437615EA3C 000400000F704800 CD8D33B9002BE27B57CBD51DB85FBC93 000400000F704900 41646D56E746B85330C5224CD2E0C320 @@ -1241,7 +1358,9 @@ 000400000F704E00 7E639DFB6AE7FFA6B67170AC053BED85 000400000F705100 D7041B45D4B909009C0F0236A6737EB5 000400000F705200 A8DA5C939834CDAC83A00B39B08558FE +000400000F705300 600722197F261FAC661F78229A9BBFC2 000400000F705400 371B18B77565F86D9E3B49D6685A6BB5 +000400000F705500 1E9F1E66D7A5E9B85C04F433EDF6598C 000400000F705600 18BDBA08452A4F96024CBDBB2E421049 000400000F705700 BCC8DF368F451E5D607E9EAA711FC74E 000400000F705900 90EB1DB6E4E58CE102A8C5886A6616D7 @@ -1252,6 +1371,7 @@ 000400000F706400 A6D1ED5DF09CC00E48901E5090CA9005 000400000F706500 4BB9A5BC8C48992F35DA3B685200BBB1 000400000F706600 5E8B9A1F0754C12559C5CECCBE2C3652 +000400000F706700 16434C99581576B41D856FBBB03BF050 000400000F706800 B4107008F7444B3130A861EE89E1F243 000400000F706900 97B02F129B0DAB829ADD5F18532FC641 000400000F706A00 8DC2D905F0BBAD4642F12276AC3B37DE @@ -1260,10 +1380,19 @@ 000400000F707100 FA5DC114BF359E4B388303A52F0E0757 000400000F707200 BA3C8ECAA87D01860E128AF657F86AF4 000400000F707300 4D4FAA145125DD1DCBD8AC7895CD28EA +000400000F707400 426EDA0166AB84B975CB6C621A95037A +000400000F707500 C464EFF698D165DCADEABB502644DF38 +000400000F707600 5C045B3A536F6C883029D580265AB861 +000400000F707700 DE532138ADFF4AEDD3843FD436831099 000400000F707800 0AFA7340A06E5DE99CBEA9EE0D586260 +000400000F707900 229AE8A205010C5762B88D779AA46B42 +000400000F707A00 AA85679FCCBC219D804AE6D76F911FD0 +000400000F707B00 64B48E21BACAF6D3558AEB08E5AD4278 000400000F707D00 6750D03BA4F8088D5DAF400C7C33DD2D 000400000F707F00 26EEC7E16F0FF0F77B7C06514AA14422 000400000F708100 37C442B21341D32CF4B8510BE5823FC8 +000400000F708200 408A2C41DEAAFA7E44B254DAEC738C30 +000400000F708300 1AB397DFE81EF13F7284D650C430D998 000400000F708400 308060DF0C3F23FE9C6A8F64BEA99A30 000400000F708500 12C2344D8A496E5CF070DDBA8972830A 000400000F708600 0C6E8DE5DA06CAE346D1F726A86C8EA8 @@ -1308,10 +1437,28 @@ 000400000F70B300 B2E4B633593C5338A94B5890ABC6C7DA 000400000F70B400 B7F3015B66EB3C11A82E0D346FA11613 000400000F70B500 4F4A835986AD545234044F2BAB4EAA3B +000400000F70B600 39CD479F52A3FD49DB9F46C24C0DC43B 000400000F70B900 80ADD11A98099918CC0B0855A7F19EF4 000400000F70BA00 BF1154838AB5EA6109E7081A6FC294A5 000400000F70BB00 BBC273B4A6CFDB96659CA29207BAE08F 000400000F70BC00 69613647FABF0E9F72BB026E0DFE96E1 000400000F70BE00 EEF29C18D6D67F4A05E7B59E427242C7 000400000F70BF00 3506A33AEAA816CCF20CFE03F4F6ED58 +000400000F70C000 AF7A13018EF0D3C8020E42E48ADB6C7C +000400000F70C100 C2B7A92A03785A8978512B31DF69508E +000400000F70C200 9A6971F663F781EFAA3F9191D9855F48 +000400000F70C300 DEC69CE74190C4E801DC441514FD4AE7 +000400000F70C400 1CF6AD4F172BB6E86BFB0136E172856E +000400000F70C500 AADB76A06EC337ED572C4775C3D9D589 +000400000F70C700 DD5068B175857B768B2BA9C5551FC9A4 +000400000F70C800 0ED531D0438958D4FB56621ECF2F2E07 +000400000F70D200 F914FD79DA37E6DDAC0AD754693F813D +000400000F70D400 14F2FA1C32420881359715545AF4F18C +000400000F70E300 0C45F336756E400A2A491506DA7E79A7 +000400000F70E600 1AB85FC0399E96BB3935E2F185C8CE5B +000400000F70E700 C8DD3558615621E49E1CF89105B0700C +000400000F70E800 19E171D07273920A2B3A2A6B9C301049 +000400000F70EC00 89672B9654F4BBA88FDBD0D6F6434897 +000400000F70ED00 1D720474DFE78CDAD141BBAFBA11165A +000400000F70F000 CBF11B36755CD1C72BD508D1FE2A2C07 000400000FF3E300 AA9B98FB66563D5E847A619E4D03DF15 diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 8e52373a..4ac1d83f 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -2,6 +2,9 @@ AUTO_FILES("." "src" "\\.(cpp|h)$") include_directories(${DEP_INCLUDE_DIR}) link_directories(${DEP_LIBRARY_DIR}) add_definitions(-DSDW_MAIN -DCURL_STATICLIB) +if(APPLE) + add_definitions(-DSDW_XCONVERT) +endif() if(MSVC) string(REPLACE "/MDd" "" CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG}") set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} /MTd") @@ -22,7 +25,7 @@ if(WIN32) endif() else() target_link_libraries(3dstool curl ssl crypto) - if(CYGWIN) + if(APPLE OR CYGWIN) target_link_libraries(3dstool iconv) endif() endif() diff --git a/src/romfs.cpp b/src/romfs.cpp index 2bf90252..022a3a94 100644 --- a/src/romfs.cpp +++ b/src/romfs.cpp @@ -435,15 +435,19 @@ bool CRomFs::createEntryList() { continue; } - string sNameUpper = pDirent->d_name; + string sName = pDirent->d_name; +#if SDW_PLATFORM == SDW_PLATFORM_MACOS + sName = TSToS(sName, "UTF-8-MAC", "UTF-8"); +#endif + string sNameUpper = sName; transform(sNameUpper.begin(), sNameUpper.end(), sNameUpper.begin(), ::toupper); if (pDirent->d_type == DT_REG) { - mFile.insert(make_pair(sNameUpper, pDirent->d_name)); + mFile.insert(make_pair(sNameUpper, sName)); } else if (pDirent->d_type == DT_DIR && strcmp(pDirent->d_name, ".") != 0 && strcmp(pDirent->d_name, "..") != 0) { - mDir.insert(make_pair(sNameUpper, pDirent->d_name)); + mDir.insert(make_pair(sNameUpper, sName)); } } closedir(pDir);