-
Notifications
You must be signed in to change notification settings - Fork 0
Official TMD Hashes
pyorot edited this page Jan 14, 2025
·
4 revisions
A list of TMD hashes of official system titles (00000001-
titles on Wii and 00000007-
on vWii) excluding the System Menu, generated with a script using libWiiPy (included at the bottom of this page).
The data has format titleID, revision1 (revision2), sha1-hash
, where revision2 is decimal revision and revision1 is this parsed into hex, split into xxx.xx digits, and either side of the dot converted to decimal.
= wii system title tmd hashes =
--- wii ---
1, 0.04 ( 4), 1d324611369c88460f302dae5209f4ae176a54af
256, 0.02 ( 2), 003b2e893023ea81af8940ba2d47647cb9414a6c
256, 0.04 ( 4), 9df688f8506bebd2419aafbe0659f05b4d94f504
256, 0.05 ( 5), 63a18a8b5c47b7e4359a74df65e647ac33b267c5
256, 0.06 ( 6), 0bda4e01d075916e99c1a874354db2ae11831d5f
257, 0.04 ( 4), 2c683fc714a8bb2d682ca5102448b41921aac5a8
257, 0.05 ( 5), 31ba29ea1f229fbf0c6cc4dacf2469aa1b066b98
257, 0.08 ( 8), 3255298586d41891c1bfcb1470184aba0aaf7eba
257, 0.09 ( 9), 2f714a7b9ad8b87ce6659232c83a644816124b18
257, 0.10 ( 10), 129b91b6ff93354fe8be514e187a3929ac26a9e9
4, 255.00 (65280), e465142b57955f7da52617b9f79a0067d8c943b6
9, 2.08 ( 520), 45819b8925cf22e6bd9cafa72c269e62897cb125
9, 2.09 ( 521), 7238a3a1e277ed95aafa553e4f5165750be01e47
9, 3.10 ( 778), bc090d254bcf72028fea141b75ff0f8464d27e90
9, 4.10 ( 1034), c6ab909b6841bbd575f50b756a33c69509e03b52
10, 3.00 ( 768), 59c468b073874de325f582865e067bbec82de307
11, 0.10 ( 10), 4483caa89f951f171931aee0b4ce4df505cf692d
11, 1.00 ( 256), 6eeef316fb936458ed05d886fe76155cfa5791cf
12, 0.06 ( 6), 6e1e10bdf31556dcff079cebcdb66dbcc600cc66
12, 0.11 ( 11), 1eda9d6e6457344868df0fb16ad29af36b7d8341
12, 0.12 ( 12), 16443da0e8fc9914a7fbd0a0dcf263831537e47c
12, 1.13 ( 269), a051cbe060f958406b3a86935cccbc17ad31ccf9
12, 2.13 ( 525), fb3f2c1ea5320ed4b1d21ac7c77d00a72ac511d5
12, 2.14 ( 526), 552f62e7987311f9ef663145e4473d2a9639718a
13, 0.10 ( 10), cde62038ca4790bdd25dcd7c3e046064a807527a
13, 0.15 ( 15), 7eabaebfa57496a1929020bec641b93191cec719
13, 0.16 ( 16), 3dab279523d1db9b25967e6aaa7109a67c9d1a5c
13, 1.17 ( 273), fe7897b69db43fcadda408d6e9ce47c206ea23d5
13, 4.07 ( 1031), 9c22eac31df31c06ad0f1f8dbb0708f4754fcb5c
13, 4.08 ( 1032), 100cc671a6ce3c5ffe5990476326b9766f43fe2e
14, 1.06 ( 262), db7cc4d5d8cf4c53577c03740933571c0e657a0b
14, 1.07 ( 263), 2cdc4953a0f10dae0909621d3a3279f819671ec1
14, 2.08 ( 520), 0ac398f468f0f2baf4d377c6e2e6db3626008b9c
14, 4.07 ( 1031), e02af898c9e117bd268d7de66ba0dfb651869d5b
14, 4.08 ( 1032), 16af1a5aa771e53b9173f7ffe53e3ae06dcbf762
15, 1.01 ( 257), d6127cb9bbda03a43f4c9b13120298bbbf2b314a
15, 1.02 ( 258), 9d9c04be350be3f7a496e52210920b9aebd23d68
15, 1.03 ( 259), 2b8ec63d13cab9cefc865f20c7521b71895dfa5d
15, 1.04 ( 260), 169980edd5f69c9ceb82bc65b2f4263608520ceb
15, 1.09 ( 265), affec52cb9f029ffafde816dafadffaae9f81534
15, 1.10 ( 266), a94fb180b13afd7326fe3c7c0d398e1a32717677
15, 2.11 ( 523), 213f0a20b56fec5e38ecb53ffafe5fd5ba2a8f4d
15, 4.07 ( 1031), 890bc66ea43f9c810015f87fc12061b52c1bafb8
15, 4.08 ( 1032), c04e9104917f56d6cac074cbe0a76f2410d930e6
16, 2.00 ( 512), 3f73c30ad85ab73ba4b84b8563534fc288c2be5d
17, 2.00 ( 512), 05045cad5e514b112dfba9f0d6eb0d4ea1a917e6
17, 2.05 ( 517), fcd500f6c25c8a401b3f699fee1e4e7c0e2e9517
17, 2.06 ( 518), da8f86615f879c82f1e33281470ae0e33759745c
17, 3.07 ( 775), b46f1befd77e9c7ea7595bc8a13e958512302728
17, 4.07 ( 1031), 176cc677bb82be2be6f93899584d04c0ec1c0b95
17, 4.08 ( 1032), ff4bcce15a7138afc57ddbecb99fc84751b8fcfb
20, 0.12 ( 12), 50b89b9a3139d18125f4c3c4f87da9d2c1f3c710
20, 1.00 ( 256), 589af8795fbadeef7afb1057e4f7e9683d3d730d
21, 2.02 ( 514), 6edbc1393d689833a1f84f508b4a5a07b1592133
21, 2.03 ( 515), dde5ea6a6898c3e057cb3053520a20357a072fb4
21, 2.04 ( 516), 862a29611a52a0560211c75815bc092904a31af9
21, 2.05 ( 517), e82526816379fb158ddfadae4f1fd1ac69768333
21, 2.10 ( 522), 3e3a90220a3e1c519ec2463f114057621036a4eb
21, 2.13 ( 525), 95619f60f7b83cb249d5cda89bfaccccc7fa73cf
21, 3.14 ( 782), d287468a80b8aaaeecec46e8f5b864d3e29753ed
21, 4.14 ( 1038), 146d9e1a334c4fbfc18cf2b627f9a177dd83b92d
21, 4.15 ( 1039), 804937f7d3d49ee49828864e46e8c0d5cfc82b68
22, 3.09 ( 777), 2fe6fb9669ac7ec5424efd331ee622fc4ee5d174
22, 3.12 ( 780), 01ac5153562b1ccd186856a861b5e84641aa360b
22, 4.13 ( 1037), 3e8f258c59c9cd4fce32394c964c1190b9823420
22, 5.13 ( 1293), f895d87d4415db7cdde269d61f567446dc41704e
22, 5.14 ( 1294), 215b143282b912b2a96a2c2629ffb6cfd23b2a63
28, 5.12 ( 1292), ac077bc0e36460b4ded0f72d987e270e78ad48db
28, 5.13 ( 1293), a95ae403bb1959c5c3250bb76bb2d86e21290559
28, 6.14 ( 1550), ab16fa662de6e4d7df92edb6591beed985b47c28
28, 7.14 ( 1806), 0a869658f5901c9e47c4c3ba585b399d3fbd72f8
28, 7.15 ( 1807), 0247bf6dd732bc6624c15d1d646e17f0d76b94c4
30, 4.13 ( 1037), aba6289887da30a2108800dcbf46ebe6e3432adf
30, 4.15 ( 1039), 52922816ded2ba55232813ca1f5ddd0dd693fae4
30, 4.16 ( 1040), 997befd18c0e513eadd67a50294b3efb6fbb7c7f
30, 10.16 ( 2576), 0ba8e4a27c31dbf8c2bbe936af0a06009ad43de8
30, 11.00 ( 2816), 5fd69cdf8197c405a02a8419ae1aaf0fd9c09190
31, 4.13 ( 1037), 7dff2e682a972f3928c3148b241bb41cee6a6bfc
31, 4.15 ( 1039), 14fe88755c7d8257220562cc79826748b58a3d93
31, 4.16 ( 1040), 9794f914007cf5b5794cf39a452df384615cfd0c
31, 10.16 ( 2576), 8050a64039307fc2d73769204cd74117c0073d45
31, 12.16 ( 3088), 10341ebe24ac2a92067ea3dccf94a290eaa7ab6f
31, 12.20 ( 3092), 0f6a1f549d31ecd5f46bbb916649399d5cc237cb
31, 13.21 ( 3349), 15d666b6947125dfc03bb2372851ac040fed6123
31, 14.23 ( 3607), 37ba3a79429567e6c66521510b3eb46da0e7de37
31, 14.24 ( 3608), a81677d5e96cc79cb87aeda38e05591a72203d37
33, 4.16 ( 1040), 1ad9a3a3fcd34f9422aec35da58cf181e32da94c
33, 11.16 ( 2832), c5ecdcd27bdf859661e1ebc00454548e353130be
33, 11.18 ( 2834), 4de821e3cdd0e87db32ae62ac25ceb3559408482
33, 12.19 ( 3091), 377582f6b25e431b31d37d20e0c9d550604288e6
33, 14.23 ( 3607), 7cafd0ba880093dfe9b89a1e1e3f397c1feb175d
33, 14.24 ( 3608), f749b24ba847ac6816aaed027fabb3b494ec8e80
34, 4.15 ( 1039), 6af73c49f031069eb10ba9b59cc4569d03c34b1e
34, 12.15 ( 3087), 99452f4eee235555c3b11b9793cfe78c8027f0ee
34, 12.19 ( 3091), bfc16205d97d6cc891398359a27c7aaa5f37933c
34, 13.20 ( 3348), 5010cf4f82101363cae31c46d7358e6d7ac84030
34, 14.23 ( 3607), b2c134d0ac0ec45be11769a120de1d11b30105a1
34, 14.24 ( 3608), a53c53f2d5520ff4a8260529e7d079c585cdb27e
35, 4.16 ( 1040), f7fe51273e64e1b0b20b71aff69353112a4c1ea8
35, 12.16 ( 3088), cebcb283453d591e6df15c0649eb4d524f15376f
35, 12.20 ( 3092), 40de122c94e531348e1b02dd2d1743a0e83e188f
35, 13.21 ( 3349), 1152f20b854cbe4a4b0a97dbf5e73567ed305cdd
35, 14.23 ( 3607), 83675f7edd820e145af87ac0b4eae2add4ea0b96
35, 14.24 ( 3608), 8fd25f2de29a52cbcf9d6bc1d4ebec8dd3871228
36, 4.18 ( 1042), 771c6a91249960632ca7321ce16a03e23a5f061c
36, 12.18 ( 3090), 768754853c8fa2d146d34da63fb02c7f6bf575cc
36, 12.22 ( 3094), 1b91560a1b7aaa7f92c610bb04dce2f2c00651c5
36, 13.23 ( 3351), 0bb1bc80518b01473a6aea037fa361b6ff5b10a1
36, 14.23 ( 3607), 4e5371cee438e6bbef5b8ffbe629aa21afe170fe
36, 14.24 ( 3608), cf561d25854da7dbbd18433f05f512533ce24db3
37, 8.22 ( 2070), dc448cc3f7ba25238ee585666b980a1db05a8d4f
37, 14.25 ( 3609), 088b3b49400fc839e80af64621b211289c3cacb8
37, 14.28 ( 3612), 07a8bae20abae2e54421b7e89a0c7825ece74f4b
37, 15.29 ( 3869), 4105d93f71ddf875f51acd88cab57940785bea8f
37, 22.30 ( 5662), e0079f750ecfc6abc2f9611c85ba6c75bf6ae9d9
37, 22.31 ( 5663), db6e64e9b6ee7695ee5859c15618fda8fe805611
38, 14.26 ( 3610), fec3e30df184e5d7bf32fbbcb7baabca3bec0bdb
38, 15.27 ( 3867), a30dd2c657258f5665409d1687f0f304f9ff6f60
38, 16.27 ( 4123), 6e2f331404a5678ad45ebfaf90f772ad3c0587d8
38, 16.28 ( 4124), 2ab93bf4c29744c2cb7fd22470cceaede1937973
40, 12.00 ( 3072), 12edf6e17f49d4f9d2df525952c7954557a028e4
41, 11.19 ( 2835), ec0a2be988dca7394851ae550b7d14314b0f3906
41, 12.19 ( 3091), b7a3dd3ae6b5c3b075c53c20a2bb5fcfc46b496f
41, 13.20 ( 3348), 3cf0a1bd011b015043896ebc99b894f69f1fbec9
41, 14.22 ( 3606), 8a0a18e1d00ae208c3b7f4fe923c886bb182dbb7
41, 14.23 ( 3607), e0dafeb7745810b4cd2d180dc820f16d931a05ab
43, 11.19 ( 2835), e45c79e9894fde1aec3d77f873c0e57674a46025
43, 12.19 ( 3091), 8a02d2169e711529b4a8411b267d4eb3b17efe3e
43, 13.20 ( 3348), 3fcf8efcb1be57d36de586d38a59ca246467d828
43, 14.22 ( 3606), ceff88412bcf150aa03a6b59f6bfb8eb77d61273
43, 14.23 ( 3607), 7b2630127e4c1112e89f07f3fe467d0cf0e2a021
45, 11.19 ( 2835), 97ce8fe67825c4a1692f0249e027f79649cd33dd
45, 12.19 ( 3091), a20c902f89d21eb392467248d549165ebdf8f45e
45, 13.20 ( 3348), afbf85ecdd9db6c8265c765e88bb4654aba743f0
45, 14.22 ( 3606), 08902de754258e1f14ed01b9f25bb1f24a2f5b90
45, 14.23 ( 3607), 2e4170da3188ba6788f610231765e8fc31c66c2c
46, 11.21 ( 2837), 05bfe4557c896a15d5b2139b0e2a09de71e6b43e
46, 12.21 ( 3093), b39e1e8cf83b86f05238cae43c56eae8afe0d9a5
46, 13.22 ( 3350), 133d9a4b7d20544b2008b4d8b6ad8e8b957a10be
46, 14.22 ( 3606), e62d2203b2cdcadd765fb119eb94492d98c7edf0
46, 14.23 ( 3607), caf1c43561fa3ba0ec289f26ca0c8a15ba17243e
48, 16.27 ( 4123), e2cc2050e080474226600e1d7b49c7faa8ca6d64
48, 16.28 ( 4124), d24dc44a5c4d97336c59966093038d384308b129
50, 19.25 ( 4889), 9340fd98a25133b6e314ce6ba729257f56b17f85
50, 20.00 ( 5120), b21c7e5a16be62e3b629f0cb108219517eb63057
51, 18.25 ( 4633), 9119ded24b5e34da06d4d77968b087a9f2f4ce1f
51, 19.00 ( 4864), 3c0682022006c1b640a0c82f5bd0436b9d343e9f
52, 22.29 ( 5661), f04f3ab900e687f934e34f82998e681eae05761e
52, 23.00 ( 5888), d72a83627a40c4854e27d812720d49f1ef2b4a4f
53, 16.17 ( 4113), 0d0a3df4f842d77fb8b0c7055ab7b75aa3065b95
53, 20.29 ( 5149), c38519cf7e117f666f64089b8be586da9a95daf2
53, 21.30 ( 5406), 8add9b1dea16d4ff3ba2b5ad0c64800695aa8a87
53, 22.30 ( 5662), ee4b066526012e089fdf46b3dc6cfb5984939d2d
53, 22.31 ( 5663), dffa80d33812b69c5d5b12c57d51882f45e8aea5
55, 18.25 ( 4633), 2cb27ab1543cb709c0d39885e1b04eeebb617674
55, 20.29 ( 5149), d574ada642f13ec3dac2854dbc47026e6f55718a
55, 21.30 ( 5406), d8cc15724c1183413115261f0d4575b534b58b41
55, 22.30 ( 5662), e2d6abc51b51d0ed58c0f3d2d733c239cd8d94dd
55, 22.31 ( 5663), e4615432226e879fe10ff10ae5dfb6ca91d7a2e5
56, 19.26 ( 4890), 17b560ce0e00c8b5502818ac9557e752178d7f71
56, 21.29 ( 5405), e84086fb81ac2465e3d2b274b4f129b50588a659
56, 22.29 ( 5661), 5fd52dabe19eafb57b7ec433619768a8f6432704
56, 22.30 ( 5662), 1f215272bc788dee313679602ed75c30a1775c43
57, 21.28 ( 5404), 5b4e8539fad1c8e6c3f755167369bf6c3a8caeb1
57, 22.29 ( 5661), 6ef1f046df1f128f5f17f53759cb8568f6d1de65
57, 23.30 ( 5918), 3c5bcf9164a03b36b00841ea32538131bb47ede6
57, 23.31 ( 5919), 8645c24c5967ef92b941eab66a5ab4588e36389a
58, 24.31 ( 6175), c2cd89589174385a387894a58034b6013a294a5b
58, 24.32 ( 6176), 3405b5e9cef169f512451f03dda41b6ab77fa632
59, 34.33 ( 8737), 2cdd7cd45b06869c232a9bf3b37551f104bccd80
59, 36.33 ( 9249), 9bffc02442cf47f122c5ec1b8eacab32d74a0e71
60, 24.30 ( 6174), 0f10ee7bcd26d2b7f5e9ed583f10e56118be6f84
60, 25.00 ( 6400), db83137b436b532c50f147a6c404dea414e87233
61, 19.26 ( 4890), 67b07cac929d12bde2e72a0e73588ededd0a2bef
61, 21.29 ( 5405), 1eadd8ddc2d79a8b2ddcc436b1fce7c9576e7ff5
61, 22.29 ( 5661), 4da48c4b8a165fa5aceba5c2e3c935433e9b92d7
61, 22.30 ( 5662), d7b43eff2b97cc1292468378d5a0f6188c5206a1
62, 25.30 ( 6430), 8942b4890525e2584f6e7090e557355055fab25a
70, 26.31 ( 6687), dea4267298c32c5c88da57f7847a45e967b4711c
70, 27.00 ( 6912), 7a09d7618527768cc321e4607f2fc64228efe171
80, 27.31 ( 6943), 77a0f0d5a4af1f450df083cecb47b57c34378574
80, 27.32 ( 6944), eac33c6b821d111c4adb9b224db436d0f91ac16f
222, 255.00 (65280), 5faf3d89b2b8ad016c629c5264518df6c3567d73
223, 255.00 (65280), bcdf9dfd12a41ae41eb7461369b47652a6d27966
249, 255.00 (65280), f76e5650a42b8208c93f6dd822774dc4a2fe698f
250, 255.00 (65280), eb2d3b803ca1a09fdf862b7de6768430de715643
254, 0.02 ( 2), 7b61c1f7d1c4e3fdd0dfdcb4fc633e296b9ed121
254, 0.03 ( 3), 2cb062319692a096c6f0db6ad963653575c0131b
254, 1.04 ( 260), c28d6fde3371c55d28714fcff97aaafff9cc78d0
254, 255.00 (65280), 2c4626ffce09dd32064244d795e1ac3272a7ef1e
--- vwii ---
512, 0.06 ( 6), 937a77ca0d4b3454aca974020906b0cf544edb19
512, 0.07 ( 7), 08afbe4da9aad4420f3748c1e26976573d8b2af2
513, 0.01 ( 1), b85b6752f801ced7d3fbb0e115a639a5ac36971f
9, 5.10 ( 1290), c5210efeb26850722e695a96ebfb78fa83181d0f
12, 3.14 ( 782), 8ea6a660746b324a91a96037995325bd89a74467
13, 5.08 ( 1288), 93aed89b0634fe1ee0ec5319decea6efd42daaca
14, 5.08 ( 1288), eaebc7dc7bfef580c6e430c27f316f113dd61b0a
15, 5.08 ( 1288), 8da231549fff2aae93926a0d4ff3e25bf42ccf4d
17, 5.08 ( 1288), 8678352936d7008983e3d1e55c964fe39fdf5c9f
21, 5.15 ( 1295), 0d062d565c6d13ad7ae147c83328a934a4788b1d
22, 6.14 ( 1550), a42a32f3cf879672ebefa2649f910586c30c9648
28, 8.15 ( 2063), c58612be4a1720bb9522bc1594f7bbb10723c5de
31, 15.24 ( 3864), e83f1f108c269babb4568f0279ff354f74ba3bd1
33, 15.24 ( 3864), 9f9e67965b9053cecc19e569b290c72d1944eb45
34, 15.24 ( 3864), 9e2992258de3acbdbfac78d41d6f0865eb794264
35, 15.24 ( 3864), 54c06e3690550c7907ccecaaf4ea2a83f1dcd18b
36, 15.24 ( 3864), 3c953b91098b108b4f9adb4db835fa5c75ba5b9b
37, 23.31 ( 5919), 496bfdce779638c3992f2caee83ac483bc81b5a2
38, 17.28 ( 4380), b8ce5fd187a5439348be2d5b610f47529fb24ffe
41, 15.23 ( 3863), 60b12da8dc0383891962e2992ec38d92247c518d
43, 15.23 ( 3863), 8ea1c14b5d7ced668cb05390ca56f19cdbdd07b6
45, 15.23 ( 3863), 91669bfd8ea99167f250961a4a8230798f1d1164
46, 15.23 ( 3863), 8c907281ef70df3d0c6920aa9e7d3f1ffef72a11
48, 17.28 ( 4380), cb0bf6d25a40724de4d1bd3f8ddbe22d93c3a666
53, 23.31 ( 5919), f890a572ba1afdad1b28d0d7340e65bb0e31d9a4
55, 23.31 ( 5919), b91dd013e5491bfad115eb4955714bf776353ab9
56, 23.30 ( 5918), dfcd2f05d7f86227b9869b9c11dcfd305bf85009
57, 24.31 ( 6175), 03569713404bd37674980cc1e2109752f9fd7161
58, 25.32 ( 6432), 0295591aca336946a8c80870aa59a61b32571200
59, 28.33 ( 7201), aff994a3826b9a3d757508e275eb9877674674b9
59, 34.33 ( 8737), 4d15c37eb1b71cb0c77aa7cb4b539c19bad122e3
59, 36.33 ( 9249), 489600cf2c23ca5a98834ff8ece6403c08b15300
62, 25.30 ( 6430), 933a4ef9660e5741f00a3425399c84016d90d6be
62, 26.30 ( 6686), 09801b4abeac2b8e4d1f7557c6db30761e795b2f
62, 27.30 ( 6942), 760082399981729defd6a70c8e6b46a7d766ee9e
80, 28.32 ( 7200), e142075cd0bcc6c61c0f4f2fe538e6e161aaf33a
Made with libWiiPy 0.5.2.
# windows program-files installation: python -m pip install [lib]
import libWiiPy.title
import hashlib
iosWii = { # titleIDUpper is 00000001
"1": [4], # boot2
# "2": ... # system menu [omitted]
"100": [2, 4, 5, 6], # boot1compat
"101": [4, 5, 8, 9, 10], # mios
# wii ios (in hex)
"04": [65280],
"09": [520, 521, 778, 1034],
"0A": [768],
"0B": [10, 256],
"0C": [6, 11, 12, 269, 525, 526],
"0D": [10, 15, 16, 273, 1031, 1032],
"0E": [262, 263, 520, 1031, 1032],
"0F": [257, 258, 259, 260, 265, 266, 523, 1031, 1032],
"10": [512],
"11": [512, 517, 518, 775, 1031, 1032],
"14": [12, 256],
"15": [514, 515, 516, 517, 522, 525, 782, 1038, 1039],
"16": [777, 780, 1037, 1293, 1294],
"1C": [1292, 1293, 1550, 1806, 1807],
"1E": [1037, 1039, 1040, 2576, 2816],
"1F": [1037, 1039, 1040, 2576, 3088, 3092, 3349, 3607, 3608],
"21": [1040, 2832, 2834, 3091, 3607, 3608],
"22": [1039, 3087, 3091, 3348, 3607, 3608],
"23": [1040, 3088, 3092, 3349, 3607, 3608],
"24": [1042, 3090, 3094, 3351, 3607, 3608],
"25": [2070, 3609, 3612, 3869, 5662, 5663],
"26": [3610, 3867, 4123, 4124],
"28": [3072],
"29": [2835, 3091, 3348, 3606, 3607],
"2B": [2835, 3091, 3348, 3606, 3607],
"2D": [2835, 3091, 3348, 3606, 3607],
"2E": [2837, 3093, 3350, 3606, 3607],
"30": [4123, 4124],
"32": [4889, 5120],
"33": [4633, 4864],
"34": [5661, 5888],
"35": [4113, 5149, 5406, 5662, 5663],
"37": [4633, 5149, 5406, 5662, 5663],
"38": [4890, 5405, 5661, 5662],
"39": [5404, 5661, 5918, 5919],
"3A": [6175, 6176],
"3B": [8737, 9249],
"3C": [6174, 6400],
"3D": [4890, 5405, 5661, 5662],
"3E": [6430],
"46": [6687,6912],
"50": [6943, 6944],
"DE": [65280],
"DF": [65280],
"F9": [65280],
"FA": [65280],
"FE": [2, 3, 260, 65280],
}
iosVWii = { # titleIDUpper is 00000007
# "2": ... # system menu [omitted]
"200": [6, 7], # bc-nand
"201": [1], # bc-wfs
# vwii ios (in hex)
"09": [1290],
"0C": [782],
"0D": [1288],
"0E": [1288],
"0F": [1288],
"11": [1288],
"15": [1295],
"16": [1550],
"1C": [2063],
"1F": [3864],
"21": [3864],
"22": [3864],
"23": [3864],
"24": [3864],
"25": [5919],
"26": [4380],
"29": [3863],
"2B": [3863],
"2D": [3863],
"2E": [3863],
"30": [4380],
"35": [5919],
"37": [5919],
"38": [5918],
"39": [6175],
"3A": [6432],
"3B": [7201, 8737, 9249],
"3E": [6430, 6686, 6942],
"50": [7200],
}
def tidToRow(file, tidUpper, tidLower, rev):
tmdRaw = libWiiPy.title.download_tmd(title_id = f"{tidUpper:08x}{tidLower:08x}", title_version = rev, wiiu_endpoint = True)
print(f"fetched: {tidUpper:x}{tidLower:08x} v{rev}")
tmd = libWiiPy.title.TMD(); tmd.load(tmdRaw)
hash = hashlib.sha1(tmdRaw).digest().hex()
revMajor = tmd.title_version // 256
revMinor = tmd.title_version % 256
file.write(f"{tidLower:>3d}, {revMajor:>3d}.{revMinor:02d} ({tmd.title_version:>5d}), {hash}\n")
with open("tmdhashes.txt", "w") as file:
file.write("= wii system title tmd hashes =\n")
for platform in [["wii", iosWii, 1], ["vwii", iosVWii, 7]]:
file.write(f"\n--- {platform[0]} ---\n")
for tidLower in platform[1]:
for rev in platform[1][tidLower]:
tidToRow(file, platform[2], int("0x" + tidLower, 0), rev)
file.write("\n")