1
0
mirror of https://github.com/blawar/ooot.git synced 2024-06-30 16:29:55 +00:00

started to refactor setup rom hashing

This commit is contained in:
Blake Warner 2022-04-09 13:19:36 -04:00
parent 4488b9915e
commit 48a5ad5bfa
4 changed files with 3554 additions and 3205 deletions

View File

@ -1,8 +1,5 @@
{
"rom": {
"UNCOMPRESSED_SIZE": null,
"hash_md5": ["f0b7f35375f9cc8ca1b2d59d78e35405", "8ca71e87de4ce5e9f6ec916202a623e9", "f751d1a097764e2337b1ac9ba1e27699"],
"FILE_TABLE_OFFSET": "12F70",
"FILE_NAMES": [
"makerom",
"boot",
@ -1536,40 +1533,204 @@
"anime_texture_5_static",
"anime_texture_6_static",
"softsprite_matrix_static"
],
"FILE_TABLE_OFFSET": "12F70",
"UNCOMPRESSED_SIZE": null,
"hash_md5": [
"f0b7f35375f9cc8ca1b2d59d78e35405",
"8ca71e87de4ce5e9f6ec916202a623e9",
"f751d1a097764e2337b1ac9ba1e27699"
]
},
"sections": {
"gSoundFontTable": {"offset": "BCC270", "size": "270"},
"gSequenceFontTable": {"offset": "BCC4E0", "size": "1C0"},
"gSequenceTable": {"offset": "BCC6A0", "size": "6F0"},
"gSampleBankTable": {"offset": "BCCD90", "size": "80"},
"rspAspMainData": {"offset": "BCCE10", "size": "2E0"},
"rspF3DZEXText": {"offset": "BCD0F0", "size": "1630"},
"rspF3DZEXData": {"offset": "BCE720", "size": "420"},
"rspS2DEXData": {"offset": "BCEB40", "size": "390"},
"rspJpegData": {"offset": "BCEED0", "size": "60"},
"rspAspMainText": {"offset": "B89260", "size": "FB0"},
"rspS2DEXText": {"offset": "B8A210", "size": "18C0"},
"rspJpegTextStart": {"offset": "B8BAD0", "size": "AF0"},
"rspBootText": {"offset": "9F20", "size": "D0"},
"D_800093F0": {"offset": "9FF0", "size": "20"},
"sSeqCmdWrPos": {"offset": "BAA5A0", "size": "4"},
"sSeqCmdRdPos": {"offset": "BAA5A4", "size": "4"},
"D_80133408": {"offset": "BAA5A8", "size": "1"},
"D_8013340C": {"offset": "BAA5AC", "size": "1"},
"D_80133410": {"offset": "BAA5B0", "size": "4"},
"gAudioSpecId": {"offset": "BAA5B4", "size": "1"},
"D_80133418": {"offset": "BAA5B8", "size": "1"},
"nes_message_entry_table_addr": {"offset": "00BC24C0"},
"ger_message_entry_table_addr": {"offset": "00BC66E8"},
"fra_message_entry_table_addr": {"offset": "00BC87F8"},
"staff_message_entry_table_addr": {"offset": "00BCA908"},
"staff_message_entry_table_addr_end": {"offset": "00BCAA90"},
"OVL_KALEIDO_SCOPE_RAM": {"offset": "80813820"},
"gPauseMapMarkDataTable": {"offset": "8082B2C0"},
"sMarkBossVtxPointer": {"offset": "80830610"},
"sMarkChestVtxPointer": {"offset": "80830650"},
"MAP_MARK_RAM": {"offset": "80858B70"},
"gMapMarkDataTable": {"offset": "8085F5E8"}
"D_800093F0": {
"offset": "9FF0",
"size": "20"
},
"D_80133408": {
"offset": "BAA5A8",
"size": "1"
},
"D_8013340C": {
"offset": "BAA5AC",
"size": "1"
},
"D_80133410": {
"offset": "BAA5B0",
"size": "4"
},
"D_80133418": {
"offset": "BAA5B8",
"size": "1"
},
"MAP_MARK_RAM": {
"offset": "80858B70"
},
"OVL_KALEIDO_SCOPE_RAM": {
"offset": "80813820"
},
"fra_message_entry_table_addr": {
"offset": "00BC87F8"
},
"gAudioSpecId": {
"offset": "BAA5B4",
"size": "1"
},
"gMapMarkDataTable": {
"offset": "8085F5E8"
},
"gPauseMapMarkDataTable": {
"offset": "8082B2C0"
},
"gSampleBankTable": {
"offset": "BCCD90",
"size": "80"
},
"gSequenceFontTable": {
"offset": "BCC4E0",
"size": "1C0"
},
"gSequenceTable": {
"offset": "BCC6A0",
"size": "6F0"
},
"gSoundFontTable": {
"offset": "BCC270",
"size": "270"
},
"ger_message_entry_table_addr": {
"offset": "00BC66E8"
},
"nes_message_entry_table_addr": {
"offset": "00BC24C0"
},
"rspAspMainData": {
"offset": "BCCE10",
"size": "2E0"
},
"rspAspMainText": {
"offset": "B89260",
"size": "FB0"
},
"rspBootText": {
"offset": "9F20",
"size": "D0"
},
"rspF3DZEXData": {
"offset": "BCE720",
"size": "420"
},
"rspF3DZEXText": {
"offset": "BCD0F0",
"size": "1630"
},
"rspJpegData": {
"offset": "BCEED0",
"size": "60"
},
"rspJpegTextStart": {
"offset": "B8BAD0",
"size": "AF0"
},
"rspS2DEXData": {
"offset": "BCEB40",
"size": "390"
},
"rspS2DEXText": {
"offset": "B8A210",
"size": "18C0"
},
"sMarkBossVtxPointer": {
"offset": "80830610"
},
"sMarkChestVtxPointer": {
"offset": "80830650"
},
"sSeqCmdRdPos": {
"offset": "BAA5A4",
"size": "4"
},
"sSeqCmdWrPos": {
"offset": "BAA5A0",
"size": "4"
},
"staff_message_entry_table_addr": {
"offset": "00BCA908"
},
"staff_message_entry_table_addr_end": {
"offset": "00BCAA90"
}
},
"sha256": [
{
"body": "93d9649d229eaba428c5ddb12c35594495594430ce531c16b5dc1df5c7d6c8c9",
"chunks": [
"addfaaed9a096e9065d1d4b76cfb6bc7d3d45df2e1dc493ef2291236ec3f8b32",
"f5916eb5b6d6672a10c723ea5329c334f86907a17ad863fa0652479192cffde5",
"6f642a2a65c5f05d90197ed0e9c1f7e5409a01c55e7ee7f525dff35fc2979a79",
"013f357c169549788dea445b49048e5bc34ccc9519cc51536bcc5b7567e92f2e",
"22cd49540b66233d436aad89766bbec4b13db94c6e85fb80a7c09a90c57fa1fb",
"eebb53a6e83862c724e2851e091a08b0fb1860788923df9b0696e8b700893884",
"947d4001c0d7b1233c22088a1ddb67db4e3767b021653da02770b1fc06a19677",
"b61d6b8acbbdcb7e274b20e9ff1fce655aec114327abb931ca584abd0eac8fae",
"c9080c87af7e9623ca16e909ba868ee52cf6b6a6480eeec7a5a6f97969e81531",
"d0d69f3b5a0ff26912a6e2bdf6b279be6e3948ee0288c3db0ac621a65d83ae90",
"91b148975a4e9685d0f755ee6bdac45788598afd4b2c2977dda842d1a8136fc0",
"9a83c33a31c11f452aff9b49e4e378b3858965b028e096d7a36a86c269494385",
"57022b3286bb8459734abd9405dad8494b2961e8e5606b9c1ba11ab7a37ed811",
"4b4db101514f7ed8b1b3bd5143d0a55bc221ad1872abb20fe3d0e1144f7d79f8",
"47d3e3bec66f5530d626155faba3ebd7ab9def2f23fa7fa8fb7d21e34017a3cc",
"64a78b5092e5286b7e55c27c40ea4667eed0374e59e923ac0de3b136d747977f",
"9c916e5183ec9fb2dec97f6c8d8b6d50a157e3664e6ba815265740921b8158ab",
"3f15ea2686d57096bab66237c584df889f5248ad7c203af4a113b8654ceda8f2",
"2d5894331906eb13c19573c68d7aebc3d799b5a0f07643bb77f0a40e5d27dd95",
"68e10f3004c031881e269b53194bcd5dde8901a13ebfb75763673b078ad3890b",
"94da30df8155d2be99a43d8c074858e7b39861db7690114ea6c667f0918ad1cb",
"76ebf7e52344705c2e9f48018965001c45c395992495ef9ea2e629adb5332475",
"cee5ec4b4172f9083b17f743ba45bb0355b5d40748f02bdfb95b141c8445e59d",
"8a5e8c7ea69b15b82192668032eaac4cbc1ce6c56a4c1d288a1fc86063706b52",
"eeae6163a0b6b3a4ff2eec2954c5f7441c136fb25bc936c550ddb925aa8c13aa",
"f8f3153275320197647ea0dfa461f7b35a18d1437f5d7169339945162dcbe53b",
"562a790797462be52d84bd30d50fe9794c93fe19f8997d6a898a02473d1ef540",
"37005205c243dbacb6215099f40f0f4aa3c2531b0c7f8d98311d66a599975fd2",
"26ecc6b864e51d238acc79842be3a7e5b9f2fc7030f4917ee60008c5be055eb3",
"ab7d6e2060e67243f7133db16ddbf3a9637ffccb8f3beee5f92d44e8de3afa05",
"38254a4e8fa64631eb165c8ec06b5660359dd35a8e80d55c75251978b71be7cb",
"f3a36414d044a8f77d3dc47f04c403270ba368624a116c94e2589216132e38bc",
"e6c0bdc3ffb6b7b77cdfa50cb2f0a39b3659a1d6f45e9f0f2bc4d7f26aff46f1",
"09c89e2f6de0c8e6e15cfffe65293f138892ba1227030673de4449e756bc1e48",
"2733570beea9584f896fabaa4045b9fbb5d1cd2663a3e0ecce05da12635491ff",
"ebb702e4711474fd97a8d35f39150495240b8395b3f877c000788ab1049ffead",
"5ef03c3a1761f52402f7cc99881511c017b98d620bbd7083c2432ca6facd7735",
"ad4331e6e7d55f9ba4bc5c0a8e18edad33dad20c092cc96bb505b7b6eaff87bf",
"f01f41a414bef0c81822542cf550506334bb907670b2d7f18327eea9f8359a6b",
"2aec6edcec9b19b42cbb0acfc837976e7ae99e44de1ab48617b31b9798f2efc5",
"f5944e952524afe7d7564640325647fdf17a2138f94d7bb1423bf9d65fbc34b9",
"61d9bc4cd5dddf6428a85fbb43dbf12a0a926e82cc39b210e526984e828c9425",
"cd2fb371cd765200fc81280bcfb54f84871ef49b46eda85582f77e7b70ee5e7e",
"ce0811dcf6471d9bbac445460d540f42b8b710e84b65eee4ee6385d1281a0232",
"69a3bf2af3e804b1831dba8eca5fe9b0e7a3ca8edac8f810f96df78b926ced3e",
"fd86c66a28efa7aaf3e0c7057a8507e54dd7f14967c18460ccef6298b7a9d706",
"a6cb86f93c2552e8c804ee1d0258444fc546d1b2a8056ab0f39eca2a866e12f4",
"9808a4502fc6e19aabee5b735f9220224add0c17a5fdb5cf5d42d4457fb18089",
"0c488c7cf63fd6cd518005185575cada4b2bb28ebc4841e193a46b95b08e6590",
"aaf71983136f12235799c5e5246b8f6bba34cc6a33ad7ca076af1b1d3f622ccd",
"555c8ead3b2c49dd44c7ca65bc2dffbf4e86b16e15ac76d0c66278d772ad53da",
"9baf41baee58a54c10dc815158b001db044332c4f1a68ed1407683c4e5e1dd6b",
"f4c09272585ab386ee2fcb58e3c229813e3c41002958b23ebcd04265c9a89c9f",
"25ffe6cc569a306cd954f460d062ca446ae59a05c2d2d4bf3e96d09edfee5ba4",
"481bfa2a9c2f38140c38c3d898980f5b19d821ef47c384170ed67afe7f6cdedc",
"c46bca5d8d975c44ff58ace5c48e5f6fefe8d75f280c617a81606cacfb8a6f71",
"0dd3705869cd6e22b4c9a486e1d4342ec05230f9ec5fcaf7d7b1d4adea2deb22",
"966a8ff8afcef6a968ba82ddcc4fa6e927530172066824510f80965665cadd35",
"cac07ea99998ce134f4fbd4916b27945a6ffccd1476472a59711629bc3337e9a",
"ecfefb5a70cec60b6ee80ba426b9bad7b3b63b95cfaf401f1f4c5ab4169b6a37",
"738d275a2ff4cc35eda4f56f03a3bdb94ab0e8665a1f63d8263cbfde4bb6ecbd",
"615c10085f07ce9b18f9e69d3b3abcfad9ec446a04723c84493594e869e99ec2",
"fbc6f3f87f0f140273b980c0847002a70ceda9ac9e9de76b2a353955f57585b6",
"c15889b35077d5053758f75ceef48f38c14150237b4c593b0f718d381e72f572"
],
"complete": "554d5bd122889a5fe51a84355124f24a134a5050c49fab37468d2165de2917e6"
}
]
}

View File

@ -1,8 +1,5 @@
{
"rom": {
"UNCOMPRESSED_SIZE": "34D3040",
"hash_md5": ["c02c1d79679f7ceb9a3bde55fff8aa13"],
"FILE_TABLE_OFFSET": "7950",
"FILE_NAMES": [
"makerom",
"boot",
@ -1515,40 +1512,170 @@
"anime_texture_5_static",
"anime_texture_6_static",
"softsprite_matrix_static"
],
"FILE_TABLE_OFFSET": "7950",
"UNCOMPRESSED_SIZE": "34D3040",
"hash_md5": [
"c02c1d79679f7ceb9a3bde55fff8aa13"
]
},
"sections": {
"gSoundFontTable": {"offset": "B88E60", "size": "270"},
"gSequenceFontTable": {"offset": "B890D0", "size": "1C0"},
"gSequenceTable": {"offset": "B89290", "size": "6F0"},
"gSampleBankTable": {"offset": "B89980", "size": "80"},
"rspAspMainData": {"offset": "B89A00", "size": "2E0"},
"rspF3DZEXText": {"offset": "B597E0", "size": "1390"},
"rspF3DZEXData": {"offset": "B89CE0", "size": "420"},
"rspS2DEXData": {"offset": "B8A100", "size": "390"},
"rspJpegData": {"offset": "B8A490", "size": "60"},
"rspAspMainText": {"offset": "B58830", "size": "FB0"},
"rspS2DEXText": {"offset": "B5AB70", "size": "18C0"},
"rspJpegTextStart": {"offset": "B5C430", "size": "AF0"},
"rspBootText": {"offset": "0x9F20", "size": "D0"},
"D_800093F0": {"offset": "9FF0", "size": "20"},
"sSeqCmdWrPos": {"offset": "0", "size": "0"},
"sSeqCmdRdPos": {"offset": "0", "size": "0"},
"D_80133408": {"offset": "0", "size": "0"},
"D_8013340C": {"offset": "0", "size": "0"},
"D_80133410": {"offset": "0", "size": "0"},
"gAudioSpecId": {"offset": "0", "size": "0"},
"D_80133418": {"offset": "0", "size": "0"},
"nes_message_entry_table_addr": {"offset": "00B801DC"},
"ger_message_entry_table_addr": {"offset": "00B84404"},
"fra_message_entry_table_addr": {"offset": "00B86514"},
"staff_message_entry_table_addr": {"offset": "00B88624"},
"staff_message_entry_table_addr_end": {"offset": "00B887AC"},
"OVL_KALEIDO_SCOPE_RAM": {"offset": "80813F90"},
"gPauseMapMarkDataTable": {"offset": "8082AE30"},
"sMarkBossVtxPointer": {"offset": "8082F410"},
"sMarkChestVtxPointer": {"offset": "8082F450"},
"MAP_MARK_RAM": {"offset": "80857380"},
"gMapMarkDataTable": {"offset": "8085DE6C"}
"D_800093F0": {
"offset": "9FF0",
"size": "20"
},
"D_80133408": {
"offset": "0",
"size": "0"
},
"D_8013340C": {
"offset": "0",
"size": "0"
},
"D_80133410": {
"offset": "0",
"size": "0"
},
"D_80133418": {
"offset": "0",
"size": "0"
},
"MAP_MARK_RAM": {
"offset": "80857380"
},
"OVL_KALEIDO_SCOPE_RAM": {
"offset": "80813F90"
},
"fra_message_entry_table_addr": {
"offset": "00B86514"
},
"gAudioSpecId": {
"offset": "0",
"size": "0"
},
"gMapMarkDataTable": {
"offset": "8085DE6C"
},
"gPauseMapMarkDataTable": {
"offset": "8082AE30"
},
"gSampleBankTable": {
"offset": "B89980",
"size": "80"
},
"gSequenceFontTable": {
"offset": "B890D0",
"size": "1C0"
},
"gSequenceTable": {
"offset": "B89290",
"size": "6F0"
},
"gSoundFontTable": {
"offset": "B88E60",
"size": "270"
},
"ger_message_entry_table_addr": {
"offset": "00B84404"
},
"nes_message_entry_table_addr": {
"offset": "00B801DC"
},
"rspAspMainData": {
"offset": "B89A00",
"size": "2E0"
},
"rspAspMainText": {
"offset": "B58830",
"size": "FB0"
},
"rspBootText": {
"offset": "0x9F20",
"size": "D0"
},
"rspF3DZEXData": {
"offset": "B89CE0",
"size": "420"
},
"rspF3DZEXText": {
"offset": "B597E0",
"size": "1390"
},
"rspJpegData": {
"offset": "B8A490",
"size": "60"
},
"rspJpegTextStart": {
"offset": "B5C430",
"size": "AF0"
},
"rspS2DEXData": {
"offset": "B8A100",
"size": "390"
},
"rspS2DEXText": {
"offset": "B5AB70",
"size": "18C0"
},
"sMarkBossVtxPointer": {
"offset": "8082F410"
},
"sMarkChestVtxPointer": {
"offset": "8082F450"
},
"sSeqCmdRdPos": {
"offset": "0",
"size": "0"
},
"sSeqCmdWrPos": {
"offset": "0",
"size": "0"
},
"staff_message_entry_table_addr": {
"offset": "00B88624"
},
"staff_message_entry_table_addr_end": {
"offset": "00B887AC"
}
},
"sha256": [
{
"body": "6db5b307accd7f7d4d4531b2b01625053bc8b835a2b41ea9e234e57f7f2ef183",
"chunks": [
"34c257427b384a638d7d6e504ab66da8eda997236ca6498b32ea634915ec2dd0",
"72e134a69925c70435a96f177fa84286f72cff978c3908a2ea3ec50d863611c0",
"81bf45f0051ccf2b4d4576cfb43a6d32499ee78a992cd7221a1a8ea30179d288",
"f5d8be93e6c16f18bc0c1323db61f3d31fc47575584921ef5d6bc0e9611be323",
"b914bc54aec52275ff8a71882ca2ce5efddf9882ffec2f9f94569f71333cd533",
"4aa266175af0574089fbb04ebedf7b6ae96941c57c169f988f823a75428a715f",
"dbce7583c8c136d5b3d9bd0cd7218653face1f59d6b71006b5a90839517f32f8",
"c4152c5a1df523cb2f2ba0b339a8a027b687a7a29e51b902da20351b324ac381",
"155f52fb7b4c99e3508b5b6cd64f715c21593315a0e3270555aa0abd56050e3b",
"f95c02519a755fa44761732b451f8e3dae6dd1b622e3403787e94b360e90e4cd",
"0a7cb4f31929b2099b221ad919d897235f63e7932a6759466f4c3ec9f799b7a4",
"2ddf57ab5c7e3d004213533fbea0f6ed2106a50d1ad57a95cdcb2dcc85bcebc6",
"0c9847116c6685f69eb44679432d3a9ff1e6f0834464595171f81c7fef408560",
"322a4939cf3d7263e9a642930c5f5d26ee731076daf5eae1dd5a09c13de8979e",
"85f03b4f1b0da1eb7bcb1ac220695c673ab5baeda2662c4f692fa482228d9aec",
"5471518c57ffd675e0066cb9c2969f37d2660c27605ccd50ab7d36a907ef0f9c",
"fbd473f89e8918c9b926828c16eb2fdfdb85bf5ed064202e73f93e1be18fc191",
"7a059ae8d4ee97057a68cb7e74747947d0f493088624618e99922f01b337433c",
"2f02eb123c836d3a5cbe18fd70ec3cb9a0306eaca53f1e1e3d5219c5998e04d4",
"010dd65fc79da5d5fa33dc1f85b74cd30c4f8c19a0e69f65dcea028cf3ce86fb",
"6e96e930bb44b3e24915db2f9f43a975cb119e810824a87f1f4c2fa36365f4b7",
"797549c09953f03804cfd427da178042a9406ce4486e7b1eeedc36947de8abcd",
"dc2e628c3efe8715eefab6ede9fd12dd49841599eb30eb70a9c15e44fb35ba8b",
"4886cbd8cea23befdb542accab75793dccd1a84cb4ee66e1d0b1f58f5ce797ff",
"143f9b3b8625ea5d21235d6ab399b0f42d603e38073e3f0664a694fad2c5c937",
"be5f7abfbdf42e289c7c974d4562fb4f6fadb2d47038f47e6e33f7fe4840733d",
"35c8a1d60b9fcf2cb4e1838905ca7f26356fd937ad0f8df9aacc102e8302c16d",
"470f1ba0a3ce5ea30054cef51cbb366b581984ed0ab1586d573214651f01896a",
"1abcbabb2cf0f3686dca042a61f9445664056fcf6bd5d5e5482e2ac4c4400f10",
"47b2bcac5b895e0ef9a5c165be42ab9cb20f276b0352f950427c401fe28adadb",
"b8f27c373f4279e6d25931dd12fa2cfcce591ec745b166f81700e39c3fb36c81",
"646f8b047ace1a2b249abe7189de3f14db98a504eb062b8a4ca5eb905f1953a1"
],
"complete": "577a369e2738f45ead0d7e98fdf8de4cc6b505e2ade0504d7dd1ecfb7b3ff17e"
}
]
}

View File

@ -64,9 +64,14 @@ def main():
parser.add_argument("-b", "--buildRom", choices=validBuildOptions(), help="build rom config ex: EUR_MQD")
parser.add_argument("-f", "--framerate", choices=['20', '30', '60', '120', '240'], help="game framerate", default='20')
parser.add_argument("-m", "--enable-mouse", help="Enables mouse controls", action="store_true", default=True)
parser.add_argument("--refresh-configs", help="Refreshes rom config files (do not use)", action="store_true", default=False)
args = parser.parse_args()
if args.refresh_configs:
calcRomHashes()
exit(0)
if args.buildRom:
setBuildRom(args.buildRom)
else:

View File

@ -2,12 +2,28 @@ import sys
import os
import os.path
import json
import math
import hashlib
from pathlib import Path
_assetPath = None
_buildRom = None
_conf = None
def loadJson(path):
try:
with open(path, 'r') as f:
return json.load(f)
except:
raise
def saveJson(path, data):
try:
with open(path, 'w') as f:
json.dump(data, f, indent=4, sort_keys=True)
except:
raise
class ConfSection:
def __init__(self, j):
self.offset = 0
@ -42,9 +58,8 @@ class Conf:
def __init__(self, path):
self.path = path
self.sections = ConfSections()
j = loadJson(path)
with open(path, 'r') as f:
j = json.load(f)
for k,v in j['sections'].items():
self.sections.__dict__[k] = ConfSection(v)
self.rom = ConfRom(j['rom'])
@ -89,8 +104,10 @@ def buildRom():
_buildRom = sys.argv[1]
return _buildRom
def romPath(rom = ''):
return fixSlashPath('roms/%s/%s' % (buildRom(), rom))
def romPath(rom = '', root = None):
if not root:
root = buildRom()
return fixSlashPath('roms/%s/%s' % (root, rom))
def getAssetPath():
global _assetPath
@ -127,4 +144,43 @@ def relPath(path, sub = None):
return r[1:]
return r
def sha256_buffer(buffer):
m = hashlib.sha256()
m.update(buffer)
return m.hexdigest()
def getRomHashes(path):
chunkSize = 0x100000 # 1MB
headerSize = 0x1000
r = {}
with open(path, 'rb') as f:
buffer = f.read()
r['complete'] = sha256_buffer(buffer)
r['body'] = sha256_buffer(buffer[headerSize:])
r['chunks'] = []
for i in range(int(math.ceil((len(buffer) - headerSize) / chunkSize))):
offset = headerSize + (i * chunkSize)
r['chunks'].append(sha256_buffer(buffer[offset:offset + chunkSize]))
return r
def calcRomHashes():
for rom in validBuildOptions():
verified = romPath('verified', rom)
configPath = romPath('config.json', rom)
config = loadJson(configPath)
config['sha256'] = []
if not os.path.isdir(verified):
continue
for path in Path(verified).rglob('*.z64'):
config['sha256'].append(getRomHashes(path))
saveJson(configPath, config)
basedir = Path(__file__).absolute().parent.parent