Skip to content

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.

Data

= 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

Script

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")
Clone this wiki locally